기 타 해시 알고리즘에 대하여....초보 질문입니다.
2014.09.16 12:09
안녕하세요.
해시 알고리즘에 대한 초보 질문입니다.
데이터 파일의 무결성을 확인할 때 해시 알고리즘을 써서 해시값을 확인하면 손쉽게 알 수 있는데요,
여기서 문득, 해시값을 보면 해시값의 문자열 길이가 고정 되어있다보니 데이터 양이 제한되지 않을까 라는 생각이 드는데요
위키피디아에서 SHA알고리즘 찾아보니까 SHA-0,1 같은 경우 Max Message Size가 2^64 bits라고 나오더군요.
그래서 이 bits를 테라바이트로 환산해보니까 2097152 TB 정도 나오더군요.
그럼 이 말은 SHA-0,1 알고리즘으로 해싱 할 수 있는 것은 2097152 TB의 크기를 가진 파일이 마지노선이라는 것인가요?
댓글 [2]
-
드로이얀7 (이준호) 2014.09.16 14:52
-
드로이얀7 (이준호) 2014.09.16 14:57
여담으로 모든 암호화는 전수공격을 유의미한 시간내에 할 수 있는 충분히 빠른 컴퓨터가 있다면 무력화 됩니다.
그것 때문에 SF에서 자주 쓰이는 보안 관련 떡밥 중 하나가, X나 짱짱 빠른 양자컴퓨터가 있으면 현존하는 모든 암호화를 다 깨고 뭐든지 다 해킹할 수 있다! 는 거죠.
콜 오브 듀티 블랙 옵스2가 그 예중 하나.
https://rigvedawiki.net/r1/wiki.php/%EC%BD%9C%20%EC%98%A4%EB%B8%8C%20%EB%93%80%ED%8B%B0:%20%EB%B8%94%EB%9E%99%20%EC%98%B5%EC%8A%A4%202/%EC%A4%84%EA%B1%B0%EB%A6%AC#s-1.2
"셀레륨을 토대로 조그마한 장치를 만들었는데, 그 장치를 섹션 팀에게 건네주며 그것은 미국의 군 시설 전체보다 강력한 처리 능력을 가졌다고 한다."
https://rigvedawiki.net/r1/wiki.php/%EC%BD%9C%20%EC%98%A4%EB%B8%8C%20%EB%93%80%ED%8B%B0:%20%EB%B8%94%EB%9E%99%20%EC%98%B5%EC%8A%A4%202/%EC%A4%84%EA%B1%B0%EB%A6%AC#s-1.2
"셀레륨 드라이브를 중앙통제장치에 삽입한다. 셀레륨 드라이브는 엄청난 연산속도로 오바마호의 중앙통제 네트워크의 암호를 풀어버리고, 미국의 무인 항공기를 전부 메넨데즈의 통제하에 두는 것은 물론이고 군사위성 등 전세계의 미군 네트워크를 장악한다."
파일 크기 제한은 없습니다. 대신 같은 해쉬값을 가진 파일이 여러개 존재합니다.
이유는 비둘기집의 원리나 생일 패러독스 (혹은 생일 공격)에 대해 알아보시면 이해가 될 겁니다.
https://mirror.enha.kr/wiki/%EB%B9%84%EB%91%98%EA%B8%B0%20%EC%A7%91%EC%9D%98%20%EC%9B%90%EB%A6%AC
https://mirror.enha.kr/wiki/%ED%95%B4%EC%89%AC#s-3
해쉬에 대한 흔한 착각 중 하나가 파일 - 해쉬값이 1:1대응이라는 건데, 해쉬의 안정성은 단지 특정 파일의 해쉬값을 '해당 파일을 직접 구해서 해쉬 계산을 하지 않고, 다른 파일들의 해쉬값들 만으로는' 알아낼 수 없다는 겁니다. 또한 해쉬 함수의 특징을 분석해서 생일 공격보다 훨씬 빠르게 충돌을 찾아내는 방법이 발견되기도 합니다. (이렇게 된 해쉬 함수는 더 이상 안전하지 않은 것으로 생각됩니다.)
때문에 파일 무결성 확인시에는 확인 목적도 생각해야 됩니다. 단지 네트워크 전송시의 데이터 오염에 대한 대책뿐이라면 MD5도 지금도 쓸만할 수 있습니다만, 해킹에 대한 보안으로 쓰는거라면 SHA-1도 다시 생각해 봐야 되는 때가 되었죠.