MajorClass/Information Security

[정보보안] 해시

쿠뱃봉 2022. 12. 10. 00:10

1. 해시

  • 하나의 문자열을 이를 상징하는 더 짧은 길이의 문자열로 변환
    • 입력문의 길이와 상관없이 동일한 길이의 문자열 출력
  • 암호학적 해쉬 함수
    • Collision-Resistant (충돌방지)
      • 서로 다른 입력문에 대해 해시 결과가 다름
    • One-Wayness(일방향성)
      • 해시값으로부터 원문을 추측하기는 불가능

 

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개의 단어 생성

 

80회전을 통해 160bit 생성

정보의 무결성 검증

-> 원래 내용과 변하였는가?

1bit 입력문 차이만 나도 해시값은 완전히 다르다

같은 입력문은 같은 해시값 도출