BLAKE3 1.0 ծածկագրային հեշ ֆունկցիայի հղման իրականացման թողարկում

Թողարկվել է BLAKE3 1.0 ծածկագրային հեշ ֆունկցիայի տեղեկատու ներդրումը, որն աչքի է ընկնում հեշի հաշվարկման շատ բարձր կատարողականությամբ՝ միաժամանակ ապահովելով SHA-3 մակարդակի հուսալիությունը: 16 ԿԲ ֆայլի համար հեշ ստեղծելու թեստում BLAKE3-ը 256-բիթանոց բանալիով գերազանցում է SHA3-256-ին 17 անգամ, SHA-256-ին՝ 14 անգամ, SHA-512-ին՝ 9 անգամ, SHA-1-ին՝ 6 անգամ, իսկ BLAKE2b-ին՝ 5 անգամ։ Զգալի բաց է մնում շատ մեծ քանակությամբ տվյալների մշակման ժամանակ, օրինակ, BLAKE3-ը 256 անգամ ավելի արագ է ստացվել, քան SHA-8-ը 1 ԳԲ պատահական տվյալների համար հեշը հաշվարկելիս: BLAKE3 հղման իրականացման կոդը հասանելի է C և Rust տարբերակներով երկակի հանրային տիրույթի (CC0) և Apache 2.0 լիցենզիայի ներքո:

BLAKE3 1.0 ծածկագրային հեշ ֆունկցիայի հղման իրականացման թողարկում

Հեշ ֆունկցիան նախատեսված է այնպիսի ծրագրերի համար, ինչպիսիք են ֆայլերի ամբողջականության ստուգումը, հաղորդագրությունների իսկությունը և գաղտնագրային թվային ստորագրությունների համար տվյալների գեներացումը: BLAKE3-ը նախատեսված չէ գաղտնաբառերի հեշավորման համար, քանի որ նպատակ ունի հնարավորինս արագ հաշվարկել հեշերը (գաղտնաբառերի համար խորհուրդ է տրվում օգտագործել դանդաղ հեշ գործառույթները yescrypt, bcrypt, scrypt կամ Argon2): Քննարկվող հեշ ֆունկցիան անզգայուն է հեշավորված տվյալների չափի նկատմամբ և պաշտպանված է բախումների ընտրության և նախնական պատկերի հայտնաբերման հարձակումներից:

Ալգորիթմը մշակվել է կրիպտոգրաֆիայի հայտնի մասնագետների կողմից (Ջեք Օ'Քոննոր, Ժան-Ֆիլիպ Օմասոն, Սամուել Նևես, Զոոկո Վիլքոքս-Օ'Հերն) և շարունակում է BLAKE2 ալգորիթմի զարգացումը և օգտագործում է Bao մեխանիզմը բլոկ շղթայի ծառը կոդավորելու համար: . Ի տարբերություն BLAKE2-ի (BLAKE2b, BLAKE2s), BLAKE3-ն առաջարկում է մեկ ալգորիթմ բոլոր հարթակների համար, որը կապված չէ բիթերի խորության և հեշի չափի հետ:

Բարձրացված կատարողականությունը ձեռք է բերվել ռաունդների քանակը 10-ից 7-ի նվազեցնելու և 1 ԿԲ ծավալով բլոկների առանձին հաշման միջոցով: Ըստ ստեղծողների՝ իրենք գտել են համոզիչ մաթեմատիկական ապացույց, որ հնարավոր է 7-ի փոխարեն 10 փուլով յոլա գնալ՝ պահպանելով հուսալիության նույն մակարդակը (հստակության համար կարող ենք օրինակ բերել հարիչով մրգերը խառնելով՝ 7 վայրկյանից հետո։ պտուղն արդեն ամբողջությամբ խառնվել է, և լրացուցիչ 3 վայրկյանը չի ազդի խառնուրդի հետևողականության վրա): Այնուամենայնիվ, որոշ հետազոտողներ կասկածներ են հայտնում՝ հավատալով, որ նույնիսկ եթե 7 ռաունդը ներկայումս բավարար է հեշերի վրա բոլոր հայտնի հարձակումներին դիմակայելու համար, ապա լրացուցիչ 3 ռաունդը կարող է օգտակար լինել, եթե ապագայում հայտնաբերվեն նոր հարձակումներ:

Ինչ վերաբերում է բլոկների բաժանմանը, ապա BLAKE3-ում հոսքը բաժանվում է 1 ԿԲ մասերի և յուրաքանչյուր կտոր հեշացվում է ինքնուրույն։ Կտորների հեշերի հիման վրա ձևավորվում է մեկ մեծ հեշ՝ երկուական Մերկլի ծառի հիման վրա։ Այս բաժանումը թույլ է տալիս մեզ լուծել տվյալների մշակման զուգահեռացման խնդիրը հեշերը հաշվարկելիս, օրինակ, կարող եք օգտագործել 4-թելերով SIMD հրահանգներ՝ միաժամանակ 4 բլոկների հեշերը հաշվարկելու համար: Ավանդական SHA-* հեշ ֆունկցիաները հաջորդաբար մշակում են տվյալները:

BLAKE3-ի առանձնահատկությունները.

  • Բարձր կատարողականությամբ, BLAKE3-ը զգալիորեն ավելի արագ է, քան MD5, SHA-1, SHA-2, SHA-3 և BLAKE2:
  • Անվտանգություն, ներառյալ դիմադրություն հաղորդագրությունների երկարացման հարձակումներին, որոնց նկատմամբ SHA-2-ը ենթակա է.
  • Հասանելի է Rust-ով, օպտիմիզացված SSE2, SSE4.1, AVX2, AVX-512 և NEON հրահանգների համար:
  • Ցանկացած քանակի թելերի և SIMD ալիքների վրա հաշվարկների զուգահեռության ապահովում։
  • հոսքերի աստիճանական թարմացման և ստուգված մշակման հնարավորությունը;
  • Օգտագործեք PRF, MAC, KDF, XOF ռեժիմներում և որպես սովորական հեշ;
  • Մեկ ալգորիթմ բոլոր ճարտարապետությունների համար, արագ ինչպես x86-64 համակարգերի, այնպես էլ 32-բիթանոց ARM պրոցեսորների վրա:

BLAKE3-ի և BLAKE2-ի հիմնական տարբերությունները.

  • Երկուական ծառի կառուցվածքի օգտագործումը, որը թույլ է տալիս անսահմանափակ զուգահեռականություն հեշ հաշվարկներում:
  • Նվազեցնելով փուլերի քանակը 10-ից 7-ի:
  • Գործողության երեք եղանակ՝ հեշում, բանալու միջոցով հեշում (HMAC) և բանալիների ստեղծում (KDF):
  • Բանալին հաշելու ժամանակ լրացուցիչ ծախս չկա՝ հիմնական պարամետրերի բլոկով նախկինում զբաղեցրած տարածքի օգտագործման պատճառով:
  • Ներկառուցված գործող մեխանիզմ՝ ընդլայնված արդյունքով ֆունկցիայի տեսքով (XOF, Extendable Output Function), որը թույլ է տալիս զուգահեռացում և դիրքավորում (որոնում):

Source: opennet.ru

Добавить комментарий