You are on page 1of 44

‫‪6/11/14‬‬ ‫מגמת סייבר‬ ‫דור שמויש‬

‫קריפטוגרפיה‪ :‬המדע העוסק באבטחת מידע ותקשורת נתונים‪.‬‬ ‫‪‬‬


‫‪ :Plaintext‬המסר המקורי‪.‬‬ ‫‪‬‬
‫‪ :Ciphertext‬המסר המוצפן‪.‬‬ ‫‪‬‬
‫הצפנה‪ :‬התהליך מ‪ Plaintext -‬ל‪.Ciphertext -‬‬ ‫‪‬‬
‫פענוח‪ :‬התהליך מ‪ Ciphertext -‬ל‪.Plaintext -‬‬ ‫‪‬‬
‫צופן‪ :‬שיטת ההצפנה הסודית (האלגוריתם)‪.‬‬ ‫‪‬‬
‫מפתח‪ :‬מידע קריטי שמשתמש בו אלגוריתם ההצפנה‪ ,‬הידוע‬ ‫‪‬‬
‫לשולח ולמקבל בלבד‪.‬‬
‫קריפטואנליזה‪ :‬ניסיון לגלות את ה‪ Plaintext -‬או את מפתח‬ ‫‪‬‬
‫ההצפנה או את שניהם‪.‬‬
‫קריפטולוגיה‪ :‬מאחד את הקריפטוגרפיה והקריפטאנליזיס‪.‬‬ ‫‪‬‬
‫מאז למדו בני‪-‬האדם לתקשר זה עם זה‪ ,‬היו גם מי שרצו להעביר‬ ‫‪‬‬
‫זה לזה מסרים סודיים באופן שאחרים לא יוכלו להבין אותם –‬
‫מלכים ומצביאים‪ ,‬קושרים ומהפכנים‪ ,‬אוהבים ותלמידים‪...‬‬
‫בשביל מה בכלל צריך הצפנה? מספר סיפורים מימי קדם‪:‬‬ ‫‪‬‬

‫‪ ‬גילוח ראש לשליחים‬


‫‪ ‬חותם המלך‬
‫‪ ‬צופן אתב"ש התנ"כי (בספר ירמיה)‬
‫‪ ‬צופן קיסר (שהשתמש בו קיסר רומא)‬

‫ולא רק בימי קדם‪ :‬סיפור בלצ'לי פארק ומכונת האניגמה‬ ‫‪‬‬


‫הגרמנית במהלך מלחה"ע ה‪.2-‬‬
‫תקשורת בין מחשבים היא גלויה לכולם‪.‬‬ ‫‪‬‬
‫לא ניתן לדעת בוודאות מי עומד בצד השני של הקו‪,‬‬ ‫‪‬‬
‫ולא ניתן להבטיח שאין צד שלישי שמאזין לתקשורת ומקבל‬ ‫‪‬‬
‫אליו את כל המידע שעובר‪.‬‬
‫אנא הכירו את הידועים בציבור של עולם הקריפטוגרפיה –‬
‫אליס ובוב! (והאויב המרושע – איב)‬

‫אליס רוצה לשלוח לבוב הודעה‪:‬‬


‫‪Sniffer Attack‬‬ ‫‪‬‬
‫סניפר זו תוכנה שיכולה לקרוא את המידע שעובר ברשת‪,‬‬ ‫‪‬‬
‫אך לשם כך צריך קודם כל להשיג גישה לרשת התקשורת‪,‬‬
‫וזה עלול להוות לעתים קושי בפני עצמו‪.‬‬
‫אם המידע לא מוצפן והתוקף הצליח להשיג גישה לרשת‪,‬‬ ‫‪‬‬
‫הוא יכול לקרוא את כל המידע ברשת בחופשיות‪.‬‬
‫אם המידע מוצפן ולתוקף אין את מפתח ההצפנה אז‬ ‫‪‬‬
‫הסניפר חסר תועלת‪.‬‬
‫‪Compromised-Key Attack‬‬ ‫‪‬‬

‫בהתקפה זו התוקף גונב את מפתח ההצפנה‪.‬‬ ‫‪‬‬


‫על אף שזה תהליך קשה ועתיר משאבים זה אפשרי‪.‬‬ ‫‪‬‬
‫בעזרת המפתח התוקף מקבל יכולת לפענח שיחות‬ ‫‪‬‬
‫מאובטחות ולשנות את המידע בהן‪.‬‬
‫‪Man-in-the-Middle Attack‬‬ ‫‪‬‬

‫בצורת התקפה זו אדם נעמד באמצע התקשורת בין שני‬ ‫‪‬‬


‫מחשבים‪ .‬מצב זה מתרחש בהחלפת מידע בשכבות‬
‫הנמוכות‪ ,‬שם המחשבים לא תמיד יכולים לדעת עם מי הם‬
‫מחליפים את מידע‪ .‬התוקף מנצל חולשה זו ומשכתב את‬
‫מסלול העברת המידע‪.‬‬
‫‪( Encryption‬הצפנה) ‪ -‬המרכיב העיקרי‪ ,‬יוסבר בהרחבה‬ ‫‪‬‬
‫בהמשך‪.‬‬
‫‪( Hashing‬גיבוב) ‪ -‬מרכיב חשוב נוסף‪ ,‬יוסבר בהרחבה‬ ‫‪‬‬
‫החל מהשקף הבא‪.‬‬
‫‪ - Masking‬הסתרה של חלקים מהמידע בעת הצגתו‪.‬‬ ‫‪‬‬
‫למשל‪ :‬הצגת ‪ 4‬הספרות האחרונות בלבד של מספר כרטיס‬
‫האשראי‪ .‬בשיטה זו ניתן (עם מאמץ מסוים) לשחזר את‬
‫המידע המוסתר ולכן יש להגן עליו בכל זאת‪.‬‬
‫‪ - Truncating‬הסרה של חלקים מהמידע לצמיתות‪.‬‬ ‫‪‬‬
‫למשל‪ :‬שמירה של ‪ 4‬הספרות האחרונות בלבד של כרטיס‬
‫האשראי במסד הנתונים (מטעמי אבטחה)‪ .‬בשיטה זו חלקי‬
‫מידע מוסרים לצמיתות ועל כן לא ניתן לשחזרם‪.‬‬
‫‪ Hashing‬הוא ביצוע פעולה מתמטית חד‪-‬כיוונית על קלט‬ ‫‪‬‬
‫שרירותי המחזירה פלט באורך קבוע‪.‬‬
‫פונקציית ה‪ hash -‬צריכה להיות פונקציה חד‪-‬כיוונית‬ ‫‪‬‬
‫שקשה מאוד להפוך אותה (מבחינה חישובית!)‪.‬‬
‫בשונה מהצפנה‪ hashing ,‬יכול לתת פלט זהה עבור‬ ‫‪‬‬
‫קלטים שונים ולכן לא ניתן להפוך פעולה זו‪ ,‬וב‪hashing -‬‬
‫אנו מראש לא מעוניינים להיות מסוגלים להפוך את הפעולה‪.‬‬
‫השימוש ב‪ hashing -‬הוא כאשר רוצים לאמת מידע‪ .‬כדי‬ ‫‪‬‬
‫לאמת את המידע מפעילים עליו את פונקציית ה‪hash -‬‬
‫ומשווים עם התוצאה שמצפים לה (שמאוחסנת בטבלה)‪.‬‬
‫כשנרשמים לאתר ויוצרים סיסמה‪ ,‬האתר שומר אצלו רק‬ ‫‪‬‬
‫‪ hash‬של הסיסמה כדי שאם יפרצו למסד הנתונים שלו לא‬
‫יוכלו לקבל את הסיסמה עצמה (שאולי המשתמש משתמש‬
‫בה גם באתרים אחרים)‪ ,‬וכשהמשתמש עושה ‪ login‬האתר‬
‫מפעיל את פונקציית ה‪ hash -‬על הסיסמה שהוזנה ומשווה‬
‫עם התוצאה ששמורה אצלו במסד‪.‬‬
‫לאתר אין צורך להיות מסוגל לשחזר את הסיסמה עצמה‪,‬‬ ‫‪‬‬
‫הוא צריך רק להיות מסוגל להגיד בהינתן סיסמה שהוכנסה‪,‬‬
‫אם היא הסיסמה הנכונה או לא‪ ,‬ולכן הוא יכול להשתמש ב‪-‬‬
‫‪ hashing‬ולא בהצפנה‪.‬‬
‫‪ – MD5‬פונקציית ‪ hash‬קריפטוגרפית שהומצאה ע"י רונלד‬ ‫‪‬‬
‫ריבסט (אותו אחד מ‪ )RSA -‬בשנת ‪ .1991‬מחזירה ערך של‬
‫‪ 128‬ביטים שמיוצג לרוב ע"י מספר הקסדצימלי בן ‪32‬‬
‫ספרות‪ .‬נמצאת בשימוש רחב במגוון יישומים קריפטוגרפיים‬
‫ונמצאת בשימוש נפוץ לצורכי ‪( data integrity‬וידוא של‬
‫שלמות ומהימנות המידע)‪.‬‬
‫ב‪ 1996 -‬נמצא פגם באלגוריתם‪ ,‬ואפילו שהוא לא נחשב‬ ‫‪‬‬
‫לחולשה חמורה במיוחד באותה תקופה‪ ,‬זה הוביל למעבר‬
‫לשימוש באלגוריתמים אחרים‪ ,‬כגון ה‪MD5 .SHA-1 -‬‬
‫עדיין נמצא בשימוש רב כיום לצורכי בדיקת שלמות המידע‬
‫(כשמורידים קובץ למשל)‪.‬‬
‫‪ – SHA-1, SHA-2‬פונקציות ‪ hash‬שהומצאו ע"י ה‪NSA -‬‬ ‫‪‬‬
‫(‪ .)National Security Agency‬ראשי התיבות הן‪:‬‬
‫‪.SHA – Secure Hash Algorithm‬‬
‫ה‪ SHA-1 -‬היא פונקציית ‪ hash‬שפורסמה לראשונה ב‪.1995 -‬‬ ‫‪‬‬
‫היא מחזירה ערך של ‪ 160‬ביטים‪ .‬זוהי הפונקציה שהכי נמצאת‬
‫בשימוש מבין הפונקציות ממשפחת ה‪ ,SHA -‬והיא נמצאת‬
‫בשימוש ביישומים ובפרוטוקולים נפוצים רבים (ביניהם ה‪.)SSL -‬‬
‫בשנת ‪ 2005‬מצאו התקפות על ה‪ SHA-1 -‬שמעידות על כך‬ ‫‪‬‬
‫שהאלגוריתם עלול להיות לא בטיחותי מספיק לשימוש‪ ,‬ובעקבות‬
‫כך החלו לעבור לשימוש ב‪ ,SHA-2 -‬שאמנם דומה ל‪SHA-1 -‬‬
‫אלגוריתמית‪ ,‬אך לא נמצאו התקפות עליו עד כה ועד ‪2017‬‬
‫שירותים רבים צפויים לעבור ל‪ SHA-2 -‬ולהפסיק לתמוך ב‪-‬‬
‫‪ ,SHA-1‬וסוכנויות ממשלתיות עברו ל‪ SHA-2 -‬כבר ב‪.2010 -‬‬
‫‪ SHA-2‬שפורסמה לראשונה בשנת ‪ 2001‬היא למעשה‬ ‫‪‬‬
‫משפחה של ‪ 6‬פונקציות ‪ hash‬שנבדלות רק במספר פרטים‬
‫קטנים מאוד (ביניהם כמות הביטים בתוצאה שהפונקציה‬
‫מחזירה‪ ,‬שיכולה להיות ‪ 384 ,256 ,224‬או ‪ 512‬ביט) והן‬
‫למעשה זהות במבנה שלהן‪.‬‬
‫ה‪ SHA-2 -‬הוא כאמור שיפור של קודמו‪ ,‬ה‪ ,SHA-1 -‬הוא‬ ‫‪‬‬
‫בטיחותי יותר וקשה יותר לתקיפה‪ ,‬וכיום הוא בתהליך של‬
‫להחליף את מקומו של ה‪ SHA-1 -‬ביישומים ובפרוטוקולים‪.‬‬
‫התהליך המתמטי המשמש על מנת להצפין את הטקסט‪.‬‬ ‫‪‬‬
‫יש אלגוריתמים סימטריים‪ ,‬א‪-‬סימטריים‪ ,‬אלגוריתמים‬ ‫‪‬‬
‫המבוססים על אותיות וסמלים ואלגוריתמים המבוססים על‬
‫על שינויי סיביות (ביטים)‪.‬‬
‫‪y = x +2‬‬

