NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
## 8.3 报文完整性和数字签名 报文完整性(Message Integrity),也称报文鉴别,用于鉴别报文来源、报文是否被修改。 ### 8.3.1 密码散列函数 密码散列函数(Cryptographic Hash Function):以m为输入,并计算得到一个称为散列的固定长度的字符串 `$ H(m) $`,且对于两个不同报文x,y,`$ H(x) ≠ H(y) $`。 **MD5散列算法**: * 填充:先填1,然后填足够多的0,知道报文满足一定长度。 * 添加:在填充前添加一个用64比特表示的报文长度。 * 初始化累加器。 * 循环:对报文的16字块进行4轮处理。 **SHA-1** ### 8.3.2 报文鉴别码 鉴别密钥(Authentication Key): * 发送者生成报文m,用s级联m生称m+s,并计算散列 `$ H(m+s) $`。 * 生成扩展报文 `$ (m, H(m+s)) $` 并发送。 * 接收者接收扩展报文 `$ (m, h) $`,并用已知s,计算 `$ H(m+s) $`,如果`$ H(m+s)=h $` 则一切正常。 ### 8.3.3 数字签名 数字签名(Digital Signature):签署者通过私钥加密报文 `$ K^{-}(m) $`,一般加密通过散列函数处理过的报文。数字签名属于一种公钥认证(Public Key Certification)。 认证中心(Certification Authority,CA):将公钥与特定实体绑定,识别和发行证书合法化。 * 认证实体的真实身份。 * 生成将身份和公钥绑定起来的证书(Certificate)。