Ответ
Асимметричная криптография (или криптография с открытым ключом) — это метод шифрования, где используются два разных ключа: открытый (public key) для шифрования и закрытый (private key) для расшифровки.
Пример с кодом (Node.js, crypto
):
const { generateKeyPairSync, publicEncrypt, privateDecrypt } = require('crypto');
// Генерация пары ключей
const { publicKey, privateKey } = generateKeyPairSync('rsa', {
modulusLength: 2048,
});
// Шифрование открытым ключом
const message = 'Секретное сообщение';
const encrypted = publicEncrypt(publicKey, Buffer.from(message));
// Расшифровка закрытым ключом
const decrypted = privateDecrypt(privateKey, encrypted);
console.log(decrypted.toString()); // 'Секретное сообщение'
Применение:
- SSL/TLS (HTTPS)
- Цифровые подписи
- Криптовалюты (например, Bitcoin)
Плюсы:
- Безопасный обмен ключами не требуется
- Возможность цифровых подписей
Минусы:
- Медленнее симметричного шифрования
- Требует больше вычислительных ресурсов