这一章是使用算法,虽然内容跟算法没什么关系。没有任何目标之后看书的效率反而更高了,早上才看完第9章,现在竟然就看完了第10章

概念

  • size queens
    人们在花费很多的时间讨论密钥应该有多长时,通常忘记了其他的事情。
  • NSA也承认,在它关注领域的大多数安全失败是由于工作运作错误引起的,而不是算法或协议上的失败

  • 选择算法

“即使你是天才,在没有同行审查的情况下,使用你自己编写的算法也将是愚蠢的”,同行审查很重要,跟写程序review一样,交流才能相互促进。

  • 算法的出口
    1. 谣传NSA对那些希望出口密码成果的公司曾私下建议
    2. 偶尔泄露一位密钥,将其藏在密文中
    3. 在30位内隐埋有效密钥。比如,一个算法可能接收100位的密钥,但大部分可能是等价的
    4. 使用固定的IV,或者在每条加密消息的开头加密一个固定头部,以允许选择明文攻击
    5. 产生一些随机字节,并用密钥将其加密,接着将这些随机字节的明文和密文放在被加密消息的开头,这也允许已知明文攻击
    6. NSA得到一个源码副本,但加密算法细节对外仍保密,当然没有人大肆宣扬这些细节的弱点,但请意识到你买的是得到出口许可的美国加密产品

“公开密钥密码系统与对称密码系统哪一个更好呢?这个问题没有任何意义,但是自从公开密钥密码系统产生以来就一直争论不休。这个争论假定两种密码算法可以基于同一个基础点进行比较。事实上并非如此”---很多比较语言的人也是,实在没必要。

“公开密钥算法与对称算法是两种不同的东西,它们解决不同的问题。对称密码适合加密数据,它速度极快并且对选择密文攻击不敏感;公开密钥密码可以做对称密码所不能做的事情,它最擅长密钥分配和第一部分讨论的大量协议”

  • 各类算法
算法 机密性 验证 完整性 密钥管理
对称加密算法
公开密钥加密算法
数字签名算法
密钥共识算法 可选
单向散列函数
消息验证代码
  • 通信信道加密
  • 开放系统互联通信模型(Open System Interconnect,OSI)
  • 链-链加密(link-by-link encryption):在底层加密,如物理层、数据链路层
  • 端-端加密(end-to-end encryption):在高层加密,如传输层或应用层
  • 流量保密(traffic-flow security)
  • 链-链加密的优点
    1. 易操作,因为它对用户是透明的,即在通过链路传送之前所有数据都被加密
    2. 每一次链接只需要一组密钥
    3. 因为任何路由信息都被加密,所以能够提供安全的通信序列
    4. 加密是在线的
  • 链-链加密的缺点
    1. 在中间节点间数据容易被暴露
  • 流量分析(traffic analysis):如wiresharp分析流量,是端-端加密的缺点
  • 端-端加密的优点

    1. 保密级别更高
  • 端-端加密的缺点
    1. 需要更复杂的密钥管理系统
    2. 流量分析是可能的,因为路由信息未被加密
    3. 加密是离线的
  • 两者的结合
  • 链-链加密与端-端加密的比较
比较 链-链加密 端-端加密
主机内部安全性 发送主机内部消息暴露 发送主机内部消息被加密
主机内部安全性 交换节点消息暴露 在交换节点消息被加密
用户的作用 发送主机使用 发送过程使用
用户的作用 对用户不可见 用户应用加密
用户的作用 主机保持加密 用户必须选择算法
用户的作用 对所有用户便利 用户选择加密
用户的作用 可以硬件完成 软件更易完成
用户的作用 消息全部被加密或全部不加密 对每一条消息用户可选择加密或者否
有关实现 每一主机需要一个密钥 每一用户需要一个密钥
有关实现 每一台主机需要加密硬件或软件 在每一个节点需要加密硬件或软件
有关实现 提供节点验证 提供用户验证
  • 用于存储的加密数据
  • 非关联密钥
  • 驱动器级与文件级加密
  • 文件级加密与驱动器级加密的比较
比较 文件级加密 驱动器加密
优点 易实现和使用;具有较大灵活性;相对较小的性能损失;用户可以在不同的机器间移动文件;用户可以对文件做备份 临时文件、工作文件等存储在安全的驱动器中;在这种系统里很难忘记重复加密
安全问题 通过无安全意识程序(如为了暂存将文件写入磁盘);存在潜在泄露量;差的程序实现会对同一个口令用相同的密钥重复加密 用设备驱动器或内存驻留程序会使一些事情出错;差的程序实现允许选择明文或选择密文攻击;如果整个系统用一个口令加密,那么丢失它意味着攻击者得到了一切;可以使用有限的密码算法,如不能使用OFB序列密码?
可用性问题 用户必须弄明白要做什么;对不同的文件可能有不同的口令;所选文件的手动加密是唯一的存取控制 存在性能缺陷;该驱动器可与Windows、OS/2 DOS仿真、设备驱动器等相互作用
  • 提供加密驱动器的随机存取没弄懂
  • 硬件加密
  • 软件加密
  • TEMPEST屏蔽电磁辐射泄露数据
  • 压缩、编码与解密

    1. 如果密码分析依靠明文中的冗余,那么压缩将使文件在加密之前减少冗余
    2. 加密是耗时的,在加密之前压缩文件可以提高整个处理过程的速度
  • 检测加密
    1. 检查文件。ASCII码、TIFF、TeX、C、信末附言、G3传真和微软Excel等有标准的辨别特性;UNIX文件通常有“幻数”可供检测
    2. 用常用的压缩算法进行解压
    3. 试着压缩文件,如果有效压缩小于1%-2%,那么可能为密文
  • 密文中隐藏密文有个例子看不懂,无关紧要

  • 销毁信息:最安全的是先全1写,全0写,再5次随机写,之后再物理切割

问题

  • 提供加密驱动器的随机存取
  • 密文中隐藏密文