Points on Elliptic Curve y2 by QCT277

VIEWS: 0 PAGES: 68

									            Chapter 4
           공개키 암호
                    Knapsack
                        RSA
Diffie-Hellman key exchange
 Elliptic Curve Cryptography
  Uses for Public Key Crypto
공개키(PKC) 암호
   또 다른 이름
       비대칭 암호(asymmetric cryptography)
           대칭키 암호에 대응해서 비대칭 암호라고도 함
       두 개의 키를 사용
   공개키 암호는 비교적 새로운 개념이다.
       1960년대 후반 영국의 GCHQ(Government
        Communication Headquaters)에 의해 소개됨
        이와도 별도로 1970년도 초반 대학의 연구자들
        에 의해서도 소개되었다.

                 Chapter 4 -- Public Key Cryptography   2
    PKC에 대한 오해
   PKC는 대칭키 암호보다 더 안전하다.
       두 방식 모두 암호의 안전성은 이것을 깨기 위한 계산의
        양에 달려 있다.
   PKC는 대칭키 암호를 쓸모없는 것으로 만들었다.
       PKC가 요구하는 계산의 양은 대칭키 보다 훨씬 많기 때
        문에 PKC를 사용하는데 있어서 장애물이 되고 있다.
   PKC의 키 분배는 사소한 일이다.
       PKC의 절차는 대칭키 암호 보다 더 간단하거나 효율적
        이지 않다.
       PKC의 키 분배를 위해서 공개키 구조(PKI)가 필요하다.


                Chapter 4 -- Public Key Cryptography   3
PKC의 키
   키 생성
     트랩 도어 단방향 함수(trap door one way function)에 기반을
      둔다.
   Trap door
     한 방향으로의 계산은 쉬우나 다른 방향으로의 계산은 힘들다.
     예: p와 q가 주어졌을 때, N=pq의 계산은 용이하다. 하지만 N이
      주어졌을 때 p와 q를 찾는 것은 쉽지 않다.


   메시지는 공개키(public key)로
    암호화하고 개인키(private key)
    로 복호화한다.


                Chapter 4 -- Public Key Cryptography   4
PKC의 활용(1): 메시지 암호화
   메시지 M은 Alice의 공개키로 암호화한다.
   메시지 M은 Alice의 개인키로만 복호화될 수
    있다.
                                                   누구나 Alice의
                                                   공개키를 가질 수
        M                                          있다.




                                                   하지만 Alice의
                                                   개인키는 Alice만
        M                                          갖고 있다.
            Chapter 4 -- Public Key Cryptography             5
PKC의 활용(2): 전자 서명
   전자 서명(Digital
    Signature)
       Alice는 자신의 개인키로 암
        호화하여 서명한다 (Sign).
            손으로 서명하는 것과 같
             다.
       Bob은 Alice의 공개키로 복
        호화하여 Alice의 서명을 증
        명한다.
       Alice의 개인키는 Alice만 갖
        고 있으므로 Alice 이외에는
        서명을 할 수 없다.


                     Chapter 4 -- Public Key Cryptography   6
이 책에서 PKC와 관련하여 다룰 주제
    Knanpsack
        첫번째 PKC 제안
        안전하지는 않다(insecure)
    RSA
        PKC의 대명사처럼 사용됨
    Diffie-Hellman Key Exchange
        키 교환(key exchange) 알고리즘
    ECC(Elliptic Curve Cryptography)



                 Chapter 4 -- Public Key Cryptography   7
배낭(Knapsack)




  Chapter 4 -- Public Key Cryptography   8
Knapsack 문제
   N개의 가중치의 집합 W0,W1,...,Wn-1과 합계 S가 주어졌
    을 때, 다음의 식을 만족하는 ai  {0,1}를 찾을 수
    있는가?
        S = a0W0+a1W1 +...+ an-1Wn-1
    (기술적으로, 이것은 “subset sum” 문제이다.)
   예
       가중치 (62,93,26,52,166,48,91,141)
       문제: 합계 S=302이 되는 subset을 찾으라.
       답: 62+26+166+48=302
   (general) knapsack (GK)문제는 NP-complete

                    Chapter 4 -- Public Key Cryptography   9
