RSA的中国剩余定理(CRT)算法解密

这篇具有很好参考价值的文章主要介绍了RSA的中国剩余定理(CRT)算法解密。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、 传统方式计算RSA

1.公私钥计算
(1) 计算 n = p x q ;
(2) 计算Φ(n)= (p-1) x (q-1);
(3) 选择 e ,且e与Φ(n)互素 ;
(4) 确定d x e= 1 mod Φ(n);
(5) 确定公钥 PU = {n , d}, 私钥 PR = {n,e}
2.加解密
明文M ;加密Y= M^e mod n;
解密 M = Y^d mod n;

二、 中国剩余定理简介

p和q是互相独立的大素数,n为p*q,对于任意(m1, m2), (0<=m1< p, 0<=m2< p)
必然存在一个唯一的m ,0<=m< n
使得
m1 = m mod p
m2 = m mod q

所以换句话说,给定一个(m1,m2),其满足上述等式的m必定唯一存在。

所以解密RSA的流程c^d mod n,可以分解为 m1=c^d mod p以及m2=c^d mod q方程组,然后再计算m( m的计算方法见后面 )。
但是等式c^d mod p 或者 c^d mod q ,模数虽然从n降为p或q了,但是这个指数d还是较大,运算还是比较消耗性能。我们需要降低指数。

仔细看等式c^d mod p

d = k(p-1) + r

c^d mod p
=c^(k(p-1) + r) mod p
=c^r * c^(k(p-1)) mod p
因为 c^(p-1) mod p = 1 (欧拉定理)
=c^r mod p

r是d除p-1的余数,即 r = d mod (p-1)
所以 c^d mod p可以降阶为 c^(d mod p-1) mod p,同理,c^d mod q可以降阶为 c^(d mod q-1) mod q。
其中 dP = d mod p-1 和 dQ = d mod q-1 可以提前计算。
但是计算dP和dQ可以更简单,就是分别计算e对p-1和q-1的逆。

三、 使用中国剩余定理(CRT)RSA解密

首先,我们需要在在生成私钥公钥时,多生成几个数:
我们的d是e对Φ(n)的逆元,我们现在需要另外2个逆元(分别是对(p-1)和(q-1)的),既
1:计算dP,使得dPe = 1 mod(p-1),即 dP = (1/e) mod (p-1)
2:计算dQ,使得dQ
e = 1 mod(q-1),即dQ = (1/e) mod (q-1)
此外需要第三个元素,既q对p的逆元
3:计算qInv,使得qInv * q = 1 mod p,即qInv = (1/q) mod p
私钥是 (p, q, dP, dQ, qInv)

计算:
使用公钥加密:
若要加密明文m,则需要计算c = m^e mod n,c为密文。

使用私钥解密:
1:m1=c^dP mod p
2:m2=c^dQ mod q
3:h= qInv.(m1 - m2) mod p
4:m = m2 + h*q
m就是明文。

引用:
https://www.di-mgt.com.au/crt_rsa.html文章来源地址https://www.toymoban.com/news/detail-472765.html

到了这里,关于RSA的中国剩余定理(CRT)算法解密的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数论——中国剩余定理、扩展中国剩余定理 学习笔记

    中国剩余定理(Chinese Remainder Theorem,CRT) 求解如下形式的一元线性同余方程组(其中 (m) 两两互质): $left{begin{matrix}x equiv a_1 pmod {m_1} \\\\x equiv a_2 pmod {m_2} \\\\ dots \\\\x equiv a_k pmod {m_k}end{matrix}right.$ 计算所有模数的积 (M = prod m_i) ; 对于第 (i) 个方程: 计算: (M_i

    2024年02月08日
    浏览(39)
  • 「学习笔记」(扩展)中国剩余定理

    有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何? 该问题出自《孙子算经》,具体问题的解答口诀由明朝数学家程大位在《算法统宗》中给出: 三人同行七十希,五树梅花廿一支,七子团圆正半月,除百零五便得知。 (2 times 70 + 3 times 21 + 2 times

    2024年02月06日
    浏览(34)
  • RSA加解密算法的简单实现

    就前不久完成的RSA加解密实现这一实验来水一篇文章 算法原理: 一.米勒拉宾素性检测算法 米勒-拉宾(MillerRabbin)素性测试算法是一个高效判断素数的方法。 其涉及到的原理如下:         1、费马小定理: 如果 p 为质数             (在 mod p 的情况下 )         2、

    2024年02月05日
    浏览(32)
  • RSA算法加解密过程全解析

    不同于传统的对称加密算法体系,非对称公私钥密码系统中的加密密钥和解密密钥是相互分开的,加密密钥用于公开给别人加密,而只有持有解密密钥的人才能对信息进行解密。1976年诞生过不少非对称密码算法,但是RSA是其中最容易让人理解的。下文将尝试对RSA实现的具体流

    2023年04月23日
    浏览(34)
  • RSA 加密解密算法实现(简单,易懂)!!!

    目录 一、什么是RSA算法 1.对称加密 2.非对称加密 3.非对称加密的应用 二、RSA算法的基础操作步骤 1.生成公钥和私钥 2.用公钥加密信息  3.用私钥解密信息 三、AC代码 六、RSA算法的测试  七、共勉     在计算机中常用的加密算法分为两类: 对称加密算法和非对称加密算法。

    2024年01月20日
    浏览(67)
  • mbedtls移植之RSA加解密算法

    MbedTLS是一个开源、可移植、易使用、可读性高的SSL库,实现了常所用的加解密算法、X.509证书操作以及TLS协议操作。MbedTLS各功能模块独立性高、耦合度低,可以通过配置宏定义进行功能裁剪,非常适合对空间和效率要求高的嵌入式系统。 1978年,由Ron Rivest、Adi Shamir和Reonard

    2024年02月21日
    浏览(36)
  • C语言实现简单的RSA加解密算法

    使用c语言实现了简单的RSA加解密算法。 实验内容: 1、输入两个素数,然后生成一个随机数,计算出随机数的逆元,然后保存这些信息; 2、选择加密,则输入明文,输出密文; 3、选择解密,则输入密钥,输出明文。 我把输入的数据当做了字符串,所以没有问题对于汉字,

    2024年02月11日
    浏览(44)
  • 20.2 OpenSSL 非对称RSA加解密算法

    RSA算法是一种非对称加密算法,由三位数学家 Rivest 、 Shamir 和 Adleman 共同发明,以他们三人的名字首字母命名。RSA算法的安全性基于大数分解问题,即对于一个非常大的合数,将其分解为两个质数的乘积是非常困难的。 RSA算法是一种常用的非对称加密算法,与对称加密算法

    2024年02月08日
    浏览(49)
  • Java代码实现RSA算法加密解密文件功能

    底层算法不做赘述,想要了解自行百度。 RSA属于非对称加密,非对称加密有公钥和私钥两个概念,私钥自己拥有,不能给别人,公钥公开。根据应用的不同,我们可以选择使用不同的密钥加密: 签名:使用私钥加密,公钥解密。用于让所有公钥所有者验证私钥所有者的身份

    2024年02月12日
    浏览(56)
  • RSA、MD5加密解密算法全套解析安装教程

    第一部分介绍加密解密算法, 第二部分介绍我小组成功应用的RSA、MD5两种加密解密算法,以及心得体会。 1、加密解密算法介绍 应用的开发中安全很重要,所以信息加密技术显得尤为重要。我们需要对应用中的多项数据进行加密处理,从而来保证应用上线后的安全性,给用户

    2024年02月09日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包