포스트

양방향 / 단방향 암호화

암호화 방식에는 크게 두 가지가 존재한다. 양방향 암호화와 단방향 암호화가 바로 그것이다.

단방향 알고리즘

단방향 알고리즘은 암호화는 가능하지만 복호화는 불가능한 방식이다. 데이터의 진위여부는 확인하고 싶으나, 데이터 내부의 privacy는 지키고 싶을 때 사용 전자 서명에서 많이 사용한다. 대표적으로 HASH 방식에 기반한 알고리즘들이 있다.

  • MDC 방식: Modification Detection. 키 없음
    • SHA, MD5, HAVAL, …
  • MAC 방식 (메시지 인증, 디지털 서명): Message Authentication. 키 있음
    • HVAC, NMAC, …

양방향 알고리즘

양방향 알고리즘은 암호화가 가능하고 복호화도 가능한 방식이다. 크게 대칭키 방식비대칭키 방식이 있다.

대칭키 방식

Desktop View 대칭키 방식

데이터 암호 목적 암호화 키 == 복호화 키

Stream 방식

Desktop View Stream 방식

1bit씩 연산. XOR 연산. H/W 구현 용이

  • True Random: OTPad
  • Psuedo Random: RC4(PPTP, WEP, TKIP)

Block 방식

Desktop View Block 방식

2bit 이상 묶음 연산. S/W 구현 용이

  • Festel: DES
  • SPN: AES
  • 기타: IDEA

단점

  1. 키가 탈취되었을 때, 모든 정보가 털린다.
  2. 안전하게 사용하기 위해서는 모든 사용자가 서로 다른 키를 가져야 하므로 키 관리를 어떻게 할 것인가? 라는 문제에 대한 고민 필요.
  3. 키를 안전하게 주고 받는 방법에 대한 고민 필요.

비대칭키 방식

Desktop View 공개키 방식

대칭키 교환 용도 암호화 키 != 복호화 키

예시

  1. client가 private key/public key를 암호화하여 server에 전달
  2. server가 전달받은 public key로 평문을 암호화하여 client에게 전달
  3. server로부터 전달받은 암호를 client가 가진 private key로 복호화
  • 인수분해방식: RSA(디지털서명)
  • 이산대수: DH(키교환), DSA(디지털서명)
  • 타원곡선방정식: ECC

참고 링크

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.