2013-06-15 1 views
0

Предположим, я хочу передать данные с клиента (браузер, js + ajax) на сервер (PHP), используя RSA-шифрование. Это хорошая идея определить одну большую пару ключей RSA для сервера и использовать ее каждый раз?Используя одни и те же ключи RSA для каждой передачи?

везу этот вопрос, потому что генератор ключей phpseclib «s очень медленно приемлемых (1024+) основных размеров (проверено на Core2Duo 3GHz 3GB RAM):

128-битным - 86ms,
256bit - 528ms ,
Среднее значение 512 бит - 2240 мс.

Так генерации ключей для каждой передачи неосуществим (или я с видом что-то?)

(Нет необходимости рекомендовать SSH, спасибо)

+0

Я думаю, что вы не понимаете всю теорию и фокусируетесь на производительности. –

+0

@GregS Возможно, но я все равно хотел бы узнать ответ. – GeriBoss

ответ

1

Половина причины 1024+ ключевых размеров считается приемлемой, потому что они не необходимо восстановить.

В SSH у вас есть ключ хоста сервера, который генерируется только один раз - когда установлен SSH-сервер. Затем у вас есть (необязательно) ключи, которые клиент использует для входа в систему, и они не восстанавливаются каждый раз - только один раз и все.

+0

Я вижу, спасибо! – GeriBoss

0

Его общая же создать открытый ключ пары/частный для каждой стороны один раз и использовать их для проверки сверстников, а также их использования для передачи секретов.

Использование только rsa является необычным, поэтому обычно создается симметричный шифра (например, AES) и используется rsa для проверки и передачи случайного ключа, прежде чем делать остальное в этом шифере. Причина в том, что длина битов вашего сообщения не может быть длиннее длины ключа при использовании rsa, и это довольно медленно.

SSL, SSH, GPG и PGP все делают это так.

Что не так с SSL?

+1

Некоторые общие хосты просто не разрешают использование SSL. – neubert

+0

@Sylwester Ничего плохого в SSL, я просто не могу использовать его для этого проекта. Спасибо за Ваш ответ! – GeriBoss

 Смежные вопросы

  • Нет связанных вопросов^_^