Loaʻa ka hana hash cryptographic BLAKE3, ʻo ia ka 10 mau manawa ʻoi aku ka wikiwiki ma mua o SHA-2

Ua paʻi ʻia ka hoʻokō hope loa o ka algorithm BLAKE3, e hāʻawi ana i kahi hana cryptographic hash i hoʻolālā ʻia no nā noi e like me ka nānā pono ʻana i ka faila, hōʻoia memo, a me ka hana ʻana i ka ʻikepili no nā pūlima kikohoʻe. ʻAʻole i manaʻo ʻia ʻo BLAKE3 no ka hashing password (no nā ʻōlelo huna e pono ai ʻoe e hoʻohana i ka yescrypt, bcrypt, scrypt a i ʻole Argon2), no ka mea, ua kuhikuhi ʻia e helu i nā hashes i ka wikiwiki me ka hōʻoiaʻiʻo ʻaʻohe collisions, pale aku. ʻimi ʻana i ka prototype a ʻaʻole pili i ka nui o ka ʻikepili hashed. Hoʻokō kuhikuhi o BLAKE3 hoʻopuka ʻia ʻElua laikini ma lalo o ka Public Domain (CC0) a me Apache 2.0.

ʻO ka ʻokoʻa koʻikoʻi o ka hana hash hou ka hana kiʻekiʻe loa o ka helu hash me ka mālama ʻana i ka hilinaʻi ma ka pae SHA-3. Ma ka maʻamau, ʻo ka nui o ka hash ma BLAKE3 he 32 bytes (256 bits), akā hiki ke hoʻonui ʻia i nā waiwai kūʻokoʻa. Ma kahi ho'āʻo hana hash no kahi faila 16 KB, ʻoi aku ka maikaʻi o BLAKE3 i ka SHA3-256 ma 15 manawa, SHA-256 ma 12 manawa, SHA-512 ma 8 manawa, SHA-1 ma 6 manawa, a me BLAKE2b ma 4 mau manawa. Ke waiho nei kahi ʻāpana koʻikoʻi i ka wā e hoʻoili ai i nā ʻikepili nui loa, no ka laʻana, ʻo BLAKE3 ʻoi aku ka wikiwiki SHA-256 e 8 mau manawa i ka helu ʻana i ka hash no 1GB o ka ʻikepili maʻamau.

Loaʻa ka hana hash cryptographic BLAKE3, ʻo ia ka 10 mau manawa ʻoi aku ka wikiwiki ma mua o SHA-2

Ua hoʻomohala ʻia ka algorithm e nā 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 kahi mīkini e hoʻopaʻa i ka lāʻau kaulahao poloka ʻO Bao. ʻ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 10 a i 7 a hoʻokaʻawale i nā poloka hashing i nā ʻāpana 1 KB. Wahi a nā mea hana, ua loaʻa iā lākou kahi manaʻo hōʻike, hiki iā ʻoe ke loaʻa me nā pōʻai 7 ma kahi o 10 ʻoiai e mālama ana i ka pae like o ka hilinaʻi (no ka maopopo, hiki iā ʻoe ke hāʻawi i kahi laʻana me ka hui ʻana i nā hua i loko o kahi mea hui - ma hope o 7 kekona ua hui pū ʻia nā hua a he 3 mau kekona hou. ʻaʻole pili i ka kūlike o ka hui ʻ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ā ua lawa nā pōʻai 7 i kēia manawa e pale aku 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 ma ke kumu lāʻau merkle binary ua hoʻokumu ʻia kahi hash nui. 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 kahi hash - 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:

  • Hana kiʻekiʻe;
  • Palekana, me ke kū'ē memo elongation hoouka, kahi e hiki ai iā SHA-2;
  • 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.

Source: opennet.ru

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