1 / 9
文档名称:

RSA算法和SHA1算法.doc

格式:doc   页数:9页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

RSA算法和SHA1算法.doc

上传人:xxj16588 2016/6/7 文件大小:0 KB

下载得到文件列表

RSA算法和SHA1算法.doc

相关文档

文档介绍

文档介绍:RSA 算法和 SHA1 算法实验三 RSA 算法和 SHA1 哈希算法古典密码算法曾经被广泛应用, 大都比较简单, 使用手工和机械操作来实现加密和解密。它的主要对象是文字信息, 利用密码算法实现文字信息的加密和解密。古典密码学可以分为代替密码( 也叫做移位密码)和置换密码(也叫做换位密码)两种,其中代替密码典型的有 Caesar 密码,数乘密码和仿射变换等,置换密码有单表置换和多表置换等。一、实验目的 1. 理解代替密码学加密过程 2. 理解置换密码学加密过程二、实验环境 Windows ,交换网络结构,每组 2 人, VC++ ,密码工具三、实验原理 1. 非对称密钥加密也称为公开密钥加密,或者叫做公钥加密算法。使用公开密钥密码的每一个用户都分别拥有两个密钥: 加密密钥和解密密钥, 它们两者并不相同, 并且由加密密钥得到解密密钥在计算机上是不可行的。每一个用户的加密密钥都是公开的。因此, 加密密钥也称为公开密钥。所有用户的公开密钥都将记录在作用类似于电话号码薄的密钥本上, 而它可以被所有用户访问, 这样每一个用户都可以得到其他所有用户的公开密钥。同时, 每一个用户的解密密钥将由用户保存并严格保密。因此, 解密密钥也称为私有密钥。 RSA 加密算法利用了数论领域的一个事实, 那就是虽然把两个大质数相乘生成一个合数是件十分容易的事情, 但要把一个合数分解为两个质数的乘积却十分困难。合数分解问题目前仍然是数学领域尚未解决的一大难题, 至今没有任何高效的分解方法。它无须收发双方同时参与加密过程, 既可以用于保密也可以用于签名, 因而非常适合于电子邮件系统的加密,互连网和信用卡安全系统。 RSA 算法的加密和解密过程在 RSA 算法中, 每个实体有自己的公钥(e,n) 及私钥(d, n),其中 n= p*q ,p,q 是两个大素数, e*d =1 mod ф(n) ,显然 e 应该满足 gcd (e,ф(n) )=1。实体 B 加密消息 m, 将密文在公开信道上传送给实体 A 。实体 A 接到密文后对其解密。具体算法如下。? 公钥的生成算法 RSA 的公钥生成算法十分简单,可以分为四步: a) 选择两个素数, p和q; b) 计算 n=p×q和z= (p-1) × (q-1) ; c) 选择一个与 z 互质的数 d; d) 找出一个 e ,使得 e×d=1 mod z。公开密钥是由( e,n )构成,私有密钥由( d,n )构成。? 加密算法实体 B 的操作如下: a) 得到实体 A 的真实公钥( e,n ); b) 把消息表示成整数 m,0<m≤n-1; c) 使用平方-乘积算法,计算 C= Ek(m) = me mod n; d) 将密文 C 发送给实体 A。? 解密算法实体 A 接收到密文 C, 使用自己的私钥 d 计算 m= Dk(C)= Cd mod n, m∈ Zn。我们选择 p=3,q= 11 ,得到 n= 33,z=( p-1 )×( q-1 )=2× 10 = 20 。由于和 20 互质,故设 d=7 。对于所选的 d=7 ,解方程 7×e =1 mod 20 ,可以得到 e=3。在我们的例子中, 由于所选的 p和q 太小, 破译当然很容易, 我们的例子只是用来说明此算法的原理。对于明文 SUZANNE , RSA 的加密和解密过程