Криптография с открытым ключом или асимметричное шифрование существует уже давно. Наиболее попялрному алгоритму RSA вот уже почти 40 лет, алгоритм DSA в два раза моложе, но сегодня я хочу погововрить о более молодом алгоритме — ECC (Elliptic Curve Cryptography).
Не буду вдаваться в подробности упомянутых алгоритмов шифрования, однако, не секрет, что разные алгоритмы обеспечивают разную степень защиты при одинаковой длине ключа. Национальный институт стандартов и технологий США (NIST), проанализировав различные алгоритмы шифрования привел рекомендаци по размеру ключей обеспечивающих безопасное шифрование данных до 2030 года (с большой степенью вероятности).
Date | Minimum of Strength | Symmetric Algorithms | Asymmetric |
| Elliptique Curve | Hash (A) | Hash (B) | |||||||
2011 — 2030 | 112 | 3TDEA | 2048 |
| 224 | SHA-224 SHA-256 SHA-384 SHA-512 | SHA-1 SHA-224 SHA-256 SHA-384 SHA-512 |
Как видно из таблицы, ECC обеспечивает сравнимую с RSA степень защиты данных при размере ключа в 9 раз меньше.
Для использованя эллиптической криптографии необходимы версии OpenSSH 5.7 или старше, а так же OpenSSL 0.9.8g или старше. Настройка не составляет труда:
sshd_config
Protocol 2
HostKey /etc/ssh/ssh_host_ecdsa_key
ssh_config
IdentityFile ~/.ssh/id_ecdsa
Создаем пару ключей для авторизации:
rascal@linux:~$ ssh-keygen -tecdsa -b 521
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/rascal/.ssh/id_ecdsa):
Created directory '/home/rascal/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/rascal/.ssh/id_ecdsa.
Your public key has been saved in /home/rascal/.ssh/id_ecdsa.pub.
The key fingerprint is:
05:d2:7b:6b:59:98:da:d1:c7:51:4a:53:74:3c:24:c1 rascal@linux
The key's randomart image is:
+--[ECDSA 521]---+
| ... .o=*=|
| ... Eo+o|
| ..+ ....|
| ..= o o |
| S+ = . |
| . = |
| . |
| |
| |
+-----------------+