Баричев З Криптографія без секретів

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Баричев С. Криптографія без секретів 42

Від автора

Ця книга - короткий вступ в криптографію. З одного боку, тут викладено матеріал, який відповідає на багато питань, які виникають у тих хто робить на ниві цієї науки першу крок, з іншого боку тут є той мінімум інформації, який достатній для того, щоб самостійно оцінювати будь-які реальні криптосистеми або навіть створювати свої власні.

Мова книги робився по можливості доступним, але не звільняє Читача від необхідності володіння елементарними основами математики, зокрема алгебри та теорії груп і полів.

Багато питань на жаль залишилися за обкладинками цієї книги. Зокрема після довгих сумнівів Автор вирішив відмовитися від розгляду DES, зважаючи на його крайній непрактичності і незлагідних на російському грунті 1 .

Масу корисної інформації можна знайти на сервері ftp.rsa.com. У faq5.doc Ви якщо і не знайдете відповідь на будь-яке питання по криптографії, то спостерігається велика кількість посилань на інші джерела.

Автор буде вдячний за будь-які зауваження і питання, які найпростіше направити за адресою: bar@glasnet.ru

Баричев Сергій


Введення

Проблема захисту інформації шляхом її перетворення, що виключає її прочитання сторонньою особою хвилювала людський розум з давніх часів. Історія криптографії - ровесниця історії людської мови. Більше того, спочатку писемність сама по собі була криптографічного системою, так як у стародавніх суспільствах нею володіли лише обрані. Священні книги Стародавнього Єгипту, Стародавньої Індії тому приклади.

З широким поширенням писемності криптографія стала формуватися як самостійна наука. Перші криптосистеми зустрічаються вже на початку нашої ери. Так, Цезар у своєму листуванні використовував вже більш менш систематичний шифр, який отримав його ім'я.

Бурхливий розвиток криптографічні системи отримали в роки першої та другої світових воєн. Починаючи з повоєнного часу і по нинішній день поява обчислювальних засобів прискорило розробку і вдосконалення криптографічних методів.

Чому проблема використання криптографічних методів у інформаційних системах (ІС) стала зараз особливо актуальна?

З одного боку, розширилося використання комп'ютерних мереж, зокрема глобальної мережі Інтернет, по яких передаються великі обсяги інформації державного, військового, комерційного і приватного характеру, не допускає можливість доступу до неї сторонніх осіб.

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

Проблемою захисту інформації шляхом її перетворення займається кріптологія (kr y p to s - таємний, lo g o s - наука). Криптологія поділяється на два напрямки - криптографію і криптоаналіз. Мета цих напрямків прямо протилежні.

Криптографія займається пошуком і дослідженням математичних методів перетворення інформації.

Сфера інтересів криптоаналізу - дослідження можливості розшифровування інформації без знання ключів.

У цій книзі основна увага буде приділена криптографічним методам.

Сучасна криптографія включає в себе чотири великих розділи:

  1. Симетричні криптосистеми.

  2. Криптосистеми з відкритим ключем.

  3. Системи електронного підпису.

  4. Управління ключами.

Основні напрямки використання криптографічних методів - передача конфіденційної інформації з каналів зв'язку (наприклад, електронна пошта), встановлення автентичності переданих повідомлень, зберігання інформації (документів, баз даних) на носіях у зашифрованому вигляді.

Термінологія

Отже, криптографія дає можливість перетворити інформацію таким чином, що її прочитання (відновлення) можливе тільки при знанні ключа.

У якості інформації, що підлягає шифрування і дешифрування, будуть розглядатися тексти, побудовані на деякому алфавіті. Під цими термінами розуміється наступне.

Алфавіт - кінцеве безліч використовуваних для кодування інформації знаків.

Текст - упорядкований набір з елементів алфавіту.

В якості прикладів алфавітів, які в сучасних ІС можна навести такі:

  • алфавіт Z 33 - 32 літери російського алфавіту і пробіл;

  • алфавіт Z 256 - символи, що входять в стандартні коди ASCII і КОІ-8;

  • бінарний алфавіт - Z 2 = {0,1};

  • восьмеричний алфавіт або шістнадцятковий алфавіт;

Шифрування - перетворювальний процес: вихідний текст, що має також назву відкритого тексту, замінюється шифрованим текстом.


Криптографічна система







Дешифрування - зворотний шифруванню процес. На основі ключа шифрований текст перетвориться у вихідний.




Ключ - інформація, необхідна для безперешкодного шифрування й дешифрування текстів.

Криптографічна система являє собою сімейство T перетворень відкритого тексту. Члени цього сімейства індексуються, чи позначаються символом k; параметр k є ключем. Простір ключів K - це набір можливих значень ключа. Зазвичай ключ являє собою послідовний ряд букв алфавіту.

Криптосистеми поділяються на симетричні й з відкритим ключем.

У симетричних криптосистемах і для шифрування, і для дешифрування використовується один і той самий ключ.

У системах з відкритим ключем використовуються два ключі - відкритий і закритий, які математично пов'язані один з одним. Інформація шифрується за допомогою відкритого ключа, що доступний усім бажаючим, а розшифровується за допомогою закритого ключа, відомого тільки одержувачу повідомлення.

Терміни розподіл ключів і керування ключами відносяться до процесів системи обробки інформації, змістом яких є складання і розподіл ключів між користувачами.

Електронній (цифровій) підписом називається приєднане до тексту його криптографічне перетворення, яке дозволяє при отриманні тексту іншим користувачем перевірити авторство і достовірність повідомлення.

Криптостійкість називається характеристика шифру, що визначає його стійкість до дешифрування без знання ключа (тобто криптоаналізу). Є декілька показників криптостійкості, серед яких:

  • кількість всіх можливих ключів;

  • середній час, необхідне для криптоаналізу.

Перетворення T k визначається відповідним алгоритмом і значенням параметра k. Ефективність шифрування з метою захисту інформації залежить від збереження таємниці ключа і криптостійкості шифру.

Вимоги до криптосистемам

Процес криптографічного закриття даних може здійснюватися як програмно, так і апаратно. Апаратна реалізація відрізняється істотно більшою вартістю, проте їй притаманні і переваги: ​​висока продуктивність, простота, захищеність і т.д. Програмна реалізація більш практична, допускає відому гнучкість у використанні.

Для сучасних криптографічних систем захисту інформації сформульовані наступні загальноприйняті вимоги:

  • зашифроване повідомлення повинно піддаватися читанню тільки при наявності ключа;

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

  • число операцій, необхідних для розшифровки інформації шляхом перебору різноманітних ключів повинно мати строгу нижню оцінку і виходити за межі можливостей сучасних комп'ютерів (з урахуванням можливості використання мережевих обчислень);

  • знання алгоритму шифрування не повинно впливати на надійність захисту;

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

  • структурні елементи алгоритму шифрування повинні бути незмінними;

  • додаткові біти, що вводяться в повідомлення в процесі шифрування, повинен бути повністю та надійно сховані в зашифрованому тексті;

  • довжина шифрованого тексту повинна бути рівною довжині вихідного тексту;

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

  • будь-який ключ із безлічі можливих повинен забезпечувати надійний захист інформації;

  • алгоритм повинен допускати як програмну, так і апаратну реалізацію, при цьому зміна довжини ключа не повинна призводити до якісного погіршення алгоритму шифрування.

Симетричні криптосистеми

Все різноманіття існуючих криптографічних методів можна звести до наступних класів перетворень:



Симетричні

криптосистеми





Моно-і Многоалфавитная підстановки.

Найбільш простий вид перетворень, що полягає в заміні символів вихідного тексту на інші (того ж алфавіту) за більш-менш складного правилом. Для забезпечення високої криптостійкості потрібне використання великих ключів.

Перестановки.

Також нескладний метод криптографічного перетворення. Використовується як правило в поєднанні з іншими методами.

Гаммирование.

Цей метод полягає в накладенні на вихідний текст деякої псевдовипадковою послідовності, що генерується на основі ключа.

Блокові шифри.

Представляють собою послідовність (із можливим повторенням і чергуванням) основних методів перетворення, застосовувану до блоку (частини) шіфруемого тексту. Блокові шифри на практиці зустрічаються частіше, ніж "чисті" перетворення того чи іншого класу в силу їх більш високої криптостійкості. Російський і американський стандарти шифрування засновані саме на цьому класі шифрів.

Перестановки

Перестановкою  набору цілих чисел (0,1 ,..., N-1) називається його переупорядоченіе. Для того щоб показати, що ціле i переміщено з позиції i в позицію  (i), де 0  (i) <n, будемо використовувати запис

 = ( (0),  (1 ),...,  (N-1)).

Число перестановок з (0,1 ,..., N-1) одно n! = 1 * 2 *...*( N-1) * N. Введемо позначення  для взаємно-однозначного відображення (гомоморфізму) набору S = {s 0, s 1, ..., s N-1}, що складається з n елементів, на себе.

: S  S

: s is  (i), 0  i <n

Будемо говорити, що в цьому сенсі  є перестановкою елементів S. І, навпаки, автоморфізм S відповідає перестановці цілих чисел (0,1,2, .., n -1).

Криптографічним перетворенням T для алфавіту Z m називається послідовність автоморфізмів: T = {T (n): 1  n <}

T (n): Z m, n  Z m, n, 1  n <

Кожне T (n) є, таким чином, перестановкою n-грам з Z m, n.

Оскільки T (i) і T (j) можуть бути визначені незалежно при i  j, число криптографічних перетворень вихідного тексту розмірності n дорівнює (m n)! 2 . Воно зростає непропорційно при збільшенні m і n: так, при m = 33 та n = 2 число різних криптографічних перетворень одно 1089!. Звідси випливає, що потенційно існує велика кількість відображень вихідного тексту в шифрований.

Практична реалізація криптографічних систем вимагає, щоб перетворення {T k: kK} були визначені алгоритмами, залежними від відносно невеликого числа параметрів (ключів).

Системи підстановок

