Cryptography Reference
In-Depth Information
Figure 4-8
FEAL's encryption structure.
1. Calculate a key schedule (
K
0
,
K
1
, ... ,
K
11
) in accordance with Section 4.7.4.
2. Break the plaintext,
P
, into two 32-bit halves: (
L
0
,
R
0
).
3. Calculate
L
0
=
L
0
⊕
(
K
8
||
K
9
).
4. Calculate
R
0
=
R
0
⊕
(
K
10
||
K
11
)
⊕
L
0
.
5. For
r
= 1, ... , 8 (i.e., each of eight rounds):
(a)
R
r
=
L
r
-1
⊕
f
(
R
r
-1
,
K
r
-1
).
(b)
L
r
=
R
r
-1
.
6. Calculate
L
8
=
L
8
⊕
R
8
⊕
(
K
14
,
K
15
).
7. Calculate
R
8
=
R
8
⊕
(
K
12
,
K
13
).
I will break down the different pieces of these and explain each of them in the following sections.
4.7.1 S-function
Rather than use a larger, complicated S-box, a simple function is used in FEAL so that it could be implemented
in a few standard computer instructions without requiring large lookup tables. The S-box is called the
S-func-
tion
, defined as a function of three variables: x, y, and
δ
. Here,
x
and
y
are byte values, while
δ
is a single bit
that changes depending on which round the S-function occurs in.
We define
S
(
x, y, δ
) as
The “mod 256” portion indicates that we need to do simple byte arithmetic. The “ROT2” function indicates
taking its argument, in this case an 8-bit number, and shifting all of its bits (as seen in its most significant bit
Search WWH ::
Custom Search