slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
공개열쇠 암호 PowerPoint Presentation
Download Presentation
공개열쇠 암호

Loading in 2 Seconds...

play fullscreen
1 / 34

공개열쇠 암호 - PowerPoint PPT Presentation


  • 211 Views
  • Uploaded on

공개열쇠 암호. 2001. 11. 단국대학교 이민섭 E-Mail : msrhee@dankook.ac.kr . 목 차. 1. 서론 2. 일방향함수 3. 일방향함수의 예 4. 부분집합의 합 문제를 이용한 암호 5. 소인수분해의 어려움을 이용한 암호 6. 이산대수 문제를 이용한 암호 7. 타원곡선 암호 8. 공개열쇠 암호의 응용. A. B. F. E. C. D. 서 론. 대칭키 분배 문제 대칭키 관리 문제 n 명이 상호통신을 하려면 개의 열쇠 필요

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '공개열쇠 암호' - ulani


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

공개열쇠 암호

2001. 11.

단국대학교 이민섭

E-Mail : msrhee@dankook.ac.kr

slide2
목 차
  • 1. 서론
  • 2. 일방향함수
  • 3. 일방향함수의 예
  • 4. 부분집합의 합 문제를 이용한 암호
  • 5. 소인수분해의 어려움을 이용한 암호
  • 6. 이산대수 문제를 이용한 암호
  • 7. 타원곡선 암호
  • 8. 공개열쇠 암호의 응용

www.anseo.dankook.ac.kr/~cryptec

slide3

A

B

F

E

C

D

서 론
  • 대칭키 분배 문제
  • 대칭키 관리 문제
    • n명이 상호통신을 하려면 개의 열쇠 필요
  • W.Diffie와 M.Hellman이 새로운

방안 제시(1976년)

    • “New Directions in Cryptography”
    • 암호화 열쇠와 복호화 열쇠 사이의 관계가 독립적인 비대칭 암호 설계
  • Trapdoor 일방향함수를 이용하여 암호시스템 설계
    • Merkle-Hellman, RSA, ElGamal, ECC 등

www.anseo.dankook.ac.kr/~cryptec

one way function

f

x

f(x)= y

easy

f-1

f-1

x= f-1 (y)

x= f-1 (y)

y

y

easy

difficult

trapdoor

일방향함수(One Way Function)
  • 일방향함수(one way function)
  • 덫문 일방향 함수(trapdoor one way function)

www.anseo.dankook.ac.kr/~cryptec

one way function1

f(m1,m2 ,…, mn)= y

(m1,m2 ,m3 ,…, mn)

easy

f-1 :

y

(m1,m2 ,m3 ,…, mn)

(?)

difficult

초증가수열 S*

(trapdoor)

일방향함수(One Way Function)
  • 부분집합의 합 문제
    • 많은 큰 수들의 집합에서 선택된 수들의 합을 구하는 일은 쉽지만, 주어진 합으로부터 선택된 수를 찾기 어려운 점을 이용하는 이론
    • 양의 정수들의 집합 S={x1,x2 ,x3 ,…, xn}에 대하여

www.anseo.dankook.ac.kr/~cryptec

one way function2
일방향함수(One Way Function)
  • 부분집합의 합 문제의 예
    • S={x1,x2 ,x3 ,…, x8}
      • 이진수열 (m1,m2 ,m3 ,…, mn )이 주어진 경우

m1x1+ m2x2+…+ mnxn = y

      • Y가 주어진 경우

y=m1x1+ m2x2+…+ mnxn = y 를 만족하는 이진벡터 (m1,m2 ,m3 ,…, mn )를

구하는 문제

    • S={x1,x2 ,x3 ,…, x8} = {1078,684,201,497,683,1428,1197,31}
      • (01101110)이 주어진 경우

x2+ x3 +x5+ x6+ x7 = 684+ 201 + 683 +1428 +1197 = 4199 을 쉽게 수할 수 있다

      • 4199가 주어진 경우

