해시(Hash)
해시(Hash)란 어떤 데이터에 대응하는 값을 구하기 위한 방법 중 하나입니다.
동일한 데이터로부터 생성된 해시 값은 항상 똑같으며,
원래 데이터가 조금이라도 다르면 생성되는 해시값도 달라집니다.
[해시의 성질]
● 동일한 데이터로부터는 항상 동일한 해시 값이 생성된다.
● 동일한 데이터라도 다른 알고리즘을 사용하면 해시 값은 다른 값이 된다.
● 다른 데이터로부터는 동일한 해시 값이 생성되지 않는다.
동일한 해시 알고리즘을 사용해도 다른 데이터로부터는 다른 해시값이 생성된다.
동일한 데이터라도 다른 알고리즘을 사용하면 다른 해시 값이 생성된다.
[해시의 이용 예]
다른 데이터로부터 동일한 해시 값은 생성되지 않으므로 해시 값을 사용함으로써 데이터가 변조되지 않았다는 것을 확인할 수 있습니다.
데이터가 변조되지 않았다는 것을 확인
해시 값이 똑같으므로 배포원의 파일과 입수한 파일이 동일하다는 것을 확인할 수 있다.
데이터 변조를 검출
해시 값이 배포원의 파일과 다르므로 파일이 변조되었다고 판단할 수 있다.
[충돌]
해시의 충돌을 고의로 발생시킬 수 있게 되면 해시 알고리즘의 안전성이 훼손됩니다.
서로 다른 파일로부터 동일한 해시 값이 생성되어 버리는 경우
파일 A와 해시 값이 a로부터 파일 B를 생성할 수 있게 된다.
해시 값으로부터 그 해시 값을 생성하는 파일을 만들 수 있는 경우
해시값 a를 생성하는 파일 X를 만들 수 있게 된다.
출처 : 그림 설명으로 한 번에 이해할 수 있는 보안의 기본(저자 Miyamoto Kunio, Okubo Takao / 출판 위즈플래닛)