Статус: Участник
Группы: Участники
Зарегистрирован: 06.10.2010(UTC) Сообщений: 11 Откуда: 1
|
День добрый. Есть задачка,необходимо подписать данные и затем зашифровать... С подписью разобрался на отлично...Подписываю закрытым ключом все ок... Затем нужно шифровать...шифровать на кого-то. Т.е есть открытый ключ компании на которую нужно зашифровать... Что-то никак не пойму как это сделать... в семплах тож вроде не нашел...либо не понимаю что ищу... Может подскажете,ведь я правильно мыслю,что можно зашифровать открытым ключом компании на кот. шифрую... как это сделать? в семплах что нашел,везеде требуется для этого приват ключ... Подскажите пожалста Совсем с толку сбился... ) Заранее спасибо
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 09.10.2008(UTC) Сообщений: 181
|
В чистом виде шифрование на открытом ключе получателя используется в RSA. На ГОСТе этого не сделать, да и медленно это. Обычно, из собственного секретного и открытого ключа получателя вырабатывают ключ парной связи по алгоритму Диффи-Хелмана и используют его для симметричного шифрования текста, или еще лучше для шифрования сеансового, одноразового ключа. Можно использовать эфемерную схему, если очень надо смоделировать шифрование RSA на открытом ключе, при встраивании в импортную программу, например. Без собственного секретного ключа, вырабатываете эфемерную ключевую пару, и используете в алгоритме Диффи-Хелмана секретный ключ из этой пары и открытый ключ получателя. Эфемерный открытый ключ надо прикладывать к сообщению. Получатель с помощью этого открытого ключа и собственного секретного расшифрует. Только аутентификации нет, ибо получатель не знает от кого пришло письмо. Надо будет еще подписывать сообщение.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.10.2010(UTC) Сообщений: 11 Откуда: 1
|
А скажите пожалуйста это... "Обычно, из собственного секретного и открытого ключа получателя вырабатывают ключ парной связи по алгоритму Диффи-Хелмана и используют его для симметричного шифрования текста" есть где-то в примерах?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 09.10.2008(UTC) Сообщений: 181
|
В составе JCP samples\samples_src.jar. userSamples.ClassicEncrypt классический Диффи-Хелман userSamples.SessionEncrypt с использованием сессинного ключа.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 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)
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.10.2010(UTC) Сообщений: 11 Откуда: 1
|
т.е если пример просто скопировать и запустить,все работает,Если подставляю туда свой закрытый,и свой сертификат и сертификат на кого шифровать,все ломается с этой ошибкой...
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.10.2010(UTC) Сообщений: 11 Откуда: 1
|
Причем если спользовать крипто арм и подсунуть эти сертификаты и ключи,все рабоатет ок
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.10.2010(UTC) Сообщений: 11 Откуда: 1
|
о каком несоответствие может идти речь?
Закрытый мой как-то не подходит к открытому получателя??
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.10.2010(UTC) Сообщений: 11 Откуда: 1
|
День добрый. Подскажите хоть в какую сторону "копать"!!!
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 09.10.2008(UTC) Сообщений: 181
|
В контрольной панели JCP на вкладке Алгоритмы меняли параметры? Если при генерации ключа параметры отличались от параметров ключа получателя, то использовать их совместно таким образом не получится. Только через эфемерную пару.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close