🍋
Menu
Security

RSA

RSA (Rivest-Shamir-Adleman)

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

Техническая деталь

RSA генерирует пару ключей: открытый ключ (n, e) для шифрования и закрытый ключ (n, d) для расшифровки, где n — произведение двух больших простых чисел. Шифрование вычисляет c = m^e mod n, расшифровка — m = c^d mod n. Минимально рекомендуемая длина ключа — 2 048 бит; 4 096 бит обеспечивают больший запас безопасности. RSA медленнее симметричных алгоритмов, поэтому на практике шифрует случайный сессионный ключ AES, а не данные целиком (гибридное шифрование). RSA-OAEP (Optimal Asymmetric Encryption Padding) предотвращает атаки на основе выбранного шифротекста. RSA-PSS — рекомендуемая схема подписи.

Пример

```javascript
// AES-256-GCM encryption (Web Crypto API)
const key = await crypto.subtle.generateKey(
  { name: 'AES-GCM', length: 256 }, true, ['encrypt', 'decrypt']
);
const iv = crypto.getRandomValues(new Uint8Array(12));
const ciphertext = await crypto.subtle.encrypt(
  { name: 'AES-GCM', iv },
  key,
  new TextEncoder().encode('secret message')
);
```

Связанные инструменты

Связанные термины