Калина (шифр)

«Калина» (англ. Kalyna)  блочний симетричний шифр описаний у національному стандарті України ДСТУ 7624:2014 «Інформаційні технології. Криптографічний захист інформації. Алгоритм симетричного блокового перетворення». Стандарт набрав чинності з 1 липня 2015 року наказом Мінекономрозвитку від 2 грудня 2014 року №1484.[2] Текст стандарту у вільному доступі [3].

Державний стандарт України
Калина (шифр)
Позначення ДСТУ 7624:2014
Назва Інформаційні технології. Криптографічний захист інформації. Алгоритм симетричного блокового перетворення
Інформаційні дані
Розробники Приватне акціонерне товариство «Інститут інформаційних технологій»
Внесено Мінекономрозвитку України
Введено в дію наказ від 29 грудня 2014 р. № 1484
Чинний від 1 липня 2015 року
Статус Чинний[1]
Останні зміни ІПС №1-03-2016
Пов'язані стандарти ДСТУ 7564:2014, ДСТУ 4145-2002, ДСТУ ГОСТ 28147:2009
Кількість сторінок 228
База нормативних документів

Стандарт ДСТУ 7624:2014 розроблено у співпраці Держспецзв'язку та провідних українських науковців і враховує досвід та результати проведення міжнародних і відкритого національного конкурсу криптографічних алгоритмів[4][5][6]. Він призначений для поступової заміни міждержавного стандарту ДСТУ ГОСТ 28147:2009[7].

Згідно чинного наказу Мінцифри від 30 вересня 2020 року №140/614[8] після 1 січня 2022 року разом з функцією гешування Купина є обов'язковим для використання при накладанні та перевірці електронного цифрового підпису за ДСТУ 4145-2002 замість криптографічного перетворення за ДСТУ ГОСТ 28147:2009.

Режими роботи та їх позначення

У стандарті описані наступні режими роботи криптографічного алгоритму, їх позначення та послуги безпеки, які забезпечує відповідний режим:

#Назва режимуПозначенняПоcлуга безпеки
1Проста заміна (базове перетворення)ЕСВКонфіденційність
2ГамуванняCTRКонфіденційність
3Гамування зі зворотним зв'язком за шифротекстомCFBКонфіденційність
4Вироблення імітовставкиСМАСЦілісність
5Зчеплення шифроблоківCBCКонфіденційність
6Гамування зі зворотним зв'язком за шифрогамоюOFBКонфіденційність
7Вибіркове гамування із прискореним виробленням імітовставкиGCM, GMACКонфіденційність і цілісність (GCM), тільки цілісність (GMAC)
8Вироблення імітовставки і гамуванняCCMЦілісність і конфіденційність
9Індексована замінаXTSКонфіденційність
10Захист ключових данихKWКонфіденційність і цілісність

Режим роботи криптографічного алгоритму, позначають так: «Калина-I/k-позначення режиму-параметри режиму» (для деяких режимів параметрів немає), де I - розмір блока базового перетворення, k - довжина ключа. Наприклад, «Калина-256/512-ССМ-32,128» визначає використання базового перетворення з роз­міром блока 256 бітів, довжиною ключа 512 бітів, застосування у режимі вироблення імітовставки і гамування, довжина конфіденційної (та відкритої) частини повідомлення завжди менше ніж 232 байтів, довжина імітовставки дорівнює 128 бітів. Режим простої заміни збігається з базовим перетворенням, тому крім позначення «Калина-I/k-ЕСВ» можна використовувати позначення «Калина-I/k».

Алгоритм

Стан шифру

Стан шифру описується матрицею 8 x елементів скінченного розширеного двійкового поля , сформованого незвідним поліномом . Кількість раундів та кількість рядків у матриці стану наведені у таблиці: [9]

# Розмір блоку (I) Розмір ключа (k) Кількість раундів (v) Рядків у матриці стану (с)
1 128 128 10 2
2 256 14
3 256 256 14 4
4 512 18
5 512 512 18 8

Зашифрування

Перетворення зашифрування описується як

Перетворення η(Kv)

Перетворення  — це додавання до матриці стану раундового ключа за модулем . При додаванні використовується порядок little endian.

Перетворення πl'

Перетворення  — це заміна байтів у матриці стану

Підстановка π0

