Я собираюсь перефразировать мой вопрос полностью, чтобы он имел более общий смысл (и исправить мою ошибку с помощью AES / RSA).
Алиса имеет большой блок данных для отправки Бобу через локальный почтовый ящик, который не является безопасным. Чтобы сохранить свои данные от посторонних глаз, она делает это:
- Она генерирует случайный 256-битный ключ
- Она использует шифрование AES-256 для шифрования данных с помощью ключа
- Она использует открытый ключ Боба для шифрования ключа, который она использовала
- Она помещает зашифрованные данные и зашифрованный ключ в почтовый ящик, адресованный Бобу
Майк почтальон забирает почту из почтового ящика. Однако он не хочет тащить данные через Интернет к месту Боба, если Боб не сможет их расшифровать.
Вопрос в том, как Майк может установить, действительно ли ключ был зашифрован с использованием открытого ключа Боба?
В моем приложении мне нужно перенести конфиденциальные данные в центр обработки данных. Для этого у меня есть процесс загрузки, который принимает файлы (которые уже были AES-зашифрованы ключом, затем ключ шифруется открытым ключом получателя) и отправляет их в центр обработки данных. Соответствующий закрытый ключ хранится в центре обработки данных и используется для расшифровки файлов при получении. В настоящее время это находится на стадии разработки, поэтому есть некоторая гибкость в использовании технологии открытого / закрытого ключа, но, скорее всего, это будет приложение C #, выполняющее эту работу.
Я хотел бы защитить от загрузки файлов, которые НЕ были зашифрованы с использованием открытого ключа (потому что я могу потратить значительную пропускную способность, а принимающее приложение в центре обработки данных не сможет их расшифровать).
Итак, я хочу знать, как я могу сказать на стороне отправителя, был ли файл зашифрован с использованием данного открытого ключа?
В двух словах, у меня есть зашифрованный файл и открытый ключ. Был ли файл зашифрован этим ключом?
Заранее спасибо и т. Д.