RSA算法原理

RSA是一种非对称加密算法,由Rivest、Shamir和Adleman于1977年提出。该算法基于大数因子分解的困难性,用于在网络不安全的环境中确保数据传输的安全。加密过程涉及公钥和私钥,其中公钥可公开,私钥必须保密。文章介绍了RSA的工作原理、所需的数学知识,包括互质、欧拉函数等,并通过示例和Java代码进行了详细解释。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

在如今的万维网环境中,如果A要向B发送数据,需要先加密这个数据,因为在一些不安全的网络环境中上网,是很容易被拦截到发送的数据的,如果使用对称加密,密钥传递在网络中被拦截了也一样可以解密,也不可能用线下告知消息接收方密钥的这种方式来进行通信。

在这种情况下第一代非对称加密算法RSA出现了,RSA是1977年由在麻省理工学院工作的Ron Rivest、Adi Shamir和Leonard Adleman一起提出的,RSA就是他们三人姓氏开头字母拼在一起组成的。在A想要发送数据给B时,A先会找B让B产生一对公私钥对e和d(e为公钥d为私钥)和一个大数n,然后B会把e和n发送给A,A收到后会用e和n加密数据之后再发送给B,B收到数据后就能用私钥d来解密出A发送的数据。公钥具有加密之后就无法再用公钥解密的特性,即使获取到了公钥和加密后的数据,也无法解密出原始数据

需要了解的数学知识

互质:若两个及以上的整数的最大公约数为1,那么就称这些数互质

如4:4%1=0,4%2=0,4%3=1,4%4=0 那么4的约数有1,2,4

   5:5%1=0,5%2=1,5%3=2,5%4=1,5%5=0 那么5的约数有1,5就是说5与4只有约数1相等,那么他们的最大公约数就为1,5与4就互质

如果是一个质数的话那么他与除了是自己倍数的数都互质

(m^{e}%n)^{d}%n=m^{ed}%n

m的e次方余n的d次方余n等于m的e乘d次方余n

此定理为RSA加解密的过程,把m看作需要加密的数据,加密时为m^{e}%n(我们把得出的结果也就是密文记为c),解密时c^{d}%n,如果我们能满足 m^{ed}%n=m的条件则RSA加解密算法成立

欧拉函数:a^{\phi b}%b=1

 若a和b互质那么a的phi(读作fai) b次方余b等于1

基于此函数让RSA加解密成立,其中\phi b的意思是在小于b的正整数中与b互质的数的个数,如果b本身为质数,那么b与小于自己的正整数都为互质关系,那么这时\phi b=b-1

欧拉函数还有个性质\phi (pq)=\phi p*\phi q如果p和q是两个大的质数那么这个性质可以快速求出与一个大数互质的数的个数,RSA算法的破解难度也与p和q的大小成正比,我们将p和q的乘积记为n,那么

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值