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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline denis12345  
#1 Оставлено : 6 октября 2010 г. 16:59:45(UTC)
denis12345

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

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

День добрый.
Есть задачка,необходимо подписать данные и затем зашифровать...
С подписью разобрался на отлично...Подписываю закрытым ключом все ок...
Затем нужно шифровать...шифровать на кого-то. Т.е есть открытый ключ компании на которую нужно зашифровать... Что-то никак не пойму как это сделать... в семплах тож вроде не нашел...либо не понимаю что ищу...
Может подскажете,ведь я правильно мыслю,что можно зашифровать открытым ключом компании на кот. шифрую... как это сделать? в семплах что нашел,везеде требуется для этого приват ключ...
Подскажите пожалста
Совсем с толку сбился... )
Заранее спасибо
Offline Iva  
#2 Оставлено : 6 октября 2010 г. 17:24:56(UTC)
Iva

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

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

В чистом виде шифрование на открытом ключе получателя используется в RSA. На ГОСТе этого не сделать, да и медленно это. Обычно, из собственного секретного и открытого ключа получателя вырабатывают ключ парной связи по алгоритму Диффи-Хелмана и используют его для симметричного шифрования текста, или еще лучше для шифрования сеансового, одноразового ключа. Можно использовать эфемерную схему, если очень надо смоделировать шифрование RSA на открытом ключе, при встраивании в импортную программу, например. Без собственного секретного ключа, вырабатываете эфемерную ключевую пару, и используете в алгоритме Диффи-Хелмана секретный ключ из этой пары и открытый ключ получателя. Эфемерный открытый ключ надо прикладывать к сообщению. Получатель с помощью этого открытого ключа и собственного секретного расшифрует. Только аутентификации нет, ибо получатель не знает от кого пришло письмо. Надо будет еще подписывать сообщение.
Offline denis12345  
#3 Оставлено : 6 октября 2010 г. 17:35:38(UTC)
denis12345

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

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

А скажите пожалуйста это... "Обычно, из собственного секретного и открытого ключа получателя вырабатывают ключ парной связи по алгоритму Диффи-Хелмана и используют его для симметричного шифрования текста" есть где-то в примерах?
Offline Iva  
#4 Оставлено : 6 октября 2010 г. 17:41:20(UTC)
Iva

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

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

В составе JCP samples\samples_src.jar.
userSamples.ClassicEncrypt классический Диффи-Хелман
userSamples.SessionEncrypt с использованием сессинного ключа.
Offline denis12345  
#5 Оставлено : 6 октября 2010 г. 18:51:39(UTC)
denis12345

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

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

Попробовав по классич схеме,вылазет ошибка почему-то


final KeyPair alisaPair =......;-- это мой закрытый


/* Генерирование самоподписанных сертификатов сторон */
final Certificate alisaCert = KeyPairGen
.genSelfCert(alisaPair, "CN=ALISA_CERTIFICATE, O=CryptoPro, C=RU");-- это мой серт
final Certificate bobCert = KeyPairGen
.genSelfCert(bobPair, "CN=BOB_CERTIFICATE, O=CryptoPro, C=RU"); -- это серт на которого шифрую

/* Генерирование начальной синхропосылки для выработки ключа согласования*/
final byte[] sv = new byte[RND_LENGTH];
final SecureRandom random = SecureRandom.getInstance(Constants.RANDOM_ALG);
random.nextBytes(sv);
final IvParameterSpec ivspec = new IvParameterSpec(sv);

/* Выработка ключа согласования алисы c SV*/
final KeyAgreement alisaKeyAgree =
KeyAgreement.getInstance(Constants.EXCH_KEY_PAIR_ALG);
alisaKeyAgree.init(alisaPair.getPrivate(), ivspec, null); ---------------- сюда подставляю свой закрытый
alisaKeyAgree.doPhase(bobCert.getPublicKey(), true); -------------- сюда подставляю открытый компании на которую шифрую
final SecretKey alisaAgree =
alisaKeyAgree.generateSecret(Constants.CHIPHER_ALG);



вылазеет ошибка


Exception in thread "main" java.security.InvalidKeyException: Несоответствие параметров
at ru.CryptoPro.JCP.Key.i.doDHPhase(Unknown Source)
at ru.CryptoPro.Crypto.Key.KeyAgreement.engineDoPhase(Unknown Source)
at javax.crypto.KeyAgreement.doPhase(KeyAgreement.java:542)
at ekvifax.save.impl.ClassicEncrypt.main(ClassicEncrypt.java:85)




Offline denis12345  
#6 Оставлено : 6 октября 2010 г. 18:52:39(UTC)
denis12345

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

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

т.е если пример просто скопировать и запустить,все работает,Если подставляю туда свой закрытый,и свой сертификат и сертификат на кого шифровать,все ломается с этой ошибкой...
Offline denis12345  
#7 Оставлено : 6 октября 2010 г. 19:05:05(UTC)
denis12345

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

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

Причем если спользовать крипто арм и подсунуть эти сертификаты и ключи,все рабоатет ок
Offline denis12345  
#8 Оставлено : 6 октября 2010 г. 19:40:46(UTC)
denis12345

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

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

о каком несоответствие может идти речь?

Закрытый мой как-то не подходит к открытому получателя??
Offline denis12345  
#9 Оставлено : 7 октября 2010 г. 14:04:11(UTC)
denis12345

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

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

День добрый.
Подскажите хоть в какую сторону "копать"!!!
Offline Iva  
#10 Оставлено : 7 октября 2010 г. 15:56:53(UTC)
Iva

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

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

В контрольной панели JCP на вкладке Алгоритмы меняли параметры?
Если при генерации ключа параметры отличались от параметров ключа получателя, то использовать их совместно таким образом не получится. Только через эфемерную пару.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.