● Интерактивная лаборатория

Изучай криптографию
руками, а не по учебнику

Шифруй записки, как настоящий шпион, придумывай надёжные пароли и собирай значки. Всё прямо в браузере!

Шифруй и взламывай классические шифры, считай хеши, проверяй пароли и решай задачи — всё вживую в браузере.

От шифра Цезаря до SHA-256 и энтропии паролей: перебор ключей, частотный анализ, лавинный эффект и соль — с реальными вычислениями в браузере.

🔒 Ничего не отправляется на сервер: все вычисления и прогресс хранятся только в этом браузере.

1уровень
Новичок
Ученик · 8–9 класс
0 / 40 XP до следующего уровня
0XP всего
0🔥 дней подряд
0🏅 значков
Цель дня0 / 30 XP

Теория

CIA-триада, симметрия и асимметрия, хеши, атаки. Объяснения подстраиваются под твой класс.

Шифры

Цезарь, Виженер, Атбаш, XOR, Base64 + взлом перебором и частотный анализ.

Хеширование

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

Пароли

Оценка надёжности, энтропия и время взлома, криптостойкий генератор.

Задачи

По 7–9 задач на каждый уровень, с проверкой, подсказками и очками опыта.

Квиз

Отдельный набор вопросов для 5–7, 8–9 и 10–11 классов, с объяснениями.

Основы информационной безопасности

Главные понятия, на которых держится вся криптография.

CIA-триада — фундамент ИБ

Представь дневник. Его должен читать только ты (конфиденциальность), никто не должен вырвать или переписать страницы (целостность), и он должен быть под рукой, когда нужен (доступность).

Любая мера защиты — пароль, шифрование, резервная копия — защищает хотя бы одно из трёх свойств информации.

Модель CIA лежит в основе стандартов (ISO/IEC 27001, ГОСТ Р ИСО/МЭК 27001). Часто её расширяют: подлинность (authenticity) и неотказуемость (non-repudiation), которые обеспечивает цифровая подпись.

🔒

Конфиденциальность

Confidentiality — данные доступны только тем, кому разрешено.

✅

Целостность

Integrity — данные нельзя незаметно изменить.

⚡

Доступность

Availability — данные доступны, когда они нужны.

🧒 Пять правил цифровой безопасности

  1. Пароль — как зубная щётка: не даём никому и меняем, если кто-то узнал.
  2. Коды из SMS никому не называем — даже если «звонит банк» или «пишет друг».
  3. «Ты выиграл приз!» — почти всегда обман. Сначала спроси взрослых.
  4. Замок 🔒 в адресной строке — значит, связь с сайтом зашифрована. Но это не значит, что сайт честный: у мошенников тоже бывает замок.
  5. Обновляй приложения — обновления закрывают дыры, через которые лезут злоумышленники.

Симметричное шифрование

Один и тот же ключ используется и для шифрования, и для расшифровки.

Как замок с одним ключом на двоих: у тебя и у друга одинаковые ключи от одного сундучка.

  • AES — современный стандарт, ключ 128/192/256 бит
  • ChaCha20 — быстрый потоковый шифр (в телефонах)
  • DES — устарел, ключ 56 бит перебирается
  • ГОСТ 34.12-2018 — российские «Кузнечик» и «Магма»

Проблема: как безопасно передать ключ второй стороне?

Асимметричное шифрование

Пара ключей: открытый (им шифруют) и закрытый (им расшифровывают). Для цифровой подписи — наоборот: подписывают закрытым, проверяют открытым.

Как почтовый ящик: бросить письмо в щель может каждый (открытый ключ), а достать — только хозяин с ключиком (закрытый ключ).

  • RSA — стойкость основана на сложности разложения чисел на множители
  • ECC — эллиптические кривые: та же стойкость при коротких ключах
  • Диффи–Хеллман — выработка общего ключа по открытому каналу

Решает проблему передачи ключа, но работает медленнее симметричного.

🔬 Как работает HTTPS (TLS 1.3) — гибридная схема

  1. Браузер и сервер договариваются о шифрах и обмениваются открытыми параметрами ECDHE (Диффи–Хеллман на эллиптических кривых).
  2. Сервер доказывает подлинность сертификатом и цифровой подписью (закрытым ключом).
  3. Из общего секрета обе стороны выводят симметричный ключ сеанса.
  4. Все данные дальше шифруются быстрым AES-GCM или ChaCha20 с проверкой целостности.

