RSA非对称加密原理

RSA非对称加密原理

版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/zhangjingao/article/details/106761877

RSA介绍

  RSA加密属于非对称加密,即加密和解密是使用密钥对中不同的秘钥进行的。自己保留的为私钥,公开的为公钥,两者都可以加密,但是只有使用另一者才能解密。
  RSA加密的密钥对表示为(E,D,N)。(E是单词加密Encryption的首字母,D是解密Decryption的首字母,N是单词数字Number的首字母)。
  RSA可以弥补对称加密中通信双方使用同一秘钥,在使用太多时,需要分配的秘钥数太多的问题,不过因为RSA需要的计算过程比较繁杂,加密速度就比对称加密慢。

密钥对(E,D,N)解析

  E,D,N是加解密的关键,那么如何得到这些呢?
  有几个关键的数值,这里说明一下:

关键数含义
(E,N)加密密钥对
(D,N)解密密钥对
E加密次方
D解密次方
N加解密模数
p,q,L都是求解中间数

  第一二步为中间值,后面为核心数E,D,N。
  1、首先随机选择两个质数p,q,比如p=17,q=19。
  2、求L,L为两个质数-1的最小公倍数,即L=最小公倍((q-1),(p-1))= 144。
  3、N为两个质数之积,N=q*p=323。
  4、求E,E必须满足两个条件,非定值。
    条件1:1 < E < L
    条件1:最大公约数(E,L)= 1
    这里可以随意取,本文取E=5。
  5、求D,D也必须满足两个条件,非定值。
    条件1:1 < D < L
    条件2: D*E mod L = 1
    D需要根据E去取,本文取D=29

  很好,那么得到密钥对(5,29,323)。加密秘钥为(5,323),解密秘钥为(29,323)。

RSA加解密过程,假设明文为1234

加密

  密文=明文^E mod N
  即密文是由明文先取E次方,再对N取余得到的。
  以上面密钥对(5,29,323)为例:
  密文=245^5 mod 323 = 215

解密

  明文=密文^D mod N
  即明文是由密文先取D次方,再对N取余得到的。
  以上面密钥对(5,29,323)为例:
  明文=215^29 mod 323 = 245

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值