Criptografia AES (CBC)

39 views
Skip to first unread message

Erisson Siqueira

unread,
Apr 9, 2020, 2:10:25 PM4/9/20
to sis_embarcados
Olá Pessoal,

Estou tentando verificar o funcionamento da criptografia AES no modo CBC
mas não estou conseguindo entender direito.

A biblioteca pode ser encontrada em:

Segue um site para fazer uma simulação dessa criptografia:

Não sei se alguém conhece ou já trabalhou com ela,

Minha dúvida é que no site o código HEX foi gerado
com 32 bytes, o correto não seria gerar 16 bytes?
(Já que estou utilizando um tamanho de chave de 128bits e também
um vetor de inversão de 128 bits)

Conforme imagem em anexo na qual eu fiz um debug pelo keil, eu vi
que os bytes de in[0] até in[15] foram convertidos corretamente, porém
o restante dos bytes ficaram diferentes.

Desde já agradeço pelas dicas.
Se alguém tiver algum material ou um outro site mais confiável eu gostaria de saber.

Atenciosamente,
Erisson Siqueira


Debug_AES-CBC.jpg

Fernando Ginez da Silva

unread,
Apr 9, 2020, 3:42:16 PM4/9/20
to sis_embarcados
Erisson, boa tarde!

O que você está observando é a atuação do padding PKCS#7 (https://en.wikipedia.org/wiki/Padding_(cryptography)). Para que o segundo bloco de criptograma não seja gerado você precisará desativar o padding.

Para conferir se esta é mesmo a razão, pegue o criptograma resultante e decifre-o com a mesma chave e IV, e assim você encontrará no buffer em claro todos os bytes do segundo bloco iguais a 0x10 (indicando 16 bytes de padding).

Abraço,


_____________________________________________
Fernando Ginez da Silva



--
Você recebeu essa mensagem porque está inscrito no grupo "sis_embarcados" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para sis_embarcado...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/sis_embarcados/CAOWx4Qqq-XwTJx%3Db6GNwfzMnQG2NNUB%2BAEfieqNFCqfUnwZbBQ%40mail.gmail.com.

Denis Dos Santos Silva

unread,
Apr 9, 2020, 3:46:39 PM4/9/20
to sis_embarcados
pra saber a qtd de caracteres basta dividir por 8, p.ex.,
128-bit / 8 = 16 ( caracteres unsigned char / uint8_t )
256-bit / 8 = 32 ( caracteres unsigned char / uint8_t )

dependendo a biblioteca é necessário informar a senha usando DEC ou HEX.



$ echo 0123456789123456 | xxd
00000000: 3031 3233 3435 3637 3839 3132 3334 3536  0123456789123456

DEC | HEX
0   | 30
1   | 31
...

Erisson Siqueira

unread,
Apr 13, 2020, 3:31:55 PM4/13/20
to sis_embarcados
Valeu pelas dicas.

Era o padding mesmo.
Só que pelo site não tem como desativar o padding.

obrigado.

--
Você recebeu essa mensagem porque está inscrito no grupo "sis_embarcados" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para sis_embarcado...@googlegroups.com.

Denis Dos Santos Silva

unread,
Apr 15, 2020, 6:31:01 PM4/15/20
to sis_embarcados
é que...

cipher block:  aes, rsa, des, 3des, blowfish
- o resultado é ''complementado'' baseado no tamanho do bloco

cipher stream: rc4, ...
- o resultado é variavel 


Em quinta-feira, 9 de abril de 2020 15:10:25 UTC-3, Erisson Siqueira escreveu:
Reply all
Reply to author
Forward
0 new messages