520 likes | 642 Views
Computer Security Cryptography –an introduction. Encryption. key K E key K D
E N D
Encryption key KE key KD x plaintext y ciphertext original plaintext x . encryption decryption Eavesdropper
Encryption A cryptosystem involves • an encryption algorithm E, and a • a decryptionalgorithm D Both algorithms make use of a key. Let KEbe the encryption key and KD the decryption key. For symmetric cryptosystems the same key is used both encryption and decryption: KE = KD.
Encryption If P is the plaintext message, C the ciphertext, then for symmetric cryptosystems: C = E(K,P)and P = D(K,E(K,P)) = D(K,C) For an asymmetric cryptosystem C = E(KE,P)and P = D(KD,E(KE,P)) = D(KD,C)
Kerchoffs’ assumption The adversary knows all details of the encrypting function except the secret key
Symmetric key encryption There are two types of cipher systems: • Streamciphers, • Blockciphers.
Stream ciphers Encryption x = ISSOPMI y = wdhuvad Key KE
Block ciphers x = XNE OIG TPH YRK … y = .Key KE wdm . hut vap dgd … Encryption
Block ciphersAn overview of the DES Algorithm DES is an iterated block cipher with • 16 rounds, • block length 64 bits and • key length 56 bits
Iterating Block ciphers 1. Iterated block cipher Random (binary) key K round keys:K1,..., KNr, 2. Round function g wr = g(wr-1, Kr), where wr-1is the previous state
Iterated cipher … Encryption operation: w0x (x =plaintext) w1 = g(w0, K1), w2 = g(w1, K2), wNr = g(wNr-1, KNr), ywNr(y =ciphertext)
Iterated cipher … For decryption we must have: g(.,K) must be invertible for all K Then decryption is the reverse of encryption (bottom-up)
Data Encryption Standard DES is a special type of iterated cipher called a Feistel cipher. Block length 64 bits Key length 56 bits Ciphertext length 64 bits
DES The round function is: g([Li-1,Ri-1 ]),Ki ) = (Li ,Ri), where Li = Ri-1 and Ri = Li-1 XOR f (Ri-1, Ki).
Inner functionf Combine 32 bit input and 48 bit key into 32 bit output • Expand 32 bit input to 48 bits • XOR the 48 bit key with the expanded 48 bit input • Apply the S-boxes to the 48 bit input to produce 32 bit output • Permute the resulting 32 bits
S Boxes • There are 8 different S-Boxes,1 for each chunk • S-box process maps 6 bit input to 4 bit output • S box performs substitution on 4 bits • There are 8 possible substitutions in each S box • Inner 4 bits are fed into an S box • Outer 2 bits determine which substitution is used
Decrypting DES • DES (and all Feistel structures) is reversiblethrough a “reverse” encryption because: • No input data is mangled and passed to the output • The properties of XOR • S-boxes are not reversible (and don't need to be) • Everything needed (except the key) to produce the input to the n-1th step is available from the output of the nthstep. 4. The input to the nth step is the output of the n-1th step. 5. Work backwards to step 1.
Attacks on DES • Brute force • Linear Cryptanalysis -- Known plaintext attack • Differential cryptanalysis • Chosen plaintext attack • Modify plaintext bits, observe change in ciphertext No dramatic improvement on brute force
Countering Attacks • Large keyspace combats brute force attack • Triple DES (say EDE mode, with usually 2 keys) • Use AES
Modes of operation Four basic modes of operation are available for block ciphers: • Electronic codebook mode: ECB • Cipher block chaining mode: CBC • Cipher feedback mode: CFB • Output feedback mode: OFB
Electronic Codebook mode, ECB Each plaintext xi is encrypted with the same key K: yi = eK(xi). So, the naïve use of a block cipher.
ECB x1 x2 x3 x4 DES DES DES DES y1 y2 y3 y4
Cipher Block Chaining mode, CBC Each cipher block yi-1 is xor-ed with the next plaintext xi : yi = eK(yi-1 XOR xi) before being encrypted to get the next plaintext yi. The chain is initialized with an initialization vector: y0 = IV with length, the block size.
CBC x1 x2 x3 x4 IV + + + + DES DES DES DES y1 y2 y3 y4
Cipher and Output feedback modes (CFB & OFB) CFB z0 = IV and recursively: zi = eK(yi-1) and yi = xi XOR zi OFB z0 = IV and recursively: zi = eK(zi-1) and yi = xi XOR zi
CFB mode x1 x2 IV eK + eK + eK y1 y2
OFB mode IV eK eK x1 x2 + + y1 y2
Double & Triple DES Double DES:C = E(k2,E(k1,m)) Triple DES: C = E(k1,D(k2,E(k1,m)
AES Block length 128 bits. Key lengths 128 (or 192 or 256). The AES is an iterated cipher with Nr=10 (or 12 or 14) In each round we have: • Subkey mixing: State Roundkey XOR State • A substitution: SubBytes(State) • A permutation:ShiftRows(State) & MixColumns(State)
One time pad This is a binary stream cipher whose key stream is a randomstream. This cipher has perfect secrecy.
One time pad The One-Time-Pad is a Stream Cipher for which The plaintext xe P, ciphertext y eC and key K eK are all binary n-tuples. P = C = K = {0,1}n and eK(x) = (x1+K1, … , xn+Kn) mod 2 Decryption is identical to encryption: dK(x) = (y1+K1, … , yn+Kn) mod2
Public Key Cryptography AliceBob Alice and Bob want to exchange a private key in public.
Public Key CryptographyThe Diffie-Hellman protocol Alicega mod pBob gb mod p wherep is a prime and g a number which has order p-1. The private key is:gab mod p
Public Key CryptographyEncryption schemes Let • P be the set of all plaintext messages • C be the set of ciphertexts • K be the set of all keys
The RSA cryptosystem Let n = pq, where p andq are primes. Let P = C= {1,2, … ,n}, and define K= {(n,p,q,e,d) : ed= 1 mod f(n) }. where f(n) = (p-1)(q-1). For each key K = (n,p,q,e,d), define c = eK(m) = me mod n and dK(c) = cd mod n, where 1m,c n . Public key = (n,e), Private key (n,d).
Check We have: ed = 1 mod f(n), so ed = 1 + tf(n). Therefore, dK(eK(m)) = (me)d = med = mtf(n)+1 = (mf(n))t m = 1.m = m mod n
Example p = 101, q = 113, n = 11413. f(n) = 100x112 = 11200 = 26527 For encryption use e = 3533. Then d = e-1 mod11200 = 6597. Bob publishes: n = 11413, e = 3533. Suppose Alice wants to encrypt: 9726. She computes 97263533 mod 11413 = 5761 To decrypt it Bob computes: 57616597 mod 11413 = 9726
Security of RSA • Relation to factoring. Recovering the plaintext m from an RSA ciphertext c is easy if factoring is possible. • The RSA problem Given (n,e) and c, compute: m such that me = c mod n
Public Key CryptographySignature schemes Let • P be the set of all messages • S be the set of signatures • K be the set of all keys
The RSA digital signature Let n = pq, where p andq are primes. Let P = S ={1,2, … ,n}, and define K= {(n,p,q,e,d) : ed = 1 mod f(n) }. For each keyK= (n,p,q,e,d), define sigK(m) = md mod n and verK(m,y) = true ye = m mod n, where (m,y)eZn. Public key = (n,e), Private key (n,d).
The ElGamal signature scheme Let p be a prime and g an integer of order p-1. Let P = {0,1, … , p-1}, A = {0,1, … , p-1}x {0,1, … , p-1} and K= {(p,g,a,ya): ya = ga modp }. • The valuesp,g,ya are the public key. • a is the private key.
The ElGamal signature scheme • Signing Let m, 0 m p-1, be a message. For a key K = (p,g,a,ya) with ya = ga modp, and a secret random number k , 0 k p-1, such that gcd(k,p-1) = 1, define: sigK(m,k) = (s,t), where • r = gk modp • s = (m-ar)k-1 modp-1 • Verification verK(m,(r,s)) = true yar·rs = gm modp .
Toy example Let p = 467, g = 2, x = 127, message m = 100, Choose k = 213. Then k-1mod 466 = 431. The signature is: • r = 2213 mod 467 = 29 • s = (m-ar)k-1 mod(p-1) = (100-127x29)431 mod 466 = 51 Verification: 2100? 132292951 mod 467
The security of the ElGamal signature • If the Discrete Logarithm problem can be solved then ElGamal signatures can be forged. • The converse may not be true. • The exponent k must be • private • cannot be used twice • best: chosen at random.
The Digital Signature Algorithm Let p be a an L-bit prime prime, 512 L 1024 and L 0 mod 64 , let q be a 160-bit prime that divides p-1 and Let e Zp* be a q-th root of 1 modulo p. Let P = Zp-1, A = Zqx Zqand K = {(p,q,,x,y): y = x modp }. • The values ,y are the public key. • x is the private key.