(01101110)을 구하는 것은 어렵다 (28 가지 모두 시행)

easy

www.anseo.dankook.ac.kr/~cryptec

one way function3
일방향함수(One Way Function)
  • 초증가수열 S*
    • 양의 정수들의 집합 S*={d1,d2 ,d3 ,…, dn}가 임의의 j>1에 대하여 dj>d1+d2+…+dj-1를 만족하는 수열
    • 초증가수열의 예
      • 공비가 2이상인 등비수열 : S*={1,2,22,23, …, 2n}
    • 예 : S={6,15,31,55,112,243,529,1015} : 초증가 수열의 집합
      • 합이 930인 경우

(1) 1015는 없다 m8 = 0

(2) 529는 반드시 있어야 한다 : m7= 1

(3) 930-529=4 이므로 243은 반드시 있어야 한다. m6= 1

같은 방법으로 계속 시행하면 (01101110)을 얻을 수 있다

  • 초증가수열을 이용한 암호의 예 : Merkle-Hellman

www.anseo.dankook.ac.kr/~cryptec

slide8

f : 135979 x 115979

f -1

135979

115979

?

135979x115979=15770708441

15770708441

easy

difficult

소인수분해 문제
  • 소인수분해 문제(factorization problem)
    • 큰 두 소수의 곱을 구하기는 쉽지만, 큰 두 소수의 곱인 합성수의 소인수 분해가 어려운 점을 이용하는 이론
    • 예 : RSA, Rabin, LUC 등

www.anseo.dankook.ac.kr/~cryptec

slide9

f (x)  10xmod19

f -1

10

Ind109=x

f(10)  1010 9mod19

10 x9mod19

easy

difficult

이산대수문제
  • 이산대수 문제(discrete logarithm problem)
    • 큰 수 n을 법으로 하는 지수승 y kx mod n은 계산하기 쉽지만, 주어진 y와 k에 대하여 식 y kx mod n을 만족하는 x를 구하기 어려운 점을 이용하는 이론
    • Diffie- Hellman, ElGamal, Massey-Omura, ECC

www.anseo.dankook.ac.kr/~cryptec

slide10
19를 법으로 하는 지수•로그표

www.anseo.dankook.ac.kr/~cryptec

slide11

B의 개인키 DB

= 복호화 열쇠

(비공개)

B의 공개키 EB

= 암호화 열쇠

(공개)

Trapdoor을 이용하여 EB 로 부터 DB를 구함

평문 P

평문 P

암호 알고리즘

복호 알고리즘

사용자 A

암호문

C=EB (p)

사용자 B

덫문일방향함수와 공개열쇠암호
  • 공개열쇠암호
    • 암호화 열쇠로부터 복호화 열쇠를 얻기가 거의 불가능한 암호계

www.anseo.dankook.ac.kr/~cryptec

merkle hellman
Merkle-Hellman 암호계
  • 열쇠생성과정
    • 양의 정수들의 초증가수열 집합 S*={d1,d2 ,…, dk} 선택
    • 소수 p와 1<n<p를 만족하는 정수 n선택
    • p를 법으로 한 n의 역원n-1을 계산
      • gcd(n,p) =1= n-1•n + p•t, t는 적당한 정수
    • 각 di에 대하여 ei ndimod p를 계산, 초증가수열이 아닌 집합

S={e1,e2 ,…, ek}를 구함

    • 공개열쇠(공개) : S={e1,e2 ,…, ek}
    • 개인열쇠(비공개) : (p,n, n-1,S*)

www.anseo.dankook.ac.kr/~cryptec

merkle hellman1
Merkle-Hellman 암호계
  • 암호화 과정
    • 평문을 이진벡터 (m1,m2 ,m3 ,…, mk)로 표현
    • 열쇠집합 S={e1,e2 ,…, ek}를 이용하여

C=m1e1+ m2e2+…+ mkek

