每个人的声音都面向世界

木受绳则直,金就砺则利,君子博学而日参省乎己,则知明而行无过矣。

RSA加密算法简单介绍

这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。 算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman。   RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个 才能解密。   RSA的算法涉及三个参数,n、e、d。   其中,n是两个大质数p、q的积。n的二进制表示时所占用的位数,就是所谓的密钥长度。   e和d是一对相关的值,e可以任意取,但要求满足e<(p-1)(q-1)并具 e与(p-1)(q-1)互质(就是最大公约数为1); 再选择d,要求(de)mod((p-1)(q-1))=1。   (n及e),(n及d)就是密钥对。   RSA加解密的算法完全相同,设M为明文,c为密文,则: 加密:C=Me mod n; 解密:m=cd mod n;   注:上面两式中的e和d可以互换。
n d两个数构成公钥,可以告诉别人; n e两个数构成私钥,e自己保留,不让任何人知道。 给别人发送的信息使用私钥e加密,只要别人能用公钥d解开就证明信息是由你发送的,构成了签名机制,起验证身份的作用。 别人给你发送信息时使用d加密,这样只有拥有e的你能够对其解密,起到数据保密的作用。
整理一下: 为实现RSA的加解密 最终目标:找三个参数 n,e,d 1、n = pq (p,q 是两个质数) 2、 1)、φ(N)=(p-1)(q-1) 2)、取任何一个数e,要求满足e<φ(N)并且e与φ(N)互质 3、(d*e) modφ(N)=1 //================================================================ 加密的明文长度不能超过RSA密钥的长度-11,比如1024位的,明文长度不能超过117。
密文的长度总是密钥的长度的一半,比如1024位的,密文长度是64,如果是1032位,密文长度是65位。