非对称加密实验
【实验环境】
ISES客户端
Microsoft CLR Debugger 2005或其它调试器
【实验内容】
通过运算器工具实现RSA和ElGamal算法的加解密计算
手工计算RSA密钥并检验,将其应用于签名中并验证
对RSA密钥生成、RSA密钥加密、ElGamal参数生成、ElGamal密钥生成和ElGamal加密进行算法跟踪
非对称加密实验
【实验原理】
非对称密码体制又称为公钥密码体制,加解密使用公私钥密钥对,私钥由密钥拥有者保管,公钥可以公开,基于公开渠道进行分发,解决了对称密钥体制中密钥管理、分发和数字签名等难题。
一、 RSA算法
RSA公钥算法由Rivest、Shamir、Adleman于1978年提出的,是目前公钥密码的国际标准。
算法的数学基础是Euler定理,是基于Deffie-Hellman的单项陷门函数的定义而给出的第一个公钥密码的实际实现,其安全性建立在大整数因子分解的困难性之上。
RSA算法的明文空间M=密文空间C=Z整数,其算法描述如下: n
(1) 密钥生成
随机选择两个大素数p和q,计算n=p•q,;选择一个随机整数e<,满足,计算整数;公开公钥(n,e),安全的销毁p、q和,并保留(d,n)作为私钥。
(2) 加密
(3) 解密
使用中国剩余定理可以加速RSA密码算法的实现。
二、 ElGamal算法
ElGamal算法是Deffie-Hellman单项陷门函数的一个成功应用,把函数转化为公钥加密体制,其安全性建立在有限域上的离散对数问题。
ElGamal算法的描述如下:
(1) 密钥生成
随机选择一个素数p,计算p个元素的有限域的乘法群的一个随机乘法生成元g;均匀随机地在模p-1的整数集合中选取x,计算;把(p,g,y)作为公钥公开,把(p,g,x)作为私钥。
(2) 加密
均匀随机地在模p-1的整数集合中选取k,消息m<p,计算密文对(c1,c2):
(3) 解密
非对称加密实验
【实验步骤】
一、 RSA
(一) 加解密计算
(1) 打开实验实施,默认的选择即为RSA标签,显示RSA实验界面。
(2) 选择明文格式,输入要加密的明文信息。
(3) 选择密钥长度,此处以512比特为例,点击“生成密钥对”按钮,生成密钥对和参
数。
(4) 选择“标准方法”标签,在标签下查看生成的密钥对和参数,如图1.1.7-1所示。
图1.1.7-1
(5) 标准方法加解密
标准方法可选择公钥加密/私钥解密形式和公钥加密/私钥解密形式进行加解密,此处以公钥加密/私钥解密形式进行加解密,公钥加密/私钥解密可参照完成;注意在一次加解密过程中不要重新生成密钥对。
点击“公钥加密”按钮使用生成的公钥对明文进行加密,密文以十六进制显示在密文文本框中;清除明文文本框中的内容,点击“私钥解密”按钮对密文进行解密,明文默认以文本形式显示在明文文本框中,如图1.1.7-2所示;可选择以16进制查看明文。
图1.1.7-2
(6) 选择“中国剩余定理方法”标签,在标签下查看生成的密钥对和参数,如图1.1.7-3
所示。
图1.1.7-3
(7) 中国剩余定理方法加解密
点击“加密”按钮使用生成的公钥对明文进行加密,密文以十六进制显示在密文文本框中;清除明文文本框中的内容,点击“解密”按钮对密文进行解密,明文默认以文本形式显示在明文文本框中,如图1.1.7-4所示。
可选择以十六进制查看明文。
图1.1.7-4
(二) 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
位的签名值,并输入相应的文本框;点击“生成签名并检验”按钮,检验签名输入
是否正确并自动生成消息摘要前8位的签名值并显示,如图1.1.7-7所示。
图1.1.7-7
(5) 点击“验证”按钮,对输入的签名值进行验证,并给出相应的提示,如图1.1.7-8
所示。
图1.1.7-8
(三) 算法跟踪
点击“算法跟踪”框下的“RSA密钥生成”/“RSA加密”按钮,进入调试器,选择对应的算法函数对RSA密钥生成算法/RSA加密算法进行算法跟踪;跟踪完成后会自动返回实验界面显示计算结果;切换回调试器,停止调试,关闭调试器,不保存工程。
具体步骤可参照古典密码实验中实验步骤二。
二、 ElGamal
(一) 加解密计算
(1) 选择“ElGamal”标签,进入ElGamal实验界面。
(2) 选择明文形式,输入明文信息。
(3) 参数生成
点击“生成g和P”按钮,生成ElGamal参数p和g,如图1.1.7-9所示。
图1.1.7-9
(4) 密钥生成
点击“生成密钥”按钮,生成密钥Y和X,如图1.1.7-10所示。
图1.1.7-10
(5) 加密
点击“加密”按钮,使用公开密钥Y对明文加密,密文以十六进制形式显示在密文文本框中,如图1.1.7-11所示。
图1.1.7-11
(6) 解密
清除明文文本框中的内容,点击“解密”按钮对密文进行解密,明文默认以十六进制形式显示在明文文本框中,如图1.1.7-12所示;可选择以文本形式查看明文。
图1.1.7-12
(二) 算法跟踪
点击“算法跟踪”框下的“ElGamal参数生成”/“ElGamal密钥生
成”/“ElGamal加密”按钮,进入调试器,选择对应的算法函数对ElGamal参数生成过程、ElGamal密钥生成算法和ElGamal加密算法进行算法跟踪;跟踪完成后会自动返回实验界面显示计算结果;切换回调试器,停止调试,关闭调试器,不保存工程。
具体步骤可参照古典密码实验中实验步骤二。
非对称加密实验
【实验思考】
分析加解密计算中各个参数对应于原理中的哪一个变量,列出对应表
比较RSA加解密计算中标准方法和中国剩余定理法的区别
参照实验原理,根据算法跟踪实验画出各个算法函数的主要流程图
分析两个非对称密码算法的安全性及优缺点。