RSA加密算法及特定条件下的破解

本文介绍了RSA加密算法的工作流程,数学原理以及密钥对生成。重点讨论了在特定条件下,如文本长度较短时,RSA加密可能存在的破解方法,包括通过建立原文与密文的对应表进行破解。同时,提供了利用公钥进行加密的代码示例。
摘要由CSDN通过智能技术生成

在对称加密算法中,信息的发送方和接收方用同样的密钥对信息进行加密和解密,而如何安全传递key本身成为了一个十分严重的问题,因此产生了公开密钥密码体制。

公开密钥密码体制使用不同的密钥来进行加密和解密,加密密钥公开(公钥),而解密密钥私有(私钥),加密算法和解密算法都是公开的。解密密钥由加密密钥决定,但却无法从加密密钥运算得到。

由于公钥和加密算法的公开,理论上攻击者可以尝试所有可能的原文并对其加密来与密文进行对比从而找出原文,而实际上这样的计算量过于庞大。所以公开密钥密码体制仅仅是计算上的安全,而非完美的安全。

RSA是目前最有影响力的公钥加密算法,其安全性基于对大素数相乘的结果没有有效的因式分解方法。在实际操作上,只要RSA的密钥足够长的,其加密的信息是无法被破解的。


RSA加密算法的流程 

Alice向Bob发送加密信息:

1. Bob产生一对密钥对,包含一个公钥和一个私钥。

2. Bob发布他的公钥

3. Alice用Bob的公钥对信息进行加密并发送给Bob

4. Bob用私钥对收到的加密信息进行解密


RSA数学原理

取两个大素数 pqm = pq,取 d使 de = 1 mod (p-1)(q-1)
加密算法: ek(x) = xemod m
解密算法: dk(y) = yd mod m
公钥: em
密钥: dm

注:通常用 快速幂取模算法进行a^n mod bd的运算。

要证明该算法的正确性,我们只需证明 x = dk(ek(x)),即对信息加密并解密后,能否得到原始信息。
证明:
要证明 x等于 dk(ek(x)) = (xe mod m)d mod m = xde mod pq
因为p和q都是素数,所以我们只需证明  xde  = x mod p 且  xde x mod q 即可。

已知de = 1 mod (p-1)(q-1),所以存在h使得de - 1 = h (p -1)(q - 1) 

xde xde-1x = xh(p-1)(q-1)x= (xh(q-1))p-1x

由费马小定理 = 1h(q- 1)x mod p = x 

(费马小定理:当x为整数p为素数,xp-1 = 1 mod p

类似可得 xde <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值