를 계산하여 암호문 C를 생성

  • 복호화 과정
    • n-1를 이용하여 D  n-1• Cmod p를 계산. 즉

D  n-1• Cmod p

 m1n-1e1+m2n-1e2+…+mkn-1ek

 m1e1+ m2e2+…+ mkek

    • 초증가수열집합 S*={d1,d2 ,…, dk} 를 이용하여 평문을 이진벡터 (m1,m2 ,m3 ,…, mk)를 얻음

www.anseo.dankook.ac.kr/~cryptec

merkle hellman2
Merkle-Hellman 암호계의 예

공개(키서버에 등록)

S={e1,e2 ,…, ek}

={1078,684,207,497,683,1428,1197,31}

사용자 A

사용자 B

S*={d1,d2 ,d3 ,…, d8}

={6,15,31,55,112,243,529,1015}

P=2001 , n=850 , n-1 = 1914

S={e1,e2 ,…, ek}

={1078,684,207,497,683,1428,1197,31}

평문 P=(0,1,1,0,1,1,1,0)

C=m1e1+ m2e2+…+ m8e8

=684+207+683+1428+1197

=4199

D  n-1• Cmod p

 1914x4199 mod 2001

 930 mod 2011

암호문

C=4199

평문 P=(0,1,1,0,1,1,1,0)

www.anseo.dankook.ac.kr/~cryptec

slide15

f(x)xe mod n

x

f(x)= y

easy

f-1(y)x  (xe)d mod n

x= f-1(y)

y

difficult

(n) =(p-1)(q-1)

Trapdoor

RSA 암호
  • RSA 암호
    • 1978년, 미국 M.I.T대학의 Rivest, Shamir 그리고 Adleman에 의해서 고안된 공개열쇠 암호
    • 소인수분해의 어려움에 기반
  • n=pq
  • ed1 mod (n)을 만족하는 양의 정수
    • (n)=(p-1)(q-1)

www.anseo.dankook.ac.kr/~cryptec

slide16

공개(키서버에 등록)

n, e

n=pq을 계산(소수 p,q 선택)

(n)과 서로소인 e를 선택 (즉, (e, (n))=1)

d : ed1 mod (n)을 만족하는 양의 정수를 계산(단, (n)=(p-1)(q-1))

공개 열쇠 : n,e 개인열쇠 : d

사용자 A

사용자 B

사용자 B가 전문P를 보낼 때

P=D(C) Cd

(Pe)d mod n

C=E(P) Pe mod n

C=E(P)

사용자 A가 서명S을 보낼 때

S=E(P) Pdmod n

P=D(S) Se mod n

(Pd)e mod n

S=E(P)

RSA 공개열쇠 암호

www.anseo.dankook.ac.kr/~cryptec

slide17

공개 : n=2173 e=207

n=pq을 계산(소수 p,q 선택)

(n)과 서로소인 e를 선택 (즉, (e, (n))=1)

d : ed1 mod (n)을 만족하는 양의 정수를 계산(단, (n)=(p-1)(q-1))

공개 열쇠 : n,e 개인열쇠 : d

사용자 A

사용자 B

RSA 암호 예

p=41 q=53 선택

n= 2173 , (n)=2083 ,d=623, e=207

d=623 이므로

1566623  594 mod 2173, 1963623  80 mod 2173

1150623 1156 mod 2173 …

11자리 블록: 01001010010 00001010000 …

이진수: 0100 1010 0100 0001 0100 0010 …

ASCII: 4A 41 42 42 45 52 57 49 43 4B 59

전 문: J A B B E R W I C K Y

전 문: J A B B E R W I C K Y

ASCII: 4A 41 42 42 45 52 57 49 43 4B 59

이진수: 0100 1010 0100 0001 0100 0010 …

11자리 블록: 01001010010 00001010000 …

10진수: 594, 80, 1156, 1109, 299, 1317,105,857

암호화: 594207 1566 mod 2173

