Schneider B.Twofish.A 128-bit block cipher.1998
.pdf
-!# 2, + + + +2 + 3 = > 2 + -!# 2 #= >$ ** = > 2 + + + + +2 #= > = > , 2= > + * = > + *
, 9 * @9 4!A + $ " $$ " *
2 = > , * " * 2 = >
9 $ $ + 2 + K = >$ + * ++ 2 $ + * + 2 , *2
54 - |
1 2 |
|
= > |
2 |
|
= > K |
= > K |
|
2 2 2 : 2 + + *#() 2() 2 * () 1 2+
+ + # #$* &' *$ * &' * 2 2 #$+ + 7 2 :+ 27 2 + + + * #$ , "2 + #$I + * 2#$ * * ,# #$+ 2 2 , 2 $L$ 2
2 2 2 ? 2 ##$ *2
!. %. @ 13 = : 213 4
, B 2 #$ 1-!# + B 2 2 "# 7$I $ +# * #2 * + + 7# B 2 + @994% 0(4% 0('4. , A + -!#+ B 2
, 2 # B 2 #$ *
1 2 " " # B 2 # * 2 * # B 2 + " " :$ < + +
* + / = " " >K = "%-> ) 5 -" ,
* + $ * K = "%-> ) 5 !-4I
$ < + + # * #) 5 .! :$ 4- K 5 .! "%- +/# 2 + + + +" 4- 2 -!#+ " + " =< * + * +
" + > , 7 #
# B 2 #$ |
# |
||||
2 7 W |
|||||
#$ I |
W 5 |
3 |
|||
K |
|
"%% |
|
2 |
|
2 |
#< 7 |
K |
|||
*$ *$* * 2 #< 7 , 2 5 K "%-I( = " "%-> 5 ./ ( = 5 "%-> 5 5"( = - "%-> 5 555" + #+ * 5 . "%-I $# * ( = 5 "%-> 5 4.% ( =- "%-> 5! ( = "" "%-> 5 555"
K ( I $ , E (' ? " -) .$' , E ( "$ 1K 3 5
%
2 # B 2 #$ , "# # 2 7# 7, + 4. %P +2 "$I + !P + " $I + ++ 5 5"P + 2" $ =1+ 7 * + $< + I2 B $* + * 2 >
$ 2 # B 2 #$ + :+ "# 7 #22 2 B 2 #$$ 1 +#2 + *2 "# ) 2-% 7 "# 7 #= + + * 2 > # #$ =* 2$ + + *# +# # 2 ** >7 " $ + * B = ./P> + I + "P + 2" $I ++ + 5 5"P +2 "$
2 + B 2 #$ 7* 2 + * 2 *+ = > *7
, |
# |
2 * 2 7 * |
|
= > #2 * 7+ ) 22 * + 2 , 7 *
%"
: 2 + # * + B +
* |
, 2 $ |
|
E C* D 0 " |
" &' *$ ** I 2 $ & 2 + + # #$ *Æ ++ + #$ * ##$ 2 + + * = + 2 < " >
2 2 2- + : 2 2* + 7: 2 2 2 # #* 2* Æ I7
+ + + + +2 K @ 0 +*&
) 2 2 * #+ * + * *Æ 2 ** +
1 2 2 + #2 + +2, 2 ) 22 * * + * #+ : + * ** +#*
2 ** + * * * * * * = @) 4-A + * + > #* **?+ * #+ 2 ) 2+ C* # * D ? 2 # # * @9 34-A
2 +# * + @0 ./A * * @').- 8/% : 4!A # *E ** # * * + * G$#*
$ $#2' = # # *#? $* * #$* * > ? B "$L$ @ A ? 2 #-! + $L$ #+* $H + #H 2 7 # 2 * + " , 2 2 ? + #** *+ *2 * + 2
% & '
& *2 * + 0# @& 4!A 0 % @O 4.A ** 2** + +) 2 *+ + C # D + +* : + * # 2 * + * + ?* * #+ ? *$* 3# " 7 #: -%+ *+ 2
, * 4 2 + * * #+ * ( *
(
," #
# *
9 9 1 9 @ |
9 /5A , |
+ * |
|
** * = @ 4-A +* + 2 * + # > 1 9# 9#9 #* *# # + *
* + *
( ! & "
* ** ++ ' 2 #& @, /!A
6 K 6 - =6 >
+ 2 @( 4 A , 2+ + # * I 2 < * + # ++ # + *"/# < * + + ' 2 #& #+ #$ "
# < 2 ? 2+ ' 2 # & *
# . " ,
# +* $ # ? @9 A 2 E* 2 + #
' 1
* 2 # * * + ## * #@( 4! 8 4/
A
/ $ ) ( $ " ? ( $ (-( )-? ? -1 B % 9, +5
%
* |
3 |
, = > |
0 |
|
L9 |
|
2 |
"/ |
- |
/ |
/ |
9 |
2 |
-! |
- |
/ |
4 / |
? |
"/ |
"/ |
/ |
/ |
"5 |
0 %# "L- |
2 |
-! |
" |
- |
"! / |
# "/ |
"/ |
-! |
- |
/ |
"4 % |
' |
%- |
-! |
- |
/ |
! |
|
"/ 4" "%- |
"/ |
" |
" |
!% |
0 = > |
"/ |
-! |
/ |
/ |
%" |
3# " |
-! "/ |
-! |
" |
- |
-% |
:' |
"/ |
-! |
/ |
/ |
.! |
#' |
" |
-! |
!/ |
"! |
- |
4 ( + * + 7 = ( *>
* # % &
2 + $* <+ +"%- ,$ I $
$2 * *
$ . 6 :
+ +"/ , *$ < 2 2, $ < I * + *"%- % "
- '
2 - ,$ *+ + ? , 2 * + , 2 + * +
2 & % & 9 ; 8 "
%
, + * 2 #+ $ * + # 2 * + * #* * +
%!
+ * +* 7 + *7 2 + : *+ * + + * 2 * $2, $ * # * + * + *
1 + + * * +
+ * 2
0 # 7 #
+ *+ * *
+ * *+ "/# # "/# * 2I
+ * * "%-# *
|
2 2 |
+ + |
|
( + *
= > K
= > K =- =5> - = >> = > K - =">
= > K - = >
= > K / + - =!>
# 2* $$
" + *
= > 9 + * ++
= > +# #E -!#
= > 9 + E #$ 21* + ++ * "0 *$ + * 7 +
+
+ * + *
* * +
* ) # 2 2 #
* 7 ?#
#$ +? + 8 #$? 2 + 2 + * 2 + #$ +
2 -!# 2 0 #+ 2* -!# 2 ## * *+ 2 *
* / , + / 0 #* + *2 #* ? 2 +7 + * :*
? + * 2 ++ 2 $ + 2 #* 2 #$ 9
+ 2 + 2 +
+ + *# "/ + "/#* + #$* +2 " + #
2 * 2++ + * ) 2 * + # I *
, 2* : # + * * # ? 2 2
.!. ,
5; + / # ,+ 7 Æ + < + * 2 + 2 E + * I #$ ) 2 * I #$ $ * # + * 2 * #* I* + =* * >
%%
, - * 1 , |
|
? |
|
#$ #
2 |
? |
|||||
|
|
K |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
K |
|
|
|
|
|
|
|
||
:+ |
2 |
|||||
K K Æ
# Æ $
7 2 *
* + # I * + + * 2 + + *=+ "/# > " ,$ " + *
) *
+ * * #9 * + + "/# , 2 7 + 9 * 2 , 2 B 2 + #* * Æ * * * *"# = 2 * > 2 + 9 = > +
: 2 9+ "#*7 ) 2 9 #+ * 2 # * * * 1 29 # "# + #* * () =+ * 0> 2 * 2
0 ? 2+ ,+ 2 + ( * 3 * * * 7 2 < *
, /# #/# #$ &' *$ =+ * ? ? #$ #$> + * /# # "# #$ * ++ B 2 Æ "#= * #$ &' *$ + /# # "# #$> #* G *&' *$ 2 *2*$E Æ 2 = ? >
2 + # * G$ , G$#
%-
* * 2 + * # * + $* 7 + "# * #/# * *
*#*2 * #&' * # 2 #() ,+ "#2 = * C D>+*$
, # +* 2 * + + # * + + * #
, B + # #$ 6 # + * * + #* * ## * 9+ + ** 2 9 ++ + < + E #$+ * #$ 2 2 7 # ?
2 * ,* 9 + 3 # * *+ * * * *+ *) 2 ** 2#2 # ##+ *$ * * * + * 0 * + * 2 + = E* + $ + 2 2 > * 2 + + * *
, * " "2 * #,* +% " + $ #: * + * * * * ?
< , # < < <* + * , E< I E
+ &
, 2 + ' H *#H+ **
' 2
* * *I7 : #+ +=Æ #9 >I *
# #$ * * # #+ * * ##$ + Æ
: *** #+< "/#4"# "%-#
9 + 7 #
' * *2 * #
+ * 2 + #) 2 * <
%.
* + * 7 * +
+ 2 :+ *% R 44/
<
, 2 * + : Æ * * *+ + * 7 * + 2 + * * H + H* # + #+ * #+ # * * #
, * + * #** , 2 #
, * + +# #H 7 H2 :+
+ + + * +* + ! 2 " 2 # #"%5( * ( * ( ( * ::
, 2 $, 2 &' *$ $ * "" * * * ? #
* : 2* 2 # < * 2 *
, 2$ #$ 2 2 + # * * H "55 + ./55( * ( H *#? $ #$* + 2
, * 2*$ + 7
' 2 $#+ * + B , + $ +
,
(0 & *# * + + 9 # * = * > 2 +
|
|
: |
+ |
& * R * 0 +2 # * + ? *#+* ) L+ :
*
7)89 : |
; ) < |
8 # = |
+ |
|
|
+ ! 8 5 4 |
|||
|
8<); >?@A#B |
|||
|
|
|||
|
# ! C # 99 # 1D - |
|||
7)89 : |
; ) < 8 # = |
) |
||
|
A ( #B |
|||
|
|
|||
|
# ! C # 99 # 9D9, |
|||
7) 9, : |
5 ) # =5 ! |
5 |
||
|
E 5)! |
3 + #B |
||
|
# # 1# |
|||
|
A 99,# , D-$ |
|
|
|
7) 9, : |
5 ) |
# =3<!-#B |
||
|
!" |
|||
|
## |
! 5 |
! # 5 |
|
E # 99,# -D ,
F
7)%2+9 : % ) *# 3 3 % # 2 # ) + # =) 4 ) A 8 5 ) #B
$" ## G E # 99 # D$
7) 9 : ) # = #B E # 9 ) 99
7)5 2 ) ! < # =3 ! " 5 ; 3 . 5 #B % &
'& #
# ; # ? # D 991#D 9-
78)H9 : |
< |
8 # ; ) # > H |
|||||
|
# =! 4 |
) A 8 5 + |
|||||
|
#B ( |
||||||
|
# ! |
||||||
|
C # 99 # |
D |
1 |
|
|||
78891: |
? |
8 ) |
< |
8 # |
=3 . |
||
|
5 > #B ) |
||||||
|
* #+ , % # |
||||||
|
! C # 99$# ,D 99 |
||||||
7889$: |
< |
8 |
|
) |
8 # |
=( |
|
|
! 3<! E <" ( #B |
||||||
|
) * #+ - |
||||||
|
# ! C # 99$# 19 D |
||||||
|
$ |
|
|
|
|
|
|
7889 : |
< 8 |
) 8 # =) ? |
|||||
|
3 I ) 3<!#B ) |
||||||
|
* .#, #+ - |
||||||
|
# ! C # 99 # $D$, |
||||||
7889 : |
E |
8 |
|
|
! 8 # |
=) 8 |
|
H ! 3<! > 5 #B
$ # 99 # $ D$
785H9 : 2 8 # ; 5 # ( H * # =H ( 2 ) #B ) * #+ , $ # ! C # 99 # D
783>9,: 3 8 # ; ) 3 2 # ; J > =@ ? 5 5+ #B )
* .#, #+ !
# ! C # 99,# 1,D
783;69 : 2 8 * # / 3 Æ # ; ; # 8 ! #
|
|
! |
|
# |
< |
|
|
2 |
|
|
/ # =2 H > ! |
|
|
||||||
|
5 + ) K 5 |
|
|||||||
|
! #B J 99 |
|
|
|
|
||||
78 >9 : |
2 |
8 * # |
J |
|
# |
|
|
|
|
|
> # / 0 3? |
||||||||
|
2)5! |
; 9- # ; E |
|||||||
|
# + # 99 |
|
|
|
|
||||
78 9$: |
< 8 |
# =A |
5 ) |
||||||
|
E ; H #B 1 ' |
||||||||
|
# ,# $# 99$# |
9D |
$ |
|
|
||||
78 9 : |
< 8 |
# =@ 2 I > 5 |
|||||||
|
#B ) * .#, |
||||||||
|
#+ - # ! C # |
||||||||
|
99 # 19 D$ |
|
|
|
|
||||
78 9,: |
< |
8 |
# |
=) |
A |
3<! ? |
|
||
|
! #B |
||||||||
|
- |
||||||||
|
# ! C # 99,# |
-D |
, |
|
|||||
%/
78H9 : ) 8 < H *# =? 5 ;5 #B )
* .#, #+ 2 # ! C # 99 # D99
78H+!91: > 8 # 2 H # J + * # J ! # =? ; 3 . 5 ; >@H?#B
) * #+ 3
# ! C # 991# 1 D
|
- |
|
|
|
|
78+!9-: |
> 8 # J + * # J ! # |
||||
|
=>@H?4 ) 5 + |
) |
|||
|
! ) #B |
||||
|
) * . #+ 4 |
||||
|
# ! C # 99-# 9D |
||||
|
1 |
|
|
|
|
78 9 : |
> 8 # =3 >@H9,#B )<! |
||||
|
|
# 99 |
|
|
|
78!9 : |
< |
8 |
) ! # =3 . |
||
|
5 ! # H # ;<3@5 ??# |
||||
|
>@H?# > #B ) |
||||
|
* #+ , 3 # ! |
||||
|
C # 99 # D , |
|
|||
78!91: |
< 8 |
) ! |
# 5 |
||
|
# |
||||
|
! C # 991 |
|
|
||
78!9 : |
2 8 * |
8 ! # = |
2 % |
||
|
8 5 ) #B |
||||
|
|
||||
|
# ! C # 99 # 9,D |
||||
|
- |
|
|
|
|
78!9,: |
< 8 |
) ! |
# =3 . |
||
) ! H 5 #B
) * #+ , !
# ! C # 99,# 1D
753A9 : % 5 # < 3 # > A # =3<!C4 ) > !K C 3<!#B
("# @ # 5 # 99 # D ,
753A9 : % 5 # < 3 # > A ## =H ! ? 8 5 #B
' 2# ! C #
75 9,: 5 ! H 5 # =@ * ! 5 C>?/# !?23# !+ #B
-
# ! C # 99,# ,1D ,
75 9 : |
5 ! H |
5 # |
=J |
( L! |
||||
|
3 ! |
5 #B |
||||||
|
( |
|||||||
|
# ! C # 99 # |
|||||||
|
, D9 |
|
|
|
|
|
|
|
7529 : |
( |
5 |
< |
2 # =J<; |
||||
|
@8@)2B ( |
|||||||
|
# ! |
|||||||
|
C # 99 # $9D 9 |
|
|
|
||||
75 9$: |
3 |
5 |
# = |
3 |
< |
|||
|
! &3<!' ! ) |
|||||||
|
) #B 6/ 1 ' # |
|||||||
|
) 1 # 1# 2 99$# $1D |
|||||||
|
- |
|
|
|
|
|
|
|
75 9 : |
3 |
5 |
# |
|
# |
|||
|
99 |
|
|
|
|
|
|
|
75/9 : |
5 |
2 5 / # = ;<3@5 ?? |
||||||
|
5 |
#B ) * |
||||||
|
#+ , 4 # |
! C # |
||||||
99 # $D 1
75/!H9 : 3 5 # 3 / # 8 ! #J H # =5 @+;?2<#B
( # ! C # 99 # 1 D$
73 9 : |
J 3 |
# =5 ( 3 |
|
#B + 3 # H E |
|
|
> # 2 9 |
|
738+9 : |
( 3 # ) 8 # 8 + |
|
|
# =;?+<23-4 ) ! C |
|
|
;?+<23#B |
|
|
|
|
|
# ! C # 99 # , D |
|
7359 : |
J 3 |
5 5 # = ( |
|
! < +)A)2)#B |
|
|
( |
|
|
|
# ! |
|
C # 99 # -D,$ |
|
73%C91: |
J 3 |
# ; % # J C # |
|
=8 |
5 8 2 ) |
#B % & '& 7 #
# * E 8 # 991#-D 9
73%C9$: J 3 # ; % # J C # =/ H ?3<)#B )
* .#, #+ %
# ! C # 99$# 9D ,
73%C9$: J 3 # ; % # J C # =) A ) 8 5 3 #B
&8 '
# ! C # 99$# D1
%4
73(, : |
/ 3 Æ 2 ( # =A 3 |
|||||
|
5 #B |
|||||
|
& # ? # A |
9, # |
||||
|
$$D$ |
|
|
|
|
|
73(,9: |
/ 3 Æ 2 ( # =<" |
|||||
|
5 A8! 3 < |
|||||
|
! #B & '# -# 1# 2 9,9# |
|||||
|
,$D$ |
|
|
|
|
|
73H : |
5 3 > ) H # / |
|||||
|
/ # ) |
|||||
|
( # 3 |
2)# 9 |
|
|
||
73H;9,: |
J |
3 # |
> |
H # |
C ; |
# |
|
= |
8 |
5 !K #B |
|
|
|
-
# ! C # 99,#$9D
7< % : |
< % |
# =) + H 5 |
! ! 8 3 |
||
> |
#B |
|
& ? $# 9 # $9D |
||
$, |
|
|
7 ,1: ( # =5 5 + #B 9 # # 2 9,1# D 1
7 9 : |
A # |
# 99 |
||||
7 A!, : |
( |
# / ) |
A *# |
|
J > ! |
# |
|
=! |
5 |
K |
|
||
|
2 2 3 5 |
# |
||||
|
# 1# # 9, # |
|||||
|
$D$ |
|
|
|
|
|
7 !9,: |
A 8 ! # =5 |
|||||
|
) #B |
|||||
|
!" ## |
|||||
|
! 5 ! # 5 E |
|||||
|
# 99,# |
-D |
|
|
|
|
7%59$: ( % + 5 # =) 5 + " ) ; H 5 #B ) * #+ , - # ! C # 99$# 1 9D1
7%@! |
%@! % |
! |
$, 9# |
|||||
|
=5 + 3 + |
|||||||
|
! |
#B |
% |
|
5 |
|
||
|
E!!; ! # 9 9 |
|
||||||
7% 9 : |
+ % |
# =! % ; |
||||||
|
A |
5 + #B |
||||||
|
|
3 |
2 |
. : |
' |
|||
|
& ' 99 # |
$1D |
, |
|
|
|||
7( 9 : |
5 ( # 6 |
|||||||
|
# |
< |
! |
? |
+ |
|||
|
# ,# ( % C H |
|||||||
|
*# 99 |
|
|
|
|
|
|
|
7( 9 : + ( # =3 . > / H 5 ?3<)#B )
* .#, #+ 2 # ! C # 99 # D
7(H29 : 5 |
( # % H # J 2 # |
=) % * > 5 |
|
) 2 I + |
|
> |
#B ) * .#, |
#+ ( # ! C # 99 # $D1
7(H;69 : 5 ( # J H # C ; # 8 ! #3 / # =5 !+<<3#B# 99
7(H!/9 : 5 ( # J H # 8 ! # 3 / # =5 !+<<3#B
2 # ! C # 99 #
7(29,: 5 ( J 2 # =+ 5 #B
- # ! C # 99,# 1D ,
7( ( 2 ( ! < # =@ ! 5)! < )#B 5 5 <5 < # 99$# 11 D 11
7J .6, : |
J . # =3 ? |
|||
|
#B + +)# $ J ,, |
|||
7J(9 : |
J |
|
5 ( # |
=8 |
|
A E |
|
2 |
% |
|
* > 5 + |
|||
|
5 #B $ # |
|||
|
99 # $,D$,9 |
|
|
|
7JH9,: |
J > H # = ? |
|
||
) 8 5 #B
-
# ! C # 99,# D$-
7H 9 : H H # =) A 3 5 8 ! 8 5 #B
3
$# 5 + ( # 99 # 1-D$
7HH |
H |
# H H # ; |
# =3 |
|
|
! ! |
3 . |
|
5 #B # <,, |
||
|
)# 99$# 1 D 11 |
|
|
-5
