У меня есть задача передать небольшие двоичные сообщения (длиной 1 или 2 kb) между настольным приложением и мобильными устройствами. Сообщения должны быть зашифрованы асимметрично (например, RSA). Из того, что я узнал, следует использовать гибридные криптосистемы для такого рода задача:Следует ли использовать синтаксис криптографического сообщения (CMS) для этой задачи?
- Генерации случайного симметричного ключом
- Зашифровать обычный текст с симметричным ключом (AES с использованием, например)
- Encrypt симметричного ключом с Открытый ключ
- текст передачи шифра и зашифрованной симметричный ключ
Я хотел бы не придумать собственный формат для хранения зашифрованного текста и зашифрованный симметричный ключ. Поэтому я наткнулся на стандарт CMS (синтаксис криптографического сообщения). На первый взгляд это выглядит точно так, как мне нужно. Если я правильно понял стандарт, он вводит шифрованный текст и зашифрованный симметричный ключ, а также информацию об используемых алгоритмах.
Может ли кто-нибудь сказать, следует ли использовать стандарт CMS для намеченной задачи? Достаточно ли поддержки OpenSSL для CMS для моих нужд?
Cheers, Christian
В то же время я реализовал CMS с использованием OpenSSL. Он работает как чары. –
Вот документация 'openssl cms': http://www.openssl.org/docs/apps/cms.html. Пример кода в Java с BouncyCastle: http://security.stackexchange.com/questions/1453/whats-the-standard-way-to-encrypt-a-file-with-a-public-key-in-java –