Криптографія — це математика, що зберігає повідомлення в таємниці, доводить, хто їх надіслав, і дозволяє незнайомцям домовитися про спільний секрет на очах у зловмисника. Цей хаб об’єднує симуляції криптографії та розподілених систем сайту в одній точці входу — від 2000-річного шифру Цезаря до математики RSA та еліптичних кривих, що захищає сучасний інтернет, а також трюків хешування й консенсусу, що тримають блокчейн разом.
10 симуляцій з категорій Криптографія та Розподілені системи
П’ять симуляцій у порядку, який ми радимо для вивчення
Почніть з найстаріших шифрів, а потім подивіться, як частотний аналіз зламує їх за секунди — причина, чому класичні шифри підстановки вийшли з ужитку.
Побачте, як двоє незнайомців можуть домовитись про спільний секрет через канал, за яким стежить зловмисник, використовуючи аналогію змішування кольорів для проблеми дискретного логарифма.
Перейдіть до справжньої криптографії з відкритим ключем — згенеруйте реальну пару ключів з двох простих чисел і подивіться, як з нею працює шифрування й дешифрування.
Побачте сучасну, ефективнішу альтернативу RSA, що захищає більшість HTTPS-з’єднань і криптогаманців сьогодні.
Завершіть структурою хешування, яка дозволяє блокчейну довести включення транзакції в блок без завантаження всього ланцюга.
Теорія та математика за симуляціями вище
Від Цезаря до консенсусу — повна карта теми
Криптографія — це математика збереження таємниць, доведення особи та досягнення згоди за наявності супротивника, який бачить (а іноді й може підробити) кожне повідомлення. Це одна з найстаріших прикладних математичних дисциплін — Юлій Цезар, за переказами, зсував свої військові повідомлення на три літери — і одна з найважливіших: кожне HTTPS-з’єднання, кожна база паролів і кожна транзакція криптовалюти залежить від ідей, зібраних у цьому хабі. Кожна симуляція тут — справжня, робоча реалізація протоколу, який вона демонструє, а не ілюстрація, тож числа на екрані — це числа, які алгоритм насправді виробляє.
Симуляція шифрів Цезаря та Віженера — природна відправна точка: шифр підстановки зсуває або переставляє алфавіт, і століттями це вважалося безпечним. Вбудована атака частотним аналізом у симуляції показує, чому це не так: кожна мова має характерний розподіл частоти літер, і зіставлення частот шифротексту з частотами англійської мови розкриває ключ за секунди. Ця вразливість спонукала до пошуку шифрів, безпека яких не залежить від збереження в таємниці *методу*, лише *ключа* — принцип Керкгоффса, що лежить в основі кожного сучасного алгоритму на цій сторінці.
Наступний стрибок — криптографія з відкритим ключем, яка розв’язує проблему, недоступну шифрам підстановки: як двоє людей, що ніколи не зустрічалися, можуть домовитися про секретний ключ через канал, за яким активно стежить зловмисник? Обмін ключами Діффі-Хеллмана відповідає на це за допомогою проблеми дискретного логарифма — легко піднести число до степеня за модулем простого числа, але важко обернути операцію й відновити показник степеня. RSA використовує пов’язану, але іншу складну проблему — факторизацію добутку двох великих простих чисел — і будує на ній повну пару відкритого/закритого ключа: будь-хто може зашифрувати відкритим ключем, але лише власник закритого ключа (отриманого з початкових простих чисел) може розшифрувати. Криптографія на еліптичних кривих досягає тієї ж мети іншою складною проблемою — дискретним логарифмом на еліптичній кривій — що забезпечує еквівалентну безпеку значно меншими ключами, тому вона тепер захищає більшість HTTPS-з’єднань і практично всі криптогаманці.
Друга половина хабу переходить від збереження таємниць до забезпечення чесності записів. Криптографічна хеш-функція, як у симуляції хеш-функцій, бере будь-який вхід і створює відбиток фіксованого розміру з двома критичними властивостями: зміна одного вхідного біта змінює приблизно половину вихідних бітів (лавинний ефект), а знаходження двох різних входів з однаковим виходом має бути обчислювально нездійсненним, хоча парадокс днів народження робить колізії ймовірнішими, ніж підказує інтуїція. Симуляція дерева Меркла показує, що можна побудувати, коли хешування дешеве й надійне: хешуйте блоки даних попарно до єдиного кореневого хешу, і ви можете довести включення будь-якого блоку до множини лише кількома хешами, а не всім набором даних — структура за ефективністю кожного блокчейну.
Консенсус блокчейну поєднує ключі й хеші в систему, що дозволяє взаємно недовірливим сторонам погодити спільну історію без центрального органу. Симуляція консенсусу блокчейну показує майнінг Proof-of-Work у дії: майнери змагаються знайти хеш нижче цілі складності, найдовший дійсний ланцюг перемагає при форках, а шанси симульованого атакувальника з 51% на переписування історії показані явно, ілюструючи, чому цей поріг важливий. Симуляції розподіленого консенсусу, консистентного хешування та фільтра Блума розширюють картину на розподілені системи загалом: Raft і візантійська відмовостійкість розв’язують проблему узгодження, навіть коли деякі учасники відмовляють чи брешуть, консистентне хешування дозволяє розподіленому кешу чи базі даних масштабуватися без перетасування кожного ключа при приєднанні чи виході сервера, а фільтр Блума відповідає на питання належності до множини в масштабі без хибнонегативних результатів і з регульованою часткою хибнопозитивних.
Разом ці десять симуляцій простежують повну дугу криптографії — від 2000-річного шифру підстановки, який частотний аналіз зламує за секунди, через математику відкритого ключа, що уможливлює сучасний інтернет, до механізмів хешування й консенсусу, що дозволяють блокчейну працювати без банку посередині. Кожен протокол тут виконується крок за кроком точно за специфікацією, тож ключі, хеші й результати консенсусу, які ви бачите, — це справжні виходи алгоритмів, а не спрощені замінники — корисно, готуєтесь ви до іспиту з безпеки, будуєте інтуїцію перед читанням RFC, чи просто цікавитеся, як HTTPS насправді зберігає таємницю.
Поширені запитання про криптографію та консенсус блокчейну
Кожна симуляція в цьому хабі працює повністю у вашому браузері без встановлення. Використовуйте кожну інтерактивну модель, щоб експериментувати з шифрами, ключами, хешами й протоколами консенсусу, і вивчайте криптографію онлайн у власному темпі, змінюючи параметри й спостерігаючи математику в дії.