‫הטקס המוצפן‬ ‫הטקס הרגיל‬ ‫מפתח ההצפנה‬


‫רק השולח ומקבל ההודעה יוכלו להבין את תוכנה‪ .‬וחשוב‬ ‫‪‬‬
‫לא פחות – אלגוריתם ההצפנה חייב להיות חזק‪ ,‬אחרת‬
‫ההצפנה תישבר‪.‬‬
‫אימות – כל צד יוכל לאמת את זהותו‪.‬‬ ‫‪‬‬
‫בטיחון במידע – השולח והמקבל רוצים לוודא שההודעה לא‬ ‫‪‬‬
‫שונתה במהלך שליחתה ומעברה באינטרנט ואם שונתה אז‬
‫שיוכלו לעלות על כך‪.‬‬
‫‪ ‬הצפנה צריכה להיות חזקה‪ ,‬זאת אומרת שאם תוקף יודע‪:‬‬
‫‪ ‬את האלגוריתם‬
‫‪ ‬חלקים מהטקסט המקורי‬
‫‪ ‬חלקים מהטקסט המוצפן‬
‫‪ ‬הוא לא יוכל לגלות את מפתח ההצפנה שיפענח את כל‬
‫הטקסט‪.‬‬
‫שיטת הצפנה זו הייתה השיטה היחידה בשימוש עד שנות ה‪-‬‬
‫‪ 70‬והיא עדיין נמצאת בשימוש נרחב גם כיום‪.‬‬
‫השולח והמקבל משתמשים באותו מפתח שנשמר בסוד (וזה‬
‫אמנם החוזק של ההצפנה אך בו‪-‬זמנית זה גם החיסרון שלה)‪.‬‬
‫אותו מפתח משמש גם להצפנה וגם לפענוח‪.‬‬
‫לפני המצאת המחשב ההצפנות נטו להיות מבוססות שפה ואותיות‬ ‫‪‬‬
‫כל ההצפנות הקלאסיות הן הצפנות סימטריות‪.‬‬
‫צופן קיסר (‪ – )Caesar Cipher‬בהצפנה זו יש הזזה מעגלית של‬ ‫‪‬‬
‫אותיות הא"ב‪ .‬הקשר בין אות בטקסט המקורי לאות בטקסט‬
‫המוצפן הוא ‪ 1‬ל‪.1 -‬‬
‫צופן החלפה ‪ -‬בהצפנה זו משתמשים במיפוי אקראי של‬ ‫‪‬‬
‫אותיות הא"ב‪.‬‬
‫הקשר בין אות בטקסט המוצפן לאות בטקסט המקורי הוא ‪1‬‬ ‫‪‬‬
‫להרבה‪.‬‬
‫הצפנות מודרניות‪ :‬הצפנת ביטים – במקום להצפין אותיות‬ ‫‪‬‬
‫מצפינים ביטים‪.‬‬
‫הצפנת ‪ :XOR‬בהצפנה זו בוחרים מפתח שהוא רצף סיביות‬ ‫‪‬‬
‫אקראי ומבצעים פעולת ‪ XOR‬על כל הטקסט‪.‬‬
‫ככל שמפתח ההצפנה גדול יותר‪ ,‬יותר קשה לפענח את‬ ‫‪‬‬
‫המסר‪.‬‬
‫הצפנה זו שכיחה מאוד בצפנים מורכבים יותר‪.‬‬ ‫‪‬‬
‫היתרון העיקרי‪ :‬קל ליישום וזול‪.‬‬ ‫‪‬‬
‫בשימוש בהצפנה זו ללא עוד אלגוריתמים ומפתח חוזר על‬ ‫‪‬‬
‫עצמו ניתן לפענח את הצפנת ה‪ XOR -‬באמצעות ניתוח‬
‫תדירות הופעת תוים‪.‬‬
‫שיטות ממוחשבות ליצירת מפתחות סודיים משתמשות בהרבה‬ ‫‪‬‬
‫מחזורים של שחלוף וערבול‪.‬‬
‫השיטה הנפוצה ביותר שהייתה נהוגה ליצירת מפתחות סודיים‬ ‫‪‬‬
‫בדרך זו‪ ,‬ה‪( DES -‬שפורסם ב‪ 1977 -‬והפך לסטנדרט ב‪)1979 -‬‬
‫מבצעת ‪ 16‬מחזורים של שחלוף וערבול על קבוצות של ‪8‬‬
‫אותיות‪ .‬כל קבוצה כזאת נקראת בלוק‪.‬‬
‫מאוחר יותר נכנס לשימוש ‪ 3DES‬שמבצע פי ‪ 3‬יותר מחזורים‬ ‫‪‬‬
‫וכך מגדיל את חוזק ההצפנה‪.‬‬
‫ה‪ ,DES -‬אם כן‪ ,‬הוא אלגוריתם הצפנה סימטרי (להזכירכם‪ ,‬זו‬ ‫‪‬‬
‫הצפנה שבה ידיעת מפתח ההצפנה מביאה לגילוי מיידי של‬
‫מפתח הפענוח)‪ ,‬ששייך למשפחה של הצפנות על בלוקים של‬
‫מידע בעלי אורך קבוע‪ .‬על כל בלוק מופעל אלגוריתם קבוע של‬
‫הצפנה‪.‬‬
‫לצופן כזה קוראים צופן בלוקים )‪.(Block Cipher‬‬ ‫‪‬‬
‫תאור האלגוריתם‪:‬‬ ‫‪‬‬

‫למפתח הסודי ‪ ,K‬בוחרים המשתמשים ‪ 7‬תווים של ‪8‬‬ ‫‪‬‬


‫ביטים‪ ,‬בסך הכל ‪ 56‬ביטים‪ .‬ה‪ DES -‬מוסיף ‪ 8‬ביטים נוספים‬
‫המשמשים לביקורת‪ ,‬וכך מתקבל מפתח של ‪ 64‬ביטים‪.‬‬
‫בעזרת ‪ ,K‬יוצרים תמורה התחלתית על בלוק הנתונים בן‬ ‫‪‬‬
‫‪ 64‬הביטים‪.‬‬
‫מבצעים ‪ 16‬מחזורים של ערבול ושחלוף של בלוק הנתונים‪.‬‬ ‫‪‬‬
‫על הבלוק הסופי (אחרי המחזור ה ‪ ,)16 -‬מבצעים תמורה‬ ‫‪‬‬
‫הופכית לתמורה ההתחלתית‪.‬‬
‫‪ 64‬הביטים שהתקבלו הם המסר המוצפן‪.‬‬ ‫‪‬‬
‫הפענוח מבוצע באמצעות מפתח ההצפנה‪ ,‬על ידי חזרה על‬ ‫‪‬‬
‫הליכי ההצפנה בסדר הפוך‪ ,‬והם‪:‬‬

‫מבצעים תמורה התחלתית על בלוקים של הצופן‪.‬‬ ‫‪‬‬


‫מבצעים ‪ 16‬מחזורים של ערבול ושחלוף הפוכים לאלה‬ ‫‪‬‬
‫שבוצעו בהצפנה‪.‬‬
‫מבצעים תמורה הפוכה על כל בלוק של הנתונים‪.‬‬ ‫‪‬‬
‫סטנדרט הצפנה סימטרית שפורסם לראשונה ב‪1998 -‬‬ ‫‪‬‬
‫והפך לסטנדרט ב‪ .2001 -‬הוא מבוסס על צופן ‪Rijndael‬‬
‫שפותח ע"י שני קריפטוגרפים בלגיים‪.‬‬
‫ה‪ AES -‬בא להחליף את קודמו ה‪ ,DES -‬שהתגלו בו‬ ‫‪‬‬
‫חולשות מאז שנכנס לשימוש‪ .‬ה‪ ,AES -‬בדומה ל‪ ,DES -‬הוא‬
‫צופן בלוקים שמבצע מספר מחזורים של שחלוף וערבול (אם‬
‫כי הפרטים יותר מסובכים במקרה זה)‪.‬‬
‫אך בשונה מה‪ ,DES -‬הוא מורכב ממשפחה של צפנים עם‬ ‫‪‬‬
‫אורכי מפתחות משתנים‪ ,‬וכמות המחזורים שמבצע‬
‫האלגוריתם הוא ‪ 12 ,10‬או ‪ 14‬בהתאם לאורך המפתח‪.‬‬
‫כל החולשות שהתגלו ב‪ AES -‬עד כה אינן מאפשרות לפרוץ‬ ‫‪‬‬
‫אותו במגבלות הטכנולוגיות של היום‪ ,‬ולכן הוא נחשב‬
‫לאלגוריתם בטוח והוא נמצא בשימוש במשרדים ממשלתיים‬
‫ובעוד יישומים אחרים‪.‬‬
‫לפי ה‪ ,NSA -‬אם משתמשים במפתח מספיק ארוך (‪192‬‬ ‫‪‬‬
‫ביט או ‪ 256‬ביט)‪ ,‬האלגוריתם מספיק חזק ובטיחותי גם כדי‬
‫להגן על המידע המסווג ביותר‪ .‬להגנה על מידע ברמות סיווג‬
‫נמוכות יותר מספיק להשתמש במפתח באורך ‪ 128‬ביט‪.‬‬
‫‪ ‬בעיות של הצפנה סימטרית‪:‬‬
‫‪ .1‬איך להעביר את המפתח בצרה סודית?‬
‫‪ .2‬אין ביטחון שהאדם ששלח את ההודעה הוא אותו האדם שאתה‬
‫חושב – אין חתימה‪.‬‬
‫‪ ‬הצפנה א‪-‬סימטרית פותרת את הבעיות האלו והיא נחשבת לקשה‬
‫מאוד לפענוח‪.‬‬
‫‪ ‬בהצפנה א‪-‬סימטרית יש ‪ 2‬מפתחות‪:‬‬
‫‪ .1‬מפתח ציבורי – בו משתמשים להצפנת המידע (לא לפענוח!)‪ .‬על‬
‫מפתח זה אין סודיות‪ ,‬כלומר כל מי שרוצה לשלוח מידע למחשב‬
‫(והמחשב נתן אישור) מקבל מפתח ציבורי (מהמחשב) שאיתו הוא‬
‫יצפין את המידע‪.‬‬
‫‪ .2‬מפתח פרטי – בו משתמשים לפענוח המידע בלבד‪ .‬מפתח זה גלוי‬
‫רק למחשב שיצר אותו ואינו נשלח כלל ברשת‪ ,‬כלומר אין סכנת‬
‫גניבה‪.‬‬
‫דוגמת בוב ואליס‪:‬‬
‫בוב רוצה לשלוח לאליס הודעה‪ ,‬ושולח בקשה לאליס‪.‬‬ ‫‪.1‬‬

‫אליס מאשרת‪ ,‬מייצרת שני מפתחות‪ ,‬פרטי וציבורי‪ ,‬ונותנת לו את המפתח הציבורי שלה‪.‬‬ ‫‪.2‬‬

‫בוב מצפין את ההודעה שלו בעזרת המפתח הציבורי של אליס‪ ,‬ושולח אותה‪.‬‬ ‫‪.3‬‬

‫אליס מקבלת את ההודעה של בוב ומפענחת אותה בעזרת המפתח הפרטי שלה (שידוע‬ ‫‪.4‬‬
‫רק לה)‪.‬‬
‫דוגמת בוב ואליס‪:‬‬ ‫‪‬‬

‫בוב רוצה לשלוח לאליס הודעה‪.‬‬ ‫‪‬‬

‫בוב מייצר שני מפתחות (ציבורי ופרטי) ומצפין את ההודעה שלו‬ ‫‪‬‬
‫באמצעות המפתח הפרטי שלו‪.‬‬
‫לכל מי שיש את המפתח הציבורי של בוב יכול לפענח את ההודעה‬ ‫‪‬‬
‫של בוב‪.‬‬
‫אליס רוצה לתקשר עם בוב באמצעות מפתח סודי משותף‬ ‫‪‬‬
‫(סימטרי)‪.‬‬
‫היא יוצרת את המפתח‪.‬‬ ‫‪‬‬
‫היא שולחת את המפתח באמצעות השיטה הא‪-‬סימטרית‬ ‫‪‬‬
‫(מצפינה עם המפתח הציבורי של בוב ובוב מפענח עם המפתח‬
‫הפרטי שלו)‪.‬‬
‫כעת אליס ובוב יכולים לתקשר עם המפתח המשותף שלהם‬ ‫‪‬‬
‫באמצעות הצפנה סימטרית כי אין סכנה שמישהו גילה את‬
‫המפתח מלבדם‪.‬‬
‫היתרון של שיטה זו הוא חיסכון בזמן כי הצפנת טקסט שלם‬ ‫‪‬‬
‫ופענוחו בשיטה הא‪-‬סימטרית לוקח יותר זמן מאשר השיטה‬
‫הסימטרית‪.‬‬
‫פותחה על ידי‪ :‬רונלד יבסט‪ ,‬עדי מיר ולאונרד דלמן‬ ‫‪‬‬
‫) בשנת ‪( 1977‬תוקף הפטנט פג בספטמבר ‪.)2000‬‬ ‫(‬
‫נפוץ וידוע מאוד בשימושים של אבטחת מידע‪.‬‬ ‫‪‬‬
‫זהו האלגוריתם האסימטרי המעשי הראשון שהומצא‬ ‫‪‬‬
‫והראשון ששימש גם לחתימה דיגיטלית‪.‬‬
‫משתמש בשני מספרים גדולים מאוד כמפתחות כך שאין‬ ‫‪‬‬
‫סכנת ‪.brute force attack‬‬
‫התהליך המתמטי‪:‬‬ ‫‪‬‬
‫בוחרים שני מספרים ראשוניים ‪ p‬ו‪.q -‬‬ ‫‪‬‬

‫מחשבים את‪.n=pq :‬‬ ‫‪‬‬

‫‪ n‬הוא חלק מהמפתח הציבורי‪.‬‬ ‫‪‬‬

‫מחשבים‪.ɸ)n) = (p-1)(q-1) :‬‬ ‫‪‬‬

