ПЕРЕДМОВА
1ВНЕСЕНО: Технічний комітет зі стандартизації «Інформаційні технології» (ТК 20) при Держ-споживстандарті України і Міжнародний науково-навчальний центр інформаційних технологійта систем НАН України та Міністерства освіти і науки України
ПЕРЕКЛАД І НАУКОВО-ТЕХНІЧНЕ РЕДАГУВАННЯ: А. Анісімов, д-р. фіз.-мат. наук (керівник розробки); Т. Кальчук; Є. Осадчий, канд.техн.наук; В. Ткаченко; О. Фаль, канд. фіз.-мат. наук
Ступінь відповідності — ідентичний (IDT) Переклад з англійської (en)
4УВЕДЕНО ВПЕРШЕ
ЗМІСТ
Національний вступ
Додаток А Методи заповнювання
Бібліографія
НАЦІОНАЛЬНИЙ ВСТУП
Цей стандарт є тотожний переклад ISO/IES 10118-1:2000 Information technology — Security techniques — Hash-functions — Part 1: General (Інформаційні технології. Методи захисту. Геш-функції. Частина 1. Загальні положення).
Основна мета цього стандарту:
—подати терміни, визначення та скорочення, які є загальними для всіх частин стандартуISO/IEC 10118;
Відповідальний за ISO/IEC 10118-1:2000 — технічний комітет ISO/IEC JTC 1.
В Україні відповідальний за цей стандарт — технічний комітет зі стандартизації «Інформаційні технології» (ТК 20).
Стандарт ISO/IEC 10118 складається із чотирьох частин під загальною назвою Information technology — Security techniques — Hash-functions (Інформаційні технології. Методи захисту. Геш-функції). Цей стандарт описує геш-функції і може бути застосований для реалізації послуг автен-тифікації, цілісності та неспростовності.
Частини стандарту ISO/IEC 10118 мають такі назви :
У частині 1 подано загальну модель геш-функцій та описано геш-функцію, яка перетворює довільні рядки бітів в рядки бітів фіксованої довжини, і методи заповнювання, використовувані для обчислювання геш-коду. Ця частина містить визначення, познаки, скорочення та вимоги, спільні для інших частин ISO/IEC 10118.
У частині 2 йдеться про геш-функції, які базуються на використовуванні η-бітового блокового алгоритму шифрування. Означено чотири геш-функції, які є сумісні з загальною моделлю, поданою в ISO/IEC 10118-1.
У частині 3 розглянуто спеціалізовані геш-функції. Геш-функції у цій частині ґрунтуються на ітераційному застосуванні раундової функції. Означено три різні раундові функції, які використовуються цими спеціалізованими функціями.
У частині 4 представлено дві геш-функції, які використовують модульну арифметику. Ці геш-функції, які вважаються стійкими до колізій, стискають повідомлення довільної довжини до геш-коду, довжину якого визначають через довжину простого числа, використовуваного у раундовій функції.
До стандарту внесено такі редакційні зміни:
Додаток А є невід'ємною частиною цього стандарту.
Копії міжнародних стандартів, не чинних в Україні, можна отримати у Головному фонді нормативних документів ДП «УкрНДНЦ».
ДСТУISO/IEC 10118-1:2003 НАЦІОНАЛЬНИЙ СТАНДАРТ УКРАЇНИ
Інформаційні технології
Методи захисту. Геш-функції
Частина 1. Загальні положення
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ
МЕТОДЫ ЗАЩИТЫ. ХЕШ-ФУНКЦИИ Часть 1. Общие положения
INFORMATION TECHNOLOGY
SECURITY TECHNIQUES. HASH-FUNCTION
Part 1. General
Чинний від 2005-01-01
1СФЕРА ЗАСТОСУВАННЯ
Стандарт ISO/IEC 10118 описує геш-функції і, отже, може, бути застосований для забезпечення послуг автентифікації, цілісності та неспростовності. Геш-функції перетворюють довільні рядки бітів у рядки бітів фіксованої довжини, використовуючи означений алгоритм, їх можна використовувати для
Примітка. Геш-функції, подані у цьому стандарті, не містять в собі використовування секретних ключів. Проте ці геш-функції разом з секретними ключами можуть бути використані для створювання кодів автентифікації повідомлень. Коди автентифікації повідомлення (MACs) забезпечують автентифікацію джерела повідомлень в доповнення до цілісності повідомлення. Що стосується обчислення МАС, користувачеві слід звернутися до ISO/IEC 9797.
Цей стандарт містить визначення, познаки, скорочення та вимоги, що є спільними для всіх інших частин ISO/IEC 10118.
2НОРМАТИВНІ ПОСИЛАННЯ
Наведені нижче нормативні документи містять положення, які через посилання в цьому тексті становлять положення цього стандарту. Для датованих посилань пізніші зміни до будь-якого з цих видань або перегляд їх не застосовують. Однак, учасників угод, базованих на цьому стандарті, запрошують визначити можливість застосування найостанніших видань нормативних документів, наведених нижче. Для недатованих посилань треба звертатися до найновішого видання нормативних документів. Члени ISO та ІЕС впорядковують каталоги чинних міжнародних стандартів.
ISO/IEC 9797(all parts) Information technology — Security techniques — Message Authentication Codes (MACs).
НАЦІОНАЛЬНЕ ПОЯСНЕННЯ ISO/IEC 9797 (усі частини) Інформаційні технології. Методи захисту. Коди автентифікації повідомлення (MACs). |
3ТЕРМІНИ ТА ВИЗНАЧЕННЯ ПОНЯТЬ
Терміни та визначення понять, призначені для використовування у цьому стандарті:
3.1зворотний порядок байтів (big-endian)
Метод зберігання мульти-байтових чисел, за якого старші байти розміщуються в молодших адресах пам'яті
3.2геш-функція, стійка проти колізій (collision-resistant hash-function)
Геш-функція, що має таку властивість: в обчислювальному відношенні неможливо знайти дві різні вхідні величини, які перетворюються в ту саму вихідну величину.
Примітка. Можливість обчислювання залежить від визначених вимог до захисту та від середовища
3.3рядок даних (дані) (data string (data))
Рядок бітів, який є вхідною величиною для геш-функції
3.4геш-код (hash-code)Рядок бітів, який є вихідним значенням геш-функції.
Примітка. Література з даного предмета містить ряд термінів, які мають те саме або подібне значення. Деякими прикладами є код виявляння модифікації, код виявляння підтасовки, дайджест, геш-результат, геш-величина, відбиток
3.5геш-функція (hash-function)
Функція, яка перетворює рядки бітів у рядки бітів фіксованої довжини, та має такі дві властивості:
Примітка. Можливість обчислювання залежить від визначених вимог до захисту та від середовища
Величина, яку використовують у разі визначання відправної точки геш-функції
3.8підсумкове перетворення (output transformation)
Перетворення, що застосовують до результату ітерації для отримування геш-коду
3.9заповнювання (padding)Добавляння додаткових бітів до рядка даних
3.10раундова функція (round-function)
Функція φ (...), яка перетворює два двійкових рядки довжин L1 та L2 у двійковий рядок довжи-
ни L2 — її використовують ітераційно, як частину геш-функції, коли вона сполучає рядок даних
довжини L1 з попередньою вихідною величиною довжини L2.
4ПОЗНАКИ ТА СКОРОЧЕННЯ
4.1 Загальні познаки
У всіх частинах стандарту ISO/IEC 10118 використовують такі познаки та скороченння:
4.2Познаки, використані у цьому стандарті
Познака, призначена для використовування у цьому стандарті:
q — число блоків у рядку даних після заповнювання і розщеплювання.
4.3Погодження щодо кодування
У ситуаціях, для яких терміни «найбільш значущий біт/байт» і «найменш значущий біт/байт» мають сенс (тобто, коли рядки бітів/байтів трактуються як чисельні величини), крайні зліва біти/ байти блоку мають бути найбільш значущими.
5ВИМОГИ
Використовуючи геш-функції, необхідно, щоб залучені сторони оперували точно з тим самим бітовим рядком, навіть не дивлячись на те, що зображення даних можуть бути різні в середовищах кожного суб'єкта. Це може вимагати від одного або більше суб'єктів необхідності перетворення даних у погоджене зображення у вигляді бітових рядків перед тим, як застосовувати геш-функцію.
Деякі з геш-функцій, означених в ISO/IEC 10118, потребують заповнювання з тим, щоб рядок даних мав потрібну довжину. У додатку А цього стандарту наведено деякі методи заповнювання; додаткові методи заповнювання можуть бути означені в кожній частині ISO/IEC 10118, якщо заповнювання є необхідним.
6ЗАГАЛЬНА МОДЕЛЬ ГЕШ-ФУНКЦІЙ
Геш-функції, подані у цьому стандарті, вимагають використання раундової функції φ. Деякі альтернативи для функції φ означено в наступних частинах ISO/IEC 10118.
Геш-функції, які розглянуто в наступних частинах ISO/IEC 10118, надають геш-коди довжиною LH, де LH — менша за значення L2, яке використовує функція φ або дорівнює йому.
6.1 Процес гешування
Нехай φ раундова функція, а IV — початкове значення довжиною L2. Для геш-функцій, які означено в наступних частинах ISO/IEC 10118, значення IV має бути фіксоване для заданої раундової функції φ. Геш-код Η даних D треба обчислювати за чотири кроки.
6.1.1Крок 1 (заповнювання)
Рядок даних D заповнюють для того, щоб його довжина була цілим числом, кратним L1. Для подальшої інформації треба звертатись до додатка А.
Примітка. Іноді ефективнішим виявляється проведення розщеплювання перед заповнюванням. Заповнювання здійснюють пізніше в останньому блоці, коли L1 < L2.
6.1.2Крок 2 (розщеплювання)
Заповнений рядок даних D розщеплюють на L1-бітові блоки D1,D2,Dq де D1 уособлює перші L1 бітів заповнених даних D, D2 уособлює наступні L1 бітів і так далі. Процеси заповнювання і розщеплювання пояснено на рисунку 1.
Рисунок 1 — Процеси заповнювання та розщеплювання
6.1.3 Крок 3 (ітерація)
Нехай D1,D2,..., Dq є L1 - бітові блоки даних після заповнювання і розщеплювання. Нехай Н0 є рядком бітів, що дорівнює IV. L1 - бітові рядки H1,H2,..., Hq обчислюють ітераційно таким чином:
for / from 1 to q:
Ηi= φ(Di,Ηi-1); Процес ітерації пояснено на рисунку 2.
Рисунок 2 — Процес ітерації
6.1.4 Крок 4 (підсумкове перетворення)
Геш-код Η отримують перетворюванням Т, яке застосовують до Hq — результату виконання кроку 3, внаслідок чого отримуємо LH бітів завершального геш-коду. Наприклад, перетворюванням Τ може бути операція відтинання.
6.2 Використовування загальної моделі
В наступних частинах ISO/IEC 10118 наведено приклади геш-функцій, що грунтуються на загальній моделі. У кожному разі для означання окремої геш-функції необхідно, щоб були визначені:
Практичне застосування геш-функції, визначеної з використанням загальної моделі, вимагає також вибирання параметра LH.
ДОДАТОК А
(обов'язковий)
МЕТОДИ ЗАПОВНЮВАННЯ
Обчислювання геш-коду, як описано в інших частинах ISO/IEC 10118, передбачає вибирання методу заповнювання. Використовуючи метод заповнювання, завжди отримують рядок даних, довжина (в бітах) якого є цілим числом, кратним L1. У цьому додатку розглянуто три методи.
Примітка. Геш-функції, які використовують метод заповнювання 1, можуть наражатися на атаки тривіального підробляння, під час яких зловмисник може добавити або стерти деяку кількість '0' бітів у кінці рядка даних, не змінюючи геш-коду. Це означає, що метод заповнювання 1 треба використовувати лише в середовищах, в яких довжина рядка даних D наперед відома для сторін, або коли рядок даних з різною кількістю кінцевих '0' бітів має те саме семантичне значення. Теоретичні результати (див., наприклад, [1]) вказують також на те, що в середовищах, в яких не виконано вищенаведену умову, метод заповнювання 3 має деякі переваги над методом заповнювання 2.
Біти заповнювання (якщо вони є) не обов'язково зберігати або передавати їх разом з даними. Той хто перевіряє повинен знати, чи збережені або передані біти заповнювання чи ні, та який метод заповнювання використовують.
А.1 Метод 1
До даних, для яких обчислюють геш-код, додають (а може й ні) невелику кількість '0' бітів, необхідних для отримування потрібної довжини.
А.2 Метод 2
До даних, для яких обчислюють геш-код, додають один Τ біт. Потім до отриманих у підсумку даних додають (а можливо й ні) стільки ´0' бітів, скільки необхідно для отримування потрібної довжини.