Secret Key Cryptography
The
general way of encrypting a 64-bit block is to take each of the:
264 input values and map it to a unique
one of the 264 output values.
This would take (264
)*(64) = 270 bits to store this map.
This is NOT practical.
Secret key cryptographic systems take a reasonable length key
(e.g.,
64 bits) and generate a one-one
mapping that looks,
to
someone who does not know the key, completely random.
I.e.,
any single bit change in the input results in
a
totally independent random
number output.
Types of transformation for k-bit
blocks:
The following figure (Fig.
3-1) shows a secret key algorithm based on:
rounds of substations
and permutation.
It takes the same effort to reverse (decrypt).
· Substitution:
For small values of k,
specify for each of the
2k possible values of the input, the k-bit output.
This takes k*2k bits.
E.g., for k=8, we need 2048 bits.
· Permutation:
For each of the I
input bits,
specify the output position to which it goes.
This takes I*log2 I
bits.
E.g., for I=64, we need 64*5=320 bits
·
Rounds
If we do only a single round,
then changing a bit of input can only affect
a change of 8 bits of output.
There is optimal number of rounds to achieve
complete randomization, e.g., 16.
Ø Data
Encryption Standard (DES):
Key
length: 64 bits
8 bits are used for parity check,
why is that?
to make it 265 times less secure!
Read why 56 bits? section
in the textbook J
How secure is DES?
In 1998, $150K machine can break
the key in 5 days!
For added security triple DES is
used.
q Basic Structure of
DES: (Fig.
3-2)
The decryption
works by
essentially running DES backward
with keys in reverse order: K16 .. K1.
q The Permutation of
Data
(Fig.
3-3 )
This
is not random,
See Fig.
3-3 to get IP, and
Reverse
the arrows to get IP-1
In the IP table:
bit 1 comes from bit 58,
bit 2 comes from bit 50, etc.
The first octet of the input (ABC....H) is distributed over the 8 octets of the
output:
A to 5th octet,
B to 1st Octet, ...
H to 4th octet.
q Generating the
Per-Round Keys:
C0 D0
Eight bits are discarded
at positions:
9, 18, 22, 25 from Ci
& 35,
38, 43, 54 from Di
q
A DES Round: (Fig
. 3-6)
Why decryption works?
is the same for both
encryption and decryption.
q
The Mangler Function:
It breaks R into
eight 4-bit chunks and
Expand each to
6-bit by concatenating the adjacent 2 bits.
4-bit output for each possible 6-bit input (Figure
3-8)
i.e., 4 inputs are mapped to 1 output.
Two of these
tables are shown below.
This is to ensure that the output of an S-box in one round
affects the input of
multiple S-boxes on the next round.
q What's So Special
about DES?
The S-boxes!
Are they random? No one knows.
Playing around with the S-boxes can be dangerous!
Ø
International Data Encryption Algorithm
(IDEA):
Encrypts 64-bit blocks using 128-bit key.
It is similar to DES since it:
for
both encryption and decryption.
Fig.
3-18 shows the basic Structure of
IDEA:
IDEA
operations:
® Exclusive
OR
+ Addition mod 216 and
x Multiplication mod 216
These operations
are reversible:
a ® K
= A »
A ® K = a since (a ® K) ® K
= a
a + K =
A
» A + (-K) =
a since (a + K) + (-K) = a
a x K = A » A x (K-1) =
a
since (a x K) x (K-1)
= a
Key Expansion:
The 128-bit key is expanded into:
Fifty two 16-bit-keys: K1,
After generating the first 8 keys (Fig. 3-19),
Shift 25
bits and continue the generation (Fig. 3-20).
Figure 3-20
Rounds:
Total number of rounds: 17:
odd: 1, 3, ...17
&
even 2, 4, .., 16
Odd Round:
(Fig.
3-21)
This is
reversible using the inverse keys.
Even Round:
(Fig.
3-22)
How
to reverse?
Just apply it again, using the same keys
(not the inverse keys as in odd rounds!).
Why?
From
Figure 3-22 we have:
X'a = Xa ® Yout
X'b = Xb ® Yout
Yin = Xa ® Xb
Thus:
X'a
® X'b = (Xa ® Yout ) ® (Xb ® Yout)
= Xa ® Xb
= Yin
Yin is
the same if we use either (Xa , Xb) or (X'a
, X'b)
Similarly,
Zin is the same if we use either (Xc
, Xd) or (X'c , X'd)
Thus,
Yout & Zout are the
same in both encryption and
decryption.
Since
we know Yout and Zout we
can get:
X'a ® Yout = (Xa
® Yout) ® Yout
= Xa
Similarly we can get: Xb, Xc and Xd
Inverse Keys for Decryption:
Encryption keys:
K1
Decryption Keys:
(K49)-1
-(K50) -(K51) (K52)-1
K47 K48 ......
Ø
Advanced Encryption Standard (AES):
Developed with the help of NIST as an
Efficient,
Flexible,
Secure
and
Unencumbered
(free to implement)
Encryption Standard for
protecting:
sensitive, non-classified,
NIST selected an algorithm called Rijndael,
named after two
It uses a variety of block and key sizes:
128, 192 and 256
and the standards
are named:
AES-128,
AES-192, AES-256
It is similar to both DES and IDEA in that there is
rounds and key expansion.
Basic
Structure: (Figure 3-23)
Nb: the number of 32-bit words in an encryption block.
for AES-128: Nb = 4.
Nk: the number of 32-bit words in an encryption key.
for AES-128: Nk
= 4.
Nr: the number of rounds. It should be large enough to allow sufficient mixing so that each bit of a plain text
block or a key has a complex effect on each
bit of the resulting cipher text.
Nr =
6 + Max (Nb, Nk),
for AES-128: Nr = 10.
Primitive
Operations:
1.
Each
octet of the input column is used as index to retrieve a column from a table (Figure
3-26).
2.
Each
retrieved column is rotated and
3. The four rotated columns are ®'d to
produce the output column (Figure
3-25).
Inverse Cipher:
·
®
is its own inverse
·
The
inverse of S-box is given by a different table (Fig 3-27)
·
Rotating
is inverted by another rotation in the opposite direction.
·
The
inverse of MixColumn is called InvMixCoumn
is similar to MixColumn using a
different table (Fig 3-28).
Key Expansion:
Arrange
the key as Nk columns and
Iteratively
generate the next Nk columns (see Figure 3-29
and 3-30).
The Ci are constants defined in Figure 3-31.
Rounds:
Each
round is an identical sequence of 3 operations:
1.
Each octet of the state has the S-box applied.
2. For AES-128:
Row i of the
state is rotated left i
columns (i=0, 1, 2, 3).
3. Each column
of the state has MixColumn applied to
it
Inverse
Rounds:
Since each operation is invertible,
decryption is done by performing the inverse of each
operation in the opposite order and using
the round keys in the reverse order.
RC4 is a stream cipher designed by Ron Rivest.
A long random string is called a one-time pad.
Page 93 gives a C code for RC4 one-time pad generator.
A stream cipher generates a one-time pad and
applies it to a stream of plain text with ®.
Ø
Block
Chaining: Encrypting a Large Massage
Break the message into 64-bit blocks (padding the last one)
and
Encrypt each block with the secret key.
Two
problems:
· Two identical plaintext blocks produces
two identical
cipher blocks
· Blocks can be rearranged or modified.
Example:
See Fig.
4-3 where an eavesdropper:
· Can see which sets of employees have identical or similar salaries &
· Can alter
own salary to match another employee with higher salary.
· Cipher Block Chaining
(CBC):
See
Figure Fig.
4-5 (encryption) &
Fig 4-6 (decryption).
IV (Initialization Vector) is a randomly
chosen number.
Two identical plain messages produce two different
cipher messages.
Thus
“continue holding”, “continue holding”... “Start
attach”
produces
different cipher blocks.
This also prevents the Chosen
plain text attach.
CBC
Threat: Modifying
Cipher Blocks
You can
modify the contents of one cipher block
to make the
plain text of next block as you wish.
However the
preceding plain text block will be garbled.
For example in Figure
4-6:
To change m6 to m'6, we can change c5 to c'5,
Where c'5 is computed as: (c5 ® m6 ) ® m'6
However, the content of m5 will be garbage.
E.g:
change Jo Tacker salary from ~$54K to ~$74K:
Note that if
some bits of cipher text get garbled, two plain text blocks get garbled.
·
Output Feedback Mode (OFB):
It is
a stream cipher,
Encryption/Decryption
is performed by X®ing the message
with
one-time pad generated as follows:
1. A 64-bit IV is generated
(and is transmitted with the encrypted message).
2. b1 is
the DES encryption of IV with the secret key.
3. bi
, i > 1, is the DES encryption of bi-1 with secret key.
4. The resulting one-time pad is: b1 | b2
| b3 | .......
5. ci = bi ® mi for i =1, 2, ...
Major advantages of
OFB:
§ The pad can be generated in advance of the message arrival.
Major
disadvantages of OFB:
§
If one block is lost, the rest of the blocks will be garbled.
§
If
data is stored on disk, you can not randomly
read any block
unless you decrypt all the preceding
blocks.
§
If
the <plaintext m, ciphertext c)
> are known by Trudy,
he can modify m into anything he wants m'.
How?
1.Calculate:
X = c ® m
c' = m'
© X
2.Sends:
c' instead of c.
3.The receiver calculates: c' © X
= (m' © X) © X = m'
Note
that if some bits of cipher text get garbled, only the corresponding bits
in the plain text get garbled. This can be bad as it will not raise suspicion
if intentionally changed to make specific changes to a plain text (e.g., give
salary raise!).
CFB solves the first two problems of OFB:
§
If one
block is lost, only
the next block is garbled and
the rest of the
blocks will decrypt properly.
§
To
randomly access one block,
you only need to
access the preceding block.
CFB steps:
1. A 64-bit IV is generated (and is
transmitted with the encrypted message).
2. b1 is
the DES encryption of IV with the secret key.
3. bi
, i > 1, is the DES encryption of ci-1
with secret key.
(Thus you can't generate a one-time pad in advance like OFB)
4. ci = bi ® mi for
i =1, 2, ...

CTR (Figure
4-10) have the following advantages:
§ You can generate the one-time pad in
advance.
§ You can randomly access any block without
decrypting all the preceding blocks.
Disadvantage:
§ If one
block is lost, the rest of the
blocks will be garbled.
It is called 3DES or
m>>>> E >>>> D >>>> E >>>>c
|
| |
K1
K2 K1
|
| |
c >>>> E >>>> D >>>> E >>>> m
CBC is used for stream encryption as shown is Fig.
4-15:
§
Why
P
>>> P-1 . P >>>
P-1.P >>> P-1
E
E E
P >>> P-1.
P-1 >>>
P. P >>> P-1
E
D E
Thus, there is security gain by having
permutation done between stages using