网站大量收购独家精品文档,联系QQ:2885784924

实验四 RSA算法.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验四 RSA算法 1.实验目的 (1)了解RSA算法的特点 (2)掌握RSA算法的加解密原理 2.实验内容 阅读学习本实验第三部分(知识点),通过RSA算法实现的Flash短片,理解并掌握RSA算法的详细实现过程;在VC环境下,调试运行RSA算法,简单了解RSA算法的C++语言实现过程。 (1)RSA算法原理演示 步骤1:打开实验五文件夹中的“RSA.exe”文件(如图41所示); 图4-1 RSA算法演示文件 步骤2:依据演示文稿,逐步学习RSA算法。 (2)RSA算法的实现 该部分,主要通过在VC++6.0中,采用C++语言来编程实现RSA算法来更进一步的理解和掌握RSA算法。具体步骤如下: 步骤1:打开VC开发环境,打开RSA.cpp文件; 步骤2:依据RSA算法实现原理,阅读完善算法; 步骤3:编译运行程序,并进行具体测试。 3.知识点 1978年美国MIT的三名数学家R.Rivest(里维斯特),A.Shamir(沙摩尔)和L.Adleman(阿德尔曼)提出了著名的公钥密码体制:RSA算法,它的安全性依赖于大数分解。公钥和私钥都是两个大素数()的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积  密钥对的产生选择两个大素数,p 和q 计算: n = p * q ((n)=(p-1)(q-1),其中((n)是n的欧拉函数值; ● 选一整数e,满足1e ((n),且gcd(((n),e)=1; ● 计算d,满足de≡1 mod ((n),即d是e在模((n)下的乘法逆元; ● {e,n}为公钥, (d,n)为私钥。 ② 加、解密过程 ● 加密时首先将明文比特串分组,使得每个分组对应的十进制数小于n,即分组长度小于log2 n; ● 对每个明文分组m,作加密运算: c≡me mod n ● 解密时对每个密文分组做如下计算: m ≡ cd(mod n) (2)RSA算法论证 证明:由加密过程 : cd mod n ≡(me)d mod n ≡ m k ((n)+1 mod n (ed ≡ 1 mod (( n)) ● 若m与n互素,由欧拉定理 m ((n)≡1 mod n 有 mk ((n)≡ 1 mod n, mk((n)+1≡ m mod n ● 若m与n不互素,即 gcd(m, n) ≠1,则m必与两个素数p、q中的一个互素,假定与p互素,与q不互素,不妨设m=cq (c q),此时gcd(m, p)=1,由欧拉定理, m ((p)≡1 mod p,[m ((p)]k ((q)≡1 mod p 即m k ((n) ≡1 mod p, 于是存在一整数r,使mk ((n) = 1+rp , 两边同乘m=cq, 得 : mk ((n)+1= (m+rcpq) = (m+rcn) 即mk((n)+1≡ m mod n (3)RSA算法参数的选择 为了确保RSA密码的安全,必须认真选择密码参数   ①p和q要足够大; 一般应用:p和q应512b 重要应用:p和q应1024b ②p和q应为强素数; 文献指出,只要(p-1)、(p+1)、(q-1)、(q+1)四个数之一只有小的素因子,n就容易分解。 ③p和q的差要合适; ④ e的选择; 随机且含1多就安全,但加密速度慢。 ⑤ d的选择; d不能太小,要足够大。 ⑥不要许多用户公用一个模n。 易受共模攻击  (4)快速指数运算(平方乘运算) 问题:求am mod n=?,其中a,m是正整数。 将m表示为二进制形式bkbk-1…b0,即: m=bk2k+bk-12k-1+…+b12+b0 因此, 实现平方乘法运算的伪代码如下所示: m=bk2k+bk-12k-1+…+b12+b0,求am mod n=? d=1; for i=k downto 0 { d ≡(d×d) mod n; if bi=1 then { d ≡(d×a) mod n } } return d (5)Miller-Rabin素性检测算法 引理:若p是奇素数,则方程式: x2 ( 1 (mod p) 只有两个解 x = +1 或 x = –1。该引理的逆命题就是:如果方程式x2 ( 1 (mod p)存在除了+1 和 –1 以外的其他解,n 就不是素数。上述引理的逆命题就是著名的Mi

文档评论(0)

skewguj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档