Lecture 2 – Blockciphers and Key Recovery Security

Lecture 2 – Blockciphers and Key Recovery Security

Lecture 2 – Blockciphers CS-466 Applied Cryptography and key Adam O’Neill recovery security Perfect security => keys as long as messages. Setting the Stage Perfect security => keys as long as messages. From now on we move to the setting Setting of computationally-bounded the Stage adversaries. Perfect security => keys as long as messages. From now on we move to the setting Setting of computationally-bounded the Stage adversaries. Today: first lower-level primitive, blockciphers Notation Notation 0, 1 n is the set of n-bit strings and 0, 1 is the set of all strings of { } { }⇤ finite length. By " we denote the empty string. If S is a set then S denotes its size. Example: 0, 1 2 = 4. | | |{ } | If x is a string then x denotes its length. Example: 0100 = 4. | | | | If m 1 is an integer then let Z = 0, 1,...,m 1 . ≥ m { − } By x $ S we denote picking an element at random from set S and assigning it to x.ThusPr[x = s]=1/ S for every s S. | | 2 Mihir Bellare UCSD 3 Functions Functions Let n 1 be an integer. Let X ,...,X and Y be (non-empty) sets. ≥ 1 n By f : X X Y we denote that f is a function that 1 ⇥ ···⇥ n ! Takes inputs x ,...,x ,wherex X for 1 i n • 1 n i 2 i and returns an output y = f (x ,...,x ) Y . • 1 n 2 We call n the number of inputs (or arguments) of f .Wecall X X the domain of f and Y the range of f . 1 ⇥ ···⇥ n Example: Define f : Z Z Z by f (x , x )=(x + x ) mod 3. This 2 ⇥ 3 ! 3 1 2 1 2 is a function with n = 2 inputs, domain Z Z and range Z . 2 ⇥ 3 3 Mihir Bellare UCSD 4 Permutations Permutations Suppose f : X Y is a function with one argument. We say that it is a ! permutation if X = Y , meaning its domain and range are the same set. • There is an inverse function f 1 : Y X such that f 1(f (x)) = x • − ! − for all x X . 2 This means f must be one-to-one and onto: for every y Y there is a 2 unique x X such that f (x)=y. 2 Mihir Bellare UCSD 5 Permutations versus functions example Example Consider the following two functions f : 0, 1 2 0, 1 2,where { } ! { } X = Y = 0, 1 2: { } x 00 01 10 11 x 00 01 10 11 f (x) 01 11 00 10 f (x) 01 11 11 10 A permutation Not a permutation x 00 01 10 11 1 f − (x) 10 00 11 01 Its inverse Mihir Bellare UCSD 7 Function familiesFunction families A family of functions (also called a function family) is a two-input function F :Keys D R. For K Keys we let F :D Rbedefinedby ⇥ ! 2 K ! F (x)=F (K, x)forallx D. K 2 The set Keys is called the key space. If Keys = 0, 1 k we call k the • { } key length. The set D is called the input space. If D = 0, 1 ` we call ` the input • { } length. The set R is called the output space or range. If R = 0, 1 L we call L • { } the output length. Example: Define F : Z Z Z by F (K, x)=(K x) mod 3. 2 ⇥ 3 ! 3 · This is a family of functions with domain Z Z and range Z . • 2 ⇥ 3 3 If K =1thenF : Z Z is given by F (x)=x mod 3. • K 3 ! 3 K Mihir Bellare UCSD 8 Block ciphers: Definition What is a blockcipher? Let E:Keys D R be a family of functions. We say that E is a block ⇥ ! cipher if R = D, meaning the input and output spaces are the same set. • EK :D Disapermutation for every key K Keys, meaning has an • ! 1 1 2 inverse E − :D DsuchthatE − (E (x)) = x for all x D. K ! K K 2 1 1 1 We let E :Keys D D, defined by E (K, y)=E − (y), be the − ⇥ ! − K inverse block cipher to E. 1 In practice we want that E, E − are efficiently computable. If Keys = 0, 1 k then k is the key length as before. If D = 0, 1 ` we call { } { } ` the block length. Mihir Bellare UCSD 9 Block ciphers:Blockcipher Examples Example Block cipher E: 0, 1 2 0, 1 2 0, 1 2 (left), where the table entry { } ⇥ { } ! { } corresponding to the key in row K and input in column x is EK (x). Its inverse E 1: 0, 1 2 0, 1 2 0, 1 2 (right). − { } ⇥ { } ! { } 00 01 10 11 00 01 10 11 00 11 00 10 01 00 01 11 10 00 01 11 10 01 00 01 11 10 01 00 10 10 11 00 01 10 10 11 00 01 11 11 00 10 01 11 01 11 10 00 1 1 Row 01 of E equals Row 01 of E ,meaningE = E − • − 01 01 Rows have no repeated entries, for both E and E 1 • − Column 00 of E has repeated entries, that’s ok • Rows 00 and 11 of E are the same, that’s ok • Mihir Bellare UCSD 10 Other examples? ) ' K OTP Ex ( x ) x ( identity ) ) = X I Ek ( x Exercise Exercise Let E:Keys D Dbeablockcipher.IsE a permutation? ⇥ ! YES • NO • QUESTION DOESN’T MAKE SENSE • WHO CARES? doesn't • . permutation for two - argument This is an exercise in correctmakemathematicalsense language. function Mihir Bellare UCSD 12 Answer: No,becauseF0(1) = F0(2) so F0 is not a permutation. Question: Is F1 a permutation? Answer: Yes. But that alone does not make F ablockcipher. Exercise Another Exercise Above we had given the following example of a family of functions: F : Z Z Z defined by F (K, x)=(K x) mod 3. 2 ⇥ 3 ! 3 · Question: Is F a block cipher? Why or why not? Mihir Bellare UCSD 15 Block cipher usageBlockcipher Usage Let E : 0, 1 k 0, 1 ` 0, 1 ` be a block cipher. It is considered { } ⇥ { } ! { } public. In typical usage K $ 0, 1 k is known to parties S, R, but not given to adversary A. • { } S, R use E for encryption • K Leads to security requirements like: Hard to get K from y1, y2,...;Hardto get xi from yi ;... Mihir Bellare UCSD 19 Shannon’s Design Criterion (Informal) Shannon’s Design Criterion (Informal) • Confusion: Each Bit of the output should depend on many Bits of the input Shannon’s Design Criterion (Informal) • Confusion: Each Bit of the output should depend on many Bits of the input • Diffusion: Changing one Bit of the input should “re-randomize” the entire output (avalanche effect) Shannon’s Design Criterion (Informal) • Confusion: Each Bit of the output should depend on many Bits of the input • Diffusion: Changing one Bit of the input should “re-randomize” the entire output (avalanche effect) • Not really solved (for many input-outputs) until much later: Data Encryption Standard (DES) DES History History of DES 1972 – NBS (now NIST) asked for a block cipher for standardization 1974 – IBM designs Lucifer Lucifer eventually evolved into DES. Widely adopted as a standard including by ANSI and American Bankers association Used in ATM machines Replaced (by AES) in 2001. Mihir Bellare UCSD 9 DES parameters DES Parameters Key Length k = 56 Block length ` = 64 So, DES: 0, 1 56 0, 1 64 0, 1 64 { } ⇥ { } ! { } 1 56 64 64 DES− : 0, 1 0, 1 0, 1 { } ⇥ { } ! { } Mihir Bellare UCSD 10 DES Construction DES Construction function DES (M)//K = 56 and M = 64 K | | | | (K ,...,K ) KeySchedule(K)//K = 48 for 1 i 16 1 16 | i | M IP(M) Parse M as L R // L = R = 32 0 k 0 | 0| | 0| for i = 1 to 16 do Li Ri 1 ; Ri f (Ki , Ri 1) Li 1 1 − − ⊕ − C IP− (L R ) 16 k 16 return C Round i: Invertible given Ki : Mihir Bellare UCSD 11 DES Construction Inverse function DES (M)//K = 56 and M = 64 K | | | | (K ,...,K ) KeySchedule(K)//K = 48 for 1 i 16 1 16 | i | M IP(M) Parse M as L R // L = R = 32 0 k 0 | 0| | 0| for i = 1 to 16 do Li Ri 1 ; Ri f (Ki , Ri 1) Li 1 1 − − ⊕ − C IP− (L R ) 16 k 16 return C 1 function DES− (C)//K = 56 and M = 64 K | | | | (K ,...,K ) KeySchedule(K)//K = 48 for 1 i 16 1 16 | i | C IP(C) Parse C as L R 16 k 16 for i = 16 downto 1 do Ri 1 Li ; Li 1 f (Ki , Ri 1) Ri − 1 − − ⊕ M IP− (L R ) 0 k 0 return M Mihir Bellare UCSD 24 Round function DES Construction function f (J, R)//J = 48 and R = 32 | | | | R E(R); R R J ⊕ Parse R as R R R R R R R R // R =6for1 i 8 1 k 2 k 3 k 4 k 5 k 6 k 7 k 8 | i | for i =1,...,8 do Ri Si (Ri )//Each S-box returns 4 bits R R R R R R R R R // R = 32 bits 1 k 2 k 3 k 4 k 5 k 6 k 7 k 8 | | R P(R);return R E P 32 1 2 3 4 5 16 7 20 21 456789 29 12 28 17 8910111213 1152326 12 13 14 15 16 17 5183110 16 17 18 19 20 21 282414 20 21 22 23 24 25 32 27 3 9 24 25 26 27 28 29 19 13 30 6 28 29 30 31 32 1 22 11 4 25 Mihir Bellare UCSD 26 Key RecoveryKey-Recovery Attacks Attack Scenario Let E:Keys D RbeablockcipherknowntotheadversaryA.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    60 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us