Существует ли значительный риск при шифровании секрета самим собой в качестве ключа (с солью)?

Я хотел бы хранить пароли пользователей в зашифрованном виде в базе данных. Мне нужно использовать двунаправленное симметричное шифрование, например. AES (использование хэша в этом особом случае недопустимо).

Часть 1
Существует ли значительный повышенный риск при использовании строки, которую мне нужно зашифровать, в качестве ключа? Общедоступная (та же строка) соль добавляется к ключу, если это имеет значение.

Часть 2
Тот же вопрос, но применительно к следующему сценарию:

  • A зашифрован с помощью B в качестве ключа (включая соль) и
  • B зашифрован с помощью A в качестве ключа (включая соль).

Оба зашифрованных значения хранятся в одной и той же строке базы данных.


person Zeemee    schedule 11.12.2012    source источник
comment
Какой режим цепочки вы планируете использовать? Это оказывает существенное влияние на несоленость корпуса.   -  person Sean B. Durkin    schedule 11.12.2012
comment
Используется CBC, но я всегда использую соль.   -  person Zeemee    schedule 11.12.2012
comment
Какую функцию вы используете для преобразования строки в ключ? Соль — это не то, что добавляют в ключ. Соление означает, что одноразовый номер вводится либо в IV, либо в шифруемый поток, либо в то и другое.   -  person Sean B. Durkin    schedule 11.12.2012


Ответы (1)


Часть 1

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

Часть 2

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

person Sean B. Durkin    schedule 12.12.2012