Block Ciphers and Modes of Operation
Total Page:16
File Type:pdf, Size:1020Kb
Overview Block Ciphers and Modes of Operation Lesson contents Design structures for block ciphers: Feistel Network (FN) and Substitution & Permutation Network (SPN) Gerardo Pelosi The Feistel Network structure Department of Electronics, Information and Bioengineering (DEIB) Data Encryption Standard (DES) Politecnico di Milano Security of DES, Double-DES, Triple-DES, DES-X gerardo.pelosi - at - polimi.it Modes of Operation to guarantee Confidentiality: ECB, CBC, OFB, CFB, CTR G. Pelosi, A. Barenghi (DEIB) Block Ciphers and Modes of Operation 1 / 48 G. Pelosi, A. Barenghi (DEIB) Block Ciphers and Modes of Operation 2 / 48 Design of Symmetric-key Ciphers: Confusion & Diffusion Design of Symmetric-key Ciphers: Confusion & Diffusion Building on the weaknesses of Historical ciphers, C. Shannon stated the following (very general and informal) design principles to thwart cryptanalysis based on statistical properties of ptxs and ctxs Diffusion refers to the property that the statistical distribution of \groups of pxt A symmetric cipher should be composed as the iterative application of letters" frequencies (due to the redundancy of the ptx language) should operations that realize Confusion & Diffusion of the plaintext symbols be dissipated, as much as possible, into flat distribution statistics, i.e. the ctx should appear as random data. Confusion Ideally, keeping the same key, the change of a single bit in the plaintext make the relation between the key, plaintext and ciphertext as complex as drives the change of all bits in ciphertext possible. Ideally, each digit of the key influences the correspondence between pxt and cxt letters in a non-predictable way In contrast to confusion, diffusion spreads (diffuse) the influence of a single plaintext letter over many (or every) cxt letters Replacing every letter with the one next to it on the typewriter Ciphers suffering from poor diffusion can usually be broken by means keyboard is an insecure example of confusion by substitution of Known Plaintext Attacks (e.g., simple permutation ciphers) Ciphers that do not offer effective confusion are vulnerable to frequency analysis G. Pelosi, A. Barenghi (DEIB) Block Ciphers and Modes of Operation 3 / 48 G. Pelosi, A. Barenghi (DEIB) Block Ciphers and Modes of Operation 4 / 48 Purposes of a block cipher Modern Block Ciphers Block ciphers operate on a block of plaintext m2M (m = hm1;:::; mni, Security desiderata with m 2f0; 1g), to produce a block of ciphertext (c = hc ;:::; c i 2 C, i 1 n Provide nontrivial blending of plaintext and ciphertext (confusion) with ci 2f0; 1g) through a key-parametric transformation Provide statistical flatness of the output (diffusion) (either Ek () or Dk ()) The block size n is in the [64, 256] bit range Be analyzable in a clear and formal way to ensure sound security ptx size might not be multiple a of block size ! padding needed! A structure based on the repetition of a short sequence of steps Possible padding strategies: (round) is preferable to a monolithic design Known non-data values (e.g. nulls) A number indicating the size of the pad (may require an extra block) Efficiency desiderata A number indicating the size of the ptx (may require an extra block) Provide efficient encryption and decryption For ptxs longer than a single block, the scheme used to apply () Ek Possibly reuse SW/HW resources for both Ek () and Dk () (or Dk ()) is called mode of operation (lower code size or silicon area) G. Pelosi, A. Barenghi (DEIB) Block Ciphers and Modes of Operation 5 / 48 G. Pelosi, A. Barenghi (DEIB) Block Ciphers and Modes of Operation 6 / 48 Modern Design Strategies Modern Design Strategies: Feistel Networks and SPNs Glossary Feistel Networks Cipher state: The result of each operation performed by the cipher Invented by Horst Feistel (in '50-'60), it splits the cipher state in two Initialized with the ptx; contains the ctx at the end of the computation parts and acts on one of them per round Round: basic sequence of operations applied to the cipher state, a The decryption employs the same cipher structure, except for a number of times (involves blending the key into the state) reversal in the key schedule Key schedule: procedure expanding the original user key into key material to be used in each round Substitution Permutation Networks (SPNs) A SPN implements the confusion-diffusion principles suggested by High level structure Shannon with distinct enc/dec transformations Expand the user key into a set of subkeys and combine them with The round of a SPN acts on the whole cipher state with: the cipher state during the execution of the round primitive A \non-linear" function providing Confusion represented as a lookup Iterate the application of the Round. table, a.k.a.: Substitution-Box (S-box) A \linear" function providing Diffusion, f.i., a bitwise permutation, or Repeating the round increases the complexity of the dependency pairs of rotate & xor operations relations among the user key bits and the bits of the cipher state The addition of a part of the key schedule G. Pelosi, A. Barenghi (DEIB) Block Ciphers and Modes of Operation 7 / 48 G. Pelosi, A. Barenghi (DEIB) Block Ciphers and Modes of Operation 8 / 48 Feistel Network Structural Properties Definition Properties of a Feistel network: A Feistel network transforms an n-bit ptx block m=hL ; R i, into an n-bit 0 0 the round transformation is invertible regardless of the choice of ctx block c=hR ; L i through an r-round process (r≥1) defined as the r r the function F. Indeed, for the i-th round: repetition of r − 1 equal stages plus a final one; where the sub-blocks Li , R are n=2-bit long. i Li = Ri−1; Ri = Li−1 ⊕ F(ki ; Ri−1) Feistel(hL; Ri; k) 1 for i 0 to r − 2 we can also write 2 temp L 3 L R Ri−1 = Li ; Li−1 = Ri ⊕ F(ki ; Li ) 4 R temp ⊕ F(k ; R) // L = R ; R = L ⊕ F(k ; R ) i i i−1 i i−1 i i−1 Note that the last round block halves are swapped hR ; L i, and 5 R R ⊕ F(k ; L) r−1 r−1 r−1 not in their usual left-right order hL; Ri 6 return hR; Li // Note: the last round block halves are swapped where F is an arbitrary function (non-linear and possibly non-invertible) Applying the Feistel network on a ctx (using the subkeys in reverse order, i.e. kr−1 through k0) provides the ptx and each subkey ki , 0≤i≤r − 1, is computed from key schedule of the cipher key k G. Pelosi, A. Barenghi (DEIB) Block Ciphers and Modes of Operation 9 / 48 G. Pelosi, A. Barenghi (DEIB) Block Ciphers and Modes of Operation 10 / 48 Feistel Network Feistel Network Description Block Diagram Confusion: provided by the key-dependent F function Diffusion: obtained adding the F-processed part Ri to Li Enc: r-1 Ciphers based on a Feistel Network DES: block-size: 64-bit, key-size:56-bit, rounds: 16. Standard encryption algorithm employed by the US-government for unclassified documents from 1976 to 2000 Blowfish: block-size: 64-bit, key-size: 32{448 bits (4{56 bytes), rounds: 16. Part of the key schedule used to generate S-Boxes in the F, very demanding Dec: r-1 key-schedule Twofish: evolution of blowfish, block-size: 128-bit, key-size: 128, 192 o 256 bits, rounds: 16 CAST5: block-size: 128-bit, key-size: 40{128 bits (5{16 bytes), rounds: 12 Figure: The structure of a Feistel Network (16, with key-size ≥ 80 bits). Only arithmetic operations and key-dependent bit-rotations employed in the F map. Efficient SW implementation G. Pelosi, A. Barenghi (DEIB) Block Ciphers and Modes of Operation 11 / 48 G. Pelosi, A. Barenghi (DEIB) Block Ciphers and Modes of Operation 12 / 48 Feistel Network DES Structure DES Round DES - structure It takes a 64-bit block hLi−1; Ri−1i and a 48-bit subkey ki to compute L = R ; R = L ⊕ F(k ; R ), where P C i i−1 i i−1 i i−1 I F T T F(k ; R ) = P-box(S-box(k ⊕ E-box(R )) P P i i−1 i i−1 X X 1 E-box(Ri−1) expands Ri−1 from 32 into 48 bits (hb1b2 ::: b8i, each bi is 16-round Feistel cryptosystem with 64-bit wide cipher state: 6 bits) via a fixed expansion that simply duplicates some bits Cipher key: 64 bits; only 56 bits are used. One bit per byte is a parity bit. 2 Adds the 48-bit round key: hb1b2 ::: b8i ki ⊕hb1b2 ::: b8i 3 Map the 48-bit word into a 32-bit one via applying 8 fixed S-boxes. Key schedule: produces hk1;:::; k16i, 48 bits each. Each round key is obtained through bitwise permutation and selection of the initial 56 bits. For each bi , ci = Si (bi ), where Si maps 6 into 4 bits DES-peculiar feature: k0 = k15 Si are the only non-linear component of DES. The fixed permutations IP, FP=IP−1, have no effect on the security; Si described as a 4×16 look-up tables: 1st and 2nd input bit ! row IP and FP were motivated by the ease of laying out the circuit wires index, 3rd to 6th bit ! column index, each cell contains 4 output bits 4 Apply a fixed bitwise permutation specified by the P-box G. Pelosi, A. Barenghi (DEIB) Block Ciphers and Modes of Operation 13 / 48 G. Pelosi, A. Barenghi (DEIB) Block Ciphers and Modes of Operation 14 / 48 DES Round DES Properties F-function Complementation property Li = Ri−1; Ri = Li−1 ⊕ F(ki; Ri−1) ==half − word (Li ; Ri ) size :32−bit Inverting the bit values of the input ptx m and key k, yields a ctx equal to F(ki; Ri−1) = P-box(S-box(ki ⊕ E-box(Ri−1)) ==output size :32−bit bitwise inversion of the result of DES(k; m) E-box stage DES(k; m) = DES(k; m); 8 m 2 M; 8 k 2 K 4 × 8 = 32 bits ! 6 × 8 = 48 bits Chosen-ptx attack bitwise XOR with the 6 × 8 = 48-bit round Collect ptx-ctx pairs (m1;c1), (m1;c2), with c1=DES(k;m1), c2=DES(k;m1) subkey Noting that c = DES(k; m ) , c = DES(k; m ) S-box stage 2 1 2 1 6 × 8 = 48 bits ! Test for any ke, if either DES(ke; m1) yields c1 or c2.