Рейтинг:1

Честность при использовании CBC

флаг cl

У нас есть тело, которое мы хотим зашифровать с помощью CBC, и мы добавляем к этому телу по одному блоку известного текста с обеих сторон. новое тело = тело + известный блок теперь шифруем newBody с помощью ключа, известного обеим сторонам, затем передаем зашифрованный текст по проводу человеку Б. cipherText = encrypt_using_cbc (newBody) Если человек b расшифровывает шифротекст и получает идентичный последний блок, может ли он доверять расшифрованным данным (целостность данных)?

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

Нет. Человек посередине, который искажает блок в сообщении, зашифрованном с помощью CBC, может «перестроиться» в следующем блоке.

Позволять $Е$ быть функцией блочного шифрования. Позволять $П_1, П_2, П_3$ быть три блока данных. CBC-шифрование $P_1 || П_2 || P_3$ с IV $C_0$ является $C_0 || С_1 || С_2 || C_3$ куда $$ \начать{выравнивать} C_1 &= E(P_1 \oplus C_0) \ C_2 &= E(P_2 \oplus C_1) \ C_3 &= E(P_3 \oplus C_2) \ \end{выравнивание} $$ Позволять $ млн $ быть ненулевым блоком. Вставим это возмущение во второй блок открытого текста: $C_2 = E((P_2 \oplus M) \oplus (C_1 \oplus M))$. Отправить зашифрованный текст $(C_1\oplus M) || С_2 || C_3$. Он расшифровывает $P'_1 || (P_2\oplus M) || P_3$. «Проверочное значение» $P_3$ то же самое, но два предыдущих блока были повреждены. Злоумышленник может применить произвольное изменение к известному блоку открытого текста, не зная ключа или какой-либо дополнительной пары открытый текст/зашифрованный текст, если он не возражает против повреждения предыдущего блока способом, который он не может контролировать.

Использование хэша данных в последнем блоке также небезопасно..

Рейтинг:1
флаг in

Злоумышленник может просто изменить любой блок зашифрованного текста, кроме двух последних. Расшифровка последнего блока определяется как $P_n = C_{n-1} \oplus D_k(C_n)$ где последний блок блок $n$.

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

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

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


Если вас интересуют такие вещи, вы можете взглянуть на (двунаправленный) режим Infinite Garble Extension, также известный как IGE и biIGE. Но обратите внимание, что в большинстве случаев лучше всего использовать MAC.

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

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