Цифрова
підпис h2>
Реферат
студента Барташевич О.Є. h2>
САНКТ
- Петербурзького державного технічного університету h2>
Факультет
технічної кібернетики h2>
Кафедра
інформаційних і керуючих систем h2>
Санкт-Петербург h2>
2001 h2>
асиметричні алгоритми шифрування b>
p>
Розвиток основних типів криптографічних
протоколів (ключовий обмін, електронно-цифровий підпис (ЕЦП), аутентифікація та
ін) було б неможливо без створення відкритих ключів і побудованих на їх основі
асиметричних протоколів шифрування. p>
Основна
ідея асиметричних криптоалгоритмів полягає в тому, що для шифрування повідомлення
використовується один ключ, а при дешифрування - інший. Крім того, процедура шифрування
підготовлений так, що вона необоротна навіть за відомим ключа шифрування - це
другий необхідна умова асиметричної криптографії. Тобто, знаючи ключ
шифрування і зашифрований текст, неможливо відновити вихідне повідомлення --
прочитати його можна тільки за допомогою другого ключа - ключа дешифрування. А раз
так, то ключ шифрування для відправлення листів будь-якій особі можна взагалі не
приховувати - знаючи його все одно неможливо прочитати зашифроване повідомлення.
Тому, ключ шифрування називають в асиметричних системах "відкритим
ключем ", а ось ключ дешифрування одержувачу повідомлення, потрібно тримати в
секреті - він називається "закритим ключем". p>
Таким чином, ми "забрали від необхідності
вирішувати складне завдання обміну секретними ключами. p>
Напрошується питання: "Чому, знаючи відкритий
ключ, не можна обчислити закритий ключ? "- це третій необхідна умова
асиметричної криптографії - алгоритми шифрування і дешифрування створюються так,
щоб знаючи відкритий ключ, неможливо вирахувати закритий ключ. p>
У цілому система листування при використанні
асиметричного шифрування виглядає наступним чином. Для кожного з N абонентів, що ведуть
листування, обрана своя пара ключів: "відкритий" Ej і
"закритий" Dj, де j - номер абонента. Всі відкриті ключі відомі
всім користувачам мережі, кожен закритий ключ, навпаки, зберігається тільки у того
абонента, якого він належить. Якщо абонент, скажімо під номером 7,
має намір передати інформацію абоненту під номером 9, він шифрує дані ключем
шифрування E9 і відправляє її абоненту
9. Незважаючи на те, що всі користувачі мережі знають ключ E9 і, можливо, мають доступ до каналу, по якому
йде зашифроване послання, вони не можуть прочитати вихідний текст, так як
процедура шифрування необоротна з відкритого ключа. І лише абонент № 9, отримавши
послання, виробляє над ним перетворення з допомогою відомого тільки йому
ключа D9 і відновлює текст послання. Зауважте, що
якщо повідомлення потрібно відправити у протилежному напрямку (від абонента до 9
абоненту 7), то потрібно буде використовувати вже іншу пару ключів (для шифрування
ключ E7, а для дешифрування - ключ D7). p>
Як ми бачимо, по-перше, в асиметричних системах
кількість існуючих ключів пов'язано з кількістю абонентів лінійно (в
системі з N
користувачів використовуються 2 * N ключів), а не квадратичного, як в симетричних
системах. По-друге, при порушенні конфіденційності k-ої робочої станції зловмисник дізнається тільки
ключ Dk: це дозволяє йому читати всі повідомлення, що приходять абоненту k, але не дозволяє
вивадавать себе за нього при відправленні листів. p>
Стандарт ассімметрічного шифрування b>
RSA b> p>
Найпоширенішим алгоритмом асиметричного
шифрування є алгоритм RSA. Він був запропонований трьома
ісседователямі-математиками Рональдом Рівестом (R. Rivest), Аді Шамір (A. Shamir) та Леонардом Адльманом (L. Adleman) в 1977-78 роках. Розробникам даного алгоритму
вдалося ефективно втілити ідею односторонніх функцій з секретом. Стійкість RSA базується на
складності факторизації великих цілих чисел. У 1993 році метод RSA був обнародуваний і
прийнятий як стандарт (PKCS # 1: RSA Encryption standart). RSA можна застосовувати як для шифрування/розшифрування,
так і для генерації/перевірки електронно-цифрового підпису. p>
Генерація ключів b>
b> p>
Першим етапом будь-якого асиметричного алгоритму
є створення пари ключів: відкритого та закритого та розповсюдження
відкритого ключа "по всьому світу". Для алгоритму RSA етап створення ключів
складається з наступних операцій: p>
Вибираються два простих (!) числа p і q p>
обчислюється їх добуток n (= p * q) p>
Вибирається довільне число e (e