BLAKE — криптографічна хеш-функція, в розробці якої брали участь Жан-Філіп Омассон (Jean-Philippe Aumasson), Лука Хенцен (Luca Henzen), Віллі Майєр (Willi Meier), Рафаель Фан (Raphael C.-W. Phan).
Існують два варіанти хеш-функції: BLAKE-256 і BLAKE-512.
Історія
Вперше BLAKE була представлена на конкурсі криптографічних алгоритмів, який проводився Національним інститутом стандартів і технологій США BLAKE стала одним з п'яти фіналістів конкурсу.
Криптостійкість
Хеш-функція BLAKE побудована з трьох раніше вивчених компонентів:
- режим ітерації забезпечує стійкість до атак другого роду
- внутрішня структура local wide-pipe забезпечує захист від колізій
- алгоритм стиснення для BLAKE є модифікованою версією потокового шифру ChaCha, який дуже добре розпаралелюється і чия безпека ретельно проаналізована
Швидкодія і реалізація
Швидкодія на двох різних процесорах:
Процесор | Швидкість (тактів/байт) | |
---|---|---|
BLAKE-256 | BLAKE-512 | |
Intel Core i5-2400M (Sandy Bridge) | 7.49 | 5.64 |
AMD FX-8120 (Bulldozer) | 11.83 | 6.88 |
Можливість реалізації на різних мікроконтролерах:
Мікроконтролер | BLAKE-256 | BLAKE-512 | ||
---|---|---|---|---|
RAM(байт) | ROM(байт) | RAM(байт) | ROM(байт) | |
Cortex-M3 based microcontroller (32-bit processor) | 280 | 1320 | 516 | 1776 |
ATmega1284P microcontroller (8-bit processor) | 267 | 3434 | 525 | 6350 |
Швидкодія на FPGA: На FPGA Xilinx Virtex 5, BLAKE-256 реалізується на 56 комірках і може досягати пропускної здатності більш ніж в 160 Мбіт/с, а BLAKE-512 — на 108 комірках зі швидкістю до 270 Мбіт/с.
Швидкодія на ASIC: На 180 nm ASIC, BLAKE-256 може бути реалізована на 13.5 kGE. На 90 nm ASIC, BLAKE-256 реалізована на 38 kGE і може досягати продуктивності в 10 Гбіт/с, а BLAKE-512 — на 79 kGE і зі швидкістю 15 Гбіт/с.
Алгоритм
Розглянемо алгоритм BLAKE-256
BLAKE-256 оперує з 32-бітними словами і повертає 32-байтний хеш.
Константи
Існують початкові константи, т.н. INITIAL VALUES (IV):
IV0 = 6A09E667 IV1 = BB67AE85 IV2 = 3C6EF372 IV3 = A54FF53A IV4 = 510E527F IV5 = 9B05688C IV6 = 1F83D9AB IV7 = 5BE0CD19
16 констант (Перші цифри числа пі):
c0 = 243F6A88 c1 = 85A308D3 c2 = 13198A2E c3 = 03707344 c4 = A4093822 c5 = 299F31D0 c6 = 082EFA98 c7 = EC4E6C89 c8 = 452821E6 c9 = 38D01377 c10 = BE5466CF c11 = 34E90C6C c12 = C0AC29B7 c13 = C97C50DD c14 = 3F84D5B5 c15 = B5470917
перестановки {0,…,15} (використовуються у всіх функціях BLAKE):
σ0 = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 σ1 = 14 10 4 8 9 15 13 6 1 12 0 2 11 7 5 3 σ2 = 11 8 12 0 5 2 15 13 10 14 3 6 7 1 9 4 σ3 = 7 9 3 1 13 12 11 14 2 6 5 10 4 0 15 8 σ4 = 9 0 5 7 2 4 10 15 14 1 11 12 6 8 3 13 σ5 = 2 12 6 10 0 11 8 3 4 13 7 5 15 14 1 9 σ6 = 12 5 1 15 14 13 4 10 0 7 6 3 9 2 8 11 σ7 = 13 11 7 14 12 1 3 9 5 0 15 4 8 6 2 10 σ8 = 6 15 14 9 11 3 0 8 12 2 13 7 1 4 10 5 σ9 = 10 2 8 4 7 6 1 5 15 11 9 14 3 12 13 0
Функції стиснення
Функція стиснення алгоритму BLAKE-256 приймає на вхід:
- Змінні ланцюжка h = h0,…,h7 (8 слів);
- Блок повідомлення m = m0,…,m15;
- Значення солі s = s0,…,s3;
- Значення лічильника t = t0,t1.
Таким чином, на вхід їй подається 30 слів (8+16+4+2=30, 30*4 = 120 байт = 960 біт). Повертає функція стиснення тільки нове значення змінних ланцюжка: h' = h'0,…,h'7. Надалі будемо позначати h'=compress(h, m, s, t)>
Ініціалізація
16 змінних, v0,…,v15, що описують поточний стан v, ініціалізуються початковими значеннями в залежності від вхідних даних і представлені у вигляді матриці 4×4:
←
Раундова функція
Після того, як стан v ініціалізований, запускається серія з 14 раундів. Раунд — це операція над станом , яка виробляє обчислення, розбиті на наступні блоки:
G0(v0, v4, v8 , v12) G1(v1, v5, v9 , v13) G2(v2, v6, v10, v14) G3(v3, v7, v11, v15) G4(v0, v5, v10, v15) G5(v1, v6, v11, v12) G6(v2, v7, v8 , v13) G7(v3, v4, v9 , v14)
на r-му раунді блок обчислень працює наступним чином:
j ← σr%10[2×i] k ← σr%10[2×i+1] a ← a + b + (mj ⊕ ck) d ← (d ⊕ a) >>> 16 c ← c + d b ← (b ⊕ c) >>> 12 a ← a + b + (mk ⊕ cj) d ← (d ⊕ a) >>> 8 c ← c + d b ← (b ⊕ c) >>> 7
Перші чотири блоки G0,…,G3 можуть обчислюватися паралельно, так як кожен змінює свою певну колонку змінних матриці станів. Назвемо процедуру обчислення G0,…,G3 column step. Точно також можуть бути паралельно обчислені G4,…,G7, але вони в свою чергу змінюють кожен свою діагональ матриці стану v. Тому назвемо процедуру обчислення G4,…,G7 diagonal step. Можливість паралельного обчислення Gi представлена графічно.
На раундах, номери r яких більше 9, використовується перестановка σr%10, наприклад, на 13-тому раунді використовується σ3.
Останній крок
Після всіх раундів нове значення змінних ланцюжка h'0,…,h'7 обчислюється із змінних матриці стану, вхідних змінних і з солі :
h'0 ← h0 ⊕ s0 ⊕ v8 h'1 ← h1 ⊕ s1 ⊕ v9 h'2 ← h2 ⊕ s2 ⊕ v10 h'3 ← h3 ⊕ s3 ⊕ v11 h'4 ← h4 ⊕ s4 ⊕ v12 h'5 ← h5 ⊕ s5 ⊕ v13 h'6 ← h6 ⊕ s6 ⊕ v14 h'7 ← h7 ⊕ s7 ⊕ v15
Хешування повідомлення
Опишемо процес хешування повідомлення m довжиною l<2^64 біт. Спочатку повідомлення доповнюється функцією padding даними для кратності 512 біт (64 байтам), потім, блок за блоком, його обробляє функція стиснення compression function.
У функції padding повідомлення спочатку доповнюється бітами, так, що його довжина стає по модулю 512 дорівнює 447: спочатку додається 1, потім необхідну кількість нулів. Після цього додається ще одна одиниця і 64-бітове представлення довжини повідомлення l від старшого до молодшого біта. Таким чином, довжина повідомлення стає кратною 512. Padding гарантує, що довжина повідомлення стане кратною 512 бітам.
Щоб вирахувати хеш повідомлення, результат функції padding ділиться на блоки з 16 слів m0,…,mN-1. Нехай Li — кількість біт вихідного повідомлення у блоках m0,…,mi, тобто виключаючи ті біти, які були додані в процедурі padding. Наприклад, якщо повідомлення має довжину 600 біт, то після процедури padding воно буде мати 1024 біт і буде розділено на два блоки: m0 і m1. Притому L0=512, L1=600.
В деяких випадках останній блок не містить біт оригінального повідомлення. Наприклад, якщо у вихідному повідомленні 1020 біт, то в результаті процедури padding воно буде мати довжину 1536 біт і в m0 буде 512 біт вихідного повідомлення m1 — 508, а в m2 — 0. Виставимо L0=512, L1=1020, а L2=0. Тобто правило таке: якщо в останньому блоці немає біт оригінального повідомлення, то виставимо лічильник LN-1 рівним 0. Це гарантує, що якщо i ≠ j, то Li ≠ Lj. Значення солі визначається користувачем або задається рівним 0, якщо її не потрібно використовувати (s0=s1=s2=s3=0). Хеш повідомлення таким чином обчислюється:
h0 ← IV for i=0,...,N-1 hi+1 ← compress(hi,mi,s,li) return hN.
Процес хешування наочно представлений на блок-схемі:
Алгоритм 64-бітної версії функції ідентичний: значення зсуву рівні 32, 25, 16 і 11 відповідно, число раундів збільшено до 16.
Відмінності від quarterround алгоритму ChaCha
- Додавання констант повідомлення.
- Змінений напрямок зсуву.
Хеші BLAKE
BLAKE-512("") = A8CFBBD73726062DF0C6864DDA65DEFE58EF0CC52A5625090FA17601E1EECD1B 628E94F396AE402A00ACC9EAB77B4D4C2E852AAAA25A636D80AF3FC7913EF5B8
BLAKE-512("The quick brown fox jumps over the lazy dog") = 1F7E26F63B6AD25A0896FD978FD050A1766391D2FD0471A77AFB975E5034B7AD 2D9CCF8DFB47ABBBE656E1B82FBC634BA42CE186E8DC5E1CE09A885D41F43451
BLAKE2
BLAKE2 (Сайт BLAKE2 [ 1 листопада 2018 у Wayback Machine.]) — це поліпшена версія BLAKE — одного з п'яти фіналістів конкурсу на хеш-функції SHA-3 (головним чином покращено швидкодію), представлена 21 грудня 2012 року. Розробники: Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O Hearn, і Christian Winnerlein. Була створена як альтернатива широко використовуваним в минулому MD5 і SHA-1, в яких були знайдені уразливості.
Відмінності від BLAKE
У BLAKE2, на відміну від BLAKE, немає додавання констант в раундовій функції. Також змінено константи зсуву, спрощено додавання, доданий блок параметрів, який складається з ініціалізуючими векторами. Крім того, скорочено кількість раундів з 16 до 12 у функції BLAKE2b (аналог BLAKE-512) і з 14 до 10 у BLAKE2s (аналог BLAKE-256). В результаті число тактів на біт скоротилася з 7,49 для BLAKE-256 і 5,64 для BLAKE-512 до 5,34 і 3,32 для Blake2s і Blake2b відповідно.
Хеші BLAKE2
BLAKE2b-512("") = 786A02F742015903C6C6FD852552D272912F4740E15847618A86E217F71F5419 D25E1031AFEE585313896444934EB04B903A685B1448B755D56F701AFE9BE2CE
BLAKE2b-512("The quick brown fox jumps over the lazy dog") = A8ADD4BDDDFD93E4877D2746E62817B116364A1FA7BC148D95090BC7333B3673 F82401CF7AA2E4CB1ECD90296E3F14CB5413F8ED77BE73045B13914CDCD6A918
BLAKE2s-256("")
= 69217A3079908094E11121D042354A7C1F55B6482CA1A51E1B250DFD1ED0EEF9
BLAKE2s-256("The quick brown fox jumps over the lazy dog")
= 606BEEEC743CCBEFF6CBCDF5D5302AA855C256C29B88C8ED331EA1A6BF3C8812
BLAKE2s-128("")
= 64550D6FFE2C0A01A14ABA1EADE0200C
BLAKE2s-128("The quick brown fox jumps over the lazy dog")
= 96FD07258925748A0D2FB1C8A1167A73
Джерела
- Документація BLAKE на офіційному сайті [ 9 грудня 2017 у Wayback Machine.], стор 3 Introduction.
- . Архів оригіналу за 16 квітня 2018. Процитовано 16 квітня 2018.
- Документація BLAKE на офіційному сайті [ 9 грудня 2017 у Wayback Machine.], ст.8 Specification.
Література
Eli Biham and Orr Dunkelman. A framework for iterative hash functions - HAIFA. — ePrint, 2007. — 207 с.
Посилання
- Сайт BLAKE [ 29 жовтня 2018 у Wayback Machine.]
- Сайт BLAKE2 [ 1 листопада 2018 у Wayback Machine.]
- Вихідний код на VHDL, розроблений Групою Дослідників в Області Криптографії університету Джорджа Мейсона [ 25 квітня 2012 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
BLAKE kriptografichna hesh funkciya v rozrobci yakoyi brali uchast Zhan Filip Omasson Jean Philippe Aumasson Luka Hencen Luca Henzen Villi Majyer Willi Meier Rafael Fan Raphael C W Phan Isnuyut dva varianti hesh funkciyi BLAKE 256 i BLAKE 512 IstoriyaVpershe BLAKE bula predstavlena na konkursi kriptografichnih algoritmiv yakij provodivsya Nacionalnim institutom standartiv i tehnologij SShA BLAKE stala odnim z p yati finalistiv konkursu KriptostijkistHesh funkciya BLAKE pobudovana z troh ranishe vivchenih komponentiv rezhim iteraciyi zabezpechuye stijkist do atak drugogo rodu vnutrishnya struktura local wide pipe zabezpechuye zahist vid kolizij algoritm stisnennya dlya BLAKE ye modifikovanoyu versiyeyu potokovogo shifru ChaCha yakij duzhe dobre rozparalelyuyetsya i chiya bezpeka retelno proanalizovanaShvidkodiya i realizaciyaShvidkodiya na dvoh riznih procesorah Procesor Shvidkist taktiv bajt BLAKE 256 BLAKE 512Intel Core i5 2400M Sandy Bridge 7 49 5 64AMD FX 8120 Bulldozer 11 83 6 88 Mozhlivist realizaciyi na riznih mikrokontrolerah Mikrokontroler BLAKE 256 BLAKE 512RAM bajt ROM bajt RAM bajt ROM bajt Cortex M3 based microcontroller 32 bit processor 280 1320 516 1776ATmega1284P microcontroller 8 bit processor 267 3434 525 6350 Shvidkodiya na FPGA Na FPGA Xilinx Virtex 5 BLAKE 256 realizuyetsya na 56 komirkah i mozhe dosyagati propusknoyi zdatnosti bilsh nizh v 160 Mbit s a BLAKE 512 na 108 komirkah zi shvidkistyu do 270 Mbit s Shvidkodiya na ASIC Na 180 nm ASIC BLAKE 256 mozhe buti realizovana na 13 5 kGE Na 90 nm ASIC BLAKE 256 realizovana na 38 kGE i mozhe dosyagati produktivnosti v 10 Gbit s a BLAKE 512 na 79 kGE i zi shvidkistyu 15 Gbit s AlgoritmRozglyanemo algoritm BLAKE 256 BLAKE 256 operuye z 32 bitnimi slovami i povertaye 32 bajtnij hesh Konstanti Isnuyut pochatkovi konstanti t n INITIAL VALUES IV IV0 6A09E667 IV1 BB67AE85 IV2 3C6EF372 IV3 A54FF53A IV4 510E527F IV5 9B05688C IV6 1F83D9AB IV7 5BE0CD19 16 konstant Pershi cifri chisla pi c0 243F6A88 c1 85A308D3 c2 13198A2E c3 03707344 c4 A4093822 c5 299F31D0 c6 082EFA98 c7 EC4E6C89 c8 452821E6 c9 38D01377 c10 BE5466CF c11 34E90C6C c12 C0AC29B7 c13 C97C50DD c14 3F84D5B5 c15 B5470917 perestanovki 0 15 vikoristovuyutsya u vsih funkciyah BLAKE s0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 s1 14 10 4 8 9 15 13 6 1 12 0 2 11 7 5 3 s2 11 8 12 0 5 2 15 13 10 14 3 6 7 1 9 4 s3 7 9 3 1 13 12 11 14 2 6 5 10 4 0 15 8 s4 9 0 5 7 2 4 10 15 14 1 11 12 6 8 3 13 s5 2 12 6 10 0 11 8 3 4 13 7 5 15 14 1 9 s6 12 5 1 15 14 13 4 10 0 7 6 3 9 2 8 11 s7 13 11 7 14 12 1 3 9 5 0 15 4 8 6 2 10 s8 6 15 14 9 11 3 0 8 12 2 13 7 1 4 10 5 s9 10 2 8 4 7 6 1 5 15 11 9 14 3 12 13 0 Funkciyi stisnennya Funkciya stisnennya algoritmu BLAKE 256 prijmaye na vhid Zminni lancyuzhka h h0 h7 8 sliv Blok povidomlennya m m0 m15 Znachennya soli s s0 s3 Znachennya lichilnika t t0 t1 Takim chinom na vhid yij podayetsya 30 sliv 8 16 4 2 30 30 4 120 bajt 960 bit Povertaye funkciya stisnennya tilki nove znachennya zminnih lancyuzhka h h 0 h 7 Nadali budemo poznachati h compress h m s t gt Inicializaciya 16 zminnih v0 v15 sho opisuyut potochnij stan v inicializuyutsya pochatkovimi znachennyami v zalezhnosti vid vhidnih danih i predstavleni u viglyadi matrici 4 4 v0v1v2v3v4v5v6v7v8v9v10v11v12v13v14v15 displaystyle begin pmatrix v 0 amp v 1 amp v 2 amp v 3 v 4 amp v 5 amp v 6 amp v 7 v 8 amp v 9 amp v 10 amp v 11 v 12 amp v 13 amp v 14 amp v 15 end pmatrix h0h1h2h3h4h5h6h7s0 c0s1 c1s2 c2s3 c3t0 c4t0 c5t1 c6t1 c7 displaystyle begin pmatrix h 0 amp h 1 amp h 2 amp h 3 h 4 amp h 5 amp h 6 amp h 7 s 0 oplus c 0 amp s 1 oplus c 1 amp s 2 oplus c 2 amp s 3 oplus c 3 t 0 oplus c 4 amp t 0 oplus c 5 amp t 1 oplus c 6 amp t 1 oplus c 7 end pmatrix Raundova funkciya Pislya togo yak stan v inicializovanij zapuskayetsya seriya z 14 raundiv Raund ce operaciya nad stanom v displaystyle v yaka viroblyaye obchislennya rozbiti na nastupni bloki G0 v0 v4 v8 v12 G1 v1 v5 v9 v13 G2 v2 v6 v10 v14 G3 v3 v7 v11 v15 G4 v0 v5 v10 v15 G5 v1 v6 v11 v12 G6 v2 v7 v8 v13 G7 v3 v4 v9 v14 na r mu raundi blok obchislen Gi a b c d displaystyle G i a b c d pracyuye nastupnim chinom Grafichna ilyustraciya roboti bloku obchislen Gij sr 10 2 i k sr 10 2 i 1 a a b mj ck d d a gt gt gt 16 c c d b b c gt gt gt 12 a a b mk cj d d a gt gt gt 8 c c d b b c gt gt gt 7 Vertikalnij column i diagonalnij diagonal kroki algoritmu BLAKE 256 Pershi chotiri bloki G0 G3 mozhut obchislyuvatisya paralelno tak yak kozhen zminyuye svoyu pevnu kolonku zminnih matrici staniv Nazvemo proceduru obchislennya G0 G3 column step Tochno takozh mozhut buti paralelno obchisleni G4 G7 ale voni v svoyu chergu zminyuyut kozhen svoyu diagonal matrici stanu v Tomu nazvemo proceduru obchislennya G4 G7 diagonal step Mozhlivist paralelnogo obchislennya Gi predstavlena grafichno Na raundah nomeri r yakih bilshe 9 vikoristovuyetsya perestanovka sr 10 napriklad na 13 tomu raundi vikoristovuyetsya s3 Ostannij krok Pislya vsih raundiv nove znachennya zminnih lancyuzhka h 0 h 7 obchislyuyetsya iz zminnih v0 v15 displaystyle v 0 v 15 matrici stanu vhidnih zminnih h displaystyle h i z soli s displaystyle s h 0 h0 s0 v8 h 1 h1 s1 v9 h 2 h2 s2 v10 h 3 h3 s3 v11 h 4 h4 s4 v12 h 5 h5 s5 v13 h 6 h6 s6 v14 h 7 h7 s7 v15 Heshuvannya povidomlennya Opishemo proces heshuvannya povidomlennya m dovzhinoyu l lt 2 64 bit Spochatku povidomlennya dopovnyuyetsya funkciyeyu padding danimi dlya kratnosti 512 bit 64 bajtam potim blok za blokom jogo obroblyaye funkciya stisnennya compression function U funkciyi padding povidomlennya spochatku dopovnyuyetsya bitami tak sho jogo dovzhina staye po modulyu 512 dorivnyuye 447 spochatku dodayetsya 1 potim neobhidnu kilkist nuliv Pislya cogo dodayetsya she odna odinicya i 64 bitove predstavlennya dovzhini povidomlennya l vid starshogo do molodshogo bita Takim chinom dovzhina povidomlennya staye kratnoyu 512 Padding garantuye sho dovzhina povidomlennya stane kratnoyu 512 bitam Shob virahuvati hesh povidomlennya rezultat funkciyi padding dilitsya na bloki z 16 sliv m0 mN 1 Nehaj Li kilkist bit vihidnogo povidomlennya u blokah m0 mi tobto viklyuchayuchi ti biti yaki buli dodani v proceduri padding Napriklad yaksho povidomlennya maye dovzhinu 600 bit to pislya proceduri padding vono bude mati 1024 bit i bude rozdileno na dva bloki m0 i m1 Pritomu L0 512 L1 600 V deyakih vipadkah ostannij blok ne mistit bit originalnogo povidomlennya Napriklad yaksho u vihidnomu povidomlenni 1020 bit to v rezultati proceduri padding vono bude mati dovzhinu 1536 bit i v m0 bude 512 bit vihidnogo povidomlennya m1 508 a v m2 0 Vistavimo L0 512 L1 1020 a L2 0 Tobto pravilo take yaksho v ostannomu bloci nemaye bit originalnogo povidomlennya to vistavimo lichilnik LN 1 rivnim 0 Ce garantuye sho yaksho i j to Li Lj Znachennya soli viznachayetsya koristuvachem abo zadayetsya rivnim 0 yaksho yiyi ne potribno vikoristovuvati s0 s1 s2 s3 0 Hesh povidomlennya takim chinom obchislyuyetsya h0 IV for i 0 N 1 hi 1 compress hi mi s li return hN Proces heshuvannya naochno predstavlenij na blok shemi Algoritm 64 bitnoyi versiyi funkciyi identichnij znachennya zsuvu rivni 32 25 16 i 11 vidpovidno chislo raundiv zbilsheno do 16 Vidminnosti vid quarterround algoritmu ChaCha Dodavannya konstant povidomlennya Zminenij napryamok zsuvu Heshi BLAKEBLAKE 512 A8CFBBD73726062DF0C6864DDA65DEFE58EF0CC52A5625090FA17601E1EECD1B 628E94F396AE402A00ACC9EAB77B4D4C2E852AAAA25A636D80AF3FC7913EF5B8 BLAKE 512 The quick brown fox jumps over the lazy dog 1F7E26F63B6AD25A0896FD978FD050A1766391D2FD0471A77AFB975E5034B7AD 2D9CCF8DFB47ABBBE656E1B82FBC634BA42CE186E8DC5E1CE09A885D41F43451BLAKE2BLAKE2 Sajt BLAKE2 1 listopada 2018 u Wayback Machine ce polipshena versiya BLAKE odnogo z p yati finalistiv konkursu na hesh funkciyi SHA 3 golovnim chinom pokrasheno shvidkodiyu predstavlena 21 grudnya 2012 roku Rozrobniki Jean Philippe Aumasson Samuel Neves Zooko Wilcox O Hearn i Christian Winnerlein Bula stvorena yak alternativa shiroko vikoristovuvanim v minulomu MD5 i SHA 1 v yakih buli znajdeni urazlivosti Vidminnosti vid BLAKE U BLAKE2 na vidminu vid BLAKE nemaye dodavannya konstant v raundovij funkciyi Takozh zmineno konstanti zsuvu sprosheno dodavannya dodanij blok parametriv yakij skladayetsya z inicializuyuchimi vektorami Krim togo skorocheno kilkist raundiv z 16 do 12 u funkciyi BLAKE2b analog BLAKE 512 i z 14 do 10 u BLAKE2s analog BLAKE 256 V rezultati chislo taktiv na bit skorotilasya z 7 49 dlya BLAKE 256 i 5 64 dlya BLAKE 512 do 5 34 i 3 32 dlya Blake2s i Blake2b vidpovidno Heshi BLAKE2 BLAKE2b 512 786A02F742015903C6C6FD852552D272912F4740E15847618A86E217F71F5419 D25E1031AFEE585313896444934EB04B903A685B1448B755D56F701AFE9BE2CE BLAKE2b 512 The quick brown fox jumps over the lazy dog A8ADD4BDDDFD93E4877D2746E62817B116364A1FA7BC148D95090BC7333B3673 F82401CF7AA2E4CB1ECD90296E3F14CB5413F8ED77BE73045B13914CDCD6A918 BLAKE2s 256 69217A3079908094E11121D042354A7C1F55B6482CA1A51E1B250DFD1ED0EEF9 BLAKE2s 256 The quick brown fox jumps over the lazy dog 606BEEEC743CCBEFF6CBCDF5D5302AA855C256C29B88C8ED331EA1A6BF3C8812 BLAKE2s 128 64550D6FFE2C0A01A14ABA1EADE0200C BLAKE2s 128 The quick brown fox jumps over the lazy dog 96FD07258925748A0D2FB1C8A1167A73DzherelaDokumentaciya BLAKE na oficijnomu sajti 9 grudnya 2017 u Wayback Machine stor 3 Introduction Arhiv originalu za 16 kvitnya 2018 Procitovano 16 kvitnya 2018 Dokumentaciya BLAKE na oficijnomu sajti 9 grudnya 2017 u Wayback Machine st 8 Specification LiteraturaEli Biham and Orr Dunkelman A framework for iterative hash functions HAIFA ePrint 2007 207 s PosilannyaSajt BLAKE 29 zhovtnya 2018 u Wayback Machine Sajt BLAKE2 1 listopada 2018 u Wayback Machine Vihidnij kod na VHDL rozroblenij Grupoyu Doslidnikiv v Oblasti Kriptografiyi universitetu Dzhordzha Mejsona 25 kvitnya 2012 u Wayback Machine