SHA512
해시(Hash)는 메세지의 오류나 변조를 쉽고 빠르게 탐지할 수 있다. 또한 데이터의 무결성을 제공하기 위해 사용된다. 해시 함수는 크게 4가지의 특징을 가진다. 어떤 값을 입력하여도 항상 고정된 길이의 해시 값이 출련된다. 그리고 작은 변경만으로도 완전히 다른 결과 값이 출력된다. 또한 출력된 결과 값을 토대로 입력 값의 유추가 불가능하다. 마지막으로 입력 값은 항상 동일한 해시 값이 출력된다. 이러한 해시의 종류에는 MD 알고리즘과 SHA 알고리즘이 있다. SHA(Secure Hash Algorithm)알고리즘은 미국 NAS에 의해 만들어졌다.[1]
개요
2001년에 미국 국가안보국은 SHA-2를 개발했으며 2002년에 표준으로 제정되었다. 해시 함수가 출력하는 압축된 문장을 다이제스트(Digest)라고 하는데, SHA-512는 SHA-2가 생성하는 다이제스트 출력 길이의 종류 중 하나이다. SHA-512는 46~80 라운드를 통과해야 공격으로부터 안전하다고 판단하며, 1024 비트(bit)를 1개의 패딩 메시지로 만든다.[2]
등장 배경
미국 국가안보국(NSA)은 1993년 서버와 클라이언트가 데이터를 주고 받을 때 혹시 모를 해킹을 방지하고자 통신 데이터를 암호화하는 기술인 SHA를 최초로 설계했다. 이후 인터넷 보안 표준으로 채택되어 널리 이용되었다.[3] 1995년 SHA-1이 발표되었지만 이론상으로 보안 취약점이 발견되어 이것을 대체하기 위한 계발이 이루어졌다. 이때 공개된것이 SHA-256, SHA-384, SHA-512이다.
특징
패딩
SHA-512의 전체적인 진행과정 중 가장 처음으로 발생하는 것이 패딩(Padding)과정이다. 패딩은 100개의 공간에 문자 1개가 들어오면 나머지 99개의 공간을 숫자 0 등으로 메우는 작업이다. SHA-512는 1024 비트(bit)를 1개의 패딩 메시지로 형성한다.[2] 1개의 패딩 메시지는 입력으로 준 메시지와, 메시지의 끝, 0으로 된 패딩 값, 메시지의 길이와 같은 다양한 정보가 포함된다.
파싱
해시 함수의 연산을 진행하기 전에 파싱(Parsing)이라는 과정이 선행된다. 파싱은 컴퓨터에서 컴파일러 또는 번역기가 원시 부호를 기계어로 번역하는 과정의 한 단계로, 각 문장의 문법적인 구성 또는 구문을 분석하는 과정이다.[4] SHA-512에서 패딩된 메시지의 파싱은 N개의 1024 비트(bit) 덩어리의 패딩 메시지가 존재한다.[2]
특성
- 해시값 크기 : 512
- 내부 상태 크기 : 512
- 블록 크기 : 1024
- 길이 한계 : 128
- 워드 크기 : 64
- 과정 수 : 80
- 사용되는 연산 : +,and,or,xor,shr,rotr
- 충돌 여부 : 발견 안됨
각주
- ↑ 어미새와 아기새가 꿈꾸는 블록체인, 〈해시함수의 특징 및 정의〉, 《티스토리》, 2018-04-06
- ↑ 2.0 2.1 2.2 티핀, 〈SHA-2(Secure Hash Algorithm 2) 알고리즘 분석하기 (이론 1편)〉, 《네이버 블로그》, 2011-10-19
- ↑ 강일용 기자, 〈잇따른 구글의 보안 경고, 이번엔 https 기술 내부도 문제〉, 《동아닷컴》, 2017-02-24
- ↑ 한국정보통신기술협회 , 〈파싱〉, 《네이버 지식백과》
참고자료
- 어미새와 아기새가 꿈꾸는 블록체인, 〈해시함수의 특징 및 정의〉, 《티스토리》, 2018-04-06
- 강일용 기자, 〈잇따른 구글의 보안 경고, 이번엔 https 기술 내부도 문제〉, 《동아닷컴》, 2017-02-24
- 티핀, 〈SHA-2(Secure Hash Algorithm 2) 알고리즘 분석하기 (이론 1편)〉, 《네이버 블로그》, 2011-10-19
같이 보기
|