Віктор Турський про програмування / навігатор

концепції / asymmetric-encryption

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

За словами каналу, «одна концепція пари ключів, що пояснює половину сучасної безпеки»: пара публічного/приватного ключів, де — на відміну від єдиного спільного секрету в симетричній криптографії — приватний ключ ніколи не треба нікому передавати. У присвяченому відео (асиметричне шифрування і цифрові підписи) Віктор на робочих демо з Node.js crypto показує, як ця одна ідея лежить в основі HTTPS, SSH-ключів, PGP, підписування JWT, блокчейн-гаманців і навіть Google Authenticator. В алгебрі він точний: у RSA два ключі взаємозамінні за своїми математичними властивостями, тоді як на еліптичних кривих ролі публічного і приватного зафіксовані — EC дає обмін ключами Діффі—Геллмана і підписи, але не пряме шифрування в стилі RSA.

Ключовий практичний момент, який він наголошує: асиметрична криптографія приблизно в 100–1000 разів повільніша за симетричну, тому реальні системи використовують її лише для обміну симетричним ключем, а далі переходять на AES/ChaCha20 для самих даних — саме так працює TLS. І незмінне попередження, через цитату Брюса Шнаєра: ніколи не пишіть власну криптографію. У 3 речах, які роблять програміста кращим він доводить: навіть розуміння публічних/приватних ключів на рівні абетки — саме те, що щеплює розробників від класичних хибних уявлень «JWT зашифрований» і «Basic Auth безпечний».

Розібрано у відео

Повʼязане

Шифрування — симетрична половина картини (один спільний ключ, швидко). Цифрові підписи — друга можливість, яку відкриває пара ключів. Автентифікація за SSH-ключами, JWT, HTTPS і TLS, Холодні криптогаманці — застосування, які канал виводить з цієї однієї концепції. Хешування — підпис обчислюється над хешем документа.