Алгоритмы шифрования делятся на два больших типа, основанных на ключах: симметричные (AES, ГОСТ, Blowfish, CAST, DES) и асимметричные (RSA, El-Gamal).
Симметричные - это алгоритмы с ключом, ассиметричные - с открытым ключом.
Ключ шифрования симметричного алгоритма может быть рассчитан по ключу дешифрирования и наоборот.
Открытый ключ - это когда ключ для шифрования, отличается от ключа дешифрирования.