Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

4 Страницы<1234>
Опции
К последнему сообщению К первому непрочитанному
Offline const  
#21 Оставлено : 3 июня 2008 г. 20:06:44(UTC)
const

Статус: Участник

Группы: Участники
Зарегистрирован: 19.05.2008(UTC)
Сообщений: 14
Откуда: Тольятти

Здравствуйте,

из последнего примера на расшифрование:
Ольга написал:

...
//отправитель - открытый ключ из cms
final GostPublicKey senderPublic = new GostPublicKey(encodedPub);

// выработка ключа согласования получателем
final KeyAgreement responderKeyAgree = KeyAgreement.getInstance("GOST3410DH");
responderKeyAgree.init(responderKey, new IvParameterSpec(sv), null);
responderKeyAgree.doPhase(senderPublic, true);
final SecretKey responderSecret = responderKeyAgree
.generateSecret("GOST28147");

// Расшифрование симметричного ключа.
final Cipher cipher =Cipher.getInstance("GOST28147/CFB/NoPadding");
cipher.init(Cipher.UNWRAP_MODE, responderSecret, (SecureRandom) null);
final SecretKey simmKey = (SecretKey) cipher
.unwrap(wrapKey, null, Cipher.SECRET_KEY);

// Расшифрование текста на симметричном ключе.
final GostCipherSpec spec = new GostCipherSpec(iv, cipherOID);
cipher.init(Cipher.DECRYPT_MODE, simmKey, spec, null);
final byte[] result = cipher.doFinal(text, 0, text.length); //расшифрованные данные
// if result = signedData (signANDencrCMS) проверка подписи
CMSVerify.CMSVerify(result, null); // из samples CMS_samples
...


откуда вы берете
GostPublicKey
GostCipherSpec
?
Offline Ольга  
#22 Оставлено : 3 июня 2008 г. 20:55:05(UTC)
Ольга

Статус: Активный участник

Группы: Участники
Зарегистрирован: 23.01.2008(UTC)
Сообщений: 207

Поблагодарили: 3 раз в 3 постах
sorry

//отправитель - открытый ключ из cms
final X509EncodedKeySpec pspec = new X509EncodedKeySpec(encodedPub);
final KeyFactory kf = KeyFactory.getInstance("GOST3410DH");
final PublicKey senderPublic = kf.generatePublic(pspec);

GostCipherSpec находится в JCryptoP.jar (import ru.CryptoPro.Crypto.spec.GostCipherSpec)
Offline const  
#23 Оставлено : 5 июня 2008 г. 14:25:16(UTC)
const

Статус: Участник

Группы: Участники
Зарегистрирован: 19.05.2008(UTC)
Сообщений: 14
Откуда: Тольятти

Здравствуйте.

Зашифровал сообщение с помощью приведенного примера на шифрование.
Расшифровываю сообщение с помощью приведенного примера на дешифрование. Выдается такая ошибка:
Код:
WARNING: Параметры ключа не соответствуют алгоримам подписи ГОСТ и обмена Диффи-Хелмана
        java.security.InvalidKeyException: Параметры ключа не соответствуют алгоримам подписи ГОСТ и обмена Диффи-Хелмана
        at ru.CryptoPro.Crypto.Key.KeyAgreement.engineInit(Unknown Source)
        at javax.crypto.KeyAgreement.a(DashoA13*..)
        at javax.crypto.KeyAgreement.a(DashoA13*..)
        at javax.crypto.KeyAgreement.init(DashoA13*..)

на строку (в примере на дешифрование):
Код:
// выработка ключа согласования получателем
...
        responderKeyAgree.init(responderKey, new IvParameterSpec(sv), null);
...

подскажите, пожалуйста, как исправить
Offline Ольга  
#24 Оставлено : 5 июня 2008 г. 14:41:44(UTC)
Ольга

Статус: Активный участник

Группы: Участники
Зарегистрирован: 23.01.2008(UTC)
Сообщений: 207

Поблагодарили: 3 раз в 3 постах
это означает, что ключ получателя не является ключом обмена.
Offline Darryl  
#25 Оставлено : 25 августа 2011 г. 18:18:35(UTC)
Darryl

Статус: Участник

Группы: Участники
Зарегистрирован: 19.03.2010(UTC)
Сообщений: 19

Немного настораживает код
AlgIdSpec.getDefaultCryptParams();

