浅谈加密技术
1、加密算法术语
假设我们将ABCD中的每个字母替换为其后的第二个字母,例如A替换为C,最终ABCD替换为CDEF.
明 文:ABCD
加密算法:字母替换
密 钥:每个字母替换为其后的第二个字母
密 文:CDEF
加 密:ABCD --> CDEF
解 密:CDEF --> ABCD
2、加密算法分类
加密算法分为对称加密算法(私钥加密)和非对称加密算法(公钥加密)
2.1、对称加密算法(私钥加密)
加密解密使用相同的密钥。
DES(Data Encryption Standard)
DES加密共有三种形式,分为DES(40-bit长度加密),DES(56-bit长度加密)以及3DES(3倍的56-bit长度加密,即168-bit长度加密)
AES(Advanced Encryption Standard)
AES加密共有三种形式,分为AES 128(128-bit长度加密),AES 192(192-bit长度加密)以及AES 256(256-bit长度加密)
2.2、非对称加密算法(公钥加密)
加密解密使用不同的密钥,加密时使用的密钥称为公钥,解密时使用的密钥称为私钥,公钥用于加密,私钥用于解密。
其基本思想是:甲将公钥发送给乙,乙用公钥加密数据后,将数据发送给甲,其他人即使截获了数据,因为没有密钥,也无法获取数据的内容。
RSA公钥加密算法的名字是发明者的人名:Rivest, Shamir and Adleman,该算法的长度位数不定,由人手工定义。
3、加密算法选择
公钥加密算法虽然相对私钥加密算法安全,但是其速度叫私钥加密算法慢。所以通常的做法是,先使用公钥加密算法安全传送私钥加密算法的密钥后,再使用私钥加密算法就行数据加密。此种做法在保证密钥安全的同时加快了数据加密的速度。
4、Hash算法
数据发送前计算出相应的Hash值,接收者收到数据后也计算Hash值,如果两者不一致,说明数据在传输过程中被篡改了。Hash算法的特征在于任何大小的数据计算出的Hash值的长度都是一样的,仅仅是根据Hash值,是无法推算出数据内容的,无法将数据内容还原。Hash多用于认证,认证对等体双方在相互认证时,只需要交换密码的Hash值即可,而无需交换密码,从而防止了密码被窃取。
MD5(Message Digest 5)
将任何数据通过计算后输出128-bit长度的Hash值。
SHA-1(Secure Hash Algorithm 1)
160-bit digest将任何数据通过计算后输出160-bit长度的Hash值。