ISO/IEC 9797-1
![]() | Ця стаття є сирим перекладом з іншої мови. Можливо, вона створена за допомогою машинного перекладу або перекладачем, який недостатньо володіє обома мовами. (травень 2018) |
![]() | Ця стаття містить текст, що не відповідає енциклопедичному стилю. (травень 2018) |
ISO/IEC 9797-1 Інформаційна технологія – Методи захисту – Коди аутентифікації повідомлень (MACs) – Частина 1: механізми з використанням блокового шифру[1] є міжнародним стандартом, який визначає методи для обчислення код аутентифікації повідомлення (MAC) над даними.
Замість того щоб характеризувати один певний алгоритм, стандарт визначає загальну модель, з якої можна утворити ряд конкретних алгоритмів. Модель базується на блочному шифрі зі секретним симетричним ключем.
Через те, що стандарт описує модель, а не конкретний алгоритм, користувачі стандарту повинні вказати всі конкретні опції і параметри, що будуть використані, щоб забезпечити однозначне обчислення MAC.
Модель для генерування MAC складається з шести кроків:
- Доповнення даних для кратності розміру блоків шифру
- Розбиття даних на блоки
- Початок трансформації першого блоку даних
- Повторення для всіх блоків даних
- Вихідне перетворення результату останньої ітерації
- Обрізання результату до потрібної довжини
Для більшості кроків стандарт надає декілька параметрів, з яких можна вибрати, та/або дозволяє певну конфігурованість.
Вхідні дані повинні бути доповненні до кратності розміру блоку шифрування, так щоб кожна наступна криптографічна операція мала повний блок даних. Описано три методу доповнення. У кожному випадку n – довжина блоку (у бітах):
За необхідності, додайте до кінця повідомлення біти зі значенням 0, доки дані не будуть кратними до n. (Якщо вихідні дані вже були кратними n, нічого не додається).
Додайте один біт зі значенням 1 у кінець даних. Потім при необхідності додайте біти зі значенням 0 в кінець повідомлення доки його довжина стане кратною n.
Доповненні дані складаються з (у цьому порядку):
- Довжина не доповнених даних (в бітах) виражена в двійковому коді зворотнього порядку розміром n біт (тобто один блок шифру)
- Не доповненні дані
- Скільки потрібно (можливо ніскільки) бітів зі значенням 0 щоб привести загальну довжину до кратної n бітів
Немає необхідності передавати чи зберігати доповненні біти, тому що одержувач може їх відновити, знаючи довжину не доповнених даних та метод використаного доповнення.
Доповненні дані D розбивають на q блоків D1, D2, ... Dq, кожен довжини n, відповідно до блочного шифру.
Криптографічна операція виконується на першому блоці (D1), щоб створити проміжний блок H1. Існують дві початкові трансформації:
D1 зашифровується з ключем K:
- H1 = eK(D1)
D1 зашифровується з ключем K, а потім другим ключем K′′:
- H1 = eK′′(eK(D1))
Блоки H2 ... Hq вираховуються шляхом шифрування з ключем K, побітовою виключною диз'юнкцією над відповідним блоком даних на попереднім H block.
- for i = 2 to q
- Hi = eK(Di ⊕ Hi-1)
Якщо є лише один блок даних (q=1), цей крок буде знехтуваний.
Криптографічна операція (необов'язково) виконується на останній ітерації над вихідним блоці Hq для створення блоку G. Існують три вихідні трансформації:
Hq залишається незмінним:
- G = Hq
Hq шифрується з ключем K′:
- G = eK′(Hq)
Hq розшифровується з ключем K′ і результат шифрується з ключем K:
- G = eK(dK′(Hq))
MAC одержується шляхом обрізання блоку G (зберігання перших бітів, відкидання останніх) до потрібної довжини.
Загальна модель номінально дозволяє застосовувати будь-яку комбінацію параметрів для кожного з доповнень, початкової трансформації, вихідної трансформації та етапів зрізання. Проте, стандарт визначає чотири докладні комбінації початкової та вихідної трансформацій, а (за необхідності) утворення ключів, та дві інші комбінації на основі дублюючих паралельних обчислень. Комбінації позначаються стандартом від "MAC-алгоритм 1" до "MAC-алгоритм 6".
Цей алгоритм використовує початкову трансформацію 1 та вихідну трансформацію 1.
Необхідний лише один ключ, K.
(Якщо розглядати блочний шифр в DES, то це еквівалентно алгоритму, визначеному в FIPS PUB 113 Computer Data Authentication.[2])
Алгоритм 1 зазвичай відомий як CBC-MAC.[3]
Цей алгоритм використовує початкову трансформацію 1 та вихідну трансформацію 2.
Необхідні два ключі, K та K′, але K′ має бути отриманий з K.
Цей алгоритм використовує початкову трансформацію 1 та вихідну трансформацію 3.
Необхідні два незалежні ключі, K і K′.
Алгоритм 3 також відомий як Retail MAC.[4]
Цей алгоритм використовує початкову трансформацію 2 та вихідну трансформацію 2.
Необхідні два незалежних ключа, K і K′, разом з третім ключем K′′ отриманим з K′.
MAC-алгоритм 5 містить два паралельних екземпляри MAC-алгоритму 1. Перший екземпляр працює над початковими вхідними даними. Другий екземпляр працює за двома ключовими варіантами, сформованими з початкового ключа шляхом множення в полі Галуа. Фінальний MAC обчислюється шляхом побітової виключної диз'юнкції над MAC, що генеруються кожним екземпляром алгоритму 1.[5]
Алгоритм 5 також відомий як CMAC.[6]
Цей алгоритм складається з двох паралельних екземплярів MAC-алгоритму 4. Фінальний MAC є побітною виключною диз'юнкцією над MAC, що створені кожним екземпляром алгоритму 4.[7]
Кожний екземпляр алгоритму 4 використовує іншу пару ключів (K та K′) але ці чотири ключі отримуються з двох незалежних базових ключів.
MAC-алгоритми 2 (необов'язково), 4, 5 та 6 вимагає утворення одного або кількох ключів з іншого ключа. Стандарт не передбачає жодного конкретного методу утворення ключа, хоча він загалом визначає, що утворенні ключі відрізняються один від одного.
Стандарт наводить кілька прикладів методів утворення ключів, таких як "доповнення чергових підрядків з чотирьох бітів K, що починаються з перших чотирьох бітів". Це еквівалентно побітовій виключній диз'юнкції кожного байту ключа з F0 (hex).
Щоб повністю і однозначно визначити розрахунок MAC, користувач ISO/IEC 9797-1 повинен вибрати та вказати:
- Алгоритм блочного шифру e
- Метод доповнення (1 з 3)
- Конкретний MAC-алгоритм (1 з 6)
- Довжину MAC
- Метод(и) утворення ключа за необхідності, для MAC-алгоритмів 2, 4, 5 чи 6
Додаток B до стандарту – це аналіз безпеки алгоритмів MAC. Він описує різні криптографічні атаки на алгоритми – включаючи атаку відновлення ключа, метод «грубої сили» над ключем і атака «днів народження», а також аналізує опір кожного алгоритму до цих атак.
- ↑ ISO/IEC 9797-1:2011 Information technology – Security techniques – Message Authentication Codes (MACs) – Part 1: Mechanisms using a block cipher. Архів оригіналу за 24 грудня 2016. Процитовано 30 квітня 2018.
- ↑ FIPS PUB 113 - Computer Data Authentication. National Institute of Standards and Technology. Архів оригіналу за 27 вересня 2011. Процитовано 1 жовтня 2011.
- ↑ ISO/IEC 9797-1:2011 Information technology – Security techniques – Message Authentication Codes (MACs) – Part 1: Mechanisms using a block cipher [Архівовано 17 червня 2016 у Wayback Machine.], Introduction
- ↑ ISO/IEC 9797-1 Information technology – Security techniques – Message Authentication Codes (MACs) – Part 1: Mechanisms using a block cipher. International Organization for Standardization. 2011. с. 11.
- ↑ ISO/IEC 9797-1 Information technology – Security techniques – Message Authentication Codes (MACs) – Part 1: Mechanisms using a block cipher. International Organization for Standardization. 2011. с. 12.
- ↑ ISO/IEC 9797-1 Information technology – Security techniques – Message Authentication Codes (MACs) – Part 1: Mechanisms using a block cipher. International Organization for Standardization. 2011. с. 13.
- ↑ ISO/IEC 9797-1:1999 Information technology -- Security techniques -- Message Authentication Codes (MACs) -- Part 1: Mechanisms using a block cipher [Архівовано 9 квітня 2016 у Wayback Machine.] — Superseded by ISO/IEC 9797-1:2011, which (according to the latter's Foreword [Архівовано 17 червня 2016 у Wayback Machine.]) has a different algorithm 6.
На цю статтю не посилаються інші статті Вікіпедії. Будь ласка розставте посилання відповідно до прийнятих рекомендацій. |