Расшифровка одного и того же зашифрованного текста разными ключами (AES) - PullRequest
4 голосов
/ 13 февраля 2011

Допустим, у меня есть ключ - k и простой текст P. Затем я шифрую P с помощью AES, используя ключ k:

C = AES_k (P)

Теперь допустим,другой простой текст, который я выбрал - P *. Этот простой текст не имеет ничего общего с P, я выбираю его таким, каким я хочу, чтобы он был.

Возможно ли найти ключ - k *, поэтомучто когда я расшифрую C с помощью k *, я получу P *?

Значение: D_k * (AES_k (P)) = P *

Ответы [ 4 ]

8 голосов
/ 13 февраля 2011

Я не думаю, что ключ обязательно будет существовать. Ключ определяет перестановку всех возможных значений блока. Имеет размер блока 128 бит (2 ^ 128)! возможные перестановки. С 256-битным ключом есть 2 ^ 256 возможных ключей. Это значительно меньше, чем количество перестановок, и поэтому не каждая перестановка может быть указана. Я думаю - хотя я, конечно, не могу доказать или даже утверждать - что это означает, что не может быть определенной перестановки, которая отображает выбранный вами второй открытый текст в зашифрованный.

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

4 голосов
/ 15 февраля 2011

Я предполагаю, что ваши открытые тексты и шифротексты P, P * и C являются 128-битными блоками.

Если ваши ключи k и k * имеют 128-битную длину (т.е. вы используете AES-128)), то, с вероятностью около 36,8%, решения не существует: более формально, если вы рассмотрите множество всех возможных значений для C и P * (2 256 комбинаций), то для примерно e -1 из них нет k * такого, что AES_k * (P *) = C.

Это следует из идеи, что для данного значения P * функция, которая преобразует k* в AES_k * (P *) должен вести себя как случайная функция, а случайная функция от набора размером N до набора идентичного размера N имеет среднее покрытие 1-e -1 из целевого набора.Здесь для данного P * имеется около 63,2% 128-битных слов, которые являются возможными выходами AES-шифрования P * с помощью 128-битного ключа.

С другой стороны, если вы разрешите k* чтобы быть шире (AES также принимает 192-битные и 256-битные ключи), тогда должно быть очень много решений k * для вашего уравнения.

В любом случае, на самом деле находка k * (даже 192-битное или 256-битное k *) должно быть недопустимым, с рабочим коэффициентом, близким к 2 128 операций.Возможность найти k * с меньшим количеством работы, чем это можно рассматривать как структурный недостаток в AES.Знание P и k никоим образом не помогает: для данного 128-битного зашифрованного текста C легко найти совпадающие пары (P, k).

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

1 голос
/ 21 марта 2011

Можно получить k * и расшифровать C, чтобы получить открытый текст P *, но только расшифровав его с помощью другого типа шифра, например, шифра vernam.

вы можете получить k * так, что D_k * (AES_k (P)) произведет ваш P *.

вы просто делаете: P * ^ C, чтобы получить ваш к * затем, если вы расшифруете: k * ^ C, вы получите P * (при условии, что C и P * имеют одинаковый размер)

но если размер вашего P * меньше, чем C, то он даст повторяющийся P *

^: побитовый XOR

Я не уверен, что это то, что вы хотите, вы не упоминали, что хотите расшифровать его также с помощью AES.

1 голос
/ 13 февраля 2011

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

Например, если у меня есть шифр ADGWTX и яЯ знаю, что он зашифрован с использованием простого XOR и 6-буквенного ключа, но я до сих пор не могу взломать его без дополнительной информации о ключе.Потому что один ключ даст мне ESCAPE, в то время как другой ключ даст мне ATTACK.

Идеальная защита - это особенность «одноразовой клавиатуры» (http://en.wikipedia.org/wiki/One-time_pad),, но не AES.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...