🔐

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

Криптографія — це математика, що зберігає повідомлення в таємниці, доводить, хто їх надіслав, і дозволяє незнайомцям домовитися про спільний секрет на очах у зловмисника. Цей хаб об’єднує симуляції криптографії та розподілених систем сайту в одній точці входу — від 2000-річного шифру Цезаря до математики RSA та еліптичних кривих, що захищає сучасний інтернет, а також трюків хешування й консенсусу, що тримають блокчейн разом.

10+ симуляцій Canvas 2D · Покрокові інтерактивні протоколи

Симуляції цієї теми

10 симуляцій з категорій Криптографія та Розподілені системи

🏛️ ★☆☆☆ Легко
Шифри Цезаря та Віженера
Шифруйте й дешифруйте повідомлення класичними шифрами підстановки, а потім спостерігайте, як частотний аналіз автоматично знаходить найімовірніший ключ.
Cryptography
🤝 ★★☆☆ Середньо
Обмін ключами Діффі-Хеллмана
Дві сторони встановлюють спільний секрет через незахищений канал — аналогія зі змішуванням кольорів робить проблему дискретного логарифма інтуїтивною.
Cryptography
🔑 ★★☆☆ Середньо
RSA — обмін ключами
Пройдіть RSA крок за кроком: оберіть два прості числа, обчисліть n і φ(n), знайдіть e й d, а потім зашифруйте й розшифруйте повідомлення парою ключів.
Cryptography
📈 ★★★☆ Складно
Криптографія на еліптичних кривих
Візуалізуйте додавання точок на еліптичній кривій над дійсним полем і побачте, як скалярне множення генерує пару ключів, яку важко обернути.
Cryptography
#️⃣ ★★★☆ Складно
Хеш-функції — лавинний ефект і колізії
Переверніть один вхідний біт і побачте, як змінюється приблизно половина вихідних бітів — лавинний ефект — та як парадокс днів народження робить колізії ймовірнішими, ніж здається.
Cryptography
🌳 ★★★☆ Складно
Дерево Меркла — хеш-дерева й докази
Побудуйте дерево Меркла, хешуючи блоки даних попарно до єдиного кореня, змініть листок і побачте, як зміниться корінь, та перевірте блок логарифмічним доказом.
Cryptography
⛓️ ★★★★ Експертно
Консенсус блокчейну
Майнінг Proof-of-Work і консенсус найдовшого ланцюга: майнери змагаються подолати ціль складності, форки розв’язуються, а ймовірність успіху атаки 51% показана наживо.
Cryptography
💻 ★★★☆ Складно
Розподілений консенсус
Досліджуйте алгоритм консенсусу Raft, теорему CAP і візантійську відмовостійкість — проблеми узгодження, що лежать в основі захищених розподілених систем.
Distributed Systems
💍 ★★★☆ Складно
Консистентне хешування — кільце хешів
Відображайте ключі й сервери на кільце хешів так, щоб додавання чи видалення вузла перемапило лише малу частку ключів — техніка розподілених кешів і DHT.
Distributed Systems
🌸 ★★★☆ Складно
Фільтр Блума — ймовірнісна перевірка належності
Фільтр Блума перевіряє належність до множини за допомогою k хеш-функцій над бітовим масивом — без хибнонегативних, з регульованими хибнопозитивними результатами.
Distributed Systems

Рекомендований шлях навчання

П’ять симуляцій у порядку, який ми радимо для вивчення

  1. 1
    1. Шифри Цезаря та Віженера

    Почніть з найстаріших шифрів, а потім подивіться, як частотний аналіз зламує їх за секунди — причина, чому класичні шифри підстановки вийшли з ужитку.

  2. 2
    2. Обмін ключами Діффі-Хеллмана

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

  3. 3
    3. RSA — обмін ключами

    Перейдіть до справжньої криптографії з відкритим ключем — згенеруйте реальну пару ключів з двох простих чисел і подивіться, як з нею працює шифрування й дешифрування.

  4. 4
    4. Криптографія на еліптичних кривих

    Побачте сучасну, ефективнішу альтернативу RSA, що захищає більшість HTTPS-з’єднань і криптогаманців сьогодні.

  5. 5
    5. Дерево Меркла — хеш-дерева й докази

    Завершіть структурою хешування, яка дозволяє блокчейну довести включення транзакції в блок без завантаження всього ланцюга.

