Используйте уже существующие ключи RSA SSH для расшифровки текста на C#

У меня есть пара открытых/закрытых ключей RSA, сгенерированных командой ssh-keygen на компьютере с Linux. На этом компьютере с Linux есть приложение Ruby, которое шифрует строку с помощью этого открытого ключа, и я хочу использовать этот закрытый ключ для расшифровки строки в приложении Windows C#/.Net. Я безуспешно взглянул на библиотеки Bouncy Castle. Любой пример или совет будут полезны. Спасибо!


person Community    schedule 18.04.2013    source источник
comment
Ключи RSA в SSH используются только для подписи данных для проверки личности, а не для шифрования данных сеанса или даже для обмена ключами сеанса. Использование их для шифрования данных не совсем лучшая практика.   -  person Peter Elliott    schedule 18.04.2013


Ответы (1)


Есть ли причина использовать ключи ssh?

Подойдет любой ключ RSA. Вам нужно извлечь ключ RSA, чтобы зашифровать что-либо. И если этот ключ не RSA, вы не сможете ничего зашифровать, так как DSA — это алгоритм только подписи. Существует RFC для открытых ключей: http://www.ietf.org/rfc/rfc4716.txt Это не совсем то, что вам нужно. Но может помочь вам понять, как извлечь каждую часть. Это должны быть только двоичные фрагменты в кодировке base64.

Вы можете попробовать источник PuTTY http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html генератор ключей может генерировать и преобразовывать эти ключи. Итак, если вы найдете место, где он извлекает ключ RSA. Затем используйте любую криптографическую библиотеку для вычисления RSA с использованием ключей и данных. С правильными ключами вы получите входные данные + дополнение. Зависит от того, открытый или закрытый ключ использовался программой ruby. Надеюсь, это поможет.

person Pihhan    schedule 18.04.2013
comment
Потому что я предпочитаю использовать открытые стандарты. Мой код Ruby (pastebin.com/1djhPRxN) отлично работает в обоих направлениях (шифрование и дешифрование). Я хотел бы иметь такие же результаты с моим кодом С#/.Net. - person ; 18.04.2013