当前位置:首页 » 操作系统 » ras算法

ras算法

发布时间: 2022-04-12 09:11:43

1. 谁能通俗地讲下RSA算法

这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman。
RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。
RSA的算法涉及三个参数,n、e1、e2。
其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。
e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质;再选择e2,要求(e2*e1)mod((p-1)*(q-1))=1。
(n及e1),(n及e2)就是密钥对。
RSA加解密的算法完全相同,设A为明文,B为密文,则:A=B^e1 mod n;B=A^e2 mod n;
e1和e2可以互换使用,即:
A=B^e2 mod n;B=A^e1 mod n;

2. RSA算法举例

首先看下rsa算法:
找两素数p和q
计算n=p*q和
t=(p-1)*(q-1)
取小于n的一个数e,并且e与t互质,就是最大公约数是1
找一个数d,d满足(ed-1)
mod
t
=0
公钥取(n,e),私钥取(n,d)
现在开始分析,
已知公钥是(n=35,e=5),那么
n=p*q,p与q只能是7和5
那么t就是24
而(ed-1)%t=0
也就是(5d-1)%24=0,那么可以取d为5
所以私钥是
(d=5,n=35)
解密公式:m=c^d
mod
n
=10^5
mod
35
=5
所以明文m是5

3. rsa算法原理

RSA算法是最常用的非对称加密算法,它既能用于加密,也能用于数字签名。RSA的安全基于大数分解的难度。其公钥和私钥是一对大素数(100到200位十进制数或更大)的函数。从一个公钥和密文恢复出明文的难度,等价于分解两个大素数之积。

我们可以通过一个简单的例子来理解RSA的工作原理。为了便于计算。在以下实例中只选取小数值的素数p,q,以及e,假设用户A需要将明文“key”通过RSA加密后传递给用户B,过程如下:设计公私密钥(e,n)和(d,n)。

令p=3,q=11,得出n=p×q=3×11=33;f(n)=(p-1)(q-1)=2×10=20;取e=3,(3与20互质)则e×d≡1 mod f(n),即3×d≡1 mod 20。通过试算我们找到,当d=7时,e×d≡1 mod f(n)同余等式成立。因此,可令d=7。从而我们可以设计出一对公私密钥,加密密钥(公钥)为:KU =(e,n)=(3,33),解密密钥(私钥)为:KR =(d,n)=(7,33)。

英文数字化。将明文信息数字化,并将每块两个数字分组。假定明文英文字母编码表为按字母顺序排列数值。则得到分组后的key的明文信息为:11,05,25。

明文加密。用户加密密钥(3,33) 将数字化明文分组信息加密成密文。由C≡Me(mod n)得:
C1(密文)≡M1(明文)^e (mod n) == 11≡11^3 mod 33 ;
C2(密文)≡M2(明文)^e (mod n) == 26≡05^3 mod 33;
C3(密文)≡M3(明文)^e (mod n) == 16≡25^3 mod 33;
所以密文为11.26.16。

密文解密。用户B收到密文,若将其解密,只需要计算,即:
M1(明文)≡C1(密文)^d (mod n) == 11≡11^7 mod 33;
M2(明文)≡C2(密文)^d (mod n) == 05≡26^7 mod 33;
M3(明文)≡C3(密文)^d (mod n) == 25≡16^7 mod 33;
转成明文11.05.25。根据上面的编码表将其转换为英文,我们又得到了恢复后的原文“key”。

当然,实际运用要比这复杂得多,由于RSA算法的公钥私钥的长度(模长度)要到1024位甚至2048位才能保证安全,因此,p、q、e的选取、公钥私钥的生成,加密解密模指数运算都有一定的计算程序,需要仰仗计算机高速完成。

4. 什么是RSA算法

RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

5. RSA算法介绍

它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, Adi Shamir 和Leonard Adleman。但RSA的安全性一直未能得到理论上的证明。它经历了各种攻击,至今未被完全攻破。

一、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) 互质, 用辗转相除法就可以得到了.....
再来, 计算 n = pq.......
m, n 这两个数便是 public key

编码过程是, 若资料为 a, 将其看成是一个大整数, 假设 a < n....
如果 a >= n 的话, 就将 a 表成 s 进位 (s <= n, 通常取 s = 2^t),
则每一位数均小于 n, 然后分段编码......
接下来, 计算 b == a^m mod n, (0 <= b < n),
b 就是编码后的资料......

解码的过程是, 计算 c == b^r mod pq (0 <= c < pq),
于是乎, 解码完毕...... 等会会证明 c 和 a 其实是相等的 :)

