1."对称加密算法"
(1)甲方选择某一种加密规则,对信息进行加密。
(2)乙方使用同一种规则,对信息进行解密。
由于加密和解密使用同样规则(简称"密钥"),所以被称为"对称加密算法"。
存在问题:甲方必须把解密规则告诉乙方,否则无法解密。但密钥在传递和保存过程中会存在安全隐患。
2."非对称加密算法"
(1)乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。
(2)甲方获取乙方的公钥,然后用它对信息加密。
(3)乙方得到加密后的信息,用私钥解密。
如果公钥加密的信息只有私钥解得开,那么只要私钥不泄漏,通信就是安全的,这避免了解密密钥的传递。
存在问题:甲发邮件给乙,甲使用乙的公钥对邮件加密,乙使用自己的私钥进行解密(存在甲被黑客冒充,乙无法确定甲的真实身份)。
3.数字签名:(这个不仅验证了甲的真实身份,还验证了信件是否被篡改)
甲如果要证明自己身份,可以用自己私钥加密邮件,然后乙用甲的公钥解密,解得开则可证明甲是真的。
数字签名的步骤:
1.甲先对这封邮件执行哈希运算得到的hash值简称“摘要”,取名H1。
2.然后甲用自己的私钥对摘要加密,生成的东西叫“数字签名”。
3.甲把数字签名加在邮件正文后面,然后为了防止邮件被窃听用乙的公钥对整个邮件加密。
4.乙用自己的私钥对邮件解密,然后得到邮件末尾的数字签名,用甲的公钥对数字签名解密,成功则代表邮件确实来自甲,失败说明有人冒充。
5.乙对邮件正文执行哈希运算得到的hash值,取名H2。
6.乙会对比第4步解密数字签名得到的hash值H1和自己运算得到的hash值H2,一致则说明邮件未被篡改。
存在问题:乙证明甲的真实身份是靠甲给他的公钥,如果能解密数字签名则为真,但是存在黑客将乙中甲的公钥替换,然后黑客可以冒充甲。