加密体系:
为了保证通讯数据的真实性,保密性,完整性,不可否认性。
- 对称加密: 通讯双方A与B之间的通讯数据都用同一套密钥来进行加密。
优点:
简单快捷,密钥较短,且颇破译困难。
缺点:
如果用户一旦多的话,管理密钥也是一种困难。不方便直接沟通的两个用户之间怎么确定密钥也需要考虑,这其中就会有密钥泄露的风险,以及存在更换密钥的需求。
包括:
对称加密通常有DES,IDEA,3DES加密算法
- 非对称加密: 用公钥和私钥来加解密的算法。公钥公开,私钥私有。
优点:
比对称加密安全
缺点:
加解密比对称加密耗时
扩展:
非对称加密也存在漏洞,因为公钥是公开的,如果C冒充B的身份利用A的公钥给A发消息,这样就乱套了,所以接下来就采用非对称加密+摘要算法+数字签名的机制来确保传输安全。
包括:
RSA,ECC(移动设备用),Deffie-Hellman,EI Gamal,DSA(数字签名用)
- 单向加密(摘要算法)
Hash算法的特点是单向不可还原,用户可以通过Hash算法对目标信息(CON)生成一段特定长度的唯一Hash值,却不能通过这个Hash值中心获取目标信息。因此Hash算法常用在不可还原的密码存储,信息完整性校验等。只要源数据(CON)不同,算法得到的摘要必定不同。
包括:
MD2,MD4,MD5,HAVAL,SHA
- 数字签名
用途:
保证信息传输的完整性,发送者的身份认证,防止交易中的抵赖发生。数字签名是将原始明文通过Hash算法得到摘要a,这个摘要是不可逆的;将明文b使用密钥c对称加密得到d,连通摘要a(使用对方B的公钥加密后)一起发送给B;B接收后(使用自己B的私钥)解密,得到这个摘要a和加密明文d和密钥c,再使用密钥c解密加密明文d得到明文b。
完整的非对称加密过程:
- 你先向第三方CA请求验证对方身份。
- 你将准备要发送的数字信息a(明文)计算要转的多少钱,对方支付宝账号等。
- 你对数字信息a进行哈希运算,得到信息摘要b。
- 你用自己的私钥c对信息摘要b进行加密得到数字签名d,并附在数字信息a上得到e。
- 你随机产生一个加密密钥f,并用此密钥f对e(对称)加密得到密文g。
- 你使用支付宝的公钥h对f加密,得到加密后的密钥i,将DES密钥i连通密文g一起传送给支付宝。
- 支付宝收到你传送来的密文和加密过的DES密钥i,先用自己的私钥j(与h相对)对加密的DES密钥i进行解密,得到你随机产生的密钥f。
- 支付宝用随机密钥对收到的密文g进行解密,得到明文的数字信息e,然后将随机密钥f丢弃。
- 支付宝使用你的公钥k(与c相对)对数字签名d进行解密,得到数字摘要b
- 支付宝使用相同的哈希算法对收到的明文e中的a再进行一次哈希运算,得到一个新的信息摘要m。
- 支付宝将自己运算的数字摘要m与你发送来的数字摘要b进行比较,如果一致,说明收到的信息没有没修改过
确定收到信息,然后进行向对方付款交易,一次费对称加密解密过程结束。在这后面的流程就不属于本次非对称加密的范畴,算支付宝个人的自我流程也就是循环以上过程。