Характеристики вектора инициализации
Я ни в коем случае не эксперт по криптографии, я читал несколько вопросов о переполнении стека и в Википедии, но на самом деле нет ничего "четкого" с точки зрения определения IV и его использования.
Точки, которые я обнаружил:
- IV добавляется к текстовому сообщению для усиления шифрования
- IV действительно случайно
- Каждое сообщение имеет свой уникальный IV
- Временные метки и криптографические хеши иногда используются вместо случайных значений, но они считаются небезопасными, поскольку временные метки могут быть предсказаны
- Одним из недостатков WEP (в 802.11) является тот факт, что IV будет сбрасываться после определенного количества шифрований, таким образом, повторяя IV
Я уверен, что есть много других замечаний, кто-нибудь может вспомнить какие-либо другие характеристики, которые я пропустил?
1 ответ
IV - это "публичная ценность, которая влияет на процесс шифрования". Смысл IV часто состоит в том, чтобы "рандомизировать" входные данные, чтобы избежать утечки информации о том, какие входные блоки были идентичны в открытом тексте (потому что идентичные блоки встречаются довольно часто в "реальных" данных).
Вводится ли IV путем предварительного ожидания или иным образом, зависит от алгоритма, в котором он используется. Для симметричного шифрования с блочным шифром в режиме CBC IV зашифровывается с зашифрованными данными (для каждого блока CBC использует предыдущий зашифрованный блок; IV играет роль зашифрованного блока -1).
IV отличается от ключа тем, что ключ является секретным, тогда как IV не должен быть секретным; IV часто передается по зашифрованному сообщению. И наоборот, IV должен быть индивидуальным для каждого сообщения, тогда как ключ может быть использован повторно. На самом деле, IV должен быть индивидуальным для каждого сообщения, зашифрованного одним и тем же ключом; если вы используете новый ключ для каждого сообщения, то вы можете использовать постоянный, фиксированный IV. Обратите внимание, что IV не должен быть секретным, но вы можете сохранить его в секрете, если хотите. Но отправитель и получатель должны согласовать IV, и, поскольку IV изменяется для каждого сообщения, в некоторых случаях может быть неудобно хранить секрет IV.
Должен ли IV быть равномерно случайным или просто неповторяющимся, зависит от алгоритма. CBC требует случайного IV. Другие режимы менее требовательны, например, GCM. Вы можете получить ключ и IV из "мастер-ключа", используя правильную одностороннюю функцию. Это то, что делает SSL. Это сложнее, чем кажется, не пытайтесь сделать это дома.
Повторение IV является одним из многочисленных грехов WEP.