2009-09-25 2 views
-3

Следуя за this question, я хотел бы знать, что такое ключ RSA, и как я буду создавать и использовать его на C#.Как шифровать/расшифровывать строку?

+2

Коэффициенты хороши, что вы задаете неправильный вопрос. Поиск правильного алгоритма криптографии и его применение тривиальны. Решение проблемы управления ключами - нет. Вопрос, который вы должны задать, - «вот подробная модель угрозы моего приложения, вот угрозы, которые потенциально могут быть смягчены криптографией. Как я могу безопасно управлять ключами, чтобы фактически смягчить реальные угрозы?» –

+1

Помните, что цель криптографического алгоритма состоит в том, чтобы использовать защиту небольшого, бессмысленного ключа в безопасности большого количества значимых данных. Это обязательно влечет за собой решение проблемы безопасного управления ключом! Это тяжелая часть. –

+0

http://stackoverflow.com/questions/10168240/encrypting-decrypting-a-string-in-c-sharp – marbel82

ответ

7

От Wikipedia:

В криптографии RSA (который выступает за Rivest, Шамира и Адлеманом кто первым публично описал его, см ниже) представляет собой алгоритм для криптографии с открытым ключом. Это первый алгоритм, который, как известно, подходит для подписи, а также шифрования и является одним из первых достижений в криптографии с открытым ключом. RSA широко используется в протоколах электронной торговли, и считается, что он безопасен, учитывая достаточно длинные ключи и использование современных реализаций.

Вы изучали класс RSACryptoServiceProvider? .NET делает это проще для большинства приложений.

+0

Я умоляю вас прочитать эти сообщения в блоге до внедрения шифрования http://www.codinghorror.com/ блог/архивы/001267.html и http://www.codinghorror.com/blog/archives/001275.html –

1

Существует два типа шифрования: симметричное и асимметричное.

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

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

RSA - асимметричная криптографическая схема с открытым ключом.

AES - симметричная криптограмма.

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

Итак, вам нужно выяснить, как вы собираетесь управлять ключами шифрования. Если вы разрабатываете систему, которая должна только шифровать вещи (например, SSN или пароли), чтобы сохранить их в базе данных, а затем позже расшифровать их, когда им нужно их использовать, то симметричный криптограф подходит. Если вы намерены передавать зашифрованную информацию в разных системах, то асимметричный (или гибридный) криптограф является подходящим.

Смежные вопросы