슈개's IT/Engineer Room

단순해시함수가 취약함으로 메시지 변경이 가능한가?

슈개 2021. 1. 23. 10:58
반응형

단순해시함수가 취약함으로 메시지 변경이 가능한가?

 

 

 

단순해시함수가 취약함으로 인하여 이를 개선하기 위해 Shift 연산을 추가했을 경우 안전하고 Sally가 메시지를 변경할 수 있는가?

 

단순해시함수 형태는 각 블록의 비트별 XOR 하여 나온 해시값을 사용한다. 비트별 XOR 하면 홀수일 경우 ‘1’ 짝수일 경우 ‘0’ 이 나오게 된다. 공격자는 어떻게든 본래의 정상메시지가 아니고 조작된 메시지의 해시값이 동일하게 끔 생성하여 이 조작된 메시지를 수신자측에 보내면 수신자는 이를 그대로 받아들여 피해를 입을 수 있다.

 

이러한 문제를 개선하기 위해 초기 블록1에 초기 해시값이 0으로 된 비트열을 주고 XOR 시켜서 생성된 해시값을 순환 우측-시프트(circular shift-right) 연산을 거치고 생성된 해시값을 블록2에 넣어 또다시 XOR 하여 생성된 해시값을 순환 우측-시프트(circular shift-right) 연산을 거치고 생성된 해시값을 마찬가지로 다음 블록에도 동일하게 블록n까지 반복하여 최종 해시값을 구한다.

 

이러한 개선된 과정은 해당 해시값들을 더욱 완전하게 랜덤화시키는 효과가 있고 입력값에 나타는 모든 규칙성을 제거하는 효과가 있으며 데이터 무결성이 지켜지는 조금 더 안전한 좋은 방법이 되겠다.

 

그러므로 Sally는 중간에서 변조된 메시지를 변경하여 보내도 무결성으로 보장되므로 Bob은 변경된 메시지라고 안전하게 확인이 가능하다.

반응형