시스템 보안 해시 함수


시스템 보안 해시(hash) 함수에 대해서 알아보겠습니다.





오늘은 해시에 대해서 알아보겠습니다.

해시는 암호화를 시켜주는 기능이 있습니다.

다른 암호화와는 다른 특이한 점이 있습니다. 보통은 암호화를 한 뒤, 복호화를 할 수 있는데, 해시는 암호화를 하면 복호화를 할 수 없습니다.

그래서 보통, 아무도 원래 값을 알 수 없는 값의 무결성 검증에 많이 사용됩니다. 예를 들면, 비밀번호 같은 곳에 많이 사용되고 있습니다.

비밀번호 입력받은 것을 hash 화 해서 대조하기 때문입니다.

이러한 복호화의 불가능 이유로 관리자도 해커도 볼 수 없습니다.



자주 쓰이는 해시 종류에 대해서 알아보겠습니다.

SHA-1, SHA-256, SHA-512, MD5 정도가 있겠습니다.



이 글을 쓰는 이유 중에 하나는 MD5, SHA-1을 사용할 때에는 신중하자는 것에 있습니다.

SHA-1의 경우 표현할 수 있는 bit가 160에 불과하여 해시 충돌이 일어날 확률이 높습니다.

MD5의 경우 표현할 수 있는 bit가 128에 불과하여 해시 충돌이 일어날 확률이 높습니다.



예를 들 수 있는 파일이 있습니다.

SHA-1

https://shattered.it/static/shattered-1.pdf










https://shattered.it/static/shattered-2.pdf





두 개의 파일은 다르지만, SHA-1의 값은 동일합니다.



SHA-1: 38762CF7F55934B34D179AE6A4C80CADCCBB7F0A





MD5

https://www.mscs.dal.ca/~selinger/md5collision/hello.exe

https://www.mscs.dal.ca/~selinger/md5collision/erase.exe



MD5: CDC47D670159EEF60916CA03A9D4A007





감사합니다.


카테고리: Security

댓글

이 블로그의 인기 게시물

Python urllib.parse.quote()

Python OpenCV 빈 화면 만들기

Python bytes.fromhex()

Android Minimum touch target size

tensorflow tf.random.uniform()

tensorflow tf.expand_dims()

KiCad 시작하기 2 (PCB 만들기)

Forensics .pyc 파일 .py로 복구하기

Android Java 8+ Api desugaring

Android Notification with Full Screen