2016-01-15 6 views
0

Означает ли это проблему безопасности, если ключ и iv хранятся в секрете, но то же самое? Спасибо.Если я сохраню секрет iv paramater, все равно нужно быть случайным в AES/CBC?

ОБНОВЛЕНИЕ: Я сделал некоторые исследования и узнал, почему использовал iv. Как упоминалось в ответе ниже, это способ защиты от частотных атак. И при создании iv существует два требования: уникальность и непредсказуемость.

Алгоритма, который я думал, что для создания ключа AES и IV является:. Получить два значения из некоторой эллиптической кривой точки, согласованной перед тем с помощью асимметричного шифрования (х, у)

Aes.Key <- HASH(x) 
(string)unique <- timestamp() 
(string)unpre <- y 
Aes.IV <- HASH(unique + unpre) 

И доля данные как {encryptedmessage, timestamp}

Эта логика в порядке?

+0

Это зависит от того, как вы применяете асимметричный шифр. Если вы используете подход KEM, в котором вы создаете новую точку эллиптической кривой для каждого шифрования, тогда это кажется прекрасным, но если ваша точка (x, y) является долгосрочной тайной, то это все еще не имеет рандомизации и Ответ LDMJoe применяется. В любом случае ... –

+0

Я голосую, чтобы закрыть этот вопрос как вне темы, потому что это напрямую не связано с программированием. Это гораздо лучше подходит для [crypto.se]. Следует уточнить, как выглядит протокол и как часто изменяется точка эллиптической кривой. –

ответ

0

Для блочных шифров, таких как AES, необходим случайный (или, по крайней мере, псевдослучайный) вектор инициализации.

Ripped прямо из Wikipedia:

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

+0

Да, это говорит. Но я думаю, что это требование для сценария, которое iv отправил с сообщением публично. ключ, iv, открытый текст, все они секретные, это совсем другая ситуация. Я ошибаюсь? – ahfakt