
Block Ciphers c EliBiham-March14,2011 89 Block Ciphers Block Ciphers and Stream Ciphers In practical ciphers the plaintext M is divided into fixed-length blocks M = M1M2 ...MN . Then, each block Mi is encrypted to the ciphertext block Ci = EK(Mi), and the results are concatenated to the ciphertext C = C1C2 ...CN . There are two major kind of ciphers, which differ in the way the plaintexts are encrypted: c EliBiham-March14,2011 90 Block Ciphers † Stream Ciphers The blocks are encrypted sequentially, each block is encrypted by a distinct transformation, which might depend on 1. the previous encrypted blocks, 2. the previous transformation, 3. the block number, 4. the key. This information from one block is kept in memory between the encryption of this block and the succeeding block, for use during the encryption of the succeeding block. Usually, stream ciphers use blocks of either one bit or eight bits (one character). c EliBiham-March14,2011 91 Block Ciphers Block Ciphers All the blocks are encrypted in the same way, under exactly the same transfor- mation (no memory): C1 = E(M1), C2 = E(M2), etc. Encryption transformation should not be vulnerable to known plaintext attacks. Attacker should not be able to collect (almost) all the plaintext/ciphertext blocks pairs, keep the transformation table T (M) = C, and use it to en- crypt/decrypt if they do not know the mathematical formulation of the trans- formation (and in particular the key). Thus, the block size should be large, and the number of distinct possible values in a plaintext block should be larger than the minimal allowed complexity of an attack. In the past blocks of 64 bits were used, which have 264 possibilities, whose table storing costs at least 264 known plaintexts and memory space. Nowadays, the standard block size is 128 bits. c EliBiham-March14,2011 92 Block Ciphers Block Ciphers Block ciphers are substitution ciphers in which the plaintext and the cipher- text blocks are binary vectors of length N. When N = 64 there are 264 different plaintexts/ciphertexts, and when N = 128 there are 2128 different plaintexts/ciphertexts. N For each key the encryption function EK(·) is a permutation from {0, 1} to itself. DK(·) is the decryption function (the inverse permutation), such that DK(EK(·)) = EK(DK(·)) = Identity. c EliBiham-March14,2011 93 Block Ciphers The Data Encryption Standard - DES 1. The most widely used cipher in civilian applications. 2. Developed by IBM; Evolved from Lucifer. 3. Accepted as an US NBS standard in 1977, and later as an international standard. 4. A block cipher with N = 64 bit blocks. 5. 56-bit keys (eight bytes, in each byte seven bits are used; the eighth bit can be used as a parity bit). 6. Exhaustive search requires 256 encryption steps (255 on average). c EliBiham-March14,2011 94 Block Ciphers The Data Encryption Standard - DES (cont.) 7. Iterates a round-function 16 times in 16 rounds. The round-function mixes the data with the key. 8. Each round, the key information entered to the round function is called a subkey. The subkeys K1,..., K16 are computed by a key scheduling algorithm. c EliBiham-March14,2011 95 Block Ciphers † DES Outline Plaintext (P) Key (K) IP PC-1 K1 CD F ROL1 ROL1 K2 PC-2 F ROL1 ROL1 K3 PC-2 F ROL2 ROL2 Ki PC-2 F ROL ROL K13 PC-2 F ROL2 ROL2 K14 PC-2 F ROL2 ROL2 K15 PC-2 F ROL2 ROL2 K16 PC-2 F ROL1 ROL1 PC-2 FP Ciphertext (T) c EliBiham-March14,2011 96 Block Ciphers † The F -Function input (32 bits) E 48 bits subkey (48 bits) S1 S2 S3 S4 S5 S6 S7 S8 S1 S2 S3 S4 S5 S6 S7 S8 E E E E E E E E K K K K K K K K S1 S2 S3 S4 S5 S6 S7 S8 I I I I I I I I S1 S2 S3 S4 S5 S6 S7 S8 S1 S2 S3 S4 S5 S6 S7 S8 O O O O O O O O P output (32 bits) c EliBiham-March14,2011 97 Block Ciphers The Initial Permutation (IP) The following tables describe for each output bit the number of the input bit whose value enters to the output bit. For example, in IP , the 58’th bit in the input becomes the first bit of the output. IP: FP=IP−1: 58 50 42 34 26 18 10 2 40 8 48 16 56 24 64 32 60 52 44 36 28 20 12 4 39 7 47 15 55 23 63 31 62 54 46 38 30 22 14 6 38 6 46 14 54 22 62 30 64 56 48 40 32 24 16 8 37 5 45 13 53 21 61 29 57 49 41 33 25 17 9 1 36 4 44 12 52 20 60 28 59 51 43 35 27 19 11 3 35 3 43 11 51 19 59 27 61 53 45 37 29 21 13 5 34 2 42 10 50 18 58 26 63 55 47 39 31 23 15 7 33 1 41 9 49 17 57 25 c EliBiham-March14,2011 98 Block Ciphers The P Permutation and the E Expansion P Permutes the order of 32 bits. E Expands 32 bits to 48 bits by duplicating 16 bits twice. P : E: 16 7 20 21 32 1 2 3 4 5 29 12 28 17 456789 1 15 23 26 8 9 10 11 12 13 5 18 31 10 12 13 14 15 16 17 2 8 24 14 16 17 18 19 20 21 3227 3 9 20 21 22 23 24 25 19 13 30 6 24 25 26 27 28 29 22 11 4 25 28 29 30 31 32 1 c EliBiham-March14,2011 99 Block Ciphers The S Boxes S box S1: 14 413 1 21511 8 310 612 5 9 0 7 015 7 414 213 110 61211 9 5 3 8 4 114 813 6 2111512 9 7 310 5 0 1512 8 2 4 9 1 7 511 31410 0 613 S box S2: 15 1 814 611 3 4 9 7 21312 0 510 313 4 715 2 81412 0 110 6 911 5 014 71110 413 1 5 812 6 9 3 215 13 810 1 315 4 211 6 712 0 514 9 c EliBiham-March14,2011 100 Block Ciphers The S Boxes (cont.) S box S3: 10 0 914 6 315 5 11312 711 4 2 8 13 7 0 9 3 4 610 2 8 514121115 1 13 6 4 9 815 3 011 1 212 51014 7 11013 0 6 9 8 7 41514 311 5 212 S box S4: 71314 3 0 6 910 1 2 8 51112 415 13 811 5 615 0 3 4 7 212 11014 9 10 6 9 01211 71315 1 314 5 2 8 4 315 0 610 113 8 9 4 51112 7 214 c EliBiham-March14,2011 101 Block Ciphers The S Boxes (cont.) S box S5: 212 4 1 71011 6 8 5 31513 014 9 1411 212 4 713 1 5 01510 3 9 8 6 4 2 1111013 7 815 912 5 6 3 014 11 812 7 114 213 615 0 910 4 5 3 S box S6: 12 11015 9 2 6 8 013 3 414 7 511 1015 4 2 712 9 5 6 11314 011 3 8 91415 5 2 812 3 7 0 410 11311 6 4 3 212 9 515101114 1 7 6 0 813 c EliBiham-March14,2011 102 Block Ciphers The S Boxes (cont.) S box S7: 411 21415 0 813 312 9 7 510 6 1 13 011 7 4 9 11014 3 512 215 8 6 1 4111312 3 7141015 6 8 0 5 9 2 61113 8 1 410 7 9 5 01514 2 312 S box S8: 13 2 8 4 61511 110 9 314 5 012 7 11513 810 3 7 412 5 611 014 9 2 711 4 1 91214 2 0 6101315 3 5 8 2 114 7 410 8131512 9 0 3 5 611 c EliBiham-March14,2011 103 Block Ciphers The S Boxes (cont.) How to interpret the S boxes: The representation of the S boxes use the first and sixth bits of the input as a line index (between 0 and 3), and the four middle bits as the row index (between 0 and 15). Thus, the input values which correspond to the standard description of the S boxes are 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 c EliBiham-March14,2011 104 Block Ciphers The S Boxes (cont.) Note that all the operations are linear, except for the S boxes. Thus, the strength of DES crucially depends on the choice of the S boxes. If the S boxes would be affine, the cipher becomes affine, and thus easily break- able. The S boxes were chosen with some criteria to prevent attacks. c EliBiham-March14,2011 105 Block Ciphers † The Key Scheduling Algorithm The key scheduling algorithm generates the 16 48-bit subkeys from the 56-bit key, by duplicating each key bit into about 14 of the subkeys in a particular order.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages70 Page
-
File Size-