A8435F066B756C5971DF879517F0D809
6DF31DCBC94D2CAF79E097FD6F4B4539
3EDDA34FB4B69A0E1FBF15E149D293C6
92729E61D163FAEEF419D5AD58A4BBA1
DCF2833742E47A329CCCAB4A8F6E0427
2EE7E25A9616232BC265660FBCA94741
3448FCB76A88A55386F95BDB387BC31E
2233242836C7B23B8E77BAF5149F0855
9B4CFE605CDA1846CD7D21B03F1B89FF
EB84693A9DD7D3706740B5DE5D3091B1
781101E5006898A0C502A6742D0BA276
B3BECEBDAEE98A311CECF19994AAF626
2FEFE88C3503D47FFB05C15E90203D82
F7EA0A0D7EF8501AC40757B83C62E3C8
AC526410D0D9130C122951B9CFD6738D
8154C0ED4E44A72A8525E6CA7C8B5680

Підстановка π1

CEBBEB92EACB13C1E93AD6B2D29017F8
421556B4651C8843C55C36BAF557678D
31F664589EF422AA750F02B1DF6D734D
7C262EF7085D443E9F14C8AE5410D8BC
1A6B69F3BD33ABFAD19B684E169591EE
4C638E5BCC3C19A181497BD96F3760CA
E72B48FD9645FC41120D79E5898CE320
30DCB76C4AB53F97D4622D06A4A5835F
2ADAC9007EA255BF11D59CCF0E0A3D51
7D931BFEC44709860B8F9D6A07B9B098
1832714BEF3B70A0E440FFC3A9E678F9
8B46801E38E1B8A8E00C23761D252405
F16E94289A84E8A34F77D385E252F282
507A2F7453B361AF3935DECD1F99ACAD
722CDDD087BE5EA6EC04C60334FBDB59
B6C201F05AEDA766217F8A27C7C029D7

Підстановка π2

93D99AB5982245FCBA6ADF029FDC5159
4A172BC294F4BBA362E471D4CD7016E1
493CC0D85C9BAD8553A17AC82DE0D172
A62CC4E37678B7B4093B0E414CDEB290
25A5D7031100C32E92EF4E129D7DCB35
10D54F9E4DA955C6D07B1897D336E648
56818F77CC9CB9E2ACB82F15A47CDA38
1E0B05D6146E6C7E66FDB1E560AF5E33
87C9F05D6D3F888DC7F71DE9ECED8029
27CF99A8500F3724283095D23E5B4083
B369571F071C8ABC20EBCE8EABEE31A2
73F9CA3A1AFB0DC1FEFAF26FBD96DD43
52B608F3AEBE19893226B0EA4B648482
6BF579BF015F75631B233D682A65E891
F6FF1358F1470A7FC5A7E7615A064644
4204A0DB398654AA8C34218BF80C7467

Підстановка π3

688DCA4D734B4E2AD45226B3541E191F
2203463D2D4A5383138AB7D52579F5BD
582F0D02ED519E11F23E555ED1163C66
705DF34540CCE8945608CE1A3AD2E1DF
B5386E0EE5F4F986E94FD68523CF3299
3114AEEEC848D330A19241B118C42C71
724415FD37BE5FAA9B88D8AB899CFA60
EABC620C24A6A8EC6720DB7C28DDAC5B
347E10F17B8F63A0059A437721BF2709
C39FB6D729C2EBC0A48B8C1DFBFFC1B2
972EF865F67507044933E4D9B9D042C7
6C90008E6F5001C5DA473FCD69A2E27A
A7C6930F0A06E62B96A31CAF6A128439
E7B082F7FE9D875C8135DEB4A5FC80EF
CBBB6B76BA5A7D780B95E3AD74983B36
646DDCF059A94C177F91B8C9571BE061

Стандартом передбачено можливість використання інших S-блоків у окремих застосуваннях, що є спільною рисою з алгоритмом шифрування, визначеним ДСТУ ГОСТ 28147:2009.

Перетворення τ

Перетворення  — це перестановка елементів у матриці (циклічний зсув вправо). matrix . Кількість зсунутих елементів залежить від номера рядка та розміру блоку . Кількість зсунутих елементів обчислюється за формулою .

Перетворення ψ

Перетворення  — це лінійне перетворення елементів матриці стану над скінченним полем

Перетворення κ(Kυ)

Перетворення  — це додавання до матриці стану раундового ключа за модулем 2, також відоме як побітове виключне «або» (XOR).

Розшифрування

Перетворення розшифрування описується як

Перетворення , , , є оберненими перетвореннями до перетворень , , , відповідно.

Розгортання ключів

Розгортання ключів відбувається у 2 етапи:

  • обчислення з ключа шифрування проміжного ключа ;
  • обчислення з проміжного ключа раундових ключів.

Проміжний ключ має той же розмір, що і блок даних 8 x .

Обчислення проміжного ключа виконується перетворенням .

Якщо розмір блока і розмір ключа шифрування однакові, то . Якщо ж розмір ключа шифрування вдвічі більший, ніж розмір блока, то .

Як аргумент для перетворення використовується l-бітне представлення значення виразу з порядком бітів little-endian.

Обчислення раундових ключів з парними індексами () виконується перетворенням .

Перетворення описані вище. Перетворення .

Вхідними даними для перетворення є значення , де  — ключ шифрування, якщо розмір ключа дорівнює розміру блока.

Якщо ж розмір ключа шифрування більший розміру блоку, то вхідними даними для перетворення є , для та , для

Обчислення раундових ключів з непарними індексами () виконується за формулою .

Принципи проектування

Шифр спроектовано на основі SP-мережі. Як лінійне перетворення використана MDS-матриця. Як нелінійні елементи використані чотири випадкові блоки підстановок. Використане пре- та пост- забілювання шляхом складання з раундовими ключами за модулем .

Використання

Kalyna-reference — код референсної реалізаціі на C

cppcrypto — Бібліотека з відкритим вихідним кодом на C++

cryptonite — бібліотека криптографічних перетворень від ПриватБанку з відкритим програмним кодом на C, має експертний висновок UA.14360570.00001-01 90 01-1 за результатами державної експертизи у галузі КЗІ

Криптостійкість

Було виявлено деякі атаки на скорочені варіанти шифру, але вони не є практичними[10][11][12].

Примітки

  1. ДСТУ 7624:2014 в Каталозі НД України
  2. Про прийняття нормативних документів України та пробних національних стандартів України, гармонізованих з міжнародними нормативними документами, міжнародного та європейських стандартів як національних стандартів України, затвердження національних стандартів України, скасування національних стандартів України та міждержавних стандартів в Україні
  3. Текст стандарту ДСТУ 7624:2014 на сайті Державного підприємства «Український науково-дослідний і навчальний центр проблем стандартизації, сертифікації та якості»
  4. Горбенко, I.Д.; Тоцький, О.С.; Казьмiна, С.В. (2007). Перспективний блоковий шифр “Калина” – основнi положення та специфiкацiя. Прикладна радiоелектронiка (укр.) (АН ПРЭ) 6 (2): С.195–208.
  5. Оголошення про проведення відкритого конкурсу симетричних блокових криптографічних алгоритмів
  6. Oliynykov, Roman; Gorbenko, Ivan; Dolgov, Viktor; Ruzhentsev, Victor (2010). Results of Ukrainian national public cryptographic competition. Tatra Mountains Mathematical Publications (англ.) (Sciendo) 47 (1): 99–113. doi:10.2478/v10127-010-0033-6.
  7. Держспецзв’язку впроваджує нові стандарти криптографічного захисту інформації
  8. Наказ № 140/614 від 30.09.2020 "Про встановлення вимог до технічних засобів, процесів їх створення, використання та функціонування у складі інформаційно-телекомунікаційних систем під час надання кваліфікованих електронних довірчих послуг". zakon.rada.gov.ua (укр.). Міністерство цифрової трансформації України. 30 вересня 2020. Процитовано 4 січня 2021.
  9. Oliynykov, Roman; Gorbenko, Ivan; Kazymyrov, Oleksandr; Ruzhentsev, Victor; Kuznetsov, Oleksandr; Gorbenko, Yurii; Dyrda, Oleksandr; Dolgov, Viktor; Pushkaryov, Andrii; Mordvinov, Ruslan; Kaidalov, Dmytro (2015). A New Encryption Standard of Ukraine: The Kalyna Block Cipher (PDF). IACR Cryptol (англ.). ePrint Archive.
  10. Chang, Akshima; Chang, Donghoon; Ghosh, Mohona; Goel, Aarushi; Sanadhya, Somitra Kumar (2015). Single Key Recovery Attacks on 9-round Kalyna-128/256 and Kalyna-256/512 (PDF). IACR Cryptol (англ.). ePrint Archive.
  11. AlTawy, Riham; Abdelkhalek, Riham; Youssef, Amr M. (2016). A Meet-in-the-Middle Attack on Reduced-Round Kalyna-b/2b (PDF). IEICE Transactions on Information and Systems (англ.). E99.D (4): 1246–1250. doi:10.1587/transinf.2015EDL8174.
  12. Lin, Li; Wu, Wenling (2016). Improved Meet-in-the-Middle Attacks on Reduced-Round Kalyna-128/256 and Kalyna-256/512 (PDF). IACR Cryptol (англ.). ePrint Archive.

Див. також

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.