由一种算法(密钥)生成密文 并 可用其可逆算法解密
因为其加密/解密是一种算法(密钥)故叫对称加密
AES DES MAC
优点:加密/解密 高效 因为用的是一个算法
缺点:由于是一种算法(可逆算法本质也是加密算法)进行加密/解密 一旦算法暴露 消息就被破译了更是可以发送虚假消息
非对称加密有2种用法
第一种用法:公钥加密,私钥解密。—用于加解密
第二种用法:私钥签名,公钥验签。—用于签名
至于用谁来加密,谁来解密可参考: https://blog.csdn.net/qq_23167527/article/details/80614454
由于是用***公钥/私钥***进行加密
又用其对应的***私钥/公钥***进行解密
加密和解密过程中用到了2种不同的算法 故称为非对称加密
RSA :1977年,三位数学家Rivest、Shamir 和 Adleman 设计了一种算法,可以实现非对称加密。这种算法用他们三个人的名字命名,叫做RSA算法。从那时直到现在,RSA算法一直是最广为使用的"非对称加密算法"。毫不夸张地说,只要有计算机网络的地方,就有RSA算法。
优点:不仅仅保证了信息的完整性 同时还保证了信息的机密性(可认证性和不可否认性)
缺点:这种方案需要对所有信息原文进行加密操作,这在消息的长度比较大时,效率是非常低的,主要原因在于公钥体质的加解密过程的低效性
摘要算法对消息进行摘要(digest),加密后的密文被称作摘要。
MD5是一种单向散列函数即摘要算法。
比如客户端A想给服务端B发送一条消息,A需要把消息内容和对应的消息摘要都发给B;B通过同样的摘要算法,自然可以知道消息是否被篡改。比如攻击者C将A发送的原始消息和摘要,都篡改成新的消息和摘要,那么这个消息对B来说也是完整的,只不过不是A发的。
所以消息摘要只能验证完整性,不能验证消息的真实性。
Message Digest 5 ,广泛用于检测文件的完整性。
MD5是一种不可逆的加密,一定记住是不可逆的即不可解密。
倘若有人问MD5是对称还是非对称算法?你可以如是说到:对称和非对称算法针对的可逆算法(可以加密/解密的算法),而MD5是一种不可逆算法,既不是对称加密也不是非对称加密
MD5只能验证完整性,不能验证消息的真实性。(原因见上面的摘要)
参考链接:https://blog.csdn.net/u012438830/article/details/89045609
消息认证码
mac算法接受两个输入:一个消息和一个密钥,最后生成一个mac。它允许验证完整性和消息的真实性:对消息的任何更改,密钥(理想情况下)将产生不同的MAC。如果篡改了消息的内容,但是不知道对应的密钥,不能修改对应的MAC码。
因为MAC含有秘钥(只有A和B知道),如果A将消息内容和MAC发给B,虽然C是仍然可以修改消息内容和MAC,但是由于C不知道秘钥,所以无法生成与篡改后内容匹配的MAC。
MAC码不仅可以保证消息的完整性,还可以验证消息的真实性。(但是不具有不可抵赖性)
把摘要用私钥进行加密,生成“数字签名”(signature),接受方利用公钥对数字签名进行解密。因为私钥只有发送方自己才有,这就导致数字签名具有了不可抵赖性。
简单理解,数字签名是发送者利用私钥对信息摘要进行加密。接受方利用公钥对数字签名进行解密。因为私钥只有发送方自己才有,这就导致数字签名具有了不可抵赖性。
数字签名具有不可抵赖性。
数字签名和摘要本质上都是一种经过加密算法后生成的密文这种数字签名算法可以看做是一种带有密钥的消息摘要算法,并且这种密钥包含了公钥和私钥,也就是说,数字签名算法是非对称加密算法和消息摘要算法的结合体。 具体流程如下:
发送方先用摘要算法对消息进行摘要(digest),加密后的密文被称作摘要。发送方把摘要用私钥进行加密,生成“数字签名”(signature)发送方将 数字签名 和消息原文 一起发送给接收方接收方使用相同的散列函数从接收到的消息原文中计算出摘要1接收方使用公钥对数字签名进行解密得到摘要2。比较摘要1和摘要2是否相等,如果相等,则就能确定消息的完整性以及消息的来源确实是发送方几乎所有的数字签名方法都要和快速高效的摘要算法(hash函数)一起使用,当非对称加密算法和消息摘要算法结合起来使用,便构成了一种有效地数字签名方案。比如当经典的非对称加密算法和数字签名算法——RSA 算法与消息摘要算法 MD5 结合之后就形成了MD5withRSA 算法。
https://www.cnblogs.com/liyutian/p/9525173.html
https://blog.csdn.net/qq_33148269/article/details/88934371
https://blog.csdn.net/qq_30505673/article/details/82432454