Пов’язані статті

Теорія та математика за симуляціями вище

Як працює шифрування — від шифру Цезаря до RSA
Подорож від шифрів підстановки через симетричне шифрування до математики відкритого ключа RSA.
RSA-шифрування: математика великих простих чисел
Функція Ейлера, модулярне піднесення до степеня, і чому факторизація добутку двох великих простих чисел обчислювально складна.
Як працює обмін ключами Діффі-Хеллмана — пояснення HTTPS
Як дві сторони отримують спільний секрет через незахищений канал, і як це вписується в кожне рукостискання HTTPS.
Блокчейн і Bitcoin: математика
Підписи на еліптичних кривих, хеш-головоломки й дерева Меркла, що роблять блокчейн стійким до підробки.
Як працює блокчейн — від SHA-256 до Bitcoin
Покроковий розбір хешування, майнінгу й консенсусу в блокчейні на кшталт Bitcoin.
Консистентне хешування — розподілена балансування навантаження з віртуальними вузлами
Як консистентне хешування дозволяє розподіленим кешам і базам даних масштабуватися без перетасування кожного ключа при кожній зміні сервера.

Про тему Криптографія

Від Цезаря до консенсусу — повна карта теми

Криптографія — це математика збереження таємниць, доведення особи та досягнення згоди за наявності супротивника, який бачить (а іноді й може підробити) кожне повідомлення. Це одна з найстаріших прикладних математичних дисциплін — Юлій Цезар, за переказами, зсував свої військові повідомлення на три літери — і одна з найважливіших: кожне HTTPS-з’єднання, кожна база паролів і кожна транзакція криптовалюти залежить від ідей, зібраних у цьому хабі. Кожна симуляція тут — справжня, робоча реалізація протоколу, який вона демонструє, а не ілюстрація, тож числа на екрані — це числа, які алгоритм насправді виробляє.

Симуляція шифрів Цезаря та Віженера — природна відправна точка: шифр підстановки зсуває або переставляє алфавіт, і століттями це вважалося безпечним. Вбудована атака частотним аналізом у симуляції показує, чому це не так: кожна мова має характерний розподіл частоти літер, і зіставлення частот шифротексту з частотами англійської мови розкриває ключ за секунди. Ця вразливість спонукала до пошуку шифрів, безпека яких не залежить від збереження в таємниці *методу*, лише *ключа* — принцип Керкгоффса, що лежить в основі кожного сучасного алгоритму на цій сторінці.

Наступний стрибок — криптографія з відкритим ключем, яка розв’язує проблему, недоступну шифрам підстановки: як двоє людей, що ніколи не зустрічалися, можуть домовитися про секретний ключ через канал, за яким активно стежить зловмисник? Обмін ключами Діффі-Хеллмана відповідає на це за допомогою проблеми дискретного логарифма — легко піднести число до степеня за модулем простого числа, але важко обернути операцію й відновити показник степеня. RSA використовує пов’язану, але іншу складну проблему — факторизацію добутку двох великих простих чисел — і будує на ній повну пару відкритого/закритого ключа: будь-хто може зашифрувати відкритим ключем, але лише власник закритого ключа (отриманого з початкових простих чисел) може розшифрувати. Криптографія на еліптичних кривих досягає тієї ж мети іншою складною проблемою — дискретним логарифмом на еліптичній кривій — що забезпечує еквівалентну безпеку значно меншими ключами, тому вона тепер захищає більшість HTTPS-з’єднань і практично всі криптогаманці.

Друга половина хабу переходить від збереження таємниць до забезпечення чесності записів. Криптографічна хеш-функція, як у симуляції хеш-функцій, бере будь-який вхід і створює відбиток фіксованого розміру з двома критичними властивостями: зміна одного вхідного біта змінює приблизно половину вихідних бітів (лавинний ефект), а знаходження двох різних входів з однаковим виходом має бути обчислювально нездійсненним, хоча парадокс днів народження робить колізії ймовірнішими, ніж підказує інтуїція. Симуляція дерева Меркла показує, що можна побудувати, коли хешування дешеве й надійне: хешуйте блоки даних попарно до єдиного кореневого хешу, і ви можете довести включення будь-якого блоку до множини лише кількома хешами, а не всім набором даних — структура за ефективністю кожного блокчейну.

