算法学习笔记(3) RSA原理与证明

1.非对称加密

RSA是一种非对称加密算法。由消息接收者将公钥发送给消息发送者,使用容易被截获的公钥来加密;把私钥一直保存在消息的接收者处,使用不容易被截获的私钥来解密。这样即使攻击者截获了公钥也无法获取加密后的内容。

这种算法还可以用于数字签名。使用发送端的私钥来加密数字签名,使用发送端传输给目标端的公钥来解密数字签名,如果解密成功,证明消息发送端是可靠的。而因为私钥难以获取,攻击者也难以用共钥伪造数字签名。

2.数论知识

欧拉函数

\phi (N)=小于N的正整数中与N互质的数的数目

欧拉函数有特殊性质:若p和q互质,且N=pq,则有\phi(N)=\phi(p)\phi(q)=(p-1)(q-1)

模逆元素

如果两个正整数a和n互质,那么一定可以找到整数b,使得ab-1被n整除,也就是ab与1模n时同余:ab\equiv1(mod n)

欧拉定理

当a,n为两个互质的正整数时,有:a^{\phi(n)}\equiv1(mod n)

这样,由于a^{\phi(n)}=a·a^{\phi(n)-1}\equiv1(mod n)a^{\phi(n)-1}就是a关于模n的模逆元素

重要条件

(a·b)modn=((amodn)·(bmodn))modn

证明:
假设a和b除以n的余数为c1,c2,则a和b可以写成a=n·t1+c1,b=n·t2+c2
那么,a·b=n^2·t1·t2+n·t1·c2+n·t2·c1+c1·c2
因此,a·b除以n的余数为(c1·c2)modn,由于c1和c2都不能被n整除,因此(c1·c2)modn=c1·c2,即(a·b)modn=(amodn)·(bmodn)

3.RSA实践

  1. 基础数生成:选择两个大的且不相等的质数p和q,计算N=pq
  2. 求基础数欧拉函数:r=\phi(N)=\phi(p)\phi(q)=(p-1)(q-1)
  3. 寻找公钥:选择一个小于r的整数e使e与r互质
  4. 生成私钥:求e关于r的模逆元素d

这样(N,e)就是公钥,(N,d)就是私钥,p和q被销毁因此r也随之被销毁。消息接收者在执行完上述步骤后保存私钥,而将公钥发送给消息发送者。消息发送者用公钥加密信息:
c=n^e mod N
其中n是信息的编码(必须小于N,可以分段编码并加密)。然后将信息发出,接收到消息的一方可以用自己的私钥来解密消息:
n=c^dmodN

证明:n=(((c^e)modN)^d)modN=重要条件逆用=>c^{d·e}modN=模逆元素定义(k为任意正整数)=>c^{kr+1}modN=>(c·(c^k)^r)modN=重要条件=>((cmodN)·((c^k)^rmodN))modN=重要条件=>((cmodN)·((c^kmodN)^rmodN))modN=设任意正整数k为\phi (N)=>((cmodN)·((c^{\phi (N)}modN)^rmodN))modN=欧拉公式=>((cmodN)·((1)^rmodN))modN=c

4.原理

大数分解质因数是很困难的,得到了N也很难得到p和q,自然很难得到(p-1)(q-1)=r,那么得到了e也很难得到e关于r的模逆元素d

e和d又拥有单向的加密解密性,这使得非对称加密得以成立

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 加密技术包括两个元素:算法和密钥。 算法是将普通的信息或者可以理解的信息与一串数字(密钥)结合,产生不可理解的密文...
    赵客缦胡缨v吴钩霜雪明阅读 1,307评论 0 16
  • 一、RSA的历史 1976 年以前,所有的加密方法都是同一种模式: (1)甲方选择某一种加密规则,对信息进行加密;...
    开着保时捷堵你家门口阅读 2,558评论 0 1
  • 前言 文中首先解释加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的...
    sunny冲哥阅读 3,200评论 0 2
  • 数字证书原理 - 无恙 - 博客园 文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明...
    拉肚阅读 1,774评论 0 3
  • 文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现...
    已认证用户阅读 3,988评论 1 4

友情链接更多精彩内容