第1章 密码学基础模型与概念

发布时间 2023-10-31 20:30:48作者: p1cky

1.1 密码学基本概论

1.1.1 Scytale密码棒

明文:需要被保密的有意义的信息。

密文:被加密过的没有明确意义的乱码。

加密:通过相关方法将明文变成密文的过程。

解密:通过相关方法将密文变成明文的过程。

密钥:解决加密或者解密过程的相关方法。

公开信道/秘密信道

1.1.2 保密通信模型

保密通信模型:

1.1

Alice:协议的发起者。

Bob:协议的应答者。

Eve:窃听者和可能的攻击者。

密文c在公开的信道上传送。

密钥k在一个秘密的安全信道传送。

Eve(公开信道上的一个不可信的第三方):

可以根据恶意程度进行划分:

Oscar:被动的观察者,仅仅根据从公开信道获得的资料进行破译。

Malice/Mallory:主动的攻击者,可能会拦截数据、篡改信息、冒充合法的通信者。

密码学的作用:保证Alice和Bob能在公开的信道上通信,而窃听者、攻击者Eve不能理解他们通信的内容。

1.1.3 攻击者的能力

Eve有如下的几种攻击手段:

A.搭线窃听,读取Alice发送Bob的消息;

B.被动破译,试图寻找密钥并读取用该密钥加密的信息;

C.中断通信,从公开信道阻拦从Alice发送给Bob的信息;

D.篡改消息,拦截Alice发送给Bob的信息m,并用一个伪造的信息m1代替m;

E.伪造通信,伪装成Alice发送信息m给Bob,让Bob误以为是在和Alice通信。

1.2

A和B两种攻击属于被动攻击,通常用Oscar表示。

C、D和E属于主动攻击,通常用Malice表示。

被动攻击难检测易防范,主动攻击易检测难防范。

无论哪种攻击方式,攻击目的的达到都建立在对加密方法、解密方法以及密钥这三个核心资源的获取上。

Dolev-Yao威胁模型,明确地给出了Malice所具备的特征和攻击能力:

他能获得经过网络的任何消息;

他是网络的一个合法使用者,因而能够发起与任何其他用户的对话;

他有机会成为任何主题发出信息的接收者;

他能冒充任何别的主体给任意主体发消息。

1.1.4 现代密码学的基本原则

Kerckhoffs原则:

在评定一个密码体制的安全性时,必须假定攻击者知道所有目前使用的密码学方法。

该原则将过去基于算法保密的安全性转化为基于密钥保密的安全性。

Scytale密码棒方法就是基于算法保密的安全性
(当时大多数人并不知道该密码的加密方法)。

现代密码学的研究:公开征集安全的密码算法,人人都可以通过设置自己私有的密钥,而使用相同的公开的安全算法获得安全性。(基于公开算法和密钥保密的密码体制,公开地研究密码加密和解密算法,以复杂的数学理论保证该算法的不可破解性)

1.3

如式(1-1)、(1-2)所示,加密函数E和解密函数D是公开的,而k是秘密和私有的。已知密钥k,从明文x到密文y的计算是容易的;仅仅知道y、E、D,而不知道k,计算出x,在数学上或者说在当前的计算能力下,是不可能的。

1.1.5 密码分析的攻击方式

密码学:研究在不安全通道上传递信息及相关问题的总称,包括密码编码学和密码分析学。

密码编码学:使消息保密的技术和科学,通常指设计密码系统及完成相关功能的算法与机制,包括密码算法和安全通信协议。

密码分析学:破译密文的科学与技术,即揭穿伪装、破坏加密体制。

根据攻击所能获得的信息资源,可以将其攻击方式分为6类: (1)唯密文攻击:攻击者有一些消息的密文,这些消息都是用同一加密算法加密。攻击者的目的是恢复尽可能多的明文,当然最好是获得消息的加密密钥。

(2)已知明文攻击:攻击者在得到密文的同时,还知道这些消息的明文。攻击的目标就是根据加密信息推导出用来加密的密钥,或者等价的,即使没有找到密钥,但是能找出一种方法,能对同一密钥加密的密文获得其明文。

(3)选择明文攻击:攻击者不仅可以获得一些密文-明文消息对,而且能选择被加密的明文。这比已知明文攻击更有效,因为攻击者可以选择能加密的特定明文块去获得密文,那些块可能产生更多的密钥信息。

