SHA-3(케착) (SHA-3 (Keccak))

정보보안학
한 줄 정의: SHA-3는 케착(Keccak) 알고리즘을 기반으로 한 NIST 표준 해시 함수로, 스펀지(sponge) 구조를 이용해 임의 길이의 입력을 고정 길이의 해시값으로 변환합니다.

쉽게 풀면

해시 함수는 어떤 데이터를 입력하면 항상 같은 길이의 고유한 지문 같은 값을 출력해주는 함수입니다. SHA-3는 이 지문을 만드는 새로운 방식으로, 기존 SHA-2 계열과 완전히 다른 내부 구조(스펀지 구조)를 사용해 만들어졌습니다. 스펀지가 물을 흡수했다가 짜내는 것처럼, 데이터를 흡수하는 단계와 결과를 짜내는 단계로 나뉘어 동작한다고 이해하면 됩니다.

왜 중요한가

기존 SHA-1, SHA-2가 공유하는 Merkle-Damgård 구조에 대한 이론적 우려가 제기되면서, 정보보안학 분야에서는 구조적으로 다른 대안 해시 함수의 필요성이 논의되었고, NIST가 2015년 공모전을 통해 Keccak을 SHA-3로 표준화하면서 이후 관련 응용 및 성능 비교 연구가 이어지고 있습니다.

논문에서는 이렇게 쓰입니다

"본 연구는 SHA-2와 SHA-3의 하드웨어 구현 시 처리 속도와 전력 소모를 비교 분석하였다."

서로 다른 해시 알고리즘 간의 실제 성능 비교를 다루는 문맥입니다.

"양자내성암호 알고리즘의 내부 해시 연산에 SHA-3 계열인 SHAKE256이 사용되었다."

다른 암호 알고리즘의 구성 요소로 SHA-3가 활용되는 사례를 설명하는 문맥입니다.

조금 더 깊게 보면

SHA-3는 스펀지 구조를 기반으로 하며, 내부적으로 1600비트 상태를 갖는 케착 순열(Keccak-f)을 반복 적용해 동작합니다. SHA3-224, SHA3-256, SHA3-384, SHA3-512와 같이 출력 길이가 다른 버전과, 출력 길이를 임의로 조절할 수 있는 SHAKE128, SHAKE256 같은 확장 가능 출력 함수(XOF)도 함께 표준화되어 있습니다.

주의할 점

SHA-3가 표준화되었다고 해서 기존 SHA-2가 안전하지 않다는 의미는 아니며, 현재까지 SHA-2 역시 실용적인 공격이 알려져 있지 않아 두 계열 모두 널리 사용되고 있습니다.

관련 용어