一、实验目的:非对称加密实验二、实验内容以及步骤:实验内容:通过运算器工具实现RSA、ElGamal算法的加解密计算手工计算RSA密钥并检验,将其应用于签名中并验证对RSA、ElGamal、ECC算法进行扩展实验成绩
对RSA密钥生成、RSA密钥加密、ElGamal参数生成、ElGamal密钥生成和ElGamal加密进行算法跟踪一、RSA(一)加解密计算(1)打开实验实施,默认的选择即为RSA标签,显示RSA实验界面。(2)选择明文格式,输入要加密的明文信息。(3)选择密钥长度,此处以512比特为例,点击“生成密钥对”按钮,生成密钥对和参数。(4)选择“标准方法”标签,在标签下查看生成的密钥对和参数,(5)标准方法加解密标准方法可选择公钥加密/私钥解密形式和公钥加密/私钥解密形式进行加解密,此处以公钥加密/私钥解密形式进行加解密,公钥加密/私钥解密可参照完成;注意在一次加解密过程中不要重新生成密钥对。点击“公钥加密”按钮使用生成的公钥对明文进行加密,密文以十六进制显示在密文文本框中;清除明文文本框中的内容,点击“私钥解密”按钮对密文进行解密,明文默认以文本形式显示在明文文本框中;可选择以16进制查看明文。1(6)选择“中国剩余定理方法”标签,在标签下查看生成的密钥对和参数,如图1.1.7-3所示。图1.1.7-3(7)中国剩余定理方法加解密点击“加密”按钮使用生成的公钥对明文进行加密,密文以十六进制显示在密文文本框中;清除明文文本框中的内容,点击“解密”按钮对密文进行解密,明文默认以文本形式显示在明文文本框中,可选择以十六进制查看明文。(二)RSA密钥计算(1)点击“扩展实验”框中的“RSA计算”按钮,进入RSA计算窗体。(2)输入报文信息,点击“计算MD5值”生成报文信息的信息摘要,如图1.1.7-5所示。图1.1.7-5(3)选择p、q值,计算n、φ(n)、e和d并输入相应的文本框中,点击“检验”按钮对计算的各个参数值进行检验,如图1.1.7-6所示。图1.1.7-6(4)检验无误后,根据上述计算得到的RSA私钥,计算报文MD5值即报文摘要的前8位的签名值,并输入相应的文本框;点击“生成签名并检验”按钮,检验签名输入是2否正确并自动生成消息摘要前8位的签名值并显示,如图1.1.7-7所示。图1.1.7-7(5)点击“验证”按钮,对输入的签名值进行验证,并给出相应的提示,如图1.1.7-8所示。图1.1.7-8(三)扩展实验(1)点击“扩展实验”框中的“RSA扩展实验”按钮,进入RSA扩展实验窗体。(2)生成大素数p和q。①使用实验系统所提供的大素数,并点击素数文本框的右边的素性测试按钮,确保p,q均为素数,如图1.1.7-9所示。图1.1.7-9②输入2个大素数,并分别测试其素性,如图1.1.7-10所示。图1.1.7-10③点击“生成p,q”按钮,进入大素数生成界面;输入要生成的素数(十进制)位数范围,点击“随机生成”,即可得到2个满足要求的大素数;如图1.1.7-11所示。3图1.1.7-11(3)计算n=pq。在正确设置了大素数p和q之后(也进行了素性测试),点击该文本框右边的“计算”即可,如图1.1.7-12所示。图1.1.7-12(4)计算可,如图1.1.7-13所示。。在正确设置了n之后,点击该文本框右边的“计算”即图1.1.7-13(5)生成密钥。点击“选取公钥”按钮,即可生成RSA密码算法的公钥和私钥,如图1.1.7-14所示。4图1.1.7-14(6)在主窗口中,点击“加密”,即进入RSA加密窗口;在明文文本框中输入一个小于n的(十进制)正整数,点击“加密”,即得到相应的密文;如图1.1.7-15所示。图1.1.7-15(7)在主窗口中,点击“解密”,即进入RSA解密窗口;在密文文本框中输入一个小于n的(十进制)正整数,点击“解密”,即得到相应的明文;如图1.1.7-16所示。5图1.1.7-16(四)算法跟踪点击“算法跟踪”框下的“RSA密钥生成”/“RSA加密”按钮,进入调试器,选择对应的算法函数对RSA密钥生成算法/RSA加密算法进行算法跟踪;跟踪完成后会自动返回实验界面显示计算结果;切换回调试器,停止调试,关闭调试器,不保存工程。具体步骤可参照古典密码实验中实验步骤二。二、ElGamal(一)加解密计算(1)选择“ElGamal”标签,进入ElGamal实验界面。(2)选择明文形式,输入明文信息。(3)参数生成点击“生成g和P”按钮,生成ElGamal参数p和g,(4)密钥生成点击“生成密钥”按钮,生成密钥Y和X,(5)加密点击“加密”按钮,使用公开密钥Y对明文加密,密文以十六进制形式显示在密文文本框中,(6)解密清除明文文本框中的内容,点击“解密”按钮对密文进行解密,明文默认以十六进制形式显示在明文文本框中,如图1.1.7-20所示;可选择以文本形式查看明文。6(二)扩展实验(1)在扩展实验中点击“ELGAMAL扩展实验”按钮,进入ELGAMAL扩展实验窗体。(2)在主窗口中,在文本框“群阶q”中输入一个大素数(此处不超过10位十进制),在文本框“生成元g”中输入一个小于q的正整数,并点击“生成元测试”按钮,如图1.1.7-21所示。图1.1.7-21(3)生成ELGAMAL密码的公钥密码和私钥密码。在文本框“私钥x”中输入一个正整数,作为私钥密码,点击“确定”按钮,得到ELGAMAL密码的公钥密码和私钥密码,如图1.1.7-22所示。图1.1.7-22(4)在主窗口中,点击“加密”,即进入ELGAMAL密码的加密窗口;首先在随机数k文本框中输入一个q的正整数,并点击其右边的“确定”按钮;然后在明文M文本框中输入一个小于q的(十进制)正整数,点击“加密”,即得到相应的密文;如图1.1.7-23所示。7图1.1.7-23(5)在主窗口中,点击“解密”,即进入ELGAMAL解密窗口;系统自动将加密窗口中的密文填入了解密窗口中的相应文本框中,点击“解密”按钮,即得到解密后的明文;如图1.1.7-24所示。图1.1.7-24(三)算法跟踪点击“算法跟踪”框下的“ElGamal参数生成”/“ElGamal密钥生成”/“ElGamal加密”按钮,进入调试器,选择对应的算法函数对ElGamal参数生成过程、ElGamal密钥生成算法和ElGamal加密算法进行算法跟踪;跟踪完成后会自动返回实验界面显示计算结果;切换回调试器,停止调试,关闭调试器,不保存工程。具体步骤可参照古典密码实验中实验步骤二。三、ECC(一)扩展实验(1)在扩展实验中点击“ECC扩展实验”按钮,进入ECC扩展实验窗体。(2)确定合适的椭圆曲线,获取该曲线的基础解点集。首先,在主窗口的椭圆曲线组合框内的相应文本框中,输入素数p,以及椭圆曲线的2个系数a和b;然后,点击“测8试曲线”,得到该椭圆曲线的基础解点集,如图1.1.7-25所示。图1.1.7-25(3)确定生成元G。可以用椭圆曲线的序号,也可以用解点的坐标值来确定生成元G(具体值可以参考椭圆曲线中的基础解点集列表框)。在相应的文本框中输入一个合法的序号值,或者输入一个解点的坐标值;然后,点击“生成元测试”按钮,得到ECC密码的阿贝尔群,如图1.1.7-26所示。图1.1.7-26(4)生成ECC的公钥和私钥。在文本框私钥中输入一个小于生成元阶数的正整数,然后点击“确定”按钮,计算数ECC密码的私钥,如图1.1.7-27所示。图1.1.7-27(5)在主窗口中,点击“加密”,即进入ECC密码的加密窗口;首先在随机数k文本框中输入一个n的正整数;然后在明文M文本框中输入一个小于n的正整数,点击“加密”,即得到相应的密文;如图1.1.7-28所示。图1.1.7-289(6)点击“发送密文”激活解密动作。(7)在主窗口中,点击“解密”,即进入ECC解密窗口;系统自动将加密窗口中的密文填入了解密窗口中的相应文本框中,点击“解密”按钮,即得到解密后的明文;如图1.1.7-29所示。图1.1.7-29三、实验总结:1、从实验中学到了rsa的算法原理,同时经过实践操作大概明白了非对称加密和解密的过程。2、遇到问题有:不会具体操作以及有些操作结果与实验说明上的不一致;解决方法:再次细看说明书或上网查资料。3、实验中需要特别注意数据的选取,选的数据要有代表性,才能更好的体现出想要的效果。10
因篇幅问题不能全部显示,请点此查看更多更全内容