Высокая стоимость шифрования, но меньшая стоимость дешифрования - PullRequest
3 голосов
/ 19 марта 2012

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

Еще раз я не говорю о SSL.

Ответы [ 3 ]

5 голосов
/ 19 марта 2012

Звучит так, как будто вы ищете схему доказательство работы - одно из применений такой схемы как раз то, что вы описываете: заставить клиента сделать определенную сумму работы и, таким образом, предотвращают переполнение сервера запросами.

5 голосов
/ 19 марта 2012

Одна глупая идея, которая может сработать очень хорошо, - это прикрепить «загадку» к схеме шифрования.Сделайте так, чтобы для отправки зашифрованных данных на сервер вам пришлось решить некоторую известную NP-сложную задачу (например, найти удовлетворительное назначение для большой логической формулы) и отправить ответ вместе с.Затем сервер может легко проверить решение, но в предположении, что P ≠ NP, клиенты, пытающиеся разместить данные, должны выполнить сверхполиномиальный объем дополнительной работы, не давая им затопить ваш сервер.

Надеюсь, это поможет!

0 голосов
/ 19 марта 2012

Вы можете использовать подписи RSA (например, PKCS # 1 ).

Ваш сервер может принимать ответы только в том случае, если они подписаны определенным ключом RSA, частную часть которого вы раздали ранее.Сервер использует открытую часть.

RSA обладает свойством того, что проверка выполняется намного быстрее, чем подписывание, когда вы выбираете небольшую общедоступную экспоненту (обычно называемую e, например e=3) с коэффициентом или x10 или x100,в зависимости от длины ключа и от того, достаточно ли умны ваши клиенты, чтобы использовать CRT.

Генерация ключа RSA чрезвычайно медленная, но, вероятно, достаточно использовать один ключ для всех клиентов, если вы включаете запросв вашем протоколе для предотвращения атак воспроизведения.

Наконец, подпись RSA не дает вам конфиденциальности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...