Kupyna

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 16. srpna 2017; kontroly vyžadují 10 úprav .
Kupyna
Vývojáři PJSC "Institut informačních technologií" ( Charkov )
Vytvořeno 2014
zveřejněno 2. prosince 2014
Předchůdce GOST 34.311-95
Normy DSTU 7564:2014
Velikost hash proměnná, 8–512 bitů (doporučené hodnoty 256, 384, 512)
Počet kol 10 s délkou hash 8-256 bitů; 14 s délkou hash 264-512 bitů
Typ hashovací funkce

Kupyna ( ukrajinsky: Kupina ) je iterativní kryptografická hašovací funkce . Přijata jako národní norma Ukrajiny DSTU 7564:2014 [1] jako náhrada za zastaralou hashovací funkci GOST 34.311-95 . Kupynova kontrakce se skládá ze dvou pevných 2n-bitových permutací T ⊕ a T + , jejichž struktura je vypůjčena z Kalynovy šifry . Konkrétně se používají čtyři stejné S-boxy . Výsledek hashovací funkce může mít délku 8 až 512 bitů. Varianta, která vrací n bitů, se nazývá " Kupyna-n " [2] .

Původ jména

Kupena lékárna - rostlina z čeledi Ruscaceae , rostoucí po celé Ukrajině v jehličnatých a smíšených lesích, je uvedena v Červené knize Ukrajiny . [3]

Algoritmus

Nejprve je zpráva doplněna na délku násobkem velikosti bloku. K tomu se ke zprávě přidá 1 bit , poté nula bitů, kde a 96 bitů, obsahujících délku zprávy v bitech. Maximální délka zprávy je tedy bitů.

Poté je zpráva rozdělena do bloků bitů . U variant funkcí vracejících až 256 bitů = 512. U variant vracejících velké hodnoty = 1024.

Dále je vytvořena hašovací funkce pomocí následujícího iteračního algoritmu.

kde

, pokud l = 512, nebo pokud l = 1024

- funkce, která vrací nejvýznamnější bity velikosti bloku

Permutace T ⊕ a T +

Tyto transformace řídí stav, který je reprezentován maticí G obsahující 1 bajt informace v každé buňce. Matice má velikost 8X8 (s ) nebo 8X16 (s ).

Nejprve je matice G vyplněna posloupností bajtů. Například pro posloupnost 00 01 02 ... 3f vypadá matice G takto.

Matice 8 X 16 je vyplněna stejným způsobem.

Permutace a jsou definovány jako:

Funkce modulo 2 přidává vektor

do každého sloupce matice stavu ( - číslo zaokrouhlení).

Funkce přidá modulo 64 vektor

do každého sloupce matice stavu ( - číslo zaokrouhlení).

Funkce nahradí prvky stavové matice substitucí z jednoho ze čtyř S-boxů (číslo S-boxu je definováno jako ).

Funkce provádí cyklický posun vpravo od prvků stavové matice. Řádky s čísly jsou posunuty o prvky a řádek 7 je posunut o 7 prvků v nebo o 11 prvků v .

Pro provedení funkce je každý prvek stavové matice reprezentován jako prvek konečného pole tvořeného neredukovatelným polynomem . Každý prvek výsledné stavové matice se vypočítá podle vzorce:

kde je vektor (0x01, 0x01, 0x05, 0x01, 0x08, 0x06, 0x07, 0x04) a je číslo sloupce matice stavu .

Zabezpečení

Tvůrci tvrdí, že diferenciální útoky a rebound útoky jsou po 4 iteracích permutačních funkcí neúčinné. Tabulka ukazuje indikátory kryptografické odolnosti deklarované tvůrci.

Typ útoku Kupyna-256 Kupyna-512
kolize 2128 _ 2256 _
prototyp 2256 _ 2512 _
Druhý prototyp 2256 _ 2512 _
pevné body 2256 _ 2512 _

V důsledku nezávislé kryptoanalýzy bylo možné zaútočit pouze na prvních 5 kol; složitost nalezení kolize pro funkci Kupyna-256 snížená na 5 ran je 2 120 . [4] [5]

S-bloky

Substituce π 0