Принцип Керкгоффса: стойкость системы должна зависеть только от секретности ключа, а не от секретности алгоритма. Поэтому AES и SHA-256 опубликованы открыто.

Хеширование

Одностороннее преобразование: из любых данных получается «отпечаток» фиксированной длины. Вычислить исходные данные по хешу практически невозможно, но короткие и популярные входы (например, слабые пароли) угадывают перебором — посчитав хеши кандидатов и сравнив.

Как мясорубка: из мяса фарш сделать легко, а обратно мясо — никак. Зато один и тот же кусок всегда даёт одинаковый фарш.

Требования к криптографическому хешу: стойкость к нахождению прообраза, второго прообраза и коллизий. По «парадоксу дней рождения» коллизию для n-битного хеша ищут примерно за 2n/2 операций — для SHA-256 это 2128.

  • SHA-256 — современный стандарт (биткоин, сертификаты)
  • bcrypt / Argon2 — специально медленные, для паролей
  • MD5 / SHA-1 — найдены коллизии, не использовать

Типичные атаки

  • Brute-force — перебор всех возможных ключей или паролей
  • Атака по словарю — перебор популярных паролей и слов
  • Man-in-the-Middle (MitM) — перехват и подмена трафика
  • Фишинг — социальная инженерия: человека обманом заставляют отдать данные
  • SQL-инъекция — внедрение кода в запросы к базе данных
  • XSS — внедрение скриптов в веб-страницы (этот сайт экранирует все данные из файлов учеников)

Классические шифры

Шифруй и расшифровывай вживую. Работают русский и латинский алфавиты. За первое использование каждого шифра — +10 XP.

Шифр Цезаря моноалфавитный

Каждая буква сдвигается на одно и то же число позиций в алфавите.

Сдвиг 1: А→Б, Б→В, … Я→А. Так шифровал записки сам Юлий Цезарь больше 2000 лет назад!

В русском алфавите 33 буквы, значит, разных ключей всего 32. Компьютер переберёт их за долю секунды — попробуй кнопку «Взломать перебором».

Шифр не меняет частоты букв: самые частые буквы русского текста — О (≈11 %), Е и А. Частотный анализ (аль-Кинди, IX век) сравнивает частоты шифротекста с языком и находит ключ без перебора.

—

Шифр Виженера полиалфавитный

Ключ — слово. Каждая буква текста сдвигается на номер соответствующей буквы ключа (А=0, Б=1, …).

Это как Цезарь, только сдвиг всё время меняется по секретному слову. Угадать гораздо труднее!

Одна и та же буква текста превращается в разные буквы шифра — поэтому простой частотный анализ не работает. 300 лет шифр называли «неразгаданным».

Взломан методом Касиски (1863): повторы в шифротексте выдают длину ключа, после чего задача распадается на несколько шифров Цезаря. Если ключ случаен и длиной с сообщение — получается абсолютно стойкий «одноразовый блокнот» (Шеннон, 1949).

—

Атбаш

Алфавит «переворачивается»: А↔Я, Б↔Ю, В↔Э… Ключа нет — применив шифр дважды, получишь исходный текст.

Зеркальный шифр: первая буква меняется с последней, вторая — с предпоследней.

—

Base64 кодирование, не шифр!

Превращает любые байты в строку из 64 «безопасных» символов. Ключа нет — раскодировать может любой.

Каждые 3 байта (24 бита) записываются 4 символами по 6 бит, поэтому данные растут на ≈33 %. Знак «=» — дополнение до кратности трём.

—

XOR-шифрование

К каждому байту текста применяется «исключающее ИЛИ» с байтом ключа. Повторный XOR с тем же ключом возвращает исходный текст: (A ⊕ K) ⊕ K = A.

XOR — как выключатель: нажал один раз — свет включился, нажал ещё раз тем же пальцем — выключился. Ключ «переключает» биты туда и обратно.

Правило XOR для битов: одинаковые → 0, разные → 1. Например, 5 ⊕ 3: 101 ⊕ 011 = 110 = 6.

XOR — сердце потоковых шифров (ChaCha20) и режима CTR у AES: генерируется псевдослучайная гамма, которая XOR-ится с данными. Нельзя дважды использовать одну гамму: C₁ ⊕ C₂ = P₁ ⊕ P₂.

