Tôi quan tâm đến việc tối ưu hóa băm của một số tệp lớn (tối ưu hóa thời gian đồng hồ treo tường). I/O đã được tối ưu hóa đủ tốt và thiết bị I/O (SSD cục bộ) chỉ được khai thác ở mức khoảng 25% công suất, trong khi một trong các lõi CPU hoàn toàn tối đa.Thuật toán băm nào có thể song song? Tối ưu hóa băm của các tệp lớn sử dụng trên các CPU đa lõi
Tôi có nhiều lõi hơn, và trong tương lai có thể sẽ có nhiều lõi hơn. Cho đến nay tôi đã chỉ có thể gõ vào lõi nhiều hơn nếu tôi xảy ra cần nhiều băm của cùng một tập tin, nói một MD5 và một SHA256 cùng một lúc. Tôi có thể sử dụng cùng một luồng I/O để cấp hai hoặc nhiều thuật toán băm, và tôi nhận được các thuật toán nhanh hơn được thực hiện miễn phí (như xa như thời gian đồng hồ treo tường). Khi tôi hiểu hầu hết các thuật toán băm, mỗi bit mới thay đổi toàn bộ kết quả, và nó vốn dĩ là thử thách/không thể làm song song.
Có bất kỳ thuật toán băm chính thống nào song song không?
Có bất kỳ băm không chính thống nào có thể song song (và có ít nhất một triển khai mẫu có sẵn) không?
Khi các CPU trong tương lai sẽ hướng tới nhiều lõi hơn và giảm tốc độ đồng hồ, có cách nào để cải thiện hiệu suất của băm tệp không? (khác với nitơ lỏng làm mát bằng cách ép xung?) hoặc là nó vốn không song song?
Ngoài ra, tôi nghe rằng hầu hết các thuật toán băm hiện tại _can_ được song song, nhưng tôi không chắc chắn những gì cần. Rõ ràng, một cách để làm điều đó sẽ là quyết định cho chính mình để băm từng, nói, 4k đoạn của tập tin, và sau đó kết hợp các băm bằng cách nào đó. XOR, có lẽ? Luôn nguy hiểm mã hóa để phát minh ra thuật toán của riêng bạn, vì vậy tôi sẽ không tin tưởng điều này nếu bạn đang bảo vệ chống lại dữ liệu độc hại giả mạo thay vì tham nhũng dữ liệu ngẫu nhiên. – sblom
Tôi đọc đặc tả Skein bạn đã liên kết. Skein có một cách tiêu chuẩn để xác định kích thước lá, quạt và chiều cao cây tối đa để bất kỳ ai sử dụng cùng một thông số sẽ nhận được cùng một giá trị như nhau. kết quả băm. (Điều đó quan trọng) Tôi muốn bảo vệ chống lại sự giả mạo độc hại cũng như tham nhũng tình cờ. Tôi ước các tiêu chuẩn đã sẵn sàng rồi. – DanO
http://tools.ietf.org/html/rfc1321 Dường như MD5 không dễ dàng song song, tính toán cho mỗi khối phụ thuộc vào trạng thái được tính toán với tất cả các khối trước đó. Nếu thuộc tính này không giữ, thì MD5 sẽ không an toàn (vị trí của các khối trao đổi sẽ không ảnh hưởng đến hàm băm - nó không tốt). Dù sao tôi không nói song song MD5 là không thể, chỉ _impossible lúc đầu tiên sight_. – kgadek