Я предполагаю, что ваши открытые тексты и шифротексты 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-битным выводом.То, о чем вы просите, - это выполнимость атаки прообразом этой хэш-функции.