—

Хеширование

Односторонний «отпечаток» данных: 256 бит, записанные 64 шестнадцатеричными символами.

SHA-256

Хеш считается встроенной криптографией браузера (Web Crypto API), а не самодельным кодом. Хеширование — это не шифрование: ключа нет, и «расшифровать» хеш нельзя.

Хеш — как отпечаток пальца у текста. Поменяй одну букву — и отпечаток станет совсем другим.

—

Лавинный эффект

Введи два почти одинаковых текста и посмотри, сколько бит хеша изменилось. В идеале — около половины (128 из 256).

—
—

Радужные таблицы и соль

Хеши паролей без соли одинаковы у всех, кто выбрал одинаковый пароль, — их находят по заранее посчитанным таблицам. Уникальная случайная «соль» делает такие таблицы бесполезными. Соль не секретна: её хранят рядом с хешем. От перебора одного конкретного пароля соль не спасает — для этого нужны медленные функции (bcrypt, Argon2) и длинный пароль.

Интересно: ответы на задачи этого сайта тоже хранятся не открытым текстом, а как SHA-256 с приставкой «cryptolab:номер задачи». Сайт проверяет ответ, сравнивая хеши, — так же сервер проверяет твой пароль. Честно: приставка известна, а вариантов ответа мало, поэтому перебор их найдёт. Это защита от подглядывания в код, а не от взлома.

—

Надёжность паролей

Проверь пароль и собери действительно стойкий. Пароль никуда не отправляется.

Проверка пароля

⚠️ Не вводи свой настоящий пароль — придумай похожий. Проверка идёт только в браузере, пароль нигде не сохраняется.

Начни вводить — оценка появится сразу.

Генератор

—

Используется crypto.getRandomValues — криптостойкий генератор случайных чисел, а не обычный Math.random.

Советы

  • ✅ Минимум 12 символов, лучше 16+ или фраза из 4–5 случайных слов
  • ✅ Уникальный пароль для каждого сервиса
  • ✅ Менеджер паролей (Bitwarden, KeePassXC)
  • ✅ Двухфакторная аутентификация (2FA)
  • ❌ Личные данные: даты, имена, клички питомцев
  • ❌ Слова из словаря и «клавиатурные» qwerty / йцукен
  • ❌ Один пароль везде
  • ❌ Пароль в заметках телефона или на стикере

Задачи

Реши задачи своего уровня и получи XP. Подсказка снижает награду вдвое. Инструменты — на вкладках «Шифры», «Хеши», «Пароли».

Решено 0 из 00 XP

Проверка знаний

Вопросы с объяснениями. Отвечай мышкой или клавишами 1–4, дальше — Enter.

Вопрос 1 из 0Верно: 0

Загружаю вопрос…

Твои результаты

За каждый верный ответ +2 XP, за первый результат 100 % — ещё +30 XP и значок «Отличник».

Твой прогресс

Опыт, уровни, серия дней и значки — как в Duolingo. Заходи каждый день, чтобы не потерять серию 🔥

1уровень
Новичок
0XP всего
0🔥 серия (рекорд 0)
0🧩 задач решено
0📅 дней активности

XP за последние 7 дней

Цель дня0 / 30 XP

Значки 0 из 0

Лестница уровней

УровеньЗваниеНужно XP

Профиль

Режим учителя

Статистика ученика на этом устройстве и сводная таблица класса из файлов результатов.

ℹ️

Демо-режим без сервера. Сайт — один HTML-файл, у него нет базы данных и аккаунтов. Прогресс хранится только в браузере ученика (localStorage). Чтобы учитель увидел результаты, ученик нажимает «Скачать результат», а учитель загружает файлы всех учеников ниже. Для автоматического сбора нужен сервер — это следующий шаг проекта.

👤 Ученик на этом устройстве

Задачи по уровням

УровеньРешеноПопытокПодсказокXP

Квиз

УровеньЛучшийПоследнийПопыток

Последние действия

КогдаДействиеXP

В файл записывается контрольная сумма SHA-256: при загрузке видно, если файл повредили или правили «на глаз». Это контроль целостности, а не защита от подделки: тот, кто знает формат, может пересчитать сумму. Настоящую защиту дала бы цифровая подпись на сервере.

👥 Класс

Перетащи сюда файлы .json учеников или выбери их