一、加解密
加密(Encryption)是将明文(Plaintext)转换为密文(Ciphertext)的过程;与之相对,解密(Decryption)是将密文解为明文。其中又分为——
对称加密:一般指在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥;
对称加密算法:DES,RC,AES等。
非对称加密:加密和解密使用不同的密钥;
非对称非对称RSA,ECC等。
密钥对:在非对称加密技术中,有两种密钥,分为私钥和公钥;在同一密钥对中,用公钥加密的数据只能使用私钥解密,用私钥加密的数据只能使用公钥解密。
公钥:是公布出去给别人用的,可以被很多人获取;用来加密和验签。
私钥:只能自己持有,并且不可以被其他人知道;用来解密和签名。
二、数字签名
数字签名(Digital Signature)也叫作数字指纹(Digital Fingerprint),它是消息摘要算法和非对称加密算法的结合体,能够验证数据的完整性,并且认证数据的来源。数据签名算法的模型分为两个主要阶段——
签名:A端 先计算数据的 [摘要],再使用私钥对 [摘要]进行加密生成 [签名],将 [数据 + 签名] 一并发送给接收方;
验签:B端接收数据(消息本体+签名),①拿从A端获取到的公钥对签名进行解密,得到摘要1,②使用与A端同样的HASH算法计算,得到摘要2,③比较摘要1与摘要2,若二者完全一致,则验签通过,说明数据没有被篡改。
摘要:对需要传输的文本,使用摘要算法做一个HASH计算;用于验证数据是否正确,是否有重放,是否篡改;
摘要算法:MD5,SHA,MAC等;其中,SHA还分为SHA128,SHA256,SHA384等,比如SHA256即指生成256位的哈希值,通常由一个长度为64的16进制字符串表示(一个字符4位)。
由于A端向B端发送数据时使用的是非安全信道,因此B持有的公钥有被截获并篡改的可能,为了保证B端拿到的公钥真实可信,需要可信赖的第三方认证来进行认证,如下,
数字证书:证书是为公钥做认证,为了使公钥真实可信,防止他人伪造公钥;证书颁发机构会用自己的私钥对用户的公钥及相关信息的摘要进行加密,生成”数字证书“,然后证书中心会公布自己的公钥给所有人,用来让用户使用此公钥验证”数字证书“是否由CA颁发,即是否真实可信。数字证书主要包含三个部分:用户信息、用户密钥以及 CA 机构对该证书实体的签名。
CA(Certifcation Authroity):证书颁发机构,负责数字证书的审批、颁发、归档和吊销等功能的机构,具有权威性。CA 机构分为 “根 CA” 和 “中间 CA”,原则上要避免根 CA 机构直接颁发最终实体证书,而需要由中间 CA 机构颁发最终实体证书。这是为了避免证书失效的影响范围,一旦根证书失效或被伪造,那么整个证书链都有问题。
证书链:证书链是多个数字证书建立的的证书验证链条。为了验证证书实体的合法性,需要获得颁发该证书的 CA 机构公钥,这个公钥就存在于上一级证书中。因此,为了验证证书的合法性,就需要沿着证书链向上追溯直到根证书为止。
根证书:根证书是自签名证书,用户下载根证书就表示信任该根证书所有签发的证书。在高通平台中,开启安全启动后会将根证书烧录到eFuse中。
参考链接: