09.06.2003 15:46:20EnvelopedData.Encrypt Ответов: 8
Ильшат Абшарипов
Какой сертификат используется для создания конверта, если их у меня есть несколько?
 
Ответы:
10.06.2003 13:33:15kure
Под конвертом понимается шифрование?

Если вы шифруете в адрес получателя то нужен открытый ключ (сертификат) получателя.

Посмотрите http://www.cryptopro.ru/CryptoPro/doc/w2k_PKI.doc
10.06.2003 19:56:25Ильшат Абшарипов
Как я понимаю, EnvelopedData формирует цифровой конверт (шифрование+подпись). Так вот, какой из моих сертификатов будет использоваться для формировании подписи
11.06.2003 8:46:41kure
Enveloped - это шифрование. К подписи никакого отношения не имеет.
Подпись - Signed.

Если есть желание разобраться поподробнее, посмотрите RFC 2315 (PKCS#7) http://www.ietf.org/rfc.html. Там описаны типы криптографических форматов.

При подписи сами выбираете какой из ваших сертификатов (т.е. закрытых ключей) пользовать. Либо из дислога, либо программно.
11.06.2003 9:56:31Абшарипов Ильшат
Тогда скажите, пожалуйста, чем отличается EncryptedData от EnvelopedData. Оба шифруют. Только "The EnvelopedData object provides properties and methods to envelop data for privacy by encryption", и "The EncryptedData object provides properties and methods to encrypt and decrypt data using a session key derived from a secret". Т.о. различие заключается в том, что EnvelopedData формирует цифровой конверт (подпись+шифрование). Или я не прав?
11.06.2003 10:21:55kure
Не правы.

Смотрим RFC 2315.
The syntax is general enough to support many different content types.
This document defines six:
data,
signed data,
enveloped data,
signed-and-enveloped data,
digested data,
and encrypted data.


10. Enveloped-data content type

The enveloped-data content type consists of encrypted content of any
type and encrypted content-encryption keys for one or more
recipients. The combination of encrypted content and encrypted
content-encryption key for a recipient is a "digital envelope" for
that recipient. Any type of content can be enveloped for any number
of recipients in parallel.

It is expected that the typical application of the enveloped-data
content type will be to represent one or more recipients’ digital
envelopes on content of the data, digested-data, or signed-data
content types.

The process by which enveloped data is constructed involves the
following steps:

1. A content-encryption key for a particular content-
encryption algorithm is generated at random.

2. For each recipient, the content-encryption key is
encrypted with the recipient’s public key.

3. For each recipient, the encrypted content-
encryption key and other recipient-specific information are
collected into a RecipientInfo value, defined in Section
10.2.

4. The content is encrypted with the content-
encryption key. (Content encryption may require that the
content be padded to a multiple of some block size; see
Section 10.3 for discussion.)

5. The RecipientInfo values for all the recipients
are collected together with the encrypted content into a
EnvelopedData value, defined in Section 10.1.



13. Encrypted-data content type

The encrypted-data content type consists of encrypted content of any
type. Unlike the enveloped-data content type, the encrypted-data
content type has neither recipients nor encrypted content-encryption
keys. Keys are assumed to be managed by other means.

It is expected that the typical application of the encrypted-data
content type will be to encrypt content of the data content type for
local storage, perhaps where the encryption key is a password.

Enveloped, Encrypted ничего не подписывают.

Различия: Encrypted не имеет получателей, как делаются ключи не описано. Рекомендуется пользовать для локального хранения.
11.06.2003 10:28:24Ильшат Абшарипов
Ясно. Спасибо. :(
Но если я буду использовать объект SignedData, будет ли использоваться подписывание по ГОСТу?
11.06.2003 14:00:17kure
Если будете пользовать SignedData.Sign то нужный криптопровайдер (алгоритм) для создания подписи будет оределяться сертификату и ссылке на закрытый ключ.
11.06.2003 14:03:04Ильшат Абшарипов
Ясно. Спасибо :)