Hoʻokuʻu i ka hoʻokō kuhikuhi o ka hana cryptographic hash BLAKE3 1.0

Ua hoʻokuʻu ʻia kahi hoʻokō kuhikuhi o ka hana cryptographic hash BLAKE3 1.0, kaulana no kāna hana helu hash kiʻekiʻe loa me ka hōʻoia ʻana i ka hilinaʻi ma ka pae SHA-3. Ma ka ho'āʻo hash generation no kahi faila 16 KB, ʻoi aku ka maikaʻi o BLAKE3 me kahi kī 256-bit iā SHA3-256 ma 17 manawa, SHA-256 ma 14 manawa, SHA-512 ma 9 mau manawa, SHA-1 ma 6 mau manawa, a me BLAKE2b - 5 manawa. Ke waiho nei kahi ʻāpana koʻikoʻi i ka wā e hoʻoili ai i ka nui o ka ʻikepili, no ka laʻana, ua lilo ʻo BLAKE3 i 256 mau manawa ʻoi aku ka wikiwiki ma mua o SHA-8 i ka wā e helu ai i kahi hash no 1GB o ka ʻikepili maʻamau. Loaʻa ka code hoʻokō kuhikuhi BLAKE3 ma nā mana C a me Rust ma lalo o kahi kāʻei aupuni lua (CC0) a me ka laikini Apache 2.0.

Hoʻokuʻu i ka hoʻokō kuhikuhi o ka hana cryptographic hash BLAKE3 1.0

Hoʻolālā ʻia ka hana hash no nā noi e like me ka nānā pono ʻana i ka faila, ka hōʻoia ʻana i ka memo, a me ka hana ʻana i ka ʻikepili no nā pūlima kikohoʻe cryptographic. ʻAʻole i manaʻo ʻia ʻo BLAKE3 no ka hashing password, ʻoiai ke manaʻo nei e helu i nā hashes i ka hikiwawe loa (no nā ʻōlelo huna, ʻōlelo ʻia e hoʻohana i nā hana hash lohi yescrypt, bcrypt, scrypt a i ʻole Argon2). ʻO ka hana hash e noʻonoʻo ʻole ʻia i ka nui o ka ʻikepili hashed a pale ʻia mai ka hoʻouka ʻana i ke koho collision a me ka ʻike mua ʻana.

Ua hoʻomohala ʻia ka algorithm e nā poʻe loea cryptography kaulana (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) a hoʻomau i ka hoʻomohala ʻana i ka algorithm BLAKE2 a hoʻohana i ka mīkini Bao e hoʻopili i ka lāʻau kaulahao poloka. . ʻAʻole like me BLAKE2 (BLAKE2b, BLAKE2s), hāʻawi ʻo BLAKE3 i hoʻokahi algorithm no nā paepae āpau, ʻaʻole pili i ka hohonu a me ka nui hash.

Ua hoʻonui ʻia ka hana ma ka hōʻemi ʻana i ka helu o nā pōʻai mai ka 10 a i ka 7 a me nā poloka hashing i kaʻawale i nā ʻāpana 1 KB. Wahi a nā mea hana, ua loaʻa iā lākou ka hōʻoia makemakika hiki ke loaʻa me 7 mau pōʻai ma mua o 10 me ka mālama ʻana i ka pae like o ka hilinaʻi (no ka maopopo, hiki iā mākou ke hāʻawi i kahi laʻana me ka hui ʻana i nā hua i loko o kahi huila - ma hope o 7 kekona. ua hui pū ʻia ka hua, a ʻo kahi 3 kekona ʻaʻole e pili i ka hoʻohui ʻana). Eia nō naʻe, ke hōʻike nei kekahi poʻe noiʻi i nā kānalua, me ka manaʻoʻiʻo inā lawa nā pōʻai 7 i kēia manawa e kūʻē i nā hoʻouka kaua āpau i ʻike ʻia ma nā hashes, a laila hiki ke hoʻohana ʻia nā pōʻai hou 3 inā ʻike ʻia nā hōʻeha hou i ka wā e hiki mai ana.

No ka mahele ʻana i nā poloka, ma BLAKE3 ua māhele ʻia ke kahawai i 1 mau ʻāpana KB a ua hoʻokaʻawale ʻia kēlā me kēia ʻāpana. Ma muli o nā hashes o nā ʻāpana, ua hoʻokumu ʻia kahi hash nui ma muli o ka lāʻau binary Merkle. Hāʻawi kēia māhele iā mākou e hoʻoponopono i ka pilikia o ka hoʻoili ʻana i ka ʻikepili i ka helu ʻana i nā hashes - no ka laʻana, hiki iā ʻoe ke hoʻohana i nā ʻōlelo aʻoaʻo SIMD 4-threaded e helu like i nā hashes o 4 poloka. Hana nā hana hash kuʻuna SHA-* i ka ʻikepili ma ke ʻano.

Nā hiʻohiʻona o BLAKE3:

  • ʻOi aku ka wikiwiki o BLAKE3 ma mua o MD5, SHA-1, SHA-2, SHA-3 a me BLAKE2.
  • ʻO ka palekana, me ke kū'ē i ka hoʻouka ʻana i nā memo elongation i hiki ke loaʻa iā SHA-2;
  • Loaʻa ma Rust, i hoʻopaʻa ʻia no nā ʻōlelo kuhikuhi SSE2, SSE4.1, AVX2, AVX-512, a me NEON.
  • E hōʻoia i ka hoʻohālikelike ʻana o ka helu ʻana ma kekahi helu o nā kaula a me nā kahawai SIMD.
  • Hiki i ka hoʻonui hou ʻana a me ka hana hōʻoia o nā kahawai;
  • E hoʻohana i nā ʻano PRF, MAC, KDF, XOF a ma ke ʻano he hash maʻamau;
  • ʻO kahi algorithm hoʻokahi no nā hale hoʻolālā āpau, wikiwiki ma nā ʻōnaehana x86-64 a me nā kaʻina hana 32-bit ARM.

ʻO nā ʻokoʻa nui ma waena o BLAKE3 a me BLAKE2:

  • Ka hoʻohana ʻana i kahi ʻano lāʻau binary e hiki ai i ka parallelism palena ʻole i ka helu hash.
  • E ho'ēmi i ka helu o nā pōʻai mai 10 a 7.
  • ʻEkolu mau ʻano hana: hashing, hashing me kahi kī (HMAC) a me ke kiʻi derivation (KDF).
  • ʻAʻohe mea ʻē aʻe i ka wā hashing me kahi kī ma muli o ka hoʻohana ʻana i ka wahi i noho mua ʻia e ka poloka parameter kī.
  • ʻO ka mīkini hana i kūkulu ʻia ma ke ʻano o kahi hana me kahi hopena lōʻihi (XOF, Extendable Output Function), e ʻae ana i ka parallelization a me ka hoʻonohonoho ʻana (ʻimi).

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka