《应用密码学》实验.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《应用密码学》实验 应用密码学实验 实验名称 应用密码学实验 课程名称 应用密码学 课程号 学院 ( 系) 理学院数 学系 专业 信息与计算科学 班级 信计 1 班 学生姓名 小曾 学号 成绩 : 一、实验目的 熟悉密码学的相关知识 练习将密码学理论知识与 matlab 编程结合起来二、实验内容 设明文消息为 china ,试用凯撒密码对其进行加密,然后在进行解密。 2.ElGamal 公钥密码算法 设 p=2579,a=2,a 为模 p 的本原元,用户 B 选择 x=765 作为自己的私钥。用户 A 想要将消息 m=1299传送给用户 B 进行加密和解密运算 移位操作 设 x 为任意二进制数 (1)x<<n 表示 x 向左移 n 位,右边空出的 n 位用 0 填充 ; (2)x>>n 表示 x 向右移 n 位,左边空出的 n 位用 0 填充 ; 设 X 是一个字 ( 字长为 ω) ,0?n<ω 是一个整数,定义 X<<<n=(X<<n)?(X>>ω -n), 即 :<<<是 ω 为循环左移位操作。 4.DSA数字签名算法 假设素数 q=23,p=47, 并取 h=17, 用户 A 选择了 x=10 作为自己签名的私钥和签名随机数 k=19 来对消息 M进行签名,消息 M的散列吗 H(M)=15, 计算消息 M的签名以及签名验证。 三、实验原理 1. 凯撒密码的原理  : EEZZEmmkmMkK,,,, ,,{:,()(mod26)|,}  加密变换,  2626K DDZZDcckcCkK,,,,,,{:,()(mod26)|,}  解密变换,  2626K Z 解密后再把中的元素转换为英文字母 26 2.ElGamal 公钥密码的原理 : * (1) 选取一个大素数 p, 是 p 的一个本原元。随机生成整数 x, a,Zpxy,amodp 计算 以(p,a,y) 作为公钥, x 作为秘密密钥 加密 : 明文 m<p 选择一个整数 k,2<=k<=p-2 计算 xc1,amodp kc2,m,ymodp 密文以 (c1,c2) 发送给 B 解密 x,1 m,c2,(c1)modp 移位操作 设 x 为任意二进制数 (1)x<<n 表示 x 向左移 n 位,右边空出的 n 位用 0 填充 ; (2)x>>n 表示 x 向右 移 n 位,左边空出的 n 位用 0 填充 ; (3) 设 X 是一个字 ( 字长为 ω) ,0?n<ω 是一个整数,定义 X<<<n=(X<<n)?(X>>ω-n), 即:<<< 是 ω 为循环左移位操作。 DSA 数字签名算法的原理 : LL,122,5121024,,,,PL(1)p 是一个素数,要求 , 并且 L 为 64 的倍数,即位长度 在 512 到 1024 之间,长度增量为 64 位。,q(2)q 是 p-1 的素因子,,即 q 的长度为 160 位。 (1)/pq,(1)/pq,ghp,modghp,mod(3) ,其中 h 是一个整数,满足 1<h<p-1 并且>1。 (4) 随机选择整数 x 作为用户的私钥,要求 0<x<q。 xygp,mod(5) 计算用户的公钥。显然,给定 x 计算 y 是容易的,但是给定 y 求 x 是 离散对数问题。 在上述参数中, p、 q 以及 g 是公开的系统参数, x 和 y 分别是用户的私钥和公 钥。 四、程序清单与运行结果 凯撒密码的加解密 加密过程如下 : 建立名为  kaisa.m  的函数文件,程序如下  : function y=kaisa(I) %I  为明文字符串 如:'china' k=3; %k  值可更改,当 k=3 时就为凯撒密码了 A=['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','z']; for i=1:length(I) for j=1:26 if I(i)==A(j) p=mod(j+k,26); y(i)=A(p); end end end 在命令窗口中输入如下命令及所得结果 : >>kaisa('china') ans = fklqd 解密过程如下 : 建立名为 ikaisa.m 的函数文件,程序如下 : function y=ikaisa(I) % I 为明 文字符串 如 :'china' k=3; %k 值可更改,当 k=3 时就为凯撒密码了 A=['a','b','c','d','e','f','g','h','i','j','k','l','m',... 'n','o','p','q'

文档评论(0)

156****6866 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档