信息安全实验六:RSA数字签名算法 2019.06.01

实验RSA数字签名算法

一、实验目的

理解、掌握RAS数字签名算法的基本过程。

二、实验内容

  1. 熟悉MPIR大整数运算库函数的调用。
  2. 熟悉MD5散列的调用。
  3. 利用MPIR大整数运算库函数,实现RSA数字算法。要求:1)RSA模数为2048bit;2)能对任意文件进行签名、验证(调用MD5散列函数求文件的散列值,再对散列值进行签名)。

三、RSA数字签名算法基本原理

 

RSA具体实现步骤

第一步,随机选择两个不相等的质数p和q。

第二步,计算p和q的乘积n。

第三步,计算n的欧拉函数φ(n)。

第四步,随机选择一个整数e,条件是1< e < φ(n),且e与φ(n) 互质。

第五步,计算e对于φ(n)的模反元素d。

第六步,将n和e封装成公钥,n和d封装成私钥。

 

*现实中为了计算快捷,e一般取65537,

 

加密

me ≡ c (mod n) 信息m加密成C

解密

cd ≡ m (mod n)

 

 

因为已经有了RSA加密算法,所以RSA签名算法很简单,只需要将RSA加密算法的公钥私钥互换即可。即私钥加密,公钥解密。

由于需要任意长度的文件进行加密,所以先用MD5对文件进行hash,得到非常短的,且定长的一段32位的16进制字符串(128位2进制数字),然后用RSA签名即可。

 

 

四、实验过程

(上次的实验四RSA加密算法用mpir库的时候忘了把打印设置为16进制数,打印的是10进制数,非常不直观,这次把d全部改成了x)

关键代码:

 

 

 

 

和实验四几乎一模一样,只是把加解密的秘钥互换

五、实验结果


本文所有代码及资源稍后给出。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值