Hoje, seu objetivo é descriptografar uma mensagem secreta usando o AES . Dado um texto cifrado e uma chave, você descriptografará e imprimirá a mensagem.
Seu programa pode estar em qualquer idioma. Ele será executado com a entrada stdin e sua saída no stdout será verificada quanto à correção.
A primeira linha de entrada no stdin será a chave de 16 bytes, codificada em hexadecimal. A segunda linha de entrada no stdin será o texto cifrado de 16 bytes, codificado em hexadecimal.
A saída do programa deve ser a mensagem de 16 bytes após descriptografar o texto cifrado usando AES-128 com a chave fornecida. Você deve produzir o resultado interpretado como octetos ASCII. Você pode assumir que qualquer resultado é ASCII válido após descriptografar.
Você não pode usar nenhum recurso de biblioteca / interno que implemente o AES. Você pode usar esses recursos para converter entre codificações hexadecimais / binárias / ASCII.
O menor código em bytes vence.
Exemplo de entrada e saída:
bd8ab53f10b3d38576a1b9a15cf03834
02c0ee126cae50ba938a8b16f0e04d23
Ataque amanhã.
E outro:
f4af804ad097ba832906db0deb7569e3
38794338dafcb09d6b32b04357f64d4d
Parabéns.
fonte
Respostas:
Python, 661 caracteres
k
é a chave,c
é o texto cifrado. Eu construo P, os poderes de 3 no campo, entãoS
, a caixa de entrada. Em seguida,k
é estendido com o cronograma principal. Finalmente, fazemos a descriptografia da AES. Mixcolumns é a fase difícil, todas as outras fases são bem diretas.fonte