криптоалгоритмы

Вопросы программного кода и архитектуры Linux

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

криптоалгоритмы

Непрочитанное сообщение Olej » 27 фев 2024, 01:14

С криптоалгоритмами пользователи зачастую не имеют прямого контакта... Но косвенно, не задумываясь над тем, работают с этим постоянно, вот это всё связанные темы:
сложность паролей в системе
генератор случайных чисел
ручное шифрование файлов
удалённый SSH
Блокчейн. Руководство для начинающих разработчиков.
...
Это ВСЁ завязано на алгоритмы криптографии :!:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

криптоалгоритмы

Непрочитанное сообщение Olej » 27 фев 2024, 01:17

Доступна криптографическая хеш-функция BLAKE3, работающая в 10 раз быстрее SHA-2
12.01.2020 09:26
Опубликована финальная реализация алгоритма BLAKE3, предлагающего криптографическую хеш-функцию, рассчитанную на такие применения, как проверка целостности файлов, аутентификация сообщений и формирование данных для криптографических цифровых подписей. BLAKE3 не предназначена для хеширования паролей (для паролей рекомендуется использовать медленные хеш-функции yescrypt, bcrypt, scrypt или Argon2), так как нацелена на максимально быстрое вычисление хешей. Рассматриваемая хеш-функция нечувствительна к размеру хешируемых данных и защищена от атак по подбору коллизий и нахождению прообраза. Эталонная реализация BLAKE3 опубликована под двойной лицензией - общественное достояние (CC0) и Apache 2.0.

Ключевым отличием новой хеш-функции является очень высокая производительность вычисления хеша при сохранении надёжности на уровне SHA-3. По умолчанию размер результирующего хеша в BLAKE3 составляет 32 байта (256 бит), но он может быть расширен до произвольных значений. В тесте на генерацию хеша для файла, размером 16 КБ, BLAKE3 опережает SHA3-256 в 15 раз, SHA-256 - в 12 раз, SHA-512 - в 8 раз, SHA-1 - в 6 раз, а BLAKE2b - в 4 раза. Значительный отрыв сохраняется и при обработке очень больших объёмов данных, например, BLAKE3 оказался быстрее SHA-256 в 8 раз при вычислении хеша для 1ГБ случайных данных.
Изображение
Алгоритм разработан известными специалистами по криптографии (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) и продолжает развитие алгоритма BLAKE2 и применяет для кодирования дерева цепочек блоков механизм Bao. В отличие от BLAKE2 (BLAKE2b, BLAKE2s), в BLAKE3 для всех платформ предложен единый алгоритм, не привязанный к разрядности и размеру хеша.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

криптоалгоритмы

Непрочитанное сообщение Olej » 27 фев 2024, 01:22

Olej писал(а):
27 фев 2024, 01:17
12.01.2020 09:26
Смотрю что там сейчас по распространённым дистрибутивах Linux:

Код: Выделить всё

olej@R420:~$ aptitude search blake | grep golang
p  golang-github-dchest-blake2b-dev - Go implementation of BLAKE2 (b) cryptographic hash function
p  golang-github-minio-blake2b-simd-dev - Fast hashing using pure Go implementation of BLAKE2b with SIMD instructions
p  golang-lukechampine-blake3-dev - Pure-Go implementation of BLAKE3 cryptographic hash

Код: Выделить всё

