Учебное пособие по криптографии

⚡ Умное резюме

Криптография защищает информацию, преобразуя её в нечитаемый для человека формат, который может расшифровать только обладатель правильного ключа. На этой странице рассматриваются её особенности, области применения, алгоритмы и практическое упражнение с использованием CrypTool.

  • 🔐 Основная идея: Шифрование преобразует открытый текст в зашифрованный; дешифрование возвращает его в исходное состояние с помощью секретного ключа.
  • 🧩 Три дисциплины: Криптография скрывает смысл, криптоанализ его раскрывает, а криптология охватывает и то, и другое.
  • 📐 Семейства алгоритмов: Хэш-функции, симметричные шифры и системы с открытым ключом решают разные задачи.
  • Действующие стандарты: Алгоритмы AES и SHA-2 остаются одобренными, в то время как MD5, SHA-1 и RC4 считаются неработоспособными.
  • 🧪 Практическая практика: CrypTool 1 демонстрирует шифрование RC4 и анализ методом перебора 24-битного ключа.
  • 🔮 Смотреть вперед: В августе 2024 года NIST опубликовал свои первые постквантовые стандарты.

Учебное пособие по криптографии

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

В этой статье по криптографии и сетевой безопасности вы узнаете, как работает криптография и как защитить информацию от попадания в чужие руки.

Что такое криптография?

Криптография — это изучение и применение методов, позволяющих скрывать истинный смысл информации путем преобразования ее в нечитаемый для человека формат и обратно.

Рассмотрим пример. Чтобы отправить «Я ЛЮБЛЮ ЯБЛОКИ», нужно заменить каждую букву третьей последовательной буквой алфавита, получив «K NQXG CRRNGU». Чтобы прочитать это, получатель отступает на три буквы назад, как показано ниже.

Шифрование и дешифрование: сдвиг каждой буквы на три позиции.
Шифрование и дешифрование шифра

Преобразование информации в нечитаемую для человека форму называется шифрованиеа обратное преобразование называется дешифрованиеЗашифрованный результат называется шифр.

Для расшифровки используется секретный ключ, известный только законным получателям. Поскольку ключ необходим, связь остается защищенной даже в случае перехвата шифра злоумышленником, что без него не имеет смысла.

Особенности криптографии

Криптографическая система оценивается по следующим характеристикам.

Характеристика Что это значит
Алгоритм Опубликованная математическая процедура, выполняющая преобразование.
Конфиденциальность Только владельцы ключа могут читать защищенные данные.
Integrity Любые изменения в данных поддаются обнаружению.
Адаптивность Данная схема настраивается под разные размеры ключей и уровни угроз.
Взаимодействие Различные системы и поставщики обмениваются защищенными данными.
Аутентификация Происхождение сообщения можно доказать.
Масштабируемость Производительность остается стабильной по мере роста объемов данных.
Ключевой менеджмент Ключи генерируются, хранятся, обновляются и безопасно выводятся из эксплуатации.

Приложения криптографии

Эти характеристики становятся повседневными услугами, на которые люди полагаются, даже не замечая этого.

Области применения Как используется криптография
Шифрование TLS Обеспечивает защиту трафика между браузером и веб-сайтом.
Хранение паролей Вместо читаемых паролей хранит хеши с солью.
Онлайн банкинг Обеспечивает безопасность транзакций и проверяет банк.
Криптовалюта Подписывает транзакции и связывает блоки с помощью хешей.
Шифрованная электронная почта Обеспечивает конфиденциальность содержимого сообщений при передаче и хранении.
Digiтал подписи Доказывает авторство и неизменность документа.
Безопасный обмен сообщениями Применяет сквозное шифрование между устройствами.
Электронная коммерция Защищает данные карты во время оформления заказа.

Что такое криптоанализ?

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

Успех криптоаналитической атаки зависит от:

  • Доступное количество времени
  • Доступная вычислительная мощность
  • Доступная емкость хранилища

