Введение

Гибкость — это свойство некоторых криптографических алгоритмов. Алгоритм шифрования считается "гибким", если возможно преобразовать шифротекст в другой шифротекст, который при дешифровании даст связанный открытый текст. То есть, имея шифротекст, полученный из открытого текста , можно сгенерировать другой шифротекст, который при дешифровании даст , для известной функции , не обязательно зная или узнавая .

Гибкость часто является нежелательным свойством в криптосистеме общего назначения, поскольку она позволяет злоумышленнику изменять содержимое сообщения. Например, предположим, что банк использует поточный шифр для защиты своей финансовой информации, и пользователь отправляет зашифрованное сообщение, содержащее, скажем, "100". Если злоумышленник может изменить сообщение в процессе передачи и угадать формат незашифрованного сообщения, он может изменить сумму транзакции или получателя средств, например, на "". Гибкость не относится к способности злоумышленника прочитать зашифрованное сообщение. Как до, так и после изменения, злоумышленник не может прочитать шифротекст. С другой стороны, некоторые криптосистемы изначально разработаны как гибкие. Другими словами, в некоторых случаях это может рассматриваться как полезная функция, позволяющая любому преобразовать шифротекст в действительный шифротекст (для некоторого ограниченного класса функций) без необходимости узнавать . Такие схемы известны как схемы гомоморфного шифрования. Криптосистема может быть семантически устойчива к атакам с выбранным открытым текстом или даже к неадаптивным атакам с выбранным шифротекстом (CCA1), при этом оставаясь гибкой. Однако устойчивость к адаптивным атакам с выбранным шифротекстом (CCA2) эквивалентна негибкости.

Примеры криптосистем с поддающейся коррекции

В потоковом шифре шифротекст создается путем применения операции исключающего ИЛИ к открытому тексту и псевдослучайному потоку, основанному на секретном ключе, поскольку противник может построить шифрование любого сообщения для любого ключа, как в криптосистеме RSA, где открытый текст шифруется как , а является открытым ключом. При наличии такого шифротекста противник может создать шифрование любого сообщения для любого ключа, как. По этой причине RSA обычно используется вместе с методами заполнения, такими как OAEP или PKCS1. В криптосистеме ElGamal открытый текст шифруется как , где является открытым ключом. При наличии такого шифротекста противник может вычислить , что является допустимым шифрованием для любого . В отличие от этого, система Cramer-Shoup (которая основана на ElGamal) не является податливой к изменению. В криптосистемах Paillier, ElGamal и RSA также возможно объединить несколько шифротекстов полезным образом для получения связанного шифротекста. В Paillier, имея только открытый ключ и шифрования и , можно вычислить допустимое шифрование их суммы. В ElGamal и RSA можно объединить шифрования и для получения допустимого шифрования их произведения.

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

Полная непластичность

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