Какой у вас SSD? Моя реализация C5 MD5 работает на 400 МБ / с на одном ядре Intel Core2 (2,4 ГГц, не последняя версия Intel). У вас действительно есть SSD, который поддерживает пропускную способность 1,6 ГБ / с? Я хочу того же!
Хеширование дерева может быть применено к любой хэш-функции. Есть несколько тонкостей, и спецификация Skein пытается разобраться с ними, интегрируя некоторые метаданные в саму функцию (это не сильно влияет на производительность), но «древовидный режим» Skein - это не «Skein», как представлено SHA-3. Даже если Skein выбран в качестве SHA-3, вывод хеша в режиме дерева не будет таким же, как вывод "plain Skein".
Надеюсь, в какой-то момент будет определен стандарт для описания общего хеширования дерева. Прямо сейчас нет ни одного. Однако некоторые протоколы были определены с поддержкой пользовательского хеширования дерева с помощью хэш-функции Tiger под названием «TTH» (Tiger Tree Hash) или «THEX» (Tree Hash Exchange Format). Спецификация для TTH кажется немного неуловимой; Я нахожу некоторые ссылки на черновики, которые переместились или исчезли навсегда.
Тем не менее, я немного сомневаюсь в этой концепции. Это довольно аккуратно, но обеспечивает повышение производительности, только если вы можете читать данные быстрее, чем то, что может обрабатывать одно ядро, и, при правильной функции и правильной реализации, одно ядро может хэшировать довольно много данных в секунду. Древовидный хэш, распределенный по нескольким ядрам, требует отправки данных на соответствующие ядра, и 1,6 ГБ / с - это не самая маленькая полоса пропускания за всю историю.
SHA-256 и SHA-512 не очень быстрые. Среди кандидатов SHA-3, предполагающих процессор x86 в 64-битном режиме, некоторые из них достигают высокой скорости (более 300 МБ / с на моем 2,4 ГГц процессоре Intel Core2 Q6600 с одним ядром - вот что я могу получить SHA-1 тоже), например БМВ, ШАБАЛ или Скейн. Криптографически говоря, эти проекты немного новы, но MD5 и SHA-1 уже криптографически «сломаны» (довольно эффективно в случае MD5, скорее теоретически для SHA-1), так что любой из кандидатов раунда 2 SHA-3 должно быть хорошо.
Когда я надеваю крышку «провидца», я предвижу, что процессоры будут продолжать работать быстрее, чем ОЗУ, до такой степени, что стоимость хеширования будет уменьшаться из-за пропускной способности памяти: у ЦП будет резервирование тактов, пока он ожидает данные из основной оперативной памяти. В какой-то момент всю модель потоков (одну большую оперативную память для многих ядер) придется изменить.