RSA加密算法详解及例题

RSA加密算法详解及例题这是我自己在学习RSA加密算法的时候自己整理的笔记,如需转载请注明出处RSA加密算法我这里就不对RSA的发明背景做介绍了,你只要知道RSA加密算法是非常非常重要的加密算法,放在现在的时代亦是如此。RSA加密算法的安全性是基于对极大整数做因数分解的困难。RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。例如:(1)乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。(2)甲方获取乙方的公钥,然后用它对信息加密

大家好,又见面了,我是你们的朋友全栈君。

这是我自己在学习RSA加密算法的时候自己整理的笔记,如需转载请注明出处

RSA加密算法

我这里就不对RSA的发明背景做介绍了,你只要知道RSA加密算法是非常非常重要的加密算法,放在现在的时代亦是如此。

RSA加密算法的安全性是基于对极大整数做因数分解的困难
RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。例如:
(1)乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。
(2)甲方获取乙方的公钥,然后用它对信息加密。
(3)乙方得到加密后的信息,用私钥解密
公钥加密的信息只有私钥解得开,那么只要私钥不泄漏,通信就是安全的。

密钥生成过程

1、 随机找两个质数 P 和 Q ,P 与 Q 越大,越安全;
2、 计算他们的乘积 n = P * Q
3、 计算 n 的欧拉函数 φ(n):φ(n) = φ(P * Q)= φ(P – 1)φ(Q – 1) = (P – 1)(Q – 1)
4、 随机选择一个整数 e,条件是 1< e < φ(n),且 e 与 φ(n) 互质
5、 计算e对于 φ(n) 的模反元素d,可以使得 ed 除以 φ(n) 的余数为 1
( 1<d<e,且e
d mod φ(n) = 1 ) 即:d=e^-1 ( mod φ(n) )
6、 公钥(n,e);私钥(n,d);

RSA使用公共指数e和私有指数d。指数e是每个人都知道的公钥(e, N)的一部分。使用公钥e加密的消息只能使用私钥d解密

加解密过程

c:密文
m:明文
加密:c = m^e mod N
解密:m = c^d mod N

例题

例题:在RSA加密体制中, 已知素数 p = 7, q = 11, 公钥 e = 13, 试计算私钥 d 并给出对明文 m = 5 的加密,求其密文. 已知密文 c = 15, 求其明文

解:
n=pq=77
φ(n)=(p-1)(q-1)=60
e
d≡1 mod φ(n)
即13d mod 60 = 1
解得:d = 37
公钥(n,e)=(77,13)
密文c = m^e mod n = 5^13 mod 77 = 26
私钥(n,d)=(77,37)
明文m = c^d mod n = 15^37 mod 77 = 71

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131267.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • DEDECMS点击主栏目默认显示第一个子栏目列表的方法

    DEDECMS点击主栏目默认显示第一个子栏目列表的方法

    2021年9月24日
    56
  • docker启动mysql失败(闪退)原因

    docker启动mysql失败(闪退)原因创建好mysql之后容器之后可以连接后来修改了配置发现mysql启动不了dockerps-a查看发现mysql的状态一直是EXISTdockerstartmysql能成功启动(docker返回mysql)但是再查看dockerps发现还是没有启动起来大概可以知道就是docker启动之后又迅速关闭想起Docker容器后台运行,就必须有一个前台进程。否则就会自动关闭,大概推测是docker里的mysql没又起起来。想起刚刚修改了配置,可能是配置错了导致的。一看发现粘贴配置的时候格

    2025年11月10日
    8
  • SSIS技巧–优化数据流缓存

    SSIS技巧–优化数据流缓存

    2021年11月26日
    72
  • 解决session阻塞的问题

    解决session阻塞的问题

    2021年11月26日
    59
  • 使用lrzsz上传ssh客户端公钥[通俗易懂]

    使用lrzsz上传ssh客户端公钥[通俗易懂]lrzsz是一种Linux服务器和window互传文件小工具。lrzsz只适合传输小文件,不适合传输大型文件。一般用来传公钥文件。安装Ubuntusudoapt-getinstalllrzszCentOSyuminstalllrzsz使用说明与ssh客户端有关的两个命令可以提供很方便的操作:sz:将选定的文件发送(send)到本地机器szafile…

    2022年6月23日
    30
  • exchange smtp端口_imap服务器怎么设置

    exchange smtp端口_imap服务器怎么设置怎么样配置smtp服务器设置,smtp服务器是邮件外发服务器,通常用作邮件的对外投递工作。那门Exchagne的smtp服务应该怎样去配置呢?本文为你分享。安装smtp服务从“开始”菜单,单击“控制面板。双击“添加或删除程序”。从左侧窗格,单击“添加/删除Windows组件”。从“组件”列表中,单击“应用程序服务器”,然后单击“详细信息”。从“应用程序服务器的子组件”列表中,单击“Intern…

    2022年10月3日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号