SequenceHash: 우리 모두를 위한 멀티해싱
단일 해시로 여러 값을 결합하는 프로세스인 멀티해싱은 중요하지만 종종 오해받는 암호화 작업입니다. 안전하지 않은 멀티해싱 구현은 특히 제로 지식 증명과 같은 영역에서 취약점으로 이어질 수 있습니다. Trail of Bits는 광범위한 암호화 해시 함수에 대한 안전한 멀티해싱을 제공하도록 설계된 새로운 구성인 SequenceHash와 SequenceMAC을 도입했습니다. Keccak에 종속된 NIST의 TupleHash와 달리 SequenceHash와 SequenceMAC은 해시 불가지론적이며 SHA256, BLAKE, RIPEMD와 같은 함수와 함께 작동합니다.이러한 새로운 구성은 연결된 입력의 조작을 방지하는 명확한 입력 인코딩을 제공합니다. 또한 많은 해시 함수에 중요한 보안 기능인 길이 확장 방지를 제공합니다. 또한 SequenceHash와 SequenceMAC은 프로토콜 바인딩을 위한 선택적 사용자 정의 문자열을 통합하여 재실행을 방지합니다. 키가 있는 변형인 SequenceMAC은 메시지 인증 코드에 대해 유사한 보안 이점을 제공합니다.SequenceHash는 입력 바이트 수에 대해 단순화된 고정 길이 128비트 정수 인코딩을 사용하며, 길이 접미사 인코딩으로 스트리밍 API를 지원합니다. 이 접근 방식은 간단한 구현을 목표로 하며 ${2}^{128}-1$ 바이트 제한으로 실제 입력 크기를 처리합니다. HMAC과 유사한 이중 해싱 구성은 길이 확장 공격을 방지하고 키가 있는 SequenceMAC 모드를 활성화합니다. SequenceMAC은 키 메타데이터를 통합하여 HMAC에서 발견된 잠재적인 키 의사 충돌 문제를 해결합니다.SequenceHash 및 SequenceMAC의 세 가지 초기 구현이 Rust, Go 및 Python으로 제공되며 포괄적인 테스트 벡터도 함께 제공됩니다. 이러한 도구는 개발자를 위한 안전한 멀티해싱을 단순화하는 것을 목표로 합니다. 궁극적인 목표는 이 일반적인 암호화 문제에 대한 표준화되고 사용하기 쉬운 솔루션을 제공하는 것입니다.