Консенсус блокчейну поєднує ключі й хеші в систему, що дозволяє взаємно недовірливим сторонам погодити спільну історію без центрального органу. Симуляція консенсусу блокчейну показує майнінг Proof-of-Work у дії: майнери змагаються знайти хеш нижче цілі складності, найдовший дійсний ланцюг перемагає при форках, а шанси симульованого атакувальника з 51% на переписування історії показані явно, ілюструючи, чому цей поріг важливий. Симуляції розподіленого консенсусу, консистентного хешування та фільтра Блума розширюють картину на розподілені системи загалом: Raft і візантійська відмовостійкість розв’язують проблему узгодження, навіть коли деякі учасники відмовляють чи брешуть, консистентне хешування дозволяє розподіленому кешу чи базі даних масштабуватися без перетасування кожного ключа при приєднанні чи виході сервера, а фільтр Блума відповідає на питання належності до множини в масштабі без хибнонегативних результатів і з регульованою часткою хибнопозитивних.

Разом ці десять симуляцій простежують повну дугу криптографії — від 2000-річного шифру підстановки, який частотний аналіз зламує за секунди, через математику відкритого ключа, що уможливлює сучасний інтернет, до механізмів хешування й консенсусу, що дозволяють блокчейну працювати без банку посередині. Кожен протокол тут виконується крок за кроком точно за специфікацією, тож ключі, хеші й результати консенсусу, які ви бачите, — це справжні виходи алгоритмів, а не спрощені замінники — корисно, готуєтесь ви до іспиту з безпеки, будуєте інтуїцію перед читанням RFC, чи просто цікавитеся, як HTTPS насправді зберігає таємницю.

Часті запитання

Поширені запитання про криптографію та консенсус блокчейну

Чому RSA вважається безпечним?
Безпека RSA спирається на те, що перемножити два великі прості числа швидко, але факторизувати їхній добуток назад на початкові прості числа обчислювально нездійсненно класичними комп’ютерами для достатньо великих ключів (2048 біт і більше на практиці). Наразі не існує відомого ефективного класичного алгоритму факторизації великих чисел.
У чому різниця між Діффі-Хеллманом і RSA?
Діффі-Хеллман дозволяє двом сторонам отримати спільний секретний ключ через незахищений канал за допомогою проблеми дискретного логарифма; сам по собі він не шифрує повідомлення. RSA — це повна схема шифрування й підпису з відкритим ключем, заснована на складності факторизації, тож вона може шифрувати дані напряму або підписувати їх, а не лише встановлювати спільний ключ.
Як Proof-of-Work насправді захищає блокчейн?
Proof-of-Work вимагає від майнерів витратити реальні обчислювальні зусилля на пошук хешу нижче порогової цілі, перш ніж їхній блок буде прийнято. Оскільки найдовший дійсний ланцюг перемагає при форку, переписування історії вимагає перемайнити кожен блок після точки, яку ви хочете змінити, швидше за решту мережі разом узятої — основа порогу атаки 51%.
Що робить хеш-функцію "криптографічною"?
Криптографічна хеш-функція має бути односторонньою (нездійсненно відновити вхід з виходу), стійкою до колізій (нездійсненно знайти два входи з однаковим виходом) та демонструвати лавинний ефект, коли зміна одного біта входу перевертає приблизно половину вихідних бітів, тож схожі входи ніколи не дають схожих на вигляд хешів.

Інші тематичні хаби

Кожна симуляція в цьому хабі працює повністю у вашому браузері без встановлення. Використовуйте кожну інтерактивну модель, щоб експериментувати з шифрами, ключами, хешами й протоколами консенсусу, і вивчайте криптографію онлайн у власному темпі, змінюючи параметри й спостерігаючи математику в дії.