Криптография

Введение в криптографию

В 1943 году союзники взломали нацистский шифр Энигма в секретном центре Блетчли-Парк, и историки подсчитали, что это сократило Вторую мировую войну на 2 года, сохранив около 14 миллионов жизней. Криптография решала судьбы войн, защитила миллиарды финансовых транзакций и прямо сейчас охраняет каждое сообщение, которое вы отправляете. Это самая влиятельная ветвь математики, которую когда-либо создало человечество.

  • **HTTPS и TLS** - каждый раз, когда вы видите замочек в браузере, работает криптография: AES шифрует трафик, RSA или Diffie-Hellman обменивается ключами, SHA-256 проверяет целостность - миллиарды соединений ежедневно
  • **Мессенджеры с end-to-end шифрованием** - WhatsApp, Signal, Telegram (секретные чаты) используют протокол Signal с Double Ratchet: даже серверы компании не могут прочитать ваши сообщения, потому что ключи шифрования есть только у участников
  • **Банковские системы и криптовалюты** - SWIFT переводы защищены криптографией, а Bitcoin и Ethereum построены целиком на криптографических примитивах: хеш-функциях, цифровых подписях и деревьях Меркла

История криптографии

Криптография - одна из древнейших наук о защите информации. Первые свидетельства шифрования найдены в **Древнем Египте (1900 г. до н.э.)**: писцы заменяли стандартные иероглифы нестандартными, чтобы придать надписям загадочность. С тех пор каждая великая цивилизация создавала свои методы сокрытия сообщений - от военных секретов до дипломатической переписки.

**Скитала (VII в. до н.э.)** - один из первых известных шифров перестановки. Спартанские военачальники наматывали полоску пергамента на деревянный цилиндр определенного диаметра и писали сообщение вдоль цилиндра. Без цилиндра такого же диаметра буквы на ленте выглядели бессмысленно. **Шифр Цезаря** работал проще: каждая буква заменялась на букву, стоящую на 3 позиции дальше в алфавите. A становилась D, B - E, и так далее.

Переломный момент наступил в **IX веке**, когда арабский ученый **Аль-Кинди** изобрел **частотный анализ** - метод взлома подстановочных шифров. Идея гениально проста: в каждом языке буквы встречаются с разной частотой. В английском буква E встречается в 13% текста, T - в 9%. Если в шифротексте символ X появляется в 13% случаев, скорее всего X = E. Это сделало все простые подстановочные шифры уязвимыми и запустило вечную гонку между создателями шифров и взломщиками.

**1976 год** - настоящая революция. Уитфилд Диффи и Мартин Хеллман опубликовали протокол **обмена ключами по открытому каналу**. Впервые два человека могли договориться о секретном ключе, разговаривая при свидетелях! Через год Ривест, Шамир и Адлеман создали **RSA** - первый практичный алгоритм с двумя ключами: публичный для шифрования (его можно дать кому угодно) и приватный для расшифровки (хранится в секрете). В **2001 году** был принят **AES (Advanced Encryption Standard)** - стандарт симметричного шифрования, который защищает ваши данные прямо сейчас: Wi-Fi, HTTPS, мессенджеры, банковские приложения.

**Взлом Энигмы - поворотный момент истории** Немецкая шифровальная машина Энигма использовала систему вращающихся роторов, создавая астрономическое количество комбинаций. Немцы считали её неуязвимой. Но команда криптоаналитиков в Блетчли-Парк (Англия), включая **Алана Тьюринга**, нашла слабости в протоколе использования и построила электромеханические машины (Bombe) для перебора ключей. Историки оценивают, что это сократило войну на 2 года и спасло около 14 миллионов жизней.

Какое событие в истории криптографии впервые позволило двум людям договориться о секретном ключе через открытый (прослушиваемый) канал связи?

Цели криптографии: CIA + Non-repudiation

Криптография - это не только про "спрятать текст". У неё **четыре фундаментальные цели**, которые объединяют в модель **CIA** (Confidentiality, Integrity, Authentication) плюс **Non-repudiation** (неотказуемость). Чтобы понять каждую цель, познакомимся с классическими персонажами криптографии: **Alice** (отправитель), **Bob** (получатель), **Eve** (подслушивающая, от "eavesdropper") и **Mallory** (активный злоумышленник, от "malicious").

**1. Confidentiality (конфиденциальность)** - только Alice и Bob могут прочитать сообщение. Eve перехватывает шифротекст, но без ключа не может понять содержимое. Пример: вы отправляете номер карты через HTTPS - даже если провайдер видит трафик, он видит только зашифрованные данные. **2. Integrity (целостность)** - Bob уверен, что сообщение не было изменено в пути. Mallory не может подменить "переведи 100 рублей" на "переведи 100000 рублей". Достигается через хеш-функции и MAC (Message Authentication Code).

