Как сгенерировать подпись и ключи в библиотеке RSA Codeigniter


Я выполняю некоторое шифрование и дешифрование в php с использованием фреймворка codeigniter. Я использую эту библиотеку https://github.com/Dirktheman/rsa-codeigniter-library . Что я хочу сделать, так это создать подпись, подобную этой enctypt_method (значение, private_key).Это вернет подпись.Затем я хочу проверить значение, которое равно предыдущему значению или не расшифровывается (подпись, предыдущий ввод, public_key). Моя проблема в том, что нет способа генерировать закрытый и открытый ключи. Для также генерируется подпись. Поэтому, пожалуйста, как я могу добиться этого, используя библиотеку RSA в php.

Author: Wai Yan Hein, 2015-11-08

1 answers

Не используйте эту библиотеку. Это совершенно небезопасно.

Безопасная реализация RSA зависит от использования случайно сгенерированных больших простых чисел (например, не менее 2048 бит!) в качестве части закрытого ключа. Однако эта библиотека не использует большие простые числа и даже не генерирует их случайным образом - он выбирает их из массива из 570 предварительно созданных четырехзначных чисел. Это означает, что существует только около 162 000 (570 *569÷2) возможных ключей, которые может быть сгенерирован; этого достаточно, чтобы вы могли легко сгенерировать список всех возможных пар открытых и закрытых ключей.

Кроме того, эта библиотека использует RSA в неподходящем режиме. Это "шифрование" и "расшифровка" сообщений путем шифрования каждой группы из трех букв как отдельного, независимого сообщения. Эта схема небезопасна, так как отдельные блоки могут быть отредактированы и переупорядочены для создания новых сообщений. (Например, зашифрованное сообщение с надписью SEND JO $123 может быть легко отредактировано, чтобы сказать SEND JO $123123, повторив последний блок!) Хуже того, если известно содержание одного сообщения, можно искать блоки из этого первого сообщения в другом сообщении, чтобы восстановить части его содержимого.

 41
Author: duskwuff, 2015-11-09 08:13:13