Криптографический алгоритм
Криптографический алгоритм (шифр) — это математическая процедура, преобразующая исходные данные (открытый текст) в зашифрованное сообщение (шифротекст) и обратно, с использованием секретного ключа (или без него, в случае хеширования). Криптографические алгоритмы лежат в основе обеспечения конфиденциальности, целостности, аутентичности и неотказуемости информации в системах связи, хранения данных и цифровых транзакциях. По степени доступности ключа и механизму преобразования алгоритмы делятся на симметричные, асимметричные и хеш-функции.
История развития
Древние шифры
Первые известные криптографические алгоритмы появились в древних цивилизациях. В Древнем Египте использовались иероглифические замены, в Древней Греции — шифр Скитала (перестановка на цилиндре). В Древнем Риме активно применялся шифр Цезаря (сдвиг букв алфавита на фиксированное число позиций). Эти алгоритмы были простыми подстановочными или перестановочными и не требовали сложных вычислений.
Средневековье и эпоха Возрождения
В IX веке арабский учёный Аль-Кинди написал трактат «О расшифровке криптографических сообщений», в котором описал частотный анализ — метод взлома простых подстановочных шифров. В эпоху Возрождения Леон Баттиста Альберти предложил шифр на основе диска с двумя алфавитами, что стало прообразом полиалфавитных систем. В XVI веке Блез де Виженер создал шифр с переменным ключом (шифр Виженера), который оставался устойчивым к частотному анализу до XIX века.
Индустриальная эпоха
С развитием телеграфа и радио в XIX — начале XX века возникла потребность в массовой защите передаваемых данных. В 1918 году Артур Шербиус изобрёл роторную шифровальную машину «Энигма», использовавшуюся Германией во Второй мировой войне. Взлом «Энигмы» британскими криптоаналитиками (включая Алана Тьюринга) стал одним из ключевых факторов победы союзников. В СССР в 1930-е годы разрабатывались шифры, основанные на одноразовых блокнотах (гаммирование с одноразовым ключом), которые теоретически невзламываемы при соблюдении условий.
Цифровая эпоха
С появлением электронных вычислительных машин в середине XX века криптография перешла на математическую основу. В 1976 году Уитфилд Диффи и Мартин Хеллман опубликовали концепцию криптографии с открытым ключом (асимметричные алгоритмы). В 1977 году был принят стандарт DES (Data Encryption Standard) — первый общедоступный симметричный блочный шифр, одобренный правительством США. В 2001 году на смену DES пришёл AES (Advanced Encryption Standard), разработанный бельгийскими криптографами Йоаном Дайменом и Винсентом Рейменом.
Классификация криптографических алгоритмов
Симметричные алгоритмы
В симметричных алгоритмах один и тот же секретный ключ используется как для шифрования, так и для расшифрования. Ключ должен быть известен обеим сторонам и храниться в тайне. Симметричные алгоритмы делятся на:
- Блочные шифры — преобразуют блок данных фиксированной длины (например, 128 бит) с использованием ключа. Примеры: AES, ГОСТ 28147-89 («Магма»), Blowfish, Twofish.
- Потоковые шифры — шифруют данные по одному биту или байту, генерируя псевдослучайную последовательность (гамму), которая накладывается на открытый текст. Примеры: RC4, Salsa20, ChaCha20.
Асимметричные алгоритмы
В асимметричных алгоритмах (криптография с открытым ключом) используется пара ключей: открытый (публичный) ключ для шифрования и закрытый (приватный) ключ для расшифрования. Открытый ключ может быть свободно распространён, закрытый хранится в секрете. Основные алгоритмы:
- RSA — основан на сложности факторизации больших целых чисел (разработан в 1977 году Роном Ривестом, Ади Шамиром и Леонардом Адлеманом).
- ElGamal — основан на сложности дискретного логарифмирования (предложен Тахером Эль-Гамалем в 1985 году).
- Эллиптическая криптография (ECC) — использует алгебраическую структуру эллиптических кривых над конечными полями (предложена Нилом Коблицем и Виктором Миллером в 1985 году). Позволяет достигать той же стойкости при меньшей длине ключа.
Хеш-функции
Хеш-функции — это односторонние алгоритмы, преобразующие произвольный объём данных в битовую строку фиксированной длины (хеш, дайджест). Они необратимы: по хешу невозможно восстановить исходные данные. Основные свойства: детерминированность (один и тот же вход даёт один и тот же хеш), лавинный эффект (малое изменение входа сильно меняет хеш), устойчивость к коллизиям (сложно найти два разных сообщения с одинаковым хешем). Примеры: MD5 (устарел, небезопасен), SHA-1 (устарел), SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512), SHA-3 (Keccak), российский стандарт ГОСТ Р 34.11-2012 («Стрибог»).
Устройство и принципы работы
Основные операции
Большинство современных симметричных блочных шифров (AES, ГОСТ 28147-89) основаны на структуре сеть Фейстеля или SP-сеть (Substitution-Permutation network). В сети Фейстеля блок данных делится на две половины, которые многократно преобразуются с помощью раундовой функции, использующей часть ключа. В SP-сети блок обрабатывается последовательностью операций замены (S-блоки) и перестановки (P-блоки). Для асимметричных алгоритмов (RSA, ECC) используются операции модульной арифметики (возведение в степень, умножение) и операции над точками эллиптической кривой.
Режимы шифрования
Для блочных шифров определены режимы работы, определяющие, как шифруются последовательности блоков:
- ECB (Electronic Codebook) — каждый блок шифруется независимо. Уязвим к атакам по шаблону (не рекомендуется).
- CBC (Cipher Block Chaining) — каждый блок перед шифрованием XOR-ится с предыдущим шифротекстом. Требует вектор инициализации (IV).
- CTR (Counter) — шифруется счётчик, результат XOR-ится с открытым текстом. Позволяет параллельное шифрование.
- GCM (Galois/Counter Mode) — обеспечивает одновременно шифрование и аутентификацию (проверку целостности).
Управление ключами
Безопасность любого криптографического алгоритма существенно зависит от надёжности управления ключами: генерации, распределения, хранения и уничтожения ключей. Для симметричных алгоритмов ключи должны передаваться по защищённому каналу (например, с использованием асимметричного шифрования или протокола Диффи-Хеллмана). Для асимметричных алгоритмов открытые ключи удостоверяются с помощью инфраструктуры открытых ключей (PKI) и цифровых сертификатов.
Применение
Защита данных при передаче
Криптографические алгоритмы используются в протоколах TLS/SSL (защита веб-трафика), SSH (удалённый доступ), IPsec (защита IP-пакетов), VPN. Например, в протоколе HTTPS (HTTP over TLS) применяются симметричные шифры (AES, ChaCha20) для шифрования данных и асимметричные (RSA, ECDHE) для обмена ключами.
Защита данных при хранении
Шифрование дисков (BitLocker, LUKS), файловых систем (encfs), баз данных и архивов (7-Zip с AES). Хеш-функции используются для хранения паролей (с солью) и проверки целостности файлов (контрольные суммы).
Электронная подпись и аутентификация
Асимметричные алгоритмы (RSA, ECDSA, ГОСТ Р 34.10-2012) применяются для создания электронной подписи, которая удостоверяет авторство и целостность документа. Хеш-функции используются для вычисления дайджеста сообщения перед подписанием.
Криптовалюты и блокчейн
В криптовалютах (биткоин, эфириум) применяются хеш-функции SHA-256 и Keccak-256 для майнинга и формирования цепочки блоков, а также асимметричные алгоритмы (ECDSA с эллиптической кривой secp256k1) для создания и верификации транзакций.
Государственные стандарты
В Российской Федерации криптографические алгоритмы регламентируются национальными стандартами (ГОСТ):
- ГОСТ 28147-89 — симметричный блочный шифр (с 2015 года дополнен ГОСТ Р 34.12-2015, включающим алгоритмы «Магма» и «Кузнечик»).
- ГОСТ Р 34.10-2012 — алгоритмы электронной подписи на основе эллиптических кривых.
- ГОСТ Р 34.11-2012 — хеш-функция «Стрибог» (256 и 512 бит).
Эти стандарты обязательны для использования в государственных информационных системах и при обработке персональных данных в РФ.
Критика и уязвимости
Устаревшие алгоритмы
Некоторые алгоритмы, считавшиеся надёжными в прошлом, были взломаны или признаны небезопасными. MD5 и SHA-1 подвержены коллизионным атакам. DES (56-битный ключ) был взломан полным перебором в 1998 году. RC4 имеет множество уязвимостей (атаки на WEP, уязвимости в TLS). Рекомендуется использовать только современные алгоритмы (AES-256, SHA-256, ChaCha20-Poly1305).
Квантовая угроза
Развитие квантовых компьютеров представляет потенциальную угрозу для многих асимметричных алгоритмов. Алгоритм Шора позволяет эффективно решать задачи факторизации и дискретного логарифмирования, что делает RSA, DSA и ECDSA уязвимыми. Симметричные алгоритмы (AES) и хеш-функции (SHA-3) считаются более устойчивыми к квантовым атакам (требуется лишь удвоение длины ключа). В связи с этим разрабатываются постквантовые криптографические алгоритмы (например, на основе решёток, кодов, многомерных квадратичных систем).
Реализационные ошибки
Даже стойкий алгоритм может быть скомпрометирован из-за ошибок в реализации: утечки по побочным каналам (время выполнения, потребление энергии, электромагнитное излучение), неправильное управление ключами, использование слабых генераторов случайных чисел. Пример — атака Heartbleed на OpenSSL (2014 год).
Источники
- Шнайер Б. «Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си» (1996).
- Мао В. «Современная криптография: теория и практика» (2007).
- Menezes A., van Oorschot P., Vanstone S. «Handbook of Applied Cryptography» (1996).
- National Institute of Standards and Technology (NIST). «Advanced Encryption Standard (AES)» (FIPS PUB 197, 2001).
- Федеральный закон РФ № 63-ФЗ «Об электронной подписи» (2011).
- ГОСТ Р 34.10-2012, ГОСТ Р 34.11-2012, ГОСТ Р 34.12-2015.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →