양방향 알고리즘
- 양방향 알고리즘은 암호화된 암호문을 복호화할 수 있는 알고리즘을 의미한다.
- 대표적으로 대칭키(비공개키) 방식과 비대칭키(공개키) 방식으로 나눠진다.
대칭키(비공개키) 비대칭키(공개키) 방식
- 양방향 암호화는 크게 대칭키와 비대칭키방식으로 나눠진다.
- 대칭키(비공개키) 방식은 암호화, 복호화시 모두 동일한 키를 사용하고 비대칭키(공개키)방식은 암호화 복호화에 서로 다른 키를 사용한다.
대칭키(비공개키) 방식
- 암복호화에 서로 동일한 키가 사용되는 암호화 방식, 그래서 키를 비공개한다.
- 속도가 빠르다.
- 키 배송 위험성이 존재하여 송신 측에서 수신측에 암호 키를 전달하는 과정에서 노출우려가 있다.
- 대표적으로 DES, AES가 있다.
비대칭키(공개키) 방식
- 암복호화에 서로 다른 키가 사용되는 암호화 방식, 하나의 키는 공개키로 사용한다.
- 키 배송의 문제를 근복적으로 차단하여 안전성이 높다.
- 대칭키(비공개키)방식에 비해서 느리다.
- 대표적으로 RSA가 있다.
단방향 알고리즘
- 단방향 알고리즘은 암호화는 수행하지만 절대로 복호화가 불가능한 알고리즘을 의미한다.
- 대표적으로 Hash방식이 대표적이다.
단방향 암호화 방식
- 평문을 암호문으로 암호화하는 것은 가능하지만 암호문을 평문으로 복호화하는 것은 불가능한 암호화 기법
- 비밀번호는 양방향 암호로 저장하는 것보다 단방향 암호로 저장하는 것이 안전하다.
- 암호화된 비밀번호 목록이 털린다고 해도 이를 가지고 원래의 비밀번호를 복원할 수 없고, 비밀번호 자체를 검증할 때는 입력받은 값을 암호화해서 암호화한 값끼리 비교하여 인증처리를 한다.
- 주로 Hash기법을 사용하며 최소한 SHA-256, 가능하면 SHA-3을 쓰는 것이 좋다.
- 나머지는 취약점이 발견된 상태이며, 특히 MD5는 단시간 내에 충돌값을 찾아낼 수 있다.