如果第三者进行窃听时, 他会得到几个数: m, n(=pq), b......
他如果要解码的话, 必须想办法得到 r......
所以, 他必须先对 n 作质因数分解.........
要防止他分解, 最有效的方法是找两个非常的大质数 p, q,
使第三者作因数分解时发生困难.........

<定理>
若 p, q 是相异质数, rm == 1 mod (p-1) (q-1),
a 是任意一个正整数, b == a^m mod pq, c == b^r mod pq,
则 c == a mod pq

证明的过程, 会用到费马小定理, 叙述如下:
m 是任一质数, n 是任一整数, 则 n^m == n mod m
(换另一句话说, 如果 n 和 m 互质, 则 n^(m-1) == 1 mod m)
运用一些基本的群论的知识, 就可以很容易地证出费马小定理的........

<证明>
因为 rm == 1 mod (p-1)(q-1), 所以 rm = k(p-1)(q-1) + 1, 其中 k 是整数
因为在 molo 中是 preserve 乘法的
(x == y mod z and u == v mod z => xu == yv mod z),
所以, c == b^r == (a^m)^r == a^(rm) == a^(k(p-1)(q-1)+1) mod pq

1. 如果 a 不是 p 的倍数, 也不是 q 的倍数时,
则 a^(p-1) == 1 mod p (费马小定理) =& gt; a^(k(p-1)(q-1)) == 1 mod p
a^(q-1) == 1 mod q (费马小定理) =& gt; a^(k(p-1)(q-1)) == 1 mod q
所以 p, q 均能整除 a^(k(p-1)(q- 1)) - 1 => pq | a^(k(p-1)(q-1)) - 1
即 a^(k(p-1)(q- 1)) == 1 mod pq
=> c == a^(k(p-1)(q-1)+1) == a mod pq

2. 如果 a 是 p 的倍数, 但不是 q 的倍数时,
则 a^(q-1) == 1 mod q (费马小定理)
=> a^(k(p-1)(q-1)) == 1 mod q
=> c == a^(k(p-1)(q-1)+1) == a mod q
=> q | c - a
因 p | a
=> c == a^(k(p-1)(q-1)+1) == 0 mod p
=> p | c - a
所以, pq | c - a => c == a mod pq

3. 如果 a 是 q 的倍数, 但不是 p 的倍数时, 证明同上

4. 如果 a 同时是 p 和 q 的倍数时,
则 pq | a
=> c == a^(k(p-1)(q-1)+1) == 0 mod pq
=> pq | c - a
=> c == a mod pq
Q.E.D.

这个定理说明 a 经过编码为 b 再经过解码为 c 时, a == c mod n (n = pq)....
但我们在做编码解码时, 限制 0 <= a < n, 0 <= c < n,
所以这就是说 a 等于 c, 所以这个过程确实能做到编码解码的功能.....

二、RSA 的安全性

RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解 RSA就一定需要作大数分解。假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。目前, RSA 的一些变种算法已被证明等价于大数分解。不管怎样,分解n是最显然的攻击方法。现在,人们已能分解多个十进制位的大素数。因此,模数n 必须选大一些,因具体适用情况而定。

三、 RSA的速度

由于进行的都是大数计算,使得RSA最快的情况也比DES慢上倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量数据加密。

四、 RSA的选择密文攻击

RSA在选择密文攻击面前很脆弱。一般攻击者是将某一信息作一下伪装( Blind),让拥有私钥的实体签署。然后,经过计算就可得到它所想要的信息。实际上,攻击利用的都是同一个弱点,即存在这样一个事实:乘幂保留了输入的乘法结构:

( XM )^d = X^d *M^d mod n

前面已经提到,这个固有的问题来自于公钥密码系统的最有用的特征--每个人都能使用公钥。但从算法上无法解决这一问题,主要措施有两条:一条是采用好的公钥协议,保证工作过程中实体不对其他实体任意产生的信息解密,不对自己一无所知的信息签名;另一条是决不对陌生人送来的随机文档签名,签名时首先使用 One-Way HashFunction 对文档作HASH处理,或同时使用不同的签名算法。在中提到了几种不同类型的攻击方法。

五、RSA的公共模数攻击

若系统中共有一个模数,只是不同的人拥有不同的e和d,系统将是危险的。最普遍的情况是同一信息用不同的公钥加密,这些公钥共模而且互质,那末该信息无需私钥就可得到恢复。设P为信息明文,两个加密密钥为e1和e2,公共模数是n,则:

C1 = P^e1 mod n

C2 = P^e2 mod n

密码分析者知道n、e1、e2、C1和C2,就能得到P。

因为e1和e2互质,故用Euclidean算法能找到r和s,满足:

r * e1 + s * e2 = 1

假设r为负数,需再用Euclidean算法计算C1^(-1),则

( C1^(-1) )^(-r) * C2^s = P mod n

另外,还有其它几种利用公共模数攻击的方法。总之,如果知道给定模数的一对e和d,一是有利于攻击者分解模数,一是有利于攻击者计算出其它成对的e’和 d’,而无需分解模数。解决办法只有一个,那就是不要共享模数n。

RSA的小指数攻击。 有一种提高 RSA速度的建议是使公钥e取较小的值,这样会使加密变得易于实现,速度有
所提高。但这样作是不安全的,对付办法就是e和d都取较大的值。

RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC问题。 RSA的缺点主要有:A)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。B)分组长度太大,为保证安全性,n 至少也要 600 bits 以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。目前,SET( Secure Electronic Transaction )协议中要求CA采用比特长的密钥,其他实体使用比特的密钥。

6. RSA加密算法原理

RSA加密算法是一种典型的非对称加密算法,它基于大数的因式分解数学难题,它也是应用最广泛的非对称加密算法,于1978年由美国麻省理工学院(MIT)的三位学着:Ron Rivest、Adi Shamir 和 Leonard Adleman 共同提出。

它的原理较为简单,假设有消息发送方A和消息接收方B,通过下面的几个步骤,就可以完成消息的加密传递:
消息发送方A在本地构建密钥对,公钥和私钥;
消息发送方A将产生的公钥发送给消息接收方B;
B向A发送数据时,通过公钥进行加密,A接收到数据后通过私钥进行解密,完成一次通信;
反之,A向B发送数据时,通过私钥对数据进行加密,B接收到数据后通过公钥进行解密。
由于公钥是消息发送方A暴露给消息接收方B的,所以这种方式也存在一定的安全隐患,如果公钥在数据传输过程中泄漏,则A通过私钥加密的数据就可能被解密。
如果要建立更安全的加密消息传递模型,需要消息发送方和消息接收方各构建一套密钥对,并分别将各自的公钥暴露给对方,在进行消息传递时,A通过B的公钥对数据加密,B接收到消息通过B的私钥进行解密,反之,B通过A的公钥进行加密,A接收到消息后通过A的私钥进行解密。
当然,这种方式可能存在数据传递被模拟的隐患,但可以通过数字签名等技术进行安全性的进一步提升。由于存在多次的非对称加解密,这种方式带来的效率问题也更加严重。

7. 网络安全 简述RSA算法的原理和特点

1978年就出现了这种算法,它是第一个既能用于数据加密也能用于数字签名的算法。
它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, Adi
Shamir 和Leonard Adleman。但RSA的安全性一直未能得到理论上的证明。