Knapsack 문제
   일반적인 Knapsack(GK) 문제는 풀기 힘들다.
   하지만 superincreasing knapsack (SIK) 문제는 풀기
    쉽다.
   SIK: 가중치는 모든 이전의 가중치의 합 보다 크다.
   예
       가중치 (2,3,7,14,30,57,120,251)
       문제: 합이 S=186이 되는 subset을 찾으라.
       가장 큰 가중치부터 가장 작은 가중치로 순서대로 비교해 나
        간다.
       답: 120+57+7+2=186



               Chapter 4 -- Public Key Cryptography   10
Knapsack 암호 체계
1. superincreasing knapsack (SIK)을 생성한다.
2. SIK을 “general” knapsack (GK)으로 변환한다.
       공개키: GK
       개인키: SIK와 conversion factors


   GK로 암호화한다(용이)
   개인키로 복호화하는 것은 용이하다. (암호
    문을 SIK로 변환한다.)
   개인키가 없다면, GK를 풀어야 한다(???)

                Chapter 4 -- Public Key Cryptography   11
Knapsack 암호체계
1. SIK: (2,3,7,14,30,57,120,251)
2.  m = 41, n = 491
   1.   m과 n은 서로 소수
   2.   N은 SIK 원소들의 합 보다 크다.
    그러면 GK는 다음과 같이 계산할 수 있다;

        2 x 41 mod 491 = 82
        3 x 41 mod 491 = 123
        7 x41 mod 491 = 287
        14 x 41 mod 491 = 83
        30 x 41 mod 491 = 248
        57 x 41 mod 491 = 373
        120 x 41 mod 491 = 10
        251 x 41 mod 491 = 471

3. GK : (82,123,287,83,248,373,10,471)   12
Knapsack 암호화 예
   개인키: (2,3,7,14,30,57,120,251)
        m=41, n=491, m1 mod n = 411 mod 491 = 12
   공개키: (82,123,287,83,248,373,10,471)
   예: 평문 10010110 을 암호화
        82 + 83 + 373 + 10 = 548
   복호화
       S’ · m1 = 548 · 12 = 193 mod 491 = S
       S = 193인 SIK를 구한다.(쉽다)
           120+57+14+2 = 193

       평문 10010110

                     Chapter 4 -- Public Key Cryptography   13
Knapsack 약점
   Trapdoor: modular arithmetic을 사용하여 SIK를
    “general” knapsack(GK)으로 변환한다.
   단방향: GK로 암호화하기는 쉽지만 반대로 푸는 것
    은 힘들다; SIK로 푸는 것은 쉽다.
   knapsack cryptosystem은 안전하지 않다.
       1983년에 Apple II 컴퓨터로 해독되었다.
       공격은 lattice reduction을 사용하였다.
       SIK로부터 유도해 내는 “General knapsack”은 충분히
        “general”하다고 말 할 수 없다.
       이러한 특별한 knapsack은 풀기가 쉽다.


                 Chapter 4 -- Public Key Cryptography   14
                                        Ron Rivest


         It’s me!!!




RSA




      Chapter 4 -- Public Key Cryptography           15
RSA
   가장 어려운 계산은?
       Addition           Multiplication             Factorization
    Easy                                                     Difficult

             123                  123                     221 = ?x?
           + 654                x 654                     221/2 =
           --------             ---------                 221/3 =
            777                  492                      221/5 =
                                 615                      221/7 =
                                738                       221/11 =
                                -----------               221/13 =
                                80442                  221 = 13 x 17



                      Chapter 4 -- Public Key Cryptography               16/40
RSA
   GCHQ의 Cocks에 의해 만들어졌으며, 이와는 독
    립적으로 MIT의 Rivest, Shamir, Adleman에 의
    해서도 만들어졌다.
   P와 q: 두 개의 큰 소수(prime numbers)
   N = pq : modulus
   (p-1)(q-1)와 “서로 소수”인 e를 선택한다.
   ed = 1 mod (p-1)(q-1)인 d를 찾는다.
   공개키 : (N,e)
   개인키 : d

              Chapter 4 -- Public Key Cryptography   17
RSA
   메시지 M의 암호화
    C = Me mod N
    

 암호문 C의 복호화
   M = Cd mod N

   e 와 N은 공개되어있다.
   만약 N이 소수 분해(factoring)할 수 있다면, 공
    격자는 ed = 1 mod (p1)(q1)이므로 e를 사용하여
    d를 찾아낼 수 있다.
   N을 소수 분해할 수 있다면 RSA를 깰 수 있다.
   소수분해 이외에 RSA를 깨는 방법이 존재하는지는
    아직 알려져 있지 않다.

             Chapter 4 -- Public Key Cryptography   18
