密钥
密钥,一般是一个字符串或数字,在加密或解密时传递给加密或解密算法。下面公钥密码体制中提到的公钥和私钥都是密钥,只是公钥是加密时使用的密钥,私钥是解密时使用的密钥。
公钥密码体制
公钥密码体制(public-key cryptography)由公钥、私钥、加密算法三部分组成,其中由公钥加密的内容只能由私钥解密,也就是说除了私钥之外,由公钥加密的内容无法被解密。公钥密码体制的加解密过程如下:
- 加密 :使用加密算法和公钥对明文进行加密,得到密文。
- 解密:使用解密算法和私钥对密文进行解密,得到明文。
公钥密码体制的公钥和算法都是公开的,只有私钥是保密的。所以在实际使用中,都是生成一对公钥和私钥,把公钥发布出去,自己保留私钥。
对称加密算法
在对称加密算法(symmetric key algorithms)中,加密和解密时使用的密钥是相同的。在安全通信之前,会要求通信双方商定一个密钥,泄漏密钥就意味着任何人都可以对发送或接收的消息解密;因此对称加密算法要保证安全性的话,密钥只能让使用的人知道,不能对外公开。
对称加密算法的特点:
算法公开、计算量小、加密速度快、加密效率高。
非对称加密算法
在非对称加密算法(asymmetric key algorithms)中,加密和解密使用的密钥是不相同的,共需要两个密钥。一个是对外公开的密钥称为公钥(public key),一个不公开的密钥为私钥(private key)。上述中的公钥密码体制就是一种非对称加密算法。
非对称加密的特性:
- 对于一个公钥,有且只有一个对应的私钥。
- 公钥是公开的,并且不能通过公钥反推出私钥。
- 通过私钥加密的密文只能通过公钥解密,通过公钥加密的密文也只能通过私钥解密。
非对称加密算法的主要用途:
- 对信息保密,防止中间人攻击:一般用于交换对称密钥。
- 身份验证和防止信息篡改:一般用于数字签名。
CA
CA是Certificate Authority的缩写,也叫证书授权中心,是负责管理和签发证书的第三方机构,作用是检查证书持有者身份的合法性,并签发证书,以防止证书被伪造或篡改。一般来说,CA必须是所有行业和所有公众都信任的、认可的、具有一定的权威性。
所以CA实际上是一种机构,负责证书的签发,就像颁发身份证的公安局、发放驾驶证的车管所一样。
数字证书
数字证书是由CA颁发的证书,也叫CA证书,通常包含证书拥有者的身份信息、CA机构的签名、公钥和私钥。其中身份信息用于验证证书持有者的身份,CA签名用于保证身份的真实性,公钥和私钥用于通信过程中的加解密,保证通信的安全。
所以数字证书可以保证数字证书中的公钥确实是这个证书的所有者持有的,或者是可以用来确认对方身份的。
摘要
摘要也叫做指纹,可以唯一的标识一段数据。通过摘要算法对数据处理后得到的一串哈希值就是摘要。这个过程是不可逆的,也就是说无法通过hash值得到原来的数据内容,且保证不同的内容一定会得到不同的hash值;其中信息是任意长度的,摘要是固定长度的。
所以只要内容一旦被修改,根据信息得到的摘要也会发生变化。
摘要算法
摘要算法也成为散列或散列值,是一种与基于密钥(对称密钥或公钥)的加密不同的数据转换类型。散列就是通过散列算法的单向数学函数应用于数据,将任意长度的一块数据转换成一个定长的、不可逆转的数字,长度通过在128~256位之间。即所产生的散列值的长度应该足够长,这样不同的数据的散列值的相同的概率就会很小。
摘要算法的特性:
只要源文本不同,计算得到的结果必然不同,或者是概率很小。
无法从结果反推出源数据。
常见的摘要算法:
MD5、SHA-1、MAC(Message Authentication Code 消息认证代码)、CRC(Cyclic Redundancy Check 循环冗余校验码)。
数字签名
数字签名是非对称加密和摘要算法的一种应用,确保信息在发布后不会被篡改(摘要算法特性),保证数据的完整性和可信性;同时也防止数据被他人伪造(非对称加密算法特性)。即在对信息的内容通过摘要算法得到摘要后,为防止信息和摘要同时被黑客修改,导致信息有误,一般都会对摘要进行加密,然后再和信息一起发送。
对摘要加密后得到的值被称为数字签名。
验证过程如下:
通过数字证书验证公钥是否是发布者的公钥 --> 用公钥解密密文,得到摘要 --> 使用发布者的摘要算法得到摘要 --> 对比摘要是否一致即可确定信息是否被修改
参考资料
https://zhuanlan.zhihu.com/p/32754315
https://zhuanlan.zhihu.com/p/26859843
https://blog.csdn.net/hp910315/article/details/77685139
http://www.enkichen.com/2016/02/26/digital-certificate-based/
https://www.cnblogs.com/JeffreySun/archive/2010/06/24/1627247.html
后记
该文章为自己研究https通信期间涉及到的相关基础概念,想通过自己的方式记录方便后续查找。若有描述有误之处,还请读者见谅;欢迎广大读者指出文章不足或描述有误之处。
来源:CSDN
作者:小呆娃
链接:https://blog.csdn.net/qq_29340989/article/details/103840930