我可以在Github上找到一些白盒AES 128的实现,如wbaes-1、wbaes-2、wbaes-3等,它们都是基于WB AES加密技术开发的。理想情况下,大多数实现包括两部分:
(1)。Table_Generator.c (或.cpp,.h .)输入:16字节键;输出:一个大的查找表(例如table.h),其中键信息已经隐藏在这个查找表中
(2)。AES_Encrypt.c。输入:纯文本&从(1)生成的表;输出:密码文本
但我也需要解密实现。
首先,让我确认一个基本问题:
然后,主要问题是:
发布于 2019-06-19 16:47:24
加密和解密主要区别于以下两个步骤:
为了解决这个问题,您可以简单地在反模式下使用AES。这样,加密和解密就变成了完全相同的操作,您可以简单地使用为两者找到的加密实现。
不加密消息本身,而是加密随机值,然后使用相应的明文块对XORed进行加密。在此之后,计数器被递增(例如,由1)并再次加密。结果是带有下一个消息块的XORed,依此类推。这样,对于加密来说,只需重复相同的步骤(加密计数器,用密文对结果进行XOR,增加计数器和重复)。
下面链接到它的工作原理图:https://en.wikipedia.org/wiki/Block_密码学_模式_的_operation#CTR
如果可能的话,使用现有的库。密码运行很容易,但很难确保安全。
https://crypto.stackexchange.com/questions/71431
复制相似问题