Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Kupyna

2,037 views

Published on

Main properties of the new Ukrainian national standard on cryptographic hash function (named Kupyna).
Language: Ukrainian

Published in: Internet
  • Be the first to comment

Kupyna

  1. 1. Криптографічний захист інформації Функція ґешування Р.В.Олійников; І.Д.Горбенко; О.В.Казимиров; В.І.Руженцев; А.О. Бойко; О.О.Кузнєцов; Ю.І.Горбенко; В.І.Долгов; О.В.Дирда; А.І.Пушкарьов; Київ 2015 НАЦІОНАЛЬНИЙ СТАНДАРТ УКРАЇНИ ДСТУ 7564:2014 Інформаційні технології http://slideshare.net/oliynykov ОСНОВНІ ВЛАСТИВОСТІ
  2. 2. Актуальність наявність теоретичних атак для застарілого міждержавного стандарту ґешування ДСТУ ГОСТ 34.311:2009 (ГОСТ 34.311-95), його обчислювальна неефективність на перспективних платформах довжина ґеш-значення 256 бітів вже недостатня для деяких застосувань (моральна застарілість) відмова інших країн від використання ГОСТ 34.311-95 (ГОСТ Р 34.11-94): білоруський стандарт СТБ 34.101.31-2011 визначає в т.ч. функцію ґешування російський стандарт ГОСТ Р 34.11-2012 визначає нову функцію ґешування (“Стрибог”)
  3. 3. Теоретичні вразливості ДСТУ ГОСТ 34.311:2009 Складність криптоаналітичних атак менша ніж переборних: пошук прообразу зі складністю 2192 знаходження колізії зі складністю 2105 Криптоаналітичні атаки залишаються теоретичними: вимоги щодо обсягу пам’яті перевищують 275
  4. 4. Функція ґешування SHA-2 гармонізована в Україні як міжнародний стандарт (ДСТУ ISO/IEC 10118-3, ДСТУ ETSI TS 102 176-1) забезпечує високий рівень швидкодії відомі атаки ефективні лише проти версій з обмеженою кількостю раундів (41 раунд з 64 для SHA-256 та 46 раундів з 80 для SHA-512)
  5. 5. Функція ґешування SHA-3 (Keccak) потенційна заміна SHA-2 у майбутньому (у разі необхідності) експериментальна конструкція (один з мотивів при визначенні фіналіста конкурса SHA3 – заохочення відкритих досліджень)
  6. 6. Національний стандарт України ДСТУ 7564:2014 функція ґешування “Купина” (можливість вибору довжини ґеш-значення; наявність стандартних рекомендованих параметрів) додаток: нелінійні таблиці заміни (S-блоки) додаток: приклади для перевірки, включаючи повідомлення із довжиною, не кратною розміру блоку і байту додаток: режим застосування функції ґешування для формування коду автентифікації повідомлення (імітовставки)
  7. 7. Вимоги щодо перспективної функції ґешування під час проектування (ч. І) формування ґеш-значення довжиною 256, 384 і 512 біт (підтримуються довжини від 8 біт до 512 біт з кроком 8 біт) формування ґеш-значень для повідомлень від 0 біт (пусте повідомлення) до 296-1 біт обробка повідомлень довільної бітової довжини, не кратної байту підтримка додаткового режиму формування коду автентифікації повідомлень (КАП)
  8. 8. консервативний підхід до розробки, використання лише добре перевірених рішень наявність запасу стійкості до криптоаналітичних атак оптимізація для перспективних 64-бітових платформ ефективна робота при 32-бітовій реалізації швидкодія вища, ніж у ДСТУ ГОСТ 34.311:2009 Вимоги щодо перспективної функції ґешування під час проектування (ч. ІІ)
  9. 9. Загальна конструкція функції ґешування Схема Меркля-Дамгорда (конструкція відома з 1979 р., покладена у основу більшості сучасних функцій ґешування )
  10. 10. Високорівнева конструкція функції ґешування: Девіса-Мейєра Багато розповсюджених та добре досліджених функцій ґешування (включаючи SHA-2) побудовані саме на цій конструкції
  11. 11. Схема Івена-Мансура для побудови доказово стійкого блокового шифра та її застосування у функції стиснення P,Q – псевдовипадкові підстановки Q – схема розгортання ключів блокового шифру
  12. 12. “Купина”: побудова функції стиснення конструкція Девіса- Мейєра у складі схеми Меркля-Дамгорда блоковий шифр на основі високорівневої конструкції Івена-Мансура
  13. 13. “Купина”: псевдовипадкові підстановки P,Q основані на симетричному блоковому шифрі “Калина”, визначеному в ДСТУ 7624:2014 відрізняються: раундовими константами різними операціями вводу раундових констант (додавання mod 264, XOR)
  14. 14. Раундові константи у перетвореннях P,Q Константи для Q: оптимальна кількість переносів між байтами стану
  15. 15. Використання перетворень блокового шифру «Калина» (визначеного в ДСТУ 7624:2014) забезпечення високого і надвисокого рівня криптографічної стійкості висока швидкість криптографічних перетворень компактна реалізация Rijndael-подібна структура, що забезпечує властивості псевдовипадкової підстановки навіть при постійних раундових ключах (або при їх відсутности взагалі)
  16. 16. Властивості S-блоків (4 різні, спільні з шифром «Калина») Characteristics of Boolean functions: Balanced = True Nonlinearity = 104 Degree = 7 SAC = False Characteristics of substitution: Is bijection = True Maximum of diff table = 8 Maximum of lin table = 26 Cycles = {5 циклів або 6 циклів, мінімальна довжина від 9 до 12 в залежності від підстановки} Algebraic immunity : degree=3 equations=441 Найкращій показник нелінійності для S-блоків, що можуть бути описані системою виключно 3-го степеня (краще, ніж в Сrypton, Safer+, Skipjack, SNOW, Twofish, Whirlpool, СS, Anubis, “Стрибог/Кузнечик”, СТБ, та ін.)
  17. 17. Лінійне перетворення (МДВ-матриця, спільна з шифром «Калина») максимальний індекс галуження (Bn=9 ) ефективна програмна и програмно-апаратна реалізація                         ⋅⊕⋅⊕⋅⊕⋅⊕⋅⊕⋅⊕⋅⊕⋅ ⋅⊕⋅⊕⋅⊕⋅⊕⋅⊕⋅⊕⋅⊕⋅ ⋅⊕⋅⊕⋅⊕⋅⊕⋅⊕⋅⊕⋅⊕⋅ ⋅⊕⋅⊕⋅⊕⋅⊕⋅⊕⋅⊕⋅⊕⋅ ⋅⊕⋅⊕⋅⊕⋅⊕⋅⊕⋅⊕⋅⊕⋅ ⋅⊕⋅⊕⋅⊕⋅⊕⋅⊕⋅⊕⋅⊕⋅ ⋅⊕⋅⊕⋅⊕⋅⊕⋅⊕⋅⊕⋅⊕⋅ ⋅⊕⋅⊕⋅⊕⋅⊕⋅⊕⋅⊕⋅⊕⋅ =                           76543210 76543210 76543210 76543210 76543210 76543210 76543210 76543210 7 6 5 4 3 2 1 0 0104070608010501 0101040706080105 0501010407060801 0105010104070608 0801050101040706 0608010501010407 0706080105010104 0407060801050101 aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa b b b b b b b b
  18. 18. Завершальне перетворення захист від атаки збільшення довжини повідомлення
  19. 19. Стійкість до криптоаналітичних атак 25122256Збільшення довжини 25122256Фіксовані точки 25122256Другий прообраз 25122256Прообраз 22562128Колізія Купина-512Купина-256Вид атаки Атаки на основі усічених диференціалів, внутрішніх диференціалів, «зміни напрямку» (rebound attack) не є ефективними вже для 4 циклів перетворень P та Q (використовується 10 або 14 циклів)
  20. 20. Принципи проектування функції ґешування «Купина»: використання перевірених конструкцій (аналогічні рішення серед алгоритмів-фіналістів SHA-3) прозорість обраних рішень захист від відомих методів криптографічного аналізу, наявність достатнього запасу стійкості орієнтація на перспективні програмні платформи (64 біта), ефективність на існуючих (32 біта), проста апаратна реалізація стійкість – швидкість – компактність
  21. 21. Статистичні властивості функції ґешування “Купина” (NIST STS) Відповідність вимогам до псевдовипадкових послідовностей (NIST STS)
  22. 22. Швидкодія функції ґешування “Купина” (Linux, 64 біта), Мбіт/с 1995.87771921.1097846.5142425.6768105.593513.2705SHA3-512 2546.75082434.2331861.3900430.6540107.531713.4418SHA3-256 1751.71681699.2065853.7648426.7106106.531113.3027SHA2-512 1213.77681193.6766598.1311582.1411145.323318.1766SHA2-256 343.2474336.6720153.215298.599624.71273.1070GOST 34.311-95 371.3182356.2702100.419967.433916.84042.1136Stribog (256,512) 415.3906393.1851113.858556.977114.21491.7897Groestl-512 691.6352664.9972198.0558121.847229.89653.7825Groestl-256 506.0145484.2588176.916388.204122.06112.7493Kupyna-512 778.3093755.2504255.7291239.726459.89767.4839Kupyna-256 4096 bytes2048 bytes64 bytes32 bytes8 bytes1 byte Розмір блоку, що обробляєтьсяФункція ґешування Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz, GNU/Linux gcc останньої версії (2012 р.)
  23. 23. Швидкодія функції ґешування “Купина” (Linux, 64 біта), Мбіт/с Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz, GNU/Linux gcc останньої версії (2012 р.) 0 100 200 300 400 500 600 700 800 Мбіт/с Швидкодія Швидкодія ґеш-функції на 64-бітовій платформі (GNU/Linux) Ряд1 778,3093 506,0145 343,2474 371,3182 691,6352 415,3906 Kupyna- 256 Kupyna- 512 GOST 34.311- Stribog (256,512) Groestl- 256 Groestl- 512
  24. 24. Швидкодія функції ґешування “Купина” (Linux, 32 біта), Мбіт/с Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz, GNU/Linux gcc останньої версії (2012 р.) 237.4684229.3933109.083454.718313.66871.7078SHA3-512 349.6356335.1056129.995364.719016.17262.0136SHA3-256 460.5604446.6852231.1188115.858728.99063.6229SHA2-512 1180.27601160.6899570.8548549.9312137.956617.1522SHA2-256 330.1143323.5602147.152894.428823.72962.9687GOST 34.311-95 250.2085239.668567.428145.311111.38521.4240Stribog (256,512) 180.8638171.967856.610728.26977.06870.8826Groestl-512 183.1670178.832770.747356.773014.52961.8052Groestl-256 276.6373264.629695.192847.587311.90411.4866Kupyna-512 346.1454334.7128112.3242120.655030.15383.7725Kupyna-256 4096 bytes2048 bytes64 bytes32 bytes8 bytes1 byte Розмір блоку, що обробляєтьсяФункція ґешування
  25. 25. Швидкодія функції ґешування “Купина” (Linux, 32 біта), Мбіт/с Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz, GNU/Linux gcc останньої версії (2012 р.) 0 50 100 150 200 250 300 350 Мбіт/с Швидкодія Швидкодія ґеш-функції на 32-бітовій платформі (GNU/Linux) Ряд1 346,1454 276,6373 330,1143 250,2085 183,167 180,8638 Kupyna- 256 Kupyna- 512 GOST 34.311- Stribog (256,512) Groestl- 256 Groestl- 512
  26. 26. Швидкодія функції ґешування “Купина” (Windows, 64 біта), Мбіт/с Intel Core i5-2300 2,8 ГГц; Windows Server 2008 R2 x64; Microsoft Visual Studio 2010/Visual C++ 1494.60881442.2018670.4617332.092583.807710.5050SHA3-512 1865.21231783.6379671.0126337.602783.645610.4968SHA3-256 1549.75051499.7867738.1971372.159293.136011.7292SHA2-512 1123.51221105.4231547.9792525.4211132.215716.4943SHA2-256 315.8514309.0954133.305885.335821.35312.6846GOST 34.311-95 316.0483293.859983.561556.011014.12971.7691Stribog (256,512) 465.3006433.9076104.357352.199913.03511.6242Groestl-512 707.8276704.3535153.426899.164924.48783.0401Groestl-256 483.6045462.5867164.282182.809120.72262.5807Kupyna-512 711.6397695.1105281.2595228.829857.15597.1643Kupyna-256 4096 bytes2048 bytes64 bytes32 bytes8 bytes1 byte Розмір блоку, що обробляєтьсяФункція ґешування
  27. 27. Швидкодія функції ґешування “Купина” (Windows, 64 біта), Мбіт/с Intel Core i5-2300 2,8 ГГц; Windows Server 2008 R2 x64; Microsoft Visual Studio 2010/Visual C++ 0 100 200 300 400 500 600 700 800 Мбіт/с Швидкодія Швидкодія ґеш-функцій для 64-бітової реалізації (Windows Server 2008 R2) Ряд1 711,6397 483,6045 315,8514 316,0483 707,8276 465,3006 Kupyna- 256 Kupyna- 512 GOST 34.311- Stribog (256,512) Groestl- 256 Groestl- 512
  28. 28. Швидкодія функції ґешування “Купина” (Windows, 32 біта), Мбіт/с Intel Core i5-2300 2,8 ГГц; Windows Server 2008 R2 x64; Microsoft Visual Studio 2010/Visual C++ 217.1344209.9916101.689150.699012.70961.5782SHA3-512 268.9411258.3613101.644751.010812.71191.5863SHA3-256 589.6123571.1605283.1616141.956235.59324.4543SHA2-512 997.5488980.8201474.7652444.6520112.747614.1968SHA2-256 299.0621292.7297125.052579.399619.83792.4893GOST 34.311-95 144.4780139.085442.414029.43227.39590.9261Stribog (256,512) 278.0338260.077368.721534.32388.59421.0712Groestl-512 195.1246189.117966.745850.801112.76391.5974Groestl-256 285.0508272.530798.036949.141012.27171.5440Kupyna-512 387.4621378.7078155.2432126.800131.85473.9820Kupyna-256 4096 bytes2048 bytes64 bytes32 bytes8 bytes1 byte Розмір блоку, що обробляєтьсяФункція ґешування
  29. 29. Швидкодія функції ґешування “Купина” (Windows, 32 біта), Мбіт/с Intel Core i5-2300 2,8 ГГц; Windows Server 2008 R2 x64; Microsoft Visual Studio 2010/Visual C++ 0 50 100 150 200 250 300 350 400 Мбіт/с Швидкодія Швидкодія ґеш-функцій для 32-бітової реалізації (Windows Server 2008 R2) Ряд1 387,4621 285,0508 299,0621 144,478 195,1246 278,0338 Kupyna- 256 Kupyna- 512 GOST 34.311- Stribog (256,512) Groestl- 256 Groestl- 512
  30. 30. Функція ґешування “Купина” забезпечує стійкість до відомих методів криптографічного аналізу і має достатній запас стійкості ґрунтується на перевірених конструкціях та прозорих рішеннях вихідні послідовності відповідають вимогам до псевдовипадкових послідовностей (NIST STS) забезпечує високий рівень швидкодії, продуктивніша за ДСТУ ГОСТ 34.311:2009 та ГОСТ Р 34.11-13 («Стрибог») на 64-бітових та 32-бітових платформах ефективність реалізації систем криптографічного захисту: основні елементи спільні для національних стандартів ґешування і шифрування (блокового перетворення)
  31. 31. Походження назви Рослина: купина лікарська (поширена по всій Україні, росте в хвойних і мішаних лісах, занесена до Червоної книги України)

×