IV - это «общественное значение, которое влияет на процесс шифрования». Пункт IV часто заключается в «рандомизации» входных данных, чтобы избежать утечки информации о том, какие входные блоки были идентичны в открытом тексте (поскольку идентичные блоки происходят довольно много в «реальных» данных).
Независимо от того, вводится ли входной сигнал путем предварительного ожидания или иным образом зависит от алгоритма, в котором он используется. Для симметричного шифрования с блочным шифрованием в режиме CBC, IV предварительно заносится в зашифрованные данные (CBC использует для каждого блока предыдущий зашифрованный блок, IV играет роль зашифрованного блока -1).
IV отличается от ключа тем, что ключ является секретным, в то время как IV не должен быть секретным; IV часто передается по зашифрованному сообщению. И наоборот, IV должен быть различным для каждого сообщения, тогда как ключ может быть повторно использован. Фактически, для каждого сообщения, зашифрованного , должен быть указан тот же ключ; если вы используете новый ключ для каждого сообщения, вы можете использовать постоянный фиксированный IV. Обратите внимание, что IV не должен быть секретным, но вы можете хранить его в секрете, если хотите. Но отправитель и получатель должны согласиться с IV, и поскольку IV изменяется для каждого сообщения, тогда в некоторых установках может быть неудобно хранить секрет IV.
Независимо от того, является ли IV равномерным случайным или просто не повторяющимся, зависит от алгоритма. CBC требует случайного IV. Другие режимы менее придирчивы, например. GCM. Вы можете получить ключ и IV из «главного ключа», используя правильную одностороннюю функцию. Это то, что делает SSL. Кажется, это сложнее, не пытайтесь дома.
Повторение IV является одним из многочисленных грехов WEP.
У меня вопрос не возникает. – bmargulies