0%

常见加密算法

加密算法

加密技术通常分为两大类:“对称式”和“非对称式”。

  • 对称式加密技术

    对称式加密就是加密和解密使用同一一个密钥,通常称之为”Session Key”。例如DES、AES、RC2、RC4…

  • 非对称式加密技术

    非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。这里的”公钥”是指可以对外公布的,”私钥”则不能,只能由持有人一个人知道。它的优越性就在这里,因为对称式的加密方法如果是在网络上传输加密文件就很难不把密钥告诉对方,不管用什么方法都有可能被别窃听到。而非对称式的加密方法有两个密钥,且其中的”公钥”是可以公开的,也就不怕别人知道,收件人解密时只要用自己的私钥即可以,这样就很好地避免了密钥的传输安全性问题。如RSA…

  • 另类:Hash,如DSA、MD5…

RC4算法


生成S盒伪代码如下:

1
2
3
4
5
6
7
8
fori from 0 to 255
S[i]:= i
endfor
j:=0
for i from 0 to 255
j:=(j+ S[i]+ key[i mod keylength])mod 256
swap values of S[i]and S[j]
endfor

用S盒生成密钥流伪代码如下:

1
2
3
4
5
6
7
8
9
i:=0
j:=0
while GeneratingOutput:
i:=(i + 1) mod 256
j:=(j + S[i]) mod 256
swap values of S[i] and S[j]
K:= S[(S[i] + S[j]) mod 256]
output K
endwhile

AES算法

微信小程序加密传输就是用的这个加密算法

RSA算法

在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。

Hash算法

哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。一般用于快速查找和加密算法。

技巧

为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。当对大文件直接进行RSA加密时,计算量会很大、计算很慢。因此,为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA对话密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。