Ниже перечислены наиболее часто обсуждаемые криптоаналитические атаки:

  • Атака грубой силы — перебирает все возможные комбинации открытого текста или ключа, шифрует каждую из них и сравнивает с исходным шифром.
  • Словарная атака — использует список слов для сопоставления либо с открытым текстом, либо с ключом. Чаще всего используется при попытке взламывать зашифрованные пароли.
  • Атака радужным столом — сравнивает зашифрованный текст с предварительно вычисленными хешами для поиска совпадений. Добавление соли к каждому сохраненному паролю делает его неработоспособным.

Что такое криптология?

Криптология — это обобщающая область, объединяющая криптографию и криптоанализ. Важны обе составляющие: алгоритму можно доверять только после того, как криптоаналитики попытаются его взломать и потерпят неудачу.

Шифрование Algorithms

Приведенные ниже алгоритмы неоднократно встречаются в исследованиях в области безопасности. Обратите внимание, какие из них остаются одобренными, а какие сохраняются только в устаревших системах.

  • MD5 — сокращение от Message-Digest 5, он выдает 128-битные хеш-значения. MD5 — это хеш-функция, а не шифрованиеПоэтому его невозможно обратить вспять по замыслу разработчиков. Он не устойчив к коллизиям — два разных входных параметра могут дать один и тот же хеш — и непригоден для паролей или подписей.
  • ША — сокращение от Secure Hash Algorithm (безопасный хеш-алгоритм), это семейство алгоритмов генерирует сжатые представления сообщения, называемые дайджестом сообщения:
    • SHA-0: генерирует 160-битные хеш-значения. Был отозван из-за существенной уязвимости и заменен на SHA-1.
    • SHA-1: генерирует 160-битные хеш-значения. Практическая коллизия была продемонстрирована в 2017 году, и NIST запретил её использование в цифровых подписях, поэтому избегайте её.
    • SHA-2: семейство из шести функций, включая SHA-256 и SHA-512, работающих с 32-битными и 64-битными словами соответственно. Обе функции остаются одобренными.
    • SHA-3Стандартизированный в 2015 году и ранее известный как Keccak, он использует другую внутреннюю структуру в качестве резервной копии SHA-2.
  • AES — Расширенный стандарт шифрования (DES) — это симметричный блочный шифр, защищающий большую часть данных в состоянии покоя и при передаче, с ключами 128, 192 и 256 бит. Он заменил DES и является стандартом по умолчанию для новых систем.
  • RC4 — потоковый шифр, когда-то широко распространенный в протоколах Secure Sockets Layer (SSL) и Wired Equivalent Privacy (WEP). Оба протокола устарели, а RFC 7465 в 2015 году запретил использование RC4 во всех версиях TLS. Он сохранился здесь в качестве учебного примера.
  • Blowfish — это симметричный блочный шифр с ключом, исторически использовавшийся для паролей и файлов. 64-битный размер блока делает AES лучшим современным выбором.

В перспективе, в августе 2024 года NIST опубликовал свои первые постквантовые стандарты — ML-KEM для обмена ключами, ML-DSA и SLH-DSA для подписей, — которые постепенно заменят нынешние алгоритмы открытых ключей.

Хакерская деятельность: Как создать шифр с помощью CrypTool

В этом практическом упражнении по CrypTool вы создадите простой шифр с помощью RC4, а затем восстановите его методом перебора, предполагая, что ключ известен и имеет размер 24 бита. Цель — показать, почему короткий ключ и взломанный шифр не обеспечивают реальной защиты.

Создание потокового шифра RC4

Шаг 1) Загрузите и установите CrypTool.

CrypTool 1 — это образовательный инструмент с открытым исходным кодом для изучения криптологии. Активная разработка впоследствии перешла к CrypTool 2, но версия 1.4.42 по-прежнему работает на... Windows и соответствует скриншотам ниже. Скачать можно здесь. cryptool.org.

Шаг 2) Откройте CrypTool и замените текст.

Фраза для шифрования: Никогда не стоит недооценивать решимость ребенка, у которого много времени, но мало денег.Ключевое слово — 00 00 00.

  • Откройте CrypTool 1.