6D F3 1D CB C9 4D 79 2C E0 97 FD 6F 4B 45 39
3E DD A3 4F B4 B6 1F 9A bf patnáct E1 49 D2 93 C6
92 72 9E 61 D1 63 F4 FA 19 D5 INZERÁT 58 A4 BB A1
DC F2 83 37 42 E4 9C 7A CC AB 4A 8F 6E 04 27
2E E7 E2 5A 96 16 C2 23 65 66 0F před naším letopočtem A9 47 41
34 48 FC B7 6A 88 86 A5 F9 5B D.B. 38 7B C3 1E
22 33 24 28 36 C7 8E B2 77 BA F5 čtrnáct 9F 08 55
9B 4C F.E. 60 5C DA CD osmnáct 7D 21 B0 3F 1B 89 FF
EB 84 69 3A 9D D7 67 D3 40 B5 DE 5 D třicet 91 B1
78 jedenáct 01 E5 00 68 C5 98 02 A6 74 2D 0B A2 76
B3 BÝT CE BD AE E9 1C 8A EU F1 99 94 AA F6 26
2F EF E8 8C 35 03 Facebook D4 05 C1 5E 90 dvacet 3D 82
F7 EA 0A 0D 7E F8 C4 padesáti 07 57 B8 3C 62 E3 C8
AC 52 64 deset D0 D9 12 13 29 51 B9 CF D6 73 8D
81 54 C0 ED 4E 44 85 A7 25 E6 CA 7C 8B 56 80

Substituce π 1

42 patnáct 56 B4 65 1C 88 43 C5 5C 36 BA F5 57 67 8D
31 F6 64 58 9E F4 22 AA 75 0F 02 B1 D.F. 6D 73 4D
7C 26 2E F7 08 5 D 44 3E 9F čtrnáct C8 AE 54 deset D8 před naším letopočtem
1A 6B 69 F3 BD 33 AB FA D1 9B 68 4E 16 95 91 EE
4C 63 8E 5B CC 3C 19 A1 81 49 7B D9 6F 37 60 CA
E7 2B 48 FD 96 45 FC 41 12 0D 79 E5 89 8C E3 dvacet
třicet DC B7 6C 4A B5 3F 97 D4 62 2D 06 A4 A5 83 5F
2A DA C9 00 7E A2 55 bf jedenáct D5 9C CF 0E 0A 3D 51
7D 93 1B F.E. C4 47 09 86 0B 8F 9D 6A 07 B9 B0 98
osmnáct 32 71 4B EF 3B 70 A0 E4 40 FF C3 A9 E6 78 F9
8B 46 80 1E 38 E1 B8 A8 E0 0C 23 76 1D 25 24 05
F1 6E 94 28 9A 84 E8 A3 4F 77 D3 85 E2 52 F2 82
padesáti 7A 2F 74 53 B3 61 AF 39 35 DE CD 1F 99 AC INZERÁT
72 2C DD D0 87 BÝT 5E A6 EU 04 C6 03 34 Facebook D.B. 59
B6 C2 01 F0 5A ED A7 66 21 7F 8A 27 C7 C0 29 D7

Substituce π 2

4A 17 2B C2 94 F4 BB A3 62 E4 71 D4 CD 70 16 E1
49 3C C0 D8 5C 9B INZERÁT 85 53 A1 7A C8 2D E0 D1 72
A6 2C C4 E3 76 78 B7 B4 09 3B 0E 41 4C DE B2 90
25 A5 D7 03 jedenáct 00 C3 2E 92 EF 4E 12 9D 7D CB 35
deset D5 4F 9E 4D A9 55 C6 D0 7B osmnáct 97 D3 36 E6 48
56 81 8F 77 CC 9C B9 E2 AC B8 2F patnáct A4 7C DA 38
1E 0B 05 D6 čtrnáct 6E 6C 7E 66 FD B1 E5 60 AF 5E 33
87 C9 F0 5 D 6D 3F 88 8D C7 F7 1D E9 EU ED 80 29
27 CF 99 A8 padesáti 0F 37 24 28 třicet 95 D2 3E 5B 40 83
B3 69 57 1F 07 1C 8A před naším letopočtem dvacet EB CE 8E AB EE 31 A2
73 F9 CA 3A 1A Facebook 0D C1 F.E. FA F2 6F BD 96 DD 43
52 B6 08 F3 AE BÝT 19 89 32 26 B0 EA 4B 64 84 82
6B F5 79 bf 01 5F 75 63 1B 23 3D 68 2A 65 E8 91
F6 FF 13 58 F1 47 0A 7F C5 A7 E7 61 5A 06 46 44
42 04 A0 D.B. 39 86 54 AA 8C 34 21 8B F8 0C 74 67

