官术网_书友最值得收藏!

1.12 MISTY算法

MISTY是日本Mitsubishi電氣公司的Mitsuru Matsui于1997年提出的一個(gè)分組密碼,它采用遞歸結(jié)構(gòu),整個(gè)結(jié)構(gòu)分成了三個(gè)等級(jí),但加密算法的主框架仍采用平衡Feistel結(jié)構(gòu)。MISTY加密算法的分組長(zhǎng)度為64比特,密鑰長(zhǎng)度為128比特,迭代層數(shù)是可變的,但要求必須是4的整數(shù)倍。MISTY加密算法采用能有效抵御差分攻擊和線性攻擊的理論,具有在各種硬件平臺(tái)(如ATM網(wǎng)絡(luò))和軟件環(huán)境(如IC卡)中高速運(yùn)行的能力,是第一個(gè)被證明能有效抵御差分攻擊和線性攻擊的實(shí)用分組密碼。

MISTY加密算法的遞歸結(jié)構(gòu)如下:第一級(jí)是n層的主框架,每一層包含加亂(如按位異或操作⊕、按位或操作∪、按位與操作∩)、左右兩邊異或,以及層函數(shù)FO變換。第一級(jí)的層函數(shù)FO是一個(gè)由加亂(⊕)、左右兩邊異或和子函數(shù)FI變換構(gòu)成的三層迭代過(guò)程,這個(gè)過(guò)程就是第二級(jí)。第二級(jí)的層函數(shù)FI又是一個(gè)由加亂(⊕)、左右兩邊擴(kuò)展和壓縮后異或,以及表 S9S7代替構(gòu)成的,這個(gè)過(guò)程是第三級(jí)。從第一級(jí)到第三級(jí),雖然結(jié)構(gòu)逐漸簡(jiǎn)單,但運(yùn)算次數(shù)比較繁復(fù),每層要加亂9次(1次∪運(yùn)算、1次∩運(yùn)算、7次⊕運(yùn)算),代替9次(6次S9代替、3次S7代替),左右兩半進(jìn)行16次⊕運(yùn)算,但是這種遞歸結(jié)構(gòu)能通過(guò)對(duì)簡(jiǎn)單函數(shù)的分析非常容易地估計(jì)出算法的安全程度。

MISTY加密算法有MISTY1加密算法和MISTY2加密算法兩種,它們具有非常相似的結(jié)構(gòu)。對(duì)于相同層數(shù)的MISTY1加密算法和MISTY2加密算法,如果不考慮并行運(yùn)算,則二者在總的算法復(fù)雜度上是完全相同的;如果考慮并行計(jì)算,則二者的運(yùn)行時(shí)間就有差異,因?yàn)镸ISTY1加密算法能同時(shí)執(zhí)行2個(gè)FI函數(shù),而MISTY2加密算法能同時(shí)執(zhí)行4個(gè)FI函數(shù)。

MISTY1加密算法和MISTY2加密算法的結(jié)構(gòu)如圖1.12.1所示。

圖1.12.1(a)和圖1.12.1(b)分別給出了MISTY1加密算法和MISTY2加密算法的結(jié)構(gòu),在遞歸結(jié)構(gòu)中的第一級(jí),64比特的輸入被均分成32比特的左右兩個(gè)部分,經(jīng)過(guò)異或運(yùn)算,以及層函數(shù)FOi(1≤in)和FLi(1≤in+2)轉(zhuǎn)換成64比特密文。FOi使用64比特的子密鑰KOi和48比特的子密鑰KIi, FLi使用32比特的子密鑰KLi

圖1.12.1 MISTY1加密算法和MISTY2加密算法的結(jié)構(gòu)

圖1.12.2(a)是層函數(shù)FOi的結(jié)構(gòu),即遞歸結(jié)構(gòu)中的第二級(jí)。32比特的輸入被均分成16比特的左右兩部分,經(jīng)過(guò)⊕運(yùn)算,以及層函數(shù)FIij(1≤j≤3)轉(zhuǎn)換成32比特的輸出。圖中的KOij(1≤j≤4)和KIij(1≤j≤3)分別是子密鑰KOi和KIi的從左邊數(shù)的第j個(gè)16比特。

圖1.12.2(b)是層函數(shù)FIij的結(jié)構(gòu),即遞歸結(jié)構(gòu)中的第三級(jí),16比特的輸入被分成9比特和7比特的左右兩部分,經(jīng)過(guò)⊕運(yùn)算、一個(gè)長(zhǎng)度為27S7代替和一個(gè)長(zhǎng)度為29S9代替后轉(zhuǎn)換成16比特的輸出。在第一和第三個(gè)⊕運(yùn)算中,右邊的7比特在高位添加2個(gè)“0”擴(kuò)展成9比特,在第二個(gè)⊕運(yùn)算中,右邊的9比特去掉高位的2比特后被截短成7比特。圖1.12.2(b)中的KIij1和KIij2分別是子密鑰KIij的左邊7比特和右邊9比特。

圖1.12.2 MISTY1加密算法和MISTY2加密算法層函數(shù)的結(jié)構(gòu)

