네트워크
공개키 암호화 방식
tioon
2023. 10. 3. 23:14
공개키 암호화 방식
- 공개키로 암호화, 개인키로 복호화
- 개인키로 암호화, 공개키로 복호화
공개키의 기능
- 메세지 암호화
-발신자와 수신자가 서로 공개키, 개인키로 암호화를 하여 메세지를 보호 할 수있습니다. - 전자서명
-발신자의 개인키로 암호화한 키는 공개키로 복호화를 할 수 있습니다.
개인 키는 그 사람만 가질 수 있기에, 그사람을 전자서명하는데에 쓸 수 있습니다. - 키교환
-암호화에 사용할 대칭키를 교환할 때,공개키로 암호화 해서 전송합니다.
공개키 암호 알고리즘 종류
- RSA 알고리즘
- 암호화/복호화, 디지털 서명, 키 교환 방식에 다 쓰이는 알고리즘입니다.
- e와 n이 주어 졌을 때 d를 구하는 것이 불가능해야합니다.
- 하지만 현재 RSA는 양자 컴퓨터의 발달로 보안성 위험이 생겨 PQC라는 기법이 등장하였습니다.
공개키(PU) = {e,n} 개인키(PR) = {d,n} 라고 가정시
평문 = M , 암호문 = C 일때 다음과 같습니다.
C =M^e mod n // 암호화
M = C^d mod n = (M^e)^d mod n = M^(e*d) mod n //복호화
즉, 두 큰 소수의 곱 ed를 모듈로 사용하는데 이 값을 전체에 공개되지만 e,d를 통해 모듈로의 역수를 계산하는건 불가능하여 보안을 지킵니다.
- Diffle-Hellman 키 교환
-키 교환 방식에만 사용되는 방식입니다.
-두 사람이 공개적으로 정보를 교환하면서도, 중간의 공격자가 그정보만을 가지고는 비밀키를 알아내기 어렵게하는 알고리즘입니다.
- 두 사람이 공개 키를 사용하여 비밀키를 만드는 방식입니다.
- g와 p값은 이산로그문제에 쓰이는 값으로, 둘 사이에서 임의의 값을 정해야 하며, g값은 충분히 커야합니다.
A의 개인 키 = a B의 개인 키 = b 라고 가정시
A의 공개 키 = g^a mod p B의 공개 키 = g^b mod p 로 계산하여 사용합니다.
이제 서로 공개 키 공유를 하여
A => S = (B의 공개키)^a mod p
B => S = (A의 공개키)^b mod p
를 계산하여 서로 같은 비밀 키 S를 가지게 됩니다.
중간자 공격
-통신을 하는 두 참가자 사이에서 중간위치에서 정보를 도청 조작, 위조하는 공격방법입니다. 공격 당하는 두 개체는 직접 통신하고 있다고 생각하지만 실제로는 중간자와 통신을 하는 것으로 정보가 털리게 됩니다.
다음은 중간자공격의 특징입니다.
- 도청
-중간자는 통신내용을 감청하여 양측의 데이터를 읽을 수 있습니다. - 데이터 조작
-중간자는 통신 중인 메세지를 수정하여 위조된 정볼르 전송할 수 있습니다. - 데이터 재전송
-공격자는 이전에 캡처한 메시지를 재전송하여 서비스 거부나, 다른 종류의 공격을 유발할 수 있습니다. - 키 교환 도청
-키 교환 과정에 개입하여 자신의 키를 제공함으로써 두 참가자 사이의 모든 통신을 제어할 수 있습니다.