Криптографията със асиметрични ключове е по-позната като криптография с публичен ключ. При нея се използват двойка ключове, които са математическа функция един на друг, но ако имаме само единият, е много малко вероятно да изчислим другият ключ. Единият ключ се използва за криптиране и подписване, а другият за декриптиране и проверка за грешки. Единият е скрит и се пази в тайна, а другият е публично достъпен.
Това са няколко примера за алгоритми за криптиране с асиметрични ключове:
- Diffie-Hellman (Позволява договарянето на сесиен ключ без изпращането му по несигурната връзка. Двете договарящи се страни избират 2 случайни прости числа, след което обменят ограничен обем от информация, така че всяка страна да може да изчисли общия ключ, без това да е възможно за трета, злонамерена страна. Ако обмяната на информация се подслушва тогава договорения общ ключ е компрометиран.)
- Rivest, Shamir, Adleman (RSA) – предоставя процедура за подписване на електронен документ и за проверка на автентичността на подписа. Електронния подпис не може да бъде константа — той е реквизит на електронния документ, на който е „положен“. Операциите на RSA, независимо дали кодирането, декодирането, подписването или проверката, всъщност представляват модулно екс-поненциране. Това изчисление се извършва като серия модулни „умножения“.
- Digital Signature Algorithm (DSA) / El Gamal – Ключа се генерира в две фази. Първата е избора на параметри към алгоритъма, докато втората фаза изчислява публичния и личния ключ за потребителите.
- Elliptic Curve Cryptosystem (ECC)
Алгоритмите за криптиране с асиметрични ключове са еднопосочни функции. Те могат лесно да бъдат изчислени в едната посока, но изключително трудно в обратната, ако нямаме и двата ключа. Но дори и да притежаваме и двата, асиметричните алгоритми са много ресурсоемки. Те са около 100 пъти по бавни от алгоритмите, които работят със симетрични ключове. На практика не се използват за криптиране и декриптиране на голямо количество информация.
Те работят по следният начин: Когато целта е да се запази поверителността на данните, изпращачът криптира съобщението със публичният ключ на получателя, като само частният на ключ на получателя може да декриптира съобщението.
Съобщения, предназначени за повече от един получател трябва да бъдат криптирани по отделно за всеки един от тях. Когато се използва за аутентикация при електронните подписи, съобщението се криптира с частният ключ на подателя, като само публичният ключ на подателя може да го декриптира, потвърждавайки по този начин, че то наистина идва от него. Запазването на поверителността на данните е по-честото приложение на криптографията с публични ключове. [13]