블레이크 (해시 함수)

블레이크(BLAKE)는 대니얼 J. 번스타인(Daniel J. Bernstein)의 차차(ChaCha) 스트림 암호를 기반으로 한 암호화 해시 함수이지만 라운드 상수로 XOR된 입력 블록의 순열 복사본이 각 차차 라운드 앞에 추가된다. SHA-2와 마찬가지로 단어 크기가 다른 두 가지 변형이 있다. 차차는 4×4 단어 배열로 작동한다. 블레이크는 8단어 해시 값과 16개 메시지 단어를 반복적으로 결합하여 차차 결과를 잘라 다음 해시 값을 얻는다. 블레이크-256과 블레이크-224는 32비트 워드를 사용하고 각각 256비트와 224비트의 다이제스트 크기를 생성하는 반면, 블레이크-512와 블레이크-384는 64비트 워드를 사용하고 각각 512비트와 384비트의 다이제스트 크기를 생성한다.

블레이크를 기반으로 한 블레이크2 해시 함수는 2012년에 발표되었다. 블레이크2를 기반으로 한 블레이크3 해시 함수는 2020년에 발표되었다.

 역사 
블레이크는 장 필립 오마송, 루카 헨젠, 윌리 마이어, 라파엘 C.-W. 판이 NIST 해시 함수 대회에 제출했다. 2008년에는 51개의 항목이 있었다. 블레이크는 5명의 후보로 구성된 최종 라운드에 진출했지만 2012년 SHA-3 알고리즘으로 선정된 Keccak에게 패했다.

 블레이크3 
블레이크3(BLAKE3)은 잭 오코너, 장 필립 오마송, 사무엘 네베스, 주코 윌콕스-오헌이 만든 바오 및 블레이크2를 기반으로 하는 암호화 해시 함수이다. 2020년 1월 9일 리얼 월드 크립토(Real World Crypto)에서 발표되었다.

블레이크3은 여러 변형이 있는 알고리즘 제품군인 블레이크 및 블레이크2와 달리 많은 바람직한 기능(병렬성, XOF, KDF, PRF 및 MAC)을 갖춘 단일 알고리즘이다. 블레이크3은 이진 트리 구조를 가지므로 입력 시간이 충분히 길면 사실상 무제한의 병렬 처리(SIMD 및 멀티스레딩 모두)를 지원한다. 공식 러스트 (프로그래밍 언어) 및 C (프로그래밍 언어) 구현은 공개 도메인(CC0)과 아파치 라이선스로 이중 라이선스가 부여된다.

블레이크3는 최대한 빠른 속도로 설계되었다. 블레이크2보다 지속적으로 몇 배 더 빠르다. 블레이크3 압축 기능은 블레이크2s의 압축 기능과 밀접하게 유사하며, 가장 큰 차이점은 라운드 수가 10에서 7로 줄어든다는 점이다. 이는 현재 암호화 방식이 너무 보수적이라는 가정에 따른 변경이다. 병렬성을 제공하는 것 외에도 머클(Merkle) 트리 형식은 검증된 스트리밍(즉석 검증) 및 증분 업데이트도 허용한다.

 각주 

 외부 링크 
 The BLAKE web site
 The BLAKE2 web site
 The BLAKE3 web site

분류:암호화 해시 함수
분류:체크섬 알고리즘