目录
加密技术
基本概念
常见的加密算法
对称加密算法
非对称加密算法
数字信封
信息摘要
数字签名
数字证书
明文:实际要传输的真正数据
密文:经过加密之后的数据
加密:将明文转换为密文的过程
解密:将密文转换为明文的过程
加密算法:一般是公开的,包括两大规则,代换和置换
密钥:加密和解密过程中使用的密码等,是隐藏的
对称加密技术:就是对数据的加密和解密的密钥(密码)是相同的,属于不公开密钥加密算法,缺点是加密强度不高,且密钥分发困难(因为密钥还需要传输给接收方,也要考虑保密性问题)
非对称加密技术:就是对数据的加密和解密的密钥是不同的,是公开密钥加密算法,缺点是加密速度慢(计算量大,不适合加密大数据)
非对称加密原理:
发送方甲方和接收方乙方都分别有各自的公钥和私钥,且甲方的公钥加密后只能由甲方的私钥解密,乙方也一样。双方的公钥是公开的,可以相互共享,但是私钥只能自己知道,此时,甲方要传输数据给乙方,应该使用乙方的公钥进行加密,这样只有使用乙方的私钥才能解密,而乙方的私钥只有乙方有,保证了数据的保密性,也不用分发解密的密钥。
DES:替换+移位,56位密钥,64位数据块,速度快,密钥易产生
3DES:两个56位密钥K1,K2,加密过程:K1加密->K2解密->K1加密,解密过程:K1解密->K2加密->K1解密
AES:高级加密标准Rijjndael算法,是美国联邦政府处采用的一种区块加密标准。这个标准用来代替原来的DES算法
RC-5:RSA数据安全公司的很多产品使用了RC-5
IDEA算法:128位密钥,64数据库,比DES加密性好,对计算机功能要求相对低。
RSA:512位或1024位密钥,计算量大,难破解
Elgamal:基础是Diffie-Hellman密钥交换算法
ECC:圆锥曲线算法
信是对称加密的密钥,数字信封就是对此密钥进行非对称加密,具体过程:发送发将数据用对称密钥加密传输,而将对称密钥用接收方的公钥加密发送给对方,接收方收到数字信封,用自己的私钥解密信封,取出对称密钥解密得出原文。
信息摘要就是一段数据的特征信息,当数据发生了改变,信息摘要也会发生改变,发送方会将数据和信息摘要一起传送给接收方,接收方会根据接收到的数据重新生成一个信息摘要,若此摘要和接收到的相同,则说明数据正确。信息摘要是由哈希函数生成的。
信息摘要的特点:无论数据有多长,都会产生固定长度的信息摘要:任何不同输入数据,都会产生不同的信息摘要;单向性,即只能由数据生成信息摘要,不能由信息摘要还原数据。
信息摘要算法:MD5(产生128位的输出),SHA-1(安全散列算法,产生160位输出)
由上述特点,可知使用信息摘要可以保证数据传输的完整性,只需要双方对比生成的信息摘要是否相同即可判断数据有没有被篡改,但是这样会出现一个问题,就是当发送方发送的数据和信息摘要都被篡改了,那么接收方拿到错误的数据生成的信息摘要也和篡改的信息摘要相同,接收方就无能为力了,这个问题用数字签名解决。
上述技术只保证了数据传输过程中的保密性和完整性,但却无法保证发送方是否非法,即在传输过程中,数据被第三方截获,即使不能机密获取真实数据,但是他可以伪造一段数据,也用加密算法加密后发送给接收方,那么接收方无法判断发送方是否合法,其只会用发送方告诉他的方法来解密,此时就要用数字签名来验证发送方是否合法。
数字签名属于非对称加密体制,主要功能有:不可否认、报文鉴别、报文的完整性
原理:若发送方需要发送数据,应该使用发送方的私钥进行数字签名,而其公钥是共享的,任何接收方都可以拿来解密。因此,接收方使用了发送方的公钥解密,就必然知道此数据是由发送发的私钥加密的,而发送方的私钥只属于发送方,唯一标识了数据是由谁发送的,这就是数字签名的过程原理。
将数字签名技术和非对称加密技术合并使用,数据的传输过程如下:发送方A和接收方B,A使用A的私钥进行数字签名,再将传输数据用B的公钥加密,到达B后,B首先使用自己的私钥解密,然后使用A的公钥来核实签名,确认发送发合法,才会取出明文。
当数字签名和信息摘要合用后,就能保证不会产生错误,因为数字签名确定了唯一的发送方,第三方无法伪造,如果数据被篡改,数字签名肯定错误,如果数字签名无误,则数据肯定没被篡改,然后根据信息摘要验证数据的完整性。
同时,因为数字签名本质也是基于非对称加密算法的原理,因此其对整个报文进行签名的速度也很慢,生成信息摘要后,可以只对信息摘要进行数字签名,这就大大提高了效率,接收方收到后可以对信息摘要先核实签名,然后再将自己生成的信息摘要和核实签名后的信息摘要进行对比。
数字证书又称数字标识,由用户申请,证书签证机关CA对其核实签发的,对用户的公钥的认证。上述的技术都是在原发送方是正确的情况下所做的加密和认证技术,然而当发送方本身就是伪造的,即发送方的公钥本身就是假的,那么后续的加密、数字签名就没有意义了,因此对发送方的公钥进行验证是十分重要的。
数字证书原理:数字证书是将持有者的公钥和持有者信息绑定起来的机制,每一个发送方都要向CA申请数字证书,数字证书是经过CA数字签名了的,即使用CA私钥加密过的,当发送方要发送数据时,接收方首先下载CA的公钥,去验证数字证书的真伪,如果是真的,就能保证发送方是真的,因为CA是官方权威机构,合法性毋庸置疑。
最安全的过程要验证两步:1、在网银系统中,使用网银时,要先下载该银行的数字证书,之后本地客户机会用CA的公钥对数字证书进行解密,解密成功说明是CA颁发的,是该银行系统而非黑客冒充。2、确认了通信对方无误后,就可以采用上述的一系列加密和认证技术来对通信数据进行加密,确保数据不会在发送过程中被截获篡改。