圖1.12.3是層函數(shù)FLi的結(jié)構(gòu)。32比特輸入被均分成16比特的左右兩部分,經(jīng)過(guò)⊕操作、與操作(∩)、或操作(∪)后變成32比特的輸出。KLij(1≤j≤2)是KLi從左邊數(shù)第j個(gè)16比特。

圖1.12.3 層函數(shù)FLi結(jié)構(gòu)

MISTY的子密鑰生成過(guò)程利用了前面介紹的層函數(shù)FI,記Ki為輸入密鑰K的從左邊數(shù)的第i個(gè)16比特,分別以Ki作為層函數(shù)FIi的輸入,以Ki+1作為層函數(shù)FI的密鑰,F(xiàn)Ii的16比特輸出記為Ri,其中1≤i≤8,則子密鑰與KiRi的對(duì)應(yīng)關(guān)系如下。

KOi1KOi2KOi3KOi4KIi1KIi2KIi3KLi1KLi2

KiKi+2Ki+7Ki+4Ri+5Ri+1Ri+3K(i+1)/2R(i+1)/2+6i為奇數(shù))

Ri/2+2Ki/2+4i為偶數(shù))

上面下角中的加法表示模8加。

MISTY加密算法中使用的S7S9如下:

S7

27   50   51   90   59   16   23   84   91   26  114  115  107   44  102   73
31   36   19  108   55   46   63   74   93   15   64   86   37   81   28    4
11   70   32   13  123   53   68   66   43   30   65   20   75  121   21  111
14   85    9   54  116   12  103   83   40   10  126   56    2    7   96   41
25   18  101   47   48   57    8  104   95  120   42   76  100   69  117   61
89   72    3   87  124   79   98   60   29   33   94   39  106  112   77   58
  1  109  110   99   24  119   35    5   38  118    0   49   45  122  127   97
80   34   17    6   71   22   82   78  113   62  105   67   52   92   88  125

S9

451  203  339  415  483  233  251   53  385  185  279  491  307    9   45  211
199  330   55  126  235  356  403  472  163  286   85   44   29  418  355  280
331  338  466   15   43   48  314  229  273  312  398   99  227  200  500   27
  1  157  248  416  365  499   28  326  125  209  130  490  387  301  244  414
467  221  482  296  480  236   89  145   17  303   38  220  176  396  271  503
231  364  182  249  216  337  257  332  259  184  340  299  430   23  113   12
  71   88  127  420  308  297  132  349  413  434  419   72  124   81  458   35
317  423  357   59   66  218  402  206  193  107  159  497  300  388  250  406
481  361  381   49  384  266  148  474  390  318  284   96  373  463  103  281
101  104  153  336    8    7  380  183   36   25  222  295  219  228  425   82
265  144  412  449   40  435  309  362  374  223  485  392  197  366  478  433
195  479   54  238  494  240  147   73  154  438  105  129  293   11   94  180
329  455  372   62  315  439  142  454  174   16  149  495   78  242  509  133
253  246  160  367  131  138  342  155  316  263  359  152  464  489    3  510
189  290  137  210  399   18   51  106  322  237  368  283  226  335  344  305
327   93  275  461  121  353  421  377  158  436  204   34  306   26  232    4
391  493  407   57  447  471   39  395  198  156  208  334  108   52  498  110
202   37  186  401  254   19  262   47  429  370  475  192  267  470  245  492
269  118  276  427  117  268  484  345   84  287   75  196  446  247   41  164
  14  496  119   77  378  134  139  179  369  191  270  260  151  347  352  360
215  187  102  462  252  146  453  111   22   74  161  313  175  241  400   10
426  323  379   86  397  358  212  507  333  404  410  135  504  291  167  440
321   60  505  320   42  341  282  417  408  213  294  431   97  302  343  476
114  394  170  150  277  239   69  123  141  325   83   95  376  178   46   32
469   63  457  487  428   68   56   20  177  363  171  181   90  386  456  468
  24  375  100  207  109  256  409  304  346    5  288  443  445  224   79  214
319  452  298   21    6  255  411  166   67  136   80  351  488  289  115  382
188  194  201  371  393  501  116  460  486  424  405   31   65   13  442   50
  61  465  128  168   87  441  354  328  217  261   98  122   33  511  274  264
448  169  285  432  422  205  243   92  258   91  473  324  502  173  165   58
459  310  383   70  225   30  477  230  311  506  389  140  143   64  437  190
120    0  172  272  350  292    2  444  162  234  112  508  278  348   76  450
主站蜘蛛池模板: 双江| 蒲城县| 新绛县| 贵港市| 广东省| 滦平县| 阜平县| 吉首市| 南开区| 卢氏县| 甘孜| 安陆市| 丰镇市| 盐池县| 长沙县| 富阳市| 连平县| 密山市| 恩施市| 肥乡县| 江门市| 美姑县| 图木舒克市| 南岸区| 盘锦市| 奉新县| 长垣县| 红原县| 江川县| 雷波县| 炉霍县| 蒙阴县| 镇康县| 平山县| 东丽区| 八宿县| 小金县| 宁远县| 商河县| 汾阳市| 绥棱县|