**3. Authentication (аутентификация)** - Bob уверен, что сообщение пришло именно от Alice, а не от Mallory, притворяющегося Alice. Достигается через цифровые подписи и сертификаты. Когда вы заходите на сайт банка, сертификат SSL подтверждает, что это действительно банк, а не фишинговая страница. **4. Non-repudiation (неотказуемость)** - Alice не может потом заявить "я этого не отправляла". Цифровая подпись доказывает авторство, как подпись на бумажном документе, только надежнее. Критично для контрактов, финансовых транзакций, юридических документов.

**Почему всех четырех целей нужно достигать одновременно?** Шифрование без целостности опасно: Mallory не читает сообщение, но меняет биты наугад - и банковский перевод уходит на случайный счет. Целостность без аутентификации бесполезна: Bob уверен, что сообщение не изменено, но не знает, что его отправил Mallory, а не Alice. Аутентификация без неотказуемости ненадежна: Alice подтвердила перевод, но потом заявляет "меня взломали". Только **все четыре свойства вместе** дают полноценную защиту.

Alice отправила Bob зашифрованное сообщение. Eve перехватила шифротекст, не смогла его прочитать, но изменила несколько байт наугад и переслала Bob. Какое свойство криптосистемы было нарушено?

Принцип Керкгоффса

В 1883 году голландский криптограф **Огюст Керкгоффс** сформулировал принцип, который стал одним из фундаментальных законов криптографии: **"Безопасность криптосистемы должна зависеть только от секретности ключа, а не от секретности алгоритма."** Другими словами, даже если противник точно знает, КАК работает шифр, он не должен суметь расшифровать сообщение без ключа.

Великий математик **Клод Шеннон** позже переформулировал эту идею ещё короче: **"The enemy knows the system"** ("Враг знает систему"). Это не паранойя, а практический реализм. Алгоритм рано или поздно станет известен: через реверс-инжиниринг, утечку документации, увольнение сотрудника. Единственное, что реально можно сменить быстро и дёшево - это ключ.

Классический провал "security through obscurity" - система **CSS (Content Scramble System)** для защиты DVD. Алгоритм был засекречен, лицензирован только авторизованным производителям. Но в 1999 году 15-летний норвежский подросток Jon Lech Johansen (DVD Jon) реверс-инженерил алгоритм и обнаружил, что CSS использует всего **40-битный ключ** - его можно взломать перебором за секунды на обычном компьютере. Секретность алгоритма маскировала критическую слабость.

**Почему открытые алгоритмы надежнее закрытых?** 1. **Проверка экспертами** - AES прошел публичный конкурс NIST, где сотни криптографов со всего мира атаковали кандидатов. Слабые алгоритмы были найдены и отсеяны. 2. **Принцип Линуса** - "При достаточном количестве глаз все баги выплывают на поверхность." Чем больше людей анализируют алгоритм, тем выше вероятность найти уязвимость ДО того, как её найдет противник. 3. **Простота замены ключа** - если ключ скомпрометирован, его можно сменить за секунды. Если скомпрометирован секретный алгоритм, нужно менять всю систему. 4. **Доверие** - вы доверяете банковскому приложению, потому что AES проверен мировым сообществом, а не потому что банк говорит "поверьте, наш секретный шифр надежен".

Принцип Керкгоффса - это не просто теоретическая рекомендация. Это **обязательное требование** для всех современных криптографических стандартов. AES, RSA, SHA-256, TLS - все эти алгоритмы полностью открыты и опубликованы. Любой может изучить их исходный код, атаковать их и попытаться найти слабости. Именно это делает их надежными: если за 20+ лет мировое сообщество криптографов не нашло критических уязвимостей, значит алгоритм заслуживает доверия.

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

Основные термины криптографии

Чтобы говорить о криптографии на одном языке, нужно освоить базовую терминологию. Эти термины используются в каждом учебнике, каждой статье и каждом стандарте. **Plaintext** (открытый текст) - исходное сообщение, которое нужно защитить. **Ciphertext** (шифротекст) - результат шифрования, нечитаемая последовательность символов. **Encryption** (шифрование) - преобразование plaintext в ciphertext. **Decryption** (расшифровка) - обратное преобразование ciphertext в plaintext.

**Key** (ключ) - секретный параметр, который управляет шифрованием и расшифровкой. **Key space** (пространство ключей) - множество всех возможных ключей. Чем больше key space, тем сложнее взломать шифр перебором. **Cipher** (шифр) - алгоритм шифрования/расшифровки. **Cryptosystem** (криптосистема) - полная система: алгоритм + протокол управления ключами + правила использования.

