Сегодня ваша цель - расшифровать секретное сообщение с помощью AES . Имея зашифрованный текст и ключ, вы расшифруете и распечатаете сообщение.
Ваша программа может быть на любом языке. Он будет запущен с вводом на stdin, а его вывод на stdout будет проверен на правильность.
Первой строкой ввода в stdin будет 16-байтовый ключ, закодированный в шестнадцатеричном формате. Вторая строка ввода в stdin будет 16-байтовым зашифрованным текстом, закодированным в шестнадцатеричном формате.
Результатом программы должно быть 16-байтовое сообщение после расшифровки зашифрованного текста с использованием AES-128 с заданным ключом. Вы должны вывести результат, интерпретированный как октеты ASCII. Вы можете предположить, что любой результат является действительным ASCII после расшифровки.
Вы не можете использовать какие-либо библиотеки / встроенные функции, которые реализуют AES. Вы можете использовать такие функции для преобразования между шестнадцатеричной / двоичной / ASCII-кодировкой.
Самый короткий код в байтах побеждает.
Пример ввода и вывода:
bd8ab53f10b3d38576a1b9a15cf03834
02c0ee126cae50ba938a8b16f0e04d23
Атака завтра.
И другой:
f4af804ad097ba832906db0deb7569e3
38794338dafcb09d6b32b04357f64d4d
Поздравляю.
Ответы:
Питон, 661 символ
k
это ключ,c
это зашифрованный текст. ЯS
строю P, полномочия 3 в поле, а затем , sbox. Затемk
продлевается с ключевым графиком. Наконец мы делаем расшифровку AES. Mixcolumns - это сложная фаза, все остальные фазы довольно просты.источник