密码学 Cryptology 的基本概念术语

2023-08-10 22:19:39 浏览数 (2)

明文

未加密的原始数据。

密文

经过加密后的原文。

公钥 Public Key

  • 在非对称加密中,是公开提供使用的密钥,任何人都可以获得
  • 用于加密数据,将明文通过加密算法与公钥一起进行加密操作,生成密文
  • 公钥本身不能用于解密,只能用于加密

私钥 Private Key

  • 在非对称加密中,是仅持有者自己知道的密钥
  • 与公钥成对,但内容与公钥不同。用于解密数据,将密文通过解密算法与私钥一起进行解密操作,恢复原文
  • 私钥不能公开提供或共享,它的安全直接影响系统的安全

公钥和私钥的比较

加密解密效率:对称加密算法更高

安全性:非对称加密算法更好

密钥

用于加密和解密的数据,一个密钥可以对应多个加密算法。

对称加密 Symmetric Encryption

对称加密指的是加密和解密使用同一个密钥,所以叫做对称加密。对称加密只有一个密钥,作为私钥。

常见的对称加密算法:DES,AES,3DES等等。

非对称加密 Asymmetric Encryption

非对称加密指的是:加密和解密使用不同的密钥,一把作为公开的公钥,另一把作为私钥。公钥加密和私钥解密,或私钥加密和公钥解密。

常见的非对称加密算法:RSA,ECC等等。

哈希算法/散列算法 Hash function

是一种不可逆单向函数,计算消息摘要的算法。广泛用于信息完整性的验证,是数据签名的核心技术。

散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。

散列函数的常用算法有MD(消息摘要算法)、SHA(安全散列算法)、以及Mac(消息认证码算法)

散列函数主要作用不是完成数据的加密和解密的,只用来验证数据的完整性,

数字签名 digital signature

使用私钥对信息进行签名,通过公钥验证签名的方法,实现数据的完整性和作者身份认证。

签名流程:

  • 先用Hash函数处理信息,生成摘要 digest
  • 然后使用私钥对摘要加密,生成数字签名 digital signature
  • 服务端将数字签名和信息一起发给客户端
  • 客户端拿到数字签名后,用服务端公钥解密,得到摘要。证明确实是这个服务端发出的,完成身份认证
  • 客户端对信息进行Hash处理,将结果和解密得到的摘要进行比较,如果一致则证明 信息未被篡改

数字证书 digital certificate

包含公钥和其他用户标识信息的电子文件,用于非对称加密中的公钥管理和身份验证。

数字证书是网络用户身份的标识,包括ID、公钥和颁发机构的数字签名等内容。

其形式主要有X.509公钥证书、SPKI(Simple Public Key Infrastructure,简单PKI)证书、PGP(Pretty Good Privacy)证书和属性(Attribute)证书。

其中X.509证书最为常见,通常所说的数字证书就是指X.509公钥证书。

解决问题:

在使用数字签名的场景中,如果服务端B替换客户端中服务端A的公钥,那他就可以伪装成A一直向客户端发消息。而客户端无法确定消息来源A还是B。

此时需要一个第三方机构,CA(certificate authority)为客户端中保存的公钥做认证,确认这个公钥到底是A的还是B的。

具体做法就是CA用自己的私钥加密服务端的公钥及相关信息,生成数字证书 Digital Certificate。

0 人点赞