美文网首页
RSA原理简要分析

RSA原理简要分析

作者: 疯狂的冰块 | 来源:发表于2017-06-16 23:32 被阅读142次

我们最常用的密码RSA简要分析:

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

RSA算法基于一个十分简单的数论事实:将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

设n=a*b(a,b为质数)
m=(a-1)*(b-1)
任取一个数字e,使得(e,m)=1,即e与m互质。

所以,可得,
存x,y使得

x*e+y*m=1,
==>
xe≡1(mod m)
任取一个常数C,由费马小定理可知:
C^(a-1)≡1(mod a)
C^(b-1)≡1(mod b)

费马小定理:若p是素数或者(p,A)=1, A为任意正整数,则
A^(p-1) ≡ 1 (mod p)

引理1(华罗庚文集2 P21 定理2)
若a1≡b1,a2≡b2,则a1a2≡b1b2(mod m),
由此可得一下推论
a1n≡b1n(mod m)

由引理1得出推论1:
(C^(a-1))^(b-1)  ≡1^(b-1) (mod a)
(C^(b-1))^(a-1)  ≡1^(a-1) (mod b)
即
a  | C^(a-1)(b-1)-1
b  | C^(a-1)(b-1)-1
又因为a,b为质数,所以(a,b)=1,所以ab | C^(a-1)(b-1)-1

即:
C^(a-1)(b-1) ≡1(mod a*b)

其实这里还可以得到推论2:
若a≡b (mi) ,i=1,2···,m,则
a≡b(mod [m1,m2,···,ms])
证明同上。

由于xe-1是m的倍数, xe-1=q*m=q*(a-1)(b-1)

所以:
C^(xe-1)≡1(mod a*b)
又因为n=ab,所以:
C^xe≡C(mod n)

现在我们将n,e这两个数作为公钥n,x这两个数作为密钥,
现在我们明白了以下问题:
首先我们说的“密钥”是指谁?由于RSA密钥是(公钥+模值)、(私钥+模值)分组分发的,单独给对方一个公钥或私钥是没有任何用处,所以我们说的“密钥”其实是它们两者中的其中一组。但我们说的“密钥长度”一般只是指模值的位长度。目前主流可选值:1024、2048、3072、4096...

当我们要将一个数C用公钥加密发送给私钥持有者的时候,我们就计算
C^e mod n = z
仅仅根据z这个值是很难重新计算回C的值的,即使知道n和e也不可以。但是当我们拿到这个结果,然后我们又知道n和 x 的时候,我们可以计算:
z^x  mod n =(C^e mod n)^x mod n =C^xe mod n=C
是不是很神奇又将C给解了出来。

参考链接:
https://www.zhihu.com/question/48927324/answer/113359990?utm_source=qq&utm_medium=social

RSA密钥长度、明文长度和密文长度

相关文章

  • RSA原理简要分析

    我们最常用的密码RSA简要分析: RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·...

  • Java 实现 RSA 加密

    本文介绍 RSA 加密的原理、示例、安全性分析及 Java 语言实现。 目录 RSA 简介原理示例安全性常见用途 ...

  • RSA算法原理(作者: 阮一峰)

    RSA算法原理(一) RSA算法原理(二) RSA C算法实现【 看雪安全论坛】

  • MyBatis 原理浅析 2 ——配置解析

    前言 在前文《MyBatis 原理浅析——基本原理》一文中,简要分析了 MyBatis 的技术原理,主要是 Sql...

  • RSA签名认证

    RSA可汗学院第一章 RSA加密 RSA加密原理第一章 RSA加密原理第二章 如何生成RSA公钥私钥 生成类似支付...

  • iOS开发之签名原理

    导读 iOS App 签名的原理RSA算法原理(一)RSA算法原理(二) 对称加密 过程如下: 数据发送方选择一种...

  • 我整理的网上讲解详细的文章

    讲算法的 RSA算法原理(一) RSA算法原理(二) 网络协议 iOS网络协议----HTTP/TCP/IP浅析 ...

  • 椭圆曲线密码学原理分析

    之前写过一篇文章分析过 RSA 算法原理后,想了解下更复杂点的椭圆曲线密码学原理(Elliptic Curve C...

  • 数字证书和数字签名

    数字签名是什么?RSA算法原理(一)RSA算法原理(二)RSA数字签名与加密、解密间的关系 在网络通信中,可以通过...

  • 密码学第二次实验报告:RSA算法

    实验题目 RSA算法 实验目的 了解公钥算法基本原理和RSA算法的原理。了解RSA算法在数据加密和数字签名中的应用...

网友评论

      本文标题:RSA原理简要分析

      本文链接:https://www.haomeiwen.com/subject/itqvqxtx.html