**Cryptanalysis** (криптоанализ) - наука о взломе шифров. Криптоаналитик ищет способы получить plaintext из ciphertext без знания ключа. **Brute force** (полный перебор) - самый простой метод криптоанализа: попробовать все возможные ключи. Время перебора зависит от размера key space.

**Словарь терминов - краткая справка:** - **Plaintext** - открытый текст (до шифрования) - **Ciphertext** - шифротекст (после шифрования) - **Encryption** - процесс plaintext -> ciphertext - **Decryption** - процесс ciphertext -> plaintext - **Key** - секретный параметр шифрования - **Key space** - множество всех возможных ключей - **Cipher** - алгоритм шифрования - **Cryptosystem** - cipher + управление ключами + протоколы - **Cryptanalysis** - наука о взломе шифров - **Brute force** - перебор всех ключей в key space

Шифрование делает данные абсолютно безопасными - зашифровал и можно не беспокоиться

Шифрование защищает данные в рамках определённой модели угроз, но не от всех атак - слабый ключ, уязвимая реализация, социальная инженерия или квантовые компьютеры могут обойти криптографическую защиту

Шифрование - лишь один слой защиты. DES с 56-битным ключом был стандартом, пока его не взломали перебором. Heartbleed - ошибка в реализации OpenSSL, а не в алгоритме. Пользователя можно обманом заставить выдать пароль (социальная инженерия). Квантовые компьютеры угрожают RSA и другим алгоритмам на основе факторизации. Безопасность - это процесс, а не состояние.

Шифр использует ключ длиной 64 бита. Атакующий применяет brute force с производительностью 10 миллиардов (10^10) попыток в секунду. Какой порядок времени потребуется для полного перебора?

Ключевые идеи

  • **4000 лет эволюции:** от египетских иероглифов и спартанской скиталы через шифр Цезаря и взлом Энигмы к революции 1976 года (Диффи-Хеллман) - криптография прошла путь от простых подстановок до математически обоснованных систем
  • **Четыре цели (CIA + Non-repudiation):** конфиденциальность (Eve не прочитает), целостность (Mallory не изменит), аутентификация (Mallory не притворится Alice), неотказуемость (Alice не откажется от авторства) - все четыре нужны одновременно
  • **Принцип Керкгоффса:** безопасность зависит только от ключа, а не от секретности алгоритма - открытые алгоритмы (AES, RSA) надежнее закрытых, потому что проверены мировым сообществом экспертов
  • **Размер ключа решает всё:** 56-битный DES взломан за часы, 128-битный AES потребует больше времени, чем возраст Вселенной - и помните, что криптография, решившая судьбу Второй мировой, защищает каждое ваше сообщение прямо сейчас

Связанные темы

Введение в криптографию закладывает фундамент для понимания конкретных алгоритмов и протоколов - от математических основ до практических шифров:

  • Модулярная арифметика — Математический фундамент криптографии: операции по модулю лежат в основе шифра Цезаря, RSA, Диффи-Хеллмана и AES - без понимания арифметики остатков невозможно разобраться ни в одном серьёзном шифре
  • Подстановочные шифры — Исторические шифры, реализующие идею замены символов: от шифра Цезаря до полиалфавитного шифра Виженера, и метод их взлома - частотный анализ Аль-Кинди

Вопросы для размышления

  • Почему принцип Керкгоффса (1883) остается актуальным спустя 140 лет, несмотря на то что технологии изменились до неузнаваемости? Какие фундаментальные свойства информации делают этот принцип вечным?
  • Если шифрование не дает абсолютной безопасности, а лишь защищает в рамках модели угроз, то как определить, какой уровень защиты "достаточен" для конкретной задачи?
  • Гонка между создателями шифров и криптоаналитиками длится тысячи лет. Как вы думаете, может ли квантовый компьютер окончательно нарушить этот баланс, или криптографы снова адаптируются?

Связанные уроки

  • crypto-02-modular-arithmetic — Modular arithmetic is the mathematical core of RSA, Diffie-Hellman, and all modern public-key cryptography
  • prob-01-intro — Probability theory underpins Shannon entropy, randomness requirements, and cryptographic security proofs
  • alg-01-big-o — Cryptographic hardness is complexity theory applied in reverse: choose algorithms that are exponentially hard to break
  • sec-01 — Cryptography implements Confidentiality and Integrity from the CIA Triad
  • st-01-feedback-loops — Kerckhoffs principle works via open feedback loops between algorithm designers and cryptanalysts
  • ml-01
  • nt-01
Введение в криптографию

0

1

Войти