实验八 非对称加密实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验八非对称加密实验
【实验目的】
理解非对称密码的基本思想
理解 RSA、ELGAMAL、ECC 算法的原理
掌握上述算法的输入输出格式和密钥格式
掌握上述算法的加解密过程和实现方法
【实验原理】
非对称密码体制又称为公钥密码体制,加解密使用公私钥密钥对,私钥由密钥拥有者保管,公钥可以公开,基于公开渠道进行分发,解决了对称密钥体制中密钥管理、分发和数字签名等难题。
一、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
(3)解密
三、椭圆曲线密码(ECC)
椭圆曲线指的是由韦尔斯特拉斯(Weierstrass)方程
所确定的平面曲线。若F是一个域,。
满足上式的数偶 (x,y)称为F域上的椭圆曲线E上的解点。F域可以是有理数域,还可以是有限域GF(Pr)。椭圆曲线通常用E表示。除了曲线E的所有点外,尚需加上一个叫做无穷远点的特殊∞。
1985年,Neal Koblitz和Victor S. Miller分别建议将椭圆曲线(elliptic curves)应用到密码学中。研究发现,有限域上的椭圆曲线上的一些点构成交换群,而且其离散对数问题是难解的。于是可以在此群上定义ELGAMAL密码。并称之为椭圆曲线密码(Elliptic curve cryptography,ECC)。目前,椭圆曲线密码已成为除RSA密码之外呼声最高的公钥密码之一。
在椭圆曲线密码中,利用了某种特殊形式的椭圆曲线,即定义在有限域上的椭圆曲线。GF(p)上的椭圆曲线的一般形式为:
,其中p是素数,,且
ECC具有密钥短、签名短,软件实现规模小、硬件实现电路省电的特点。普遍认为,160比特长的椭圆曲线密码的安全性相当于1024比特长的RSA密码,而且速度也较快。正因为此,一些国际标准化组织已把椭圆曲线密码作为新的信息安全标准,如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,,加密成密文的过程如下:
①随机地选取一个正整数k k,。
②计算共享秘密
③计算密文
④取(X1,C)作为密文。
(3)解密
将密文(X1,C)还原为明文的过程如下:
①计算共享密钥
②计算
椭圆曲线密码的安全性建立在椭圆曲线离散对数问题的困难性之上。目前,求解椭圆曲线离散对数问题的最好算法是分布式Pollard-方法,其计算复杂性为,其中n是群的阶的最大素因子,m是该分布式算法所使用的CPU个数。可见当素数p和n足够大
时椭圆曲线密码是安全的。
【实验环境】
ISES客户端
Microsoft CLR Debugger 2005或其它调试器
【实验内容】
通过运算器工具实现 RSA、ElGamal 算法的加解密计算
手工计算 RSA 密钥并检验,将其应用于签名中并验证
对 RSA、ElGamal、ECC 算法进行扩展实验
对 RSA 密钥生成、RSA 密钥加密、ElGamal 参数生成、ElGamal 密钥生成和 ElGamal 加密进行算法跟踪
【实验步骤】
一、RSA
(一)加解密计算
(1)打开实验实施,默认的选择即为RSA标签,显示RSA实验界面。
(2)选择明文格式,输入要加密的明文信息。
(3)选择密钥长度,此处以512比特为例,点击“生成密钥对”按钮,生成密钥对和参数。
(4)选择“标准方法”标签,在标签下查看生成的密钥对和参数,如图所示。
(5)标准方法加解密
标准方法可选择公钥加密/私钥解密形式和公钥加密/私钥解密形式进行加解密,此处以公钥加密/私钥解密形式进行加解密,公钥加密/私钥解密可参照完成;注意在一次加解密过程中不要重新生成密钥对。点击“公钥加密”按钮使用生成的公钥对明文进行加密,密文以十六进制显示在密文文本框中;清除明文文本框中的内容,点击“私钥解密”按钮对密文进行解密,明文默认以文本形式显示在明文文本框中,如图所示;可选择以16进制查看明文。