Криптография: защита цифровой подписи и пары ключей - PullRequest
0 голосов
/ 13 апреля 2020

Я разработал решение для шифрования, основанное на гибридном шифровании:

Конец отправителя:

  1. Будет вычислено сообщение ha sh .
  2. Ха sh будет подписано личным ключом отправителя.
  3. Ха sh будет зашифровано личным ключом отправителя.
  4. Симметрия c ключ будет сгенерирован.
  5. ключ Symmetri c зашифрует сообщение.
  6. ключ Symmetri c будет затем зашифрован с помощью открытого ключа c получателя.

Конец получателя:

  1. Расшифровка Ha sh с ключом publi c отправителя.
  2. Проверка знака с публикацией c ключ отправителя.
  3. Расшифровка ключа Symmetri c с помощью закрытого ключа получателя.
  4. Расшифровка сообщения с помощью ключа Symmetri c.

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

В каком типе файла я должен сохранить все это? будь то файл CSV, TXT или что-то еще?

Я должен хранить ключи в безопасности и цифровую подпись тоже ..

Пожалуйста, руководство!

1 Ответ

0 голосов
/ 13 апреля 2020

Что касается отправителя: шаги 1, 2 и 3 обычно объединяются в одну операцию генерации подписи. Вы не делаете их отдельно. То же самое для шагов 1 и 2 получателя для проверки подписи (кстати, если вы пропускаете шаг хеширования сообщения).

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

Конечно, многие форматы контейнеров были определены для гибридной криптографии, которую вы используете в настоящее время, с помощью CMS (с иерархической PKI) и (Open) PGP (с PKI на основе сети доверия) - наиболее известные из них.

В противном случае это вам решать. Обычно вы шифруете зашифрованный текст / подписи, используя base 64, если вам требуется текстовое хранилище. Включите строку версии где-нибудь в заголовке и создайте документ для описания вашего протокола.

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