Мне нужно внедрить безопасность для связи клиент-сервер. Я реализовал следующую гибридную криптосистему
Чтобы зашифровать сообщение, адресованное Алисе, в гибридной криптосистеме, Боб делает следующее:
- Получает открытый ключ Алисы.
- Создает новый симметричный ключ для схемы инкапсуляции данных.
- Шифрует сообщение по схеме инкапсуляции данных, используя только что сгенерированный симметричный ключ.
- Зашифруйте симметричный ключ по схеме инкапсуляции ключей, используя открытый ключ Алисы.
- Отправьте оба эти шифрования Алисе.
Чтобы расшифровать этот гибридный зашифрованный текст, Алиса делает следующее:
- использует свой закрытый ключ для расшифровки симметричного ключа, содержащегося в сегменте инкапсуляции ключей.
- использует этот симметричный ключ для дешифрования сообщения, содержащегося в сегменте инкапсуляции данных.
Я использую RSA для криптосистемы с открытым ключом и AES для криптосистемы с симметричным ключом. Все работает нормально, но я не уверен, как обращаться с вектором инициализации AES. В настоящее время я объединяю ключ AES и вектор инициализации, шифрую его открытым ключом и отправляю его на сервер.
Я просто хотел получить некоторые мнения об этом подходе. Как эта проблема решается другими протоколами связи SSL и т. Д.
Спасибо.