Режим шифрования: различия между версиями

[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
→‎Cipher Block Chaining (CBC): добавлено прояснение
Строка 182:
 
При отсутствии обратной связи алгоритмы шифрования и расшифровки в режиме CTR могут выполняться параллельно. Более того, большие объёмы вычислений, связанные с шифрованием значений счётчика, могут быть выполнены заранее, до того, как открытый текст или шифротекст окажутся доступными. Это обеспечивает режиму CTR преимущество перед режимами CFB и OFB.
 
=== Random Delta (RD) ===
 
Режим Random Delta<ref name="eight">[https://acbaile.azurewebsites.net/rezim-blocnogo-sifrovaniya-random-delta/ Режим блочного шифрования «Random Delta»]</ref> используется для устранения предсказуемости изменения счётчика в режиме CTR. К примеру, это AES, и размер блока 16 байт. Берётся случайный Initialization Vector (например, с помощью rdrand). Его младшие 8 байт считаются случайной дельтой — Random Delta (RD):
 
[[Файл:Block_Cypher_Mode_Random_Delta_Initialization_Vector.jpg|||center|Initialization Vector и Random Delta]]
 
Initial (Initialization Vector) шифруется и передаётся в начале сообщения. Блок 0 перед шифрованием XOR-ится с Initial. Для каждого последующего блока величина Initial увеличивается на Delta (в беззнаковом целочисленном представлении — uint128 += uint64):
 
[[Файл:Block_Cypher_Mode_Random_Delta_Scheme.jpg|||center|Режим сцепления "Random Delta"]]
 
Таким образом устраняется предсказуемость изменения счётчика в режиме CTR. Если там дельта — всегда единица, здесь дельта — случайное число, одно из 2^64. Злоумышленнику оно, как и Initial, неизвестно.
 
Также, CTR настораживает непосредственным соседством открытого текста с шифротекстом через XOR. В Random Delta между открытым текстом и шифротекстом лежит AES.
 
Открытость передачи Initial также вызывает вопросы. Чем меньше атакующий видит — тем лучше. Чем более открытый текст отдалён от шифротекста — тем лучше. Все известные режимы — ECB, CBC, OFB, CTR — обладают какими-то из этих недостатков. В Random Delta всё лежит за AES-ом, а Initial и Delta — случайные величины, которые злоумышленнику неизвестны.
 
Изменение шифротекста хотя бы на бит и перестановки блоков превращают дешифрованный текст в абракадабру. Впрочем, один из недостатков CTR в RD присутствует. Знание формата передаваемых данных позволяет вбрасывать в определённые места этих данных случайные искажения, что может быть использовано для атаки. Для проверки целостности, в блочную последовательность может быть добавлен хэш:
 
[[Файл:Block_Cypher_Mode_Random_Delta_Hash.jpg|||center|Random Delta + Hash]]
 
Похоже, что Random Delta + Hash указанных недостатков лишён. Передано в общественное достояние.
 
=== Galois/Counter Mode (GCM) и AEAD ===
[[GCM|Galois/Counter Mode]] (счётчик с аутентификацией [[Галуа, Эварист|Галуа]]) - более безопасная модификация CTR, предоставляющее аутентифицированное шифрование с присоединёнными данными ([[AEAD-режим блочного шифрования]]).
 
 
== Initialization vector (IV) ==