Does RSA Really Work?
   C = Me mod N이 주어질 때, 다음과 같이 되는 것을 보여야
    한다.
     M = Cd mod N = Med mod N where M < N
   오일러 정리(Euler’s Theorem)
       만약 M과 N이 “서로 소”라면, M(N) = 1 mod N
   그렇다면 다음이 성립한다:
     ed = 1 mod (p  1)(q  1)
     “mod”의 정의에 의해서 ed = k(p  1)(q  1) + 1
     (N) = (p  1)(q  1)
     그러면 ed  1 = k(p  1)(q  1) = k(N)
   Med = M(ed  1) + 1 = MMed  1 = MMk(N) = M(M(N))k mod N =
    M1k mod N = M mod N


                      Chapter 4 -- Public Key Cryptography            19
간단한 RSA 사용 예(1)
   큰 소수 선택: p = 11, q = 3
   그러면 N = pq = 33, (p1)(q1) = 20
   e = 3 (20과 서로 소수) 선택
   ed = 1 mod 20 가 되는 d = 7를 찾음
   공개키: (N, e) = (33, 3)
   개인키: d = 7




              Chapter 4 -- Public Key Cryptography   20
간단한 RSA 사용 예(2)
   공개키: (N, e) = (33, 3)
   개인키: d = 7
   메시지 M = 8을 암호화하자.
   암호문 C는 다음과 같이 계산된다.
       C = Me mod N = 83 = 512 = 17 mod 33
   암호문 C를 다음과 같이 복호화하여 메시지 M을
    구한다.
       M = Cd mod N = 177 = 410,338,673
         = 12,434,505  33 + 8 = 8 mod 33




                Chapter 4 -- Public Key Cryptography   21
Diffie-Hellman




  Chapter 4 -- Public Key Cryptography   22
Diffie-Hellman
   GCHQ의 Williamson이 만들었고, 또한 독자적
    으로 Stanford의 Diffie와 Hellman도 만들었다.
   “키 교환(key exchange)” 알고리즘
       대칭키를 공유하는데 사용한다.
   암호화나 서명을 위한 것은 아니다.

   이것의 안전성은 discrete log problem에
    달려있다.
        given g, p, and gk mod p → find k

                Chapter 4 -- Public Key Cryptography   23
Discrete Logarithm Problem
    공개된 값: 큰 소수 p, generator g
    gk mod p = x
    Discrete logarithm problem: x, g, p가 주어졌을 때 k를 구하라.
    Table g=2, p=11

k       1     2      3        4        5      6    7   8      9       10
gk      2     4      8        5        10     9    7   3      6       1


                                                           nth element
       1st element
Cyclic Group G

Generator α              α1       α2        α3 …             αx = β
Diffie-Hellman
   P는 소수, g는 발생기(generator)라고 하자.
       어떤 x  {1,2,…,p-1}에 대해서 x = gn mod p인 n이 존재
        한다.
   Alice는 비밀 값 a를 선택한다.
   Bob는 비밀 값 b를 선택한다.
   Alice는 Bob에게 ga mod p를 보낸다.
   Bob은 Alice에게 gb mod p를 보낸다.
   둘 다 비밀 값 gab mod p을 계산하다.
   이 비밀 값을 대칭 키(symmetric key)로 사용한다.

                  Chapter 4 -- Public Key Cryptography   25
Diffie-Hellman
   Bob과 Alice가 gab mod p을 대칭키로 사용할 때,
   Trudy는 ga mod p와 gb mod p를 알고 있다.
   주의: ga gb mod p = ga+b mod p  gab mod p
   만약Trudy가 a와 b를 찾아낼 수 있으면 시스템은
    깨진다.
   만약 Trudy가 discrete log 문제를 풀 수 있으면,
    그는 a 혹은 b를 찾아낼 수 있다.




                Chapter 4 -- Public Key Cryptography   26
Diffie-Hellman
   공개: g와 p
   비밀: Alice의 a, Bob의 b

                   ga mod p
                   gb mod p

