密码学与安全协议

Last updated on January 19, 2024 pm

密码学与安全协议

一、引言

分散式管理和商业化是 Internet 快速发展的最重要原因。

为什么网络不安全?(大原因:没想着,想着却做不到)

1. 信息安全的三个方面主要内容

是什么?(OSI 安全框架)

安全攻击

有哪些攻击类型?中断破坏的是什么原则?侦听破坏的是?篡改、伪造呢?

被动攻击

被动攻击  察觉,重点在于  。被动攻击有信息内容泄露、   (决定通信主机的身份和位置,观察传输消息的频率和长度)。

主动攻击

主动攻击有哪四条?

安全服务

安全服务(老师上课说的)是想要达到什么目的。

安全机制

老师上课说是用什么手段。

2. 网络安全模型

多层次的立体网络安全防护体系。从广义的角度,四种模式都可以形成各自的 VPN。

通道

在通道两端架设安全设备如 VPN,加密路由器,加密防火墙等,目的是建立专用秘密通道,防止非法入侵。

网关

在系统入口进行控制。(门卫功能)

系统

一般在应用层进行,代理型防火墙、扫描检查、内部网安全保密系统等建立在应用层上。

内核

3. 安全标准和组织

国际标准化组织 ISO,国际电信联盟 ITU,互联网工程任务组 IETF。

我国的全国信息安全标准化技术委员会(简称信息安全标委会)。

二、传统加密技术

1. 密码学发展概述

第一阶段

密码学还不是科学,有密码算法的基本手段、简单的密码分析手段,主要特点是什么?

早期密码机?(我感觉机械的都算早期的,似乎是因为计算机没有普及?)

Kerchoffs 第一次提出编码的原则:加密算法应该建立在      的原则,这一原则是传统密码和现代密码的分界线,是判定密码强度的衡量标准。

第二阶段

计算机使得基于复杂计算的密码成为可能。主要特点是数据的安全基于   而不是   

第三阶段

DES,AES,Diffie & Hellman,RSA,椭圆曲线。

主要特点是公钥密码使得发送端和接收端     

2. 术语及定义

密码学是研究信息系统安全保密的科学,分成  学和  学。

加密算法分类

按照加密操作类型分类为          。(记忆:代换:代进表格去;置换:位置变换)按照所用密钥的个数分为        。按照明文被处理的方式分为       

安全使用对称加密的前提:开放算法;存在一个安全通道来分发密钥。安全使用对称加密的两个要求:加密算法足够强大,基于密钥的安全性而不是基于算法的安全性。

密码体系形式化描述:密码体系是五元组   

针对数据加密的攻击手段

针对数据加密的攻击手段有           

密码攻击(我觉得就是密码分析)中分为哪五种类型?

分析加密算法(攻击的复杂性分析):  (用作密码攻击所需要的数据量)、   (完成攻击所需要花费的时间)、   (进行攻击所需要的数据存储空间大小)。

加密算法的安全性

加密算法的安全性分为   (仅有一次一密;无论提供的密文有多少,如果由一个加密方案产生的密文中包含的信息不足以唯一地决定对应的明文)与    (破译密码的代价超出密文信息的价值)。

3. 代换密码

代换是用密文位串来代替明文位串,分为  (又分为    )和   (又分为       )。最早的代换密码是   ,是一种移位密码。

为了对抗对于单字母代换的频率分析,可以用多字母代换密码或多表代换密码。

Playfair 密码是   代换中的  

4. 置换密码

栅栏加密是什么?

5. 多重加密

单纯的代换和置换都不是很安全。在现代加密技术出现之前,   是最常用的多重加密算法。(转子机怎么用?)(这里的多重加密不一定要既包含代换又包含置换)

6. 隐写术

严格而言并不是加密技术,可用一整段信息中单词或字母子集来表达隐含信息或藏在不可见墨水中或藏在图像或声音文件中,缺点是需要许多额外付出来隐藏相对较少信息。

三、分组密码与 DES

1. 分组密码原理

看起来像巨大的代换。将明文消息编码表示后的数字划分为长度为 n 的组,每组分别在密钥的控制下变换成等长的输出数字序列。

应用了  (代换/置换/多重加密)的概念。

计算:对于 n bit 的分组,不同明文分组的总数?不同的可逆变换的总数?密钥的长度?

SPN

Shannon 引入了    (SPN)的概念,基于两种基本的加密操作,代换  盒,置换  盒(填字母)。代换——置换加密是    的基础。

Shannon 称之为理想密码系统中,     都与   独立。SPN 实现消息的  (使得      之间的关系复杂)和   (使得      之间的统计关系尽量复杂)。

