תמורה IP-1
המיושמת על גוש קדם הפלט היא ההפך של תמורה הסופית IP
המיושמת על הקלט. יתר על כן, מ-(1)
מקבלים:
(4) R = L'
L = R' (+) f(L',K)
|
כתוצאה מכך,
כדי לפענח צריך
ליישם בדיוק את אותו האלגוריתם לגוש הודעה מוצפן, וצריך לדאוג
לכך שבכל מחזור של חישובים משתמשים באותו גוש של סיביות מפתח K
שהשתמשו בו בזמן הצפנת הגוש. בעזרת סימון החלק הקודם אפשר לבטא
זאת בעזרת המשוואה:
(5) Rn-1 = Ln
Ln-1 = Rn (+) f(Ln,Kn)
|
כאשר עכשיו R16L16
זה גוש הקלט שעבר תמורה בשביל חישובי הפענוח וה-L0
ו-R0
זה גוש קדם הפלט. זאת אומרת, לחישובי הפענוח עם R16L16
בתור קלט
שעבר תמורה משתמשים
ב-K16
במחזור ראשון, K15 במחזור השני וכו' כאשר ב-K1
משתמשים במחזור ה-16.
פונקצית הצפנה f
סקיצה של החישובים
של (f(R,K נתונה באיור 2:
f(R,K) איור 2 - חישובים של
נסמן ב-E
פונקציה שלוקחת גוש בגודל 32 סיביות בתור קלט ומפיקה גוש בגודל
48 סיביות בתור פלט. נגדיר את E בצורה
כזאת ש-48 הסיביות של הפלט שלה רשומות כ-8 גושים כל אחד בגודל
6 סיביות, שמקבלים בעזרת בחירה של סיביות הקלט בסדר בהתאם לטבלה
הבאה:
טבלת בחירת הסיביות ל-E
32
1
2 3
4
5
4 5
6 7
8
9
8 9
10 11 12
13
12 13 14
15 16 17
16 17 18
19 20 21
20 21 22
23 24 25
24 25 26
27 28 29
28 29 30
31 32
1 |
כלומר, שלוש הסיביות
הראשונות של(E(R
הן הסיביות במקומות 32,1,2 של R כאשר שתי
הסיביות האחרונות של (E(R
הן הסיביות במקומות 32 ו-1.
כל אחת מפונקציות הבחירה ייחודיות
S1,S2,.....S8
לוקחות גוש בגודל 6 סיביות בתור קלט ומפיקות גוש בגודל 4 סיביות
בתור פלט וכפי שמתואר בעזרת הטבלה שמכילה את S1
המומלצת:
S1
מספר
עמודה
|
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
מספר
שורה |
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 |
0 |
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 |
1 |
4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 |
2 |
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 |
3 |
אם S1
זאת הפונקציה המוגדרת בעזרת טבלה זאת ו-B
הוא גוש בגודל 6 סיביות אז (S1(B
מוגדר באופן הבא: הסיבית הראשונה והאחרונה של
B מיוצגת בבסיס 2 מספר בטווח 0-3. נסמן מספר זה ב-i.
הארבע סיביות האמצעיות של B
מייצגות מספר בטווח 0-15. נסמן מספר זה ב-j.
תסתכלו בטבלה על המספר בשורה i ועמודה
j. זה מספר בין 0 ל-15 והוא מוצג בצורה
ייחודית ע"י גוש בגודל 4 סיביות. גוש זה הוא פלט של (S1(B
בשביל קלט B. לדוגמא, בשביל קלט 011011
השורה היא 01, כלומר שורה 1, והעמודה נקבעת ע"י 1101, שזאת
עמודה 13. בשורה 1 עמודה 13 מופיע 5 - זה אומר שהפלט הוא 0101.
פונקציות בחירה S1,S2,..S8
של הל האלגוריתם מופיעות בנספח.
פונקצית תמורה P
מפיקה פלט בגודל 32 סיביות מ- 32 סיביות של קלט ע"י
תמורה של סיביות של גוש הקלט. פונקציה זו מוגדרת ע"י הטבלה
הבאה:
P
16 7 20 21
29 12 28 17
1 15 23 26
5 18 31 10
2 8 24 14
32 27 3 9
19 13 30 6
22 11 4 25
את הפלט של (P(L
בשביל פונקצית P המוגדרת ע"י הטבלה
מקבלים מקלט L ע"י לקיחת הסיבית ה-16 של L בתור סיבית ראשונה של
(P(L,
את הסיבית השביעית בתור הסיבית השנייה של
(P(L,
וכו' עד הסיבית ה-25 של L שהיא
הסיבית ה- 32 של (P(L.
פונקצית התמורה P של האלגוריתם
מופיעה בנספח.
כעת יהיו S1,S2,..S8
שמונה פונקציות בחירה שונות, ותהי P
פונקצית תמורה ותהי E פונקציה
המוגדרת לעיל.
כדי להגדיר (f(R,K
אנו קודם נגדיר B1,B2,..B8
כגושים בגודל 6 סיביות כל אחד שמתקיים:
ואז מגדירים את הגוש של (f(R,K
כך:
(7)
P(S1(B1)S2(B2)...S8(B8)) |
לכן (K(+)E(R בהתחלה מחולק ל-8 גושים
כמו שהראינו ב (6). אז כל Bi
מתקבל כפלט של Si
ו-8 הגושים (S1(B1)S2(B2)...S8(B8 של 4 סיביות כל אחד מאוחדים לגוש אחד של 32 סיביות, שהוא הקלט
של P. אז הפלט (7) הוא הפלט של הפונקציה
f עבור הקלטים R ו-K.
|