Security/보안

[보안 5] 비대칭키(Asymmetric key) 암호

snowkit 2024. 12. 1. 09:28

설명

  • 암호화와 복호화에 서로 다른 key를 사용하는 암호
    • 공개키(Public Key): 암호화에 사용하는 키
    • 개인키(Private Key): 복호화에 사용하는 키

실제 사용 예시

  1. A가 B에게 데이터를 전송하려고 함
  2. B가 공개키와 개인키 쌍 생성
  3. B가 A에게 공개키 전달
  4. A가 평문을 공개키로 암호화 후 B에게 암호문 전송
  5. B가 암호문을 받아서 개인키로 복호화

장점

  • 공격자가 중간에서 공개키를 훔쳐보더라도 암호문 복호화 불가능
  • 공개키는 다른 사람에게 노출되어도 문제 없기 때문에 누구에게나 쉽게 전달 가능

단점

  • 바꿔치기에 취약함
    1. 공격자가 공개키와 개인키 쌍 생성
    2. B가 A에게 공개키를 보낼 때, 공격자가 중간에서 B의 공개키를 공격자의 공개키로 바꿔치기해서 A에게 전달
    3. A는 공격자의 공개키로 암호화 후 B에게 암호문 전송
    4. 공격자는 중간에서 A의 암호문을 가로챈 뒤 공격자의 개인키로 복호화
    5. 공격자는 복호화한 평문을 B의 공개키로 암호화 후 B에게 암호문 전송
    6. A와 B는 중간에서 데이터가 노출된 걸 인지하지도 못함
  • 암복호화에 걸리는 속도가 대칭키 암호에 비해 월등히 느림

대표 알고리즘

  • RSA: 현재 가장 많이 이용되고 있는 비대칭키 알고리즘