ДСТУ ISO 10118-2:2003

ДСТУ ISO 10118-2:2003 Інформаційні технології. Методи захисту. Геш-функції. Частина 2. Геш-функції з використовуванням n-бітового блокового шифру

ПЕРЕДМОВА 1 ВНЕСЕНО: Технічний комітет зі стандартизації «Інформаційні технології» ТК 20 при Держ- споживстандарті України і Міжнародний науково-навчальний центр інформаційних технологій та систем НАН України та Міністерства освіти і науки України ПЕРЕКЛАД І НАУКОВО-ТЕХНІЧНЕ РЕДАГУВАННЯ: А. Анісімов д-р. фіз.-мат. наук керівник розробки ; Т. Кальчук; Є. Осадчий канд.техн.наук; В. Ткаченко; О. Фаль канд. фіз.-мат. наук 2 НАДАНО ЧИННОСТІ: наказ Держспоживстандарту №235 від 16 грудня 2003 р. з 2005-01-01 3 Національний стандарт відповідає ISO/IEC 10118-2:2000 Information technology Security techniques Hash-functions Part 2: Hash-functions using an n-bit block cipher Інформаційні тех нології. Методи захисту. Геш-функції. Частина 2. Геш-функції з використовуванням n-бітового бло кового шифру Ступінь відповідності ідентичний IDТ Переклад з англійської en 4 УВЕДЕНО ВПЕРШЕ ЗМІСТ Національний вступ 1 Сфера застосування 2 Нормативні посилання 3 Терміни та визначення понять 4 Познаки та скорочення 5 Використання загальної моделі 6 Геш-функція один 6.1 Вибирання параметрів 6.2 Метод заповнювання 6.3 Початкове значення 6.4 Раундова функція 6.5 Підсумкове перетворення 7 Геш-функція два 7.1 Вибирання параметрів 7.2 Метод заповнювання 7.3 Початкове значення 7.4 Раундова функція 7.5 Підсумкове перетворення 8 Геш-функція три 8.1 Загальний 8.2 Вибирання параметрів 8.3 Метод заповнювання 8.4 Початкове значення 8.5 Раундова функція 8.6 Підсумкове перетворення 9 Геш-функція чотири 9.1 Загальний 9.2 Вибирання параметрів 9.3 Метод заповнювання 9.4 Початкове значення 9.5 Раундова функція 9.6 Підсумкове перетворення Додаток А Використання алгоритму шифрування даних DEA . Додаток В Приклади Бібліографія НАЦІОНАЛЬНИЙ ВСТУП Цей стандарт є тотожний переклад ISO/IES 10118-2:2000 Information technology Security techniques Hash-functions Part 2: Hash-functions using an n-bit block cipher Інформаційні технології. Методи захисту. Геш-функції. Частина 2. Геш-функції з використовуванням n-бітового блокового шифру . У стандарті представлено геш-функції які використовують n-бітовий блоковий шифр наведено чотири геш-функції які відповідають загальній моделі описаній у ДСТУ ISO/IEC 10118-1:2003. Відповідальний за ISO/IEC 10118-2:2000 технічний комітет ISO/IEC JTC 1. В Україні відповідальний за цей стандарт Технічний комітет зі стандартизації «Інформаційні технології» ТК 20 . Стандарт ISO/IEC 10118 складається із чотирьох частин під загальною назвою Information technology Security techniques Hash-functions Інформаційні технології. Методи захисту. Геш-функції . Цей стандарт описує геш-функції і може бути застосований для реалізації послуг автен-тифікації цілісності та неспростовності. Частини стандарту ISO/IEC 10118 мають такі назви : Part 1: General Частина 1. Загальні положення ; Part 2: Hash-functions using an n-bit block cipher Частина 2. Геш-функції з використовуван ням n -бітового блокового шифру ; Part 3: Dedicated hash-functions Частина 3. Спеціалізовані геш-функції ; Part 4: Hash-functions using modular arithmetic Частина 4. Геш-функції з використовуванням модульної арифметики . У частині 1 подано загальну модель геш-функцій та описано геш-функцію яка перетворює довільні рядки бітів в рядки бітів фіксованої довжини і методи заповнювання використовувані для обчислювання геш-коду. Ця частина містить визначання познаки скорочення та вимоги спільні для інших частин ISO/IEC 10118. У частині 2 йдеться про геш-функції які базуються на використовуванні n-бітового блокового алгоритму шифрування. Означено чотири геш-функції які є сумісні із загальною моделлю поданою у ISO/IEC 10118-1. У частині 3 розглянуто спеціалізовані геш-функції. Геш-функції у цій частині ґрунтуються на ітераційному застосуванні раундової функції. Означено три різні раундові функції які використовуються цими спеціалізованими функціями. У частині 4 представлено дві геш-функції що використовують модульну арифметику. Ці геш-функції які вважаються стійкими до колізій стискають повідомлення довільної довжини до геш-коду довжину якого визначають через довжину простого числа використовуваного у раундовій функції. Міжнародна організація зі стандартизації ISO та Міжнародна електротехнічна комісія ІЕС звертають увагу на той факт що відповідність цій частині ISOMEC 10118 може містити використання патенту що стосується "Data Authentication Using Modification Detection Codes Based on a Public One Way Encryption Function" Патент США 4 908 861 виданий 1990-03-13 . ISO та ІЕС не займають жодної позиції стосовно доказу законності та сфери застосування права цього патенту. Власник права цього патенту запевнив ISO та ІЕС що він готовий вести переговори щодо ліцензій на прийнятних та недискримінаційних умовах з прохачами з усього світу. Стосовно цього в ISO та ІЕС зареєстрована заява власника права цього патенту. Довідку можна отримати від: Director of Licensing International Business Machnies Corporation 500 Columbus Avenue Thornwood NY 10594 U.S.A Треба зазначити що існує можливість того що деякі з елементів цієї частини ISO\IEC 10118 можуть бути предметом патентних прав відмінних від означених вище. ISO та ІЕС не несуть відповідальність за ідентифікацію будь-якого патентного права або всіх таких патентних прав. До стандарту внесено такі редакційні зміни: слова «ця частина ISO/ІЕС 10118» замінено на «цей стандарт»; до розділу 2 «Нормативні посилання» долучено «Національне пояснення» яке виділено рамкою; до «Національного вступу» з «Передмови» та «Вступу» узято те що безпосередньо сто сується цього стандарту; структурні елементи цього стандарту: «Обкладинку» «Передмову» «Національний вступ» «Бібліографічні дані» та «Терміни та визначення понять» оформлено згідно з вимогами національної стандартизації України; назву Message Authentication Codes MACs використовують в українському перекладі як Коди автентифікації повідомлення MACs ; додатки А і В є невід'ємною частиною цього стандарту. Необхідно взяти до уваги що в Україні чинний ДСТУ ISO/IEC 10118-1:2003 Інформаційні технології. Методи захисту. Геш-функції. Частина 1. Загальні положення. Копії міжнародних стандартів не чинних в Україні можна отримати у Головному фонді нормативних документів ДП «УкрНДНЦ». ДСТУ ISO/IEC 10118-2:2003 НАЦІОНАЛЬНИЙ СТАНДАРТ УКРАЇНИ Інформаційні технології Методи захисту. Геш-функції Частина 2. Геш-функції з використовуванням n-бітового блокового шифру ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ МЕТОДЫ ЗАЩИТЫ. ХЕШ-ФУНКЦИИ Часть 2. Хеш-функции с использованием n-битового блочного шифра INFORMATION TECHNOLOGY SECURITY TECHNIQUES. HASH-FUNCTION Part 2. Hash-functions using an n-bit block cipher Чинний від 2005-01-01 1 СФЕРА ЗАСТОСУВАННЯ Цей стандарт визначає геш-функції які використовують n-бітовий блоковий алгоритм шифрування. Отже вони придатні для середовища у якому такий алгоритм вже реалізовано. Означено чотири геш-функції. Перша функція надає геш-коди довжиною менші за n або рівні п де n довжина використовуваного блоку алгоритму. Друга функція надає геш-коди довжиною меншою за 2п або рівні 2п; третя функція надає геш-коди довжиною рівною 2п; і четверта функція надає геш-коди довжиною 3п. Усі чотири геш-функції подані у цьому стандарті відповідають загальній моделі наведеній в ISO/IEC 10118-1. 2 НОРМАТИВНІ ПОСИЛАННЯ Наведені нижче нормативні документи містять положення які через посилання в цьому тексті становлять положення цього стандарту. Для датованих посилань пізніші зміни до будь-якого з цих видань або перегляд їх не застосовують. Однак учасників угод базованих на цьому стандарті запрошують визначити можливість застосування найостанніших видань нормативних документів наведених нижче. Для недатованих посилань треба звертатися до найновішого видання нормативних документів. Члени ISO та ІЕС впорядковують каталоги чинних міжнародних стандартів. ISO/IEC 10116:1997 Information technology Security techniques Modes of operation for an n-bit block cipher ISO/IEC 10118-1:2000 Information technology Security techniques Hash-functions Part 1: General. НАЦІОНАЛЬНЕ ПОЯСНЕННЯ ISO/IEC 10116:1997 Інформаційні технології. Методи захисту. Режими функціювання n-бітовмх блокових шифрів ISO/IEC 10118-1:2000 Інформаційні технології. Методи захисту. Геш-функції. Частина 1. Загальні положення. 3 ТЕРМІНИ ТА ВИЗНАЧЕННЯ ПОНЯТЬ Усі терміни наведені в цьому стандарті а також терміни та визначення понять ISO/IEC 10118-1 призначені для застосовування в цьому стандарті. 3.1 n-бітовий блоковий шифр n-bit block cipher Блоковий шифр шифр блоки відкритих та зашифрованих текстів якого мають довжину n бітів див. ISO/IEC 10116 . 4 ПОЗНАКИ ТА СКОРОЧЕННЯ 5 ВИКОРИСТАННЯ ЗАГАЛЬНОЇ МОДЕЛІ Геш-функції які розглянуто в наступних чотирьох розділах надають геш-коди ? довжиною LH. Геш-функція відповідає загальній моделі наведеній в ISO/IEC 10118-1. Через це для кожної з поданих нижче чотирьох геш-функцій необхідно лише визначити: параметри L1 L2; метод заповнювання; початкове значення IV; раундову функцію ?; підсумкове перетворення Т. Застосування геш-функції яку визначають з використанням загальної моделі вимагає також вибирання параметра LH. 6 ГЕШ-ФУНКЦІЯ ОДИН 6.1 Вибирання параметрів Параметри Ц L2 LH геш-функції представленої у даному розділі мають відповідати умовам: L1 = L2 = п та LH менша або рівна п. 6.2 Метод заповнювання Вибирання методу заповнювання для використання у цій геш-функції є поза межами цього стандарту. Приклади методів заповнювання подано у додатку A ISO/IEC 10118-1. 6.3 Початкове значення Вибирання IV для використання у цій геш-функції є поза межами цього стандарту. Значення IV має бути узгоджене і зафіксоване користувачами геш-функції. 6.4 Раундова функція Раундова функція ? з'єднує блок заповнених даних Dj завдовжки L1 = n бітів з результатом попереднього застосування раундової функції Нj-1 завдовжки L2 = n бітів внаслідок чого отримуємо Нj. Як частину геш-функції слід вибрати функцію и яка перетворює n-бітовий блок у ключ для використання з блоковим алгоритмом е. Вибір функції и для використання у цій геш-функції є поза межами цього стандарту див. додаток А для настанови . Раундову функцію визначають як: Рисунок 1 Раундова функція геш-функції один 6.5 Підсумкове перетворення Підсумковим перетворенням Т є просте відтинання тобто геш-код ? утворюється з LH крайніх лівих бітів заключного блоку Hq 7 ГЕШ-ФУНКЦІЯ ДВА 7.1 Вибирання параметрів Параметри L1 L2 LH геш-функції означеної в даному розділі мають відповідати: L1 = n L2 = 2n і LH менша або рівна 2п. 7.2 Метод заповнювання Вибирання методу заповнювання для використання в цій геш-функції є поза межами цього стандарту. Приклади методів заповнювання подано у додатку A ISO/IEC 10118-1. 7.3 Початкове значення Вибирання IV завдовжки 2n для використання в цій геш-функції є поза межами цього стандарту. Значення IV має бути узгоджене і зафіксоване користувачами геш-функції. Проте IV треба вибрати такою щоб и IVL та и IVR були різними. 7.4 Раундова функція Раундова функція ? з'єднує блок заповнених даних D; завдовжки L1 = n бітів з результатом попереднього застосування раундової функції ?j-1 завдовжки L2 = 2n бітів внаслідок чого отримуємо Нj. Як частину раундової функції треба вибрати два перетворення и та и'. Ці перетворення використовують для того щоб перетворити підсумковий блок у два LK-бiтовi ключі алгоритму е. Означування и та и' є поза межами цього стандарту. Проте треба взяти до відома те що вибір и та и’ впливає на якість геш-функції див. Додаток А . Рисунок 2 Раундова функція геш-функції два Покладемо HL0 та HR0 рівними IVL та IVRвідповідно. Підсумкові блоки обчислюють для j = 1 до q ітераційно таким чином: Рандову функцію показано на рисунку 2. Рисунок За Раундова функція геш-функції три Рисунок Зb Лінійне відображення ?1 геш-функції три 8.6 Підсумкове перетворення відповідно Після обробляння заповненого повідомлення зв'язувальні змінні величини приймають значення. Здійснимо чотири додаткові ітерації раундової функції з вхідними даними: Результат LH обчислення геш-функції складається з Підсумкове перетворення вимагає 26 зашифровувань в останній ітерації необхідно здійснити лише два зашифровування . 9 ГЕШ-ФУНКЦІЯ ЧОТИРИ Геш-функція розглянута в цьому розділі надає геш-коди довжиною LH де LH дорівнює 3n для парних значень n. 9.1 Загальний Див. 8.1 стосовно певних визначень що мають відношення до цієї геш-функції. 9.2 Вибирання параметрів Параметри L1 L2 та LH геш-функції наведеної у даному розділі повинні задовольняти: L1 = 3n L2 = 9n LH дорівнює 3п. 9.3 Метод заповнювання Метод заповнювання для використання з цією геш-функцією має бути таким як означено в розділі А.3 ISO/IEC 10118-1 причому r = n. 9.4 Початкове значення Вибір IV завдовжки 9п для використання в цій геш-функції є поза межами цього стандарту. Значення IV має бути узгоджене і зафіксоване користувачами геш-функції. 9.5 Раундова функція Раундову функцію пояснено на рисунку 4а а лінійне відображення ?2 на рисунку 4b. Рисунок 4а Раундова функція геш-функції чотири 9.6 Підсумкове перетворення Після обробляння заповненого повідомлення зв'язувальні змінні величини приймають значення . Здійснимо чотири додаткові ітерації раундової функції з вхідними повідомленнями: ВІДПОВІДНО. Результат обчислення геш-функції складається з . Підсумкове перетворення вимагає ЗО зашифровувань на останній ітерації необхідно здійснити лише три зашифровування . Рисунок 4b Лінійне відображення ?2 геш-функції чотири ДОДАТОК А довідковий ВИКОРИСТАННЯ АЛГОРИТМУ ШИФРУВАННЯ ДАНИХ DEA А.1 Загальний Цей додаток надає спосіб використання DEA ANSI X3.92 стосовно операцій гешування означених у цьому стандарті. DEA відомий також під назвою як стандарт шифрування даних DES . Нумерування бітів таке як в ANSI X3.92 [2]. Ці методи описано в [3]. Параметрами DEA є n = 64 та LK = 64. А.2 Геш-функція один Таблиця А.1 Геш-функція три. Значення бітів № 1 2 3 4 та 5 ключа у восьми підфункціях Підфункція і Підстановка i 1 00101 2 01001 3 10001 4 00110 5 01010 6 10010 7 01100 8 10100 Примітка. Вважається що знаходження суперечностей для цієї раундової геш-функції вимагає 251 DES-зашифровувань. А.5 Геш-функція чотири Див. розділ 9. Таблиця А.2 Геш-функція чотири. Значення бітів № 1 2 3 4 та 5 ключа у дев'яти підфункціях Підфункція / Підстановка / 1 00101 2 01001 3 10001 4 00110 5 01010 6 10010 7 01100 8 10100 Примітка. Вважається що знаходження суперечностей для цієї раундової геш-функції вимагає 276 DES-зашифровувань. А.6 Мотивування DEA має деякі властивості які як відомо є небажаними у разі якщо алгоритм використовують для будування геш-функції. Існують перш за все 4 слабких ключі для яких функція зашифровування дорівнює функції розшифровування. До того ж для цих 4 слабких ключів існують 232 нерухомих точок тобто значень відкритого тексту які зашифровуються самі у себе. По-друге існують 16 пар напівслабких ключів для яких функція зашифровування що відповідає одному ключеві дорівнює функції розшифровування що відповідає іншому ключеві. DES має також властивість доповнювання: якщо відкритий текст та ключ одночасно доповнюються то зашифрований текст також буде доповненим. Для геш-функцій один та два фіксування двох бітів ключа як вказано вище є необхідною і достатньою умовою для запобігання появи слабких та напівслабких ключів. Геш-функція один потребує одного зафіксованого значення а геш-функція два потребує двох зафіксованих значень. Ці значення повинні мати такі властивості: усі значення мають бути різні; кожне із значень унеможливлює використання як слабкого так і напівслабкого ключа. Для геш-функцій три та чотири фіксування 5 бітів ключа як вказано вище є необхідною і достатньою умовою для запобігання появи слабких напівслабких ключів та використання властивості доповнення. Геш-функція три вимагає 8 зафіксованих значень а геш-функція чотири вимагає 9 зафіксованих значень. Ці значення повинні мати такі властивості: усі значення мають бути різні; кожне із значень унеможливлює використання як слабкого так і напівслабкого ключа; жодне із значень не є доповненням іншого значення. Той факт що наведені вище умови є відповідними можна встановити з наступного спостерігання. Розглянемо 5 бітів ключа на позиціях 1 2 3 4 та 5. Для всіх слабких та напівслабких ключів DEA ці 5 бітів приймають одне з таких значень: 00000 11111 00011 або 11100. ДОДАТОК В довідковий ПРИКЛАДИ 8.1 Загальний У цьому додатку подано приклади обчислювання геш-коду в якому використовуються дві перші геш-функції означені в додатку А цього стандарту і методи заповнювання наведені в додатку A ISO/IEC 10118-1. 7-бітовий код ASCII який описано в [8] без парності для "Now is the time for all " де " " позначає проміжок в шістнадцятковому записі є рядок даних: '4E6F77206973207468652074696D6520666F7220616C6C20' 8.2 Геш-функція один Див. А.2. Метод заповнювання 1 B.4 Геш-функція три Див. А.4. Метод заповнювання З В.5 Геш-функція чотири Дивись А.5. Метод заповнювання З БІБЛІОГРАФІЯ 1 ISO/IEC 9979:1999 Information technology Security techniques Procedures for the registration of cryptographic algorithms 2 ANSI X3.92:1981 Data Encryption Algorithm укр. назва Алгоритм зашифровування даних 3 S. М. Matyas Key Processing with Control Vectors. J. of Cryptology Vol. 2 1991 pp. 113 136 4 L.R. Knudsen B. Preneel Hash-functions based on block ciphers and quaternary codes. Advances in Cryptology Proc. AsiaCrypt'96 LNCS 1163. K.Kim T. Matsumoto Eds. Springer-Verlag 1996 pp. 77 90 5 L. R. Knudsen B. Preneel Fast and secure hashing based on codes. Advances in Cryptology Proc. Crypto'97 LNCS 1294. B. Kaliski Ed. Springer-Verlag 1997 pp. 485 498 6 US patent 4 908 861 Data Authentication Using Modification Detection Codes based on A Public One way Encryption Function. Issued March 13 1990 7 Don Coppersmith Stephen M. Matyas Mohammed Peyravian. Rationale for Bit Fixing in the MDC-2 Algorithm. IBM T.J.Watson Research Center Yorktown Heights N.Y. 10598. Research Report RC21471 May 71999 8 ISO 646:1991 Information technology ISO 7-bit coded character set for information interchange. Ключові слова: геш-функція геш-код загальна модель раундова функція підсумкове перетворення початкове значення.