RSA для шифрования 500 байтов данных с использованием библиотеки openssl - PullRequest
0 голосов
/ 19 августа 2011

Я использую алгоритм RSA для шифрования / дешифрования общего ключа. Я использую открытые библиотеки ssl и c language.RSA_size () возвращает 256 байтов. Размер ключа (данные для шифрования) составляет более 256 байтов, но меньше 500 байтов Размер ключа RSA, используемый для шифрования, равен 1024. Ключ генерируется с использованием библиотеки openssl. Если данные для шифрования меньше или равны 245 байтам, шифрование работает нормально (из-за заполнения). В противном случае мне приходится разбивать данные (не уверен, что это нормально, поскольку я пытаюсь обменять общий ключ). Есть ли другой способ увеличить Код RSA_size.my не вызывает RAND_seed () (не уверен, какой аргумент передать) перед вызовом rsa_public_encrypt. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 19 августа 2011

Вы можете разбить данные на куски или использовать функции OpenSSL «печать» / «открытие».

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

Предлагаю вам взглянуть на EVP_SealInit и EVP_OpenInit .

...