네트워크

공개키 암호화 방식

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를 가지게 됩니다.

 

 

 

중간자 공격

-통신을 하는 두 참가자 사이에서 중간위치에서 정보를 도청 조작, 위조하는 공격방법입니다. 공격 당하는 두 개체는 직접 통신하고 있다고 생각하지만 실제로는 중간자와 통신을 하는 것으로 정보가 털리게 됩니다.

 

다음은 중간자공격의 특징입니다.

 

  • 도청
    -중간자는 통신내용을 감청하여 양측의 데이터를 읽을 수 있습니다.

  • 데이터 조작
    -중간자는 통신 중인 메세지를 수정하여 위조된 정볼르 전송할 수 있습니다.

  • 데이터 재전송
    -공격자는 이전에 캡처한 메시지를 재전송하여 서비스 거부나, 다른 종류의 공격을 유발할 수 있습니다.

  • 키 교환 도청
    -키 교환 과정에 개입하여 자신의 키를 제공함으로써 두 참가자 사이의 모든 통신을 제어할 수 있습니다.