Является ли эта схема подписи (с восстановлением) на основе RSA криптографически обоснованной? - PullRequest
1 голос
/ 20 июля 2009

Я внедряю простую лицензионную файловую систему и хотел бы знать, не допускаются ли ошибки в моей текущей линии реализации.

Данные сообщения меньше ключа. Я использую RSA с размером ключа 3072 бит.

Эмитент лицензий генерирует сообщение для подписи и подписывает его, используя прямой подход на основе RSA, а затем применяет аналогичный подход для шифрования сообщения. Зашифрованное сообщение и подпись хранятся вместе как файл лицензии.

  1. Sha512 сообщение.
  2. Подпишите хэш с закрытым ключом.
  3. Подпишите сообщение закрытым ключом.
  4. Конкатенация и передача.

При получении процесс проверки:

  1. Расшифровать сообщение с открытым ключом
  2. Хеш сообщения
  3. Расшифруйте хеш из файла с открытым ключом и сравните с локальным хешем.

Реализация пока работает правильно, и кажется допустимым.

В настоящее время я набираю ноль сообщения, чтобы соответствовать размеру клавиш плохой ход (я предполагаю, что должен использовать алгоритм заполнения PKCS, например, 1 или 1,5?)

Эта стратегия кажется верной? Есть ли какие-то очевидные недостатки или перспективы, которые я пропускаю?

1 Ответ

3 голосов
/ 20 июля 2009

Главный недостаток, который я заметил: вы должны проверить, что отступ еще существует, когда вы расшифровываете.

(Если вы заранее знаете длину сообщения, вам, возможно, удастся обойтись без использования собственной схемы заполнения, но, вероятно, было бы неплохо использовать уже существующую схему, как вы упомянули).

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

Я бы порекомендовал использовать высокоуровневую библиотеку, которая предоставляет функцию "подписать сообщение", например cryptlib или KeyCzar (если вы можете). Они выигрывают от гораздо большего количества глаз, чем ваш код, и могут позаботиться обо всех проблемах с заполнением и т. П.

...