해시 함수

인철·2023년 10월 18일
0

Spring

목록 보기
44/48
post-custom-banner

해시 함수

정의

  • 임의의 길이의 입력 데이터를 고정된 길이의 데이터로 매핑하는 함수
  • 다양한 보안 및 데이터 처리 작업에 사용

특성

  • 고정된 출력 길이 : 입력 데이터의 크기와 관계없이 항상 일정한 길이의 해시 값을 생성

  • 일방향 함수 : 해시 값을 생성하는 반복 가능한 알고리즘, 원래 데이터를 해시 값으로 변환할 수 있지만, 해시 값에서 원래 데이터를 복구하는 것은 매우 어렵거나 거의 불가능함

  • 충돌 저향성 : 서로 다른 두 입력에 대해 동일한 해시 값을 생성하는 충돌이 최소화 되어야 함

  • 안정성과 안전성 : 안전한 해시 함수는 무작위적인 입력 데이터에 대해 예측하기 어려운 해시 값을 생성해야 하고 입력 데이터의 작은 변화가 해시 값에 큰 변화를 일으켜야 함을 의미

  • 무결성 : 데이터의 무결성을 확인하기 위해 사용

  • 속도 : 일부 해시 함수는 빠른 처리 속도를 갖도록 설계되었지만, 다른 일부 해시 함수는 보안성을 강조하고 속도는 느리지만 안전성을 향상

종류

  • MD5 (Message-Digest Algorithm 5): 128비트의 해시 값을 생성하는 비암호화 해시 함수로, 더 이상 안전하지 않음

  • SHA-1 (Secure Hash Algorithm 1): 160비트의 해시 값을 생성하는 해시 함수로, 이것도 더 이상 안전하지 않음

  • SHA-256, SHA-384, SHA-512 (Secure Hash Algorithm): 각각 256비트, 384비트, 512비트의 해시 값을 생성하는 해시 함수

  • RIPEMD (RACE Integrity Primitives Evaluation Message Digest): 다양한 비트 수를 가진 해시 값을 생성하는 일련의 해시 함수

  • Whirlpool: 512비트의 해시 값을 생성하는 해시 함수로, 일부 보안 응용 프로그램에서 사용

  • Blake2: SHA-3 후보로 제안된 256비트 해시 함수로, 높은 처리 속도와 보안성을 제공

  • HMAC (Hash-based Message Authentication Code): 특정 해시 함수를 사용하여 메시지 인증 코드를 생성하는 데 사용되는 메시지 인증 코드 알고리즘

profile
같은글이있어도양해부탁드려요(킁킁)
post-custom-banner

0개의 댓글