-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
加密结果好像跟标准SM4不一样 #1
Comments
因为
因为在每一轮与下一轮进行编码抵消之后会引入32bit的随机向量与矩阵乘积,所以结果会有不一样。在肖雅莹原论文中没有看到这个冗余量在哪里抵消,所以我认为结果跟标准的不同。 |
最后不是对结果解码了吗?您自己做了测试吗,解密出来的结果是否正确? |
|
我做了测试,首先,加密结果与标准的不同,其次,我将轮密钥反过来生成解密查找表,得到的结果也不对。 unsigned int mainKey[4] = |
我测试的结果是,重新创建查找表之后的输出结果都会不同,在原论文中提到了会在下一轮对上一轮的输出编码进行解码时引入一个(解码矩阵乘以输出编码(仿射)的常数部分),但是没有提到在何处消去这个冗余,并且在之后的安全性分析中,似乎是由于这个冗余的存在,使得该算法能够抵抗BGE分析。如果你感兴趣的话,可以按照潘文伦论文中的方法实现这个算法,看最终结果是否跟我现在的结果情况相同。 |
我将你代码中的函数都测试了一遍,除了跟矩阵相关的都没问题,有关矩阵的函数的话因为不知道结果是什么,所以无法测试正确性。你现在还在跟进你的这个实现吗? |
加密结果好像跟标准SM4不一样
The text was updated successfully, but these errors were encountered: