В в е д е н н я
Проблема захисту інформації шляхом її перетворення, що виключає її прочитання сторонньою особою хвилювала людський розум з давніх часів. Історія криптографії - ровесниця історії людської мови. Більш того, спочатку писемність сама по собі була криптографічного системою, тому що в древніх суспільствах нею володіли лише обрані. Священні книги Стародавнього Єгипту, Стародавньої Індії тому приклади.
З широким поширенням писемності криптографія стала формуватися як самостійна наука. Перші криптосистеми зустрічаються вже на початку нашої ери. Так, Цезар у своєму листуванні використовував вже більш менш систематичний шифр, який отримав його ім'я.
Бурхливий розвиток криптографічні системи одержали в роки першої та другої світових воєн. Починаючи з післявоєнного часу і по нинішній день поява обчислювальних засобів прискорило розробку та вдосконалення криптографічних методів.
Криптографічні методи захисту інформації в автоматизованих системах можуть застосовуватися як для захисту інформації, що обробляється в ЕОМ або що зберігається в різного типу ЗУ, так і для закриття інформації, що передається між різними елементами системи по лініях зв'язку. Криптографічного перетворення як метод попередження несаціонірованного доступу до інформації має багатовікову історію. В даний час розроблено велику кількість різних методів шифрування, створені теоретичні та практичні основи їх застосування. Переважна кількість цих методів може бути успішно використана і для закриття інформації. Під шифруванням в даному едаваемих повідомлень, зберігання інформації (документів, баз даних) на носіях у зашифрованому вигляді.
Чому проблема використання криптографічних методів у інформаційних системах (ІС) стала зараз особливо актуальна?
З одного боку, розширилося використання комп'ютерних мереж, зокрема глобальної мережі Інтернет, по яких передаються великі обсяги інформації державного, військового, комерційного і приватного характеру, що не допускає можливість доступу до неї сторонніх осіб.
З іншого боку, поява нових потужних комп'ютерів, мережевих технологій і нейронних обчислень зробило можливим дискредитацію криптографічних систем ще недавно вважалися практично не розкривається.
Проблемою захисту інформації шляхом її перетворення займається кріптологія (kryptos - таємний, logos - наука). Криптология розділяється на два напрямки - криптографію і криптоаналіз. Мета цих напрямків прямо протилежні.
Криптографія займається пошуком і дослідженням математичних методів перетворення інформації.
Сфера інтересів криптоаналізу - дослідження можливості розшифровки інформації без знання ключів.
Сучасна криптографія містить у собі чотири великі розділу:
1. Симетричні криптосистеми.
2. Криптосистеми з відкритим ключем.
3. Системи електронного підпису.
4. Управління ключами.
Основні напрямки використання криптографічних методів - передача конфіденційної інформації з каналів зв'язку (наприклад, електронна пошта), встановлення автентичності переданих повідомлень, зберігання інформації (документів, баз даних) на носіях у зашифрованому вигляді.
Криптографічні методи захисту інформації в автоматизованих системах можуть застосовуватися як для захисту інформації, що обробляється в ЕОМ або що зберігається в різного типу ЗУ, так і для закриття інформації, що передається між різними елементами системи по лініях зв'язку. Криптографічного перетворення як метод попередження несаціонірованного доступу до інформації має багатовікову історію. В даний час розроблено велику кількість різних методів шифрування, створені теоретичні та практичні основи їх застосування. Переважна кількість цих методів може бути успішно використана і для закриття інформації.
Отже, криптографія дає можливість перетворити інформацію таким чином, що її прочитання (відновлення) можливе тільки при знанні ключа.
У якості інформації, що підлягає шифрування і дешифруванню, будуть розглядатися тексти, побудовані на деякому алфавіті. Під цими термінами розуміється наступне.
Алфавіт - кінцеве безліч використовуваних для кодування інформації знаків.
Текст - впорядкований набір з елементів алфавіту.
Як приклади алфавітів, що використовуються в сучасних ІС можна навести наступні:
* Алфавіт Z33 - 32 літери російського алфавіту і пробіл;
* Алфавіт Z256 - символи, що входять в стандартні коди ASCII і КОИ-8;
* Бінарний абетка - Z2 = (0,1);
* Вісімковій алфавіт або шістнадцятковий алфавіт;
Шифрування - перетворюючі процес: вихідний текст, який носить також назву відкритого тексту, замінюється шифрованих текстом.
Дешифрування - зворотний процес шифрування. На основі ключа зашифровані текст перетвориться у вихідний.
Рис. 1. Процедура шифрування файлів.
Ключ - інформація, необхідна для безперешкодного шифрування і дешифрування текстів.
Криптографічний система являє собою сімейство T перетворень відкритого тексту. Члени цього сімейства індексуються, або позначаються символом k; параметр k є ключем. Простір ключів K - це набір можливих значень ключа. Зазвичай ключ являє собою послідовний ряд букв алфавіту.
Криптосистеми розділяються на симетричні і з відкритим ключем.
У симетричних криптосистемах і для шифрування, і для дешифрування використовується один і той же ключ.
У системах з відкритим ключем використовуються два ключі - відкритий і закритий, які математично пов'язані один з одним. Інформація шифрується за допомогою відкритого ключа, що доступний усім бажаючим, а розшифровується за допомогою закритого ключа, відомого тільки одержувачу повідомлення.
Терміни розподіл ключів і керування ключами відносяться до процесів системи обробки інформації, змістом яких є складання і розподіл ключів між користувачами.
Електронної (цифровий) підписом називається що приєднуються до тексту його криптографічне перетворення, яке дозволяє при отриманні тексту іншим користувачем перевірити авторство і достовірність повідомлення.
Криптостійкості називається характеристика шифру, що визначає його стійкість до дешифруванню без знання ключа (тобто криптоаналіз). Є декілька показників криптостійкості, серед яких:
* Кількість всіх можливих ключів;
* Середній час, необхідний для криптоаналізу.
Перетворення Tk визначається відповідним алгоритмом і значенням параметра k. Ефективність шифрування з метою захисту інформації залежить від збереження таємниці ключа і криптостійкості шифру.
Процес криптографічного закриття даних може здійснюватися як програмно, так і апаратно. Апаратна реалізація відрізняється істотно більшою вартістю, проте їй притаманні і переваги: висока продуктивність, простота, захищеність і т.д. Програмна реалізація більш практична, допускає відому гнучкість у використанні.
Для сучасних криптографічних систем захисту інформації сформульовані наступні загальноприйняті вимоги:
* Зашифроване повідомлення повинно піддаватися читання тільки при наявності ключа;
* Кількість операцій, необхідних для визначення використаного ключа шифрування за фрагментом шифрованого повідомлення і відповідного йому відкритого тексту, має бути не менше загального числа можливих ключів;
* Кількість операцій, необхідних для розшифрування інформації шляхом перебору всіляких ключів повинно мати строгу нижню оцінку і виходити за межі можливостей сучасних комп'ютерів (з урахуванням можливості використання мережевих обчислень);
* Знання алгоритму шифрування не повинно впливати на надійність захисту,
* Незначна зміна ключа повинно приводити до істотної зміни виду зашифрованого повідомлення навіть при використанні одного і того ж ключа;
* Структурні елементи алгоритму шифрування повинні бути незмінними;
* Додаткові біти, що вводяться в повідомлення в процесі шифрування, повинен бути повністю та надійно сховані в зашифрованому тексті;
* Довжина шифрованого тексту повинна бути рівною довжині вихідного тексту;
* Не повинно бути простих і легко встановлюваних залежністю між ключами, послідовно що використовуються в процесі шифрування;
* Будь-який ключ з безлічі можливих повинен забезпечувати надійний захист інформації;
* Алгоритм повинен допускати як програмну, так і апаратну реалізацію, при цьому зміна довжини ключа не повинно вести до якісного погіршення алгоритму шифрування.
1.Сімметрічние криптосистеми
1.1. Класифікація криптографічних методів
Усе різноманіття існуючих криптографічних методів можна звести до наступних класах перетворень:
Многоалфавітная підстановка - найбільш простий вид перетворень, що полягає в заміні символів вихідного тексту на інші (того ж алфавіту) за більш-менш складного правилом. Для забезпечення високої криптостійкості потрібне використання великих ключів.
Перестановки - нескладний метод криптографічного перетворення. Використовується як правило у поєднанні з іншими методами.
Гамування - цей метод полягає в накладенні на вихідний текст деякої псевдовипадковою послідовності, що генерується на основі ключа.
Блокові шифри собою послідовність (з можливим повторенням і чергуванням) основних методів перетворення, що застосовується до блоку (частини) шіфруемого тексту. Блокові шифри на практиці зустрічаються частіше, ніж "чисті" перетворення того чи іншого класу в силу їх більш високої криптостійкості. Російський і американський стандарти шифрування засновані саме на цьому класі шифрів.
Перестановкою? набору цілих чисел (0,1 ,..., N-1) називається його переупорядоченіе. Для того, щоб показати, що ціле i переміщено з позиції i в позицію? (I), де 0? (i)
?=(?( 0),? (1 ),...,? (N-1)).
Число перестановок з (0,1 ,..., N-1) одно n! = 1 * 2 *...*( N-1) * N. Введемо позначення? для взаємно-однозначної відображення (гомоморфізму) набору S = (s0, s1 ,..., sN-1), що складається з n елементів, на себе.
?: S? S
?: Si? s? (i), 0? i
Будемо говорити, що в цьому сенсі? є перестановкою елементів S. І, навпаки, автоморфізмів S відповідає перестановці цілих чисел (0,1,2, .., n-1).
Криптографічного перетворення T для алфавіту Zm називається послідовність автоморфізмів: T = (T (n): 1? N
Кожне T (n) є, таким чином, перестановкою n-грам з Zm, n.
Оскільки T (i) і T (j) можуть бути визначені незалежно при i? J, число криптографічних перетворень вихідного тексту розмірності n дорівнює (mn)! 1. Воно зростає непропорційно при збільшенні m та n: так, при m = 33 і n = 2 число різних криптографічних перетворень одно 1089!. Звідси випливає, що потенційно існує велика кількість відображень початкового тексту в зашифровані.
Практична реалізація криптографічних систем вимагає, щоб перетворення (Tk: k? K) були визначені алгоритмами, які залежать від відносно невеликого числа параметрів (ключів).
1.2. Системи підстановок
Визначення підстановки? на алфавіті Zm називається автоморфізмів Zm, при якому букви вихідного тексту t заміщені літерами шифрованого тексту? (t):
Zm -> Zm;?: T ->? (T).
Набір всіх підстановок називається симетричної групою Zm? буде надалі позначатися як SYM (Zm).
Затвердження SYM (Zm) c операцією твору є групою, тобто операцією, що володіє наступними властивостями:
1. Замкнутість: твір підстановок? 1? 2 є підстановкою:
?: T ->? 1 (? 2 (t)).
2. Асоціативність: результат твори? 1? 2? 3 не залежить від порядку розстановки дужок:
(? 1? 2)? 3 =? 1 (? 2? 3)
3. Існування нейтрального елементи: постановка i, що визначається як i (t) = t, 0? T
4. Існування протилежного: для будь-якої підстановки? існує єдина зворотна підстановка? -1, що задовольняє умові
??? 1 =?? 1? = I.
Число можливих підстановок у симетричної групі Zm називається порядком SYM (Zm), і Один m!.
Визначення. Ключем підстановки k для Zm називається послідовність елементів симетричної групи Zm:
k = (p0, p1 ,..., pn-1 ,...), pn? SYM (Zm), 0? n
Підстановка, що визначається ключем k, є криптографічним перетворенням Tk, за допомогою якого здійснюється перетворення n-грами вихідного тексту (x0, x1, .., xn-1) в n-граму шифрованого тексту (y0, y1 ,..., yn - 1):
yi = p (xi), 0? i
де n - довільне (n = 1,2 ,..). Tk називається моноалфавітной підстановкою, якщо p незмінно при будь-якому i, i = 0,1 ,..., інакше Tk називається многоалфавітной підстановкою.
Примітка. До найбільш істотних особливостей підстановки Tk відносяться наступні:
1. Оригінальний текст шифрується посимвольний. Шифрування n-грами (x0, x1, .., xn-1) і її префікса (x0, x1, .., xs-1) пов'язані співвідношеннями
Tk (x0, x1, .., xn-1) = (y0, y1 ,..., yn-1)
Tk (x0, x1, .., xs-1) = (y0, y1 ,..., ys-1)
2. Буква шифрованого тексту yi є функцією тільки i-ї компоненти ключа pi і i-й букви вихідного тексту xi.
1.3. Підстановка Цезаря
Підстановка Цезаря є найпростішим варіантом підстановки. Вона належить до групи моноалфавітних підстановок.
Визначення. Підмножина Cm = (Ck: 0? K
Ck: j? (J + k) (mod m), 0? K
називається підстановкою Цезаря.
Множення комутативність, CkCj = CjCk = Cj + k, C0 - ідентична підстановка, а зворотнього до CК є Ck-1 = Cm-k, де 0) означає, що буква вихідного тексту (зліва) шифрується за допомогою C3 в букву шифрованого тексту ( праворуч).
Визначення. Системою Цезаря називається моноалфавітная підстановка, перетворююча n-граму вихідного тексту (x0, x1, .., xn-1) в n? Граму шифрованого тексту (y0, y1 ,..., yn-1) відповідно до правила
yi = Ck (xi), 0? i
Наприклад, ВИШЛІТЕ_НОВИЕ_УКАЗАНІЯ допомогою підстановки C3 перетвориться в еюиолхіврсеюівцнгкгрлб.
А -> г Й -> м Т -> х И -> ю
Б -> д К -> н У -> ц Ь -> я
В -> е Л -> про Ф -> ч Е -> _
Г -> ж М -> п Х -> ш Ю -> а
Д -> з Н -> р Ц -> щ Я -> б
Е -> і О -> з Ч -> ъ _ -> у
Ж -> й П -> т Ш -> и
З -> до Р -> у Щ -> ь
І -> л С -> ф Ъ -> е
Таблиця 1.1: Застосування підстановки Цезвря.
При своїй нескладності система легко вразлива. Якщо зловмисник має
1) зашифровані і відповідний вихідний текст або
2) зашифровані текст обраного зловмисником вихідного тексту,
то визначення ключа і дешифрування вихідного тексту тривіальні.
Більш ефективні узагальнення підстановки Цезаря - шифр Хілла і шифр Плейфера. Вони засновані на підстановці не окремих символів, а 2-грам (шифр Плейфера) або n-грамм2 (шифр Хілла). При більш високій криптостійкості вони значно складніше для реалізації і вимагають досить великої кількості ключової інформації.
1.4.Многоалфавітние системи. Системи одноразового використання
Слабка крипостійкість моноалфавітних підстановок долається із застосуванням підстановок многоалфавітних.
Многоалфавітная підстановка визначається ключем? = (? 1,
? 2 ,...), з не менш двох різних підстановок. На початку розглянемо многоалфавітние системи підстановок з нульовим початковим зсувом. Нехай (Ki: 0? I
приймають значення на безлічі Zm
Pкл ((K0, K1 ,..., Kn-1) = (k0, k1 ,..., kn-1)) = (1/m) n
Система одноразового використання перетворює вихідний текст
X = (X0, x1 ,..., xn-1)
в зашифровані текст
Y = (Y0, y1 ,..., yn-1)
за допомогою підстановки Цезаря
Yi = CKi (xi) = (Ki + Xi) (mod m) i = 0 ... n-1 (1)
Для такої системи підстановки використовують також термін "одноразова стрічка" і "одноразовий блокнот". Простір ключів До системи одноразової підстановки є вектором рангів (K0, K1 ,..., Kn-1) і містить mn точок.
Розглянемо невеликий приклад шифрування з нескінченним ключем. Як ключ приймемо текст
"БЕСКОНЕЧНИЙ_КЛЮЧ ....".< br />
Зашіфруем з його допомогою текст "ШІФР_НЕРАСКРИВАЕМ". Шифрування оформимо у таблицю:
Оригінальний текст неможливо відновити без ключа.
Накладення білого шуму у вигляді нескінченного ключа на вихідний текст змінює статистичні характеристики мови джерела. Системи одноразового використання теоретично не расшіфруеми3, так як не містять достатньої інформації для відновлення тексту.
Чому ж ці системи не застосовуються для забезпечення секретності під час обробки інформації? Відповідь проста - вони непрактичні, тому що вимагають незалежного вибору значення ключа для кожної букви вихідноготексту. Хоча така вимога може бути і не занадто важким при передачі по прямому кабелю Москва - Нью-Йорк, але для інформаційних воно непосильно, оскільки там доведеться шифрувати багато мільйонів знаків.
Подивимося, що вийде, якщо послабити вимогу шифрувати кожну букву вихідного тексту окремим значенням ключа.
1.5.Сістеми шифрування Віжінера
Почнемо з кінцевої послідовності ключа
k = (k0, k1 ,..., kn),
яка називається ключем користувача, і продовжимо її до нескінченної послідовності, повторюючи ланцюжок. Таким чином, отримаємо робочий ключ
k = (k0, k1 ,..., kn), kj = 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 ...
Визначення. Підстановка Віжінера VIGk визначається як
VIGk: (x0, x1 ,..., xn-1)? (y0, y1 ,..., yn-1) = (x0 + k, x1 + k ,..., xn-1 + k).
Таким чином:
1) початковий текст x ділиться на r фрагментів
xi = (xi, xi + r ,..., xi + r (n-1)), 0? i
2) i-й фрагмент початкового тексту xi шифрується за допомогою підстановки Цезаря Ck:
(xi, xi + r ,..., xi + r (n-1))? (yi, yi + r ,..., yi + r (n-1)),
Варіант системи підстановок Віжінера при m = 2 називається системою Вернама (1917 г). У той час ключ k = (k0, k1 ,..., kк-1) записувався на паперовій стрічці. Кожна буква вихідного переводилася з використанням коду Бодо в пятібітовий символ. До початкового тексту Бодо додавався ключ (по модулю 2). Старовинний телетайп фірми AT & T з прочитуючим пристроєм Вернама та обладнанням для шифрування, використовувався корпусом зв'язку армії США.
Дуже поширена погана з точки зору секретності практика використовувати слово або фразу в якості ключа для того, щоб k = (k0, k1 ,..., kк-1) було легко запам'ятати. В ІВ для забезпечення безпеки інформації це неприпустимо. Для одержання ключів повинні використовуватися програмні або апаратні засоби випадкової генерації ключів.
Приклад. Перетворення тексту за допомогою підстановки Віжінера (r = 4)
Оригінальний текст (ІТ1):
НЕ_СЛЕДУЕТ_ВИБІРАТЬ_НЕСЛУЧАЙНИЙ_КЛЮЧ
Ключ: КЛЮЧ
Розіб'ємо вихідний текст на блоки по 4 символи:
НЕ_С Леду ЕТ_В ИБІР АТЬ_ Несли УЧАЙ НИЙ_ КЛЮЧ
і накладемо на них ключ (використовуючи таблицю Віжінера):
H + К = Ч, Е + Л = Р і т.д.
Отримуємо зашифрований (ЗТ1) текст:
ЧРЕЗ ХРБЙ ПЕЕЩ ДМЕЖ КЕЩЦ ЧРОБ ЕБЮ_ ЧЕЖЦ ФЦИН
Можна висунути і узагальнену систему Віжінера. ЇЇ можна сформулювати не тільки за допомогою підстановки Цезаря.
Нехай x - підмножина симетричної групи SYM (Zm).
Визначення. r-многоалфавітний ключ шифрування є r-набір? = (? 0,? 1 ,...,? R-1) з елементами в x.
Узагальнена система Віжінера перетворює вихідний текст (x0, x1 ,..., xn-1) у зашифровані текст (y0, y1 ,..., yn-1) за допомогою ключа? = (? 0,? 1 ,...,? R-1) за правилом
VIGk: (x0, x1 ,..., xn-1)? (y0, y1 ,..., yn-1) = (? 0 (х0),? 1 (х1 ),...,? n-1 (xn-1)), де використовується умова? i =? i mod r. Слід визнати, що і многоалфавітние підстановки в принципі доступні криптоаналітичних дослідження. Крипостійкість многоалфавітних систем різко зменшується зі зменшенням довжини ключа.
Проте така система як шифр Віжінера допускає нескладну апаратну чи програмну реалізацію і при досить великій довжині ключа може бути використаний в сучасних ІС.
1.6. Гамування
Гамування є також широко застосовуваних криптографічним перетворенням. Насправді межа між гамування і використанням нескінченних ключів і шифрів Віжінера, про які йшлося вище, дуже умовна.
Принцип шифрування гамування полягає в генерації гами шифру за допомогою датчика псевдовипадкових чисел і накладення отриманої гами на відкриті дані оборотним чином (наприклад, використовуючи додавання по модулю 2).
Процес дешифрування даних зводиться до повторної генерації гами шифру при відомому ключі і накладення такої гами на зашифровані дані.
Отриманий зашифрований текст є досить важким для розкриття в тому випадку, якщо гамма шифру не містить повторюваних бітових послідовностей. По суті справи гамма шифру повинна змінюватися випадковим чином для кожного шіфруемого слова. Фактично ж, якщо період гами перевищує довжину всього зашифрованого тексту і невідома ніяка частина вихідного тексту, то шифр можна розкрити тільки прямим перебором (пробою на ключ). Крипостійкість в цьому випадку визначається розміром ключа.
Метод гамування стає безсилим, якщо зловмисникові стає відомий фрагмент початкового тексту і відповідна йому шифрограма. Простим вирахуванням за модулем виходить відрізок ПСП і по ньому відновлюється вся послідовність. Зловмисники може зробити це на основі припущень про зміст вихідного тексту. Так, якщо більшість "надісланих повідомлень починається зі слів" СОВ.СЕКРЕТНО ", то криптоаналіз всього тексту значно полегшується. Це слід враховувати при створенні реальних систем інформаційної безпеки.
Нижче розглядаються найбільш поширені методи генерації гам, які можуть бути використані на практиці.
1.7. Шифрування за допомогою аналітичних перетворень
Досить надійне закриття інформації може бути забезпечене при використанні для шифрування деяких аналітичних перетворень. Для цього потрібно використовувати методи алгебри матриць, наприклад, множення матриці на вектор за правилом:
?? aij?? bj = cj =? aij bj
Якщо матрицю?? aij?? використовувати в якості ключа, а замість компонента вектора bj підставити символи тексту, то компоненти вектора cj будуть являти собою символи зашифрованого тексту.
Наведемо приклад, взявши як ключ квадратну матрицю третього порядку
14 8 3
8 5 2
3 2 1
Замінимо літери алфавіту цифрами, що відповідають порядковому номеру в алфавіті. Тоді уривку тексту ВАТА відповідає послідовність номерів 3,0,19,0,12,0. За прийнятим алгоритму шифрування виконаємо необхідні дії:
14 8 3 3 99 14 8 3 0 96
8 5 2 * 0 = 62; 8 5 2 * 12 = 60
3 2 1 19 28 3 2 1 0 24
При цьому зашифрований текст буде мати вигляд: 99,62,28,96,60,24.
Розшифрування осуществляетсяс використанням того ж правила множення матриці на вектор, тільки як основу береться матриця, зворотна тій, за допомогою якої здійснюється закриття, а в якості вектора-самножітеля - відповідні кількість символів закритого тексту; тоді значеннями вектора-результату будуть цифрові еквіваленти знаків відкритого тексту. Зворотній до даної називається матриця, полущающая з так званої приєднаної матриці діленням всіх її елементів на визначник даної матриці. У свою чергу приєднаної називається матриця, складена з алгеброіческіх додатки А, до елементів цієї матриці, які обчислюються за формулою: Aij = (-1) ^ i + j Dij,
де Dij - визначник матриці, що отримується викресленням i-й її рядка і j-го стовпця. Визначником само як відомо, називається алгеброіческая сума n! членів (для визначення n-ого порядку), складена таким чином: членами служать всілякі твори n елементів матриці, взятих по одному в кожному рядку і в кожному стовпці, причому член суми береться зі знаком''+'', якщо його індекси складаючи підставку , і зі знаком''-'' - в протилежному випадку. Для матриці третього порядку, наприклад, визначник обчислюється за такою формулою:
D = а11а22а33 + а12а23а31 + а13а21а32-а11а23а32-а12а21а33-а13а22а31.
Тоді процес розкриття виглядає так:
1 -2 1 99 1 * 99-2 * 62 +1 * 28 3
-2 5 -4 * 62 = -2 * 99 +5 * 62-4 * 28 = 0
1 -4 6 28 1 * 99-4 * 62 +6 * 28 19
Таким чином, отримали наступну послідовність знаків розкритого тексту: 3,0,19,0,12,0, що відповідає початковому тексту. Цей метод шифрування є формальною, що дозволяє легко реалізувати його програмними засобами.
1.8. Криптосистеми на основі еліптичних рівнянь
Еліптичні криві - математичний об'єкт, який може визначений над будь-яким полем (кінцевим, дійсним, раціональним або комплексним). У криптографії зазвичай використовуються кінцеві поля. Еліптична крива є безліч точок (x, y), яке задовольняє наступному рівнянню:
y2 = x3 + ax + b,
а також нескінченно віддалена точка. Для точок на кривій досить легко вводиться операція додавання, яка відіграє ту ж роль, що і операція множення в криптосистемах RSA і Ель-Гамаля.
У реальних криптосистемах на базі еліптичних рівнянь використовується рівняння
y2 = x3 + ax + b mod p,
де р - просте.
Проблема дискретного логарифма на еліптичної кривої полягає в наступному: дана точка G на еліптичній кривий порядку r (кількість точок на кривій) і інша точка Y на цій же кривій. Потрібно знайти єдину точку x таку, що Y = xG, тобто Y є х-я ступінь G.
2. Еліптичні Функція - реалізація методу відкритих ключів
2.1.Сістеми з відкритим ключем
Як би не були складні і надійні криптографічні системи - їх слабке місць при практичній реалізації - проблема розподілу ключів. Для того, щоб був можливий обмін конфіденційною інформацією між двома суб'єктами ІС, ключ повинен бути згенерований одним з них, а потім якимось чином знову ж таки в конфіденційному порядку переданий іншому. Тобто, в загальному випадку для передачі ключа знову ж таки потрібне використання якийсь криптосистеми.
Для вирішення цієї проблеми на основі результатів, отриманих класичної та сучасної алгеброю, були запропоновані системи з відкритим ключем.
Суть їх полягає в тому, що кожним адресатом ІС генеруються два ключі, зв'язані між собою за певним правилом. Один ключ оголошується відкритим, а інший закритим. Відкритий ключ публікується і доступний кожному, хто бажає відправити повідомлення адресату. Секретний ключ зберігається в таємниці.
Оригінальний текст шифрується відкритим ключем одержувача і передається йому. Зашифрований текст в принципі не може бути розшифровано тим же відкритим ключем. Дешифрування повідомлення можливо тільки з використанням закритого ключа, який відомий тільки самому адресату.
Ріс.2.1.Реалізація процедури шифрування з відкритим ключем.
Криптографічні системи з відкритим ключем використовують так звані незворотні або односторонні функції, які мають наступну властивість: при заданому значенні x відносно просто обчислити значення f (x), однак якщо y = f (x), то немає простого шляху для обчислення значення x.
Безліч класів необоротних функцій і породжує все розмаїття систем з відкритим ключем. Проте не кожна необоротна функція годиться для використання в реальних ІС.
У самому визначенні незворотності присутня невизначеність. Під необоротністю розуміється не теоретична незворотність, а практична неможливість обчислити протилежне значення використовуючи сучасні обчислювальні засоби за осяжний інтервал часу.
Тому щоб гарантувати надійний захист інформації, до систем з відкритим ключем (СОК) пред'являються два важливих і очевидних вимоги:
1. Перетворення вихідного тексту повинно бути незворотним і виключати його відновлення на основі відкритого ключа.
2. Визначення закритого ключа на основі відкритого також повинно бути неможливим на сучасному технологічному рівні. При цьому бажана точна нижня оцінка складності (кількості операцій) розкриття шифру.
Алгоритми шифрування з відкритим ключем одержали широке поширення в сучасних інформаційних системах. Так, алгоритм RSA став світовим стандартом де-факто для відкритих систем і рекомендований МККТТ.
Взагалі ж всі пропоновані сьогодні криптосистеми з відкритим ключем спираються на один з наступних типів незворотних перетворень:
1. Розкладання великих чисел ан прості множники.
2. Обчислення логарифма в кінцевому полі.
3. Обчислення коренів алгебраїчних рівнянь.
Тут же слід зазначити, що алгоритми криптосистеми з відкритим ключем (СОК) можна використовувати в трьох призначеннях.
1. Як самостійні засоби захисту переданих і збережених даних.
2. Як кошти для розподілу ключів. Алгоритми СОК більш трудомісткі, ніж традиційні криптосистеми. Тому часто на практиці раціонально за допомогою СОК розподіляти ключі, обсяг яких як інформації незначний. А потім за допомогою звичайних алгоритмів здійснювати обмін великими інформаційними потоками.
3. Засоби аутентифікації користувачів. Про це буде розказано в розділі «Електронний підпис».
Нижче розглядаються найбільш поширені системи з відкритим ключем.
Незважаючи на досить велике число різних СОК, найбільш популярна - криптосистема RSA, розроблена в 1977 році і отримала назву на честь її творців: Рона Рівеста4, Аді Шаміра і Леонарда Ейдельмана.
Вони скористалися тим фактом, що знаходження великих простих чисел в обчислювальному відношенні здійснюється легко, але розкладання на множники твору двох таких чисел практично нездійсненна. Доведено (теорема Рабіна), що розкриття шифру RSA еквівалентне такому розкладання. Тому для будь-якої довжини ключа можна дати нижню оцінку числа операцій для розкриття шифру, а з урахуванням продуктивності сучасних комп'ютерів оцінити і необхідний на це час.
Можливість гарантовано оцінити захищеність алгоритму RSA стала однією з причин популярності цієї СОК на фоні десятків інших схем. Тому алгоритм RSA використовується в банківських комп'ютерних мережах, особливо для роботи з віддаленими клієнтами (обслуговування кредитних карток).
В даний час алгоритм RSA використовується в багатьох стандартах, серед яких SSL, S-HHTP, S-MIME, S/WAN, STT і PCT.
2.2. Типи криптографічних послуг
Сьогодні безпечні рішення використовують деяку комбінацію з п'яти різних криптографічних послуг. Ці послуги:
Перевірка користувача - введенням шляху в оперативну транзакцію, користувач підтверджує, що це саме він.
Ідентифікація Почала координат Даних - забезпечення джерела повідомлення.
Цілісність Даних - забезпечення збереження даних неправомочними сторонами.
Чи не відмова - одержувач транзакції здатна демонструвати нейтральному третій особі, що потрібний передавач дійсно посилав транзакцію.
Існують два головних типи криптографії симетрично - ключові та шифрування з відкритим ключем, які базуються на комплексних математичних алгоритмах і управляються ключами. Симетрично - ключові схеми криптографії вимагають дві сторони, які хочуть увійти в довіру, щоб розділити загальний, секретний ключ. Кожен користувач повинен довіряти іншому, щоб не оприлюднювати загальний ключ третій особі. Ці системи ефективно зашифруйте велику кількість даних, однак, вони висловлюють істотні ключові проблеми управління в мережах більше ніж у маленькому числі користувачів, і зазвичай використовуються разом з шифрування з відкритим ключем.
У системах шифрування відправник повідомлення шифрує його відкритим ключем одержувача. Одержувач розшифровує це повідомлення своїм особистим (секретним) ключем. Маючи відкритий ключ одержувача, кожен момент послати йому повідомлення, а прочитати його може тільки власник особистого ключа. При цьому отримати особистий ключ з відкритого за допомогою будь-яких математичних операцій неможливо.
У системах цифрового лодпісі підпис''накладається''з використанням секретного ключа, а знімається з допомогою відкритого відправника.
Схеми Шифрування з відкритим ключем вимагають, щоб кожна сторона мала ключову пару: секретний ключ, який не повинен бути розкритий іншому користувачеві, і загальний ключ, який може бути доступним у загальному каталозі. Ці два ключі пов'язані жорсткої односторонньою функцією, так що в обчислювальному відношенні нездійсненно визначити секретний ключ від загального ключа. Секретний ключ часто зберігається в програмному забезпеченні з використанням пароля, а проте, секретний ключ повинен ідеально бути збережений в безпечній апаратної лексеми, що запобігає прямий доступ або втручання.
Криптосистеми з ключем загального користування вирішують ключові проблеми управління, пов'язані з симетрично - ключовим кодуванням, а проте, шифрування з відкритим ключем пропонує здатність ефективно здійснити цифрові подання.
2.3. Цифрові подання
Цифрові подання - це електронний еквівалент традиційних рукописних сигнатур. Рукописні сигнатури забезпечують службу безпеки, тому що унікальність почерку особистостей робить сигнатури інтенсивними.
На відміну від почерку індивідуума, електронна інформація проста для дублювання. Якщо електронні сигнатури використовувалися таким же чином як письмові сигнатури, захист легко може бути поставлена під загрозу.
Цифрові подання можуть використовуватися, щоб використовувати три кріптогафіческіх послуги: ідентифікацію, неотказ, і цілісність даних. код з виправленням помилок може використовуватися, щоб генерувати сильні цифрові подання з маленькою кількістю обробки енергії.
2.4. Еліптична криптографія кривої.
Після винаходу шифрування з відкритим ключем, були запропоновані численні спільне - ключові системи засекречування на її основе.Кріптографія з відкритим ключем може застосовуватися як для шифрування повідомлень, так і для аутентифікації (так звана цифровий підпис).
Кожна з цих систем покладається на важку математичну проблему для її захисту. Вони є важкооброблюваних, бо роки інтенсивного вивчення провідними математиками і комп'ютерними вченими не зуміли створити ефективні алгоритми для їх вирішення, так, щоб практично, вони залишилися важкооброблюваних з поточною обчислювальної технологією. Потрібен час, щоб отримати безпечний ключ з кращим відомим алгоритмом для цієї проблеми. Загально - ключова система шифрування, заснована на цій проблемі. Еліптичні криві - математичні конструкції, які вивчили математиками починаючи з сімнадцятого століття. У 1985 Нейл Кобліц і Віктор Міллер незалежно запропонували криптосистеми з ключем загального користування, які використовують групу точок на еліптичній кривий, і еліптична криптографія кривої (код з виправленням помилок) була народжена. Починаючи з того часу, численні дослідники і розробники витратили кілька років, досліджуючи силу коду з виправленням помилок і покращуючи методи для його виконання. Сьогодні більш швидка криптосистема з ключем загального користування пропонує практичну і безпечну технологію для найбільш стримуваної середовища.
Код з виправленням помилок також найвищу силу в будь-якої відомої криптосистеми з ключем загального користування через труднощі жорсткої проблеми, на якій це грунтується. Ця велика трудність жорсткої проблеми еліптичної кривої, дискретної проблеми логарифма (ECDLP) означає що менший розмір ключа видає еквівалентні рівні захисту. З огляду на найкращі відомі алгоритми до цілих числах множника і обчислюють еліптичні логарифми кривої, розміри ключа є еквівалентною силою, заснованої на MIPS роках, необхідних, щоб відновити один ключ.
Складність проблеми і закінчуються розмірів ключа еквівалентної сили надає кілька прямих вигод до виконання електронні плати.
2.5.Електронние плати та код з виправленням помилок
Електронні плати - це маленькі, переносні, пристрої протидії втручанню, що забезпечують користувачів зі зберіганням пам'яттю і можливістю обробки. Через їх унікальної форми, електронні плати запропоновані для використання в широкій розмаїтості додатків типу електронної торгівлі, ідентифікації, і охорони здоров'я. Для багатьох з цих запропонованих програм, були потрібні б