Криптографический алгоритм, который использует два разных математически связанных ключа — открытый и закрытый. Открытый ключ может быть доступен каждому и применяется для шифрования данных. Для их дешифровки требуется закрытый ключ, который хранится в секрете. Безопасность гарантируется трудностью факторизации больших целых чисел, которые являются произведением двух больших простых чисел. Несмотря на то, что умножать их просто, временные затраты на определение исходных простых чисел слишком велики даже для современных компьютеров.