-
提示文档:
实验已给出明文和密文,如下所示,并且已知加密方法为 aes-128-cbc,IV 全由 0 组成,以及 key 的长度小于 16 个字母,该单词可以从一般的英文词典中得到。由于该单词小于 16 个字母(128bits)所以在其后追加了空格字符(对应 0x20)以达到 128bit 的长度。本例中词典已给出,文件名为word.txt. -
任务:
写一个程序找到加密密钥key。鼓励自己写程序,也可以使用实验楼中的代码,本实验即文件key.c,请调通key.c,给程序中每条语句添加注释,并画出程序的流程图。
明文 (21 个字符): This is a top secret.
密文 (十六进制形式): 8d20 e505 6a8d 24d0 462c e74e 4904 c1b5 13e1 0d1d f4a2 ef2a d454 0fae 1ca0 aaf9 -
备注:
1: 明、密文对都直接放在了程序中。如果你打算将明文存储在文件中读取,可能会有一些麻烦。
2: 为了编译代码,可以在linux平台需要写 makefile,如下。
NC=/usr/local/ssl/include/
LIB=/usr/local/ssl/lib/
all:
gcc -I$(INC) -L$(LIB) -o enc yourcode.c -lcrypto –ldl
也可以直接在linux平台下直接运行带有相关参数的gcc命令。
如果使用另一种情形在windows平台下,可以使用codeblocks来作为编辑器,并加载已编译好的带有O