ערך מומלץ

קריפטוגרפיה

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש
Disambig RTL.svg המונח "צופן" מפנה לכאן. אם התכוונתם למשמעות אחרת, ראו צופן (פירושונים).

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

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

השם "קריפטוגרפיה" מקורו במילה היוונית "קריפטו" (κρυπτός) שמשמעותה נסתר או אמנות ההסתרה, ו"גרפיה" (γράφω) שמשמעותה "כתיבה". בתרגום חופשי נעשה שימוש בשם באופן חליפי למונח קריפטולוגיה שפירושו תורת ההסתרה (Crypto-logia, κρυπτός-λογία), אם כי משמעותו רחבה יותר מתחום ההצפנה בלבד.

מונחים כלליים[עריכת קוד מקור | עריכה]

טקסונומיה של תורת ההצפנה

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

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

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

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

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

רקע היסטורי[עריכת קוד מקור | עריכה]

Postscript-viewer-shaded.png ערך מורחב – הצפנה קלאסית

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

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

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

הצפנה סימטרית[עריכת קוד מקור | עריכה]

Postscript-viewer-shaded.png ערך מורחב – צופן סימטרי

הצפנה סימטרית היא הוותיקה ביותר ושורשיה החלו עם ההצפנה הקלאסית לפני מאות שנים. בהצפנה סימטרית נעשה שימוש במפתח יחיד להצפנה ולפענוח. על מנת שניתן יהיה להעביר מידע סודי בין הצדדים המתקשרים, שני הצדדים נדרשים להחזיק באותו מפתח הצפנה. יתרונותיה של ההצפנה הסימטרית הם ביעילותה (בשנת 2001 התבסס תקן ההצפנה המתקדם המגדיר מפתח הצפנה באורך של 128 סיביות כבטוח לשימוש). וכן בכוח המחשוב הנמוך הדרוש ליישומה לעומת הצפנה אסימטרית. דוגמה לאלגוריתם כזה הוא אלגוריתם DES, שהיה לאלגוריתם הסימטרי הראשון שהופץ בקנה מידה גדול ואף הפך לתקן הצפנה רשמי. DES שימש בעיקר בתחום הבנקאות והוא עדיין בשימוש מוגבל בגרסה המשולשת. אף על פי שכיום לא נחשב לאלגוריתם בטוח, חשיבותו ההיסטורית נותרה בעינה מאחר שהטכניקות שיושמו בו נלמדות כיום באקדמיה ומשמשות השראה ובסיס למרבית האלגוריתמים הסימטריים המודרניים. DES הוחלף ב-AES שהפך ב-2001 לתקן ההצפנה הרשמי של ארצות הברית. אלגוריתמים סימטריים נוספים הם 3DES, IDEA, FEAL, SAFER, RC5, RC4, Blowfish, וסרפנט.

להצפנה סימטרית מספר חסרונות:

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

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

סודיות מושלמת[עריכת קוד מקור | עריכה]

Postscript-viewer-shaded.png ערך מורחב – סודיות מושלמת

בשנת 1949 הראה קלוד שאנון, בשיטות השאולות מתורת האינפורמציה, שיטת הצפנה (סימטרית) "מושלמת" המכונה פנקס חד-פעמי (One time pad). שיטה זו המבוססת על צופן ורנם, בה מצפינים מחרוזת מסר על ידי חיבור XOR של סיביות המסר בזו אחר זו, עם מפתח שנבחר באופן אקראי. אם המפתח אקראי "אמיתי" וחד-פעמי ובאורך המסר המיועד להצפנה, הצופן יהיה בעל סודיות מושלמת (Perfect Secrecy) והוא בטוח ללא סייג. אין שום דרך לשחזרו ללא המפתח (אפילו במקרה שמנחשים מפתח, אין דרך לדעת האם הוא המפתח הנכון). פנקס חד-פעמי מחייב שימוש יחיד במפתח. המפתח חייב להיות ממקור אקראי אמיתי (בניגוד למספרים פסבדו אקראיים המיוצרים על ידי מחשב).

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

הצפנה א-סימטרית[עריכת קוד מקור | עריכה]

