RSA的加密解密原理

基本认识基础

欧拉函数:任意给定正整数n,欧拉函数\varphi(n)表示在小于等于n的正整数中与n构成互质关系的n的个数。

关于欧拉函数的计算需要明白一点,任意一个大于1的正整数可以写成一系列质数的积,及如果

\varphi (n)=\varphi (p_1*p_2*p_3...p_m),其中p_1,p_2,p_3....p_m均为质数prime,那么p_1和p_2*p_3...p_m互质,并且剩余部分切分以后也存在互质关系。因此根据欧拉函数的性质可以推倒出:

\varphi (n)=\varphi (p_1)*\varphi (p_2)*\varphi (p3)....\varphi (p_m)=(p_1-1)*(p_2-1)*(p_3-1)....(p_m-1)

欧拉定理:如果两个正整数m和n互质,那么m^\varphi(n)mod(n)\equiv 1,即就是m的\varphi(n)次方被n除的余数是1

RSA的加密过程,假设alice和bob要通信。

1、alice随机选择两个不相等的大质数p和q。

2、计算p和q的乘积n,即n=p*q。

3、随机选择一个整数e使得1<e<\varphi (n)并且e跟\varphi(n)互质。

4、计算e跟\varphi (n)的模反元素d,使得ed\equiv 1\varphi (n)。

5、将n,e封装成公钥pub(n,e),n,d封装成私钥pri(n,d)。

知道n,e的情况下很难推倒出d,因为大整数的质因数分解是一件非常困难的事情。

现在公钥和私钥已经生成,假设bob要向alice发送的明文为m,那么Bob需要用alice的公钥进行加密:

m^e\equiv c mod(n)

先在alice收到密文c需要进行解密:

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本人以前对非对称加密有一些了解,但是对非对称加密为啥是安全的一直不是很清楚,所以今天打算弄懂这个问题。 一,对称加...
    Jack_deng阅读 941评论 0赞 1
  • http://blog.csdn.net/q376420785/article/details/8557266 h...
    John_cui阅读 738评论 0赞 4
  • 前言 RSA算法是现今使用最广泛的公钥密码算法,也是号称地球上最安全的加密算法。本文主要参考了参考资料中的文章,加...
    卖糖果的小傻嘟阅读 906评论 0赞 0
  • 学过算法的朋友都知道,计算机中的算法其实就是数学运算。所以,再讲解RSA加密算法之前,有必要了解一下一些必备的数学...
    假装是小宇阅读 11,926评论 0赞 3
  • 必备数学知识 RSA加密算法中,只用到素数、互质数、指数运算、模运算等几个简单的数学知识。所以,我们也需要了解这几...
    依然饭太稀阅读 928评论 0赞 0

友情链接更多精彩内容