Web Hacking Study/웹해킹

해시 정리

silver surfer 2022. 4. 6.

** 해시함수

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

평문으로 해시값을 구할 수는 있지만 해시값으로 평문을 구할 수 없다.

  • 해시 값(hash value): 매핑 후 데이터 값
  • 키(key): 매핑 전 원래 데이터
  • 해시 테이블(hash table): 해시값 + 데이터의 색인 주소
  • 해싱(hashing): 매핑하는 과정

해시 함수는 보통의 입력 범위보다 출력 범위가 좁은 경우가 많기 때문에, 입력이 다른 평문이 서로 같은 해시값으로 출력되는 경우도 드물게 존재한다. 이런 경우를 충돌이라고 한다. 위 사진에서 John smith와 Sandra Dee라는 key 값이 충돌이 일어난 경우다.

 

** 해시 알고리즘

Message-Digest Algorithm(MD), Secure Hash Algorithm(SHA) 등이 있다.

① MD5

- 임의의 값을 입력 받아서 128bit의 해시 값을 출력하는 알고리즘

- 패스워드 암호화에 많이 사용된다

- 해시값에서 평문을 복원하는 것이 불가능하다

② SHA

- SHA-0, SHA-1은 160bit의 해시값을 출력하는 알고리즘

- SHA-0의 위험성을 개선한 버전이 SHA-1, SHA-1의 위험성을 개선한 버전이 SHA-2

③ SHA-2

- 해시 길이에 따라 SHA-225, SHA-256, SHA-384, SHA-512이 있다.

- 해시 길이가 길수록 더 안전하다

 

** 보안에서 해시를 사용하는 이유

① 키와 해시값 사이의 연관이 없기 때문에 해시값만 가지고 키를 복원하기 어렵다

② 해시 함수의 결과물은 고정된 숫자로, 원래 정보는 소실되므로 키를 알 수 없다.

 

댓글