티스토리 뷰

암호학

해시함수란?hash function?

삼전동해커 2020. 8. 9. 16:50

해시 함수란 무엇인가?


해시함수란 임의의 길이의 문자열(평문)을 입력 받아 고정된 길이(128bit,160bit,256bit)의 해시값을 출력해주는 함수이다.


1000글자를 넣던,100글자를 넣던 무조건 고정된 길이의 해시값이 출력된다.


해시값이란 해시함수를 통해 만들어진 값을 의미한다.


해시 함수는 다른 암호 알고리즘과는 달리 같은 값에 대해 같은 해시값을 갖는다.


해시 함수의 특징

1.임의 길이의 평문을 고정된 길이의 해시값으로 출력한다.
2.일방향성 : 평문으로 해시값을 구하는 건 쉽지만 해시값으로 평문을 구하는건 매우 어렵다.
3.충돌 회피 : 다른 평문을 사용했어도 동일한 해시값 출력이 가능하다. 동일한 해시값의 평문을 찾는건 불가능 (h(M1)=h(M2)일때 M1과 M2를 찾는건 불가능)

솔트(salt)

salt란 무엇일까? 소금이라는 의미도 있지만, 암호학에서 salt는 패스워드를 보호하기 위해 원래 문자열에 특별한 값(salt)를 추가해 암호화 하는 것이다. 

또한 솔트 값은 유저마다 다르기 때문에 복호화 하는 건 매우 어려워진다.


해시 함수의 종류

1.MD5

2.SHA

3.SHA-1

등등


md5에 대해

128bit 해시값을 가지는 해시 함수이다.

MD5("spongebob")=e1964798cfe86e914af895f8d0291812
MD5("aaaa")=74b87337454200d4d33f80c4663dc5e5

위 예제에서 두개의 평문의 글자수는 다르지만 해시값은 128bit로 같다.

※1byte=bit이므로 해시값은 16byte=128bit이다.


이 사이트에서 쉽게 해시값을 구할 수 있다.

SHA에 대해

sha함수에는 여러 종류가 있다.
sha-1,sha-2,sha-256,sha-512등등..

sha란 Secure Hash Algorithm의 줄임말이다.


sha-1은 해시값은 160bit를 가진다.

sha-2는 sha256,sha384,sha512를 통칭하는 말이다.
sha256은 32byte 해시값을 가지고 sha512는 64byte 해시값을 가진다.



'암호학' 카테고리의 다른 글

전자서명  (0) 2020.10.13
블럭 암호 운용 방식  (0) 2020.10.13
대칭키, 공개키  (0) 2020.10.13
키 분배 프로토콜  (0) 2020.10.05
메세지 인증  (0) 2020.10.03
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함