RSA 算法简述
RSA是什么 计算机的加密技术分为对称加密和非对称加密两类。在对称加密中,信息的加解密使用同一秘钥key,其可简化加解密的过程,较为简单,但不足之处在于由于加解密使用同一个key,信息传送双方都要接触这个key,密钥key更容易泄露。 在公开密钥加密即非对称加密中,密钥分为公钥PK(发送方通过PK对数据加密,然后发送给接收方,PK可公开),私钥SK(SK解密方保存,接收方通过SK对密文解密,SK不公开)。RSA公钥密码体制是最具代表性的非对称加密方式。 RSA算法原理 RSA定理:若P和Q是两个相异质数,另有正整数D和E,其中E的值与 (P-1)(Q-1)的值互质,并使得DE%(P-1)(Q-1)=1,有正整数M,且M<PQ,设: C=ME%PQ,B=CD%PQ,则有M=B。 生成公钥和密钥 随意选择两个大的素数P和Q,且P不等于Q 令N=PQ 令T=(P-1)(Q-1) 选择一个整数E,作为一个密钥,使E与T互质(即E与T的最大公约数为1),且E必须小于T 由公式DE%T=1,计算得到D的值,作为另一密钥 将(N,E)作为公钥,(N,D)作为私钥,当然也可互换。 用公钥加密信息 发送方收到公钥(N,E)后,通过公钥对数据进行加密,操作如下: 明文:M 加密:ME%N=C 密文:C 用私钥解密信息 接收方收到密文C后,通过私钥(N,D)进行解密,得到明文M,操作如下: 密文:C