Інформація шифрується за допомогою відкритого ключа, а розшифровується з використанням секретного ключа.
В основі застосування систем з відкритим ключем лежить використання необоротних або односторонніх функцій. Ці функції мають наступну властивість. За відомим х легко визначається функція у =f ( х ). Але за відомим значенням у практично неможливо отримати х . У криптографії використовується односторонні функції, що мають так званий потаємний хід. Ці функції з параметром z володіють наступними властивостями. Для певного z можуть бути знайдені алгоритми E z і D z. За допомогою E z легко отримати функцію fz (< i align="justify"> х ) для всіх х з області визначення. Так само просто за допомогою алгоритму D z виходить і зворотна функція х =f - 1 ( y ) для всіх у з області допустимих значень. У той же час практично для всіх z і майже для всіх у з області допустимих значень знаходження f - 1 ( y ) за допомогою обчислень неможливо навіть при відомому E z. В якості відкритого ключа використовується у , а в якості закритого - х .
При шифруванні з використанням відкритого ключа немає необхідності в передачі секретного ключа між взаємодіючими суб'єктами, що істотно спрощує криптозащиту переданої інформації.
асиметричні алгоритми шифрування розрізняються видом односторонніх функцій. Серед них найвідомішими є системи RSA, Ель-Гамаля і Мак-Еліса. В даний час найбільш ефективним і поширеним алгоритмом шифрування з відкритим ключем є алгоритм RSA, який отримав свою назву від перших літер прізвищ його творців: Rivest, Shamir і Adleman.
Алгоритм заснований на використанні операції зведення в ступінь модульної арифметики. Його можна представити у вигляді такої послідовності кроків.
Крок 1. Вибираються два великі простих числа р і q . Простими називаються числа, які діляться тільки на самих себе і на 1. Величина цих чисел повинна бути більше 200.
Крок 2. Виходить відкрита компонента ключа n :
n = р * q .
Крок 3. Обчислюється функція Ейлера за формулою:
f ( p , q )=( p - 1) * ( q - 1).
Функція Ейлера показує кількість цілих позитивних чисел від 1 до n , які взаємно прості з n . Взаємно простими є такі числа, які не мають жодного спільного дільника, крім 1.
Крок 4. Вибирається велике просте число d , яке є взаємно простим зі значенням f ( p , q ).
Крок 5. Визначається число е , що задовольняє умові:
e * d =1 (modf ( p , < i align="justify"> q )).
Дана умова означає, що залишок від ділення (вирахування) твору е * d на функцію f ( р , q ) дорівнює 1. Число е приймається в якості другої компоненти відкритого ключа. В якості секретного ключа використовуються числа p і q . Крок 6. Вихідна інформація, незалежно від її фізичної природи, представляється в числовому двійковому вигляді. Послідовність біт розділяється на блоки довжиною L біт, де L - найменше ціле число, яке задовольняє умові: L? Lоg 2 ( n +1). Кожен блок розглядається як ціле позитивне число Х ( i ), що належить інтервалу [0, n - 1]. Таким чином, вихідна інформація представляється послідовністю чисел Х ( i ), i =. Значення I визначається довжиною шіфруемий послідовності.
Крок 7. Зашифрована інформація отримується у вигляді послідовності чисел Y ( i ), що обчислюються за формулою:
Y ( i )=(Х ( i )) e (mod n ).
Крок 8. Для розшифровки інформації використовується наступна залежність:
X (