sitelink1 | |
---|---|
sitelink2 | |
sitelink3 | |
sitelink4 | |
extra_vars5 | |
extra_vars6 |
대표적으로 MD5, SHA1, RMD160, TIGER 등이 많이 쓰인다.
- SNEFRU
1990년 R.C. Merkle에 의해 제안됬다. 128/254 bit 암호화 알고리즘
- N-HASH
1989년 일본 NTT의 미야구치 등이 발표했다.
- MD4
1990년 Ron Rivest에 의해 개발된 MD5의 초기 버전으로서, 입력 데이터(길이에 상관없는 하나의 메시지)로부터 128비트 메시지
축약을 만듦으로써 데이터 무결성을 검증하는데 사용되는 알고리즘이다.
[참고] MD4의 설계 원칙 1) 수학적인 가정 없이 안전한 해쉬함수를 설계한다. 2) 해쉬함수의 수행속도는 가능한 빨라야 한다. 특히, 소프트웨어로 구현했을 때의 속도를 고려한다. 3) 알고리즘은 단순하며 구현이 용이해야한다. 4) little-endian 구조(word의 최하위 바이트가 low-address 바이트 위치에 있는구조)를 고려한 알고리즘을 설계한다. |
- MD5
1992년 Ron Rivest에 의해 개발. MD5는 널리 사용된 해쉬 알고리즘이지만, 충돌 회피성에서 문제점 이 있다는 분석이 있으므로
기존의 응용과의 호환으로만 사용하고 더 이상 사용하지 않도록 하고 있다.
[참고] MD4와 MD5의 차이 1) MD4는 16단계의 3라운드를 사용하나 MD5는 16단계의 4라운드를 사용한다. 2) MD4는 각 라운드에서 한번씩 3개의 기약함수를 사용한다. 그러나 MD5는 각 라운드에서 한번 씩 4개의 기약 논리 함수를 사용한다. 3) MD4는 마지막 단계의 부가를 포함하지 않지만, MD5의 각 단계는 이전 단계의 결과에 부가된다. |
?
- SHA(Secure Hash Algorithm)
1993년에 미국 NIST에 의해 개발되었고 가장 많이 사용되고 있는 방식이다.
SHA1은 DSA에서 사용하도록 되어 있으며 많은 인터넷 응용에서 default 해쉬 알고리즘으로 사용된다. SHA256, SHA384, SHA512
는 AES의 키 길이인 128, 192, 256 비트에 대응하도록 출력 길이를 늘인 해쉬알고리즘이다.
- RMD
RMD128, RMD160는 RIPE 프로젝트의 RIPEMD나 MD4, MD5를 대신하기 위하여 디자인된 해쉬 알 고리즘이다. 128 비트의 출력을
내는 RMD128은 역시 충돌 회피성에서 문제점이 있다. RMD160은 효 율성은 떨어지지만 안전성을 높인 것으로 많은 인터넷 표준들
에서 널리 채택되고 있다. RMD256과 RMD320은 각각 RMD128과 RMD160을 확장한 것이다.
- TIGER
TIGER는 64 비트 프로세서에 최적화되어서 64 비트 프로세서에서는 매우 빠르다.
알고리즘 | 출력길이 | 블럭의 크기 | 라운드 수 | Endianness |
MD5 | 128 | 512 | 64 | Little |
SHA1 | 160 | 512 | 80 | Big |
SHA256 | 256 | 512 | 64 | Big |
SHA384 | 384 | 1024 | 80 | Big |
SHA512 | 512 | 1024 | 80 | Big |
RMD128 | 128 | 512 | 128 | Little |
RMD160 | 160 | 512 | 160 | Little |
RMD256 | 256 | 512 | 128 | Little |
RMD320 | 320 | 512 | 160 | Little |
HAS160 | 160 | 512 | 80 | Little |
TIGER | 192 | 512 | 56 | Little |
[표 ] 해쉬 알고리즘 종류 비교