密钥认证原理算法
数据安全在网上传输要从三个方面获得保证:数据机密性、数据完整性、身份验证。安全
数据机密性:ide
A和B通讯,能够用对称加密来保证。A把plaintext经加密---获得ciphertext 把它发给B,B用密钥解密获得数据。问题出现:A和B如何协商密钥。如遇到第三方***,第三方是C,C截获A发送给B的密钥,而后冒充A给B发送数据,这数据机密性得不到保障。加密
密钥如何发送给对方,而不让第三方知道?url
能够用Diffie hellman 算法试验。A选取两个数 p (大素数)g(生产数)发送给Bspa
A和B在各选一个随机数X Y A:g^x%p B:g^y%p互信发给对方,ip
A获得数据后计算出(g^y)^x%p B获得数据后计算出(g^x)^y%p,两个数相同,这就是两者的密钥。ci
数据完整性:it
A和B通讯,A发给B数据,A能够用单向加密算法加密数据发给B。单向加密,是提取数据特征码,并附加到数据后面。B接受到数据后,用单向加密算法提取数据特征码,如特征码一致,说明数据正常。问题:C截获A发的数据,获得A的发的数据,篡改后发送给B,B仍是没法验证对方的身份。单向加密特征:微小变化,引发巨大变化(雪崩效应),不可逆。定出输出。table
身份验证:可用公钥加密(非对称加密算法)验证身份。原理:公钥加密生成秘钥对,公钥和私钥,公钥发给对方,私钥本身保留,私钥加密数据后,只能经过本身的公钥解密。这就保证了发送方的数据。如C获取数据,用A的公钥机密后获得数据,可是他不可能在经过A的私钥进行加密,这样B就能够验证发送方的身份。问题:
用公钥加密数据,私钥解密能够实现数据机密性,由于只有发送方的本身私钥能够对其解密。
|
|
A用本身的私钥加密数据特征码保证数据的完整性
A随机选选一个密钥,用对称密钥加密数据和特征码,而后用B的公钥加密此密钥,发送给B,如此就保证了数据的三个特性。问题,A和B的公钥如何让对方得到?
CA,第三方发给机构,A把本身的公钥机信息发给CA,CA用本身的私钥对其加密,B到CA机构获得A的证书信息。