Secret Key Cryptography RAIT Madhumita Chatterjee 1 Algorithm Types Stream Ciphers Plaintext encrypted one bit at a time Disadvantage…time consuming. Block Ciphers RAIT A block of bits encrypted at one go. Disadvantage for repeating text….. Madhumita Chatterjee 2 Shannon concepts Confusion Ciphertext gives no clue about original text. Achieved using substitution. Diffusion RAIT Increases redundancy of plaintext by spreading across rows and columns. Achieved using transposition or permutation. Madhumita Chatterjee 3 Algorithm modes ECB (Electronic Code Book) CBC (Cipher Block Chaining Mode) OFB (Output Feedback Mode) CFB (Cipher Feedback Mode) Stream Cipher RAIT Madhumita Chatterjee 4 Electronic Code Book (ECB) M1 M2 M3 64 64 64 ENC ENC ENC ENC C1 C2 C3 C4 RAIT Madhumita Chatterjee M4 46 pad 5 ECB Problem #1 M1 M2 M3 64 64 ENC ENC ENC ENC C1 C2 C3 C4 64 M4 46 pad (M1 == M3) => (C1 ==C3) RAIT Madhumita Chatterjee 6 ECB Problem #2 Lack the basic protection against integrity attacks on the ciphertext at message level (i.e., multiple cipher blocks) Without additional integrity protection RAIT cipher block substitution and rearrangement attacks fabrication of specific information Madhumita Chatterjee 7 Cipher Block Chaining (CBC) M1 M2 M3 M4 64 64 64 46 pad ENC ENC ENC C2 C3 C4 IV Initialization Vector ENC C1 (M1 == M3) very unlikely leads to (C1 == C3) RAIT Madhumita Chatterjee 8 CBC Decryption M1 M2 M3 M4 DEC DEC DEC DEC C3 C4 IV C1 RAIT C2 Madhumita Chatterjee 9 CBC Vulnerabilities Loss sync of block boundary garbles the rest of the stream Create desired change in decrypted block Pn by sacrificing block P n-1 RAIT Madhumita Chatterjee 10 CBC….. P n-1 Pn DEC DEC C n-1 RAIT Cn Madhumita Chatterjee 11 Output Feedback Mode (OFB) Like a Random Number Generator... IV ENC M1 M2 C1 RAIT ENC ENC M3 C2 ENC M4 C3 Madhumita Chatterjee C4 12 OFB Properties Advantages RAIT Allow pre-computing of pseudo-random stream (One-Time Pad); XOR can be implemented very efficiently No error propagation problem as in CBC Allow in-time encrypt/decrypt due to bitwise computation (versus the fixed blocks) Madhumita Chatterjee 13 General k-bit Cipher Feedback Mode (CFB) k k IV k k ENC M1 K bits C1 RAIT k ENC ENC K bits M2 M3 K bits C2 Madhumita Chatterjee C3 14 CFB Properties Advantage compared with CBC. With k=8, errors on one byte of ciphertext only affect 8 more bytes beyond. Disadvantage compared with OFB. RAIT Random stream can no longer be computed in advance. Madhumita Chatterjee 15 Generating MICs Only send last block of CBC (CBS residue) Send plaintext Any modification in plaintext modifies CBC residue RAIT Insures integrity Madhumita Chatterjee 16 CBC Plus Residue M1 M2 M3 M4 64 64 64 46 pad ENC ENC ENC C2 C3 IV Initialization Vector ENC C1 RAIT Madhumita Chatterjee C4 residue 17 Elementary Cryptography DES Algorithm RAIT Madhumita Chatterjee 18 Background & History System developed by the US Govt. intended for public use in 1976 Many hardware and software systems designed with DES Goals were RAIT High level of security Specified and easy to understand Publishable, available Adaptable to diverse applications Economic to implement in elctronic devices Efficient to use and able to be validated Madhumita Chatterjee 19 Generic Block Encryption Convert block to another: one-to-one Long enough to avoid known-plaintext attack 64 bit typical, nice for RISC Naïve: 264 input values, 64 bits each, total 270 bits to store the mapping Output should look random RAIT No correlation between plaintext and ciphertext Bit spreading Madhumita Chatterjee 20 Generic Block Encryption (Cont’d) RAIT Substitution: 2k values: k 2k bits done by S-Boxes, adds confusion Permutation: change position for each bit: klog2k bits done by P-Boxes adds diffusion Round: combination of substitution chunks and permutation do often enough so that a bit change can affect every output bit How many rounds? A few but not fewer Madhumita Chatterjee 21 Block Cipher Scheme Encrypt Plaintext block of length N Secret key Cipher block of length N Decrypt RAIT Madhumita Chatterjee 22 Overview of the DES A block cipher: – encrypts blocks of 64 bits using a 64-bit key – Key: 64 bit quantity=8-bit parity+56-bit key. Every 8th bit is a parity bit. – outputs 64 bits of ciphertext – A product cipher – basic unit is the bit – performs both substitution and transposition (permutation) on the bits RAIT Madhumita Chatterjee 23 Cipher consists of 16 rounds (iterations) each with a round key generated from the user-supplied key RAIT Madhumita Chatterjee 24 Key features Sheer complexity of tracing a single bit through 16 iterations of substitutions and transpositions discourages analysis 8 extra bits are used only for parity so key is 56 bits long Substitution provides confusion and transposition provides diffusion Uses only std. arithmetic and logical operations, and is repetitive an can be implemented on a single purpose chip. RAIT Madhumita Chatterjee 25 Cycles of Substitution and Permutation. RAIT Madhumita Chatterjee 26 Features : DES • Data Encryption Standard (DES) • • • • RAIT Encodes plaintext in 64-bit chunks using a 64-bit key (56 bits + 8 bits parity) Uses a combination of diffusion and confusion to achieve security Was cracked in 1997 • Parallel attack – exhaustively search key space Decryption in DES – it’s symmetric! Use KA again as input and then the same keys except in reverse order Madhumita Chatterjee 27 Overview: DES • DES • 64-bit input is permuted • 16 stages of identical operation • differ in the 48-bit key extracted from 56-bit key - complex • R2= R1 is encrypted with K1 and XOR’d with L1 • L2=R1, … • Final inverse permutation stage RAIT Madhumita Chatterjee 28 Pictorial Representation For DES RAIT Madhumita Chatterjee 29 A more detailed picture RAIT Madhumita Chatterjee 30 DEScription: One Round Li-1 64 bits divided into left, right halves Right half goes through function f, mixed with key Right half added to left half Halves swapped Li (except in last round) RAIT Madhumita Chatterjee Ri-1 f Ri 31 DEScription: InsiDES Ri-1 Expand right side from 32 to 48 bits (some get reused) Expansion Add 48 bits of key (chosen by Eight S-boxes schedule) S-boxes: each set P-box of 6 bits reduced to 4 Output P-box permutes 32 RAIT Madhumita Chatterjee Ki 32 DES Top View 56-bit Key 64-bit 48-bitInput K1 Generate keys Permutation Round 1 Round 2 …... Round 16 Swap Permutation RAIT 64-bit Output Initial Permutation 48-bit K1 48-bit K2 48-bit K16 Swap 32-bit halves Final Permutation Madhumita Chatterjee 33 Bit Permutation (1-to-1) Input: 1 2 0 0 3 1 4 0 ……. 32 1 1 bit Output RAIT 1 0 1 1 22 6 13 32 …….. Madhumita Chatterjee 1 3 34 Bits Expansion (1-to-m) Input: 1 0 2 0 3 1 4 0 5 1……. 1 0 0 1 0 1 0 1 1 2 3 4 5 6 7 8 RAIT …….. Madhumita Chatterjee 32 1 1 0 48 Output 35 Initial and Final Permutations Initial permutation (IP) View the input as M: 8(-byte) by 8(-bit) matrix Transform M into M1 in two steps Transpose row x into column (9-x), 0<x<9 Apply permutation on the rows: RAIT For even column y, it becomes row y/2 For odd column y, it becomes row (5+y/2) Final permutation FP = IP-1 Madhumita Chatterjee 36 Per-Round Key Generation Initial Permutation of DES key C i-1 28 bits D i-1 28 bits Circular Left Shift Circular Left Shift One round Round 1,2,9,16: single shift Others: two bits Permutation with Discard 48 bits Ki Ci RAIT 28 bits Di 28 bits Madhumita Chatterjee 37 A DES Round 32 bits Ln 32 bits Rn E One Round Encryption 48 bits Mangler Function S-Boxes 48 bits Ki P 32 bits RAIT 32 bits Ln+1 32 bits Rn+1 Madhumita Chatterjee 38 A Full Picture Of DES RAIT Madhumita Chatterjee 39 Cycles of Substitution and Permutation. RAIT Madhumita Chatterjee 40 A Cycle in the DES. RAIT Madhumita Chatterjee 41 Types of Permutations. RAIT Madhumita Chatterjee 42 RAIT Details of a Cycle. Madhumita Chatterjee 43 Pattern of Expansion Permutation. RAIT Madhumita Chatterjee 44 Mangler Function 4 4 4 4 4 4 4 4 6 6 6 6 6 + + + + + 6 + 6 6 + 6 6 6 6 6 6 6 + S1 S2 S3 S4 S5 S6 S7 S8 4 4 4 4 4 4 4 4 6 The permutation produces “spread” among the chunks/S-boxes! Permutation RAIT Madhumita Chatterjee 45 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 row 4 bits column RAIT I1 I2 I3 I4 I5 I6 Si i = 1,…8. Madhumita Chatterjee O1 O2 O3 O4 46 S1: one of the S-boxes Each row and column contain different numbers. 0 1 2 3 4 5 6 7 8 0 14 4 13 1 2 15 11 8 3 1 0 15 7 4 14 2 13 1 10 2 4 1 14 8 13 6 2 11 15 3 15 12 8 2 4 9 1 7 5 9…. 15 Example: input: 100110 output: ??? RAIT Madhumita Chatterjee 47 8 S-Boxes Logic behind the selection of the SBoxes remains unpublished secret Is it a good idea technically to publish it? RAIT Madhumita Chatterjee 48 Decryption Apply the same operations (keys in reverse order: K16, K15, …, K1): Input: Rn+1|Ln+1 Output: Rn|Ln RAIT Due to the “swap” operation The swap operation at the end will produce the correct result: L|R Madhumita Chatterjee 49 DESign Principles: Inverses Equations for round i: Li Ri 1 RIni Li 1words: f Ri 1 other Li-1 Ri 1 Li Li 1 Ri f Li So decryption is the same as encryption Last round, no swap: really is the same RAIT Li Madhumita Chatterjee Ri-1 f Ri 50 DES’s Problem Considered too weak – Diffie, Hellman prediction: “in a few years technology would allow DES to be broken in days” • Design using 1999 technology published – Design decisions not public • S-boxes may have backdoors RAIT Madhumita Chatterjee 51 MoDES of Operation ECB: Electronic CodeBook mode: CBC: Cipher Block Chaining mode: Encrypt each 64-bit block independently Attacker could build codebook Encryption: Ci = EK(Pi Ci-1) Decryption: Pi = Ci-1 DK(Ci) CFB, OFB: allow byte-wise encryption RAIT Cipher FeedBack, Output FeedBack Madhumita Chatterjee 52 PeDEStrian attacks Obvious attack: guess the key. 256 keys Complementation Property: 255 keys 1 million per second: 1100 years Store EK(P1) for all K: 512 petabytes Time/Memory Tradeoff (Hellman, 1980): RAIT 1 terabyte 5 days Madhumita Chatterjee 53 DEStroying Security Differential Cryptanalysis (1990): Say you know plaintext, ciphertext pairs Difference dP = P1 P2, dC = C1 C2 Distribution of dC’s given dP may reveal key Need lots of pairs to get lots of good dP’s Look at pairs, build up key in pieces Could find some bits, brute-force for rest RAIT Madhumita Chatterjee 54 DEServing of Praise Against 8-round DES, attack requires: Against 16-round DES, attack requires: 214 = 16,384 chosen plaintexts, or 238 known plaintext-ciphertext pairs 247 chosen plaintexts, or Roughly 255.1 known plaintext-ciphertext pairs Differential cryptanalysis not effective RAIT Madhumita Chatterjee 55 DESperate measures Linear cryptanalysis: Look at algorithm structure: find places where, if you XOR plaintext and ciphertext bits together, you get key bits S-boxes not linear, but can approximate Need 243 known pairs; best known attack RAIT Madhumita Chatterjee 56 DES apparently not optimized against this Still, not an easy-to-mount attack RAIT Madhumita Chatterjee 57 DESuetude “Weakest link” is size of key Attacks take advantage of encryption speed 1993: Weiner: $1M machine, 3.5 hours 1998: EFF’s Deep Crack: $250,000 RAIT 92 billion keys per second; 4 days on average 1999: distributed.net: 23 hours OK for some things (e.g., short time horizon) DES sliDES into wiDESpread DESuetude Madhumita Chatterjee 58 Triple-DES 3 ECB mode: 2 1 If K2 = K3, this is DES Run DES three times:Ci EK DK E K Pi Backwards compatibility Known not to be just DES with K4 (1992) Has 112 bits of security, not 3 56 = 168 RAIT Madhumita Chatterjee 59 Why? What’s the attack? What’s wrong with Double-DES? RAIT Madhumita Chatterjee 60 DESpair Double-DES: Ci = EB(EA(Pi)) Given P1, C1: Note that DB(C1) = EA(P1) Make a list of every EK(P1). Try each L: if DL(C1) = EK(P1), then maybe K = A, L = B. (248 L’s might work.) RAIT Madhumita Chatterjee 61 Test with P2, C2: if it checks, it was probably right. Time roughly 256. Memory very large. RAIT Madhumita Chatterjee 62 DES’s Undesirable Properties 4 weak keys (They are their own inverses) 12 semi-weak keys (Each has another semi-weak key as inverse) Complementation property – DESk(m) = c DESk´(m´) = c´ S-boxes exhibit irregular properties – Distribution of odd, even numbers non-random – Outputs of fourth box depends on input to third box RAIT Madhumita Chatterjee 63