80207 1963 mod 2173 , 1156207 1150 mod 2173 …

B가 전문을 보낼때

www.anseo.dankook.ac.kr/~cryptec

slide18
RSA의 이론적 배경
  • 좋은 RSA암호계가 되기 위한 p,q,d의 조건
    • p,q는 같지 않고 거의 같은 크기의 자리 수이어야 한다.
      • 100자리 이상의 소수
    • p-1과 q-1은 매우 큰 소인수를 가져야 한다.
    • gcd(p-1, q-1)은 작은 값이어야 한다.
    • Max{p,q}+1<d<n-1이 되도록 d를 선택해야 한다.
  • RSA암호의 해독문제
    • 공개열쇠 e와 n을 이용하여 ed1 mod (n)를 만족하는d를 구하는 문제
      • 임의의 자연수 e와 k가 서로소이면 ed1 mod k인 d는 존재하며 Lame의 정리와 Euclid호제법을 이용하여 구함
    • n의 소인수분해 문제 ⇔ (n)=(p-1)(q-1)을 구하는 문제

www.anseo.dankook.ac.kr/~cryptec

slide19
소인수분해문제
  • 인수분해의 효율적인 알고리즘
    • 이차선별법
      • 1983년, 69자리의 10진수 소인수분해
      • 1989년, 106자리의 10진수 소인수분해
      • 1994년, 129자리(428비트)의 10진수 소인수분해(RSA-129)
    • 수체선별법
      • 이차선별법보다 더 효율적(120자리 이상의 합성수)
      • 1996년, 130자리의 10진수 소인수분해(RSA-130)
    • 타원곡선법
    • 소인수분해 예측시간

MIPS년 =초당 1,000,000회 시행하여 1년간 시행

= 3.1X1013 회 시행

www.anseo.dankook.ac.kr/~cryptec

rabin

공개(키서버에 등록)

n, B

n=pq

(p≡3mod 4, q≡3mod 4인 소수)

사용자 A

사용자 B

사용자 B가 사용자A에게

전문을 보낼 때

복호변환 함수

암호변환 함수 C=E(P)P(P+B)mod n

Rabin암호
  • Rabin암호
    • 소인수 분해의 어려움에 기반

www.anseo.dankook.ac.kr/~cryptec

slide21

공개열쇠 : p, g

(단, p는 소수이고

g는 Fp의 생성원)

송신자 A

A 와 B의 암호열쇠(ga)bmod p

수신자 B

비밀열쇠 : a 선택

공개열쇠 : ga mod p

비밀열쇠: b 선택

공개열쇠 : gb mod p

이산로그를 이용한 공개열쇠 암호들
  • Diffie-Hellman 열쇠 교환시스템
    • 원리 : 체 Fp위에서 ga과 gb을 가지고 gab를 얻기 어려움
  • 1984년 Coppersmith에 의하여 p = 2n인 경우로

일반화

www.anseo.dankook.ac.kr/~cryptec

massey omura
Massey-Omura 암호계
  • 1983 년 Massey 와 Omura 에 의하여 개발된 암호계
  • 원리
    • Galois 체 Fq만 공개되고 각 사용자 X는 임의의 수 eX를 gcd(eX,q-1)=1 이 되도록 선택하고 dX eX 1 mod q이 되는dX를 구하고, (eX, dX)을 공개하지 않는다.
  • 개인(비밀)열쇠
    • 사용자 A : (eA, dA)사용자 B : (eB, dB)

www.anseo.dankook.ac.kr/~cryptec

massey omura1

공개 : Fq

송신자 A

수신자 B

비밀열쇠 : (eA, dA)

평문 : P

peAmod q 를 계산

peAmod q

peAeBdA peBmod q 를 계산

peAeBmod q

peBdB pmod q를 계산

peBmod q

Massey-Omura 암호계

비밀열쇠 : (eB, dB)

peAeBmod q를 계산

www.anseo.dankook.ac.kr/~cryptec

