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