자료구조 & 알고리즘

해시 함수와 알고리즘

kyoulho 2024. 8. 5. 12:49
  • 해시 함수란 임의의 크기를 가지는 type의 데이터를 고정된 크기를 가지는 type의 데이터로 변환하는 함수이다.
  • 데이터의 무결성을 검사하고, 데이터에 대한 고유한 지문을 생성하기 위해 사용된다.
  • 각 해시 알고리즘은 서로 다른 보안 요구 사항과 성능 특성을 가지고 있으므로, 사용 목적에 맞는 적절한 알고리즘을 선택하는 것이 중요하다. 보안 요구 사항이 높은 경우, SHA-2, SHA-3 또는 BLAKE2와 같은 최신 알고리즘을 사용하는 것이 좋다.
     

1. MD5 (Message Digest Algorithm 5)

  • 해시 길이: 128 비트
  • 설명: MD5는 가장 오래된 해시 알고리즘 중 하나로, 빠르고 간단하다. 주로 파일 무결성 검사와 비밀번호 해싱에 사용되지만, 최근에는 보안 취약성 때문에 중요한 보안 응용에는 사용되지 않는다.
  • 특징: 충돌 공격에 취약하여, 같은 해시 값을 가진 두 개의 서로 다른 입력을 찾는 것이 가능하다.

2. SHA-1 (Secure Hash Algorithm 1)

  • 해시 길이: 160 비트
  • 설명: SHA-1은 SHA 계열의 해시 함수로, 보안성이 MD5보다 높다. 디지털 서명과 데이터 무결성 검증에서 사용되지만, 충돌 공격에 대한 취약성 때문에 현재는 권장되지 않는다.
  • 특징: SHA-2 계열에 비해 보안성이 낮으며, 현대의 많은 보안 표준에서는 SHA-1을 사용하지 않는다.

3. SHA-2 (Secure Hash Algorithm 2)

  • 해시 길이: 224, 256, 384, 512 비트
  • 설명: SHA-2는 SHA-1의 후속으로, 더 높은 보안성을 제공한다. SHA-256과 SHA-512는 SHA-2의 주요 변형이며 데이터 무결성 검증과 암호화에서 널리 사용된다.
  • 특징: SHA-1보다 높은 충돌 저항성을 가지며, 현재 많은 보안 시스템에서 표준으로 사용된다.

4. SHA-3 (Secure Hash Algorithm 3)

  • 해시 길이: 224, 256, 384, 512 비트
  • 설명: SHA-3는 SHA-2와는 다른 구조를 가진 해시 함수로, Keccak 알고리즘을 기반으로 한다. SHA-3는 SHA-2와는 별개의 암호학적 구조를 가지고 있어 높은 보안성을 자랑한다.
  • 특징: SHA-2와 다른 구조로, 현대의 많은 암호학적 요구 사항을 충족한다.

5. RIPEMD-160 (RACE Integrity Primitives Evaluation Message Digest)

  • 해시 길이: 160 비트
  • 설명: RIPEMD-160은 RIPEMD 계열의 해시 함수로, 보안 응용 프로그램에서 사용된다. SHA-2 계열보다 덜 널리 사용되지만, 여전히 안정적인 해시 함수이다.
  • 특징: SHA-2 계열에 비해 사용이 적지만, 충돌 저항성 및 보안성이 우수하다.

6. BLAKE2

  • 해시 길이: 224, 256, 384, 512 비트
  • 설명: BLAKE2는 SHA-3 경쟁에서 1위를 차지한 해시 함수로, 빠르고 안전하다. SHA-2보다 빠른 성능과 강력한 보안성을 제공한다.
  • 특징: 매우 빠르고 보안성이 높으며, 다양한 해시 길이를 지원한다. 파일 무결성 검사와 암호화에서 널리 사용된다.

'자료구조 & 알고리즘' 카테고리의 다른 글

Map & Hash table  (0) 2024.08.12
Priority Queue & Heap  (0) 2024.08.12
힙정렬  (0) 2024.04.10
Kadane: 배열에서 최대 연속 부분 배열 합 구하기  (0) 2024.03.13
오일러 피  (0) 2024.03.03