第1章 概览

思考题
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章 分组密码和数据加密标准

思考题
3.1 为什么说研究 Feistel 密码很重要?
现在大多数对称分组加密算法都是基于Feistel分组密码结构的。

3.3 为什么采用大规模的任意可逆代替密码是不可行的?
因为这样的变换,映射本身就是密钥,对于n位的代替,密钥规模为n*2^n位,当n很大时,制作这样的系统是不实际的。
3.4 什么是乘积密码?
依次使用两个或两个以上的基本密码,所得的密码强度高于所有单个密码的强度。
3.5 混淆与扩散的区别?
扩散:使明文和密文之间的统计关系变得复杂。
混淆:使密文和密钥之间的统计关系变得复杂。
3.6 哪些参数决定了实际的 Feistel 密码算法?
分组长度、密钥长度、迭代轮数、子密钥产生算法、轮函数F

3.7 什么是雪崩效应?

明文或者密钥的某一位发生变化会导致密文的很多位发生变化。

第4章 数论和有限域的基本概念

4.1 简短定义一个群
满足封闭性、结合律、有单位元和逆元的一个二元元算的集合。

  • 封闭性:在数学中,若对某个集合的成员进行一种运算,生成的仍然是这个集合的元素,则该集合被称为在这个运算下闭合。
  • 结合律:意指在一个包含有二个以上的可结合运算子的表示式,只要算子的位置没有改变,其运算的顺序就不会对运算出来的值有影响。
  • 单位元:当它和其他元素结合时,并不会改变那些元素。
  • 逆元:逆元素是指一个可以取消另一给定元素运算的元素

4.2 简短定义一个环
环是关于加法的一个交换群,且满足乘法的封闭性、结合律、分配律

4.3 简短定义一个域
域是一个交换环(有乘法逆元、无零因子的环)、域中的任意元素(除0外),都存在一个乘法逆元。

4.6 列举三类多项式计算

  • 使用代数基本规则的普通多项式计算
  • 系数运算是模p的多项式计算
  • 系数模p,且多项式被定义为模一个n次多项式m(x)的多项式运算

第5章高级加密标准

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

第6章 分组密码的工作模式

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 工作模式

AES 分组加密操作模式有三种 ECB CBC XTS我们知道一个功能模块 如果所有的输入相同 那么输出也相同 AES模块也一样 大量数据输入之后很容易找到一些规律, 这就是明显的攻击点。ECB到CBC到XTS主要需要解决的问题是 (1 相同的数据块 得到的密文是否相同 2 能否随机访问各个数据块 解密一个数据块是否需要解密相邻的其他数据块)ECB 相同的数据块 密钥一样的话 输出的密文也一样 这样有严重的漏洞 容易被攻击。
CBC 引入了一个IV值递归 上一组加密后产生新的IV值作为下一数据块加密的输入 这样至少有个一个参数不同 但带来的问题是没有办法随机访问各个区块了,访问某个区块必须解出前一个区块数据。
XTS 加入了tweak key 与 AES key 互相配合, 各个区块用同样的AES key 但Tweak key 不相同 比如设置为与区块的index 成对应关系, 这样各个区块数据加密解密互相独立(独立的tweak key)
综上所述 XTS 相比 ECB CBC解决的两个问题是
1 相同的数据块得到的密文不可以相同
2 不同数据块可以独立加密和解密

6.1 什么是三重加密?

对明文分组进行三次加密,上一次加密的输出结果,作为下一次加密的输入。
典型的情况是,第二阶段使用解密算法而不是加密算法。

6.2 什么是中间相遇攻击?
给定明密文对(p,C),C=E(K2, E(K1, p))。攻击如下:

  1. 将明文p按所有可能的密钥k1加密,将加密结果放入一个表中
  2. 将密文C按所有可能的密钥k2解密
  3. 每解密一次就将结果与表中的数据比对,若相同,则用这两个密钥进行验证,如果产生正确的密文,则认为密钥是正确的。

6.3 三重加密中用到多少个密钥?
可三个阶段使用不同密钥(3个);
也可第一阶段和第三阶段使用相同密钥(2个)

6.4 为什么 3DES 的中间部分采用解密而不是加密?

没有密码学上的含义,仅仅是为了让使用3DES的用户可以实现单DES

这样做的好处是当你用同样的key(即k1=k2=k3=k)带入E(k3,D(k2,E(k1,m)))时,里面两层的D和E消去,3DES就会退化为一个普通的DES。

