|
с одноразовым или бесконечным ключом
(infinite-key cipher);
с конечным ключом (система Вернама - Vernam);
на основе генератора псевдослучайных чисел (ПСЧ).
1.2. Блочные (шифрование данных поблочно):
1.2.1. Шифры перестановки (permutation, P-блоки);
1.2.2. Шифры замены (подстановки, substitution, S-блоки):
моноалфавитные (код Цезаря);
полиалфавитные (шифр Видженера, цилиндр Джефферсона, диск Уэтстоуна,
Enigma);
1.2.3. составные (таблица 1):
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 (США).
2. Асимметричные (с открытым ключом, public-key):
Диффи-Хеллман DH (Diffie, Hellman);
Райвест-Шамир-Адлeман RSA (Rivest, Shamir, Adleman);
Эль-Гамаль ElGamal.
Кроме того, есть разделение алгоритмов шифрования на
собственно шифры (ciphers) и коды (codes). Шифры работают с отдельными
битами, буквами, символами. Коды оперируют лингвистическими элементами
(слоги, слова, фразы). Криптография необходима для реализации, по крайней мере, трех сервисов
безопасности: Шифрование - наиболее мощное средство обеспечения конфиденциальности. Во
многих отношениях оно занимает центральное место среди программно-технических
регуляторов безопасности, являясь основой реализации многих из них, и в то же
время последним (а подчас и единственным) защитным рубежом. Например, для
портативных компьютеров только шифрование позволяет обеспечить
конфиденциальность данных даже в случае кражи. В большинстве случаев и шифрование, и контроль целостности играют глубоко
инфраструктурную роль, оставаясь прозрачными и для приложений, и для
пользователей. Типичное место этих сервисов безопасности - на сетевом и
транспортном уровнях реализации стека сетевых протоколов. Различают два основных метода шифрования: симметричный и асимметричный.
Один и тот же ключ (хранящийся в секрете) используется и для зашифрования, и
для расшифрования данных. Разработаны весьма эффективные (быстрые и надежные)
методы симметричного шифрования. Существует и национальный стандарт на подобные
методы - ГОСТ 28147-89 "Системы обработки информации. Защита криптографическая.
Алгоритм криптографического преобразования". Рис.1 иллюстрирует использование симметричного шифрования. Для определенности
мы будем вести речь о защите сообщений, хотя события могут развиваться не только
в пространстве, но и во времени, когда зашифровываются и расшифровываются никуда
не перемещающиеся файлы. Основным недостатком симметричного шифрования является то, что секретный ключ
должен быть известен и отправителю, и получателю. С одной стороны, это создает
новую проблему распространения ключей. С другой стороны, получатель на основании
наличия зашифрованного и расшифрованного сообщения не может доказать, что он
получил это сообщение от конкретного отправителя, поскольку такое же сообщение
он мог сгенерировать самостоятельно. В асимметричных методах используются два ключа. Один из них, несекретный (он
может публиковаться вместе с другими открытыми сведениями о пользователе),
применяется для шифрования, другой (секретный, известный только получателю) -
для расшифрования. Самым популярным из асимметричных является метод RSA
(Райвест, Шамир, Адлеман), основанный на операциях с большими (скажем,
100-значными) простыми числами и их произведениями. Проиллюстрируем использование асимметричного шифрования. Существенным недостатком асимметричных методов шифрования является их низкое
быстродействие, поэтому данные методы приходится сочетать с симметричными
(асимметричные методы на 3 - 4 порядка медленнее). Так, для решения задачи
эффективного шифрования с передачей секретного ключа, использованного
отправителем, сообщение сначала симметрично зашифровывают случайным ключом,
затем этот ключ зашифровывают открытым асимметричным ключом получателя, после
чего сообщение и ключ отправляются по сети. Рис.3 иллюстрирует эффективное шифрование, реализованное путем сочетания
симметричного и асимметричного методов. На рис.4 показано расшифрование эффективно зашифрованного сообщения. Определенное распространение получила разновидность симметричного шифрования,
основанная на использовании составных ключей. Идея состоит в том, что секретный
ключ делится на две части, хранящиеся отдельно. Каждая часть сама по себе не
позволяет выполнить расшифрование. Если у правоохранительных органов появляются
подозрения относительно лица, использующего некоторый ключ, они могут в
установленном порядке получить половинки ключа и дальше действовать обычным для
симметричного расшифрования образом. Порядок работы с составными ключами - хороший пример следования принципу
разделения обязанностей. Он позволяет сочетать права на разного рода тайны
(персональную, коммерческую) с возможностью эффективно следить за нарушителями
закона, хотя, конечно, здесь очень много тонкостей и технического, и
юридического плана. Многие криптографические алгоритмы в качестве одного из параметров требуют
псевдослучайное значение, в случае предсказуемости которого в алгоритме
появляется уязвимость (подобное уязвимое место было обнаружено в некоторых
вариантах Web-навигаторов). Генерация псевдослучайных последовательностей -
важный аспект криптографии, на котором мы, однако, останавливаться не будем.
Методы шифрования
Симметричный метод шифрования
Ассимметричный метод шифрования