Alice, a                                               Bob, b
   Alice의 계산: (gb)a = gba = gab mod p
   Bob의 계산: (ga)b = gab mod p
   비밀키 K: K = gab mod p

                Chapter 4 -- Public Key Cryptography            27
   man-in-the-middle (MiM) 공격
      Diffie-Hellman은 MiM 공격의 위험에 놓인다.


           ga mod p                                          gt mod p
           gt mod p                                          gb mod p

Alice, a                      Trudy, t                                  Bob, b

      Trudy는 Alice와 비밀키를 공유: gat mod p
      Trudy는 Bob과 비밀키를 공유: gbt mod p
      Alice와 Bob은 Trudy의 존재를 모른다!
                      Chapter 4 -- Public Key Cryptography                  28
man-in-the-middle (MiM) 공격
    어떻게 MiM 공격을 막을 수 있을까?
    해법
    1. 교환하는 값(ga mod p, gb mod p)을 대칭키로
       암호화하여 보낸다.
    2. 교환하는 값을 공개키로 암호화하여 보낸다.
    3. 교환하는 값을 개인키로 서명한다.
    4. 다른 방법은?
    Diffie-Hellman에서는 MiM 공격이 가능
     하다는 것을 명심해야 한다.

             Chapter 4 -- Public Key Cryptography   29
      ECC:
타원 곡선 암호
(Elliptic Curve
Cryptography)



  Chapter 4 -- Public Key Cryptography   30
Elliptic Curve Crypto (ECC)
   “타원 곡선”은 암호 체계가 아니다.
       타원 곡선은 공개키 시스템에서 수학을 하는 다
        른 방법이다.
   타원 커브를 이용한 DH, RSA등이 존재한다.
   타원 커브는 더 효율적일 수 있다.
       동일한 안전성을 위해 더 적은 비트로서 동일한
        안전성을 얻을 수 있다.
       그러나 연산은 더 복잡하다.


             Chapter 4 -- Public Key Cryptography   31
타원 곡선이란 무엇인가?
   타원 곡선 E은 다음과 같은 수식의 그래
    프이다.
      y2 = x3 + ax + b
   또한 “point at infinity” (∞)를 포함한다.
   타원 곡선은 어떤 모양인가?




             Chapter 4 -- Public Key Cryptography   32
 타원 곡선의 모양
     y                         다음과 같은 타원 곡선
                                에서
                                     E: y2 = x3 - x + 1
         P2
P1                             만약 P1과 P2가 E위에 있
                                으면, 다음과 같이 정의
                   x
              P3                할 수 있다.
                                  P3 = P1 + P2
                               필요한 것은 덧셈!
                               EC에 “mod p”를 더한다.

              Chapter 4 -- Public Key Cryptography        33
Points on Elliptic Curve
   y2 = x3 + 2x + 3 (mod 5)
    x=0      y2 = 3                      no solution (mod 5)
    x=1      y2 = 6 = 1                  y = 1,4 (mod 5)
    x=2      y2 = 15 = 0                 y = 0 (mod 5)
    x=3      y2 = 36 = 1                 y = 1,4 (mod 5)
    x=4      y2 = 75 = 0                 y = 0 (mod 5)
   그러면 타원 곡선 상의 점들은
    (1,1) (1,4) (2,0) (3,1) (3,4) (4,0) 그리고
    the point at infinity: 

                 Chapter 4 -- Public Key Cryptography            34
Elliptic Curve Math
   덧셈: y2 = x3 + ax + b (mod p)
    P1=(x1,y1), P2=(x2,y2), P1 + P2 = P3 = (x3,y3)
    where x3 = m2 - x1 - x2 (mod p)
            y3 = m(x1 - x3) - y1 (mod p)
    and m = (y2-y1)(x2-x1)-1 mod p, if P1P2
            m = (3x12+a)(2y1)-1 mod p, if P1 = P2
    Special cases: If m is infinite, then P3 = 
                   and  + P = P for all P

                 Chapter 4 -- Public Key Cryptography   35
Elliptic Curve Addition
    y2 = x3 + 2x + 3 (mod 5)
   곡선 상의 점들은
       (1,1) (1,4) (2,0) (3,1) (3,4) (4,0) and 
   (1,4) + (3,1) = P3 = (x3,y3) ?
        m = (1-4)(3-1)-1 = -32-1
            = 2(3) = 6 = 1 (mod 5)
        x3 = 1 - 1 - 3 = 2 (mod 5)
        y3 = 1(1-2) - 4 = 0 (mod 5)
   곡선 상에서, (1,4) + (3,1) = (2,0)

                  Chapter 4 -- Public Key Cryptography   36
