MajorClass/Information Security
[정보보안] 해시
쿠뱃봉
2022. 12. 10. 00:10
1. 해시
- 하나의 문자열을 이를 상징하는 더 짧은 길이의 문자열로 변환
- 입력문의 길이와 상관없이 동일한 길이의 문자열 출력
- 암호학적 해쉬 함수
- Collision-Resistant (충돌방지)
- 서로 다른 입력문에 대해 해시 결과가 다름
- One-Wayness(일방향성)
- 해시값으로부터 원문을 추측하기는 불가능
- Collision-Resistant (충돌방지)
2. 해시함수의 종류
- MD5, SHA-1
- MD5
- 로널드 리베스트
- RSA와 함께 공개키 기반 구조를 만들기 위해 개발
- 32비트 컴퓨터에 최적화
- 해쉬 결과 값의 경우의 수
- 32개의 16진수로 출력(32*4=128비트)
- 충분히 커 보이지만 무한은 아님
- 실제 가용 데이터의 개수는 이를 훨씬 능가
- 충돌
- 서로 다른 입력 데이터가 동일한 해쉬 결과 출력
- SHA(Secure Hash Algorithm)
- 입력문의 길이 0<|M|<2^64
- 512비트의 입력 블럭(16*32bits) 단위로 hashing
- 160비트의 해쉬 결과 생성
- SHA-1
- 한 블럭 512 bits (16*32bits)
- 16개의 단어
- 80번의 연산을 통해 80개의 단어 생성
정보의 무결성 검증
-> 원래 내용과 변하였는가?
1bit 입력문 차이만 나도 해시값은 완전히 다르다
같은 입력문은 같은 해시값 도출