Class 3
Class 3
• Overview of Cryptography
• Classical Symmetric Cipher
– Substitution Cipher
– Transposition Cipher
– Product Cipher
• Modern Symmetric Ciphers (DES)
Basic Terminology
• plaintext - the original message
• ciphertext - the coded message
• cipher - algorithm for transforming plaintext to ciphertext
• key - info used in cipher known only to sender/receiver
• encipher (encrypt) - converting plaintext to ciphertext
• decipher (decrypt) - recovering ciphertext from plaintext
• cryptography - study of encryption principles/methods
• cryptanalysis (codebreaking) - the study of principles/
methods of deciphering ciphertext without knowing key
• cryptology - the field of both cryptography and
cryptanalysis
Feistel Cipher Structure
• Feistel cipher implements Shannon’s S-P
network concept
– based on invertible product cipher
• Process through multiple rounds which
– partitions input block into two halves
– perform a substitution on left data half
– based on round function of right half & subkey
– then have permutation swapping halves
DES (Data Encryption Standard)
• Published in 1977, standardized in 1979.
• Key: 64 bit quantity=8-bit parity+56-bit
key
– Every 8th bit is a parity bit.
• 64 bit input, 64 bit output.
64 bit M 64 bit C
DES
Encryption
56 bits
DES Top View
56-bit Key
64-bit
48-bitInput
K1
Generate keys
Permutation Initial Permutation
48-bit K1
Round 1
48-bit K2
Round 2
…... 48-bit K16
Round 16
64-bit Output
Bit Permutation (1-to-1)
1 2 3 4 32
Input: 0 0 1 0 ……. 1
1 bit
Output 1 0 1 1 …….. 1
22 6 13 32 3
Per-Round Key Generation
Initial Permutation of DES key
E
One 48 bits
Mangler
Round Function 48 bits
Encryption S-Boxes Ki
32 bits
6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+ + + + + + + +
Permutation
Bits Expansion (1-to-m)
1 2 3 4 5 32
Input: 0 0 1 0 1……. 1
Output
1 0 0 1 0 1 0 1 …….. 1 0
1 2 3 4 5 6 7 8 48
S-Box (Substitute and Shrink)
• 48 bits ==> 32 bits. (8*6 ==> 8*4)
• 2 bits used to select amongst 4
substitutions for the rest of the 4-bit
quantity
2 bits I1
row I2
I3 Si O1
O2
I4 O3
I5 O4
4 bits I6
column i = 1,…8.
DES Standard
• Cipher Iterative Action • Key Generation Box :
: – Input: 56 bits
– Input: 64 bits
– Output: 48 bits
– Key: 48 bits
– Output: 64 bits
+ 0 1 2 3 4 5 6 7 8 9
0 0 1 2 3 4 5 6 7 8 9
1 1 2 3 4 5 6 7 8 9 0
2 2 3 4 5 6 7 8 9 0 1
3 3 4 5 6 7 8 9 0 1 2
* 0 1 2 3 4 5 6 7 8 9
0 0 0 0 0 0 0 0 0 0 0
1 0 1 2 3 4 5 6 7 8 9
2 0 2 4 6 8 0 2 4 6 8
3 0 3 6 9 2 5 8 1 4 7
– E.g.,
• ø(37) = 36
• ø(21) = (3–1)×(7–1) = 2×6 = 12
Modular Exponentiation
xy 0 1 2 3 4 5 6 7 8 9
0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
2 1 2 4 8 6 2 4 8 6 2
3 1 3 9 7 1 3 9 7 1 3
4 1 4 6 4 6 4 6 4 6 4
5 1 5 5 5 5 5 5 5 5 5
6 1 6 6 6 6 6 6 6 6 6
7 1 7 9 3 1 7 9 3 1 7
8 1 8 4 2 6 8 4 2 6 8
9 1 9 1 9 1 9 1 9 1 9
Modular Exponentiation
• xy mod n = xy mod ø(n) mod n
• if y = 1 mod ø(n) then xy mod n = x
mod n
Outlines
• Strength/weakness of DES, AES
• Public Key Cryptography
• Modular Arithmetic
• RSA
RSA (Rivest, Shamir, Adleman)
• The most popular one.
• Support both public key encryption and
digital signature.
• Assumption/theoretical basis:
– Factoring a big number is hard.
• Variable key length (usually 512 bits).
• Variable plaintext block size.
– Plaintext must be “smaller” than the key.
– Ciphertext block size is the same as the key
length.
What Is RSA?
• To generate key pair:
– Pick large primes (>= 256 bits each) p and q
– Let n = p*q, keep your p and q to yourself!
– For public key, choose e that is relatively prime to
ø(n) =(p-1)(q-1), let pub = <e,n>
– For private key, find d that is the multiplicative
inverse of e mod ø(n), i.e., e*d = 1 mod ø(n), let
priv = <d,n>
RSA Example
1. Select primes: p=17 & q=11
2. Compute n = pq =17×11=187
3. Compute ø(n)=(p–1)(q-1)=16×10=160
4. Select e : gcd(e,160)=1; choose e=7
5. Determine d: de=1 mod 160 and d < 160 Value
is d=23 since 23×7=161= 10×160+1
6. Publish public key KU={7,187}
7. Keep secret private key KR={23,17,11}
How Does RSA Work?
• Given pub = <e, n> and priv = <d, n>
– encryption: c = me mod n, m < n
– decryption: m = cd mod n
– signature: s = md mod n, m < n
– verification: m = se mod n
• decryption:
M = 1123 mod 187 = 88
Why Does RSA Work?
• Given pub = <e, n> and priv = <d, n>
– n =p*q, ø(n) =(p-1)(q-1)
– e*d = 1 mod ø(n)
– xed = x mod n
– encryption: c = me mod n
– decryption: m = cd mod n = med mod n = m mod
n = m (since m < n)
– digital signature (similar)
Is RSA Secure?
• Factoring 512-bit number is very hard!
• But if you can factor big number n then given
public key <e,n>, you can find d, hence the
private key by:
– Knowing factors p, q, such that, n = p*q
– Then ø(n) =(p-1)(q-1)
– Then d such that e*d = 1 mod ø(n)
• Threat
– Moore’s law
– Refinement of factorizing algorithms
• For the near future, a key of 1024 or 2048 bits
Symmetric (DES) vs. Public Key
(RSA)
• Exponentiation of RSA is expensive !
• AES and DES are much faster
– 100 times faster in software
– 1,000 to 10,000 times faster in hardware
• RSA often used in combination in AES and
DES
– Pass the session key with RSA