1 / 6
文档名称:

实验三RSA算法和SHA1算法.doc

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

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

分享

预览

实验三RSA算法和SHA1算法.doc

上传人:1136365664 2017/12/11 文件大小:95 KB

下载得到文件列表

实验三RSA算法和SHA1算法.doc

相关文档

文档介绍

文档介绍:实验三 RSA算法和SHA1哈希算法
古典密码算法曾经被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密。它的主要对象是文字信息,利用密码算法实现文字信息的加密和解密。古典密码学可以分为代替密码(也叫做移位密码)和置换密码(也叫做换位密码)两种,其中代替密码典型的有Caesar密码,数乘密码和仿射变换等,置换密码有单表置换和多表置换等。
实验目的
理解代替密码学加密过程
理解置换密码学加密过程
实验环境
Windows,交换网络结构,每组2人,VC++,密码工具
实验原理
非对称密钥加密也称为公开密钥加密,或者叫做公钥加密算法。使用公开密钥密码的每一个用户都分别拥有两个密钥:加密密钥和解密密钥,它们两者并不相同,并且由加密密钥得到解密密钥在计算机上是不可行的。每一个用户的加密密钥都是公开的。因此,加密密钥也称为公开密钥。所有用户的公开密钥都将记录在作用类似于电话号码薄的密钥本上,而它可以被所有用户访问,这样每一个用户都可以得到其他所有用户的公开密钥。同时,每一个用户的解密密钥将由用户保存并严格保密。因此,解密密钥也称为私有密钥。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的公钥生成算法十分简单,可以分为四步:
选择两个素数,p和q;
计算n = p×q和z = (p-1)×(q-1);
选择一个与z互质的数d;
找出一个e,使得e×d = 1 mod z。
公开密钥是由(e,n)构成,私有密钥由(d,n)构成。
加密算法
实体B的操作如下:
得到实体A的真实公钥(e,n);
把消息表示成整数m,0<m≤n-1;
使用平方-乘积算法,计算C = Ek(m) = me mod n;
将密文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的加密和解密过程如表3-1所示。
表3-1 RSA加解密过程示例
加密
解密
明文(m)
me
密文(C)
密文(C)
Cd
明文(m)
符号

m3
m3(mod33)
m3(mod33)
C7