Визначення Підстановкою  на алфавіті Z m називається автоморфізм Z m, при якому літери початкового тексту t заміщені літерами шифрованого тексту  (t):

Z m  Z m; : t   (t).

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

Затвердження SYM (Z m) c операцією твору є групою, тобто операцією, володіє наступними властивостями:

  1. Замкнутість: твір підстановок  12 є підстановкою:

: t   1 ( 2 (t)).

  1. Асоціативність: результат твори123 не залежить від порядку розстановки дужок:

( 12)3 =  1 ( 23)

  1. Існування нейтрального елемента: постановка i, обумовлена ​​як i (t) = t, 0  t m) за операції множення: i  =  i для    SYM (Z m).

  2. Існування зворотного: для будь-якої підстановки  існує єдина зворотна підстановка  -1, що задовольняє умові

    1 =    1  = i.

Число можливих підстановок у симетричній групі Z m називається порядком SYM (Z m) і одно m! .

Визначення. Ключем підстановки k для Z m називається послідовність елементів симетричної групи Z m:

k = (p 0, p 1 ,..., p n -1 ,...), p n  SYM (Z m), 0  n <

Підстановка, обумовлена ​​ключем k, є криптографічним перетворенням T k, за допомогою якого здійснюється перетворення n-грами вихідного тексту (x 0, x 1, .., x n-1) у n-граму шифрованого тексту (y 0, y 1, ..., y n-1):

y i = p (x i), 0  i

де n - довільне (n = 1,2 ,..). T k називається моноалфавитной підстановкою, якщо p незмінно при будь-якому i, i = 0,1 ,..., в іншому випадку T k називається Многоалфавитная підстановкою.

Примітка. До найбільш істотних особливостей підстановки T k належать такі:

1. Вихідний текст шифрується посимвольно. Шифрування n-грами (x 0, x 1, .., x n-1) і її префікса (x 0, x 1, .., x s -1) зв'язані співвідношеннями

T k (x 0, x 1, .., x n-1) = (y 0, y 1 ,..., y n-1)

T k (x 0, x 1, .., x s -1) = (y 0, y 1 ,..., y s -1)

2. Буква шифрованого тексту y i є функцією тільки i-й компоненти ключа p i і i-й літери початкового тексту x i.

Підстановка Цезаря

Підстановка Цезаря є найпростішим варіантом підстановки. Вона належить до групи моноалфавитной підстановок.

Визначення. Підмножина C m = {C k: 0  k m), що містить m підстановок

C k: j  (j + k) (mod m), 0  k <m,

називається підстановкою Цезаря.

Множення комутативними, C k C j = C j C k = C j + k, C 0 - ідентична підстановка, а зворотної до C до є C k -1 = C m-k, де 0 <k 3.

Підстановка визначається за таблицею заміщення, що містить пари відповідних букв "вихідний текст - шифрований текст". Для C 3 підстановки наведені у Табл. 1. Стрілка () означає, що літера в повідомленні (ліворуч) шифрується за допомогою C 3 в букву шифрованого тексту (праворуч).

Визначення. Системою Цезаря називається моноалфавитной підстановка, перетворююча n-граму вихідного тексту (x 0, x 1, .., x n-1) у n граму шифрованого тексту (y 0, y 1 ,..., y n-1) відповідно до правила

y i = C k (x i), 0  i

Наприклад, ВИШЛІТЕ_НОВИЕ_УКАЗАНІЯ допомогою підстановки C 3 перетвориться в еюиолхіврсеюівцнгкгрлб.

Таблиця 1.

А  р

Й  м

Т  х

И  ю

Б  д

До  н

У  ц

Ь  я

У  е

Л  про

Ф  год

Е  _

Г  ж

М  п

Х  ш

Ю  а

Д  з

Н  р

Ц  щ

Я  б

Е  і

Про  з

Ч  '

_  в

Ж  ї

П  т

Ш  и


З  до

Р  у

Щ  ь


І  л

З  ф

' е.



При своїй простоті система легко вразлива. Якщо зловмисник має

1) шифрований і відповідний вихідний текст або

2) шифрований текст обраного зловмисником вихідного тексту,

то визначення ключа і дешифрування вихідного тексту тривіальними.

Більш ефективні узагальнення підстановки Цезаря - шифр Хілла і шифр Плейфера. Вони засновані на підстановці не окремих символів, а 2-грам (шифр Плейфера) або n-грам 3 (шифр Хілла). При більш високій криптостійкості вони значно складніше для реалізації і вимагають досить великої кількості ключової інформації.

Многоалфавитная системи. Системи одноразового використання.

Слабка крипостійкість моноалфавитной підстановок долається із застосуванням підстановок Многоалфавитная.

Многоалфавитная підстановка визначається ключем  = ( 1,
2, ...), містить не менше двох різних підстановок. На початку розглянемо Многоалфавитная системи підстановок з нульовим початковим зміщенням.

Нехай {K i: 0  i m

P кл {(K 0, K 1, ..., K n-1) = (k 0, k 1, ..., k n-1)} = (1 / m) n

Система одноразового використання перетворює вихідний текст

X = (X 0, x 1, ..., x n-1)

в шифрований текст

Y = (Y 0, y 1, ..., y n-1)

за допомогою підстановки Цезаря

Y i = C K i (x i) = (K i + X i) (mod m) i = 0 ... n-1 (1)

Для такої системи підстановки використовують також термін "одноразова стрічка" і "одноразовий блокнот". Простір ключів До системи одноразової підстановки є вектором рангів (K 0, K 1, ..., K n-1) і містить m n точок.

Розглянемо невеликий приклад шифрування з нескінченним ключем. Як ключ приймемо текст

"БЕСКОНЕЧНИЙ_КЛЮЧ ....".

Зашифруємо з його допомогою текст "ШІФР_НЕРАСКРИВАЕМ". Шифрування оформимо в таблицю:











ШІФРУЕМИЙ_ТЕКСТ 24 8 20 16 19 5 12 27 9 32 18 5 10 17 18
БЕСКОНЕЧНИЙ_КЛЮЧ 1 5 17 10 14 13 5 23 13 27 9 32 10 11 30
ЩРД'АТТССЦ'ИДФЬП 25 13 4 26 0 18 17 17 22 26 27 4 20 28 15

Оригінальний текст неможливо відновити без ключа.

Накладення білого шуму у вигляді нескінченного ключа на початковий текст змінює статистичні характеристики мови джерела. Системи одноразового використання теоретично не расшіфруеми 4 , так як не містять достатньої інформації для відновлення тексту.

Чому ж ці системи незастосовні для забезпечення секретності при обробці інформації? Відповідь проста - вони непрактичні, оскільки вимагають незалежного вибору значення ключа для кожної літери початкового тексту. Хоча така вимога може бути і не занадто важким при передачі по прямому кабелю Москва - Нью-Йорк, але для інформаційних воно непосильно, оскільки там доведеться шифрувати багато мільйонів знаків.

Подивимося, що вийде, якщо послабити вимога шифрувати кожну букву вихідного тексту окремим значенням ключа.

Системи шифрування Вижинера

Почнемо з кінцевої послідовності ключа

k = (k 0, k 1 ,..., k n),

яка називається ключем користувача, і продовжимо її до нескінченної послідовності, повторюючи ланцюжок. Таким чином, отримаємо робочий ключ

k = (k 0, k 1 ,..., k n), k j = k (j mod r, 0  j <.

Наприклад, при r =  і ключі користувача 15 8 2 10 11 4 18 робочий ключ буде періодичною послідовністю:

15 8 2 10 11 4 18 15 8 2 10 11 4 18 15 8 2 10 11 4 18 ...


Визначення. Підстановка Вижинера VI G k визначається як

VI G k: (x 0, x 1, ..., x n-1)  (y 0, y 1, ..., y n-1) = (x 0 + k, x 1 + k,. .., x n-1 + k).

Таким чином:

1) вихідний текст x ділиться на r фрагментів

x i = (x i, x i + r, ..., x i + r (n-1)), 0  i <r;

2) i-й фрагмент вихідного тексту x i шифрується за допомогою підстановки Цезаря C k:

(X i, x i + r, ..., x i + r (n-1))  (y i, y i + r, ..., y i + r (n-1)),

Варіант системи підстановок Вижинера при m = 2 називається системою Вернама (1917 р).

У той час ключ k = (k 0, k 1 ,..., k к-1) записувався на паперовій стрічці. Кожна літера в повідомленні в алфавіті, розширеному деякими додатковими знаками, спочатку переводилася з використанням коду Бодо в пятібітовий символ. До початкового тексту Бодо додавався ключ (по модулю 2). Старовинний телетайп фірми AT & T зі зчитувальним пристроєм Вернама та обладнанням для шифрування, використовувався корпусом зв'язку армії США.

Дуже поширена погана з точки зору секретності практика використовувати слово або фразу в якості ключа для того, щоб k = (k 0, k 1 ,..., k к-1) було легко запам'ятати. У ІВ для забезпечення безпеки інформації це неприпустимо. Для отримання ключів повинні використовуватися програмні або апаратні засоби випадкової генерації ключів.


Приклад. Перетворення тексту за допомогою підстановки Вижинера (r = 4)

Оригінальний текст (ІТ1):

НЕ_СЛЕДУЕТ_ВЫБИРАТЬ_НЕСЛУЧАЙНЫЙ_КЛЮЧ

Ключ: КЛЮЧ

Розіб'ємо вихідний текст на блоки по 4 символу:

НЕ_С Леду ЕТ_В ИБІР АТЬ_ НЕСЛИ УЧАЙ НИЙ_ КЛЮЧ

і накладемо на них ключ (використовуючи таблицю Вижинера):

H + К = Ч, Е + Л = Р і т.д.

Отримуємо зашифрований (ЗТ1) текст:

ЧРЕЗ ХРБЙ ПЕЕЩ ДМЕЖ КЕЩЦ ЧРОБ ЕБЮ_ ЧЕЖЦ ФЦИН

