Computer Science/Security

대칭키, 공개키에 대해

코딩은 잼있어 2024. 5. 1. 18:20
728x90

대칭키 vs 공개키

  • 대칭키 암호화 방식: 암호화와 복호화에 사용하는 키가 동일 함.
  • 배대칭키/공개키 암호화 방식 : 암호화와 복호화에 사용하는 키가 서로 다름.

대칭키 알고리즘

대칭키 암호화 방식은 암호화와 복호화에 같은 암호화 키를 사용하는 알고리즘

  • 장점
    • 다양한 알고리즘 개발이 용이
    • 속도가 매우 빠르고 대용량 데이터 암호화
  • 단점
    • 키 관리 및 키 분배가 어려움. Entry 쌍의 개수 만큼의 키가 필요.
    • 디지털 서명, 부인방지 등의 기능을 불가능
    • 키 공유의 문제가 발생
  • 대표적인 대칭키
    • DES, AES 등

부인방지 (Non-Repudiation) : 상대방이 자신의 행위를 부인하지 못하도록 증명하는것

비대칭키/공개키 알고리즘

비대칭키/공개키는 암호화할때와 복호화할때 서로 다른 키를 사용하는 암호화 알고리즘임
외부에 절대 노출되면 안되는 개인키와 공개적으로 개방되어있는 공개키가 쌍으로 이루어진 형태임

  • 두개의 키를 사용하는 방식
  • 두개의 키는 서로 다름
    • Private Key : 혼자서 비밀리에 보관하고 혼자서만 사용하는 키 (개인키)
    • Public Key : 거래 상대방에게 제공하는 키 (공개키)
  • Public Key를 공개하더라도 Private Key를 알아내는 것은 불가능
    • Private Key로 Public Key를 생성해 낼 수 있음
    • Public key를 외부에 노출되어도 상관 없음

  • 장점
    • 하나의 키로 암호화한 Cipher Text는 반드시 쌍으로 되는 키로만 복호화 가능
    • 안정성이 수학적 이론에 근거 (RSA-소인수분해, ECC-타원곡선)
    • 키 관리 문제 해결
      • N명의 사용자 : N개의 공개/개인키 쌍으로 충분함
    • 서명 기능, 기밀성 등의 기능이 가능
  • 단점
    • 속도가 매우 느림
  • 대표적인 공개키 알고리즘
    • Diffie Hellman : 최초의 공개키 알고리즘
    • RSA : 대표적인 공개키 알고리즘
    • DSA : 전자 서명 알고리즘 표준
    • ECC : 짧은 키로 높은 암호 강도,

공개키 알고리즘 - RSA (Rivest Shamir Adleman)

  • 특징
    • 공개키로 암호화(서명) 하면 개인키로 혼자만 볼 수 있음 —> 기밀성 (Confidentiality)
    • 개인키 암호화(서명)하면 공개키로 검증할 수 있음 —> 인증 (Authentication)
  • 두개의 키를 사용 : Private Key(개인키)와 Public Key(공개키)는 서로 쌍을 이룸
    • Private Key를 먼저 생성한 다음, Private Key에서 Public Key를 추출하는 방식
    • Private Key는 자신만 보관하고, Public Key는 암호화하고 싶은 상대에게 제공

비대칭키/공개키를 사용한 암호학적 문제해결

비대칭키/공개키를 사용할 경우 2가지 문제를 해결할 수 있음

  • 데이터 보안
    • 공개키 암호화 -> 개인키 복호화
    • 데이터를 안전하고 전송 할 수 있는 보안 관점
  • 인증
    • 개인키 암호화 -> 공개키 복호화
    • 신뢰할 수 있는 단체(데이터)라는 것을 인증하는 관점

데이터 보안 관점

  • “I love You”를 암호화 하는데 Bob의 공개키를 사용할 경우, Bob의 개인키로만 복호화 할수 있다.

  • 다시 말해서 해당 암호문은 Bob만 볼 수 있으므로 기밀성이 지켜진다.

    • Bob이 아닌 다른 그 누구도 복호화를 할 수 없다.
  • 공개키로 암호화 하여 안전하게 데이터를 전송하고, 개인키를 가진사람만 복호화 할 수 있음

    • 제 3자가 데이터를 볼 수 없음

인증 (Authentication)

  • “Marry me?”를 암호화 하는데 Bob의 개인키로 암호화 할경우, Bob의 공개키로 복호화가 가능하다.
  • Bob의 공개키로 복호화가 된다는 것은 Bob의 개인키를 사용하여 암호화했다는것을 증명한다.
728x90