1 / 80

Introduction to Modern Cryptography

Introduction to Modern Cryptography. 7.4~8.2 Cryptographic Applications of Number-Theoretic Assumptions 이광 우 2009 년 9 월 5 일 kwlee @security.re.kr. 7.4 Cryptographic Applications of Number-Theoretic Assumptions 7.4.1 One-Way Functions and Permutations

cindy
Download Presentation

Introduction to Modern Cryptography

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Modern Cryptography 7.4~8.2 Cryptographic Applications of Number-Theoretic Assumptions 이광우 2009년 9월 5일 kwlee@security.re.kr

  2. 7.4 Cryptographic Applications of Number-Theoretic Assumptions 7.4.1 One-Way Functions and Permutations 7.4.2 Constructing Collision-Resistant Hash Functions 8.1 Algorithms for Factoring 8.1.1 Pollard’s p-1 Method 8.2.2 Pollard’s Rho Method 8.2.3 The Quadratic Sieve Algorithm 8.2 Algorithms for Computing Discrete Logarithms 8.2.1 The Baby-Step/Giant-Step Algorithm 8.2.2 The Pohling-Hellman Algorithm 8.2.3 The Discrete Logarithm Problem in ZN 목 차

  3. Chapter 7.4 Cryptographic Applications of Numter-Theoretic Assumptions

  4. Cryptographic Applications of Numter-Theoretic Assumptions • One-way Functions and Permutations • n-bit string을 n-bit string에 대응하는 함수 • 단순히 을 의미하는 것은 아님

  5. Cryptographic Applications of Numter-Theoretic Assumptions • The inverting experiment InvertA,f (n) : • 1. Choose input x{0,1}n. Compute y:=f(x) • 2. A is given 1n and y as input, and outputs x’ • 3. The output of the experiment is defined to be 1 if and only if f(x’)=y.

  6. Cryptographic Applications of Numter-Theoretic Assumptions • One-way Definition 7.66 A function f :{ 0, 1 }*→{ 0, 1 }* is one-way if the follwing two conditions hold: 1. (Easy to compute: ) There exists a polynomial-time algorithm that on input x outputs f(x) 2. (Hard to invert: ) For all probabilistic polynomial-time algorithms A there exists a negligible function negl such that Pr[InvertA,f (n)=1]≤negl(n).

  7. 알고리즘 7.67

  8. Cryptographic Applications of Numter-Theoretic Assumptions • ??? Theorem 7.68 If the factoring problem is hard relative to Gen, then fGEN is a one-way function.

  9. Cryptographic Applications of Numter-Theoretic Assumptions • *One-Way Permutations

  10. Cryptographic Applications of Numter-Theoretic Assumptions • Family of functions Definition 7.69 A tuple =(Gen, Samp, f) of probabilistic polynomial-time algorithms is a family of functions if the following hold: 1. The parameter generation algorithm Gen, on input 1n, outputs parameters I with | I |  n. Each value of I output by Gen defines set DI and RI that constitute the domain and range, respectively, of a function fI defined below. 2. The sampling algorithm Samp, on input I, outputs a uniformly distributed element of DI (except possibly with probability negligible in |I | ) . 3. The deterministic evaluation algorithm f, on input I and xDI, outputs an element yRI. We write this as y:=fI(x).  is a family of permutations if, for each value of I output by Gen(1n), it holds that DI=RI and the function fI : DIDI is a bijection.

  11. Cryptographic Applications of Numter-Theoretic Assumptions • The inverting experiment InvertA,(n) : • 1. Gen(1n) is run to obtain I, and then Samp(I) is run to obtain a random x DI. Finally, y:=fI(x) is computed. • 2. A is given I and y as input, and output x’. • 3. The output of the experiment is defined to be 1 if fI(x’)=y, and 0 otherwise.

  12. Cryptographic Applications of Numter-Theoretic Assumptions • ??? Definition 7.70 A family of functions/permutations =(Gen, Samp, f) is one-way if for all probabilistic polynomial-time algorithms A there exists a negligible function negl such that Pr[InvertA,(n)=1]  negl(n)

  13. Cryptographic Applications of Numter-Theoretic Assumptions • A family of One-waypermutations (assuming the RSA problem is hard relative to GenRSA) • Construction 7.71 • Let GenRSA be as in Section 7.2.4. Define a family of permutations as follows: • Gen : on input 1n, run GenRSA(1n) to obtain (N, e, d) and output I=<N, e>. Set I = *N . • Samp: on input I=<N ,e>, choose a random element of *N. • f : on input I = <N,e> and x  *N, output [xe mod N].

  14. Constructing Collision-Resistant Hash Functions • ????

  15. Constructing Collision-Resistant Hash Functions • A Fiexed-length hash function • Construction 7.72 • Let  be as described in the text. Define a fixed-length hash function (Gen, H) as follows: • Gen : on input 1n, run (1n) to obtain (, q, g) and then select h. Output s:=<, q, g, h> as the key. • H : Given a key s=<, q, g, h> and input (x1, x2)qXq, output Hs(x1, x2):=gx1hx2

  16. Constructing Collision-Resistant Hash Functions • ??? • Proof : Let  =(Gen, H) as in Construction 7.72, and let A be a probabilistic polynomial-time algorithm with Theorem 7.23 If the discrete logarithm problem is hard relative to , then Construction 7.72 is a fixed-length collision-resistant has function (subject to the discussion regarding compression, above).

  17. Constructing Collision-Resistant Hash Functions • Algorithm’ : • The algorithm is given , q, g, h as input. • 1. Let s:=<,q,g,h>. Run A(s) and obtain output x and x’.

  18. Constructing Collision-Resistant Hash Functions • ??? Theorem 7.24 If there exists a probabilistic polynomial-time algorithm  relative to which the discrete logarithm problem is hard, then there exists a collision resistant has function.

  19. Chapter 8.1 Algorithms for Factoring

  20. Algorithm for factoring • One-way Functions and Permutations • n-bit string을 n-bit string에 대응하는 함수 • 단순히 을 의미하는 것은 아님

  21. Cryptographic Applications of Numter-Theoretic Assumptions • One-way Functions and Permutations • n-bit string을 n-bit string에 대응하는 함수 • 단순히 을 의미하는 것은 아님

  22. Cryptographic Applications of Numter-Theoretic Assumptions • One-way Functions and Permutations • n-bit string을 n-bit string에 대응하는 함수 • 단순히 을 의미하는 것은 아님

  23. Constructing CPA-Secure Encryption Schemes • Pseudorandom Function • Keyed Function • 두 개의 입력을 가지는 함수(Two-Input Function) • 첫 번째 입력은 Key를 나타내며, 이후 k로 표시 • 두 번째 입력은 일반적인 입력값 • 일반적으로 Key k는 선택된 이후 고정되기 때문에 본 교재에서는 고정된 k를 가진, 하나의 입력값을 지닌 Keyed Function에 초점을 맞춤; • 일반적으로 Keyed Function은 Length-Preserving을 가정함

  24. Constructing CPA-Secure Encryption Schemes • Pseudorandom Function Length-Preserving • 따라서, 으로 고정하면 는 n-bit string에서 n-bit string으로 대응하는 함수 • k와 x가 주어졌을때를 deterministic polynomial time안에 계산할 수 있는 알고리즘이 존재할 때, F는 효율적이다고 정의하며, 교재에서는 효율적인 F만 다룸

  25. Constructing CPA-Secure Encryption Schemes • Pseudorandom Function • 만약 Fk(무작위로 선택한 key k)와 f(n-bit string에서 n-bit string으로 대응하는 모든 함수의 집합에서 무작위로 추출한 함수)를 polynomial-time adversary가 구별할 수 없을 때, keyed function F는 pseudorandom function이라 함 F( k, x )의집합 n-bit string에서 n-bit string에 대응하는 모든 함수 집합 무작위로 k를 선택하여 결정한 함수 Fk 임의로 선택한 함수 f Indistinguishable

  26. Constructing CPA-Secure Encryption Schemes • Pseudorandom Function • Distinguisher D • Random function f와 Random하게 선택한 k로 인해 결정되는 Function F를 Distinguisher가 구분할 수 없으면, F는 Pseudorandom Function • D는 오라클에 접근이 가능함 • F 또는 f에 대해서 모두 접근이 가능 • 오라클은Black-box로 취급되며, 공격자 A에게도 오라클은 동일하게 제공됨 • 오라클은Deterministic Function으로 동일한 입력에 대해서는 동일한 값을 출력

  27. Constructing CPA-Secure Encryption Schemes • Pseudorandom Function Definition 3.23 Let F : { 0, 1 }* X { 0, 1 }* → { 0, 1 }* be an efficient, length-preserving, keyed function. We say that F is a pseudorandom function if for all probabilistic polynomial-time distinguisher D, there exists a negligible function neglsuch that | Pr[DFk(∙)(1n) = 1] – Pr[Df(∙)(1n) = 1 | ≤ negl(n), where k ← { 0, 1 }n is chosen uniformly at random and f is chosen uniformly at random from the set of functions mapping n-bit strings to n-bit strings.

  28. Constructing CPA-Secure Encryption Schemes • On the Existence of Pseudorandom Functions • Pseudorandom Function은 실존하는가? • 실제로 블록 암호 알고리즘이 Pseudorandom Function과 유사하게 동작하는 것으로 여겨짐 • 3.6.3에서 블록 암호에 대해 간략히 다루며 더 상세한 내용은 5장에서 다룸

  29. Constructing CPA-Secure Encryption Schemes • Using Pseudorandom Function in Cryptography • 암호의 구성(Cryptographic Construction)과 Pseudorandom Function • Pseudorandom Function은 암호문 블록을 구성하는데 매우 효율적인 방법임이 다양한 암호 구성을 통해 밝혀졌음 • 본 절에서는 Pseudorandom Function을 CPA-Secure 특성을 갖는 암호 구성에 적용하며, 4장에서는 MAC(Message Authentication Code)를 구성하는데 사용함 • Pseudorandom Function을 사용하는 가장 큰 이유 중 하나는 Pseudorandom Function을 사용한 구성은 깔끔하고(Clean) 우아한(Elegant) 분석이 가능하기 때문

  30. Constructing CPA-Secure Encryption Schemes • Using Pseudorandom Function in Cryptography Step 1 • Pseudorandom Function 대신 실제 Random Function을 사용한다고 가정하고 암호의 안전성을 증명 Step 1 • Random Function 대신 Pseudorandom Function을 사용해도 공격자가 암호를 파괴(break)할 수 없음을 증명 It must implicitly be distinguishing the function from random !!

  31. Constructing CPA-Secure Encryption Schemes • CPA-Secure Encryption Scheme from Pseudorandom Functions • Pseudorandom Function을 사용한 Encryption Scheme • Enck(m) = Fk(m) • Pseudorandom Function을 사용한 가장 단순한 Encryption Scheme은 위와 같이 Pseudorandom Function을 그대로 암호화에 적용하는 방법 • 그러나 Fk(m)은 Deterministic Function이기 때문에 CPA-Secure하지 않음(3.5절 참조)

  32. Constructing CPA-Secure Encryption Schemes • CPA-Secure Encryption Scheme from Pseudorandom Functions Fresh random String r • Random String R • Deterministic Function을 Probabilistic으로 변경하기 위해 사용 • R을 사용하면, 매번 다른 Pad값이 사용되기 때문에 Probabilistic Function • 물론, 확률적으로 같은 r값이 여러 번 반복해서 사용될 수도 있음 Pseudorandom Function Pad Plaintext Ciphertext XOR

  33. Constructing CPA-Secure Encryption Schemes • CPA-Secure Encryption Scheme from Pseudorandom Functions • Construction 3.24 • Let F be a pseudorandom function. Define a private-key encryption scheme for message of length n as follows. • Gen : on input 1n, choose k ← { 0, 1 }n uniformly at random and output it as the key • Enc : on input a key k ∈ { 0, 1 }n and a message m ∈ { 0, 1 }n, choose r ← { 0, 1 }n uniformly at random and output the ciphertext • c := < r, Fk(r) XOR m > • Dec : on input a key k ∈ { 0, 1 }n and a ciphertext c = < r, s >, output the plaintext message • m := Fk(r) XOR s

  34. Constructing CPA-Secure Encryption Schemes • CPA-Secure Encryption Scheme from Pseudorandom Functions • Construction 3.24는 Pseudorandom Function을 사용한 CPA-Secure Encryption Scheme을 나타냄 • Construction 3.24의 안전성은 Pseudorandom Function Fk(r)와 Random Function f를 공격자가 구별할 수 없음(Indistinguishable)을 바탕으로 함 • Random value r이 반복되어 사용되지 않는다고 가정하면 One-time Pad와 유사함

  35. Constructing CPA-Secure Encryption Schemes • CPA-Secure Encryption Scheme from Pseudorandom Functions Theorem 3.25 If F is a pseudorandom function, then Construction 3.24 is a fixed-length private-key encryption scheme for messages of length n that has indistinguishable encryption under a chosen-plaintext attack.

  36. Constructing CPA-Secure Encryption Schemes • CPA-Secure Encryption Scheme from Pseudorandom Functions • Proof : • Construction 3.24에서 Pseudorandom Function 대신 실제 Random Function을 사용하는 Encryption Scheme • q(n)을 공격자가 오라클에 시도할 수 있는 최대 query 횟수라하면모든 공격자 A에 대해 아래 식이 성립 (3.4)

  37. Constructing CPA-Secure Encryption Schemes • CPA-Secure Encryption Scheme from Pseudorandom Functions • Proof : • (3.4)의 유도과정 • 메시지 m이 암호화 될 때에는 항상 임의의 r←{0, 1}n을 선택하여 <r, f(r) XOR m >으로 암호화 • c:= < rc, f(rc) XOR mb >라 하면, 두 가지 경우가 발생함 • Case 1: rc가 A의 query에 대한 암호문을 생성할 때 한번 이상 반복되어 사용되는 경우 • Case 2: rc가 A의 query에 대한 암호문을 생성할 때 한번도 반복되지 않는 경우

  38. Constructing CPA-Secure Encryption Schemes • CPA-Secure Encryption Scheme from Pseudorandom Functions • Proof : • Case 1 • 만약, 이전에 사용된 rc가반복되어 사용되는 경우 공격자는 어떤 평문이 암호화되었는지 알 수 있음 • 메시지 m의 암호문 <r, s>에서 < s XOR m >을통해 f(r)을 알 수 있으므로, 이 f(r)을 바탕으로 암호화된 m을 결정할 수 있음 • q(n)을 공격자 A에게 허용된 최대 query 횟수라고 하면, 반복된 r을 획득할 수 있는 최대 확률은 q(n)/2n

  39. Constructing CPA-Secure Encryption Schemes • CPA-Secure Encryption Scheme from Pseudorandom Functions • Proof : • Case 2 • rc가 반복되어 사용되지 않는 경우, 공격자 A는 f(rc) 값을 알 수 없기 때문에, 공격에 성공할 확률(b’=b)은정확히 ½ • Repeat를 rc가 오라클에서 한번 이상 사용되는 사건이라고 하면, Repeat가 발생할 최대 확률은 q(n)/2n • Case 2에서는 Repeat가 한번도 발생하지 않으므로 발생할 확률은 0

  40. Constructing CPA-Secure Encryption Schemes • CPA-Secure Encryption Scheme from Pseudorandom Functions • Proof : • Case 1과 Case 2를 고려하여 (3.4)를 유도

  41. Constructing CPA-Secure Encryption Schemes • CPA-Secure Encryption Scheme from Pseudorandom Functions • Proof : • 이제 공격자를 PPT에 한정하고 를정의 (3.5)

  42. Constructing CPA-Secure Encryption Schemes • CPA-Secure Encryption Scheme from Pseudorandom Functions • Proof : • 공격자 A는 PPT이므로, 최대 query 횟수는 다항식 q(.)로 표현가능 • (3.4)가 이를 반영하고 있으므로, PPT 공격자 A의 성공확률은 아래와 같이 나타낼 수 있음 • (3.5)에 의해 아래 식도 유도 가능

  43. Constructing CPA-Secure Encryption Schemes • CPA-Secure Encryption Scheme from Pseudorandom Functions • Proof : • 만약 이 negligible하지 않으면, 두 수식의 차이 역시 negligible하지 않으므로, 직관적으로 Pseudorandom Function과 Random Function을 구별할 수 있음 • 공격자 A는 Pseudorandom Function과 Random Function을 구별하기 위해 Distinguisher D를 사용

  44. Constructing CPA-Secure Encryption Schemes • CPA-Secure Encryption Scheme from Pseudorandom Functions Distinguisher D: D is given input 1n and access to an oracle O : {0, 1}n→{0, 1}n Run A(1n). Whenever A queries its encryption oracle on a message m, answer this query in the following way:(a) Choose r←{0, 1}n uniformly at random.(b) Query O(r) and obtain response s’.(c) Return the ciphertext <r, s’ XOR m > to A. When A outputs message m0, m1 ∈ {0, 1}n, choose a random bit b←{0, 1} and then:(a) Choose r←{0, 1}n uniformly at random.(b) Query O(r) and obtain response s’.(c) Return the ciphertext <r, s’ XOR mb > to A. Continue Answering any encryption oracle queries of A as before. Eventually, A outputs a bit b’. Output 1 if b’=b, and ouput 0 otherwise.

  45. Constructing CPA-Secure Encryption Schemes • CPA-Secure Encryption Scheme from Pseudorandom Functions • Proof : • Case 1: D의 오라클이 Pseudorandom Function인 경우 • 이 경우 D가 Pseudorandom Function을 인지할 확률은 의 시험과 동일 • Case 2: D의오라클이RandomFunction인경우 • 이 경우 D가 Pseudorandom Function을 인지할 확률은 의 시험과 동일

  46. Constructing CPA-Secure Encryption Schemes • CPA-Secure Encryption Scheme from Pseudorandom Functions • Proof : • (3.4), (3.5) 및 위의 수식들을 연합하면, 아래와 같음 • F를 Pseudorandom Function이라고 가정하였으므로, 는 반드시 negligible해야 함 • q는 다항식이므로, 은 negligible • 따라서 는 CPA-Secure

  47. Constructing CPA-Secure Encryption Schemes • CPA-Secure Encryption Scheme from Pseudorandom Functions • 임의의 길이의 m에 대한 CPA-Secure • 앞서 3.5절에서 언급했던 바와 같이 Fix-lengthm에 대해 CPA-Secure한 scheme은 임의의 길이에 대해서도 CPA-Secure • m = m1, m2, … , ml이라고 하고 각 mi는 n-bit block이라고 하면, < r1, Fk(r1) XOR m1, r2, Fk(r2) XOR m2, … , rl, Fk(rl) XOR ml >로 나타낼 수 있음 COROLLARY 3.26 If F is a pseudorandom function, then the scheme sketched above is a private-key encryption scheme for arbitrary-length messages that has indistinguishable encryption under a chosen-plaintext attack.

  48. Constructing CPA-Secure Encryption Schemes • CPA-Secure Encryption Scheme from Pseudorandom Functions • Efficiency of Construction 3.24 • Construction 3.24에서언급하고 있는 scheme은 암호문의 길이가 평문의 길이의 두 배에 이르는 문제점을 지니고 있음 • Section 3.6.4에서 암호문의 길이를 획기적으로 줄이는 방법에 대해 소개함

  49. Constructing CPA-Secure Encryption Schemes • Pseudorandom Permutation and Block Ciphers • Keyed Permutation • Keyed Function이 모든 k에대해 일대일 대응인 경우 • Keyed Function은 Length-Preserving이기 때문에, Keyed Permutation은 Keyed Function 중 전단사 함수인 것을 의미 • 일반적으로 Keyed Permutation은 key, input, output의 길이가 모두 동일하다고 가정 • 실제 구현상에서는 input과 output의 길이만 동일하고(block size) key는 이에 비해 짧아도 되고 길어도 됨 • Efficient Keyed Permutation • k와 x가 주어졌을 때, Fk(x)와 Fk-1(x)를 Polynomial Time 안에 계산할 수 있는 알고리즘이 존재하면, Keyed Permutation은 Efficient하다고 함

  50. Constructing CPA-Secure Encryption Schemes • Pseudorandom Permutation and Block Ciphers • Pseudorandom Permutation & Pseudorandom Function • Pseudorandom Function의 정의에서 Random Function 대신 Random Permutation을 사용하면 Pseudorandom Permutation을 정의할 수 있음 • 직관적으로 Pseudorandom Function과 Pseudorandom Permutation은 동일함 • 만약 f(x) = f(y)를 충족하는 쌍을 발견할 수 있다면, Pseudorandom Function과 Pseudorandom Permutation을 구별할 수 있음 • 그러나, 이를 충족하는 x, y를 Polynomial Time안에 찾아낼 확률은 negligible하기 때문에, 직관적으로 Pseudorandom Function과 Pseudo Permutation은 동일함

More Related