6.5 为什么某些分组密码的操作模式仅使用加密算法而其他模式既使用加密算法又使用解密算法?

对于实时性强,用于高速需求时,既使用加密算法又使用解密算法会降低效率。

第7章 伪随机数的产生和流密码

1. 真随机数发生器、伪随机数发生器、伪随机函数的区别
真随机数发生器把一个很随机的源(熵源)作为输入。熵源是从计算机的物理环境抽取的,比如键盘敲击、鼠标移动等。
伪随机数发生器用确定的算法来生成随机数,这些数并非统计随机但可以经受随机性检测。
伪随机函数和伪随机数发生器的唯一区别是产生位的长度。
伪随机数发生器:产生不限长位流。
伪随机函数:产生固定长度的伪随机位串。

2. 对伪随机数发生器(PRNG)的要求
(1)随机性:
①均匀性:0 和 1 出现概率大约相等。
②可伸缩性:任意抽取的子序列都应通过随机性测试。
③一致性:对于所有的种子,发生器的行为都必须具有一致性。
(2)不可预测性:
①前向不可预测:如果不知道种子,不管知道序列的前多少位都不能预测序列的下一位。
②后向不可预测:从产生的任何值都不能推断出种子。

3. 分组密码如何构建伪随机数发生器
CTR、OFB 模式。

4. 什么是偏差?如何消偏?
一个真随机数发生器的输出有时会产生偏差(0 和 1 出现的概率不同)。消偏算法很多,例如将一个位串通过 Hash 函数进行处理。

7.1 随机数的统计随机性和不可预测性的区别
随机性即满足:
①均匀性:0 和 1 出现的频率大致相等。
②独立性:任意子序列与其他子序列相互独立。
不可预测性:不能由前面的随机数推出后面的随机数。

7.2 设计流密码的重要考虑因素

1.加密序列的周期要长
2.密钥流尽可能接近真随机数的特征
3.为防止穷举攻击,密钥应足够长

7.3 为什么流密码重用密钥不好?
如果重用密钥,那么密文流的 XOR 就是明文的 XOR。如果明文是一些已知属性的字节流,容易对其进行密码分析。

7.4 RC4 使用了什么原语造作?
RC4(来自Rivest Cipher 4的缩写)是一种流加密算法,密钥长度可变。

应用:SSL/TLS,IEEE 802.11 中的 WEP(Wired Equivalent Privacy, 有线等效保护)和 WPA(Wi-Fi Protected Access, Wi-Fi 受保护访问)等

算法描述:S 为 256 个字节的状态向量,K 为密钥,T 为临时向量。
①初始化
for i = 0 to 256 do
S[i] = i;//S 中的元素按升序被置为 0~255
T[i] = K[ i mod keylen ];
//若密钥 K 为 256 字节,则将 K 赋给 T;若 K 的长度为 keylen(keylen<256),
则将 K 的值赋给 T 的 keylen 个元素,并循环使用 K 的值给 T 剩下的元素赋值
②S 的初始置换
j = 0;
for i = 0 to 255 do
j = ( j + S[i] + T[i] ) mod 256;
Swap ( S[i], S[j]);//根据 T,将 S[i]置换成 S 中的另一个字节
③密钥流的产生
i, j = 0;
while (true)
i = ( i + 1 ) mod 256;
j = ( j + S[i] ) mod 256;
swap ( S[i], S[j]);
t = ( S[i] + S[j] ) mod 256;
k = S[t];

第8章 数论入门

1. 费马小定理
若 p 是素数,

