密码学第1章 密码学概述Word文档格式.docx
《密码学第1章 密码学概述Word文档格式.docx》由会员分享,可在线阅读,更多相关《密码学第1章 密码学概述Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
一、基本术语
(1)明文:
没有加密的信息称为明文(plaintext);
(2)密文:
加密后的信息称为密文(ciphertext);
(3)加密:
从明文到密文的变换成为加密(encryption);
(4)解密:
从密文到明文的变换成为解密(encryption)。
⏹加密和解密都是在密钥(key)的控制下进行的。
给定一个密钥,就可确定一对具体的加密变换和解密变换。
二、密码体制的组成
⏹一个密码体制(cryptosystem)通常有五部分组成:
(1)明文空间M:
全体明文的集合。
(2)密文空间C:
全体密文的集合。
(3)密钥空间K:
全体密钥的集合。
通常每个密钥k都有加密密钥ke和解密密钥kd组成,
,ke与kd可能相同也可能不相同。
(4)加密算法E:
由加密密钥控制的加密变换的集合。
(5)解密算法D:
由解密密钥控制的解密变换的集合。
设
是一个明文,
是一个密钥,则
其中
是由加密密钥确定的加密变换,
是由解密密钥确定的解密变换。
在一个密码体制中,要求解密变换是加密变换的逆变换。
因此,对任意的
都有
成立。
⏹密钥空间中不同密钥的个数成为密钥量,它是衡量密码体制安全性的一个重要指标。
三、密码体制分类
(1)单密钥密码密码体制(或对称密码体制):
如果一个密码体制的加密密钥与解密密钥相同,则称该密码体制为~。
(2)双密钥密码密码体制(或非对称密码体制):
如果一个密码体制的加密密钥与解密密钥不相同,则称该密码体制为~。
(3)公钥密码体制(public-keycryptosystem):
在一个双密钥密码密码体制中,有加密密钥ke计算解密密钥kd是困难的,公开ke不会损害kd的安全性,则可以将加密密钥ke公开。
这样的密码体制称为公钥密码体制。
四、密码体制的条件
⏹一个好的密码体制至少应该满足以下两个条件:
(1)在已知明文m和加密密钥ke时,计算
容易,在已知密文c和解密密钥kd时,计算
容易。
(2)在不知解密密钥kd时,不可能由密文c推知明文m。
⏹对一个密码体制,如果能够根据密文确定明文或密钥,或者能够根据明文和相应的密文确定密钥,则称这个密码体制时可破译的;
否则,称其为不可破译的。
五、攻击密码体制的方法
⏹密码分析者攻击密码体制的三种主要途径:
(1)穷举攻击:
密码分析者通过试遍所有的密钥进行破译。
——可以通过增大密钥量来对抗穷举攻击。
(2)统计分析攻击:
密码分析者通过分析密文和明文的统计规律来破译密码。
——可以通过设法使明文的统计规律与密文的统计特性不同来对抗这种攻击。
(3)解密变换攻击:
密码分析者针对加密变换的数学基础,通过数学求解的方法来设法找到相应的解密变换。
——可以通过选用具有坚实的数学基础和足够复杂的加密算法对抗这种攻击。
⏹密码分析者通常可以在下述四种情况下对密码体制进行攻击:
(1)唯密文攻击(cipheretext-onlyattack):
密码分析者仅知道一些密文。
(2)已知明文攻击(known-plaintextattack):
密码分析者知道一些明文和相应的密文。
(3)选择明文攻击(chosen-plaintextattack):
密码分析者可以选择一些明文,并得到相应的密文。
(4)选择密文攻击(chosen-cipheretextxtattack):
密码分析者可以选择一些密文,并得到相应的明文。
其中,唯密文攻击的强度最弱,其他情况的攻击强度依次增加。
⏹绝对不可破译的密码体制:
对一个密码体制,如果密码分析者无论截获多少密文以及无论用什么样的方法攻击都不能破译,则称其为绝对不可破译的密码体制。
绝对不可破译的密码在理论上是存在的。
⏹计算上不可破译的密码:
是指密码分析者根据可以利用的资源进行破译的时间非常长,或者破译的时间长到是原来的明文失去保密的价值。
六、密码学分成两个分支:
⏹密码编码学:
寻求生成高强度、有效的加密或认证算法。
⏹密码分析学:
破译密码或伪造加密信息。
分为:
被动攻击,只是对传输的信息进行窃听;
主动攻击,对传输的信息采取插入、删除、修改、重放、伪造等举动。
1.3密码应用举例
例西方古玩店的商品标签常显示形如“ZZ”、“QPRA”之类的符号。
即是一种以密码形式将成本价格记录在标签上,作为销售时参考的方式。
店主可以选取一个秘密单词(如complexity),使其与自然数对应:
C
O
M
P
L
E
X
I
T
Y
1
2
3
4
5
6
7
8
9
标注商品的价格时,采用与其各位(个位、十位、百位、千位、万位,…;
十分位,百分位)数字所对应字母组成的序列表明商品价值,且一般不考虑小数点的位置。
秘密单词即为密钥。
例公元前约50年,出现了凯撒密码:
即将字母按其自然顺序,最后一个字母与第一个字母相连,将明文中的每个字母用其后面的第三个字母代替,变成密文。
明文
a
b
c
d
e
f
g
h
i
j
k
l
m
密文
D
F
G
H
J
K
N
n
o
p
q
r
s
t
u
v
w
x
y
z
Q
R
S
U
V
W
Z
A
B
注意:
为清楚起见,以后一律用小写字母表示明文,大写字母表示密文。
则
明文
例美国南北战争时期,军队中曾使用过双轨式密码:
加密时,先将明文写成双轨形式。
若明文为sendhelp,写成双轨形式则为
密文为:
SNHLEDEP。
解密时,先计算密文中字母的总数,然后将密文分成两半,排列成双轨形式后按列顺序读出即恢复明文。
例网格式密码(或称卡丹密码):
通信双方事前准备好相同的网格纸一式两份,
王先生:
来信收悉,你的盛情真实难以报答。
我以在昨天抵达广州。
秋雨连绵,每天需备伞一把方能上街,苦矣。
大约本月中旬我才能返回,届时再见。
弟李明
王先生:
密码除可用字母表示外,还可用各种符号表示。
“兽栏”式密码是其中最著名的一种。
如,一字棋盘式密码构造如下:
例明文是sendhelp时,其对应密文为
第一次课截至于此
现代密码学的特点:
¯
有坚实的理论基础,已经形成一门新的科学;
对密码学公开的研究;
应用于社会各个方面;
破译密码系统归结为求解数学的难题问题。
总结几百年密码学研究的成果可以得出以下几条研究和发展密码学的经验:
不应该低估对手的能力;
只有密码分析者才能评价一个密码体制的安全性。
同时,每个设计安全密码体制的机构也应该有破译“认为是安全的密码体制”的任务;
对手知道所用的密码体制;
表面上的复杂性可能是虚假的,虽然他们可能给密码编译者一种安全性的错觉;
由于人自身的弱点,会发生密码错误和其他违反安全纪律的情况。
判断一类方法的安全性时,必须考虑这点。
三、对称密钥加密
对称密钥加密是指密码方案中,从加密密钥容易计算出解密密钥或反过来从解密密钥容易计算出加密密钥。
对称密钥加密也称单钥加密或传统加密,其加密和解密经复杂的非线性变换实现。
对称密钥加密技术包括分组密码和序列密码。
1.分组密码
分组密码是在定长的块上进行替代操作、换位操作或它们的合成(乘法加密)。
替代:
是将明文中的一个字母用密文字母表中其他字母替代。
换位:
是一块中的字母简单的置换。
分组密码目前广泛用于数据的保密传输和存储加密。
2.序列密码
序列密码的加密变换只改变一位明文,故它可以看成是块长度为1的分组密码。
序列密码是各国军事和外交等领域使用的主要密码体制。
其主要问题是如何使生成的密钥流周期长、复杂度高、随机性特性足够好,使之尽可能地接近一次一密的密码体制。
对称密钥密码的优缺点:
对称密钥密码的优点:
加密效率高,硬件实现可达每秒数百兆字节(软件实现略慢一些);
密钥相对比较短;
可以用来构造各种密码体制;
可以用来建造安全性更强的密码。
对称密钥密码的缺点:
通信双方都要保持密钥的秘密性;
在大型网络中,每个人需持有许多密钥;
为了安全,需要经常更换密钥。
四、数字签名,认证与识别
1.数字签名
数字签名是把实体和一段信息捆绑在一起的一种手段。
它包括签名过程和验证过程。
数字签名要求:
每个用户都能有效地为他的特定消息生成签名;
每个用户都能有效地验证是否是特定人对特定消息的签名;
任何人不能有效地生成他人对特定消息的签名并且通过验证过程。
1991年出现了第一个基于RSA公钥签名方案的数字签名国际标准。
2.认证与识别
认证就是保证“实体是他所声称的那个实体”或“某个信息没有受到非授权实体的处理”的一种手段。
根据是否需要实时地相互交换信息认证分为识别和数据源认证。
前者双方通信是实时的,后者是有时间延迟的。
数据源认证要求:
通信双方都能为自己发送的特定消息生成一个认证标记;
通信双方都能有效地验证此标记是该消息的认证标记;
第三者不能对通信双方发送的消息产生认证标记。
五、公钥密码学
1976年Diffie和Hellman的文章引入了公钥密码学的概念,给出了一种新的密钥交换方法,这种方法的安全性基于离散对数问题的难解性。
1978年出现了第一个基于大整数素因子分解难解问题的RSA公钥加密和签名方案。
1985年又出现了一个基于离散对数问题的ElGamal公钥加密方案。
1.公钥加密
公钥加密方案Ee和解密方案Dd中,对于每对加密密钥e和解密密钥d,其中的加密密钥(公钥)是公开的,而解密密钥(私钥)只为一个实体私有。
公钥加密的优缺点
公钥加密的优点:
在大型网络中,每个用户需要的密钥数量少;
对管理公钥的可信第三方的信任程度要求不高而且是离线的;
只有私钥是保密的,而公钥只要保证它的真实性。
公钥加密的缺点:
多数公钥加密比对称密钥加密的速度慢几个数量级;
公钥加密方案的密钥长度比对称密钥加密的密钥长;
公钥加密方案没有被证明是安全的。
六、密码协议与密码机制
在密钥建立、密钥分配、身份识别中,需使用加密、数字签名、哈希函数、随机数生成等基本原语。
把使用密码学基本原语的分布式算法特别称为密码协议。
为达到某种安全目的所需的各种手段(包括协议、算法以及非密码的技术)构成密码机制。
对手可能在没有攻破密码原语的情况下,从密码协议或密码机制得到好处,则称密码协议或密码机制失败。
这是因为密码协议或密码机制扩大了原语的弱点或没有准确理解所声称的安全性。
七、攻击分类与安全模式
密码系统所处的环境中除发送者、接受者外,还有攻击者。
攻击者通过各种方法窃听和干扰信息。
窃听信息称为被动攻击,手段是电磁侦听或搭线窃听,主要破坏信息的保密性。
干扰信息称为主动攻击,通过删除、更改、插入、重放、伪装等方法向系统注入信息,主要破坏信息的完整性。
从攻击的对象分,既可以是加密算法,也可以是密码协议。
1.对加密方案的攻击
根据分析者使用的数据不同,主要有:
仅有密文攻击:
密码分析者仅跟据截获的密文来破译密码;
已知明文攻击:
密码分析者跟据已知的某些明文-密文对来破译密码;
选择明文攻击:
密码分析者能够选择明文并获得相应的密文。
2.对密码协议的攻击
主要有:
已知密钥攻击:
对手从用户以前用过的密钥确定出新的密钥;
重放攻击:
对手记录一次通信会话,在以后的某个时候重新发送整个或部分会话;
伪装攻击:
对手扮演网络中一个合法的实体。
字典攻击:
主要针对口令的一种攻击。
3.安全模式
密码学原语和密码协议的安全性可以有不同的评估模型:
无条件安全性、可证明安全性和计算安全性。
无条件安全性:
即使在无限计算资源条件下,通过观察密文也不会为对手提供任何有助于破译密码的信息。
可证明安全性:
如果能证明挫败一个密码学方法跟某个著名的困难问题的困难程度相同,则称这个密码学方法是可证明安全的。
计算安全性:
某种方法是计算安全的,是指使用当前最好的方法攻破它所需的计算远远超出对手的计算资源水平。
八、复杂性理论
计算复杂性是密码分析技术中分析计算需求和研究破译密码的固有难度的基础。
密码强度由破译该密码所用的算法的计算复杂性决定。
算法的计算复杂性由它所需的时间和空间量级来度量,其优点是独立于所用的系统并且使人们看到时间和空间的需求随输入规模n的而增长。
通常按时间或空间复杂性对算法进行分类。
若对某个常数
,算法的运行时间
,则称该算法是多项式时间的。
和多项式
,则称该算法是指数时间的。
表1.1不同时间复杂度算法的时间需求量级
算法类型
复杂度
操作次数
时间需求
常数的
线性的
二次方的
三次方的
指数的
O
(1)
O(n)
O(n2)
O(n3)
O(2n)
106
1012
1018
10301030
1μs
1s
11.6d
3200y
3×
10301030y