实验八 非对称加密实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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进制查看明文。

相关文档
最新文档