Этот план звучит твердо или в нем есть существенный недостаток?
Необходимость сохранения учетных данных является недостатком в дизайне, по крайней мере, мы все понимаем, что вы знаете об этом,
Отдельное обслуживание учетных данных с выделенным хранилищем данных, кажется, лучшее, что вы можете сделать в указанных условиях.Мне не нравится возможность хранить учетные данные пользователя, но давайте пропустим академическую дискуссию до практических вопросов.
AES требует ключ шифрования для всей своей работы, хорошо, что в некоторых случаях его необходимо «защитить»способ.
Да, в этом вся проблема.
для создания пользовательского IV для каждого пользователя?
IV позволяет повторно использовать один и тот же ключ для нескольких шифрований, поэтому он должен быть уникальным для каждого зашифрованного текста (если пользовательимеет несколько паролей, вам нужен IV для каждого пароля).Очень часто IV добавляется к зашифрованному тексту, поскольку это необходимо для его расшифровки.
Будет ли тогда какая-то разница, если я сгенерирую IV на лету по известной процедуре?
IV не обязательно должен быть секретным.
Некоторые режимы шифрования требуют, чтобы IV был непредсказуемым (например, режим CBC), поэтому лучше, если вы генерируете IV как случайный.Есть некоторые режимы, которые используют IV в качестве счетчика для шифрования / дешифрования только части данных (например, CTR или OFB), но все же требуется, чтобы IV был уникальным для каждого ключа и шифрования.