Secret Key Cryptography

General Block Encryption:

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. 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 result in a totally independent random number output.

Types of transformation for k-bit blocks:

• 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:

• Specify for each of the I input bits, the output position to which it goes.
This takes I*log2 I bits. E.g., for I=64, we need 64*5=320 bits

The following  figure (Fig. 3-1) shows a secret key algorithm based on rounds of substations and permutation. If we do only a single  round, then a bit of input can only affect 8 bits of output. There is optimal number of rounds to achieve complete randomization.
The algorithm take the same effort to reverse (decrypt). 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.
How secure is DES?
In 1998,  \$150K machine can break the key in 5 days!
For added security triple DES is 256 more secure.
Basic Structure of DES: (Fig. 3-2) The decryption works by essentially running DES backward (with keys: K16 .. K1).

The Permutation of Data)

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).  In this Figure:
Bit 58 at position[8,2]  -->  bit 1 at position [1,1].
Bit 1 at position [1,1]   -->  bit 40 at position [5,8].

Generating the Per-Round Keys:

• Key-Permutation: (Fig. 3-4) Produces C0 and D0   C0                                       D0

• Key-Generation: (Fig. 3-5)

• 8 bits are discarded: 9, 18, 22, 25 from Ci and 35, 38,43, 54 from Di
so that each Ki  is 48 bits.   A DES Round:  (Fig. 3-6) Why decryption works?
• The output of the Mangler Function  (M) is the same for both encryption and decryption.
• In encryption: M ® Ln = Rn+1
• In decryption: M ® Rn+1 = M ® ( M ® Ln ) = Ln
The Mangler Function:
• Expands R from 32 bit to 48 bits as shown in Fig3-7:
• It breaks R into eight 4-bit chunks and expand each to 6-bit by concatenating the adjacent  2 bits. Let CRi refer to chunk i of expanded R. • The 48-bit K is broken to eight 6-bit chunks.  Let CKi refer to chunk i of  K.
• Let S= CRi ® CKi
•  Si is fed into an S-box, a substitution which produces a 4-bit output for each possible 6-bit input as shown in Figure 3-8 ( i.e., 4 input  mapped to 1 output). • The 8 S-boxes specified  in  Fig. 3-9 to 3-16: • The 4-bit output of each of the eight S-boxes is permuted as shown in Fig. 3-17
(to ensure that the output of an S-box in one round affects the input of multiple   S-boxes on the next round): 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:
• operates in rounds,
• the mangler function runs in the same direction for both encryption and decryption.

Fig. 3-18 shows the basic Structure of IDEA: IDEA operations:

®  exclusive OR
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 52  16-bit keys: K1, K2 , ....K52.
After generating the first 8 keys (Fig. 3-19),
shift  25 bits  and continue the generation (Fig. 3-20).  Figure 3-20

Rounds:

Total of 17 rounds,  odd: 1, 3, ...17  &  even 2, 4, .., 16

This is reversible using the inverse keys.  How it is reversed?

Just apply it again, using the same keys (not the inverse 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
I.e, Yin is the same if we use  (Xa ,  Xb)  or  (X'a , X'b)
Similarly, Zin the the same if we use  (Xc ,  Xd)  or  (X'c , X'd)
Thus Yout and Zout are the same in both encryption and decryption.

Therefore, since we know Yout and Zout we can get:

Xa =  X'a ® Yout
Xb =  X'b ® Yout
Xc =  X'c ®  Zout
Xd =  X'd ®  Zout

Inverse Keys for Decryption::

Encryption keys:
K1           K2        K3          K4          K5      K6         K7            K8  ......

Decryption Keys:
(K49)-1   -(K50)   -(K51)    (K52)-1   K47    K48     (K43)-1    -(K44)  ....

Developed with the help of NIST as an efficient, flexible, secure and
unencumbered (free to implement) standard  for protecting
sensitive non classified, U.S. government information.
NIST selected an algorithm called Rijndael (named after two Belgium cryptographers).
It uses a variety of block and key sizes (mainly 128, 192 and 256)
and the standards are named: AES-128, AES-192, AES-256!
(block sizes are fixed in all to 128 bits).
It is similar to DES and IDEA in that there is rounds and key expansion.

RC4
A long random string is  called a one-time pad.
A stream cipher generates a one-time and applis it to a stream of plain text with ®.
RC4 is a stream cipher designed by Ron Rivest.
Page 93 gives a C code for RC4 one-time pad generator.

Modes of Operation

Encrypting a Large Massage

Electronic Code Book (ECB):

Break the message into 64-bit blocks (padding the last one) and
encrypt each block with the secret key.

Two problems:

1. two identical plain text block produce two identical cipher blocks
2. blocks can be rearranged or modified.

Example: See Fig. 4-3 where an eavesdropper:
1. can see which sets of employees have identical or similar salaries and
2. he can alter his own salary to match another employee with higher salary. Cipher Block Chaining (CBC):

See Figure Fig. 4-5 & Fig 4-6: The randomly chosen IV (Initialization Vector)
Two identical plain messages produces two different cipher messages.
(e.g., continue holding, continue holding, ....., start attach)
This prevents 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, as shown: Thus  if cn is garbled then mn will be completely garbed.
Only the same portion of mn+1 as what was changed  in cn will be changed.

This can be solved by attaching a CRC to the plain text before encryption.

Output Feedback Mode (OFB):

It is a stream cipher, encryption/decryption is performed by ®ing the message with one-time pad generated as follows:

1. A 64-bit random 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, ... • the pad can be generated in advance and used when the message arrive.
• if some bits of cipher text get garbled,
only the corresponding bits in the plain text get garbled.

• If the <plaintext m, ciphertext c=m®E) > are known by Trudy,

• he can modify the plain text  m into anything he wants (m') since he can make:
and thus
• 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.

To solve the last  two problems, we use CFB below, where if one block is lost,
only the next block is  garbled and the rest of the blocks will decrypt properly.

Cipher Feedback Mode (CFB):

1. A 64-bit random 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.
4.  ci = bi ®  mi for i =1, 2, ...  Counter Mode (CTR):

See Fig. 4-10 ,  CTR have the following advantages:

• You can randomly access any block without decrypting all the preceding  blocks. Figure 4-10

Generating MACs

A secret key system can be used to generate a cryptographic checksum
MAC (message authentication code) or MIC (message integrity code).

Send  Plain text + CBC residue: (see Fig. 4-11)
The receiver computes the CBC residue from the plain text
and compare it with the received CBC residue. Multiple Encryption DES

It is called 3DES or EDE (encrypt-decrypt-encrypt):

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: 