RSA的安全性依赖于大数分解。公钥和私钥都是两个大素数( 大于 100
个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个
大素数的积。

密钥对的产生。选择两个大素数,p 和q 。计算:

n = p * q

然后随机选择加密密钥e,要求 e 和 ( p - 1 ) * ( q - 1 ) 互质。最后,利用
Euclid 算法计算解密密钥d, 满足

e * d = 1 ( mod ( p - 1 ) * ( q - 1 ) )

其中n和d也要互质。数e和
n是公钥,d是私钥。两个素数p和q不再需要,应该丢弃,不要让任何人知道。

加密信息 m(二进制表示)时,首先把m分成等长数据块 m1 ,m2,..., mi ,块长s
,其中 2^s <= n, s 尽可能的大。对应的密文是:

ci = mi^e ( mod n ) ( a )

解密时作如下计算:

mi = ci^d ( mod n ) ( b )

RSA 可用于数字签名,方案是用 ( a ) 式签名, ( b )
式验证。具体操作时考虑到安全性和 m信息量较大等因素,一般是先作 HASH 运算。

RSA 的安全性。
RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因
为没有证明破解
RSA就一定需要作大数分解。假设存在一种无须分解大数的算法,那它肯定可以修改成
为大数分解算法。目前, RSA
的一些变种算法已被证明等价于大数分解。不管怎样,分解n是最显然的攻击方法。现
在,人们已能分解140多个十进制位的大素数。因此,模数n
必须选大一些,因具体适用情况而定。

RSA的速度。
由于进行的都是大数计算,使得RSA最快的情况也比DES慢上100倍,无论是软件还是硬
件实现。速度一直是RSA的缺陷。一般来说只用于少量数据加密。

RSA的选择密文攻击。
RSA在选择密文攻击面前很脆弱。一般攻击者是将某一信息作一下伪装(
Blind),让拥有私钥的实体签署。然后,经过计算就可得到它所想要的信息。实际上
,攻击利用的都是同一个弱点,即存在这样一个事实:乘幂保留了输入的乘法结构:

( XM )^d = X^d *M^d mod n

前面已经提到,这个固有的问题来自于公钥密码系统的最有用的特征--每个人都能使
用公钥。但从算法上无法解决这一问题,主要措施有两条:一条是采用好的公钥协议
,保证工作过程中实体不对其他实体任意产生的信息解密,不对自己一无所知的信息
签名;另一条是决不对陌生人送来的随机文档签名,签名时首先使用One-Way Hash
Function
对文档作HASH处理,或同时使用不同的签名算法。在中提到了几种不同类型的攻击方
法。

RSA的公共模数攻击。
若系统中共有一个模数,只是不同的人拥有不同的e和d,系统将是危险的。最普遍的
情况是同一信息用不同的公钥加密,这些公钥共模而且互质,那末该信息无需私钥就
可得到恢复。设P为信息明文,两个加密密钥为e1和e2,公共模数是n,则:

C1 = P^e1 mod n

C2 = P^e2 mod n

密码分析者知道n、e1、e2、C1和C2,就能得到P。

因为e1和e2互质,故用Euclidean算法能找到r和s,满足:

r * e1 + s * e2 = 1

假设r为负数,需再用Euclidean算法计算C1^(-1),则

( C1^(-1) )^(-r) * C2^s = P mod n

另外,还有其它几种利用公共模数攻击的方法。总之,如果知道给定模数的一对e和d
,一是有利于攻击者分解模数,一是有利于攻击者计算出其它成对的e’和d’,而无
需分解模数。解决办法只有一个,那就是不要共享模数n。

RSA的小指数攻击。 有一种提高
RSA速度的建议是使公钥e取较小的值,这样会使加密变得易于实现,速度有所提高。
但这样作是不安全的,对付办法就是e和d都取较大的值。

RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研
究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为
人们接受,普遍认为是目前最优秀的公钥方案之一。RSA
的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难
度等价。即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数
人士倾向于因子分解不是NPC问题。
RSA的缺点主要有:A)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次
一密。B)分组长度太大,为保证安全性,n 至少也要 600 bits
以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大
数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。目前,SET(
Secure Electronic Transaction
)协议中要求CA采用2048比特长的密钥,其他实体使用1024比特的密钥。

DSS/DSA算法

Digital Signature Algorithm
(DSA)是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSS(Digital Signature
Standard)。算法中应用了下述参数:
p:L bits长的素数。L是64的倍数,范围是512到1024;
q:p - 1的160bits的素因子;
g:g = h^((p-1)/q) mod p,h满足h < p - 1, h^((p-1)/q) mod p > 1;
x:x < q,x为私钥 ;
y:y = g^x mod p ,( p, q, g, y )为公钥;
H( x ):One-Way Hash函数。DSS中选用SHA( Secure Hash Algorithm )。
p, q,
g可由一组用户共享,但在实际应用中,使用公共模数可能会带来一定的威胁。签名及
验证协议如下:
1. P产生随机数k,k < q;
2. P计算 r = ( g^k mod p ) mod q
s = ( k^(-1) (H(m) + xr)) mod q
签名结果是( m, r, s )。
3. 验证时计算 w = s^(-1)mod q
u1 = ( H( m ) * w ) mod q
u2 = ( r * w ) mod q
v = (( g^u1 * y^u2 ) mod p ) mod q
若v = r,则认为签名有效。

DSA是基于整数有限域离散对数难题的,其安全性与RSA相比差不多。DSA的一个重要特
点是两个素数公开,这样,当使用别人的p和q时,即使不知道私钥,你也能确认它们
是否是随机产生的,还是作了手脚。RSA算法却作不到。

本文来自CSDN博客,

8. 什么是RSA算法,求简单解释。

RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够
抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。由于进行的都是大数计算,使得RSA最快的情况也比DES慢上好几倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量数据加密。RSA的速度比对应同样安全级别的对称密码算法要慢1000倍左右。
基础
大数分解和素性检测——将两个大素数相乘在计算上很容易实现,但将该乘积分解为两个大素数因子的计算量是相当巨大的,以至于在实际计算中是不能实现的。
1.RSA密码体制的建立:
(1)选择两个不同的大素数p和q;
(2)计算乘积n=pq和Φ(n)=(p-1)(q-1);
(3)选择大于1小于Φ(n)的随机整数e,使得gcd(e,Φ(n))=1;
(4)计算d使得de=1mod Φ(n);
(5)对每一个密钥k=(n,p,q,d,e),定义加密变换为Ek(x)=xemodn,解密变换为Dk(x)=ydmodn,这里x,y∈Zn;
(6)以{e,n}为公开密钥,{p,q,d}为私有密钥。
2.RSA算法实例:
下面用两个小素数7和17来建立一个简单的RSA算法:
(1)选择两个素数p=7和q=17;
(2)计算n=pq=7 17=119,计算Φ(n)=(p-1)(q-1)=6 16=96;
(3)选择一个随机整数e=5,它小于Φ(n)=96并且于96互素;
(4)求出d,使得de=1mod96且d<96,此处求出d=77,因为 77 5=385=4 96+1;
(5)输入明文M=19,计算19模119的5次幂,Me=195=66mod119,传出密文C=66;(6)接收密文66,计算66模119的77次幂;Cd=6677≡19mod119得到明文19。

9. RSA算法的基本含义

RSA公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。
在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。
正是基于这种理论,1978年出现了着名的RSA算法,它通常是先生成一对RSA 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA对话密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。
RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现今的三十多年里,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。
SET(Secure Electronic Transaction)协议中要求CA采用2048bits长的密钥,其他实体使用1024比特的密钥。RSA密钥长度随着保密级别提高,增加很快。下表列出了对同一安全级别所对应的密钥长度。 保密级别 对称密钥长度(bit) RSA密钥长度(bit) ECC密钥长度(bit) 保密年限 80 80 1024 160 2010 112 112 2048 224 2030 128 128 3072 256 2040 192 192 7680 384 2080 256 256 15360 512 2120 这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, Adi Shamir 和 Leonard Adleman。早在1973年,英国国家通信总局的数学家Clifford Cocks就发现了类似的算法。但是他的发现被列为绝密,直到1998年才公诸于世。
RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。
RSA的算法涉及三个参数,n、e1、e2。
其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。
e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质;再选择e2,要求(e2*e1)mod((p-1)*(q-1))=1。
(n,e1),(n,e2)就是密钥对。其中(n,e1)为公钥,(n,e2)为私钥。
RSA加解密的算法完全相同,设A为明文,B为密文,则:A=B^e2 mod n;B=A^e1 mod n;(公钥加密体制中,一般用公钥加密,私钥解密)
e1和e2可以互换使用,即:
A=B^e1 mod n;B=A^e2 mod n;

10. des算法与rsa算法区别

1、性质不同:RSA公开密钥密码体制是一种使用不同的加密密钥与解密密钥。DES算法为密码体制中的对称密码体制,是1972年美国IBM公司研制的对称密码体制加密算法。

2、特点不同:密钥事实上是56位参与DES运算分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。RSA算法是由已知加密密钥推导出解密密钥在计算上是不可行的密码体制。

3、密钥数字不同:RSA允许选择公钥的大小。512位的密钥被视为不安全的;768位的密钥不用担心受到除了国家安全管理(NSA)外的其他事物的危害,1024位的密钥几乎是安全的。DES算法把64位的明文输入块变为64位的密文输出块,所使用的密钥也是64位。

(10)ras算法扩展阅读:

注意事项:

当改变明文的前8字节时,只会影响密文的前8字节,密文后8字节不变。因此,在应用3DES算法对线路传输数据加密过程中,若想保证密文的整体变化,要保证每块明文数据都是变化的。

使用者在设置密钥的时候应注意,密钥的前后8字节不要完全一样,否则就变为了DES算法,安全强度就会下降(用户可根据Cn=Ek3(Dk2(Ek1(Mn)))公式自行推导)。需要特别留意的是,密钥每字节中的最后一位是检验位,不会参与到加密运算中。

热点内容
pythontimestr 发布:2024-09-28 19:07:30 浏览:866
山村咏怀的算法 发布:2024-09-28 18:37:54 浏览:597
网上存储空间哪家好 发布:2024-09-28 18:07:19 浏览:642
未公开算法 发布:2024-09-28 18:02:02 浏览:359
如何知道优酷会员账号和密码 发布:2024-09-28 17:50:01 浏览:436
php当页显示 发布:2024-09-28 17:37:51 浏览:467
怎么给安卓手机加小插件 发布:2024-09-28 17:01:08 浏览:799
微信sdkpython 发布:2024-09-28 16:57:36 浏览:752
系统配置如何设为默认 发布:2024-09-28 16:32:07 浏览:403
不用审核的我的世界宝可梦服务器 发布:2024-09-28 16:12:11 浏览:112