Главное окно CrypTool 1 до замены образца текста.

  • Замените текст фразой, указанной выше.

Документ CrypTool, содержащий заменяющую фразу.

Шаг 3) Зашифруйте текст

  • Нажмите на меню «Шифрование/Расшифровка».

Меню CrypTool Encrypt/Decrypt с выбранным параметром Symmetric modern

  • Наведите указатель мыши на «Симметричный (современный)», затем выберите RC4.

Диалоговое окно ввода ключа CrypTool RC4

Шаг 4) Выберите ключ шифрования

  • Выберите длину ключа 24 бита.
  • Установите значение равным 00 00 00.
  • Нажмите кнопку «Зашифровать», чтобы получить приведенный ниже потоковый шифр.

Полученный поток шифра RC4 показан в CrypTool.

Атака на потоковый шифр

Шаг 5) Начать анализ

  • Щелкните меню «Анализ».

Меню анализа CrypTool с выделенным современным режимом симметричного шифрования

  • Наведите указатель мыши на «Симметричное шифрование (современное)», затем выберите RC4.

Диалоговое окно анализа методом перебора CrypTool для RC4

  • Предполагается использование 24-битного секретного ключа, поэтому выберите 24 бита в качестве длины ключа.
  • Нажмите кнопку Пуск.

Окно хода выполнения анализа методом перебора в CrypTool

  • Примечание: Время, необходимое для обработки данных, зависит от вычислительной мощности используемого устройства и от длины ключа. Более длинный ключ требует больше времени, поэтому современные ключи имеют длину 128 бит и более.

Шаг 6) Проанализируйте результаты

  • По завершении анализа потенциальные ключи располагаются в следующем порядке.

Результаты перебора CrypTool, ранжированные по энтропии.

  • Примечание: Более низкое значение энтропии обычно указывает на правильный результат, хотя более высокое значение также может быть верным.
  • Выделите строку, которая выглядит как осмысленный текст, затем нажмите «Принять выделение».

Часто задаваемые вопросы (FAQ)

Симметричное шифрование использует один общий ключ и работает быстро, поэтому оно защищает большие объемы данных. Асимметричное шифрование использует пару открытого и закрытого ключей, что решает проблему распределения ключей и позволяет использовать цифровые подписи.

Нет. Шифрование обратимо с помощью ключа; хеширование — это одностороннее преобразование в дайджест фиксированной длины. Системы паролей хранят хеши с солью именно потому, что исходное значение невозможно восстановить.

Соль — это уникальное случайное значение, хранящееся рядом с каждым хешем пароля. Она заставляет одинаковые пароли хешироваться по-разному, что делает невозможным использование предварительно вычисленных радужных таблиц и вынуждает злоумышленника работать с каждой учетной записью отдельно.

Цифровой сертификат связывает открытый ключ с подтвержденной личностью и подписывается центром сертификации. Браузеры проверяют эту подпись, прежде чем доверить зашифрованное соединение веб-сайту.

Большой квантовый компьютер смог бы взломать RSA и ключи на основе эллиптических кривых, в то время как для симметричных шифров требуются лишь более крупные ключи. NIST отреагировал, опубликовав постквантовые стандарты в 2024 году, чтобы миграция могла начаться раньше.

Машинное обучение не взламывает надежные современные шифры. Вместо этого оно используется для анализа побочных каналов, выявления слабых или повторно используемых ключей в больших масштабах и обнаружения аномального зашифрованного трафика при выявлении угроз.

Copilot ускоряет создание шаблонного кода, но часто предлагает устаревшие алгоритмы или жестко закодированные клавиши. Рассматривайте каждое предложение как черновик, отдавайте предпочтение проверенной библиотеке, а не написанному вручную коду, и поручите рецензенту проверить обработку клавиш.

Инженеры по безопасности, специалисты по тестированию на проникновение и эксперты-криминалисты применяют его ежедневно, и он составляет полноценную область применения. сертификации CISSPВ большинстве случаев задача заключается в настройке проверенных библиотек, а не в разработке алгоритмов.

Подведем итог этой публикации следующим образом: