시스템 보안 해시 함수


시스템 보안 해시(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 빈 화면 만들기

Android Notification with Full Screen

tensorflow tf.random.uniform()

Android AVD Ram size change

Python bs4.SoupStrainer()

Android Compose automation for getting localized images to use on Play Store app image

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

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

KiCad 시작하기 7 (FreeRoute 사용하기 2)