Хоть его описания и нет, но по названию метода и комментарию
эти параметры берутся из контрольной панели.
не вызовет ли это проблем при расшифровке если эти параметры изменятся?
Offline mka  
#26 Оставлено : 25 августа 2011 г. 22:49:26(UTC)
mka

Статус: Активный участник

Группы: Участники
Зарегистрирован: 03.05.2011(UTC)
Сообщений: 45

Если при расшифровке поменять параметры, вызовет.
Offline ikonovalov  
#27 Оставлено : 25 мая 2012 г. 16:45:14(UTC)
ikonovalov

Статус: Активный участник

Группы: Участники
Зарегистрирован: 03.02.2012(UTC)
Сообщений: 35
Откуда: Moscow

А вот просветите меня, темного...
В примере везде присутствует "выработка ключа согласования получателем" (т.е. DH), но RecipientInfo используется KeyTransRecipientInfo, а не KeyAgreeRecipientInfo. Почему? KeyTransRecipientInfo это разве не для другой схемы?
Luxoft-Москва
Offline ikonovalov  
#28 Оставлено : 28 ноября 2012 г. 20:15:15(UTC)
ikonovalov

Статус: Активный участник

Группы: Участники
Зарегистрирован: 03.02.2012(UTC)
Сообщений: 35
Откуда: Moscow

Добрый день!
Пришлось вернуться к вопросу с KeyAgreeRecipientInfo почти через полгода...
Во всех примерах приводится схема с KeyTransRecipientInfo и обменом от одного отправителя к одному получателю. А как быть, если надо для многих получателей? Как производить шифрование и как формировать RecipientInfo? Если найдется пример кода - буду очень признателен.

UPD
Точнее даже мне нужен пример схемы шифрования без использования закрытого ключа отправителя, а только открытый ключ получателя.

UPD2
Кажется нашел обходной маневр.

Отредактировано пользователем 28 ноября 2012 г. 20:47:45(UTC)  | Причина: Не указана

Luxoft-Москва
Offline xvector  
#29 Оставлено : 24 апреля 2015 г. 12:00:10(UTC)
xvector

Статус: Новичок

Группы: Участники
Зарегистрирован: 24.04.2015(UTC)
Сообщений: 6
Российская Федерация
Откуда: none

Подскажите, плз, в приведенных выше примерах, использовали алгоритм шифрования "GOST28147/CFB/NoPadding".

И для этого алгоритма Вы создали EncryptedContentInfo:

cms.encryptedContentInfo = new EncryptedContentInfo();
final OID contentType = new OID("1.2.840.113549.1.7.1");
cms.encryptedContentInfo.contentType = new ContentType(contentType.value);
final Gost28147_89_Parameters params = new Gost28147_89_Parameters();
params.iv = new Gost28147_89_IV(iv);
params.encryptionParamSet =
new Gost28147_89_ParamSet(paramss.getOID().value);
cms.encryptedContentInfo.contentEncryptionAlgorithm =
new ContentEncryptionAlgorithmIdentifier(
_Gost28147_89_EncryptionSyntaxValues.id_Gost28147_89,
params);
cms.encryptedContentInfo.encryptedContent = new EncryptedContent(text);

1. Подскажите, как должен выглядеть этот код, если используются алгоритм "GOST3410DH"?
2. Если не используется EnvelopedData, а используется только EncryptedData и не производится выработка симметричного ключа шифрования, а данные шифруются открытым ключем получателя (естественно информацию о ключе не добавляется в пакет), то encryptionParamSet не создается?

3. Вообщем, я обнаружил схожий класс _GostR3410_EncryptionSyntaxValues, информацию о котором нигде не могу найти, как и примеров использования. Верно ли будет использование _GostR3410_EncryptionSyntaxValues.id_GostR3410_2001_CryptoPro_ESDH (для 3410-2001) и id_GostR3410_2001_CryptoPro_ESDH.id_GostR3410_94_CryptoPro_ESDH (для 3410-94) вместо приведенного в вашем примере _Gost28147_89_EncryptionSyntaxValues.id_Gost28147_89?

Отредактировано пользователем 24 апреля 2015 г. 12:01:38(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#30 Оставлено : 24 апреля 2015 г. 12:32:35(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 4,038
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 731 раз в 689 постах
Здравствуйте.
Опишите поставленную задачу.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
4 Страницы<1234>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.