Дипломная работа: Криптографічні методи захисту інформації
Вступ
На сьогодні в інформаційному просторі, швидкими темпами впроваджуються новітні досягнення комп'ютерних і телекомунікаційних технологій. Комп'ютерні cистеми активно впроваджуються у фінансові, промислові, торгові і соціальні сфери. Внаслідок цього різко зріс інтерес широкого кола користувачів до проблем захисту інформації. Захист інформації - це сукупність організаційно-технічних заходів і правових норм для попередження заподіяння збитку інтересам власника інформації. В останні роки з розвитком комерційної і підприємницької діяльності збільшилося число спроб несанкціонованого доступу (НСД) до конфіденційної інформації.
Серед всього спектру методів захисту даних від небажаного доступу особливе місце займають криптографічні методи. Криптографія - наука про математичні методи забезпечення конфіденційності і автентичності інформації. Для сучасної криптографії характерне використання відкритих алгоритмів шифрування, що припускають використання обчислювальних засобів.
Криптографічний захист інформації – вид захисту інформації, що реалізується шляхом перетворення інформації з використанням спеціальних (ключових) даних з метою приховування/відновлення змісту інформації, підтвердження її справжності, цілісності, авторства тощо. [1]
Завданням дипломного проекту є розробка програми, яка забезпечить захист даних, тобто інформації, яку ми зберігаємо на ПЗП, передаємо електронною поштою, друкуємо в текстових редакторах і т.д., від НСД.
Метою дипломного проекту є розробка програми для шифрування та дешифрування даних за допомогою криптографічних алгоритмів. Для цього використаємо два алгоритми шифрування такі як RSA та DES.
Алгоритм DES (Data Encryption Standard) був стандартом симетричних блочних шифрів затверджених урядом США до 2001року (зараз використовується в режимі 3DES). Під словом «симетричний» розуміють те що для шифрування і дешифрування використовується один і той же ключ, а блоковий тому що шифрування даних відбувається поблоково. Тобто дані розбиваються на блоки фіксованої довжини (як правило для DES, довжина блоку дорівнює 64 біт), а потім шифруються. Даний алгоритм використовується для великих об’ємів даних. [24]
Алгоритм RSA є асиметричним шифром (або з відкритим ключем) в якому використовується ключ який складається з двох частин: відкритий (public key), що зашифровує дані, і відповідний йому закритий (рrіvatе key), що їх розшифровує. Відкритий ключ поширюється по усьому світу, у той час як закритий тримається в таємниці. Хоча ключова пара математично зв'язана, обчислення закритого ключа з відкритого в практичному плані неможлива. Кожний, у кого є відкритий ключ, зможе зашифрувати дані, але не зможе їх розшифрувати. Тільки людина, яка володіє відповідним закритим ключем, може розшифрувати інформацію. [23]
Захист інформації (англ. Data protection) — сукупність методів і засобів, що забезпечують цілісність, конфіденційність і доступність інформації за умов впливу на неї загроз природного або штучного характеру, реалізація яких може призвести до завдання шкоди власникам і користувачам інформації. Те, що інформація має цінність, люди усвідомили дуже давно. Тоді-то і виникло завдання захисту від надмірно цікавих людей. Стародавні намагалися використовувати для вирішення цього завдання найрізноманітніші методи, і одним з них був тайнопис - уміння складати повідомлення так, щоб його сенс був недоступний нікому окрім присвячених в таємницю. Є свідоцтва тому, що мистецтво тайнопису зародилося ще в доантичні часи і проіснувало аж до зовсім недавнього часу. І лише декілька десятиліть тому все змінилося корінним чином - інформація придбала самостійну комерційну цінність і стала широко поширеною, майже звичайним товаром. Її проводять, зберігають, транспортують, продають і купують, а значить - крадуть і підроблюють - і, отже, її необхідно захищати. Сучасне суспільство все більшою мірою стає інформаційно-обумовленим, успіх будь-якого виду діяльності все сильніше залежить від володіння певними відомостями і від відсутності їх у конкурентів. [25]
Серед всього спектру методів захисту даних від небажаного доступу особливе місце займають криптографічні методи. Сучасні методи шифрування гарантують практично абсолютний захист даних, але завжди залишається проблема надійності їх реалізації. В даний час особливо актуальною стала оцінка вже використовуваних криптоалгоритмів. Завдання визначення ефективності засобів захисту часто більш трудомістка, ніж їх розробка, вимагає наявності спеціальних знань і, як правило, вищої кваліфікації, ніж завдання розробки. Це обставини призводять до того, що на ринку з'являється безліч засобів криптографічного захисту інформації, про які ніхто нічого не знає. При цьому розробники тримають криптоалгоритм в секреті.
Шифрування — це спосіб зміни повідомлення або іншого документа, що забезпечує спотворення (заховання) його вмісту. (Кодування – це перетворення звичайного, зрозумілого, тексту в код (виконується без ключа)). Шифрувати можна не тільки текст, але і різні комп'ютерні файли – від файлів баз даних і текстових процесорів до файлів зображень.
Ідея шифрування полягає в запобіганні прогляданню дійсного змісту повідомлення (тексту, файлу і т.п.) тими, у кого немає засобів його дешифровки. А прочитати файл зможе лише той, хто зможе його дешифрувати.
Шифрування з'явилося приблизно чотири тисячі років тому. Першим відомим застосуванням шифру (коду) вважається єгипетський текст, датований приблизно 1900 р. до н. э., автор якого використовував замість звичайних (для єгиптян) ієрогліфів не співпадаючі з ними знаки.
Один з найвідоміших методів шифрування носить ім'я Цезаря, який якщо і не сам його винайшов, то активно їм користувався. Не довіряючи своїм посильним, він шифрував листи елементарною заміною А на D, В на Е і так далі по всьому латинському алфавіту. При такому кодуванні комбінація XYZ була б записана як АВС (прямий код N+3). [4]
1.1 Основи безпеки даних в комп'ютерних системах
Витік комерційної інформації призводить до небажаних наслідків. Збитки від діяльності конкурентів, що використовують методи шпигунства є дуже великими. Таким чином, задачі безпеки будь-яких видів доводиться вирішувати щораз при розгляді всіляких аспектів людської діяльності. Але, як бачимо, всі види безпеки тісно пов'язані з інформаційною безпекою (ІБ) і, більш того, їх неможливо забезпечити без забезпечення ІБ.
Інформація - це відомості про осіб, факти, предмети, події, явища і процеси, незалежно від форми їх уявлення.
Захист інформації - комплекс заходів, проведених із метою запобігання (зниження до безпечного рівня) можливостей витікання, розкрадання, втрати, поширення, знищення, перекручування, підробки або блокування інформації. [25]
Види дій над інформацією:
1. Блокування інформації (користувач не може дістати доступ до інформації; за відсутності доступу сама інформація не втрачається).
2. Порушення цілісності (втрата, вихід з ладу носія; спотворення, тобто порушення смислової значущості; порушення логічної зв'язаності; втрата достовірності (наявна інформація не відповідає реальному стану)).
3. Порушення конфіденційності (з інформацією ознайомлюються суб'єкти, на яких це не покладено). Рівень допуску до інформації визначає її власник. Порушення конфіденційності може відбутися із-за неправильної роботи системи обмеження доступу або наявності побічного каналу доступу.
4. Несанкціоноване тиражування (під захистом розуміється захист авторських прав і прав власності на інформацію).
Автоматизована система (АС) - це організаційно-технічна система, що об'єднує обчислювальну систему, фізичне середовище, персонал і оброблювану інформацію. [26]
Захист інформації в АС (іnformation security, computer system security) - діяльність, яка спрямована на забезпечення безпеки оброблюваної в АС інформації та АС у цілому і дозволяє запобігти або ускладнити можливість реалізації загроз, а також знизити величину потенційних збитків внаслідок реалізації загроз.
Комплексна система захисту інформації (КСЗІ) - сукупність організаційних і інженерних заходів, програмно-апаратних засобів, які забезпечують захист інформації в АС.
Загроза - потенційно можлива подія, дія, процес або явище, яке може привести до нанесення збитку інтересам певної фізичної чи юридичної особи. Реалізацією загрози є порушення роботи системи. Загрози поділяються на природні та штучні.
Природні загрози - загрози, викликані дією на АС об'єктивних фізичних процесів або стихійних природних явищ, незалежних від людини. До них відносяться: стихійні лиха, магнітні бурі, радіоактивне випромінювання, опади тощо, а також загрози опосередковано технічного характеру, пов'язані з надійністю технічних засобів обробки інформації і підсистем забезпечення АС.
Штучні загрози - такі, що викликані діяльністю людини. Вони поділяються на:
•ненавмисні - загрози, пов'язані з випадковими діями людей, через незнання, халатність, цікавість, але без злого наміру.
•навмисні - дії людини, що здійснюються умисне для дезорганізації роботи системи, виведення її з ладу, для незаконного проникнення в систему і несанкціонованого доступу до інформації.
Система складових загроз безпеки даних представлена в табл. 1.1.
Таблиця 1.1
Класифікаційні складові загроз безпеки інформації
Параметр класифікації | Значення параметра | Зміст |
1. Види | 1.1. Фізична цілісність | - знищення (спотворення); |
1.2. Логічна цілісність | - спотворення; | |
1.3. Конфіденційність | - несанкціоноване отримання; | |
1.4. Порушення прав власності | - привласнення чужого права | |
2.Природа походження |
2.1.Випадкова 2.2.Навмисна |
-відмови, збої, помилки,стихійні біди; -зловмисні дії людей |
3. Передумови появи |
3.1. Об'єктивні 3.2. Суб'єктивні |
-кількісна або якісна |
недостатність елементів систем; | ||
-розвідувальні органи іноземної держави | ||
4. Джерела загрози |
4.1. Люди 4.2. Технічні пристрої 4.3. ПЗ (ППЗ, СМЗ) 4.4. Зовнішнє середовище |
-сторонній персонал; -пристрої обробки, зберігання, передачі інформації; -помилки; -атмосфера, побічні явища |
Сучасні засоби перехоплення інформації дозволяють на відстані в десятки і сотні, а іноді і більше метрів реєструвати різної природи побічні інформативні сигнали, що виникають при роботі технічних засобів, і за результатами цієї реєстрації відновлювати оброблювану, передану, прийняту, копійовану інформацію. [26]
Інформацію можна одержувати не тільки шляхом перехоплення побічних інформативних сигналів, але й за результатами прямої реєстрації сигналів, що циркулюють в інформаційних ланцюгах технічних систем (насамперед, у лініях зв'язку). Реалізувати засоби перехоплення тут, як правило, легше, ніж у випадку побічних випромінювань і наведень.
Фізичні заходи захисту інформації базуються на застосуванні всілякого роду механічних, електро- або електронно-механічних пристроїв, спеціально призначених для створення фізичних перешкод на можливих шляхах проникнення і доступу потенційних порушників до компонентів системи і інформації, а також технічних засобів візуального нагляду, зв'язку та охоронної сигналізації.
Ідентифікація - привласнення суб'єктам або об'єктам доступу ідентифікатора або порівняння пред'явленого ідентифікатора з переліком привласнених ідентифікаторів. Ідентифікація об'єкта - це його впізнання, ототожнення із чим-небудь. Якщо ж говорити про області інформаційних технологій, то даний термін звичайно означає встановлення особистості користувача. Цей процес необхідний для того, щоб система надалі змогла ухвалити рішення щодо видачі людині дозволу для роботи на комп'ютері, доступу до закритої інформації тощо. Таким чином, ідентифікація є одним з основних понять в інформаційній безпеці.
Аутентифікацією - називається процедура верифікації належності ідентифікатора суб'єкту. Аутентифікація здійснюється на основі того чи іншого секретного елемента (аутентифікатора), який є у розпорядженні як суб'єкта, так і інформаційної системи. Звичайно, інформаційна система має в розпорядженні не сам секретний елемент, а деяку інформацію про нього, на основі якої приймається рішення про адекватність суб'єкта ідентифікатору. Наприклад, перед початком інтерактивного сеансу роботи більшість операційних систем запитують у користувача його ім'я та пароль. Введене ім'я є ідентифікатором користувача, а його пароль - аутентифікатором. Операційна система зазвичай зберігає не сам пароль, а його хеш-суму, що забезпечує складність відновлення пароля.
1.2 Захист даних від несанкціонованого доступу (НСД)
Одним з напрямків захисту інформації в інформаційних системах є технічний захист інформації (ТЗІ). У свою чергу, питання ТЗІ розбиваються на два великих класи завдань: захист інформації від несанкціонованого доступу і захисту інформації від витоку технічними каналами. Під НСД мається на увазі доступ до інформації, що порушує встановлену в інформаційній системі політику розмежування доступу. Під технічними каналами розуміються канали сторонніх електромагнітних випромінювань і наведень, акустичні канали, оптичні канали й ін. [25]
Захист від НСД може здійснюватися в різних складових інформаційної системи:
1. Прикладне й системне ПЗ.
2. Апаратна частина серверів і робочих станцій.
3. Комунікаційне устаткування й канали зв'язку.
4. Периметр інформаційної системи.
Для захисту інформації на рівні прикладного й системного ПЗ використовуються:
· системи розмежування доступу до інформації;
· системи ідентифікації й аутентифікації;
· системи аудиту й моніторингу;
· системи антивірусного захисту.
Для захисту інформації на рівні апаратного забезпечення використовуються:
· апаратні ключі;
· системи сигналізації;
· засоби блокування пристроїв і інтерфейсів вводу-виводу інформації.
У комунікаційних системах використовуються наступні засоби мережевого захисту інформації:
· міжмережеві екрани (Firewall);
· системи виявлення вторгнень (IDS - Intrusion Detection System;
· засоби створення віртуальних приватних мереж (VPN - Virtual Private Network;
· засоби аналізу захищеності.
Для захисту периметра інформаційної системи створюються:
· системи охоронної й пожежної сигналізації;
· системи цифрового відеоспостереження;
· системи контролю й керування доступом (СККД).
При створенні програмно-апаратних засобів захисту від несанкціонованого доступу керуються наступними принципами:
1) принцип обґрунтованості доступу (виконавець повинен мати достатню «форму допуску» до закритої інформації, відомості про яку потрібні йому для повноцінного виконання професійних обов'язків);
2) принцип достатньої глибини контролю доступу (СЗІ повинні включати механізми контролю доступу до всіх видів інформаційних і програмних ресурсів);
3) принцип розмежування потоків інформації (не дозволяє переписувати закриту інформацію на незакриті носії; здійснюється мічення на носії інформації і ідентифікація цих носіїв);
4) принцип чистоти повторно використовуваних ресурсів (звільнення від закритої інформації ресурсів при їх видаленні);
5) принцип персональної відповідальності (виконавець повинен нести персональну відповідальність за свою діяльність в системі, включаючи всі дії із закритою інформацією);
6) принцип цілісності засобів захисту (засоби захисту повинні точно виконувати свої функції і бути ізольовані від користувача). [26]
Не слід недооцінювати можливості непрофесіоналів щодо здійснення комп'ютерних злочинів. Нелояльні співробітники, що мають доступ до комп'ютерів, грають головну роль в більшості фінансових злочинів. Це швидше організаційна, ніж технічна проблема.
Процедури безпеки можуть забезпечувати перевірку паролів і строгий контроль доступу до цінних загальних даних, але зловмисника, обізнаного у внутрішньому устрої системи, практично неможливо зупинити.
Для побудови надійного захисту необхідно виявити можливі погрози безпеці інформації, оцінити їх наслідки, визначити необхідні заходи і засоби захисту і оцінити їх ефективність. [25]
1.3 Криптографічні методи захисту інформації
Криптографічний захист інформації — вид захисту інформації, що реалізується за допомогою перетворень інформації з використанням спеціальних даних (ключових даних) з метою приховування (або відновлення) змісту інформації, підтвердження її справжності, цілісності, авторства тощо. [1]
Криптографія (від грецького kryptos — прихований і graphein — писати) — наука про математичні методи забезпечення конфіденційності (неможливості прочитання інформації стороннім) і автентичності (цілісності і справжності авторства) інформації. Розвинулась з практичної потреби передавати важливі відомості найнадійнішим чином. Для математичного аналізу криптографія використовує інструментарій абстрактної алгебри. [20]
Для сучасної криптографії характерне використання відкритих алгоритмів шифрування, що припускають використання обчислювальних засобів. Відомо більш десятка перевірених алгоритмів шифрування, які при використанні ключа достатньої довжини і коректної реалізації алгоритму, роблять шифрований текст недоступним для криптоаналізу. Широко використовуються такі алгоритми шифрування як Twofish, IDEA, RC4 та ін.
У багатьох країнах прийняті національні стандарти шифрування. У 2001 році в США прийнятий стандарт симетричного шифрування AES на основі алгоритму Rijndael з довжиною ключа 128, 192 і 256 біт. Алгоритм AES прийшов на зміну колишньому алгоритмові DES, який тепер рекомендовано використовувати тільки в режимі Triple-DES (3DES).
Тривалий час під криптографією розумілось лише шифрування — процес перетворення звичайної інформації (відкритого тексту) в незрозуміле «сміття» (тобто, шифротекст). Дешифрування — це обернений процес відтворення інформації із шифротексту. Шифром називається пара алгоритмів шифрування/дешифрування. Дія шифру керується як алгоритмами, та і в кожному випадку ключем. [12]
Ключ — це секретний параметр (в ідеалі, відомий лише двом сторонам) для окремого контексту під час передачі повідомлення. Ключі мають велику важливість, оскільки без змінних ключей алгоритми шифрування легко зламуються і непридатні для використання в більшості випадків. Історично склалось так, що шифри часто використовуються для шифрування та дешифрування, без виконання додаткових процедур, таких як аутенифікація або перевірка цілісності.
В англійській мові слова криптографія та криптологія інколи мають однакове значення, в той час, як деколи під криптографією може розумітись використання та дослідження технологій шифрування, а під криптологією — дослідження криптографії та криптології.
Дослідження характеристик мов, що мають будь-яке відношення до криптології, таких як частоти появи певних літер, комбінацій літер, загальні шаблони, тощо, називається криптолінгвістикою.
Криптоаналіз — розділ криптології, що займається математичними методами порушення конфіденційності і цілісності інформації без знання ключа.
Криптологія — розділ науки, що включає криптографію та криптоаналіз.
Криптографія займається розробкою методів шифрування даних, у той час як криптоаналіз займається оцінкою сильних і слабких сторін методів шифрування, а також розробкою методів, які дозволяють зламувати криптосистеми. [20]
До нашого часу, криптографія займалася виключно забезпеченням конфіденційності повідомлень (тобто шифруванням) — перетворенням повідомлень із зрозумілої форми в незрозумілу і зворотнє відновлення на стороні одержувача, роблячи його неможливим для прочитання для того, хто перехопив або підслухав без секретного знання (а саме ключа, необхідного для дешифровки повідомлення). В останні десятиліття сфера застосування криптографії розширилася і включає не лише таємну передачу повідомлень, але і методи перевірки цілісності повідомлень, ідентифікування відправника/одержувача (аутентифікація), цифрові підписи, інтерактивні підтвердження, та технології безпечного спілкування, тощо. [25]
Найперші форми тайнопису вимагали не більше ніж аналог олівця та паперу, оскільки в ті часи більшість людей не могли читати. Поширення писемності, або писемності серед ворогів, викликало потребу саме в криптографії. Основними типами класичних шифрів є перестановочні шифри, які змінюють порядок літер в повідомленні, та підстановочні шифри, які систематично замінюють літери або групи літер іншими літерами або групами літер. Прості варіанти обох типів пропонували слабкий захист від досвідчених супротивників. Одним із ранніх підстановочних шифрів був шифр Цезаря, в якому кожна літера в повідомленні замінювалась літерою через декілька позицій із абетки. Цей шифр отримав ім'я Юлія Цезаря, який його використовував, зі зсувом в 3 позиції, для спілкування з генералами під час військових кампаній, подібно до коду EXCESS-3 в булевій алгебрі.
Шляхом застосування шифрування намагаються зберегти зміст спілкування в таємниці, подібно до шпигунів, військових лідерів, та дипломатів. Збереглися також відомості про деякі з ранніх єврейських шифрів. Застосування криптографії радиться в Камасутрі як спосіб спілкування закоханих без ризику незручного викриття. Стеганографія (тобто, приховування факту наявності повідомлення взагалі) також була розроблена в давні часи. Зокрема, Геродот приховав повідомлення — татуювання на поголеній голові раба — під новим волоссям. До сучасних прикладів стеганографії належать невидимі чорнила, мікрокрапки, цифрові водяні знаки, що застосовуються для приховування інформації. [3]
Шифротексти, отримані від класичних шифрів (та деяких сучасних), завжди видають деяку статистичну інформацію про текст повідомлення, що може бути використано для зламу. Після відкриття частотного аналізу (можливо, арабським вченим аль-Кінді) в 9-тому столітті, майже всі такі шифри стали більш-менш легко зламними досвідченим фахівцем. Класичні шифри зберігли популярність, в основному, у вигляді головоломок. Майже всі шифри залишались беззахисними перед криптоаналізом з використанням частотного аналізу до винаходу поліалфавітного шифру, швидше за все, Альберта Леоном-Баттіста приблизно в 1467 році (хоча, існують свідчення того, що знання про такі шифри існували серед арабських вчених). Винахід Альберті полягав в тому, щоб використовувати різні шифри (наприклад, алфавіти підстановки) для різних частин повідомлення. Йому також належить винахід того, що може вважатись першим шифрувальним приладом: колесо, що частково реалізовувало його винахід. В поліалфавітному шифрі Віженера (англ. Vigenиre cipher), алгоритм шифрування використовує ключове слово, яке керує підстановкою літер в залежності від того, яка літера ключового слова використовується. В середині 1800-тих, Чарльз Беббідж показав, що поліалфавітні шифри цього типу залишились частово беззахисними перед частотним аналізом. [4]
Хоча частотний аналіз є потужною та загальною технікою, шифрування, на практиці, часто було ефективним; багато із криптоаналітиків не знали цю техніку. Дешифрування повідомлень без частотного аналізу практично означало необхідність знання використаного шифру, спонукаючи, таким чином, до шпигунства, підкупу, крадіжок, зрад, тощо для отримання алгоритму. Згодом, в 19-тому столітті, було визнано, що збереження алгоритму шифрування в таємниці не забезпечує захист від зламу; насправді, було встановлено, що будь-яка адекватна криптографічна схема залишається у безпеці, навіть за умови доступу сторонніх. Збереження в таємниці ключа має бути достатньою умовою захисту інформації нормальним шифром. Цей фундаментальний принцип було вперше проголошено в 1883 Огюстом Керкгофсом, і загальновідомий як принцип Керкгоффза; більш різкий варіант озвучив Клод Шеннон, як максимум Шеннона — ворог знає систему.
Було створено різні механічні прилади та інструменти для допомоги в шифруванні. Одним з найперших є скітало (рис. 1.1) в стародавній Греції, палиця, що, як вважається, використовувалась Спартанцями в якості перестановочного шифру. В середньовіччя, було винайдено інші засоби, такі як дірочний шифр, що також використовувася для часткової стеганографії.
Рис. 1.1 Cучаснa реконструкція шифра «скітало»
Разом із винаходом поліалфавітних шифрів, було розроблено досконаліші засоби, такі як власний винахід Альберті шифрувальний диск та мультициліндр Томаса Джефферсона (повторно винайдений Базерієсом приблизно в 1900 році). Декілька механічних шифрувально/дешифрувальних приладів було створено на початку 20-го століття і багато запатентовано, серед них роторні машини — найвідомішою серед них є Енігма (рис. 1.2), автомат, що використовувася Німеччиною з кінця 20-тих і до кінця Другої Світової Війни. [20]
Рис. 1.2 Автомат Енігма
Цей автомат реалізовував складний електромеханічний поліафавітний шифр для захисту таємних повідомлень. Злам шифру Енігми в Бюро Шифрів (Biuro Szyfrow), та, як наслідок за цим, дешифрування повідомлень в Блетчі Парк (англ. Bletchley Park), було важливим чинником перемоги Союзників у війні. [20]
Шифри, реалізовані прикладами покращених варіантів цих схем призвели до істотного підвищення криптоаналітичної складності після Другої Світової Війни. Поява цифрових комп'ютерів та електроніки після Другої Світової Війни зробило можливим появу складніших шифрів. Більше того, комп'ютери дозволяли шифрувати будь-які дані, які можна представити в комп'ютері у двійковому виді, на відміну від класичних шифрів, які розроблялись для шифрування письмових текстів. Це зробило непридатними для застосування лінгвістичні підходи в криптоаналізі. Багато комп'ютерних шифрів можна характеризувати за їхньою роботою з послідовностями бінарних бітів (інколи в блоках або групах), на відміну від класичних та механічних схем, які, зазвичай, працюють безпосередньо з літерами. Однак, комп'ютери також знайшли застосування у криптоаналізі, що, в певній мірі, компенсувало підвищення складності шифрів. Тим не менше, гарні сучасні шифри залишались попереду криптоаналізу; як правило, використання якісних шифрів дуже ефективне (тобто, швидке і вимагає небагато ресурсів), в той час як злам цих шифрів потребує набагато більших зусиль ніж раніше, що робить криптоаналіз настільки неефективним та непрактичним, що злам стає практично неможливим.
Широкі академічні дослідження криптографії з'явились порівняно нещодавно — починаючи з середини 1970-тих, разом із появою відкритої специфікації стандарту DES (Data Encryption Standard) Національного Бюро Стандартів США, публікацій Діффі-Хелмана та оприлюдненням алгоритму RSA. Відтоді, криптографія перетворилась на загальнопоширений інструмент для передачі даних, в комп'ютерних мережах, та захисті інформації взагалі. Сучасний рівень безпеки багатьох криптографічних методів базується на складності деяких обчислювальних проблем, таких як розклад цілих чисел, або проблеми з дискретними логарифмами. В багатьох випадках, існують докази безпечності криптографічних методів лише за умови неможливості ефективного розв'язання певної обчислювальної проблеми. За одним суттєвим виключенням — схема одноразових блокнотів. [4]
Разом із пам'яттю про історію криптографії, розробники криптографічних алгоритмів та систем також мають брати до уваги майбутній поступ технологій в своїх розробках. Наприклад, постійне підвищення обчислювальної потужності комп'ютерів розширило поле для атак грубої сили. Тому, відповідно і оновлюються стандарти в сенсі вибору довжини ключа. Можливі наслідки розвитку квантових комп'ютерів вже враховуються деякими розробниками криптографічних систем; анонсована поява малих реалізацій цих комп'ютерів робить важливою попередню підготовку.
Взагалі кажучи, до початку 20-го століття, криптографія, в основному, була пов'язана з лінгвістичними схемами. Після того, як основний акцент було зміщено, зараз криптографія інтенсивно використовує математичний апарат, включно з теорією інформації, теорією обчислювальної складності, статистики, комбінаторики, абстрактної алгебри та теорії чисел. Криптографія є також відгалуженням інженерії, але не звичним, оскільки вона має справу з активним, розумним та винахідливим супротивником; більшість інших видів інженерних наук мають справу з нейтральними силами природи. Існують дослідження з приводу взаємозв'язків між криптографічними проблемами та квантовою фізикою. [20]
1.3.2 Шифрування і розшифрування
Інформація, що може бути прочитана, осмислена і зрозуміла без яких-небудь спеціальних мір, називається відкритим текстом (plaintext, clear text). Метод перекручування відкритого тексту таким чином, щоб сховати його суть, називається шифруванням (encryption або enciphering). Шифрування відкритого тексту приводить до його перетворення в незрозумілу абракадабру, іменовану шифртекстом (ciphertext). Шифрування дозволяє сховати інформацію від тих, для кого вона не призначається, незважаючи на те, що вони можуть бачити сам шифртекст. Протилежний процес по звертанню шифртекста в його вихідний вид називається розшифруванням (decryption або deciphering).
Криптографія може бути стійкою, а може бути і слабкою, як описано в приведеному прикладі. Криптографічна стійкість виміряється тим, скільки знадобиться часу і ресурсів, щоб із шифртекста відновити вихідний відкритий текст. Результатом стійкої криптографії є шифртекст, що винятково складно зламати без володіння визначеними інструментами по дешифруванню. Але наскільки складно? Використовуючи весь обчислювальний потенціал сучасної цивілізації - навіть мільярд комп'ютерів, що виконують мільярд операцій у секунду - неможливо дешифрувати результат стійкої криптографії до кінця існування Всесвіту. Хтось може вирішити, що стійка криптографія зможе устояти навіть проти самого серйозного криптоаналітика. Але хто про це говорить? Ніким не доведене, що краще шифрування, доступне сьогодні, зможе вистояти проти обчислювальних можливостей комп'ютерів, доступних завтра. [25]
Криптографічний алгоритм, або шифр, - це математична формула, що описує процеси шифрування і розшифрування. Щоб зашифрувати відкритий текст, криптоалгоритм працює в сполученні з ключем - словом, числом або фразою. Те саме повідомлення одним алгоритмом, але різними ключами буде перетворюватися в різний шифртекст. Захищеність шифртекста цілком залежить від двох речей: стійкості криптоалгоритму і таємності ключа. Криптоалгоритм плюс усілякі ключі і протоколи, що приводять їх у дію, складають криптосистему. У традиційній криптографії, також називаної шифруванням таємним, або симетричним, той самий ключ використовується як для шифрування, так і для розшифрування даних. Data Encryption Standart (DES) - приклад симетричного алгоритму, що широко застосовувався на Заході з 70-х років у банківській і комерційних сферах. В даний час його переміняє Advanced Encryption Standard (AES). [20]
Симетричне шифрування має ряд переваг. Перше - швидкість криптографічних операцій. Воно особливо корисно для шифрування даних, що залишаються у вас. Однак, симетричне шифрування, використане саме по собі як засіб захисту коштовних даних, що пересилаються, може виявитися досить витратним просто через складність передачі таємного ключа. Для встановлення криптографічного зв'язку за допомогою симетричного алгоритму, відправникові й одержувачеві потрібно попередньо погодити ключ і тримати його в таємниці. Якщо вони знаходяться в географічно вилучених місцях, то повинні вдатися до допомоги довіреного посередника, наприклад, надійного кур'єра, щоб уникнути компрометації ключа в ході транспортування. Зловмисник, що перехопив ключ на шляху, зможе пізніше читати, змінювати і підробляти будь-яку інформацію, зашифровану або завірену цим ключем. Глобальна проблема симетричних шифрів складається в складності керування ключами: як ви доставите ключ одержувачеві без ризику, що його перехоплять?[21]
1.3.3 PGP. Цифрові підписи. Хеш-функція
PGP поєднує в собі кращі сторони симетричної криптографії і криптографії з відкритим ключем. PGP - це гібридна криптосистема. [7]
Коли користувач зашифровує дані за допомогою PGP, програма для початку їх стискає. Стиск скорочує час модемної передачі і заощаджує дисковий простір, а також, що більш важливо, підвищує криптографічну стійкість. Більшість криптоаналітичних техніків засновано на статистичному аналізі шифртекста в пошуках ознак відкритого тексту. Стиск зменшує число таких ознак, що істотно підсилює опірність криптоаналізу.
Потім, PGP створює сеансовий ключ, тобто одноразовий симетричний ключ, застосовуваний тільки для однієї операції. Цей сеансовий ключ являє собою псевдовипадкове число, згенероване від випадкових рухів мишки і натискання клавіш. Сеансовий ключ працює на основі дуже надійного, швидкого симетричного алгоритму, яким PGP зашифровує стиснуте повідомлення; у результаті виходить шифртекст. Як тільки дані зашифровані, сеансовий ключ також шифрується, але уже відкритим ключем одержувача. Цей зашифрований відкритим ключем сеансовий ключ прикріплюється до шифртексту і передається разом з ним одержувачеві.
Розшифрування відбувається в зворотному порядку. PGP одержувача використовує його закритий ключ для витягу сеансового ключа з повідомлення, яким шифртекст вихідного послання відновлюється у відкритий текст. [12]
Таким чином, комбінація цих двох криптографічних методів поєднує зручність шифрування відкритим ключем зі швидкістю роботи симетричного алгоритму. Симетричне шифрування в тисячі разів швидше асиметричного. Шифрування відкритим ключем, у свою чергу, надає просте рішення проблеми керування ключами і передачі даних. При використовувані їх спільно, швидкість виконання і керування ключами взаємно доповнюються і поліпшуються без якого-небудь збитку безпеки.
Додаткова перевага від використання криптосистем з відкритим ключем полягає в тому, що вони надають можливість створення електронних цифрових підписів (ЕЦП). Цифровий підпис дозволяє одержувачеві повідомлення переконатися в автентичності джерела інформації (іншими словами, у тім , хто є автором інформації), а також перевірити, чи була інформація змінена (перекручена), поки знаходилася в шляху. Таким чином, цифровий підпис є засобом авторизації і контролю цілісності даних. Крім того, ЕЦП несе принцип незречення, що означає, що відправник не може відмовитися від факту свого авторства підписаної ним інформації. Ці можливості настільки ж важливі для криптографії, як і таємність. ЕЦП служить тієї ж мети , що печатка або власноручний автограф на паперовому листі . Однак внаслідок своєї цифрової природи ЕЦП перевершує ручний підпис і печатку в ряді дуже важливих аспектів. Цифровий підпис не тільки підтверджує особистість що підписала, але також допомагає визначити, чи був зміст підписаної інформації змінений. Власноручний підпис і печатка не мають подібну якість, крім того, їх набагато легше підробити. У той же час, ЕЦП аналогічна фізичної печатки в тім плані, що, як печатка може бути проставлена будь-якою людиною, що одержала в розпорядження печатку, так і цифровий підпис може бути згенерована ким завгодно з копією потрібного закритого ключа. Деякі люди використовують цифровий підпис набагато частіше ніж шифрування. Наприклад, ви можете не хвилюватися, якщо хтось довідається , що ви тільки що помістили $1000 на свій банківський рахунок, але ви повинні бути абсолютно упевнені, що робили транзакцію через банківського касира. [18]
Замість шифрування інформації чужим відкритим ключем, ви шифруєте її своїм власним закритим. Якщо інформація може бути розшифрована вашим відкритим ключем, значить її джерелом є ви.
Однак описана вище схема має ряд істотних недоліків. Вона вкрай повільна і робить занадто великий обсяг даних - щонайменше вдвічі більше обсягу вихідної інформації. Поліпшенням такої схеми стає введення в процес перетворення нового компонента - однобічної хеш-функції. Одностороня хеш-функція отримує ввід довільної довжини, називаний прообразом, - у даному випадку, повідомлення будь-якого розміру, хоч тисячі або мільйони біт - і генерує строго залежний від прообразу значення фіксованої довжини, допустимо, 160 біт. Хеш-функція гарантує, що якщо інформація буде будь-як змінена - навіть на один біт, - у результаті вийде зовсім інше хеш-значення. У процесі цифрового підпису PGP обробляє повідомлення криптографічно стійким однобічним хеш-алгоритмом. Ця операція приводить до генерації рядка обмеженої довжини, називаної дайджестом повідомлення (message digest). Потім PGP зашифровує отриманий дайджест закритим ключем відправника, створюючи "електронний підпис", і прикріплює її до прообразу. PGP передає ЕЦП разом з вихідним повідомленням. Після одержання повідомлення, адресат за допомогою PGP заново обчислює дайджест підписаних даних, розшифровує ЕЦП відкритим ключем відправника, тим самим звіряючи, відповідно, цілісність даних і їхнє джерело; якщо обчислений адресатом і отриманий з повідомленням дайджести збігаються, значить інформація після підписання не була змінена. PGP може як зашифрувати саме повідомлення, що підписується, так і не робити цього; підписання відкритого тексту без шифрування корисно в тому випадку, якщо хто-небудь з одержувачів не зацікавлений або не має можливості звірити підпис (допустимо , не має PGP). Якщо в механізмі формування ЕЦП застосовується стійка однобічна хеш-функція, немає ніякого способу взяти або підпис з одного документа і прикріпити неї до іншого, або ж будь-якимось чином змінити підписане повідомлення. Найменша зміна в підписаному документі буде виявлено в процесі звірення ЕЦП. ЕЦП відіграють найважливішу роль у посвідченні і запевнянні ключів інших користувачів PGP. [17][18][20]
1.3.4 Симетричне шифрування
Симетричні алгоритми шифрування — алгоритми, які застосовуються при шифруванні інформації. Особливість симетричних алгоритмів шифрування полягає у тому, що ключ шифрування та розшифрування однаковий, тобто з його допомогою можна як зашифрувати, так і розшифрувати (відновити) повідомлення. Симетричні алгоритми шифрування можна розділити на потокові та блочні алгоритми шифрування. Потокові алгоритми шифрування послідовно обробляють текст повідомлення. Блочні алгоритми працюють з блоками фіксованого розміру. Як правило, довжина блоку дорівнює 64 бітам, але, в алгоритмі AES використовуються блоки довжиною 128 біт. [21]
Симетричні алгоритми шифрування не завжди використовуються самостійно. В сучасних криптоситемах, використовуються комбінації симетричних та асиметричних алгоритмів, для того, аби отримати переваги обох схем. До таких систем належить SSL, PGP та GPG. Асиметричні алгоритми використовуються для розповсюдження ключів швидших симетричних алгоритмів. До деяких відомих, поширених алгоритмів з гарною репутацією належать: Twofish, Serpent, AES (або Рейндайль), Blowfish, CAST5, RC4, TDES (3DES), та IDEA. [12]
В основному, симетричні алгоритми шифрування вимагають менше обчислень, ніж асиметричні. На практиці, це означає, що якісні асиметричні алгоритми в сотні або в тисячі разів повільніші за якісні симетричні алгоритми. Недоліком симетричних алгоритмів є необхідність мати секретний ключ з обох боків передачі інформації. Так як ключі є предметом можливого перехоплення, їх необхідно часто змінювати та передавати по безпечних каналах передачі інформації під час розповсюдження.
При застосуванні із асиметричними алгоритмами шифрування для передачі ключів, майже завжди використовуються генератори криптографічно стійких псевдовипадкових чисел для генерування симетричних ключів сеансу. Однак, брак достатнього рівня випадковості в цих генераторах, або в їх початкових векторах, в минулому часто призводив до втрати конфіденційності при передачі даних. Дуже ретельний підхід до впровадження криптосистеми та генерація випадкових чисел із використанням високоякісних джерел випадкових чисел є дуже важливим для збереження конфіденційності даних, що передаються. []
Мережа Фейстеля (конструкція Фейстеля) - один з методів побудови блокових шифрів. Мережа являє собою певну багаторазову структуру що повторюється (ітерована) і називається осередком Фейстеля. При переході від однієї комірки до іншої змінюється ключ, причому вибір ключа залежить від конкретного алгоритму. Операції шифрування та розшифрування на кожному етапі дуже прості, і при певній доробці збігаються, вимагаючи тільки зворотного порядку використовуваних ключів. Шифрування за допомогою даної конструкції легко реалізується як на програмному рівні, так і на апаратному, що забезпечує широкі можливості застосування. Більшість сучасних блокових шифрів використовують мережу Фейстеля в якості основи. Альтернативою мережі Фейстеля є узагальнення-перестановочне мережу. [18]
У 1971 Хорст Фейстель (Horst Feistel) запатентував два пристрої, які реалізували різні алгоритми шифрування, названі потім загальною назвою «Люцифер» (Lucifer). Одне з пристроїв використовувало конструкцію, згодом названу «мережею Фейстеля» («Feistel cipher», «Feistel network»). Робота над створенням нових криптосистем велася ним у стінах IBM разом з Доном Копперсмітом (Don Coppersmith). Проект «Люцифер» був скоріше експериментальним, але став базисом для алгоритму Data Encryption Standard (DES). У 1973 Хорст Фейстель в журналі Scientific American опублікував статтю «Криптографія і Комп'ютерна безпека» [1] [2] («Cryptography and Computer Privacy»), в якій розкрив ряд важливих аспектів шифрування і привів опис першої версії проекту «Люцифер» , не використала мережу Фейстеля. У 1977 DES став стандартом у США на шифрування даних, і до останнього часу широко використовувався в криптографічних системах. Ітеративний структура алгоритму дозволяла спростити його реалізацію у програмних і апаратних середовищах. Згідно з деякими даними вже в 1970-і роки в КДБ (СРСР) розроблявся блоковий шифр, що використав мережу Фейстеля і, ймовірно, саме він пізніше був прийнятий як ГОСТ 28147-89 в 1990 році. [14]
У 1987 були розроблені алгоритми FEAL і RC2 . Широке поширення мережі Фейстеля отримали в 1990-і роки, коли з'явилися такі алгоритми, як: Blowfish, CAST-128, TEA, XTEA, XXTEA, RC5, RC6 та ін.
Розглянемо випадок, коли ми хочемо зашифрувати деяку інформацію, представлену в двійковому вигляді в комп'ютерної пам'яті (наприклад, файл ) або електроніці, як послідовність нулів і одиниць (рис. 1.3).
· Вся інформація розбивається на блоки фіксованої довжини. У разі, якщо довжина вхідного блоку менше, ніж розмір, який шифрується заданим алгоритмом, то блок подовжується будь-яким способом. Як правило довжина блоку є ступенем двійки, наприклад: 64 біта, 128 біт. Далі будемо розглядати операції відбуваються тільки з одним блоком, тому що з іншими в процесі шифрування виконуються ті ж самі операції.
· Обраний блок ділиться на два рівних подблока - «лівий» (L0) і «правий» (R0).
· «Лівий подблок» L0 видозмінюється функцією f (L0, K0) залежно від раундового ключа K0, після чого він складається за модулем 2 з «правим подблоком» R0.
· Результат складання присвоюється новому лівому подблоку L1, який буде половиною вхідних даних для наступного раунду, а «лівий подблок» L 0 присвоюється без змін новому правому подблоку R 1 (див. схему), який буде іншою половиною.
· Після чого операція повторюється N-1 раз, при цьому при переході від одного етапу до іншого змінюються раундовий ключі (K0 на K1 і т. д.) за будь-яким математичному правилом, де N - кількість раундів в заданому алгоритмі.
· Розшифровка інформації відбувається так само, як і шифрування, з тим лише виключенням, що ключі ідуть у зворотному порядку, тобто не від першого до N-го, а від N-го до першого (рис. 1.4).
Рис. 1.3 Шифрування
Рис. 1.4 Розшифрування
Конструкцію Фейстеля можна описати так:
· блок відкритого тексту ділиться на 2 рівні частини
· в кожному раунді обчислюється ( — номер раунду)
,
де f - деяка функція, а K i - 1 ключ i-го раунду.
Результатом виконання n раундів є . Але зазвичай в n-му раунді перестановка L n і R n не проводиться, що дозволяє використовувати ту ж процедуру і для розшифрування, просто інвертувати порядок використання раундової ключової інформації:
,
Невеликою зміною можна добитися і повної ідентичності процедур шифрування і дешифрування. Одна з переваг такої моделі - оборотність алгоритму незалежно від використовуваної функції f, і вона може бути як завгодно складною.
Нехай вхідний блок X = (L, R) складається з двох підблоків (L і R) однакової довжини. Визначимо два перетворення
(шифрування ключем K) і T (L, R) = (R, L) (перестановкапідблоків). Введемо позначення:
Доведемо їх інволютивно:
1. Нескладно помітити, що перетворення G міняє лише лівий підблок L, залишаючи правий R незмінним. Тому далі будемо розглядати тільки підблок L. Після того як перетворення G буде двічі застосовано до L отримаємо:
2.
Таким чином G2 X = X, отже G - інволюція.
3. T2 X = T 2 (L,R) = T (R,L) = (L,R ) = X.
Розглянемо сам процес шифрування. Визначимо X як вхідний значення. Нехай Gi - перетворення з ключем Ki, а Yi - вихідне значення після i-го раунду. Тоді перетворення на i +1- му раунді можна записати у вигляді
Yi+1 = T Gi Yi,
крім першого, де
Y1 = T G1 X
Отже, вихідне значення після m раундів шифрування буде
.
Можна помітити, що на останньому етапі не обов'язково виконувати перестановку T.
Розшифрування ведеться застосуванням всіх перетворень у зворотному порядку. У силу інволютивно кожного з перетворень зворотний порядок дає вихідний результат:
[16]
У своїй роботі «Криптографія і Комп'ютерна безпека» Хорст Фейстель описує два різних блоку перетворень (функцій ) — блок підстановок (S-блок) та блок перестановок (P-блок). Можна показати, що будь-яке бінарне перетворення над двійковим блоком фіксованої довжини, зводяться до S-блоку, але на практиці в силу складності будови n-розрядного S-блоку при великих n, застосовують більш прості конструкції. Термін «блок» в оригінальній статті використовується замість функції внаслідок того, що мова йде про блокове шифрі і передбачалося, що S-і P-блоки будуть цифровими мікросхемами (цифровими блоками).
Блок підстановок (S-блок) складається з дешифратора, що перетворює n-розрядний двійковий сигнал у однорозрядної сигнал по підставі 2n, системи комутаторів внутрішніх з'єднань (усього з'єднань 2n!) і шифратора , переводить сигнал з однорозрядною 2n-річно в n- розрядний двійковий. Аналіз n-розрядного S-блоку при великому n вкрай складний, проте реалізувати такий блок на практиці дуже складно, так як число можливих з'єднань вкрай велике (2n!). На практиці блок підстановок використовується як частина більш складних систем (Рис. 1.5).
У загальному випадку S-блок може мати неспівпадаючі число входів/виходів, в цьому випадку в системі комутації від кожного виходу дешифратора може йти не строго одне з'єднання, а 2 або більше чи не йти зовсім. Те ж саме справедливо і для входів шифратора. [14]
Рис. 1.5 Принципова схема 3-розрядного S-блоку
В електроніці можна безпосередньо застосовувати наведену схему, в програмуванні ж генерують таблиці заміни. Обидва цих підходу є еквівалентними, тобто файл, зашифрований на комп'ютері, можна розшифрувати на електронному пристрої і навпаки. [21]
Таблиця 1.2
Заміни для наведеного 3-розрядного S-блоку
Блок перестановок всього лише змінює положення цифр і є лінійним пристроєм. Цей блок може мати дуже велику кількість входів-виходів, проте в силу лінійності систему не можна вважати криптостійкою. Криптоаналіз ключа для n-розрядного P-блоку проводиться шляхом подачі на вхід n-1 різних повідомлень, кожне з яких складається з n-1 нуля («0») та 1 одиниці («1») (Рис. 1.6).
Рис. 1.6 Принципова схема 8-розрядного P-блоку
Можна показати, що циклічний зсув є окремим випадком P-блоку. У найпростішому випадку (зсув на 1 біт), крайній біт відщеплюється і переміщується на інший кінець регістру або шини. Залежно від того який біт береться, правий чи лівий, зсув називається вправо або вліво. Зрушення на більше число біт можна розглядати, як багаторазове застосування зсуву на 1.
Таблиця1.3
Циклічний зсув на m біт для n-розрядного входу (m <n)
Рис. 1.7 Циклічний зсув вліво на 3 розряди 8-ми бітної шини
Позначення операції - (A + B) mod n - це залишок від ділення суми A + B на n, де A і B - складати числа. Можна показати, що складання двох чисел за модулем n представляється в двійковій системі числення, як S-блок, у якого на вхід подається число A, а в якості системи комутації S-блоку використовується циклічний зсув вліво на B розрядів. У комп'ютерній техніці та електроніці операція додавання, як правило, реалізована як складання по модулю n = 2 m, де m - ціле (зазвичай m одно розрядності машини). Для отримання в двійковій системі A + B mod 2 m досить скласти числа, після чого відкинути розряди починаючи з m-того і старше.
Позначення операції - (A * B) mod n - це залишок від ділення твори A * B на n, де A і B - перемножується числа. У персональних комп'ютерах на платформі x86 при перемножування двох m-розрядних чисел виходить число розрядністю 2 * m. Щоб отримати залишок від ділення на 2 m потрібно відкинути m старших біт. [16][19]
Переваги:
· Простота апаратної реалізації на сучасній електронній базі
· Простота програмної реалізації в силу того, що значна частина функцій підтримується на апаратному рівні у сучасних комп'ютерах (наприклад, складання за модулем 2 , додавання за модулем 2 n, множення за модулем 2 n, і т. д.)
· Гарна вивченість алгоритмів на основі мереж Фейстеля.
Недоліки:
· За один раунд шифрується тільки половина вхідного блоку. [12]
Мережі Фейстеля були широко вивчені криптографами в силу їх великого розповсюдження. У 1988 Майкл Люби (Michael Luby) і Чарльз Ракофф (Charles Rackoff) провели дослідження мережі Фейстеля і довели, що якщо раундовий функція є криптостійкого псевдовипадковою, і використовувані ключі незалежні у кожному раунді, то 3-х раундів буде достатньо для того, щоб блочний шифр був псевдовипадковою перестановкою, тоді як чотирьох раундів буде достатньо для того, щоб зробити сильну псевдовипадкову перестановку.
Псевдовипадковою перестановкою Люби і Ракофф назвали таку, яка стійка до атаки з адаптивним вибором відкритого тексту, а сильною псевдовипадковою перестановкою - псевдовипадкових перест ановку стійку до атаки з використанням обраного шифрованого тексту. [14]
При великому розмірі блоків шифрування (128 біт і більше) реалізація такої мережі Фейстеля на 32-розрядних архітектурах може викликати труднощі, тому застосовуються модифіковані варіанти цієї конструкції (Рис. 1.7). Зазвичай використовуються мережі з 4 гілками. На малюнку показані найбільш поширені модифікації. Також існують схеми, в яких довжини половинок L0 і R0 не співпадають. Вони називаються незбалансованими. [21]
1.3.4 Асиметричне шифрування
Асиметричне шифрування (або криптографічна система з відкритим ключем) - система шифрування та/або електронного цифрового підпису (ЕЦП), при якій відкритий ключ передається з відкритого (тобто незахищеному, доступному для спостереження) каналу, і використовується для перевірки ЕЦП і для шифрування повідомлення. Для генерації ЕЦП і для розшифрування повідомлення використовується секретний ключ. Криптографічні системи з відкритим ключем в даний час широко застосовуються в різних мережевих протоколах, зокрема, в протоколах TLS і його попереднику SSL (що лежать в основі HTTPS), в SSH. Також використовується в PGP, S / MIME. [22]
Рис. 1.7. Модифікації мережі Фейстеля.
Ідея криптографії з відкритим ключем дуже тісно пов'язана з ідеєю односторонніх функцій , тобто таких функцій f (x), що за відомим x досить просто знайти значення f (x), тоді як визначення x з f (x) складно в сенсі теорії.
Але сама одностороння функція марна в застосуванні: нею можна зашифрувати повідомлення, але розшифрувати не можна. Тому криптографія з відкритим ключем використовує односторонні функції з лазівкою. Лазівка - це якийсь секрет, який допомагає розшифрувати. Тобто існує такий y, що знаючи f (x), можна обчислити x. [6]
E e (m) = c
Тут c C , де C - простір шифротекстів, а m M , де M - простір повідомлень.
D d - функція розшифрування, за допомогою якої можна знайти початкове повідомлення m, знаючи шіфротекст c:
D d (c) = m
(E e: e K } — набір шифрування, а (D d: d K } — відповідний набір для розшифрування
Кожна пара (E, D) має властивість: знаючи E e, неможливо вирішити рівняння
E e (m) = c,
тобто для даного довільного шифротекста c C, неможливо знайти повідомлення m M . Це означає, що з даного e неможливо визначити відповідний ключ розшифрування d. Ee є однобічною функцією, а d - лазівкою. [22]
Нижче показано схема передачі інформації особою А особі В (рис. 1.7).
Рис. 1.8. Cхема передачі інформації особою А особі В.
Початок асиметричним шифру було покладено в роботі «Нові напрямки в сучасній криптографії» Уітфілд Діффі і Мартіна Хеллмана, опублікованій в 1976 році. Перебуваючи під впливом роботи Ральфа Меркле (Ralph Merkle) про поширення відкритого ключа, вони запропонували метод отримання секретних ключів, використовуючи відкритий канал. Цей метод експоненціального обміну ключів, який став відомий як обмін ключами Діффі-Хеллмана, був першим опублікованим практичним методом для встановлення поділу секретного ключа між завіреними користувачами каналу. У 2002 Хеллмана запропонував називати даний алгоритм «Діффі - Хеллмана - Меркле», визнаючи внесок Меркле в винахід криптографії з відкритим ключем. Ця ж схема була розроблена Малькольмом Вільямсоном в 1970-х, але трималася в секреті до 1997. Метод Меркле з розповсюдження відкритого ключа був винайдений в 1974 і опублікований в 1978, його також називають загадкою Меркле. [4]
У 1977 вченими Рональдом Рівестом (Ronald Linn Rivest), Аді Шаміров (Adi Shamir) і Леонардом Адлеманом (Leonard Adleman) з Массачусетського Технологічного Інституту (MIT) був розроблений алгоритм шифрування, заснований на проблемі про розкладанні на множники. Система була названа по перших буквах їх призвіщ. Ця ж система була винайдена Клиффордом Коксом (Clifford Cocks) у 1973, що працював в центрі урядового зв'язку (GCHQ). Але ця робота зберігалася лише у внутрішніх документах центру, тому про її існування було не відомо до 1977. RSA став першим алгоритмом, придатним і для шифрування, і для цифрового підпису. [23]
Алгоритми криптосистеми з відкритим ключем можна використовувати:
· Як самостійні засоби для захисту переданої та збереженої інформації
· Як засоби розподілу ключів. Звичайно за допомогою алгоритмів криптосистем з відкритим ключем розподіляють ключі, малі за об'ємом.. А саму передачу великих інформаційних потоків здійснюють за допомогою інших алгоритмів.
· Як засоби аутентифікації користувачів.
· Перевага асиметричних шифрів перед симетричними шифрами полягає у відсутності необхідності попередньої передачі особистого ключа по надійному каналу.
· У симетричної криптографії ключ тримається в секреті для обох сторін, а в асиметричної криптосистеми тільки один секретний.
· При симетричному шифруванні необхідно оновлювати ключ після кожного факту передачі, тоді як в асиметричних криптосистемах пару (E, D) можна не змінювати значний час.
· У великих мережах число ключів в асиметричної криптосистеми значно менше, ніж у симетричною.
· Преимущество алгоритма симметричного шифрования над несимметричным заключается в том, что в первый относительно легко внести изменения.
· Хотя сообщения надежно шифруются, но «засвечиваются» получатель и отправитель самим фактом пересылки шифрованного сообщения.
· Несимметричные алгоритмы используют более длинные ключи, чем симметричные. Ниже приведена таблица, сопоставляющая длину ключа симметричного алгоритма с длиной ключа несимметричного алгоритма с аналогичной криптостойкостью (таб. 1.3).
Таблиця 1.3
Довжини симетричних і несиметричних ключів
· Процесс шифрования-расшифрования с использованием пары ключей проходит на два-три порядка медленнее, чем шифрование-расшифрование того же текста симметричным алгоритмом.
· В чистом виде асимметричные криптосистемы требуют существенно больших вычислительных ресурсов. [9][6][22]
Список використаних джерел
1. Указ Президента України від 22 травня 1998 року N 505/98«Про Положення про порядок здійснення криптографічного захисту інформації в Україні». Перевірено 2009-06-12.
2. Соболева Т.А. Введение // История шифровального дела в России. — М.: ОЛМА-ПРЕСС Образование, 2002. — 512 с. — (Досье). — 5 000 экз. — ISBN 5-224-03634-8
3. Павел Исаев. Некоторые алгоритмы ручного шифрования (рус.) // КомпьютерПресс. — 2003. — В. 3.
4. Жельников В. Появление шифров // Кpиптогpафия от папиpуса до компьютеpа. — М.: ABF, 1996. — 335 с. — ISBN 5-87484-054-0
5. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. — М.: Триумф, 2002. — 816 с. — 3000 экз. — ISBN 5-89392-055-4 (http://www.ssl.stu.neva.ru/psw/crypto/appl_ rus/appl_cryp.htm)
6. Саломаа А. Криптография с открытым ключом.
7. PGP. Распределение ключей. (http://www.re.mipt.ru/infsec/2004/essay/2004_PGP_Keys_Web_of_Trust_Lukjanchenko.htm)
8. Принцип достаточной защиты. (http://pmi.ulstu.ru/new_project/telecommunication/redar.htm)
9. Баричев С. Криптографія без секретов. с. 20
10. А.П. Алферов, А.Ю. Зубов, А.С. Кузьмин, А.В. Черемушкин Основы криптографии.
11. Семенов Ю.А. Алгоритм DES. (http://book.itep.ru/6/des_641.htm)
12. Венбо Мао Современная криптография. Теория и практика = Modern Cryptography: Theory and Practice. — М.: Вильямс, 2005. — 768 с. — 2 000 экз. — ISBN 5-8459-0847-7, ISBN 0-13-066943-1
13. Нильс Фергюсон, Брюс Шнайер Практическая криптография = Practical Cryptography: Designing and Implementing Secure Cryptographic Systems. — М.: «Диалектика», 2004. — 432 с. — 3 000 экз. — ISBN 5-8459-0733-0, ISBN 0-4712-2357-3
14. Хорст Файстель. Криптография и компьютерная безопасность. Перевод Андрея Винокурова
15. А. Винокуров. Алгоритм шифрования ГОСТ 28147-89, его использование и реализация для компьютеров платформы Intel x86
16. ДИСКРЕТНАЯ МАТЕМАТИКА: АЛГОРИТМЫ. Симметричные системы и блочные шифры
17. Журнал Byte. № 8 (60), август 2003. Современные алгоритмы шифрования, Сергей Панасенко
18. Баричев С.Г., Гончаров В.В., Серов Р.Е. Основы современной криптографии. — М.: Горячая линия — Телеком, 2002. — 175 с. — (Специальность. Для высших учебных заведений). — 3000 экз. — ISBN 5-93517-075-2
19. Коркішко Т., Мельник А. Алгоримти та процесори симетричного блокового шифрування. – Львів, БаК, 2003.-163 с.
20. http://uk.wikipedia.org/wiki/Криптографія
21. http://uk.wikipedia.org/wiki/Симетричні_алгоритми_шифрування
22. http://ru.wikipedia.org/wiki/Криптосистема_с_открытым_ключом
23. http://ru.wikipedia.org/wiki/RSA
24. http://ru.wikipedia.org/wiki/DES
25. Міністерство освіти і науки України, Одеський національний політехнічний університет, лекцій до дисципліни «Захист інформації», Укладач Ю.С.Ямпольський,Одеса, ОНПУ, 2002 р.
26. Плани-конспекти
27. Захист даних лекції