【发布时间】:2016-12-08 01:02:19
【问题描述】:
我只是在学习 c,我正在尝试从算法中实现一个 for 循环。我对如何实现它感到非常困惑,请参阅下面的尝试。任何帮助或想法将不胜感激,这意味着循环中的循环依赖于十六进制值。它来自差分密码分析算法。
算法中所述的循环是:
密文 C0 = (L0,R0) 密文 C1 = (L1,R1)
在哪里
long long c0 = 0x78661EB54FE76763;
long long c1 = 0x98D9EC2327F1BF03;
到目前为止我的尝试
long long c0 = 0x78661EB54FE76763;
long long c1 = 0x98D9EC2327F1BF03;
for (int c0 = 0; c0 <= 0xff; c0++)
{
for (int c1 = 0; c1 <= 0xff; c1++)
{
}
}
但我不知道如何处理对十六进制值的依赖。它是后序:(0, 0), (0, 1), (1, 2), ..., (0, 255), (1, 0), ...
所以它意味着所有可能的组合——只要你把它们全部看完,顺序就无关紧要了。
【问题讨论】:
-
问题是什么?你的循环似乎是正确的......
-
如果您查看图像中的 for 循环,它会以完整的形式显示对两个密文值的依赖关系,因此问题是如何在十六进制值的上下文中编写循环
-
您可以查看循环内的内容并确定它是否取决于顺序,或者您可以阅读算法周围的文本,它可能会告诉您。
-
注意
c1可能初始化为负数。建议使用unsigned long long。
标签: c algorithm for-loop cryptography cryptanalysis