Ктн, доцент Василенко В.С.
Національний авіаційний університет (НАУ) України
Геш-функції та криптографічні перетворення
У сучасних умовах забезпечення високої надійності, ефективності й
технологічності телекомунікаційних мереж (ТКМ) є можливим тільки за умови
забезпечення високого рівня захищеності інформації, що циркулює в цих ТКМ. Для
цього відповідно до законів України про інформацію і її захист, а також до
нормативних документів Системи технічного захисту інформації (ТЗІ) України в
ТКМ необхідне застосування спеціальних засобів захисту, що призначаються для
досягнення оптимального для даної ТКМ об’єднання таких властивостей захищеності
інформації телекомунікаційних мереж [1–3] як конфіденційність, цілісність та доступність.
Залежно від умов застосування, складності та класу ТКМ, а також характеристик
можливих загроз, вага цих функціональних властивостей може змінюватись, але
проблеми забезпечення конфіденційності та цілісності інформації є одними з
основних при розробці й впровадженні будь-яких захищених ТКМ.
При цьому досить часто виникає задача
одночасного забезпечення конфіденційності та цілісності інформаційних об’єктів.
Найчастіше вважається, що система ТЗІ забезпечує конфіденційність інформації,
якщо вона зберігається, чи передається так, що сторонні (неавторизовані)
користувачі не мають змоги розкрити її смисловий зміст. З цією метою первинна,
відкрита інформація піддається деякому перетворенню, що найчастіше відносять до
криптографічних. В подальшому здійснюється її зберігання чи передавання у
перетвореному вигляді) [4].
Для забезпечення цілісності такої
інформації здійснюють формується надлишкова інформація − певні образи,
відображення − стійкі до модифікацій перетворення початкового
інформаційного об’єкта. Ці образи, залежно від прийнятої прийнято називати
контрольними ознаками, ознаками цілісності чи геш-функціями (hash functions).
Для такого представлення
використовуються модульної операції виду:
, (1)
Зрозуміло, що з (1) витікає можливість
наступного представлення вихідного числа, яке пропонується як деяке
криптографічне перетворення:
![]()
У цьому виразі використана позначка:
. Цей запис числа
можна трактувати як конкатенацію величин t та
, яку позначимо через:
А = t
.
(2)
Потрібна для цього надлишкова
розрядність
визначається сумою розрядностей
та остачі
:
,
і, взагалі співпадає чи є близькою до розрядності
початкового числа А.
Звернемо увагу, що при відомій (для авторизованих і, можливо не відомій для не
авторизованих користувачів) величині модуля (основи)
вираз (2)
є певним зашифрованим (криптографічним) представленням початкового числа А.
Приклад. Максимальне 8 бітне число А = 255, а
. Тоді максимальне значення
(6 біт),
(3 біти); отже число А = 255 потребує для свого запису, при
якому воно точно поновлюється у своєму первинному вигляді:
{n,
}= {36, 3}− 10 біт.
Для відновлення (дешифрування) початкового числа при відомих
,
та t
використаємо
зрозумілий із 1 вираз:
.
(3)
Приклад. Нехай при
надано число А = n,
= 36,3. Тоді поновлене число набуде вигляду А = 363 = 36·7 + 3=255.
Отже, при відомих значеннях
,
та t між
вихідним числом А та його записом у
вигляді (2) існує взаємна однозначність, що, в свою чергу, підтверджує
можливість використання виразу (2) як деякого
криптографічного перетворення із ключем перетворення
та певною криптографічною стійкістю.
Одразу наголосимо, що згадана
криптографічна стійкість у багатьох випадках є недостатньою. По-перше, в умовах можливого
статистичного криптоаналізу при достатній статистиці можна визначити
максимальне значення лишку
, а отже й величину ключа перетворення
. Окрім того, знаючи розрядність ключа перетворення, при його
обмеженій величині нескладно визначити ключ методом прямого перебору.
Найпростіший, але не самий ефективний спосіб запобігти цьому – збільшення
величини значення ключа перетворення.
По-друге, слід звернути увагу та ту обставину, що при величині
вихідного коду
величина
у всіх
наведених вище виразах дорівнює нулю
, отже значення
, тобто ні про яке криптографічне перетворення уже не
йдеться. Тобто, при збільшенні величини значення ключа перетворення наражаємося
на іншу небезпеку – втрату криптографічних властивостей такого перетворення.
Отже, слід зробити висновок, що бажано
мати якомога менші значення ключа перетворення. Тоді для підвищення
криптографічних властивостей цих перетворень можна запропонувати збільшення
кількості ключів перетворення
(і =1, 2, ,…, n),
кожен із яких має, по-можливості, малі значення. Якщо дотримуватися розглянутої
вище технології запису чисел (2), то цей вираз набуде вигляду:
А =
(4)
кожна з t пар
якого потребує для свого запису
надлишкових розрядів. Зрозуміло, що
тільки з причини занадто великої надлишковості −
цей підхід є непродуктивним.
Корисною альтернативою цьому є
утворення єдиного ключа перетворення у вигляді добутку t його складових:
.
Такий підхід є еквівалентним
застосуванню до числа А перетворень
(1 − 3), але із збільшеним значенням модуля (основи)
, кількості лишків
, яка є відповідною кількості основ
, та зменшеним, відповідно,
значенням t. Тоді
представлення (2) може бути наданим у вигляді:
А = ![]()
При цьому слід врахувати, що сукупність
основ
(і =1, 2, ,…, n) утворює певну систему
числення діапазоном представлення
. Ця система числення має назву системи лишкових класів, а сукупність
лишків
є
представленням сукупного лишку
в діапазоні
в цій
системі числення.
Приклад. Розглянемо щойно викладене як розвиток попереднього прикладу (
, надане для перетворення число А = t,
= 363, та поновлене число
А = 363 = 36·7 + 3=255).
Із цією метою введемо ще одну основу
так, що
, а отже,
. Тоді
(3 біти),
(3 біти),
(3 біти). Визначена тут
розрядність у 3 біти зумовлена розрядністю максимальних лишків по обраним
основам.
Отже перетворене число може бути
записаним у вигляді А = 7, 0, 3.
Неважко упевнитися в тому, що лишки (0,
3) у системі числення в лишкових класах із основами
відображають
число (загальну остачу), яка дорівнює
= 10. Тоді операція поновлення вихідного числа А виконується як
А = 35·7 + 10 = 255.
Неважко упевнитися в тому, що при
введенні ще однієї основи
та, відповідно,
одержимо
(0 біт),
(3 біти),
(3 біти),
(3 біти). Неважко упевнитися
також в тому, що лишки (0, 3, 3) у
системі числення в лишкових класах із основами
відображають
число (загальну остачу), яка дорівнює
= 255. Якщо дотримуватися
вже розглянутого алгоритму поновлення вихідного числа А, то одержимо: А
= 315·0 + 255 = 255.
Звернемо увагу на те, що
, тобто загальне значення основи перевищує максимально
можливу величину числа, в наслідок чого й одержано
. Це свідчить про те, що сукупність лишків (0, 3, 3) по
заданій системі основ
відповідає початковому
числу А, але представленому в системі
лишкових класів.
Ця відповідність повинна бути
однозначною і повною. Для цього, як витікає із теорії лишкових класів [3]
достатньо, щоби усі основи із їх сукупності
(і =1, 2, …, n) були, по-перше, взаємно простими, а, по-друге такими, щоб їх
добуток
перевищував значення максимально можливого числа А:
Розглянутий приклад надає можливість ще
раз наголосити на уже сформульованому твердженні, що взаємна однозначність між вихідним числом А та його новим записом у вигляді (0, 3, 3) дозволяє говорити про деяке криптографічне перетворення із
ключем перетворення
(
) з певною
криптографічною стійкістю.
1. Нормативний документ Системи технічного захисту інформації
«Загальні положення про захист інформації в комп’ютерних системах від
несанкціонованого доступу» (НД ТЗІ 1.1-002-99).
2. Нормативний документ Системи технічного захисту
інформації «Критерії оцінки захищеності інформації в комп’ютерних системах від НСД»
(НД ТЗІ 2.5-004-99).
3. Нормативний документ Системи технічного захисту
інформації «Класифікація телекомунікаційних систем і стандартні функціональні
профілі захищеності оброблюваної інформації від несанкціонованого доступу» (НД
ТЗІ 2.5-005-99).
4. Василенко В.С. Варіант завадостійкого криптографічного
перетворення / В.С. Василенко, В.М. Горицький // Современные проблемы
телекоммуникаций: зб. доповідей на 6-й міжнародній наук.-техн. конф. 19-22
серпня 2003 р. (Ч. 1) // Одеська національна академія зв’язку ім. А.С. Попова.
— С. 71-73.