как зашифровать ключ AES с помощью парольной фразы?

Я хочу зашифровать 128-битный ключ AES с помощью парольной фразы. Максимальное количество символов парольной фразы — 16. Можно ли зашифровать ключ? Какой алгоритм подходит для шифрования ключа?


person user3425935    schedule 15.01.2015    source источник
comment
Не используйте пароль в качестве ключа AES. Используйте KDF на основе пароля (в основном медленный хэш с солью), чтобы получить ключ из пароля. PBKDF2 является распространенным выбором.   -  person CodesInChaos    schedule 15.01.2015


Ответы (1)


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

Но «стандартный» способ сделать это — хешировать кодовую фразу с помощью MD5, SHA1 и т. д. Вы также можете добавить немного секретной соли, чтобы сделать ее более безопасной.

Таким образом, шифрование становится

salt = "MY SECRET SALT TEXT"
plaintext = AES_KEY
key = sha1(passphrase + salt)
ciphertext = AES(key,plaintext)

Теперь зашифрованный текст — это зашифрованная версия ключа AES.

person mox1    schedule 15.01.2015
comment
SHA1 или MD5 не являются стандартным способом. PBKDF2 нужно использовать с огромным количеством итераций. - person Artjom B.; 15.01.2015