양방향 / 단방향 암호화
암호화 방식에는 크게 두 가지가 존재한다. 양방향 암호화와 단방향 암호화가 바로 그것이다.
단방향 알고리즘
단방향 알고리즘은 암호화는 가능하지만 복호화는 불가능한 방식이다. 데이터의 진위여부는 확인하고 싶으나, 데이터 내부의 privacy는 지키고 싶을 때 사용 전자 서명에서 많이 사용한다. 대표적으로 HASH 방식에 기반한 알고리즘들이 있다.
- MDC 방식: Modification Detection. 키 없음
- SHA, MD5, HAVAL, …
- MAC 방식 (메시지 인증, 디지털 서명): Message Authentication. 키 있음
- HVAC, NMAC, …
양방향 알고리즘
양방향 알고리즘은 암호화가 가능하고 복호화도 가능한 방식이다. 크게 대칭키 방식과 비대칭키 방식이 있다.
대칭키 방식
데이터 암호 목적 암호화 키 == 복호화 키
Stream 방식
1bit씩 연산. XOR 연산. H/W 구현 용이
- True Random: OTPad
- Psuedo Random: RC4(PPTP, WEP, TKIP)
Block 방식
2bit 이상 묶음 연산. S/W 구현 용이
- Festel: DES
- SPN: AES
- 기타: IDEA
단점
- 키가 탈취되었을 때, 모든 정보가 털린다.
- 안전하게 사용하기 위해서는 모든 사용자가 서로 다른 키를 가져야 하므로 키 관리를 어떻게 할 것인가? 라는 문제에 대한 고민 필요.
- 키를 안전하게 주고 받는 방법에 대한 고민 필요.
비대칭키 방식
대칭키 교환 용도 암호화 키 != 복호화 키
예시
- client가 private key/public key를 암호화하여 server에 전달
- server가 전달받은 public key로 평문을 암호화하여 client에게 전달
- server로부터 전달받은 암호를 client가 가진 private key로 복호화
- 인수분해방식: RSA(디지털서명)
- 이산대수: DH(키교환), DSA(디지털서명)
- 타원곡선방정식: ECC
참고 링크
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.