Schneider B.Twofish.A 128-bit block cipher.1998
.pdf
6
6
6
6




















+(
23!
23!


|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23! |
|
|
|
|
|
|
|
|
|
|
|
+( |
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23! |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 + + = "/# >
' () )
* 2 + + #
|
* |
"/ |
: #$ # |
* +* * + + 2 <$ *
( * ( *+ B 45 & L
, 2 * * + 7+ * + K 5 4 -5 + 0 &
|
7 |
+ |
* * 2 |
7 L 7 $*2 + +
+ * # + * * : Æ 2 + # + * "# (6 /# * #;3 : & *2 + + * 7 2 *#+ * ** * # * G$ ** * Æ 2 +
I *#* * # 7 7 * * + 1 + ** #+ ( * :: * * #* # *
+ / + * + * 6 ! + #$ $ /# # "# *##$ ** + &' *$ 6 * + + ++ <
/ +* ** #* + #$ /# #/ + $ /# # "# &'
+ * &' * |
|
# |
|
+ "#$ +&' + "#$/# #/# #$
* # + #
2 E + *+ 72 * * 7* * +$** 2 * # ? * $ +
* ? ** ? $*< = > + + # 2
* 2 * $*#( * ( + * < * #2 +"/% . / #+ ".55# = ? 2#!% > 1 "55 &)<
+ <
6 / 2 + + * < *+ "#$ *#$ * "#$"/#Æ * #$+ + "#$ =# # + # # ># * #$ + *+ * 2
< * + #$$ : 2 *
"
( |
3 |
|
|
|
|
|
|||
|
|
1 |
< |
"/# |
4"# |
"%-# |
"/# |
4"# |
"%-# |
( * ( L:: |
* |
* |
/455 |
".55 |
%!55 |
/ 55 |
"/% |
"/% |
"/% |
|
|
|
|
|
|
|
|
|
|
( * ( L:: |
* |
|
/!%5 |
./55 |
5.55 |
%55 |
% |
% |
% |
( * ( L:: |
* |
( |
5.55 |
!455 |
.-55 |
5%55 |
!-5 |
!-5 |
!-5 |
( * ( L:: |
* |
& * |
-55 |
"!55 |
% 55 |
/"55 |
."5 |
."5 |
."5 |
( * ( L:: |
* |
O |
4 55 |
"%5 |
-55 |
"555 |
/-5 |
5 |
!"5 |
|
|
|
|
|
|
|
|
|
|
( * ( L:: |
& |
|
"55 |
/555 |
"55 |
%.55 |
-55 |
-55 |
-55 |
( * ( L:: |
& |
( |
"55 |
. 55 |
4.55 |
! 55 |
/55 |
/55 |
/55 |
( * ( L:: |
& |
& * |
--55 |
555 |
./55 |
""55 |
5 |
5 |
5 |
( * ( L:: |
& |
O |
5%55 |
"!%5 |
"55 |
!555 |
5 |
.%5 |
""55 |
|
|
|
|
|
|
|
|
|
|
( * ( L:: |
9 |
|
! 55 |
5 55 |
-55 |
//55 |
-!5 |
-!5 |
-!5 |
( * ( L:: |
9 |
( |
! 55 |
4%55 |
"55 |
--55 |
/!5 |
/!5 |
/!5 |
( * ( L:: |
9 |
& * |
. 55 |
!-55 |
5 55 |
% 55 |
-5 |
-5 |
-5 |
( * ( L:: |
9 |
O |
5 55 |
"55 |
!"55 |
!/55 |
4 5 |
"-.5 |
!.5 |
|
|
|
|
|
|
|
|
||
( * |
* |
* |
/455 |
"!-55 |
"-/55 |
"//55 |
"45 |
"45 |
"45 |
( * |
* |
|
/"55 |
55 |
! 55 |
-555 |
% |
% |
% |
( * |
* |
( |
5 55 |
%%55 |
./55 |
4/55 |
! 5 |
! 5 |
! 5 |
|
|
|
|
|
|
|
|
|
|
( * |
* |
& * |
"-55 |
.55 |
%455 |
.455 |
.!5 |
.!5 |
.!5 |
( * |
* |
O |
/.55 |
/55 |
" 55 |
"-55 |
555 |
55 |
-55 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
( * |
& |
|
/55 |
455 |
% 55 |
" %55 |
- 5 |
- 5 |
- 5 |
( * |
& |
( |
! 55 |
4"55 |
!55 |
4/55 |
455 |
455 |
455 |
( * |
& |
& * |
./55 |
/55 |
55 |
-455 |
!-5 |
!-5 |
!-5 |
( * |
& |
O |
55 |
"/55 |
455 |
!455 |
.!5 |
""-5 |
".-5 |
|
|
|
|
|
|
|
|
|
|
( * |
9 |
|
".55 |
!"55 |
/ 55 |
"- 55 |
/.5 |
/.5 |
/.5 |
( * |
9 |
( |
!"55 |
"55 |
-%55 |
"! 55 |
55 |
55 |
55 |
( * |
9 |
& * |
.%55 |
!.55 |
" 55 |
4"55 |
/-5 |
/-5 |
/-5 |
( * |
9 |
O |
/55 |
.55 |
!455 |
- 55 |
" %5 |
". 5 |
".5 |
|
|
|
|
|
|
|
|
|
|
6 ( 0 |
|
|
|
--55 |
" -55 |
"!455 |
.%5 |
.%5 |
.%5 |
6 ( 0 |
|
( |
|
/ 55 |
55 |
4455 |
4 5 |
4 5 |
4 5 |
6 ( 0 |
|
& * |
|
55 |
-55 |
--55 |
"55 |
"55 |
"55 |
6 ( 0 |
|
O |
|
.55 |
55 |
%555 |
!%5 |
-/5 |
/.5 |
|
|
|
|
|
|
|
|
||
( ( .%5 |
|
|
|
""55 |
. 55 |
"""55 |
%45 |
%45 |
%45 |
( ( .%5 |
|
( |
|
./55 |
""55 |
. 55 |
./5 |
./5 |
./5 |
( ( .%5 |
|
& * |
|
"455 |
4 55 |
!"55 |
"/5 |
"/5 |
"/5 |
( ( .%5 |
|
O |
|
"%55 |
-55 |
!455 |
5 5 |
%/5 |
"5!5 |
|
|
|
|
|
|
|
|
|
|
-/5!5 |
|
|
-.55 |
% 555 |
- %55 |
4-.55 |
%55 |
%55 |
%55 |
|
|
|
|
|
|
|
|
|
|
-/5!5 |
|
( |
/ 55 |
-.55 |
!.%55 |
./%55 |
!455 |
!455 |
!455 |
-/5!5 |
|
& * |
" 55 |
555 |
!5555 |
. /55 |
/ %5 |
/ %5 |
/ %5 |
|
|
|
|
|
|
|
|
|
|
-/5!5 |
|
O |
-"55 |
4/55 |
55 |
.555 |
-/55 |
/-55 |
5!55 |
+ * 7
G * + *#22 * ** + ** + <
# : 2 *#*## + 2 * * + + ( * 3 + * () #** ? $ %555 + * * C * D+ $ * + "/% ( * ( * + ( * * 2 ++ * < ( * &&M * * ( * ( * ) 2 * $#* ? * * I G +< + * + + *+ *
0 8 # 8 #
* * + * 2 * + * :9 % 5 *+ * < * $* & + ; FF ! " * "5P + 9 ( * ** < + =-5+ & + ; FF ! " 2 /.5+ 9 % 5>I ( * ( L::7 * ?= -55 L 2 -!5 L >( + 7 * + * + 9 * #* #* *+ + + 7 #9 & + * 7 * * + * #9 * + * & + E * & # + + !5 ( * = -5 L - L > 2 + ' * * * * + * ) 2* *
!
2 + "/% 2 2 #2 + * *
* * 2 * * # * * < + * ( * = ( * &&M> 7 + * * ? *$* <( * ( ( * :: 2< 2 # + * * $* ( # * ( L:: (6 + * * *( * ( # * &&M + * ) 2 ( * ( L:: + * 36* * ( *+ 36 * *#= >7 + #* ( *( * ( + " 2 2 Q 2 *#(6 # *2 + * * * #+ =! P> ( * &&M (6( *&&M * +< + &&M
* * * * 2 + * : * 2+ + ) 2 7 * =* > 2C D 2 #, 2 * * # + * * < * * 2*
: + * * + ( * :: *+ ( * ( #: * 2 *( * ( * &&M 2 *+ #2 &&M *
+ * <
* * # 2 + * + 7 * * * + * ** * * +2 * + 2, 2 * 7 + #
+ * * + * + ** 1 + 2 + * = ( * ( > * + * * *+ * +# + 2 * + * = > ) # 2 = R 2 > *+ + 7 + ** * < * * + * #+ *
# 2 9< + + * < ( # * ( + * /!%5 *#! 55 9 : * ""%5 < I * !555 + ""55+ + "/#: 9 !%55%555 + ( * ( * ( < 9 2 * + * < * 2 #+ ' $ + < < + + * * I # * 2 *<+ *
: !-55 +$ + &' *$ " " ? + ? ! 55 + # + + #' ( * ##2
5 + * * #2 + * * + $* + * * +2 ** 2 *
" 2 E + * ( # * ( = * # 2 > "/#
+ 2 + ** + * # * + + $
,
* * -/5% (6* 2 7 S * 7 1 7+ *
0 & |
|
|
* |
= > |
< |
9 |
T !&)< |
-5 |
""55 |
"-%55 |
- - * |
-5 |
" %5 |
"455 |
/ " * |
-5 |
"555 |
%555 |
/ . * |
-5 |
.-5 |
. 55 |
4 * |
|
|
|
|
< #** :+ ? * * 2 * < * * ? * * 0 # * * #$ * + * ? 2 .%5 *+ % "# 01& : 2+ $ -/5%* < + # * 7 (6 * $ #= -%5"> * +
< * + < 2 + 2 "/# * *$ < + H 55$ + 4"# "55 + "%-# * #"-55 =+ + < L 7 2 > + 4"#%"55 + "%-#* * #"%%5 + 4"# !55
+ "%-#
-5 + 0 & + * * * #- + $L$- + :+ -$ / + 0 # * = > * * #* - + 0 & 2 #+ + <
0 $ A < 3+ ) *2 |
$( *& ) " 9 ( * $ $ $ $ )$ |
%
($ |
|
|
|
|
= > |
1 |
|
|
9 |
- |
O |
"%5 |
/-5 |
4 |
" |
O |
"%5 |
."5 |
4" / |
-! |
O |
"%5 |
!-45 |
. |
"/ |
O |
"%5 |
-//5 |
-% |
"%- |
( |
!455 |
.-5 |
!. 4 |
% " |
|
./55 |
55/5 |
! 4 |
|
|
./55 |
"5-5 |
". |
" |
|
./55 |
!5 "5 |
" % |
|
|
|
|
|
! |
* |
".55 |
."4-5 |
"5 4 |
/ |
* |
".55 |
!%4"5 |
4 ! |
|
|
|
|
|
- |
* |
".55 |
"4 /!5 |
/- |
" |
* |
".55 |
%/-/5 |
/ " |
-! |
* |
".55 |
-.-5 |
/ 5 |
& |
* |
".55 |
/-...-5 |
. / |
" 9 * "/# ( * (
* + $ *< ? * 0 & 0 # * : * * 2 * #2 * *#0 & ? * + * # *
1 2 2 + 01&* " " #!# ! %* % " + 01& #-! + 01& ** + /# " " 2 %5 + 01&I ++ + * ? + * #+ 01& < $* + * * * G$ 7
+
8 2 2 # 2 + (6* * 2
* |
+ # |
: E & |
* |
&$ ( : * = (: >$ ( # * (: ;3:,* $
-
( *( * ( L( * :: * #) 2* * * * ;3:, * # * +$ * + &$* $ ( ;3:, (6 #2 ++ * * *
/# # #$+ * * 2 + $ 2 #;3:, ) 2+ * # < * < ;3:, + * * #? * 2 +#$ * # * 2 2 #? * $*@9 A C D * + !# #$ * $ 2;3:, (6? "
: * #* * 22 (6 #* 2 + + * #* * (6 *+ ) 2* * '
+ * #(6 + 2 ' + + * #+ * +
* * +* * + +2 * +* S * 7 * * + * # + 2 B + <+ :2 + 2 # * + + 2 7
$* *#0 & *#G :+ * G + #* #*$ #+ 2 <+ :+* +* #2 * ? * * #+ * #*$* 22 2 *
$* + 7 #$ * # 0 & + 2 + * #" * + 0 & = "%-# 0 & >< +* *< 0 & ' 2*+ + * = +< > + # + * * # + ? # * 2
* ! % + /# * " " + * + !# * * * # * < * * * + *+ "%-# 01&01& 2 ** *+ = "> 2 2
$ " $ " =+ K "/>2 * + ?" "+ 01& * #* #2
: #2 2 + * * +
= "E |
&' () |
> |
+ 2 # |
+ *7 * : 9 * * 2 #* * #2 * $* + # 2* " E &' * + C 2 D ()*C D I 6 # + ++ +? + * + $+ * = "/ > + 2 **+ * : * 2 +* #2 2 2 + + * * #2, * * #E ? * C* * * + 8 L +$ D @& '4.A
2 < * ++ "/# ' #* < += * > * #2 "/# ** * 2 * * *# * *$ 5 % * &1$* ? * # E $ = + # * # > 2 2
.
8 |
|
|
( |
|
|
|
|
|
|
9 |
3 2 |
|
=& L > |
|
** |
!555 |
|
-! |
|
!5 &)< |
/5 |
! |
G |
4555 |
|
" |
|
!5 &)< |
-5 |
!5 |
|
" 555 |
" |
- |
|
!5 &)< |
"5 |
"5 |
|
"-555 |
" |
" |
" |
/5 &)< |
-!5 |
"5 |
|
"/555 |
" |
!/ |
|
"5 &)< |
4-5 |
"5 |
|
5555 |
" |
-! |
! |
%5 &)< |
"55 |
"5 |
|
/5555 |
" |
- |
|
/5 &)< |
-!5 |
55 |
#$ 0 & |
) 7 = "/# >
* + $2$ =5 "% * > * *
!
: + + #
, * 7 * * + 2 + # *
# : : ' : 2 * + 2 * 2 # ?
2 ' *+ #E
2+ + #$
$ ) #
+ + * # 22 + + * @ ,4.A #' + * * +3 @ &//A + $* #+ +
+ 1 + H 0 '1 :: @ ,4 A 31 @9( 45A 31 4
@9 |
A :' @3&4 3&&4 AH |
|
+ * + |
+ L |
|
@& 4 A * $#Æ "# * I 3 @0 4! 0 4.A * #$* 0 " @0 24. A + -# * 19 0 @0 4/A + /#1 * *+ * 44. #( ' @O 4.A O #8 @O84.A #2 $ 2
* * +* + + * , *#E * +, # < @ ,4.A 0 % * 2 *#+ + ' +* + ' E 0 % +' * *
2 * 7 Æ#"# + + #+ # 2 + * < ## + * (6 * * Æ& * + 9 #@ 4!A 3 @0 4! 0 4.A 0 ! @ 4-A* 2 + * 7 #@ ,4.A = 2 # * E *$ 7 + * > : 2* + + *
|
( ) $8 ( 1 2 B + 29= +5 |
|
C (D ( A ( E ( ) < 1 , %%5 ( ) ( ($) |
0- $ ' $ / 9 ($ 19 ' 5 C (D ( F A 9 ( G 0 (
/
|
: |
E + * + : ( # |
* ( @ |
: 4. A # |
|
+ * |
) 2 + * |
|
"# (6 /# -# (6 :+ + * + * #2 J E # +# # (6 *
E (6 2 */# * * 2 2 2 *+ * * * * #@9 4. &4. &4.A2 < + ? * * " * #9 " 2 :;
2 * + +7 / + * 2 - +U
* #* *#, + : ( */# ** * * $*#/# #/ &' *$ 2 8 =" > # 7 +!# #! &' *$ 2 8 =" >I + * 2 ( *#* * *
. .1 : ;
' 2 # 2 + * + 7 *+ E +"5 I -"5 ,* + 2 * + * + + *
$*
, 2 # #+ &' *5+ ( * ="( * ( > + *2 *#+ ?+ * *- + * U
, 2 * 2 #2 2 ? 2. ++ * -
+ U
, 2 # #
$ |
+ + |
+ |
2 |
* # * 2 #* * # * * #= #$ *# > 1 * * # *
$ , ) ) #
#
|
|
|
|
|
||
@ 4 |
4 1 4! 1 4! 1 4! 4! |
|||||
4! |
4! '8;4! |
4% |
& 4- |
|||
4-A 7 @9 4 A @& 4!A |
||||||
|
# |
|
@9 4! |
|
||
|
A |
* |
||||
H # "/ |
@ 4. A |
&: J |
||||
@& 4.A * H* $
) 2 27 2
|
# |
7 |
@3 4! |
4% A |
||
@R4. |
A |
# @ |
A |
|||
@R |
& |
|
A |
@ |
A |
|
@R |
A 2 + |
|
@& |
A |
|
|
|
< |
@& |
A |
|
||
|
# "/ |
|
|
|
||
@ 4 ) 4!A7 #2 + * + * $ @3 4. A2 7+ #@& A , #*2
, 7
: + * < |
|
* |
|
, *#* < +
H ) 1, 2 +5 ( " )$ $ $ ' Æ$ &*-) $ $E$? "$ +-) $ $
4
2 2 2 # *
& * + G , # ** ,* #+ * #
@ |
O&:45A < |
@ 4-A |
|
, * * * * " F = :' &&9 @'8;4 A> #= 0 % @ 8&(4-A > + # * 2 * H&' * () H + 7 = ? @' 0 2 >
, # #$ +# + ? #7 #* , -2 #* , # #2 , 22 # #
$ + #
+ * +2 + * # * 3 @ &//A 9* +* *+ < * # * + = 0 '1 # :: @ ,4 A>
) 2 2 + #* 2 *+ E @, 4%A 0 %E *+ " @9 A :* + * * +
. .* :
1 + * + * * 2 * + #+ + C D + #* *+ H <
* #=/# #/# # #$ +$ * + #
&' *$ + () |
> |
+ |
|
7 * = + E + + # 20 I E + #2 > #+ * # 27
2 + * # * + 0 2 * + ##
, * * #= 9 ( * @' 4/A 0 ! 0: ( @3 4-A J ) @J )4-A> 2 2 ' '@ 4! 994-A +* * 2 $ * #, + *+ * +7
. .* : 3
, # 2 $$ #+ + * 2= ' :' 9 >? 7 * + #= 0 ? >
+ #7 + *
9 $ ) ( (-( ( ? $ ? 12> 5 7 1 +5: ) G $ 12 % ,2 +5 ?? $( ) ) $" (-( (
' ) 10 % 29 %5
( $? .$ ) ) ' 3 ( $ ( $ " ) ( ?
( ( " $ &* ( ) *+ ( ' ( ? ' ? (
/ $ ( < $( < ( "$ ) &*-) )$ ( +-)$ ( ) 1 ( %)5
"5
