1、 理解密码学相关基本概念 理解并能够编写基本的古典密码体制 熟练应用C+编程实现密码体制二、 实验内容1、 求S3的所有元素并输出所有的置换。2、 水域S3的任意两个置换元素,求他们的复合运算的结果。3、 给定S3的某个置换,求它的逆置换。三、 实验原理1. 置换群:n元对称群的任意一个子群,都叫做一个n元置换群2. 矩阵的复合运算3. 矩阵的求逆运算四、 实验步骤(包括流程图、功能模块)1. 申请18个空间,将3个元素依次循环填入填充。2. 通过置换,求得所有置换群3. 矩阵的复合运算4. 矩阵的求逆运算【算法流程图】五、 软件使用说明(开发环境、参数使用详细说明、实验结果+相应截图等)【功
2、能模块】求取置换群 for (int i = 0; i3; i+) swap(Abeliani * 6, Abeliani * 6 + i); swap(Abeliani * 6 + 3, Abeliani * 6 + 3 + i); swap(Abeliani * 6 + 4, Abeliani * 6 + 4 + 1); 矩阵的复合 for (int i = 0; i+) for (int j = 0; j j+) if (Abelian3 * (m - 1) + i = Abelian_Group_srcj) Compound_Operatei = Abelian3 * (n - 1)
3、+ j;逆矩阵 for (int j = 0; if (Abelian3 * (n - 1) + i = Abelian_Group_srcj) inverse_operationj = Abelian_Group_srci;【开发环境】Visual Studio 2013 (Windows10)【参数使用】输入的三个元素:4、5、6选择做复合运算的两个置换:4、5求逆的矩阵编号:4【实验结果】六、 参考资料(书籍或网络文章)密码编码学与网络安全原理与实践(第五版)七、 实验心得和总结八、 源代码#includestring.husing namespace std;int main() /1
4、 int *Abelian_Group_src = new int3; cout Abelian_Group_srci; int Abelian18;18; i = i + 3)/因为每个置换群的第一行都相同,所以只需要对剩下的一行操作即可。3的阶层是6,一共有六个置换群,去掉第一行,一共有6x3个数,每一组默认值按照输入的顺序赋值,并放在同一个数组中 Abeliani = Abelian_Group_src0; Abeliani + 1 = Abelian_Group_src1; Abeliani + 2 = Abelian_Group_src2; i+)/置换操作,18个数分为3组,每一组
5、中的两个小组的第一个数分别于组数对应的数字交换,然后交换每一组最后两个数字S3的所有置换: endl; i = i + 3) cout 置换 i / 3 + 1 : Abelian_Group_src0 Abelian_Group_src1 Abelian_Group_src2 Abeliani Abeliani + 1 Abeliani + 2 n m; while (n6 | m6)输入错误,请重新输入!请输入需要作复合运算的两个元素,即在上面的置换中任选2个(输入数字16): int Compound_Operate3; / if(Abelian3*(m-1)+i=Abelian_Gro
6、up_src0) / Compound_Operatei=Abelian3*(n-1); / if(Abelian3*(m-1)+i=Abelian_Group_src1) / Compound_Operatei=Abelian3*(n-1)+1; / if(Abelian3*(m-1)+i=Abelian_Group_src2) / Compound_Operatei=Abelian3*(n-1)+2; 。 = Abelian3 * (n - 1) Abelian3 * (n - 1) + 1 Abelian3 * (n - 1) + 2 Abelian3 * (m - 1) Abelian
7、3 * (m - 1) + 1 Abelian3 * (m - 1) + 2 Compound_Operate0 Compound_Operate1 Compound_Operate2 /3 int inverse_operation3;请输入需要求逆的矩阵编号,即在上面的置换编号(输入数字16): n; if (Abelian3 * (n - 1) + i = Abelian_Group_srcj) inverse_operationj = Abelian_Group_srci;的逆置换为: inverse_operation0 inverse_operation1 inverse_operation2 system(pause); return 0;Welcome ToDownload !欢迎您的下载,资料仅供参考!
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1