Дослідження особливостей побудови шрифтів для задач захисту інформації
Захист інформації в телефонних лініях. Аналіз ризику безпеки інформаційно-обчислювальних систем. Криптографічний алгоритм 3DES: історичні факти, реалізація, надійність використання. Розробка фізичної моделі пристрою зчитування інформації з компакт-диску.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 15.10.2012 |
Размер файла | 291,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Прогрес обчислювальної техніки за ці роки був настільки великим, що всі можливі 256 (приблизно 1017) варіанти ключа вже зараз не здаються настільки неможливими, якими вони представлялись у 1973 чи 1977 роках. Але навіть зараз для практичного вирішення цього завдання за допомогою потужного сучасного суперкомп'ютера, що дозволяєпроводити 10 млрд. (тобто 1010) операцій в секунду, потрібно не менше 109 с (близько 30 років безперервної роботи).
Можливо десь в надрах Агентства національної безпеки США, як найбільш потужної в світі дешифрувальної служби, і є обчислювальні потужності, достатні для виконання настільки грандіозних обчислень (хоч це і не очевидно), але для абсолютної більшості найрізноманітніших комерційних додатків шифрування цей рівень стійкості на сьогодні залишається самим оптимальним варіантом. Тому й до сьогодні алгоритм DES є найпопулярнішим в комерційних додатках у всьому світі.
Головний парадокс заклечається зовсім в іншому: після опублікування алгоритму DES спецслужби виявили, що він має занадто високу стійкість, щоб спокійно ними сприйнятись, а крім того стає доступний для реалізації будь-якому грамотному програмісту.
Тепер будь-який розробник може реалізувати DES в своїй апаратурі чи програмі і сміливо стверджувати в рекламі, що інформація шифрується абсолютно надійно у відповідності з офіційними заключеннями розробників та державними організаціями, що прийняли стандарт. При цьому вже нема необхідності апелювати до авторитету цих служб при отриманні заключень щодо стійкості шифрування, а це не впливає на збільшення їх морального та матеріального капіталу у суспільстві.
Консорціум е-payment, у який входять компанії ACI Worldwide, Diebold, Thales e-Security і VeriFone, провідні гравці ринку розробки систем електронних платежів, опублікував проект специфікації 3DES, першого у світі міжплатформенного методу керування ключами алгоритму потрійного DES, що став де-факто стандартом для захисту інформації в банківській і фінансовій сферах.
Стандарт, запропонований консорціумом повинен визначити глобальну специфікацію 3DES, що розширить можливості взаємодії між всіма елементами платіжних систем, від програмного забезпечення хост-комп'ютерів до банківських торгових терміналів.
Для доробки й прийняття цього стандарту, консорціум має намір взаємодіяти з лідируючими асоціаціями карткових компаній, виробниками й організаціями по стандартизації.
Система шифрування й дешифрування даних DES використовується США як державний стандарт шифрування даних з 1976 року. На сьогоднішній день система шифрування DES вже не є такою криптостійкою, якою вона була 20 років тому. У зв'язку зі швидким ростом потужності комп'ютерних систем перебір всіх варіантів 64 бітового ключа вже не вважається таким вже неможливим завданням. Однак на його основі розроблено безліч методів шифрування даних, які використовуються й донині. Дана програма являє собою систему інтерактивного навчання класичному алгоритму DES. Крім опису самого алгоритму шифрування вона дозволить вам самому взяти участь у процесі шифрування й одержати результат. Після закінчення шифрування ви одержите результати вашого тестування. Також програма дозволяє шифрувати й дешифрувати невеликі ділянки тексту із заданим вами ключем. Система містить повну документацію по алгоритму DES з докладним поясненням всіх кроків шифрування й дешифрування українською мовою.
Стандарт шифрування даних DES (Data Encryption Standart) був розроблений фірмою IBM на початку 70-х років й у цей час є державним стандартом для шифрування цифрової інформації. Він рекомендований Асоціацією Американських Банкірів. Складний алгоритм DES використовує ключ довжиною 56 біт й 8 бітів перевірки на парність і вимагає від зловмисника перебору 72 квадриліонів можливих ключових комбінацій, забезпечуючи високий ступінь захисту при невеликих витратах. При частій зміні ключів алгоритм задовільно вирішує проблему перетворення конфіденційної інформації в недоступну.
4.2 Реалізація алгоритмів шифрування
Алгоритми шифрування реалізуються програмними або апаратними засобами. Є безліч чисто програмних реалізацій різних алгоритмів. Через свою дешевизну (деякі й зовсім безкоштовні), а також все більшої швидкості процесорів ПЕВМ, простоти роботи й безвідмовності вони досить конкурентноздатні. Широко відома програма Diskreet з пакета Norton Utilities, що реалізує DES.
Не можна не згадати пакет PGP (Pretty Good Privacy, версія 2.1, автор Philip Zimmermann), у якому комплексно вирішені практично всі проблеми захисту переданої інформації. Застосоване стискання даних перед шифруванням, потужне керування ключами, симетричний (IDEA) і асиметричний (RSA) алгоритми шифрування, обчислення контрольної функції для цифрового підпису, надійна генерація ключів.
Апаратна реалізація алгоритмів можлива за допомогою спеціалізованих мікросхем (виробляються кристали для алгоритмів DH, RSA, DES, Skipjack, Дердстандарт 28147-89) або з використанням компонентів широкого призначення (через дешевизну й високу швидкість перспективні цифрові сигнальні процесори - ЦСП, Digital Signal Processor, DSP).
Для більшої надійності шифрування одночасно працюють два криптопроцесора, і блок даних в 64 бітів вважається правильно зашифрованим, тільки якщо збігається інформація на виході обох блюмінгів. Швидкість шифрування - 250 КБ/c.
До алгоритмів шифрування пред'являються певні вимоги:
- високий рівень захисту даних проти дешифрування й можливої модифікації;
- захищеність інформації повинна ґрунтуватися тільки на знанні ключа й не залежати від того, відомий алгоритм чи ні (правило Кіркхоффа);
- мала зміна вихідного тексту або ключа повинна призводити до значної зміни шифрованого тексту (ефект "обвалу");
- область значень ключа повинна виключати можливість дешифрування даних шляхом перебору значень ключа;
- кономічність реалізації алгоритму при достатній швидкості;
- вартість дешифрування даних без знання ключа повинна перевищувати вартість даних.
За допомогою криптографічних методів можливим є:
- шифрування інформації;
- реалізація електронного підпису;
- розподіл ключів шифрування;
- захист від випадкової або навмисної зміни інформації.
Симетричні блокові шифри представлені в .NET класами DESCryptoServiceProvider, TripleDESCryptoServiceProvider, RijndaelManaged. Всі ці класи є нащадками абстрактного класу SymmetricAlgorithm, що описує все сімейство блокових алгоритмів із симетричними ключами. Клас описує властивості, що дозволяють маніпулювати основними параметрами алгоритму: розміром блоку, режимом роботи, ініціалізаціонним вектором, ключем й іншими. І методи CreateEncryptor й CreateDecryptor, що повертають контексти (інтерфейс ICryptoTransform) для криптографічних трансформацій даних. Також є методи GenerateKey й GenerateIV для генерації ключів й ініціалізаційних векторів. Конкретні реалізації успадковуються від цього класу.
4.3 Симетричний шифр 3DES
Шифрування - це оборотне перетворення даних з метою їхнього приховання від сторонніх. Методів шифрування було придумано безліч - від шифрів простої заміни (найбільш відомий приклад - "Танцюючі чоловічки" Конан Дойля) до принципових, що розкривають не шифри - Вернама (двійкове додавання вихідного тексту з однократно використовуваною випадковою послідовністю). Майже всі методи шифрування використовують ключ шифрування - секретну кодову послідовність, використовувану в процесі перетворення інформації.
Шифрування виконується наступним кодом:
private SymmetricAlgorithm alg;
alg=(SymmetricAlgorithm)RijndaelManaged.Create(); //приклад створення класу RijndaelManaged
PasswordDeriveBytes pdb=new PasswordDeriveBytes(Password.Text,null); //клас, що дозволяє генерувати ключі на базі паролів
pdb.HashName="SHA512"; //будемо використати SHA512
int keylen=(int)KeySize.SelectedItem; //одержуємо розмір ключа з ComboBox'а
alg.KeySize=keylen; //установлюємо розмір ключа
alg.Key=pdb.GetBytes(keylen>>3); //одержуємо ключ із пароля
alg.Mode=CipherMode.CBC; //використаємо режим CBC
alg.IV=new Byte[alg.BlockSize>>3]; //і порожній ініціалізаційний вектор
ICryptoTransform tr=alg.CreateEncryptor(); //створюємо encryptor
FileStream instream=new
FileStream(inFile.Text,FileMode.Open,FileAccess.Read,FileShare.Read);
FileStream outstream=new
FileStream(outFile.Text,FileMode.Create,FileAccess.Write,FileShare.None);
int buflen=((2<<16)/alg.BlockSize)*alg.BlockSize;
byte []inbuf=new byte[buflen];
byte []outbuf=new byte[buflen];
int len;
while((len=instream.Read(inbuf,0,buflen))==buflen)
{
int enclen=tr.TransformBlock(inbuf,0,buflen,outbuf,0); //властиво шифруємо
outstream.Write(outbuf,0,enclen);
}
instream.Close();
outbuf=tr.TransformFinalBlock(inbuf,0,len);//шифруємо фінальний блок
outstream.Write(outbuf,0,outbuf.Length);
outstream.Close();
alg.Clear(); //здійснюємо зачищення
Як можна бачити, нічого складного в процесі шифрування/дешифрування немає. Використання базового класу SymmetricAlgorithm дозволяє звести все до конкретного алгоритму, до одного рядка - створенню екземпляра класу потрібного алгоритму.
Варто звернути увагу на необхідність явного завдання ініціалізаційного вектора, оскільки, на відміну від CryptoAPI, він не ініціалізується нулем за замовчуванням, а вибирається випадково.
Розмір розшифрованих даних для нефінального блоку може бути меншим розміру шифротекста. Поряд із самостійним читанням файлу й шифруванням його по блоках, можливий ще варіант із використанням стрима CryptoStream. При цьому ви створюєте CryptoStream, передаючи йому на вході стрим для запису й інтерфейс трансформації, а потім просто пишете в цей стрим свої дані.
Більшість сучасних стійких симетричних алгоритмів використовують ключ довжиною 64-256 біт (8-32 байта). Оскільки текст, зашифрований подвійним DES виявляється вразливим при криптографічній атаці - зустріч на середині (meet in the middle), те текст шифрується 3 рази DES. У такий спосіб довжина ключа зростає до 168-битий (56x3). Симетричний шифр 3DES - це один з деяких симетричних шифрів, наданих стандартними криптопровайдерами CryptoAPI. Оскільки DES й 3DES - це практично той самий алгоритм (3DES - це DES, застосовуваний 3 рази підряд), те ми обмежимося прикладом використання алгоритму 3DES. Однак помітимо, що для використання алгоритму 3DES потрібно Enhanced провайдер, а для DES цілком достатньо Base. Втім, DES уже не є стійким по сучасних мірках алгоритмом, тому використовувати його варто лише там, де надійність шифрування не дуже критична. Алгоритм 3DES використовує різні ключі DES для кожної зі своїх операцій. Тому розмір його ключа дорівнює потрійному розміру ключа DES, тобто 192 (64*3) біти. Реально розмір ключа 3DES - 168 (56*3) біт, тому що в DES один байт ключа є контрольним для основних семи.
Шифрування й дешифрування виконуються за допомогою функцій:
BOOL WINAPI CryptEncrypt(HCRYPTKEY hKey,HCRYPTHASH hHash,BOOL Final,DWORD dwFlags,BYTE* pbData,DWORD* pdwDataLen,DWORD dwBufLen);
BOOL WINAPI CryptDecrypt(HCRYPTKEY hKey,HCRYPTHASH hHash,BOOL Final,DWORD dwFlags,BYTE* pbData,DWORD* pdwDataLen).
Параметр hHash дозволяє паралельно із шифруванням/дешифруванням проводити хеширування даних для наступного електронного підпису або його перевірки. Прапор Final визначає, чи є шифрований блок даних останнім. Він необхідний, оскільки дані можна шифрувати по частинам, але для останнього блоку завжди виконується певна деініціалізація алгоритму (звільняються внутрішні структури), і багато алгоритмів роблять додавання (і перевірку коректності при дешифруванні) заповнювача (padding) після основних даних. Параметри pbData й pdwDataLen задають адреса буфера й розмір шифрованих даних. Для блоку даних (Final=FALSE) розмір даних повинен бути завжди кратний розміру шифрованого алгоритмом блоку (для 3DES й DES цей розмір дорівнює 64 бітам). Для останнього блоку допускається порушення цієї умови.
Помітимо, що зашифровані дані містяться в тому самому буфері поверх вихідних.
Останній параметр функції CryptEncrypt - dwBufLen може здатися дивним. Навіщо нам розмір буфера, якщо ми й так знаємо розмір вхідних даних? Однак насправді він необхідний. Багато алгоритмів додають заповнювач в останній блок після основних даних. У цьому випадку розмір зашифрованих даних може виявитися більшим, ніж розмір вихідних даних. І результат може просто не вміститися в буфер! Тому варто заздалегідь вказати розмір буфера, що перевищує максимальний розмір відкритих даних, що поміщають у його. Для DES й 3DES максимально можливий довісок становить 64 біта, тобто 8 байт.
4.4 Криптографічний алгоритм потрійний DES
Ідея використання потрійного DES з парою ключів відносно проста: якщо ключі однакові, то результат шифрування еквівалентний однократному шифруванню. Це забезпечує повну сумісність із існуючими системами розподілу й використання ключів як на однократному, так і на подвійному DES (подвійний DES - послідовне застосування однократного). Алгоритм 3DES створювався для запобігання шахрайства при заснованих на PIN-коді транзакціях ініційованих банкоматом або POS-терміналом. Існуючі зараз стандарти описують керування майстрами-ключами 3DES і процедуру обчислення унікального ключа транзакції - 3DES DUKPT (Derived Unique Key Per Transaction). Однак у них відсутній стандарт, що визначає керування ключами сесії. Без цього стандарту кожному виробникові доводитися розробляти власні реалізації обміну ключами сесії, що тільки ускладнює їхні системи.
DES означает Data Encryption Standard - стандарт шифрування даних. DES - це 64-бітовий блочний шифр з 64-бітовим ключем. Останній біт кожного байта в ключі є бітом парності, так що ефективна довжина ключа складає тільки56 біт. Це занадто мало, атака грубою силою на спеціалізованій машині займе менше доби. Потрійний DES (Triple DES) чи 3DES - це DES, що виконується тричі з різними ключами. Таким чином потрійний DES - це 64-бітовий блочний шифр з 168-бітови ключем (плюс 24 біта парності). Оригінальний DES досліджувався багато років, тому експерти вважають 3DES дуже надійним. Недоліком є те, що він значно повільніше всіх інших алгоритмів: DES сам по собі доволі повільний через застосування бітових перестановок, що ефективно розробляються на спеціальних мікросхемах, але набагато гірше на універсальних комп'ютерах, а з 3DES потрібно виконати три операції, щоб отримати захищеність двох. Єдина причина, чому варто застосовувати потрійний DES - це те, що він дуже добре вивчений. Це шифр для консерваторів.
3DES - найцікавіший блочний шифр PGP. Багаторазове зашифровування робить шифр сильнішим, але не обходиться і без проблем. Крім того, DES не є таким хорошим як інші шифри. Є атаки на 16-раундне шифрування DES, що робить 3DES найсумнівнішим шифром PGP.
Вже досить давно інформація шифрується не одинарним, а потрійним DES. Де Ek й Dk позначають відповідно зашифрування й розшифрування ключем k. Цей режим шифрування іноді називається DES-EDE. Інший варіант - DES-EEE, що складається із трьох послідовних шифрувань. Існують три можливих варіанти, певні в ANSI X9.52 для DES-EDE:
Три ключі k1, k2 й k3 незалежні.
k1 й k2 незалежні, але k1 = k3.
k1 = k2 = k3.
У третьому випадку TripleDES назад сполучимо з DES. Подібно всім блоковим шифрам, TripleDES може використовуватися різними способами. ANSI X9.52 описує сім таких способів, з яких широко використовуються чотири.
Використання подвійного й потрійного шифрування не завжди забезпечує додаткову безпеку, як цього можна було очікувати. Наприклад, розглянемо атаку “зустріч посередині” на подвійне шифрування [DH77]. Є симетричний блоковий шифр із розміром ключа n; нехай Ek (P) позначає шифрування повідомлення P ключем k. При шифруванні двома різними ключами повний розмір ключа становить 2n.
Атака полягає в наступному. Потрібно, щоб атакуючий знав хоча б одну пару, незашифрований текст і відповідний йому зашифрований текст: (Р, З). У цьому випадку, по-перше, шифрується Р для всіх можливих 256 значень K1. Цей результат запам'ятовується в таблиці, і потім таблиця впорядковується за значенням Х. Наступний крок складається в дешифруванні З, із застосуванням всіх можливих 256 значень K2. Для кожного виконаного дешифрування шукається рівне йому значення в першій таблиці. Якщо відповідне значення знайдене, то вважається, що ці ключі можуть бути правильними, і вони перевіряються для наступної відомої пари незашифрованого тексту, зашифрованого тексту.
Якщо відомо тільки одну пару значень незашифрованого тексту, зашифрованого тексту, то може бути отримана досить велика кількість невірних значень ключів. Але якщо супротивник має можливість перехопити хоча б дві пари значень (незашифрований текст - зашифрований текст), то складність злому подвійного DES фактично стає рівною складності злому звичайного DES, тобто 256.
Очевидна протидія атаці "зустріч посередині" складається у використанні третьої стадії шифрування із трьома різними ключами. Це піднімає вартість лобової атаки до 2168, що на сьогоднішній день уважається вище практичних можливостей. Але при цьому довжина ключа дорівнює 56 * 3 = 168 біт.
Як альтернатива пропонується метод потрійного шифрування, що використовує тільки два ключі. У цьому випадку виконується послідовність за шифрування-розшифрування-зашифруваня (EDE).
C = EK1 [DK2 [EK1 [P]]]
Рис. 1. Шифрування потрійним DES
Дешифрування потрійним DES
Не має великого значення, що використовується на другій стадії: шифрування або дешифрування. У випадку використання дешифрування існує тільки та перевага, що можна потрійний DES звести до звичайного одиночного DES, використовуючи K1 = K2.
Через потенційну вразливість DES при його аналізі шляхом перебору всіх можливих варіантів ключів, значний інтерес викликають пошуки альтернативи для цього шифру. Один з підходів припускає створення зовсім нового алгоритму. Інший підхід, що пропонує продовження використання вже наявного програмного забезпечення й устаткування, полягає в багаторазовому шифруванні за допомогою DES із застосуванням декількох ключів.
Те що на другій стадії використовується операція дешифрування, не є істотною з погляду шифрування, але це дає можливість користувачам "потрійного" DES розшифрувати дані, зашифровані іншими користувачами з використанням більш старої, звичайної версії DES:
C = EK1[DK1[EK1[P]]] = EK1[P].
"Потрійний" DES із трьома ключами використовує три 56-бітових ключі. Сумарна ефективна довжина ключа становить 168 біт. Шифрування відбувається за наступною схемою:
C = EK3[DK2[EK1[P]]].
Зворотна сумісність із DES буде забезпечена, якщо покласти K3=K2 або K1=K2.
"Потрійний" DES із трьома ключами реалізований у багатьох додатках, орієнтованих на роботу з Internet, у тому числі в PGP й S/MIME.
C = EK1 [DK1 [EK1 [P]]] = EK1 [P]
Потрійний DES є досить популярною альтернативою DES і використовується при керуванні ключами в стандартах ANSI X9.17 й ISO 8732 й в PEM (Privacy Enhanced Mail).
Відомих криптографічних атак на потрійний DES не існує. Ціна підбора ключа в потрійному DES дорівнює 2112.
Однак, припустимо, що можна одержати Ek (P) для всіх ключів k а також даний відкритий текст P; потім припустимо, що нам дають зашифрований текст C такий що C = Ek2 (Ek1 (P)) для деяких секретних ключів k1 й k2. Для кожного ключа l є тільки один ключ k такий що Dl (C) = Ek (P). Існує 2**n можливих ключів, що створюють пари (P; C), і ці ключі можна знайти приблизно за O(2**n) кроків. Маючи можливість зберігати тільки 2**p < 2**n ключів, можна змінювати цей алгоритм і знайти всі можливі ключі за O(2**(2n-p)) кроків.
Атаки на Triple DES з подвійним ключем запропонували Merkle й Hellman [MH81], а також Van Urshot й Wiener [VW91], але вимоги до необхідних даних роблять ці атаки непрактичними. Подальша інформація відносно Triple DES пропонується різними джерелами [Bih95] [KR96].
У цей час основним недоліком DES вважається маленька довжина ключа, тому вже давно почали розроблятися різні альтернативи цьому алгоритму шифрування. Один з підходів полягає в тому, щоб розробити новий алгоритм, і успішний тому приклад - IDEA. Інший підхід припускає повторне застосування шифрування за допомогою DES з використанням декількох ключів. Найпростіший спосіб збільшити довжину ключа складається в повторному застосуванні DES із двома різними ключами. Використовуючи незашифроване повідомлення P і два ключі K1 й K2, зашифроване повідомлення можна одержати таким способом:
C = Ek2 [Ek1 [P]]
Для дешифрування потрібно, щоб два ключі застосовувалися у зворотному порядку:
P = Dk1 [Dk2 [C]]
У цьому випадку довжина ключа дорівнює 56 * 2 = 112 біт.
4.5 Типи потрійного шифрування DES
DES-EEE3: Шифрується три рази з 3 різними ключами.
DES-EDE3: 3DES операції шифровка-розшифровка-шифровка з трьома різними ключами.
DES-EEE2 й DES-EDE2: Як і попередні, за винятком того, що перша й третя операції використовують однаковий ключ.
Порівняння різних видів DES шифрування.
Шифрування |
Ключів: |
Обчислення (computation) |
Зберігання (storage) |
Типи Атаки |
|
Одиночний |
1 |
2^56 |
- |
Know plaintext |
|
Одиночний |
1 |
2^38 |
3^38 |
Closen plaintext |
|
Одиночний |
1 |
- |
2^56 |
Closen plaintext |
|
Подвійний |
2 |
2^112 |
- |
Known plaintext |
|
Подвійний |
2 |
2^56 |
2^56 |
Known plaintext |
|
Подвійний |
2 |
- |
2^112 |
Closen plaintext |
|
потрійний |
2 |
2^112 |
- |
Known plaintext |
|
потрійний |
2 |
2^56 |
2^56 |
2^56 Closen plaintext |
|
потрійний |
2 |
2^(120-t) |
- |
2^t Known plaintext |
|
потрійний |
2 |
- |
2^56 |
Closen plaintext |
|
потрійний |
3 |
2^112 |
2^56 |
Known plaintext |
|
потрійний |
3 |
2^56 |
2^112 |
Closen plaintext |
Злом DES
Криптографічна стійкість будь-якого шифру визначається важкістю найбільш ефективних практичних чи навіть гіпотетичних алгоритмів його “викриття” чи ”злому”, які вдалося придумати і оцінити експертам. Найбільш прямолінійним (і тому найпростішим) способом оцінки є метод повного (тотального) перебору можливих варіантів ключа і їх перевірки на правильність до отримання істинного ключа. Такий метод приводить до успіху і тому служить еталоном найважчого з можливих методів “злому” шифру. Якщо ж шифр допускає методи “викриття” меншої важкості, ніж тотальний перебір, він рахується ненадійним.
Незважаючи на багаторічні зусилля дослідників, ефективних атак на DES не виявлено. Очевидний метод атаки - повний перебір всіх можливих ключів; цей процес виконується в середньому 2* *55 кроків. Спочатку передбачалося, що досвідчений нападаючий може побудувати спеціалізовану ЕОМ, здатну зламати DES, перебравши всі ключі впродовж розумного часу. Пізніше Hellman [Hel80] знайшов спосіб удосконалення повного перебору ключів за умови достатнього обсягу пам'яті. Крім того висувалися обвинувачення, що NSA навмисно зробило DES вразливим. Ці міркування дозволяли засумніватися в надійності DES, але незважаючи на все це, ніякого методу злому DES виявлено не було за винятком повного пошуку ключа. Вартість спеціалізованого комп'ютера для виконання такогоповного пошуку (за умови знаходження ключа в середньому за 3.5 години) по оцінці Wiener становить один мільйон доларів [Wie94].
Недавно Wiener уточнив, що тепер рівний за вартістю комп'ютер знайде ключ за 35 хвилин. Перша атака на DES, більш ефективна ніж повний пошук, заявили Biham й Shamir [BS93a]; у ній використовувався новий метод відомий як диференціальний криптоаналіз. Ця атака вимагає шифрування 2* *47 відкритих текстів обраних нападаючим. Теоретично будучи крапкою розриву, ця атака непрактична через надмірні вимоги до підбору даних і складності організації атаки по обраному відкритому тексту. Самі автори цієї атаки Biham й Shamir заявили, що вважають DES захищеним.
Раніше Matsui [Mat94] розробив іншу атаку, відому як лінійний криптоаналіз Цей метод дозволяє відновити ключ DES за допомогою аналізу 2* *43 відомих відкритих текстів. Перший експериментальний криптоаналіз DES, заснований на відкритті Matsui, був успішно виконаний впродовж 50 днів на автоматизованих робочих місцях 12 HP 9735.
Зрозуміло, при таких витратах атака як і раніше вважається непрактичною. В одному з недавніх експериментів по злому DES ключ був знайдений за 22 години. На думку криптографів алгоритм DES одинарної довжини вже не є захищеним оскільки на сучасному рівні розвитку обчислювальної техніки 56-бітний ключ став вразливий для повного пошуку. Фактично DES уже заборонений для використання в державних структурах США й у цей час як стандарт використовується Triple DES (DES потрійної довжини), який буде замінений новим стандартом AES найближчим часом.
4.6 Надійність використання DES
Приведемо кілька практичних рекомендацій, що забезпечують безпеку зашифрованих даних. Ключі DES потрібно міняти досить часто, щоб запобігти атакам, що вимагають аналізу досить великої кількості даних. Якщо говорити про захист переданих даних, то необхідно знайти захищений спосіб передачі DES ключа від відправника до одержувача. Обидві ці проблеми вирішуються за допомогою алгоритму RSA або якої-небудь іншої асиметричної криптосистеми: для кожного сеансу зв'язку створюється новий DES ключ, що зашифровується загальним ключем одержувача й у такому виді передається одержувачеві. У таких обставинах криптосистема RSA виступає як інструмент підвищення захищеності DES (або будь-якого іншого секретно-ключового шифру).
Якщо використовувати DES для шифрування файлів на жорсткому диску, то часто міняти ключі малореально, тому що для цього необхідно розшифрувати а потім зашифрувати всі файли новим ключем. Замість цього можна створити головний ключ DES, яким буде зашифрований список ключів DES, використовуваних для шифрування файлів; у цьому випадку головний ключ можна змінювати так часто як це потрібно. Але тому що головний ключ більше привабливий для атаки чим окремі DES ключі, те його розумно шифрувати алгоритмом Triple DES.
На практиці використовуються трохи офіційно певні режими шифрування DES; кожний із цих режимів має різні властивості. Режим ECB (електронна кодова книга) послідовно шифрує кожен 64-бітний блок відкритого тексту тим самим 56-бітним ключем DES. У режимі CBC (формування ланцюжка блоку шифру) кожен 64-бітний блок відкритого тексту перед шифруванням DES ключем логічно підсумується (XOR) з попереднім блоком зашифрованого тексту. Таким чином, шифрування кожного наступного блоку залежить від попередніх блоків і тому той самий 64-бітний блок відкритого тексту може бути представлений різними блокам зашифрованого тексту залежно від його розміщення у вихідному повідомленні. CBC дозволяє захиститися від деяких атак, але не від повного пошуку або диференціального криптоаналіза. Режим CFB (шифрування зі зворотним зв'язком) дозволяє використати DES блоками довжиною менш 64 біт. Докладні описи різних режимів DES наведені в [NIS80]. Режим OFB власне кажучи дозволяє використати DES як потоковий шифр. З перерахованих режимів DES найбільше широко на практиці використається режим CBC, що є частиною декількох стандартів. Для підвищення захисту можна використати режим CBC з потрійним шифруванням.
5. Розробка алгоритму шифрування і інформації "APR" комбінованим методом на основі залишкових чисел
Розвиток і впровадження інформаційних технологій є необхідною умовою науково-технічного прогресу суспільства. Україна як частина світової суспільно- економічної системи також увійшла до процесу інформатизації. В інформаційних підсистемах автоматизованих систем управління (АСУ) будь-якого призначення, наприклад, в сферах державного та військового управління, банківської діяльності, управління технологічними процесами на підприємствах, управління транспортними засобами та інших, постійно зростає обсяг інформації, що передається та її цінність. Тому велике значення мають швидкість та інформаційна надійність передачі даних, які визначають ефективність інформаційних систем. З цієї причини, незважаючи на значні успіхи в теорії та практиці передачі інформації, завдання підвищення ефективності передачі даних залишається актуальним і в наш час. Тому в статті здійснюється розробка нового алгоритму шифрування інформації, що відповідатиме всім вимогам, котрі формулюються до побудови криптографічної системи захисту інформації.
5.1 Основні результати дослідження
До сьогодні, криптографія займалась виключно конфіденційністю повідомлень - перетворенням повідомлень зі зрозумілої форми на незрозумілу і зворотне відновлення на стороні одержувача, роблячи неможливість його прочитання для того, хто перехопив або підслухав без секретного знання (а саме ключа, необхідного для дешифрування повідомлення). Останнім часом сфера застосування криптографії розширилась і включає не тільки таємну передачу повідомлення, але й методи перевірки цілісності повідомлення, ідентифікації одержувача/відправника повідомлення, цифровий підпис, інтерактивну перевірку, захисні обрахунки та інше.
Відповідно до класів, що вирішують завдання, на цей час сформувались дві області криптографії: класична, або криптографія з секретним ключем, і сучасна, або криптографія з неприхованим ключем. Історія першої нараховує тисячоліття, тоді як офіційний вік другої не перевищує ще й три десятиліття.
Класична, або одно ключова, криптографія вирішує фактично лише два завдання: захист повідомлень, що передаються від прочитання і від модифікування сторонніми особами. Вона спирається на симетричні алгоритми шифрування, в яких зашифровування і розшифровування відрізняються лише порядком виконання і напрямком виконання деяких простих кроків.
Сучасна криптографія, основою якої стало відкриття так званих асиметричних крипто алгоритмів, або методів, в яких процедури прямого і зворотного криптоперетворення виконуються на різних ключах і не мають між собою очевидних зв'язків, що легко прослідкувати, які б дозволили по одному ключу визначити інший.
Проаналізувавши класичну і сучасну криптографію, ми бачимо, що друга дозволяє вирішити багато ширше коло завдань ніж перша, але зважаючи на той факт, що алгоритми із секретним ключем набагато простіше реалізуються як програмно, так і апаратно, а надійність цих алгоритмів з неприхованим ключем нині обґрунтувати набагато важче, ніж надійність алгоритмів із секретним ключем, тому для організації шифрування зв'язку наразі використовуються виключно класичні шифри, а методи сучасної криптографії можуть використовуватись лише для шифрування ключів.
Необхідно відмітити, що однією з найважливіших вимог, що пред'являються до системи шифрування, є її криптостійкість. Однак підвищення стійкості будь-якого методу шифрування призводить, як правило, до суттєвого ускладнення самого процесу шифрування і підвищення витрат ресурсів (часу, апаратних засобів, зменшення пропускної здатності і т.ін.). Саме тому для достатньої ефективності і підвищення криптостійкості шифрування використовують комбінування декількох різних способів шифрування, тобто послідовне шифрування вихідного тексту за допомогою двох і більше методів. Саме комбіноване шифрування ми і застосуємо при шифруванні повідомлення яке, буде передаватись по незахищеному каналу зв'язку.
Для розв'язання проблеми, що полягає у постійному вдосконаленні і знаходженні ідеального алгоритму криптографічної системи, який би забезпечив надійну передачу інформації по незахищених каналах зв'язку, розглянемо процес передачі деякої інформації від передавальної сторони доприймальної. Нехай дві сторони, які ми можемо назвати законними співучасниками обміну інформації, намагаються налагодити таємний зв'язок. З них один є відправником, а інший - одержувачем повідомлення, хоча, як правило, в реальних умовах ці ролі не закріплені за ними жорстко і кожному з них доводиться як відправляти, так і отримувати повідомлення. Завдання відправника полягає в тому, щоб сформувати і відправити отримане повідомленняT . Завдання одержувача полягає в тому, щоб відправлене повідомлення отримати і зрозуміти його зміст. Щоб один тільки одержувач міг ознайомитись зі змістом повідомлення, відправнику необхідно перетворити його згідно з деяким алгоритмомE таким чином, щоб ніхто, за винятком законного одержувача і, можливо, самого відправника, не зміг відтворити його у початковому вигляді. Це перетворення називається шифруванням повідомленняT , а те, що отримуємо у результаті цього процесу, називається шифртекстомT'. Зв'язок між початковим текстомT, шифртекстом T' і алгоритмом шифруванняE може бути символічно виражений за допомогою такої формули:T' = E(T) . Зашифроване повідомленняT' відправляємо одержувачу по каналу зв'язку. Щоб законний одержувач зміг ознайомитись з відправленим повідомленням, він має спочатку його розшифрувати, тобто застосувати до шифруT' алгоритм розшифруванняD , в результаті чого буде відновлено вихідне повідомленняT . Таким чином, розшифрування даних здійснюється відповідно до рівнянняT = D(T') . захист інформація криптографічний алгоритм
Як і в будь-якій криптографічній системі, так і в нашій присутня третя сторона, яку назвемо криптоаналітиком. В найбільш загальному випадку для здійснення своїх намірів криптоаналітик може перехоплювати повідомлення і надсилати сфабриковані ним самим повідомлення одній зі сторін від імені іншої.
Згідно з викладеним, сформулюємо вимоги для побудови криптографічного алгоритму, який в подальшому назвемо: "Алгоритмом ділення із залишком" або "APR" (algorithmofpartakingwitharemain):
1. Зашифроване повідомлення має піддаватись розшифруванню тільки за наявностіключа.
2. Число операцій, необхідних для визначення використовуваного ключа шифрування по фрагментах шифрованого повідомлення і відповідному до нього відкритому тексту, має бути не менше загального числа можливих ключів.
3. Число операцій, необхідних для розшифрування інформації шляхом перебору всіх можливих ключів, має виходити за межі можливостей сучасних комп'ютерів (з урахуванням можливості використання мережних технологій).
4. Знання алгоритму шифрування не має впливати на надійність захисту.
5. Незначна зміна ключа має приводити до суттєвої зміни виду зашифрованого повідомлення навіть при передачі одного і того ж повідомлення.
6. Структурні елементи алгоритму шифрування мають бути незмінними.
7. Довжина зашифрованого тексту має дорівнювати довжині вихідного тексту.
8. Не має бути простих і легко встановлюваних залежностей між ключами, що послідовно використовуються в процесі шифрування.
9. Будь-який ключ із множини можливих має забезпечувати надійний захист інформації.
10. Алгоритм має допускати як програмну, так і апаратну реалізацію, при цьому зміна довжини ключа не має вести до якісного погіршення алгоритму шифрування.
Перейдемо безпосередньо до опису APR. Цей алгоритм шифрування побудований на основі однієї з властивостей простих чисел, яка полягає в тому, що при діленні будь- якого цілого числаk на простеp будуть утворюватись залишки з періодом повторення не більше:p -- 1, деp - просте число (під цю властивість не підпадають такі прості числа: 2, 3, 5). Як приклад, якщо ми маємо дріб з вищевказаним обмеженням: к /p = 1/17, то рішенням його буде значення 0,05882352941176470588, в якому залишок періодичний і повторюється через шістнадцять значень, а залежно від чисельника, в ролі якого підставлено ціле число, залишок від ділення буде циклічно зміщуватись, при цьому періодичність його змінюватись не буде. Але не завжди при діленніk наp будуть утворюватись залишки з періодом повторення, що дорівнюєp -- 1, це насамперед залежить від самогоp , тому ми будемо використовувати ряд простих чисел, при діленні на які залишок буде відповідати значенню виключноp -- 1, і кожне з таких чисел позначатимемо черезmi, де І - це порядковий номер простого числаmt. Вищезгаданий ряд чисел, назвемо його масивомMi з
ряду простих чисел, що показаний на (1), дозволяє нам генерувати залишки з величезним періодом повторення, що буде корисно використати в запропонованому алгоритмі шифрування.
M: { 7, 17, 19, 23, 29, 47, 59, 61, 97, 109, 113, 131, 149, 167, 179... }
Є ще одна, дуже важлива, властивість, що об'єднує цей ряд чисел і яка в значній мірі допоможе якісно зашифрувати дані. Вона випливає з першої властивості і характеризує розподілення множників в повторюваному залишку, що утворився від ділення к на mt. Тобто перший повторюваний залишок міститиме кожну цифру майже в рівній кількості, а якщо точніше, то кількість одних цифрl, що дорівнюєl = (mi -- 1) /10, буде становити + 1 інших цифр, деl - кількість однотипних цифр (множників) в першому повторювальному залишку. Це відбувається згідно з наступною логікою: оскільки залишок від ділення наmi з масивуMt має період повторенняmi -- 1, а йогоmi -- 1 цифр утворюються від ділення кожного порядкового цілого числа, з області цілих чисел від 1 до
mt-- 1, наmt, то різниця в їхньої кількості не може становити більше 1. Підтвердженням цьому може бути дріб 1/17.
Перейдемо до опису процесів, що відбуваються в системі, яка забезпечує шифрування. Для цього відобразимо організаційну структуру абонентів, які будуть відсилати та отримувати повідомлення, а також зв'язок між ними у вигляді незахищеного каналу, по якому протікає інформація в криптографічній системі КС, на основі алгоритму ділення із залишком (рис.1).
Рис.1. Потік інформації в криптографічній системі на основі алгоритму APR
Кожний абонент криптографічної системи APR має власний ідентифікаційний код h , який присвоюється йому при включенні його до загальної криптографічної системи і є секретним. Він використовується, як правило, для ідентифікації передавача повідомлення. Для того щоб одному абоненту переслати повідомлення будь-якому іншому абоненту, наприклад, від абонента 1 до абонента 2, де:
Абонент 1 - абонент відправник;
Абонент 2 - абонент одержувач.
Абоненту 2 необхідно здійснити такий ряд операцій:
1. Згенерувати деяку кількість 16-розрядних чиселmi, з масиву простих чисел Mі, сумарним об'ємом [6]:
512-768 біт - для приватних осіб, що використовують КС APR;
1024 біт - для службової інформації;
2048-4096 - для секретної інформації.
2. Згенерувати для кожногоmi випадкове ціле числоk в діапазоні цілих чиселKiвід 1 до mt - 1.
3. Отримати перші повторювальні залишки від діленняk /mt.
4. Згенерувати ключZ : (k1;m^ ...kn;mt ), яким буде шифруватися інформація.
5.Зашифрувати згенерований ключZ за допомогою одного з асиметричних алгоритмів, наприклад, RSA.
6. Перетворити кожний з залишків на послідовність контейнерів цифр, кожний з яких розподілятиметься на деяку кількість блоків, відповідно до системи кодування: ANSI, Unicode ..., (для 8-бітних систем кодування приймають по 3 блоки в контейнері, для 16-бітних систем кодування приймають по 5 блоків в контейнері), за принципом послідовного і неповторного вкидання певних цифр з першого повторюваного залишку в кожен з блоків:
1. - перший блок складатиметься з 4-х цифр: «0, 1, 8, 9», що розташовуватимуться в різній послідовності;
2. - другий блок складатиметься з 8-ми цифр: «0, 1, 2, 3, 4, 5, 6, 7», що розташовуватимуться в різній послідовно
3. - третій блок складатиметься з 8-ми цифр: «2, 3, 4, 5, 6, 7, 8, 9», що розташовуватимуться в різній послідовності.
7.Перетворити повідомлення на шифровку програмним способом.
8. Відіслати ключ абоненту 2.
9. Відіслати зашифроване повідомлення абоненту 2.
Абонент 2 здійснює таку послідовність операцій для розшифрування повідомлення після його отримання:
1. Розшифрування ключа та службової інформації абонента-відправника.
2. Отримання перших повторюваних залишків від діленняk / mi.
3. Перетворення залишків на послідовність контейнерів цифр згідно з прийнятою системою кодування, якою будуть користуватися всі абоненти криптографічної системи.
4. Розшифрування повідомлення, виконавши операції підстановки та перетворення кожного символу за таблицею.
Висновок
у цій роботі роботі ми розглянули основні методи та алгоритми шифрування інформації. Тому можна зробити такі висновки:
(APR) - алгоритм ділення із залишком APR дозволяє кодувати великі обсяги інформації, при цьому не потребуючи значного об'єму ключа, оскільки навіть необ'ємний ключ дозволяє створити величезну кількість різноманітних контейнерів, кожний з яких і буде кодувати певний символ, а незначна зміна ключа, на одне значення, призводить до абсолютно нової їхньої розстановки. Ще одною перевагою розробляємого алгоритму є його адаптивність під будь-які системи криптокодування.
(3des) - Більша частина криптографічних класів (не абстрактних) .NET базується на криптопровайдерах CryptoAPI. Однак є й виключення (наприклад, SHA256Managed). У принципі, ієрархія класів .NET дозволяє абстрагуватися від конкретної реалізації алгоритму, що може забезпечити простий перехід на не прив'язані до CryptoAPI класи в майбутньому. На жаль, документація .NET по криптографічних класах, м'яко говорячи, залишає бажати кращого.
Синоніми 3DES: TripleDES, Потрійний DES. Посилений варіант алгоритму DES, при якому базовий алгоритм обробляє кожен блок даних тричі декількома незалежними підключами. Реалізований в PGP варіант 3DES EDE оперує з 168-бітовим ключем (теоретична стійкість становить 112 біт, практична - 129 біт) на 64-бітових блоках.
Список використаної літератури
1) http://uk.wikipedia.org
2) http://ru.wikipedia.org
3) Герасименко В.А. Защита информации в автоматизированных системах обработки данных. - В 2-х кн.
4) Комп'ютерна злочинність і інформаційна безпека / А.П. Леонов [і др.]; під общ. Ред. А.П. Леонова. - Мінськ: АРІЛ, 2000
Размещено на Allbest.ru
Подобные документы
Дослідження криптографічних методів захисту даних від небажаного доступу. Основи безпеки даних в комп'ютерних системах. Класифікаційні складові загроз безпеки інформації. Характеристика алгоритмів симетричного та асиметричного шифрування інформації.
курсовая работа [245,8 K], добавлен 01.06.2014Вразливість інформації в автоматизованих комплексах. Концепція захисту інформації. Комплекс основних задач при розробці політики безпеки. Стратегія та архітектура захисту інформації. Політика безпеки інформації. Види забезпечення безпеки інформації.
реферат [243,2 K], добавлен 19.12.2010Широке використання інформаційних технологій у всіх сферах життя суспільства. Інформація як об’єкт захисту. Основні види загроз безпеки інформації в комп’ютерних мережах. Несанкційований доступ до інформації і його мета. Порушники безпеки інформації.
реферат [253,2 K], добавлен 19.12.2010Задачі інформаційних систем криптографічного захисту інформації. Принципи шифрування даних на основі використання хеш-функцій. Розробка програмних компонентів інформаційних систем криптографічного захисту інформації. Види криптографічних алгоритмів.
курсовая работа [2,7 M], добавлен 23.01.2012Проблемі захисту інформації. Основні загрози та методи їх рішень. Апаратно-програмні засоби захисту. Використання ідентифікації приводу оптичного накопичувача за характеристиками лазерного диску. Аутентифікація за допомогою ідентифікації лазерного диску.
курсовая работа [65,2 K], добавлен 01.04.2013Можливі канали витоку інформації. Джерела виникнення електромагнітних полів. Основні параметри можливого витоку інформації каналами ПЕМВН. Розроблення системи захисту інформації. Захист інформації блокуванням загроз без використання засобів ТЗІ.
дипломная работа [80,0 K], добавлен 13.03.2012Принципи, цілі та завдання, напрямки робіт із захисту інформації. Суб'єкти системи захисту інформації у Російській Федерації. Основні організаційно-технічні заходи, об'єкти та засоби захисту інформації. Види загроз безпеки, матеріальні носії інформації.
реферат [23,6 K], добавлен 27.03.2010Захист електронних платежів у мережі Іntегnеt. Побудова захисту електронних банківських документів. Криптографічний захист інформації. Захист інформації та вирішення питань безпеки у СЕП. Роботи програмно-технічних комплексів в інформаційній мережі.
контрольная работа [293,9 K], добавлен 26.07.2009Забезпечення захисту інформації. Аналіз системи інформаційної безпеки ТОВ "Ясенсвіт", розробка моделі системи. Запобігання витоку, розкраданню, спотворенню, підробці інформації. Дослідження та оцінка ефективності системи інформаційної безпеки організації.
курсовая работа [1,6 M], добавлен 27.04.2014Детальний опис об'єкту захисту i видів інформації, що опрацьовується i зберігається у банку. Оцінка можливих каналів витоку інформації. Перелік організаційних і технічних заходів на об’єкті. Захист телефонних ліній і екранування виділених приміщень.
курсовая работа [35,6 K], добавлен 23.12.2010