‘壹’ 什么是密码分析,其攻击类型有哪些
答:密码分析是指研究在不知道密钥的情况下来恢复明文的科学。攻击类型有只有密文的攻击,已知明文的攻击,选择明文的攻击,适应性选择明文攻击,选择密文的攻击,选择密钥的攻击,橡皮管密码攻击。S盒是DES算法的核心。其功能是把6bit数据变为4bit数据。
‘贰’ 蒙特卡洛树是什么算法
蒙特卡罗树搜索(MCTS)会逐渐的建立一颗不对称的树。可以分为四步并反复迭代:
(1)选择
从根节点,也就是要做决策的局面R出发向下选择一个最急迫需要被拓展的节点T;局面R是第一个被检查的节点,被检查的节点如果存在一个没有被评价过的招式m,那么被检查的节点在执行m后得到的新局面就是我们所需要展开的T;如果被检查的局面所有可行的招式已经都被评价过了,那么利用ucb公式得到一个拥有最大ucb值的可行招式,并且对这个招式产生的新局面再次进行检查;如果被检查的局面是一个游戏已经结束的游戏局面,那么直接执行步骤4;通过反复的进行检查,最终得到一个在树的最底层的最后一次被检查的局面c和它的一个没有被评价过的招式m,执行步骤2。
(2)拓展
对于此时存在于内存中的局面c,添加一个它的子节点。这个子节点由局面c执行招式m而得到,也就是T。
(3)模拟
从局面T出发,双方开始随机的落子。最终得到一个结果(win/lost),以此更新T节点的胜利率。
(4)反向传播
在T模拟结束之后,它的父节点c以及其所有的祖先节点依次更新胜利率。一个节点的胜利率为这个节点所有的子节点的平均胜利率。并从T开始,一直反向传播到根节点R,因此路径上所有的节点的胜利率都会被更新。
‘叁’ 设计一个算法代码 ,解字谜ABCAB*A=DDDDDD
#include <stdio.h>
int main()
{
int a, b, c, dddddd;
for(a=1; a<=9; a++)
for(b=0; b<=9; b++)
for(c=0; c<=9; c++)
{
dddddd = (a*10000 + b*1000 + c*100 + a*10 + b) * a;
if(dddddd % 111111 == 0)
printf(" %d%d%d%d%d X %d = %d\n", a,b,c,a,b,a,dddddd);
}
return 0;
}