Алгоритм ассиметричного шифрования?

Для p2p-приложения необходимо сделать шифрование сообщений на основе алгоритма с открытым ключом. Сообщения примерно от 1 байта до 512 кб. Важные моменты:

1) Маленькая длина ключа при хорошей криптостойкости.

2) Хорошая производительность для запуска на современных телефонах/планшетах и др. устройствах.
  • Вопрос задан
  • 5318 просмотров
Решения вопроса 1
@MikhailEdoshin
Алгоритмов с открытым ключом не так и много, поэтому, собственно, я бы взял RSA. Для маленьких сообщений (меньше длины RSA-ключа) можно шифровать непосредственно им. Для больших обычно шифруют симметричным алгоритмом со случайным ключом, а ключ затем шифруют RSA. Единственное, что минимальное сообщение будет равно длине RSA-ключа, а они у него довольно длинные — 512 бит считается не очень безопасным, коммерческие ключи начинаются от 1024 бит.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Ocelot
@Ocelot
1) Для каждого сеанса обмена сообщениями генерируется случайный сеансовый ключ.
2) Сеансовый ключ передается в зашифрованном виде при помощи RSA 512/1024/2048
3) В дальнейшем сообщения шифруются симметричным алгоритмом (AES 128/256, Twofish, Serpent, IDEA) при помощи сеансового ключа.
Плюсы:
+ размер ключа для симетричных алгоритмов меньше при сравнимой криптостойкости
+ размер блока (а значит, минимальный размер сообщения) составляет 128-256 бит
+ симметричные алгоритмы работают гораздо быстрее
Минусы:
— нужно предварительно генерировать и передавать сеансовые ключи
— нужно следить за сроком действия и актуальностью сеансовых ключей
Ответ написан
Комментировать
zed91
@zed91
1. Две части пункта 1 не согласуются между собой
2. Пункт 2 не согласуется с пунктом 1.

P.S. RSA
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы