LINUX.ORG.RU

BLAKE3 1.7.0

 , , , ,


0

3

18 марта состоялся выпуск 1.7.0 библиотек BLAKE3, реализующих криптографический алгоритм хеширования BLAKE3 на языках C и Rust, и распространяемых как общественное достояние или по лицензии Apache 2.0.

Проектом также предоставляется консольная утилита b3sum, написанная на языке Rust.

Список изменений:

  • В реализацию на языке C добавлена поддержка многопоточности (основанная на библиотеке oneTBB от Intel), аналогичная эталонной реализации на языке Rust с использованием библиотеки Rayon.
  • В реализацию на языке Rust добавлена поддержка бэкенда WASM SIMD, управляемая опцией Cargo wasm32_simd. Это дало 6-кратное улучшение производительности для больших данных. На данный момент этот бэкенд доступен только для языка Rust.
  • В утилиту b3sum добавлена поддержка опции --tag для совместимости с утилитами подсчёта контрольных сумм GNU и BSD.

>>> Подробности на github.com

★★★★★

Проверено: CrX ()
Последнее исправление: CrX (всего исправлений: 1)

Кто-нить юзает его? Как оно на предмет коллизий?

Заюзал как-то в проекте sha512 но оказалось, что на лям хешей возникает около полторы сотни коллизий. Переключится на sha3_512 и коллизии практически исчезли.

iron ★★★★★
()
Ответ на: комментарий от iron

Заюзал как-то в проекте sha512 но оказалось, что на лям хешей возникает около полторы сотни коллизий.

Что это за чудеса? Даже у md5 чтобы найти коллизию надо специально пытаться этого достичь, и некоторые вычислительные ресурсы.

firkax ★★★★★
()
Ответ на: комментарий от dataman

Это не «уговаривают», это флудеры-обновляторы сделали набег и были закономерно проигнорены.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Что это за чудеса?

Ну хз, реально натыкатся на случаи, когда две разные строки примерно около 1к байт данных давали один и тот же хеш. По этому и слинял на sha3_512.

iron ★★★★★
()
Ответ на: комментарий от dataman

Ну а тут зависимость от еще одной библиотеки. Редко когда нужно только хэш считать. Хочется не таскать с собой стопицот библиотек с различными интерфейсами вызовов. И да, Ceterum censeo Rust non esse. :)

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 2)
Ответ на: комментарий от iron

Примеры-то хоть сохранил? Это же чудо чудесное исследователям криптографии.

unC0Rr ★★★★★
()
Ответ на: комментарий от iron

Заюзал как-то в проекте sha512 но оказалось, что на лям хешей возникает около полторы сотни коллизий. Переключится на sha3_512 и коллизии практически исчезли.

Что вы несете? Какие полторы сотни коллизий на лям хешей? У sha512 примерно 1 коллизия на 10^77 хешей.

Опять проект на js где взяли первую попавшуюся криптолибу?

Obezyan
()
Ответ на: комментарий от iron

Мне кажется ты можешь куда-то отправить свои результаты и тебе дадут премию как первому нашедшему коллизию в sha512. Даже для sha256, в полной его версии, до сих пор нет известных коллизий.

Хотя скорее всего ты просто что-то напутал и у тебя коллизии не в sha512 были.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Что вы несете?

Несу тортик.

Опять проект на js где взяли первую попавшуюся криптолибу?

Не, древняя версия openssl.

iron ★★★★★
()
Ответ на: комментарий от firkax

Мне кажется ты можешь куда-то отправить свои результаты

К сожалению не сохранил результат. После того как нашел, еще раз проверил через консольный sha512sum, результат был таким же. Возможно была бага…

iron ★★★★★
()
Ответ на: комментарий от iron

прохладная история без примеров. И что значит «практически исчезли»? Все-таки появляются? Опять же примеры бы неплохо.

demidrol ★★★★★
()
Ответ на: комментарий от firkax

ты недооцениваешь кривизну силу рук тёмной стороны

bdrbt
()

Как обычно, ехал unsafe через unsafe. По-другому хеши не посчитать, язык же безопасный!

Manhunt ★★★★★
()
Ответ на: комментарий от gns

провайдеры openssl - это точно не те инструменты, которыми можно быстро считать хэши. Потому что там ехали обертки через обертки, для каждой операции надо разыменовать наверно десяток указателей и попрыгать по ним. Я уже молчу про всякие аллокации памяти.

Разработчики openssl прямо пишут у себя в трекере, что ставят высокоуровневость в приоритет производительности.

Lrrr ★★★★★
()
Ответ на: комментарий от Lrrr

Я в курсе. Сам от всех этих EVP и провайдеров несколько охреневаю. Дело не в скорости в моем случае. Дело в лишних зависимостях. Мне хэши надо считать раз в год по обещанию. И будет оно там 5 минут или три для всех путей на диске большого значения не имеет.

gns ★★★★★
()
Ответ на: комментарий от Manhunt

И сплошной extern «C». Растаманы, такие растаманы...

Я понял. Растаманы хотят переписать все на Расте, но они не договаривают. Переписать все методом unsafe через extern «C».

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 1)

Кстати, питонисты тоже выбирают Раст:

Why does cryptography require Rust?

cryptography uses OpenSSL (see: Use of OpenSSL) for its cryptographic operations. OpenSSL is the de facto standard for cryptographic libraries and provides high performance along with various certifications that may be relevant to developers. However, it is written in C and lacks memory safety. We want cryptography to be as secure as possible while retaining the advantages of OpenSSL, so we’ve chosen to rewrite non-cryptographic operations (such as ASN.1 parsing) in a high performance memory safe language: Rust.

https://cryptography.io/en/latest/faq/

seiken ★★★★★
()
Ответ на: комментарий от seiken

Е**нутым нет покоя, то одно им, то другое...

gns ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.