צופן קיסר

Download Report

Transcript צופן קיסר

‫פרויקט הצופן‬
‫מגיש‪ :‬אור יצחקי‬
‫מטרות הפרויקט‬
‫• ללמוד באופן מודרך את נושא ההצפנה‪ ,‬להכיר‬
‫שיטות הצפנה ושיקולים בבחירתן לפרויקט‪.‬‬
‫• להתנסות במימוש חלק מהרעיונות התיאורטיים‪,‬‬
‫ובהתמודדות עם הסוגיות העקרוניות והטכניות‬
‫שעולות בעת מימוש כזה‪.‬‬
‫‪2‬‬
‫על מה נדבר בשיעור זה?‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪3‬‬
‫מהי קריפטוגרפיה?‬
‫מהי הצפנה?‬
‫למה התחילו להשתמש בצפנים?‬
‫איך התפתח הצופן‪ ,‬מימי יוון העתיקה ועד ימינו‬
‫צופן קיסר‬
‫צופן החלפה מקרי‬
‫השימושים של צפנים כיום‬
‫לאן אנו צופים להגיע בעתיד‬
‫מהי קריפטוגרפיה?‬
‫השם "קריפטוגרפיה" (‪ )Cryptography‬מקורו‬
‫במילה היוונית "קריפטו" שמשמעותה נסתר או‬
‫אומנות ההסתרה‪ ,‬ו"גרפיה" שמשמעותה רישום‪.‬‬
‫בתרגום חופשי נעשה שימוש בשם באופן חליפי‬
‫למונח קריפטולוגיה שפירושו תורת ההסתרה‪ ,‬אם‬
‫כי משמעותו רחבה יותר מתחום ההצפנה בלבד‪.‬‬
‫‪4‬‬
‫מהי הצפנה?‬
‫‪5‬‬
‫הצפנה (‪ )Encoding‬היא הסתרת משמעותו של‬
‫מסר קריא באמצעות פונקציות ההופכות את המסר‬
‫לרצף של סימנים המכונה צופן‪ ,‬כך שהצופן אינו‬
‫קריא למי שבידו אין את מפתח ההצפנה‬
‫(‪ )Encryption key‬המתאים כדי לשחזרו‪.‬‬
‫שחזור הטקסט המוצפן למצב הקריא באמצעות‬
‫מפתח ההצפנה‪ ,‬נקרא פענוח (‪.)Decoding‬‬
‫בנוסף‪ ,‬יש אפשרות לגלות את מפתח ההצפנה‪,‬‬
‫וזה נקרא "לפרוץ" או "לשבור" את הצופן‪break ( .‬‬
‫‪)the cipher‬‬
‘A’ = ‘Z’, ‘B’ = ‘@’, ‘C’ = ‘s’
Encryption
Decryption
6
‫האם התוכנית הבאה מבצעת הצפנה‬
‫חוקית?‬
‫אם לא? למה?‬
‫‪7‬‬
‫למה התחילו להשתמש בצפנים?‬
‫השימוש בהצפנה התרחב בתקופת יוון העתיקה‪.‬‬
‫בהתחלה השתמשו בשינוי מקום האותיות‪ ,‬למשל‬
‫על ידי גליל הצפנה‪ .‬לאחר מכן השתמש יוליוס‬
‫קיסר‪ ,‬בצופן החלפה‪ .‬כל אות מתחלפת עם אות‬
‫אחרת‪ ,‬על פי חוקיות מסוימת‪.‬‬
‫שימושים אלו היו למטרות מלחמה‪,‬‬
‫והעברת מסרים בין מצביאים ללא‬
‫סכנה של נפילת המידע לאויב‪.‬‬
‫‪8‬‬
‫צופן קיסר‬
‫צופן קיסר הוא אחד הצפנים הפשוטים והידועים‬
‫בעולם ההצפנה‪ .‬זהו סוג של צופן החלפה שבו כל‬
‫אות מוחלפת על ידי אות אחרת בהיסט קבוע‬
‫(‪ .)offset‬בשיטה יש ‪ 25‬אפשרויות הזזה ולכן היא‬
‫נחשבת בין הצפנים הפשוטים ביותר לפענוח‪.‬‬
‫‪9‬‬
‫צופן החלפה מקרי‬
‫צופן החלפה מקרי הוא צופן שבו האותיות‬
‫מתחלפות אחת עם השניה ללא היסט או סדר‬
‫מסוים‪ ,‬בעצם בצורה שרירותית לחלוטין‪.‬‬
‫כמות ההחלפות היכולה להתבצע במקרה כזה היא‬
‫‪!26‬‬
‫עכשיו תנסו אתם לחשב זאת‬
‫‪10‬‬
‫ניסיון פיענוח הצופן על ידי הצבה‬
‫נסו להשלים את הפונקציה הבאה בפייטון שתחשב‬
‫לכם עצרת של מספרים‪.‬‬
‫‪11‬‬
‫הפרויקט שלי‬
‫הפרויקט שלי מחולק ל‪ 3‬תוכניות ראשיות ‪:‬‬
‫• תוכנית המצפינה את הטקסט‪.‬‬
‫• תוכנית המפענחת את הטקסט בעזרת מפתח‬
‫הנקלט מהמשתמש‪.‬‬
‫• תוכנית אשר פורצת את הטקסט באמצעות שיטת‬
‫התדירויות‪.‬‬
‫‪12‬‬
‫התוכנית הראשונה‪ :‬המצפינה‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪13‬‬
‫מקבלת טקסט מסוים‪.‬‬
‫מוחקת לו את הרווחים בין המילים‪.‬‬
‫בונה לו מפתח החלפות‪.‬‬
‫מצפינה את הטקסט‪.‬‬
‫מדפיסה אותו למשתמש‪ ,‬ואת מפתח ההצפנה‪.‬‬
‫העצם ‪:Dict‬‬
‫• זהו סוג של מערך‪ ,‬שבכל תא שבו‪ ,‬יש אפשרות‬
‫לקבל שני ערכים עם קשר מסוים ביניהם‪.‬‬
‫• כאשר ניגשים לערך הראשון‪ ,‬אפשר לקבל את‬
‫הערך השני‪.‬‬
‫• עצם זה עזר מאוד בפרויקט‪ ,‬בהצפנה‪ ,‬ובשימוש‬
‫בתדירויות של התווים‪.‬‬
‫}‪dic = {‘a’:’b’, ‘c’:’d’….‬‬
‫‪14‬‬
‫פונקציות מיוחדות‬
‫‪15‬‬
‫התוכנית השניה‪ :‬מפענחת באמצעות‬
‫מפתח‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪16‬‬
‫מקבלת את המפתח של הצופן (מסוג ‪.)dict‬‬
‫מקבלת את הטקסט המוצפן‪.‬‬
‫מבצעת את פעולת הפענוח‪.‬‬
‫מדפיסה את הטקסט המפוענח‪.‬‬
‫התוכנית השלישית‪ :‬פורצת את הצופן‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪17‬‬
‫מקבלת טקסט מקור‪.‬‬
‫מקבלת את הטקסט המוצפן‪.‬‬
‫מנקה את טקסט המקור מרווחים‪.‬‬
‫מבצעת תדירויות לכל טקסט והשוואה‪.‬‬
‫מחפשת בטקסט מילים ממאגר המילים‪.‬‬
‫מדפיסה למשתמש את הטקסט המפוענח‪.‬‬
‫פונקציות מיוחדות בפרויקט‬
‫‪18‬‬
19
‫היכן ניתן להיתקל בבעיות בתוכנית זו?‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪20‬‬
‫חוסר התאמה בין טקסט המקור‪ ,‬ובין רשימת‬
‫המילים לצופן (טקסטים ללא קשר לוגי)‪.‬‬
‫שימוש בתווים אשר לא נמצאים בטקסט‪.‬‬
‫שימוש במקור בעל תווים אשר לא נמצאים במאגר‬
‫התווים‪.‬‬
‫כאשר מכניסים מקור קצר‪ ,‬ללא הרבה מלל‪.‬‬
‫התפתחות הצופן‬
‫בהמשך להתפתחות הצופן במאה ה‪ 19-‬וה‪,20-‬‬
‫הצטרף מעין חידוש לצופן ההחלפה‪ ,‬והתפתח צופן‬
‫פלייפייר‪ .‬צופן המחליף צמדי אותיות וגורם‬
‫לכמות צירופים אפשריים גדולה יותר מכמות‬
‫החלפת האותיות האפשריות‪ ,‬ובכך מגדיל את‬
‫כמות התדירויות שצריך לבחון (כ‪ 600‬במקום ‪.)26‬‬
‫בהמשך‪ ,‬התפתחו הרדיו והטלגרף‪ ,‬שהיו כלי‬
‫תקשורת אשר ניתנים להאזנה ולכן גם בהם‬
‫הצפינו את המסרים על ידי ניקובים‪ ,‬או כיבוי‬
‫והדלקה של אמצעים‪ ,‬כגון צופן המורס‪.‬‬
‫‪21‬‬
‫במלחמת העולם השנייה אנו נתקלים במכונת‬
‫האניגמה‪ ,‬אשר שימשה להצפין מסרים שגרמניה‬
‫שלחה לבנות בריתה ולשלוחות צבאה‪.‬‬
‫צופן זה היה מבוסס רוטור‪ ,‬ובכך היה קשה יותר‬
‫לפיצוח‪ ,‬אלמלא היה לך את סידורי הגלגלים של‬
‫הרוטור בכדי לפצח את הקוד‪.‬‬
‫בהמשך העולם התחלק לשני סוגי צפנים‪ ,‬צפנים‬
‫סימטריים ואסימטריים‪.‬‬
‫‪22‬‬
‫צופן סימטרי‪:‬‬
‫צופן סימטרי או הצפנה סימטרית הוא‬
‫אלגוריתם הצפנה שמשתמש במפתח אחד הן‬
‫להצפנה והן לפענוח‪ .‬ליתר דיוק בידיעת מפתח‬
‫ההצפנה ‪ e‬אפשר להפיק את מפתח הפענוח ‪d‬‬
‫בשיטה ידועה המוסכמת על שני הצדדים‪ .‬אם ‪d=e‬‬
‫אז אומרים שמפתח הפענוח זהה למפתח‬
‫ההצפנה‪ .‬לדוגמא צופן קיסר‪ ,‬בו המפתח הזזה‬
‫הוא בעצם ההשלמה של כמות ההזות ל‪.26‬‬
‫לדוגמא אם הזזתי ‪ ,3‬אני אשלח מפתח של ‪23‬‬
‫הזזות‪.‬‬
‫‪23‬‬
‫צופן אסימטרי‪:‬‬
‫הצפנת מפתח פומבי (או מפתח ציבורי) היא ענף‬
‫בקריפטוגרפיה הנקרא גם הצפנה אסימטרית‬
‫שבה מפתח ההצפנה שונה ממפתח הפענוח‪.‬‬
‫כלומר כל משתמש מכין לעצמו זוג‬
‫מפתחות‪ :‬מפתח פומבי(‪ )Public key‬שהוא‬
‫מפתח הצפנה הנגיש לכל ומפתח‬
‫פרטי (‪ )Privatekey‬מתאים‪ ,‬הנשמר בסוד‬
‫ומשמש לפענוח‪ .‬בטיחות שיטת מפתח פומבי‬
‫נשענת על הקושי שבחישוב המפתח הפרטי מתוך‬
‫המפתח הפומבי‪ .‬לדוגמא ‪.RSA‬‬
‫‪24‬‬
25
‫שימושי הצפנים כיום‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪26‬‬
‫הגנה של רשתות תקשורת‬
‫הגנה של בנקים‬
‫אמצעי קידוד להעברת מסרים בין יבשתיים‬
‫שימוש צבאי בעיקר‪ ,‬הצפנת מסרים‪.‬‬
‫חברות אשראי‪.‬‬
‫לאן אנו צופים להגיע בעתיד‬
‫בעבר‪ ,‬הצליחו מדענים מאוניברסיטת הרווארד‬
‫לאחסן ‪ 700‬טרה‪-‬בייט על גבי גרם אחד של‬
‫מולקולות ‪ DNA‬שיוצרו במעבדה‪ ,‬כשהכתיבה על גביהם‬
‫לא שונה מהשיטה בה כותבים על גבי אמצעי אחסון‬
‫מסורתיים והקריאה מהם זהה לשיטה בה קוראות‬
‫מעבדות לזיהוי פלילי רצפי ‪ DNA‬אנושיים‪.‬‬
‫אך‪ ,‬לשיטה זאת שתי בעיות מרכזיות‪ ,‬הראשונה‬
‫היא שמסובך ויקר לייצר את החומר באופן‬
‫מלאכותי‪ ,‬והשניה שיש סימנים שחוזרים על‬
‫עצמם באופן תדיר ויוצרים שגיאות בקריאה של‬
‫רצף ה‪.DNA‬‬
‫‪27‬‬
‫טכניקה חדשה שפותחה על ידי ‪Bioinformatics‬‬
‫‪ Institute‬מונעת מרצפים לחזור על עצמם ובכך‬
‫בעצם נמנעות שגיאות‪ .‬מ‪ BI-‬שלחו ל‪Agilent -‬‬
‫‪ ,Technologies‬חברה חובקת עולם שמושבה‬
‫בקליפורניה מספר קבצים שהותאמו לכתיבה על‬
‫גבי מולקולות ‪ :DNA‬קובץ טקסט שמכיל את כלל‬
‫היצירות של המחזאי הנודע שייקספיר‪ ,‬קובץ וידאו‬
‫בן ‪ 26‬שניות הכולל את הנאום המפורסם של איש‬
‫זכויות האדם מרתין לותר קינג ז"ל "יש לי חלום"‪,‬‬
‫קובץ תמונה של משרדי ‪ ,BI‬קובץ ‪ PDF‬שמפרט‬
‫מבנה של ‪ DNA‬אנושי ואחרון חביב‪ :‬קובץ שמפרט‬
‫את המפתח לכתיבת וקריאת המידע‪.‬‬
‫‪28‬‬
‫ב‪ Agilent-‬קיבלו את הקבצים דרך האינטרנט‬
‫וכתבו אותם על גבי ‪ ,DNA‬בגודל פיזי של קרדית‬
‫אבק קטנה‪ .‬אחר כך נשלחו קשרי ה‪ DNA-‬חזרה‬
‫ל‪ BI-‬והחוקרים הצליחו לקרוא את המידע מה‪-‬‬
‫‪ .DNA‬ברגע שיגיעו לתפוצה רחבה אמצעי אחסון‬
‫מבוססי ‪ ,DNA‬מדובר יהיה במהפכה אמיתית של‬
‫נפח המידע ליחסית לנפח הפיזי של הכונן‪ ,‬בנוסף‬
‫לעובדה שמידע שמאוחסן כך יכול להחזיק‬
‫בסביבות העשרת אלפי שנים מבלי שהמידע יהפוך‬
‫לבלתי קריא‪ .‬סביר מאוד להניח שאפילו נראה את‬
‫זה קורה בטווח הזמן של חמישים השנים הקרובות‬
‫‪29‬‬
‫מסקנות מהפרויקט‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪30‬‬
‫בכדי להגיע לאחוזי הצלחה גבוהים‪ ,‬עליך להכניס מקור‬
‫שופע במילים ותווים‪.‬‬
‫ככל שתכניס טקסט מקור קצר יותר וצופן קצר יותר‪ ,‬כך‬
‫סיכוי ההצלחה בפיענוח רוב האותיות יקטנו‪.‬‬
‫עליך להגיע לאחוזי הצלחה גבוהים יחסית בכדי שפעולת‬
‫השוואת המילים תעבוד‪.‬‬
‫מכיוון שהפרויקט מכיל בתוכו המון חישובים‪ ,‬המחשב‬
‫עלול לא לעמוד בעומס בגדלי טקסטים מסויימים‪.‬‬
‫תוספות לפרוייקט‬
‫• פעולה אשר מחשבת את אחוזי ההצלחה על ידי‬
‫התאמת הצופן המפוענח לטקסט המקורי‬
‫שהצפנת‪ ,‬ומחזירה באחוזים את ההצלחה‬
‫בפיענוח‪.‬‬
‫• שימוש בדף הראשי של הניו יורק טיימס כמקור‬
‫השוואה לפענוח הצופן‪.‬‬
‫‪31‬‬
‫טקסט קצר אחוזי הצלחה נמוכים‪:‬‬
‫‪32‬‬
‫צופן ארוך וטקסט מקור ארוך אחוזי‬
‫הצלחה גבוהים‪:‬‬
‫‪33‬‬
34
35