Расшифровать шифр PKCS # 1 v2.1 из BlackBerry в C # .NET - PullRequest
2 голосов
/ 08 марта 2012

Я написал приложение BlackBerry, которое RSA шифрует сообщение, используя PKCS1FormatterEngine.Это выводит зашифрованное сообщение, отформатированное в PKCS # 1 v2.1

Вот фрагмент сообщения:

ç½.¦B¯€ü6Áùε"aYÅÂ7;«&â/Ѥ²•¨S.°.b7<iÔ½Œ.:.Ý&D‹±ì‰8.V•.Ä$‡ZAÜ.p.Ø}åÜ.uK.Æøæ

У меня уже есть закрытый ключ RSA в .NET, но я не могу 'Кажется, я не смогу расшифровать это.

Буду очень признателен за любые идеи относительно классов, которые я должен использовать, и т. д.

Ответы [ 4 ]

1 голос
/ 09 марта 2012

Что-то не так со стандартным классом RSAOAEPKeyExchangeDeformatter? если это так, то вы должны показать нам свой код.

Он был в .NET Framework навсегда, но не был доступен до Windows XP (например, Windows 2000) IIRC, но сегодня это не должно быть большой проблемой.

1 голос
/ 09 марта 2012

PKCS # 1 v2.1 имеет два режима шифрования: RSAES-OAEP и RSAES-PKCS1-V1_5.

RSAES-PKCS1-V1_5 также был включен в более ранние версии стандарта, поэтому его часто называют PKCS # 1 v.1.5.Поэтому нередко ссылаться на RSAES-OAEP как PKCS # 1 v.2.1 - но это неверно и подвержено ошибкам.

В документации для PKCS1FormatterEngine , документы RIM, которые он реализовалPKCS # 1 в соответствии с PKCS # 1 v.2.1, но не объясняют, имеют ли они в виду RSAES-OAEP или RSAES-PKCS1-V1_5.

Но так как вы сообщаете, что RSACryptoServiceProvider.Decrypt(array, false); работает, я бы пришел к выводу, что они реализовали RSAES-PKCS1-V1_5.Просто используйте это: это самый простой способ расшифровки RSAES-PKCS1-V1_5.В качестве альтернативы вы можете использовать RSAPKCS1KeyExchangeDeformatter.

0 голосов
/ 19 марта 2012

Я использую RSACryptoServiceProvider .NET класс с функцией Decrypt.

Первый параметр - это зашифрованные данные, а второй - логическое значение, указывающее, какой тип заполнения использовать.

True = заполнение OAEP (PKCS # 1 v2.1) False = PKCS # 1 v1.5

Это странно, потому что мой код работал, когда он установил для этого параметра значение false. Я почти уверен, что шифр находится в PKCS # 1 v2.1, потому что я использую этот класс из BlackBerry SDK.

Цитата из документа API:

Мы реализовали механизм форматирования PKCS1 согласно документу PKCS # 1 версии 2.1.

В любом случае, у меня сейчас работает. Надеюсь, это поможет кому-то еще. :)

0 голосов
/ 08 марта 2012

Надежный замок , похоже, может использовать режим шифрования / дешифрования RSA OAEP.Никогда не пробовал, хотя, я использую только Java-библиотеки Bouncy.

Ах, нашел пример, см. Пример кода внизу страницы:

http://www.go4expert.com/forums/showthread.php?t=24827

...