实验八 非对称加密实验

上传人:mg****2 文档编号:122099743 上传时间:2020-03-01 格式:DOC 页数:10 大小:335.50KB
返回 下载 相关 举报
实验八 非对称加密实验_第1页
第1页 / 共10页
实验八 非对称加密实验_第2页
第2页 / 共10页
实验八 非对称加密实验_第3页
第3页 / 共10页
实验八 非对称加密实验_第4页
第4页 / 共10页
实验八 非对称加密实验_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《实验八 非对称加密实验》由会员分享,可在线阅读,更多相关《实验八 非对称加密实验(10页珍藏版)》请在金锄头文库上搜索。

1、.实验八 非对称加密实验【实验目的】理解非对称密码的基本思想理解 RSA、ELGAMAL、ECC 算法的原理掌握上述算法的输入输出格式和密钥格式掌握上述算法的加解密过程和实现方法【实验原理】非对称密码体制又称为公钥密码体制,加解密使用公私钥密钥对,私钥由密钥拥有者保管,公钥可以公开,基于公开渠道进行分发,解决了对称密钥体制中密钥管理、分发和数字签名等难题。一、 RSA算法RSA公钥算法由Rivest、Shamir、Adleman于1978年提出的,是目前公钥密码的国际标准。算法的数学基础是Euler定理,是基于Deffie-Hellman的单项陷门函数的定义而给出的第一个公钥密码的实际实现,其

2、安全性建立在大整数因子分解的困难性之上。RSA算法的明文空间M=密文空间C=Zn整数,其算法描述如下:(1) 密钥生成随机选择两个大素数p和q,计算n=pq,;选择一个随机整数e,满足,计算整数;公开公钥(n,e),安全的销毁p、q和,并保留(d,n)作为私钥。(2) 加密(3) 解密使用中国剩余定理可以加速RSA密码算法的实现。二、 ElGamal算法ElGamal算法是Deffie-Hellman单项陷门函数的一个成功应用,把函数转化为公钥加密体制,其安全性建立在有限域上的离散对数问题。ElGamal算法的描述如下:(1) 密钥生成随机选择一个素数p,计算p个元素的有限域的乘法群的一个随机

3、乘法生成元g;均匀随机地在模p-1的整数集合中选取x,计算;把(p,g,y)作为公钥公开,把(p,g,x)作为私钥。(2) 加密均匀随机地在模p-1的整数集合中选取k,消息mp,计算密文对(c1,c2):(3) 解密三、 椭圆曲线密码(ECC)椭圆曲线指的是由韦尔斯特拉斯(Weierstrass)方程所确定的平面曲线。若F是一个域,。满足上式的数偶 (x,y)称为F域上的椭圆曲线E上的解点。F域可以是有理数域,还可以是有限域GF(Pr)。椭圆曲线通常用E表示。除了曲线E的所有点外,尚需加上一个叫做无穷远点的特殊。1985年,Neal Koblitz和Victor S. Miller分别建议将椭

4、圆曲线(elliptic curves)应用到密码学中。研究发现,有限域上的椭圆曲线上的一些点构成交换群,而且其离散对数问题是难解的。于是可以在此群上定义ELGAMAL密码。并称之为椭圆曲线密码(Elliptic curve cryptography,ECC)。目前,椭圆曲线密码已成为除RSA密码之外呼声最高的公钥密码之一。在椭圆曲线密码中,利用了某种特殊形式的椭圆曲线,即定义在有限域上的椭圆曲线。GF(p)上的椭圆曲线的一般形式为:,其中p是素数,且ECC具有密钥短、签名短,软件实现规模小、硬件实现电路省电的特点。普遍认为,160比特长的椭圆曲线密码的安全性相当于1024比特长的RSA密码,

5、而且速度也较快。正因为此,一些国际标准化组织已把椭圆曲线密码作为新的信息安全标准,如IEEE P1363/D4,ANSI F9.62等,分别规范了ECC在Internet协议安全、电子商务、Web服务器、空间通信、易懂通信、智能卡等方面的应用。ELGAMAL型椭圆曲线密码的算法描述:(1) 密钥的生成随机地选择一个大素数q,从而确定有限域GF(p)。选择元素,进而确定一条GF(p)上的椭圆曲线。选择一个大素数n,并确定一个阶为n的基点G。随机地选择一个整数d,作为私钥。计算用户的公钥Q=dG得到:公钥为p,a,b,G,n,h;私钥为p,a,b,G,d,n,h。(2) 加密将明文消息M,加密成密

6、文的过程如下: 随机地选取一个正整数kk,。计算共享秘密计算密文取(X1,C)作为密文。(3) 解密将密文(X1,C)还原为明文的过程如下:计算共享密钥计算椭圆曲线密码的安全性建立在椭圆曲线离散对数问题的困难性之上。目前,求解椭圆曲线离散对数问题的最好算法是分布式Pollard-方法,其计算复杂性为,其中n是群的阶的最大素因子,m是该分布式算法所使用的CPU个数。可见当素数p和n足够大时椭圆曲线密码是安全的。【实验环境】ISES客户端Microsoft CLR Debugger 2005或其它调试器【实验内容】通过运算器工具实现 RSA、ElGamal 算法的加解密计算手工计算 RSA 密钥并

7、检验,将其应用于签名中并验证对 RSA、ElGamal、ECC 算法进行扩展实验对 RSA 密钥生成、RSA 密钥加密、ElGamal 参数生成、ElGamal 密钥生成和 ElGamal 加密进行算法跟踪【实验步骤】一、 RSA(一) 加解密计算(1) 打开实验实施,默认的选择即为RSA标签,显示RSA实验界面。(2) 选择明文格式,输入要加密的明文信息。(3) 选择密钥长度,此处以512比特为例,点击“生成密钥对”按钮,生成密钥对和参数。(4) 选择“标准方法”标签,在标签下查看生成的密钥对和参数,如图所示。(5) 标准方法加解密标准方法可选择公钥加密/私钥解密形式和公钥加密/私钥解密形式

8、进行加解密,此处以公钥加密/私钥解密形式进行加解密,公钥加密/私钥解密可参照完成;注意在一次加解密过程中不要重新生成密钥对。点击“公钥加密”按钮使用生成的公钥对明文进行加密,密文以十六进制显示在密文文本框中;清除明文文本框中的内容,点击“私钥解密”按钮对密文进行解密,明文默认以文本形式显示在明文文本框中,如图所示;可选择以16进制查看明文。(6) 选择“中国剩余定理方法”标签,在标签下查看生成的密钥对和参数,如图所示。(7) 中国剩余定理方法加解密点击“加密”按钮使用生成的公钥对明文进行加密,密文以十六进制显示在密文文本框中;清除明文文本框中的内容,点击“解密”按钮对密文进行解密,明文默认以文

9、本形式显示在明文文本框中,如图所示。可选择以十六进制查看明文。(二) RSA密钥计算(1) 点击“扩展实验”框中的“RSA计算”按钮,进入RSA计算窗体。(2) 输入报文信息,点击“计算MD5值”生成报文信息的信息摘要,如图所示。(3) 选择p、q值,计算n、(n)、e和d并输入相应的文本框中,点击“检验”按钮对计算的各个参数值进行检验,如图所示。(4) 检验无误后,根据上述计算得到的RSA私钥,计算报文MD5值即报文摘要的前8位的签名值,并输入相应的文本框;点击“生成签名并检验”按钮,检验签名输入是否正确并自动生成消息摘要前8位的签名值并显示,如图所示。(5) 点击“验证”按钮,对输入的签名

10、值进行验证,并给出相应的提示,如图所示。(三) 扩展实验(1) 点击“扩展实验”框中的“RSA扩展实验”按钮,进入RSA扩展实验窗体。(2) 生成大素数p和q。使用实验系统所提供的大素数,并点击素数文本框的右边的素性测试按钮,确保p,q均为素数;输入2个大素数,并分别测试其素性。点击“生成p,q”按钮,进入大素数生成界面;输入要生成的素数(十进制)位数范围,点击“随机生成”,即可得到2个满足要求的大素数;如图所示。(3) 计算n=pq。在正确设置了大素数p和q之后(也进行了素性测试),点击该文本框右边的“计算”即可;(4) 计算。在正确设置了n之后,点击该文本框右边的“计算”即可;(5) 生成

