本章要点:

  • 其他密码服务
    • 理解哈希函数、消息认证码、数字签名等密码服务的作用
  • 公钥基础设施
    • 了解PKI的基本概念及PKI体系构成
    • 理解CA及其他组件在PKI体系中的作用
    • 掌握PKI的应用场景

一、哈希函数

  1. 概念:哈希函数是能将任意长度的数据映射成为一个定长的字段的函数。
  2. 作用:数据完整性检查
  3. 典型算法:MD5、SHA-1
    1. MD5算法:消息摘要算法(RFC1321),该算法以一个任意长的消息作为输入,输出128位的消息摘要
    2. SHA-1算法:安全Hash算法,该算法的输入是长度小于2^64的任意消息x,输出160位的散列值
  4. 计算公式:h=H(M)

其中,M是需要映射的数据,h是定长的散列值。设X、Y是两个不同的消息,如果h(X)=h(Y),则称X和Y是哈希函数h的一个(对)碰撞。

  1. 数学性质
    (对于任意给定的x,H(x)的计算相对简单,易于软硬件实现。)安全的哈希函数需要满足以下性质
    1. 单向性:对任意给定的散列值h,寻求H(x)=h在计算上是不可行的
    2. 弱抗碰撞性:任意给定分组数据x,寻求不等于x的y,使得H(x)=H(y)在计算上不可行
    3. 强抗碰撞性:寻求任何的(x,y)对,使得H(x)=H(y)在计算上不可行

image.png

二、消息认证码

回头看下书,补充下详细

  1. 基本特点
    1. 也称消息鉴别码(Message Authentication Code,MAC)
    2. 原理:利用密钥来生成一个固定长度的短数据块,并将该数据块附加在消息之后
  2. 作用:完整性校验、时间、顺序验证
  3. 实现算法
    1. 分组链消息鉴别码(CBC-MAC):基于对称分组密码的消息鉴别码
    2. 基于哈希函数的MAC(HMAC):基于哈希函数的消息鉴别码
  4. 常见针对消息内容的攻击方法(在网络通信中)
    1. 伪造消息
    2. 篡改消息内容
    3. 改变消息顺序
    4. 消息重放或者延迟

image.png

  1. 如上图中,使用一个双方共享的秘密密钥生成一个固定大小的小数 据块,并加入到消息中,称为MAC,或密码校验和( cryptographic checksum )
  2. 用户A和用户B,共享密钥K,对于消息M, MAC=CK(M)
    1. K是秘钥
    2. C是秘钥K和消息M的函数集合
  3. 如果接收方计算的MAC与收到的MAC匹配,则
    1. 接收者确信消息M未被改变
    2. 接收者可以确信消息来自所声称的发送者
    3. 如果消息中含有序列号,则可以保证正确的消息顺序
  4. MAC函数类似于加密函数,但不需要可逆性。因此在数学上比加密算法被攻击的弱点要少。
  5. 消息认证码(MAC)与哈希函数的区别
    1. 根据任意长度的消息输出固定长度的数据,这一点和单向散列函数类似。但是单向散列函数中计算散列值不需要密钥,相对的消息认证码中则需要使用发送者与接收者之间共享的密钥
    2. 消息认证码是一种与密钥相关的单向散列函数

image.png

  1. MAC的使用场合

    1. 只要鉴别而不用(或不能)加密
      1. 法律文书、公开信、声明、公告、公证、鉴定等
      2. 软件鉴别/防病毒、网络管理报文等

        三、数字签名

  2. 用途:证明一个已经发生的操作行为无法否认的性质

  3. 附加在数据单元上的一些数据,或是对数据单元所做的密码交换,这种数据或变换能使数据单元的接收者确认数据单元来源和数据单元的完整性,并保护数据,防止被人伪造。
  4. 作用:
    1. 不可伪造性(真实性)
    2. 不可否认性(完整性)
    3. 保证消息完整性
  5. 应用示例
    1. 发送过程
    2. 接收过程

image.png
上图中: 消息发送者首先用hash哈希函数,先对要签名的消息进行hash计算,然后对计算后的消息摘要使用私钥进行签名,并将签名结果作为标签,连 同消息一起发送给接收者;接收者用发送方的公 钥对签名信息进行验证,即利用接收到的消息及 标签,以及发送方的公钥来验证接收到的消息的完整性

扩展:国产密码算法

  • 主管单位:国家密码管理局
  • SM1:对称密码算法
  • SM2:基于ECC的公钥密码算法
  • SM3:哈希算法
  • SM4:对称算法,用于无线局域网产品
  • SM7:对称算法,主要用于身份识别应用
  • SM9:非对称算法,标识密码算法

四、公钥基础设施(PKI)

  1. 定义:
    1. PKI是一个包括硬件、软件、人员、策略和规程的集合,用来实现基于公钥密码体质的密钥和证书的产生、管理、存储、分发、撤销等功能
  2. PKI架构
    1. CA(认证权威)
    2. RA(注册权威)
    3. 证书存放管理(目录服务)
    4. 终端实体(证书持有者和应用程序)
  3. CA:认证权威
    1. 签发证书
    2. 更新证书
    3. 管理证书
      1. 撤销、查询
      2. 审计、统计
    4. 验证数字证书
      1. 黑名单认证(CRL)
      2. 在线认证(OCSP)
  4. RA:注册权威
    1. 受理用户的数字证书申请
      1. 对证书申请者身份进行审核并提交CA制证
      2. 类似于申请身份证的派出所
    2. 提供证书生命期的维护工作
      1. 受理用户证书申请
      2. 协助颁发用户证书
      3. 审核用户真实身份
      4. 受理证书更新请求
      5. 受理证书吊销
  5. 证书库/CRL
    1. 证书的存放管理
      1. 信息的存储库,提供了证书的保存、修改、删除、获取的能力
      2. 采用;DAP标准的目录服务存放证书,其作用与数据库相同,优点是在修改操作少的情况下,对于访问的效率比传统数据库要高
    2. CRL:证书撤销列表,也称“证书黑名单”
      1. 被撤销证书的序列号
      2. 证书有效期间因为某种原因(人员调动、私钥泄露等)导致证书不再真实可信,因此需要进行证书撤销。
  6. 终端实体
    1. 数字证书
      1. 经证书权威机构CA签名的、包含拥有者身份信息和公开密钥的数据体
      2. 国际标准X.509定义了电子证书的规格格式
    2. 拥有公私密钥对和相应公钥证书的最终用户,可以是人、设备、进程等
  7. 数字证书的基本内容:

证书至少需要包括如下内容:

  1. 1. **颁证机构**
  2. 1. **证书持有者的名字**
  3. 1. **证书持有者的公钥(标识)**
  4. 1. **证书有效期**
  5. 1. **证书颁发机构的签名**

image.png

  1. PKI体系工作流程
    应用程序通过证书:
    1. 获取用户的身份信息
    2. 进行证书废止检查
    3. 检查证书的有效期
    4. 校验数字证书
    5. 解密数据

image.png

  1. PKI/CA的典型应用

image.png

  1. https协议工作过程

image.png