Postscript-viewer-shaded.png ערך מורחב – מפתח ציבורי
ויטפילד דיפי ומרטין הלמן ממציאי הצפנת מפתח ציבורי.

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

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

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

מסמך[2] שפורסם ב-1997 על ידי ממשלת בריטניה חשף כי המודיעין הבריטי (GCHQ) היה מודע כבר ב-1970 לרעיון ההצפנה האסימטרית. המתמטיקאים ג'יימס אליס וקילפורד קוקס שעבדו למען המודיעין הבריטי באותה עת פרסמו כל אחד בנפרד מאמרים בהם טענו שפיתחו שיטות דומות ל-RSA ודיפי-הלמן אך נשמרו בזמנו בסוד מטעמים של ביטחון לאומי.

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

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

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

קריפטאנליזה[עריכת קוד מקור | עריכה]

Postscript-viewer-shaded.png ערך מורחב – קריפטואנליזה

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

בעבר נטו מפתחי אלגוריתמים קריפטוגרפיים לשמור בסוד את פרטי האלגוריתם. אולם כיום מקובל לאמץ את עקרון קרקהופס הקובע ששמירת אלגוריתם הצפנה בסוד אינה מהווה חלופה לבטיחותו. באנלוגיה למנעול צירופים, הסתמכות אך ורק על מנגנון נעילה סודי, אינה חכמה כיוון שאם נחשף המנגנון המנעול כולו הופך לחסר תועלת. מאידך אם התגלה צירוף סודי, יש צורך רק להחליף צירוף על מנת להבטיח סודיות, אין צורך בקניית מנעול חדש. גם בעת המודרנית הוכרזו מספר אלגוריתמי הצפנה כסודיים. בשנת 1993 פרסמה ממשלת ארצות הברית תקן הצפנה בשבב Clipper שהשתמש במספר אלגוריתמים סודיים, ביניהם צופן סימטרי בשם Skipjack. השבב בין היתר נועד לאפשר לרשויות גישה לתוכן המוצפן באמצעות דלת אחורית - מפתח נוסף אותו קיבלו בעת ייצור השבב[3]. השימוש בדלת אחורית וסודיות האלגוריתמים גרמו להסתייגות רבה בציבור והפרויקט לא התקבל, במיוחד לאחר שפורסמו אלטרנטיבות טובות יותר כמו PGP. בסופו של דבר נחשפו פרטי אלגוריתם סקיפג'ק לידיעת הציבור[4]. צופן זרם RC4 היה סוד מסחרי כשהומצא ב-1987 על ידי רונלד ריבסט במעבדות RSA. אולם בדרך כלשהי הצליח מישהו להנדס לאחור את האלגוריתם ופרטיו דלפו באופן אנונימי לרשת האינטרנט והפכו במהרה לנחלת הכלל.

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


אורך מומלץ למפתחות אלגוריתמים אסימטריים[עריכת קוד מקור | עריכה]

עד שנת 2003 בערך, מקובל היה להשתמש במודולוס בגודל 1024 סיביות. מעבדות RSA פרסמו ב-2003 הצהרה לפיה מפתח אסימטרי בגודל 1024 סיביות מספק רמת הגנה מקבילה למפתח סימטרי בגודל 80 סיביות. 2048 סיביות מקבילות לאלגוריתם סימטרי עם מפתח 112 סיביות ו-3072 מקביל ל-128. המלצה שלהם להשתמש במפתח 2048 סיביות לשימוש רגיל ו-3072 סיביות לשימוש מיוחד במקרים קיצוניים, זאת עד לשנת 2030. ארגון התקינה האמריקאי נוקט בגישה מחמירה יותר, לפי תקן NIST SP 800-57 נכון ליולי 2012 מפתח אסימטרי בגודל 3072 סיביות מקביל למפתח סימטרי בגודל 128 סיביות (מהסוג הנפוץ כיום באלגוריתם AES) ואילו לרמת בטיחות גבוהה, מפתח בגודל 15,360 סיביות יתאים ברמתו למפתח סימטרי בגודל 256 סיביות.

