Расшифровка AES с неверным ключом. как скрыть тот факт, что ключ был неправильным? - PullRequest
0 голосов
/ 16 марта 2019

Я использую CryptoJS . Когда я использую AES.decrypt с неправильным ключом, я заметил, что у него обычно есть отрицательный «sigBytes», который говорит мне, что я использовал неправильный ключ. почему это возможно? это как-то связано с неправильным заполнением? Я пробовал разные режимы AES, та же проблема. возможно ли даже для AES не признать сбой?

существует ли стандартный алгоритм шифрования, который расшифровывает до случайных байтов без указания на успех или неудачу?

1 Ответ

0 голосов
/ 16 марта 2019

Да, потоковые шифры обычно никогда не сообщают о сбое.По сути, если вы знаете, что размер зашифрованного текста совпадает с размером открытого текста, об ошибке не может быть сообщено.Это связано с тем, что шифры общего назначения обычно принимают любое сообщение, что означает, что для каждого открытого текста существует ровно один зашифрованный текст для определенной длины в битах и ​​наоборот, независимо от того, какой ключ используется.Такое отображение 1: 1 называется псевдослучайной перестановкой или PRP.Поскольку каждый зашифрованный текст возвращает обратно к действующему текстовому сообщению, нет ошибки для возврата.

Таким образом, все потоковые шифры (такие как ChaCha) и режимы потокового блочного шифра будут иметь это свойство.Режимы потоковой передачи - это режимы, которые не требуют заполнения и, следовательно, не должны расширять размер зашифрованного текста по сравнению с размером открытого текста.Конечно, если вы активно указываете, что требуется заполнение, вы можете уничтожить это конкретное свойство.В настоящее время наиболее распространенным режимом счетчика является, вероятно, режим CTR, также потому, что он используется почти во всех режимах с проверкой подлинности .CFB / OFB обычно рассматриваются только в унаследованных целях.

Остерегайтесь того, что злоумышленник все еще может получить информацию в зависимости от информации в открытом тексте.Как правило, ключ может быть найден, даже если известно очень мало открытого текста (например, заголовок JPEG может быть достаточным знанием).Другие операции с неверным открытым текстом также могут легко указывать на сбой (превращение принимающей стороны в так называемого открытого текста оракула ).

...