在非对称加密算法RSA中,假设“大”素数p=5,q=11,试给出计算过程。

"本文详细介绍了RSA非对称加密算法的计算过程,包括选择素数p和q,计算n和φ(n),选取公钥e以及通过辗转相除法求解私钥d。举例展示了如何使用RSA进行加密和解密操作,并提供了快速指数计算方法。同时,提供了实际的计算示例,如p=5,q=11,得出公钥{e,n}
摘要由CSDN通过智能技术生成

1. 题目在非对称加密算法RSA中,假设“大”素数p=5,q=11,试给出计算过程。

知识点:

  • RAS计算方法
  • 辗转相除法计算私钥d
  • 快速指数计算方法

2. 分析步骤

  1. 先计算n=p*q,φ(n)=(p-1)(q-1)

    n=5*11=55,φ(n)=4*10=40

  2. 选取一整数e,满足1<e<φ(n),且e与φ(n)互质
    不妨选取e=17,其满足1<e<φ(n),且e与φ(n)互质的条件

  3. 计算d,d满足e*d ==1 mod φ(n)
    这里的e*d ==1 mod φ(n)
    等价如下:
    e*d -n*k =1
    带入得 17d-40k=1
    后面利用辗转相除法计算d,简单理解是大数当被除数求余就行了
    ①将40对17取模得到的余数6代替40,则变为17d-6k=1;
    ②将17对6取模得到的余数5代替17,则变为5d-6k=1;
    ③将6对5取模得到的余数1代替6,则变为5d-1k=1;
    注意点如果k的系数先为1,则令d=1再回代。若d的系数先为1,则令k=0再回代
    当前k系数先为1令d=1,回代到③式中。
    令d=1,回代到③式,5-1k=1,显然 k=4
    令k=4,回代到②式,5d-24=1,显然 d=5
    令d=5,回代到①式,17*5-6k=1,显然 k=14
    令k=14,代入到17d-40k=1,得d=33,这个值即我们要求的私钥d的最终值。

  4. 可得公钥{e,n}={17,55},私钥{d,n}={33,55}

  5. 其实到上一步就算完了,我们可以验证试试

    • 加密时密文 c=memod n,m是明文。我们可以设个简单的明文 m=2,显然 217mod 55 =7
    • 解密时 明文 m=cemod n。这里是 m=733mod 55 =2。我们可以采用快速指数运算来计算,实际上就是幂为奇数提一个出来,之后的偶数幂拆开计算。

快速指数法是运用公式: (a×b)mod n = [(a mod n)×(b mod n)]mod n

例子:

15^27(mod 33)

15^27(mod 33) = 15 * 15^26(mod 33) = 15 * (152)13 (mod 33) = 15 * 27 ^13 (mod 33) = (15 * 27) * 27 ^12 (mod 33) = 9 * 27^12 (mod 33) = 9 * (272)6 (mod 33) = 9 * 3 ^6 ( mod 33) = 9* (32)3 (mod 33) = 9 * 9^3 (mod 33) = (9*9)*9^2(mod 33)=15 * 15 (mod 33) = 27 (mod 33) = 27


3. 抄作业简单粗暴看这里

n=pq=55, φ(n)=(p-1)(q-1)=40
令e=17,e满足与40互质的条件
∵e*d ==1 mod φ(n)
∴17d-40k=1,由辗转相除法可算出
d=33,满足 e*d=561=55*14+1
可得公钥{e,n}={17,55},私钥{d,n}={33,55}

4. 参考

RSA 计算私钥d的计算方法 (辗转相除法)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值