2013-08-11 5 views
1

Я реализую криптографическое решение для беспроводной и сенсорной сетевой безопасности. Таким образом, на одном шаге этой реализации узлы датчиков имеют сертификат CA. Датчики должны генерировать симметричный ключ и шифровать его открытым ключом CA и отправлять его в ЦС.Симметричное шифрование с размером ключа менее 128 бит

Я использую openssl для получения сертификата и генерации ключей. Я использую AES с 128-битным ключом для симметричного ключа. На данный момент проблема заключается в том, что я не могу зашифровать 128-битные данные следующим образом, так как она дает ошибку «Данные слишком велики».

openssl rsautl -encrypt -inkey id_rsa.pub.pem -pubin -in key1.bin -out key1.bin.enc 

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

Мой вопрос «Есть ли симметричный ключ шифрования с меньшим ключом или у меня есть способ для шифрования ключа 128bit, используя сертификат непосредственно»

P.S

Это, как я генерировать ключи.

openssl genrsa -out mykey.pem 1024 
openssl rsa -in mykey.pem -pubout > mykey.pub 
openssl rand 128 > key1.bin 

Спасибо

ответ

1

С openssl rsautl documentation страницы:

rsautl, поскольку она использует алгоритм RSA может быть непосредственно использована только знака или проверить небольшие кусочки данных.

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

ОДНАКО, алгоритм RSA часто используется для обеспечения того, что вы предлагаете ... шифрования ключа AES, который затем используется для шифрования больших файлов.

Вы должны иметь возможность шифровать (почти) размер вашего открытого ключа. Так что здесь что-то не так. Для открытого ключа размером 2048 бит (256 байтов) я могу зашифровать файл с длиной бит (60 бит) в формате 1960 бит с помощью той же команды openssl в вашем вопросе. Для 1024-битного открытого ключа я могу зашифровать 936 бит (117 байт).

Так давайте проверим эти элементы, чтобы увидеть, если проблема может быть найдено:

Во-первых, насколько велик ваш открытый ключ RSA? (Будьте осторожны, чтобы не путать биты и байты.) Это должно быть 1024 бит или выше.

Затем, насколько велика ваша клавиша AES? (Опять же, обязательно проверяйте биты по сравнению с байтами.) Это должно быть 128 бит в соответствии с вашим вопросом.

Если размеры правильны для обоих ключей, не должно быть проблем с зашифровкой ключа AES с помощью ключа RSA.

+0

Мой открытый ключ - 1024 бит. Это должно быть проблемой. –

+0

Вы должны иметь возможность шифровать до 117 байтов (936 бит) с открытым 1024-битным ключом. Этого более чем достаточно для 128-битного ключа AES. Попробуйте шифровать текстовый файл, содержащий около 16 символов, чтобы доказать, что вы можете зашифровать 128 бит. Затем увеличьте текстовый файл до тех пор, пока длина не будет слишком длинной. Это должно произойти около 936 бит. – gtrig

+0

По моей вине я генерирую 128 байтов с помощью openssl rand. Спасибо за помощь. –

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