1 Mar 2019

密码学入门到去世

密码学入门到去世

  • 密码学

    • 密码编码学

      研究如何对明文进行编码加密

    • 密码分析学

      研究如何破译密码

  • 密码与信息安全

    • 密码的算法总会被公开

      不要使用保密的密码算法。

    • 弱密码比不加密更危险

      信息被加密 != 安全强度高,人们容易通过密码这个词获得一种错误的安全感,意识深处会放弃警惕性

    • 密码总会被破解

      一次性密码本除外

    • 密码只是信息安全的一部分

      1

  • 密码学家的工具箱

    2

  • 对称密码算法

    加密和解密时采用同一密钥

    3

  • 非对称密码算法

    非对称加密算法需要两个密钥:公开密钥和私有密钥。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密

    由已知公钥推导出私钥在计算上不可行

    • 加密流程

      1. 接收方生成公私钥对,私钥由接收方保管
      2. 接收方将公钥发送给发送方
      3. 发送方通过公钥对明文加密,得到密文
      4. 发送方向接收方发送密文
      5. 接收方通过私钥解密密文,得到明文

    4

  • 单项散列

    保证的不是数据的机密性,而是数据的不可篡改性

    • 特点

      1. 无论消息长度,计算出的长度永远不变
      2. 快速计算
      3. 消息不同,散列值不同,具有抗碰撞性
      4. 具有单向性,不可由散列值推出原消息
    • 单向散列算法

      算法 散列长度,bit 输入长度  
      MD4 (Message Digest 4) 128   已破解
      MD5 128   已破解
      SHA-1 160 $2^{64} = 2048 \text{ PB}$ 谨慎使用,不推荐
      SHA2 (SHA-224) 224 (32*8 - 32) $2^{64}$ - 32 表示截去 32 bit,下同
      SHA2 (SHA-256) 256 (32*8) 同上  
      SHA2 (SHA-512/224) 224 (64*8 - 288) 同上  
      SHA2 (SHA-512/256) 256 (64*8 - 256) 同上  
      SHA2 (SHA-384) 384 (64*8 - 128) $2^{128}$  
      SHA2 (SHA-512) 512 同上  
      SHA-3   无限制  
      RIPEMD-128     已破解
      RIPEMD-160     谨慎使用,是比特币采用的
      RIPEMD-256      
      RIPEMD-320      
    • 攻击方法

      • 暴力破解,冗余碰撞
      • 生日攻击,针对强抗碰撞性
  • 消息认证码MAC

    消息认证码(Message Authentication Code),简写为 MAC。发送方与接收方共享密钥,通过该共享密钥对计算 MAC 值。

    单向散列可以解决篡改的问题,但消息是来自可信一方,还是来自伪装者,却无法解决。伪装者完全可以发送有害的信息和该信息的散列,而接受者却无法分辨。 消息认证码技术可以解决此类问题

    • MAC使用步骤

      1. 发送方 A 与接收方 B 共享密钥
      2. 发送方 A 通过密钥计算 MAC 值 = MAC-A
      3. 发送方 A 发送原消息 + MAC-A
      4. 接收方 B 对原消息通过密钥计算 MAC 值 = MAC-B
      5. 接收方 B 比较 MAC-A 与 MAC-B,若一致则成功。
    • MAC实现

      MAC 实现的关键,是获得一串需要与共享密钥相关而且足够有区分度的串。因此,可以通过多种方式获得 MAC 值,如单向散列、分组密码截取最后一组作为 MAC 值、流密码、非对称加密等。

    • 存在的问题

      1. 密钥配送
      2. 重放攻击,窃取某一次通信中的正确的 MAC,然后攻击者重复多次发送相同的信息。由于信息与 MAC 可以匹配,在不知道密钥的情况下,攻击者就可以完成攻击。以下方法可以避免:
        1. 序号,约定信息中带上递增序号,MAC 值为加上序号的 MAC。
        2. 时间戳,约定信息中带上时间戳
        3. 随机数 nonce,每次传递前,先发送随机数 nonce,通信时带上 nonce
      3. 暴力破解
      4. 无法防止否认,因为密钥是共享的,接收者可以伪造对发送者不利的信息。
  • 数字签名

    • 使用步骤

      1. 签名方 A 生成非对称公私钥对
      2. A 向消息接收方 B 发送公钥
      3. A 采用私钥加密(一般是对消息的散列值进行加密),生成数字签名
      4. A 将消息与数字签名发往 B
      5. B 采用公钥解密数字签名
      6. B 验证数字签名
    • 数字签名实现

      非对称加密

    • 存在的问题

      接收方无法确认收到的公钥是签名方私钥所对应的公钥

      接收方可能会使用攻击者的公钥,接收攻击者私钥签名的信息

  • 证书

    证书是对数字签名所发布的公钥进行权威的认证。证书可以有效地避免中间人攻击的问题。

    • PKC

      Public-Key Certificate,公钥证书,简称证书。

    • CA

      Certification Authority,认证机构。对证书进行管理,负责:

      1. 生成密钥对

      2. 注册公钥时对身份进行认证
      3. 颁发证书
      4. 作废证书
    • RA

      Registration Authority 注册机构 ,负责注册公钥和身份认证的

    • PKI

      Public-Key Infrastructure,公钥基础设施,是为了更高效地运用公钥而制定的一系列规范和规 格的总称。比较著名的有PKCS(Public-Key Cryptography Standards,公钥密码标准,由 RSA 公司制定)、X.509 等。PKI 是由使用者、认证机构 CA、仓库(保存证书的数据库)组成。

    • CRL

      Certificate Revocation List 证书作废清单,是 CA 宣布作废的证书一览表,会带有 CA 的数字签名。一般由处理证书的软件更新 CRL 表,并查询证书是否有效。

    • 使用步骤

      5.

    • 存在的问题

      1. 公钥注册前进行攻击
      2. 注册相似信息进行攻击,例如 Bob 和 BOB
      3. 窃取 CA 的私钥进行攻击,CA 的私钥一旦被泄露,需要通过 CRL 通知客户
      4. 伪装成 CA 进行攻击,一般证书处理软件只采纳有限的根 CA
      5. 利用 CRL 发布时间差,私钥被盗-通知 CA-发布 CRL,均存在时间差
      6. 利用 CRL 发布时间差否认信息。发布有害信息-通知 CA 作废证书-发布 CRL,由于存在时间差,恶意消息的发布者完全可以否认恶意消息是由其发出的

Tags:
0 comments



本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议CC BY-NC-ND 4.0)进行许可。

This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License (CC BY-NC-ND 4.0).