10.05.2007 10:00:26 | Шифрование для нескольких получателей | | Ответов: 8 |
|
Максим | | |
|
Здравствуйте!
В CAPICOM есть такая штука как шифрование для множества получателей.
Хотелось бы реализовать подобное на CryptoApi (пишу класс на C#).
Правильно ли я понимаю что, для нескольких получателей производится шифрование на одном сессионном ключе (генерируется через CryptGenKey), затем этот сессионный ключ шифруется ключем согласования для каждого получателя
и полученные несколько зашифрованных ключей добавляются к зашифрованному сообщению. Так ли это? |
|
Ответы:
|
10.05.2007 11:41:17 | Kirill Sobolev |
|
Именно так. |
|
10.05.2007 11:48:42 | Максим |
|
Спасибо, значит так и сделаю! |
|
10.05.2007 13:42:26 | Kirill Sobolev |
|
Только в CryptoAPI это уже реализовано :) CryptEncryptMessage. |
|
10.05.2007 14:50:29 | Максим |
|
Может я и зря это, но пользую более низкоуровневую CryptEncrypt. |
|
10.05.2007 16:09:03 | Kirill Sobolev |
|
Зря.
Помимо возни с ключами Вам еще придется и зашифрованное сообщение вручную собирать. |
|
10.05.2007 16:18:10 | Максим |
|
Да, с этим согласен. Насколько я понял, ГОСТ-шифрование не увеличивает размез сообщения. Для передачи кодирую шифрованное сообщие в Base64, размер увеличивается ~30% - что в моем случае вполне приемлемо.
CryptEncryptMessage еще не пробывал. Не производит ли она какие дополнительные перекодировки/преобразования и не подключает ли к зашифрованному сообщению какие-либо дополнительные/избыточные данные? Насколько шифрованное CryptEncryptMessage сообщение станет больше исходного? |
|
10.05.2007 17:59:48 | Kirill Sobolev |
|
Нет, не производит. Собственно само шифрование происходит с помощью той же низкоуровневой CryptEncrypt + CryptEncryptMessage добавляет информацию, необходимую для расшифрования (получатель, параметры алгоритма, параметры ключа и т.д.). Размер этой информации постоянен и никак от исходного сообщения не зависит. |
|
10.05.2007 18:04:39 | Максим |
|
Спасибо, Кирилл! Воспользуюсь. |
|