SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
Криптографічний захист інформації
Функція ґешування
Р.В.Олійников; І.Д.Горбенко; О.В.Казимиров;
В.І.Руженцев; А.О. Бойко; О.О.Кузнєцов;
Ю.І.Горбенко; В.І.Долгов; О.В.Дирда; А.І.Пушкарьов;
Київ 2015
НАЦІОНАЛЬНИЙ СТАНДАРТ УКРАЇНИ
ДСТУ 7564:2014
Інформаційні технології
http://slideshare.net/oliynykov
ОСНОВНІ ВЛАСТИВОСТІ
Актуальність
наявність теоретичних атак для застарілого
міждержавного стандарту ґешування
ДСТУ ГОСТ 34.311:2009 (ГОСТ 34.311-95), його
обчислювальна неефективність на перспективних
платформах
довжина ґеш-значення 256 бітів вже недостатня для
деяких застосувань (моральна застарілість)
відмова інших країн від використання ГОСТ 34.311-95
(ГОСТ Р 34.11-94):
білоруський стандарт СТБ 34.101.31-2011 визначає в
т.ч. функцію ґешування
російський стандарт ГОСТ Р 34.11-2012 визначає нову
функцію ґешування (“Стрибог”)
Теоретичні вразливості
ДСТУ ГОСТ 34.311:2009
Складність криптоаналітичних атак менша ніж
переборних:
пошук прообразу зі складністю 2192
знаходження колізії зі складністю 2105
Криптоаналітичні атаки залишаються
теоретичними:
вимоги щодо обсягу пам’яті
перевищують 275
Функція ґешування SHA-2
гармонізована в Україні як міжнародний стандарт
(ДСТУ ISO/IEC 10118-3, ДСТУ ETSI TS 102 176-1)
забезпечує високий рівень швидкодії
відомі атаки ефективні лише проти версій з
обмеженою кількостю раундів (41 раунд з 64 для
SHA-256 та 46 раундів з 80 для SHA-512)
Функція ґешування SHA-3 (Keccak)
потенційна заміна SHA-2 у
майбутньому (у разі
необхідності)
експериментальна
конструкція (один з
мотивів при визначенні
фіналіста конкурса SHA3
– заохочення відкритих
досліджень)
Національний стандарт
України ДСТУ 7564:2014
функція ґешування “Купина” (можливість
вибору довжини ґеш-значення; наявність
стандартних рекомендованих параметрів)
додаток: нелінійні таблиці заміни (S-блоки)
додаток: приклади для перевірки,
включаючи повідомлення із довжиною, не
кратною розміру блоку і байту
додаток: режим застосування функції
ґешування для формування коду
автентифікації повідомлення (імітовставки)
Вимоги щодо перспективної функції
ґешування під час проектування (ч. І)
формування ґеш-значення довжиною 256, 384 і 512 біт
(підтримуються довжини від 8 біт до 512 біт з кроком 8 біт)
формування ґеш-значень для повідомлень від 0 біт (пусте
повідомлення) до 296-1 біт
обробка повідомлень довільної бітової довжини, не кратної
байту
підтримка додаткового режиму формування коду
автентифікації повідомлень (КАП)
консервативний підхід до розробки, використання лише
добре перевірених рішень
наявність запасу стійкості до криптоаналітичних атак
оптимізація для перспективних 64-бітових платформ
ефективна робота при 32-бітовій реалізації
швидкодія вища, ніж у ДСТУ ГОСТ 34.311:2009
Вимоги щодо перспективної функції
ґешування під час проектування (ч. ІІ)
Загальна конструкція функції
ґешування
Схема Меркля-Дамгорда
(конструкція відома з 1979 р., покладена у основу
більшості сучасних функцій ґешування )
Високорівнева конструкція функції
ґешування: Девіса-Мейєра
Багато розповсюджених та добре досліджених функцій
ґешування (включаючи SHA-2) побудовані саме на цій
конструкції
Схема Івена-Мансура для побудови доказово
стійкого блокового шифра та її застосування у
функції стиснення
P,Q – псевдовипадкові
підстановки
Q – схема розгортання
ключів блокового
шифру
“Купина”: побудова функції
стиснення
конструкція Девіса-
Мейєра у складі схеми
Меркля-Дамгорда
блоковий шифр на основі
високорівневої конструкції
Івена-Мансура
“Купина”: псевдовипадкові
підстановки P,Q
основані на симетричному блоковому шифрі
“Калина”, визначеному в ДСТУ 7624:2014
відрізняються:
раундовими константами
різними операціями вводу раундових констант
(додавання mod 264, XOR)
Раундові константи у
перетвореннях P,Q
Константи для Q: оптимальна кількість переносів між байтами стану
Використання перетворень блокового
шифру «Калина» (визначеного в
ДСТУ 7624:2014)
забезпечення високого і надвисокого рівня
криптографічної стійкості
висока швидкість криптографічних
перетворень
компактна реалізация
Rijndael-подібна структура, що забезпечує
властивості псевдовипадкової підстановки
навіть при постійних раундових ключах (або
при їх відсутности взагалі)
Властивості 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, “Стрибог/Кузнечик”, СТБ, та ін.)
Лінійне перетворення (МДВ-матриця,
спільна з шифром «Калина»)
максимальний індекс галуження (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
Завершальне перетворення
захист від атаки збільшення довжини повідомлення
Стійкість до
криптоаналітичних атак
25122256Збільшення довжини
25122256Фіксовані точки
25122256Другий прообраз
25122256Прообраз
22562128Колізія
Купина-512Купина-256Вид атаки
Атаки на основі усічених диференціалів, внутрішніх диференціалів,
«зміни напрямку» (rebound attack) не є ефективними вже для 4 циклів
перетворень P та Q (використовується 10 або 14 циклів)
Принципи проектування функції
ґешування «Купина»:
використання перевірених конструкцій (аналогічні
рішення серед алгоритмів-фіналістів SHA-3)
прозорість обраних рішень
захист від відомих методів криптографічного
аналізу, наявність достатнього запасу стійкості
орієнтація на перспективні програмні платформи
(64 біта), ефективність на існуючих (32 біта),
проста апаратна реалізація
стійкість – швидкість – компактність
Статистичні властивості функції
ґешування “Купина” (NIST STS)
Відповідність вимогам до псевдовипадкових послідовностей (NIST STS)
Швидкодія функції ґешування “Купина”
(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 р.)
Швидкодія функції ґешування “Купина”
(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
Швидкодія функції ґешування “Купина”
(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
Розмір блоку, що обробляєтьсяФункція
ґешування
Швидкодія функції ґешування “Купина”
(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
Швидкодія функції ґешування “Купина”
(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
Розмір блоку, що обробляєтьсяФункція
ґешування
Швидкодія функції ґешування “Купина”
(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
Швидкодія функції ґешування “Купина”
(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
Розмір блоку, що обробляєтьсяФункція
ґешування
Швидкодія функції ґешування “Купина” (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
Функція ґешування “Купина”
забезпечує стійкість до відомих методів криптографічного
аналізу і має достатній запас стійкості
ґрунтується на перевірених конструкціях та прозорих
рішеннях
вихідні послідовності відповідають вимогам до
псевдовипадкових послідовностей (NIST STS)
забезпечує високий рівень швидкодії, продуктивніша за
ДСТУ ГОСТ 34.311:2009 та ГОСТ Р 34.11-13 («Стрибог»)
на 64-бітових та 32-бітових платформах
ефективність реалізації систем криптографічного захисту:
основні елементи спільні для національних стандартів
ґешування і шифрування (блокового перетворення)
Походження назви
Рослина: купина лікарська
(поширена по всій Україні, росте в хвойних і мішаних
лісах, занесена до Червоної книги України)

Más contenido relacionado

La actualidad más candente

OpenCVを用いた画像処理入門
OpenCVを用いた画像処理入門OpenCVを用いた画像処理入門
OpenCVを用いた画像処理入門uranishi
 
오픈소스 GIS의 이해 - OSgeo Projects 중심
오픈소스 GIS의 이해 - OSgeo Projects 중심오픈소스 GIS의 이해 - OSgeo Projects 중심
오픈소스 GIS의 이해 - OSgeo Projects 중심MinPa Lee
 
What's New in the Elastic 8.5 Release
What's New in the Elastic 8.5 ReleaseWhat's New in the Elastic 8.5 Release
What's New in the Elastic 8.5 ReleaseShotaro Suzuki
 
Sw技術者に送るfpga入門
Sw技術者に送るfpga入門Sw技術者に送るfpga入門
Sw技術者に送るfpga入門直久 住川
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例Fixstars Corporation
 
1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門NVIDIA Japan
 
Standardizing the tee with global platform and RISC-V
Standardizing the tee with global platform and RISC-VStandardizing the tee with global platform and RISC-V
Standardizing the tee with global platform and RISC-VRISC-V International
 
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)Kuniyasu Suzaki
 
전자해도 표준과 뷰어 (최규성)
전자해도 표준과 뷰어 (최규성)전자해도 표준과 뷰어 (최규성)
전자해도 표준과 뷰어 (최규성)Kyu-sung Choi
 
How to Connect SystemVerilog with Octave
How to Connect SystemVerilog with OctaveHow to Connect SystemVerilog with Octave
How to Connect SystemVerilog with OctaveAmiq Consulting
 
Gps Navigation Survey
Gps Navigation SurveyGps Navigation Survey
Gps Navigation SurveyDaniel Kim
 
Hello, DirectCompute
Hello, DirectComputeHello, DirectCompute
Hello, DirectComputedasyprocta
 
ACPI Debugging from Linux Kernel
ACPI Debugging from Linux KernelACPI Debugging from Linux Kernel
ACPI Debugging from Linux KernelSUSE Labs Taipei
 
Summary of linux kernel security protections
Summary of linux kernel security protectionsSummary of linux kernel security protections
Summary of linux kernel security protectionsShubham Dubey
 
「FPGA 開発入門:FPGA を用いたエッジ AI の高速化手法を学ぶ」
「FPGA 開発入門:FPGA を用いたエッジ AI の高速化手法を学ぶ」「FPGA 開発入門:FPGA を用いたエッジ AI の高速化手法を学ぶ」
「FPGA 開発入門:FPGA を用いたエッジ AI の高速化手法を学ぶ」直久 住川
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編Fixstars Corporation
 
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarrayRyosuke839
 

La actualidad más candente (20)

OpenCVを用いた画像処理入門
OpenCVを用いた画像処理入門OpenCVを用いた画像処理入門
OpenCVを用いた画像処理入門
 
오픈소스 GIS의 이해 - OSgeo Projects 중심
오픈소스 GIS의 이해 - OSgeo Projects 중심오픈소스 GIS의 이해 - OSgeo Projects 중심
오픈소스 GIS의 이해 - OSgeo Projects 중심
 
What's New in the Elastic 8.5 Release
What's New in the Elastic 8.5 ReleaseWhat's New in the Elastic 8.5 Release
What's New in the Elastic 8.5 Release
 
Interrupts on xv6
Interrupts on xv6Interrupts on xv6
Interrupts on xv6
 
Sw技術者に送るfpga入門
Sw技術者に送るfpga入門Sw技術者に送るfpga入門
Sw技術者に送るfpga入門
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
 
1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門
 
Standardizing the tee with global platform and RISC-V
Standardizing the tee with global platform and RISC-VStandardizing the tee with global platform and RISC-V
Standardizing the tee with global platform and RISC-V
 
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
 
전자해도 표준과 뷰어 (최규성)
전자해도 표준과 뷰어 (최규성)전자해도 표준과 뷰어 (최규성)
전자해도 표준과 뷰어 (최규성)
 
How to Connect SystemVerilog with Octave
How to Connect SystemVerilog with OctaveHow to Connect SystemVerilog with Octave
How to Connect SystemVerilog with Octave
 
Gps Navigation Survey
Gps Navigation SurveyGps Navigation Survey
Gps Navigation Survey
 
Hello, DirectCompute
Hello, DirectComputeHello, DirectCompute
Hello, DirectCompute
 
Play with UEFI
Play with UEFIPlay with UEFI
Play with UEFI
 
ACPI Debugging from Linux Kernel
ACPI Debugging from Linux KernelACPI Debugging from Linux Kernel
ACPI Debugging from Linux Kernel
 
Summary of linux kernel security protections
Summary of linux kernel security protectionsSummary of linux kernel security protections
Summary of linux kernel security protections
 
「FPGA 開発入門:FPGA を用いたエッジ AI の高速化手法を学ぶ」
「FPGA 開発入門:FPGA を用いたエッジ AI の高速化手法を学ぶ」「FPGA 開発入門:FPGA を用いたエッジ AI の高速化手法を学ぶ」
「FPGA 開発入門:FPGA を用いたエッジ AI の高速化手法を学ぶ」
 
CUDAメモ
CUDAメモCUDAメモ
CUDAメモ
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
 
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
 

Destacado

Cryptocurrency with central bank regulations: the RSCoin framework
Cryptocurrency with central bank regulations: the RSCoin frameworkCryptocurrency with central bank regulations: the RSCoin framework
Cryptocurrency with central bank regulations: the RSCoin frameworkRoman Oliynykov
 
Buffer overflow and other software vulnerabilities: theory and practice of pr...
Buffer overflow and other software vulnerabilities: theory and practice of pr...Buffer overflow and other software vulnerabilities: theory and practice of pr...
Buffer overflow and other software vulnerabilities: theory and practice of pr...Roman Oliynykov
 
Kalyna block cipher presentation in English
Kalyna block cipher presentation in EnglishKalyna block cipher presentation in English
Kalyna block cipher presentation in EnglishRoman Oliynykov
 
Next generation block ciphers
Next generation block ciphersNext generation block ciphers
Next generation block ciphersRoman Oliynykov
 
AES effecitve software implementation
AES effecitve software implementationAES effecitve software implementation
AES effecitve software implementationRoman Oliynykov
 
10 Event Technology Trends to Watch in 2016
10 Event Technology Trends to Watch in 201610 Event Technology Trends to Watch in 2016
10 Event Technology Trends to Watch in 2016Eventbrite UK
 
Block Ciphers Modes of Operation
Block Ciphers Modes of OperationBlock Ciphers Modes of Operation
Block Ciphers Modes of OperationRoman Oliynykov
 

Destacado (10)

Cryptocurrency with central bank regulations: the RSCoin framework
Cryptocurrency with central bank regulations: the RSCoin frameworkCryptocurrency with central bank regulations: the RSCoin framework
Cryptocurrency with central bank regulations: the RSCoin framework
 
Kalyna
KalynaKalyna
Kalyna
 
Software Security
Software SecuritySoftware Security
Software Security
 
Buffer overflow and other software vulnerabilities: theory and practice of pr...
Buffer overflow and other software vulnerabilities: theory and practice of pr...Buffer overflow and other software vulnerabilities: theory and practice of pr...
Buffer overflow and other software vulnerabilities: theory and practice of pr...
 
Kalyna block cipher presentation in English
Kalyna block cipher presentation in EnglishKalyna block cipher presentation in English
Kalyna block cipher presentation in English
 
Next generation block ciphers
Next generation block ciphersNext generation block ciphers
Next generation block ciphers
 
AES effecitve software implementation
AES effecitve software implementationAES effecitve software implementation
AES effecitve software implementation
 
Software security
Software securitySoftware security
Software security
 
10 Event Technology Trends to Watch in 2016
10 Event Technology Trends to Watch in 201610 Event Technology Trends to Watch in 2016
10 Event Technology Trends to Watch in 2016
 
Block Ciphers Modes of Operation
Block Ciphers Modes of OperationBlock Ciphers Modes of Operation
Block Ciphers Modes of Operation
 

Similar a Kupyna

Изучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded SystemИзучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded Systemitconnect2016
 
Розробка концепції багаторівневої селективної обробки даних для багатомашинно...
Розробка концепції багаторівневої селективної обробки даних для багатомашинно...Розробка концепції багаторівневої селективної обробки даних для багатомашинно...
Розробка концепції багаторівневої селективної обробки даних для багатомашинно...SSCoding Group
 
Розробка концепції багаторівневої селективної обробки даних для багатомашинно...
Розробка концепції багаторівневої селективної обробки даних для багатомашинно...Розробка концепції багаторівневої селективної обробки даних для багатомашинно...
Розробка концепції багаторівневої селективної обробки даних для багатомашинно...SSCoding Group
 
Презентація на конференції в Славутичі 2016 INUDECO'16
Презентація на конференції в Славутичі 2016 INUDECO'16Презентація на конференції в Славутичі 2016 INUDECO'16
Презентація на конференції в Славутичі 2016 INUDECO'16Пупена Александр
 
Концепція розробки програмного забезпечення для програмованих логічних контро...
Концепція розробки програмного забезпечення для програмованих логічних контро...Концепція розробки програмного забезпечення для програмованих логічних контро...
Концепція розробки програмного забезпечення для програмованих логічних контро...Пупена Александр
 
Lopit i.i. (10.04.2012)
Lopit i.i. (10.04.2012)Lopit i.i. (10.04.2012)
Lopit i.i. (10.04.2012)garasym
 
Анімовані компоненти та навігація
Анімовані компоненти та навігаціяАнімовані компоненти та навігація
Анімовані компоненти та навігаціяПупена Александр
 
"Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk
"Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk "Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk
"Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk Fwdays
 
Rublyov a
Rublyov aRublyov a
Rublyov agarasym
 

Similar a Kupyna (9)

Изучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded SystemИзучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded System
 
Розробка концепції багаторівневої селективної обробки даних для багатомашинно...
Розробка концепції багаторівневої селективної обробки даних для багатомашинно...Розробка концепції багаторівневої селективної обробки даних для багатомашинно...
Розробка концепції багаторівневої селективної обробки даних для багатомашинно...
 
Розробка концепції багаторівневої селективної обробки даних для багатомашинно...
Розробка концепції багаторівневої селективної обробки даних для багатомашинно...Розробка концепції багаторівневої селективної обробки даних для багатомашинно...
Розробка концепції багаторівневої селективної обробки даних для багатомашинно...
 
Презентація на конференції в Славутичі 2016 INUDECO'16
Презентація на конференції в Славутичі 2016 INUDECO'16Презентація на конференції в Славутичі 2016 INUDECO'16
Презентація на конференції в Славутичі 2016 INUDECO'16
 
Концепція розробки програмного забезпечення для програмованих логічних контро...
Концепція розробки програмного забезпечення для програмованих логічних контро...Концепція розробки програмного забезпечення для програмованих логічних контро...
Концепція розробки програмного забезпечення для програмованих логічних контро...
 
Lopit i.i. (10.04.2012)
Lopit i.i. (10.04.2012)Lopit i.i. (10.04.2012)
Lopit i.i. (10.04.2012)
 
Анімовані компоненти та навігація
Анімовані компоненти та навігаціяАнімовані компоненти та навігація
Анімовані компоненти та навігація
 
"Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk
"Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk "Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk
"Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk
 
Rublyov a
Rublyov aRublyov a
Rublyov a
 

Kupyna

  • 1. Криптографічний захист інформації Функція ґешування Р.В.Олійников; І.Д.Горбенко; О.В.Казимиров; В.І.Руженцев; А.О. Бойко; О.О.Кузнєцов; Ю.І.Горбенко; В.І.Долгов; О.В.Дирда; А.І.Пушкарьов; Київ 2015 НАЦІОНАЛЬНИЙ СТАНДАРТ УКРАЇНИ ДСТУ 7564:2014 Інформаційні технології http://slideshare.net/oliynykov ОСНОВНІ ВЛАСТИВОСТІ
  • 2. Актуальність наявність теоретичних атак для застарілого міждержавного стандарту ґешування ДСТУ ГОСТ 34.311:2009 (ГОСТ 34.311-95), його обчислювальна неефективність на перспективних платформах довжина ґеш-значення 256 бітів вже недостатня для деяких застосувань (моральна застарілість) відмова інших країн від використання ГОСТ 34.311-95 (ГОСТ Р 34.11-94): білоруський стандарт СТБ 34.101.31-2011 визначає в т.ч. функцію ґешування російський стандарт ГОСТ Р 34.11-2012 визначає нову функцію ґешування (“Стрибог”)
  • 3. Теоретичні вразливості ДСТУ ГОСТ 34.311:2009 Складність криптоаналітичних атак менша ніж переборних: пошук прообразу зі складністю 2192 знаходження колізії зі складністю 2105 Криптоаналітичні атаки залишаються теоретичними: вимоги щодо обсягу пам’яті перевищують 275
  • 4. Функція ґешування SHA-2 гармонізована в Україні як міжнародний стандарт (ДСТУ ISO/IEC 10118-3, ДСТУ ETSI TS 102 176-1) забезпечує високий рівень швидкодії відомі атаки ефективні лише проти версій з обмеженою кількостю раундів (41 раунд з 64 для SHA-256 та 46 раундів з 80 для SHA-512)
  • 5. Функція ґешування SHA-3 (Keccak) потенційна заміна SHA-2 у майбутньому (у разі необхідності) експериментальна конструкція (один з мотивів при визначенні фіналіста конкурса SHA3 – заохочення відкритих досліджень)
  • 6. Національний стандарт України ДСТУ 7564:2014 функція ґешування “Купина” (можливість вибору довжини ґеш-значення; наявність стандартних рекомендованих параметрів) додаток: нелінійні таблиці заміни (S-блоки) додаток: приклади для перевірки, включаючи повідомлення із довжиною, не кратною розміру блоку і байту додаток: режим застосування функції ґешування для формування коду автентифікації повідомлення (імітовставки)
  • 7. Вимоги щодо перспективної функції ґешування під час проектування (ч. І) формування ґеш-значення довжиною 256, 384 і 512 біт (підтримуються довжини від 8 біт до 512 біт з кроком 8 біт) формування ґеш-значень для повідомлень від 0 біт (пусте повідомлення) до 296-1 біт обробка повідомлень довільної бітової довжини, не кратної байту підтримка додаткового режиму формування коду автентифікації повідомлень (КАП)
  • 8. консервативний підхід до розробки, використання лише добре перевірених рішень наявність запасу стійкості до криптоаналітичних атак оптимізація для перспективних 64-бітових платформ ефективна робота при 32-бітовій реалізації швидкодія вища, ніж у ДСТУ ГОСТ 34.311:2009 Вимоги щодо перспективної функції ґешування під час проектування (ч. ІІ)
  • 9. Загальна конструкція функції ґешування Схема Меркля-Дамгорда (конструкція відома з 1979 р., покладена у основу більшості сучасних функцій ґешування )
  • 10. Високорівнева конструкція функції ґешування: Девіса-Мейєра Багато розповсюджених та добре досліджених функцій ґешування (включаючи SHA-2) побудовані саме на цій конструкції
  • 11. Схема Івена-Мансура для побудови доказово стійкого блокового шифра та її застосування у функції стиснення P,Q – псевдовипадкові підстановки Q – схема розгортання ключів блокового шифру
  • 12. “Купина”: побудова функції стиснення конструкція Девіса- Мейєра у складі схеми Меркля-Дамгорда блоковий шифр на основі високорівневої конструкції Івена-Мансура
  • 13. “Купина”: псевдовипадкові підстановки P,Q основані на симетричному блоковому шифрі “Калина”, визначеному в ДСТУ 7624:2014 відрізняються: раундовими константами різними операціями вводу раундових констант (додавання mod 264, XOR)
  • 14. Раундові константи у перетвореннях P,Q Константи для Q: оптимальна кількість переносів між байтами стану
  • 15. Використання перетворень блокового шифру «Калина» (визначеного в ДСТУ 7624:2014) забезпечення високого і надвисокого рівня криптографічної стійкості висока швидкість криптографічних перетворень компактна реалізация Rijndael-подібна структура, що забезпечує властивості псевдовипадкової підстановки навіть при постійних раундових ключах (або при їх відсутности взагалі)
  • 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. Лінійне перетворення (МДВ-матриця, спільна з шифром «Калина») максимальний індекс галуження (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. Завершальне перетворення захист від атаки збільшення довжини повідомлення
  • 19. Стійкість до криптоаналітичних атак 25122256Збільшення довжини 25122256Фіксовані точки 25122256Другий прообраз 25122256Прообраз 22562128Колізія Купина-512Купина-256Вид атаки Атаки на основі усічених диференціалів, внутрішніх диференціалів, «зміни напрямку» (rebound attack) не є ефективними вже для 4 циклів перетворень P та Q (використовується 10 або 14 циклів)
  • 20. Принципи проектування функції ґешування «Купина»: використання перевірених конструкцій (аналогічні рішення серед алгоритмів-фіналістів SHA-3) прозорість обраних рішень захист від відомих методів криптографічного аналізу, наявність достатнього запасу стійкості орієнтація на перспективні програмні платформи (64 біта), ефективність на існуючих (32 біта), проста апаратна реалізація стійкість – швидкість – компактність
  • 21. Статистичні властивості функції ґешування “Купина” (NIST STS) Відповідність вимогам до псевдовипадкових послідовностей (NIST STS)
  • 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. Швидкодія функції ґешування “Купина” (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. Швидкодія функції ґешування “Купина” (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. Швидкодія функції ґешування “Купина” (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. Швидкодія функції ґешування “Купина” (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. Швидкодія функції ґешування “Купина” (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. Швидкодія функції ґешування “Купина” (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. Швидкодія функції ґешування “Купина” (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. Функція ґешування “Купина” забезпечує стійкість до відомих методів криптографічного аналізу і має достатній запас стійкості ґрунтується на перевірених конструкціях та прозорих рішеннях вихідні послідовності відповідають вимогам до псевдовипадкових послідовностей (NIST STS) забезпечує високий рівень швидкодії, продуктивніша за ДСТУ ГОСТ 34.311:2009 та ГОСТ Р 34.11-13 («Стрибог») на 64-бітових та 32-бітових платформах ефективність реалізації систем криптографічного захисту: основні елементи спільні для національних стандартів ґешування і шифрування (блокового перетворення)
  • 31. Походження назви Рослина: купина лікарська (поширена по всій Україні, росте в хвойних і мішаних лісах, занесена до Червоної книги України)