massey omura2

공개

원시다항식 x5+x2+1로

가지는 체 F32

송신자 A

수신자 B

비밀열쇠 : (eA=15, dA=29)

평문 : P=10110= 24+22+2

peA = (24+22+2)15

= 24+2+1=10011를 계산

비밀열쇠 : (eB=7, dB=9)

peAeB=(24+2+1)7

=24+22+2+1=10111 을 계산

peA=10011

peAeB=10111

peB =(24+22+2+1)29

= 24+1=10001를 계산

peB=10001

peBdB =(24+1)9=24+22+2=10110를 계산

Massey-Omura 암호계의 예

www.anseo.dankook.ac.kr/~cryptec

elgamal

공개 : g, gamod q

수신자 A

송신자 B

(gk)agak mod q 계산

Pgak / gak  P 계산

(gk ,Pgak)

임의의 k 선택

Pgakmod q 를 계산

ElGamal 암호
  • ElGamal 암호
    • 1985년 ElGamal이 Galois 체 Fq 위에서 제안한 암호
    • 큰 위수를 가지는 임의의 원소 g를 공개하고 각 사용자 A는 자신이 임의의 수 a (0<a<q-1)를 선택해서, gamod q 를 계산하고, a는 공개하지 않고, gamod q 는 공개한다.

www.anseo.dankook.ac.kr/~cryptec

elgamal1

원시다항식: x13 + x5+ x4+ x2+1을 이용한 체 F8192

공개 : g = x +1, ga = x11+ x9+ x8+ x7+x6 + x5+ x3+ x2+x

수신자 A

송신자 B

ElGamal 암호 예

P= x12+ x10+ x9+ x7+x6 + x5+ x3+ x2+x+1

을 보내기 위해 k=5192선택

gk = (x +1)5192 = x10+ x9+ x5+x+1

(ga)k = x11 + x3 + 1

Pgak = x10+ x9+x6 + x5+ x4+ x3+x

개인열쇠 : a=200

(gk)ax11 + x3 + 1

Pgak / gak  x12+ x10+ x9+ x7+x6 + x5+ x3+ x2+x+1

(gk ,Pgak ) 전송

www.anseo.dankook.ac.kr/~cryptec

slide27
타원곡선 암호
  • 타원곡선의 정의
    • E = {(x,y) : y2 = x3 + ax + b}U{O}
    • 실수체 R 위에서의 타원곡선 E의 임의의 점 P와 Q에 대하여 덧셈을 다음과 같이 정의한다.

(1) P + O = O + P (O는 무한원점)

(2) – O = O

(3) P = (x1 , y1) ≠ O 이면 P + Q = (x1 , - y1)

(4) Q = –P 이면 P + Q = O

(5) P ≠ O, Q ≠ O, Q ≠ - P 일 때,

P ≠ O 이면, 선분 와 그 곡선 E와의 교점을

R이라 할 때 P + Q = - R로, P = O 이면, P에서의

곡선의 접선과 그 곡선 E와의 교점을 R이라 할 때

P + Q = - R로 정의

A

2A

www.anseo.dankook.ac.kr/~cryptec

slide28
타원곡선 암호계
  • 타원곡선에서의 덧셈
    • 실수체 위의 타원곡선 y2 = x3 + ax + b의 점 P, Q, P + Q의 좌표를

(x1, y1), (x2, y2), (x3, y3)라 하면,

(1) x1≠x2 : x3 = {(y2 - y1)/(x2 - x1)}2– x1– x2,

y3 = - y1 + {(y2 - y1)/(x2 - x1)}(x1 - x3)

(2) P = Q : x3 = {(3x12 + a)/(2y1)}2– 2x1,

y3 = - y1 + (3x12 + a)/(2y1)(x1 - x3)

