концепції / encryption
Шифрування
Одна третина трійці, яку канал свідомо викладає разом — кодування, шифрування, хешування — і яку розробники постійно плутають. Визначальна властивість, за відео про різницю між хешуванням, кодуванням і шифруванням: без ключа інші не можуть зрозуміти дані. Симетричне шифрування використовує один ключ в обидва боки (AES, ChaCha20); асиметричне — пару публічний/приватний. Віктор навіть формулює шифрування як, технічно, різновид кодування плюс властивість безпеки — саме тому ця різниця й важлива. Його ключовий меседж: більшість того, що розробники недбало називають «зашифрованим» — JWT, Base64 — не зашифровано взагалі.
Практичне відео (асиметричне шифрування і цифрові підписи) глибоко занурюється в симетричний бік: демо AES-256-CBC з вектором ініціалізації, знаменита картинка з ECB-пінгвіном, яка показує, чому однакові вхідні блоки з однаковим виходом зливають структуру даних, XOR-зчеплення блоків у CBC як ліки, і потокові шифри на кшталт гуглівського ChaCha20, пояснені як XOR із довгим псевдовипадковим потоком ключа. Оскільки симетричне шифрування швидке, а асиметричне у 100–1000 разів повільніше, реальні протоколи шифрують дані симетрично, а асиметричне шифрування використовують лише щоб домовитися про ключ.
Розібрано у відео
- Хешування, кодування, шифрування — у чому різниця?
визначальна властивість (немає ключа — немає розуміння), симетричне (AES, ChaCha20) vs асиметричне, і чому JWT та Base64 — не шифрування
- Що захищає твої дані й гроші від хакерів? Асиметричне шифрування та цифровий підпис
симетричне vs асиметричне вглиб: AES-256-CBC з IV, ECB-пінгвін, зчеплення CBC, ChaCha20 як XOR із потоком ключа
- 3 речі, які роблять програміста кращим
протиставлення кодуванню через бойову історію з Base64/Basic Auth; розуміння симетричного vs асиметричного веде до кращих рішень
Повʼязане
Кодування — представлення, а не секретність; те, з чим шифрування плутають найчастіше. Хешування — одностороннє, без ключа, без розшифрування — третій член трійці. Асиметричне шифрування — схема з двома ключами і чому вона лише запускає симетричне шифрування. HTTPS і TLS — шифрування в дорозі та його межі у ворожій мережі. Base64 — виглядає як шифр, а насправді відкритий текст.