‫בוחרים שלם )‪ 1 > e > ɸ)n‬שזר ל )‪ ,ɸ)n‬והוא המפתח הפרטי‪.‬‬ ‫‪‬‬

‫מחשבים את ‪ d‬המקיים‪ ,d*e mod n = 1 :‬והוא המפתח הציבורי‪.‬‬ ‫‪‬‬

‫‪‬‬ ‫‪p=17, q=11, n = 11*17 = 187‬‬


‫‪‬‬ ‫‪ɸ)n) = 160‬‬
‫‪‬‬ ‫)‪e = 7 )gcd)ɸ)n), e) = 1‬‬ ‫‪private key‬‬
‫‪‬‬ ‫)‪d = 23 (23*7 mod 160 = 1‬‬ ‫‪public key‬‬
‫הצפנה‪:‬‬ ‫‪‬‬
‫פענוח‪:‬‬ ‫‪‬‬
‫דוגמא‪:‬‬ ‫‪‬‬

‫הערה‪ :‬במציאות ‪ p, q‬גדולים מאוד (מאוד‪ )...‬כמו‪:‬‬


‫‪Q = 359334085968622831041960188598043661065388726959079837‬‬
‫צופן אל‪-‬גמאל נמנה בין שיטות ההצפנה המנצלות מספר‬ ‫‪‬‬
‫אקראי בתהליך ההצפנה ועל כן נקראות צופן אקראי‪ ,‬בניגוד‬
‫לשיטות הצפנה דטרמיניסטיות‪.‬‬
‫הרעיון הבסיסי מאחורי צופן אקראי הוא הוספת אקראיות‬ ‫‪‬‬
‫לתהליך ההצפנה באופן כזה שבכל הצפנה של אותו מסר‬
‫יתקבל טקסט מוצפן אחר גם עם אותם מפתחות הצפנה‪.‬‬
‫זאת בניגוד לאלגוריתם ‪ RSA‬למשל שהוא צופן דטרמיניסטי‬ ‫‪‬‬
‫באופיו כיוון שבכל הצפנה של אותו מסר עם מפתחות‬
‫הצפנה זהים יתקבל טקסט מוצפן זהה‪ ,‬וכך ניתן לעתים‬
‫לקבל מידע מסוים על חלקים מהטקסט שהוצפן‪.‬‬
‫להצפנת אל‪-‬גמאל יש לפיכך יתרון לעומת ה‪.RSA -‬‬ ‫‪‬‬
‫הכנת מפתחות‪:‬‬ ‫‪‬‬

‫אליס בוחרת מספר ראשוני גדול 𝑝 ויוצר 𝑔 של החבורה‬ ‫‪‬‬


‫הכפלית של השלמים מודולו 𝑝‪.‬‬
‫אליס בוחרת שלם אקראי 𝑎 בטווח ‪1 ≤ 𝑎 ≤ 𝑝 − 2‬‬ ‫‪‬‬
‫ומחשבת את 𝑝 ‪.𝑔𝑎 mod‬‬
‫המפתח הפומבי של אליס הוא )𝑝 ‪ (𝑝,𝑔,𝑔𝑎 mod‬והמפתח‬ ‫‪‬‬
‫הפרטי הוא 𝑎‪.‬‬
‫הצפנת המסר 𝑚‪:‬‬ ‫‪‬‬

‫בוב בוחר שלם אקראי 𝑘 בטווח ‪.1 ≤ 𝑘 ≤ 𝑝 − 2‬‬ ‫‪‬‬

‫מחשב את 𝑝 ‪,𝛾 = 𝑔𝑘 mod‬‬ ‫‪‬‬

‫ואת 𝑝 ‪.𝛿 = 𝑚 ∙ 𝑔𝑎 𝑘 mod‬‬ ‫‪‬‬


‫בוב שולח את הצופן )𝛿‪ 𝑐 = (𝛾,‬לאליס‪.‬‬ ‫‪‬‬
‫פענוח‪:‬‬ ‫‪‬‬

‫בעזרת המפתח הפרטי אליס מחשבת תחילה את‬ ‫‪‬‬


‫𝑝 ‪.𝛾 𝑝−1−𝑎 mod‬‬
‫אליס משחזרת את 𝑚 ע"י חישוב‪. 𝛾 −𝑎 ∙ 𝛿 mod 𝑝 :‬‬ ‫‪‬‬

‫הערה‪ 𝛾 −𝑎 mod 𝑝= 𝛾 𝑝−1−𝑎 mod 𝑝 :‬שאותו חישבנו‪.‬‬ ‫‪‬‬

‫זה עובד כי 𝑚 = 𝑝 ‪. 𝛾 −𝑎 ∙ 𝛿 mod 𝑝 = 𝑔−𝑎𝑘 ∙ 𝛿 mod‬‬ ‫‪‬‬


‫השם של התהליך למציאת הטקסט המפורש או המפתח‪.‬‬
‫שתי דרכים עיקריות‪:‬‬

‫‪ – Brute Force‬לנסות את כל האופציות שקיימות למפתח‪.‬‬ ‫‪‬‬


‫אם המפתח ארוך מדי אז בלתי אפשרי לשבור את ההצפנה‬
‫באופן מעשי‪.‬‬

‫ניצול חולשות של האלגוריתם או של המפתח (למשל אם‬ ‫‪‬‬


‫המפתח נוצר ע"י המשתמש כמו סיסמה)‪.‬‬
‫צופן החלפה‬ ‫צופן קיסר‬

‫בלתי אפשרי‬ ‫המפתח הוא מספר אחד בין ‪ 1‬ל‪25 -‬‬ ‫‪Brute Force‬‬
‫המפתח הוא באורך ‪( 26‬הקשר בין‬ ‫והקשר בין האתיות בטקסט המוצפן‬
‫אות בטקסט המוצפן לאות בטקסט‬ ‫לטקסט הרגיל הוא ‪ 1‬ל‪ .1-‬לכן צריך‬
‫הרגיל הוא ‪ 1‬ל‪ ,)26-‬מספר‬ ‫פשוט לנסות ‪ 25‬אופציות ‪ -‬קל מאוד‪.‬‬
‫האפשרויות למפתח הוא‪:‬‬
‫‪.26! = 4*10^26‬‬

‫הסטטיסטיקה של אותיות האנגלית‬ ‫אלגוריתם פשוט ומפתח קצר‪.‬‬ ‫חולשת‬


‫ידועה לכן אפשר לגלות את הטקסט‬ ‫האלגוריתם‬
‫המקורי על ידי ניתוח תדירויות‬
‫האותיות וניתוח תדירויות של‬
‫צירופים – קל מאוד‪.‬‬
‫מחשב קוונטי הוא מכונה המעבדת נתונים תוך שימוש ישיר בתכונות‬ ‫‪‬‬
‫של מכניקת הקוונטים כגון סופרפוזיציה ושזירה קוונטית‪ .‬מחשב קוונטי‬
‫שונה ממחשב רגיל‪ ,‬הוא משתמש בקיוביט (ביט קוונטי) במקום ביט‬
‫כיחידת המידע הבסיסית‪ ,‬והפעולות הבסיסיות שניתן לבצע על קיוביטים‬
‫שונות מהשערים הלוגיים העומדים בבסיסו של מחשב קלאסי‪ .‬ישנן בעיות‬
‫שמחשב קוונטי מסוגל לפתור ביעילות גבוהה יותר מאשר האלגוריתם‬
‫המיטבי האפשרי עבור מחשב קלאסי רגיל‪.‬‬
‫בשנת ‪ 1994‬פיתח מדען המחשב פיטר שור את אלגוריתם שור לפירוק‬ ‫‪‬‬
‫לגורמים באמצעות חישוב קוונטי שיש לו סיבוכיות ריצה טובה בהרבה‬
‫מכל האלגוריתמים ה"רגילים" הידועים כיום‪ .‬בעזרתו ניתן לגלות מה‪n -‬‬
‫שבמפתח הפומבי את ה‪ p -‬וה‪( q -‬ע"י פירוק לגורמים)‪ ,‬ואז ניתן לחשב‬
‫בקלות את )‪ ɸ)n) = (p-1)(q-1‬ואז כבר ניתן לקבל את המפתח הפרטי‬
‫‪ d‬מתוך המפתח הפומבי ‪( e‬צריך פשוט להפוך את ‪ e‬מודולו )‪.)ɸ)n‬‬
‫הגדרנו מושגים בסיסיים חשובים הקשורים להצפנה‪.‬‬ ‫‪‬‬
‫דיברנו על הצורך בהצפנה שמחזיר אותנו אחורה לימי קדם‪.‬‬ ‫‪‬‬
‫מנינו ‪ Security Services‬שמשתמשים בקריפטוגרפיה‪.‬‬ ‫‪‬‬

