密码学-置换群相关的运算及实现_

上传人:公**** 文档编号:431203572 上传时间:2022-10-12 格式:DOC 页数:5 大小:460KB
返回 下载 相关 举报
密码学-置换群相关的运算及实现__第1页
第1页 / 共5页
密码学-置换群相关的运算及实现__第2页
第2页 / 共5页
密码学-置换群相关的运算及实现__第3页
第3页 / 共5页
密码学-置换群相关的运算及实现__第4页
第4页 / 共5页
密码学-置换群相关的运算及实现__第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《密码学-置换群相关的运算及实现_》由会员分享,可在线阅读,更多相关《密码学-置换群相关的运算及实现_(5页珍藏版)》请在金锄头文库上搜索。

1、. .电力学院Shanghai University of Electric Power实验报告 院系名称: 计算机科学与技术学院 _课程名称:_ _ 应用密码学 _ _ _ 实验工程名称:置换群相关的运算及实现_实验一 置换群相关的运算及实现一、 实验目的 理解密码学相关根本概念 理解并能够编写根本的古典密码体制 熟练应用C+编程实现密码体制二、 实验容1、 求S3的所有元素并输出所有的置换。2、 水域S3的任意两个置换元素,求他们的复合运算的结果。3、 给定S3的某个置换,求它的逆置换。三、 实验原理1. 置换群:n元对称群的任意一个子群,都叫做一个n元置换群2. 矩阵的复合运算3. 矩阵

2、的求逆运算四、 实验步骤包括流程图、功能模块1. 申请18个空间,将3个元素依次循环填入填充。2. 通过置换,求得所有置换群3. 矩阵的复合运算4. 矩阵的求逆运算【算法流程图】申请空间,并填充数值通过置换计算出置换群打印置换群矩阵的复合求取逆矩阵五、 软件使用说明开发环境、参数使用详细说明、实验结果+相应截图等【功能模块】求取置换群for (int i = 0; i3; i+) swap(Abeliani * 6, Abeliani * 6 + i);swap(Abeliani * 6 + 3, Abeliani * 6 + 3 + i);swap(Abeliani * 6 + 4, Abe

3、liani * 6 + 4 + 1);矩阵的复合for (int i = 0; i3; i+)for (int j = 0; j3; j+)if (Abelian3 * (m - 1) + i = Abelian_Group_srcj)Compound_Operatei = Abelian3 * (n - 1) + j;逆矩阵for (int i = 0; i3; i+)for (int j = 0; j3; j+)if (Abelian3 * (n - 1) + i = Abelian_Group_srcj)inverse_operationj = Abelian_Group_srci;【开

4、发环境】Visual Studio 2021 Windows10【参数使用】输入的三个元素:4、5、6选择做复合运算的两个置换:4、5求逆的矩阵4【实验结果】六、 参考资料书籍或网络文章密码编码学与网络平安原理与实践第五版七、 实验心得和总结八、 源代码*include*includeusing namespace std;int main()/1int *Abelian_Group_src = new int3;cout 请依次输入元素值:;for (int i = 0; i Abelian_Group_srci;int Abelian18;for (int i = 0; i18; i =

5、i + 3)/因为每个置换群的第一行都一样,所以只需要对剩下的一行操作即可。3的阶层是6,一共有六个置换群,去掉第一行,一共有6x3个数,每一组默认值按照输入的顺序赋值,并放在同一个数组中Abeliani = Abelian_Group_src0;Abeliani + 1 = Abelian_Group_src1;Abeliani + 2 = Abelian_Group_src2;for (int i = 0; i3; i+)/置换操作,18个数分为3组,每一组中的两个小组的第一个数分别于组数对应的数字交换,然后交换每一组最后两个数字swap(Abeliani * 6, Abeliani *

6、6 + i);swap(Abeliani * 6 + 3, Abeliani * 6 + 3 + i);swap(Abeliani * 6 + 4, Abeliani * 6 + 4 + 1);cout S3的所有置换: endl;for (int i = 0; i18; i = i + 3)cout 置换 i / 3 + 1 :;cout Abelian_Group_src0 Abelian_Group_src1 Abelian_Group_src2 endl;cout Abeliani Abeliani + 1 Abeliani + 2 endl;cout endl;/2int m, n;

7、cout n m;while (n6 | m6)cout 输入错误,请重新输入! endl;cout n m;int Compound_Operate3;for (int i = 0; i3; i+)for (int j = 0; j3; j+)if (Abelian3 * (m - 1) + i = Abelian_Group_srcj)Compound_Operatei = Abelian3 * (n - 1) + j;/ if(Abelian3*(m-1)+i=Abelian_Group_src0)/ Compound_Operatei=Abelian3*(n-1);/ if(Abeli

8、an3*(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;cout Abelian_Group_src0 Abelian_Group_src1 Abelian_Group_src2 Abelian_Group_src0 Abelian_Group_src1 Abelian_Group_src2 Abelian_Group_src0 Abelian_Group_sr

9、c1 Abelian_Group_src2 endl;cout 。 = endl;cout Abelian3 * (n - 1) Abelian3 * (n - 1) + 1 Abelian3 * (n - 1) + 2 Abelian3 * (m - 1) Abelian3 * (m - 1) + 1 Abelian3 * (m - 1) + 2 Compound_Operate0 Compound_Operate1 Compound_Operate2 endl;/3int inverse_operation3;cout n;while (n6)cout 输入错误,请重新输入! endl;c

10、out n;for (int i = 0; i3; i+)for (int j = 0; j3; j+)if (Abelian3 * (n - 1) + i = Abelian_Group_srcj)inverse_operationj = Abelian_Group_srci;cout Abelian_Group_src0 Abelian_Group_src1 Abelian_Group_src2 endl;cout Abelian3 * (n - 1) Abelian3 * (n - 1) + 1 Abelian3 * (n - 1) + 2 endl;cout 的逆置换为: endl;cout Abelian_Group_src0 Abelian_Group_src1 Abelian_Group_src2 endl;cout inverse_operation0 inverse_operation1 inverse_operation2 endl;system(pause);return 0;教育之通病是教用脑的人不用手,不教用手的人用脑,所以一无所能。教育革命的对策是手脑联盟,结果是手与脑的力量都可以大到不可思议。优选

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号