비밀키 / 공개키


 암호 시스템의 설계에 있어서 가장 중요한 것은

알고리즘(Algorithm)키(Key)라고 할 수 있다. 

 


 

 알고리즘(Algorithm) 

 

  • 암호화/복호화에 적용된 수학적 원리 및 수행절차
  • 암호화 알고리즘과 복호화 알고리즘으로 구분
  • 알고리즘의 이해와 구현은 쉬워야 하나 공격에는 대신 강해야 한다.

 

 키(Key) 

 

  • 암호화 혹은 복호화 능력을 얻기 위한 지식
  • 동일한 알고리즘을 여러 사용자들이 고유하게 활용할 수 있게 해준다.

 

 


이러한 키 알고리즘은 크게 비밀키 공개키 방식으로 구분할 수 있다.


 

 

 비밀키(Private Key) 


암호화 / 복호화를 위해 비밀 메시지를 교환하는 당사자만이 알고 있는 키


 

  • 등장시기 : BC 500년경
  • 키 대칭성 :  암호화 키 = 복호화키  ( 대칭키 )
  • 키 개수 : N*(N-1)/2
  • 장점 
    • 계산속도 빠름
    • 알고리즘이 다양
    • 공격에 더 강함
  • 단점
    • 키 분배가 어려움
    • 관리 대상 키가 많음
    • 인증 / 무결성 검증 불가
    • 부인 방지 불가
  • 예 : DES, AES, IDEA, MASK, ARIA 등
  • 실생활에서의 예 : 일반 가정집 열쇠

 

이미지 출처 : http://isweb.joongbu.ac.kr/~solbi/symmetric.html

 

 

 

 

 공개키(Public Key) 


지정된 인증기관에 의해 제공되는 키

공개키로부터 생성된 개인키와 함께 결합되어 메시지 및 전자서명의 암호화, 복호화에 사용


 

  • 등장시기 : 1976년
  • 키 대칭성 :  암호화 키 ≠ 복호화 키   ( 비대칭키 )
  • 키 개수 : 2*N
  • 장점 
    • 키의 사전 공유 불필요
    • 통신 대상의 추가에도 용이함 ( = 키 분배 용이 )
    • 인증 기능 제공
    • 부인 방지 기능
  • 단점 
    • 계산 속도 느림
    • 공격에 약함
    • 무결성 검증이 안됨
  • 예 : DH, RSA, ECC, DSA 등
  • 실생활에서의 예 : 지하철 물품보관함 >> 동전을 넣어 잠그고(암호화), 열쇠나 비밀번호로 여는(복호화) 방식

 

이미지 출처 : https://docs.oracle.com/cd/E19693-01/819-0997/aakfv/index.html

 

 

 

참고: 

https://codedragon.tistory.com

현대암호학 제5판, 원동호 저

 

'Knowledge' 카테고리의 다른 글

JSON (JavaScript Object Notation)  (0) 2019.09.02
XML (eXtensible Markup Language)  (0) 2019.09.01
하드웨어 / 미들웨어 / 소프트웨어  (0) 2019.08.30
소프트웨어 개발 방법론  (0) 2019.08.15
API , Restful  (0) 2019.08.14