Можна висунути та узагальнену систему Вижинера. ЇЇ можна сформулювати не тільки за допомогою підстановки Цезаря.

Нехай x - підмножина симетричної групи SYM (Z m).

Визначення. R-Многоалфавитная ключ шифрування є r-набір  = ( 0,1, ...,  r -1) з елементами в x.

Узагальнена система Вижинера перетворює вихідний текст (x 0, x 1 ,..., x n-1) у шифрований текст (y 0, y 1 ,..., y n-1) за допомогою ключа  = ( 0,1, ...,  r -1) за правилом

VI G k: (x 0, x 1 ,..., x n-1)  (y 0, y 1 ,..., y n-1) = ( 00),11), ...,  n-1 (x n-1)),

де використовується умова  i =  i mod r.


Слід визнати, що і Многоалфавитная підстановки в принципі доступні криптоаналітичних дослідженню. Крипостійкість Многоалфавитная систем різко зменшується із зменшенням довжини ключа.

Проте така система як шифр Вижинера допускає нескладну апаратну або програмну реалізацію і при досить великій довжині ключа може бути використаний в сучасних ІС.

Гаммирование

Гамування є також широко застосовуваним криптографічним перетворенням. Насправді межа між гаммированием і використанням нескінченних ключів і шифрів Вижинера, про які йшлося вище, дуже умовна.

Принцип шифрування гаммированием полягає в генерації гами шифру за допомогою датчика псевдовипадкових чисел і накладення отриманої гами на відкриті дані оборотним чином (наприклад, використовуючи додавання по модулю 2).

Процес дешифрування даних зводиться до повторної генерації гами шифру при відомому ключі і накладення такої гами на зашифровані дані.

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

Метод гамування стає безсилим, якщо зловмисникові стає відомий фрагмент вихідного тексту і відповідна йому шифрограма. Простим вирахуванням за модулем виходить відрізок ПСП і по ньому відновлюється вся послідовність. Зловмисники може зробити це на основі припущень про зміст вихідного тексту. Так, якщо більшість посилаються повідомлень починається зі слів "СОВ.СЕКРЕТНО", то криптоаналіз всього тексту значно полегшується. Це слід враховувати при створенні реальних систем інформаційної безпеки.

Нижче розглядаються найбільш поширені методи генерації гам, які можуть бути використані на практиці.


Датчики ПСЧ

Щоб отримати лінійні послідовності елементів гами, довжина яких перевищує розмір шифрованих даних, використовуються датчики ПСЧ. На основі теорії груп було розроблено декілька типів таких датчиків.

Конгруентні датчики

В даний час найбільш доступними і ефективними є конгруентні генератори ПСП. Для цього класу генераторів можна зробити математично строге висновок про те, якими властивостями володіють вихідні сигнали цих генераторів з точки зору періодичності та випадковості.

Одним із добрих конгруентних генераторів є лінійний конгруентний датчик ПСЧ. Він виробляє послідовності псевдовипадкових чисел T (i), описувані співвідношенням

T (i +1) = (A * T (i) + C) mod m,

де А і С - константи, Т (0) - вихідна величина, вибрана в якості породжує числа. Очевидно, що ці три величини і утворюють ключ.

Такий датчик ПСЧ генерує псевдовипадкові числа з певним періодом повторення, що залежать від вибраних значень А і С. Значення m зазвичай встановлюється рівним 2n, де n - довжина машинного слова в бітах. Датчик має максимальний період М до того, як генерується послідовність почне повторюватися. З причини, зазначеної раніше, необхідно вибирати числа А і С такі, щоб період М був максимальним. Як показано Д. Кнутом, лінійний конгруентний датчик ПСЧ має максимальну довжину М тоді і тільки тоді, коли С - непарне, і А mod 4 = 1.

Для шифрування даних за допомогою датчика ПСЧ може бути обраний ключ будь-якого розміру. Наприклад, нехай ключ складається з набору чисел x (j) розмірністю b, де j = 1, 2, ..., n. Тоді створювану гаму шифру G можна представити як об'єднання непересічних множин H (j).

Датчики М-послідовностей 5

М-послідовності також популярні, завдяки відносній легкості їх реалізації.

М-послідовності є лінійними рекурентні послідовності максимального періоду, що формуються k-розрядними генераторами на основі регістрів зсуву. На кожному такті надійшов біт зрушує k попередніх і до нього додається їх сума по модулю 2. Витісняється біт додається до гами.

Строго це можна представити у вигляді наступних відносин:

r 1: = r 0 r 2: = r 1 ... r k-1: = r k-2

r 0: = a 0 r 1  a 1 r 2  ...  a k-2 r k-1

Г i: = r k-

Тут r 0 r 1 ... r k-1 - K однобітних регістрів, a 0 a 1 ... a k-1 - коефіцієнти неприводимого двійкового полінома ступеня k-1. Г i - i-е значення вихідної гами.

Період М-послідовності виходячи з її властивостей дорівнює 2 k -1.

Іншою важливою властивістю М-послідовності є обсяг ансамблю, тобто кількість різних М-послідовностей для заданого k. Ця характеристика наведена в таблиці:


k

Обсяг ансамблю
5 6
6 8
7 18
8 16
9 48
10 60
16 2048

Очевидно, що такі обсяги ансамблів послідовності неприйнятні.

Тому на практиці часто використовують послідовності Голда, що утворюються підсумовуванням декількох М-послідовностей. Обсяг ансамблів цих послідовностей на кілька порядків перевершують обсяги ансамблів породжують М-послідовностей. Так при k = 10 ансамбль збільшується від 1023 (М-послідовності) до 388000.

