Алгоритм Гровера будет работать против CBC. Вы имеете в виду, что у вас есть несколько тысяч сообщений с открытым текстом/зашифрованным текстом, каждое со своим IV?
Я не уверен, что вы делаете на шаге 2. Я думаю, что обычно IV считается частью зашифрованного текста, поэтому, если у вас есть зашифрованный текст, у вас есть IV, а затем вы получаете такие уравнения, как:
АЭС-128$_d$(С$_1$, К) = IV $\оплюс$ п$_1$
АЭС-128$_d$(С$_2$, К) = С$_1 \оплюс$ п$_2$
и т.д.
Для алгоритма Гровера, поскольку вы знаете правую часть и знаете входные данные для расшифровки AES, вы можете искать в пространстве K и, для оракула, использовать схему для выполнения расшифровки AES C$_1$, С$_2$и т. д. и сравните со значением в правой части.
Для почти полной уверенности в том, что возвращаемое значение K верное, вам потребуется всего 2 блоки для AES-128 (т.е. просто C$_1$ и С$_2$ одного сообщения), 2 блока для AES-192 и 3 блока для AES-256. Как правило, если вы используете $г$ блоки, каждый с $n$ биты и с ключом $к$ бит, вероятность того, что поиск Гровера найдет правильный ключ, составляет около $е^{-2^{к-рн}}$. Так что если $k<rn$, вам практически гарантирован правильный результат (см. раздел «Фальшивые ключи» на стр. 4 Эта бумага для вывода).