DH & RSA 原理
作者&投稿:麻周 (若有异议请与网页底部的电邮联系)
这里我们要介绍的 pre-master 的生成算法,就是 DH 秘钥交换的变种, ECDHE 。下面我们先来介绍一下 DH 算法。
DH,全称是 Diffe-Hellman ,它的原理很简单。
双方预先知道两个公共参数 g 和 p,然后各自给定一个数,最后根据一个数学公式,则可计算出相同的秘钥。
这是建立 模幂运算 的基础上,先求幂,后取模,称为模幂计算。如下所示,其中 p 是质数,a、b、p 都取很大的数,g 可以取较小的数。
假设 Alice 与 Bob 通信,协商秘钥,计算过程如下:
最终得到 k1 == k2 。
私钥 a,b 不被外部所知,只有 A、B、g、p 是公开的。而仅仅知道这几个数,是很难求出 a、b 的。因为涉及到对数运算问题。
对于下面这个模幂公式来说:
它满足如下特性:
该算法就是利用了 1、2 特性。
非对称加密算法,用公钥加密,可以用私钥解密;用私钥加密,可以用公钥解密。
假设 g 是原始数据,套用如下公式,经过公钥 a 加密后变为了 A。
那么如何解出 g 呢?假设我们也根据上面的公式套用一下,用同样的方式解密,如下所示。其中 d 是私钥,将 A 进行解密得到 g。
将 A 代入,可得到:
那么 a、d、g 之间的关系就建立起来了。
同样,如果用私钥 d 加密,公钥 a 来解密,也是成立的。
欧拉函数 φ(x) 表示,≤ x 的正整数中,有多少个数与其互质。比如 x = 4,比 4 小的数有 1、2、3、4,其中 1、3 是质数,所以 φ(4) = 2。
它满足如下特性:
欧拉定理如下,g 的 φ(p) 次幂,再模上 p,结果为 1。其中 g,p 互质。
下面我们将欧拉定理做如下处理:
当我们有了公钥 a,要计算出私钥 d,就很容易了,只需知道 φ(p) 。而又要让 φ(p) 不易被破解,根据欧拉公式中提到的 φ(x) = (m-1)*(n-1) ,可以取用很大的质数 m 和 n, p = m * n ,这样破解起来就很困难了。
因为外部知道的是公钥 a、非常大的数 p,求出 d 需要将 p 进行质因数分解。而对超大数进行分解非常困难,当 p 的位数越长,安全性就越好。现在一般采用 2048 位,1024 位已经不太安全了。
错录乳糖: 非对称密钥——RSA算法RSA算法是最流行的公钥密码算法,使用长度可以变化的密钥.RSA是第一个既能用于数据加密也能用于数字签名的算法.RSA算法原理如下:1.随机选择两个大质数p和q,p不等于q,计算N=pq; 2.选择一个大于1小...
五峰土家族自治县19290193253: rsa加密原理是什么??
错录乳糖: 定义:RSA加密算法 确定密钥: 1. 找到两个大质数,p,q 2. Let n=pq 3. let m=(p-1)(q-1);Choose e and d such that de=1(%m). 4. Publish n and e as public key. Keep d and n as secret key. 加密: C=M^e(%n) 解密: M=(C^d)%n
五峰土家族自治县19290193253: rsa加密和解密的理论依据是什么 - ?
错录乳糖: 以前也接触过RSA加密算法,感觉这个东西太神秘了,是数学家的事,和我无关.但是,看了很多关于RSA加密算法原理的资料之后,我发现其实原理并不是我们想象中那么复杂,弄懂之后发现原来就只是这样而已.. 学过算法的朋友都知道,计...
五峰土家族自治县19290193253: RSA公开密钥体制进行运算的原理??
错录乳糖: RSA算法是R.Rivest、A.Shamir和L.Adleman于1977年在美国麻省理工学院开发,于1978年首次公布.RSA公钥密码算法是目前网络上进行保密通信和数字签名的最有效的安全算法之一.RSA算法的安全性基于数论中大素数分解的困难性,所以...
五峰土家族自治县19290193253: 帮我解释一下RSA算法的原理 - ?
错录乳糖: 首先, 找出三个数, p, q, r, 其中 p, q 是两个相异的质数, r 是与 (p-1)(q-1) 互质的数 p, q, r 这三个数便是 private key 接著, 找出 m, 使得 rm == 1 mod (p-1)(q-1 这个 m 一定存在, 因为 r 与 (p-1)(q-1) 互质, 用辗转相除法就可以得...
五峰土家族自治县19290193253: 什么是RSA算法? - ?
错录乳糖: RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的.RSA取名来自开发他们三者的名字.RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准.RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥.
五峰土家族自治县19290193253: RSA加密与对称加密如何使用呢?他们的混合应用又应该怎么用呢? - ?
错录乳糖: RSA算法是第一个能同时用于加密和数字签名的算法.RSA算法能生成公私钥对.假设A、B要通信,那么他们需要彼此知道对方的公钥,如果a向b发送信息,a先用自己的私钥对信息进行加密(即签名),然后用b的公钥进行加密.当 b收到消...
五峰土家族自治县19290193253: RSA算法加密 - ?
错录乳糖: RSA加密算法是一种典型的非对称加密算法,它基于大数的因式分解数学难题,它也是应用最广泛的非对称加密算法,于1978年由美国麻省理工学院(MIT)的三位学着:Ron Rivest、Adi Shamir 和 Leonard Adleman 共同提出. 它的原理较为...
五峰土家族自治县19290193253: 什么是RSA?用于何种场合? - ?
错录乳糖: RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密. RSA的算法涉及三个参数,n、e1、e2. 其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓...
五峰土家族自治县19290193253: RSA加密算法原理请用用简单的语言描述~ - ?
错录乳糖:[答案] RSA算法 :它是第一个既能用于数据加密也能用于数字签名的算法.它易于理解和操作,也很流行.算法的名字以发明者的名字命名:Ron Rivest,Adi Shamir 和Leonard Adleman.但RSA的安全性一直未能得到理论上的证明.它经历了...