הצפנה א-סימטרית

Asymmetric encryption & public/private puke

בעידן של היום, כשהפרטיות והאבטחה שלנו ברשת רק הולכות ונשחקות, כדאי להיזכר בחשיבות של ההצפנה- מהיסודות של אינטרנט פתוח, חופשי ומאובטח. ובגזרה הזו הצפנה אסימטרית היא השיטה הכי נפוצה וכנראה שהכי חשובה, אבל עד כמה אתם יודעים איך היא עובדת?

בשביל להבין את הצורך בהצפנה א-סימטרית כדאי להכיר את ההצפנה הסימטרית הפשוטה יותר. בהצפנה סימטרית אנחנו משתמשים במפתח סודי אחד גם לפיענוח וגם להצפנה. כלומר אם א’ וב’ רוצים להעביר ביניהם קובץ מוצפן סימטרית, א’ יצור מפתח סודי (סיסמה) שישמש להצפנת הקובץ, ישלח את הקובץ המוצפן לב’ ואז ב’ יצטרך להשתמש באותו המפתח של א’ בכדי לפענח את ההצפנה ולקבל את המידע הנחוץ.

הבעיה היא שגם השולח וגם המקבל צריכים להיות עם אותו המפתח הסודי, מה שאומר שהם יאלצו לשתף אותו ביניהם בדרך כזו או אחרת, כך שבשלב כלשהו בדרך הם יאלצו לשתף את המפתח באופן לא מוצפן- וזה רע.

את הבעיה הזו פותרת הצפנה א-סימטרית. בהצפנה א-סימטרית משתמשים בשני מפתחות- מפתח ציבורי ומפתח פרטי. המפתח הציבורי חשוף לכולם, והוא המפתח שיוצר את ההצפנה. השולח נעזר במפתח הציבורי של המקבל בכדי לייצר קובץ מוצפן.

על מנת לפענח את ההצפנה יש להיעזר במפתח הפרטי, שנמצא רק אצל המקבל. גם השולח לא יכול לפענח את הקורס שהוא עצמו הצפין מאחר ואין לו את המפתח הפרטי.

דוגמה: א’ וב’ שולחים אחד לשני הודעות עם הצפנה א-סימטרית. לכל אחד מהם יש 3 מפתחות- לא’ יש את המפתח הציבורי שלו, את המפתח הפרטי שלו ואת המפתח הציבורי של ב’. לב’ יש את המפתח הפרטי והציבורי שלו ואת המפתח הציבורי של א’. כשא’ שולח הודעה לב’, הוא מצפין אותה עם המפתח הציבורי של ב’. לאחר שההודעה הוצפנה הדרך היחידה לקרוא אותה היא באמצעות המפתח הפרטי של ב’ ולכן לא’ אין יכולת לקרוא את מה שהוא עצמו כתב. ההודעה נשלחת לב’ שבאמצעות המפתח הפרטי שלו קורא אותה.

המפתחות הפרטיים קשורים למפתחות הציבוריים ויכולים לפענח את ההצפנה שהם יצרו, אבל אי אפשר למצוא אותם באמצעות מפתח ציבורי.

כל עוד הנמען שומר על המפתח הפרטי שלו, אי אפשר לפצח את ההצפנה ולראות את המידע שהועבר. גם במידה והמפתח הסודי של אחד הצדדים נגנב, אפשר לקרוא רק את ההודעות שנשלחו אליו. כלומר, אם המפתח הפרטי של א’ נגנב, אז כל ההודעות שנשלחו לא’, הודעות שהוצפנו על ידי המפתח הציבורי של א’ ומפוענחות על ידי המפתח הפרטי של א’, יהיו חשופות למי שמחזיק במפתח, אבל לא ההודעות שא’ שלח לב’. ההודעות שא’ שלח לב’ מוצפנות עם המפתח הציבורי של ב’ ועל מנת לפענח אותן יש צורך במפתח הפרטי של ב’.

תכונה חשובה נוספת של הצפנה א-סימטרית היא היכולת להצפין את ההודעה עם המפתח הפרטי ואז לפענח אותה עם המפתח הציבורי. אמנם כל אחד יכול לקרוא את המידע שהרי לכל אחד יש את הגישה למפתח הציבורי, אבל מאחר והמידע הוצפן עם המפתח הפרטי שנמצא רק אצל אדם אחד אנחנו יכולים לאמת שמי ששלח את המידע הזה הוא אכן מי שהוא מתיימר להיות.

ההבדלים בין השיטות מתבטאים בין היתר באורך המפתחות. מאחר ובהצפנה א-סימטרית חייב להיות קשר מתמטי בין המפתח הציבורי למפתח הפרטי, פורצים יכולים באופן תיאורטי “להסיק” את המפתח הפרטי מהציבורי. כתוצאה מכך המפתחות בהצפנה א-סימטרית הם ארוכים באופן משמעותי- מפתח של 2048 ביט בהצפנה א-סימטרית מספק פחות או יותר את אותה רמת האבטחה של מפתח 128 ביט בהצפנה סימטרית.

היתרונות של השיטה הם אבטחה מוגברת ופתרון בעיית שיתוף המפתח הסודי, כמו גם אימות זהות השולח על ידי חתימה דיגטלית בדמות המפתח הפרטי. החסרונות הם האיטיות של השיטה ביחס להצפנה סימטרית והכוח העצום של המפתח הפרטי- אם המפתח הפרטי אבד או נגנב כל המידע אבד או נגנב.

לטעון תגובות?