Классификация алгоритмов шифрования
- Симметричные (с секретным, единым ключом, одноключевые, single-key).
- Потоковые (шифрование потока данных):
- с одноразовым или бесконечным ключом (infinite-key cipher);
- с конечным ключом (система Вернама - Vernam);
- на основе генератора псевдослучайных чисел (ПСЧ).
- Блочные (шифрование данных поблочно):
- Шифры перестановки (permutation, P-блоки);
- Шифры замены (подстановки, substitution, S-блоки):
- моноалфавитные (код Цезаря);
- полиалфавитные (шифр Видженера, цилиндр Джефферсона, диск Уэтстоуна, Enigma);
- Cоставные:
- Lucipher (фирма IBM, США);
- DES (Data Encryption Standard, США);
- FEAL-1 (Fast Enciphering Algoritm, Япония);
- IDEA/IPES (International Data Encryption Algorithm/
- Improved Proposed Encryption Standard, фирма Ascom-Tech AG, Швейцария);
- B-Crypt (фирма British Telecom, Великобритания);
- ГОСТ 28147-89 (СССР); * Skipjack (США).
- Потоковые (шифрование потока данных):
- Асимметричные (с открытым ключом, public-key):
- Диффи-Хеллман DH (Diffie, Hellman);
- Райвест-Шамир-Адлeман RSA (Rivest, Shamir, Adleman);
- Эль-Гамаль ElGamal.
Кроме того, есть разделение алгоритмов шифрования на собственно шифры (ciphers) и коды (codes). Шифры работают с отдельными битами, буквами, символами. Коды оперируют лингвистическими элементами (слоги, слова, фразы).