欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    希尔密码.docx

    • 资源ID:18571908       资源大小:43.50KB        全文页数:45页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    希尔密码.docx

    1、希尔密码 希尔密码(Hill Cipher)简介: 希尔密码是基于矩阵的线性变换, 希尔密码相对于前面介绍的移位密码以及放射密码而言, 其最大的好处就是隐藏了字符的频率信息, 使得传统的通过字频来破译密文的方法失效. 安全性: 希尔密码不是足够安全的, 如今已被证实, 关于希尔密码的破解不在本文范围内, 有兴趣的朋友可以研读相关书籍以了解相关破译方法. 希尔密码所需要掌握的前置知识: 1) 线性代数基础知识. 2) 初等数论基础知识. 坦白来说, 大部分密码学都要用到线性代数以及初等数论中的知识, 所以我希望大家可以自行找来相关书籍完成基础知识的学习, 所以关于什么是矩阵,什么是单位矩阵我不打

    2、算细讲. 在希尔密码中, 具体的话, 会涉及到矩阵的运算, 及其初等变化等. 约定: 1) 希尔密码常使用Z26字母表, 在此贴中, 我们也以Z26最为字母表进行讲解.在附带源码中有两种字母表选择. 2) 大家都知道最小的质数是2, 1 既不是质数也不是合数. 在此我们定义1对任何质数的模逆为其本身. 因为对于任意质数n, 有: 1*1 % n = 1 的. 也应该是很好理解的. 相关概念: 线性代数中的逆矩阵: 在线性代数中, 大家都知道,对于一个n阶矩阵 M , 如果存在一个n阶矩阵 N ,使得 M * N = E (其中: E为n阶单位矩阵), 则称矩阵 N 为 矩阵 M 的逆矩阵, 并

    3、记为 M-1. 比如 2阶矩阵 M = 3,6 , 则很容易得知其逆矩阵 : 2,7 M-1 = 7/9, -2/3 -2/9, 1/3 . 关于这个逆矩阵是如何计算出的, 通常的有两种方法: 一是使用伴随矩阵, 通过计算行列式得到. 所用公式为: M-1 = M* / D . (其中M*为M的伴随矩阵, D为M的行列式的值) 二是通过增广矩阵, 在M右侧附加一个n阶单位矩阵, 再通过初等变换将增广矩阵的左侧变换为一个n阶单位矩阵, 这时右侧便是所求的逆矩阵. 希尔密码原理: 加密者在对明文加密前会选择一个加密秘匙, 这个秘匙最终会以一个m矩阵的形式参与到加密算法中的. 在加密者选定了加密秘匙

    4、后, m便得到了确定, 这时,加密者将明文按m个字母一组的形式分成多组, 最后一组不足m个字母的按特定的方式补齐. 这样就形成了很多组由m个字母组成的单个向量, 然后 对每一个m阶向量, 我们用它去乘以确定好了的秘匙. 如下为其中的一个分组A向量加密后变为B向量的过程: A1,A2,A3 . Am * M = B1,B2,B3 . Bm . 我们将所有相乘后的向量连在一起, 便得到了密文. 这便是希尔密码的加密. 加密是非常简单的, 我们接下来来看一下解密部分, 解密部分要比加密部分稍微复杂一点点. 上面我们提到了矩阵的逆矩阵. 大家可能会想, 既然明文A向量乘以秘匙M矩阵就得到了密文B向量,

    5、 那么我们将B向量乘以M的逆矩阵, 不就可以得到A了吗? 大家的想法不错, 但是请注意: 我们上面的那个例子 矩阵3,6的逆矩阵为7/9, -2/3 , 发现了吧, 我们如果硬是去按常规方法计算M的逆矩阵的话, 你得到的 2,7 -2/9, 1/3 很可能是一个含有分式的矩阵. 这显然是不符合要求的.(为什么? ) _asm cmp you, 想知道为什么 jnz F 有的人会说,就算有分式又怎么样? 虽然分式在计算机中以浮点数体现, 但我还是让B乘以这个浮点数表示的M1, 然后对结果进行 四舍五入, 不久OK了? 不错这样是可以达到效果. 但是! 有以下几个缺点: 1): 平白无辜的扯到了浮

    6、点运算, 还要进行四舍五入, 降低了算法效率使其看起来相当愚蠢. 2): 解密秘匙体现的局限性, 其实是这个意思: 假如现在为二战时期, 我们需要派一位特工在盟军的两个司令部之间传达密钥. 而且 规定密钥只能以AZ这26个字母的形式体现. 也即你的秘匙只能是字母构成的, 接受方得到秘匙后按照Z26表对应将A当作0,B当作1, . Z当作25 来翻译, 然后解密. 这种情况下, 上面的分式就不好表示了. 当然在真实情况下, 密钥是怎么个传输法, 那还要区别对待. 于是, 我们想对于一个矩阵能否有另外一种的逆使得其各元素皆为Z26范围中的元素同时可以顺利地完成解密了? 当然有. 方法一: 最小公倍

    7、数法 这种方法是在前面的矩阵逆的基础上来做文章的. 如下. 我们接着上面那个带分式的M-1来说, 大家观察一下, 很容易知道, 其中的分母9 其实为 原矩阵M的行列式值: 9 = 3*7 - 2*6; 那我们将M-1乘以9, 不就可以消掉分母了吗? 呵呵. 不行的. 我们要想消掉分母, 肯定得乘以一个数, 那到底要乘以多少了. 这里因为我们是Z26的字母表. 我们要保证乘以一个数之后, 原来的明文字母所增大的部分一定得是26的整数倍. 也即如下 第一步: 设a为明文中的一个字母. x 为 需要对当前的M-1乘以的倍数. t为任意整数. ax = a + 26t. 恒成立. = t = a(x-

    8、1)/26 . 要想t为整数, 则 x = 26p+1 .p =1. 这里我们一般取p =1 即可. 因此 x = 27.(及字母表个数加一) 第二步: 要消掉分母, 我们必须乘以分母D(M)的倍数. 其中D(M)为M的行列式值. 得结果: 所求 x = 最小公倍数( 27, D(M) ) . 具体到上例中, x = 最小公倍数(27,9) = 27. 我们将上面的M-1 乘以27 得到: 21, -18 -6, 9 到了这一步, 我们得到了含负数的希尔逆矩阵.(注意: 从这里开始我们区别对待两种逆矩阵). 而负数还是不能用Z26中的字母表示, 怎么办? 没关系, 对于负数我们加上26即可.

    9、因为我们加上的是26, 所以对于最终的取模是没有影响的. 因此我们得到: 希尔逆矩阵 M-1 = 21,8 20,9 方法二:纯整数初等变化法 (这个名字和上面那个最小公倍数法都是我自己想出来的名字, 可能不好听. 呵呵.) 这一种方法的思想就是元素的模逆. 因为我们这里是Z26, 我们不关心元素的实际大小, 只关心它对26取模后的数值. 因此, 在对原矩阵M求逆时, 我们先将M变为增广矩阵A, 再对A的每一列进行循环, 在第j列中, 从第j行开始, 每个元素 遍历, 依次检查是否对26存在模逆. 否的话, 检查下一个, 是的话,乘以其模逆, 于是该元素结果得1, 再得到其行数为 i , 将此

    10、行与第j行互换(目的就是为了形成对角线的n个1), 然后对余下的行, 用此行乘以余下行的第j个元素的值去依次减余下的行, 这样就使得当前第j列的n-1个0得以生成. 如果某列一直检查下去都没有元素存在模逆的话, 则该矩阵M不存在希尔逆矩阵. 文字有时还是不如代码好说话, 看代码吧: (这次的希尔密码辅助软件,我使用的是C#.我嫌用C弄一些框框太麻烦,所以选择了简单的C#,弄一些框框是为了看中间过程. 同时, 也能布置大家一个作业: 即读懂附件中的C#代码, 用C或C+重写之. 呵呵, 我想未装.NET Framework的非Vista朋友 如果为了使用附件中的bin的话, 还是得自己用其他语言

    11、重写一边的吧 /检查元素a是否对n存在模逆 代码: public bool CheckReverse(int a) int n = (int)zt; int p = 2; while(p*pn) if (a%p = n%p & 0 = a%p) return false; p+; /when a equals with 1 , its also reversiable return true; /得到元素a对n的模逆 代码:public int GetReverse(int a) int n = (int)zt; int q, p, t; int x = 0, y = 1, z; q = n;

    12、 p = a; z = (int)q / p; while (1 != p & 1 != q) t = p; p = q % p; q = t; t = y; y = x - y * z; x = t; z = (int)q / p; y = y % n; if (y 0) y += n; /when a equals with 1 , it return 1. return y; /使用纯整数初等变换法计算M的希尔逆矩阵. 代码: public bool Calc_M_1() int, A = new intnRank, nRank * 2; int T = new intnRank*2;

    13、int i,j,k; /construct the M|E matrix A for (i = 0; i nRank;+i) for (j = 0; j nRank * 2;+j) if (jnRank) Ai, j = nMatrixi, j; else if (nRank = j-i) Ai, j = 1; else Ai, j = 0; /begin to metamorphose A int a_1 = 0; for (j = 0; j nRank;+j) /step1: get one reversiable element for (i = j; i nRank /*+ 1*/;

    14、+i) if (CheckReverse(Ai,j) a_1 = GetReverse(Ai, j); for (k = 0; k nRank * 2;+k) Ai, k *= a_1; Ai, k %= (int)zt; Tk = Ai, k; Ai, k = Aj, k; Aj, k = Tk; goto step2; if (nRank - 1 = i) /last element of the column, still no one is reversiable return false; step2: /create the n-1 zeros of the column for

    15、(i = 0; i nRank ; +i) if (i != j) int t = Ai, j; /first element of Row i . for (k = 0; k nRank * 2; k+) Ai, k -= t * Aj, k; Ai, k %= (int)zt; if (Ai, k0) Ai, k += (int)zt; /construct M_1 for (i = 0; i nRank;+i) for (j = 0; j nRank;+j) nDeMatrixi,j = Ai,j+nRank; return true; 效果图: 我们来截几张图看看: n阶希尔逆矩阵的计

    16、算: 加密测试:(注意明文中的3个O分别变为了O,S,A . 很好地隐藏了字频信息.) 教你如何用WORD文档 (2012-06-27 192246)转载标签: 杂谈 1. 问:WORD 里边怎样设置每页不同的页眉?如何使不同的章节显示的页眉不同? 答:分节,每节可以设置不同的页眉。文件页面设置版式页眉和页脚首页不同。 2. 问:请问word 中怎样让每一章用不同的页眉?怎么我现在只能用一个页眉,一改就全部改了? 答:在插入分隔符里,选插入分节符,可以选连续的那个,然后下一页改页眉前,按一下“同前”钮,再做的改动就不影响前面的了。简言之,分节符使得它们独立了。这个工具栏上的“同前”按钮就显示在

    17、工具栏上,不过是图标的形式,把光标移到上面就显示出”同前“两个字来。 3. 问:如何合并两个WORD 文档,不同的页眉需要先写两个文件,然后合并,如何做? 答:页眉设置中,选择奇偶页不同与前不同等选项。 4. 问:WORD 编辑页眉设置,如何实现奇偶页不同 比如:单页浙江大学学位论文,这一个容易设;双页:(每章标题),这一个有什么技巧啊? 答:插入节分隔符,与前节设置相同去掉,再设置奇偶页不同。 5. 问:怎样使WORD 文档只有第一页没有页眉,页脚? 答:页面设置页眉和页脚,选首页不同,然后选中首页页眉中的小箭头,格式边框和底纹,选择无,这个只要在“视图”“页眉页脚”,其中的页面设置里,不要

    18、整个文档,就可以看到一个“同前”的标志,不选,前后的设置情况就不同了。 6. 问:如何从第三页起设置页眉? 答:在第二页末插入分节符,在第三页的页眉格式中去掉同前节,如果第一、二页还有页眉,把它设置成正文就可以了在新建文档中,菜单视图页脚插入页码页码格式起始页码为0,确定;菜单文件页面设置版式首页不同,确定;将光标放到第一页末,菜单文件页面设置版式首页不同应用于插入点之后,确定。第2 步与第三步差别在于第2 步应用于整篇文档,第3 步应用于插入点之后。这样,做两次首页不同以后,页码从第三页开始从1 编号,完成。 7. 问:WORD 页眉自动出现一根直线,请问怎么处理? 答:格式从“页眉”改为“

    19、清除格式”,就在“格式”快捷工具栏最左边;选中页眉文字和箭头,格式边框和底纹设置选无。 8. 问:页眉一般是-,上面写上题目或者其它,想做的是把这根线变为双线,WORD 中修改页眉的那根线怎么改成双线的 答:按以下步骤操作去做:选中页眉的文字,包括最后面的箭头格式边框和底纹选线性为双线的在预览里,点击左下小方块,预览的图形会出现双线确定上面和下面自己可以设置,点击在预览周围的四个小方块,页眉线就可以在不同的位置。 9. 问:Word 中的脚注如何删除?把正文相应的符号删除,内容可以删除,但最后那个格式还在,应该怎么办? 答:步骤如下:1、切换到普通视图,菜单中“视图”“脚注”,这时最下方出现了

    20、尾注的编辑栏。2、在尾注的下拉菜单中选择“尾注分隔符”,这时那条短横线出现了,选中它,删除。3、再在下拉菜单中选择“尾注延续分隔符”,这是那条长横线出现了,选中它,删除。4、切换回到页面视图。尾注和脚注应该都是一样的。 10. 问:Word 里面有没有自动断词得功能常常有得单词太长了,如果能设置下自动断词就好了 答:在工具语言断字自动断字,勾上,word 还是很强大的。 11. 问:如何将word 文档里的繁体字改为简化字? 答:工具语言中文简繁转换。 12. 问:怎样微调WORD 表格线?WORD 表格上下竖线不能对齐,用鼠标拖动其中一条线,可是一拖就跑老远,想微调表格竖线让上下对齐,请问该

    21、怎么办? 答:选定上下两个单元格,然后指定其宽度就可以对齐了,再怎么拉都行pressAlt,打开绘图,其中有个调整坐标线,单击,将其中水平间距与垂直间距都调到最小值即可。打开绘图,然后在左下脚的绘图网格里设置,把水平和垂直间距设置得最小。 13. 问:怎样微调word 表格线?我的word 表格上下竖线不能对齐,用鼠标拖动其中一条线,可是一拖就跑老远,我想微调表格竖线让上下对齐,请问该怎么办? 答:可以如下操作:按住ctl 键还是shift,你have a trydouble click the line, try it )打开绘图,设置一下网格(在左下角)。使水平和垂直都为最小,试一把!?p

    22、ress Alt 14. 问:怎么把word 文档里已经有的分页符去掉? 答:先在工具 选项 视图 格式标记,选中全部,然后就能够看到分页符,delete 就ok了。 15. 问:Word 中下标的大小可以改的吗 答:格式字体 16. 问:Word 里怎么自动生成目录啊 答:用“格式样式和格式”编辑文章中的小标题,然后插入-索引和目录 17. 问:Word 的文档结构图能否整个复制 论文要写目录了,不想再照着文档结构图输入一遍,有办法复制粘贴过来吗? 答:可以自动生成的,插入索引目录。 18. 问:做目录的时候有什么办法时右边的页码对齐?比如:1.1 标题.11.2 标题.2 答:画表格,然后

    23、把页码都放到一个格子里靠右或居中,然后让表格的线条消隐就可以了,打印出来就很整齐。 19. 问:怎样在word 中将所有大写字母转为小写?比如一句全大写的转为全小写的答:格式-更改大小写-小写 20. 问:在存盘的时候,出现了问题,症状如下:磁盘已满或打开文件过多,不能保存,另开新窗口重存也不管用。如何解决? 答:把word 文档全选,然后复制,然后关掉word,电脑提示你粘贴板上有东西,要不要用于别的程序,选是,然后,再重新打开word,然后粘贴,然后,保存。 21. 问:WORD 中的表格一复制粘贴到PPT 中就散掉了,怎么把WORD 里面的表格原样粘贴到PPT 中?答:1)比较好的方法是

    24、:先把表格单独存为一WORD 文件,然后插入对象,选由文件创建,然后选中上面的WORD 文件,确定;2)还可以先把表格copy 到excel 中,然后copy 到PPT 中,这个也是比较好的办法;3)可以先做成文本框,再粘贴过去;4)复制粘贴,但是在PPT 中不能粘在文本框里面;5)拷屏,做成图片,再弄到PPT 里面。 22. 问:有没有办法将PPT 的文字拷入WORD 里面? 答:另存就可以了。只要以.rtf 格式另存即可 23. 问:word 中图片的分栏如何处理?假如有:1 2 图3 4 这样的结构,我想实现:1 3 图(要横跨两栏)2 4 但是,试了半天总是:1 2 图3 4 怎么办呀

    25、?help! 答:设置图片格式版式高级文字环绕环绕方式选上下型图片位置对齐方式选居中度量依据选页面,要先改文字环绕,然后才能改图片位置 24. 问:用word 写东西时字距老是变动,有时候自动隔得很开,有时候进入下一行的时侯,上一行的字距又自动变大了,这是为什么?怎么纠正啊?答:是因为自动对齐的功能,格式段落对齐方式可以选。还有允许断字的功能如果check 上,就不会出现你说的情况了。 25. 问:在使用WORD 的样式之后,如标题1、标题2 之类的,在这些样式前面总会出现一个黑黑的方块,虽然打印的时候看不到,但看着总是不舒服,有没有办法让它不要显示呢?答:“视图”“显示段落标志”,把前面的勾

    26、去掉。其实这个很有用,可以便于知道哪个是标题段落 26. 问:文章第一页下面要写作者联系方式等。通常格式是一条短划线,下面是联系方式,基金支持等。这样的格式怎么做出来?就是注明页脚吗?答:插入脚注和尾注 27. 问:文字双栏,而有一张图片特别大,想通栏显示,应该怎么操作?答:可以选择的内容,按双栏排。选择其他内容,按单栏排。 28. 问:Word 里面如何不显示回车换行符?答:把视图-显示段落标记的勾去掉或工具-选项-视图-段落标记 29. 问:有没有方法把WORD 里的软回车一下子替换掉?识别出来的文字全带着软回车,能把他们一次全删掉吗?答:查找替换,按CTRL+H;软回车好象是l,在特殊字

    27、符里有 30. 问:在WORD 里的框框里怎么打勾?答:画个文本框,文本框里写一个钩,然后拖过去;或者先在WORD 里插入符号“”,然后选中“”,到-格式-中文版式-带圈字符-选“” 31. 问:还是不行,这样拷过去的框框字体是windings 的,而原来的是宋体的,两者有很大的区别。答:根据模板新建专业型 ,里面有框,双击后打勾,copy 就ok 32. 问:Word 中怎么在一个英文字母上打对号?答:透明方式插入图片对象,内容是一个 33. 问:WORD 里怎么显示修订文档的状态?文档修订后,改后标记很多,但是在菜单里没有“显示修订最终状态”等,怎么调出来?答:工具自定义命令类别(工具)命

    28、令(修订)把“修订”等拖到工具栏上 34. 问:怎样把许多分开的word 文档合并成一个文档。我的论文是按照章节分开写的,但现在图书馆要提交电子版的学位论文,是一个文档的,我找了很多选项但好象不能合并,选择插入文件功能,可以加入内容,但文档中的页眉却插不进去,有谁有高见?答:acrobat6 可以直接把多个文档打印成一个pdf 文档。可以提交pdf 格式的论文,先一个一个word 文档转换为pdf 格式的,然后在pdf 文档菜单的文件菜单中,选上作为pdf 格式打开,追加上就可。 35. 问:Word 里面要写方程式怎么办啊?答:插入对象公式编辑器equation,如果没有公式编辑器Equation,要自己从光盘中安装,或者安装Mathtype 公式编辑器按右键把它拖出来插入命令自定义工具应该是倒过来 36. 问:想在WORD 里面表示矩阵,怎样才能画出那个很大的矩阵括号?答:装公式编辑器mathtype 好了:) 37. 问:Word 的公式编辑器怎么安装?答:工具自定义插入公式编辑器,把它拖到工具条上即可;或者安装OFFICE 后,再次安装,选增加功能吧,会有提示的 38. 问:Word2000 下调用公式编辑器的快捷键答:点击菜单工具-自定义,点击对话框下方键盘,在类别里选择插入,在命令里选择InsertEquatio


    注意事项

    本文(希尔密码.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开