(3) P = - Q : P + Q = O

  • 타원곡선에서의 덧셈 예
    • y2 = x3 - 36x의 점 P = (-3, 9), Q = (-2, 8)
      • P,Q를 지나는 직선 : y = - x + 6
      • 직선과 곡선의 교점의 x좌표는 (- x + 6)2 = x3-36x의 근

=> x = -3, - 2, 6이므로 R = (6, 0)

=> P + Q = - R = (- 6, 0)

www.anseo.dankook.ac.kr/~cryptec

slide29
타원곡선 암호
  • 유한체 위에서의 타원곡선 예
    • 체 Z11위에서 y2 = x3 + x + 6에 의하여 정의되는 타원곡선군

E(Z11) = {O} ∪{(2,4), (2,7), (3,5), (3,6), (5,2), (5,9),

(7,2), (7,9), (8,3), (8,0), (10,2), (10,9)}

      • 점 P = (2,4), Q = (3,5)에 대하여 P + Q = (7,2)이고 2P = (5,9)
      • 실제 P + Q = (7,2)의 x좌표는

x3 = [(5-4) / (3-2)]2– 2 – 3 = -4 ≡ 7 mod 11

www.anseo.dankook.ac.kr/~cryptec

slide30
타원곡선 암호
  • 타원곡선 암호의 예
    • 타원곡선을 이용한 Massey-Omura 암호계
      • 공개사항 : Fq, E, N
      • 1단계 : A와 B는 각각 eA와 eB를 선택하고 각각

dA ≡ eA-1 modN 과 dB ≡ eB-1 modN을 계산.

      • 2단계 : A는 eAP를 계산하여 사용자 B에게 보낸다.
      • 3단계 : B는 eB(eAP)를 계산하여 사용자 A에게 보낸다.
      • 4단계 : A는 dA(eBeAP) = eBP를 계산하여 B에게 보낸다.
      • 5단계 : B는 dB(eBP) = P를 계산하여 A에게 보낸다.

www.anseo.dankook.ac.kr/~cryptec

slide31
타원곡선 암호
  • 타원곡선 암호의 예
    • 타원곡선을 이용한 ElGamal 암호계
      • 공개사항 : Fq, E, Q
      • 1단계 : A와 B는 각각 aA∈Z와 aB ∈Z를 선택하여 개인열쇠로 하고 aAQ와 aBQ를 계산하여 공개.
      • 2단계 : A는 k ∈Z를 선택하고 (kQ, P+k(aBQ))를 계산, B에게 보냄.
      • 3단계 : B는 aB(kQ) = aBkQ를 계산, P +kaBQ – aBkQ =P를 얻음.

www.anseo.dankook.ac.kr/~cryptec

slide32
타원곡선 암호
  • 타원곡선의 안전성

www.anseo.dankook.ac.kr/~cryptec

slide33
공개열쇠 암호의 응용
  • 서명
    • 컴퓨터 통신망을 통하여 전달되는 전자적 형태로 저장된 서류에 서명
    • 위조불가(Unforgeable), 서명자인증(Authentic), 부인불가(Nonrepudiation)

변경불가(Unalterable), 재사용불가(Not Reusable)

  • Hash 함수
    • 임의의 길이의 입력 메세지를 고정된 길이의 출력값으로 압축시키는 함수
    • 데이타의 무결성 검증, 메세지 인증에 사용
    • 충돌회피함수
  • 열쇠분배 및 공유
    • 사용자 또는 기관이 비밀열쇠를 설정하여 다른 사용자에게 전달하는
  • 신원확인
    • 개인의 신원을 전자적으로 증명

www.anseo.dankook.ac.kr/~cryptec

slide34
공개열쇠 암호의 응용
  • 비밀분산
    • 비밀을 분산시키는 방법으로 열쇠를 분산
  • 영지식증명
    • 한 사람이 다른 사람에게 사실의 증명에 관한 어떤 정보도 보이지 않고, 사실의 증명을 알고 있음을 확신하도록 만드는 방법
  • 전화로 동전던지기

www.anseo.dankook.ac.kr/~cryptec