Пластичность является свойством некоторых криптографических алгоритмов . [1] Алгоритм шифрования является «пластичным», если возможно преобразовать шифротекст в другой шифротекст, который расшифровывается в связанный открытый текст . То есть, имея шифрование открытого текста , можно сгенерировать другой шифротекст, который расшифровывается в , для известной функции , без необходимости знать или изучать .
Пластичность часто является нежелательным свойством в криптосистеме общего назначения, поскольку она позволяет злоумышленнику изменять содержимое сообщения. Например, предположим, что банк использует потоковый шифр для сокрытия своей финансовой информации, и пользователь отправляет зашифрованное сообщение, содержащее, скажем, « ПЕРЕДАТЬ $0000100.00 НА СЧЕТ № 199 ». Если злоумышленник может изменить сообщение в сети и может угадать формат незашифрованного сообщения, злоумышленник может изменить сумму транзакции или получателя средств, например, « ПЕРЕДАТЬ $0100000.00 НА СЧЕТ № 227 ». Пластичность не относится к способности злоумышленника прочитать зашифрованное сообщение. Как до, так и после взлома злоумышленник не может прочитать зашифрованное сообщение.
С другой стороны, некоторые криптосистемы по своей сути являются пластичными. Другими словами, в некоторых обстоятельствах это можно рассматривать как свойство, которое любой может преобразовать шифрование в допустимое шифрование (для некоторого ограниченного класса функций ) без необходимости обучения . Такие схемы известны как схемы гомоморфного шифрования .
Криптосистема может быть семантически защищена от атак с выбранным открытым текстом или даже от атак с неадаптивным выбранным шифротекстом (CCA1), оставаясь при этом податливой. Однако защищенность от атак с адаптивным выбранным шифротекстом (CCA2) эквивалентна неподатливости. [2]
В потоковом шифре шифртекст создается путем взятия исключающего ИЛИ открытого текста и псевдослучайного потока на основе секретного ключа , как . Злоумышленник может построить шифрование для любого , как .
В криптосистеме RSA открытый текст шифруется как , где — открытый ключ. Имея такой шифртекст, злоумышленник может построить шифрование для любого , как . По этой причине RSA обычно используется вместе с методами заполнения , такими как OAEP или PKCS1.
В криптосистеме Эль-Гамаля открытый текст шифруется как , где — открытый ключ. Имея такой шифртекст , злоумышленник может вычислить , что является допустимым шифрованием , для любого . Напротив, система Крамера-Шоупа (основанная на Эль-Гамале) не является податливой.
В криптосистемах Paillier , ElGamal и RSA также возможно объединить несколько шифротекстов вместе полезным способом для получения связанного шифротекста. В Paillier, имея только открытый ключ и шифрование и , можно вычислить действительное шифрование их суммы . В ElGamal и в RSA можно объединить шифрование и , чтобы получить действительное шифрование их произведения .
Например, блочные шифры в режиме работы цепочки блоков шифра частично поддаются изменению: переворачивание бита в блоке зашифрованного текста полностью исказит открытый текст, в который он расшифровывается, но приведет к тому, что тот же бит будет перевернут в открытом тексте следующего блока. Это позволяет злоумышленнику «пожертвовать» одним блоком открытого текста, чтобы изменить некоторые данные в следующем, возможно, сумев злонамеренно изменить сообщение. По сути, это основная идея атаки оракула-заполнения на CBC , которая позволяет злоумышленнику расшифровать почти весь зашифрованный текст, не зная ключа. По этой и многим другим причинам для защиты от любого метода подделки требуется код аутентификации сообщения .
В 2005 году Фишлин определил понятие полной неподатливости как способность системы оставаться неподатливой , предоставляя при этом злоумышленнику дополнительную возможность выбрать новый открытый ключ, который может быть функцией исходного открытого ключа. [3] Другими словами, злоумышленник не должен иметь возможности придумать шифротекст, базовый открытый текст которого связан с исходным сообщением через отношение, которое также учитывает открытые ключи.
{{cite book}}
: |work=
проигнорировано ( помощь )