思考题 1.1 osi安全框架是什么? osi:开放式系统互联,七层模型。 osi安全框架是提供安全的一种组织方法,主要关注:安全攻击、安全机制、安全服务。 1.2 被动攻击与主动攻击的区别 被动攻击的特点是对传输进行窃听和监测,但不涉及数据的修改; 而主动攻击会修改或伪造数据流。 因此被动攻击易预防难检测,主动攻击易检测难预防。 1.3 被动攻击和主动攻击的种类 被动攻击:信息内容泄漏、流量攻击 主动攻击:伪装、重播、篡改、拒绝服务 1.4 安全服务的种类(x.800)
-
认证:保证通信的实体是他所声称的实体
-
访问控制:阻止非授权访问
-
数据保密性:防止数据泄漏
-
数据完整性:保证收到的数据确实是授权实体发出的数据
-
**不可否认性:**防止任意通信实体否认发过的消息
-
**可用性服务:**根据系统的性能要求,能够按被授权的系统实体店要求访问或使用系统资源。(即当用户请求服务时,若系统能提供符合系统设计的这些服务,则系统是可用的)。 1.5 安全机制的种类 特定安全机制:
-
加密
-
数字签名
-
访问控制
-
数据完整性
-
认证交换:通过信息交换来保证实体身份
-
流量填充:在数据流空隙插入若干以阻止流量分析
-
路由控制:为某些数据选择特殊的物理上安全的线路
-
公正
普通安全机制:
- 可信功能:据某些标准被认为是正确的功能
- 安全标签:指定资源的安全属性
- 事件检测
- 安全审计跟踪
- 安全恢复
关键术语
- 真实性:能验证该用户是他声称的那个人
- 拒绝服务:向服务器发送大量垃圾信息或干扰信息,导致服务器无法提供服务
- 重放:将获得的信息再次发送以产生非授权访问
- 流量分析:通过观察传输消息的频率和长度等,判断通信的性质
学习目标 1.密码分析和穷举攻击的区别 密码分析:利用算法的特征推导出明文或者密钥 穷举攻击:攻击者对一条密文尝试所有可能的密钥直到将其转化为有意义的明文 2.简要介绍HILL密码 HILL算法将m个连续的明文字母替换成m个密文字母 例如,加密密钥 K 为 m×m 的矩阵,则每次加密 m 个明文字母,即长度为 m 的行向量 P,加密结果即长度为 m 的行向量 C。 C=E(K,P)=PK mod 26
3.描述转轮机的操作 单筒轮转机:每次按下一个输入键,圆筒就旋转一个位置,内部连线也就相应改变,因此定义了不同的单表代替密码。经过26个明文字母之后,圆筒回到初始位置,于是得到一个周期为26的多表代替密码。 【单表代换:明文字母与密文字母是一一对应的关系。 多表代换:明文字母与密文字母不是一一对应的,相同的明文可能产生不同的密文。】 多筒转轮机:使用多个圆筒,每个筒的输出接下一个筒的输入。每按一次输入键,第一层圆筒(最内层)就旋转一个位置,第一层每转完一圈,第二层旋转一个位置,第二层转完一圈,第三层旋转一个位置,依次类推。
思考题
2.1 对称密码的组成 明文、密文、加密算法、解密算法、密钥 2.2. 密码算法中的两个基本函数:置换和代替 2.3 用密码通信的两个人需要多少密钥 对称加密:一个; 非对称加密:两个(单向通信)或四个(双向通信) 2.4 分组密码和流密码的区别 流密码一次加密一个比特或者一个字节 分组密码一次处理一个分组 2.5 攻击密码的两种一般方法: 穷举、密码分析 2.6密码分析攻击类型
2.7 无条件安全和计算上安全的区别 无条件安全:无论有多少可使用的密文,都无法唯一确定密文对应的明文 计算上安全:破译密码的代价超过密文的价值或破译所需时间超出密文有效期 2.8 Caesar 密码 设 k 为密钥(1~25 的整数),p 为明文,C 为密文 加密:C=E(k,p)=(p+k) mod 26 解密:p=D(k,C)=(C-k) mod 26 2.9 单表代替密码 将明文字母表的每个字母分别映射到密文字母表的唯一字母 2.10 Playfair 密码 基于一个由密钥词构成的 5×5 矩阵,将密钥词去掉重复字母后,从左到右、从上到下填入矩阵,再将剩下的字母按顺序填入(I 和 J 当作一个字母),一次加密两个字母。 2.11 单表代替与多表代替的区别 多表代替是单表代替的简单改进:在明文中采用不同的单表代替。 2.12 一次一密的两个难点 ①产生大规模随机密钥有实际困难。 ②庞大的密钥分配问题。 2.13 什么是置换密码? 置换密码将原来明文中的元素重新排列。 2.14 什么是隐写术? 使用字符标记、不可见墨水、针刺等方法隐藏信息的存在。 关键术语 一次一密:使用与消息等长的无重复的随机密钥加密消息,密钥使用一次后就丢弃不用。 栅栏密码:按对角线顺序写出明文,按行的顺序读出作为密文。 Vigenere 密码:最著名和最简单的多表代替密码。
思考题 3.1 为什么说研究 Feistel 密码很重要? 现在大多数对称分组加密算法都是基于Feistel分组密码结构的。
3.3 为什么采用大规模的任意可逆代替密码是不可行的? 因为这样的变换,映射本身就是密钥,对于n位的代替,密钥规模为n*2^n位,当n很大时,制作这样的系统是不实际的。 3.4 什么是乘积密码? 依次使用两个或两个以上的基本密码,所得的密码强度高于所有单个密码的强度。 3.5 混淆与扩散的区别? 扩散:使明文和密文之间的统计关系变得复杂。 混淆:使密文和密钥之间的统计关系变得复杂。 3.6 哪些参数决定了实际的 Feistel 密码算法? 分组长度、密钥长度、迭代轮数、子密钥产生算法、轮函数F
3.7 什么是雪崩效应?
明文或者密钥的某一位发生变化会导致密文的很多位发生变化。
4.1 简短定义一个群 满足封闭性、结合律、有单位元和逆元的一个二元元算的集合。
- 封闭性:在数学中,若对某个集合的成员进行一种运算,生成的仍然是这个集合的元素,则该集合被称为在这个运算下闭合。
- 结合律:意指在一个包含有二个以上的可结合运算子的表示式,只要算子的位置没有改变,其运算的顺序就不会对运算出来的值有影响。
- 单位元:当它和其他元素结合时,并不会改变那些元素。
- 逆元:逆元素是指一个可以取消另一给定元素运算的元素
4.2 简短定义一个环 环是关于加法的一个交换群,且满足乘法的封闭性、结合律、分配律
4.3 简短定义一个域 域是一个交换环(有乘法逆元、无零因子的环)、域中的任意元素(除0外),都存在一个乘法逆元。
4.6 列举三类多项式计算
- 使用代数基本规则的普通多项式计算
- 系数运算是模p的多项式计算
- 系数模p,且多项式被定义为模一个n次多项式m(x)的多项式运算
5.1 NIST 评估 AES 候选算法的最初标准是什么?
- 安全性
- 成本
- 算法和实现特征
5.2 NIST 评估 AES 候选算法的最终标准是什么?
总体安全、空间受限的环境、软硬件实现、对实现的攻击、加密和解密、密钥的灵活性、指令级并行的潜力。
5.3 Rijnael 和 AES 的区别
Rijnael允许128,192,256位的分组长度,AES只允许128位的分组长度。
5.4 使用状态数组的目的是什么?
存放128位分组在处理过程中的值。
5.5 如何构造 S 盒?
①按字节值升序逐行初始化 S 盒。第一行为{00}, {01},…, {0F};第二行为{10}, {11}, …, {1F};…(y 行 x 列字节值为{yx}) ②把 S 盒中的每个字节映射为它在 GF(28)中的逆,{00}被映射为其本身。
在密码学中,S盒(Substitution-box)是对称密钥算法 执行置换计算的基本结构。S盒用在分组密码算法中,是唯一的非线性结构,其S盒的指标的好坏直接决定了密码算法的好坏。
5.6什么是字节代替?
将该字节的高四位作为行值,低四位作为列值,在s盒中查表,将对应位置的元素输出。
5.7什么是行移位变换?
状态的第一行保持不变,第二行循环左移一个字节,第三行循环左移两个字节,第四行循环左移三个字节
5.8行移位影响了状态中的多少字节?
除了状态的第一行之外,都被影响了,故共影响了12字节。
5.9 什么是列混淆?
列混淆对每列独立进行操作,每列中的每个字节被影射成一个新值值(用一个4×4 矩阵乘以状态矩阵)
5.10 什么是轮密钥加?
128位的状态与128位的轮密钥按位 XOR(异或)
5.11 简述密钥扩展算法
AES密钥扩展算法的输入是4个字,输出是一个44字组成的一维线性数组。 具体步骤如下: ①字循环,每个字中的 4 个字节循环左移一个字节 ②利用 S 盒进行字节代替 ③将①②的结果与轮常量 XOR
5.12 字节代替和字代替有何不同?
字节代替对状态数组进行操作,字代替对输入字进行操作。
5.13 行移位与字循环有何不同? 字循环仅相当于行移位中对第二行的操作。
5.14 AES 解密算法和其等价逆算法之间有何不同?
AES解密算法:虽然加密、解密中密钥扩展的形式一样,但加解密中变换的顺序不同。
等价逆算法:与加密算法有同样的结构,且变换顺序相同。
不可约多项式:即该多项式不能被表示为次数更小的两个多项式的乘积。
补充:AES 的参数 明文分组长度(位) 128 128 128 密钥长度(位) 128 192 256 轮数 10 12 14 每轮的密钥长度(位)128 128 128 扩展密钥长度(字) 44 52 60
1. 分组密码工作模式描述与应用
ECB模式:用相同的密钥分别对明文分组独立加密,例如:单个数据的安全传输
CBC:加密算法的输入是当前明文和上一密文的XOR,例如:面向分组的通用传输和认证
CFB:一次处理s位,加密算法的输入是上一密文,加密算法输出的前s位与s位明文分组XOR,作为当前分组的密文,例如:面向数据流的通用传输和认证 数据流(data stream)是一组有序,有起点和终点的字节的数据序列。包括输入流和输出流。
OFB:加密算法的输入是上一加密算法的输出,当前加密的输出与明文分组XOR作为当前密文,例如:噪声信道上的数据流传输
CTR:每个明文分组与经过加密的额计数器xor,对后续分组的额计数器递增,例如:面向分组的额通用传输和用于高速需求
2. 分组密码工作模式优缺点
ECB: 优点: ①实现简单 ②可并行加密 ③硬件实现速度快 缺点: 保留了单表代替的缺点, 相同明文产生相同密文, 不能隐藏统计规律。
CBC 优点: ①隐藏了明文的统计规律 ②自同步 缺点: 错误传播
CFB优点: ①适用于每次处理 s 位明文的特殊要求 ②自同步 缺点: ①错误传播 ②加密效率低
OFB 优点: 错误不会传播 缺点: 不能实现完整性认证
CTR优点: ①设计简单 ②效率高 ③可预处理(提高了吞吐量) ④可并行计算 ⑤可证明安全性 缺点: 始终要保存一个状态值, 且加解密双方必须同步。
2. 简单介绍 XTS-AES 工作模式