IT/CS 공부

[CS] 대칭키, 비대칭키, 디지털 서명

박소민 2025. 6. 9. 10:47
대칭키(Symmetric Key Cryptography)

 

: 암호화와 복호화에 동일한 키를 사용하는 방식

  • 장단점
    • 암호화 속도가 빠르고 구현이 간단하지만, 키를 교환하는 과정에서 탈취 위험이 존재
    • 또한 통신 대상이 많아질수록 각 쌍마다 고유의 키가 필요해 키 관리가 복잡해질 수 있다.
  • 대표 알고리즘
    • AES (Advanced Encryption Standard)
    • DES (Data Encryption Standard)

비대칭키 암호화 (Asymmetric Key Cryptography)

 

: 암호화와 복호화에 서로 다른 키를 사용하는 방식

  • 공개키와 개인키로 구성되며, 일반적으로 공개키로 암호화하면 개인키로 복호화한다.
  • 장단점
    • 비대칭키는 키 교환의 보안성을 높이지만, 대칭키 방식에 비해 속도가 느리다.
    • 이를 보완하기 위해 두 방식을 혼합한 하이브리드 암호화 방식이 자주 사용된다 (예: HTTPS).
  • 대표 알고리즘
    • RSA
    • ECC (Elliptic Curve Cryptography)

3. 디지털 서명 (Digital Signature)

 

: 비대칭키 암호화를 활용하여 송신자의 신원과 데이터의 무결성을 검증하는 기술

  • 주요 목적
    • 송신자 신원 확인 (인증)
    • 데이터 위변조 방지 (무결성)
  • 일반적인 암호화와는 반대로, 송신자가 개인키로 서명하고 수신자가 공개키로 검증한다.
  • 서명 과정
    • 송신자가 데이터를 해싱하여 해시값을 생성
    • 해시값을 개인키로 암호화 → 디지털 서명
    • 원본 데이터와 서명을 함께 전달
  • 검증 과정
    • 수신자가 공개키로 서명을 복호화 → 해시값1
    • 받은 원본 데이터를 다시 해싱 → 해시값2
    • 해시값1과 해시값2가 일치하면 서명 유효

4. 실무 활용 예시
  • 전자서명: 법률 문서, 공공기관 문서 등에 사용
    • 사용자는 개인키로 서명, 수신자는 공개키로 진위 여부 검증
  • JWT(RS256) : 사용자 인증 및 권한 부여를 위해 사용하는 토큰 기반 인증 방식
    • RS256은 비대칭키 기반 서명 알고리즘 (RSA 기반)
    • 서버가 개인키로 서명한 토큰을, 클라이언트 또는 다른 서버가 공개키로 검증
  • 코드 서명 인증서
    • 소프트웨어 개발자가 프로그램 배포 전에 개인키로 서명
    • 사용자의 운영체제는 **공개키(인증서 포함)**로 해당 프로그램이 신뢰된 개발자로부터 왔는지 확인