密码学基础笔记(一)

前言

看到第一学期开了密码学这门课,本来想好好学一下的,没想到计划赶不上变化居然忙到根本没有时间上课,希望不会挂掉(哭。。。

第一章 概览

计算机安全概念

定义:

“对于一个自动化的信息系统,采取保护措施确保信息系统资源(包括硬件、软件、固件、信息/数据和通信)的保密性、完整性、可用性。”

3个关键目标(CIA):

  • 保密性(Confidentiality)
    • 数据保密性
    • 隐私性
  • 完整性(Integrity)
    • 数据完整性
    • 系统完整性
  • 可用性(Availability)

其他概念:

  • 真实性(Authenticity)
  • 可追溯性(Accountability)

OSI安全框架

主要关注:

  • 安全攻击

    • 被动攻击
      • 信息内容的泄露
      • 流量分析
    • 主动攻击
      • 伪装
      • 重播
      • 消息修改
      • 拒绝服务
  • 安全机制
    • 特定安全机制:加密、数字签名、访问控制、数据完整性、认证交换、流量填充、路由控制、公证。
    • 普遍安全机制:可信功能、安全标签、事件检测、安全审计跟踪、安全恢复。
  • 安全服务
    • 认证
    • 访问控制
    • 数据保密性
    • 数据完整性
    • 不可否认性

是一种由系统提供的对系统资源进行特殊保护的处理或通信服务。(RFC4949)

网络安全模型

可信第三方:

  • 第三方负责将秘密信息分配给通信双方,而对攻击者保密。
  • 或者当通信双方关于信息传输的真实性发生争执时,由第三方来仲裁。

安全服务:

  1. 设计算法
  2. 产生秘密信息
  3. 分配和共享
  4. 指明协议实现安全服务

第二章 传统加密技术

基本概念

  • 密码学

    • 密码编码学
    • 密码分析学
  • 明文:原始的消息

  • 密文: 加密后的消息
  • 加密:从明文到密文的变换过程
  • 解密:从密文到明文的变换过程

对称密码模型

5个基本成分:

  • 明文
  • 加密算法
  • 密钥
  • 密文
  • 解密算法

  • 加密算法根据输入信息X和密钥K生成密文Y=[Y1, Y2, …, YN],即Y=E[K, X]。

  • 有密钥K的合法接收者,可进行解密变换X=D[K, Y]。

密码编码学

3个独立特征:

  1. 转换明文为密文的运算类型:代替 vs. 置换。
  2. 所用的密钥数:对称密码 vs. 公钥密码。
  3. 处理明文的方法:分组密码 vs. 流密码。

密码分析学和穷举攻击

攻击通用方法:

  • 密码分析学
  • 穷举攻击

Kerckhoffs原则:假定密码攻击者知道加密数据所使用的算法,数据的安全性应当取决于密钥的选择。

无条件安全:无论花多少时间,攻击者都无法解密密文。

​ Shannon已经证明:除了一次一密之外,所有的加密算法都不会是无条件安全的。

加密算法应尽量满足:

  • 破译密码的代价超出密文信息的价值

  • 破译密码的时间超出密文信息的有效生命期

如果加密体制满足了上述两条标准中的任意一条,则它是计算安全的。然而,估计攻击者成功破译密文所需的工作量是非常困难的。

代替技术

Caesar密码

对字母表中的每个字母,用它之后的第3个字母来代替

细节:

  1. 加密算法:Ek(m) ≡ m + 3 (mod 26)
  2. 解密算法:Dk(c) ≡ c - 3 (mod 26)

凯撒密码的密钥空间太小,穷举攻击25种可能

单表代替密码

Caesar密码只有25种可能的密钥,是不安全的。通过允许任意代替,密钥空间将会急剧增大。一般,具有n个元素的集合有n!个置换。如果密文是26个字母的任意置换,那么就有26!种可能的密钥。

Playfair密码

基于一个5×5的字母矩阵。字母矩阵构造方法如下:

  1. 选一个英文短语或单词作为密钥,去掉其中重复的字母得到一个无重复字母的字符串。
  2. 然后再将字母表中剩下的字母依次从左到右、从上往下填入矩阵中,字母i,j占同一个位置。