密码编码学与网络安全相关推荐

  1. 【密码学Sage代码】椭圆曲线加密/解密(基于《密码编码学与网络安全——原理与实践(第七版)》)

    [密码学Sage代码]椭圆曲线加密/解密(基于<密码编码学与网络安全--原理与实践(第七版)>) 教材内容: 实践的Sage代码: #[静水流深Sage代码]使用椭圆曲线密码体制进行加密/ ...

  2. 密码编码学与网络安全(2):对称密码之传统加密技术

    对称密码之传统加密技术 关于对称加密 对称密码模型 密码编码学 密码分析学与穷举攻击 古典加密算法 代替技术 置换技术 转轮机 隐写术 关于对称加密 对称加密,也称为传统加密或单密钥加密,是20世纪7 ...

  3. 《密码编码学与网络安全》William Stalling著---学习笔记(二)【知识点速过】【数字签名+密钥管理分发+用户认证】

    提示:博文有点长,请保持耐心哦~ 前一篇文章: <密码编码学与网络安全>William Stalling著-学习笔记(一)[知识点速过][传统密码+经典对称加密算法+经典公钥密码算法+密码 ...

  4. 《密码编码学与网络安全》William Stalling著---学习笔记(三)【知识点速过】【网络安全与Internet安全概览】

    提示:博文有点长,请保持耐心哦~ 前两篇文章: <密码编码学与网络安全>William Stalling著-学习笔记(一)[知识点速过][传统密码+经典对称加密算法+经典公钥密码算法+密码 ...

  5. 密码编码学与网络安全——原理与实践(第八版)——第一章:信息与网络安全概念

    密码编码学与网络安全--原理与实践(第八版) 第一章:信息与网络安全概念 1.1网络空间安全.信息安全和网络安全 1.2OSI安全架构 1.3安全攻击 1.4安全服务 1.5安全机制 1.6密码学 1 ...

  6. 密码编码学与网络安全———原理与实践(第八版)第三章笔记

    第3章 传统加密技术 学习目标 简要介绍对称密码的主要概念. 解释密码分析和穷举攻击的差异. 理解单表代替密码的操作. 理解多表代替密码的操作. 简要介绍Hill密码. 目录 第3章 传统加密技术 3 ...

  7. 密码编码学与网络安全----原理与实践(第八版)---第9章笔记

    第九章 公钥密码学与RSA 学习目标: 概述公钥密码体制的基本原理. 阐述公钥密码体制的两个不同应用. 列举和解释公钥密码体制的要求. 概述RSA算法. 理解计时攻击. 总结算法复杂性的相关问题. 公 ...

  8. 密码编码学与网络安全期末考试笔记

    文章目录 M 记忆的部分 1 计算机安全核心的三个目标:CIA 三元组 2 一次一密 OTP(one time password) 3 对称密码与非对称密码的对比 4 分组加密工作模式 5 AES(A ...

  9. 《密码编码学与网络安全》复习总结

    软院田园老师的课,虽然上课没听(我觉得他讲得不好),自己看书也差不多看懂了七七八八,以下是看书过程中列出的部分重点 数论 欧几里得算法三形式,思路 欧拉定理.费马定理证明 中国剩余定理 计算 可能和低 ...

  10. ECC-Elliptic Curves Cryptography,椭圆曲线密码编码学

    ECC ECC-Elliptic Curves Cryptography,椭圆曲线密码编码学,是目前已知的公钥体制中,对每比特所提供加密强度最高的一种体制.在软件注册保护方面起到很大的作用,一般的序列 ...

最新文章

  1. visual studio配置第三方库
  2. element ui表单验证
  3. 配置三台服务器组成的ELK集群(二)
  4. python-pymysql模块的使用入门
  5. [数据结构]链表的实现在PHP中
  6. VS MFC checkbox 控件默认选中
  7. bjui获取当前页签或者是dialog容器
  8. war、jar、ear文件对比
  9. 抖音直播引流的最快方法是什么?就简单两招破500人!
  10. 通常环境光照度参照表
  11. 解决win10多余输入法删除的方法
  12. Galera/mysql 集群 备忘
  13. installshield 2020 R1中文版
  14. php教程数据库,php数据库基础
  15. 参数传递是什么?参数传递的是什么?
  16. 显示桌面的图标不见了 怎么显示出来
  17. matlab实验报告七,matlab实验报告(实验).doc
  18. dll修复工具哪个比较好?好的修复工具怎么选择
  19. caffe 训练自己的数据
  20. 太弱的愿望 = 没有愿望

热门文章

  1. BZOJ 2339 【HNOI2011】 卡农
  2. 液晶电视的驱动板与逻辑板维修
  3. 通过手机实现外网远程唤醒内网下的群辉Nas等设备
  4. 计算机 取得高级权限,win10获取system权限,win7获取最高权限
  5. filter 无效不起作用
  6. Vue 源码解析(一):依赖收集(Observer,Dep与Watcher对象)
  7. 认知的方法论 --以学习python编程语言为例
  8. 怎么开发qq群自动回复机器人呢?我教你
  9. jsp:setProperty的用法
  10. SwitchHosts! 3.5.8 中文版 (mac hosts修改工具)