Shannon 的贡献?

2. Feistel Cipher 结构

大部分对称分组密码是基于   密码结构。它把 Shannon 的代换——置换网络的概念实现了。Feistel 密码结构将输入分组分为两半,经过  (单/多)轮处理,每个处理包括?Feistel 结构的加密,解密?(注意 K 的下标,解密时左右交换,K 倒序使用)

Feistel 密码设计中,较大分组安全性较强,但降低速度,64 位分组大小是合理的折中;较大密钥安全性强,但速度低;多重循环加强安全性;子密钥生成算法、循环函数的复杂性大使得密码分析难度高。

3. 数据加密标准 DES

简化的 DES(S-DES)

加密算法涉及 5 个函数:初始置换 IP,复合函数 fk1,转换函数 SW,复合函数 fk2,初始置换 IP 的逆置换 IP-1

LS-2 表示循环左移 2 位。E/P 表示扩展/置换。

IP-1(IP(X)) = IP(IP-1(X)) = X

10bit 密钥,8bit 子密钥,8bit 明文。

DES

56bit 密钥,64 bit 明文。

DES 加密:

1
2
3
4
L0R0 <- IP(64bit 输入)
Li<-Ri-1,i=1,2...16
Ri<-Li-1⊕f(Ri-1,ki),i=1,2..16
64bit 密文<-IP-1(R16L16)

DES 解密:
1
2
3
4
R16L16 <- IP(64bit 密文)
Ri-1<-Li, i=16,15,...,1
Li-1<-Ri⊕f(Ri-1,ki), i=16,15,...,1
64bit 明文 <- IP-1(R0L0)

证明 DES 解密是加密的逆过程?

DES 设计原理及密码分析

循环次数

函数 f:提供混乱,雪崩效应。密钥产生:密钥的雪崩效应。

置换 P 的目的?(明文或密钥一点小的变动都引起密文的较大变化)

密钥生成算法的构造准则

设计目标:子密钥的  独立性和灵活性

要实现简单,速度快;不存在简单关系;种子密钥的所有比特对每个子密钥比特的影响大致相同;从一些子密钥比特获得其他子密钥比特在计算上是难的;没有   

分组密码的实现原则

安全上?软件实现的要求?硬件实现的要求?

DES 密码攻击

  攻击(加密/解密算法对不同输入所花时间不同)、  攻击(如差分攻击、线性攻击)

DES 工作模式

由于需要加密的信息量任意,给出 DES 三种工作模式:   ECB、  CBC、   CTR

ECB 优缺点?适合于传输短消息,如密钥。CBC 输入是当前明文组和   的异或(为什么?我觉得是为了连续的相同明文不产生一样的密文,如第一组全 0,第二组也全 0),优缺点?(不要忽视初始化向量)CTR 只加密计数器值并将输出与明文异或,优缺点?

四、现代对称加密及其传输保密性

1. 现代对称加密

有相当高的密码强度,广泛应用于 Internet,代表了自 DES 以来的现代对称密码技术。

三重 DES

为什么不是两重 DES?

三重 DES 使用  个密钥,运算过程是加密——  ——  (加密/解密)。需要 O(2112+256) 次攻击。

Blowfish

RC5

现代分组密码特性

现代分组密码的特性包括:可变的密钥长度/分组长度/循环长度;复合运算,数据/密钥相关的循环移位;密钥相关的 S 盒;可变的非线性函数 F;每轮操作作用于全部数据;复杂的密钥调度算法。

流密码

流密码一位位地处理消息。

1
2
3
4
  密钥

伪随机序列生成器 ↓
明文比特流 → ⊕ → 密文比特流

必须不重用密钥(否则将两个使用相同密钥的密文流进行异或后得到原始明文异或)。

流密码的设计考虑?(加密序列周期长;统计上随机;依赖于足够大的密钥)

2. 传输安全性

链路加密、端到端加密

链路加密:每两个节点协商一个安全规则。加密  ,不加密  (包头/应用层)。消息在发送主机时为  ,在中间节点时为  (明文/密文),加密过程对用户  (透明/不透明)。

端到端加密:加密  ,不加密  (包头/应用层)。

密钥分配

主密钥是有双方共享的长期密钥,用来创建临时的会话密钥。会话密钥只用在一个逻辑会话中加密数据。

集中式密钥分配

适用于小型系统。先决条件是什么?(有密钥分配中心;每个用户 X 与 KDC 共享一个长期密钥 Kx)

集中式密钥分配的步骤?

请求用明文,因为没有必要加密,资源消耗大。N1 用来防重放攻击。

分散式密钥分配

先决条件是什么?

随机数

用途包括防止重放攻击、会话密钥、用于 RSA 等。

基本特点?

伪随机数系列可通过随机性检测,伪随机数发生器把短的随机数拉成长的伪随机数。

线性同余发生器在知道乘数 a、增量 c 之后的公式,以及最大周期?是否安全?【2.21我觉得老师课件上的最大周期错误,我觉得应该是 m】

五、公钥密码学与 RSA

1. 公钥密码体系

私钥加密与公钥加密

私钥加密存在的问题?(无法保护发送方,接收方可能伪造一个消息并宣称是发送方的;密钥分配困难)

公钥加密解决哪两个关键问题?(密钥分配,数字签名)

公钥加密的核心思想及优点:使用两个密钥,一个公钥,一个私钥;不对称。

公钥加密与认证

如何实现公钥加密与认证?实现了      ,但未实现     

为何要先签名,后加密?

公钥应用

可分为哪些类别?Diffie-Hellman 只适用于密钥交换,DSS 只适用于数字签名。

公钥算法的密钥需要拥有哪些性质?

2. 数学原理

Fermat (小)定理及其证明。(注意,(a, b) 和 gcd(a, b) 的区别!)

Euler 函数和 Euler 定理?Euler 定理推论?

3. RSA 算法

RSA 密钥创建的步骤?

RSA 的安全性

三种方法攻击 RSA:

强力搜索;数学攻击;时间攻击

六、密钥管理

1. 公钥的分配方法

有哪些公钥的分配方法?

公开发布:优点:简单,最大的缺点是伪造,每个人都需要保存一个很长的公钥列表。应用于 PGP 中。

公开可访问的目录:可信组织维护一个动态的目录,缺点是目录是攻击的目标,仍可能被篡改或伪造。

公钥授权:需要 PKA(Public Key Authority),需要实时的获取功能,对照讲义中的结构(注意是 Time1 和 Time2)。公钥授权通过严格控制目录中的公钥分配提高安全性。缺点是所有用户需要通过公钥授权来获取其他人公钥,公钥授权是瓶颈;公钥授权是攻击的目标。公钥授权与 KDC 相比,KDC 中的会话密钥是 KDC 分发的,KDC 能监控 A,B 间通信。

公钥认证(Public Key Certificates):一个证书包含标识(Identity)、公钥,还包含有效期等。所有内容由可信的认证机构(Certificate Authority,CA)签发。一个 CA 有一对公私钥。每个通信方要求 CA 为其公钥签发一个证书(CA 的私钥签名)。

2. 基于公钥的密钥分配

有几种方法协商一个会话密钥。(简单模式,保密模式,混合方法:三层结构,性能好,适用于需要频繁交换会话密钥的应用,有向后的兼容性)

3. Diffie-Hellman 密钥交换

两个用户通过非安全通道创建一个秘密的会话密钥。

什么是 a 模 m 的阶?原根是什么?双方需要选择什么?

Diffie-Hellman 密钥交换的安全性上存在什么攻击?

七、消息认证与 Hash 算法

1. 信息安全的需求

信息安全的需求是什么?(保密性,完整性,可用性,认证,不可否认性;相比安全服务少了个存取控制,不知道是什么情况)

2. 消息认证

认证:一个短的字符串(值)追加到消息 M 之后用以认证该消息。

一个安全的认证系统能满足:意向的接收者能检验和证实消息的合法性、真实性、完整性;消息的发送者和接收者不能抵赖;除了合法的发送者,其他人不能伪造合法的消息。

可用来作认证的函数分为三类:消息加密函数,消息认证码 MAC,散列函数。

消息加密

对称加密

介绍的几种:提供保密、认证(需要某种冗余),不提供签名;差错控制(先差错控制后加密,注意差错控制需不需要密钥,注意其图形中的字母)

非对称加密

介绍的几种:公钥加密(提供保密,不提供认证);私钥加密(提供认证(需要某种结构或冗余)、签名,不提供保密);公钥加密(保密性,认证,签名)

消息认证码

使用一个密钥生成一个固定大小的短数据块并加入到消息中。(注意用图形表示时是 C 而不是 H)

前提是什么?

MAC 函数由于不需要可逆性,在数学上被攻击的弱点比加密算法要少。

基本用法:提供认证;提供认证与保密性(与明文有关、与密文有关;为什么有“与密文有关”,我觉得是因为这里需要密钥);

基于 DES 的消息认证码使用   模式(填 DES 工作模式),初始向量为   

加密认证的问题?(加密代价大;保密性和真实性是两个不同概念,某些信息只需要真实性,不需要保密性)

散列函数

输入任意长度的消息 M,输出为  长度的散列值(消息摘要),是所有消息位的函数,任何一位的变化都会导致该散列值的变化。

Hash 函数是多对一的映射。

散列函数的基本用法(保密性,认证;认证(想一想,为什么单独认证不能像消息认证码一样?);认证,不可否认性;保密性,认证,不可否认性(注意私钥对 Hash 签名了);认证的快速实现(不用加密),保密性、认证的快速实现)?

散列函数的需求:       (弱抗冲突:任给 x,不容易找出 y ≠ x 使得 H(x) = H(y);强抗冲突:不容易找到 x, y 使得 H(x)=H(y)。

Hash 值长度为 m 的哈希函数,强抗冲突攻击代价为 2m/2;密钥长度为 k 位,码长度为 n 位的 MAC,弱抗冲突攻击代价是 min(2k, 2n)。

MD5 把数据分成 512bit 的块(需要填充消息使得其填充后是 512m+448,剩下的 8 字节按小端序填入消息长度),hash 值是 128bit。

八、数字签名和认证协议

1. 数字签名

为什么需要?(消息认证可以保护双方的数据交换不受第三方欺骗,但不保证双方相互欺骗)

数字签名特征?(能验证作者及其签名的日期时间;能认证签名时的内容;能由第三方验证以解决争议。)

数字签名分类?(直接数字签名,仲裁数字签名)

数字签名设计需求

数字签名的设计需求是什么?

签名使用对发送者唯一的信息;

生成、验证比较容易;

伪造在计算上不可行;

可以保存数字签名。

直接数字签名

缺点是什么?

仲裁数字签名

通常的做法是怎么样的?

2. 认证协议

认证和密钥交换协议核心问题是哪两个?

(答:保密性,时效性(防重放攻击))

重放攻击

常见形式有简单重放,可检测的重放,不可检测的重放,不做修改的反向重放

针对重放攻击的对策?(序列号(双方必须保持上次消息的序号),时间戳(必须时钟同步),随机值)

3. 认证应用

Kerberos 私钥认证服务

有哪些服务器?什么是票据授权票据?用户能查看票据 Ticket v 吗?(这里的 AS 是 Authentication Server,认证服务器;而 PKA 是公钥授权,PKC 是公钥认证)认证过程中有哪两个共享密钥?

1
2
3
4
5
    认证服务器 AS                   票据授权服务器 TGS                  应用服务器 V
↑ ↓ ↑ ↓ ↑ ↓
1.请求认证 2.颁发 Ticket tgs 3.请求 V 的服务 4.颁发 Ticket v 5.发送 Ticket v 6.授权/拒绝
↑ ↓ ↑ ↓ ↑ ↓
User C

引入 Kerberos 域后如何跨域认证?

X.509

目录服务

ITU-T X.500 系列定义了一个目录服务,X.509 是 X.500 目录服务的一部分,基于(公/私钥)加密和数字签名。

CA

CA 是可信任的颁发证书的服务器。存在许多 CA,通常怎样组织?(以树结构组织)CA X 有签名密钥 KRx 和大家都知道的验证密钥 KVx。

证书

证书由 CA X 颁发,用户 A 的证书包括哪些内容?注意 CA X 的签名。

X.509 层次结构

X.509 使用层次结构来搜索证书的验证密钥。Y<<X>> 是什么标注?

每个 CA 入口包含哪些证书?

证书回收

每个 CA 必须维护一个证书撤销表,包含在过期之前回收的证书,回收原因可能是密钥泄露、CA 证书泄露、用户不再由这个 CA 颁发证书。

认证过程

X.509 包括三个可选的认证过程(单向,双向,三向)

九、电子邮件安全

1. PGP

数字签名:DSS/SHA 或 RSA/SHA。(DSS 或 RSA 用于签名,SHA-1 生成 hash)

消息加密:CAST-128 或 IDEA 或 3DES 用于加密消息,Diffie-Hellman 或 RSA 用于加密会话密钥并与消息一起加密。

数据压缩:ZIP;

邮件兼容:加密消息通过 Base64 转换为 ASCII 码。

数据分段

PGP 操作:认证

注意,是对哈希值作私钥签名。(可用性;且我认为这里已经讲过 Hash 了)

注意符号与前面的不同(EP,EC)

PGP 操作:保密

先压缩,后加密。注意是用会话密钥。

PGP 操作:保密和认证

(可用来设计机密性、完整性、不可否认性的方案)

保密时要把哈希的签名也拿进去。

可用性体现在:对哈希函数签名;用对称密钥加密

PGP 操作:压缩

发生在签名后,加密前。

先签名后压缩:验证时无需压缩;压缩算法的多样性(N 年后复原时可能无法找到当时的压缩算法)。

先压缩后加密:压缩的报文更难分析;节省空间

PGP 操作:邮件兼容

将二进制数据编码为 ASCII 字符,可使用 radix-64 算法,将 3 字节输入转换到 4 字节 ASCII 并带 CRC 校验。

2. S-MIME

使用 X.509 证书

3. 安全电子邮件配置(这部分我考试似乎没遇到)

十、IP 安全性

1. IP Security 应用

是由 IETF 制定的开放性 IP 安全标准,是 VPN 基础。IPSec 提供在局域网、广域网、Internet 上安全通信的能力。可用于 Internet 上的安全分支办公室连接、安全远程访问、与合作者之间建立企业内部和外部的连接等。

基于 IP Security 的安全连接:源到公网是专线送,公网内用 IP 地址送。

2. IPSec 优点

在传输层以下,对应用程序是透明的;对用户来说是透明的。

3. AH 协议

在每个数据包 IP 包头后面添加身份验证报文头(记忆:After Head)。能保护完整性,但不能防窃听。

4. ESP 协议

主要作加密。工作原理是在每个标准 IP 包头后添加 ESP 报文头,并在数据包后面追加一个 ESP 报文尾和 ESP 认证。将需要保护的用户数据进行加密后封装。

5. 传输(transport)模式

只有传输层被用于计算 AH 或 ESP 头。

6. 隧道(tunnel)模式

整个 IP 包被用于计算 AH 或 ESP 头,AH 或 ESP 头以及 ESP 加密的用户数据被封在一个新的 IP 数据包中。

适用于网关到网关、VPNs。

7. 安全关联(SA)

由哪些参数标识?

合并安全关联

十一、Web 安全

Web 安全涉及前面讨论的所有安全性内容,同时还有新挑战:Web Server 易遭来自互联网的攻击;Web 软件功能实现有安全隐患;Web 常常是一个公司业务的核心;用户缺乏风险意识。

1. Web 安全性方法

IP 层安全?在 TCP 之上实现安全?

2. SSL/TLS

SSL/TLS 被设计来用 TCP 构建可靠的端到端安全服务,为两个通讯个体提供保密性、完整性、基于证书的认证。

两个主要的协议?(SSL 记录协议用于封装高层的协议,提供连接安全性:保密性、消息完整性;SSL 握手协议用来提供连接安全性:身份认证,协商过程可靠)

SSL 连接与会话?会话用以避免为每个连接提供新的安全参数所需的昂贵的协商代价。

浏览器与服务器的 SSL 握手过程:建立安全能力,协商算法、随机值等;服务器发送证书,交换密钥;如果请求,客户端发送证书,发送密钥交换信息;改变密码套件。

3. 安全电子交易 SET

双向签名(DS,Dual Signature)

顾客创建双重信息(发给商家的订购信息 OI,发给银行的支付信息 PI)。为了将 OI 和 PI 相联系,使用双向签名(OI 和 PI hash 的串接)。

双向签名怎么构造?(注意“签名”)

PIMD = H(PI), OIMD = H(OI)

POMD = H(PIMD||OIMD)

Dual Signature = EKRc(POMD)

商家和银行分别如何验证双向签名?

EKUc(DS) = H(PIMD||H(OI)), EKUc(DS) = H(H(PI)||OIMD)

SET 交易类型

购买申请

顾客发送初始请求,商家生成初始应答;持卡人通过 CA 验证商家和支付网关的证书后生成 OI 和 PI,并生成 Ks(什么是数字信封?),发送购买请求消息。

商家验证持卡人证书,验证双向签名,处理定购并将支付信息发给支付网关,向购买人发送购买应答。

支付认可

支付网关验证所有证书,解密认证分组的数字信封,获得对称密钥,解密认证分组;验证认证分组的商家签名;解密支付分组数字信封,获得对称密钥,解密支付分组;验证支付分组的双向签名,验证交易标识等,将认可应答返回商家。

支付获取

商家与支付网关协商,获取支付款,商家发送获取请求给支付网关,并从支付网关得到获取应答。


密码学与安全协议
https://zhaozihanzzh.github.io/2023/02/23/cryptography-and-security-protocols/
Author
zhaozihanzzh
Posted on
February 23, 2023
Licensed under