Також перспективними представляються нелінійні датчики ПСП (наприклад зсувні регістри з елементом І в колі зворотного зв'язку), однак їх властивості ще недостатньо вивчені.

Можливі й інші, більш складні варіанти вибору породжують чисел для гами шифру.


Шифрування за допомогою датчика ПСЧ є досить поширеним криптографічним методом. Багато в чому якість шифру, побудованого на основі датчика ПСЧ, визначається не тільки і не стільки характеристиками датчика, скільки алгоритмом отримання гами. Один з фундаментальних принципів криптологических практики свідчить, навіть складні шифри можуть бути дуже чутливі до простих дій.

Стандарт шифрування даних ГОСТ 28147-89 червня

Важливим завданням у забезпеченні гарантованої безпеки інформації в ІС є розробка і використання стандартних алгоритмів шифрування даних. Першим серед подібних стандартів став американський DES, що представляє собою послідовне використання замін і перестановок. В даний час все частіше говорять про невиправдану складність і невисокою криптостійкості. На практиці доводиться використовувати його модифікації.

Більш ефективним є вітчизняний стандарт шифрування даних.

Він рекомендований до використання для захисту будь-яких даних, представлених у вигляді двійкового коду, хоча не виключаються й інші методи шифрування. Даний стандарт формувався з урахуванням світового досвіду, і зокрема, були прийняті до уваги недоліки і нереалізовані можливості алгоритму DES, тому використання стандарту ГОСТ переважно. Алгоритм досить складний і нижче буде описана в основному його концепція.

Введемо асоціативну операцію конкатенації, використовуючи для неї мультипликативную запис. Крім того будемо використовувати наступні операції додавання:

  • A  B - побітове додавання за модулем 2;

  • A [+] B - додавання за модулем 2 32;

  • A {+} B - додавання за модулем 2 32 -1;.

Алгоритм криптографічного перетворення передбачає кілька режимів роботи. У всіх режимах використовується ключ W довжиною 256 біт, представлений у вигляді восьми 32-розрядних чисел x (i).

W = X (7) X (6) X (5) X (4) X (3) X (2) X (1) X (0)

Для дешифрування використовується той самий ключ, але процес дешифрування є інверсним по відношенню до вихідного.

Найпростіший з можливих режимів - заміна.

Нехай відкриті блоки розбиті на блоки по 64 біт у кожному, які позначимо як T (j).

Чергова послідовність біт T (j) розділяється на дві послідовності B (0) і A (0) по 32 біта (правий і лівий блоки). Далі виконується ітеративний процес шифрування описуваний наступними формулами, вид який залежить від: i:

  • Для i = 1, 2, ..., 24, j = (i-1) mod 8;

A (i) = f (A (i-1) [+] x (j))  B (i-1)

B (i) = A (i-1)

  • Для i = 25, 26, ..., 31, j = 32-i;

A (i) = f (A (i-1) [+] x (j))  B (i-1)

B (i) = A (i-1)

  • Для i = 32

A (32) = A (31)

B (32) = f (A (31) [+] x (0))  B (31).

Тут i позначає номер ітерації. Функція f - функція шифрування.

Функція шифрування включає дві операції над 32-розрядним аргументом.

Перша операція є підстановкою K. Блок підстановки До складається з 8 вузлів заміни К (1) ... До (8) з пам'яттю 64 біта кожен. Вступник на блок підстановки 32-розрядний вектор розбивається на 8 послідовно що йдуть 4-розрядних вектора, кожен з який перетвориться в 4-розрядний вектор відповідним вузлом заміни, які представляють з себе таблицю з 16 цілих чисел у діапазоні 0 ... 15. Вхідний вектор визначає адресу рядки в таблиці, число з якої є вихідним вектором. Потім 4-розрядні вектори послідовно об'єднуються в 32-розрядний вихідний.

Друга операція - циклічний зсув вліво 32-розрядного вектора, отриманого в результаті підстановки К. 64-розрядний блок зашифрованих даних Т представляється у вигляді

Т = А (32) У (32).

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

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

Інший режим шифрування називається режимом гамування.

Відкриті дані, розбиті на 64-розрядні блоки T (i) (i = 1,2 ,..., m) (M визначається обсягом шифрованих даних), зашифровуються в режимі гамування шляхом порозрядного складання по модулю 2 з гамою шифру Г ш, яка виробляється блоками по 64 біт, тобто

Г ш = (Г (1), Г (2 ),...., Г (m)).

Рівняння шифрування даних в режимі гамування може бути представлене в наступному вигляді:

Ш (i) = A (Y (i-1)  C2, Z (i-1)) {+} C (1)  T (i) = Г (i)  T (i)

У цьому рівнянні Ш (i) позначає 64-розрядний блок зашифрованого тексту, А - функцію шифрування в режимі простої заміни (аргументами цієї функції є два 32-розрядних числа). С1 і С2 - константи, задані в ГОСТ 28147-89. Величини y (i) і Z (i) визначаються ітераційно по мірі формування гами наступним чином:

(Y (0), Z (0)) = A (S), S - 64-розрядна двійкова послідовність

(Y (i), Z (i)) = (Y (i-1) [+] C2, Z (i-1) {+} C (1)), i = 1, 2, ..., m .

64-розрядна послідовність, звана сінхропосилку, не є секретним елементом шифру, але її наявність необхідна як на передавальній стороні, так і на приймальній.

Режим гамування зі зворотним зв'язком дуже схожий на режим гамування. Як і в режимі гамування відкриті дані, розбиті на 64-розрядні блоки T (i), зашифровуються шляхом порозрядного складання по модулю 2 з гамою шифру Г ш, яка виробляється блоками по 64 біт:

Г ш = (Г (1), Г (2), ..., Г (m)).

Рівняння шифрування даних в режимі гамування зі зворотним зв'язком виглядають наступним чином:

Ш (1) = A (S)  T (1) = Г (1)  T (1),

Ш (i) = A (Ш (i-1)  T (i) = Г (i)  T (i), i = 2, 3, ..., m.

У ГОСТ 28147-89 визначається процес вироблення імітовставки, який единообразен для всіх режимів шифрування. Имитовставка - це блок з р біт (имитовставка І р), який виробляється або перед шифруванням усього повідомлення. або паралельно із шифруванням по блоках. Параметр р вибирається у відповідності з необхідним рівнем імітозащіщенності.

Для отримання імітовставки відкриті дані представляються також у вигляді блоків по 64 біт. Перший блок відкритих даних Т (1) піддається перетворенню, що відповідає першим 16 циклам алгоритму режиму простої заміни. Причому в якості ключа використовується той же ключ, що і для шифрування даних. Отримане 64-розрядно число підсумовується з відкритим блоком Т (2) і сума знову піддається 16 циклам шифрування для режиму простої заміни. Дана процедура повторяться для всіх m блоків повідомлення. З отриманого 64-розрядного числа вибирається відрізок І р довжиною р біт.

Имитовставка передається по каналу зв'язку після зашифрованих даних. На приймальному боці аналогічним чином із прийнятого повідомлення виділяється? имитовставка і порівнюється з отриманою звідки?. У разі розбіжності имитовставок повідомлення вважається помилковим.

Системи з відкритим ключем

Як би не були складні і надійні криптографічні системи - їх слабке місць при практичній реалізації - проблема розподілу ключів. Для того, щоб був можливий обмін конфіденційною інформацією між двома суб'єктами ІВ, ключ повинен бути згенерований одним з них, а потім якимось чином знову ж таки у конфіденційному порядку переданий іншому. Тобто в загальному випадку для передачі ключа знову ж таки потрібно використання якийсь криптосистеми.

Для вирішення цієї проблеми на основі результатів, отриманих класичної та сучасної алгеброю, були запропоновані системи з відкритим ключем.

Суть їх полягає в тому, що кожним адресатом ІС генеруються два ключі, зв'язані між собою за певним правилом. Один ключ оголошується відкритим, а інший закритим. Відкритий ключ публікується і доступний кожному, хто бажає послати повідомлення адресату. Секретний ключ зберігається в таємниці.

Вихідний текст шифрується відкритим ключем адресата і передається йому. Зашифрований текст у принципі не може бути розшифрований тим же відкритим ключем. Дешифрування повідомлення можливе тільки з використанням закритого ключа, який відомий тільки самому адресату.



Система

з відкритим ключем

Система

з відкритим ключем









Криптографічні системи з відкритим ключем використовують так звані необоротні або односторонні функції, які мають наступну властивість: при заданому значенні x відносно просто обчислити значення f (x), однак якщо y = f (x), то немає простого шляху для обчислення значення x.

Безліч класів необоротних функцій і породжує всю розмаїтість систем з відкритим ключем. Однак не всяка необоротна функція годиться для використання в реальних ІС.

У самому визначенні необоротності присутня невизначеність. Під необоротністю розуміється не теоретична необоротність, а практична неможливість обчислити зворотне значення використовуючи сучасні обчислювальні засоби за доступний для огляду інтервал часу.

Тому щоб гарантувати надійний захист інформації, до систем з відкритим ключем (СОК) пред'являються дві важливі і очевидних вимоги:

1. Перетворення вихідного тексту повинно бути незворотнім і виключати його відновлення на основі відкритого ключа.

2. Визначення закритого ключа на основі відкритого також повинно бути неможливим на сучасному технологічному рівні. При цьому бажана точна нижня оцінка складності (кількості операцій) розкриття шифру.

Алгоритми шифрування з відкритим ключем отримали широке поширення в сучасних інформаційних системах. Так, алгоритм RSA став світовим стандартом де-факто для відкритих систем і рекомендований МККТТ.

Взагалі ж усі пропоновані сьогодні криптосистеми з відкритим ключем спираються на один з наступних типів необоротних перетворень:

  1. Розкладання великих чисел ан прості множники.

  2. Обчислення логарифма в кінцевому полі.

  3. Обчислення коренів алгебраїчних рівнянь.

Тут же слід зазначити, що алгоритми криптосистеми з відкритим ключем (СОК) можна використовувати в трьох призначеннях.

1. Як самостійні засоби захисту переданих і збережених даних.

2. Як засоби для розподілу ключів. Алгоритми СОК більш трудомісткі, ніж традиційні криптосистеми. Тому часто на практиці раціонально за допомогою СОК розподіляти ключі, обсяг яких як інформації незначний. А потім за допомогою звичайних алгоритмів здійснювати обмін великими інформаційними потоками.

  1. Засоби аутентифікації користувачів. Про це йтиметься у розділі «Електронний підпис».

Нижче розглядаються найбільш поширені системи з відкритим ключем.

Алгоритм RSA

Незважаючи на досить велику кількість різних СОК, найбільш популярна - криптосистема RSA, розроблена в 1977 році і отримала назву на честь її творців: Рона Ривеста 7 , Аді Шаміра і Леонарда Ейдельмана.

Вони скористалися тим фактом, що знаходження великих простих чисел в обчислювальному відношенні здійснюється легко, але розкладання на множники добутку двох таких чисел практично нездійсненно. Доведено (теорема Рабіна), що розкриття шифру RSA еквівалентно такому розкладанню. Тому для будь-якої довжини ключа можна дати нижню оцінку числа операцій для розкриття шифру, а з урахуванням продуктивності сучасних комп'ютерів оцінити і необхідний на це час.

Можливість гарантовано оцінити захищеність алгоритму RSA стала однією з причин популярності цієї СОК на тлі десятків інших схем. Тому алгоритм RSA використовується в банківських комп'ютерних мережах, особливо для роботи з віддаленими клієнтами (обслуговування кредитних карток).

В даний час алгоритм RSA використовується в багатьох стандартах, серед яких SSL, S-HHT P, S-MIME, S / WAN, STT і P CT.

Розглянемо математичні результати, покладені в основу цього алгоритму.

Теорема 1. (Мала теорема Ферма.)

Якщо р - просте число, то

x p-1 = 1 (mod p) (1)

для будь-якого х, простого відносно р, і

x p = Х (mod p) (2)

для будь-якого х.

Доказ. Досить довести справедливість рівнянь (1) і (2) для х  Z p. Проведемо доказ методом індукції.

Очевидно, що рівняння (8.2.2) виконується при х = 0 і 1. Далі

x p = (x -1 +1) p =  C (p, j) (x -1) j = (x -1) p +1 (mod p),

0  j  p

так як C (p, j) = 0 (mod p) при 0 p. З урахуванням цієї нерівності і пропозицій методу доказу по індукції теорема доведена.

Визначення. Функцією Ейлера  (n) називається число позитивних цілих, менших n і простих щодо n.

n 2 3 4 5 6 7 8 9 10 11 12
 (n) 1 2 2 3 2 6 4 6 4 10 4

Теорема 2. Якщо n = pq, (p і q - відмінні один від одного прості числа), то

 (n) = (p -1) (q -1).

Теорема 3. Якщо n = pq, (p і q - відмінні один від одного прості числа) та х - просте відносно р і q, то

x  (n) = 1 (mod n).

Слідство. Якщо n = pq, (p і q - відмінні один від одного прості числа) і е просте відносно  (n), то відображення

Е e, n: xx e (mod n)

є взаємно однозначним на Z n.

Очевидним є і той факт, що якщо ті - просте відносно  (n), то існує ціле d, таке, що

ed = 1 (mod  (n)) (3)

На цих математичних фактах і заснований популярний алгоритм RSA.

Нехай n = pq, де p і q - різні прості числа. Якщо e і d задовольняють рівнянню (8.2.3), то відображення Е e, n і Е d, n є інверсіями на Z n. Як Е e, n, так і Е d, n легко розраховуються, коли відомі e, d, p, q. Якщо відомі e і n, але p і q невідомі, то Е e, n представляє собою односторонню функцію; знаходження Е d, n по заданому n рівносильно розкладанню n. Якщо p і q - досить великі прості, то розкладання n практично не можливо. Це і закладено в основу системи шифрування RSA.

Користувач i вибирає пару різних простих p i і q i і розраховує пару цілих (e i, d i), які є простими щодо  (n i), де n i = p i q i. Довідкова таблиця містить публічні ключі {(e i, n i)}.

Припустимо, що вихідний текст

x = (x 0, x 1, ..., x n-1), x  Z n, 0  i <n,

спочатку представлений по підставі n i:

N = c 0 + c i n i +....

Користувач i зашифровує текст при передачі його користувачеві j, застосовуючи до n відображення Ed i, n i:

N  Ed i, n i n = n '.

Користувач j робить дешифрування n ', застосовуючи Ee i, n i:

N ' Ee i, n i n' = Ee i, n i Ed i, n i n = n.

Очевидно, для того щоб знайти інверсію Ed i, n i по відношенню до Ee i, n i, потрібно знання множників n = p i q i. Час виконання найкращих з відомих алгоритмів розкладання при n = 10 100 на сьогоднішній день виходить за межі сучасних технологічних можливостей.

Розглянемо невеликий приклад, який ілюструє застосування алгоритму RSA.

Приклад Зашифруємо повідомлення "САВ". Для простоти будемо використовувати маленькі числа (на практиці застосовуються набагато більші).

  1. Виберемо p = 3 і q = 11.

  2. Визначимо n = 3 * 11 = 33.

  3. Знайдемо (p -1) (q -1) = 20. Отже, в якості d, взаємно просте з 20, наприклад, d = 3.

  4. Виберемо число е. В якості такого числа може бути взято будь-яке число, для якого задовольняється співвідношення (е * 3) (mod 20) = 1, наприклад 7.

  5. Уявімо шіфруемие повідомлення як послідовність цілих чисел за допомогою відображення: А  1, В  2, З  3. Тоді повідомлення приймає вигляд (3,1,2). Зашифруємо повідомлення за допомогою ключа {7,33}.

ШТ1 = (3 7) (mod 33) = 2187 (mod 33) = 9,

ШТ2 = (1 7) (mod 33) = 1 (mod 33) = 1,

ШТ3 = (2 7) (mod 33) = 128 (mod 33) = 29.

  1. Розшифруємо отримане зашифроване повідомлення (9,1,29) на основі закритого ключа {3,33}:

ІТ1 = (9 3) (mod 33) = 729 (mod 33) = 3,

ІТ2 = (1 3) (mod 33) = 1 (mod 33) = 1,

ІТ3 = (29 3) (mod 33) = 24 389 (mod 33) = 2.

Отже, в реальних системах алгоритм RSA реалізується наступним чином: кожен користувач вибирає два великих простих числа, і відповідно до описаного вище алгоритмом вибирає два простих числа e і d. Як результат множення перших двох чисел (p і q) встановлюється n.

{E, n} утворює відкритий ключ, а {d, n} - закритий (хоча можна взяти і навпаки).

Відкритий ключ публікується і доступний кожному, хто бажає послати власнику ключа повідомлення, яке зашифровується зазначеним алгоритмом. Після шифрування, повідомлення неможливо розкрити за допомогою відкритого ключа. Власник же закритого ключа без праці може розшифрувати прийняте повідомлення.

Практична реалізація RSA

В даний час алгоритм RSA активно реалізується як у вигляді самостійних криптографічних продуктів 8 , так і в якості вбудованих засобів в популярних додатках 9 .

Важлива проблема практичної реалізації - генерація великих простих чисел. Рішення задачі «в лоб» - генерація випадкового великого числа n (Непарного) і перевірка його подільності на множники від 3 аж до n 0.5. У разі неуспіху слід узяти n +2 і так далі. 10

У принципі в якості p і q можна використовувати «майже» прості числа, тобто числа для яких ймовірність того, що вони прості, прагне до 1. Але у випадку, якщо використано складене число, а не просте, крипостійкість RSA падає. Є непогані алгоритми, які дозволяють генерувати «майже» прості числа з рівнем довіри два -100.

Інша проблема - ключі якої довжини слід використовувати?

Для практичної реалізації алгоритмів RSA корисно знати оцінки трудомісткості розкладання простих чисел різної довжини, зроблені Шроппелем.

lo g 10 n

Число операцій Примітки
50

1.4 * 10 10

Розкриваємо на суперкомп'ютерах
100

2.3 * 10 15

На межі сучасних технологій
200

1.2 * 10 23

За межами сучасних технологій
400

2.7 * 10 34

Потребує істотних змін у технології
800

1.3 * 10 51

Не розкриваємо

В кінці 1995 року вдалося практично реалізувати розкриття шифру RSA для 500-значного ключа. Для цього за допомогою мережі Інтернет було задіяно 1600 комп'ютерів.

Самі автори RSA рекомендують використовувати такі розміри модуля n:

  • 768 біт - для приватних осіб;

  • 1024 біт - для комерційної інформації;

  • 2048 біт - для особливо секретної інформації. 11

Третій важливий аспект реалізації RSA - обчислювальний. Адже доводиться використовувати апарат довгої арифметики. Якщо використовується ключ завдовжки k біт, то для операцій по відкритому ключу потрібен Про (k 2) операцій, по закритому ключу - Про (k 3) операцій, а для генерації нових ключів потрібно О (k 4) операцій.

Криптографічний пакет BSAFE 3.0 (RSA DS) на комп'ютері Pentium-90 здійснює шифрування із швидкістю 21.6 Кбит / c для 512-бітового ключа і із швидкістю 7.4 Кбит / c для 1024 бітного. Сама «швидка» апаратна реалізація забезпечує швидкості в 60 разів більше.

У порівнянні з тим же алгоритмом DES, RSA вимагає в тисячі і десятки тисяч разів більший час.

Криптосистема Ель-Гамаля

Дана система є альтернативою RSA і при рівному значенні ключа забезпечує ту ж крипостійкість 12 .

На відміну від RSA метод Ель-Гамаля заснований на проблемі дискретного логарифма. Цим він схожий на алгоритм Діффі-Хелмана. Якщо зводити число до степеня в кінцевому полі досить легко, то відновити аргумент за значенням (тобто знайти логарифм) досить важко.

Основу системи складають параметри p і g - числа, перше з яких - просте, а друге - ціле.

Олександр генерує секретний ключ а й обчислює відкритий ключ y = g а mod p. Якщо Борис хоче послати Олександру повідомлення m, то він вибирає випадкове число k, менше p і обчислює

y 1 = G k mod p і

y 2 = My k,

де  означає побітове додавання за модулем 2. Потім Борис посилає (y 1, y 2) Олександру.

Олександр, отримавши зашифроване повідомлення, відновлює його:

m = (y 1 a mod p)y 2.

Алгоритм цифрового підпису DSA, розроблений NIST (National In s titute of Standa r d and Technolo g y) і є частиною стандарту DSS частково спирається на розглянутий метод.

Криптосистеми на основі еліптичних рівнянь

Еліптичні криві - математичний об'єкт, який може визначений над будь-яким полем (кінцевим, дійсним, раціональним або комплексним). У криптографії звичайно використовуються кінцеві поля. Еліптична крива є безліч точок (X, y), що задовольнить наступному рівнянню:

y 2 = x 3 + ax + b,

а також нескінченно віддалена точка. Для точок на кривій досить легко вводиться операція додавання, яка відіграє ту ж роль, що й операція множення в криптосистемах RSA і Ель-Гамаля.

У реальних криптосистемах на базі еліптичних рівнянь використовується рівняння

y 2 = x 3 + ax + b mod p,

де р - просте.

Проблема дискретного логарифма на еліптичній кривій полягає в наступному: дана точка G на еліптичній кривій порядку r (кількість точок на кривій) і інша точка Y на цій же кривій. Потрібно знайти єдину точку x таку, що Y = x G, тобто Y є х-я ступінь G.


Електронний підпис

У чому полягає проблема аутентифікації даних?

Наприкінці звичайного листа або документа виконавець чи відповідальна особа зазвичай ставить свій підпис. Подібна дія зазвичай переслідує дві мети. По-перше, одержувач має можливість переконатися в істинності листа, звіривши підпис з наявним у нього зразком. По-друге, особистий підпис є юридичним гарантом авторства документа. Останній аспект особливо важливий при укладанні різного роду торговельних угод, складанні довіреностей, зобов'язань і т.д.

Якщо підробити підпис людини на папері вельми непросто, а встановити авторство підпису сучасними криміналістичними методами - технічна деталь, то з підписом електронної справа йде інакше. Підробити ланцюжок бітів, просто її скопіювавши, або непомітно внести нелегальні виправлення в документ зможе будь-який користувач.

З широким розповсюдженням в сучасному світі електронних форм документів (у тому числі і конфіденційних) і засобів їх обробки особливо актуальною стала проблема встановлення автентичності й авторства безпаперовій документації.

У розділі криптографічних систем з відкритим ключем було показано, що при всіх перевагах сучасних систем шифрування вони не дозволяють забезпечити аутентифікацію даних. Тому кошти аутентифікації повинні використовуватися в комплексі і криптографічними алгоритмами.

Отже, нехай є два користувачі Олександр і Борис. Від яких порушень та дій зловмисника повинна захищати система аутентифікації.

Відмова (ренегатство).

Олександр заявляє, що він не посилав повідомлення Борису, хоча насправді він все-таки посилав.

Для виключення цього порушення використовується електронна (або цифрова) підпис.

Модифікація (переробка).

Борис змінює повідомлення і стверджує, що дане (змінене) повідомлення послав йому Олександр.

Підробка.

Борис формує повідомлення і стверджує, що дане (змінене) повідомлення послав йому Олександр.

Активний перехоплення.

Володимир перехоплює повідомлення між Олександром і Борисом з метою їх прихованою модифікації.

Для захисту від модифікації, підробки і маскування використовуються цифрові сигнатури.

Маскування (імітація).

Володимир посилає Борису повідомлення від імені Олександра.

У цьому випадку для захисту також використовується електронний підпис.

Потім.

Володимир повторює раніше передане повідомлення, яке Олександра посилав раніше Борису. Незважаючи на те, що вживаються всі необхідні заходи захисту від повторів, саме на цей метод припадає більшість випадків незаконного зняття і витрати грошей в системах електронних платежів.

Найбільш дієвим методом захисту від повтору є

  • використання імітовставок,

  • облік вхідних повідомлень.











Можливі порушення захисту повідомлень,. посилаються користувачем А користувачу В.

Електронний підпис на основі алгоритму RSA

Найбільш простим і розповсюдженим інструментом електронного підпису є вже знайомий алгоритм RSA. Нижче воно буде розглянута в якості прикладу. Крім цього існують ще десятки інших схем цифрового підпису.

Припустимо, що

d, p, q - секретні, а е, n = pq - відкриті.

Зауваження.

1. Розкладання по n дає:  (n) = (p-1) (q-1); знаючи  (n) і e, можна знайти d.

2. З e і d можна знайти кратність  (n); кратність  (n) дозволяє визначити дільники n.

Нехай DATA - передане Олександром Борису повідомлення.

Олександр підписує DATA для Бориса при передачі:

Ee B, n B { Ed A, n A {DATA}}.

При цьому він використовує:

Борис може читати це підписане повідомлення спочатку за допомогою закритого ключа Ed В, n У Бориса з метою отримання

Ed A, n A {DATA} = Ed B, n B {Ee B, n B {Ed A, n A {DATA}}}

і потім - відкритого ключа Ee A, n A Олександра для отримання

DATA = Ee A, n A {Ed A, n A {DATA}}.

Таким чином, у Бориса з'являється повідомлення DATA, надіслане йому Олександром.

Очевидно, що дана схема дозволяє захиститися від декількох видів порушень.

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

Порушник без знання секретного ключа не може ні сформувати, ні зробити осмислене зміна повідомлення, що передається по лінії зв'язку.

Дана схема дозволяє при вирішенні багатьох конфліктних ситуацій обходитися без посередників.

Іноді немає необхідності зашифровувати передане повідомлення, але потрібно його скріпити електронним підписом. У цьому випадку текст шифрується закритим ключем відправника і отримана ланцюжок символів прикріплюється до документа. Одержувач за допомогою відкритого ключа відправника розшифровує підпис і звіряє її з текстом.


Оригінальний текст

Оригінальний текст

Оригінальний текст


Підпис

Вихідний текст '






У 1991 р. Національний інститут стандартів і технології (NIST) запропонував для з'явився тоді алгоритму цифрового підпису DSA (Di g ital Si g natu r e Al g o r ithm) стандарт DSS (Di g ital Si g natu r e Standa r d), в основу якого покладені алгоритми Ель-Гамаля і RSA. 13

Цифрова сигнатура

Часто виникають ситуації, коли одержувач повинен вміти довести достовірність повідомлення зовнішньому особі. Щоб мати таку можливість, до переданих повідомленнями повинні бути приписані так звані цифрові сигнатури.

Цифрова сигнатура - це рядок символів, що залежить як від ідентифікатора відправника, так і змісту повідомлення.


повідомлення

сигнатура







Цифрова сигнатура

Ніхто при цьому крім користувача А не може обчислити цифрову сигнатуру А для конкретного повідомлення. Ніхто, навіть сам користувач не може змінити посланого повідомлення так, щоб сигнатура залишилася незмінною. Хоча одержувач повинен мати можливість перевірити чи є цифрова сигнатура повідомлення справжньою. Щоб перевірити цифровий сигнатуру, користувач В повинен представити посереднику З інформацію, яку він сам використовував для верифікації сигнатури.

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

Розглянемо типову схему цифрової сигнатури.

Нехай Е - функція симетричного шифрування і f - функція відображення деякого безлічі повідомлень на підмножину потужності р з послідовності {1, ..., n}.

Наприклад р = 3 і n = 9. Якщо m - повідомлення, то в якості f можна взяти функцію f (m) = {2, 5, 7}.

Для кожного повідомлення користувач А вибирає деякий безліч ключів K = [K 1, ..., K n} і параметрів V = {v 1, ..., v n} для використання в якості позначок повідомлення, яке буде надіслано В. Множини V і V '= {E (v 1, K 1) ..., E (v n, K n)} надсилаються користувачеві В і заздалегідь обраному посереднику С.

Нехай m - повідомлення і idm - об'єднання ідентифікаційних номерів відправника, одержувача і номер повідомлення. Якщо f ({idm, m}), то цифрова сигнатура m є безліч K '= [K i, ..., K j}. Повідомлення m, ідентифікаційний номер idm і цифрова сигнатура К 'надсилаються В.

V, V '


повідомлення, K '




V, V '




Одержувач У перевіряє сигнатуру наступним чином. Він обчислює функцію f ({idm, m}) і перевіряє її рівність К '. Потім він перевіряє, що підмножина {v i, ..., v j} правильно зашифроване у вигляді підмножини {E (v i, K i) ..., E (v j, K j)} безлічі V '.

У конфліктній ситуації У посилає З повідомлення m, ідентифікаційний номер idm і безліч ключів K ', яке В оголошує сигнатурою m. Тоді посередник З так само, як і В, буде здатний перевірити сигнатуру. Імовірність розкриття двох повідомлень з одним і тим же значенням функції f повинна бути дуже мала. Щоб гарантувати це, число n має бути достатньо великим, а число р повинно бути більше 1, але менше n.

Ряд недоліків цієї моделі очевидний:

Проте навіть така схема цифрової сигнатури може використовуватися в інформаційних системах, в яких необхідно забезпечити аутентифікацію та захист переданих повідомлень.

Хеш-функції

Використання цифрової сигнатури припускає використання деяких функцій шифрування:

S = H (k, T),

де S - сигнатура, k - ключ, T - вихідний текст.

Функція H (k, T) - є хеш-функцією, якщо вона задовольняє таким умовам:

  1. вихідний текст може бути довільної довжини;

  2. саме значення H (k, T) має фіксовану довжину;

  3. значення функції H (k, T) легко обчислюється для будь-якого аргументу;

  4. відновити аргумент за значенням з обчислювальної точки зору - практично неможливо;

  5. функція H (k, T) - однозначна 14 .

З визначення випливає, що для будь-хеш-функції є тексти-близнюки - що мають однакове значення хеш-функції, тому що потужність безлічі аргументів необмежено більше потужності множини значень. Такий факт отримав назву «ефект дня народження». 15

Найбільш відомі з хеш-функцій - MD2, MD4, MD5 і SHA.

Три алгоритми серії MD розроблені Рівестом в 1989-му, 90-м і 91-му році відповідно. Всі вони перетворять текст довільної довжини в 128-бітну сигнатуру.

Алгоритм MD2 передбачає:

Алгоритм MD4 передбачає:

В алгоритмі MD4 досить швидко було знайдено «дірки», тому він був замінений алгоритмом MD5, в якому кожен блок бере участь не в трьох, а в чотирьох різних циклах.

Алгоритм SHA (Secure Hash Algorithm) розроблений NIST (National In s titute of Standa r d and Technolo g y) і повторює ідеї серії MD. У SHA використовуються тексти більше 2 64 біт, які закриваються сигнатурою довжиною 160 біт. Даний алгоритм передбачається використовувати в програмі Capstone 17 .


Управління ключами

Крім вибору підходящої для конкретної ІС криптографічного системи, важлива проблема - управління ключами. Як би не була складна і надійна сама криптосистема, вона заснована на використанні ключів. Якщо для забезпечення конфіденційного обміну інформацією між двома користувачами процес обміну ключами тривіальний, то в ІС, де кількість користувачів складає десятки і сотні управління ключами - серйозна проблема.

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

Управління ключами - інформаційний процес, що включає в себе три елементи:

Розглянемо, як вони повинні бути реалізовані для того, щоб забезпечити безпеку ключової інформації в ІС.

Генерація ключів

На самому початку розмови про криптографічних методах було сказано, що не варто використовувати невипадкові ключі з метою легкості їх запам'ятовування. У серйозних ІС використовуються спеціальні апаратні і програмні методи генерації випадкових ключів. Як правило використовують датчики ПСЧ. Однак ступінь випадковості їх генерації повинна бути достатньо високим. Ідеальним генераторами є пристрої на основі "натуральних" випадкових процесів. Наприклад, з'явилися серійні зразки генерації ключів на основі білого радіошумів. Іншим випадковим математичним об'єктом є десяткові знаки ірраціональних чисел, наприклад  або е, які обчислюються за допомогою стандартних математичних методів.

У ІВ з середніми вимогами захищеності цілком прийнятні програмні генератори ключів, які обчислюють ПСЧ як складну функцію від поточного часу і (або) числа, введеного користувачем.

Накопичення ключів

Під накопиченням ключів розуміється організація їх зберігання, обліку та видалення.

Оскільки ключ є найпривабливішим для зловмисника об'єктом, відкриває йому шлях до конфіденційної інформації, то питанням накопичення ключів слід приділяти особливу увагу.

Секретні ключі ніколи не повинні записуватися в явному вигляді на носії, який може бути лічений або скопійований.

У досить складною ІС один користувач може працювати з великим об'ємом ключової інформації, і іноді навіть виникає необхідність організації міні-баз даних за ключовою інформації. Такі бази даних відповідають за приймання, зберігання, облік і видалення використовуваних ключів.

Отже, кожна інформація про використовувані ключах повинна зберігатися в зашифрованому вигляді. Ключі, зашифровують ключову інформацію називаються майстер-ключами. Бажано, щоб майстер-ключі кожен користувач знав напам'ять, і не зберігав їх взагалі на будь-яких матеріальних носіях.

Дуже важливою умовою безпеки інформації є періодичне оновлення ключової інформації в ІС. При цьому перепризначатися повинні як звичайні ключі, так і майстер-ключі. В особливо відповідальних ІС оновлення ключової інформації бажано робити щодня.

Питання оновлення ключової інформації пов'язаний і з третім елементом управління ключами - розподілом ключів.

Розподіл ключів

Розподіл ключів - найвідповідальніший процес в управлінні ключами. До нього пред'являються дві вимоги:

  1. Оперативність і точність розподілу

  2. Скритність розподіляються ключів.

Останнім часом помітний зсув у бік використання криптосистем з відкритим ключем, у яких проблема розподілу ключів відпадає. Тим не менш розподіл ключової інформації в ІС вимагає нових ефективних рішень.

Розподіл ключів між користувачами реалізуються двома різними підходами:

1. Шляхом створення одного чи кількох центрів розподілу ключів. Недолік такого підходу полягає в тому, що в центрі розподілу відомо, кому і які ключі призначені і це дозволяє читати всі повідомлення, циркулюючі в ІС. Можливі зловживання істотно впливають на захист.

2. Прямий обмін ключами між користувачами інформаційної системи. У цьому випадку проблема полягає в тому, щоб надійно засвідчити справжність суб'єктів.

В обох випадках повинна бути гарантована справжність сеансу зв'язку. Це можна забезпечити двома способами:

1. Механізм запиту-відповіді, який полягає в наступному. Якщо користувач А бажає бути впевненим, що повідомлення який він отримує від В, не є помилковими, він включає в повідомлення для У повідомлення непередбачуваний елемент (запит). При відповіді користувач В повинен виконати деяку операцію над цим елементом (наприклад, додати 1). Це неможливо здійснити заздалегідь, так як не відомо, яке випадкове число прийде в запиті. Після отримання відповіді з результатами дій користувач А може бути впевнений, що сеанс є справжнім. Недоліком цього методу є можливість встановлення хоча і складної закономірності між запитом і відповіддю.

2. Механізм позначки часу ("тимчасової штемпель"). Він має на увазі фіксацію часу для кожного повідомлення. У цьому випадку кожен користувач ІС може знати, наскільки "старим" є прийшло повідомлення.

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

При використанні відміток часу постає проблема допустимого тимчасового інтервалу затримки для підтвердження автентичності сеансу. Адже повідомлення з "тимчасовим штемпелем" в принципі не може бути передано миттєво. Крім цього комп'ютерні годинник одержувача і відправника не можуть бути абсолютно синхронізовані. Яке запізнювання "штемпеля" вважати підозрілим.

Тому в реальних ІВ, наприклад в системах оплати кредитних карток використовується саме другий механізм встановлення автентичності та захисту від підробок. Використовуваний інтервал становить від однієї до кількох хвилин. Велика кількість відомих способів крадіжки електронних грошей, засноване на "вклинюванні" у цей проміжок з підробленими запитами на зняття грошей.

Для обміну ключами можна використовувати криптосистеми з відкритим ключем, використовуючи той же алгоритм RSA.

Але досить ефективним виявився алгоритм Діффі-Хелмана, що дозволяє двом користувачам без посередників обмінятися ключем, який може бути використаний потім для симетричного шифрування.

Алгоритм Діффі-Хеллмана

Діффі і Хелман запропонували для створення криптографічних систем з відкритим ключем функцію дискретного піднесення до степеня.

Незворотність перетворення в цьому випадку забезпечується тим, що досить легко обчислити показову функцію в кінцевому полі Галуа складається з p елементів. (P - або просте число, або просте в будь-якого ступеня). Обчислення ж логарифмів в таких полях - значно більш трудомістка операція.

Якщо y =  x,, 1 <x <p -1, де - фіксований елемент поля GF (p), то x = lo g y над GF (p). Маючи x, легко обчислити y. Для цього буде потрібно 2 ln (x + y) операцій множення.

Зворотній задача обчислення x з y буде досить складною. Якщо p вибрано досить правильно, то витяг логарифма зажадає обчислень, пропорційних

L (p) = exp {(ln p ln ln p) 0.5}

Для обміну інформацією перший користувач вибирає випадкове число x 1, равновероятно з цілих 1 ... p -1. Це число він тримає в секреті, а іншому користувачеві посилає число

y 1 =  x mod p

Аналогічно надходить і другий користувач, генеруючи x 2 і обчисливши y 2, відправляючи його першому користувачу. У результаті цього вони можуть обчислювати k 12 =  x 1 x 2 mod p.

Для того, щоб обчислити k 12, перший користувач зводить y 2 у ступінь x 1. Те ж робить і другий користувач. Таким чином, в обох користувачів виявляється загальний ключ k 12, який можна використовувати для шифрування інформації звичайними алгоритмами. На відміну від алгоритму RSA, даний алгоритм не дозволяє шифрувати власне інформацію.

Не знаючи x 1 і x 2, зловмисник може спробувати вирахувати k 12, знаючи тільки перехоплені y 1 і y 2. Еквівалентність цієї проблеми проблему обчислення дискретного логарифма є головний і відкрите питання в системах з відкритим ключем. Простого рішення до теперішнього часу не знайдено. Так, якщо для прямого перетворення 1000-бітних простих чисел потрібно 2000 операцій, то для зворотного перетворення (обчислення логарифма в полі Галуа) - буде потрібно близько 10 30 операцій.

Як видно, при всій простоті алгоритму Діффі-Хелмана, другим його недоліком у порівнянні з системою RSA є відсутність гарантованої нижньої оцінки трудомісткості розкриття ключа.

Крім того, хоча описаний алгоритм дозволяє обійти проблему прихованої передачі ключа, необхідність аутентифікації залишається. Без додаткових коштів, один з користувачів не може бути впевнений, що він обмінявся ключами саме з тим користувачем, який йому потрібен. Небезпека імітації у цьому випадку залишається.




















В якості узагальнення сказаного про розподіл ключів слід сказати наступне. Завдання управління ключами зводиться до пошуку такого протоколу розподілу ключів, який забезпечував би:

  • можливість відмови від центру розподілу ключів;

  • взаємне підтвердження автентичності учасників сеансу;

  • підтвердження достовірності сеансу механізмом запиту-відповіді, використання для цього програмних або апаратних засобів;

  • використання при обміні ключами мінімального числа повідомлень.


Проблеми і перспективи криптографічних систем

Шифрування великих повідомлень і потоків даних

Ця проблема з'явилася порівняно недавно з появою засобів мультимедіа та мереж з високою пропускною здатністю, що забезпечують передачу мультимедійних даних.

До цих пір йшлося про захист повідомлень. При цьому під ними малася на увазі скоріше деяка текстова чи символічна інформація. Однак у сучасних ІС та інформаційних системах починають застосовуватися технології, які вимагають передачі істотно великих обсягів даних. Серед таких технологій:

  • факсимільний, відео та мовний зв'язок;

  • голосова пошта;

  • системи відеоконференцій.

Обсяг переданої інформації різних типів можна представити на умовній діаграмі.


Обсяг

інформації




























































Так як передача оцифрованої звуковий, графічної та відеоінформації у багатьох випадках вимагає конфіденційності, то виникає проблема шифрування величезних інформаційних масивів. Для інтерактивних систем типу телеконференцій, ведення аудіо або відеозв'язку, таке шифрування повинно здійснюватися в реальному масштабі часу і по можливості бути "прозорим" для користувачів.

Це немислимо без використання сучасних технологій шифрування.


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

Система захисту не чекає, коли закінчиться передане повідомлення, а відразу ж здійснює його шифрування і передачу.




Потокове шифрування даних

Найбільш очевидним є побітове складання входить послідовності (повідомлення) з деяким нескінченним або періодичним ключем, одержуваним наприклад від генератора ПСП 18 . Прикладом стандарту потокового шифрування є RC4, розроблений Рівестом. Однак, технічні подробиці цього алгоритму тримаються в секреті 19 .

Іншим, іноді більш ефективним методом потокового шифрування є шифрування блоками. Тобто накопичується фіксований обсяг інформації (блок), а потім перетворений деяким криптографічним методом передається в канал зв'язку.

Використання "блукаючих ключів"

Як було неодноразово зазначено, проблема розподілу ключів є найбільш гострою у великих інформаційних системах. Частково ця проблема вирішується (а точніше знімається) за рахунок використання відкритих ключів. Але найбільш надійні криптосистеми з відкритим ключем типу RSA досить трудомісткі, а для шифрування мультимедійних даних і зовсім не придатні.

Оригінальні рішення проблеми "блукаючих ключів" активно розробляються фахівцями. Ці системи є деяким компромісом між системами з відкритими ключами і звичайними алгоритмами, для яких потрібна наявність одного і того ж ключа у відправника і одержувача.

Ідея методу досить проста.

Після того, як ключ використаний в одному сеансі по деякому правилу він змінюється іншим. Це правило повинне бути відомо і відправнику, і одержувачу. Знаючи правило, після отримання чергового повідомлення одержувач теж змінює ключ. Якщо правило зміни ключів акуратно дотримується і відправником та одержувачем, то в кожен момент часу вони мають однаковий ключ. Постійна зміна ключа ускладнює розкриття інформації зловмисником.

Основне завдання у реалізації цього методу - вибір ефективного правила зміни ключів. Найпростіший шлях - генерація випадкового списку ключів. Зміна ключів здійснюється в порядку списку. Однак, очевидно список доведеться якимось чином передавати.

Інший варіант - використання математичних алгоритмів, заснованих на так званих перебирають послідовностях. На безлічі ключів шляхом однієї і тієї ж операції над елементом виходить інший елемент. Послідовність цих операцій дозволяє переходити від одного елемента до іншого, поки не буде перебрати всі безліч.

Найбільш доступним є використання полів Галуа. За рахунок зведення в ступінь породжує елемента можна послідовно переходити від одного числа до іншого. Ці числа приймаються як ключі.

Ключовий інформацією в даному випадку є вихідний елемент, який перед початком зв'язку повинен бути відомий і відправнику і одержувачу.

Надійність таких методів повинна бути забезпечена з урахуванням популярності зловмисникові використовуваного правила зміни ключів.

Цікавою і перспективним завданням є реалізація методу "блукаючих ключів" не для двох абонентів, а для досить великої мережі, коли повідомлення пересилаються між усіма учасниками.

Шифрування, кодування і стиснення інформації

Ці три види перетворення інформації використовуються в різних цілях, що можна представити в таблиці.

Вид перетворення

Мета

Зміна обсягу інформації після перетворення.

Шифрування

  • передача конфіденційної інформації;

  • забезпечення аутентифікації та захисту від навмисних змін;

зазвичай не змінюється, збільшується лише в цифрових сигнатурах та підписах

Завадостійке кодування

  • захист від спотворення перешкодами в каналах зв'язку

збільшується

Стиснення (компресія)

  • скорочення обсягу переданих або збережених даних

зменшується

Як видно ці три види перетворення інформації почасти доповнюють один одного і їх комплексне використання допоможе ефективно використовувати канали зв'язку для надійного захисту зрадь інформації.

Особливо цікавим видається можливість об'єднання методів кодування і шифрування. Можна стверджувати, що по суті кодування - це елементарне шифрування, а шифрування - це елементарне завадостійке кодування.

Інша можливість - комбінування алгоритмів шифрування і стиснення інформації. Завдання стискування у тому, щоб перетворити повідомлення в межах одного і того ж алфавіту таким чином, щоб його довжина (кількість букв алфавіту) стала менше, але при цьому повідомлення можна було відновити без використання якоїсь додаткової інформації. Найбільш популярні алгоритми стиску - RLE, коди Хаффмана, алгоритм Лемпеля-Зіва. Для стиснення графічної і відеоінформації використовуються алгоритми JPEG і MPEG.

Головне достоїнство алгоритмів стиснення з точки зору криптографії полягає в тому, що вони змінюють статистику вхідного тексту в бік її вирівнювання 20 . Так, у звичайному тексті, стислому за допомогою ефективного алгоритму всі символи мають однакові частотні характеристики і навіть використання простих системи шифрування зроблять текст недоступним для криптоаналізу.


Розробка і реалізація таких універсальних методів - перспектива сучасних інформаційних систем 21 .

Реалізація криптографічних методів

Проблема реалізації методів захисту інформації має два аспекти:

  • розробку засобів, що реалізують криптографічні алгоритми,

  • методику використання цих коштів.

Кожен з розглянутих криптографічних методів можуть бути реалізовані або програмним, або апаратним способом.

Можливість програмної реалізації обумовлюється тим, що всі методи криптографічного перетворення формальні і можуть бути представлені у вигляді кінцевої алгоритмічної процедури.

При апаратній реалізації всі процедури шифрування і дешифрування виконуються спеціальними електронними схемами. Найбільшого поширення набули модулі, що реалізують комбіновані методи.

При цьому неодмінною компонентів всіх апаратно реалізованих методів є гамування. Це пояснюється тим, що метод гамування вдало поєднує в собі високу крипостійкість і простоту реалізації.

Найбільш часто в якості генератора використовується широко відомий регістр зсуву з зворотними зв'язками (лінійними або нелінійними). Мінімальний період породжуваної послідовності дорівнює 2 N -1 біт. Для підвищення якості генерується послідовності можна передбачити спеціальний блок управління роботою регістра зсуву. Таке управління може полягати, наприклад, в тому, що після шифрування певного обсягу інформації вміст регістра зсуву циклічно змінюється.

Інша можливість поліпшення якості гамування полягає у використанні нелінійних зворотних зв'язків. При цьому поліпшення досягається не за рахунок збільшення довжини гами, а за рахунок ускладнення закону її формування, що істотно ускладнює криптоаналіз.

Більшість закордонних серійних засобів шифрування засноване на американському стандарті DES. Вітчизняні ж розробки, такі як, наприклад, пристрій КРИПТОН, використовує вітчизняний стандарт шифрування.

Основною перевагою програмних методів реалізації захисту є їх гнучкість, тобто можливість швидкої зміни алгоритмів шифрування.

Основним же недоліком програмної реалізації є значно менша швидкодія в порівнянні з апаратними засобами (приблизно в 10 разів).

Останнім часом стали з'являтися комбіновані засоби шифрування, так звані програмно-апаратні засоби. У цьому випадку в комп'ютері використовується своєрідний "криптографічний співпроцесор" 22 - обчислювальний пристрій, орієнтоване на виконання криптографічних операцій (додавання по модулю, зсув і т.д.). Змінюючи програмне забезпечення для такого пристрою, можна вибирати той чи інший метод шифрування. Такий метод поєднує в собі переваги програмних і апаратних методів.

Таким чином, вибір типу реалізації криптозахисту для конкретної ІС в істотній мірі залежить від її особливостей і повинен спиратися на всебічний аналіз вимог, що пред'являються до системи захисту інформації.

Висновок

У книзі зроблено огляд найбільш поширених в даний час методів криптографічного захисту інформації.

Вибір для конкретних ІС повинен бути заснований на глибокому аналізі слабких і сильних сторін тих або інших методів захисту. Обгрунтований вибір тієї чи іншої системи захисту взагалі ж повинен спиратися на якісь критерії ефективності. На жаль, до цих пір не розроблені відповідні методики оцінки ефективності криптографічних систем.

Найбільш простий критерій такої ефективності - імовірність розкриття ключа або потужність множини ключів (М). По суті це те ж саме, що і крипостійкість. Для її чисельної оцінки можна використовувати також і складність розкриття шифру шляхом перебору всіх ключів.

Однак, цей критерій не враховує інших важливих вимог до криптосистемам:

  • неможливість розкриття або осмисленої модифікації інформації на основі аналізу її структури,

  • досконалість використовуваних протоколів захисту,

  • мінімальний обсяг використовуваної ключової інформації,

  • мінімальна складність реалізації (у кількості машинних операцій), її вартість,

  • висока оперативність.

Бажано звичайно використання деяких інтегральних показників, які враховують зазначені фактори.

Для обліку вартості, трудомісткості та обсягу ключової інформації можна використовувати питомі показники - відношення зазначених параметрів до потужності множини ключів шифру.

Часто більш ефективним при виборі й оцінці криптографічної системи є використання експертних оцінок та імітаційне моделювання.

У будь-якому випадку обраний комплекс криптографічних методів повинен поєднувати як зручність, гнучкість і оперативність використання, так і надійний захист від зловмисників циркулюючої в ІС інформації.


Зміст

Від автора 1

Введення 2

Термінологія 3

Вимоги до криптосистемам 4

Симетричні криптосистеми 6

Перестановки 7

Системи підстановок 7

Гаммирование 13

Датчики ПСЧ 13

Стандарт шифрування даних ГОСТ 28147-89 1915

Системи з відкритим ключем 18

Алгоритм RSA 19

Криптосистема Ель-Гамаля 23

Криптосистеми на основі еліптичних рівнянь 23

Електронний підпис 25

Електронний підпис на основі алгоритму RSA 26

Цифрова сигнатура 28

Управління ключами 31

Генерація ключів 31

Накопичення ключів 31

Розподіл ключів 32

Проблеми і перспективи криптографічних систем 35

Шифрування великих повідомлень і потоків даних 35

Використання "блукаючих ключів" 36

Шифрування, кодування і стиснення інформацією 38

Реалізація криптографічних методів 39

Висновок 41


1 IMHO

2 Тут і далі m - обсяг використовуваного алфавіту.

3 n-грамою називається послідовність з n символів алфавіту.

4 До питання про те, чи існує мул не існує абсолютно надійна криптосистема.

5 Матеріал надано Ю. Г. Писарєвим

6 ГОСТ 28147-89 закритий грифом ДСК тому подальший виклад зроблено за виданням Спесивцев А.В. та ін «Захист інформації в персональних ЕОМ», М., Радіо і зв'язок, 1992.

7 В даний час він очолює компанію RSA Data Security

8 Наприклад, в гучній програмі PGP

9 У браузерах Інтернет від Microsoft і Netscape

10 У теорії чисел показано, що ймовірність того, що число порядку n буде простим становить 1/ln n

11 Дані оцінки зроблені з урахуванням розвитку обчислювальної техніки аж до 2004 року.

12 Однак загального думки з приводу перевагу того чи іншого методу немає.

13 У РФ прийняті стандарти цифрового підпису р38 і Р39, також як і ГОСТ 28147-89 мають гриф ДСК

14 При цьому поділяють слабку і сильну однозначність. При слабкій однозначності для заданого значення T практично неможливо відшукати інший текст Т ', для якого H (k, T) = H (k, T'). При сильній однозначності для будь-якого тексту T неможливо знайти інший відповідний текст, що має те ж значення хеш -функції.

15 Факт теорії ймовірностей: у групі з 23 осіб з імовірністю більше 0.5 два і більше людини народилися в один і той же число.

16 На відміну від хеш-функції - це клас перетворень припускає обчислення для аргументів фіксованої довжини також фіксованих по довжині значень.

17 Державна програма США, що припускає централізоване зберігання всіх ключів, використовуваних організаціями а приватними особами.

18 Почасти це метод схожий на гамування та інформацію про способи генерації ПСП можна почерпнути з відповідної глави. Але важливою відмінністю потокового шифрування є те, що шифруванню піддаються не символи повідомлення, а окремі біти.

19 Цей алгоритм є власністю RSA Data Security, і на його експорт урядом США накладені серйозні обмеження.

20 Принципово важливо з точки зору криптостійкості, щоб спочатку здійснювалося стиснення інформації а потім шифрування, але не навпаки.

21 Так, в криптографічному пакеті PGP перед шифруванням інформації відбувається її стиск за алгоритмом, ліцензованому у PKWARE.

22 А то й просто спеціалізований шифрувальний мікропроцесор як, наприклад, Clipper /




Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
172.1кб. | скачати


Схожі роботи:
Десять секретів створення пам`ятної реклами
Аналіз вірша АА Блоку Про весна без кінця і без краю
Блок а. а. - Аналіз вірша а. а. блоку про весна без кінця і без краю. ..
Блок а а Аналіз вірша а а блоку про весна без кінця і без краю
Криптографія та криптосистеми
Без Ольги Ільїнської і без її драми з Обломовим не впізнати б нам Іллі Ілліча так як ми його тепер
Блок а а Без кінця і без краю мечтаquot
Держава без грози що кінь без вуздечки
Блок а. а. - Без кінця і без краю мрія
© Усі права захищені
написати до нас