Itusilẹ imuse itọkasi ti iṣẹ hash cryptographic BLAKE3 1.0

Itọkasi itọkasi ti iṣẹ hash cryptographic BLAKE3 1.0 ti tu silẹ, akiyesi fun iṣẹ ṣiṣe iṣiro hash ti o ga pupọ lakoko ṣiṣe idaniloju igbẹkẹle ni ipele SHA-3. Ninu idanwo iran hash fun faili 16 KB, BLAKE3 pẹlu bọtini 256-bit ju SHA3-256 lọ nipasẹ awọn akoko 17, SHA-256 nipasẹ awọn akoko 14, SHA-512 nipasẹ awọn akoko 9, SHA-1 nipasẹ awọn akoko 6, ati BLAKE2b - 5 igba. Aafo pataki kan wa nigbati o ba n ṣiṣẹ data ti o tobi pupọ, fun apẹẹrẹ, BLAKE3 yipada lati jẹ awọn akoko 256 yiyara ju SHA-8 nigbati o ba ṣe iṣiro hash fun 1GB ti data ID. Koodu imuse itọkasi BLAKE3 wa ni awọn ẹya C ati Rust labẹ agbegbe gbangba meji (CC0) ati iwe-aṣẹ Apache 2.0.

Itusilẹ imuse itọkasi ti iṣẹ hash cryptographic BLAKE3 1.0

Iṣẹ hash jẹ apẹrẹ fun awọn ohun elo bii iṣayẹwo iṣotitọ faili, ijẹrisi ifiranṣẹ, ati ipilẹṣẹ data fun awọn ibuwọlu oni nọmba cryptographic. BLAKE3 kii ṣe ipinnu fun awọn ọrọ igbaniwọle hashing, nitori o ni ero lati ṣe iṣiro awọn hashes ni yarayara bi o ti ṣee (fun awọn ọrọ igbaniwọle, o niyanju lati lo awọn iṣẹ hash lọra yescrypt, bcrypt, scrypt tabi Argon2). Iṣẹ hash labẹ ero jẹ aibikita si iwọn data hashed ati pe o ni aabo lati awọn ikọlu lori yiyan ikọlu ati wiwa iṣaju.

Algorithm ti ni idagbasoke nipasẹ awọn amoye cryptography ti a mọ daradara (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) ati tẹsiwaju idagbasoke ti BLAKE2 algorithm ati lo ilana Bao lati ṣe koodu pq igi idinaduro. . Ko dabi BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 nfunni algorithm kan fun gbogbo awọn iru ẹrọ, ko so mọ ijinle bit ati iwọn hash.

Iṣẹ ṣiṣe ti o pọ si ni aṣeyọri nipasẹ idinku nọmba awọn iyipo lati 10 si 7 ati awọn bulọọki hashing lọtọ ni awọn ege 1 KB. Gẹgẹbi awọn olupilẹṣẹ, wọn ti rii ẹri mathematiki ti o ni idaniloju pe o ṣee ṣe lati gba pẹlu awọn iyipo 7 dipo 10 lakoko ti o ṣetọju ipele kanna ti igbẹkẹle (fun mimọ, a le fun apẹẹrẹ pẹlu awọn eso ti o dapọ ni alapọpọ - lẹhin awọn aaya 7 eso naa ti dapọ patapata, ati pe awọn aaya 3 afikun kii yoo ni ipa lori aitasera adalu). Sibẹsibẹ, diẹ ninu awọn oniwadi ṣe afihan awọn iyemeji, gbigbagbọ pe paapaa ti awọn iyipo 7 ba to lọwọlọwọ lati koju gbogbo awọn ikọlu ti a mọ lori hashes, lẹhinna awọn iyipo 3 afikun le wulo ti awọn ikọlu tuntun ba jẹ idanimọ ni ọjọ iwaju.

Bi fun pipin si awọn bulọọki, ni BLAKE3 ṣiṣan naa ti pin si awọn ege 1 KB ati pe nkan kọọkan jẹ hashed ni ominira. Da lori awọn hashes ti awọn ege, ọkan nla hash ti wa ni akoso da lori alakomeji igi Merkle. Pipin yii gba wa laaye lati yanju iṣoro ti sisẹ data ti o jọra nigbati o ba ṣe iṣiro awọn hashes - fun apẹẹrẹ, o le lo awọn ilana SIMD-asapo mẹrin lati ṣe iṣiro awọn hashes ti awọn bulọọki 4 nigbakanna. Ibile SHA-* awọn iṣẹ hash ilana data lesese.

Awọn ẹya ara ẹrọ ti BLAKE3:

  • Išẹ giga, BLAKE3 jẹ iyara pupọ ju MD5, SHA-1, SHA-2, SHA-3 ati BLAKE2.
  • Aabo, pẹlu resistance si awọn ikọlu elongation ifiranṣẹ si eyiti SHA-2 jẹ ifaragba;
  • Wa ni Rust, iṣapeye fun SSE2, SSE4.1, AVX2, AVX-512, ati awọn ilana NEON.
  • Aridaju parallelization ti awọn isiro lori eyikeyi nọmba ti awon ati SIMD awọn ikanni.
  • O ṣeeṣe ti imudojuiwọn afikun ati iṣeduro iṣeduro ti awọn ṣiṣan;
  • Lo ni awọn ipo PRF, MAC, KDF, XOF ati bi hash deede;
  • Alugoridimu kan fun gbogbo awọn ayaworan, yara lori awọn ọna ṣiṣe x86-64 mejeeji ati awọn ilana ARM 32-bit.

Awọn iyatọ akọkọ laarin BLAKE3 ati BLAKE2:

  • Lilo ọna igi alakomeji ti o fun laaye fun afiwera ailopin ni awọn iṣiro hash.
  • Dinku nọmba awọn iyipo lati 10 si 7.
  • Awọn ọna iṣiṣẹ mẹta: hashing, hashing pẹlu bọtini (HMAC) ati iran bọtini (KDF).
  • Ko si afikun afikun nigbati o ba fi bọtini hashing nitori lilo agbegbe ti o ti tẹdo tẹlẹ nipasẹ awọn idinamọ bọtini bọtini.
  • Ẹrọ iṣẹ ti a ṣe sinu ni irisi iṣẹ kan pẹlu abajade ti o gbooro sii (XOF, Iṣẹ Imujade Extendable), gbigba parallelization ati ipo (wa).

orisun: opennet.ru

Fi ọrọìwòye kun