public key
TRANSCRIPT
![Page 2: Public key](https://reader036.vdocuments.us/reader036/viewer/2022062319/558d251fd8b42a2e638b4571/html5/thumbnails/2.jpg)
키를 저장할 공간이 필요하다 , 한 사람당 1 개의 키 암호 , 복호속도가 빠르다 . => 1 : 1 통신에 유리
SYMMETRIC
![Page 3: Public key](https://reader036.vdocuments.us/reader036/viewer/2022062319/558d251fd8b42a2e638b4571/html5/thumbnails/3.jpg)
1 개의 키를 여러 명에게 사용해도 안전하다 .
하나의 키로 여러 명과 암호화 통신을 할 수 있다 . => 1 : n 통신에 유리
PUBLIC
![Page 4: Public key](https://reader036.vdocuments.us/reader036/viewer/2022062319/558d251fd8b42a2e638b4571/html5/thumbnails/4.jpg)
왜 비대칭키 ?
![Page 5: Public key](https://reader036.vdocuments.us/reader036/viewer/2022062319/558d251fd8b42a2e638b4571/html5/thumbnails/5.jpg)
1
DataEncryptionStandard노잼
![Page 6: Public key](https://reader036.vdocuments.us/reader036/viewer/2022062319/558d251fd8b42a2e638b4571/html5/thumbnails/6.jpg)
** 공개 키의 기본이 되는 아이디어
단점 : Man In The Middle Attack 에 취약하다
DIFFIE-HELLMAN
![Page 7: Public key](https://reader036.vdocuments.us/reader036/viewer/2022062319/558d251fd8b42a2e638b4571/html5/thumbnails/7.jpg)
Kgen
1. Choose large prime p, g (p!=q)
2. n=p*q
3. Choose e such that , gcd(
4. Compute d such that d=
Enc
Dec
** 암호화 과정을 가볍게 하기 위하여 e 를 작게 고정시키는 경우도 있다 .
(3 or 2^16+1)
(TEXT BOOK) RSA
![Page 8: Public key](https://reader036.vdocuments.us/reader036/viewer/2022062319/558d251fd8b42a2e638b4571/html5/thumbnails/8.jpg)
CORRECTNESS
![Page 9: Public key](https://reader036.vdocuments.us/reader036/viewer/2022062319/558d251fd8b42a2e638b4571/html5/thumbnails/9.jpg)
RSA
Q1. N 을 빠른 시간 내에 인수분해를 할 수 있느냐Q2. 숫자가 소수인지 아닌지 판별 할 수 있느냐
![Page 10: Public key](https://reader036.vdocuments.us/reader036/viewer/2022062319/558d251fd8b42a2e638b4571/html5/thumbnails/10.jpg)
1. Fermat Primality Test : 페르마 소정리를 이용한 소수 판별기법
단점 : Carmichael number 라는 예외가 존재 (ex. p=561)
2. Miller Rabin Test :
단점 : p 가 소수일 확률은
소수 판별기법
![Page 11: Public key](https://reader036.vdocuments.us/reader036/viewer/2022062319/558d251fd8b42a2e638b4571/html5/thumbnails/11.jpg)
Kgen : n=pgChoose e such that
ed=1 mod
Enc :
Dec :
RSA - CRT
![Page 12: Public key](https://reader036.vdocuments.us/reader036/viewer/2022062319/558d251fd8b42a2e638b4571/html5/thumbnails/12.jpg)
BREAK TIME
![Page 13: Public key](https://reader036.vdocuments.us/reader036/viewer/2022062319/558d251fd8b42a2e638b4571/html5/thumbnails/13.jpg)
1. The group operation * is closed. That is, for all a,b, G, it holds that a*b=c
2. The group operation is associative.
3. There is a identity element and inverse element.
4. The group should be abelian group.
5. Cyclic group : .
GROUP
![Page 14: Public key](https://reader036.vdocuments.us/reader036/viewer/2022062319/558d251fd8b42a2e638b4571/html5/thumbnails/14.jpg)
Kgen
1. Choose x as a private key
2. Choose a group as a public key(=take p)
3. Compute as a public key
Enc
Take random number r, and compute
Dec
/ = m
** r : session key
ELGAMAL
![Page 15: Public key](https://reader036.vdocuments.us/reader036/viewer/2022062319/558d251fd8b42a2e638b4571/html5/thumbnails/15.jpg)
POINT OF INFINITY
![Page 16: Public key](https://reader036.vdocuments.us/reader036/viewer/2022062319/558d251fd8b42a2e638b4571/html5/thumbnails/16.jpg)
Kgen
1. Take a elliptic curve (ex : )
2. Choose random number r as a private key.
3. Let r*p and group of elliptic curve be public key
Enc, Dec = Same with Elgamal
ELLIPTIC CURVE
![Page 17: Public key](https://reader036.vdocuments.us/reader036/viewer/2022062319/558d251fd8b42a2e638b4571/html5/thumbnails/17.jpg)
![Page 18: Public key](https://reader036.vdocuments.us/reader036/viewer/2022062319/558d251fd8b42a2e638b4571/html5/thumbnails/18.jpg)
1. P+Q :
2. P+P :
3. P+
4. P+(-P)=
5. + =
CALC
![Page 19: Public key](https://reader036.vdocuments.us/reader036/viewer/2022062319/558d251fd8b42a2e638b4571/html5/thumbnails/19.jpg)
(0,2)+(2,1)=(2,4)
CALC