קריפטוגרפיה: פעילויות העשרה לתלמידי תיכון הלומדים מדעי המחשב

מערך הוראה לתלמידי יסודות

הוכן על ידי עינת רוזנר, המכללה להוראת טכנולוגיה ת"א

כל הפעילויות והחומרים באתר זה פותחו ע"י מורים מובילים שהשתתפו בסמינר קיץ 2003.

ניתן להשתמש בחומרים האלה לצורך הוראת הנושא לתלמידי תיכון.

לא ניתן לעשות בחומר כל שימוש מסחרי ללא רשות בכתב מראש מיוצרי החומרים.

מורים שיעשו שימוש בחומרים מתבקשים למלא את הטופס המצורף ולשלוח אותו אלינו.

 

לפניכם הצעה למערך הוראה של נושא ההצפנה לתלמידי "יסודות 1".

המערך מבוסס על שני שיעורי מעבדה ועוסק בהכרת התחום והקוד הקיסרי.

הערות דידקטיות רשומות בצבע סגול.

 

רקע

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

הידע המוקדם הנדרש: פעולות div ו- mod , מחרוזות, לולאות, מערכים חד מימדיים.

השיעור יינתן במעבדת מחשבים.

זמן השיעור: שעה וחצי  - 2 שיעורים.

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

* השיעור השני יממש את אחת השיטות המסורתיות – הקוד הקיסרי.

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

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

 

מטרות עיקריות

1.      להבחין בין קידוד (encoding) להצפנה (encryption, coding)

2.   להבין את משמעות פיענוח הצופן (decryption, decoding)

3.   להכיר שימושים להצפנה בתחומים שונים.

4.   להסיק לגבי הבעייתיות בשימוש בשיטות הצפנה מסורתיות.

5.   ליישם את אחת השיטות בשפת תכנות בדרכים שונות.

 

תרגיל הכנה לבית

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

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

 

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

1.      הצפנת מידע

2.      תהליך ההצפנה

3.      שימושים בהצפנה

4.      מפתח הצפנה

5.      מכונת האניגמה

6.      הצפנה סימטרית

7.      שיטת ההזזה

 

רשימת האתרים לבדיקה:

 

אלן טיורינג ותרומתו למדעי המחשב.

שימו דגש על הפיסקה העוסקת בתקופת מלחמת העולם השניה

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

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

   התמונה לקוחה מהאתר   http://www.codasaurus.com/decoders.htm

מה החוק במדינת ישראל לגבי העיסוק באמצעי הצפנה. אילו השלכות יכולות להיות לכך לדעתך? 

הנה דוגמה אחת מיני רבות:  http://www.itpolicy.gov.il/topics_infoWar/zofen.htm

העשרה: מכונת האניגמה - סימולציה

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

סימולציות של מכונת ההאניגמה ששימשה את הגרמנים במלחמת העולם השניה, תוכלו למצוא באתר המצורף.

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

העשרה: ספר "סודות ההצפנה" של סיימון קינג

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

תוכלו לקרוא את הפרק הראשון מתוך הספר באתר המצורף.

 

שיעור ראשון

שיעור זה יתחלק ל- 2 חלקים:

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

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

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

 בשיעור השני יינתן לתלמידים דף תרגילים במעבדה.

 

תרגיל 1

אדם א' רוצה להעביר לאדם ב' הודעה מוצפנת לפי שיטת הקוד הקיסרי.

* ההודעה מורכבת מאותיות אנגליות.

יש לפתח אלגוריתם לפתרון הבעיה.

א. מהם הקלטים לבעיה?

ב. מהם המשתנים/המערכים העיקריים בהם תשתמשו בכתיבת האלגוריתם?

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

מהם שלבי האלגוריתם? הגדירו כל שלב בקיצור. היעזרו במשתנים או במערכים שהגדרתם.

ג. כתבו תוכנית המממשת את האלגוריתם שפיתחתם.

 

תרגיל 2

נניח שמספר האותיות המוזזות לא ניתן כקלט. כמה הודעות מוצפנות כאלה יכולות להיות??

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

 

תרגיל 3

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

E=(L+S) mod 26

כאשר: E – האות שהוצפנה למספר, L – הערך המספרי (המיקום היחסי) של האות,  S – תזוזת האותיות.

*שימו לב: האות הראשונה a תמוקם במקום האפס.

דוגמה:

כיצד נצפין את המילה  "day", עם תזוזה של 3 אותיות ימינה?

ערכה של האות   d  הוא 3  ולפי הנוסחה ערכה המוצפן יהיה 5

ערכה של האות   a  הוא 0, ולפי הנוסחה ערכה המוצפן יהיה 2

ערכה של האות y  הוא  24  ולפי הנוסחה ערכה המוצפן יהיה 0

*בהתאם למיקום המוצפן של האותיות, יקבל מקבל המסר את ההודעה:”fca"

 

תרגיל 4

מה צריכה להיות הנוסחה של מקבל ההודעה, כדי לפענח את המסר?

פתח ויישם אלגוריתם לפיענוח הודעה מוצפנת.

 

חזרה לאתר הצפנה