‫דיברנו על סוגי התקפות על תקשורת מחשבים שבגללן יש‬ ‫‪‬‬


‫צורך להצפין את התקשורת‪.‬‬
‫חילקנו את הקריפטוגרפיה ל‪ 4-‬מרכיבים עיקריים‪ :‬הצפנה‪,‬‬ ‫‪‬‬
‫‪ masking ,hashing‬ו‪.truncating -‬‬
‫הסברנו בקצרה על ‪ masking‬ו‪ ,truncating -‬על‬ ‫‪‬‬
‫ההבדלים ביניהם וקצת על השימוש בהם‪.‬‬
‫דיברנו על ‪ ,hashing‬ההבדל בינו לבין הצפנה‪ ,‬דוגמה‬ ‫‪‬‬
‫לשימוש‪ ,‬ופונקציות ‪ hash‬מפורסמות שנמצאות בשימוש‬
‫כיום והן‪ SHA-1 ,MD5 :‬ו‪.SHA-2 -‬‬
‫דיברנו על הצפנות סימטריות (אותו מפתח להצפנה‬ ‫‪‬‬
‫ולפענוח)‪ ,‬ביניהן צופן קיסר‪( DES ,‬וגם ‪ )3DES‬ו‪.AES -‬‬
‫דיברנו גם על הצפנות א‪-‬סימטריות (יש מפתח פומבי‬ ‫‪‬‬
‫ומפתח פרטי נפרד)‪ ,‬ביניהן ‪ RSA‬ו‪ ElGamal -‬האקראית‪.‬‬
‫לבסוף‪ ,‬דיברנו קצת על קריפטואנליזה ועל דרכים לשבור‬ ‫‪‬‬
‫צופן החלפה‪ ,‬וגם על חישוב קוונטי המאפשר לשבור את‬
‫הצפנת ה‪.RSA -‬‬

You might also like