תורת המספרים ־ הרצאה 11

Transcription

תורת המספרים ־ הרצאה 11
‫תורת המספרים ־ הרצאה ‪11‬‬
‫‪ 1‬בדצמבר ‪2014‬‬
‫שורשים פרימיטיביים‬
‫אם ‪ n‬טבעי ו־ ‪ a‬זר ל־ ‪ ,n‬אז הטבעי המינימלי כך ש־ )‪.ordn (a) = aordn (a) ≡ 1 ( mod n‬‬
‫‪ a‬נקרא שורש פרימיטיבי מודולו ‪ n‬אם )‪.ordn (a) = φ(n‬‬
‫משפט השורשים הפרימיטיביים‬
‫ל־ ‪ n‬שורש פרימיטיבי אמ"מ ‪ n = 2, 4, pj , 2pj‬כאשר ‪ p ≥ 3‬ראשוני‪.‬‬
‫דוגמה‬
‫א‪.‬‬
‫מצא שורש פרימיטיבי מודול ‪.37‬‬
‫פתרון‬
‫ננסה את ‪ .2‬הסדרים האפשריים ל־‪ 2‬הם מחלקי ‪ ,φ(37) = 36‬כלומר ‪.2, 3, 4, 6, 9, 12, 18, 36‬‬
‫נקבל‪:‬‬
‫‪22 ≡ 4, 23 ≡ 8, 24 ≡ 16, 26 ≡ −10, 29 ≡ −6, 212 ≡ −12, 218 ≡ −1‬‬
‫מסקנה‪ 2 :‬הוא שורש פרימיטיבי מודולו ‪.37‬‬
‫ב‪.‬‬
‫מצא שורש פרימיטיבי מודולו ‪.37j‬‬
‫נזכר שאו ש־‪ 2‬שורש פרימיטיבי מודולו ‪ 37j‬או ש־ ‪ 2 + 37 = 39‬כזה‪.‬‬
‫‪ 2‬יהיה השורש אם ) ‪.236 6≡ 1 ( mod 372‬‬
‫‪1‬‬
‫נבחין ש־‬
‫‬
‫‬
‫‪236 − 1 = 218 − 1 218 + 1‬‬
‫כמו כן‪,‬‬
‫)‪218 − 1 ≡ −2 ( mod 37‬‬
‫כלומר ‪.37 - 218 − 1‬‬
‫נותר לבדוק האם ) ‪.218 + 1 6≡ 0 ( mod 372‬‬
‫כעת‪ ,‬מודולו ‪:372‬‬
‫= ]‪218 = 29 · 29 = 512 · 512 = [512 = k · 37 + r, 0 ≤ r ≤ 37‬‬
‫≡ ‪= (14 · 37 − 6) · (14 · 37 − 6) ≡ −2 · 6 · 14 · 37 + 36‬‬
‫) ‪≡ −28 · 6 · 37 + 36 ≡ 9 · 6 · 37 + 36 ≡ 54 · 37 + 36 ≡ 17 · 37 + 36 6≡ −1 ( mod 372‬‬
‫כלומר ) ‪ ,218 + 1 6≡ 0 ( mod 372‬ולכן ) ‪ ,236 6≡ 1 ( mod 372‬כלומר ‪ 2‬הוא שורש פרימיטיבי מודולו‬
‫‪.37j‬‬
‫דוגמה‬
‫שורשים פרימיטיביים מאפשרים לפתור משוואות מהצורה )‪ xm ≡ a ( mod n‬או )‪.bx ≡ c ( mod n‬‬
‫פתור )‪x29 ≡ 27 ( mod 37‬‬
‫פתרון‬
‫נפתור ע"י מעבר לקונגרואנציה לינארית‪ .‬נשתמש בכך ש־‪ 2‬שורש פרימיטיבי מודולו ‪.37‬‬
‫נרשום )‪) x ≡ 2t ( mod 37‬ראינו כי כל האיברים ההפיכים מודולו ‪ 37‬הם חזקות של ‪ ,2‬כמסקנה‬
‫ממשפט שראינו בפעם שעברה‪ 27 .‬הפיך מודולו ‪ ,37‬ולכן גם ‪ x29‬הפיך מודולו ‪ ,37‬ולכן ‪ x‬הפיך מודולו‬
‫‪.(37‬‬
‫נרשום גם )‪ .27 ≡ 2? ( mod 37‬כיוון ש־ )‪ ,27 ≡ −10 ( mod 37‬וראינו בחישוב קודם כי‬
‫)‪ ,26 ≡ −10 ( mod 37‬כלומר )‪.27 ≡ 26 ( mod 37‬‬
‫קיבלנו‬
‫)‪229t ≡ 26 ( mod 37‬‬
‫מכאן ש־ )‪) 29t ≡ 6 ( mod 36‬שכן הסדר של ‪ 2‬הוא ‪ ,36‬ואחרי הסדר מתחיל מחזור חדש(‪.‬‬
‫נחפש הופכי ל־‪ 29‬מודולו ‪ .36‬נשים לב כי )‪ ,29 ≡ −7 ( mod 36‬ולכן ( ‪29 · 5 ≡ −7 · 5 ≡ 1‬‬
‫)‪.mod 36‬‬
‫‪2‬‬
‫כלומר‪ ,‬נציב ונקבל )‪.t ≡ 6 · 5 ≡ 30 ( mod 36‬‬
‫בסה"כ‪ ,‬נקבל ש־ )‪.x = 2t = 230+36·k ≡ 230 ( mod 37‬‬
‫אבל‬
‫)‪230 ≡ 218 · 212 ≡ −1 · (−12) ≡ 12 ( mod 37‬‬
‫כאשר ‪ 218 , 212‬חישבנו כבר קודם‪.‬‬
‫דוגמה‬
‫פתור ) ‪32x ≡ 64 ( mod 372‬‬
‫פתרון‬
‫‪ 2‬הוא שורש פרימיטיבי מודולו ‪ .372‬נשים לב־ ‪ .32 = 25 ,64 = 26‬לכן נקבל‪:‬‬
‫) ‪25x ≡ 26 ( mod 372‬‬
‫מכאן ש־‬
‫‬
‫)‪5x ≡ 6 ( mod φ 372 = 37 · 36‬‬
‫לפי משפט השאריות הסיני ניתן לפתור‪:‬‬
‫(‬
‫)‪5x ≡ 6 ( mod 37‬‬
‫)‪5x ≡ 6 ( mod 36‬‬
‫נתחיל במודולו ‪ .37‬נשים לב ש־ )‪ ,5 · 15 ≡ 1 ( mod 37‬לכן המשוואה הראשונה היא‬
‫)‪x ≡ 6 · 15 ≡ 16 ( mod 37‬‬
‫כמו כן‪ ,‬כמו בדוגמה הקודמת‪:‬‬
‫)‪−7 · 5 ≡ 1 ( mod 36‬‬
‫לכן המשוואה השנייה היא‬
‫)‪x ≡ −7 · 6 ≡ −6 ( mod 36‬‬
‫‪3‬‬
‫כעת‪x = 37x1 + 36x2 ,‬‬
‫כאשר‬
‫)‪≡ −16 ( mod 37‬‬
‫)‪≡ −6 ( mod 36‬‬
‫(‬
‫)‪≡ 16 ( mod 37‬‬
‫‪x2‬‬
‫⇒⇐‬
‫)‪≡ −6 ( mod 36‬‬
‫‪x1‬‬
‫(‬
‫‪36x2‬‬
‫‪37x1‬‬
‫בסה"כ‪:‬‬
‫)‪x = 37(−6) + 36(−16) = 534 ( mod 36 · 37‬‬
‫דוגמה‬
‫פתור )‪.3x3 ≡ 7 ( mod 37 · 25‬‬
‫פתרון‬
‫אין שורש פרימיטיבי מודולו ‪.37 · 25‬‬
‫נשתמש במשפט השאריות הסיני‪ .‬מספיק לפתור‪:‬‬
‫)‪≡ 7 ( mod 37‬‬
‫)‪≡ 7 ( mod 25‬‬
‫(‬
‫‪3x3‬‬
‫‪3x3‬‬
‫ניזכר משיעור הקודם ש־‪ 2‬גם שורש פרימיטיבי מודולו ‪.5j‬‬
‫נראה רק את הפתרון ללא פירוט מלא של הדרך‪.‬‬
‫)‪3x3 ≡ 7 ( mod 25) ⇒ x3 ≡ −6 ( mod 25‬‬
‫נרשום ‪ ,x = 2t‬ואז‬
‫)‪23t ≡ 218 ( mod 25) ⇐⇒ 3t ≡ 18 ( mod 20) ⇒ t ≡ 6 ( mod 20) ⇒ x ≡ 14 ( mod 25‬‬
‫נעבור למשוואה האחרות‪.‬‬
‫)‪3x3 ≡ 7 ⇒ x3 ≡ −10 ⇒ 23t ≡ 26 ( mod 37) ⇒ 3t ≡ 6 ( mod 36) ⇒ t ≡ 2 ( mod 12‬‬
‫כלומר‪,‬‬
‫)‪t ≡ 2, 14, 26 ( mod 36) ⇒ x = 4, 214 , 226 ( mod 37‬‬
‫בסופו של דבר‪:‬‬
‫)‪x = 114, 189, 289 ( mod 37 · 25‬‬
‫‪4‬‬
‫הערה‬
‫כאשר רוצים לפתור‪ ,‬למשל‪,‬‬
‫(‬
‫)‪x ≡ 14 ( mod 25‬‬
‫)‪x ≡ 4 ( mod 37‬‬
‫כלומר‪,‬‬
‫)‪x ≡ 14 + 25k ≡ 4 ( mod 37) ⇒ k ≡ 7 ( mod 37) ⇒ x ≡ 189 ( mod 25 · 37‬‬
‫מתרגיל הבית‬
‫‪ a, k, n‬טבעיים‬
‫‪gcd(a, n) = gcd(k, φ(n)) = 1‬‬
‫דרך אלטרנטיבית לפתרון‬
‫)‪xk ≡ a ( mod n‬‬
‫)∗(‬
‫א‪ .‬הוכח שקיימים ‪ u, v‬שלמים ‪ ,u ≥ 1‬כך ש־ ‪uk + vφ(n) = 1‬‬
‫פתרון‬
‫ראינו בכיתה שקיימים ‪ u0 , v 0‬שלמים כך ש־ ‪ ,u0 k + v 0 φ(n) = 1‬מכאן שלכל ‪ m‬שלם‪:‬‬
‫‪u0 + mφ(n) · k + [v 0 − mk] · φ(n) = 1‬‬
‫} ‪| {z‬‬
‫‪u‬‬
‫עבור ‪ m‬מספיק גדול‪.‬‬
‫ב‪ .‬יהי ‪ u‬כמו בסעיף הקודם‪ ,‬הוכח כי‪:‬‬
‫)‪x ≡ au ( mod n‬‬
‫הוא הפתרון היחיד ל־)∗(‬
‫‪5‬‬
‫פתרון‬
‫ראשית נראה שזהו פתרון‪ .‬נעלה בחזקת ‪:k‬‬
‫)‪xk ≡ (au )k ≡ auk ≡ auk+v·φ(n) ≡ a ( mod n‬‬
‫כאשר המעבר השני מימין מתקיים כי ‪ a‬הפיך‪ ,‬ולכן ממשפט אוילר )‪.aφ(n) ≡ 1 ( mod n‬‬
‫כעת‪ ,‬נראה שזהו הפתרון היחיד מודולו ‪.n‬‬
‫אם )‪ ,xk ≡ a ( mod n‬נעלה בחזקת ‪:u‬‬
‫)‪xku ≡ au ( mod n‬‬
‫כי ‪ x‬בהכרח הפיך‪ ,‬מכך ש־ ‪ xk ≡ a‬ו־ ‪ a‬הפיך‪.‬‬
‫כעת‪ ,xku ≡ xku+v·φ(n) ≡ x ,‬וסיימנו‪.‬‬
‫נדבר מעט על התמונה של ההעתקה ‪.F : Z∗n → Z∗n ,F (x) = xm‬‬
‫למשל‪ ,‬מודולו ‪ .12 ≡ 1 ,22 ≡ 1 ( mod 3) ,3‬כלומר ‪ 1‬הוא ריבוע ו־‪ 2‬אינו ריבוע‪.‬‬
‫משפט‬
‫יהי ‪ a‬זר ל־‪ .n‬למשוואה )‪ xm ≡ a ( mod n‬יש פתרון אמ"מ‬
‫)‪φ(n‬‬
‫)‪a gcd(mφ(n)) = 1 ( mod n‬‬
‫הוכחה‬
‫בתרגיל בית‪.‬‬
‫דוגמה‬
‫מהן כל החזקות השישיות מודולו ‪) ?17‬להוציא אפס(‬
‫פתרון‬
‫לפי המשפט‪ ,‬אלה הם כל ה־‪ a‬שזרים ל־‪ 17‬כך ש־‬
‫‪16‬‬
‫)‪a gcd(6,16) = a8 ≡ 1 ( mod 17‬‬
‫‪6‬‬
‫כדי למצוא במפורש איברים אלה‪ ,‬ניזכר ש־‪ 3‬שורש פרימיטיבי מודולו ‪.17‬‬
‫נפתור‬
‫)‪a = 3t ⇒ 38t ≡ 1 ( mod 17) ⇒ 8t ≡ 0 ( mod 16) ⇒ t ≡ 0 ( mod 2‬‬
‫‪⇒ t = 0, 2, 4, 6, 8, 10, 12, 14‬‬
‫ולכן‪,‬‬
‫)‪a ≡ ±1, ±2, ±4, ±8 ( mod 17‬‬
‫)אחרי חישובים(‪.‬‬
‫שימושים להצפנה של חזקות מודולו ‪n‬‬
‫בהצפנות קלאסיות ישנו מפתח למשדר ולמקבל שאינו ידוע לאויב המאזין‪.‬‬
‫הצפנות מפתח פומבי )מודרניות(‬
‫ישנו מפתח פומבי )ידוע לכל(‪ .‬ניתן להשתמש במפתח כדי להצפין הודעות‪ .‬אבל צריך מפתח אחר‪,‬‬
‫סודי‪ ,‬כדי לפענח‪ .‬הצפנה אסימטרית‪ .‬נדרש שקשה יהיה למצוא את המפתח הפרטי )מפתח הפענוח(‬
‫מהמפתח הפומבי‪.‬‬
‫שיטת ‪RSA‬‬
‫טענה‬
‫הפונקציה ‪ F : Z∗n → Z∗n‬המוגדרת ע"י‬
‫)‪F (x) ≡ xm ( mod n‬‬
‫כאשר ‪ gcd (m, φ(n)) = 1‬היא חח"ע ועל‪.‬‬
‫מסקנה מיידית מהמשפט הקודם‪.‬‬
‫דוגמה‬
‫נאמר ואליס ובוב רוצים לתקשר‪ ,‬יבחרו )‪ (m, n‬כנ"ל‪ .‬אליס תשדר לבוב )‪ ,Am ( mod n‬כאשר ‪A‬‬
‫הוא ההודעה הסודית‪.‬‬
‫כדי לפענח‪ ,‬ימצא בוב ‪ s‬כך ש־‬
‫))‪m · s ≡ 1 ( mod φ(n‬‬
‫‪7‬‬
‫הופכי ל־ ‪ m‬מודולו )‪.φ(n‬‬
‫ויחשב בוב‬
‫)‪ms ≡ Am·s ≡ A ( mod n‬‬
‫יתר על כן‪ ,‬ניתן לפרסם בפומבי את ‪ m‬ו־ ‪ ,n‬ואז כל אחד יכול להצפין הודעות‪ s .‬יישאר סודי‪,‬‬
‫לפענוח‪.‬‬
‫אם למאזין ידוע הפירוק לראשוניים של ‪ ,n‬הוא יוכל לחשב את )‪ φ(n‬ומכאן למצוא את ‪ ,s‬ההופכי של‬
‫‪ m‬מודולו ‪.n‬‬
‫בהצפנת ‪ RSA‬נהוג לבחור ‪ n‬כמכפלת שני ראשוניים גדולים‪ .‬למשל‪ ,‬כ־‪ 100‬ספרות כל אחד‪.‬‬
‫לא ידועה דרך יעילה למצוא את הפירוק לראשוניים או את )‪.φ(n‬‬
‫‪8‬‬