EC Discrete Log Problem
   주어진 조건
       E: an EC over (field of modulo p), p:prime
       P: a point in E(Fp), and suppose that P has prime
        order n
   키 생성(Key generation)
       Private key d: selected in random in [1,n-1]
       Public key Q =dP
   ECDLP: The problem of finding d given the
    domain parameters and Q

                    Chapter 4 -- Public Key Cryptography    37
ElGamal EC Encryption
   Input
       EC domain para (p,E,P,n), Public key Q, Plaintext m
   OutPut
       Ciphertext (C1, C2)
           Represent the message m as a point M in E
           Select k in [1,n-1],
           Computer C1 = kP,
           Compute C2 = M + kQ
           Return(C1, C2)



                      Chapter 4 -- Public Key Cryptography   38
ElGamal EC Decryption
   Input
       EC domain para (p,E,P,n),
       private key d,
       ciphertext (C1, C2)
   Output: Plaintext (m)
           Compute M = C2 - d∙C1 where C2 = M + kQ and C1 = kP
           Extract m from M
           Return(m)




                      Chapter 4 -- Public Key Cryptography        39
ECC Diffie-Hellman Key Ex
   Public: Elliptic curve and point (x,y) on curve
   Secret: Alice’s A and Bob’s B

                             A(x,y)
                             B(x,y)

    Alice, A                                                Bob, B

   Alice computes A(B(x,y))
   Bob computes B(A(x,y))
   These are the same since AB = BA

                     Chapter 4 -- Public Key Cryptography            40
ECC Diffie-Hellman
   Public: Curve y2 = x3 + 7x + b (mod 37) and point
    (2,5)  b = 3
   Alice’s secret: A = 4
   Bob’s secret: B = 7
   Alice sends Bob: 4(2,5) = (7,32)
   Bob sends Alice: 7(2,5) = (18,35)
   Alice computes: 4(18,35) = (22,1)
   Bob computes: 7(7,32) = (22,1)


                   Chapter 4 -- Public Key Cryptography   41
공개키 암호의 적용




  Chapter 4 -- Public Key Cryptography   42
공개키 암호의 적용
   기밀성
       안전하지 않은 채널로 데이터를 전송할 때
       안전하지 않은 미디어를 안전한 저장소에 보관
        할때
   인증 (추후 논의)
   전자서명(Digital signature)은 무결성과
    부인 봉쇄(non-repudiation)를 제공한다.
       대칭키로는 부인 봉쇄가 가능하지 않다.
       비밀키로 서명한 사람은 나중에 자신이 서명한
        것을 부인할 수 없다.
             Chapter 4 -- Public Key Cryptography   43
부인 봉쇄(non-repudiation)
   Alice는 Bob으로부터 주식 100주를 주문했다.
   Alice는 대칭키로 MAC을 계산했다.
   그런데 주식값이 떨어지자, Alice는 자신이 주
    문한 것을 부인했다.
   Bob은 Alice가 주문한 것을 증명할 수 있을까?
   No! Bob역시 대칭키를 알고 있기 때문에 주문
    을 조작할 수 있다.
   문제: Bob은 Alice가 주문한 것을 알고 있다.
    하지만 그것을 증명할 수 없다.
           Chapter 4 -- Public Key Cryptography   44
부인 봉쇄(Non-repudiation)
   Alice는 Bob으로부터 주식 100주를 주문했다.
   Alice는 자신의 개인키로 주문에 서명을 했다.
   그런데 주식값이 떨어지자, Alice는 자신이 주
    문한 것을 부인했다.
   Bob은 Alice가 주문한 것을 증명할 수 있을까?
   Yes! Alice의 개인키를 갖고 있는 사람 만이 주
    문에 서명을 할 수 있다.
   물론 Alice의 개인키가 도난당하지 않았다는
    가정을 해야 한다.(키 폐기 문제)
            Chapter 4 -- Public Key Cryptography   45
서명하고 암호화
   vs
암호화하고 서명




 Chapter 4 -- Public Key Cryptography   46
