RSA算法原理

     RSA算法原理

    RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。1987年首次公布,当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。(摘自百度)

 

和DH算法讲解方式不同,我们需要先讲解部分数学基础,然后再讲RSA原理。



数学基础














  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RSA加解密的过程可以分为以下几个步骤: 1. 选择两个不同的质数p和q,并计算它们的乘积n = p * q。 2. 计算欧拉函数φ(n) = (p-1) * (q-1)。 3. 选择一个小于φ(n)且与φ(n)互质的整数e作为公钥,即公钥为(e, n)。 4. 计算e在模φ(n)意义下的逆元d,即满足ed ≡ 1 (mod φ(n))的d,d为私钥,即私钥为(d, n)。 5. 加密:将明文M转化为整数m(满足0 ≤ m < n),加密后的密文C为C ≡ m^e (mod n)。 6. 解密:将密文C转化为整数c,解密后的明文M为M ≡ c^d (mod n)。 RSA加解密的公式如下: 加密:C ≡ m^e (mod n) 解密:M ≡ c^d (mod n) 其中,e为公钥中的指数,d为私钥中的指数,n为公钥和私钥中的模数,m为明文,c为密文。 RSA算法的正确性可以通过以下公式进行证明: 根据欧拉定理,对于任意正整数a和与a互质的正整数n,都有a^φ(n) ≡ 1 (mod n)。 假设M为明文,C为密文,则有: C ≡ M^e (mod n) 将e表示为φ(n)中的某个数k和φ(n)的余数r的和,即e = kφ(n) + r,则有: C ≡ M^(kφ(n)+r) (mod n) 由欧拉定理可得: M^φ(n) ≡ 1 (mod n) 因此,上式可以化简为: C ≡ M^(kφ(n)+r) ≡ (M^φ(n))^k * M^r ≡ M^r (mod n) 因此,C可以表示为M的r次方模n的余数。而d是e在模φ(n)意义下的逆元,即ed ≡ 1 (mod φ(n)),可以表示为ed = kφ(n) + 1。将其代入解密公式中可得: M ≡ C^d ≡ (M^r)^d ≡ M^(kφ(n)+1) (mod n) 由于M^φ(n) ≡ 1 (mod n),因此上式可以进一步化简为: M^(kφ(n)+1) ≡ M * (M^φ(n))^k ≡ M (mod n) 因此,解密后得到的明文M与原明文M相等,证毕。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值