Substituce π 3

22 03 46 3D 2D 4A 53 83 13 8A B7 D5 25 79 F5 BD
58 2F 0D 02 ED 51 9E jedenáct F2 3E 55 5E D1 16 3C 66
70 5 D F3 45 40 CC E8 94 56 08 CE 1A 3A D2 E1 D.F.
B5 38 6E 0E E5 F4 F9 86 E9 4F D6 85 23 CF 32 99
31 čtrnáct AE EE C8 48 D3 třicet A1 92 41 B1 osmnáct C4 2C 71
72 44 patnáct FD 37 BÝT 5F AA 9B 88 D8 AB 89 9C FA 60
EA před naším letopočtem 62 0C 24 A6 A8 EU 67 dvacet D.B. 7C 28 DD AC 5B
34 7E deset F1 7B 8F 63 A0 05 9A 43 77 21 bf 27 09
C3 9F B6 D7 29 C2 EB C0 A4 8B 8C 1D Facebook FF C1 B2
97 2E F8 65 F6 75 07 04 49 33 E4 D9 B9 D0 42 C7
6C 90 00 8E 6F padesáti 01 C5 DA 47 3F CD 69 A2 E2 7A
A7 C6 93 0F 0A 06 E6 2B 96 A3 1C AF 6A 12 84 39
E7 B0 82 F7 F.E. 9D 87 5C 81 35 DE B4 A5 FC 80 EF
CB BB 6B 76 BA 5A 7D 78 0B 95 E3 INZERÁT 74 98 3B 36
64 6D DC F0 59 A9 4C 17 7F 91 B8 C9 57 1B E0 61


Příklady hashů Kupyna

Hodnoty různých variant hash z prázdného řetězce.

Kupyna-256("") 0x cd5101d1ccdf0d1d1f4ada56e888cd724ca1a0838a3521e7131d4fb78d0f5eb6 Kupyna-512("") 0x 656b2f4cd71462388b64a37043ea55dbe445d452aecd46c3298343314ef04019 bcfa3f04265a9857f91be91fce197096187ceda78c9c1c021c294a0689198538

Malá změna ve zprávě pravděpodobně povede k velké změně hodnoty hash v důsledku lavinového efektu , jak ukazuje následující příklad:

Kupyna-256 („Rychlá hnědá liška skáče přes líného psa“) 0x 996899f2d7422ceaf552475036b2dc120607eff538abf2b8dff471a98a4740c6 Kupyna-256("Rychlá hnědá liška skáče přes líného psa.") 0x 88ea8ce988fe67eb83968cdc0f6f3ca693baa502612086c0dcec761a98e2fb1f


Poznámky

  1. http://csm.kiev.ua/index.php?view=article&id=3022 Archivní kopie ze dne 21. listopadu 2021 na Wayback Machine Na Ukrajině se zavádějí nové standardy ochrany kryptografických informací
  2. http://eprint.iacr.org/2015/885.pdf Archivováno 25. září 2015 na Wayback Machine Nový standard Ukrajiny: Funkce Kupyna Hash
  3. http://www.slideshare.net/oliynykov/kupyna Archivováno 25. září 2015 na Wayback Machine Hlavní vlastnosti nového ukrajinského národního standardu o kryptografické hašovací funkci
  4. Christoph Dobraunig, Maria Eichlseder a Florian Mendel. Analýza hashovací funkce Kupyna-256  (anglicky) (2015). Datum přístupu: 1. října 2015. Archivováno z originálu 4. března 2016.
  5. Jian Zou, Le Dong. Cryptanalysis of the Round-Reduced Kupyna Hash Function  (anglicky) (2015). Získáno 2. října 2015. Archivováno z originálu dne 4. března 2016.