画布 1
数字签名
  数字签名是基于公钥思想的数据完整性技术
    对称密码技术MAC 并不能提供非否认
      简单来说,对方可能耍赖不承认某次通信
      因为解密的一方同样可以加密
  基本思想
    1.发送者利用 自己的私钥SK 产生消息的认证码 (类似于MAC)
    2.只有发送者掌握 SK，所以该认证码只有发送者才能产生
    3.任何人都可以用相应的公钥 PK 验证认证码的合法性
    4.只要通过验证，就可以确信发送者产生了该消息
    5.认证码相当于发送者在消息上做的“签名”，故而称作 数字签名
    总结
      发送者用自己的私钥生成认证码，任何人都可以用公钥pk验证认证码的合法性，只要通过验证，就可以确定发送者产生了该消息
  组成部分
    密钥生成 Setup：产生公钥/私钥
    签名算法 Sign：利用私钥对消息产生数字签名
    验证算法 Ver：利用公钥对数字签名进行验证
  主要安全特性
    1.抗伪造：任何人都不能伪造他的签名
    2.防篡改：任何人无法篡改已签名的消息
    3.非否认：签名者事后无法否认自己的签名。
    4.消息认证：接收者可以确信消息发送者的身份
  考点
    什么叫 伪造签名？
      A在不知道私钥 SK 的情况下，产生签名 s，使得
VerPK(M,s) = true
则称 s 是对 M 伪造的签名 (PK 是 SK 对应的公钥)
也即 找到一对能通过验证算法校验的 (M,s)
    什么叫 抗伪造?
      给定消息 M，在不知道私钥 SK 的情况下，产生签名 s，使得 VerPK(M,s) = true 是计算上不可行的（就算已知一大堆消息以及其对应的签名也是如此）
  安全模型
    完全攻破：攻击者能找到私钥 SK
    泛伪造：攻击者可以对任何消息产生合法的签名
    选择性伪造：对别人选择的消息，攻击者能以不可忽略的概率产生一个合法的签名
    存在性伪造：攻击者能至少为一条消息产生合法的签名
    攻击者最容易实现的伪造(存在性伪造)
  攻击分类
    唯密钥攻击: 攻击者只知道公钥
    已知消息攻击: 攻击者拥有一系列用私钥签过的消息和相应的签名
    选择消息攻击: 攻击者任意选择一系列消息，并可获得相应的签名
    攻击者的目标----恢复私钥(但很难实现)，或伪造签名
  公钥基础设施 PKI
    分发公钥,将公钥和用户身份绑定在一起,产生数字签名
      目的 为了提供可信任的高效密钥和证书管理，以支持众多依赖于公钥的安全技术
    解决这一系列问题的技术基础,它是电子商务、电子政务的关键和基础技术
    定义:
      一个使用公钥概念和密码技术实施和提供安全服务的具有普适性的安全基础设施的总称
      • 生成、管理、存储、颁发和撤销公钥证书所需要的软硬件、人员、策略和规程的总和
      • 提供密钥管理和数字签名服务的平台
    相关产品
      Verisign
      Entrust
  RSA签名方案
    存在性伪造
    Hash函数的作用
      改进后的方案
  ELGamal签名方案
    基于离散对数
    签名方案
      ① 系统建立
        · 随机选择大素数p, 及生成元g∈Z*p
          目前，p的长度至少应为512比特
        · 随机选取0＜x≤p2，计算 y=gx mod p
        · 公钥是(p,g,y)
        · 私钥是x
        (与ElGamal加密方案的系统建立过程完全一样)
      ② 签名
        对消息m，随机选择0＜r≤p2，然后计算：
        u = g^r mod p
        s = r -1(m - xu) mod (p-1)
        m的签名为(u,s)
      ③ 验证
        对于消息/签名 (m,(u,s))，如果：
        yuus ≡ gm (mod p)
        则(u,s)是m的有效签名
      正确性
    存在性伪造
    Hash函数改进
      签名
      验证
    缺点
      效率不如 RSA
      每次签名必须选择不同的 r
    改进
      DSA数字签名算法