1. SHA (Secure Hash Algorithm)
ㅇ 미국 NIST에서 1993년 발표된 표준 FIPS PUB 180 으로 공표된 해쉬 함수 알고리즘을 말함
- 해쉬 알고리즘 중 하나인 MD-4 알고리즘에 기반을 두고 있으며,
- MD-5 취약성 개선/대체하기 위함
ㅇ SHA-1 (FIPS PUB 180-1, 1995년)
- SHA는 입력된 메세지를 512 비트 블록 단위로 처리하여, 160 비트의 출력값(해시값) 생성
- 입력 메세지 길이 상한 : 264
- 해시값 길이 : 160 비트 (20 바이트)
* MD-5,SHA-1 비교
. 사전 패딩 처리는 MD5와 동일
. 출력값에 있어서는 MD-5 보다 길기 때문에 SHA가 더 안전하나,
. SHA 버퍼 크기가 MD-5 보다 더 크기 때문에 속도면에서는 MD-5가 25% 정도 더 빠름
ㅇ SHA-2 (FIPS PUB 180-2, 2002년)
- SHA-1 및 그 변형인 SHA-256,SHA-384,SHA-512(해시값 각 256,384,512 비트),
보안 수준을 3DES에 맞게 수정한 SHA-224와 함께 FIPS PUB 180-2로써 2002년 공표됨
- 그냥 SHA-2라하면, SHA-224,SHA-256,SHA-384,SHA-512 4개를 총칭함
. SHA-224 (28 바이트), SHA-256 (32 바이트), SHA-384 (48 바이트), SHA-512 (64 바이트)
2. SHA-1 주요 처리
ㅇ 패딩 처리
- 메세지 길이를 512 비트 단위(입력 블록 상한)로 잘라서 512 비트의 정수배로 만듬
ㅇ 입력 블록 단위의 처리 : 32 비트 x 80개 값(W0~W79)을 계산
ㅇ 블록 처리
ㅇ 1 단계 처리