הדברים אמורים לגבי כל סוגי ההצפנה האסימטרית כולל חתימה דיגיטלית כגון DSA המבוססת על בעיית הלוגריתם הדיסקרטי, זאת בשל ההערכה כי בעיית לוגריתם דיסקרטי דומה בקושייה לבעיית פירוק לגורמים. יוצא מן הכלל הוא מערכת ההצפנה בעקום אליפטי (ECC). תקן FIPS PUB 186-4 שנכלל ב-Suite B של NSA, ממליץ על מפתח בגודל 256–384 סיביות שמקביל ברמתו למפתח סימטרי 128 סיביות, להצפנת מסמכים עבור הממשל האמריקאי ברמה של SECRET. לרמה של TOP SECRET ממליץ על 512 סיביות ומעלה. באופן כללי ההנחיה של NIST היא שמפתח ECC יהיה בערך כפול בגודלו ממפתח סימטרי. הערכה זו מניחה כי לא ידועה פריצת דרך משמעותית לפתרון הבעיה המתמטית עליה מבוססת ECC זאת כיוון שהאלגוריתמים הידועים אינם ישימים במערכת כזו.

פרימיטיבים קריפטוגרפיים[עריכת קוד מקור | עריכה]

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

פרוטוקולים ומנגנונים קריפטוגרפיים[עריכת קוד מקור | עריכה]

Postscript-viewer-shaded.png ערך מורחב – פרוטוקול קריפטוגרפי

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

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

קריפטוגרפיה ותורת הקוונטים[עריכת קוד מקור | עריכה]

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

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

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

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

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

הצפנה קוונטית[עריכת קוד מקור | עריכה]

Postscript-viewer-shaded.png ערכים מורחבים – הצפנה קוונטית, החלפת מפתחות קוונטית

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

חוקיות וזכויות שימוש[עריכת קוד מקור | עריכה]

מטבע הדברים, סגולותיה של הקריפטוגרפיה, ככלי לשמירה על פרטיות, מנוצלות לרעה על ידי גורמים זדוניים כמו ארגוני פשע, טרור וריגול. מאז ומתמיד ממשלות וגורמי ביטחון במדינות שונות גילו עניין רב בהתפתחויות בתחום זה. בכל מדינה כמעט קיים גוף האחראי על השימוש בהצפנה, מחקר ופיתוח וכן ניטור וניתוח של חומרים מוצפנים שקיים חשש שהם מסכנים את ביטחונה הלאומי. גם ארגוני זכויות אדם ברחבי העולם מגלים עניין בתחום זה בשל תרומתו לשמירת הפרטיות. בשל כך היו בעבר בארצות הברית מספר אירועים שערורייתיים, הקשורים בנושאים חוקתיים בתחום זה. ישנן מדינות (בהן ישראל) שבהן עד היום קיימות מגבלות חוקיות לעיסוק בקריפטוגרפיה ובכל מה שקשור אליה. בישראל קיים החל מ-1974 "צו צופן" [5] המחייב כל גורם המעוניין לעסוק בהצפנה בקבלת רישיון עיסוק בהצפנה ממנכ"ל משרד הביטחון (בעבר מקצין קשר ראשי בצה"ל). במדינות אחרות (כמו ארצות הברית), העיסוק בקריפטוגרפיה לא מוגבל מקומית אך קיימות מגבלות ייצוא של חומרים קריפטוגרפיים מחוץ לתחומי המדינה. למעשה בארצות הברית קריפטוגרפיה סווגה כסוג של "תחמושת" בדומה לטנק או טיל בליסטי, ובעבר אף נאסר שימוש בהצפנה חזקה בארצות הברית, כאשר הפיקוח על ההצפנה היה באחריות הסוכנות לביטחון לאומי (NSA) של ארצות הברית. NSA הוא הארגון הממשלתי הגדול והמצויד ביותר בעולם שעוסק בקריפטוגרפיה ומעסיק עשרות אלפי עובדים. מטרתו העיקרית ניטור, פענוח וחשיפת תשדורות או מידע דיגיטלי אחר ברחבי העולם, שלהם זיקה לביטחונה הלאומי של ארצות הברית. מדינות אחרות (בעיקר מדינות ארופיות) נוקטות בגישה יותר ליברלית בכל הקשור להצפנה.

