RSA非对称加密原理

本文深入探讨了RSA非对称加密的原理,包括加密和解密的过程,以及欧拉定理在其中的应用。通过一个实际的例子,展示了如何使用公钥和私钥进行加密和解密操作。RSA的核心在于大数因数分解的难度,这使得加密过程相对安全。在实际应用中,通常结合对称加密来提高效率,确保信息安全。

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

RSA非对称加密原理

我们都知道对称加密是用一串密钥进行加密以及解密,故密钥保存在接受者和发送者手中,但一旦被窃取了密钥,安全信息自然的就暴露了。
故而就有了非对称加密:设计两种密钥,一种公钥对所有人公开,另一种密钥只有接受者拥有。发送者只能用公钥进行加密,接受者拿到密文后只能用密钥进行解密。

一,加密思路:

有没有一种正向加密简单,逆向求原值难呢,答案就是取模运算(单向函数),如要计算 3 3 m o d 7 3^3 mod 7 33mod7 很简单 答案是2 但要计算 原来的数:9,情况就比较复杂了。非对称加密正是利用了这一点!
公式:加密: m e m o d N = c m^e mod N=c memodN=c
解密: c d m o d N = m c^dmodN=m cdmodN=m
其中m为明文,c为密文,e为公钥,d为密钥。

二,证明过程:

对上面的式子做一下变换得到: m e d m o d N = m m^{ed}modN =m medmodN=m 其中对于e,d的计算显得尤为重要,这里引入欧拉定理: m ψ ( N ) m o d N = 1 m^{\psi(N)}modN = 1 mψ(N)modN=1(对于任何一个与N互质的正整数m,提取它的 ψ ( N ) \psi(N) ψN次方然后对n取余数结果都等于1,其中,欧拉函数 ψ ( N ) \psi(N) ψN定义:小于或等于N的正整数中,有多少个与N互质的数。
我们对欧拉定理进行变形:
先左右两端同时去k次幂得到: m k ψ ( N ) m o d N = 1 m^{k \psi(N)}modN = 1 mkψ(N)modN=1
然后左右两端同乘以m得到: m k ψ ( N ) + 1 m o d N = m m^{k \psi(N)+1}modN = m mkψ(N)+1modN=m
这里我们发现和上面的加密公式变换后很像: m e d m o d N = m m^{ed}modN =m medmodN=m
推出: d = k ψ ( N ) + 1 e d=\frac{k\psi(N)+1}{e} d=ekψN+1 相关定理: ψ ( p ∗ q ) = ψ ( p ) ∗ ψ ( q ) \psi(p*q)=\psi(p)*\psi(q) ψpq=ψpψq
p,q为质数则 ψ ( p ∗ q ) = ψ ( p ) ∗ ψ ( q ) = ( p − 1 ) ∗ ( q − 1 ) \psi(p*q)=\psi(p)*\psi(q)=(p-1)*(q-1) ψpq=ψpψq=(p1)(q1)
其中e,N是公开的作为公钥而d为私钥,RSA核心就在于 ψ ( N ) \psi(N) ψN(p,q)极为难求,即(对大数求与因数分解且因数为质数)。

三,以下我们举一个小例子:

公钥e取一个较小的数字3,p,q取17和23,k取5
则算出n为352,则私钥d=587
我们将e=3,n=352公开,发送者将明文a(ASII码值为97)加密为: 9 7 3 m o d 352 = 289 97^3mod352=289 973mod352=289发送给接受者,接受者拿着私钥d=587密文289进行解密,得到: 28 9 587 m o d 352 = 97 289^{587}mod352=97 289587mod352=97

四,结语:

我们可以看到在加密解密的过程中求指数和取模的过程中计算量还是很大的,当我们需要加密信息过于多时计算量会很大,故而在实例应用中常常将对称加密非对称加密结合起来使用,对称加密加密要发送的信息,然后用非对称加密加密对称加密的密钥。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值