ch4_asymmetric key cryptography 비대칭키

박정빈·2024년 10월 14일

정보보호

목록 보기
6/14

로드맵
Asymmetric key cryptography
Diffie-Hellman
RSA
Korean crypto algorithms

대칭키는 confidentiality
해시는 integrity를 담당하는 프리미티브였다.

Asymmetric key cryptography

한 사람은 자신의 공개키와 비공개키를 가지고 있다.
비대칭키 알고리즘은 EncryptionDigital signature 기능을 수행할 수 있다.

  • Encryption
    Alice 는 Bob의 공개키를 가져올 수 있다.
    메세지를 Bob의 공개키로 암호화 시켜서 보내면 밥의 개인키로 복호화 할 수 있다.
    confidentiality가 보장이 된다!
  • Digital signature

Alice 는 자신의 개인키로 메시지를 암호화할 수 있다. 복호화를 할 수 있는 Alice 의 공개키는 모두가 알고 있으므로 모두가 복호화를 할 수 있고, confidentiality가 보장이 안된다!

하지만 암호화를 할 수 있는 것은 Alice 밖에 없으므로 서명의 역할을 할 수 있다.


내 친구들과 통신을 하고 싶다면 친구들의 공개키를 미리 확보해 놓아야한다.

단점은 느리다..!!
그래서 대칭키와 연계해서 쓰게된다.
대칭키를 공유하는데에 비대칭키를 쓰고 메시지를 전달할때 공개키를 쓴다.

서명도 느려..!
메시지를 해시함수에 돌려서 크기를 줄인 뒤 비대칭키로 서명한다.

Diffie-Hellman

사람이름을 딴 알고리즘 , 최초의 공개키 알고리즘이지만 아직 쓰인다.
공개키 알고리즘의 수학적,이론적 증명을 한다.
전자서명은 X, 공개키를 교환하는 알고리즘이다.

Alice,Bob 이 큰 소수 pppp보다 작은 값 gg 에 대해 공개키로 쓰기로 합의한다.
Alice 는 개인키 xx 를 선택하고 X=gxmod  pX=g^xmod \;p를 Bob에게 보낸다.
Bob은 개인키 yy 를 선택하고 Y=gymod  pY=g^ymod \;p를 Bob에게 보낸다.

Alice 는 Yx=gxymod  p=KY^x=g^{xy}mod \;p=K 를 알 수 있고
Bob은 Xy=gxymod  p=KX^y=g^{xy}mod \;p=K를 알 수 있어서
키를 공유한 것이 되게 된다.

RSA

전자서명, 키교환 다 된다!
앞에꺼는 discrete logarithm이 어려운거에 기반했고,
RSA는 소인수 분해가 어렵다는 거에 기반함

모듈러연산에 대해 다음이 성립한다.
((a mod n) + (b mod n)) mod n = (a+b) mod n
((a mod n) - (b mod n)) mod n = (a-b) mod n
((a mod n) (b mod n)) mod n = (ab) mod n
그러므로 다음도 성립한다.
(a  mod  n)d  mod  n=ad  mod  n(a \;mod \;n)^d \;mod\; n = a^d \;mod \;n

두 큰 소수 p,q를 선택한다.
ø(n)=(p-1)(q-1)이라 하자 (n=p*q, 오일러 파이 함수라고 한다.)

그리고, ø와 서로소 관계(gcd(e,ø(n)=1)인 e를 선택한다.

e * d = ø(n) mod 1이 되는 d를 선택한다.

이 계산에서 PU={e,n}이 공개키
PR ={d,n} 이 비밀키가 된다.

암호화 방법?
공개키 PU={e,n} 를 가져온다.
Me  mod  n=CM^e\; mod \;n = C 를 한다.

복호화 방법?
Cd  mod  n=MC^d \;mod \;n = M 을 한다.

예시들

키 전달

서명

다시 말하지만 전자서명은 부인봉쇄를 위한 작업!
공개키 암호화 RSA 전자서명 -> non repudiation(부인 봉쇄)
(나 안했어 봉쇄) (integrity 검증 , 원본 M 이 바뀌지않았음이 확인됨)
integrity 검증
1. keyed hash , H(k||m)
2. 대칭키 CBC
3. 전자서명

Korean crypto algorithms

큰 의미는 없는디…
한때 암호가 무기처럼 활용됨 그래서 한국형 암호를 만들었다

다음 시간에는 이때까지 배운 암호화 기법들을 사용해서 응용을 어떻게 했나는 살펴볼 예정입니다.

0개의 댓글