공개키 표기법
   메시지 M을 Alice의 개인키로 서명(Sign)
      Alice’s private key: [M]Alice
   메시지 M을 Alice의 공개키로 암호화
      Alice’s public key: {M}Alice
   그러면
     {[M]Alice}Alice = M

     [{M}Alice]Alice = M


                  Chapter 4 -- Public Key Cryptography   47
기밀성과 부인 봉쇄
   기밀성과 부인 봉쇄를 동시에 하고 싶다고
    하자.
   공개키 암호는 이 두 가지 목표를 이룰 수
    있을까?
   Alice는 Bob에게 다음의 메시지를 보낸다.
       서명하고 임호화 {[M]Alice}Bob
       암호화하고 서명 [{M}Bob]Alice
   어떤 순서로 하는가에 따라서 달라질까?

                Chapter 4 -- Public Key Cryptography   48
  서명하고 암호화
       M = “I love you”

          {[M]Alice}Bob                             {[M]Alice}Charlie



Alice                                  Bob                              Charlie


       Q: 무엇이 문제인가?
       A: Charlie는 암호를 오해한다!

                          Chapter 4 -- Public Key Cryptography               49
  암호화하고 서명
       M = “My theory, which is mine….”

          [{M}Bob]Alice                                [{M}Bob]Charlie


Alice                            Charlie                                 Bob

       Charlie는 M을 복호화할 수 없다.
       Q: 무엇이 문제인가?
       A: Bob은 암호를 오해한다!

                      Chapter 4 -- Public Key Cryptography                 50
공개키 구조(PKI)




  Chapter 4 -- Public Key Cryptography   51
공개키 인증서(Certificate)
   Bob은 어떻게 Alice의 공개키를 알 수 있는가?
   Alice는 자신이 개인키와 공개키를 만들어서 Bob에
    게 이것이 나의 공개키라고 알려 주는가? 그러면
    Bob은 그것이 Alice의 공개키라고 신뢰할 수 있을
    까?
   인증서에는 Alice의 이름과 Alice의 공개키(그리고
    다른 정보)를 포함하고 있다.
   인증서를 제공하는 발행자(Certificate Authority)
    가 이것을 보증하기 위해서 인증서에 서명을 한
    다.(예를 들면 VeriSign)
   Bob은 발행자의 공개키를 사용하여 인증서의 서명
    을 증명할 수 있다.

             Chapter 4 -- Public Key Cryptography   52
인증 기관(Certificate Authority)

   인증기관 (CA)은 신뢰할 수 있는 제3자
    (TTP)로 인증서를 발행하고 서명한다.
       인증서의 서명을 증명하는 것은 이에 대응하는
        개인키 소유자의 존재를 증명하는 것이다.
       인증서는 공개되어 있다!
       CA가 실수를 한다면 큰 문제이다.(CA는 이전
        에 Microsoft 인증서를 다른 사람에게 발행한
        적이 있다!)
       인증서의 형식은 X.509으로 정해져 있다.

              Chapter 4 -- Public Key Cryptography   53
X.509 인증서 예(1)
   다음 그림은 www.freesoft.org의 공개키를
    인증하는 인증서이다.
   인증 기관은 Thwate
   Thwate는 인증서를 인증하기 위해서 인증서
    의 마지막 부분에 자신의 개인키로 sign을 하
    였다(signature).
   이 인증서를 받는 사람은 Thwate의 공개키로
    인증서의 마지막 부분의 signature를 확인할
    수 있다.
X.509 인증서 예(2)
   그러면, 사용자는 Thwate의 공개키를 어떻게
    알 수 있는가?
   Thwate는 자신의 공개키를 자신의 개인키로
    서명한 인증서를 통해서 사용자에게 알려준다.
   다음 그림은 Thwate가 자신의 공개키를 알려
    주는 인증서이다.
X.509 인증서 예(3)
   그러면 이 인증서를 받은 사용자는 Thwate가
    신뢰할 수 있는 인증 기관인지 어떻게 확신할
    수 있는가?
   신뢰할 수 있는 기관의 Root certificate는 브
    라우저에 사전에 설치되어 있다.
       이러한 인증 기관들은 브라우저에 사전에 설치될
        수 있는 특권을 사게 된다.
