728x90
Hash function의 알고리즘 종류는 암호학적 Hash fucntion, 비암호학적 Hash function으로 구분한다.
비암호학적 Hash 함수는 대표적으로 CRC32가 있는데 CRC32는 단순 XOR연산이라서 비암호학적 Hash함수에 걸맞게 안전하지 않다.
암호학적 Hash function으로는 아래와 같은 것들이 있다.
Hash Algorithm | block size (bit) |
길이한계 (bit) |
Hash Length (bit) |
보안 강도 (bit) |
충돌 발견여부 | ||
Message Digest | MD5 | 512 | 64 | 128 | < 64 | o | |
SHA | SHA1 | 512 | 64 | 160 | < 63 | o | |
SHA2 | SHA224 | 512 | 64 | 224 | 112 | x | |
SHA256 | 512 | 64 | 256 | 128 | x | ||
SHA384 | 1024 | 64 | 384 | 192 | x | ||
SHA512 | 1024 | 128 | 512 | 256 | x | ||
SHA512/224 | 1024 | 128 | 224 | 112 | x | ||
SHA512/256 | 1024 | 128 | 256 | 128 | x | ||
SHA3 | SHA3-224 | 1152 | 무제한 | 224 | 112 | x | |
SHA3-256 | 1088 | 무제한 | 256 | 128 | x | ||
SHA3-384 | 832 | 무제한 | 384 | 192 | x | ||
SHA3-512 | 576 | 무제한 | 512 | 256 | x |
*길이한계: 내부적으로 메시지를 채우기 위해 데이터의 길이와 같은 추가적인 변수를 사용하는데 이때 사용하는 변수를 길이한계라고 한다. 만약 길이한계를 64로 할 경우 2^64-1이 변수 크기이다.
*보안강도: 알고리즘의 취약성을 찾기위해 수행해야 하는 작업량으로 보안강도가 64비트이면 2^64번의 수행을 해야 암호키나 알고리즘의 취약성을 알 수 있다.
*충돌: 다른 입력값을 넣었는데 동일한 Hash값이 출력될 경우를 충돌이라고 한다.
Hash 함수들에 대한 설명은 이전에 작성한 글을 참고하면 된다.
728x90
'Crypto' 카테고리의 다른 글
난수 생성기, PRNG와 TRNG (0) | 2024.04.11 |
---|---|
ECC 알고리즘, ECDH와 ECDSA (0) | 2024.04.10 |
Hash Function의 특징과 용도 (0) | 2024.04.01 |
공개키 암호 시스템, RSA 알고리즘의 암복호화와 전자서명 (0) | 2024.03.29 |
AES 알고리즘의 특징 및 Cipher Mode (1) | 2024.03.27 |