על אלגוריתמים קריפטוגרפיים אפשר להגן (במדינות מסוימות, כגון ארצות הברית) בפטנטים. על המימוש שלהם אפשר להגן בזכויות יוצרים (אולם אם המפרט מפורסם, כל אחד יכול לממש אותם מחדש). אפשר לנסות גם לשמור אותם כסוד מסחרי. בארצות הברית, בקנדה ובמדינות רבות אחרות רשומים מאות פטנטים על סוגים שונים של אלגוריתמים קריפטוגרפיים. לדוגמה אלגוריתם RSA נרשם כפטנט שתוקפו פג בשנת 2000. בשל המגבלה שנוצרה מהפטנט נאלצה ממשלת ארצות הברית ליצור תקן חתימה אלקטרונית חלופי בשם DSA שלא מוגן בפטנטים[6]. אי הבהירות סביב הפטנטים שעל ההצפנה בעקומים אליפטיים (ר' בהמשך) היא אחת הסיבות לחוסר הפופולריות שלהם[דרוש מקור].

בארצות הברית (וגם בישראל) רשומים מספר פטנטים על אלגוריתמים שונים להצפנה. החברה האמריקאית RSA מחזיקה כיום במספר פטנטים הקשורים לאלגוריתמי הצפנה שונים[7]. אף ששם החברה הוא "RSA", הפטנטים שבבעלותה כיום אינם בהכרח קשורים לאלגוריתם המקורי. החברה הקנדית Certicom מחזיקה בכמאה ועשרים פטנטים בהיבטים שונים של ECC (הצפנת עקום אליפטי) בארצות הברית ובקנדה בלבד.

החל מאמצע שנות ה-90 של המאה העשרים היו כמה תחרויות של ממשלות לבחירת פרימיטיבים קריפטוגרפיים חדשים: תחרות AES של מכון התקנים האמריקאי[8], ‏NESSIE של האיחוד האירופי[9],‏ CRYPTEC ביפן[10]. בכל המקרים הללו אחד מהתנאים היה שהזוכים ישיקו את התוכנה ללא מגבלות שימוש כלשהן.

אזכורים בספרות[עריכת קוד מקור | עריכה]

כתב החידה מתוך ספרו של ז'ול ורן "מסע אל בטן האדמה"

ראו גם[עריכת קוד מקור | עריכה]

לקריאה נוספת[עריכת קוד מקור | עריכה]

  • A. S. Tanenbaum, Computer Networks, 4th ed. (Prentice Hall, 2003).

קישורים חיצוניים[עריכת קוד מקור | עריכה]

הערות שוליים[עריכת קוד מקור | עריכה]

  1. ^ Whitfield Diffie and Martin Hellman, "New Directions in Cryptography", IEEE Transactions on Information Theory, vol. IT-22, Nov. 1976, pp: 644–654. ‎
  2. ^ British Document Outlines Early Encryption Discovery
  3. ^ ריכוז מסמכים על שבב הקליפר מתוך אתר EPIC - מרכז מידע על פרטיות אלקטרונית
  4. ^ על פרסום סקיפג'ק - מתוך הבלוג של ברוס שנייר
  5. ^ עיסוק באמצעי הצפנה
  6. ^ ליתר דיוק: תקן DSA מוגן בפטנט, אולם השימוש בפטנט הותר ללא שום מגבלות. ר' הערך לפרטים נוספים
  7. ^ למשל, עבור אלגוריתמי ההצפנה RC6 וRC6‏, [1]‏.
  8. ^ דף הבית של תחרות AES
  9. ^ דף הבית של תחרות NESSIE. התחרות כונתה גם Crypto NESSIE. אולי במטרה ליצור בלבול עם קריפטוזואולוגיה
  10. ^ דף הבית של תחרות CRYPTEC
  11. ^ אברהם טוביאס, על כתב סתרים צופן וחידות בספרותנו העתיקה



ערך מומלץ
Article MediumPurple.svg