11、密钥。点击“选取公钥”按钮,即可生成RSA密码算法的公钥和私钥,如图所示。(6) 在主窗口中,点击“加密”,即进入RSA加密窗口;在明文文本框中输入一个小于n的(十进制)正整数,点击“加密”,即得到相应的密文;如图所示。(7) 在主窗口中,点击“解密”,即进入RSA解密窗口;在密文文本框中输入一个小于n的(十进制)正整数,点击“解密”,即得到相应的明文; (四) 算法跟踪点击“算法跟踪”框下的“RSA密钥生成”/“RSA加密”按钮,进入调试器,选择对应的算法函数对RSA密钥生成算法/RSA加密算法进行算法跟踪;跟踪完成后会自动返回实验界面显示计算结果;切换回调试器,停止调试,关闭调试器,不保存

12、工程。具体步骤可参照古典密码实验中实验步骤二。二、 ElGamal(一) 加解密计算(1) 选择“ElGamal”标签,进入ElGamal实验界面。(2) 选择明文形式,输入明文信息。(3) 参数生成点击“生成g和P”按钮,生成ElGamal参数p和g,如图所示。(4) 密钥生成点击“生成密钥”按钮,生成密钥Y和X,如图所示。(5) 加密点击“加密”按钮,使用公开密钥Y对明文加密,密文以十六进制形式显示在密文文本框中。(6) 解密清除明文文本框中的内容,点击“解密”按钮对密文进行解密,明文默认以十六进制形式显示在明文文本框中,如图所示;可选择以文本形式查看明文。(二) 扩展实验(1) 在扩展实

13、验中点击“ELGAMAL扩展实验”按钮,进入ELGAMAL扩展实验窗体。(2) 在主窗口中,在文本框“群阶q”中输入一个大素数(此处不超过10位十进制),在文本框“生成元g”中输入一个小于q的正整数,并点击“生成元测试”按钮。(3) 生成ELGAMAL密码的公钥密码和私钥密码。在文本框“私钥x”中输入一个正整数,作为私钥密码,点击“确定”按钮,得到ELGAMAL密码的公钥密码和私钥密码,(4) 在主窗口中,点击“加密”,即进入ELGAMAL密码的加密窗口;首先在随机数k文本框中输入一个q的正整数,并点击其右边的“确定”按钮;然后在明文M文本框中输入一个小于q的(十进制)正整数,点击“加密”,即

14、得到相应的密文;如图所示。(5) 在主窗口中,点击“解密”,即进入ELGAMAL解密窗口;系统自动将加密窗口中的密文填入了解密窗口中的相应文本框中,点击“解密”按钮,即得到解密后的明文;如图所示。(三) 算法跟踪点击“算法跟踪”框下的“ElGamal参数生成”/“ElGamal密钥生成”/“ElGamal加密”按钮,进入调试器,选择对应的算法函数对ElGamal参数生成过程、ElGamal密钥生成算法和ElGamal加密算法进行算法跟踪;跟踪完成后会自动返回实验界面显示计算结果;切换回调试器,停止调试,关闭调试器,不保存工程。具体步骤可参照古典密码实验中实验步骤二。三、 ECC(一) 扩展实验

15、(1) 在扩展实验中点击“ECC扩展实验”按钮,进入ECC扩展实验窗体。(2) 确定合适的椭圆曲线,获取该曲线的基础解点集。首先,在主窗口的椭圆曲线组合框内的相应文本框中,输入素数p,以及椭圆曲线的2个系数a和b;然后,点击“测试曲线”,得到该椭圆曲线的基础解点集, (3) 确定生成元G。可以用椭圆曲线的序号,也可以用解点的坐标值来确定生成元G(具体值可以参考椭圆曲线中的基础解点集列表框)。在相应的文本框中输入一个合法的序号值,或者输入一个解点的坐标值;然后,点击“生成元测试”按钮,得到ECC密码的阿贝尔群,如图所示。(4) 生成ECC的公钥和私钥。在文本框私钥中输入一个小于生成元阶数的正整数,然后点击“确定”按钮,计算数ECC密码的私钥;(5) 在主窗口中,点击“加密”,即进入ECC密码的加密窗口;首先在随机数k文本框中输入一个n的正整数;然后在明文M文本框中输入一个小于n的正整数,点击“加密”,即得到相应的密文;如图所示。(6) 点击“发送密文”激活解密动作。(7) 在主窗口中,点击“解密”,即进入ECC解密窗口;系统自动将加密窗口中的密文填入了解密窗口中的相应文本框中,点击

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

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