Рейтинг:2

Ослабляет ли повторное использование IV в AES-CBC его?

флаг cn

Rsynccrypto предположительно использует AES-CBC с изюминкой: если последние несколько байтов открытого текста соответствуют условию*, то останавливаются, дополняют текущий блок и начинают шифрование нового блока с текущей позиции в файле, повторно используя IV. Лучший пример может быть в псевдокоде:

если (триггер(буфер, я)) {
  encrypt_next_block (буфер, я);
  init_encryption(iv);
} иначе если (is_block_boundary(i)) {
  encrypt_next_block (буфер, я)
}

Вы можете проверить код здесь

Это как-то ослабляет шифрование? Если да, то как?

* Точное условие: сумма последних 8196 байт по модулю 4096 равна 0.

Рейтинг:3
флаг us

Нам даже не нужно тщательно анализировать его вариант режима CBC. На веб-странице rsyncrypto все сказано:

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

Что бы они ни делали (повторное использование векторов инициализации и т. д.), и если предположить, что они действительно преуспели в достижении заявленных целей, они явно пропускают некоторую информацию о сходстве открытых текстов. Итак: да, они ослабляют режим CBC, который ничего не пропускает в открытых текстах (кроме длины) при правильном использовании.


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

Хорошо известно, что повторное использование IV в режиме CBC приводит к утечке длины общего префикса открытых текстов. Другими словами, если первый $к$ блоки $ млн $ и $М'$ одинаковы, то первые $к$ блоки $\textsf{CBC}_k(IV,M)$ и $\textsf{CBC}_k(IV,M')$ будет идентичным. Можно показать, что это Только информация об открытых текстах, которые просочились. (Это предполагает случайные IV; может произойти утечка большего количества данных, если противник может предсказать/выбрать IV).

Те же рассуждения применимы к этому варианту CBC. Предполагая, что IV используется только для одного шифрования (но значение цепочки может быть сброшено на этот IV во время этого шифрования), зашифрованные тексты пропускают общий префикс после любого из этих шагов «сброса IV». Таким образом, перехватчик, который просматривает зашифрованный текст и видит, что блоки 12, 13, 14 равны блокам 22, 23, 24, может сделать вывод, что блоки открытого текста 11 и 21, должно быть, вызвали сброс IV, и что дополнительно блоки открытого текста 12, 13, 14 равны блоки открытого текста 22,23,24.

Kryštof Vosyka avatar
флаг cn
Я отредактировал вопрос, чтобы внести больше ясности.
флаг us
Я обновил свой ответ.
Рейтинг:0
флаг vu

Может быть, на самом деле это не змеиное масло, но в лучшем случае оно избыточно.

Первая часть его деталь что я бы назвал избыточным, так это тот факт, что он использует RSA для шифрования ключа для каждого файла, который они по какой-то причине называют «сеансовым» ключом.

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

Kryštof Vosyka avatar
флаг cn
На самом деле, если данные не смещены на весь блок, они больше не подходят для rsync. Это по крайней мере я так понимаю.

Ответить или комментировать

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