Те, що інформація має цінність, люди усвідомили дуже давно - недарма листування сильних світу цього здавна була об'єктом пильної уваги їх недругів і друзів. Тоді-то і виникла задача захисту цієї листування від надмірно цікавих очей. Стародавні намагалися використовувати для вирішення цього завдання найрізноманітніші методи, і одним з них була тайнопис - вміння складати повідомлення таким чином, щоб його зміст був недоступний нікому крім посвячених у таємницю. Є свідчення того, що мистецтво тайнопису зародилося ще в доантичной часи. Протягом усієї своєї багатовікової історії, аж до зовсім недавнього часу, це мистецтво служило небагатьом, в основному верхівці суспільства, не виходячи за межі резиденцій глав держав, посольств і - звичайно ж - розвідувальних місій. І лише кілька десятиліть тому все змінилося докорінно - інформація набула самостійну комерційну цінність і стала широко поширеним, майже звичайним товаром. Її виробляють, зберігають, транспортують, продають і купують, а значить - крадуть і підробляють - і, отже, її необхідно захищати. Сучасне суспільство все більшою мірою стає інформаційно-обумовленим, успіх будь-якого виду діяльності все сильніше залежить від володіння певними відомостями і від відсутності їх у конкурентів. І чим сильніше проявляється зазначений ефект, тим більше потенційні збитки від зловживань в інформаційній сфері, і тим більше потреба в захисті інформації.
Серед усього спектру методів захисту даних від небажаного доступу особливе місце займають криптографічні методи. На відміну від інших методів, вони спираються лише на властивості самої інформації і не використовують властивості її матеріальних носіїв, особливості вузлів її обробки, передачі і зберігання.
Широке застосування комп'ютерних технологій і постійне збільшення обсягу інформаційних потоків викликає постійне зростання інтересу до криптографії. Останнім часом збільшується роль програмних засобів захисту інформації, просто модернізуються що не вимагають великих фінансових витрат в порівнянні з апаратними криптосистемами. Сучасні методи шифрування гарантують практично абсолютний захист даних, але завжди залишається проблема надійності їх реалізації.
Свідченням ненадійності може бути весь час з'являється в комп'ютерному світі інформація про помилки або "дірки" в тій чи іншій програмі (в т.ч. застосовує криптоалгоритми), або про те, що вона була зламана. Це створює недовіру, як до конкретних програм, так і до можливості взагалі захистити що-небудь криптографічними методами не тільки від спецслужб, але і від простих хакерів. Тому знання атак і дірок в криптосистемах, а також розуміння причин, за якими вони мали місце, є одним з необхідних умов розробки захищених систем і їх використання.
В даний час особливо актуальною стала оцінка вже використовуваних криптоалгоритмів. Завдання визначення ефективності засобів захисту найчастіше більш трудомістка, ніж їх розробка, вимагає наявності спеціальних знань і, як правило, більш високої кваліфікації, ніж задача розробки. Це обставини призводять до того, що на ринку з'являється безліч засобів криптографічного захисту інформації, про які ніхто не може сказати нічого певного. При цьому розробники тримають криптоалгоритм (як показує практика, часто нестійкий) в секреті. Однак завдання точного визначення даного криптоалгоритму не може бути гарантовано складної хоча б тому, що він відомий розробникам. Крім того, якщо порушник знайшов спосіб подолання захисту, то не в його інтересах про це заявляти. Тому суспільству має бути вигідно відкрите обговорення безпеки систем захисту інформації масового застосування, а приховування розробниками криптоалгоритму повинно бути неприпустимим.
Криптографія і шифрування
Що таке шифрування
Шифрування - це спосіб зміни повідомлення або іншого документа, що забезпечує спотворення (приховування) його вмісту. (Кодування - це перетворення звичайного, зрозумілого, тексту в код. При цьому мається на увазі, що існує взаємно однозначна відповідність між символами тексту (даних, чисел, слів) і символьного коду - в цьому принципова відмінність кодування від шифрування. Часто кодування і шифрування вважають одним і тим же, забуваючи про те, що для відновлення закодованого повідомлення, досить знати правило підстановки (заміни). для відновлення ж зашифрованого повідомлення крім знання правил шифрування, потрібно і ключ до шифру. ключ онімается нами як конкретне секретне стан параметрів алгоритмів шифрування і дешифрування. Знання ключа дає можливість прочитання секретного повідомлення. Втім, як ви побачите нижче, далеко не завжди незнання ключа гарантує те, що повідомлення не зможе прочитати стороння людина.). Шифрувати можна не тільки текст, а й різні комп'ютерні файли - від файлів баз даних і текстових процесорів до файлів зображень.
Шифрування використовується людством з того самого моменту, як з'явилася перша секретна інформація, т. Е. Така, доступ до якої повинен бути обмежений.
Один з найвідоміших методів шифрування носить ім'я Цезаря, який якщо і не сам його винайшов, то активно ним користувався. Не довіряючи своїм посильним, він шифрував листи елементарної заміною А на D, В на Е і так далі по всьому латинському алфавіту. При такому кодуванні комбінація XYZ була б записана як АВС, а слово «ключ» перетворилося б в неоковирне «ноб'» (прямий код N + 3).
Через 500 років шифрування стало повсюдно використовуватися при залишенні текстів релігійного змісту, молитов і важливих державних документів.
З доби середньовіччя і до наших днів необхідність шифрування військових, дипломатичних і державних документів стимулювало розвиток криптографії. Сьогодні потреба в коштах, які забезпечують безпеку обміну інформацією, багаторазово зросла.
Більшість з нас постійно використовують шифрування, хоча і не завжди знають про це. Якщо у вас встановлена операційна система Microsoft, то знайте, що Windows зберігає про вас (як мінімум) наступну секретну інформацію:
• паролі для доступу до мережевих ресурсів (домен, принтер, комп'ютери в мережі і т.п.);
• паролі для доступу в Інтернет за допомогою DialUр;
• кеш паролів (в браузері є така функція - кешувати паролі, і Windows зберігає всі коли-небудь вводяться вами в Інтернеті паролі);
• сертифікати для доступу до мережевих ресурсів і зашифрованих даних на самому комп'ютері.
Основні поняття і визначення криптографії
Отже, криптографія дає можливість перетворити інформацію таким чином, що її прочитання (відновлення) можливе тільки при знанні ключа.
Перерахую спочатку деякі основні поняття і визначення.
Алфавіт - кінцеве безліч використовуваних для кодування інформації знаків.
Текст - упорядкований набір з елементів алфавіту.
Як приклади алфавітів, що використовуються в сучасних ІС можна навести наступні:
· Алфавіт Z33 - 32 літери російського алфавіту і пробіл;
· Алфавіт Z256 - символи, що входять в стандартні коди ASCII і КОИ-8;
· Восьмеричний алфавіт або шістнадцятковий алфавіт;
Шифрування - перетворюючі процес: вихідний текст, який носить також назву відкритого тексту, замінюється шифрованих текстом.
Дешифрування - зворотний процес шифрування. На основі ключа шифрований текст перетвориться у вихідний.
Ключ - інформація, необхідна для безперешкодного шифрування і дешифрування текстів.
Криптографічний система являє собою сімейство T перетворень відкритого тексту. xлени цього сімейства індексуються, або позначаються символом k; параметр k є ключем. Простір ключів K - це набір можливих значень ключа. Зазвичай ключ являє собою послідовний ряд букв алфавіту.
Криптосистеми поділяються на симетричні і з відкритим ключем (або асімметрічесскіе).
У симетричних криптосистемах і для шифрування, і для дешифрування використовується один і той же ключ.
У системах з відкритим ключем використовуються два ключі - відкритий і закритий, які математично пов'язані один з одним. Інформація шифрується за допомогою відкритого ключа, що доступний усім бажаючим, а розшифровується за допомогою закритого ключа, відомого тільки одержувачу повідомлення.
Криптостойкостью називається характеристика шифру, що його стійкість до дешифрування без знання ключа (тобто криптоаналіз). Є кілька показників криптостійкості, серед яких:
· Кількість всіх можливих ключів;
· Середній час, необхідний для криптоаналізу.
Перетворення Tk визначається відповідним алгоритмом і значенням параметра k. Ефективність шифрування з метою захисту інформації залежить від збереження таємниці ключа і криптостійкості шифру.
Процес криптографічного закриття даних може здійснюватися як програмно, так і апаратно. Апаратна реалізація відрізняється істотно більшою вартістю, однак їй властиві і переваги: висока продуктивність, простота, захищеність і т.д. Програмна реалізація більш практична, допускає відому гнучкість у використанні.
Для сучасних криптографічних систем захисту інформації сформульовані наступні загальноприйняті вимоги:
· Зашифроване повідомлення повинно піддаватися читання тільки при наявності ключа;
· Число операцій, необхідних для визначення використаного ключа шифрування за фрагментом шифрованого повідомлення і відповідного йому відкритого тексту,
· Має бути не менше загального числа можливих ключів;
· Число операцій, необхідних для розшифрування інформації шляхом перебору всіляких ключів повинно мати строгу нижню оцінку і виходити за межі можливостей сучасних комп'ютерів (з урахуванням можливості використання мережевих обчислень);
· Знання алгоритму шифрування не повинно впливати на надійність захисту;
· Незначна зміна ключа повинно приводити до істотної зміни виду зашифрованого повідомлення навіть при використанні одного і того ж ключа;
· Структурні елементи алгоритму шифрування повинні бути незмінними;
· Додаткові біти, що вводяться в повідомлення в процесі шифрування, повинен бути повністю та надійно сховані в зашифрованому тексті;
· Довжина шифрованого тексту повинна бути рівною довжині вихідного тексту;
· Не повинно бути простих і легко встановлюваних залежністю між ключами, послідовно використовуваними в процесі шифрування;
· Будь-який ключ з безлічі можливих повинен забезпечувати надійний захист інформації;
· Алгоритм повинен допускати як програмну, так і апаратну реалізацію, при цьому зміна довжини ключа не повинно вести до якісного погіршення алгоритму шифрування.
1.3 Симетричні і асиметричні криптосистеми
Перш ніж перейти до окремих алгоритмам, розглянемо коротко концепцію симетричних і асиметричних криптосистем. Згенерувати секретний ключ і зашифрувати їм повідомлення - це ще півсправи. А ось як переслати такий ключ того, хто повинен з його допомогою розшифрувати вихідне повідомлення? Передача шифрувального ключа вважається однією з основних проблем криптографії.
Залишаючись в рамках симетричною системи, необхідно мати надійний канал зв'язку для передачі секретного ключа. Але такий канал не завжди буває доступний, і тому американські математики Діффі, Хеллман і Меркле розробили в 1976 р концепцію відкритого ключа та асиметричного шифрування.
У таких криптосистемах загальнодоступним є лише ключ для процесу шифрування, а процедура дешифрування відома лише власнику секретного ключа. Наприклад, коли я хочу, щоб мені вислали повідомлення, то генеруючи відкритий і секретний ключі. Відкритий посилаю вам, ви шифруєте їм повідомлення і відправляєте мені. Дешифрувати повідомлення можу тільки я, так як секретний ключ я нікому не передавав. Звичайно, обидва ключі пов'язані особливим чином (в кожній криптосистеме по-різному), і поширення відкритого ключа не руйнує криптостойкость системи.
В асиметричних системах має задовольнятися наступну вимогу: немає такого алгоритму (або він поки невідомий), який би з криптотексті і відкритого ключа виводив вихідний текст.