Computer >> 컴퓨터 >  >> 프로그램 작성 >> 프로그램 작성

보안 해시 알고리즘은 어떻게 작동합니까?

<시간/>

SHA(Secure Hash Algorithm)는 NSA(National Security Agency)에서 발명했으며 1993년 NIST(National Institute of Standard and Technology)를 통해 미국 연방 정보 처리 표준(FIPS PUB 180)으로 발표되었습니다.

SHA는 MD4 알고리즘에 의존하고 유사한 빌딩 블록을 공유합니다. SHA의 디자인은 압축 기능에 대한 16단어 메시지 블록 입력을 다른 것들 사이의 80단어 블록으로 발전시키는 새로운 프로세스를 도입했습니다.

SHA의 처리는 다음과 같이 작동합니다 -

1단계패딩 비트 추가 − 원본 메시지가 채워지고 지속 시간이 448 모듈로 512와 일치합니다. 메시지가 이미 원하는 길이를 가지고 있지만 패딩은 계속해서 삽입됩니다. 패딩에는 단일 1과 그 뒤에 필수적인 0비트 수가 포함됩니다.

2단계길이 추가 - 부호 없는 64비트 정수(가장 필수적인 바이트 먼저)로 간주되고 원본 메시지의 길이를 정의하는 64비트 블록(1단계에서 채우기 전)이 메시지에 추가됩니다. 전체 메시지 길이는 512의 배수입니다.

3단계버퍼 초기화 − 버퍼에는 각각 A, B, C, D, E로 표시된 32비트 레지스터 5개가 포함됩니다. 이 160비트 버퍼는 압축 기능의 임시 및 최종 결과에 영향을 미치는 데 사용할 수 있습니다. 이 5개의 레지스터는 다음 32비트 정수(16진수 표기법)로 초기화됩니다.

A =67 45 23 01

B =ef cd ab 89

C =98 ba dc fe

D =10 32 54 76

E =c3 d2 e1 f0

레지스터 A, B, C, D는 실제로 MD5 알고리즘에서 사용되는 4개의 레지스터와 동일합니다. 그러나 SHA-1에서 이러한 값은 단어의 가장 필수적인 바이트가 하위 주소 바이트 위치에 있음을 정의하는 빅 엔디안 형식으로 저장됩니다. 따라서 초기화 값(16진수 표기법)은 다음과 같이 발생합니다. -

단어 A =67 45 23 01

단어 B =ef cd ab 89

단어 C =98 ba dc fe

단어 D =10 32 54 76

단어 E =c3 d2 e1 f0

4단계512비트 블록으로 메시지 처리 − 압축 기능은 20개의 순차적 단계로 구분되며 각 라운드는 20개의 단계로 구성된 4개의 처리 라운드가 포함됩니다.

4개의 라운드는 구조적으로 서로 동일하지만 각 라운드에는 f1, f2, f3, f4로 정의할 수 있는 다른 부울 함수와 4개의 다중 덧셈 상수 Kt(0 ≤t ≤79) 중 하나로 정의할 수 있습니다. 고려 중인 단계를 기반으로 합니다.

5단계 - 출력 − 최종 512비트 메시지 블록 t를 처리한 후(메시지가 t512비트 블록으로 분할된 것을 고려), 160비트 메시지 요약을 얻을 수 있습니다.