好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

实验一密码及应用实验.doc

6页
  • 卖家[上传人]:宝路
  • 文档编号:17892755
  • 上传时间:2017-11-12
  • 文档格式:DOC
  • 文档大小:1.11MB
  • / 6 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 实验一 密码及应用实验一、 实验目的用高级语言编制基本文本加解密程序二、 实验学时4学时 10.1.10.224:19三、 实验环境装有 Windows 系统的计算机和相应的程序编程环境四、 实验内容(1)替换加密技术① 用凯撒密码实现数据加解密② 用维吉耐尔加密法实现数据加解密③ 用 Vernam加密法实现数据加解密④ 用异或性质实现数据加解密2)置换加密技术① 用栅栏置换加密技术实现数据加解密② 用单轮分栏式置换加解密技术实现数据加解密3)DES 算法模型的实现4)RSA 算法模型的实现5)用 DES和 RSA混合加密技术实现对数据的加解密五、 实验步骤1.替换加密(1) 凯撒加密基本原理在凯撒加密方法中,消息中每个字母换成在它后面三个字母的字母,例如,明文ATTACK AT FIVE 变成了密文 DWWDFNDWILYH最后的三个字母反过来用最前面的字母替换,因此凯撒加密方法本质是循环替换,在这里密钥是数字 3替换方法如表 8-1 所示:表 1.1 凯撒加密法对照表A B C D E F G H I J K L M N O P Q R S T U V W X Y ZD E F G H I J K L M N O P Q R S T U V W X Y Z A B C密文字母与明文字母不一定相隔三个字母,可以相隔任意多个字母,则可以提高破译的难度。

      密钥是 1-25 中其中的任一个数字这就是改进的凯撒加密方法2)维吉耐尔加密基本原理Vigenere(维吉耐尔)加密法是一种多码替换加密法,Vigenere 密码就是把 26 个字母循环移位,排列在一起,形成 26×26 的方阵表,见表 1.2 所示表 1.2 Vigenere 表A B C D E F G H I J K L M N O P Q R S T U V W X Y ZA A B C D E F G H I J K L M N O P Q R S T U V W X Y ZB B C D E F G H I J K L M N O P Q R S T U V W X Y Z AC C D E F G H I J K L M N O P Q R S T U V W X Y Z A BD D E F G H I J K L M N O P Q R S T U V W X Y Z A B CE E F G H I J K L M N O P Q R S T U V W X Y Z A B C DF F G H I J K L M N O P Q R S T U V W X Y Z A B C D EG G H I J K L M N O P Q R S T U V W X Y Z A B C D E FH H I J K L M N O P Q R S T U V W X Y Z A B C D E F GI I J K L M N O P Q R S T U V W X Y Z A B C D E F G HJ J K L M N O P Q R S T U V W X Y Z A B C D E F G H IK K L M N O P Q R S T U V W X Y Z A B C D E F G H I JL L M N O P Q R S T U V W X Y Z A B C D E F G H I J KM M N O P Q R S T U V W X Y Z A B C D E F G H I J K LN N O P Q R S T U V W X Y Z A B C D E F G H I J K L MO O P Q R S T U V W X Y Z A B C D E F G H I J K L M NP P Q R S T U V W X Y Z A B C D E F G H I J K L M N OQ Q R S T U V W X Y Z A B C D E F G H I J K L M N O PR R S T U V W X Y Z A B C D E F G H I J K L M N O P QS S T U V W X Y Z A B C D E F G H I J K L M N O P Q RT T U V W X Y Z A B C D E F G H I J K L M N O P Q R SU U V W X Y Z A B C D E F G H I J K L M N O P Q R S TV V W X Y Z A B C D E F G H I J K L M N O P Q R S T UW W X Y Z A B C D E F G H I J K L M N O P Q R S T U VX X Y Z A B C D E F G H I J K L M N O P Q R S T U V WY Y Z A B C D E F G H I J K L M N O P Q R S T U V W XZ Z A B C D E F G H I J K L M N O P Q R S T U V W X Y下面以 Vigenere 密码加密法为例说明多码替换加密法: 以 YOUR 为密钥,用 Vigenere 密码加密法加密明文 HOWAREYOU,则整个加密过程为:(1)密钥重复进行组合,直到跟明文长度(个数)相同,每个密钥字符将加密一个明文字符,即对应如下:P=HOWAREYOU (明文)K=YOURYOURY (密钥的重复组合)(2)加密,在 Vigenere 表中,以明文字母选择行,以密钥字母选择列,两者的交点就是加密生成的密码文字母,最终加密的结果为:Ek(P)=FCQRPSSFS(3)解密:在 Vigenere 表中,以密钥字母选择列,从中找到密文字母,密文字母所在行的行名即为明文字母。

      3) Vernam 加密基本原理① 按递增顺序把每个明文字母数字化,例如 A=1,B=2, …Z=26,如表 1.3 所示表 1.3 字母数字化对照表字母 A B C D E F G H I J K L M对应的数字 1 2 3 4 5 6 7 8 9 10 11 12 13字母 N O P Q R S T U V W X Y Z对应的数字 14 15 16 17 18 19 20 21 22 23 24 25 26② 对密钥中每个字母进行相同处理③ 将明文中的每个字母与密钥中的相应字母相加,设和为 s④ 如果 s>26,执行赋值语句:s=s mod 26将 s 变成相应的字母,从而得到密文4)异或加密的基本原理实验利用异或逻辑的一个有趣性质:两个数异或的结果再异或其中的一个,结果得另一个即当 a^b=c,则 c^b=a,即同一个数对 a 连续进行两次异或的结果还是 a利用此性质可以实现简单的字符串加解密例如:二进制值 A=101,B=110,A 和 B 进行异或操作得到 C:C=A XOR BC=101 XOR 110 =011如果 C 与 A 进行异或操作,则得到 B,即:B=011 XOR 101 =110同样,如果 C 与 B 进行异或操作,则得到 A,即:A=011 XOR 110 =1012.置换加密(1)栅栏置换加密的基本原理栅栏 (Rail Fence)加密过程是:把要被加密的消息按照锯齿状一上一下的写法写出来。

      因为加密过程的几何形状类似于栅栏的上半部分,因此称为栅栏加密,如图 1.1 所示明文消息 ATTACKATFIVE 的加密过程(1)把要被加密的消息按照锯齿状一上一下写出来:AaT C A F VT A K T I E(2)然后一行一行地产生密文,得到 ATCAFVTAKTIE图 1.1 栅栏加密过程解密过程是:先写第一行,再写第二行,每行字母的个数的决定是按照下面的原则进行的:字母总数是偶数时第一行和第二行各一半,奇数时第一行多一个然后按加密对角线序列读出2)单轮分栏式置换加密技术的基本原理单轮分栏式置换加密过程将明文消息一行一行地写入预定长度的矩形中(需要事先确定列数) 然后一列一列读消息,但不一定按 1、2、3 列的自然顺序读,也可以按随机顺序读,得到的消息就是密文消息例:明文为“began to attack at two”,共 6 列,加密时按 6 ,5 ,4 ,3 ,2 ,1 列读出,得密文为:tconawattgtteaabok,如表 1.5 所示表 1.4 单轮分栏式置换加密第 1 列第 2 列 第 3 列 第 4 列 第 5 列 第 6 列b e g a n to a t t a ck a t tw o单轮分栏式置换解密过程根据密文字母的总个数(被除数)和列数(除数)确定行数(商)和最后一行非空白单元的个数(余数) ,例如,设总字母个数为 16,共 6 列,则整行数为: , 16/2第三行非空白单元为 16 mod 6=4,按读列的顺序写入矩形中,然后一行一行地读出,就得到明文。

      3. DES算法基本原理DES 以 64 位为分组对数据加密,主要步骤有 6 步,如图 2-6 所示,第 1 步输入 64 位明文;第 2 步将 64 位明文块送入初始置换函数进行初始置换;第 3 步将初始置换后的内容分为两块,分别称为左明文(L0) 和右明文(R0) ,各 32 位;第 4 步每个左明文与右明文经过 16 轮加密过程;第 5 步将左明文与右明文重接起来,对组成的块进行最终置换;第 6步输出 64 位密文 1图 1.2 DES 主要步骤图详细步骤参照教材4. RSA算法原理1. 变量的介绍D表示解密密钥,E 表示加密密钥,PT 表示明文,CT 表示密文2. 计算两个大素数的乘积(1)选择两个大素数 P和 Q,这两个数自己保密,并计算 N=P×Q3. 选择公钥(即加密密钥)E选择的原则:使 E 不是(P-1)与(Q-1)的因子,即,E 不是(P-1)×(Q-1)的因子,方法是先求乘积因子,再选择非因子的数,选取的结果可能不唯一4. 选择私钥(即解密密钥)D使 D满足下列条件:(D×E)mod (P-1)×(Q-1)=1,同样选取的结果可能不唯一5. 加密输入 E,N 和明文 PT,加密的公式是:CT=PT E mod N。

      6. 解密输入 D,N 和密文 CT,解密的公式是:PT=CT D mod N实验验证实例(1)选择两个大素数 P 和 Q设 P=47,Q=712)计算 N=P*QN=47*71=33373)选择一个公钥(即加密密钥)E,使其不是(P-1)与(Q-1)的因子求出(47-1)*(71-1)=46*70=32203220 的因子为 2、2、5、7 与 23(因为 3220=2*2*5*7*23) 因此,E 不能有因子 2、5、7、23,例如,不能选择 4(因为 2 是它的因子) ,15(因为 5 是它的因子) ,14(因为 2 与 7 是它的因子) ,69(因为 23 是它的因子) 假设选择 E 为 79(也可以选择其他值,只要没有因子 2、5、7、23) 4)选择私钥(即解密密钥)D ,满足下列条件:(D*E) mod (P-1)*(Q-1)=1将 E、P 与 Q 值代入公式得到:(D*79) mod (47-1)*(71-1)=1即,(D*79) mod (46*47)=1,即, (D*79) mod 3220=1经过计算,取 D=1019,因为(1019*79) mod 3220=80501 mod 3220=1,满足要求。

      5)加密时,从明文 PT 计算密文 CT:CT=PTE mod N 假设要加密明文 688则,CT=68879 mod 3337=15706)将密文 CT 发送给接收方将密文 1570 发送。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.