המדריך למצפין המתחיל

איך מצפינים מסר אלקטרוני? איזה סוגי הצפנה קיימים? מה ההבדלים ביניהם? מורה נבוכים

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

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

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

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

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

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

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

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

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

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

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

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

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

1. דרך להחליף מפתחות בין הצדדים ללא חילופין מוקדמים של חתימות דיגיטליות ומפתחות פרטיים סודיים.

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