Как работает шифрование с открытым ключом? - PullRequest
1 голос
/ 12 февраля 2011

Как работает шифрование с открытым ключом, используя закрытый и открытый / открытый ключ для расшифровки / шифрования?Что значит для ключа быть 256 бит?Как это расшифровано?Есть ли язык для написания программ шифрования или любой другой язык подходит?

Ответы [ 2 ]

2 голосов
/ 12 февраля 2011

Вкратце:

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

256-битная длина ключа. Тем не менее, он имеет разное значение для симметричных и асимметричных ключей. Для симметричных ключей 256 битов являются очень сильным ключом (вы можете иметь еще более длинные ключи с AES 384 или AES 512, где числа указывают длину ключа, с которым работает алгоритм). Для асимметричных алгоритмов 256 бит - ничто, а сопоставимая сила - 2048 бит.

Шифрование с открытым ключом может быть реализовано с использованием любого языка, который поддерживает математические операции и массивы. Однако делать это заново изобретать колеса. Существует несколько кроссплатформенных библиотек для PKI: open-source OpenSSL для C ++, BouncyCastle для Java и некоторые другие. Наша компания предлагает поддерживаемый и поддерживаемый SecureBlackbox продукт для .NET, Windows и Linux (версия для MacOS X скоро появится).

Также есть пара книг о PKI , которые мы рекомендуем всем нашим пользователям. Руководство RSA легко читается (но очень полезно), а вторая книга углубляется в детали.

1 голос
/ 12 февраля 2011

По первому вопросу см. http://en.wikipedia.org/wiki/Public-key_cryptography, вы можете зайти в Google для получения более подробной информации.

256-битный ключ означает, что мы используем ключ длиной 256. Вы поймете это после прочтения об ответе на первый вопрос.

Многие языки имеют встроенные или сторонние API для реализации этих вызовов.

...