문제

파일을 식별하기 위해 해시를 사용하고 있다고 가정 해 보려고 파일을 안전해야 할 필요가 없으며 충돌을 최소화하면됩니다. SIMD를 사용하여 4 개의 해시를 병렬로 실행 한 다음 최종 결과를 해시하여 해시 속도를 높일 수 있다고 생각했습니다. 해시가 512 비트 블록을 가져 오도록 설계된 경우, 한 번에 4x512 비트 블록을 가져 와서 4 개의 해시를 생성합니다. 그런 다음 파일의 끝에서 나는 4 개의 해시를 함께 해시합니다.

나는이 방법이 해시가 나빠질 것이라고 확신하지만 ... 얼마나 가난합니까? 봉투 계산의 뒷면이 있습니까?

도움이 되었습니까?

해결책

디스크에서 파일 블록을 더 빨리 읽을 수 있다는 아이디어는 해시 할 수있는 것보다 더 빨리 해시 할 수있는 가정입니까? 디스크 IO- SSD조차도 해싱이 진행중인 RAM보다 많은 순위가 느립니다.

충돌이 낮은 것은 모든 해시의 설계 기준이며 모든 주류 해시는 좋은 일을합니다. 주류 해당을 사용하여 MD5를 사용하십시오.

포스터가 고려하고있는 솔루션에 따라, 병렬 해싱이 해시를 약화 시킨다는 주어진 것은 아닙니다. 블록의 병렬 해싱을 위해 특별히 설계되고 포스터가 말한 것처럼 결과를 결합하도록 특별히 설계된 해시가 있습니다. MD6, SHA3에서 끊임없는 철수)

더 일반적으로, 주류 구현 SIMD를 사용하는 해싱 함수 해싱 구현자는 매우 중요합니다 성능 인식, 그리고 구현을 최적화하는 데 시간이 걸립니다. 당신은 그들의 노력과 같은 어려운 일을 할 것입니다. 최고의 소프트웨어 강한 해싱은 약 6 ~ 10 사이클 / 바이트입니다. 하드웨어 가속화 해싱이 실제 병목 현상 인 경우 해싱도 사용할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top