Schneider B.Twofish.A 128-bit block cipher.1998
.pdf+ *"%! "%%
+ + # + * 2 = +#> 2 7 # + # + * + +
* ** 2 * + #+ * + ( # * (6 + * 36+ + *
-4 " '
* " + #* -!# 2 I * + " ** 72
/ 1 213 4 #$ * + +< + + #$ + +# #$ 2 #$ #$ + *
". . 5< : 2 3
$ / ** + ' :' B 2 / 2 - * + * * ## # %+ # 2 ? $) -** < + *
2
|
2 * + |
: |
2 |
* + |
|
- " % & "
+ *
& 2 3 "/ + * #$ + #"/ ++ ** * "
7 = > "/# "/# # * * 7 + * #* * Æ2
+ E +
* 2 3 -! + * * + E +
: 7 # ? + 2 ? 2 + 0 ++
+ |
|
|
2 |
|
+ |
+ "# #? ? 2 + :$ + # ? E $ $*
|
|
|
+ ? = > |
= > |
? 2 7 2 |
||
|
|
|
|
= > * * #
= |
> + ? + |
|
K |
K I # |
|
|
|
|
2 ? + "#* "# + , 2 + ?
K = F = >>
|
K |
|
|
= F |
= >> |
|
|
|
|
|
|
K |
= F = >> |
||||
K = F |
= >> |
||
|
K |
= F |
= >> |
|
K |
= F = >> |
|
F "# # 6 ? +
F = > K F = > |
|
|
|
||||
|
|
Æ K |
= > |
= > |
|
|
|
|
|
|
|
|
|
|
|
Æ |
K $ 3 K |
= |
>F |
|
|
||
|
|
|
|
|
|
|
|
2 2 2,
Æ K = > = = F Æ >> = >
Æ K Æ Æ? *+ 2 + K 5K 5 K Æ ,
=5> =Æ > K Æ K =Æ > =5> K Æ
* + |
|
|
|
+ |
|
# ? 2 = *+ () > 22 +
* " + +"# 2 +2 + Æ
Æ =5 5> =5 " > =" 5> =" " >
7 2 #+ ? , 2 *7 2 + () ++ 2 + Æ $#2 + =Æ Æ >
=Æ Æ > =5 5> =5 " > =" 5> =" " >
, ? +
Æ K = > = = F Æ >>
+ Æ + + Æ 1 2 + 2 + Æ*K 5 * 7 ? #
Æ K = > = Æ >
+ , + 7 5 5 Æ K 5 * + + Æ * < Æ K 5 #K
, + #? * +
, # = ,3 5< : 2 3
, 2 + - ++ ? 2? 2 * # L + +* + + * 7 *+ ? 2 ? + -) 2 2 2
, B ++ =0 2? #$> ++2 2
"
". . 2 <
+ + # #$ + &' *$#$ : < ? + #
* # #$ 2
#$ ? + =5 " ! |
/> |
|
= % 4> |
#$ |
# |
? ++ * + #$ *&' *$ * ?
+ & ' |
|
() |
= + |
> + <? 2 *
, * ? # #$ * #? + "5* * + + + 2 #9 <* * +? *. " 2 +2 # #$ * * + $2
, "5# # ? +
"%-Q "-Q + ?"
". . 5< : 213 4 /
, 2 2 ? 2 #$* ? + "5 :
* * + +K "%- " " K "
+ ? 2 #$ $
: + + 7 + "* + *
* 2 , + #
= > K " @" @" @" @" @ A A A A A
: ? +" $ * + ? * ++ ? * *+ = > 2+ ? +2 $ 77 ? + " #$
3
(@ A K " @" @" @" @ A A A A
+ (@ A ?
(@ A ( @ A K
* + * +7 $ #$ #& '2 + "5 + + * #$ 2 "5#& ' ?
+ + * + #$ :+ + ##$ "%- 2 #+ #$"%- 2 :+ ++ 7 #$ #+ 2+ 2 2 & ' + * #+ * + *
3 * ( * ?+ + ( (7 "
+ 7 #" " K "
". . ; 2 <
3 * * +2 "5# 7 ?
+ #$ 2 #$" + *? * 2
2 7 ? + ? , * +
+ !# $ 7 #? " " K "
+ $* + 2
". . & ' 2 <
* + ?+ & ' ? #
& K &' = = > = > = > = >>
&' *$ * 27 + E #& ' 2 +
". . ; 2 < & '
3 7 ? :+ 27 ? &+ * &' *$ * #+ * *$ **
< 7 &
< 7 + + ? &
" 1 5"5 7 = +" > & C 2 D = > #$ & 7 ? + #$ + * & 2
& ? #+ + # ? + * & * #7 ? "5 & 2 ? # ? + "5# ? =+ & #2 + + ? * #* 2 * # > * 2 2+ * 7 & ? =+ 7 ? + & E>
0 " ($ ) ) ? ? -) @ / $ ) ( ? " ( * 3-) I )-? ? -) @ / ) ? " ) F$ $ ?$
2 + 2 + ' ?
". ." 2 < = >
& ' + * = 2 > =& ' >= > #* K + + !
". .! ; 2 < 2 3
' 7 ? & ' +# + ? = > ) 2& ' 7 ?* + 7 7 7 #* " * 7 ?
+@ A |
K |
|
@ A |
K |
|
7 * 2
". .$ >?* ; 2 3
+() + + ++ +
7 + #+ = +* ) ** +
7 # > ) 2 7 *
F K
= Æ > F K Æ
3 * + Æ# 2 + Æ Æ"
2 7 ##:+ G 2$ +# + "
* *$ + * B
!
+ 27 #7+
7 #Æ & 7
K & F '
K 013=& F "' 4>
* " :+ *7= >7 + Æ 2 "
7 ,=Æ 4> * * 7E #" 7 ? +"5 + ? Æ*
7 ? & ?
, 7 ' * * I * 7E + * " "
7 ' 2 $# # #
". . % ; 2 3
7 & ' < * + 2 7 * "
7 2 " ? 2 7 + 2 # 2 7 & B +# 7 2 2 7 + #" = ** +
>
2 7 * " 2 2$ , *
7 * * + *
". . / 2
#
1 : ? * 2 )
5< : / + ? 2+ $* $ , *? 2+ 2 * #? I2 & ' # ? * * ?+ #$ 2 *+ * + 7 , 2 2
: 2 7 ? +7 #$* + 2 ? 2 #* $*2 ? 2$
2 1 : / +# 2 ++ *2 , 2+# 2 $ ++# 2 ? +* 2 2 *2* +# 2 7 #7 $*
: / + 2
+ - =- = >> K + ( + 2
B *$ #$ * 2 + 2+ I + #$" + $
2 * * * #$
- = > K - = > K
* * + 22 +
& * @ 4! A
- = > K - = = >> K = >
1 +5 " " $ " #<
. * + , 2 + * +$
". . / 1 #
& /
+ # *2 @994 A #+ 3 + @'8;4! A+ :' 2+ + * * 7 2 + #+
7 * #7 2 7 :+7 ()7 2 2 2 : # 2* 2 2 2 * =O * 2+ # 7 #>* ?2 + # 7 2 2
* * * + ###$ 2 #7 72 ?
+ 7 #? #+ + # #$ = + + > # 7 + #$
%
- ' ,
0 + * # 7 *C D G * #/# #/# #$ + $*7+ # #$ 0&' @& ..A * * * * + 7"# 20 2* # 7* + & '7 + * #+ #$ 2+ * #* 7 +
2 0 #2 * * * < * **
F =/ F /> F / F =/ F / > F
/ + * 2 * = >
9 + Æ C * D 0 * + * #+ + I #2 + * *# * * + *-! +0 *#Æ + * 22 01& ( * 0 * ? / + 0 & * + "/#
0 *$ * * # * * # * Æ + 0 * #$
#! !
, 2 2 * # # * < ** ++ +
%# = # >" $ " *#+ +
5# = # # > # ? " $ " 2$ "
+ * # #* ## 2 *2 E 2 ##$ $ 0 #2* ? 2 2$ $
9 B $#* Æ + B * Æ#"/#
*$ + " * Æ4"# *$ + "
* Æ "%-# *$ + "
2 0 , &+ &
%# 2 "/# # "
$ " ' * ? * 2 * # * 2 2 * + * , ++ # ? "2 $ #$ $ " #2 " +$ + -
!. . ?: : ,
+ + #+ + + + * = > = 5>, < #* ) ** #7 +* + ,
7 "
B ' ($( '$ " (- $ $ $ " )$ $ 12 B 3 2 B %5(- $ F$ $I ) ) ( - "$
-
+ () +#7 + *= + > 7 + *E +
!. . ;
? #7 ? ,
* 2 2 * ,+ " #$ 2+ "5!/ C D 2 %# 7 2 , "5!/ 2 2 + * #* 2 #$ #, +2 * +
W |
W |
W |
W |
|
5 |
5 |
5 |
|
|
|
|
|
5 |
5 |
" |
5 |
|
|
|
|
0 |
|
5 |
|
! |
1 |
|
0 |
|
% |
|
|
1 |
|
2 7 +2 + + %K ,= > K ,= > , 2K ,= > # +
< I# + ,= > <7 #+ < <= > # # # + 7 $2 0 7 Æ +0 17 2# + <
2 + K " = > =5 >9 #+ &' *$# ++ ) ** + / :+* + 7 &' *$ *" 7 + 2 I * 2 * "* 2 + * ,
() |
|
+ * |
|
* +K =/ 5 5 5> # 7K ,= /> # 7 * "# 7
.
!. . 2
+
=& ' +> =& ' + >
* *
" $ +0+ 7 #2
" $ # 2 "5!/ #$ + $"5!/ $
I *%# 2 2 + #$
? * 3 #+ +, * 7+ 2 #$ ++ * 7 #* + 2 #$+ E
+ , + $ +, $+ 7 + * * /# +# + + * ++ 7 ) 2$7 +7
* ** = #< > 7" +7 "%-2 = @ A @ ÆA" + < Æ2 > 1 *? + *+ E + * * ? "%- 7 #+ " + + * + ++ + #. / ++
* |
|
|
||
E |
+ |
|
+ |
+ |
$ |
E |
+ |
||
E + #: *+ # + + + =* 7 7 >
* 2 . / + * " 7
* *
* 7 + + 9 #7 ) ** +/ " + 2 2 + * #" + 2 * 2* " I + *$ 2 2 + *
* 2 2 3 :+
* < 2 ) ** /* 2+ * <3 + * < ,
2 F 3 K =2 > F =3 > |
="> |
2 2 + 3 +< =2 3 > K 5# ## 2 + 2 3
/
* 3
2 3 ++ * <+ * < ** , ) ** + / " + 3 2 + ? " + 2 2
* * * 7 2 + + # 2 , "%- +# + 2 +$ +E +* + *=& ' +> =& ' + > 22 #* +#
9 + $2 *+ * #"%- 7 $ + + "$ 2 2 " $1 + $
: / + * #+ + * = > =5 > + + + "* 2 + ++ * + $"
? * % ! *
, 2 " $ ++ 6 # + * %#+ "5!/ "5!/ 2 + + # * #$I * + " ! "%- K "5!/ + "5!/ 2 + + * #1 2 2 + * = * > #$ 2* #$ +
? " ,? ? 2 =2 3 > K 5* ==2 4 > =3 4 >> K 5 +2 + 4 + 2 =2 3 > #? " =2 4 3 4 >
? + 2 + 4
2 2 * $ + * :+ 2
=& ' +> =& ' + >
=& ' + > =& ' + >* * + 2
* 7+ + : + * #7 + ** *+ , #+ ** ++ 2
* + + |
|
|
|
2 2 * + |
2 # |
+ 2 + 2 |
|
* *, #+ * E +, * "%- 7 2#+* + + $ ? + + "%-
2 *$ , ** <
, $ & '
" 3 + + = > =5 5 5 5 > , $ 5 5
, 2 2 + 5 K
! , 2 - 2
% , = 5 > 2 !%52 I 2
- + * " - !%5 K " #* + 5 = 5 >+ " $2 " $+ * + 2 $I
* #" $ " "%- "5!/
$+ #
4
( 2 ,2 $ #$ 2 +* 2 =* "> *+ $ ,$ = +> = + >
|
|
K I + E 2 |
|
|
|
5 5 |
K + + I |
|
*+ 2 2 " " K " $ #
2 + = 5 > = 5 > ,
K I * + #$ " - K "
$ E + * 2 + = +> = + >*= 5 > = 5 > + 2+ " !%5 K "5!/ $ = 5 > = 5 >
2 2
K K
9 2 + !%5+ = 5 > = 5 > + * + ,E "5!/ * #
!. . * : / 6
, $ + "5!/ * #2 + * ##$ , + 2 + = 5 > = 5 > $I+ "5!/ + 2 *
+7 2 + * $K ,= > W 1+# + < I +* ! ,
( ( + + + K ( F "( F * " ,
# + #+ # + ($# +
+ # + * ( $#+ * ( = # + ( #* "> *$# + 2 7 #$ + # + * +
* ##$ * # + ( ( + $2 2 + ) 2
? " + "/#" + "%-#
+ *+ + #* * *$
1 2 ? #2 ? ,
" ! "%- K "5!/ + * 8 =">* + "%-
+ + #$ $*
# + +&' *$ = .>I *
+ E |
|
* 2 |
2 7 |
2 ? |
|
+ $+ * #+ ( 8 ="># * #
+ E * += " > , *+ "5!/ "5!/ #? "5!/ *2 ? = 8 * * #* *2 2 *$>
+ * + +2 * + 3"5!/ 2 + = 5 > = 5 > * * + "5!/ ? "5!/ :+ # * + ?* * 2 2 + = 5 > = 5 > =, 2 + = 5 > = 5 > * + ? #+ > 1 2 * + ?+ + * #$ = * + *>* #$ 2 + #$ * #2 +2 + I "=+ "/# > " =+ "%-#> = 2 *2 " S " # > :+ * #$ *+ B + "5!/ * 2 2
!5
+ = 5 > = 5 > ) 2 #2 + * #$+ 2 # ? I + $* + * 7 2 7 #$
: B +"5!/ 2 2* + * * "+ + !%5 "5!/ "%- F " K " I #" $
!. . * 54
, + * 2* !#**+ $ +# + ) * " 7+ I 2 # & + *$ " *
/ / , 2 +#$ :*
*
-# 2$ # + +# + * E* + E + <? + # +7 B 2* 2 * 2* +() 7 + * # + + + #2 + + *+ +* " +$$ "
.# 2,$ + :+ 2 " + $* * ," + * #4"# "%-#
