Случайность IV: зачем это нужно, а секретность IV не нужна?
IV, используемый в таких схемах, как CBC, должен быть случайным и непредсказуемым. Но в то же время это не должно храниться в секрете.
Если IV не должен быть секретным, то почему он должен быть случайным? Я не могу понять смысл этих, казалось бы, противоречивых требований.
Я видел описания атак, которые используют неслучайность. Итак, я бы понял, зачем нужна случайность. Тем не менее, вещи становятся запутанными, когда требования указывают, что IV не должен быть секретным! Это, кажется, побеждает всю цель случайности.
Кто-нибудь, помогите прояснить это, пожалуйста.
1 ответ
Я думаю, что вы поменялись ролями.
Когда криптографический протокол разработан, он разработан с учетом определенных допущений. Чем больше предположений вы используете, тем менее полезен протокол, так как вы с меньшей вероятностью найдете сценарии, в которых эти предположения верны.
В случае с CBC, IV был разработан, чтобы не быть секретным. Вы можете держать это в секрете, если хотите. Алгоритм определенно не менее безопасен в этом смысле. Это, однако, не требование.
С другой стороны, наличие неслучайного IV делает весь протокол непригодным для определенных приложений. При выборе между добавлением требования к протоколу и добавлением требования к его данным, правильный выбор очевиден.
Другими словами, IV не должен быть секретным, просто потому, что он может быть не секретным.