עמוד הבית > DES > הנספח

הנספח

פונקציות פרימיטיביות לאלגוריתם להצפנת נתונים ( DES ):

בחירה של פונקציות פרימיטיביות KS, S1,...,S8 ו-P קריטית לחוזק ההצפנה המתקבל מהאלגוריתם. להלן מפורטות קבוצת פונקציות המומלצת, המתארת את S1,...,S8 ו-P באותה צורה שמתוארת באלגוריתם. בשביל הפרוש של הטבלאות המתארות את הפונקציות, ראה דיון בגוף האלגוריתם.

פונקציות פרימיטיביות  S1,S2,..S8  הן:

S1                       

    14   4 13   1  2  15 11   8  3  10  6  12  5   9  0   7
     O  15  7   4 14   2 13   1 10   6 12  11  9   5  3   8
     4   1 14   8 13   6  2  11 15  12  9   7  3  10  5   0
    15  12  8   2  4   9  1   7  5  11  3  14 10   O  6  13

                                    S2                                    

    15   1  8  14  6  11  3   4  9   7  2  13 12   O  5  10
     3  13  4   7 15   2  8  14 12   0  1  10  6   9 11   5
     0  14  7  11 10   4 13   1  5   8 12   6  9   3  2  15
    13   8 10   1  3  15  4   2 11   6  7  12  0   5 14   9

                                    S3                                    

    10   0  9  14  6   3 15   5  1  13 12   7 11   4  2   8
    13   7  O   9  3   4  6  10  2   8  5  14 12  11 15   1
    13   6  4   9  8  15  3   0 11   1  2  12  5  10 14   7
     1  10 13   0  6   9  8   7  4  15 14   3 11   5  2  12

                                    S4                                   

     7  13 14   3  0   6  9  10  1   2  8   5 11  12  4  15
    13   8 11   5  6  15  O   3  4   7  2  12  1  10 14   9
    10   6  9   0 12  11  7  13 15   1  3  14  5   2  8   4
     3  15  O   6 10   1 13   8  9   4  5  11 12   7  2  14


                                    S5                                  

     2  12  4   1  7  10 11   6  8   5  3  15 13   O 14   9
    14  11  2  12  4   7 13   1  5   0 15  10  3   9  8   6
     4   2  1  11 10  13  7   8 15   9 12   5  6   3  O  14
    11   8 12   7  1  14  2  13  6  15  O   9 10   4  5   3


                                    S6                                  

    12   1 10  15  9   2  6   8  O  13  3   4 14   7  5  11
    10  15  4   2  7  12  9   5  6   1 13  14  O  11  3   8
     9  14 15   5  2   8 12   3  7   0  4  10  1  13 11   6
     4   3  2  12  9   5 15  10 11  14  1   7  6   0  8  13

                                    S7                                 

     4  11  2  14 15   0  8  13  3  12  9   7  5  10  6   1
    13   0 11   7  4   9  1  10 14   3  5  12  2  15  8   6
     1   4 11  13 12   3  7  14 10  15  6   8  0   5  9   2
     6  11 13   8  1   4 10   7  9   5  0  15 14   2  3  12


                                    S8                                 

    13   2  8   4  6  15 11   1 10   9  3  14  5   0 12   7 
     1  15 13   8 10   3  7   4 12   5  6  11  0  14  9   2 
     7  11  4   1  9  12 14   2  0   6 10  13 15   3  5   8 
     2   1 14   7  4  10  8  13 15  12  9   0  3   5  6  11

 

והפונקציה הפרימיטיבית 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

נזכיר כי Kn עבור n בין 1 ל-16 הוא גוש בגודל 48 סיביות ב (2) של האלגוריתם. לכן, כדי לתאר KS מספיק לתאר את החישובים של Kn מ-KEY עבור n=1,2,...,16. החישוב הזה מתואר באיור 3. כדי להשלים את הגדרת KS מספיק לתאר שתי בחירות שעברו תמורה, בנוסף לתזמון של הזזות שמאלה. סיבית אחת בכל בית בעל 8 סיביות של KEY יכולה לשמש לגילוי שגיאות ביצירת המפתחות, תפוצה ואחסונה. סיביות  8,...,16,...,64 משמשות כדי להבטיח שכל בית הוא זוגי או אי-זוגי.

בחירה אחת שעבורה תמורה נקבעת ע"י הטבלה הבאה:

PC-1                 


              57   49    41   33    25    17    9 
               1   58    50   42    34    26   18 
              10    2    59   51    43    35   27 
              19   11     3   60    52    44   36 

              63   55    47   39    31    23   15 
               7   62    54   46    38    30   22 
              14    6    61   53    45    37   29 
              21   13     5   28    20    12    4

הטבלה חולקה לשני חלקים, כאשר החלק הראשון קובע איך הסיביות של C0 נבחרות, והחלק השני קובע איך הסיביות של D0 נבחרות. הסיביות של KEY ממוספרות מ-1 עד 64. הסיביות של C0 הן הסיביות 41...44, 49, 57 ו-36 של KEY בהתאמה, כאשר הסיביות של D0 הן הסיביות 12...43, 55, 63 ו-4 של KEY בהתאמה.

כאשר  C0 ו-D0 מוגדרות, אנו מגדירים עכשיו איך הגושים  Cn ו-Cn נוצרים מהגושים Cn-1 ו-Dn-1 בהתאמה מ-n=1...16. זה מבוצע ע"י דביקות במפרט הבא של הזזות שמאלה של גושים בודדים:


 

              איור 3. חישוב מפרט מפתח.

מספר הזזות שמאלה               מספרי מחזור

        1                                            1               
        2                                            1               
        3                                            2               
        4                                            2               
        5                                            2               
        6                                            2               
        7                                            2               
        8                                            2               
        9                                            1               
       10                                            2               
       11                                            2               
       12                                            2               
       13                                            2               
       14                                            2               
       15                                            2               
       16                                            1               
 

לדוגמא, C3 ו-D3 נוצרים מ-C2 ו-D2 בהתאמה, ע"י שתי הזזות שמאלה. ו-C16 ו-D16 נוצרים ע"י C15 ו-D15 בהתאמה ע"י הזזה אחת שמאלה. בכל מקרה, בהזזה אחת שמאלה הכוונה היא הזזה של הסיביות מקום אחד שמאלה, כך שאחרי הזזה אחת שמאלה הסיביות שהיו ב-28 המקומות הן הסיביות שהיו מקודם במקום 1 ,28,...,2,3.

בחירה 2 שעברה תמורה שנקבעת ע"י הטבלה הבאה:

PC-2                


                 14   17    11   24     1     5 
                  3   28    15    6    21    10 
                 23   19    12    4    26     8 
                 16    7    27   20    13     2 
                 41   52    31   37    47    55 
                 30   40    51   45    33    48 
                 44   49    39   56    34    53 
                 46   42    50   36    29    32

לכן הסיבית הראשונה של Kn  היא הסיבית ה-14 של CnDn , הסיבית השנייה היא הסיבית ה-17,  וכן האלה, כאשר הסיבית ה-47 היא הסיבית ה-29  והסיבית ה-48 היא הסיבית ה-32.

 

 לעמוד הקודם

לעמוד הבא
 
 

| מבוא | Blowfish | DES | Rijndael | Skipjack | Twofish |

| עמוד הבית | אודות | מפת האתר | מונחון | ביבליוגרפיה |

 

  ©איתן 2002. כל הזכויות שמורות למערכת המידע איתן.