(4)自适应选择明文攻击:这是比选择明文攻击具有更多权限的攻击方式,攻击者不仅可以选择一大块明文用来加密获得密文,还可以基于以前的结果修正这个选择,选择另一与第一块明文相关的明文块。

(5)选择密文攻击:攻击者能选择不同的被加密的密文,并可能得到对应的解密的明文。譬如,攻击者获得了某个解密机;或者攻击者是渗透在保密系统内部的员工,可以有一定的权限获得某些密文的原文;而在公开密钥密码系统中,一些安全协议需要通过“加密-解密”的方式来验证身份,此时,密钥的所有者往往扮演了预言机的角色。

(6)选择密钥攻击:指密码分析者具有不同密钥间关系的有关知识。

1.2 基于密钥的算法

加密和解密算法,根据所使用密钥的性质,通常分为两类:对称算法和公开密钥算法。

1.4

如果加密密钥k1和解密密钥k2相同,或者相关(k1、k2可以相互推导,如知道k1可以推导出k2),则称为对称密钥密码算法;如果加密密钥k1和解密密钥k2之间没有任何关联,是否知道k1对获得解密密钥k2没有任何帮助,同样,知道k2对获得加密密钥k1也没有任何帮助,则称为非对称密钥算法。

由于非对称密钥密码算法在使用中,通常将加密密钥公开,所有人都可以用这个密钥加密,而只有解密密钥的持有者才可以解密,所以,也常被称为公开密钥算法。

1.2.1 对称密钥密码系统

在大多数对称算法中,加密/解密密钥是相同的,这些算法也叫秘密密钥算法或单密钥算法。古典加密体制以及著名的数据加密标准和高级加密标准都是基于对称密钥的。

对称算法分为两类:

序列算法——一次只对明文中的单个比特(有时对字节)运算。

分组算法——对明文中的一组比特进行运算。

现代计算机密码算法中典型的分组长度是64比特——这个长度大到足以防止分析破译,但又小到足以方便使用。

1.2.2 非对称密钥密码系统

在这个系统中,加密密钥也叫公开密钥,解密密钥也叫私钥。

1.3 密码协议

协议的特点:

(1)协议中的参与方都必须了解协议,并且预先知道所要完成的所有步骤;

(2)协议中的每个参与方都必须同意并遵守它;

(3)协议必须是清楚的,每一步必须明确定义,如进行通信,或完成一方或者多方运算,并且不会引起误解;

(4)协议必须是完整的,对每种可能的情况必须规定具体的动作。

1.3.1 引例:加密的银行转账

1.5

协议1-1中,KCB(m)表示对信息m用密钥KCB进行加密之后的密文。

1.3.2 一个攻击

1.6

1.3.3 增加认证(*)

1.7

1.8

1.3.4 对认证的攻击(*)

1.9

1.3.5 安全协议类型与特点

通常的网络协议,假定参与者是遵循协议要求、忠诚于协议的目标的;而密码协议则假定参与者以及第三方都是恶意的,希望在表面上对协议遵守规则去执行,而实际上却破坏协议的任务,希望在这个任务执行的过程中,达到自己不可告人的目的。

通常来说,密码协议在设计和执行的过程中,会预设一个场景,然后每个协议的参与者有一些特定的角色去扮演。我们对协议中常见的参与者(扮演角色),有一些约定俗成的任务名。

1.10

密码协议在安全系统中,其关键性目的并不是保证密码算法的不可破译,而是假设密码算法本身是安全的,借助这种安全的密码算法,达到以下4个主要目标:

(1)机密性。搭线窃听者Eve不能读取信道上传输的信息的明文,主要的手段是先加密后传输,由接收者解密;

(2)完整性。接收者Bob需要确认Alice的消息没有被更改过。有可能是传送错误,也可能是Mallory截获并修改了这个信息。密码学中的散列函数,就提供了检测方法来检测数据是否被攻击者有意无意地修改过。

(3)认证性。接收者Bob需要确认消息确实是Alice发送的,而不是冒名顶替的行为,通常这种认证包括两类:实体认证和数据源认证。对消息中所涉及参与方的鉴别,也常用身份鉴别来表示。身份认证主要是确认主体是否合法的参与者,数据源认证主要是确认消息是由他所声称的主体发送和生成的。

(4)抗抵赖性。也称为不可否认性,对于一个已经进行的行为,参与的主体不能否认,即发送者事后不能虚假地否认他发送的消息。