Трябва да генерирам ключ и да дам публичния ключ на някого. Казват, че трябва да бъде:
- AES-256 CBC 128-битов блок.
- случайна Инициализация Виктор IV от 16b фиксирана дължина.
- PKCS7Padding
Аз дори не знам дали това са неизпълнение или не, или дори ако питам на точното място. Как мога да направя ключ като този?
Отговори:
1 за отговор № 1Вашите изисквания не могат да бъдат верни. AES е симетричен алгоритъм, което означава, че и двете страни трябва да имат същото тайна ключ. Ключови двойки се генерират за асиметрично криптиране като RSA.
През повечето време AES и RSA се използват заедноза криптиране. Това се нарича хибридно криптиране: произволен ключ AES се генерира и се използва за криптиране на текста. След това ключът AES е шифрован с публичния ключ RSA (например с подложка OAEP). След това полученият шифрова текст и криптиран ключ се изпращат до другата страна, която може да дешифрира ключ AES, използвайки частния ключ, а след това и шифрова текст с ключа AES.
Ако просто трябва да дадете таен ключ трябва да използвайте сигурен транспорт. Ключ AES може да бъде 256 бита сигурен случайен ключ, от който лесно може да се извлече /dev/urandom
, например:
dd bs=1 count=32 if=/dev/urandom of=aes-256-key.bin
за RSA, използвайте openssl
командния ред, например.