公开密钥算法RSA简介及简单证明

公开密钥算法RSA简介

此博客争取以最精简的语言讲解RSA公钥加密算法的原理和结果证明

  1. 选取两个大素数p,q,并要求保密
  2. 计算n = p * q,以及欧拉函数φ(n) = (p-1) * (q-1)
  3. 随机选取加密秘钥 e ,要求 eφ(n) 互质
  4. 根据Euclid算法计算解密秘钥 d ,应满足 d * e ≡ 1 mod φ(n) ,其中 nd 也要满足互素。即**(e,n)即为公钥,(d,n)**即为私钥。
  5. 最终结果即 m ^ e ≡ c (mod n)c ^ d ≡ m (mod n),其中m为明文,c为密文

RSA的简单证明
RSA的证明涉及简单的欧拉定理,不懂之处请自行百度百度百科提供欧拉定理详细内容
RSA算法的证明即是对最终结果中的两个公式证明
m ^ e ≡ c (mod n) ①
c ^ d ≡ m (mod n) ②
根据欧拉定理,当满足条件p,q为素数,xn互质,φ(n) = (p-1) * (q-1)n = p * q
则有 x ^ φ(n) ≡ 1 mod n 成立
将公式 ② 代入到公式 ① 可得
(c ^ d mod n)^e mod n ≡ c 证明RSA算法即是证明此式是否成立?

左边 = c ^de mod n
由于 d * e ≡ 1 mod φ(n) ,令 d * e = φ(n) * t + 1 ,为使公式显得更加简洁下面将用字母a代替φ(n).
d * e = a * t + 1
所以左边 = c ^ (a * t + 1) mod n
= c * c^(a * t) mod n
=c * [(c^a) mod n] ^t mod n ———根据上述 c ^ a mod n ≡ 1
=c * 1 ^ t mod n
=c
证明结束


  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值