olej@R420:~$ aptitude search blake | grep rust
v  librust-blake2-rfc+bench-dev - 
v  librust-blake2-rfc+default-dev - 
v  librust-blake2-rfc+simd-asm-dev - 
v  librust-blake2-rfc+simd-dev - 
v  librust-blake2-rfc+simd-opt-dev - 
v  librust-blake2-rfc+std-dev - 
v  librust-blake2-rfc-0+bench-dev - 
v  librust-blake2-rfc-0+default-dev - 
v  librust-blake2-rfc-0+simd-asm-dev - 
v  librust-blake2-rfc-0+simd-dev - 
v  librust-blake2-rfc-0+simd-opt-dev - 
v  librust-blake2-rfc-0+std-dev - 
v  librust-blake2-rfc-0-dev - 
v  librust-blake2-rfc-0.2+bench-dev - 
v  librust-blake2-rfc-0.2+default-dev - 
v  librust-blake2-rfc-0.2+simd-asm-dev - 
v  librust-blake2-rfc-0.2+simd-dev - 
v  librust-blake2-rfc-0.2+simd-opt-dev - 
v  librust-blake2-rfc-0.2+std-dev - 
v  librust-blake2-rfc-0.2-dev - 
v  librust-blake2-rfc-0.2.18+bench-dev - 
v  librust-blake2-rfc-0.2.18+default-dev - 
v  librust-blake2-rfc-0.2.18+simd-asm-dev - 
v  librust-blake2-rfc-0.2.18+simd-dev - 
v  librust-blake2-rfc-0.2.18+simd-opt-dev - 
v  librust-blake2-rfc-0.2.18+std-dev - 
v  librust-blake2-rfc-0.2.18-dev - 
p  librust-blake2-rfc-dev - Pure Rust implementation of BLAKE2 based on RFC 7693 - Rust source code
v  librust-blake2b-simd+default-dev - 
v  librust-blake2b-simd+std-dev - 
v  librust-blake2b-simd+uninline-portable-dev - 
v  librust-blake2b-simd-1+default-dev - 
v  librust-blake2b-simd-1+std-dev - 
v  librust-blake2b-simd-1+uninline-portable-dev - 
v  librust-blake2b-simd-1-dev - 
v  librust-blake2b-simd-1.0+default-dev - 
v  librust-blake2b-simd-1.0+std-dev - 
v  librust-blake2b-simd-1.0+uninline-portable-dev - 
v  librust-blake2b-simd-1.0-dev - 
v  librust-blake2b-simd-1.0.0+default-dev - 
v  librust-blake2b-simd-1.0.0+std-dev - 
v  librust-blake2b-simd-1.0.0+uninline-portable-dev - 
v  librust-blake2b-simd-1.0.0-dev - 
p  librust-blake2b-simd-dev - Pure Rust BLAKE2b implementation with dynamic SIMD - Rust source code
v  librust-blake3+crypto-mac-dev - 
v  librust-blake3+default-dev - 
v  librust-blake3+digest-dev - 
v  librust-blake3+neon-dev - 
v  librust-blake3+no-avx2-dev - 
v  librust-blake3+no-avx512-dev - 
v  librust-blake3+no-neon-dev - 
v  librust-blake3+no-sse2-dev - 
v  librust-blake3+no-sse41-dev - 
v  librust-blake3+prefer-intrinsics-dev - 
v  librust-blake3+pure-dev - 
v  librust-blake3+rayon-dev - 
v  librust-blake3+std-dev - 
v  librust-blake3+traits-preview-dev - 
v  librust-blake3-1+crypto-mac-dev - 
v  librust-blake3-1+default-dev - 
v  librust-blake3-1+digest-dev - 
v  librust-blake3-1+neon-dev - 
v  librust-blake3-1+no-avx2-dev - 
v  librust-blake3-1+no-avx512-dev - 
v  librust-blake3-1+no-neon-dev - 
v  librust-blake3-1+no-sse2-dev - 
v  librust-blake3-1+no-sse41-dev - 
v  librust-blake3-1+prefer-intrinsics-dev - 
v  librust-blake3-1+pure-dev - 
v  librust-blake3-1+rayon-dev - 
v  librust-blake3-1+std-dev - 
v  librust-blake3-1+traits-preview-dev - 
v  librust-blake3-1-dev - 
v  librust-blake3-1.2+crypto-mac-dev - 
v  librust-blake3-1.2+default-dev - 
v  librust-blake3-1.2+digest-dev - 
v  librust-blake3-1.2+neon-dev - 
v  librust-blake3-1.2+no-avx2-dev - 
v  librust-blake3-1.2+no-avx512-dev - 
v  librust-blake3-1.2+no-neon-dev - 
v  librust-blake3-1.2+no-sse2-dev - 
v  librust-blake3-1.2+no-sse41-dev - 
v  librust-blake3-1.2+prefer-intrinsics-dev - 
v  librust-blake3-1.2+pure-dev - 
v  librust-blake3-1.2+rayon-dev - 
v  librust-blake3-1.2+std-dev - 
v  librust-blake3-1.2+traits-preview-dev - 
v  librust-blake3-1.2-dev - 
v  librust-blake3-1.2.0+crypto-mac-dev - 
v  librust-blake3-1.2.0+default-dev - 
v  librust-blake3-1.2.0+digest-dev - 
v  librust-blake3-1.2.0+neon-dev - 
v  librust-blake3-1.2.0+no-avx2-dev - 
v  librust-blake3-1.2.0+no-avx512-dev - 
v  librust-blake3-1.2.0+no-neon-dev - 
v  librust-blake3-1.2.0+no-sse2-dev - 
v  librust-blake3-1.2.0+no-sse41-dev - 
v  librust-blake3-1.2.0+prefer-intrinsics-dev - 
v  librust-blake3-1.2.0+pure-dev - 
v  librust-blake3-1.2.0+rayon-dev - 
v  librust-blake3-1.2.0+std-dev - 
v  librust-blake3-1.2.0+traits-preview-dev - 
v  librust-blake3-1.2.0-dev - 
p  librust-blake3-dev - BLAKE3 hash function - Rust source code

Код: Выделить всё

olej@R420:~$ aptitude search blake | grep rust | wc -l
104
Т.е.: язык Go и язык Rust ... ничего более пока по контексту blake я не нашёл... Может искал плохо?

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

криптоалгоритмы

Непрочитанное сообщение Olej » 27 фев 2024, 01:37

Olej писал(а):
27 фев 2024, 01:22
язык Go
По части Go (что меня больше всего интересует) ... вот пакет для импорта crypto в стандартной библиотеке GoLang: https://pkg.go.dev/crypto:

Код: Выделить всё

type Hash 
[code]type Hash uint
Hash identifies a cryptographic hash function that is implemented in another package.

Код: Выделить всё

const (
	MD4         Hash = 1 + iota // import golang.org/x/crypto/md4
	MD5                         // import crypto/md5
	SHA1                        // import crypto/sha1
	SHA224                      // import crypto/sha256
	SHA256                      // import crypto/sha256
	SHA384                      // import crypto/sha512
	SHA512                      // import crypto/sha512
	MD5SHA1                     // no implementation; MD5+SHA1 used for TLS RSA
	RIPEMD160                   // import golang.org/x/crypto/ripemd160
	SHA3_224                    // import golang.org/x/crypto/sha3
	SHA3_256                    // import golang.org/x/crypto/sha3
	SHA3_384                    // import golang.org/x/crypto/sha3
	SHA3_512                    // import golang.org/x/crypto/sha3
	SHA512_224                  // import crypto/sha512
	SHA512_256                  // import crypto/sha512
	BLAKE2s_256                 // import golang.org/x/crypto/blake2s
	BLAKE2b_256                 // import golang.org/x/crypto/blake2b
	BLAKE2b_384                 // import golang.org/x/crypto/blake2b
	BLAKE2b_512                 // import golang.org/x/crypto/blake2b
)
А здесь вот пакеты для импорта из репозитрия GoLang - перечисленные выше ... и ещё много других: Go Cryptography
А поиск на Golang по контексту blake3 - https://pkg.go.dev/search?q=blake3&m= - даёт в результате:
Showing 23 modules with matching packages.

Ответить

Вернуться в «Linux изнутри»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя