SlideShare a Scribd company logo
1 of 66
Download to read offline
‫אוילר‬ ‫פונקציית‬ 2
o ‫להצפנה‬ ‫מבוא‬ =
‫להצפנה‬ ‫מבוא‬
...‫בסוף‬ ‫עניינים‬ ‫תוכן‬
:I ‫חלק‬
u‫רקע‬U
z ‫בסייסים‬ ‫מושגים‬ .1 Z
,2 | 8 :‫למשל‬ ,a · k = b-‫ש‬ ‫כך‬ k ∈ Z ‫קיים‬ ‫אם‬ a | b - a, b ∈ Z ‫עבור‬ :“‫את‬ ‫”מחלק‬ .1.1 ‫הגדרה‬
...‫וכו‬ 7 | 35
‫ביותר‬ ‫הגדול‬ ‫המספר‬ ‫להיות‬ ‫מוגדר‬ a, b ∈ N ‫מספרים‬ ‫שני‬ ‫של‬ ‫משותף‬ ‫מקסימלי‬ ‫מחלק‬ .1.2 ‫הגדרה‬
,gcd (a, b) :‫ומסומן‬ n | a ∧ n | b :‫מקיים‬ ‫אשר‬ n ∈ N
.6 | 18 ∧ 6 | 12 :‫מקיים‬ ‫אשר‬ ‫ביותר‬ ‫הגדול‬ ‫המספר‬ ‫הוא‬ 6 ‫כי‬ gcd (18, 12) = 6 :‫למשל‬
.gcd (a, b) = gcd (b, a) .1.3 ‫הערה‬
:1 < a < p ‫לכל‬ ‫או‬ - gcd (a, p) = 1 a 6= p ‫שלכל‬ ‫כל‬ p ∈ N ‫מספר‬ ‫הוא‬ ‫ראשוני‬ ‫מספר‬ .1.4 ‫הגדרה‬
.a - p
(1.4 ‫)הגדרה‬ ‫ראשוני‬ ‫מספר‬ ‫שאינו‬ ‫מספר‬ ‫הוא‬ ‫פריק‬ ‫מספר‬ .1.5 ‫הגדרה‬
.‫זרים‬ ‫הם‬ b-‫ו‬ a ‫כי‬ ‫אומרים‬ ‫אזי‬ gcd (a, b) = 1 ‫אם‬ a, b ∈ N ‫עבור‬ :‫זרים‬ ‫מספרים‬ .1.6 ‫הגדרה‬
.A-‫ב‬ ‫האיברים‬ ‫כמספר‬ ‫תוגדר‬ |A| :A ‫סופית‬ ‫קבוצה‬ ‫עבור‬ .1.7 ‫הגדרה‬
z ‫אוילר‬ ‫פונקציית‬ .2 Z
:‫הבא‬ ‫באופן‬ ‫מוגדרת‬ ‫אשר‬ φ : N → N ‫פונקציה‬ ‫היא‬ ‫אוילר‬ ‫פונקציית‬
φ (n) =
n
a gcd (a, n) = 1
o
.n ∈ N ‫למספר‬ (1.6 ‫)הגדרה‬ ‫הזרים‬ ‫המספרים‬ ‫כמות‬ ‫את‬ ‫שמזירה‬ ‫פונקציה‬ ‫זוהי‬ ‫כלומר‬
.{1, 3, 7, 9} :‫הם‬ 10-‫ל‬ ‫שזרים‬ ‫המספרים‬ ‫כי‬ φ (10) = 4 :‫למשל‬
1
Z∗
n-‫ו‬ Zn ‫הקבוצות‬ 3
o ‫להצפנה‬ ‫מבוא‬ =
‫אוילר‬ ‫פונקציית‬ ‫לחישוב‬ ‫נוסחה‬ 2.1
:‫אוילר‬ ‫פונקציית‬ ‫את‬ ‫לחשוב‬ ‫ניתן‬ ‫שדרכן‬ ‫נוסחאות‬ ‫שתי‬ ‫ישנן‬
.n = pα1
1 · pα2
2 · · · pαk
k :‫ראשוניים‬ ‫מספרים‬ ‫של‬ ‫מכפלה‬ ‫באמצעות‬ ‫טבעי‬ ‫מספר‬ ‫כל‬ ‫להציג‬ ‫ניתן‬ .2.1 ‫משפט‬
φ (n) =
Y
pi|n

1 −
1
pi

.(‫כאלה‬ ‫כמה‬ ‫להיות‬ ‫)ויכולים‬ .n ‫את‬ ‫שמחלק‬ ‫ראשוני‬ ‫הוא‬ pi ‫כאשר‬
:‫הבאה‬ ‫הנוסחה‬ ‫באמצעות‬ ‫אוילר‬ ‫פונקציית‬ ‫את‬ ‫לחשב‬ ‫ניתן‬ ‫כן‬-‫וכמו‬
φ (n) =
Y
pi|n

pαi
i − pαi−1
i

:‫אזי‬ n = 25 = 52 · 21 ‫את‬ ‫ניקח‬ .2.2 ‫דוגמה‬
φ (25) = 52
− 51

21
− 20

= 20 · 1 = 20
‫אוילר‬ ‫ליאונרד‬
.φ (p) = p − 1 ‫אזי‬ ‫ראשוני‬ p ‫אם‬ .2.3 ‫הערה‬
z Z∗
n-‫ו‬ Zn ‫הקבוצות‬ .3 Z
Zn = {0, 1, . . . , n − 1} ‫הקבוצה‬ ‫היא‬ Zn ‫הקבוצה‬ .3.1 ‫הגדרה‬
:‫או‬
Zn =
(
k k ∈ N, 0 ≤ k ≤ n − 1
)
:n-‫ל‬ ‫זרים‬ ‫אשר‬ ‫המספרים‬ ‫כל‬ ‫את‬ ‫מכילה‬ ‫אשר‬ ‫הקבוצה‬ ‫היא‬ Z∗
n ‫הקבוצה‬ .3.2 ‫הגדרה‬
Z∗
n =
(
k k ∈ N, gcd (a, n) = 1
)
.φ (n) = |Z∗
n| .3.3 ‫הערה‬
.(0  k  p :k ∈ N ‫המספרים‬ ‫)כל‬ φ (p) = Z∗
p = p − 1 ‫אזי‬ ‫ראשוני‬ p ‫אם‬ .3.4 ‫משפט‬
2
ax ≡ b (mod n) ‫מהצורה‬ ‫משוואת‬ 4
o ‫להצפנה‬ ‫מבוא‬ =
≡ (mod n) ‫הסימן‬ 3.1
,n = 18 ‫כלומר‬ ,Z18 ‫את‬ ‫ניקח‬ :‫למשל‬ ,Zn-‫ב‬ a = b-‫ש‬ ‫היא‬ a ≡ b (mod n) ‫מהצורה‬ ‫במשוואה‬ ‫הרעיון‬
:‫אזי‬
19 ≡ 1 (mod 18)
.1 ‫עוד‬ ‫והמשכנו‬ (18) 0-‫ל‬ ‫שהגענו‬ ‫אומר‬ ‫זה‬ ‫אבל‬ ,Z18-‫ב‬ 19 ‫לנו‬ ‫אין‬ ‫כי‬
:‫שליליים‬ ‫מספרים‬ ‫לגבי‬ ‫גם‬ ‫נכון‬ ‫וזה‬
−3 ≡ 15 (mod 18)
Zn-‫ב‬ ‫הפיכים‬ ‫איברים‬ 3.2
-‫ש‬ ‫כך‬ b ∈ Zn ‫קיים‬ ‫אם‬ ‫הופכי‬ ‫אביר‬ ‫לו‬ ‫קיים‬ ‫כי‬ ‫נאמר‬ ,a ∈ Zn ‫בקבוצה‬ ‫איבר‬ ‫עבור‬ .3.5 ‫הגדרה‬
.a · b ≡ 1 (mod n)
.a−1 :‫ע“י‬ ‫מסומן‬ ‫והוא‬ ,a ‫של‬ ‫ההופכי‬ ‫האיבר‬ ‫קוראים‬ b-‫ל‬
‫כך‬ b ∈ Z∗
n ‫קיים‬ a ∈ Z∗
n ‫לכל‬ ,‫כלומר‬ ,n-‫ל‬ ‫ההופכיים‬ ‫האיברים‬ ‫כל‬ ‫נמצאים‬ Z∗
n ‫בקבוצה‬ .3.6 ‫הערה‬
.a · b ≡ 1 (mod n)-‫ש‬
.‫הופכי‬ ‫איבר‬ ‫קיים‬ a ∈ {1, . . . , p − 1} ‫לכל‬ ‫אזי‬ ‫ראשוני‬ p ‫אם‬ .3.7 ‫משפט‬
.b ‫הופכי‬ ‫איבר‬ a-‫ל‬ ‫קיים‬ ‫לא‬ ‫אזי‬ a /
∈ Z∗
n ‫אם‬ .3.8 ‫הערה‬
z ax ≡ b (mod n) ‫מהצורה‬ ‫משוואת‬ .4 Z
.n | (ax − b) :‫ש‬ ‫פירושו‬ ax ≡ b (mod n) :a, b, n ∈ N ‫עבור‬ .4.1 ‫הגדרה‬
ax ≡ b (mod n) ‫מהצורה‬ ‫משוואות‬ ‫פתרון‬ 4.1
:‫הבא‬ ‫באופן‬ ax ≡ b (mod n) ‫מהצורה‬ ‫משוואות‬ ‫נפתור‬
.d = gcd (a, n) :‫נסמן‬
.x = a−1b (mod n) :‫שהוא‬ ‫יחיד‬ ‫פתרון‬ ‫ישנו‬ ‫אזי‬ d = 1 ‫אם‬ -
:‫אפשרויות‬ ‫שתי‬ ‫יש‬ ‫אזי‬ ,d  1 ‫אם‬ -
.(‫למשוואה‬ ‫פתרון‬ ‫)אין‬ ax 6≡ b (mod n) : d - c p
ax ≡ b ‫למשוואה‬ ‫אבל‬ ,n
d ‫מודולו‬ ‫אחד‬ ‫פתרון‬ ‫יש‬ a
d x ≡ b
b (mod n
d ) ‫למשווה‬ ‫אזי‬ :d | c p
:‫פתרונות‬ d ‫ישנן‬ (mod n)
(
x0 + k ·
n
d
k ∈ N, 0 ≤ k ≤ d − 1
)
3
‫אלפבתית‬-‫חד‬ ‫הצפנה‬ 5
o ‫להצפנה‬ ‫מבוא‬ =
:II ‫חלק‬
u‫סימטרית‬ ‫הצפנה‬U
‫ששמה‬ ‫סימטרית‬-‫א‬ ‫הצפנה‬ ‫)לעומת‬ ‫הצדדים‬ ‫לשני‬ ‫משותף‬ ‫מפתח‬ ‫לנו‬ ‫שיש‬ ‫הוא‬ ‫הרעיון‬ ‫סימטרית‬ ‫בהצפנה‬
.(‫שלו‬ ‫המפתח‬ ‫את‬ ‫יש‬ ‫צד‬ ‫לכל‬
z ‫אלפבתית‬-‫חד‬ ‫הצפנה‬ .5 Z
‫ששמה‬ (7 ‫)בעמוד‬ ‫אלפבתית‬-‫רב‬ ‫הצפנה‬ ‫לעומת‬ ,‫בנפרד‬ ‫אות‬ ‫כל‬ ‫מצפינים‬ ‫אנחנו‬ ‫אלפבתית‬-‫חד‬ ‫בהצפנה‬
.‫אותיות‬ ‫של‬ ‫בלוקים‬ ‫מצפינים‬ ‫אנחנו‬
‫הזזה‬ ‫צפני‬ 5.1
.(‫אופנים‬ ‫כמה‬ ‫ישנם‬ ‫)כי‬ ‫בהמשך‬ ‫שתוגדר‬ ‫כלשהי‬ ‫פונקציה‬ ‫ע“י‬ ‫האותיות‬ ‫את‬ ‫מזיזים‬ ‫אנחנו‬ ‫הזזה‬ ‫בצפני‬
‫סימונים‬ 5.1.1
.‫אותיות‬ n ‫שמכיל‬ ‫בית‬-‫האלף‬ ‫ישנו‬
.‫המקורי‬ ‫הטקסט‬ ‫מרחב‬ = P .5.1 ‫רישום‬ ‫צורת‬
.‫המוצפן‬ ‫הטקסט‬ ‫מרחב‬ = C .5.2 ‫רישום‬ ‫צורת‬
.‫המפתחות‬ ‫מרחב‬ = K .5.3 ‫רישום‬ ‫צורת‬
P = C = K = Zn
.‫ההצפנה‬ ‫פונקציית‬ ‫זוהי‬ - e (x)
.‫הפענוח‬ ‫פונקציית‬ ‫זוהי‬ - d (x)
‫כללי‬ ‫הזזה‬ ‫צופן‬ 5.1.2
ek (x) = x + k mod n : ‫הצפנה‬ ‫פונקציית‬
dk (y) = y − k mod n : ‫פיענוח‬ ‫פונקציית‬
.‫בא“ב‬ ‫אותיות‬ ‫אילו‬ x, y ‫כאשר‬
.‫לאותיות‬ ‫הזזה‬ ‫עושים‬ ‫פשוט‬ ‫אנחנו‬ ‫שוב‬ ‫פשוט‬ ‫הצפנה‬ ‫צופן‬ ‫זהו‬
‫קיסר‬ ‫צופן‬ 5.1.3
.k = 3 ‫שבו‬ ‫קיסר‬ ‫צופן‬ ‫הוא‬ ‫כללי‬ ‫הזזה‬ ‫לצופן‬ ‫דוגמה‬
.k = 0 ‫כאשר‬ ‫הוא‬ ‫הטריוויאלי‬ ‫הצופן‬ ,‫זאת‬ ‫הצפנה‬ ‫של‬ ‫במקרה‬ ‫הטריוויאלי‬ ‫הצופן‬
.ek (x) = dx (x) = x ‫אזי‬
4
‫אלפבתית‬-‫חד‬ ‫הצפנה‬ 5
o ‫להצפנה‬ ‫מבוא‬ =
‫הזזה‬ ‫צופן‬ ‫על‬ ‫התקפות‬ 5.1.4
. (|Zn|) ‫מאוד‬ ‫קטן‬ ‫המפתחות‬ ‫מספר‬ ‫כי‬ ‫מאוד‬ ‫קל‬ ‫זה‬ .‫גס‬ ‫כוח‬ ‫באמצעות‬ ‫אפשר‬ -
‫ואז‬ ek (x) = y-‫ש‬ ‫כך‬ (x, y) ‫אותיות‬ ‫זוג‬ ‫למצוא‬ ‫מספיק‬ ,‫המקור‬ ‫טקסט‬ ‫את‬ ‫יודעים‬ ‫אנחנו‬ ‫ואם‬ -
:‫המפתחות‬ ‫את‬ ‫למצוא‬ ‫בקלות‬ ‫ניתן‬
y ≡ x + k (mod n) ⇒ k ≡ y − x (mod n)
‫החלפה‬ ‫צופן‬ 5.2
:‫פונקציה‬ ‫זוהי‬ ‫כלומר‬ .‫האותיות‬ ‫כול‬ ‫על‬ ‫תמורה‬ ‫מבצעים‬ ‫אנחנו‬ ‫החלפה‬ ‫בצופן‬
σ : Zn → Zn
.|Zn|! :‫הוא‬ ‫המפתחות‬ ‫מספר‬ ‫ולכן‬
‫החלפה‬ ‫צופן‬ ‫על‬ ‫התקפות‬ 5.2.1
,‫צמדים‬ ‫ע“פ‬ ‫לבדוק‬ ‫ניתן‬ ,‫מספיק‬ ‫זה‬ ‫ואם‬ ,‫אותיות‬ ‫של‬ ‫תדירות‬ ‫בדיקת‬ ‫ע“י‬ ‫בקלות‬ ‫הצופן‬ ‫את‬ ‫לתקוף‬ ‫ניתן‬
...'‫וכו‬ .th, er :‫באנגלית‬ ‫למשל‬ .‫אותיות‬ ‫צמדי‬ ‫של‬ ‫נפיצות‬ ‫ע“פ‬ ,‫כלומר‬
‫אפיני‬ ‫צופן‬ 5.3
. k = |Z∗
n| · |Zn| ‫זאת‬ ‫לעומת‬ ‫אבל‬ ,P = C = |Zn| :‫אשר‬ ,‫מורכב‬ ‫יותר‬ ‫טיפה‬ ‫צופן‬ ‫הוא‬ ‫אפיני‬ ‫צפן‬
ek (x) = ax + b mod n : ‫הצפנה‬ ‫פונקציית‬
dk (y) = a−1
(y − b) mod n : ‫פיענוח‬ ‫פונקציית‬
.b ∈ Zn-‫ו‬ a ∈ Z∗
n :‫כאשר‬
‫הצופן‬ ‫פענוח‬ 5.3.1
‫אם‬ ,‫כאן‬ ‫)וגם‬ ‫לפענח‬ ‫כדי‬ ‫ומהצופן‬ ‫המקור‬ ‫מטקסט‬ ‫אותיות‬ ‫לשני‬ ‫זקוקים‬ ‫אנחנו‬ ‫הפענוח‬ ‫בשביל‬ ‫הפעם‬
.(‫האותיות‬ ‫בתדירות‬ ‫להשתמש‬ ‫ניתן‬ ,‫ארוך‬ ‫מספיק‬ ‫הטקסט‬
.‫משוואות‬ ‫שתי‬ ‫צריכים‬ ‫אנחנו‬ ‫כך‬ ‫ולשם‬ (a, b) ‫נעלמים‬ ‫שני‬ ‫לנו‬ ‫שיש‬ ‫היא‬ ‫לכך‬ ‫הסיבה‬
:‫היא‬ ‫המשוואה‬ ‫אזי‬ c → t ‫כי‬ ‫לנו‬ ‫ונתון‬ 5.3.2-‫ב‬ ‫כמו‬ ‫המרחב‬ ‫על‬ ‫למשל‬ ‫מדובר‬ ‫אם‬
2a + b = 19 (mod 26)
:‫יותר‬ ‫כללי‬ ‫ובאופן‬
.(ψ (d) = 3 :5.3.2-‫ב‬ ,‫)למשל‬ ‫שלו‬ ‫המספרי‬ ‫הערך‬ ‫את‬ ‫בא“ב‬ A ‫עבור‬ ‫מחזירה‬ ψ (A) ‫הפונקציה‬ ‫כי‬ ‫נניח‬
:‫תהיה‬ ‫המשוואה‬ ‫אזי‬ A → C ‫כי‬ ‫לנו‬ ‫נתון‬ ‫אם‬ :‫בא“ב‬ A, C ‫עבור‬ ,‫אזי‬
ψ (A) a + b ≡ ψ (C)
5
‫אלפבתית‬-‫חד‬ ‫הצפנה‬ 5
o ‫להצפנה‬ ‫מבוא‬ =
‫לפענוח‬ ‫דוגמאות‬ 5.3.2
:C ‫המקור‬ ‫בטקסט‬ ‫כאשר‬ Z26 ‫על‬ ‫נדבר‬ ‫ולכן‬ abc-‫ה‬ ‫על‬ ‫מדובר‬ ‫יהיה‬ ‫הדוגמאות‬ ‫בשתי‬
.0 7→ a, 1 7→ b, . . . , 25 7→ z
:‫כלומר‬ ,gj → ns :‫פשוטה‬ ‫מדוגמה‬ ‫נתחיל‬ ‫פשוטה‬ ‫דוגמה‬
(
6a + b ≡ 13 (mod 26) (1)
9a + b ≡ 18 (mod 26) (2)
:‫הוא‬ ‫שנקבל‬ ‫ומה‬ (2) − (1) :‫נחסר‬
3a ≡ 5 (mod 26)
:4.1 ‫חלק‬ ‫ע“פ‬ ‫המשוואה‬ ‫את‬ ‫נפתור‬ ‫וכעת‬
.‫אחד‬ ‫פתרון‬ ‫יש‬ ‫ולכן‬ gcd (3, 26) = 1
:‫ונקבל‬ 9-‫ב‬ ‫נכפול‬ ‫ולכן‬ 9 ‫הוא‬ ,3 ∈ Z∗
26 ‫כי‬ ‫הופכי‬ ‫לו‬ ‫ויש‬ ,Z26-‫ב‬ ‫של‬ ‫ההופכי‬
a = 19
.b = 3 ⇐ 6 · 19 + b ≡ 13 (mod 26) :b ‫את‬ ‫ונקבל‬ (1)-‫ב‬ ‫למשל‬ ,‫נציב‬ ‫כעת‬
,e (x) = 19x + 3 :‫היא‬ ‫ההצפנה‬ ‫פונקציית‬ ‫ולכן‬
.d (y) = 11 (y − 3) :‫היא‬ ‫הפענוח‬ ‫פונקציית‬ ‫ואילו‬
...‫בדרך‬ “‫”מכשול‬ ‫לנו‬ ‫יהיה‬ ‫שהפעם‬ ‫רק‬ ,‫דוגמה‬ ‫עוד‬ ‫נעשה‬ ‫יותר‬ ‫מורכבת‬ ‫דוגמה‬
:‫ולכן‬ ,e (6) = 13, e (10) = 11 :‫כלומר‬ ,gk → nl :‫על‬ ‫נסתכל‬
(
6a + b ≡ 13 (mod 26) (1)
10a + b ≡ 11 (mod 26) (2)
:‫ונקבל‬ (1) − (2) ‫נעשה‬ ‫כעת‬
22a ≡ 2 (mod 26)
.gcd (22, 26) = 2 6= 1 - ‫בעיה‬ ‫וישנה‬
:‫ונקבל‬ 2-‫ב‬ ‫המשוואה‬ ‫כל‬ ‫את‬ ‫שנחלק‬ ‫הוא‬ ‫שנעשה‬ ‫מה‬ ,‫לכן‬
11a ≡ 1 (mod 13)
.a = 19 :‫ולכן‬ 19 ‫הוא‬ Z26-‫ב‬ 11 ‫של‬ ‫ההופכי‬
.b = 3 :‫ונקבל‬ (1)-‫ב‬ ‫למשל‬ ,‫המשוואות‬ ‫באחת‬ ‫נציב‬
,e (x) = 19x + 3 :‫היא‬ ‫ההצפנה‬ ‫ופונקציית‬
.d (y) = 11 (y − 3) :‫היא‬ ‫הפענוח‬ ‫ופונקציית‬
6
‫אלפבתית‬-‫רב‬ ‫הצפנה‬ 6
o ‫להצפנה‬ ‫מבוא‬ =
z ‫אלפבתית‬-‫רב‬ ‫הצפנה‬ .6 Z
‫של‬ ‫קבוצה‬ ‫כל‬ ‫נצפין‬ ,‫כלומר‬ .‫בבלוקים‬ ‫נצפין‬ ‫אנחנו‬ ‫כאן‬ ,‫אות‬-‫אות‬ ‫הצפנו‬ ‫אלפבתית‬-‫חד‬ ‫בהצפנה‬ ‫אם‬
.‫אות‬-‫אות‬ ‫ולא‬ ‫אופן‬ ‫באותו‬ (‫)בלוק‬ ‫אותיות‬
.R-‫ב‬ ‫או‬ N-‫ב‬ ‫מספרים‬ ‫יהיו‬ α, β, γ, . . . ‫זה‬ ‫בחלק‬
(Vigenere) ‫ויג'נר‬ ‫צופן‬ 6.1
.Z26 ‫עם‬ ‫ונעבוד‬ 5.3.2-‫ב‬ ‫כמו‬ ‫יהיה‬ ‫זה‬ ‫שלנו‬ ‫במקרה‬ .n ‫בגודל‬ ‫א“ב‬ ‫עם‬ ‫עובדים‬
.[k, e, y] ↔ [10, 4, 24] :‫למשל‬ ,α ‫באורך‬ ‫מפתח‬ ‫בוחרים‬ -
:‫כך‬ ‫עובדת‬ ‫ההצפנה‬ ‫השיטת‬ -
.α ‫בגודל‬ ‫לבלוקים‬ ‫המקור‬ ‫טקסט‬ ‫את‬ ‫מחלקים‬ p
.(ki ‫לה‬ ‫מוספים‬ ,‫)כלומר‬ ki-‫ב‬ ‫הזזה‬ ‫עושים‬ ‫בבלוק‬ i ‫מספר‬ ‫האות‬ ‫על‬ p
‫באופן‬ ‫מוצפנת‬ ‫אות‬ ‫שכל‬ ‫כיוון‬ ‫כזה‬ ‫במקרה‬ ‫עוזרת‬ ‫אינה‬ ‫האותיות‬ ‫תדירות‬ ‫בדיקת‬ ‫כי‬ ‫לב‬ ‫לשים‬ ‫חשוב‬
(‫המפתח‬ ‫אורך‬ ‫את‬ ‫יודעים‬ ‫שאנחנו‬ ‫)בהנחה‬ ‫בלוק‬ ‫בכל‬ α-‫ה‬ ‫במקום‬ ‫האות‬ ‫לפי‬ ‫בודקים‬ ‫אם‬ ‫אבל‬ .‫שונה‬
.‫הצופן‬ ‫את‬ ‫לפענח‬ ‫להתחיל‬ ‫כך‬ ‫באמצעות‬ ‫אפשר‬ ‫אזי‬
‫דוגמה‬ 6.1.1
[k, e, y] ↔ [10, 4, 24] :‫ממקודם‬ ‫המפתח‬ ‫את‬ ‫ניקח‬
:‫למשל‬ ,‫הצפנה‬ ‫נבצע‬ ‫וכעת‬
h e l l o w o r l d ‫נצפין‬ ‫שאותה‬ ‫המילה‬
10 4 24 10 4 24 10 4 24 10 ‫אות‬ ‫לכל‬ ‫נוסיף‬ ‫כמה‬
r i j v s u y v j n ‫המוצפן‬ ‫הטקסט‬
.h = 7 ⇒ 7 + 10 = 17 = r :‫למשל‬ ‫כי‬
‫הצופן‬ ‫פיענוח‬ 6.1.2
:‫לעשות‬ ‫שצריך‬ ‫דברים‬ ‫שני‬ ‫ישנם‬ ‫הצופן‬ ‫את‬ ‫לפענח‬ ‫כדי‬
.‫המפתח‬ ‫גודל‬ ‫את‬ ‫למצוא‬ .1
.‫המפתח‬ ‫אותיות‬ ‫את‬ ‫למצוא‬ .2
.‫בשנייה‬ ‫להשתמש‬ ‫ניתן‬ ‫טובה‬ ‫מספיק‬ ‫לא‬ ‫אחת‬ ‫אם‬ .‫הצופן‬ ‫לפענוח‬ ‫שיטות‬ ‫שתי‬ ‫ישנן‬
7
‫אלפבתית‬-‫רב‬ ‫הצפנה‬ 6
o ‫להצפנה‬ ‫מבוא‬ =
‫הטקסט‬ ‫סיבוב‬ ‫ע“י‬ ‫המפתח‬ ‫אורך‬ ‫מציאת‬ 6.1.3
‫סיבוב‬ ‫ע“י‬ ‫התאמות‬ ‫מציאת‬
.α-‫ב‬ ‫אותו‬ ‫ומסובבים‬ ‫עצמו‬ ‫מעל‬ ‫הטקסט‬ ‫את‬ ‫שמים‬ ‫אנחנו‬
:‫אזי‬ abac :‫הוא‬ ‫המקור‬ ‫טקסט‬ ‫אם‬ ,‫למשל‬
.‫לעצמו‬ ‫ביחס‬ ‫הטקסט‬ ‫את‬ ‫הזזנו‬ ‫בכמה‬ ‫אומרת‬ α = . . . ‫הראשונה‬ ‫השורה‬
.‫הטקסט‬ ‫היא‬ - abac - ‫השנייה‬ ‫השורה‬
.‫המוזז‬ ‫הטקסט‬ ‫היא‬ - ‫השלישית‬ ‫השורה‬
α = 1 α = 2 α = 3
abac abac abac
caba acab baca
(a :‫משמאל‬ ‫השלישית‬ ‫)באות‬ α = 2 ‫כאשר‬ ‫אחת‬ ‫התאמה‬ ‫ששינה‬ ‫לב‬ ‫נשים‬
‫קפיצה‬ ‫תהיה‬ ‫הזה‬ ‫במקום‬ ‫כלל‬ ‫)בדרך‬ ‫התאמות‬ ‫הרבה‬ ‫הכי‬ ‫יש‬ ‫שעבורו‬ α-‫ה‬ ‫את‬ ‫למצוא‬ ‫הוא‬ ‫הרעיון‬
.(‫ארוך‬ ‫מספיק‬ ‫שהוא‬ ‫בטקסט‬ ‫שמדובר‬ ‫בהנחה‬ ,‫במספר‬ ‫משמעותית‬
.6.1.5 :‫כאן‬ ‫שמתוארות‬ ‫בדרכים‬ ‫לפענח‬ ‫ניתן‬ ‫ואז‬
‫וקטורית‬ ‫מכפלה‬ ‫ע“י‬ ‫המפתח‬ ‫אורך‬ ‫מציאת‬ 6.1.4
,‫הזזה‬ ‫ללא‬ ‫המקורי‬ ‫הווקטור‬ ‫שזה‬ V0-‫ב‬ ‫המוצפן‬ ‫בטקסט‬ ‫האותיות‬ ‫של‬ ‫התדירויות‬ ‫וקטור‬ ‫את‬ ‫את‬ ‫נסמן‬
,V1 = [4, 1, 2, 3] ‫אזי‬ V0 = [1, 2, 3, 4] ‫אם‬ ,‫כלומר‬ ,‫ימינה‬ 1 ‫של‬ ‫ציקלית‬ ‫בהזזה‬ ‫הוקטור‬ ‫את‬ V1-‫ב‬
...'‫וכו‬ V2 = [3, 4, 1, 2]
:‫היא‬ ‫להתאמה‬ ‫ההסתברות‬ α 6= β-‫ו‬ ‫הא“ב‬ ‫גודל‬ ‫זה‬ n ‫כאשר‬ ,α, β ∈ Zn ‫עבור‬
Vα • Vβ =
X
i∈Zn
(Vα [i] · Vβ [i])
[‫שלנו‬ ‫במקרה‬ ‫אפשרי‬ ‫]בלתי‬ α = β-‫ש‬ ‫או‬ ‫כאשר‬ ‫יהיה‬ ‫וזה‬ Vα • Vβ ‫של‬ ‫המקסימלי‬ ‫הערך‬ ‫את‬ ‫ניקח‬
‫כפולה‬ ‫או‬ ‫המפתח‬ ‫אורך‬ ‫לפי‬ ‫היא‬ ‫ימינה‬ ‫שההזזה‬ ‫)כלומר‬ ‫הצפנה‬ ‫אותה‬ ‫לפי‬ ‫מוצפנות‬ ‫האותיות‬ ‫כאשר‬ ‫או‬
.(‫שלו‬
.‫שונה‬ ‫בסדר‬ ‫אך‬ ‫רכיבים‬ ‫אותם‬ ‫את‬ ‫ישנם‬ ‫הווקטורים‬ ‫לשני‬ ‫כי‬ ‫לב‬ ‫נשים‬
‫לדעת‬ ‫לנו‬ ‫מאפשרות‬ ‫הם‬ ,‫כלומר‬ ,‫הסתברותיות‬ ‫הינן‬ ‫האחרונות‬ ‫השיטות‬ ‫ששתי‬ ‫לזכור‬ ‫חשוב‬
.‫אורכו‬ ‫אכן‬ ‫שזהו‬ ‫בוודאות‬ ‫לנו‬ ‫מבטיחות‬ ‫לא‬ ‫אך‬ ‫המפתח‬ ‫אורך‬ ‫מה‬ ‫גבוהה‬ ‫בהסתברות‬
‫המפתח‬ ‫מילת‬ ‫פענוח‬ 6.1.5
:‫ראשונה‬ ‫שיטה‬
.‫האותיות‬ ‫תדירות‬ ‫לפי‬ ‫היא‬ ‫הראשונה‬ ‫השיטה‬
.‫תדירות‬ ‫ונבדוק‬ ‫בלוק‬ ‫בכל‬ ‫הראשונה‬ ‫האות‬ ‫את‬ ‫ניקח‬
‫בכמה‬ ‫לדעת‬ ‫כדי‬ ‫כזאת‬ ‫אחת‬ ‫אות‬ ‫)ומספיקה‬ .e ‫הנראה‬ ‫ככל‬ ‫היא‬ ‫גבוהה‬ ‫הכי‬ ‫התדירות‬ ‫עם‬ ‫האות‬
.(...‫הזזנו‬
...'‫וכו‬ ‫בלוק‬ ‫בכל‬ ‫השנייה‬ ‫לאות‬ ‫נעשה‬ ‫ככה‬
‫שאומר‬ ‫מה‬ k ‫למשל‬ ‫היא‬ ‫בתדירות‬ ‫השנייה‬ ‫שהאות‬ ‫נגלה‬ ‫לפעמים‬ ‫כי‬ ‫עובדת‬ ‫תמיד‬ ‫לא‬ ‫הזאת‬ ‫השיטה‬ ‫אבל‬
.(‫משמעות‬ ‫תהיה‬ ‫לא‬ ‫כולו‬ ‫לפענוח‬ ‫גם‬ ‫)ואז‬ ‫נכון‬ ‫לא‬ ‫פענחנו‬ ‫הנראה‬ ‫שככל‬
8
‫אלפבתית‬-‫רב‬ ‫הצפנה‬ 6
o ‫להצפנה‬ ‫מבוא‬ =
:‫אחרת‬ ‫שיטה‬ ‫יש‬ ‫כך‬ ‫לשם‬
.‫מסוימת‬ ‫אות‬ ‫לקבל‬ ‫ההסתברות‬ ‫ע“פ‬ ‫שעובדת‬
:‫חשובה‬ ‫הערה‬
‫בא“ב‬ ‫האותיות‬ ‫תדירות‬ ‫של‬ ‫ההסתברות‬ ‫וקטור‬ ‫לנו‬ ‫שיהיה‬ ‫צריכים‬ ‫אנחנו‬ ‫הזאת‬ ‫השיטה‬ ‫בשביל‬
.‫כללי‬ ‫באופן‬ ‫שלנו‬
:‫הבא‬ ‫באופן‬ ,‫תדירויות‬ ‫וקטור‬ ‫ונבנה‬ ‫בלוק‬ ‫בכל‬ ‫הראשונה‬ ‫האות‬ ‫את‬ ‫ניקח‬
:‫תדירויות‬ ‫וקטור‬ ‫בונים‬ ‫כיצד‬
.(‫סימנים‬ ‫של‬ ‫וסופית‬ ‫ריקה‬ ‫לא‬ ‫)קבוצה‬ ‫שלנו‬ ‫הא“ב‬ = Σ :‫נסמן‬
‫המופעים‬ ‫מספר‬ ‫את‬ ϕ (A)-‫ב‬ ‫נסמן‬ A ∈ Σ ‫ועבור‬ ,‫שלנו‬ ‫א“ב‬-‫ב‬ ‫האותיות‬ ‫מספר‬ = n = |Σ|
.‫מסוים‬ ‫בטקסט‬ A ‫של‬
:‫יהיה‬ ‫התדירויות‬ ‫וקטור‬ ,‫כלשהו‬ ‫טקסט‬ ‫עבור‬ ‫אזי‬
U =

ϕ (A)
n
A ∈ Σ
#
.1 ‫לקבל‬ ‫צריך‬ ‫הווקטור‬ ‫אברי‬ ‫כל‬ ‫את‬ ‫סוכמים‬ ‫שאם‬ ‫לזכור‬ ‫חשוב‬
‫הא“ב‬ ‫של‬ ‫התדירויות‬ ‫וקטור‬ ‫את‬ V0-‫ב‬ ‫נסמן‬ ‫אזי‬ ,‫מסוים‬ ‫טקסט‬ ‫עבור‬ ‫התדירויות‬ ‫וקטור‬ ‫הוא‬ U ‫אם‬
.(6.1.4-‫ב‬ ‫שתואר‬ ‫)כפי‬ ‫ימינה‬ α-‫ב‬ ‫הוקטור‬ ‫של‬ ‫ציקלית‬ ‫הזזה‬ ‫הוא‬ α ∈ N ‫עבור‬ Vα-‫ו‬ ‫בכללי‬
:‫הוא‬ ‫למצוא‬ ‫שעלינו‬ ‫מה‬ ‫כעת‬
max
n
β β = Vα • U , α ∈ Zn
o
,‫מקסימלי‬ ‫הוא‬ Vα•U ‫שעבורו‬ α ‫אותו‬ ‫את‬ ‫בהתאמה‬ ‫נמצא‬ ‫אזי‬ ‫מקסימלי‬ β ‫ערך‬ ‫אותו‬ ‫את‬ ‫שנמצא‬ ‫אחרי‬
.‫מחפשים‬ ‫אנחנו‬ ‫שאותה‬ ‫האות‬ ‫זאת‬ ‫הזה‬ α-‫וה‬
.a ‫היא‬ ‫הראשונה‬ ‫האות‬ ‫אזי‬ α = 0 ‫כי‬ ‫ונראה‬ ‫בלוק‬ ‫בכל‬ ‫הראשונה‬ ‫האות‬ ‫על‬ ‫זאת‬ ‫נעשה‬ ‫אם‬ ,‫למשל‬
...c ‫היא‬ ‫הראשונה‬ ‫האות‬ ‫כי‬ ‫נדע‬ ‫אזי‬ α = 2 ‫ואם‬
.‫הלאה‬ ‫וכך‬
.‫הקודמת‬ ‫השיטה‬ ‫מוצלחת‬ ‫יותר‬ ‫בעיקרון‬ ‫הזאת‬ ‫השיטה‬
9
‫היל‬ ‫צופן‬ 7
o ‫להצפנה‬ ‫מבוא‬ =
z ‫היל‬ ‫צופן‬ .7 Z
.‫מטריצות‬ ‫באמצעות‬ ‫בלוקים‬ ‫של‬ ‫הצפנה‬ ‫על‬ ‫שעובד‬ ‫צופן‬ ‫הוא‬ (Hill Cipher) ‫היל‬ ‫צופן‬
.n ∈ N ‫בגודל‬ ‫לבלוקים‬ ‫המקור‬ ‫טקסט‬ ‫מחלקים‬ ‫כאשר‬
‫הצפנה‬ 7.1
n × n ‫בגודל‬ ‫הפיכה‬ M ∈ Mn×n (Zm) ‫מטריצה‬ ‫צריכים‬ ‫אנחנו‬ ‫המקור‬ ‫טקסט‬ ‫את‬ ‫להצפין‬ ‫בשביל‬
.(‫הבלוקים‬ ‫גודל‬ ‫זה‬ n ‫)כאשר‬
‫מסמל‬ ‫מספר‬ ‫וכל‬ ‫הא“ב‬ ‫גודל‬ ‫הוא‬ m ‫כאשר‬ Zm-‫ב‬ ‫במספרים‬ ‫הם‬ ‫המטריצה‬ ‫בתאי‬ ‫המספרים‬ ‫כאשר‬
.‫בא“ב‬ ‫אות‬
‫אברי‬ ‫כל‬ ‫אזי‬ a = 0, b = 1, . . . , z = 25 ‫כאשר‬ (‫הלטיניות‬ ‫)האותיות‬ abcd...-‫ה‬ ‫על‬ ‫נסתכל‬ ,‫למשל‬
:‫להיות‬ ‫יכולה‬ ‫המטריצה‬ ‫אזי‬ n = 2 ‫כי‬ ‫ונניח‬ ,Z26-‫ב‬ ‫יהיו‬ K ‫המטריצה‬
M =

1 2
7 13

:‫הוא‬ ‫שלנו‬ ‫המקור‬ ‫טקסט‬ ‫כי‬ ‫ונניח‬
rabbit
:‫הראשון‬ ‫הבלוק‬ ‫עבור‬ ,‫למשל‬ ,‫במטריצה‬ ‫בלוק‬ ‫כל‬ ‫ונכפול‬ (ra|bb|it) 2 ‫בגודל‬ ‫של‬ ‫לבלוקים‬ ‫אותו‬ ‫נחלק‬ ‫אזי‬
M ·

r
a

= M ·

17
1

=

1 2
7 13

·

17
1

=

19
2

= tb
.tbgour :‫תהיה‬ ‫בסוף‬ ‫והתוצאה‬
‫פענוח‬ 7.2
.(...‫כמובן‬ ‫הבלוקים‬ ‫גודל‬ ‫)ואת‬ M−1 ‫את‬ ‫צריכים‬ ‫אנחנו‬ ‫פענוח‬ ‫לשם‬
:‫שלנו‬ ‫במקרה‬
M−1
=

13 2
7 25

‫במטריצה‬ ‫אותם‬ ‫ונכפול‬ (tb|go|ur) 2 ‫בגודל‬ ‫לבלוקים‬ ‫המוצפן‬ ‫הטקסט‬ ‫את‬ ‫נחלק‬ ‫פשוט‬ ‫לפענח‬ ‫ובשביל‬
.‫המקורי‬ ‫הטקסט‬ ‫את‬ ‫את‬ ‫לקבל‬ ‫כדי‬ M−1
:tb-‫מ‬ ‫נתחיל‬ ‫שלנו‬ ‫במקרה‬ ,‫כלומר‬

13 2
7 25

·

t
b

=

13 2
7 25

·

19
2

=

17
1

=

r
a

= ra
.rabbit :‫בסוף‬ ‫שנקבל‬ ‫עד‬ ‫הלאה‬ ‫וכך‬
10
‫וקסור‬ 2 ‫מודולו‬ ‫חיבור‬ 8
o ‫להצפנה‬ ‫מבוא‬ =
‫ההצפנה‬ ‫מטריצת‬ ‫מציאת‬ 7.3
?‫אותה‬ ‫למצוא‬ ‫נוכל‬ ‫כיצד‬ ,M ‫מהי‬ ‫יודעים‬ ‫לא‬ ‫ואנחנו‬ ‫נניח‬
‫גדלים‬ ‫לנסות‬ ‫צריך‬ ‫פשוט‬ ‫אזי‬ ‫לנו‬ ‫נתון‬ ‫לא‬ ‫הוא‬ ‫אם‬ ,‫הבלוקים‬ ‫גודל‬ ‫מה‬ ‫לדעת‬ ‫צריכים‬ ‫אנחנו‬ .7.1 ‫הערה‬
...‫שנצליח‬ ‫עד‬ ‫שונים‬
:‫מטריצות‬ ‫שתי‬ ‫נבנה‬ ‫ולכן‬ rabb → tbgo ‫כי‬ ‫יודעים‬ ‫אנחנו‬
P =

r b
a b

, C =

t g
b o

:‫ולכן‬ M · P = C ‫כי‬ ‫יודעים‬ ‫ואנחנו‬
M = C · P−1
‫נוכל‬ ‫שממנו‬ ‫אחר‬ ‫טקסט‬ ‫למצוא‬ ‫נצטרך‬ ,‫כזה‬ ‫במצב‬ .‫הפיכה‬ ‫אינה‬ P ‫שהמטריצה‬ ‫להיות‬ ‫יכול‬ .7.2 ‫הערה‬
.(‫המוצפן‬ ‫בטקסט‬ ‫להן‬ ‫המקבילות‬ ‫אותיות‬ 4-‫ו‬ ‫המקורי‬ ‫הטקסט‬ ‫של‬ ‫אותיות‬ 4) ‫הנ“ל‬ ‫המטריצות‬ ‫את‬ ‫לייצר‬
:III ‫חלק‬
u‫מודולו‬ ‫הצפנות‬U
z ‫וקסור‬ 2 ‫מודולו‬ ‫חיבור‬ .8 Z
.(2 ‫בעמוד‬ ,3.1 ‫הגדרה‬ ‫)ע“פ‬ Z2 = {0, 1}
:x, y ∈ Z2 ‫עבור‬
x + y (mod 2) = x − y (mod 2) = x ⊕ y
:x1, . . . , xk ∈ Z2 ‫משתנים‬ m ‫עבור‬ ‫נכון‬ ‫והדבר‬


X
1≤i≤m
xi

 mod 2 =
M
1≤i≤m
xi
.{0, 1}-‫ב‬ - ‫כלומר‬ ,Z2-‫ב‬ ‫הוא‬ ‫ערכה‬ ‫אשר‬ ‫אחד‬ ‫מאורך‬ ‫יחידה‬ ‫זוהי‬ ‫ביט‬ .8.1 ‫הגדרה‬
11
‫זרם‬ ‫הצפנות‬ 9
o ‫להצפנה‬ ‫מבוא‬ =
z ‫זרם‬ ‫הצפנות‬ .9 Z
.(‫בלוקים‬ ‫להצפנת‬ ‫)בניגוד‬ ‫בנפרד‬ ‫ביט‬ ‫כל‬ ‫מצפינים‬ ‫אנחנו‬ ‫זרם‬ ‫בהצפנות‬
.m ‫אורך‬ ‫באותו‬ ‫ביטים‬ ‫של‬ ‫אוסף‬ ‫כולם‬ - c ‫המוצפן‬ ‫והטקסט‬ k ‫המפתח‬ ,p ‫המקור‬ ‫טקסט‬
:‫ההצפנה‬ ‫פונקציית‬
:1 ≤ i ≤ m ‫לכל‬
ci = e (pi) = pi ⊕ ki = pi + ki (1)
:‫הפענוח‬ ‫פונקציית‬
:1 ≤ i ≤ m ‫לכל‬
pi = d (ci) = ci ⊕ ki = ci + ki (2)
:‫כאשר‬
‫המקור‬ ‫מטקסט‬ ‫סיבית‬ ‫זאת‬ pi
‫מהמפתח‬ ‫סיבית‬ ‫זאת‬ ki
‫המוצפן‬ ‫מהטקסט‬ ‫סיבית‬ ‫זאת‬ ci
‫פונקציות‬ ‫לינארי‬ ‫הזזה‬ ‫אוגר‬-‫ו‬ ‫אקראית‬ ‫סיביות‬ ‫מחוללי‬ ‫פעמי‬-‫חד‬ ‫פנקס‬ :‫הבאות‬ ‫הזרם‬ ‫הצפנות‬ ‫בכל‬
‫זהות‬ ‫הן‬ (2) ‫והפענוח‬ (1) ‫ההצפנה‬
‫ליצור‬ ‫לנו‬ ‫כדאי‬ ‫הכי‬ ‫דרך‬ ‫באיזו‬ ,‫כלומר‬ ?‫המפתח‬ ‫את‬ ‫יוצרים‬ ‫אנחנו‬ ‫כיצד‬ ‫היא‬ ‫העיקרית‬ ‫השאלה‬ ‫כעת‬
.‫מפתח‬
(OTP) ‫פעמי‬-‫חד‬ ‫פנקס‬ 9.1
‫פעם‬ ‫רק‬ ‫במפתח‬ ‫משתמשים‬ :‫הסיבה‬ ,(!‫מושלמת‬ ‫)אפילו‬ ‫וטובה‬ ‫חזקה‬ ‫מאוד‬ ‫הצפנה‬ ‫זאת‬ ‫פעמי‬-‫חד‬ ‫פנקס‬
.‫וזהו‬ ‫אחת‬
.k0, k1, k2 . . . , km ∈ Z2 ‫סיביות‬ ‫של‬ ‫אקראית‬ ‫סדרה‬ ‫מכיל‬ ‫הפנקס‬
‫על‬ ‫דבר‬ ‫שום‬ ‫לנו‬ ‫לגלות‬ ‫יכול‬ ‫לא‬ ‫המוצפן‬ ‫הטקסט‬ ,‫בפנקס‬ ‫הסיביות‬ ‫של‬ ‫האקראיות‬ ‫בגלל‬ .9.1 ‫הערה‬
.‫המקור‬ ‫טקסט‬
.‫מידע‬ ‫להעברת‬ ‫באינטרנט‬ ‫מחשבים‬ ‫לתקשורת‬ ‫בעיקר‬ ‫שימש‬ .9.2 ‫הערה‬
‫אקראיות‬ ‫סיביות‬ ‫מחוללי‬ 9.2
TNRG 9.2.1
‫שהוא‬ ‫כיוון‬ ‫לשחזר‬ ‫אפשר‬ ‫שאי‬ ‫סיביות‬ ‫מחולל‬ ‫זהו‬ - True Random Number Generator - TNRG
.‫פיזיקליות‬ ‫תופעות‬ ‫על‬ ‫מבוסס‬
PRNG 9.2.2
‫חישוב‬ ‫ידי‬-‫על‬ ‫הנוצרת‬ ‫סיביות‬ ‫של‬ ‫סדרה‬ ‫זוהי‬ - Pseudo Random Number Generator - PRNG
:‫למשל‬ ,‫ברקורסיה‬
s0 = 12
si+1 = 115si + 19 mod 312
...‫אקראיים‬ ‫לא‬ ‫הם‬ ‫כי‬ ‫מושלמת‬ ‫בטיחות‬ ‫אין‬ ‫אבל‬ ‫פעמי‬-‫החד‬ ‫מהפנקס‬ ‫לשימוש‬ ‫קלים‬ ‫יותר‬ ‫הללו‬ ‫הפתרונות‬
12
‫זרם‬ ‫הצפנות‬ 9
o ‫להצפנה‬ ‫מבוא‬ =
LFSR ‫לינארי‬ ‫הזזה‬ ‫אוגר‬ 9.3
‫מקובל‬ .‫אקראי‬ ‫שיראה‬ ‫משהו‬ ,‫כלומר‬ - “‫אקראיות‬-‫”פסודו‬ ‫לייצר‬ ‫הוא‬ ‫שלה‬ ‫שהרעיון‬ ‫בנוסחה‬ ‫מדובר‬ ‫כאן‬
.‫בטיחות‬ ‫פחות‬ ‫אך‬ ‫גבוהה‬ ‫מהירות‬ ‫דורשות‬ ‫אשר‬ - ‫בכבלים‬ ‫טלוויזיה‬ ‫כמו‬ ‫במקומות‬ ‫זה‬ ‫בצופן‬ ‫להשתמש‬
:‫למשל‬ ,‫נסיגה‬ ‫נוסחת‬ ‫שישנה‬ ‫הוא‬ ‫הרעיון‬
zn+5 = z2 + z4 mod 2
‫הנסיגה‬ ‫נוסחת‬ 9.3.1
:‫ערכים‬ m ‫לנו‬ ‫יש‬ ‫הנסיגה‬ ‫נוסחת‬ ‫עבור‬
‫התחלתיים‬ ‫ערכים‬ z1, . . . , zm
.‫מקדמים‬ c0, . . . , cm−1-‫ו‬
(Z2-‫ב‬ ‫כמובן‬ ‫הם‬ ‫הנתונים‬ ‫)כל‬
Zm+n = c0zn + c1zn+1 + · · · + cm−1zn+m−1 mod 2
.‫בסדרה‬ ‫הבאות‬ ‫הסיביות‬ ‫את‬ ‫מחשבים‬ ‫שאנחנו‬ ‫היא‬ zn-‫ב‬ ‫מתחילים‬ ‫אנחנו‬ ‫שבגללה‬ ‫הסיבה‬
‫הצופן‬ ‫של‬ ‫תכונות‬ 9.3.2
‫את‬ ‫לאתר‬ ‫כדי‬ ‫סיביות‬ 2m ‫צריך‬ m ‫באורך‬ ‫מפתח‬ ‫עבור‬ :‫נמוכה‬ ‫בטיחות‬ ‫עם‬ ‫אבל‬ .‫מהיר‬ ‫מאוד‬ ‫הוא‬
.(‫בהמשך‬ ‫נראה‬ ‫הדרך‬ ‫)את‬ ‫הנסיגה‬ ‫נוסחת‬
‫מחזור‬ ‫לנו‬ ‫לייצר‬ ‫יכולה‬ ‫היא‬ ‫אזי‬ ,‫נסיגה‬ ‫נוסחת‬ ‫שיש‬ ‫בגלל‬ ,‫כלומר‬ .‫מחזורי‬ ‫במשהו‬ ‫מדובר‬ .9.3 ‫הערה‬
100110 . . .
| {z }
2m−1
100110 . . .
| {z }
2m−1
:‫עצמן‬ ‫על‬ ‫לחזור‬ ‫יתחילו‬ ‫כבר‬ ‫הסיביות‬ - ‫זה‬ ‫אחרי‬ ,‫)כלומר‬ ‫ביטים‬ 2m − 1 ‫עד‬
.‫יותר‬ ‫קטנה‬ ‫להיות‬ ‫יכולה‬ ‫שהמחזוריות‬ ‫כמובן‬ -
‫הנסיגה‬ ‫נוסחת‬ ‫מציאת‬ 9.3.3
‫חלק‬ ‫או‬ ‫המוצפן‬ ‫מהטקסט‬ ‫חלק‬ + ‫המקורית‬ ‫מההודעה‬ ‫חלק‬ ‫צריכים‬ ‫אנחנו‬ ‫הנסיגה‬ ‫נוסחת‬ ‫מציאת‬ ‫לשם‬
.‫יוצר‬ ‫שהאוגר‬ ‫מהסדרה‬
‫מטקסט‬ ‫סיבית‬ ‫לנו‬ ‫נתונה‬ ‫אם‬ (1) ‫זרם‬ ‫להצפנת‬ ‫ובנוסחה‬ 2 ‫מודולו‬ ‫בחיבור‬ ‫שראינו‬ ‫שכמו‬ ‫היא‬ ‫לכך‬ ‫הסיבה‬
ki ‫מהמפתח‬ ‫סיבית‬ ‫אליה‬ ‫חיברנו‬ ‫אליה‬ ‫להגיע‬ ‫כדי‬ ‫אזי‬ ci ‫המוצפן‬ ‫מהטקסט‬ ‫וסיבית‬ pi ‫למשל‬ ,‫המקור‬
:‫אבל‬ ,(‫יודעים‬ ‫לא‬ ‫אנחנו‬ ‫כרגע‬ ‫)שאותה‬
pi + ki = ci
m
ki = ci − pi = ci + pi
.‫הנתונות‬ ‫הסיביות‬ ‫לשאר‬ ‫לעשות‬ ‫נוכל‬ ‫וכך‬
‫המפתח‬ ‫של‬ ‫סיביות‬ ‫מספר‬ ‫את‬ ‫לנו‬ ‫שיש‬ ‫אחרי‬ ‫לכן‬ .‫מחזורי‬ ‫במשהו‬ ‫מדובר‬ 9.3 ‫בהערה‬ ‫שנכתב‬ ‫כפי‬ ,‫כעת‬
.‫שנרצה‬ ‫אורך‬ ‫באיזה‬ ‫המפתח‬ ‫את‬ ‫למצוא‬ ‫נוכל‬ ‫וככה‬ ‫הנסיגה‬ ‫נוסחת‬ ‫את‬ ‫לשחזר‬ ‫לנסות‬ ‫נוכל‬
13
‫זרם‬ ‫הצפנות‬ 9
o ‫להצפנה‬ ‫מבוא‬ =
‫הנסיגה‬ ‫נוסחת‬ ‫מבנה‬ 9.3.4
:‫פשוטה‬ ‫דוגמה‬ ‫על‬ ‫נסתכל‬ ‫עובדת‬ ‫היא‬ ‫איך‬ ‫להבין‬ ‫בשביל‬
zn+3 = zn + zn+2
‫והספרה‬ 0-‫ה‬ ‫הספרה‬ ‫היא‬ ‫הראשון‬ ‫במקום‬ ‫הספרה‬ ,‫כלומר‬ ,0-‫מ‬ ‫מתחילים‬ ‫שאנחנו‬ ‫לזכור‬ ‫חשוב‬
...‫הלאה‬ ‫וכך‬ 1-‫ה‬ ‫הספרה‬ ‫היא‬ ‫השני‬ ‫במקום‬
!mod2 ‫הם‬ ‫החיבורים‬ ‫כל‬ - ‫וכמובן‬
‫צריכים‬ ‫אנחנו‬ ‫ולכן‬ ,‫ואילך‬ ‫הרביעית‬ ‫הסיבית‬ ‫את‬ ‫למצוא‬ ‫נוכל‬ ‫אנחנו‬ ,‫כלומר‬ .m = 3 :‫הנ“ל‬ ‫במקרה‬
:‫הם‬ ‫המקדמים‬ .(‫המינימום‬ ‫זה‬ 3 ‫אבל‬ ,‫כמובן‬ ‫יותר‬ ‫גם‬ ‫)אפשר‬ ‫לפחות‬ ‫התחלה‬ ‫בתור‬ ‫סיביות‬ 3 ‫לנו‬ ‫שיהיו‬
‫היא‬ zn+3 ,‫הרביעית‬ ‫הספרה‬ ‫אזי‬ ,010 :‫הן‬ ‫לנו‬ ‫שנתונות‬ ‫והספרות‬ ‫נניח‬ .c0 = 1, c1 = 0, c1 = 1
:‫והשלישית‬ ‫הראשונה‬ ‫הספרה‬ ‫סכום‬ ‫כלומר‬ - zn + zn+2 ‫של‬ ‫הסכום‬ ‫של‬ ‫הספרה‬
‫הספרות‬ ‫אלו‬ ‫התחתון‬ ‫הקו‬ ‫עם‬ ‫והספרות‬ ,‫הנסיגה‬ ‫נוסחת‬ ‫באמצעות‬ ‫שמצאנו‬ ‫הספרות‬ ‫הוא‬ ‫הכחול‬ ‫הטקסט‬
:‫מחברים‬ ‫אנחנו‬ ‫שאותן‬
.(‫הרביעי‬ ‫במקום‬ ‫הספרה‬ ,‫)כלומר‬ z3 ‫הספרה‬ ‫את‬ ‫למצוא‬ ‫נוכל‬ ,n = 0 ‫עבור‬
:z3 = z0 + z2
010 −→ 0100
:n = 1 ‫עבור‬
:z4 = z1 + z3
0100 −→ 01001
:n = 2 ‫עבור‬
:z5 = z2 + z4
01001 −→ 010011
....‫הלאה‬ ‫וכך‬
:‫למשל‬ ,‫מחוברים‬ ‫משני‬ ‫יותר‬ ‫להיות‬ ‫שיכולים‬ ‫וכמובן‬
Zn+6 = zn+2 + zn+4 + zn+5
‫הנסיגה‬ ‫נוסחת‬ ‫מציאת‬ 9.3.5
:‫הכללית‬ ‫הנוסחה‬ ‫זאת‬ - ‫למעלה‬ ‫שהוזכר‬ ‫כמו‬
Zm+n = c0zn + c1zn+1 + · · · + cm−1zn+m−1 mod 2
14
‫זרם‬ ‫הצפנות‬ 9
o ‫להצפנה‬ ‫מבוא‬ =
c0, . . . , cm−1 :‫המקדמים‬ ‫את‬ ‫ולמצוא‬ m ‫את‬ ‫למצוא‬ ‫היא‬ ‫שלנו‬ ‫המטרה‬ ,‫ביטים‬ ‫סדרת‬ ‫בהינתן‬
:‫משוואות‬ ‫באמצעות‬ ‫היא‬ ‫לפתור‬ ‫הדרך‬ ,‫מסוים‬ m ‫עבור‬





z1 z2 · · · zm
z2 z3 · · · zm+1
.
.
.
.
.
.
...
.
.
.
zm zm+1 · · · z2m−1





| {z }
M
·





c0
c1
.
.
.
cm−1





=





zm+1
zm+2
.
.
.
z2m





:‫אזי‬ abcdefghi :‫היא‬ ‫שלנו‬ ‫הסיביות‬ ‫סדרת‬ ‫אם‬ ,‫כלומר‬
:m = 2 ‫עבור‬

a b
b c

| {z }
M

c0
c1

=

c
d

:m = 3 ‫עבור‬


a b c
b c d
c d e


| {z }
M


c0
c1
c2

 =


d
e
f


.‫הלאה‬ ‫וכך‬
.‫המקדמים‬ ‫שאלו‬ c0, c1, . . .-‫ל‬ (‫הביטים‬ ‫)אחד‬ c ‫בין‬ ‫הבדל‬ ‫שיש‬ ‫כמובן‬
.‫לנו‬ ‫שיש‬ ‫הספרות‬ ‫סדרת‬ ‫את‬ ‫לנו‬ ‫שנותנת‬ ‫הנסיגה‬ ‫נוסחת‬ ‫את‬ ‫שמוצאים‬ ‫עד‬ ‫אחר‬ m ‫מנסים‬ ‫פעם‬ ‫כל‬
:m ‫כל‬ ‫עבור‬
‫אם‬ - det (M) mod 2 ‫השמאלית‬ ‫המטריצה‬ ‫של‬ ‫הדטרמיננטה‬ ‫את‬ ‫מחשבים‬ ‫אנחנו‬ .1
.2-‫ל‬ ‫וממשיכים‬ ‫פתרון‬ ‫יש‬ ‫אזי‬ det (M) 6= 0
.m + 1-‫ל‬ ‫עוברים‬ - ‫אחרת‬
‫ספרות‬ ‫לייצר‬ ‫וממשיכים‬ ‫הנסיגה‬ ‫נוסחת‬ ‫את‬ ‫ומקבלים‬ ‫המשוואות‬ ‫מערכת‬ ‫את‬ ‫פותרים‬ .2
.‫פיה‬-‫על‬
!‫סיימנו‬ - ‫במקור‬ ‫לנו‬ ‫נתונה‬ ‫שהייתה‬ ‫לסדרה‬ ‫הגענו‬ ‫אם‬ .2.1
.m + 1-‫ל‬ ‫עוברים‬ - ‫אחרת‬ .2.2
‫דוגמה‬ 9.3.6
1001001 :‫הבאה‬ ‫הסדרה‬ ‫לנו‬ ‫ונתונה‬ ‫נניח‬
k ‫לנו‬ ‫יש‬ ‫אם‬ - ‫כללי‬ ‫)ובאופן‬ m  2 ‫כי‬ ‫בוודאות‬ ‫יודעים‬ ‫אנחנו‬ ,‫אפסים‬ ‫שני‬ ‫של‬ ‫רצף‬ ‫שיש‬ ‫בגלל‬ ,‫אזי‬
.(‫בהכרח‬ m  k ‫אזי‬ ,‫הנתונה‬ ‫בסדרה‬ ‫אפסים‬
:m = 3
15
‫זרם‬ ‫הצפנות‬ 9
o ‫להצפנה‬ ‫מבוא‬ =


1 0 0
0 0 1
0 1 0




c0
c1
c2

 =


1
0
0


:‫למשוואות‬ ‫פתרון‬ ‫יש‬ ‫ולכן‬ det (M) = 1
c0 = 1
c1 = 0
c2 = 0
.(c0·1+c1·0+c2·0 :‫הראשונה‬ ‫השורה‬ ‫עבור‬ ,‫למשל‬ ,‫במטריצה‬ ‫שורה‬ ‫בכל‬ ‫המקדמים‬ ‫וקטור‬ ‫את‬ ‫)הכפלנו‬
:‫היא‬ ‫שקיבלנו‬ ‫הנסיגה‬ ‫ונוסחת‬
zn+3 = zn
.(9.3.4) ‫כאן‬ ‫שראינו‬ ‫כמו‬ ‫פותרים‬ ‫ועכשיו‬
:‫הוא‬ ‫שנקבל‬ ‫מה‬
1001 → 10010 → 100100 → 1001001
.‫הנסיגה‬ ‫נוסחת‬ ‫שזאת‬ ‫מכאן‬ .‫שבהתחלה‬ ‫הספרות‬ ‫את‬ ‫קיבלנו‬ ‫ואכן‬
‫ממשיכים‬ ‫היינו‬ ‫אזי‬ - det (M) = 1-‫ש‬ ‫או‬ ,‫לנו‬ ‫שנתון‬ ‫ממה‬ ‫אחרות‬ ‫ספרות‬ ‫למשל‬ ‫מקבלים‬ ‫היינו‬ ‫אם‬
.m + 1-‫ל‬
16
‫פריק‬ ‫הוא‬ n ‫מספר‬ ‫האם‬ ‫בדיקת‬ 11
o ‫להצפנה‬ ‫מבוא‬ =
z ‫בלוקים‬ ‫הצפנת‬ .10 Z
‫בלוקים‬ ‫מצפינים‬ ‫אנחנו‬ ‫ביט‬-‫ביט‬ ‫להצפין‬ ‫במקום‬ ‫שכאן‬ ‫רק‬ ,‫זרם‬ ‫להצפנת‬ ‫דומה‬ ‫בלוקים‬ ‫בהצפנת‬ ‫הרעיון‬
.‫התוצאה‬ ‫על‬ ‫משפיע‬ ‫משמאוד‬ ‫מה‬ ,‫ביטים‬ ‫של‬
AES 10.1
‫על‬ ‫שעובדת‬ ‫וחזקה‬ ‫נפוצה‬ ‫הצפנה‬ ‫שיטת‬ ‫זוהי‬ - Advanced Encryption Standart - AES ‫הצפנת‬
:‫הבאים‬ ‫הגדלים‬ ‫באחד‬ ‫הוא‬ ‫המפתח‬ .‫סיביות‬ 128 ‫בגודל‬ ‫בלוקים‬
.128, 192, 256
:‫שלבים‬ ‫ארבעה‬ ‫כוללת‬ AES-‫ה‬ ‫הצפנת‬
.4 × 4 ‫מטריצה‬ ‫בתוך‬ ‫נמצאים‬ ‫ביטים‬ 16 ‫כל‬ ,‫ביטים‬ 16 ‫של‬ ‫לחלקים‬ ‫הנתונים‬ ‫את‬ ‫מחלקים‬ ‫כל‬ ‫ראשית‬
.‫מסוימת‬ ‫טבלה‬ ‫ע“פ‬ ‫אחר‬ ‫בבית‬ ‫מוחלף‬ ‫ביט‬ ‫כל‬ - ‫בתים‬ ‫החלפת‬ ‫תיבות‬ .1
,‫שהיא‬ ‫כמו‬ ‫נשארת‬ ‫הראשונה‬ ‫השורה‬ :‫מסובבת‬ ‫ההחלפה‬ ‫אחרי‬ ‫המטריצה‬ - ‫המטריצה‬ ‫סיבוב‬ .2
‫שמאלה‬ ‫תאים‬ ‫שני‬ ‫זז‬ ‫תא‬ ‫כל‬ ‫השלישית‬ ‫בשורה‬ ,‫ימני‬ ‫אחד‬ ‫מקום‬ ‫זז‬ ‫תא‬ ‫כל‬ - ‫השנייה‬ ‫בשורה‬
:‫שמאלה‬ ‫תאים‬ ‫שלושה‬ ‫זז‬ ‫תא‬ ‫כל‬ ‫השלישית‬ ‫ובשורה‬
.‫חדשים‬ ‫לביטים‬ ‫ומומרת‬ 4×4 ‫מסדר‬ ‫במטריצה‬ ‫כפל‬ ‫עוברת‬ ‫עמודה‬ ‫כל‬ - ‫המטריצה‬ ‫עמודות‬ ‫שינוי‬ .3
‫עמודה‬ ‫כל‬ ‫על‬ ‫עובד‬ ‫אשר‬ ‫הכללי‬ ‫מהמפתח‬ ‫הנבנה‬ ‫מפתח‬ ‫יש‬ ‫סיבית‬ ‫לכל‬ - ‫המפתח‬ ‫של‬ ‫תוספת‬ .4
.‫בנפרד‬
‫בלוקים‬ ‫צפני‬ ‫של‬ ‫סדרה‬ ‫הצפנת‬ 10.2
‫בדיוק‬ ?‫בלוקים‬ ‫של‬ ‫סדרה‬ ‫לנו‬ ‫שיש‬ ‫קורה‬ ‫מה‬ ‫אבל‬ ,‫בלוק‬ ‫להצפין‬ ‫ניתן‬ ‫כיצד‬ ‫ראינו‬ AES-‫ב‬ ‫מקודם‬
.‫הבאה‬ ‫ההצפנות‬ ‫סדרת‬ ‫באה‬ ‫זה‬ ‫בשביל‬
:IV ‫חלק‬
uRSAU
‫תחילה‬ ‫נצטרך‬ ‫עובד‬ ‫הוא‬ ‫וכיצד‬ (Rivest–Shamir–Adleman) RSA-‫ה‬ ‫אלגוריתם‬ ‫את‬ ‫להבין‬ ‫בשביל‬
.‫פריק‬ ‫או‬ ‫ראשוני‬ ‫הוא‬ ‫מספר‬ ‫האם‬ ‫לבדיקה‬ ‫שיטות‬ ‫להכיר‬
z ‫פריק‬ ‫הוא‬ n ‫מספר‬ ‫האם‬ ‫בדיקת‬ .11 Z
.N-‫ב‬ ‫מספרים‬ ‫על‬ ‫רק‬ ‫שמדובר‬ ‫כמובן‬
17
‫פריק‬ ‫הוא‬ n ‫מספר‬ ‫האם‬ ‫בדיקת‬ 11
o ‫להצפנה‬ ‫מבוא‬ =
‫אוילר‬ ‫משפט‬ 11.1
.(gcd (a, n) = 1 ‫ולכן‬ ,‫זרים‬ ‫מספרים‬ ‫הם‬ a, n :‫)כלומר‬ a ∈ Z∗
n ‫ויהי‬ n ∈ N ‫יהי‬
:‫אזי‬
aφ(n)
≡ 1 (mod n)
.‫אוילר‬ ‫פונקציית‬ ‫זאת‬ φ (n) ‫כאשר‬
‫פרמה‬ ‫של‬ ‫הקטן‬ ‫המשפט‬ 11.2
:‫ואז‬ ,‫ראשוני‬ n ‫שבו‬ ‫אוילר‬ ‫משפט‬ ‫של‬ ‫פרטי‬ ‫מקרה‬ ‫זהו‬
:1 ≤ a  n ‫לכל‬ ,‫ולכן‬ ,φ (n) = n − 1
an−1
≡ 1 (mod n)
‫מספר‬ ‫ניקח‬ ‫פשוט‬ ,‫ראשוני‬ ‫הוא‬ p ∈ N ‫אם‬ ‫לדעת‬ ‫בשביל‬ ‫כי‬ ,“‫הבעיה‬ ‫את‬ ‫ש”פתרנו‬ ‫לומר‬ ‫אפשר‬ ,‫עכשיו‬
:‫האם‬ ‫ונבדוק‬ 1  a  p ‫כלשהו‬
ap−1
≡ 1 (mod p)
.(1.5) ‫פריק‬ ‫הוא‬ - ‫לא‬ ‫אם‬ ,(1.4) ‫ראשוני‬ ‫הוא‬ - ‫כן‬ ‫אם‬
‫קריימקל‬ ‫מספרי‬ ‫נקראים‬ ‫אלו‬ .‫פרמה‬ ‫משפט‬ ‫מתקיים‬ ‫ושעבורם‬ ‫ראשוניים‬ ‫אינם‬ ‫שהם‬ ‫מספרים‬ ‫נמצאו‬ ‫אבל‬
.‫אחרת‬ ‫בדיקה‬ ‫וצריך‬ ‫לנו‬ ‫מספיק‬ ‫לא‬ ‫פרמה‬ ‫משפט‬ ‫לכן‬
18
‫פריק‬ ‫הוא‬ n ‫מספר‬ ‫האם‬ ‫בדיקת‬ 11
o ‫להצפנה‬ ‫מבוא‬ =
‫מילר‬-‫רבין‬ ‫אלגוריתם‬ 11.3
‫הכללי‬ ‫הרעיון‬ 11.3.1
- n ‫לפריקות‬ ‫עד‬ ‫מחפשים‬ ,n ∈ N ‫עבור‬
‫העד‬ ‫את‬ ‫מוצאים‬ ‫לא‬ ‫אבל‬ ,‫שישנו‬ ‫שמוצאים‬ ‫)או‬ ‫כזה‬ ‫עד‬ ‫מוצאים‬ ‫אם‬
.‫פריק‬ ‫בוודאות‬ ‫המספר‬ ‫אזי‬ - (‫עצמו‬
‫זה‬ ‫)אבל‬ ‫ראשוני‬ ‫המספר‬ ‫כי‬ ‫מכריזים‬ ‫אז‬ - ‫לפריקות‬ ‫עד‬ ‫מוצאים‬ ‫לא‬ ‫אם‬
.(3
4  ‫בהסתברות‬ ‫נכון‬
:‫אלגוריתמים‬ ‫לשני‬ ‫מתחלק‬ ‫עצמו‬ ‫האלגוריתם‬
?‫לפריקות‬ ‫עד‬ ‫הוא‬ a ‫האם‬ - a  n ‫עבור‬ - ‫הראשון‬
.‫פריק‬ ‫או‬ ‫ראשוני‬ ‫הוא‬ n ‫האם‬ - ‫השני‬
a ‫בסיס‬ ‫על‬ ‫לפריקות‬ ‫עד‬ ‫מציאת‬ 11.3.2
‫לכן‬ ,(‫פרמה‬ ‫)משפט‬ an−1 ≡ 1 (mod n) ‫האם‬ ‫לבדוק‬ ‫מספיק‬ ‫לא‬ ‫זרים‬ a, n ‫עבור‬ ‫מקודם‬ ‫שראינו‬ ‫כפי‬
:‫הוא‬ ‫לעשות‬ ‫שצריך‬ ‫מה‬
‫כי‬ r = 7, j = 2 :‫ולכן‬ n − 1 = 28 ‫אזי‬ n = 29 ‫עבור‬ ,‫)למשל‬ n − 1 = r · 2j :‫ש‬ ‫כך‬ r, j ‫למצוא‬
.(28 = 7 · 22
n ‫לפריקות‬ ‫עד‬ ‫הוא‬ a ‫האם‬ 1 ‫אלגוריתם‬
.a  n-‫ש‬ ‫כך‬ a, n ‫טבעיים‬ ‫מספרים‬ ‫זוג‬ :‫קלט‬
.‫אותו‬ ‫גם‬ ‫מחזיר‬ ‫האלגוריתם‬ ‫אזי‬ - ‫המחלק‬ ‫את‬ ‫למצוא‬ ‫וניתן‬ ‫כן‬ ‫ואם‬ n ‫לפריקות‬ ‫עד‬ a ‫האם‬ :‫פלט‬
.n − 1 = r · 2j :‫ש‬ ‫כך‬ r, j ‫מוצאים‬ .1
.b0 = ar (mod n) .2
‫ייתנו‬ ‫באלגוריתם‬ ‫הבאים‬ ‫השלבים‬ ‫)כל‬ ‫ראשוני‬ ‫כנראה‬ n ‫כי‬ ‫החזר‬ ‫אזי‬ - b0 ≡ ±1 (mod n) ‫אם‬ .3
.(‫להמשיך‬ ‫טעם‬ ‫אין‬ ‫ולכן‬ ,‫תוצאה‬ ‫אותה‬ ‫את‬
:i = j − 1 ‫עד‬ i = 1 ‫עבור‬ .4
.bi = b2
i−1 (mod n) .4.1
.‫לפריקות‬ ‫העד‬ ‫בתור‬ bi−1 ‫ואת‬ ‫פריק‬ n ‫המספר‬ ‫כי‬ ‫החזר‬ - bi ≡ 1 (mod n) .4.2
.‫ראשוני‬ ‫כנראה‬ n ‫המספר‬ ‫כי‬ ‫החזר‬ - bi ≡ −1 (mod n) .4.3
ar·2j
= an−1 6≡ 1 (mod n)-‫ש‬ ‫למצב‬ ‫שהגענו‬ ‫הוא‬ ‫שקורה‬ ‫מה‬ ‫)כי‬ .(‫עד‬ ‫)ללא‬ ‫פריק‬ n ‫כי‬ ‫החזר‬ .5
.(‫ראשוני‬ ‫אינו‬ ‫המספר‬ ‫פרמה‬ ‫ע“פ‬ ‫ולכן‬
‫מילר‬-‫רבין‬ ‫אלגוריתם‬ 11.3.3
.W (a, n) ‫בתור‬ (n ‫לפריקות‬ ‫עד‬ ‫הוא‬ a ‫)האם‬ ‫הקודם‬ ‫האלגוריתם‬ ‫את‬ ‫נגדיר‬
19
RSA-‫ה‬ ‫אלגוריתם‬ 12
o ‫להצפנה‬ ‫מבוא‬ =
‫מילר‬-‫רבין‬ ‫אלגוריתם‬ 2 ‫אלגוריתם‬
.n ‫טבעי‬ ‫מספר‬ :‫קלט‬
.‫לפריקות‬ ‫עד‬ ‫גם‬ ‫מוצא‬ ‫האלגוריתם‬ ‫ואם‬ ,‫ראשוני‬ ‫הוא‬ ‫המספר‬ ‫האם‬ :‫פלט‬
.(a ‫את‬ ‫לבחור‬ ‫שנרצה‬ ‫להיות‬ ‫יכול‬ ,‫מוגרל‬ ‫להיות‬ ‫חייב‬ ‫)לא‬ 1  a  n ‫מספר‬ ‫הגרל‬ .1
.‫פריק‬ n ‫כי‬ ‫אומר‬ W (a, n) ‫האם‬ ‫בדוק‬ .2
.(‫לפריקות‬ ‫העד‬ ‫את‬ ‫גם‬ ‫ישנו‬ ‫)ואם‬ ‫פריק‬ n ‫כי‬ ‫החזר‬ - ‫כן‬ ‫אם‬ .2.1
.‫ראשוני‬ ‫כנראה‬ ‫המספר‬ ‫כי‬ ‫והחזר‬ ‫סיים‬ ‫או‬ 1-‫ל‬ ‫חזור‬ - ‫אחרת‬ .2.2
.n ‫את‬ ‫לפרק‬ ‫ניתן‬ ‫וכך‬ gcd (w, n) 6= 1 ‫אזי‬ ,w ‫עד‬ ‫לנו‬ ‫מחזיר‬ ‫שהאלגוריתם‬ ‫ברגע‬
z RSA-‫ה‬ ‫אלגוריתם‬ .12 Z
.‫שלו‬ ‫המפתח‬ ‫את‬ ‫יש‬ ‫מהצדדים‬ ‫אחד‬ ‫לכל‬ ‫כלומר‬ ,‫אסימטרית‬ ‫בצורה‬ ‫עובד‬ RSA ‫ההצפנה‬ ‫אלגוריתם‬
‫המפתח‬ ‫בניית‬ 12.1
:‫את‬ ‫ומחשבים‬ ,(‫גדולים‬ ‫)עדיף‬ ‫ראושניים‬ ‫מספרים‬ ‫שני‬ ‫מוצאים‬
.n = p · q .1
.(‫אוילר‬ ‫פונקציית‬ ‫זאת‬ φ (n) ‫)כאשר‬ φ (n) = (p − 1) · (q − 1) .2
.gcd (e, φ (n)) = 1 ,‫כלומר‬ ,‫זרים‬ e, φ (n)-‫ו‬ 1  e  φ (n)-‫ש‬ ‫כך‬ e ‫מוצאים‬ .3
. d = e−1 (mod φ (n)) :‫מחשבים‬ .4
.(‫מפרסמים‬ ‫אנחנו‬ ‫זה‬ ‫)את‬ Kpub = (n, e) :‫הציבורי‬ ‫המפתח‬
.(‫בסוד‬ ‫שומרים‬ ‫אנחנו‬ ‫זה‬ ‫)את‬ Kpr = d :‫הפרטי‬ ‫המפתח‬
‫ההודעה‬ ‫הצפנה‬ 12.2
:‫אזי‬ ,1  x  n ‫כאשר‬ ,x ‫היא‬ ‫להצפין‬ ‫רוצים‬ ‫שאנחנו‬ ‫וההודעה‬ ‫נניח‬
y = E (x) = xe
(mod n)
(n, e) ‫שלו‬ ‫הציבורי‬ ‫המפתח‬ ‫על‬ ‫מסתכל‬ ‫היא‬ ‫אזי‬ ,‫לבני‬ x ‫ההודעה‬ ‫את‬ ‫לשלוח‬ ‫רוצה‬ ‫אפרת‬ ‫אם‬ :‫נזכיר‬
.x ‫את‬ ‫מצפינה‬ ‫וכך‬
‫ההודעה‬ ‫פענוח‬ 12.3
:‫זה‬ ‫לעשות‬ ‫צריך‬ ‫שהוא‬ ‫מה‬ ‫כל‬ ‫לשם‬ ,(y) ‫לו‬ ‫שלחה‬ ‫שאפרת‬ ‫ההודעה‬ ‫את‬ ‫לפענח‬ ‫רוצה‬ ‫בני‬
D (y) = yd
(mod n) = x
20
RSA-‫ה‬ ‫אלגוריתם‬ 12
o ‫להצפנה‬ ‫מבוא‬ =
‫הסיני‬ ‫השאריות‬ ‫משפט‬ ‫בעזרת‬ ‫פענוח‬ 12.3.1
:‫הכנות‬ ‫של‬ ‫חישובים‬ ‫בכמה‬ ‫מתחילים‬
.n = p · q ‫כאשר‬ xd (mod n) ‫את‬ ‫לחשב‬ ‫רוצים‬ ‫אנחנו‬
:‫מחשבים‬
:p ‫עבור‬ .1
.Mp ≡ q · q−1 (mod p)

.1.1
.dp ≡ d (mod p − 1) .1.2
.xp ≡ x (mod p) .1.3
.yp ≡ x
dp
p (mod p) .1.4
:q ‫עבור‬ .2
.Mq ≡ p · p−1 (mod q)

.2.1
.dq ≡ d (mod q − 1) .2.2
.xq ≡ x (mod q) .2.3
.yq ≡ x
dq
q (mod q) .2.4
:‫מחשבים‬ ‫ואז‬
xd
≡ yp · Mp + yq · Mq (mod n)
‫החישובים‬ ‫בביצוע‬ ‫לנו‬ ‫שעוזרים‬ ‫כלים‬ 12.4
(‫הופכי‬ ‫וחישוב‬ ‫בחזקה‬ ‫)העלה‬ ‫אלגוריתמים‬ ‫שני‬ ‫ישנם‬ ‫ביעילות‬ ‫החישובים‬ ‫את‬ ‫לעשות‬ ‫שנוכל‬ ‫בשביל‬
.‫וקל‬ ‫מהיר‬ ‫יותר‬ ‫שלהם‬ ‫שהחישוב‬
‫בחזקה‬ ‫להעלאה‬ ‫אלגוריתם‬ 12.4.1
‫כך‬ ‫לשם‬ ,‫זמן‬ ‫המון‬ ‫לקחת‬ ‫יכול‬ ‫בחזקה‬ ‫שהעלה‬ ‫הבעיה‬ ‫אבל‬ ,ab (mod n) ‫את‬ ‫לחשב‬ ‫נרצה‬ ‫פעמים‬ ‫המון‬
:‫הבא‬ ‫האלגוריתם‬ ‫את‬ ‫יש‬
‫בחזקה‬ ‫העלאה‬ ‫אלגוריתם‬ 3 ‫אלגוריתם‬
.x, c, n ∈ N :‫קלט‬
.xc (mod n) :‫פלט‬
‫הסיפרה‬ ‫זאת‬ c0-‫ו‬ ‫שמאלית‬ ‫הכי‬ ‫הסיפרה‬ ‫זאת‬ ct ‫כאשר‬ ,‫בינארית‬ ‫לצורה‬ (‫)החזקה‬ c ‫את‬ ‫ממירים‬ .1
.‫ימנית‬ ‫הכי‬
.z = 1 .2
:i = 0 ‫עד‬ i = t ‫עבור‬ .3
.z2 (mod n) → z .3.1
z · x (mod n) → z ‫אזי‬ ci = 1 ‫אם‬ .3.2
.‫וסיים‬ z ‫את‬ ‫החזר‬ .4
21
RSA-‫ה‬ ‫אלגוריתם‬ 12
o ‫להצפנה‬ ‫מבוא‬ =
: 310 mod 5 ‫את‬ ‫נחשב‬ .12.1 ‫דוגמה‬
1010 ‫זה‬ ‫בבינארית‬ 10
:‫ולכן‬
:31010 mod 5 ‫את‬ ‫נחשב‬
.1010
−
−
→ :‫הבא‬ ‫בסדר‬ ‫לספרות‬ ‫בהתאם‬ ‫בחזקה‬ ‫ההעלאה‬ ‫את‬ ‫נחשב‬ ‫אנחנו‬ ,‫לכן‬
.z = 3 :‫ונקבל‬ 3-‫ב‬ ‫נכפול‬ ‫ואז‬ ,z = 1 :‫ונקבל‬ ‫בריבוע‬ ‫אותו‬ ‫נעלה‬ ,z = 1 ‫בהתחלה‬
.z = 32 mod 5 = 4 :‫ולכן‬ ,0 ‫רק‬ ‫לנו‬ ‫יש‬ ‫מכן‬ ‫לאחר‬
.3 ‫קיבלנו‬ .3-‫ב‬ ‫נכפיל‬ ‫ואז‬ z = 42 mod 5 = 1 :‫בריבוע‬ z ‫את‬ ‫נעלה‬ ‫לכן‬ - 1 ‫לנו‬ ‫יש‬ ‫מכן‬ ‫לאחר‬
,z = 32 mod 5 = 4 :‫בריבוע‬ z ‫זה‬ ‫את‬ ‫נעלה‬ ‫לכן‬ - 0 ‫לנו‬ ‫יש‬ ‫לבסוף‬
.310 mod 5 = 4 :‫הסופית‬ ‫התוצאה‬ ‫וזאת‬
‫דורשים‬ ‫שהם‬ ‫כך‬ ‫אחדות‬ ‫מעט‬ ‫בהם‬ ‫שיש‬ (10001)2 17 ‫או‬ (11)2 3 ‫כמו‬ ‫מספרים‬ ‫נעדיף‬ .12.2 ‫הערה‬
.(3.2 ‫)שלב‬ ‫כפל‬ ‫פעמים‬ ‫מעט‬
‫ההופכי‬ ‫חישוב‬ 12.4.2
.‫ההופכי‬ ‫את‬ ‫לחשב‬ ‫עלינו‬ ‫המפתח‬ ‫בבניית‬ ,‫שראינו‬ ‫כמו‬
“‫”לחלק‬ ‫רוצים‬ ‫ואנחנו‬ x  n-‫ש‬ ‫כך‬ x, n ∈ N :‫מספרים‬ ‫שני‬ ‫לנו‬ ‫יש‬ ‫כי‬ ‫נניח‬ ‫ושארית‬ ‫מנה‬ ‫עם‬ ‫חלוקה‬
:‫הבא‬ ‫באופן‬ ‫זה‬ ‫את‬ ‫לרשום‬ ‫ניתן‬ ‫אזי‬ x-‫ב‬ n ‫את‬
n = qx + r
.‫המנה‬ ‫זאת‬ - q ‫כאשר‬
.(0 ≤ r ≤ n − 1) ‫השארית‬ ‫זאת‬ - r-‫ו‬
.2 ‫היא‬ ‫והשארית‬ 4 ‫היא‬ ‫המנה‬ ‫אזי‬ ,14 = 4 · 3 + 2 :3-‫ב‬ 14 ‫נחלק‬ .12.3 ‫דוגמה‬
.0 ‫היא‬ ‫והשארית‬ 1 ‫היא‬ ‫המנה‬ ,22 = 1 · 21 + 0 :21-‫ב‬ 22 ‫נחלק‬ .12.4 ‫דוגמה‬
‫את‬ ‫לחשב‬ ‫נרצה‬ a, b ∈ N ‫מספרים‬ ‫שני‬ ‫עבור‬ gcd ‫למציאת‬ ‫אוקלידס‬ ‫של‬ ‫המורחב‬ ‫האלגוריתם‬
:‫הבא‬ ‫האלגוריתם‬ ‫את‬ ‫לנו‬ ‫יש‬ ‫כך‬ ‫לשם‬ gcd (a, b)
gcd-‫ה‬ ‫לחישוב‬ ‫אוקלידס‬ ‫של‬ ‫המורחב‬ ‫האלגוריתם‬ 4 ‫אלגוריתם‬
.(a  b ‫כי‬ ‫)ונניח‬ a, b ∈ N :‫קלט‬
.d = gcd (a, b) :‫פלט‬
.a = q · b + r :‫ש‬ ‫כך‬ ‫שארית‬ ‫עם‬ b-‫ב‬ a ‫את‬ ‫חלק‬ .1
:r  0 ‫עוד‬ ‫כל‬ .2
.b → a .2.1
.r → b .2.2
.1-‫ל‬ ‫חזור‬ .2.3
.b ‫את‬ ‫החזר‬ .3
22
RSA ‫על‬ ‫התקפות‬ 13
o ‫להצפנה‬ ‫מבוא‬ =
s, t .s · a + t · b = d-‫ש‬ ‫כך‬ s, t ∈ Z ‫מספרים‬ ‫שני‬ ‫קיימים‬ ‫אזי‬ d = gcd (a, b) ‫אם‬ ‫בז'ו‬ ‫מקדמי‬
.‫בז'ו‬ ‫מקדמי‬ ‫נקראים‬
‫של‬ ‫המורחב‬ ‫האלגוריתם‬ ‫את‬ ‫כלשהם‬ ‫מספרים‬ ‫שני‬ ‫על‬ ‫להפעיל‬ ‫נצטרך‬ ‫אותם‬ ‫למצוא‬ ‫איך‬ ‫להבין‬ ‫בשביל‬
.‫אוקלידס‬
.a = 22, b = 17 ‫ניקח‬
i a b qi
0 22 17 1 22 = 1 · 17 + 5
1 17 5 3 17 = 3 · 5 + 2
2 5 2 2 5 = 2 · 2 + 1
3 2 1 0
.‫אותו‬ ‫ונחזיר‬ ‫נעצור‬ ‫ולכן‬ ,b = 1, r3 = 0 :3 ‫מספר‬ ‫באיטרציה‬ ‫כי‬ 1 ‫את‬ ‫ונחזיר‬
.1, 3, 2 :qi :‫המנה‬ ‫של‬ ‫לסדרה‬ ‫לב‬ ‫נשים‬ ‫כעת‬
:‫הבאות‬ ‫הנוסחאות‬ ‫ע“פ‬ ‫בז'ו‬ ‫מקדמי‬ ‫את‬ ‫לחשב‬ ‫ניתן‬
.t0, t2, . . . , tm ‫ואת‬ s0, s1, . . . , sm :‫מחשבים‬
2 ≤ i ≤ m ‫עבור‬
s0 = 0, s1 = 1,si = −qi−1 · si−1 + si−2
t0 = 1, t1 = 0,ti = −qi−1 · ti−1 + ti−2
:‫ולבסוף‬
sma + tmb = rm = gcd (a, b)
.‫ההופכי‬ ‫האיבר‬ ‫את‬ ‫למצוא‬ ‫ניתן‬ ‫ובאמצעותם‬ ‫בזו‬ ‫מקדמי‬ ‫הם‬ ‫אלו‬ sm, tm ‫כאשר‬
?‫כיצד‬
‫שנעשה‬ ‫מה‬ ‫אזי‬ ,(gcd (3, 7) = 1 ‫כי‬ ‫הופכי‬ ‫)וישנו‬ 3 (mod 7) ‫של‬ ‫ההופכי‬ ‫את‬ ‫למצוא‬ ‫רוצים‬ ‫ואנחנו‬ ‫נניח‬
:‫למעלה‬ ‫מתואר‬ ‫שנפעל‬ ‫הוא‬
:‫משוואה‬ ‫נקבל‬
s · 3 + t · 7 = 1
.‫בז'ו‬ ‫מקדמי‬ ‫הם‬ s, t ‫כאשר‬
s · 3 = 1 − t · 7
.Z7-‫ב‬ 3 ‫של‬ ‫ההופכי‬ ‫הוא‬ s-‫ה‬ ‫ולכן‬
z RSA ‫על‬ ‫התקפות‬ .13 Z
:‫כלומר‬ ,p, q :‫ראשונים‬ ‫שני‬ ‫של‬ ‫מכפלה‬ ‫הוא‬ n-‫ש‬ ‫יודעים‬ ‫אנחנו‬
n = p · q
23
RSA ‫על‬ ‫התקפות‬ 13
o ‫להצפנה‬ ‫מבוא‬ =
.‫הללו‬ ‫הראשוניים‬ ‫המספרים‬ ‫שני‬ ‫את‬ ‫למצוא‬ ‫היא‬ ‫שלנו‬ ‫המטרה‬ ,‫לכן‬
(17 ‫)בעמוד‬ ‫פריק‬ ‫הוא‬ n ‫מספר‬ ‫האם‬ ‫בדיקת‬ :‫ראשוניות‬ ‫בבדיקת‬ ‫להשתמש‬ ‫יכולים‬ ‫אנחנו‬ ‫כל‬ ‫ראשית‬
.‫ראשוני‬ ‫במספר‬ ‫מדובר‬ ‫האם‬ ‫לדעת‬ ‫כדי‬
.p, q ‫את‬ ‫למצוא‬ ‫דרכים‬ ‫מספר‬ ‫ישנן‬ - ‫ראשוני‬ ‫אינו‬ ‫שהוא‬ ‫שמצאנו‬ ‫בהנחה‬
‫לגורמים‬ ‫פירוק‬ 13.1
‫פרמה‬ ‫של‬ ‫הפירוק‬ 13.1.1
.n = (x + y) (x − y) :‫פירוק‬ ‫לנו‬ ‫יש‬ ‫אזי‬ n = x2 − y2 ‫אם‬
.y =
√
x2 − n ‫כאשר‬ ‫שלם‬ ‫מספר‬ ‫הוא‬ y-‫ש‬ ‫כך‬ x ‫מחפשים‬ ‫אנחנו‬ ‫לכן‬
.1-‫ב‬ x ‫את‬ ‫מעלים‬ ‫פעם‬ ‫וכל‬ x = d
√
ne-‫מ‬ ‫מתחילים‬
‫פרמה‬ ‫של‬ ‫הפירוק‬ ‫אלגוריתם‬ 5 ‫אלגוריתם‬
.n ∈ N+ :‫קלט‬
.(x + y) (x − y) = n :‫ש‬ ‫כך‬ x, y ∈ N+ :‫פלט‬
.x = d
√
ne ‫את‬ ‫חשב‬ .1
:‫שלם‬ ‫אינו‬
√
x2 − n ‫עוד‬ ‫כל‬ .2
x + 1 → x .2.1
.y =
√
x2 − n .3
.‫וסיים‬ (x + y) , (x − y) :‫החזר‬ .4
‫פולארד‬ ‫של‬ p − 1 13.1.2
:‫הרעיון‬
:p − 1 | m-‫ש‬ ‫כך‬ m ‫שלכל‬ ‫כך‬ m ‫לכל‬ ,ap−1 ≡ 1 :a ∈ Zp ‫לכל‬ ‫אזי‬ ,‫ראשוני‬ p ‫אם‬ ‫כי‬ ‫יודעים‬ ‫אנחנו‬
.am ≡ 1
:‫אזי‬ p − 1 = 6-‫ו‬ ,p = 7 ‫על‬ ‫נסתכל‬ .13.1 ‫דוגמה‬
36
≡ 1 (mod 7) ⇒ 318
≡ 1 (mod 7)
.6 | 18-‫ו‬
.p − 1 = 70 = 2 · 5 · 7 ‫אזי‬ p = 71 ‫אם‬ :‫למשל‬ ‫קטנים‬ ‫לראשוניים‬ ‫מתחלק‬ p − 1 ‫אם‬ ‫כעת‬
.p − 1 | 7! :‫ולכן‬
ak! ≡ 1 (mod p)-‫ו‬ p − 1 | k! :‫גדול‬ ‫לא‬ k ‫עבור‬ ,‫לכן‬
gcd ak! − 1, n

= p :n ‫של‬ ‫הגורמים‬ ‫אחד‬ ‫את‬ ‫ככה‬ ‫למצוא‬ ‫ניתן‬ ‫אזי‬ ak! 6≡ 1 (mod n) ‫אם‬ ,‫כעת‬
!n ‫את‬ ‫לפרק‬ ‫והצלחנו‬
24
RSA ‫על‬ ‫התקפות‬ 13
o ‫להצפנה‬ ‫מבוא‬ =
‫פולארד‬ ‫של‬ p − 1 ‫אלגוריתם‬ 6 ‫אלגוריתם‬
.B ‫וחסם‬ n ∈ N+ :‫קלט‬
.n ‫של‬ ‫פירוק‬ :‫פלט‬
.a = 2 .1
:B ‫עד‬ k = 2 ‫עבור‬ .2
.(ak! (mod n) ‫את‬ ‫)מחשבים‬ ak (mod n) → a .2.1
.gcd (a − 1, n) → d .2.2
.(n ‫של‬ ‫גורם‬ ‫)מצאנו‬ ‫וסיים‬ d ‫את‬ ‫החזר‬ 1  d  n ‫אם‬ .2.3
.‫וסיים‬ “n ‫בפרוק‬ ‫”כישלון‬ ‫החזר‬ .3
.‫גדול‬ ‫אחד‬ ‫ראשוני‬ ‫גורם‬ ‫לפחות‬ ‫יש‬ p − 1, q − 1-‫ש‬ ‫כך‬ p, q ‫לבחור‬ ‫צריך‬ .13.2 ‫מסקנה‬
‫פולארד‬ ‫של‬ (ρ) “‫”רו‬ ‫אלגוריתם‬ 13.1.3
:‫הרעיון‬
.n ‫מודולו‬ ‫מספרים‬ ‫של‬ xi+1 = g (xi) ‫אקראית‬-‫פסודו‬ ‫סדרה‬ ‫מגדירים‬
‫היא‬ n ‫של‬ ‫הגורמים‬ ‫אחד‬ ‫מודולו‬ ‫ועבור‬ n ‫מודולו‬ ‫מחזורית‬ ‫להיות‬ ‫חייבת‬ ‫הסדרה‬ ‫היונים‬ ‫שובך‬ ‫עקרון‬ ‫בגלל‬
‫תצטרך‬ ‫הסדרה‬ (‫מספר‬ ‫איזשהו‬ ‫)עבור‬ ‫נקודה‬ ‫באיזושהי‬ ‫כלומר‬ ,‫יותר‬ ‫קטן‬ ‫מחזור‬ ‫בעלת‬ ‫להיות‬ ‫צריכה‬
.(‫)רו‬ ρ ‫היוונית‬ ‫האות‬ ‫כמו‬ ‫עצמה‬ ‫על‬ ‫לחזור‬
:‫שנקבל‬ ‫ברגע‬ ,x2k ‫ואת‬ xk ‫את‬ ‫מחשבים‬ k ‫בשלב‬
x2k ≡ xk (mod p)
.n ‫של‬ ‫גורם‬ ‫וקיבלנו‬ gcd (|x2k − xk| , n) = p :‫נקבל‬ ‫אזי‬ n ‫של‬ ‫גורם‬ ‫הוא‬ p-‫כש‬
‫פולארד‬ ‫של‬ ρ “‫”רו‬ ‫אלגוריתם‬ 7 ‫אלגוריתם‬
. (g (x) = x2 + 1-‫ל‬ ‫שווה‬ ‫הוא‬ ‫)שבד“כ‬ g (x) ‫פולינום‬ .‫התחלתי‬ ‫ער‬ x0 ∈ N+-‫ו‬ n ∈ N+ :‫קלט‬
.n ‫של‬ ‫הגורמים‬ ‫אחד‬ :‫פלט‬
.x → x0 , x0 → y , 1 → d .1
:d = 1 ‫עוד‬ ‫כל‬ .2
.g (x) mod n → x .2.1
.g (g (x)) mod n → y .2.2
.gcd (|x − y| , n) → d .2.3
.‫וסיים‬ d ‫את‬ ‫החזר‬ ‫אחרת‬ .‫וסיים‬ “‫”כישלון‬ ‫החזר‬ d = n ‫אם‬ .3
(“‫ריבועית‬ ‫)”נפה‬ “‫גורמים‬ ‫”בסיס‬ ‫אלגוריתם‬ 13.1.4
:‫ש‬ ‫כך‬ a, b ‫קיימים‬ ‫כי‬ ‫נניח‬ ‫הרעיון‬
a2
≡ b2
(mod n)
25
‫החתימה‬ ‫של‬ ‫הכללי‬ ‫הרעיון‬ 14
o ‫להצפנה‬ ‫מבוא‬ =
‫איך‬ ‫אז‬ n - (a ± b) ‫אבל‬ (‫ההגדרה‬ ‫)ע“פ‬ n | a2 − b2

‫כי‬ ‫יודעים‬ ‫אנחנו‬ ‫אזי‬ ,a 6≡ b (mod n) ‫אבל‬
?n ‫את‬ ‫מפרקים‬ ‫כן‬
:(n ‫מודולו‬ ‫הם‬ ‫החישובים‬ ‫)כל‬ ‫כזה‬ ‫הוא‬ ‫הרעיון‬ ‫בסיסי‬ ‫באופן‬
a2
= 23
· 3 · 52
b2
= 2 · 3 · 54
m
(a · b)2
= 24
· 32
· 56
=


c
z }| {
22
· 3 · 53


2
.‫כזה‬ ‫למצב‬ ‫להגיע‬ ‫המטרה‬ .n ‫של‬ ‫גורם‬ ‫הוא‬ gcd (n, ab − c) ‫אזי‬
‫הגורם‬ ‫את‬ ‫ולא‬ ‫גורמים‬ ‫מספר‬ ‫שנכפול‬ ,‫)כלומר‬ ‫בריבוע‬ ‫מספר‬ ‫אותו‬ ‫יהיה‬ ‫לא‬ ‫זה‬ :‫ש‬ ‫זה‬ ‫שחשוב‬ ‫מה‬
.‫זוגיות‬ ‫יהיו‬ ‫החזקות‬ ‫ושכל‬ (‫בעצמו‬
?a, b ‫את‬ ‫מוצאים‬ ‫איך‬
.(‫לראשוניים‬ ‫)חסם‬ B ‫קטן‬ ‫מספר‬ ‫בוחרים‬ .1
‫לראשוניים‬ ‫מתפרק‬ m2
i (mod n)-‫ו‬
√
n-‫מ‬ ‫גדולים‬ ‫יותר‬ ‫קצת‬ ‫שהם‬ mi ‫מספרים‬ ‫מחפשים‬ .2
.p1, . . . , pk ≤ B
‫ריבועים‬ ‫בין‬ ‫שיוויון‬ ‫לקבל‬ ‫כדי‬ (‫למעלה‬ ‫בדוגמה‬ ‫כמו‬ a2, b2 ‫)למשל‬ ‫הללו‬ ‫מהפירוקים‬ ‫כמה‬ ‫מכפילים‬ .3
.(‫למעלה‬ ‫בדוגמה‬ c2)
.n ‫את‬ ‫מחלק‬ ‫והוא‬ gcd (n, ab − c) 6= 1 .4
‫משני‬ ‫יותר‬ ‫לכפול‬ ‫נוכל‬ ,‫כזה‬ ‫במקרה‬ ‫ואז‬ ,‫מספרים‬ ‫משני‬ ‫יותר‬ ‫כמובן‬ ‫להיות‬ ‫יכולים‬ ‫אלו‬ .13.3 ‫הערה‬
.‫שורש‬ ‫להוציא‬ ‫שנוכל‬ ‫כדי‬ ‫זוגיות‬ ‫החזקות‬ ‫כל‬ ‫שבו‬ ‫למצב‬ ‫להגיע‬ ‫כדי‬ ‫מספרים‬
:V ‫חלק‬
u‫דיגיטליות‬ ‫חתימות‬U
z ‫החתימה‬ ‫של‬ ‫הכללי‬ ‫הרעיון‬ .14 Z
.‫מהמסמך‬ ‫חלק‬ ‫אינה‬ ‫דיגיטלית‬ ‫חתימה‬
26
RSA ‫מבוססת‬ ‫דיגיטלית‬ ‫חתימה‬ 15
o ‫להצפנה‬ ‫מבוא‬ =
.‫אחר‬ ‫מסמך‬ ‫על‬ ‫חתימה‬ ‫באותה‬ ‫להשתמש‬ ‫אפשרי‬ ‫בלתי‬ ‫שיהיה‬ ‫חשוב‬
.‫אמיתותה‬ ‫את‬ ‫לבדוק‬ ‫אפשר‬ ‫שיהיה‬ - ‫וכמובן‬
?‫החתימה‬ ‫מיועדת‬ ‫למה‬ 14.1
:‫ש‬ ‫בוודאות‬ ‫לוודא‬ ‫יהיה‬ ‫שניתן‬ ‫לכך‬ ‫מיועדת‬ ‫החתימה‬
.(‫סיבות‬ ‫מיני‬ ‫)מכל‬ ‫בדרך‬ ‫השתנתה‬ ‫לא‬ ‫ההודעה‬ .1
.‫שהוא‬ ‫חושבים‬ ‫שאנחנו‬ ‫מי‬ ‫אכן‬ ‫זה‬ ‫השולח‬ .2
.‫שלה‬ (‫)השולח‬ ‫המקור‬ ‫את‬ ‫או‬ ‫ההודעה‬ ‫את‬ ‫לזייף‬ ‫קשה‬ ‫ככה‬
z RSA ‫מבוססת‬ ‫דיגיטלית‬ ‫חתימה‬ .15 Z
:‫כאן‬ ‫גם‬ RSA-‫ב‬ ‫המפתח‬ ‫בניית‬ ‫של‬ ‫בחלק‬ ‫כמו‬
n = p · q, e · d ≡ 1 mod φ (n)
:x ∈ Zn ‫ההודעה‬ ‫חתימת‬
y = sigK (x) ≡ xd
(mod n)
.(x, y) :‫הזוג‬ ‫הוא‬ ‫החתום‬ ‫הטקסט‬ ‫כאשר‬
:‫בדיקה‬
verK (x, y) = True ⇐⇒ x ≡ ye
(mod n)
RSA ‫חתימות‬ ‫על‬ ‫התקפות‬ 15.1
‫חתימות‬ ‫על‬ ‫התקפות‬ ‫של‬ ‫שונות‬ ‫רמות‬ 15.1.1
‫אלגוריתם‬ ‫את‬ ‫ולכן‬ ‫הציבורי‬ ‫המפתח‬ ‫את‬ ‫רק‬ ‫מכירה‬ (‫)התוקפת‬ ‫איב‬ :‫בלבד‬ ‫מפתח‬ ‫עם‬ ‫התקפה‬ .1
.(‫פשוטה‬ ‫הכי‬ ‫)התקפה‬ ‫הבדיקה‬
‫יהיה‬ ‫יותר‬ ‫לה‬ ‫קל‬ ‫)ולכן‬ ‫אפרת‬ ‫ידי‬ ‫על‬ ‫חתומות‬ ‫הודעות‬ ‫כמה‬ ‫יש‬ ‫לאיב‬ :‫מוכרות‬ ‫הודעות‬ ‫התקפת‬ .2
.(‫בהמשך‬ ‫דוגמה‬ ,‫חתימה‬ ‫לזייף‬
(‫)איב‬ ‫שהיא‬ ‫הודעות‬ ‫כמה‬ ‫על‬ ‫אפרת‬ ‫של‬ ‫חתימות‬ ‫כמה‬ ‫מקבלת‬ ‫איב‬ :‫נבחרות‬ ‫הודעות‬ ‫התקפת‬ .3
.‫לתקוף‬ ‫לה‬ ‫קל‬ ‫יותר‬ ‫וככה‬ ,‫בוחרת‬
‫ההתקפות‬ ‫של‬ ‫מטרות‬ 15.1.2
:‫מטרות‬ ‫מספר‬ ‫יש‬ ‫למעלה‬ ‫שציינו‬ ‫להתקפות‬
‫לחתום‬ ‫יכולה‬ ‫ולכן‬ ‫אפרת‬ ‫של‬ ‫הסודי‬ ‫המפתח‬ ‫את‬ ‫לגלות‬ ‫מצליחה‬ (‫)התוקפת‬ ‫איב‬ :‫מלא‬ ‫פיצוח‬ .1
.‫איב‬ ‫או‬ ‫אפרת‬ - ‫חתמה‬ ‫מי‬ ‫לדעת‬ ‫יהיה‬ ‫אפשר‬ ‫אי‬ ‫וכך‬ ‫במקומה‬
.‫אחר‬ ‫מישהו‬ ‫ידי‬-‫על‬ ‫מראש‬ ‫שנבחרה‬ ‫הודעה‬ ‫על‬ ‫בהצלחה‬ ‫לחתום‬ ‫מצליחה‬ ‫איב‬ :‫סלקטיבי‬ ‫זיוף‬ .2
‫אבל‬ ,‫משמעות‬ ‫יש‬ ‫שלהודעה‬ ‫בהכרח‬ ‫אומר‬ ‫לא‬ ‫)זה‬ ‫תקנית‬ ‫חתימה‬ ‫עם‬ ‫הודעה‬ ‫ליצור‬ ‫מצליחה‬ ‫איב‬ .3
.(‫חיובית‬ ‫תוצאה‬ ‫תהיה‬ ,‫האמיתות‬ ‫בבדיקת‬
27
‫גיבוב‬ ‫פונקציות‬ ‫מבוססות‬ ‫דיגיטליות‬ ‫חתימות‬ 16
o ‫להצפנה‬ ‫מבוא‬ =
‫קיומי‬ ‫לזיוף‬ ‫דוגמה‬ 15.1.3
:‫בלבד‬ ‫מפתח‬ ‫עם‬ ‫קיומי‬ ‫זיוף‬
x-‫)ל‬ x ‫של‬ ‫תקנית‬ ‫חתימה‬ ‫היא‬ y-‫ש‬ ‫יוצא‬ ‫כך‬ - x ≡ ye (mod n) ‫את‬ ‫ומחשבת‬ y ‫חתימה‬ ‫בוחרת‬ ‫איב‬
.(‫משמעות‬ ‫יש‬ ‫בהכרח‬ ‫לא‬
‫סלקטיבי‬ ‫לזיוף‬ ‫דוגמה‬ 15.1.4
:x ‫סלקטיבית‬ ‫הודעה‬ ‫על‬ ‫חתימה‬ ‫לזייף‬ ‫ניתן‬ ‫כך‬
x1 · x2 ≡ x-‫ש‬ ‫כך‬ x1, x2 ∈ Zn ‫מוצאת‬ ‫היא‬ ‫כך‬ ‫לשם‬ ,x ‫להודעה‬ ‫החתימה‬ ‫את‬ ‫לזייף‬ ‫רוצה‬ ‫איב‬
.x1, x2 ‫ההודעות‬ ‫שתי‬ ‫על‬ ‫לחתום‬ ‫מאפרת‬ ‫ומבקשת‬ (mod n)
.x ‫של‬ ‫תקנית‬ ‫חתימה‬ ‫תקבל‬ ‫היא‬ - ‫החתימות‬ ‫שתי‬ ‫את‬ ‫תכפיל‬ ‫איב‬ ‫אם‬
z ‫גיבוב‬ ‫פונקציות‬ ‫מבוססות‬ ‫דיגיטליות‬ ‫חתימות‬ .16 Z
‫גיבוב‬ ‫פונקציות‬ 16.1
‫פלט‬ ‫ומחזירה‬ ‫כלשהו‬ ‫באורך‬ ‫קלט‬ ‫שלוקחת‬ ‫פונקציה‬ ‫היא‬ h ‫קריפטוגרפית‬ ‫גיבוב‬ ‫פונקציית‬ .16.1 ‫הגדרה‬
.‫קבוע‬ ‫באורך‬
:‫בחשבון‬ ‫לקחת‬ ‫שחשוב‬ ‫נוספים‬ ‫דברים‬ ‫כמה‬ ‫ישנן‬
.h (m) ‫הפלט‬ ‫את‬ ‫לחשב‬ ‫קל‬ - m ‫נתונה‬ ‫הודעה‬ ‫עבור‬ .1
‫אם‬ :‫אחרת‬ ‫)במילים‬ h (m) ‫יהיה‬ ‫שלה‬ ‫שהפלט‬ ‫כך‬ m ‫הודעה‬ ‫למצוא‬ ‫יהיה‬ ‫קשה‬ - ‫שני‬ ‫מצד‬ ,‫אבל‬ .2
.1‫כיוונית‬-‫חד‬ ‫בפונקציה‬ ‫מדובר‬ ,‫בנוסף‬ .(m ‫מהי‬ ‫לדעת‬ ‫מאוד‬ ‫קשה‬ ,h (m) ‫לנו‬ ‫נתון‬
.‫הגיבוב‬ ‫פונקציית‬ ‫תחת‬ ‫פלט‬ ‫אותו‬ ‫עם‬ ‫הודעות‬ ‫שתי‬ ‫למצוא‬ ‫קשה‬ .3
‫ההולדת‬ ‫יום‬ ‫התקפת‬ 16.2
‫ההולדת‬ ‫יום‬ ‫פרדוקס‬ 16.2.1
:‫היא‬ ‫יום‬ ‫באותו‬ ‫הולדת‬ ‫יום‬ ‫מהם‬ ‫שניים‬ ‫לאף‬ ‫שאין‬ ‫ההסתברות‬ ‫מה‬ ,‫בחדר‬ ‫אנשים‬ 23 ‫ישנם‬
22
Y
i=1

1 −
i
365

= 0.495
!1
2-‫מ‬ ‫גדולה‬ ‫היא‬ ‫יום‬ ‫באותו‬ ‫הולדת‬ ‫יום‬ ‫יש‬ ‫האנשים‬ 23 ‫מתוך‬ ‫שלשניים‬ ‫הסיכוי‬ ,‫כלומר‬
:‫יותר‬ ‫כללי‬ ‫ובאופן‬
‫מהקבוצה‬ ‫שמישהו‬ ‫הסיכוי‬ ‫אזי‬ , .‫איברים‬ N ‫של‬ ‫מאוסף‬ ‫איבר‬ ‫בוחרים‬ ‫אנשים‬ r ‫של‬ ‫קבוצות‬ ‫שתי‬ ‫כי‬ ‫נניח‬
:‫בערך‬ ‫הוא‬ ‫השנייה‬ ‫מהקבוצה‬ ‫מישהו‬ ‫כמו‬ ‫משהו‬ ‫יבחר‬ ‫הראשונה‬
1 − e
−r2
N
:‫למשל‬ ,‫תוצאה‬ ‫אותה‬ ‫את‬ ‫להחזיר‬ ‫יכולים‬ ‫קלטים‬ ‫ומספר‬ ‫היות‬ ‫הקלט‬ ‫היה‬ ‫מה‬ ‫לדעת‬ ‫אפשרות‬ ‫שאין‬ ‫פונקציה‬ ,‫כלומר‬1
‫למצוא‬ ‫קשה‬ ‫לא‬ ,2-‫ל‬ ‫בניגוד‬ ‫)אבל‬ n ‫הייתה‬ ‫מה‬ ‫לדעת‬ ‫נוכל‬ ‫לא‬ h (m) = 3 ‫למשל‬ ‫אם‬ ,‫כזה‬ ‫במקרה‬ ,h (m) = h mod 7
.(h (m) = 3-‫ש‬ ‫כך‬ m
28
‫דיגיטליות‬ ‫חתימות‬ ‫של‬ ‫מיוחדים‬ ‫סוגים‬ 17
o ‫להצפנה‬ ‫מבוא‬ =
‫שלמישהו‬ ‫הסיכוי‬ ‫אזי‬ ,‫אחת‬ ‫כל‬ ‫איש‬ 30 ‫בנות‬ ‫קבוצות‬ ‫שתי‬ ‫ועל‬ ,‫הולדת‬ ‫ימי‬ ‫על‬ ‫מדובר‬ ‫למשל‬ ‫ואם‬
:‫היא‬ ‫השנייה‬ ‫בקבוצה‬ ‫למישהו‬ ‫כמו‬ ‫הולדת‬ ‫יום‬ ‫אותה‬ ‫תהיה‬ ‫הראשונה‬ ‫מהקבוצה‬
1 − e
−302
365 = 0.915
‫גיבוב‬ ‫בפונקציות‬ ‫שימוש‬ 16.2.2
.‫אפשריים‬ ‫פלטים‬ 2n = N ‫ישנם‬ ‫אזי‬ ,‫סיביות‬ n ‫יש‬ ‫גיבוב‬ ‫פונקציות‬ ‫של‬ ‫לפלט‬ ‫אם‬
(‫אוסף‬ ‫בכל‬ ‫)אחד‬ ‫זהים‬ ‫פלטים‬ ‫שני‬ ‫שיהיו‬ ‫ההסתברות‬ ,‫פלטים‬
√
N ‫בערך‬ ‫של‬ ‫אוספים‬ ‫שני‬ ‫עבור‬ ,‫לכן‬
.1 − e−1 ≈ 0.6 :‫בערך‬ ‫היא‬
‫ולגרום‬ ‫אפרת‬ ‫את‬ ‫לרמות‬ ‫רוצה‬ ‫הילי‬ ‫אבל‬ ,(‫הטוב‬ ‫)החוזה‬ ‫הילי‬ ‫עם‬ ‫חוזה‬ ‫על‬ ‫חתמה‬ ‫אפרת‬ .16.2 ‫דוגמה‬
.(‫הרע‬ ‫)החוזה‬ ‫מזויף‬ ‫חוזה‬ ‫על‬ ‫לחתום‬ ‫לה‬
.250 ‫הוא‬ ‫האפשריים‬ ‫הפלטים‬ ‫מספר‬ ‫לכן‬ ,‫סיביות‬50 ‫הוא‬ ‫הגיבוב‬ ‫פונקציית‬ ‫של‬ ‫הפלט‬ ‫אורך‬ ‫כי‬ ‫נניח‬
‫שלהם‬ ‫הפלט‬ ‫את‬ ‫מחשבת‬ ‫היא‬ .‫הרע‬ ‫החוזה‬ ‫של‬ 230-‫ו‬ ‫הטוב‬ ‫החוזה‬ ‫של‬ ‫שונות‬ ‫גרסאות‬ 230 ‫מכינה‬ ‫הילי‬
.‫הגיבוב‬ ‫פונקציית‬ ‫תחת‬
:‫היא‬ ‫הפלט‬ ‫אותו‬ ‫עם‬ ‫רע‬ ‫וחוזה‬ ‫טוב‬ ‫חוזה‬ ‫תקבל‬ ‫שהילי‬ ‫ההסתברות‬ ,‫למעלה‬ ‫שראינו‬ ‫מה‬ ‫ע“פ‬
1 − e
−260
250 = 1 − e−210
≈ 1
‫יראה‬ ‫וזה‬ ‫המזויף‬ ‫החוזה‬ ‫על‬ ‫לחתום‬ ‫לאפרת‬ ‫לגרום‬ ‫תוכל‬ ‫היא‬ ‫כאלו‬ ‫חוזים‬ ‫שני‬ ‫תקבל‬ ‫שהילי‬ ‫ברגע‬ ,‫כלומר‬
.‫חוזה‬ ‫אותו‬ ‫על‬ ‫חתמה‬ ‫היא‬ ‫כאילו‬
?‫לעשות‬ ‫יכולה‬ ‫אפרת‬ ‫מה‬
:‫למשל‬ ,‫דברים‬ ‫מיני‬ ‫כל‬
‫רע‬ ‫חוזה‬ ‫למצוא‬ ‫מאוד‬ ‫קשה‬ ‫יהיה‬ ‫להילי‬ ‫ואז‬ ,‫בחוזה‬ ‫קטן‬ ‫שינוי‬ ‫לבקש‬ ‫יכולה‬ ‫אפרת‬ ‫האחרון‬ ‫ברגע‬ .1
.(3 ‫)סעיף‬ ‫הפלט‬ ‫אותו‬ ‫עם‬
‫חתימה‬ ‫היא‬ ‫שלה‬ ‫שהחתימה‬ ‫להוכיח‬ ‫כדי‬ ‫חתמה‬ ‫היא‬ ‫שעליו‬ ‫המסמך‬ ‫של‬ ‫עותק‬ ‫לשמור‬ ‫יכולה‬ ‫אפרת‬ .2
‫יותר‬ ‫יהיה‬ ‫וככה‬ ,‫שלה‬ ‫העותק‬ ‫על‬ ‫שלה‬ ‫החתימה‬ ‫של‬ ‫התקינות‬ ‫את‬ ‫תראה‬ ‫היא‬ ‫)וככה‬ ‫לחוזה‬ ‫תקינה‬
.(‫תקפה‬ ‫החתימה‬ ‫שלשניהם‬ ‫שונים‬ ‫חוזים‬ ‫שני‬ ‫יראו‬ ‫כי‬ ‫לזייף‬ ‫קשה‬
z ‫דיגיטליות‬ ‫חתימות‬ ‫של‬ ‫מיוחדים‬ ‫סוגים‬ .17 Z
.‫חתימות‬ ‫של‬ ‫מיוחדים‬ ‫סוגים‬ ‫על‬ ‫נדון‬ ‫עכשיו‬ .‫בהן‬ ‫הצורך‬ ‫ועל‬ ‫כללי‬ ‫באופן‬ ‫חתימות‬ ‫על‬ ‫דיברנו‬ ‫עכשיו‬ ‫עד‬
(‫)למפורט‬ ‫פעמית‬-‫חד‬ ‫חתימה‬ 17.1
.F : X → Y :(‫קריפטוגרפית‬ ‫גיבוב‬ ‫פונקצית‬ ,‫)למשל‬ ‫כיוונית‬-‫חד‬ ‫פונקציה‬ ‫על‬ ‫מתבססת‬
:‫הרעיון‬
.‫בנפרד‬ ‫סיבית‬ ‫כל‬ ‫על‬ ‫חותמים‬
:‫ציבורי‬ ‫ערך‬ ‫קובעים‬ ‫מהמפתחות‬ ‫אחד‬ ‫ולכל‬ Ki,0, Ki,1 ∈ X ‫סודיים‬ ‫מפתחות‬ ‫שני‬ ‫בוחרים‬ i ‫סיבית‬ ‫לכל‬
.f (Ki,0) , f (Ki,1) ∈ Y
‫שלה‬ ‫החתימה‬ ‫אזי‬ 1 ‫היא‬ ‫ואם‬ Ki,0 ‫היא‬ i-‫ה‬ ‫הסיבית‬ ‫של‬ ‫החתימה‬ ‫אזי‬ 0-‫ל‬ ‫שווה‬ ‫ית‬-i-‫ה‬ ‫הסיבית‬ ‫אם‬
.Ki,1 ‫היא‬
29
‫דיגיטליות‬ ‫חתימות‬ ‫של‬ ‫מיוחדים‬ ‫סוגים‬ 17
o ‫להצפנה‬ ‫מבוא‬ =
:2f (x) = 2x mod 17 ‫היא‬ f ‫כיוונית‬-‫החד‬ ‫הפונקציה‬ ‫כי‬ ‫נניח‬ .17.1 ‫דוגמה‬
x1,0 = 12 y1,0 = f (x1,0) = 16
x1,1 = 7 y1,1 = f (x1,1) = 9
x2,0 = 13 y2,0 = f (x2,0) = 15
x2,1 = 9 y2,1 = f (x2.1) = 2
x3,0 = 8 y3,0 = f (x3,0) = 1
x3,1 = 14 y3,1 = f (x3,1) = 13
‫שהוא‬ ‫למקרה‬ ‫והשני‬ 0 ‫שהוא‬ ‫למקרה‬ ‫אחד‬ - ‫מפתחות‬ ‫שני‬ ‫מצמידים‬ ‫אנחנו‬ ‫ביט‬ ‫לכל‬ :‫כזה‬ ‫הוא‬ ‫הרעיון‬
:‫צבעים‬ ‫לפי‬ ‫חולקה‬ ‫הטבלה‬ ,‫למשל‬ ‫כאן‬ .‫בהתאם‬ ‫ומצפינים‬ ‫סיבית‬-‫סיבית‬ ‫ההודעה‬ ‫על‬ ‫עוברים‬ .1
.‫לשלישית‬ ‫והאדומות‬ ,‫השנייה‬ ‫לסיבית‬ - ‫הירוקות‬ ‫השורות‬ ,‫הראשונה‬ ‫לסיבית‬ - ‫הכחולות‬ ‫השורות‬
:‫הבאה‬ ‫ההודעה‬ ‫הצפנת‬ ‫על‬ ‫נסתכל‬
101
,x1,1 :1 ‫שיש‬ ‫להיכן‬ ‫הולכים‬ :‫אזי‬ 1 ‫והיא‬ ‫והיות‬ ‫הכחולות‬ ‫לשורות‬ ‫בהתאם‬ ‫מוצפנת‬ ,‫הראשונה‬ ‫הסיבית‬
:‫ולכן‬
f (x1,1 = 7) = 9
‫ושמה‬ ‫הירוקות‬ ‫לשורות‬ ‫נלך‬ ‫אזי‬ ‫השנייה‬ ‫בסיבית‬ ‫ומדובר‬ ‫היות‬ .0 ‫שהיא‬ ‫הבאה‬ ‫לסיבית‬ ‫ממשיכים‬ ‫ואז‬
:(x2,1 ‫השנייה‬ ‫לשורה‬ ‫הולכים‬ ‫היינו‬ 1 ‫הייתה‬ ‫השנייה‬ ‫הסיבית‬ ‫)אם‬ x2,0 ‫הראשונה‬ ‫לשורה‬
f (x2,0 = 13) = 15
:1 ‫היא‬ ‫השלישית‬ ‫הסיבית‬ ‫כי‬ ‫השנייה‬ ‫לשורה‬ ‫נלך‬ ‫ובסוף‬
f (x3,1 = 14) = 13
:‫היא‬ ‫להודעה‬ ‫החתימה‬ ,‫ולכן‬
(9, 15, 13)
‫את‬ ‫לחתום‬ ‫רוצים‬ ‫היינו‬ ‫אם‬ .‫הקודמת‬ ‫בדוגמה‬ ‫כמו‬ ‫וטבלה‬ ‫פונקציה‬ ‫אותה‬ ‫את‬ ‫ניקח‬ .17.2 ‫דוגמה‬
:‫הייתה‬ ‫שלה‬ ‫החתימה‬ ‫אזי‬ ,011 :‫ההודעה‬
(16, 2, 13)
.‫הרעיון‬ ‫את‬ ‫ממחישה‬ ‫היא‬ ‫אבל‬ ,‫פשוטה‬ ‫ממש‬ ‫דוגמה‬ ‫זאת‬2
30
‫דיגיטליות‬ ‫חתימות‬ ‫של‬ ‫מיוחדים‬ ‫סוגים‬ 17
o ‫להצפנה‬ ‫מבוא‬ =
:‫פשוטה‬ ‫מאוד‬ ‫היא‬ ‫הנכונות‬ ‫בדיקת‬
.‫לנו‬ ‫הנתונה‬ ‫הטבלה‬ ‫לפי‬ ‫ההודעה‬ ‫את‬ ‫חותמים‬ ‫איך‬ ‫את‬ ‫זה‬ ‫לבדוק‬ ‫שצריך‬ ‫מה‬ ‫לכן‬ ,‫הטבלה‬ ‫לנו‬ ‫נתונה‬
‫לעומת‬ ‫אם‬ ‫אך‬ ,‫תקינה‬ ‫החתימה‬ ‫כי‬ ‫נדע‬ ‫אזי‬ - (9, 15, 13) ‫והחתימה‬ 101 ‫ההודעה‬ ‫לנו‬ ‫נתונה‬ ‫אם‬ ,‫כלומר‬
‫לסמוך‬ ‫נוכל‬ ‫ולא‬ ‫פגומה‬ ‫החתימה‬ ‫כי‬ ‫נדע‬ - (15, 2, 13) ‫החתימה‬ ‫עם‬ ‫אותה‬ ‫נבל‬ 011 ‫ההודעה‬ ‫עבור‬ ‫זאת‬
.‫ההודעה‬ ‫מקור‬ ‫על‬
:‫יתרונות‬
.‫כיוונית‬-‫החד‬ ‫המקור‬ ‫פונקציית‬ ‫את‬ ‫לחשב‬ ‫קשה‬ ‫שמאוד‬ ‫כיוון‬ ‫כזאת‬ ‫חתימה‬ ‫לזייף‬ ‫מאוד‬ ‫קשה‬ -
.‫קוונטיים‬ ‫מחשבים‬ ‫נגד‬ ‫כעמיד‬ ‫נחשב‬ -
:‫חסרונות‬
.(yi,{0,1}) ‫הציבורי‬ ‫למפתח‬ ‫זוגות‬ ‫ושתי‬ (xi,{0,1}) ‫הפרטי‬ ‫למפתח‬ ‫זוגות‬ ‫שתי‬ :‫ארוך‬ ‫מאוד‬ ‫המפתח‬ -
‫חותמים‬ ‫אם‬ ,‫)כלומר‬ ‫אחת‬ ‫מהודעה‬ ‫יותר‬ ‫על‬ ‫לחתום‬ ‫כדי‬ ‫מפתח‬ ‫באותו‬ ‫משתמשים‬ ‫עם‬ ‫בטיחותי‬ ‫לא‬ -
‫בחתימה‬ ‫להשתמש‬ ‫חשוב‬ ‫לכן‬ (1111 ‫על‬ ‫החתימה‬ ‫מה‬ ‫גם‬ ‫לדעת‬ ‫ניתן‬ ‫אזי‬ 0110 ‫ועל‬ 1011 ‫על‬ ‫גם‬
.‫פעמי‬-‫חד‬ ‫באופן‬ ‫הזאת‬
:‫שיפורים‬
‫צריך‬ SHA − 256 ‫של‬ ‫במקרה‬ ,‫)למשל‬ ‫שלה‬ ‫הגיבוב‬ ‫על‬ ‫לחתום‬ ‫אפשר‬ ‫הודעה‬ ‫על‬ ‫לחתום‬ ‫במקום‬ -
.‫ציבוריים‬ ‫מתפתחות‬ 512-‫ו‬ ‫פרטיים‬ ‫מפתחות‬ 512 “‫”רק‬
.‫מרקל‬ ‫של‬ ‫גיבוב‬ ‫בעץ‬ ‫מפתחות‬ 2N ‫להכניס‬ ‫אפשר‬ -
‫מרקל‬ ‫עץ‬ 17.1.1
.3‫ילדים‬ ‫שני‬ ‫יש‬ ,‫העלים‬ ‫מלבד‬ ,‫בעץ‬ ‫קודקוד‬ ‫לכל‬ ,‫)כלומר‬ ‫בינארי‬ ‫עץ‬ ‫הוא‬ (Merkle) ‫מרקל‬ ‫של‬ ‫הגיבוב‬ ‫עץ‬
‫השירשור‬ ‫את‬ ‫מכיל‬ ‫מעליהן‬ ‫קודקוד‬ ‫וכל‬ ‫הגיבוב‬ ‫פונקציית‬ ‫של‬ ‫התוצאות‬ ‫אלו‬ ‫בעלים‬ ‫שמוחזק‬ ‫המידע‬
.‫שלו‬ ‫הקודקודים‬ ‫שני‬ ‫של‬ ‫חיבור‬ - ‫כלומר‬ ,‫שלהן‬
:‫כללי‬ ‫באופן‬
a
α β
:‫זאת‬ ‫נסמן‬ ‫שאנחנו‬ ‫כמו‬ ‫או‬ α + β ‫את‬ ‫בתוכו‬ ‫מכיל‬ a ‫קודקוד‬
.a + b ‫ופירושו‬ akb :‫מסומן‬ b-‫ו‬ a ‫של‬ ‫שירשור‬ .17.3 ‫רישום‬ ‫צורת‬
.‫שלהם‬ ‫השירשור‬ ‫את‬ ‫מכיל‬ ‫מעליהם‬ ‫קודקוד‬ ‫וכל‬ ‫הגיבוב‬ ‫פונקציית‬ ‫ערכי‬ ‫את‬ ‫ישנם‬ ‫בעלים‬ ‫מרקל‬ ‫בעץ‬
:‫למשל‬
.‫מורכבים‬ ‫יותר‬ ‫מרקל‬ ‫עצי‬ ‫ישנים‬ .‫שלנו‬ ‫במקרה‬ ‫רק‬ ‫זה‬3
31
‫דיגיטליות‬ ‫חתימות‬ ‫של‬ ‫מיוחדים‬ ‫סוגים‬ 17
o ‫להצפנה‬ ‫מבוא‬ =
R
a b
H(X0) H(X1) H(X2) H(X3)
‫העץ‬ ‫שורש‬ ‫מלבד‬ ,‫לספק‬ ‫וצריכים‬ (H (X2) - ‫שלנו‬ ‫)במקרה‬ ‫אחד‬ ‫עלה‬ ‫דרך‬ ‫מצפינים‬ ‫שאנחנו‬ ‫הרעיון‬
.‫העץ‬ ‫לשורש‬ ‫ולהגיע‬ ‫הקודקודים‬ ‫את‬ ‫לסכום‬ ‫ניתן‬ ‫שבה‬ ‫הדרך‬ ‫את‬
.R ‫את‬ ‫לחשב‬ ‫ניתן‬ ‫שדרכם‬ ‫הקודקודים‬ + ‫עליון‬ ‫הכי‬ ‫הקודקוד‬ ,‫כלומר‬ ,‫העץ‬ ‫שורש‬ ‫הוא‬ ‫שנשלח‬ ‫המידע‬
‫את‬ ‫לחבר‬ ‫שנוכל‬ ‫כך‬ ‫ע“י‬ ,‫אוטומטית‬ ‫לחשב‬ ‫נוכל‬ ‫כבר‬ b ‫)את‬ a ‫ואת‬ H (X3) :‫את‬ ‫זה‬ ‫שלנו‬ ‫במקרה‬
.‫אליו‬ ‫להגיע‬ ‫נוכל‬ ‫שירשורים‬ ‫דרך‬ ‫האם‬ ‫לראות‬ ‫נוכל‬ R ‫את‬ ‫לנו‬ ‫ובהינתן‬ ,(‫ואותו‬ H (X2)
‫עיוורת‬ ‫חתימה‬ 17.2
‫אישור‬ ‫לצורך‬ ‫היא‬ ‫החתימה‬ ‫אבל‬ ,‫ההודעה‬ ‫את‬ ‫רואה‬ ‫אינו‬ ‫החותם‬ ‫שבה‬ ‫חתימה‬ ‫היא‬ ‫עיוורת‬ ‫חתימה‬
.‫בלבד‬
‫ההצבעה‬ ‫על‬ ‫לחתום‬ ‫יצטרך‬ ‫מישהו‬ ,‫הצבעה‬ ‫זכות‬ ‫לכם‬ ‫יש‬ ‫אם‬ ,‫אלקטרונית‬ ‫הצבעה‬ ‫עושים‬ - ‫לדוגמה‬
‫זאת‬ .‫הצבעתם‬ ‫מה‬ ‫לראות‬ ‫יוכל‬ ‫לא‬ ‫הוא‬ ‫אבל‬ ,(‫תקינה‬ ‫וההצבעה‬ ‫אתם‬ ‫אכן‬ ‫שזה‬ ‫לאשר‬ ‫)כדי‬ ‫שלכם‬
.‫עיוורת‬ ‫חתימה‬
(RSA ‫)מבוססת‬ ‫שאום‬ ‫של‬ ‫עיוורת‬ ‫חתימה‬ 17.2.1
.‫עיוורת‬ ‫בצורה‬ m ‫ההודעה‬ ‫על‬ ‫יחתום‬ ‫שבנימין‬ ‫רוצה‬ ‫אפרת‬
.‫שלו‬ ‫הפרטי‬ ‫המפתח‬ ‫זה‬ d-‫ו‬ ‫בנימין‬ ‫של‬ ‫הציבורי‬ ‫המפתח‬ ‫זה‬ - (n, e)
:‫את‬ ‫ומחשבת‬ 1  k  n ‫אקראי‬ k ‫בוחרת‬ ‫אליס‬
t = mke
(mod n)
.‫ההודעה‬ ‫את‬ ‫לקרוא‬ ‫יוכל‬ ‫לא‬ ‫שבנימין‬ ‫ככה‬ ,“‫ה“מעטפה‬ ‫בעצם‬ ‫זוהי‬
:(m ‫ההודעה‬ ‫מהי‬ ‫מושג‬ ‫לו‬ ‫)אין‬ t ‫על‬ ‫חוצם‬ ‫בנימין‬
td
= (mke
)d
(mod n)
:‫באמצעות‬ ‫החתימה‬ ‫את‬ ‫מחשבת‬ ‫היא‬ ‫אבל‬ ,d ‫מהו‬ ‫יודעת‬ ‫אינה‬ ‫כמובן‬ ‫אפרת‬
.(e · d ≡ 1 (mod n) :‫)תזכורת‬
s =
td
k
=
(mke)d
k
=
md


ked

k
= md
(mod n)
‫לדעת‬ ‫יכול‬ ‫אינו‬ ‫הוא‬ ‫שני‬ ‫ומצד‬ ,(d ‫מהו‬ ‫יודע‬ ‫הוא‬ ‫)כי‬ ‫שלו‬ ‫אכן‬ ‫היא‬ ‫החתימה‬ ‫כי‬ ‫לראות‬ ‫יכול‬ ‫בנימין‬ ‫כעת‬
.m ‫מהי‬
‫על‬ ‫לדעת‬ ‫יכול‬ ‫הוא‬ ‫ואין‬ ‫הודעות‬ ‫כמה‬ ‫על‬ ‫לחתום‬ ‫יכול‬ ‫הוא‬ .‫הודעות‬ ‫מספר‬ ‫לבי‬ ‫גם‬ ‫נכון‬ ‫זה‬ .17.4 ‫הערה‬
.‫לחתימה‬ ‫ההודעה‬ ‫בין‬ ‫קשר‬ ‫ואין‬ ‫היות‬ ,‫חתימה‬ ‫איזו‬ ‫עם‬ ‫חתם‬ ‫הוא‬ ‫הודעה‬ ‫איזו‬
32
‫דיגיטליות‬ ‫חתימות‬ ‫של‬ ‫מיוחדים‬ ‫סוגים‬ 17
o ‫להצפנה‬ ‫מבוא‬ =
‫להכחישה‬ ‫ניתן‬ ‫שלא‬ ‫חתימה‬ 17.3
‫הרעיון‬ 17.3.1
.‫להכחישה‬ ‫ניתן‬ ‫שאינה‬ ‫לחתימה‬ ‫שאום‬ ‫של‬ ‫האלגוריתם‬
:‫לשניים‬ ‫מחלוק‬ ‫כאן‬ ‫הרעיון‬
‫אם‬ ‫לכן‬ .(‫אותה‬ ‫לאמת‬ ‫ניתן‬ ‫לא‬ ‫)אחרת‬ ‫החותם‬ ‫עם‬ ‫פעולה‬ ‫בשיתוף‬ ‫נעשית‬ ‫החתימה‬ ‫בדיקת‬ .1
‫את‬ ‫לבדוק‬ ‫יכול‬ ‫היה‬ ‫מקור‬ ‫וכל‬ ‫מקורות‬ ‫לכמה‬ ‫אותה‬ ‫ולשלוח‬ ‫לשכפל‬ ‫ניתן‬ ‫היה‬ ‫רגילה‬ ‫בחותמת‬
‫)במקורות‬ ‫יכול‬ ‫הוא‬ ‫אותה‬ ‫יאשרו‬ ‫מסוימים‬ ‫מקורות‬ ‫שרק‬ ‫רוצה‬ ‫שחתם‬ ‫זה‬ ‫אם‬ ‫כאן‬ ,‫אמינותה‬
.(‫פעולה‬ ‫ישתף‬ ‫לא‬ ‫הוא‬ ‫האחרים‬
‫יכול‬ ‫אינו‬ ‫החותם‬ - ‫תקינה‬ ‫החתימה‬ ‫אם‬ .‫שלו‬ ‫החתימה‬ ‫את‬ ‫להכחיש‬ ‫יכול‬ ‫לא‬ ‫החותם‬ - ‫שני‬ ‫מצד‬ .2
.‫זאת‬ ‫להכחיש‬
‫החתימה‬ ‫אופן‬ 17.3.2
.Z∗
p ‫של‬ ‫יוצר‬ g-‫ו‬ ‫ראשוני‬ ‫מספר‬ - p :‫לנו‬ ‫נתונים‬
.m ‫היא‬ ‫ההודעה‬
.1  x  p − 1 :‫הינו‬ ‫אפרת‬ ‫של‬ ‫הפרטי‬ ‫המפתח‬
.z ≡ mx (mod p) :‫הבא‬ ‫באופן‬ ‫ההודעה‬ ‫על‬ ‫חותמת‬ ‫היא‬
:‫בנימין‬ ‫ע“י‬ ‫החתימה‬ ‫אישור‬ ‫פרטוקול‬
.c = magb (mod p) ‫את‬ ‫לאפרת‬ ‫ושולח‬ 1  a, b  p − 1 :‫אקראיים‬ ‫מספרים‬ ‫שני‬ ‫בוחר‬ ‫בנימין‬
.a, b ‫מהם‬ ‫יודעת‬ ‫אינה‬ ‫ואפרת‬ x ‫מהו‬ ‫יודע‬ ‫אינו‬ ‫שבנימין‬ ‫הוא‬ ‫העניינים‬ ‫מצב‬
.s2 = sx
1 ‫ואת‬ s1 = cgq ‫את‬ ‫לבנימין‬ ‫ושולחת‬ 1  q  p − 1 ‫אקראי‬ ‫מספר‬ ‫בוחרת‬ ‫אפרת‬
‫שולחת‬ ‫שאפרת‬ ‫מה‬ ‫כל‬ :‫כלומר‬ - s1 ‫על‬ ‫מתבסס‬ s2-‫ו‬ c ‫על‬ ‫מתבסס‬ ‫לבנימין‬ ‫שולחת‬ ‫שאפרת‬ s1 ‫כי‬ ‫לב‬ ‫נשים‬
.‫לה‬ ‫שלח‬ ‫שהוא‬ c-‫ה‬ ‫על‬ ‫מתבסס‬ ‫לבנימין‬
:‫הגילוי‬ ‫שלב‬
.‫שלח‬ ‫אחד‬ ‫שכל‬ ‫המידע‬ ‫את‬ ‫ומאמתים‬ ‫שלהם‬ ‫הפרטיים‬ ‫המשתנים‬ ‫את‬ ‫חושפים‬ ‫ובנימין‬ ‫אפרת‬ ‫כעת‬
.a, b ‫את‬ ‫מגלה‬ ‫בנימין‬
c ‫את‬ ‫חישב‬ ‫שהוא‬ ‫בודקת‬ ‫היא‬ ‫מבנימין‬ a, b ‫את‬ ‫מקבלת‬ ‫שהיא‬ ‫)אחרי‬ c = magb ‫אכן‬ ‫כי‬ ‫בודקת‬ ‫אפרת‬
.(‫שצריך‬ ‫כמו‬
.q ‫את‬ ‫מגלה‬ ‫אפרת‬
.s2 = zayb+q ‫וכי‬ s1 = cgq ‫אכן‬ ‫כי‬ ‫בודק‬ ‫בנימין‬
c ‫במקום‬ ‫מציבים‬ ‫ואז‬ (cgq)x
‫את‬ sx
1 ‫במקום‬ ‫מציבים‬ ‫)אם‬ s2 = zayb+q ‫כי‬ ‫למסקנה‬ ‫להגיע‬ ‫ניתן‬
‫אזי‬ a, b ‫עם‬ ‫מרמה‬ ‫לא‬ ‫בנימין‬ ‫אם‬ ‫אבל‬ - s2 = sx
1 ‫שאומנם‬ ‫שחשוב‬ ‫מה‬ ‫אבל‬ ,(...'‫וכו‬ magb ‫את‬
.(x-‫ב‬ ‫צורך‬ ‫)ללא‬ ‫בלבד‬ a, b, q ‫באמצעות‬ s2 ‫את‬ ‫לחשב‬ ‫יכול‬ ‫הוא‬ - q ‫את‬ ‫לו‬ ‫מגלה‬ ‫שאפרת‬ ‫אחרי‬
....c ‫בשליחת‬ ‫רימה‬ ‫לא‬ ‫שהוא‬ ‫בתנאי‬ ‫זה‬ ‫כל‬ ‫אבל‬
?‫הזאת‬ ‫בחתימה‬ ‫מיוחד‬ ‫מה‬
.‫שווה‬ ‫אינה‬ ‫החתימה‬ ‫אפרת‬ ‫של‬ ‫ההשתתפות‬ ‫שבלי‬
‫לבחור‬ ‫יכול‬ ‫בנימין‬ ‫כי‬ ‫תקין‬ ‫לבאמת‬ ‫נחשב‬ ‫לא‬ ‫זה‬ ‫אזי‬ ,‫אחר‬ ‫למישהו‬ ‫התקשורת‬ ‫כל‬ ‫את‬ ‫מראה‬ ‫בנימין‬ ‫אם‬
.‫בעיות‬ ‫בלי‬ s1, s2 ‫את‬ ‫ולחשב‬ a, b, q ‫את‬
.(‫ידיעה‬ ‫באפס‬ ‫בהוכחה‬ ‫כמו‬ ‫)ממש‬ q ‫את‬ ‫בחרה‬ ‫ואפרת‬ a, b ‫את‬ ‫בחר‬ ‫שהוא‬ ‫שיודע‬ ‫היחיד‬ ‫הוא‬
‫הכחשה‬ 17.3.3
.z 6≡ mx (mod p) :‫כלומר‬ ,‫תקינה‬ ‫אינה‬ ‫החתימה‬ ‫כי‬ ‫בנימין‬ ‫את‬ ‫לשכנע‬ ‫רוצה‬ ‫אפרת‬ ‫כי‬ ‫נניח‬
‫אם‬ :‫האלגוריתם‬ ‫של‬ ‫האמינות‬ ‫את‬ ‫שמגדיר‬ k ‫איזשהו‬ ‫על‬ ‫מסכימים‬ ‫ובנימין‬ ‫שהיא‬ ‫הוא‬ ‫שקורה‬ ‫מה‬
. 1
k+1 :‫היא‬ ‫תקנית‬ ‫לא‬ ‫שהיא‬ ‫בנימין‬ ‫את‬ ‫לשכנע‬ ‫תצליח‬ ‫שאפרת‬ ‫הסיכוי‬ ‫אזי‬ ,‫תקנית‬ ‫החתימה‬
:‫הפרוטוקול‬
33
o ‫להצפנה‬ ‫מבוא‬ =
:‫את‬ ‫לאפרת‬ ‫ושולח‬ ‫אקראי‬ ‫באופן‬ 1  b  p-‫ו‬ 0 ≤ s ≤ k ‫בוחר‬ ‫בנימין‬ .1
v1 = ms
gb
v2 = zs
yb
:‫אזי‬ ,‫תקנית‬ ‫החתימה‬ ‫אם‬ .‫בחזקות‬ ‫מוסתרים‬ ‫והם‬ ‫הזה‬ ‫בשלב‬ ‫סודיים‬ b, s ‫המספרים‬
v2 = zs
yb
= (mx
)s
(gx
)b
=

ms
gb
x
= v1 (mod p)
v1, v2 ‫והמספרים‬ ,k-‫ל‬ 0 ‫בין‬ ‫להיות‬ ‫חייב‬ (a ‫)במקום‬ s-‫ש‬ ‫רק‬ ,‫לבדיקה‬ ‫דומה‬ ‫מאוד‬ ‫)התהליך‬
.q = 0 ‫שכאן‬ ‫רק‬ s1, s2-‫ל‬ ‫מקבילים‬
:‫לקבל‬ ‫אמורה‬ ‫היא‬ ‫תקינה‬ ‫החתימה‬ ‫אם‬ .vx
1 v−1
2 (mod p) ‫ואת‬ vx
1 (mod p) ‫את‬ ‫מחשבת‬ ‫אפרת‬ .2
.(mx ≡ z (mod p)-‫ו‬ ‫)היות‬ .vx
1 v−1
2 ≡ 1 (mod p)
i ∈ {1, . . . , p − 1} ‫עבור‬ mxz−1
i
-‫ל‬ vx
1 v−1
2 ‫את‬ ‫להשוות‬ ‫יכולה‬ ‫אפרת‬ ,‫תקינה‬ ‫לא‬ ‫אכן‬ ‫החתימה‬ ‫אם‬ .3
:‫ש‬ ‫כך‬ i-‫ה‬ ‫את‬ ‫למצוא‬ ‫כדי‬
mx
z−1
i
= vx
1 v−1
2
.s ‫הערך‬ ‫יהיה‬ ‫וזה‬
mxz−1
i
= :i ‫לכל‬ ‫כי‬ s ‫את‬ ‫למצוא‬ ‫תוכל‬ ‫לא‬ ‫היא‬ ,‫תקינה‬ ‫אכן‬ ‫החתימה‬ ‫אם‬ - ‫שני‬ ‫מצד‬ .3.1
‫להכחיש‬ ‫רוצה‬ ‫היא‬ ‫שבו‬ ‫מצב‬ ‫)זה‬ .‫אקראי‬ i ‫לבחור‬ ‫חייבת‬ ‫היא‬ ‫ולכן‬ vx
1 v−1
2 = 1 (mod p)
‫תקינה‬ ‫אינה‬ ‫שלה‬ ‫החתימה‬ ‫כי‬ ‫להוכיח‬ ‫רוצה‬ ‫שהיא‬ ‫או‬ ,‫חתמה‬ ‫שהיא‬ ‫למרות‬ ‫החתימה‬ ‫את‬
.(‫תקינה‬ ‫שהיא‬ ‫למרות‬
.‫לבנימין‬ h (r, i) ‫ושולחת‬ ‫אקראי‬ r ‫בוחרת‬ ‫היא‬ :i-‫ל‬ ‫מתחייבת‬ ‫אפרת‬ .4
r ‫עם‬ ‫יחד‬ ‫גיבוב‬ ‫בפונקציית‬ “‫”מוסווה‬ i ‫את‬ ‫שולחת‬ ‫שהיא‬ ‫הסיבה‬ .‫כלשהי‬ ‫גיבוב‬ ‫פונקציית‬ ‫זאת‬ h
‫שבנימין‬ ‫למרות‬ ‫תקינה‬ ‫היא‬ ,‫)כלומר‬ ‫מרמה‬ ‫שבנימין‬ ‫למקרה‬ ‫שלה‬ i ‫את‬ ‫מגלה‬ ‫לא‬ ‫היא‬ ‫שככה‬ ‫היא‬
‫מהו‬ ‫לגלות‬ ‫רוצה‬ ‫לא‬ ‫ואפרת‬ ‫זאת‬ ‫שמאשש‬ i ‫ישנו‬ ‫אזי‬ - ‫תקינה‬ ‫אינה‬ ‫החתימה‬ ‫אם‬ .(‫שלא‬ ‫טוען‬
.‫לבנימין‬
.b ‫את‬ ‫מגלה‬ ‫בנימין‬ .5
‫איתו‬ ‫לחשב‬ ‫שניתן‬ ‫בודקת‬ ‫היא‬ ,‫כלומר‬ ,‫בנימין‬ ‫של‬ ‫הסודי‬ ‫המספר‬ ‫הוא‬ b ‫אכן‬ ‫כי‬ ‫בודקת‬ ‫אפרת‬ .6
.r ‫את‬ ‫לבנימין‬ ‫ושולחת‬ v1, v2 ‫את‬
‫את‬ ‫יתן‬ ‫שהוא‬ ‫כך‬ i ‫ישנו‬ ‫אזי‬ - ‫תקינה‬ ‫אינה‬ ‫החתימה‬ ‫)אם‬ h (r, i) = h (r, s) :‫כי‬ ‫בודק‬ ‫בנימין‬ .7
.(‫עליו‬ ‫עלתה‬ ‫שאפרת‬ ‫סימן‬ ‫מתקיים‬ ‫השווין‬ ‫ואם‬ s ‫של‬ ‫כמו‬ ‫התוצאה‬
‫אינה‬ ‫החתימה‬ ‫וכי‬ z 6≡ mx (mod p) ‫כי‬ ‫אומר‬ ‫זה‬ ‫אזי‬ h (r, i) = h (s, i)-‫ו‬ ‫מתקיים‬ 7 ‫חלק‬ ‫אכן‬ ‫אם‬
.‫תקינה‬
‫שלה‬ ‫הסיכוי‬ ‫לכן‬ ,‫יתאים‬ i ‫כל‬ ‫אזי‬ ,(‫להכחישה‬ ‫רוצה‬ ‫אפרת‬ ‫זאת‬ ‫)ולמרות‬ ‫תקנית‬ ‫החתימה‬ ‫אכן‬ ‫אם‬
.0 ≤ s ≤ k-‫ו‬ ‫היות‬ 1
k+1 :‫הוא‬ s-‫ל‬ ‫שווה‬ ‫)שיהיה‬ ‫הנכון‬ i-‫ה‬ ‫את‬ ‫למצוא‬
:VI ‫חלק‬
u‫ריבועיים‬ ‫שורשים‬U
34
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה

More Related Content

Similar to סיכום של הקורס מבוא להצפנה

סיכום קצר בקורס "מבוא לתאוריה של מדעי המחשב
סיכום קצר בקורס "מבוא לתאוריה של מדעי המחשבסיכום קצר בקורס "מבוא לתאוריה של מדעי המחשב
סיכום קצר בקורס "מבוא לתאוריה של מדעי המחשבcsnotes
 
סיכום הקורס בבינה מלאכותית
סיכום הקורס בבינה מלאכותיתסיכום הקורס בבינה מלאכותית
סיכום הקורס בבינה מלאכותיתcsnotes
 
סיכום הקורס בבינה מלאכותית
סיכום הקורס בבינה מלאכותיתסיכום הקורס בבינה מלאכותית
סיכום הקורס בבינה מלאכותיתcsnotes
 
סיכום במורכבות החישובים
סיכום במורכבות החישוביםסיכום במורכבות החישובים
סיכום במורכבות החישוביםcsnotes
 
סיכום של הקורס אלגוריתמים
סיכום של הקורס אלגוריתמיםסיכום של הקורס אלגוריתמים
סיכום של הקורס אלגוריתמיםcsnotes
 
סיכום של הקרוס למידה עמוקה
סיכום של הקרוס למידה עמוקהסיכום של הקרוס למידה עמוקה
סיכום של הקרוס למידה עמוקהcsnotes
 
2014 summer B 805 a
2014 summer B 805 a2014 summer B 805 a
2014 summer B 805 abagrutonline
 
סיכום של הקורס כלים מתמטיים למדעי המחשב
סיכום של הקורס כלים מתמטיים למדעי המחשבסיכום של הקורס כלים מתמטיים למדעי המחשב
סיכום של הקורס כלים מתמטיים למדעי המחשבcsnotes
 
אינטגרל מסוים - חזרה.pdf
אינטגרל מסוים - חזרה.pdfאינטגרל מסוים - חזרה.pdf
אינטגרל מסוים - חזרה.pdfOmerLevi7
 
סיכום קצר בקורס חדו"א 2 (נספח נוסחאות למבחן)
סיכום קצר בקורס חדו"א 2 (נספח נוסחאות למבחן) סיכום קצר בקורס חדו"א 2 (נספח נוסחאות למבחן)
סיכום קצר בקורס חדו"א 2 (נספח נוסחאות למבחן) csnotes
 
2014 summer B 807 a
2014 summer B 807 a2014 summer B 807 a
2014 summer B 807 abagrutonline
 
סיכום קצר על טורי טיילור
סיכום קצר על טורי טיילורסיכום קצר על טורי טיילור
סיכום קצר על טורי טיילורcsnotes
 
2014 summer A 806 a
2014 summer A 806 a2014 summer A 806 a
2014 summer A 806 abagrutonline
 
2013 summer A 806 a
2013 summer A 806 a2013 summer A 806 a
2013 summer A 806 abagrutonline
 
תזכורת לגבי הוכחות בשיטת האלכסון
תזכורת לגבי הוכחות בשיטת האלכסוןתזכורת לגבי הוכחות בשיטת האלכסון
תזכורת לגבי הוכחות בשיטת האלכסוןcsnotes
 
סיכום הקורס בחישוביות
סיכום הקורס בחישוביותסיכום הקורס בחישוביות
סיכום הקורס בחישוביותcsnotes
 
נוסחאון 5 יחל
נוסחאון 5 יחלנוסחאון 5 יחל
נוסחאון 5 יחלbagrutonline
 

Similar to סיכום של הקורס מבוא להצפנה (20)

סיכום קצר בקורס "מבוא לתאוריה של מדעי המחשב
סיכום קצר בקורס "מבוא לתאוריה של מדעי המחשבסיכום קצר בקורס "מבוא לתאוריה של מדעי המחשב
סיכום קצר בקורס "מבוא לתאוריה של מדעי המחשב
 
סיכום הקורס בבינה מלאכותית
סיכום הקורס בבינה מלאכותיתסיכום הקורס בבינה מלאכותית
סיכום הקורס בבינה מלאכותית
 
סיכום הקורס בבינה מלאכותית
סיכום הקורס בבינה מלאכותיתסיכום הקורס בבינה מלאכותית
סיכום הקורס בבינה מלאכותית
 
סיכום במורכבות החישובים
סיכום במורכבות החישוביםסיכום במורכבות החישובים
סיכום במורכבות החישובים
 
סיכום של הקורס אלגוריתמים
סיכום של הקורס אלגוריתמיםסיכום של הקורס אלגוריתמים
סיכום של הקורס אלגוריתמים
 
סיכום של הקרוס למידה עמוקה
סיכום של הקרוס למידה עמוקהסיכום של הקרוס למידה עמוקה
סיכום של הקרוס למידה עמוקה
 
2014 summer B 805 a
2014 summer B 805 a2014 summer B 805 a
2014 summer B 805 a
 
805 - winter 2014
 805 - winter 2014  805 - winter 2014
805 - winter 2014
 
סיכום של הקורס כלים מתמטיים למדעי המחשב
סיכום של הקורס כלים מתמטיים למדעי המחשבסיכום של הקורס כלים מתמטיים למדעי המחשב
סיכום של הקורס כלים מתמטיים למדעי המחשב
 
אינטגרל מסוים - חזרה.pdf
אינטגרל מסוים - חזרה.pdfאינטגרל מסוים - חזרה.pdf
אינטגרל מסוים - חזרה.pdf
 
סיכום קצר בקורס חדו"א 2 (נספח נוסחאות למבחן)
סיכום קצר בקורס חדו"א 2 (נספח נוסחאות למבחן) סיכום קצר בקורס חדו"א 2 (נספח נוסחאות למבחן)
סיכום קצר בקורס חדו"א 2 (נספח נוסחאות למבחן)
 
2014 summer B 807 a
2014 summer B 807 a2014 summer B 807 a
2014 summer B 807 a
 
סיכום קצר על טורי טיילור
סיכום קצר על טורי טיילורסיכום קצר על טורי טיילור
סיכום קצר על טורי טיילור
 
2014 summer A 806 a
2014 summer A 806 a2014 summer A 806 a
2014 summer A 806 a
 
2013 summer A 806 a
2013 summer A 806 a2013 summer A 806 a
2013 summer A 806 a
 
806 - winter 2014
806 - winter 2014806 - winter 2014
806 - winter 2014
 
תזכורת לגבי הוכחות בשיטת האלכסון
תזכורת לגבי הוכחות בשיטת האלכסוןתזכורת לגבי הוכחות בשיטת האלכסון
תזכורת לגבי הוכחות בשיטת האלכסון
 
סיכום הקורס בחישוביות
סיכום הקורס בחישוביותסיכום הקורס בחישוביות
סיכום הקורס בחישוביות
 
807 horef 2018
807 horef 2018807 horef 2018
807 horef 2018
 
נוסחאון 5 יחל
נוסחאון 5 יחלנוסחאון 5 יחל
נוסחאון 5 יחל
 

More from csnotes

סיכום על בדיקת לינאריות
סיכום על בדיקת לינאריותסיכום על בדיקת לינאריות
סיכום על בדיקת לינאריותcsnotes
 
סיכום הקורס באבטחת מידע
סיכום הקורס באבטחת מידעסיכום הקורס באבטחת מידע
סיכום הקורס באבטחת מידעcsnotes
 
נספח תזכורות מלוגיקה בולאנית
נספח תזכורות מלוגיקה בולאניתנספח תזכורות מלוגיקה בולאנית
נספח תזכורות מלוגיקה בולאניתcsnotes
 
סיכום קצר של דברים מתוך הקורס בתורת החישוביות
סיכום קצר של דברים מתוך הקורס בתורת החישוביותסיכום קצר של דברים מתוך הקורס בתורת החישוביות
סיכום קצר של דברים מתוך הקורס בתורת החישוביותcsnotes
 
סיכום הקורס בחישוביות ומורכבות החישובים
סיכום הקורס בחישוביות ומורכבות החישוביםסיכום הקורס בחישוביות ומורכבות החישובים
סיכום הקורס בחישוביות ומורכבות החישוביםcsnotes
 
סיכום בתחשיב היחסים
סיכום בתחשיב היחסיםסיכום בתחשיב היחסים
סיכום בתחשיב היחסיםcsnotes
 
סיכום בלוגיקה
סיכום בלוגיקהסיכום בלוגיקה
סיכום בלוגיקהcsnotes
 
סיכום של הקורס אוטומטים ושפות פורמליות
סיכום של הקורס אוטומטים ושפות פורמליותסיכום של הקורס אוטומטים ושפות פורמליות
סיכום של הקורס אוטומטים ושפות פורמליותcsnotes
 
ModProg.pdf
ModProg.pdfModProg.pdf
ModProg.pdfcsnotes
 
סיכום של הקורס אוטומטים ושפות פורמליות
סיכום של הקורס אוטומטים ושפות פורמליותסיכום של הקורס אוטומטים ושפות פורמליות
סיכום של הקורס אוטומטים ושפות פורמליותcsnotes
 
סיכום קצר של הקורס במבני נתונים
סיכום קצר של הקורס במבני נתוניםסיכום קצר של הקורס במבני נתונים
סיכום קצר של הקורס במבני נתוניםcsnotes
 
נספחון קצר בתורת הקבוצות
נספחון קצר בתורת הקבוצותנספחון קצר בתורת הקבוצות
נספחון קצר בתורת הקבוצותcsnotes
 
סיכום קצר של אלגברה לינארית ב'
סיכום קצר של אלגברה לינארית ב'סיכום קצר של אלגברה לינארית ב'
סיכום קצר של אלגברה לינארית ב'csnotes
 

More from csnotes (13)

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

סיכום של הקורס מבוא להצפנה

  • 1. ‫אוילר‬ ‫פונקציית‬ 2 o ‫להצפנה‬ ‫מבוא‬ = ‫להצפנה‬ ‫מבוא‬ ...‫בסוף‬ ‫עניינים‬ ‫תוכן‬ :I ‫חלק‬ u‫רקע‬U z ‫בסייסים‬ ‫מושגים‬ .1 Z ,2 | 8 :‫למשל‬ ,a · k = b-‫ש‬ ‫כך‬ k ∈ Z ‫קיים‬ ‫אם‬ a | b - a, b ∈ Z ‫עבור‬ :“‫את‬ ‫”מחלק‬ .1.1 ‫הגדרה‬ ...‫וכו‬ 7 | 35 ‫ביותר‬ ‫הגדול‬ ‫המספר‬ ‫להיות‬ ‫מוגדר‬ a, b ∈ N ‫מספרים‬ ‫שני‬ ‫של‬ ‫משותף‬ ‫מקסימלי‬ ‫מחלק‬ .1.2 ‫הגדרה‬ ,gcd (a, b) :‫ומסומן‬ n | a ∧ n | b :‫מקיים‬ ‫אשר‬ n ∈ N .6 | 18 ∧ 6 | 12 :‫מקיים‬ ‫אשר‬ ‫ביותר‬ ‫הגדול‬ ‫המספר‬ ‫הוא‬ 6 ‫כי‬ gcd (18, 12) = 6 :‫למשל‬ .gcd (a, b) = gcd (b, a) .1.3 ‫הערה‬ :1 < a < p ‫לכל‬ ‫או‬ - gcd (a, p) = 1 a 6= p ‫שלכל‬ ‫כל‬ p ∈ N ‫מספר‬ ‫הוא‬ ‫ראשוני‬ ‫מספר‬ .1.4 ‫הגדרה‬ .a - p (1.4 ‫)הגדרה‬ ‫ראשוני‬ ‫מספר‬ ‫שאינו‬ ‫מספר‬ ‫הוא‬ ‫פריק‬ ‫מספר‬ .1.5 ‫הגדרה‬ .‫זרים‬ ‫הם‬ b-‫ו‬ a ‫כי‬ ‫אומרים‬ ‫אזי‬ gcd (a, b) = 1 ‫אם‬ a, b ∈ N ‫עבור‬ :‫זרים‬ ‫מספרים‬ .1.6 ‫הגדרה‬ .A-‫ב‬ ‫האיברים‬ ‫כמספר‬ ‫תוגדר‬ |A| :A ‫סופית‬ ‫קבוצה‬ ‫עבור‬ .1.7 ‫הגדרה‬ z ‫אוילר‬ ‫פונקציית‬ .2 Z :‫הבא‬ ‫באופן‬ ‫מוגדרת‬ ‫אשר‬ φ : N → N ‫פונקציה‬ ‫היא‬ ‫אוילר‬ ‫פונקציית‬ φ (n) = n a gcd (a, n) = 1 o .n ∈ N ‫למספר‬ (1.6 ‫)הגדרה‬ ‫הזרים‬ ‫המספרים‬ ‫כמות‬ ‫את‬ ‫שמזירה‬ ‫פונקציה‬ ‫זוהי‬ ‫כלומר‬ .{1, 3, 7, 9} :‫הם‬ 10-‫ל‬ ‫שזרים‬ ‫המספרים‬ ‫כי‬ φ (10) = 4 :‫למשל‬ 1
  • 2. Z∗ n-‫ו‬ Zn ‫הקבוצות‬ 3 o ‫להצפנה‬ ‫מבוא‬ = ‫אוילר‬ ‫פונקציית‬ ‫לחישוב‬ ‫נוסחה‬ 2.1 :‫אוילר‬ ‫פונקציית‬ ‫את‬ ‫לחשוב‬ ‫ניתן‬ ‫שדרכן‬ ‫נוסחאות‬ ‫שתי‬ ‫ישנן‬ .n = pα1 1 · pα2 2 · · · pαk k :‫ראשוניים‬ ‫מספרים‬ ‫של‬ ‫מכפלה‬ ‫באמצעות‬ ‫טבעי‬ ‫מספר‬ ‫כל‬ ‫להציג‬ ‫ניתן‬ .2.1 ‫משפט‬ φ (n) = Y pi|n 1 − 1 pi .(‫כאלה‬ ‫כמה‬ ‫להיות‬ ‫)ויכולים‬ .n ‫את‬ ‫שמחלק‬ ‫ראשוני‬ ‫הוא‬ pi ‫כאשר‬ :‫הבאה‬ ‫הנוסחה‬ ‫באמצעות‬ ‫אוילר‬ ‫פונקציית‬ ‫את‬ ‫לחשב‬ ‫ניתן‬ ‫כן‬-‫וכמו‬ φ (n) = Y pi|n pαi i − pαi−1 i :‫אזי‬ n = 25 = 52 · 21 ‫את‬ ‫ניקח‬ .2.2 ‫דוגמה‬ φ (25) = 52 − 51 21 − 20 = 20 · 1 = 20 ‫אוילר‬ ‫ליאונרד‬ .φ (p) = p − 1 ‫אזי‬ ‫ראשוני‬ p ‫אם‬ .2.3 ‫הערה‬ z Z∗ n-‫ו‬ Zn ‫הקבוצות‬ .3 Z Zn = {0, 1, . . . , n − 1} ‫הקבוצה‬ ‫היא‬ Zn ‫הקבוצה‬ .3.1 ‫הגדרה‬ :‫או‬ Zn = ( k k ∈ N, 0 ≤ k ≤ n − 1 ) :n-‫ל‬ ‫זרים‬ ‫אשר‬ ‫המספרים‬ ‫כל‬ ‫את‬ ‫מכילה‬ ‫אשר‬ ‫הקבוצה‬ ‫היא‬ Z∗ n ‫הקבוצה‬ .3.2 ‫הגדרה‬ Z∗ n = ( k k ∈ N, gcd (a, n) = 1 ) .φ (n) = |Z∗ n| .3.3 ‫הערה‬ .(0 k p :k ∈ N ‫המספרים‬ ‫)כל‬ φ (p) = Z∗ p = p − 1 ‫אזי‬ ‫ראשוני‬ p ‫אם‬ .3.4 ‫משפט‬ 2
  • 3. ax ≡ b (mod n) ‫מהצורה‬ ‫משוואת‬ 4 o ‫להצפנה‬ ‫מבוא‬ = ≡ (mod n) ‫הסימן‬ 3.1 ,n = 18 ‫כלומר‬ ,Z18 ‫את‬ ‫ניקח‬ :‫למשל‬ ,Zn-‫ב‬ a = b-‫ש‬ ‫היא‬ a ≡ b (mod n) ‫מהצורה‬ ‫במשוואה‬ ‫הרעיון‬ :‫אזי‬ 19 ≡ 1 (mod 18) .1 ‫עוד‬ ‫והמשכנו‬ (18) 0-‫ל‬ ‫שהגענו‬ ‫אומר‬ ‫זה‬ ‫אבל‬ ,Z18-‫ב‬ 19 ‫לנו‬ ‫אין‬ ‫כי‬ :‫שליליים‬ ‫מספרים‬ ‫לגבי‬ ‫גם‬ ‫נכון‬ ‫וזה‬ −3 ≡ 15 (mod 18) Zn-‫ב‬ ‫הפיכים‬ ‫איברים‬ 3.2 -‫ש‬ ‫כך‬ b ∈ Zn ‫קיים‬ ‫אם‬ ‫הופכי‬ ‫אביר‬ ‫לו‬ ‫קיים‬ ‫כי‬ ‫נאמר‬ ,a ∈ Zn ‫בקבוצה‬ ‫איבר‬ ‫עבור‬ .3.5 ‫הגדרה‬ .a · b ≡ 1 (mod n) .a−1 :‫ע“י‬ ‫מסומן‬ ‫והוא‬ ,a ‫של‬ ‫ההופכי‬ ‫האיבר‬ ‫קוראים‬ b-‫ל‬ ‫כך‬ b ∈ Z∗ n ‫קיים‬ a ∈ Z∗ n ‫לכל‬ ,‫כלומר‬ ,n-‫ל‬ ‫ההופכיים‬ ‫האיברים‬ ‫כל‬ ‫נמצאים‬ Z∗ n ‫בקבוצה‬ .3.6 ‫הערה‬ .a · b ≡ 1 (mod n)-‫ש‬ .‫הופכי‬ ‫איבר‬ ‫קיים‬ a ∈ {1, . . . , p − 1} ‫לכל‬ ‫אזי‬ ‫ראשוני‬ p ‫אם‬ .3.7 ‫משפט‬ .b ‫הופכי‬ ‫איבר‬ a-‫ל‬ ‫קיים‬ ‫לא‬ ‫אזי‬ a / ∈ Z∗ n ‫אם‬ .3.8 ‫הערה‬ z ax ≡ b (mod n) ‫מהצורה‬ ‫משוואת‬ .4 Z .n | (ax − b) :‫ש‬ ‫פירושו‬ ax ≡ b (mod n) :a, b, n ∈ N ‫עבור‬ .4.1 ‫הגדרה‬ ax ≡ b (mod n) ‫מהצורה‬ ‫משוואות‬ ‫פתרון‬ 4.1 :‫הבא‬ ‫באופן‬ ax ≡ b (mod n) ‫מהצורה‬ ‫משוואות‬ ‫נפתור‬ .d = gcd (a, n) :‫נסמן‬ .x = a−1b (mod n) :‫שהוא‬ ‫יחיד‬ ‫פתרון‬ ‫ישנו‬ ‫אזי‬ d = 1 ‫אם‬ - :‫אפשרויות‬ ‫שתי‬ ‫יש‬ ‫אזי‬ ,d 1 ‫אם‬ - .(‫למשוואה‬ ‫פתרון‬ ‫)אין‬ ax 6≡ b (mod n) : d - c p ax ≡ b ‫למשוואה‬ ‫אבל‬ ,n d ‫מודולו‬ ‫אחד‬ ‫פתרון‬ ‫יש‬ a d x ≡ b b (mod n d ) ‫למשווה‬ ‫אזי‬ :d | c p :‫פתרונות‬ d ‫ישנן‬ (mod n) ( x0 + k · n d k ∈ N, 0 ≤ k ≤ d − 1 ) 3
  • 4. ‫אלפבתית‬-‫חד‬ ‫הצפנה‬ 5 o ‫להצפנה‬ ‫מבוא‬ = :II ‫חלק‬ u‫סימטרית‬ ‫הצפנה‬U ‫ששמה‬ ‫סימטרית‬-‫א‬ ‫הצפנה‬ ‫)לעומת‬ ‫הצדדים‬ ‫לשני‬ ‫משותף‬ ‫מפתח‬ ‫לנו‬ ‫שיש‬ ‫הוא‬ ‫הרעיון‬ ‫סימטרית‬ ‫בהצפנה‬ .(‫שלו‬ ‫המפתח‬ ‫את‬ ‫יש‬ ‫צד‬ ‫לכל‬ z ‫אלפבתית‬-‫חד‬ ‫הצפנה‬ .5 Z ‫ששמה‬ (7 ‫)בעמוד‬ ‫אלפבתית‬-‫רב‬ ‫הצפנה‬ ‫לעומת‬ ,‫בנפרד‬ ‫אות‬ ‫כל‬ ‫מצפינים‬ ‫אנחנו‬ ‫אלפבתית‬-‫חד‬ ‫בהצפנה‬ .‫אותיות‬ ‫של‬ ‫בלוקים‬ ‫מצפינים‬ ‫אנחנו‬ ‫הזזה‬ ‫צפני‬ 5.1 .(‫אופנים‬ ‫כמה‬ ‫ישנם‬ ‫)כי‬ ‫בהמשך‬ ‫שתוגדר‬ ‫כלשהי‬ ‫פונקציה‬ ‫ע“י‬ ‫האותיות‬ ‫את‬ ‫מזיזים‬ ‫אנחנו‬ ‫הזזה‬ ‫בצפני‬ ‫סימונים‬ 5.1.1 .‫אותיות‬ n ‫שמכיל‬ ‫בית‬-‫האלף‬ ‫ישנו‬ .‫המקורי‬ ‫הטקסט‬ ‫מרחב‬ = P .5.1 ‫רישום‬ ‫צורת‬ .‫המוצפן‬ ‫הטקסט‬ ‫מרחב‬ = C .5.2 ‫רישום‬ ‫צורת‬ .‫המפתחות‬ ‫מרחב‬ = K .5.3 ‫רישום‬ ‫צורת‬ P = C = K = Zn .‫ההצפנה‬ ‫פונקציית‬ ‫זוהי‬ - e (x) .‫הפענוח‬ ‫פונקציית‬ ‫זוהי‬ - d (x) ‫כללי‬ ‫הזזה‬ ‫צופן‬ 5.1.2 ek (x) = x + k mod n : ‫הצפנה‬ ‫פונקציית‬ dk (y) = y − k mod n : ‫פיענוח‬ ‫פונקציית‬ .‫בא“ב‬ ‫אותיות‬ ‫אילו‬ x, y ‫כאשר‬ .‫לאותיות‬ ‫הזזה‬ ‫עושים‬ ‫פשוט‬ ‫אנחנו‬ ‫שוב‬ ‫פשוט‬ ‫הצפנה‬ ‫צופן‬ ‫זהו‬ ‫קיסר‬ ‫צופן‬ 5.1.3 .k = 3 ‫שבו‬ ‫קיסר‬ ‫צופן‬ ‫הוא‬ ‫כללי‬ ‫הזזה‬ ‫לצופן‬ ‫דוגמה‬ .k = 0 ‫כאשר‬ ‫הוא‬ ‫הטריוויאלי‬ ‫הצופן‬ ,‫זאת‬ ‫הצפנה‬ ‫של‬ ‫במקרה‬ ‫הטריוויאלי‬ ‫הצופן‬ .ek (x) = dx (x) = x ‫אזי‬ 4
  • 5. ‫אלפבתית‬-‫חד‬ ‫הצפנה‬ 5 o ‫להצפנה‬ ‫מבוא‬ = ‫הזזה‬ ‫צופן‬ ‫על‬ ‫התקפות‬ 5.1.4 . (|Zn|) ‫מאוד‬ ‫קטן‬ ‫המפתחות‬ ‫מספר‬ ‫כי‬ ‫מאוד‬ ‫קל‬ ‫זה‬ .‫גס‬ ‫כוח‬ ‫באמצעות‬ ‫אפשר‬ - ‫ואז‬ ek (x) = y-‫ש‬ ‫כך‬ (x, y) ‫אותיות‬ ‫זוג‬ ‫למצוא‬ ‫מספיק‬ ,‫המקור‬ ‫טקסט‬ ‫את‬ ‫יודעים‬ ‫אנחנו‬ ‫ואם‬ - :‫המפתחות‬ ‫את‬ ‫למצוא‬ ‫בקלות‬ ‫ניתן‬ y ≡ x + k (mod n) ⇒ k ≡ y − x (mod n) ‫החלפה‬ ‫צופן‬ 5.2 :‫פונקציה‬ ‫זוהי‬ ‫כלומר‬ .‫האותיות‬ ‫כול‬ ‫על‬ ‫תמורה‬ ‫מבצעים‬ ‫אנחנו‬ ‫החלפה‬ ‫בצופן‬ σ : Zn → Zn .|Zn|! :‫הוא‬ ‫המפתחות‬ ‫מספר‬ ‫ולכן‬ ‫החלפה‬ ‫צופן‬ ‫על‬ ‫התקפות‬ 5.2.1 ,‫צמדים‬ ‫ע“פ‬ ‫לבדוק‬ ‫ניתן‬ ,‫מספיק‬ ‫זה‬ ‫ואם‬ ,‫אותיות‬ ‫של‬ ‫תדירות‬ ‫בדיקת‬ ‫ע“י‬ ‫בקלות‬ ‫הצופן‬ ‫את‬ ‫לתקוף‬ ‫ניתן‬ ...'‫וכו‬ .th, er :‫באנגלית‬ ‫למשל‬ .‫אותיות‬ ‫צמדי‬ ‫של‬ ‫נפיצות‬ ‫ע“פ‬ ,‫כלומר‬ ‫אפיני‬ ‫צופן‬ 5.3 . k = |Z∗ n| · |Zn| ‫זאת‬ ‫לעומת‬ ‫אבל‬ ,P = C = |Zn| :‫אשר‬ ,‫מורכב‬ ‫יותר‬ ‫טיפה‬ ‫צופן‬ ‫הוא‬ ‫אפיני‬ ‫צפן‬ ek (x) = ax + b mod n : ‫הצפנה‬ ‫פונקציית‬ dk (y) = a−1 (y − b) mod n : ‫פיענוח‬ ‫פונקציית‬ .b ∈ Zn-‫ו‬ a ∈ Z∗ n :‫כאשר‬ ‫הצופן‬ ‫פענוח‬ 5.3.1 ‫אם‬ ,‫כאן‬ ‫)וגם‬ ‫לפענח‬ ‫כדי‬ ‫ומהצופן‬ ‫המקור‬ ‫מטקסט‬ ‫אותיות‬ ‫לשני‬ ‫זקוקים‬ ‫אנחנו‬ ‫הפענוח‬ ‫בשביל‬ ‫הפעם‬ .(‫האותיות‬ ‫בתדירות‬ ‫להשתמש‬ ‫ניתן‬ ,‫ארוך‬ ‫מספיק‬ ‫הטקסט‬ .‫משוואות‬ ‫שתי‬ ‫צריכים‬ ‫אנחנו‬ ‫כך‬ ‫ולשם‬ (a, b) ‫נעלמים‬ ‫שני‬ ‫לנו‬ ‫שיש‬ ‫היא‬ ‫לכך‬ ‫הסיבה‬ :‫היא‬ ‫המשוואה‬ ‫אזי‬ c → t ‫כי‬ ‫לנו‬ ‫ונתון‬ 5.3.2-‫ב‬ ‫כמו‬ ‫המרחב‬ ‫על‬ ‫למשל‬ ‫מדובר‬ ‫אם‬ 2a + b = 19 (mod 26) :‫יותר‬ ‫כללי‬ ‫ובאופן‬ .(ψ (d) = 3 :5.3.2-‫ב‬ ,‫)למשל‬ ‫שלו‬ ‫המספרי‬ ‫הערך‬ ‫את‬ ‫בא“ב‬ A ‫עבור‬ ‫מחזירה‬ ψ (A) ‫הפונקציה‬ ‫כי‬ ‫נניח‬ :‫תהיה‬ ‫המשוואה‬ ‫אזי‬ A → C ‫כי‬ ‫לנו‬ ‫נתון‬ ‫אם‬ :‫בא“ב‬ A, C ‫עבור‬ ,‫אזי‬ ψ (A) a + b ≡ ψ (C) 5
  • 6. ‫אלפבתית‬-‫חד‬ ‫הצפנה‬ 5 o ‫להצפנה‬ ‫מבוא‬ = ‫לפענוח‬ ‫דוגמאות‬ 5.3.2 :C ‫המקור‬ ‫בטקסט‬ ‫כאשר‬ Z26 ‫על‬ ‫נדבר‬ ‫ולכן‬ abc-‫ה‬ ‫על‬ ‫מדובר‬ ‫יהיה‬ ‫הדוגמאות‬ ‫בשתי‬ .0 7→ a, 1 7→ b, . . . , 25 7→ z :‫כלומר‬ ,gj → ns :‫פשוטה‬ ‫מדוגמה‬ ‫נתחיל‬ ‫פשוטה‬ ‫דוגמה‬ ( 6a + b ≡ 13 (mod 26) (1) 9a + b ≡ 18 (mod 26) (2) :‫הוא‬ ‫שנקבל‬ ‫ומה‬ (2) − (1) :‫נחסר‬ 3a ≡ 5 (mod 26) :4.1 ‫חלק‬ ‫ע“פ‬ ‫המשוואה‬ ‫את‬ ‫נפתור‬ ‫וכעת‬ .‫אחד‬ ‫פתרון‬ ‫יש‬ ‫ולכן‬ gcd (3, 26) = 1 :‫ונקבל‬ 9-‫ב‬ ‫נכפול‬ ‫ולכן‬ 9 ‫הוא‬ ,3 ∈ Z∗ 26 ‫כי‬ ‫הופכי‬ ‫לו‬ ‫ויש‬ ,Z26-‫ב‬ ‫של‬ ‫ההופכי‬ a = 19 .b = 3 ⇐ 6 · 19 + b ≡ 13 (mod 26) :b ‫את‬ ‫ונקבל‬ (1)-‫ב‬ ‫למשל‬ ,‫נציב‬ ‫כעת‬ ,e (x) = 19x + 3 :‫היא‬ ‫ההצפנה‬ ‫פונקציית‬ ‫ולכן‬ .d (y) = 11 (y − 3) :‫היא‬ ‫הפענוח‬ ‫פונקציית‬ ‫ואילו‬ ...‫בדרך‬ “‫”מכשול‬ ‫לנו‬ ‫יהיה‬ ‫שהפעם‬ ‫רק‬ ,‫דוגמה‬ ‫עוד‬ ‫נעשה‬ ‫יותר‬ ‫מורכבת‬ ‫דוגמה‬ :‫ולכן‬ ,e (6) = 13, e (10) = 11 :‫כלומר‬ ,gk → nl :‫על‬ ‫נסתכל‬ ( 6a + b ≡ 13 (mod 26) (1) 10a + b ≡ 11 (mod 26) (2) :‫ונקבל‬ (1) − (2) ‫נעשה‬ ‫כעת‬ 22a ≡ 2 (mod 26) .gcd (22, 26) = 2 6= 1 - ‫בעיה‬ ‫וישנה‬ :‫ונקבל‬ 2-‫ב‬ ‫המשוואה‬ ‫כל‬ ‫את‬ ‫שנחלק‬ ‫הוא‬ ‫שנעשה‬ ‫מה‬ ,‫לכן‬ 11a ≡ 1 (mod 13) .a = 19 :‫ולכן‬ 19 ‫הוא‬ Z26-‫ב‬ 11 ‫של‬ ‫ההופכי‬ .b = 3 :‫ונקבל‬ (1)-‫ב‬ ‫למשל‬ ,‫המשוואות‬ ‫באחת‬ ‫נציב‬ ,e (x) = 19x + 3 :‫היא‬ ‫ההצפנה‬ ‫ופונקציית‬ .d (y) = 11 (y − 3) :‫היא‬ ‫הפענוח‬ ‫ופונקציית‬ 6
  • 7. ‫אלפבתית‬-‫רב‬ ‫הצפנה‬ 6 o ‫להצפנה‬ ‫מבוא‬ = z ‫אלפבתית‬-‫רב‬ ‫הצפנה‬ .6 Z ‫של‬ ‫קבוצה‬ ‫כל‬ ‫נצפין‬ ,‫כלומר‬ .‫בבלוקים‬ ‫נצפין‬ ‫אנחנו‬ ‫כאן‬ ,‫אות‬-‫אות‬ ‫הצפנו‬ ‫אלפבתית‬-‫חד‬ ‫בהצפנה‬ ‫אם‬ .‫אות‬-‫אות‬ ‫ולא‬ ‫אופן‬ ‫באותו‬ (‫)בלוק‬ ‫אותיות‬ .R-‫ב‬ ‫או‬ N-‫ב‬ ‫מספרים‬ ‫יהיו‬ α, β, γ, . . . ‫זה‬ ‫בחלק‬ (Vigenere) ‫ויג'נר‬ ‫צופן‬ 6.1 .Z26 ‫עם‬ ‫ונעבוד‬ 5.3.2-‫ב‬ ‫כמו‬ ‫יהיה‬ ‫זה‬ ‫שלנו‬ ‫במקרה‬ .n ‫בגודל‬ ‫א“ב‬ ‫עם‬ ‫עובדים‬ .[k, e, y] ↔ [10, 4, 24] :‫למשל‬ ,α ‫באורך‬ ‫מפתח‬ ‫בוחרים‬ - :‫כך‬ ‫עובדת‬ ‫ההצפנה‬ ‫השיטת‬ - .α ‫בגודל‬ ‫לבלוקים‬ ‫המקור‬ ‫טקסט‬ ‫את‬ ‫מחלקים‬ p .(ki ‫לה‬ ‫מוספים‬ ,‫)כלומר‬ ki-‫ב‬ ‫הזזה‬ ‫עושים‬ ‫בבלוק‬ i ‫מספר‬ ‫האות‬ ‫על‬ p ‫באופן‬ ‫מוצפנת‬ ‫אות‬ ‫שכל‬ ‫כיוון‬ ‫כזה‬ ‫במקרה‬ ‫עוזרת‬ ‫אינה‬ ‫האותיות‬ ‫תדירות‬ ‫בדיקת‬ ‫כי‬ ‫לב‬ ‫לשים‬ ‫חשוב‬ (‫המפתח‬ ‫אורך‬ ‫את‬ ‫יודעים‬ ‫שאנחנו‬ ‫)בהנחה‬ ‫בלוק‬ ‫בכל‬ α-‫ה‬ ‫במקום‬ ‫האות‬ ‫לפי‬ ‫בודקים‬ ‫אם‬ ‫אבל‬ .‫שונה‬ .‫הצופן‬ ‫את‬ ‫לפענח‬ ‫להתחיל‬ ‫כך‬ ‫באמצעות‬ ‫אפשר‬ ‫אזי‬ ‫דוגמה‬ 6.1.1 [k, e, y] ↔ [10, 4, 24] :‫ממקודם‬ ‫המפתח‬ ‫את‬ ‫ניקח‬ :‫למשל‬ ,‫הצפנה‬ ‫נבצע‬ ‫וכעת‬ h e l l o w o r l d ‫נצפין‬ ‫שאותה‬ ‫המילה‬ 10 4 24 10 4 24 10 4 24 10 ‫אות‬ ‫לכל‬ ‫נוסיף‬ ‫כמה‬ r i j v s u y v j n ‫המוצפן‬ ‫הטקסט‬ .h = 7 ⇒ 7 + 10 = 17 = r :‫למשל‬ ‫כי‬ ‫הצופן‬ ‫פיענוח‬ 6.1.2 :‫לעשות‬ ‫שצריך‬ ‫דברים‬ ‫שני‬ ‫ישנם‬ ‫הצופן‬ ‫את‬ ‫לפענח‬ ‫כדי‬ .‫המפתח‬ ‫גודל‬ ‫את‬ ‫למצוא‬ .1 .‫המפתח‬ ‫אותיות‬ ‫את‬ ‫למצוא‬ .2 .‫בשנייה‬ ‫להשתמש‬ ‫ניתן‬ ‫טובה‬ ‫מספיק‬ ‫לא‬ ‫אחת‬ ‫אם‬ .‫הצופן‬ ‫לפענוח‬ ‫שיטות‬ ‫שתי‬ ‫ישנן‬ 7
  • 8. ‫אלפבתית‬-‫רב‬ ‫הצפנה‬ 6 o ‫להצפנה‬ ‫מבוא‬ = ‫הטקסט‬ ‫סיבוב‬ ‫ע“י‬ ‫המפתח‬ ‫אורך‬ ‫מציאת‬ 6.1.3 ‫סיבוב‬ ‫ע“י‬ ‫התאמות‬ ‫מציאת‬ .α-‫ב‬ ‫אותו‬ ‫ומסובבים‬ ‫עצמו‬ ‫מעל‬ ‫הטקסט‬ ‫את‬ ‫שמים‬ ‫אנחנו‬ :‫אזי‬ abac :‫הוא‬ ‫המקור‬ ‫טקסט‬ ‫אם‬ ,‫למשל‬ .‫לעצמו‬ ‫ביחס‬ ‫הטקסט‬ ‫את‬ ‫הזזנו‬ ‫בכמה‬ ‫אומרת‬ α = . . . ‫הראשונה‬ ‫השורה‬ .‫הטקסט‬ ‫היא‬ - abac - ‫השנייה‬ ‫השורה‬ .‫המוזז‬ ‫הטקסט‬ ‫היא‬ - ‫השלישית‬ ‫השורה‬ α = 1 α = 2 α = 3 abac abac abac caba acab baca (a :‫משמאל‬ ‫השלישית‬ ‫)באות‬ α = 2 ‫כאשר‬ ‫אחת‬ ‫התאמה‬ ‫ששינה‬ ‫לב‬ ‫נשים‬ ‫קפיצה‬ ‫תהיה‬ ‫הזה‬ ‫במקום‬ ‫כלל‬ ‫)בדרך‬ ‫התאמות‬ ‫הרבה‬ ‫הכי‬ ‫יש‬ ‫שעבורו‬ α-‫ה‬ ‫את‬ ‫למצוא‬ ‫הוא‬ ‫הרעיון‬ .(‫ארוך‬ ‫מספיק‬ ‫שהוא‬ ‫בטקסט‬ ‫שמדובר‬ ‫בהנחה‬ ,‫במספר‬ ‫משמעותית‬ .6.1.5 :‫כאן‬ ‫שמתוארות‬ ‫בדרכים‬ ‫לפענח‬ ‫ניתן‬ ‫ואז‬ ‫וקטורית‬ ‫מכפלה‬ ‫ע“י‬ ‫המפתח‬ ‫אורך‬ ‫מציאת‬ 6.1.4 ,‫הזזה‬ ‫ללא‬ ‫המקורי‬ ‫הווקטור‬ ‫שזה‬ V0-‫ב‬ ‫המוצפן‬ ‫בטקסט‬ ‫האותיות‬ ‫של‬ ‫התדירויות‬ ‫וקטור‬ ‫את‬ ‫את‬ ‫נסמן‬ ,V1 = [4, 1, 2, 3] ‫אזי‬ V0 = [1, 2, 3, 4] ‫אם‬ ,‫כלומר‬ ,‫ימינה‬ 1 ‫של‬ ‫ציקלית‬ ‫בהזזה‬ ‫הוקטור‬ ‫את‬ V1-‫ב‬ ...'‫וכו‬ V2 = [3, 4, 1, 2] :‫היא‬ ‫להתאמה‬ ‫ההסתברות‬ α 6= β-‫ו‬ ‫הא“ב‬ ‫גודל‬ ‫זה‬ n ‫כאשר‬ ,α, β ∈ Zn ‫עבור‬ Vα • Vβ = X i∈Zn (Vα [i] · Vβ [i]) [‫שלנו‬ ‫במקרה‬ ‫אפשרי‬ ‫]בלתי‬ α = β-‫ש‬ ‫או‬ ‫כאשר‬ ‫יהיה‬ ‫וזה‬ Vα • Vβ ‫של‬ ‫המקסימלי‬ ‫הערך‬ ‫את‬ ‫ניקח‬ ‫כפולה‬ ‫או‬ ‫המפתח‬ ‫אורך‬ ‫לפי‬ ‫היא‬ ‫ימינה‬ ‫שההזזה‬ ‫)כלומר‬ ‫הצפנה‬ ‫אותה‬ ‫לפי‬ ‫מוצפנות‬ ‫האותיות‬ ‫כאשר‬ ‫או‬ .(‫שלו‬ .‫שונה‬ ‫בסדר‬ ‫אך‬ ‫רכיבים‬ ‫אותם‬ ‫את‬ ‫ישנם‬ ‫הווקטורים‬ ‫לשני‬ ‫כי‬ ‫לב‬ ‫נשים‬ ‫לדעת‬ ‫לנו‬ ‫מאפשרות‬ ‫הם‬ ,‫כלומר‬ ,‫הסתברותיות‬ ‫הינן‬ ‫האחרונות‬ ‫השיטות‬ ‫ששתי‬ ‫לזכור‬ ‫חשוב‬ .‫אורכו‬ ‫אכן‬ ‫שזהו‬ ‫בוודאות‬ ‫לנו‬ ‫מבטיחות‬ ‫לא‬ ‫אך‬ ‫המפתח‬ ‫אורך‬ ‫מה‬ ‫גבוהה‬ ‫בהסתברות‬ ‫המפתח‬ ‫מילת‬ ‫פענוח‬ 6.1.5 :‫ראשונה‬ ‫שיטה‬ .‫האותיות‬ ‫תדירות‬ ‫לפי‬ ‫היא‬ ‫הראשונה‬ ‫השיטה‬ .‫תדירות‬ ‫ונבדוק‬ ‫בלוק‬ ‫בכל‬ ‫הראשונה‬ ‫האות‬ ‫את‬ ‫ניקח‬ ‫בכמה‬ ‫לדעת‬ ‫כדי‬ ‫כזאת‬ ‫אחת‬ ‫אות‬ ‫)ומספיקה‬ .e ‫הנראה‬ ‫ככל‬ ‫היא‬ ‫גבוהה‬ ‫הכי‬ ‫התדירות‬ ‫עם‬ ‫האות‬ .(...‫הזזנו‬ ...'‫וכו‬ ‫בלוק‬ ‫בכל‬ ‫השנייה‬ ‫לאות‬ ‫נעשה‬ ‫ככה‬ ‫שאומר‬ ‫מה‬ k ‫למשל‬ ‫היא‬ ‫בתדירות‬ ‫השנייה‬ ‫שהאות‬ ‫נגלה‬ ‫לפעמים‬ ‫כי‬ ‫עובדת‬ ‫תמיד‬ ‫לא‬ ‫הזאת‬ ‫השיטה‬ ‫אבל‬ .(‫משמעות‬ ‫תהיה‬ ‫לא‬ ‫כולו‬ ‫לפענוח‬ ‫גם‬ ‫)ואז‬ ‫נכון‬ ‫לא‬ ‫פענחנו‬ ‫הנראה‬ ‫שככל‬ 8
  • 9. ‫אלפבתית‬-‫רב‬ ‫הצפנה‬ 6 o ‫להצפנה‬ ‫מבוא‬ = :‫אחרת‬ ‫שיטה‬ ‫יש‬ ‫כך‬ ‫לשם‬ .‫מסוימת‬ ‫אות‬ ‫לקבל‬ ‫ההסתברות‬ ‫ע“פ‬ ‫שעובדת‬ :‫חשובה‬ ‫הערה‬ ‫בא“ב‬ ‫האותיות‬ ‫תדירות‬ ‫של‬ ‫ההסתברות‬ ‫וקטור‬ ‫לנו‬ ‫שיהיה‬ ‫צריכים‬ ‫אנחנו‬ ‫הזאת‬ ‫השיטה‬ ‫בשביל‬ .‫כללי‬ ‫באופן‬ ‫שלנו‬ :‫הבא‬ ‫באופן‬ ,‫תדירויות‬ ‫וקטור‬ ‫ונבנה‬ ‫בלוק‬ ‫בכל‬ ‫הראשונה‬ ‫האות‬ ‫את‬ ‫ניקח‬ :‫תדירויות‬ ‫וקטור‬ ‫בונים‬ ‫כיצד‬ .(‫סימנים‬ ‫של‬ ‫וסופית‬ ‫ריקה‬ ‫לא‬ ‫)קבוצה‬ ‫שלנו‬ ‫הא“ב‬ = Σ :‫נסמן‬ ‫המופעים‬ ‫מספר‬ ‫את‬ ϕ (A)-‫ב‬ ‫נסמן‬ A ∈ Σ ‫ועבור‬ ,‫שלנו‬ ‫א“ב‬-‫ב‬ ‫האותיות‬ ‫מספר‬ = n = |Σ| .‫מסוים‬ ‫בטקסט‬ A ‫של‬ :‫יהיה‬ ‫התדירויות‬ ‫וקטור‬ ,‫כלשהו‬ ‫טקסט‬ ‫עבור‬ ‫אזי‬ U = ϕ (A) n A ∈ Σ # .1 ‫לקבל‬ ‫צריך‬ ‫הווקטור‬ ‫אברי‬ ‫כל‬ ‫את‬ ‫סוכמים‬ ‫שאם‬ ‫לזכור‬ ‫חשוב‬ ‫הא“ב‬ ‫של‬ ‫התדירויות‬ ‫וקטור‬ ‫את‬ V0-‫ב‬ ‫נסמן‬ ‫אזי‬ ,‫מסוים‬ ‫טקסט‬ ‫עבור‬ ‫התדירויות‬ ‫וקטור‬ ‫הוא‬ U ‫אם‬ .(6.1.4-‫ב‬ ‫שתואר‬ ‫)כפי‬ ‫ימינה‬ α-‫ב‬ ‫הוקטור‬ ‫של‬ ‫ציקלית‬ ‫הזזה‬ ‫הוא‬ α ∈ N ‫עבור‬ Vα-‫ו‬ ‫בכללי‬ :‫הוא‬ ‫למצוא‬ ‫שעלינו‬ ‫מה‬ ‫כעת‬ max n β β = Vα • U , α ∈ Zn o ,‫מקסימלי‬ ‫הוא‬ Vα•U ‫שעבורו‬ α ‫אותו‬ ‫את‬ ‫בהתאמה‬ ‫נמצא‬ ‫אזי‬ ‫מקסימלי‬ β ‫ערך‬ ‫אותו‬ ‫את‬ ‫שנמצא‬ ‫אחרי‬ .‫מחפשים‬ ‫אנחנו‬ ‫שאותה‬ ‫האות‬ ‫זאת‬ ‫הזה‬ α-‫וה‬ .a ‫היא‬ ‫הראשונה‬ ‫האות‬ ‫אזי‬ α = 0 ‫כי‬ ‫ונראה‬ ‫בלוק‬ ‫בכל‬ ‫הראשונה‬ ‫האות‬ ‫על‬ ‫זאת‬ ‫נעשה‬ ‫אם‬ ,‫למשל‬ ...c ‫היא‬ ‫הראשונה‬ ‫האות‬ ‫כי‬ ‫נדע‬ ‫אזי‬ α = 2 ‫ואם‬ .‫הלאה‬ ‫וכך‬ .‫הקודמת‬ ‫השיטה‬ ‫מוצלחת‬ ‫יותר‬ ‫בעיקרון‬ ‫הזאת‬ ‫השיטה‬ 9
  • 10. ‫היל‬ ‫צופן‬ 7 o ‫להצפנה‬ ‫מבוא‬ = z ‫היל‬ ‫צופן‬ .7 Z .‫מטריצות‬ ‫באמצעות‬ ‫בלוקים‬ ‫של‬ ‫הצפנה‬ ‫על‬ ‫שעובד‬ ‫צופן‬ ‫הוא‬ (Hill Cipher) ‫היל‬ ‫צופן‬ .n ∈ N ‫בגודל‬ ‫לבלוקים‬ ‫המקור‬ ‫טקסט‬ ‫מחלקים‬ ‫כאשר‬ ‫הצפנה‬ 7.1 n × n ‫בגודל‬ ‫הפיכה‬ M ∈ Mn×n (Zm) ‫מטריצה‬ ‫צריכים‬ ‫אנחנו‬ ‫המקור‬ ‫טקסט‬ ‫את‬ ‫להצפין‬ ‫בשביל‬ .(‫הבלוקים‬ ‫גודל‬ ‫זה‬ n ‫)כאשר‬ ‫מסמל‬ ‫מספר‬ ‫וכל‬ ‫הא“ב‬ ‫גודל‬ ‫הוא‬ m ‫כאשר‬ Zm-‫ב‬ ‫במספרים‬ ‫הם‬ ‫המטריצה‬ ‫בתאי‬ ‫המספרים‬ ‫כאשר‬ .‫בא“ב‬ ‫אות‬ ‫אברי‬ ‫כל‬ ‫אזי‬ a = 0, b = 1, . . . , z = 25 ‫כאשר‬ (‫הלטיניות‬ ‫)האותיות‬ abcd...-‫ה‬ ‫על‬ ‫נסתכל‬ ,‫למשל‬ :‫להיות‬ ‫יכולה‬ ‫המטריצה‬ ‫אזי‬ n = 2 ‫כי‬ ‫ונניח‬ ,Z26-‫ב‬ ‫יהיו‬ K ‫המטריצה‬ M = 1 2 7 13 :‫הוא‬ ‫שלנו‬ ‫המקור‬ ‫טקסט‬ ‫כי‬ ‫ונניח‬ rabbit :‫הראשון‬ ‫הבלוק‬ ‫עבור‬ ,‫למשל‬ ,‫במטריצה‬ ‫בלוק‬ ‫כל‬ ‫ונכפול‬ (ra|bb|it) 2 ‫בגודל‬ ‫של‬ ‫לבלוקים‬ ‫אותו‬ ‫נחלק‬ ‫אזי‬ M · r a = M · 17 1 = 1 2 7 13 · 17 1 = 19 2 = tb .tbgour :‫תהיה‬ ‫בסוף‬ ‫והתוצאה‬ ‫פענוח‬ 7.2 .(...‫כמובן‬ ‫הבלוקים‬ ‫גודל‬ ‫)ואת‬ M−1 ‫את‬ ‫צריכים‬ ‫אנחנו‬ ‫פענוח‬ ‫לשם‬ :‫שלנו‬ ‫במקרה‬ M−1 = 13 2 7 25 ‫במטריצה‬ ‫אותם‬ ‫ונכפול‬ (tb|go|ur) 2 ‫בגודל‬ ‫לבלוקים‬ ‫המוצפן‬ ‫הטקסט‬ ‫את‬ ‫נחלק‬ ‫פשוט‬ ‫לפענח‬ ‫ובשביל‬ .‫המקורי‬ ‫הטקסט‬ ‫את‬ ‫את‬ ‫לקבל‬ ‫כדי‬ M−1 :tb-‫מ‬ ‫נתחיל‬ ‫שלנו‬ ‫במקרה‬ ,‫כלומר‬ 13 2 7 25 · t b = 13 2 7 25 · 19 2 = 17 1 = r a = ra .rabbit :‫בסוף‬ ‫שנקבל‬ ‫עד‬ ‫הלאה‬ ‫וכך‬ 10
  • 11. ‫וקסור‬ 2 ‫מודולו‬ ‫חיבור‬ 8 o ‫להצפנה‬ ‫מבוא‬ = ‫ההצפנה‬ ‫מטריצת‬ ‫מציאת‬ 7.3 ?‫אותה‬ ‫למצוא‬ ‫נוכל‬ ‫כיצד‬ ,M ‫מהי‬ ‫יודעים‬ ‫לא‬ ‫ואנחנו‬ ‫נניח‬ ‫גדלים‬ ‫לנסות‬ ‫צריך‬ ‫פשוט‬ ‫אזי‬ ‫לנו‬ ‫נתון‬ ‫לא‬ ‫הוא‬ ‫אם‬ ,‫הבלוקים‬ ‫גודל‬ ‫מה‬ ‫לדעת‬ ‫צריכים‬ ‫אנחנו‬ .7.1 ‫הערה‬ ...‫שנצליח‬ ‫עד‬ ‫שונים‬ :‫מטריצות‬ ‫שתי‬ ‫נבנה‬ ‫ולכן‬ rabb → tbgo ‫כי‬ ‫יודעים‬ ‫אנחנו‬ P = r b a b , C = t g b o :‫ולכן‬ M · P = C ‫כי‬ ‫יודעים‬ ‫ואנחנו‬ M = C · P−1 ‫נוכל‬ ‫שממנו‬ ‫אחר‬ ‫טקסט‬ ‫למצוא‬ ‫נצטרך‬ ,‫כזה‬ ‫במצב‬ .‫הפיכה‬ ‫אינה‬ P ‫שהמטריצה‬ ‫להיות‬ ‫יכול‬ .7.2 ‫הערה‬ .(‫המוצפן‬ ‫בטקסט‬ ‫להן‬ ‫המקבילות‬ ‫אותיות‬ 4-‫ו‬ ‫המקורי‬ ‫הטקסט‬ ‫של‬ ‫אותיות‬ 4) ‫הנ“ל‬ ‫המטריצות‬ ‫את‬ ‫לייצר‬ :III ‫חלק‬ u‫מודולו‬ ‫הצפנות‬U z ‫וקסור‬ 2 ‫מודולו‬ ‫חיבור‬ .8 Z .(2 ‫בעמוד‬ ,3.1 ‫הגדרה‬ ‫)ע“פ‬ Z2 = {0, 1} :x, y ∈ Z2 ‫עבור‬ x + y (mod 2) = x − y (mod 2) = x ⊕ y :x1, . . . , xk ∈ Z2 ‫משתנים‬ m ‫עבור‬ ‫נכון‬ ‫והדבר‬   X 1≤i≤m xi   mod 2 = M 1≤i≤m xi .{0, 1}-‫ב‬ - ‫כלומר‬ ,Z2-‫ב‬ ‫הוא‬ ‫ערכה‬ ‫אשר‬ ‫אחד‬ ‫מאורך‬ ‫יחידה‬ ‫זוהי‬ ‫ביט‬ .8.1 ‫הגדרה‬ 11
  • 12. ‫זרם‬ ‫הצפנות‬ 9 o ‫להצפנה‬ ‫מבוא‬ = z ‫זרם‬ ‫הצפנות‬ .9 Z .(‫בלוקים‬ ‫להצפנת‬ ‫)בניגוד‬ ‫בנפרד‬ ‫ביט‬ ‫כל‬ ‫מצפינים‬ ‫אנחנו‬ ‫זרם‬ ‫בהצפנות‬ .m ‫אורך‬ ‫באותו‬ ‫ביטים‬ ‫של‬ ‫אוסף‬ ‫כולם‬ - c ‫המוצפן‬ ‫והטקסט‬ k ‫המפתח‬ ,p ‫המקור‬ ‫טקסט‬ :‫ההצפנה‬ ‫פונקציית‬ :1 ≤ i ≤ m ‫לכל‬ ci = e (pi) = pi ⊕ ki = pi + ki (1) :‫הפענוח‬ ‫פונקציית‬ :1 ≤ i ≤ m ‫לכל‬ pi = d (ci) = ci ⊕ ki = ci + ki (2) :‫כאשר‬ ‫המקור‬ ‫מטקסט‬ ‫סיבית‬ ‫זאת‬ pi ‫מהמפתח‬ ‫סיבית‬ ‫זאת‬ ki ‫המוצפן‬ ‫מהטקסט‬ ‫סיבית‬ ‫זאת‬ ci ‫פונקציות‬ ‫לינארי‬ ‫הזזה‬ ‫אוגר‬-‫ו‬ ‫אקראית‬ ‫סיביות‬ ‫מחוללי‬ ‫פעמי‬-‫חד‬ ‫פנקס‬ :‫הבאות‬ ‫הזרם‬ ‫הצפנות‬ ‫בכל‬ ‫זהות‬ ‫הן‬ (2) ‫והפענוח‬ (1) ‫ההצפנה‬ ‫ליצור‬ ‫לנו‬ ‫כדאי‬ ‫הכי‬ ‫דרך‬ ‫באיזו‬ ,‫כלומר‬ ?‫המפתח‬ ‫את‬ ‫יוצרים‬ ‫אנחנו‬ ‫כיצד‬ ‫היא‬ ‫העיקרית‬ ‫השאלה‬ ‫כעת‬ .‫מפתח‬ (OTP) ‫פעמי‬-‫חד‬ ‫פנקס‬ 9.1 ‫פעם‬ ‫רק‬ ‫במפתח‬ ‫משתמשים‬ :‫הסיבה‬ ,(!‫מושלמת‬ ‫)אפילו‬ ‫וטובה‬ ‫חזקה‬ ‫מאוד‬ ‫הצפנה‬ ‫זאת‬ ‫פעמי‬-‫חד‬ ‫פנקס‬ .‫וזהו‬ ‫אחת‬ .k0, k1, k2 . . . , km ∈ Z2 ‫סיביות‬ ‫של‬ ‫אקראית‬ ‫סדרה‬ ‫מכיל‬ ‫הפנקס‬ ‫על‬ ‫דבר‬ ‫שום‬ ‫לנו‬ ‫לגלות‬ ‫יכול‬ ‫לא‬ ‫המוצפן‬ ‫הטקסט‬ ,‫בפנקס‬ ‫הסיביות‬ ‫של‬ ‫האקראיות‬ ‫בגלל‬ .9.1 ‫הערה‬ .‫המקור‬ ‫טקסט‬ .‫מידע‬ ‫להעברת‬ ‫באינטרנט‬ ‫מחשבים‬ ‫לתקשורת‬ ‫בעיקר‬ ‫שימש‬ .9.2 ‫הערה‬ ‫אקראיות‬ ‫סיביות‬ ‫מחוללי‬ 9.2 TNRG 9.2.1 ‫שהוא‬ ‫כיוון‬ ‫לשחזר‬ ‫אפשר‬ ‫שאי‬ ‫סיביות‬ ‫מחולל‬ ‫זהו‬ - True Random Number Generator - TNRG .‫פיזיקליות‬ ‫תופעות‬ ‫על‬ ‫מבוסס‬ PRNG 9.2.2 ‫חישוב‬ ‫ידי‬-‫על‬ ‫הנוצרת‬ ‫סיביות‬ ‫של‬ ‫סדרה‬ ‫זוהי‬ - Pseudo Random Number Generator - PRNG :‫למשל‬ ,‫ברקורסיה‬ s0 = 12 si+1 = 115si + 19 mod 312 ...‫אקראיים‬ ‫לא‬ ‫הם‬ ‫כי‬ ‫מושלמת‬ ‫בטיחות‬ ‫אין‬ ‫אבל‬ ‫פעמי‬-‫החד‬ ‫מהפנקס‬ ‫לשימוש‬ ‫קלים‬ ‫יותר‬ ‫הללו‬ ‫הפתרונות‬ 12
  • 13. ‫זרם‬ ‫הצפנות‬ 9 o ‫להצפנה‬ ‫מבוא‬ = LFSR ‫לינארי‬ ‫הזזה‬ ‫אוגר‬ 9.3 ‫מקובל‬ .‫אקראי‬ ‫שיראה‬ ‫משהו‬ ,‫כלומר‬ - “‫אקראיות‬-‫”פסודו‬ ‫לייצר‬ ‫הוא‬ ‫שלה‬ ‫שהרעיון‬ ‫בנוסחה‬ ‫מדובר‬ ‫כאן‬ .‫בטיחות‬ ‫פחות‬ ‫אך‬ ‫גבוהה‬ ‫מהירות‬ ‫דורשות‬ ‫אשר‬ - ‫בכבלים‬ ‫טלוויזיה‬ ‫כמו‬ ‫במקומות‬ ‫זה‬ ‫בצופן‬ ‫להשתמש‬ :‫למשל‬ ,‫נסיגה‬ ‫נוסחת‬ ‫שישנה‬ ‫הוא‬ ‫הרעיון‬ zn+5 = z2 + z4 mod 2 ‫הנסיגה‬ ‫נוסחת‬ 9.3.1 :‫ערכים‬ m ‫לנו‬ ‫יש‬ ‫הנסיגה‬ ‫נוסחת‬ ‫עבור‬ ‫התחלתיים‬ ‫ערכים‬ z1, . . . , zm .‫מקדמים‬ c0, . . . , cm−1-‫ו‬ (Z2-‫ב‬ ‫כמובן‬ ‫הם‬ ‫הנתונים‬ ‫)כל‬ Zm+n = c0zn + c1zn+1 + · · · + cm−1zn+m−1 mod 2 .‫בסדרה‬ ‫הבאות‬ ‫הסיביות‬ ‫את‬ ‫מחשבים‬ ‫שאנחנו‬ ‫היא‬ zn-‫ב‬ ‫מתחילים‬ ‫אנחנו‬ ‫שבגללה‬ ‫הסיבה‬ ‫הצופן‬ ‫של‬ ‫תכונות‬ 9.3.2 ‫את‬ ‫לאתר‬ ‫כדי‬ ‫סיביות‬ 2m ‫צריך‬ m ‫באורך‬ ‫מפתח‬ ‫עבור‬ :‫נמוכה‬ ‫בטיחות‬ ‫עם‬ ‫אבל‬ .‫מהיר‬ ‫מאוד‬ ‫הוא‬ .(‫בהמשך‬ ‫נראה‬ ‫הדרך‬ ‫)את‬ ‫הנסיגה‬ ‫נוסחת‬ ‫מחזור‬ ‫לנו‬ ‫לייצר‬ ‫יכולה‬ ‫היא‬ ‫אזי‬ ,‫נסיגה‬ ‫נוסחת‬ ‫שיש‬ ‫בגלל‬ ,‫כלומר‬ .‫מחזורי‬ ‫במשהו‬ ‫מדובר‬ .9.3 ‫הערה‬ 100110 . . . | {z } 2m−1 100110 . . . | {z } 2m−1 :‫עצמן‬ ‫על‬ ‫לחזור‬ ‫יתחילו‬ ‫כבר‬ ‫הסיביות‬ - ‫זה‬ ‫אחרי‬ ,‫)כלומר‬ ‫ביטים‬ 2m − 1 ‫עד‬ .‫יותר‬ ‫קטנה‬ ‫להיות‬ ‫יכולה‬ ‫שהמחזוריות‬ ‫כמובן‬ - ‫הנסיגה‬ ‫נוסחת‬ ‫מציאת‬ 9.3.3 ‫חלק‬ ‫או‬ ‫המוצפן‬ ‫מהטקסט‬ ‫חלק‬ + ‫המקורית‬ ‫מההודעה‬ ‫חלק‬ ‫צריכים‬ ‫אנחנו‬ ‫הנסיגה‬ ‫נוסחת‬ ‫מציאת‬ ‫לשם‬ .‫יוצר‬ ‫שהאוגר‬ ‫מהסדרה‬ ‫מטקסט‬ ‫סיבית‬ ‫לנו‬ ‫נתונה‬ ‫אם‬ (1) ‫זרם‬ ‫להצפנת‬ ‫ובנוסחה‬ 2 ‫מודולו‬ ‫בחיבור‬ ‫שראינו‬ ‫שכמו‬ ‫היא‬ ‫לכך‬ ‫הסיבה‬ ki ‫מהמפתח‬ ‫סיבית‬ ‫אליה‬ ‫חיברנו‬ ‫אליה‬ ‫להגיע‬ ‫כדי‬ ‫אזי‬ ci ‫המוצפן‬ ‫מהטקסט‬ ‫וסיבית‬ pi ‫למשל‬ ,‫המקור‬ :‫אבל‬ ,(‫יודעים‬ ‫לא‬ ‫אנחנו‬ ‫כרגע‬ ‫)שאותה‬ pi + ki = ci m ki = ci − pi = ci + pi .‫הנתונות‬ ‫הסיביות‬ ‫לשאר‬ ‫לעשות‬ ‫נוכל‬ ‫וכך‬ ‫המפתח‬ ‫של‬ ‫סיביות‬ ‫מספר‬ ‫את‬ ‫לנו‬ ‫שיש‬ ‫אחרי‬ ‫לכן‬ .‫מחזורי‬ ‫במשהו‬ ‫מדובר‬ 9.3 ‫בהערה‬ ‫שנכתב‬ ‫כפי‬ ,‫כעת‬ .‫שנרצה‬ ‫אורך‬ ‫באיזה‬ ‫המפתח‬ ‫את‬ ‫למצוא‬ ‫נוכל‬ ‫וככה‬ ‫הנסיגה‬ ‫נוסחת‬ ‫את‬ ‫לשחזר‬ ‫לנסות‬ ‫נוכל‬ 13
  • 14. ‫זרם‬ ‫הצפנות‬ 9 o ‫להצפנה‬ ‫מבוא‬ = ‫הנסיגה‬ ‫נוסחת‬ ‫מבנה‬ 9.3.4 :‫פשוטה‬ ‫דוגמה‬ ‫על‬ ‫נסתכל‬ ‫עובדת‬ ‫היא‬ ‫איך‬ ‫להבין‬ ‫בשביל‬ zn+3 = zn + zn+2 ‫והספרה‬ 0-‫ה‬ ‫הספרה‬ ‫היא‬ ‫הראשון‬ ‫במקום‬ ‫הספרה‬ ,‫כלומר‬ ,0-‫מ‬ ‫מתחילים‬ ‫שאנחנו‬ ‫לזכור‬ ‫חשוב‬ ...‫הלאה‬ ‫וכך‬ 1-‫ה‬ ‫הספרה‬ ‫היא‬ ‫השני‬ ‫במקום‬ !mod2 ‫הם‬ ‫החיבורים‬ ‫כל‬ - ‫וכמובן‬ ‫צריכים‬ ‫אנחנו‬ ‫ולכן‬ ,‫ואילך‬ ‫הרביעית‬ ‫הסיבית‬ ‫את‬ ‫למצוא‬ ‫נוכל‬ ‫אנחנו‬ ,‫כלומר‬ .m = 3 :‫הנ“ל‬ ‫במקרה‬ :‫הם‬ ‫המקדמים‬ .(‫המינימום‬ ‫זה‬ 3 ‫אבל‬ ,‫כמובן‬ ‫יותר‬ ‫גם‬ ‫)אפשר‬ ‫לפחות‬ ‫התחלה‬ ‫בתור‬ ‫סיביות‬ 3 ‫לנו‬ ‫שיהיו‬ ‫היא‬ zn+3 ,‫הרביעית‬ ‫הספרה‬ ‫אזי‬ ,010 :‫הן‬ ‫לנו‬ ‫שנתונות‬ ‫והספרות‬ ‫נניח‬ .c0 = 1, c1 = 0, c1 = 1 :‫והשלישית‬ ‫הראשונה‬ ‫הספרה‬ ‫סכום‬ ‫כלומר‬ - zn + zn+2 ‫של‬ ‫הסכום‬ ‫של‬ ‫הספרה‬ ‫הספרות‬ ‫אלו‬ ‫התחתון‬ ‫הקו‬ ‫עם‬ ‫והספרות‬ ,‫הנסיגה‬ ‫נוסחת‬ ‫באמצעות‬ ‫שמצאנו‬ ‫הספרות‬ ‫הוא‬ ‫הכחול‬ ‫הטקסט‬ :‫מחברים‬ ‫אנחנו‬ ‫שאותן‬ .(‫הרביעי‬ ‫במקום‬ ‫הספרה‬ ,‫)כלומר‬ z3 ‫הספרה‬ ‫את‬ ‫למצוא‬ ‫נוכל‬ ,n = 0 ‫עבור‬ :z3 = z0 + z2 010 −→ 0100 :n = 1 ‫עבור‬ :z4 = z1 + z3 0100 −→ 01001 :n = 2 ‫עבור‬ :z5 = z2 + z4 01001 −→ 010011 ....‫הלאה‬ ‫וכך‬ :‫למשל‬ ,‫מחוברים‬ ‫משני‬ ‫יותר‬ ‫להיות‬ ‫שיכולים‬ ‫וכמובן‬ Zn+6 = zn+2 + zn+4 + zn+5 ‫הנסיגה‬ ‫נוסחת‬ ‫מציאת‬ 9.3.5 :‫הכללית‬ ‫הנוסחה‬ ‫זאת‬ - ‫למעלה‬ ‫שהוזכר‬ ‫כמו‬ Zm+n = c0zn + c1zn+1 + · · · + cm−1zn+m−1 mod 2 14
  • 15. ‫זרם‬ ‫הצפנות‬ 9 o ‫להצפנה‬ ‫מבוא‬ = c0, . . . , cm−1 :‫המקדמים‬ ‫את‬ ‫ולמצוא‬ m ‫את‬ ‫למצוא‬ ‫היא‬ ‫שלנו‬ ‫המטרה‬ ,‫ביטים‬ ‫סדרת‬ ‫בהינתן‬ :‫משוואות‬ ‫באמצעות‬ ‫היא‬ ‫לפתור‬ ‫הדרך‬ ,‫מסוים‬ m ‫עבור‬      z1 z2 · · · zm z2 z3 · · · zm+1 . . . . . . ... . . . zm zm+1 · · · z2m−1      | {z } M ·      c0 c1 . . . cm−1      =      zm+1 zm+2 . . . z2m      :‫אזי‬ abcdefghi :‫היא‬ ‫שלנו‬ ‫הסיביות‬ ‫סדרת‬ ‫אם‬ ,‫כלומר‬ :m = 2 ‫עבור‬ a b b c | {z } M c0 c1 = c d :m = 3 ‫עבור‬   a b c b c d c d e   | {z } M   c0 c1 c2   =   d e f   .‫הלאה‬ ‫וכך‬ .‫המקדמים‬ ‫שאלו‬ c0, c1, . . .-‫ל‬ (‫הביטים‬ ‫)אחד‬ c ‫בין‬ ‫הבדל‬ ‫שיש‬ ‫כמובן‬ .‫לנו‬ ‫שיש‬ ‫הספרות‬ ‫סדרת‬ ‫את‬ ‫לנו‬ ‫שנותנת‬ ‫הנסיגה‬ ‫נוסחת‬ ‫את‬ ‫שמוצאים‬ ‫עד‬ ‫אחר‬ m ‫מנסים‬ ‫פעם‬ ‫כל‬ :m ‫כל‬ ‫עבור‬ ‫אם‬ - det (M) mod 2 ‫השמאלית‬ ‫המטריצה‬ ‫של‬ ‫הדטרמיננטה‬ ‫את‬ ‫מחשבים‬ ‫אנחנו‬ .1 .2-‫ל‬ ‫וממשיכים‬ ‫פתרון‬ ‫יש‬ ‫אזי‬ det (M) 6= 0 .m + 1-‫ל‬ ‫עוברים‬ - ‫אחרת‬ ‫ספרות‬ ‫לייצר‬ ‫וממשיכים‬ ‫הנסיגה‬ ‫נוסחת‬ ‫את‬ ‫ומקבלים‬ ‫המשוואות‬ ‫מערכת‬ ‫את‬ ‫פותרים‬ .2 .‫פיה‬-‫על‬ !‫סיימנו‬ - ‫במקור‬ ‫לנו‬ ‫נתונה‬ ‫שהייתה‬ ‫לסדרה‬ ‫הגענו‬ ‫אם‬ .2.1 .m + 1-‫ל‬ ‫עוברים‬ - ‫אחרת‬ .2.2 ‫דוגמה‬ 9.3.6 1001001 :‫הבאה‬ ‫הסדרה‬ ‫לנו‬ ‫ונתונה‬ ‫נניח‬ k ‫לנו‬ ‫יש‬ ‫אם‬ - ‫כללי‬ ‫)ובאופן‬ m 2 ‫כי‬ ‫בוודאות‬ ‫יודעים‬ ‫אנחנו‬ ,‫אפסים‬ ‫שני‬ ‫של‬ ‫רצף‬ ‫שיש‬ ‫בגלל‬ ,‫אזי‬ .(‫בהכרח‬ m k ‫אזי‬ ,‫הנתונה‬ ‫בסדרה‬ ‫אפסים‬ :m = 3 15
  • 16. ‫זרם‬ ‫הצפנות‬ 9 o ‫להצפנה‬ ‫מבוא‬ =   1 0 0 0 0 1 0 1 0     c0 c1 c2   =   1 0 0   :‫למשוואות‬ ‫פתרון‬ ‫יש‬ ‫ולכן‬ det (M) = 1 c0 = 1 c1 = 0 c2 = 0 .(c0·1+c1·0+c2·0 :‫הראשונה‬ ‫השורה‬ ‫עבור‬ ,‫למשל‬ ,‫במטריצה‬ ‫שורה‬ ‫בכל‬ ‫המקדמים‬ ‫וקטור‬ ‫את‬ ‫)הכפלנו‬ :‫היא‬ ‫שקיבלנו‬ ‫הנסיגה‬ ‫ונוסחת‬ zn+3 = zn .(9.3.4) ‫כאן‬ ‫שראינו‬ ‫כמו‬ ‫פותרים‬ ‫ועכשיו‬ :‫הוא‬ ‫שנקבל‬ ‫מה‬ 1001 → 10010 → 100100 → 1001001 .‫הנסיגה‬ ‫נוסחת‬ ‫שזאת‬ ‫מכאן‬ .‫שבהתחלה‬ ‫הספרות‬ ‫את‬ ‫קיבלנו‬ ‫ואכן‬ ‫ממשיכים‬ ‫היינו‬ ‫אזי‬ - det (M) = 1-‫ש‬ ‫או‬ ,‫לנו‬ ‫שנתון‬ ‫ממה‬ ‫אחרות‬ ‫ספרות‬ ‫למשל‬ ‫מקבלים‬ ‫היינו‬ ‫אם‬ .m + 1-‫ל‬ 16
  • 17. ‫פריק‬ ‫הוא‬ n ‫מספר‬ ‫האם‬ ‫בדיקת‬ 11 o ‫להצפנה‬ ‫מבוא‬ = z ‫בלוקים‬ ‫הצפנת‬ .10 Z ‫בלוקים‬ ‫מצפינים‬ ‫אנחנו‬ ‫ביט‬-‫ביט‬ ‫להצפין‬ ‫במקום‬ ‫שכאן‬ ‫רק‬ ,‫זרם‬ ‫להצפנת‬ ‫דומה‬ ‫בלוקים‬ ‫בהצפנת‬ ‫הרעיון‬ .‫התוצאה‬ ‫על‬ ‫משפיע‬ ‫משמאוד‬ ‫מה‬ ,‫ביטים‬ ‫של‬ AES 10.1 ‫על‬ ‫שעובדת‬ ‫וחזקה‬ ‫נפוצה‬ ‫הצפנה‬ ‫שיטת‬ ‫זוהי‬ - Advanced Encryption Standart - AES ‫הצפנת‬ :‫הבאים‬ ‫הגדלים‬ ‫באחד‬ ‫הוא‬ ‫המפתח‬ .‫סיביות‬ 128 ‫בגודל‬ ‫בלוקים‬ .128, 192, 256 :‫שלבים‬ ‫ארבעה‬ ‫כוללת‬ AES-‫ה‬ ‫הצפנת‬ .4 × 4 ‫מטריצה‬ ‫בתוך‬ ‫נמצאים‬ ‫ביטים‬ 16 ‫כל‬ ,‫ביטים‬ 16 ‫של‬ ‫לחלקים‬ ‫הנתונים‬ ‫את‬ ‫מחלקים‬ ‫כל‬ ‫ראשית‬ .‫מסוימת‬ ‫טבלה‬ ‫ע“פ‬ ‫אחר‬ ‫בבית‬ ‫מוחלף‬ ‫ביט‬ ‫כל‬ - ‫בתים‬ ‫החלפת‬ ‫תיבות‬ .1 ,‫שהיא‬ ‫כמו‬ ‫נשארת‬ ‫הראשונה‬ ‫השורה‬ :‫מסובבת‬ ‫ההחלפה‬ ‫אחרי‬ ‫המטריצה‬ - ‫המטריצה‬ ‫סיבוב‬ .2 ‫שמאלה‬ ‫תאים‬ ‫שני‬ ‫זז‬ ‫תא‬ ‫כל‬ ‫השלישית‬ ‫בשורה‬ ,‫ימני‬ ‫אחד‬ ‫מקום‬ ‫זז‬ ‫תא‬ ‫כל‬ - ‫השנייה‬ ‫בשורה‬ :‫שמאלה‬ ‫תאים‬ ‫שלושה‬ ‫זז‬ ‫תא‬ ‫כל‬ ‫השלישית‬ ‫ובשורה‬ .‫חדשים‬ ‫לביטים‬ ‫ומומרת‬ 4×4 ‫מסדר‬ ‫במטריצה‬ ‫כפל‬ ‫עוברת‬ ‫עמודה‬ ‫כל‬ - ‫המטריצה‬ ‫עמודות‬ ‫שינוי‬ .3 ‫עמודה‬ ‫כל‬ ‫על‬ ‫עובד‬ ‫אשר‬ ‫הכללי‬ ‫מהמפתח‬ ‫הנבנה‬ ‫מפתח‬ ‫יש‬ ‫סיבית‬ ‫לכל‬ - ‫המפתח‬ ‫של‬ ‫תוספת‬ .4 .‫בנפרד‬ ‫בלוקים‬ ‫צפני‬ ‫של‬ ‫סדרה‬ ‫הצפנת‬ 10.2 ‫בדיוק‬ ?‫בלוקים‬ ‫של‬ ‫סדרה‬ ‫לנו‬ ‫שיש‬ ‫קורה‬ ‫מה‬ ‫אבל‬ ,‫בלוק‬ ‫להצפין‬ ‫ניתן‬ ‫כיצד‬ ‫ראינו‬ AES-‫ב‬ ‫מקודם‬ .‫הבאה‬ ‫ההצפנות‬ ‫סדרת‬ ‫באה‬ ‫זה‬ ‫בשביל‬ :IV ‫חלק‬ uRSAU ‫תחילה‬ ‫נצטרך‬ ‫עובד‬ ‫הוא‬ ‫וכיצד‬ (Rivest–Shamir–Adleman) RSA-‫ה‬ ‫אלגוריתם‬ ‫את‬ ‫להבין‬ ‫בשביל‬ .‫פריק‬ ‫או‬ ‫ראשוני‬ ‫הוא‬ ‫מספר‬ ‫האם‬ ‫לבדיקה‬ ‫שיטות‬ ‫להכיר‬ z ‫פריק‬ ‫הוא‬ n ‫מספר‬ ‫האם‬ ‫בדיקת‬ .11 Z .N-‫ב‬ ‫מספרים‬ ‫על‬ ‫רק‬ ‫שמדובר‬ ‫כמובן‬ 17
  • 18. ‫פריק‬ ‫הוא‬ n ‫מספר‬ ‫האם‬ ‫בדיקת‬ 11 o ‫להצפנה‬ ‫מבוא‬ = ‫אוילר‬ ‫משפט‬ 11.1 .(gcd (a, n) = 1 ‫ולכן‬ ,‫זרים‬ ‫מספרים‬ ‫הם‬ a, n :‫)כלומר‬ a ∈ Z∗ n ‫ויהי‬ n ∈ N ‫יהי‬ :‫אזי‬ aφ(n) ≡ 1 (mod n) .‫אוילר‬ ‫פונקציית‬ ‫זאת‬ φ (n) ‫כאשר‬ ‫פרמה‬ ‫של‬ ‫הקטן‬ ‫המשפט‬ 11.2 :‫ואז‬ ,‫ראשוני‬ n ‫שבו‬ ‫אוילר‬ ‫משפט‬ ‫של‬ ‫פרטי‬ ‫מקרה‬ ‫זהו‬ :1 ≤ a n ‫לכל‬ ,‫ולכן‬ ,φ (n) = n − 1 an−1 ≡ 1 (mod n) ‫מספר‬ ‫ניקח‬ ‫פשוט‬ ,‫ראשוני‬ ‫הוא‬ p ∈ N ‫אם‬ ‫לדעת‬ ‫בשביל‬ ‫כי‬ ,“‫הבעיה‬ ‫את‬ ‫ש”פתרנו‬ ‫לומר‬ ‫אפשר‬ ,‫עכשיו‬ :‫האם‬ ‫ונבדוק‬ 1 a p ‫כלשהו‬ ap−1 ≡ 1 (mod p) .(1.5) ‫פריק‬ ‫הוא‬ - ‫לא‬ ‫אם‬ ,(1.4) ‫ראשוני‬ ‫הוא‬ - ‫כן‬ ‫אם‬ ‫קריימקל‬ ‫מספרי‬ ‫נקראים‬ ‫אלו‬ .‫פרמה‬ ‫משפט‬ ‫מתקיים‬ ‫ושעבורם‬ ‫ראשוניים‬ ‫אינם‬ ‫שהם‬ ‫מספרים‬ ‫נמצאו‬ ‫אבל‬ .‫אחרת‬ ‫בדיקה‬ ‫וצריך‬ ‫לנו‬ ‫מספיק‬ ‫לא‬ ‫פרמה‬ ‫משפט‬ ‫לכן‬ 18
  • 19. ‫פריק‬ ‫הוא‬ n ‫מספר‬ ‫האם‬ ‫בדיקת‬ 11 o ‫להצפנה‬ ‫מבוא‬ = ‫מילר‬-‫רבין‬ ‫אלגוריתם‬ 11.3 ‫הכללי‬ ‫הרעיון‬ 11.3.1 - n ‫לפריקות‬ ‫עד‬ ‫מחפשים‬ ,n ∈ N ‫עבור‬ ‫העד‬ ‫את‬ ‫מוצאים‬ ‫לא‬ ‫אבל‬ ,‫שישנו‬ ‫שמוצאים‬ ‫)או‬ ‫כזה‬ ‫עד‬ ‫מוצאים‬ ‫אם‬ .‫פריק‬ ‫בוודאות‬ ‫המספר‬ ‫אזי‬ - (‫עצמו‬ ‫זה‬ ‫)אבל‬ ‫ראשוני‬ ‫המספר‬ ‫כי‬ ‫מכריזים‬ ‫אז‬ - ‫לפריקות‬ ‫עד‬ ‫מוצאים‬ ‫לא‬ ‫אם‬ .(3 4 ‫בהסתברות‬ ‫נכון‬ :‫אלגוריתמים‬ ‫לשני‬ ‫מתחלק‬ ‫עצמו‬ ‫האלגוריתם‬ ?‫לפריקות‬ ‫עד‬ ‫הוא‬ a ‫האם‬ - a n ‫עבור‬ - ‫הראשון‬ .‫פריק‬ ‫או‬ ‫ראשוני‬ ‫הוא‬ n ‫האם‬ - ‫השני‬ a ‫בסיס‬ ‫על‬ ‫לפריקות‬ ‫עד‬ ‫מציאת‬ 11.3.2 ‫לכן‬ ,(‫פרמה‬ ‫)משפט‬ an−1 ≡ 1 (mod n) ‫האם‬ ‫לבדוק‬ ‫מספיק‬ ‫לא‬ ‫זרים‬ a, n ‫עבור‬ ‫מקודם‬ ‫שראינו‬ ‫כפי‬ :‫הוא‬ ‫לעשות‬ ‫שצריך‬ ‫מה‬ ‫כי‬ r = 7, j = 2 :‫ולכן‬ n − 1 = 28 ‫אזי‬ n = 29 ‫עבור‬ ,‫)למשל‬ n − 1 = r · 2j :‫ש‬ ‫כך‬ r, j ‫למצוא‬ .(28 = 7 · 22 n ‫לפריקות‬ ‫עד‬ ‫הוא‬ a ‫האם‬ 1 ‫אלגוריתם‬ .a n-‫ש‬ ‫כך‬ a, n ‫טבעיים‬ ‫מספרים‬ ‫זוג‬ :‫קלט‬ .‫אותו‬ ‫גם‬ ‫מחזיר‬ ‫האלגוריתם‬ ‫אזי‬ - ‫המחלק‬ ‫את‬ ‫למצוא‬ ‫וניתן‬ ‫כן‬ ‫ואם‬ n ‫לפריקות‬ ‫עד‬ a ‫האם‬ :‫פלט‬ .n − 1 = r · 2j :‫ש‬ ‫כך‬ r, j ‫מוצאים‬ .1 .b0 = ar (mod n) .2 ‫ייתנו‬ ‫באלגוריתם‬ ‫הבאים‬ ‫השלבים‬ ‫)כל‬ ‫ראשוני‬ ‫כנראה‬ n ‫כי‬ ‫החזר‬ ‫אזי‬ - b0 ≡ ±1 (mod n) ‫אם‬ .3 .(‫להמשיך‬ ‫טעם‬ ‫אין‬ ‫ולכן‬ ,‫תוצאה‬ ‫אותה‬ ‫את‬ :i = j − 1 ‫עד‬ i = 1 ‫עבור‬ .4 .bi = b2 i−1 (mod n) .4.1 .‫לפריקות‬ ‫העד‬ ‫בתור‬ bi−1 ‫ואת‬ ‫פריק‬ n ‫המספר‬ ‫כי‬ ‫החזר‬ - bi ≡ 1 (mod n) .4.2 .‫ראשוני‬ ‫כנראה‬ n ‫המספר‬ ‫כי‬ ‫החזר‬ - bi ≡ −1 (mod n) .4.3 ar·2j = an−1 6≡ 1 (mod n)-‫ש‬ ‫למצב‬ ‫שהגענו‬ ‫הוא‬ ‫שקורה‬ ‫מה‬ ‫)כי‬ .(‫עד‬ ‫)ללא‬ ‫פריק‬ n ‫כי‬ ‫החזר‬ .5 .(‫ראשוני‬ ‫אינו‬ ‫המספר‬ ‫פרמה‬ ‫ע“פ‬ ‫ולכן‬ ‫מילר‬-‫רבין‬ ‫אלגוריתם‬ 11.3.3 .W (a, n) ‫בתור‬ (n ‫לפריקות‬ ‫עד‬ ‫הוא‬ a ‫)האם‬ ‫הקודם‬ ‫האלגוריתם‬ ‫את‬ ‫נגדיר‬ 19
  • 20. RSA-‫ה‬ ‫אלגוריתם‬ 12 o ‫להצפנה‬ ‫מבוא‬ = ‫מילר‬-‫רבין‬ ‫אלגוריתם‬ 2 ‫אלגוריתם‬ .n ‫טבעי‬ ‫מספר‬ :‫קלט‬ .‫לפריקות‬ ‫עד‬ ‫גם‬ ‫מוצא‬ ‫האלגוריתם‬ ‫ואם‬ ,‫ראשוני‬ ‫הוא‬ ‫המספר‬ ‫האם‬ :‫פלט‬ .(a ‫את‬ ‫לבחור‬ ‫שנרצה‬ ‫להיות‬ ‫יכול‬ ,‫מוגרל‬ ‫להיות‬ ‫חייב‬ ‫)לא‬ 1 a n ‫מספר‬ ‫הגרל‬ .1 .‫פריק‬ n ‫כי‬ ‫אומר‬ W (a, n) ‫האם‬ ‫בדוק‬ .2 .(‫לפריקות‬ ‫העד‬ ‫את‬ ‫גם‬ ‫ישנו‬ ‫)ואם‬ ‫פריק‬ n ‫כי‬ ‫החזר‬ - ‫כן‬ ‫אם‬ .2.1 .‫ראשוני‬ ‫כנראה‬ ‫המספר‬ ‫כי‬ ‫והחזר‬ ‫סיים‬ ‫או‬ 1-‫ל‬ ‫חזור‬ - ‫אחרת‬ .2.2 .n ‫את‬ ‫לפרק‬ ‫ניתן‬ ‫וכך‬ gcd (w, n) 6= 1 ‫אזי‬ ,w ‫עד‬ ‫לנו‬ ‫מחזיר‬ ‫שהאלגוריתם‬ ‫ברגע‬ z RSA-‫ה‬ ‫אלגוריתם‬ .12 Z .‫שלו‬ ‫המפתח‬ ‫את‬ ‫יש‬ ‫מהצדדים‬ ‫אחד‬ ‫לכל‬ ‫כלומר‬ ,‫אסימטרית‬ ‫בצורה‬ ‫עובד‬ RSA ‫ההצפנה‬ ‫אלגוריתם‬ ‫המפתח‬ ‫בניית‬ 12.1 :‫את‬ ‫ומחשבים‬ ,(‫גדולים‬ ‫)עדיף‬ ‫ראושניים‬ ‫מספרים‬ ‫שני‬ ‫מוצאים‬ .n = p · q .1 .(‫אוילר‬ ‫פונקציית‬ ‫זאת‬ φ (n) ‫)כאשר‬ φ (n) = (p − 1) · (q − 1) .2 .gcd (e, φ (n)) = 1 ,‫כלומר‬ ,‫זרים‬ e, φ (n)-‫ו‬ 1 e φ (n)-‫ש‬ ‫כך‬ e ‫מוצאים‬ .3 . d = e−1 (mod φ (n)) :‫מחשבים‬ .4 .(‫מפרסמים‬ ‫אנחנו‬ ‫זה‬ ‫)את‬ Kpub = (n, e) :‫הציבורי‬ ‫המפתח‬ .(‫בסוד‬ ‫שומרים‬ ‫אנחנו‬ ‫זה‬ ‫)את‬ Kpr = d :‫הפרטי‬ ‫המפתח‬ ‫ההודעה‬ ‫הצפנה‬ 12.2 :‫אזי‬ ,1 x n ‫כאשר‬ ,x ‫היא‬ ‫להצפין‬ ‫רוצים‬ ‫שאנחנו‬ ‫וההודעה‬ ‫נניח‬ y = E (x) = xe (mod n) (n, e) ‫שלו‬ ‫הציבורי‬ ‫המפתח‬ ‫על‬ ‫מסתכל‬ ‫היא‬ ‫אזי‬ ,‫לבני‬ x ‫ההודעה‬ ‫את‬ ‫לשלוח‬ ‫רוצה‬ ‫אפרת‬ ‫אם‬ :‫נזכיר‬ .x ‫את‬ ‫מצפינה‬ ‫וכך‬ ‫ההודעה‬ ‫פענוח‬ 12.3 :‫זה‬ ‫לעשות‬ ‫צריך‬ ‫שהוא‬ ‫מה‬ ‫כל‬ ‫לשם‬ ,(y) ‫לו‬ ‫שלחה‬ ‫שאפרת‬ ‫ההודעה‬ ‫את‬ ‫לפענח‬ ‫רוצה‬ ‫בני‬ D (y) = yd (mod n) = x 20
  • 21. RSA-‫ה‬ ‫אלגוריתם‬ 12 o ‫להצפנה‬ ‫מבוא‬ = ‫הסיני‬ ‫השאריות‬ ‫משפט‬ ‫בעזרת‬ ‫פענוח‬ 12.3.1 :‫הכנות‬ ‫של‬ ‫חישובים‬ ‫בכמה‬ ‫מתחילים‬ .n = p · q ‫כאשר‬ xd (mod n) ‫את‬ ‫לחשב‬ ‫רוצים‬ ‫אנחנו‬ :‫מחשבים‬ :p ‫עבור‬ .1 .Mp ≡ q · q−1 (mod p) .1.1 .dp ≡ d (mod p − 1) .1.2 .xp ≡ x (mod p) .1.3 .yp ≡ x dp p (mod p) .1.4 :q ‫עבור‬ .2 .Mq ≡ p · p−1 (mod q) .2.1 .dq ≡ d (mod q − 1) .2.2 .xq ≡ x (mod q) .2.3 .yq ≡ x dq q (mod q) .2.4 :‫מחשבים‬ ‫ואז‬ xd ≡ yp · Mp + yq · Mq (mod n) ‫החישובים‬ ‫בביצוע‬ ‫לנו‬ ‫שעוזרים‬ ‫כלים‬ 12.4 (‫הופכי‬ ‫וחישוב‬ ‫בחזקה‬ ‫)העלה‬ ‫אלגוריתמים‬ ‫שני‬ ‫ישנם‬ ‫ביעילות‬ ‫החישובים‬ ‫את‬ ‫לעשות‬ ‫שנוכל‬ ‫בשביל‬ .‫וקל‬ ‫מהיר‬ ‫יותר‬ ‫שלהם‬ ‫שהחישוב‬ ‫בחזקה‬ ‫להעלאה‬ ‫אלגוריתם‬ 12.4.1 ‫כך‬ ‫לשם‬ ,‫זמן‬ ‫המון‬ ‫לקחת‬ ‫יכול‬ ‫בחזקה‬ ‫שהעלה‬ ‫הבעיה‬ ‫אבל‬ ,ab (mod n) ‫את‬ ‫לחשב‬ ‫נרצה‬ ‫פעמים‬ ‫המון‬ :‫הבא‬ ‫האלגוריתם‬ ‫את‬ ‫יש‬ ‫בחזקה‬ ‫העלאה‬ ‫אלגוריתם‬ 3 ‫אלגוריתם‬ .x, c, n ∈ N :‫קלט‬ .xc (mod n) :‫פלט‬ ‫הסיפרה‬ ‫זאת‬ c0-‫ו‬ ‫שמאלית‬ ‫הכי‬ ‫הסיפרה‬ ‫זאת‬ ct ‫כאשר‬ ,‫בינארית‬ ‫לצורה‬ (‫)החזקה‬ c ‫את‬ ‫ממירים‬ .1 .‫ימנית‬ ‫הכי‬ .z = 1 .2 :i = 0 ‫עד‬ i = t ‫עבור‬ .3 .z2 (mod n) → z .3.1 z · x (mod n) → z ‫אזי‬ ci = 1 ‫אם‬ .3.2 .‫וסיים‬ z ‫את‬ ‫החזר‬ .4 21
  • 22. RSA-‫ה‬ ‫אלגוריתם‬ 12 o ‫להצפנה‬ ‫מבוא‬ = : 310 mod 5 ‫את‬ ‫נחשב‬ .12.1 ‫דוגמה‬ 1010 ‫זה‬ ‫בבינארית‬ 10 :‫ולכן‬ :31010 mod 5 ‫את‬ ‫נחשב‬ .1010 − − → :‫הבא‬ ‫בסדר‬ ‫לספרות‬ ‫בהתאם‬ ‫בחזקה‬ ‫ההעלאה‬ ‫את‬ ‫נחשב‬ ‫אנחנו‬ ,‫לכן‬ .z = 3 :‫ונקבל‬ 3-‫ב‬ ‫נכפול‬ ‫ואז‬ ,z = 1 :‫ונקבל‬ ‫בריבוע‬ ‫אותו‬ ‫נעלה‬ ,z = 1 ‫בהתחלה‬ .z = 32 mod 5 = 4 :‫ולכן‬ ,0 ‫רק‬ ‫לנו‬ ‫יש‬ ‫מכן‬ ‫לאחר‬ .3 ‫קיבלנו‬ .3-‫ב‬ ‫נכפיל‬ ‫ואז‬ z = 42 mod 5 = 1 :‫בריבוע‬ z ‫את‬ ‫נעלה‬ ‫לכן‬ - 1 ‫לנו‬ ‫יש‬ ‫מכן‬ ‫לאחר‬ ,z = 32 mod 5 = 4 :‫בריבוע‬ z ‫זה‬ ‫את‬ ‫נעלה‬ ‫לכן‬ - 0 ‫לנו‬ ‫יש‬ ‫לבסוף‬ .310 mod 5 = 4 :‫הסופית‬ ‫התוצאה‬ ‫וזאת‬ ‫דורשים‬ ‫שהם‬ ‫כך‬ ‫אחדות‬ ‫מעט‬ ‫בהם‬ ‫שיש‬ (10001)2 17 ‫או‬ (11)2 3 ‫כמו‬ ‫מספרים‬ ‫נעדיף‬ .12.2 ‫הערה‬ .(3.2 ‫)שלב‬ ‫כפל‬ ‫פעמים‬ ‫מעט‬ ‫ההופכי‬ ‫חישוב‬ 12.4.2 .‫ההופכי‬ ‫את‬ ‫לחשב‬ ‫עלינו‬ ‫המפתח‬ ‫בבניית‬ ,‫שראינו‬ ‫כמו‬ “‫”לחלק‬ ‫רוצים‬ ‫ואנחנו‬ x n-‫ש‬ ‫כך‬ x, n ∈ N :‫מספרים‬ ‫שני‬ ‫לנו‬ ‫יש‬ ‫כי‬ ‫נניח‬ ‫ושארית‬ ‫מנה‬ ‫עם‬ ‫חלוקה‬ :‫הבא‬ ‫באופן‬ ‫זה‬ ‫את‬ ‫לרשום‬ ‫ניתן‬ ‫אזי‬ x-‫ב‬ n ‫את‬ n = qx + r .‫המנה‬ ‫זאת‬ - q ‫כאשר‬ .(0 ≤ r ≤ n − 1) ‫השארית‬ ‫זאת‬ - r-‫ו‬ .2 ‫היא‬ ‫והשארית‬ 4 ‫היא‬ ‫המנה‬ ‫אזי‬ ,14 = 4 · 3 + 2 :3-‫ב‬ 14 ‫נחלק‬ .12.3 ‫דוגמה‬ .0 ‫היא‬ ‫והשארית‬ 1 ‫היא‬ ‫המנה‬ ,22 = 1 · 21 + 0 :21-‫ב‬ 22 ‫נחלק‬ .12.4 ‫דוגמה‬ ‫את‬ ‫לחשב‬ ‫נרצה‬ a, b ∈ N ‫מספרים‬ ‫שני‬ ‫עבור‬ gcd ‫למציאת‬ ‫אוקלידס‬ ‫של‬ ‫המורחב‬ ‫האלגוריתם‬ :‫הבא‬ ‫האלגוריתם‬ ‫את‬ ‫לנו‬ ‫יש‬ ‫כך‬ ‫לשם‬ gcd (a, b) gcd-‫ה‬ ‫לחישוב‬ ‫אוקלידס‬ ‫של‬ ‫המורחב‬ ‫האלגוריתם‬ 4 ‫אלגוריתם‬ .(a b ‫כי‬ ‫)ונניח‬ a, b ∈ N :‫קלט‬ .d = gcd (a, b) :‫פלט‬ .a = q · b + r :‫ש‬ ‫כך‬ ‫שארית‬ ‫עם‬ b-‫ב‬ a ‫את‬ ‫חלק‬ .1 :r 0 ‫עוד‬ ‫כל‬ .2 .b → a .2.1 .r → b .2.2 .1-‫ל‬ ‫חזור‬ .2.3 .b ‫את‬ ‫החזר‬ .3 22
  • 23. RSA ‫על‬ ‫התקפות‬ 13 o ‫להצפנה‬ ‫מבוא‬ = s, t .s · a + t · b = d-‫ש‬ ‫כך‬ s, t ∈ Z ‫מספרים‬ ‫שני‬ ‫קיימים‬ ‫אזי‬ d = gcd (a, b) ‫אם‬ ‫בז'ו‬ ‫מקדמי‬ .‫בז'ו‬ ‫מקדמי‬ ‫נקראים‬ ‫של‬ ‫המורחב‬ ‫האלגוריתם‬ ‫את‬ ‫כלשהם‬ ‫מספרים‬ ‫שני‬ ‫על‬ ‫להפעיל‬ ‫נצטרך‬ ‫אותם‬ ‫למצוא‬ ‫איך‬ ‫להבין‬ ‫בשביל‬ .‫אוקלידס‬ .a = 22, b = 17 ‫ניקח‬ i a b qi 0 22 17 1 22 = 1 · 17 + 5 1 17 5 3 17 = 3 · 5 + 2 2 5 2 2 5 = 2 · 2 + 1 3 2 1 0 .‫אותו‬ ‫ונחזיר‬ ‫נעצור‬ ‫ולכן‬ ,b = 1, r3 = 0 :3 ‫מספר‬ ‫באיטרציה‬ ‫כי‬ 1 ‫את‬ ‫ונחזיר‬ .1, 3, 2 :qi :‫המנה‬ ‫של‬ ‫לסדרה‬ ‫לב‬ ‫נשים‬ ‫כעת‬ :‫הבאות‬ ‫הנוסחאות‬ ‫ע“פ‬ ‫בז'ו‬ ‫מקדמי‬ ‫את‬ ‫לחשב‬ ‫ניתן‬ .t0, t2, . . . , tm ‫ואת‬ s0, s1, . . . , sm :‫מחשבים‬ 2 ≤ i ≤ m ‫עבור‬ s0 = 0, s1 = 1,si = −qi−1 · si−1 + si−2 t0 = 1, t1 = 0,ti = −qi−1 · ti−1 + ti−2 :‫ולבסוף‬ sma + tmb = rm = gcd (a, b) .‫ההופכי‬ ‫האיבר‬ ‫את‬ ‫למצוא‬ ‫ניתן‬ ‫ובאמצעותם‬ ‫בזו‬ ‫מקדמי‬ ‫הם‬ ‫אלו‬ sm, tm ‫כאשר‬ ?‫כיצד‬ ‫שנעשה‬ ‫מה‬ ‫אזי‬ ,(gcd (3, 7) = 1 ‫כי‬ ‫הופכי‬ ‫)וישנו‬ 3 (mod 7) ‫של‬ ‫ההופכי‬ ‫את‬ ‫למצוא‬ ‫רוצים‬ ‫ואנחנו‬ ‫נניח‬ :‫למעלה‬ ‫מתואר‬ ‫שנפעל‬ ‫הוא‬ :‫משוואה‬ ‫נקבל‬ s · 3 + t · 7 = 1 .‫בז'ו‬ ‫מקדמי‬ ‫הם‬ s, t ‫כאשר‬ s · 3 = 1 − t · 7 .Z7-‫ב‬ 3 ‫של‬ ‫ההופכי‬ ‫הוא‬ s-‫ה‬ ‫ולכן‬ z RSA ‫על‬ ‫התקפות‬ .13 Z :‫כלומר‬ ,p, q :‫ראשונים‬ ‫שני‬ ‫של‬ ‫מכפלה‬ ‫הוא‬ n-‫ש‬ ‫יודעים‬ ‫אנחנו‬ n = p · q 23
  • 24. RSA ‫על‬ ‫התקפות‬ 13 o ‫להצפנה‬ ‫מבוא‬ = .‫הללו‬ ‫הראשוניים‬ ‫המספרים‬ ‫שני‬ ‫את‬ ‫למצוא‬ ‫היא‬ ‫שלנו‬ ‫המטרה‬ ,‫לכן‬ (17 ‫)בעמוד‬ ‫פריק‬ ‫הוא‬ n ‫מספר‬ ‫האם‬ ‫בדיקת‬ :‫ראשוניות‬ ‫בבדיקת‬ ‫להשתמש‬ ‫יכולים‬ ‫אנחנו‬ ‫כל‬ ‫ראשית‬ .‫ראשוני‬ ‫במספר‬ ‫מדובר‬ ‫האם‬ ‫לדעת‬ ‫כדי‬ .p, q ‫את‬ ‫למצוא‬ ‫דרכים‬ ‫מספר‬ ‫ישנן‬ - ‫ראשוני‬ ‫אינו‬ ‫שהוא‬ ‫שמצאנו‬ ‫בהנחה‬ ‫לגורמים‬ ‫פירוק‬ 13.1 ‫פרמה‬ ‫של‬ ‫הפירוק‬ 13.1.1 .n = (x + y) (x − y) :‫פירוק‬ ‫לנו‬ ‫יש‬ ‫אזי‬ n = x2 − y2 ‫אם‬ .y = √ x2 − n ‫כאשר‬ ‫שלם‬ ‫מספר‬ ‫הוא‬ y-‫ש‬ ‫כך‬ x ‫מחפשים‬ ‫אנחנו‬ ‫לכן‬ .1-‫ב‬ x ‫את‬ ‫מעלים‬ ‫פעם‬ ‫וכל‬ x = d √ ne-‫מ‬ ‫מתחילים‬ ‫פרמה‬ ‫של‬ ‫הפירוק‬ ‫אלגוריתם‬ 5 ‫אלגוריתם‬ .n ∈ N+ :‫קלט‬ .(x + y) (x − y) = n :‫ש‬ ‫כך‬ x, y ∈ N+ :‫פלט‬ .x = d √ ne ‫את‬ ‫חשב‬ .1 :‫שלם‬ ‫אינו‬ √ x2 − n ‫עוד‬ ‫כל‬ .2 x + 1 → x .2.1 .y = √ x2 − n .3 .‫וסיים‬ (x + y) , (x − y) :‫החזר‬ .4 ‫פולארד‬ ‫של‬ p − 1 13.1.2 :‫הרעיון‬ :p − 1 | m-‫ש‬ ‫כך‬ m ‫שלכל‬ ‫כך‬ m ‫לכל‬ ,ap−1 ≡ 1 :a ∈ Zp ‫לכל‬ ‫אזי‬ ,‫ראשוני‬ p ‫אם‬ ‫כי‬ ‫יודעים‬ ‫אנחנו‬ .am ≡ 1 :‫אזי‬ p − 1 = 6-‫ו‬ ,p = 7 ‫על‬ ‫נסתכל‬ .13.1 ‫דוגמה‬ 36 ≡ 1 (mod 7) ⇒ 318 ≡ 1 (mod 7) .6 | 18-‫ו‬ .p − 1 = 70 = 2 · 5 · 7 ‫אזי‬ p = 71 ‫אם‬ :‫למשל‬ ‫קטנים‬ ‫לראשוניים‬ ‫מתחלק‬ p − 1 ‫אם‬ ‫כעת‬ .p − 1 | 7! :‫ולכן‬ ak! ≡ 1 (mod p)-‫ו‬ p − 1 | k! :‫גדול‬ ‫לא‬ k ‫עבור‬ ,‫לכן‬ gcd ak! − 1, n = p :n ‫של‬ ‫הגורמים‬ ‫אחד‬ ‫את‬ ‫ככה‬ ‫למצוא‬ ‫ניתן‬ ‫אזי‬ ak! 6≡ 1 (mod n) ‫אם‬ ,‫כעת‬ !n ‫את‬ ‫לפרק‬ ‫והצלחנו‬ 24
  • 25. RSA ‫על‬ ‫התקפות‬ 13 o ‫להצפנה‬ ‫מבוא‬ = ‫פולארד‬ ‫של‬ p − 1 ‫אלגוריתם‬ 6 ‫אלגוריתם‬ .B ‫וחסם‬ n ∈ N+ :‫קלט‬ .n ‫של‬ ‫פירוק‬ :‫פלט‬ .a = 2 .1 :B ‫עד‬ k = 2 ‫עבור‬ .2 .(ak! (mod n) ‫את‬ ‫)מחשבים‬ ak (mod n) → a .2.1 .gcd (a − 1, n) → d .2.2 .(n ‫של‬ ‫גורם‬ ‫)מצאנו‬ ‫וסיים‬ d ‫את‬ ‫החזר‬ 1 d n ‫אם‬ .2.3 .‫וסיים‬ “n ‫בפרוק‬ ‫”כישלון‬ ‫החזר‬ .3 .‫גדול‬ ‫אחד‬ ‫ראשוני‬ ‫גורם‬ ‫לפחות‬ ‫יש‬ p − 1, q − 1-‫ש‬ ‫כך‬ p, q ‫לבחור‬ ‫צריך‬ .13.2 ‫מסקנה‬ ‫פולארד‬ ‫של‬ (ρ) “‫”רו‬ ‫אלגוריתם‬ 13.1.3 :‫הרעיון‬ .n ‫מודולו‬ ‫מספרים‬ ‫של‬ xi+1 = g (xi) ‫אקראית‬-‫פסודו‬ ‫סדרה‬ ‫מגדירים‬ ‫היא‬ n ‫של‬ ‫הגורמים‬ ‫אחד‬ ‫מודולו‬ ‫ועבור‬ n ‫מודולו‬ ‫מחזורית‬ ‫להיות‬ ‫חייבת‬ ‫הסדרה‬ ‫היונים‬ ‫שובך‬ ‫עקרון‬ ‫בגלל‬ ‫תצטרך‬ ‫הסדרה‬ (‫מספר‬ ‫איזשהו‬ ‫)עבור‬ ‫נקודה‬ ‫באיזושהי‬ ‫כלומר‬ ,‫יותר‬ ‫קטן‬ ‫מחזור‬ ‫בעלת‬ ‫להיות‬ ‫צריכה‬ .(‫)רו‬ ρ ‫היוונית‬ ‫האות‬ ‫כמו‬ ‫עצמה‬ ‫על‬ ‫לחזור‬ :‫שנקבל‬ ‫ברגע‬ ,x2k ‫ואת‬ xk ‫את‬ ‫מחשבים‬ k ‫בשלב‬ x2k ≡ xk (mod p) .n ‫של‬ ‫גורם‬ ‫וקיבלנו‬ gcd (|x2k − xk| , n) = p :‫נקבל‬ ‫אזי‬ n ‫של‬ ‫גורם‬ ‫הוא‬ p-‫כש‬ ‫פולארד‬ ‫של‬ ρ “‫”רו‬ ‫אלגוריתם‬ 7 ‫אלגוריתם‬ . (g (x) = x2 + 1-‫ל‬ ‫שווה‬ ‫הוא‬ ‫)שבד“כ‬ g (x) ‫פולינום‬ .‫התחלתי‬ ‫ער‬ x0 ∈ N+-‫ו‬ n ∈ N+ :‫קלט‬ .n ‫של‬ ‫הגורמים‬ ‫אחד‬ :‫פלט‬ .x → x0 , x0 → y , 1 → d .1 :d = 1 ‫עוד‬ ‫כל‬ .2 .g (x) mod n → x .2.1 .g (g (x)) mod n → y .2.2 .gcd (|x − y| , n) → d .2.3 .‫וסיים‬ d ‫את‬ ‫החזר‬ ‫אחרת‬ .‫וסיים‬ “‫”כישלון‬ ‫החזר‬ d = n ‫אם‬ .3 (“‫ריבועית‬ ‫)”נפה‬ “‫גורמים‬ ‫”בסיס‬ ‫אלגוריתם‬ 13.1.4 :‫ש‬ ‫כך‬ a, b ‫קיימים‬ ‫כי‬ ‫נניח‬ ‫הרעיון‬ a2 ≡ b2 (mod n) 25
  • 26. ‫החתימה‬ ‫של‬ ‫הכללי‬ ‫הרעיון‬ 14 o ‫להצפנה‬ ‫מבוא‬ = ‫איך‬ ‫אז‬ n - (a ± b) ‫אבל‬ (‫ההגדרה‬ ‫)ע“פ‬ n | a2 − b2 ‫כי‬ ‫יודעים‬ ‫אנחנו‬ ‫אזי‬ ,a 6≡ b (mod n) ‫אבל‬ ?n ‫את‬ ‫מפרקים‬ ‫כן‬ :(n ‫מודולו‬ ‫הם‬ ‫החישובים‬ ‫)כל‬ ‫כזה‬ ‫הוא‬ ‫הרעיון‬ ‫בסיסי‬ ‫באופן‬ a2 = 23 · 3 · 52 b2 = 2 · 3 · 54 m (a · b)2 = 24 · 32 · 56 =   c z }| { 22 · 3 · 53   2 .‫כזה‬ ‫למצב‬ ‫להגיע‬ ‫המטרה‬ .n ‫של‬ ‫גורם‬ ‫הוא‬ gcd (n, ab − c) ‫אזי‬ ‫הגורם‬ ‫את‬ ‫ולא‬ ‫גורמים‬ ‫מספר‬ ‫שנכפול‬ ,‫)כלומר‬ ‫בריבוע‬ ‫מספר‬ ‫אותו‬ ‫יהיה‬ ‫לא‬ ‫זה‬ :‫ש‬ ‫זה‬ ‫שחשוב‬ ‫מה‬ .‫זוגיות‬ ‫יהיו‬ ‫החזקות‬ ‫ושכל‬ (‫בעצמו‬ ?a, b ‫את‬ ‫מוצאים‬ ‫איך‬ .(‫לראשוניים‬ ‫)חסם‬ B ‫קטן‬ ‫מספר‬ ‫בוחרים‬ .1 ‫לראשוניים‬ ‫מתפרק‬ m2 i (mod n)-‫ו‬ √ n-‫מ‬ ‫גדולים‬ ‫יותר‬ ‫קצת‬ ‫שהם‬ mi ‫מספרים‬ ‫מחפשים‬ .2 .p1, . . . , pk ≤ B ‫ריבועים‬ ‫בין‬ ‫שיוויון‬ ‫לקבל‬ ‫כדי‬ (‫למעלה‬ ‫בדוגמה‬ ‫כמו‬ a2, b2 ‫)למשל‬ ‫הללו‬ ‫מהפירוקים‬ ‫כמה‬ ‫מכפילים‬ .3 .(‫למעלה‬ ‫בדוגמה‬ c2) .n ‫את‬ ‫מחלק‬ ‫והוא‬ gcd (n, ab − c) 6= 1 .4 ‫משני‬ ‫יותר‬ ‫לכפול‬ ‫נוכל‬ ,‫כזה‬ ‫במקרה‬ ‫ואז‬ ,‫מספרים‬ ‫משני‬ ‫יותר‬ ‫כמובן‬ ‫להיות‬ ‫יכולים‬ ‫אלו‬ .13.3 ‫הערה‬ .‫שורש‬ ‫להוציא‬ ‫שנוכל‬ ‫כדי‬ ‫זוגיות‬ ‫החזקות‬ ‫כל‬ ‫שבו‬ ‫למצב‬ ‫להגיע‬ ‫כדי‬ ‫מספרים‬ :V ‫חלק‬ u‫דיגיטליות‬ ‫חתימות‬U z ‫החתימה‬ ‫של‬ ‫הכללי‬ ‫הרעיון‬ .14 Z .‫מהמסמך‬ ‫חלק‬ ‫אינה‬ ‫דיגיטלית‬ ‫חתימה‬ 26
  • 27. RSA ‫מבוססת‬ ‫דיגיטלית‬ ‫חתימה‬ 15 o ‫להצפנה‬ ‫מבוא‬ = .‫אחר‬ ‫מסמך‬ ‫על‬ ‫חתימה‬ ‫באותה‬ ‫להשתמש‬ ‫אפשרי‬ ‫בלתי‬ ‫שיהיה‬ ‫חשוב‬ .‫אמיתותה‬ ‫את‬ ‫לבדוק‬ ‫אפשר‬ ‫שיהיה‬ - ‫וכמובן‬ ?‫החתימה‬ ‫מיועדת‬ ‫למה‬ 14.1 :‫ש‬ ‫בוודאות‬ ‫לוודא‬ ‫יהיה‬ ‫שניתן‬ ‫לכך‬ ‫מיועדת‬ ‫החתימה‬ .(‫סיבות‬ ‫מיני‬ ‫)מכל‬ ‫בדרך‬ ‫השתנתה‬ ‫לא‬ ‫ההודעה‬ .1 .‫שהוא‬ ‫חושבים‬ ‫שאנחנו‬ ‫מי‬ ‫אכן‬ ‫זה‬ ‫השולח‬ .2 .‫שלה‬ (‫)השולח‬ ‫המקור‬ ‫את‬ ‫או‬ ‫ההודעה‬ ‫את‬ ‫לזייף‬ ‫קשה‬ ‫ככה‬ z RSA ‫מבוססת‬ ‫דיגיטלית‬ ‫חתימה‬ .15 Z :‫כאן‬ ‫גם‬ RSA-‫ב‬ ‫המפתח‬ ‫בניית‬ ‫של‬ ‫בחלק‬ ‫כמו‬ n = p · q, e · d ≡ 1 mod φ (n) :x ∈ Zn ‫ההודעה‬ ‫חתימת‬ y = sigK (x) ≡ xd (mod n) .(x, y) :‫הזוג‬ ‫הוא‬ ‫החתום‬ ‫הטקסט‬ ‫כאשר‬ :‫בדיקה‬ verK (x, y) = True ⇐⇒ x ≡ ye (mod n) RSA ‫חתימות‬ ‫על‬ ‫התקפות‬ 15.1 ‫חתימות‬ ‫על‬ ‫התקפות‬ ‫של‬ ‫שונות‬ ‫רמות‬ 15.1.1 ‫אלגוריתם‬ ‫את‬ ‫ולכן‬ ‫הציבורי‬ ‫המפתח‬ ‫את‬ ‫רק‬ ‫מכירה‬ (‫)התוקפת‬ ‫איב‬ :‫בלבד‬ ‫מפתח‬ ‫עם‬ ‫התקפה‬ .1 .(‫פשוטה‬ ‫הכי‬ ‫)התקפה‬ ‫הבדיקה‬ ‫יהיה‬ ‫יותר‬ ‫לה‬ ‫קל‬ ‫)ולכן‬ ‫אפרת‬ ‫ידי‬ ‫על‬ ‫חתומות‬ ‫הודעות‬ ‫כמה‬ ‫יש‬ ‫לאיב‬ :‫מוכרות‬ ‫הודעות‬ ‫התקפת‬ .2 .(‫בהמשך‬ ‫דוגמה‬ ,‫חתימה‬ ‫לזייף‬ (‫)איב‬ ‫שהיא‬ ‫הודעות‬ ‫כמה‬ ‫על‬ ‫אפרת‬ ‫של‬ ‫חתימות‬ ‫כמה‬ ‫מקבלת‬ ‫איב‬ :‫נבחרות‬ ‫הודעות‬ ‫התקפת‬ .3 .‫לתקוף‬ ‫לה‬ ‫קל‬ ‫יותר‬ ‫וככה‬ ,‫בוחרת‬ ‫ההתקפות‬ ‫של‬ ‫מטרות‬ 15.1.2 :‫מטרות‬ ‫מספר‬ ‫יש‬ ‫למעלה‬ ‫שציינו‬ ‫להתקפות‬ ‫לחתום‬ ‫יכולה‬ ‫ולכן‬ ‫אפרת‬ ‫של‬ ‫הסודי‬ ‫המפתח‬ ‫את‬ ‫לגלות‬ ‫מצליחה‬ (‫)התוקפת‬ ‫איב‬ :‫מלא‬ ‫פיצוח‬ .1 .‫איב‬ ‫או‬ ‫אפרת‬ - ‫חתמה‬ ‫מי‬ ‫לדעת‬ ‫יהיה‬ ‫אפשר‬ ‫אי‬ ‫וכך‬ ‫במקומה‬ .‫אחר‬ ‫מישהו‬ ‫ידי‬-‫על‬ ‫מראש‬ ‫שנבחרה‬ ‫הודעה‬ ‫על‬ ‫בהצלחה‬ ‫לחתום‬ ‫מצליחה‬ ‫איב‬ :‫סלקטיבי‬ ‫זיוף‬ .2 ‫אבל‬ ,‫משמעות‬ ‫יש‬ ‫שלהודעה‬ ‫בהכרח‬ ‫אומר‬ ‫לא‬ ‫)זה‬ ‫תקנית‬ ‫חתימה‬ ‫עם‬ ‫הודעה‬ ‫ליצור‬ ‫מצליחה‬ ‫איב‬ .3 .(‫חיובית‬ ‫תוצאה‬ ‫תהיה‬ ,‫האמיתות‬ ‫בבדיקת‬ 27
  • 28. ‫גיבוב‬ ‫פונקציות‬ ‫מבוססות‬ ‫דיגיטליות‬ ‫חתימות‬ 16 o ‫להצפנה‬ ‫מבוא‬ = ‫קיומי‬ ‫לזיוף‬ ‫דוגמה‬ 15.1.3 :‫בלבד‬ ‫מפתח‬ ‫עם‬ ‫קיומי‬ ‫זיוף‬ x-‫)ל‬ x ‫של‬ ‫תקנית‬ ‫חתימה‬ ‫היא‬ y-‫ש‬ ‫יוצא‬ ‫כך‬ - x ≡ ye (mod n) ‫את‬ ‫ומחשבת‬ y ‫חתימה‬ ‫בוחרת‬ ‫איב‬ .(‫משמעות‬ ‫יש‬ ‫בהכרח‬ ‫לא‬ ‫סלקטיבי‬ ‫לזיוף‬ ‫דוגמה‬ 15.1.4 :x ‫סלקטיבית‬ ‫הודעה‬ ‫על‬ ‫חתימה‬ ‫לזייף‬ ‫ניתן‬ ‫כך‬ x1 · x2 ≡ x-‫ש‬ ‫כך‬ x1, x2 ∈ Zn ‫מוצאת‬ ‫היא‬ ‫כך‬ ‫לשם‬ ,x ‫להודעה‬ ‫החתימה‬ ‫את‬ ‫לזייף‬ ‫רוצה‬ ‫איב‬ .x1, x2 ‫ההודעות‬ ‫שתי‬ ‫על‬ ‫לחתום‬ ‫מאפרת‬ ‫ומבקשת‬ (mod n) .x ‫של‬ ‫תקנית‬ ‫חתימה‬ ‫תקבל‬ ‫היא‬ - ‫החתימות‬ ‫שתי‬ ‫את‬ ‫תכפיל‬ ‫איב‬ ‫אם‬ z ‫גיבוב‬ ‫פונקציות‬ ‫מבוססות‬ ‫דיגיטליות‬ ‫חתימות‬ .16 Z ‫גיבוב‬ ‫פונקציות‬ 16.1 ‫פלט‬ ‫ומחזירה‬ ‫כלשהו‬ ‫באורך‬ ‫קלט‬ ‫שלוקחת‬ ‫פונקציה‬ ‫היא‬ h ‫קריפטוגרפית‬ ‫גיבוב‬ ‫פונקציית‬ .16.1 ‫הגדרה‬ .‫קבוע‬ ‫באורך‬ :‫בחשבון‬ ‫לקחת‬ ‫שחשוב‬ ‫נוספים‬ ‫דברים‬ ‫כמה‬ ‫ישנן‬ .h (m) ‫הפלט‬ ‫את‬ ‫לחשב‬ ‫קל‬ - m ‫נתונה‬ ‫הודעה‬ ‫עבור‬ .1 ‫אם‬ :‫אחרת‬ ‫)במילים‬ h (m) ‫יהיה‬ ‫שלה‬ ‫שהפלט‬ ‫כך‬ m ‫הודעה‬ ‫למצוא‬ ‫יהיה‬ ‫קשה‬ - ‫שני‬ ‫מצד‬ ,‫אבל‬ .2 .1‫כיוונית‬-‫חד‬ ‫בפונקציה‬ ‫מדובר‬ ,‫בנוסף‬ .(m ‫מהי‬ ‫לדעת‬ ‫מאוד‬ ‫קשה‬ ,h (m) ‫לנו‬ ‫נתון‬ .‫הגיבוב‬ ‫פונקציית‬ ‫תחת‬ ‫פלט‬ ‫אותו‬ ‫עם‬ ‫הודעות‬ ‫שתי‬ ‫למצוא‬ ‫קשה‬ .3 ‫ההולדת‬ ‫יום‬ ‫התקפת‬ 16.2 ‫ההולדת‬ ‫יום‬ ‫פרדוקס‬ 16.2.1 :‫היא‬ ‫יום‬ ‫באותו‬ ‫הולדת‬ ‫יום‬ ‫מהם‬ ‫שניים‬ ‫לאף‬ ‫שאין‬ ‫ההסתברות‬ ‫מה‬ ,‫בחדר‬ ‫אנשים‬ 23 ‫ישנם‬ 22 Y i=1 1 − i 365 = 0.495 !1 2-‫מ‬ ‫גדולה‬ ‫היא‬ ‫יום‬ ‫באותו‬ ‫הולדת‬ ‫יום‬ ‫יש‬ ‫האנשים‬ 23 ‫מתוך‬ ‫שלשניים‬ ‫הסיכוי‬ ,‫כלומר‬ :‫יותר‬ ‫כללי‬ ‫ובאופן‬ ‫מהקבוצה‬ ‫שמישהו‬ ‫הסיכוי‬ ‫אזי‬ , .‫איברים‬ N ‫של‬ ‫מאוסף‬ ‫איבר‬ ‫בוחרים‬ ‫אנשים‬ r ‫של‬ ‫קבוצות‬ ‫שתי‬ ‫כי‬ ‫נניח‬ :‫בערך‬ ‫הוא‬ ‫השנייה‬ ‫מהקבוצה‬ ‫מישהו‬ ‫כמו‬ ‫משהו‬ ‫יבחר‬ ‫הראשונה‬ 1 − e −r2 N :‫למשל‬ ,‫תוצאה‬ ‫אותה‬ ‫את‬ ‫להחזיר‬ ‫יכולים‬ ‫קלטים‬ ‫ומספר‬ ‫היות‬ ‫הקלט‬ ‫היה‬ ‫מה‬ ‫לדעת‬ ‫אפשרות‬ ‫שאין‬ ‫פונקציה‬ ,‫כלומר‬1 ‫למצוא‬ ‫קשה‬ ‫לא‬ ,2-‫ל‬ ‫בניגוד‬ ‫)אבל‬ n ‫הייתה‬ ‫מה‬ ‫לדעת‬ ‫נוכל‬ ‫לא‬ h (m) = 3 ‫למשל‬ ‫אם‬ ,‫כזה‬ ‫במקרה‬ ,h (m) = h mod 7 .(h (m) = 3-‫ש‬ ‫כך‬ m 28
  • 29. ‫דיגיטליות‬ ‫חתימות‬ ‫של‬ ‫מיוחדים‬ ‫סוגים‬ 17 o ‫להצפנה‬ ‫מבוא‬ = ‫שלמישהו‬ ‫הסיכוי‬ ‫אזי‬ ,‫אחת‬ ‫כל‬ ‫איש‬ 30 ‫בנות‬ ‫קבוצות‬ ‫שתי‬ ‫ועל‬ ,‫הולדת‬ ‫ימי‬ ‫על‬ ‫מדובר‬ ‫למשל‬ ‫ואם‬ :‫היא‬ ‫השנייה‬ ‫בקבוצה‬ ‫למישהו‬ ‫כמו‬ ‫הולדת‬ ‫יום‬ ‫אותה‬ ‫תהיה‬ ‫הראשונה‬ ‫מהקבוצה‬ 1 − e −302 365 = 0.915 ‫גיבוב‬ ‫בפונקציות‬ ‫שימוש‬ 16.2.2 .‫אפשריים‬ ‫פלטים‬ 2n = N ‫ישנם‬ ‫אזי‬ ,‫סיביות‬ n ‫יש‬ ‫גיבוב‬ ‫פונקציות‬ ‫של‬ ‫לפלט‬ ‫אם‬ (‫אוסף‬ ‫בכל‬ ‫)אחד‬ ‫זהים‬ ‫פלטים‬ ‫שני‬ ‫שיהיו‬ ‫ההסתברות‬ ,‫פלטים‬ √ N ‫בערך‬ ‫של‬ ‫אוספים‬ ‫שני‬ ‫עבור‬ ,‫לכן‬ .1 − e−1 ≈ 0.6 :‫בערך‬ ‫היא‬ ‫ולגרום‬ ‫אפרת‬ ‫את‬ ‫לרמות‬ ‫רוצה‬ ‫הילי‬ ‫אבל‬ ,(‫הטוב‬ ‫)החוזה‬ ‫הילי‬ ‫עם‬ ‫חוזה‬ ‫על‬ ‫חתמה‬ ‫אפרת‬ .16.2 ‫דוגמה‬ .(‫הרע‬ ‫)החוזה‬ ‫מזויף‬ ‫חוזה‬ ‫על‬ ‫לחתום‬ ‫לה‬ .250 ‫הוא‬ ‫האפשריים‬ ‫הפלטים‬ ‫מספר‬ ‫לכן‬ ,‫סיביות‬50 ‫הוא‬ ‫הגיבוב‬ ‫פונקציית‬ ‫של‬ ‫הפלט‬ ‫אורך‬ ‫כי‬ ‫נניח‬ ‫שלהם‬ ‫הפלט‬ ‫את‬ ‫מחשבת‬ ‫היא‬ .‫הרע‬ ‫החוזה‬ ‫של‬ 230-‫ו‬ ‫הטוב‬ ‫החוזה‬ ‫של‬ ‫שונות‬ ‫גרסאות‬ 230 ‫מכינה‬ ‫הילי‬ .‫הגיבוב‬ ‫פונקציית‬ ‫תחת‬ :‫היא‬ ‫הפלט‬ ‫אותו‬ ‫עם‬ ‫רע‬ ‫וחוזה‬ ‫טוב‬ ‫חוזה‬ ‫תקבל‬ ‫שהילי‬ ‫ההסתברות‬ ,‫למעלה‬ ‫שראינו‬ ‫מה‬ ‫ע“פ‬ 1 − e −260 250 = 1 − e−210 ≈ 1 ‫יראה‬ ‫וזה‬ ‫המזויף‬ ‫החוזה‬ ‫על‬ ‫לחתום‬ ‫לאפרת‬ ‫לגרום‬ ‫תוכל‬ ‫היא‬ ‫כאלו‬ ‫חוזים‬ ‫שני‬ ‫תקבל‬ ‫שהילי‬ ‫ברגע‬ ,‫כלומר‬ .‫חוזה‬ ‫אותו‬ ‫על‬ ‫חתמה‬ ‫היא‬ ‫כאילו‬ ?‫לעשות‬ ‫יכולה‬ ‫אפרת‬ ‫מה‬ :‫למשל‬ ,‫דברים‬ ‫מיני‬ ‫כל‬ ‫רע‬ ‫חוזה‬ ‫למצוא‬ ‫מאוד‬ ‫קשה‬ ‫יהיה‬ ‫להילי‬ ‫ואז‬ ,‫בחוזה‬ ‫קטן‬ ‫שינוי‬ ‫לבקש‬ ‫יכולה‬ ‫אפרת‬ ‫האחרון‬ ‫ברגע‬ .1 .(3 ‫)סעיף‬ ‫הפלט‬ ‫אותו‬ ‫עם‬ ‫חתימה‬ ‫היא‬ ‫שלה‬ ‫שהחתימה‬ ‫להוכיח‬ ‫כדי‬ ‫חתמה‬ ‫היא‬ ‫שעליו‬ ‫המסמך‬ ‫של‬ ‫עותק‬ ‫לשמור‬ ‫יכולה‬ ‫אפרת‬ .2 ‫יותר‬ ‫יהיה‬ ‫וככה‬ ,‫שלה‬ ‫העותק‬ ‫על‬ ‫שלה‬ ‫החתימה‬ ‫של‬ ‫התקינות‬ ‫את‬ ‫תראה‬ ‫היא‬ ‫)וככה‬ ‫לחוזה‬ ‫תקינה‬ .(‫תקפה‬ ‫החתימה‬ ‫שלשניהם‬ ‫שונים‬ ‫חוזים‬ ‫שני‬ ‫יראו‬ ‫כי‬ ‫לזייף‬ ‫קשה‬ z ‫דיגיטליות‬ ‫חתימות‬ ‫של‬ ‫מיוחדים‬ ‫סוגים‬ .17 Z .‫חתימות‬ ‫של‬ ‫מיוחדים‬ ‫סוגים‬ ‫על‬ ‫נדון‬ ‫עכשיו‬ .‫בהן‬ ‫הצורך‬ ‫ועל‬ ‫כללי‬ ‫באופן‬ ‫חתימות‬ ‫על‬ ‫דיברנו‬ ‫עכשיו‬ ‫עד‬ (‫)למפורט‬ ‫פעמית‬-‫חד‬ ‫חתימה‬ 17.1 .F : X → Y :(‫קריפטוגרפית‬ ‫גיבוב‬ ‫פונקצית‬ ,‫)למשל‬ ‫כיוונית‬-‫חד‬ ‫פונקציה‬ ‫על‬ ‫מתבססת‬ :‫הרעיון‬ .‫בנפרד‬ ‫סיבית‬ ‫כל‬ ‫על‬ ‫חותמים‬ :‫ציבורי‬ ‫ערך‬ ‫קובעים‬ ‫מהמפתחות‬ ‫אחד‬ ‫ולכל‬ Ki,0, Ki,1 ∈ X ‫סודיים‬ ‫מפתחות‬ ‫שני‬ ‫בוחרים‬ i ‫סיבית‬ ‫לכל‬ .f (Ki,0) , f (Ki,1) ∈ Y ‫שלה‬ ‫החתימה‬ ‫אזי‬ 1 ‫היא‬ ‫ואם‬ Ki,0 ‫היא‬ i-‫ה‬ ‫הסיבית‬ ‫של‬ ‫החתימה‬ ‫אזי‬ 0-‫ל‬ ‫שווה‬ ‫ית‬-i-‫ה‬ ‫הסיבית‬ ‫אם‬ .Ki,1 ‫היא‬ 29
  • 30. ‫דיגיטליות‬ ‫חתימות‬ ‫של‬ ‫מיוחדים‬ ‫סוגים‬ 17 o ‫להצפנה‬ ‫מבוא‬ = :2f (x) = 2x mod 17 ‫היא‬ f ‫כיוונית‬-‫החד‬ ‫הפונקציה‬ ‫כי‬ ‫נניח‬ .17.1 ‫דוגמה‬ x1,0 = 12 y1,0 = f (x1,0) = 16 x1,1 = 7 y1,1 = f (x1,1) = 9 x2,0 = 13 y2,0 = f (x2,0) = 15 x2,1 = 9 y2,1 = f (x2.1) = 2 x3,0 = 8 y3,0 = f (x3,0) = 1 x3,1 = 14 y3,1 = f (x3,1) = 13 ‫שהוא‬ ‫למקרה‬ ‫והשני‬ 0 ‫שהוא‬ ‫למקרה‬ ‫אחד‬ - ‫מפתחות‬ ‫שני‬ ‫מצמידים‬ ‫אנחנו‬ ‫ביט‬ ‫לכל‬ :‫כזה‬ ‫הוא‬ ‫הרעיון‬ :‫צבעים‬ ‫לפי‬ ‫חולקה‬ ‫הטבלה‬ ,‫למשל‬ ‫כאן‬ .‫בהתאם‬ ‫ומצפינים‬ ‫סיבית‬-‫סיבית‬ ‫ההודעה‬ ‫על‬ ‫עוברים‬ .1 .‫לשלישית‬ ‫והאדומות‬ ,‫השנייה‬ ‫לסיבית‬ - ‫הירוקות‬ ‫השורות‬ ,‫הראשונה‬ ‫לסיבית‬ - ‫הכחולות‬ ‫השורות‬ :‫הבאה‬ ‫ההודעה‬ ‫הצפנת‬ ‫על‬ ‫נסתכל‬ 101 ,x1,1 :1 ‫שיש‬ ‫להיכן‬ ‫הולכים‬ :‫אזי‬ 1 ‫והיא‬ ‫והיות‬ ‫הכחולות‬ ‫לשורות‬ ‫בהתאם‬ ‫מוצפנת‬ ,‫הראשונה‬ ‫הסיבית‬ :‫ולכן‬ f (x1,1 = 7) = 9 ‫ושמה‬ ‫הירוקות‬ ‫לשורות‬ ‫נלך‬ ‫אזי‬ ‫השנייה‬ ‫בסיבית‬ ‫ומדובר‬ ‫היות‬ .0 ‫שהיא‬ ‫הבאה‬ ‫לסיבית‬ ‫ממשיכים‬ ‫ואז‬ :(x2,1 ‫השנייה‬ ‫לשורה‬ ‫הולכים‬ ‫היינו‬ 1 ‫הייתה‬ ‫השנייה‬ ‫הסיבית‬ ‫)אם‬ x2,0 ‫הראשונה‬ ‫לשורה‬ f (x2,0 = 13) = 15 :1 ‫היא‬ ‫השלישית‬ ‫הסיבית‬ ‫כי‬ ‫השנייה‬ ‫לשורה‬ ‫נלך‬ ‫ובסוף‬ f (x3,1 = 14) = 13 :‫היא‬ ‫להודעה‬ ‫החתימה‬ ,‫ולכן‬ (9, 15, 13) ‫את‬ ‫לחתום‬ ‫רוצים‬ ‫היינו‬ ‫אם‬ .‫הקודמת‬ ‫בדוגמה‬ ‫כמו‬ ‫וטבלה‬ ‫פונקציה‬ ‫אותה‬ ‫את‬ ‫ניקח‬ .17.2 ‫דוגמה‬ :‫הייתה‬ ‫שלה‬ ‫החתימה‬ ‫אזי‬ ,011 :‫ההודעה‬ (16, 2, 13) .‫הרעיון‬ ‫את‬ ‫ממחישה‬ ‫היא‬ ‫אבל‬ ,‫פשוטה‬ ‫ממש‬ ‫דוגמה‬ ‫זאת‬2 30
  • 31. ‫דיגיטליות‬ ‫חתימות‬ ‫של‬ ‫מיוחדים‬ ‫סוגים‬ 17 o ‫להצפנה‬ ‫מבוא‬ = :‫פשוטה‬ ‫מאוד‬ ‫היא‬ ‫הנכונות‬ ‫בדיקת‬ .‫לנו‬ ‫הנתונה‬ ‫הטבלה‬ ‫לפי‬ ‫ההודעה‬ ‫את‬ ‫חותמים‬ ‫איך‬ ‫את‬ ‫זה‬ ‫לבדוק‬ ‫שצריך‬ ‫מה‬ ‫לכן‬ ,‫הטבלה‬ ‫לנו‬ ‫נתונה‬ ‫לעומת‬ ‫אם‬ ‫אך‬ ,‫תקינה‬ ‫החתימה‬ ‫כי‬ ‫נדע‬ ‫אזי‬ - (9, 15, 13) ‫והחתימה‬ 101 ‫ההודעה‬ ‫לנו‬ ‫נתונה‬ ‫אם‬ ,‫כלומר‬ ‫לסמוך‬ ‫נוכל‬ ‫ולא‬ ‫פגומה‬ ‫החתימה‬ ‫כי‬ ‫נדע‬ - (15, 2, 13) ‫החתימה‬ ‫עם‬ ‫אותה‬ ‫נבל‬ 011 ‫ההודעה‬ ‫עבור‬ ‫זאת‬ .‫ההודעה‬ ‫מקור‬ ‫על‬ :‫יתרונות‬ .‫כיוונית‬-‫החד‬ ‫המקור‬ ‫פונקציית‬ ‫את‬ ‫לחשב‬ ‫קשה‬ ‫שמאוד‬ ‫כיוון‬ ‫כזאת‬ ‫חתימה‬ ‫לזייף‬ ‫מאוד‬ ‫קשה‬ - .‫קוונטיים‬ ‫מחשבים‬ ‫נגד‬ ‫כעמיד‬ ‫נחשב‬ - :‫חסרונות‬ .(yi,{0,1}) ‫הציבורי‬ ‫למפתח‬ ‫זוגות‬ ‫ושתי‬ (xi,{0,1}) ‫הפרטי‬ ‫למפתח‬ ‫זוגות‬ ‫שתי‬ :‫ארוך‬ ‫מאוד‬ ‫המפתח‬ - ‫חותמים‬ ‫אם‬ ,‫)כלומר‬ ‫אחת‬ ‫מהודעה‬ ‫יותר‬ ‫על‬ ‫לחתום‬ ‫כדי‬ ‫מפתח‬ ‫באותו‬ ‫משתמשים‬ ‫עם‬ ‫בטיחותי‬ ‫לא‬ - ‫בחתימה‬ ‫להשתמש‬ ‫חשוב‬ ‫לכן‬ (1111 ‫על‬ ‫החתימה‬ ‫מה‬ ‫גם‬ ‫לדעת‬ ‫ניתן‬ ‫אזי‬ 0110 ‫ועל‬ 1011 ‫על‬ ‫גם‬ .‫פעמי‬-‫חד‬ ‫באופן‬ ‫הזאת‬ :‫שיפורים‬ ‫צריך‬ SHA − 256 ‫של‬ ‫במקרה‬ ,‫)למשל‬ ‫שלה‬ ‫הגיבוב‬ ‫על‬ ‫לחתום‬ ‫אפשר‬ ‫הודעה‬ ‫על‬ ‫לחתום‬ ‫במקום‬ - .‫ציבוריים‬ ‫מתפתחות‬ 512-‫ו‬ ‫פרטיים‬ ‫מפתחות‬ 512 “‫”רק‬ .‫מרקל‬ ‫של‬ ‫גיבוב‬ ‫בעץ‬ ‫מפתחות‬ 2N ‫להכניס‬ ‫אפשר‬ - ‫מרקל‬ ‫עץ‬ 17.1.1 .3‫ילדים‬ ‫שני‬ ‫יש‬ ,‫העלים‬ ‫מלבד‬ ,‫בעץ‬ ‫קודקוד‬ ‫לכל‬ ,‫)כלומר‬ ‫בינארי‬ ‫עץ‬ ‫הוא‬ (Merkle) ‫מרקל‬ ‫של‬ ‫הגיבוב‬ ‫עץ‬ ‫השירשור‬ ‫את‬ ‫מכיל‬ ‫מעליהן‬ ‫קודקוד‬ ‫וכל‬ ‫הגיבוב‬ ‫פונקציית‬ ‫של‬ ‫התוצאות‬ ‫אלו‬ ‫בעלים‬ ‫שמוחזק‬ ‫המידע‬ .‫שלו‬ ‫הקודקודים‬ ‫שני‬ ‫של‬ ‫חיבור‬ - ‫כלומר‬ ,‫שלהן‬ :‫כללי‬ ‫באופן‬ a α β :‫זאת‬ ‫נסמן‬ ‫שאנחנו‬ ‫כמו‬ ‫או‬ α + β ‫את‬ ‫בתוכו‬ ‫מכיל‬ a ‫קודקוד‬ .a + b ‫ופירושו‬ akb :‫מסומן‬ b-‫ו‬ a ‫של‬ ‫שירשור‬ .17.3 ‫רישום‬ ‫צורת‬ .‫שלהם‬ ‫השירשור‬ ‫את‬ ‫מכיל‬ ‫מעליהם‬ ‫קודקוד‬ ‫וכל‬ ‫הגיבוב‬ ‫פונקציית‬ ‫ערכי‬ ‫את‬ ‫ישנם‬ ‫בעלים‬ ‫מרקל‬ ‫בעץ‬ :‫למשל‬ .‫מורכבים‬ ‫יותר‬ ‫מרקל‬ ‫עצי‬ ‫ישנים‬ .‫שלנו‬ ‫במקרה‬ ‫רק‬ ‫זה‬3 31
  • 32. ‫דיגיטליות‬ ‫חתימות‬ ‫של‬ ‫מיוחדים‬ ‫סוגים‬ 17 o ‫להצפנה‬ ‫מבוא‬ = R a b H(X0) H(X1) H(X2) H(X3) ‫העץ‬ ‫שורש‬ ‫מלבד‬ ,‫לספק‬ ‫וצריכים‬ (H (X2) - ‫שלנו‬ ‫)במקרה‬ ‫אחד‬ ‫עלה‬ ‫דרך‬ ‫מצפינים‬ ‫שאנחנו‬ ‫הרעיון‬ .‫העץ‬ ‫לשורש‬ ‫ולהגיע‬ ‫הקודקודים‬ ‫את‬ ‫לסכום‬ ‫ניתן‬ ‫שבה‬ ‫הדרך‬ ‫את‬ .R ‫את‬ ‫לחשב‬ ‫ניתן‬ ‫שדרכם‬ ‫הקודקודים‬ + ‫עליון‬ ‫הכי‬ ‫הקודקוד‬ ,‫כלומר‬ ,‫העץ‬ ‫שורש‬ ‫הוא‬ ‫שנשלח‬ ‫המידע‬ ‫את‬ ‫לחבר‬ ‫שנוכל‬ ‫כך‬ ‫ע“י‬ ,‫אוטומטית‬ ‫לחשב‬ ‫נוכל‬ ‫כבר‬ b ‫)את‬ a ‫ואת‬ H (X3) :‫את‬ ‫זה‬ ‫שלנו‬ ‫במקרה‬ .‫אליו‬ ‫להגיע‬ ‫נוכל‬ ‫שירשורים‬ ‫דרך‬ ‫האם‬ ‫לראות‬ ‫נוכל‬ R ‫את‬ ‫לנו‬ ‫ובהינתן‬ ,(‫ואותו‬ H (X2) ‫עיוורת‬ ‫חתימה‬ 17.2 ‫אישור‬ ‫לצורך‬ ‫היא‬ ‫החתימה‬ ‫אבל‬ ,‫ההודעה‬ ‫את‬ ‫רואה‬ ‫אינו‬ ‫החותם‬ ‫שבה‬ ‫חתימה‬ ‫היא‬ ‫עיוורת‬ ‫חתימה‬ .‫בלבד‬ ‫ההצבעה‬ ‫על‬ ‫לחתום‬ ‫יצטרך‬ ‫מישהו‬ ,‫הצבעה‬ ‫זכות‬ ‫לכם‬ ‫יש‬ ‫אם‬ ,‫אלקטרונית‬ ‫הצבעה‬ ‫עושים‬ - ‫לדוגמה‬ ‫זאת‬ .‫הצבעתם‬ ‫מה‬ ‫לראות‬ ‫יוכל‬ ‫לא‬ ‫הוא‬ ‫אבל‬ ,(‫תקינה‬ ‫וההצבעה‬ ‫אתם‬ ‫אכן‬ ‫שזה‬ ‫לאשר‬ ‫)כדי‬ ‫שלכם‬ .‫עיוורת‬ ‫חתימה‬ (RSA ‫)מבוססת‬ ‫שאום‬ ‫של‬ ‫עיוורת‬ ‫חתימה‬ 17.2.1 .‫עיוורת‬ ‫בצורה‬ m ‫ההודעה‬ ‫על‬ ‫יחתום‬ ‫שבנימין‬ ‫רוצה‬ ‫אפרת‬ .‫שלו‬ ‫הפרטי‬ ‫המפתח‬ ‫זה‬ d-‫ו‬ ‫בנימין‬ ‫של‬ ‫הציבורי‬ ‫המפתח‬ ‫זה‬ - (n, e) :‫את‬ ‫ומחשבת‬ 1 k n ‫אקראי‬ k ‫בוחרת‬ ‫אליס‬ t = mke (mod n) .‫ההודעה‬ ‫את‬ ‫לקרוא‬ ‫יוכל‬ ‫לא‬ ‫שבנימין‬ ‫ככה‬ ,“‫ה“מעטפה‬ ‫בעצם‬ ‫זוהי‬ :(m ‫ההודעה‬ ‫מהי‬ ‫מושג‬ ‫לו‬ ‫)אין‬ t ‫על‬ ‫חוצם‬ ‫בנימין‬ td = (mke )d (mod n) :‫באמצעות‬ ‫החתימה‬ ‫את‬ ‫מחשבת‬ ‫היא‬ ‫אבל‬ ,d ‫מהו‬ ‫יודעת‬ ‫אינה‬ ‫כמובן‬ ‫אפרת‬ .(e · d ≡ 1 (mod n) :‫)תזכורת‬ s = td k = (mke)d k = md ked k = md (mod n) ‫לדעת‬ ‫יכול‬ ‫אינו‬ ‫הוא‬ ‫שני‬ ‫ומצד‬ ,(d ‫מהו‬ ‫יודע‬ ‫הוא‬ ‫)כי‬ ‫שלו‬ ‫אכן‬ ‫היא‬ ‫החתימה‬ ‫כי‬ ‫לראות‬ ‫יכול‬ ‫בנימין‬ ‫כעת‬ .m ‫מהי‬ ‫על‬ ‫לדעת‬ ‫יכול‬ ‫הוא‬ ‫ואין‬ ‫הודעות‬ ‫כמה‬ ‫על‬ ‫לחתום‬ ‫יכול‬ ‫הוא‬ .‫הודעות‬ ‫מספר‬ ‫לבי‬ ‫גם‬ ‫נכון‬ ‫זה‬ .17.4 ‫הערה‬ .‫לחתימה‬ ‫ההודעה‬ ‫בין‬ ‫קשר‬ ‫ואין‬ ‫היות‬ ,‫חתימה‬ ‫איזו‬ ‫עם‬ ‫חתם‬ ‫הוא‬ ‫הודעה‬ ‫איזו‬ 32
  • 33. ‫דיגיטליות‬ ‫חתימות‬ ‫של‬ ‫מיוחדים‬ ‫סוגים‬ 17 o ‫להצפנה‬ ‫מבוא‬ = ‫להכחישה‬ ‫ניתן‬ ‫שלא‬ ‫חתימה‬ 17.3 ‫הרעיון‬ 17.3.1 .‫להכחישה‬ ‫ניתן‬ ‫שאינה‬ ‫לחתימה‬ ‫שאום‬ ‫של‬ ‫האלגוריתם‬ :‫לשניים‬ ‫מחלוק‬ ‫כאן‬ ‫הרעיון‬ ‫אם‬ ‫לכן‬ .(‫אותה‬ ‫לאמת‬ ‫ניתן‬ ‫לא‬ ‫)אחרת‬ ‫החותם‬ ‫עם‬ ‫פעולה‬ ‫בשיתוף‬ ‫נעשית‬ ‫החתימה‬ ‫בדיקת‬ .1 ‫את‬ ‫לבדוק‬ ‫יכול‬ ‫היה‬ ‫מקור‬ ‫וכל‬ ‫מקורות‬ ‫לכמה‬ ‫אותה‬ ‫ולשלוח‬ ‫לשכפל‬ ‫ניתן‬ ‫היה‬ ‫רגילה‬ ‫בחותמת‬ ‫)במקורות‬ ‫יכול‬ ‫הוא‬ ‫אותה‬ ‫יאשרו‬ ‫מסוימים‬ ‫מקורות‬ ‫שרק‬ ‫רוצה‬ ‫שחתם‬ ‫זה‬ ‫אם‬ ‫כאן‬ ,‫אמינותה‬ .(‫פעולה‬ ‫ישתף‬ ‫לא‬ ‫הוא‬ ‫האחרים‬ ‫יכול‬ ‫אינו‬ ‫החותם‬ - ‫תקינה‬ ‫החתימה‬ ‫אם‬ .‫שלו‬ ‫החתימה‬ ‫את‬ ‫להכחיש‬ ‫יכול‬ ‫לא‬ ‫החותם‬ - ‫שני‬ ‫מצד‬ .2 .‫זאת‬ ‫להכחיש‬ ‫החתימה‬ ‫אופן‬ 17.3.2 .Z∗ p ‫של‬ ‫יוצר‬ g-‫ו‬ ‫ראשוני‬ ‫מספר‬ - p :‫לנו‬ ‫נתונים‬ .m ‫היא‬ ‫ההודעה‬ .1 x p − 1 :‫הינו‬ ‫אפרת‬ ‫של‬ ‫הפרטי‬ ‫המפתח‬ .z ≡ mx (mod p) :‫הבא‬ ‫באופן‬ ‫ההודעה‬ ‫על‬ ‫חותמת‬ ‫היא‬ :‫בנימין‬ ‫ע“י‬ ‫החתימה‬ ‫אישור‬ ‫פרטוקול‬ .c = magb (mod p) ‫את‬ ‫לאפרת‬ ‫ושולח‬ 1 a, b p − 1 :‫אקראיים‬ ‫מספרים‬ ‫שני‬ ‫בוחר‬ ‫בנימין‬ .a, b ‫מהם‬ ‫יודעת‬ ‫אינה‬ ‫ואפרת‬ x ‫מהו‬ ‫יודע‬ ‫אינו‬ ‫שבנימין‬ ‫הוא‬ ‫העניינים‬ ‫מצב‬ .s2 = sx 1 ‫ואת‬ s1 = cgq ‫את‬ ‫לבנימין‬ ‫ושולחת‬ 1 q p − 1 ‫אקראי‬ ‫מספר‬ ‫בוחרת‬ ‫אפרת‬ ‫שולחת‬ ‫שאפרת‬ ‫מה‬ ‫כל‬ :‫כלומר‬ - s1 ‫על‬ ‫מתבסס‬ s2-‫ו‬ c ‫על‬ ‫מתבסס‬ ‫לבנימין‬ ‫שולחת‬ ‫שאפרת‬ s1 ‫כי‬ ‫לב‬ ‫נשים‬ .‫לה‬ ‫שלח‬ ‫שהוא‬ c-‫ה‬ ‫על‬ ‫מתבסס‬ ‫לבנימין‬ :‫הגילוי‬ ‫שלב‬ .‫שלח‬ ‫אחד‬ ‫שכל‬ ‫המידע‬ ‫את‬ ‫ומאמתים‬ ‫שלהם‬ ‫הפרטיים‬ ‫המשתנים‬ ‫את‬ ‫חושפים‬ ‫ובנימין‬ ‫אפרת‬ ‫כעת‬ .a, b ‫את‬ ‫מגלה‬ ‫בנימין‬ c ‫את‬ ‫חישב‬ ‫שהוא‬ ‫בודקת‬ ‫היא‬ ‫מבנימין‬ a, b ‫את‬ ‫מקבלת‬ ‫שהיא‬ ‫)אחרי‬ c = magb ‫אכן‬ ‫כי‬ ‫בודקת‬ ‫אפרת‬ .(‫שצריך‬ ‫כמו‬ .q ‫את‬ ‫מגלה‬ ‫אפרת‬ .s2 = zayb+q ‫וכי‬ s1 = cgq ‫אכן‬ ‫כי‬ ‫בודק‬ ‫בנימין‬ c ‫במקום‬ ‫מציבים‬ ‫ואז‬ (cgq)x ‫את‬ sx 1 ‫במקום‬ ‫מציבים‬ ‫)אם‬ s2 = zayb+q ‫כי‬ ‫למסקנה‬ ‫להגיע‬ ‫ניתן‬ ‫אזי‬ a, b ‫עם‬ ‫מרמה‬ ‫לא‬ ‫בנימין‬ ‫אם‬ ‫אבל‬ - s2 = sx 1 ‫שאומנם‬ ‫שחשוב‬ ‫מה‬ ‫אבל‬ ,(...'‫וכו‬ magb ‫את‬ .(x-‫ב‬ ‫צורך‬ ‫)ללא‬ ‫בלבד‬ a, b, q ‫באמצעות‬ s2 ‫את‬ ‫לחשב‬ ‫יכול‬ ‫הוא‬ - q ‫את‬ ‫לו‬ ‫מגלה‬ ‫שאפרת‬ ‫אחרי‬ ....c ‫בשליחת‬ ‫רימה‬ ‫לא‬ ‫שהוא‬ ‫בתנאי‬ ‫זה‬ ‫כל‬ ‫אבל‬ ?‫הזאת‬ ‫בחתימה‬ ‫מיוחד‬ ‫מה‬ .‫שווה‬ ‫אינה‬ ‫החתימה‬ ‫אפרת‬ ‫של‬ ‫ההשתתפות‬ ‫שבלי‬ ‫לבחור‬ ‫יכול‬ ‫בנימין‬ ‫כי‬ ‫תקין‬ ‫לבאמת‬ ‫נחשב‬ ‫לא‬ ‫זה‬ ‫אזי‬ ,‫אחר‬ ‫למישהו‬ ‫התקשורת‬ ‫כל‬ ‫את‬ ‫מראה‬ ‫בנימין‬ ‫אם‬ .‫בעיות‬ ‫בלי‬ s1, s2 ‫את‬ ‫ולחשב‬ a, b, q ‫את‬ .(‫ידיעה‬ ‫באפס‬ ‫בהוכחה‬ ‫כמו‬ ‫)ממש‬ q ‫את‬ ‫בחרה‬ ‫ואפרת‬ a, b ‫את‬ ‫בחר‬ ‫שהוא‬ ‫שיודע‬ ‫היחיד‬ ‫הוא‬ ‫הכחשה‬ 17.3.3 .z 6≡ mx (mod p) :‫כלומר‬ ,‫תקינה‬ ‫אינה‬ ‫החתימה‬ ‫כי‬ ‫בנימין‬ ‫את‬ ‫לשכנע‬ ‫רוצה‬ ‫אפרת‬ ‫כי‬ ‫נניח‬ ‫אם‬ :‫האלגוריתם‬ ‫של‬ ‫האמינות‬ ‫את‬ ‫שמגדיר‬ k ‫איזשהו‬ ‫על‬ ‫מסכימים‬ ‫ובנימין‬ ‫שהיא‬ ‫הוא‬ ‫שקורה‬ ‫מה‬ . 1 k+1 :‫היא‬ ‫תקנית‬ ‫לא‬ ‫שהיא‬ ‫בנימין‬ ‫את‬ ‫לשכנע‬ ‫תצליח‬ ‫שאפרת‬ ‫הסיכוי‬ ‫אזי‬ ,‫תקנית‬ ‫החתימה‬ :‫הפרוטוקול‬ 33
  • 34. o ‫להצפנה‬ ‫מבוא‬ = :‫את‬ ‫לאפרת‬ ‫ושולח‬ ‫אקראי‬ ‫באופן‬ 1 b p-‫ו‬ 0 ≤ s ≤ k ‫בוחר‬ ‫בנימין‬ .1 v1 = ms gb v2 = zs yb :‫אזי‬ ,‫תקנית‬ ‫החתימה‬ ‫אם‬ .‫בחזקות‬ ‫מוסתרים‬ ‫והם‬ ‫הזה‬ ‫בשלב‬ ‫סודיים‬ b, s ‫המספרים‬ v2 = zs yb = (mx )s (gx )b = ms gb x = v1 (mod p) v1, v2 ‫והמספרים‬ ,k-‫ל‬ 0 ‫בין‬ ‫להיות‬ ‫חייב‬ (a ‫)במקום‬ s-‫ש‬ ‫רק‬ ,‫לבדיקה‬ ‫דומה‬ ‫מאוד‬ ‫)התהליך‬ .q = 0 ‫שכאן‬ ‫רק‬ s1, s2-‫ל‬ ‫מקבילים‬ :‫לקבל‬ ‫אמורה‬ ‫היא‬ ‫תקינה‬ ‫החתימה‬ ‫אם‬ .vx 1 v−1 2 (mod p) ‫ואת‬ vx 1 (mod p) ‫את‬ ‫מחשבת‬ ‫אפרת‬ .2 .(mx ≡ z (mod p)-‫ו‬ ‫)היות‬ .vx 1 v−1 2 ≡ 1 (mod p) i ∈ {1, . . . , p − 1} ‫עבור‬ mxz−1 i -‫ל‬ vx 1 v−1 2 ‫את‬ ‫להשוות‬ ‫יכולה‬ ‫אפרת‬ ,‫תקינה‬ ‫לא‬ ‫אכן‬ ‫החתימה‬ ‫אם‬ .3 :‫ש‬ ‫כך‬ i-‫ה‬ ‫את‬ ‫למצוא‬ ‫כדי‬ mx z−1 i = vx 1 v−1 2 .s ‫הערך‬ ‫יהיה‬ ‫וזה‬ mxz−1 i = :i ‫לכל‬ ‫כי‬ s ‫את‬ ‫למצוא‬ ‫תוכל‬ ‫לא‬ ‫היא‬ ,‫תקינה‬ ‫אכן‬ ‫החתימה‬ ‫אם‬ - ‫שני‬ ‫מצד‬ .3.1 ‫להכחיש‬ ‫רוצה‬ ‫היא‬ ‫שבו‬ ‫מצב‬ ‫)זה‬ .‫אקראי‬ i ‫לבחור‬ ‫חייבת‬ ‫היא‬ ‫ולכן‬ vx 1 v−1 2 = 1 (mod p) ‫תקינה‬ ‫אינה‬ ‫שלה‬ ‫החתימה‬ ‫כי‬ ‫להוכיח‬ ‫רוצה‬ ‫שהיא‬ ‫או‬ ,‫חתמה‬ ‫שהיא‬ ‫למרות‬ ‫החתימה‬ ‫את‬ .(‫תקינה‬ ‫שהיא‬ ‫למרות‬ .‫לבנימין‬ h (r, i) ‫ושולחת‬ ‫אקראי‬ r ‫בוחרת‬ ‫היא‬ :i-‫ל‬ ‫מתחייבת‬ ‫אפרת‬ .4 r ‫עם‬ ‫יחד‬ ‫גיבוב‬ ‫בפונקציית‬ “‫”מוסווה‬ i ‫את‬ ‫שולחת‬ ‫שהיא‬ ‫הסיבה‬ .‫כלשהי‬ ‫גיבוב‬ ‫פונקציית‬ ‫זאת‬ h ‫שבנימין‬ ‫למרות‬ ‫תקינה‬ ‫היא‬ ,‫)כלומר‬ ‫מרמה‬ ‫שבנימין‬ ‫למקרה‬ ‫שלה‬ i ‫את‬ ‫מגלה‬ ‫לא‬ ‫היא‬ ‫שככה‬ ‫היא‬ ‫מהו‬ ‫לגלות‬ ‫רוצה‬ ‫לא‬ ‫ואפרת‬ ‫זאת‬ ‫שמאשש‬ i ‫ישנו‬ ‫אזי‬ - ‫תקינה‬ ‫אינה‬ ‫החתימה‬ ‫אם‬ .(‫שלא‬ ‫טוען‬ .‫לבנימין‬ .b ‫את‬ ‫מגלה‬ ‫בנימין‬ .5 ‫איתו‬ ‫לחשב‬ ‫שניתן‬ ‫בודקת‬ ‫היא‬ ,‫כלומר‬ ,‫בנימין‬ ‫של‬ ‫הסודי‬ ‫המספר‬ ‫הוא‬ b ‫אכן‬ ‫כי‬ ‫בודקת‬ ‫אפרת‬ .6 .r ‫את‬ ‫לבנימין‬ ‫ושולחת‬ v1, v2 ‫את‬ ‫את‬ ‫יתן‬ ‫שהוא‬ ‫כך‬ i ‫ישנו‬ ‫אזי‬ - ‫תקינה‬ ‫אינה‬ ‫החתימה‬ ‫)אם‬ h (r, i) = h (r, s) :‫כי‬ ‫בודק‬ ‫בנימין‬ .7 .(‫עליו‬ ‫עלתה‬ ‫שאפרת‬ ‫סימן‬ ‫מתקיים‬ ‫השווין‬ ‫ואם‬ s ‫של‬ ‫כמו‬ ‫התוצאה‬ ‫אינה‬ ‫החתימה‬ ‫וכי‬ z 6≡ mx (mod p) ‫כי‬ ‫אומר‬ ‫זה‬ ‫אזי‬ h (r, i) = h (s, i)-‫ו‬ ‫מתקיים‬ 7 ‫חלק‬ ‫אכן‬ ‫אם‬ .‫תקינה‬ ‫שלה‬ ‫הסיכוי‬ ‫לכן‬ ,‫יתאים‬ i ‫כל‬ ‫אזי‬ ,(‫להכחישה‬ ‫רוצה‬ ‫אפרת‬ ‫זאת‬ ‫)ולמרות‬ ‫תקנית‬ ‫החתימה‬ ‫אכן‬ ‫אם‬ .0 ≤ s ≤ k-‫ו‬ ‫היות‬ 1 k+1 :‫הוא‬ s-‫ל‬ ‫שווה‬ ‫)שיהיה‬ ‫הנכון‬ i-‫ה‬ ‫את‬ ‫למצוא‬ :VI ‫חלק‬ u‫ריבועיים‬ ‫שורשים‬U 34