더북(TheBook)

해시 함수와 블록 암호화 알고리즘은 난수처럼 보이는 결과물을 생성한다는 공통점이 있습니다. 또 둘 다 입력 값의 비트 하나라도 바뀌면 결과물이 반 이상 바뀌는 ‘쇄도 효과’를 갖도록 설계되었습니다. 하지만 블록 암호화 알고리즘이 암호화된 결과물을 복호화할 수 있는 것과 달리 해시 함수는 암호화된 결과 값을 복호화할 수 없습니다. 이는 해시 함수의 ‘일정한 길이로 일종의 압축을 수행하는’ 특성 때문입니다. 해시 함수의 입력과 출력은 일대일로 유일한 쌍을 이루지 않기 때문에 되돌아갈 수 없습니다.

보통 복호화가 불가능하다고 하면 해시 함수가 복잡하고 안전한 알고리즘을 사용하는구나 하고 생각합니다. 하지만 이는 잘못된 인식입니다. 알고리즘의 안전성과는 별개로 암호화된 결과 값(원본 데이터보다 크기가 작은)에 원본 데이터 전부를 복원할 수 있는 정보가 없어서 애당초 복호화를 할 수 없는 것입니다.

 

| 해시 함수에서 해시 값이 같을 가능성(충돌 가능성) |

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.