JH(해시 함수)
JH (hash function)일반 | |
---|---|
디자이너 | 우홍준 |
인증 | SHA-3 결승전 진출자 |
디테일 | |
다이제스트 크기 | 224, 256, 384, 512 |
속도 | SSE2를 사용하는 64비트 모드에서 코어 2의 16.1 cpb, ANSI C를 사용하는 37.3 cpb. |
JH는 우홍준이 NIST 해시함수 대회에 제출한 암호해시함수다. 이 대회의 5명의 결승전 진출자 중 한 명으로 선정되었지만, 2012년 JH는 결국 NIST 해시 후보 케차크에게 패배했다.[1] JH는 1024비트 상태를 가지며 512비트 입력 블록에서 작동한다. 입력 블록의 처리 과정은 다음 세 단계로 구성된다.
- 입력 블록을 주의 왼쪽 절반으로 XOR하십시오.
- 42라운드 미키 순열(암호화 기능)을 주 상태에 적용한다. 이는 다음 중 42회 반복으로 구성된다.
- 입력 블록을 주의 오른쪽 절반으로 XOR하십시오.
결과 다이제스트는 1024비트 최종 값에서 처음 224비트, 256비트, 384비트 또는 512비트가 된다. SSE2 명령 집합을 이용한 비트 슬라이싱 구현에 잘 적합하여 바이트당 16.8 사이클의 속도를 제공한다.
JH 해시의 예
빈 문자열의 해시 값.
JH-224("") 0x 2c99df889b019309051c60fecc2bd285a774940e43175b76b2626630 JH-256("") 0x 46e64619c18bb0a92a5e87185a47eef83ca747b8fcc8e1412921357e326df434 JH-384("") 0x 2fe5f71b1b3290d3c017fb3c1a4d02a5cbeb03a0476481e25082434a881994b0ff99e078d2c16b105ad069b569315328 JH-512("") 0x 90ecf2f76f9d2c8017d979ad5ab96b87d58fc8fc4b83060f3f900774faa2c8fabe69c5f4ff1ec2b61d6b316941cedeefb04b1fc4c1b919ae841ceec4f
메시지에서 작은 변화라도 눈사태 효과로 인해 (확률이 압도적으로 높으면) 대부분 다른 해시가 될 것이다. 예를 들어 문장 끝에 마침표를 추가하는 경우:
JH-256("The quick brown fox jumps over the lazy dog") 0x 6a049fed5fc6874acfdc4a08b568a4f8cbac27de933496f031015b38961608a0 JH-256("The quick brown fox jumps over the lazy dog.") 0x d001ae2315421c5d3272bac4f4aa524bddd207530d5d26bbf51794f0da18fafc
참조
- ^ "NIST Selects Winner of Secure Hash Algorithm (SHA-3) Competition" (Press release). NIST. 2012-10-02. Retrieved 2012-10-02.
외부 링크