PKI
   공개키 구조 (PKI)는 공개키 암호 방식을 안전하게
    사용하기 위해 필요한 모든 요소로 구성된다.
       키 생성과 관리
       인증 기관(CA)
       인증 폐기 (CRLs), 등등
   PKI에 대한 일반적인 표준은 없다.
   몇가지 “신뢰 모델(trust model)”을 검토해 보자.




                Chapter 4 -- Public Key Cryptography   59
PKI 신뢰 모델
   완전 독점 모델(Monopoly model)
       하나의 보편적인 신뢰 기관이 CA로서 모든 것
        을 관장한다.
       당연히 VeriSign 같은 기관이 가장 선호할 것이
        다.
       만약 CA가 손상되면 큰 문제
       만약 이 CA를 신뢰하지 못하면 큰 문제!




              Chapter 4 -- Public Key Cryptography   60
PKI 신뢰 모델
   소수 독점 모델(Oligarchy)
       다수의 신뢰할 수 있는 CA들이 존재
       오늘날 브라우저에서 사용하는 접근 방법
       브라우저는 단순히 서명을 증명하기 위해서 80
        개 이상의 인증서를 가질 수 있다!
       사용자는 어떤 CA들을 신뢰할 수 있는지 결정
        해야 한다.




              Chapter 4 -- Public Key Cryptography   61
PKI 신뢰 모델
   완전 자유 모델(Anarchy model)
       모두가 CA가 될 수 있다!
       사용자는 어떤 “CA들”을 신뢰할 수 있는지 결정해야 한
        다.
       이 방법은 PGP에서 사용되고 있다.(Web of trust)
       왜 이것을 “무정부(anarchy)”라고 부르는가?
         Frank가 어떤 인증서를 서명했는데 나는 Frank를 모른
          다. 하지만 나는 Bob을 신뢰하고 Bob은 Alice를 믿을 수
          있다고 하고 Alice는 Frank를 보증한다. 나는 Frank를
          신뢰해야 하는가?
   이외에 많은 다른 신뢰 모델에 존재할 수 있다.

                 Chapter 4 -- Public Key Cryptography   62
현실 세계에서의
  기밀성



 Chapter 4 -- Public Key Cryptography   63
대칭키 vs 공개키
   대칭키의 장점
       속도
       공개키 구조 (PKI)가 필요없다.
   공개키의 장점
       서명 (부인 봉쇄)
       공유된 비밀키가 필요없다.




              Chapter 4 -- Public Key Cryptography   64
    대칭키 vs 공개키 암호화 비교
대칭키 암호                    공개키 암호
 공유하는 비밀키가 필요             믿을 수 있는(authentic)

 고도의 안전을 위해서
                            공개키 필요
  80 bit key 필요 (year      고도의 안전을 위해서
  2010)                     2048 bit key (RSA) 필요
                            (year 2010)
                           ~100 signatures/s
   ~1,000,000 ops/s on
    1GHz processor          ~1000 verify/s (RSA) on
                            1GHz processor
                           ~10x speedup in HW
   >100x speedup in HW
RSA로 큰 파일을 암호화한다면?
   1024-bit RSA 암호화할 때 시간
       ~1 ms on 1 GHz Pentium
   1024-bit RSA 복호화할 때 시간
       ~10 ms on 1 GHz Pentium
   1 Mbyte file을 암호화하는 시간은?
       Encrypt 1024 bits / RSA operation = 128 bytes
       1 Mbyte = 220
       Time: 220 / 27 * 1ms = 213 ms = 8 seconds!
       Better approach?
표기법 재정리
   공개키 표기법
       메시지 M을 Alice의 개인키(private key)로 암호화
         [M]Alice
       메시지 M을 Alice의 공개키(public key)로 암호화
         {M}Alice

   대칭키 표기법
       평문 P를 대칭키 K로 암호화
         C = E(P,K)
       암호문 C를 대칭키 K로 복호화
           P = D(C,K)


                     Chapter 4 -- Public Key Cryptography   67
현실 세계에서의 기밀성
   혼합된 암호 체계
       공개키는 키를 설정(교환)하기 위해서 사용한다.
       대칭키는 데이터를 암호화하는데 사용한다.


                        {K}Bob                          [{K}Bob]Bob
               E(Bob’s data, K)
               E(Alice’s data, K)
    Alice                                             Bob

   Bob은 Alice와 말하고 있다고 확신할 수 있는가?
               Chapter 4 -- Public Key Cryptography          68

								
To top