信息保密技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
≡45+20 (mod 26)=13 (mod 26)。 对应的明文字母为q。
2.3 古典密码
3. 维吉利亚(Vigenere)密码 Vigenere是法国的密码学专家,Vigenere密码是以他的名字命
名的。该密码体制有一个参数n。在加解密时同样把英文字母用 数字代替进行运算,并按n个字母一组进行变换。明、密文空间 及密钥空间都是n长的英文字母串的集合,因此可表示 P=C=K=( Z26)n。加密变换如下: 设密钥k=(k1, k2, …, kn),明文P=(m1, m2, …, mn),加密函数 ek(P)=(c1, c2, …, cn),其中ci=(mi+ki) (mod 26), i=1, 2, …, n。 对密文c=(c1, c2, …, cn),密钥k=(k1, k2, …, kn),解密变换为 dk(c)=(m1, m2, …, mn),其中mi=(ciki) (mod 26), i=1, 2, …, n。
2.3 古典密码
例 假设k1=9和k2=2,明文字母为q, 则对其用仿射密码加密如下: 先把文字母为q转化为数字13。由加密算法得
c=913+2=119 (mod 26)=15 再把c=15转化为字母得到密文P。 解密时,先计算k11。因为93≡1(mod 26),因此k11=3。再由
解密算法得 m= k11(ck2) (mod 26)=3(c-2)=3c-6 (mod 26)
函数,通常用D表示,即D:SC→SM,表示为M=Dk(C)。 密码分析(Cryptanalysis):截获密文者试图通过分析从截获
的密文推断出原来的明文或密钥。 密码分析员(Cryptanalyst):从事密码分析的人。 被动攻击(Passive attack):对一个保密系统采取截获密文进行
c=m+k(mod 26)
给定一个密文字母c, 对应的明文字母m可由c和密钥k按如下算
法得到:
m=c-k(mod 26)
按照密码体制的数学形式化定义,移位密码体制描述为五元组 (P,C,K,E,D),其中: P=C=K= Z26={0,1,2,…,25} E={ek: Z26 Z26| ek (m)=m +k (mod 26)}, D={dk: Z26 Z26| dk (c)=c k (mod 26)}。
2.4.1 序列密码
序列密码将明文划分成单个位(如数字0或1)作为加密 单位产生明文序列,然后将其与密钥流序列逐位进行 模2加运算,用符号表示为 ,其结果作为密文。加密 过程如图所示。
加密算法是: ci (mi ki ) mod 2 解密算法是: mi (ci ki ) mod 2
2.3 古典密码
2.仿射密码 移位密码的加密方法是将明文字母按某种方式进行移位,如著
名的恺撒密码。
在移位密码中,将26个英文字母依次与0,1,2,…,25对应,密文 字母c 可以用明文字母m和密钥k按如下算法得到:
c=m+k(mod 26)
给定一个密文字母c, 对应的明文字母m可由c和密钥k按如下算
结论:古典密码方案并不适合Kerckhoffs原则,算法的保密性 基于算法的保密。
Βιβλιοθήκη Baidu
2.4 对称加密体制
2.4.1 序列密码 2.4.2 分组密码 2.4.3 数据加密标准-DES
2.4 对称加密体制
在这种密码体制中,对于大多数算法而言,解密算法 是加密算法的逆运算,加密密钥和解密密钥相同,满 足关系:M= Dk(C)= Dk(Ek(M))。
非标准的象形文字, 这或许是目前已知最早的密码术实例。 古典密码的加密方法一般是采用文字置换,主要使用手工方式
实现,因此我们称这时期为密码学发展的手工阶段。 2. 机械阶段 到了20世纪20年代,随着机械和机电技术的成熟,以及电报和
无级电需求的出现,引起了密码设备的一场革命-发明了转轮 密码机,转轮机的出现是密码学的重要标志之一。 3.计算机阶段 计算机科学的发展刺激和推动了密码学进入计算机阶段。 1949年,C. Shannon发表了“保密系统的通信理论”,为密码 学的发展奠定了理论基础,使密码学成为一门真正的科学。
密文,试写出加解密的过程与结果。
解 加密时,把明文字母按长度为4进行分组,每组写成一行, 这样明文字母Joker is a murderer被写成4行4列,然后把这4行 4列按4,3,2,1列的次序写出得到密文。过程与结果如图2-3-
1所示。解密时,把密文字母按4个一列写出,再按的逆置换
重排列的次序,最后按行写出,即得到明文。
加密(Encryption):用某种方法伪装消息以隐藏它的内容的 过程。
加密算法(Encryption Algorithm):将明文变换为密文的变换 函数,通常用E表示,即E:SM→SC,表示为C=Ek(M)。
2.2 密码学基本概念
解密(Decryption):把密文转换成明文的过程。 解密算法(Decryption Algorithm):将密文变换为明文的变换
分析的攻击。这种攻击对密文没有进行任何破坏。 主动攻击(Active attack):攻击者非法侵入一个密码系统,采用
伪造、修改、删除、等手段向系统注入假消息进行欺骗。这种 攻击对密文具有破坏作用。 密码体制:由明文空间SM、密文空间SC、密钥空间SK、加密算 法E和解密算法D构成的五元组{ SM、SC、SK、E、D},称为密 码体制。
20 17 4 2 8 15 22 25 19
相应的密文是:VPXZGIAXIVWPUBTTMJPWIZITWZT
2.3 古典密码
4. 置换密码 置换密码是把明文中各字符的位置次序重新排列来得到密文的
一种密码体制。实现的方法多种多样。在这里,我们介绍一类 较常见的置换密码。 其加解密方法如下:把明文字符以固定的宽度m(分组长度)水平 地(按行)写在一张纸上(如果最后一行不足m,需要补充固定字
2.3 古典密码
在现代密码学中,假定密码方案遵从Kerckhoffs原则,因此, 对密文的破解取决于加密密钥。就古典密码而言,由于算法相 对简单,算法复杂度也不高,一种可能的攻击方法是对所有可 能的密钥进行尝试的强力攻击,称为穷举搜索攻击。
移位密码:密钥空间K= Z26={0,1,2,…,25},因此,最多 尝试26次即可恢复明文。
2 8 15 7 4 17 2 8 15 7 4 17
21 15 23 25 6 8 0 23 8 21 22 15
18 19 4 12 8 18 2 8 15 7 4 17 20 1 19 19 12 9
13 14 19 18 4 2 2 8 15 7 4 17 15 22 8 25 8 19
符),按1,2,…,m的一个置换交换列的位置次序,再按垂
直方向(即按列)读出即得密文。
解密就是将密文按相同的宽度m垂直在写在纸上,按置换的逆 置换交换列的位置次序,然后水平地读出得到明文。置换就是
密钥。
2.3 古典密码
例 设明文Joker is a murderer,密钥=(4 1)(3 2)(即(4)=1, (1)=4,(3)=2,(2)=3)), 即按4,3,2,1列的次序读出得到
法得到:
m=c-k(mod 26)
按照密码体制的数学形式化定义,移位密码体制描述为五元组 (P,C,K,E,D),其中:
P=C=K= Z26={0,1,2,…,25} E={ek: Z26 Z26| ek (m)=m +k (mod 26)}, D={dk: Z26 Z26| dk (c)=c k (mod 26)}。
2.3 古典密码
例 设n=6, 密钥是cipher,这相应于密钥k=(2, 8, 15, 7, 4, 17) ,明文是this cryptosystem is not secure。试用Vigenere密码对 其加密。
解 首先将明文按每6个分为一组,然后与密钥进行模26“加” 得:
19 7 8 18 2 17 24 15 19 14 18 24
第2讲 信息保密技术
密码学发展简史 密码学基本概念 古典密码 对称加密体制 非对称加密体制
2.1 密码学的发展简史
密码学有着悠久而迷人的历史,从古至今已有4000 多年的历史了,密码学的发展大致经历了三个阶段: 手工加密阶段、机械加密阶段和计算机加密阶段。
1. 手工加密阶段 早在公元前1900年左右,一位佚名的埃及书吏在碑文中使用了
2.2 密码学基本概念
密码学(Cryptology)研究进行保密通信和如何实现信息保密 的问题,具体指通信保密传输和信息存储加密等。
密码学包括两个分支:密码编码学(Cryptography)和密码分 析学(Cryptanalyst)。密码编码学研究怎样编码、如何对消息 进行加密,密码分析学研究如何对密文进行破译。
仿射密码:密钥空间为K={(k1,k2)| k1,k2Z26, 其中gcd(k1, 26)=1},k1可能的取值有1,3,5,7,9,11,15,17,19, 21,23,25,因此,最多尝试12×26次即可恢复明文。
对于古典密码方案而言,由于密钥空间非常有限,因此,很难 抵抗穷举搜索攻击。另一方面,就英文而言,一些古典密码方 案不能很好地隐藏明文消息的统计特征,攻击者也可以利用这 一弱点进行破译。
明文: Joker is a murderer 按4字母一行写出
joke
risa
murd
erer 按列写出的顺序 4 3 2 1 按列写出密文:eadrksreoiurjrme
密文: eadrksreoiurjrme 按4字母一列写出
ekoj
asir
drum
rere 交换列的顺序 4 3 2 1 按行写出明文: joker is a murderer
对称密码体制的开放性差,要求通信双方在通信之前 ,商定一个共享密钥,彼此必须妥善保管。
对称密码体制分为两类。一类是对明文的单个位(或 字节)运算的算法,称为序列密码算法,也称为流密 码算法(Stream Cipher)。另一类算法是把明文信息 划分成不同的块(或小组)结构,分别对每个块进行 加密和解密,称为分组加密算法(Block Cipher)。
明文(Message):待加密的信息,用M或P(Plaintext)表示。 明文的集合构成明文空间,记为SM={M}。
密文(Ciphertext):经过加密处理后的形式,用C表示。密文 的集体构成密文空间,记为SC={C}。
密钥(Key):用于加密或解密的参数,用K表示。密钥的集合 构成密钥空间,记为SK={K}。
2.3 古典密码
从古代到19世纪末提出和使用的密码称为古典密码
古典密码大多比较简单,一般可用手工或机械方式实 现其加密和解密过程,破译也比较容易。
1.移位密码 移位密码的加密方法是将明文字母按某种方式进行移位,如著
名的恺撒密码。
在移位密码中,将26个英文字母依次与0,1,2,…,25对应,密文 字母c 可以用明文字母m和密钥k按如下算法得到:
2.2 密码学基本概念
密码系统(Cryptosystem):用于加密和解密的系统。加密时 ,系统输入明文和加密密钥,加密变换后,输出密文;解密时 ,系统输入密文和解密密钥,解密变换后,输出明文。一个密 码系统由信源、加密变换、解密变换、信宿和攻击者组成。
主动攻击者
被动攻击者
信源 M
加密变换 C=Ek(M)
② 防止算法设计者在算法中隐藏后门。因为算法公开后,密码 学家可以研究分析是否存在漏洞,同时也接受攻击者的检验。
③ 有助于推广使用。当前网络应用十分普及,密码算法的应用 不再局限于传统的军事领域,只有算法公开,才可能被大多数 人接受并使用,同时,对用户而言,只需掌握密钥就可以使用 了,勿须应用非常方便。
C
K 密钥器
解密变换 M=Dk(C)
K 密钥器
信宿
2.2 密码学基本概念
柯克霍夫(Kerckhoffs)原则:密码系统的安全性取决于密钥 ,而不是密码算法,即密码算法要公开。
这是荷兰密码学家Kerckhoff于1883年在名著《军事密码学》中 提出的基本假设。遵循这个假设的好处是:
① 它是评估算法安全性的惟一可用的方式。因为如果密码算法 保密的话,密码算法的安全强度无法进行评估。
2.3 古典密码
3. 维吉利亚(Vigenere)密码 Vigenere是法国的密码学专家,Vigenere密码是以他的名字命
名的。该密码体制有一个参数n。在加解密时同样把英文字母用 数字代替进行运算,并按n个字母一组进行变换。明、密文空间 及密钥空间都是n长的英文字母串的集合,因此可表示 P=C=K=( Z26)n。加密变换如下: 设密钥k=(k1, k2, …, kn),明文P=(m1, m2, …, mn),加密函数 ek(P)=(c1, c2, …, cn),其中ci=(mi+ki) (mod 26), i=1, 2, …, n。 对密文c=(c1, c2, …, cn),密钥k=(k1, k2, …, kn),解密变换为 dk(c)=(m1, m2, …, mn),其中mi=(ciki) (mod 26), i=1, 2, …, n。
2.3 古典密码
例 假设k1=9和k2=2,明文字母为q, 则对其用仿射密码加密如下: 先把文字母为q转化为数字13。由加密算法得
c=913+2=119 (mod 26)=15 再把c=15转化为字母得到密文P。 解密时,先计算k11。因为93≡1(mod 26),因此k11=3。再由
解密算法得 m= k11(ck2) (mod 26)=3(c-2)=3c-6 (mod 26)
函数,通常用D表示,即D:SC→SM,表示为M=Dk(C)。 密码分析(Cryptanalysis):截获密文者试图通过分析从截获
的密文推断出原来的明文或密钥。 密码分析员(Cryptanalyst):从事密码分析的人。 被动攻击(Passive attack):对一个保密系统采取截获密文进行
c=m+k(mod 26)
给定一个密文字母c, 对应的明文字母m可由c和密钥k按如下算
法得到:
m=c-k(mod 26)
按照密码体制的数学形式化定义,移位密码体制描述为五元组 (P,C,K,E,D),其中: P=C=K= Z26={0,1,2,…,25} E={ek: Z26 Z26| ek (m)=m +k (mod 26)}, D={dk: Z26 Z26| dk (c)=c k (mod 26)}。
2.4.1 序列密码
序列密码将明文划分成单个位(如数字0或1)作为加密 单位产生明文序列,然后将其与密钥流序列逐位进行 模2加运算,用符号表示为 ,其结果作为密文。加密 过程如图所示。
加密算法是: ci (mi ki ) mod 2 解密算法是: mi (ci ki ) mod 2
2.3 古典密码
2.仿射密码 移位密码的加密方法是将明文字母按某种方式进行移位,如著
名的恺撒密码。
在移位密码中,将26个英文字母依次与0,1,2,…,25对应,密文 字母c 可以用明文字母m和密钥k按如下算法得到:
c=m+k(mod 26)
给定一个密文字母c, 对应的明文字母m可由c和密钥k按如下算
结论:古典密码方案并不适合Kerckhoffs原则,算法的保密性 基于算法的保密。
Βιβλιοθήκη Baidu
2.4 对称加密体制
2.4.1 序列密码 2.4.2 分组密码 2.4.3 数据加密标准-DES
2.4 对称加密体制
在这种密码体制中,对于大多数算法而言,解密算法 是加密算法的逆运算,加密密钥和解密密钥相同,满 足关系:M= Dk(C)= Dk(Ek(M))。
非标准的象形文字, 这或许是目前已知最早的密码术实例。 古典密码的加密方法一般是采用文字置换,主要使用手工方式
实现,因此我们称这时期为密码学发展的手工阶段。 2. 机械阶段 到了20世纪20年代,随着机械和机电技术的成熟,以及电报和
无级电需求的出现,引起了密码设备的一场革命-发明了转轮 密码机,转轮机的出现是密码学的重要标志之一。 3.计算机阶段 计算机科学的发展刺激和推动了密码学进入计算机阶段。 1949年,C. Shannon发表了“保密系统的通信理论”,为密码 学的发展奠定了理论基础,使密码学成为一门真正的科学。
密文,试写出加解密的过程与结果。
解 加密时,把明文字母按长度为4进行分组,每组写成一行, 这样明文字母Joker is a murderer被写成4行4列,然后把这4行 4列按4,3,2,1列的次序写出得到密文。过程与结果如图2-3-
1所示。解密时,把密文字母按4个一列写出,再按的逆置换
重排列的次序,最后按行写出,即得到明文。
加密(Encryption):用某种方法伪装消息以隐藏它的内容的 过程。
加密算法(Encryption Algorithm):将明文变换为密文的变换 函数,通常用E表示,即E:SM→SC,表示为C=Ek(M)。
2.2 密码学基本概念
解密(Decryption):把密文转换成明文的过程。 解密算法(Decryption Algorithm):将密文变换为明文的变换
分析的攻击。这种攻击对密文没有进行任何破坏。 主动攻击(Active attack):攻击者非法侵入一个密码系统,采用
伪造、修改、删除、等手段向系统注入假消息进行欺骗。这种 攻击对密文具有破坏作用。 密码体制:由明文空间SM、密文空间SC、密钥空间SK、加密算 法E和解密算法D构成的五元组{ SM、SC、SK、E、D},称为密 码体制。
20 17 4 2 8 15 22 25 19
相应的密文是:VPXZGIAXIVWPUBTTMJPWIZITWZT
2.3 古典密码
4. 置换密码 置换密码是把明文中各字符的位置次序重新排列来得到密文的
一种密码体制。实现的方法多种多样。在这里,我们介绍一类 较常见的置换密码。 其加解密方法如下:把明文字符以固定的宽度m(分组长度)水平 地(按行)写在一张纸上(如果最后一行不足m,需要补充固定字
2.3 古典密码
在现代密码学中,假定密码方案遵从Kerckhoffs原则,因此, 对密文的破解取决于加密密钥。就古典密码而言,由于算法相 对简单,算法复杂度也不高,一种可能的攻击方法是对所有可 能的密钥进行尝试的强力攻击,称为穷举搜索攻击。
移位密码:密钥空间K= Z26={0,1,2,…,25},因此,最多 尝试26次即可恢复明文。
2 8 15 7 4 17 2 8 15 7 4 17
21 15 23 25 6 8 0 23 8 21 22 15
18 19 4 12 8 18 2 8 15 7 4 17 20 1 19 19 12 9
13 14 19 18 4 2 2 8 15 7 4 17 15 22 8 25 8 19
符),按1,2,…,m的一个置换交换列的位置次序,再按垂
直方向(即按列)读出即得密文。
解密就是将密文按相同的宽度m垂直在写在纸上,按置换的逆 置换交换列的位置次序,然后水平地读出得到明文。置换就是
密钥。
2.3 古典密码
例 设明文Joker is a murderer,密钥=(4 1)(3 2)(即(4)=1, (1)=4,(3)=2,(2)=3)), 即按4,3,2,1列的次序读出得到
法得到:
m=c-k(mod 26)
按照密码体制的数学形式化定义,移位密码体制描述为五元组 (P,C,K,E,D),其中:
P=C=K= Z26={0,1,2,…,25} E={ek: Z26 Z26| ek (m)=m +k (mod 26)}, D={dk: Z26 Z26| dk (c)=c k (mod 26)}。
2.3 古典密码
例 设n=6, 密钥是cipher,这相应于密钥k=(2, 8, 15, 7, 4, 17) ,明文是this cryptosystem is not secure。试用Vigenere密码对 其加密。
解 首先将明文按每6个分为一组,然后与密钥进行模26“加” 得:
19 7 8 18 2 17 24 15 19 14 18 24
第2讲 信息保密技术
密码学发展简史 密码学基本概念 古典密码 对称加密体制 非对称加密体制
2.1 密码学的发展简史
密码学有着悠久而迷人的历史,从古至今已有4000 多年的历史了,密码学的发展大致经历了三个阶段: 手工加密阶段、机械加密阶段和计算机加密阶段。
1. 手工加密阶段 早在公元前1900年左右,一位佚名的埃及书吏在碑文中使用了
2.2 密码学基本概念
密码学(Cryptology)研究进行保密通信和如何实现信息保密 的问题,具体指通信保密传输和信息存储加密等。
密码学包括两个分支:密码编码学(Cryptography)和密码分 析学(Cryptanalyst)。密码编码学研究怎样编码、如何对消息 进行加密,密码分析学研究如何对密文进行破译。
仿射密码:密钥空间为K={(k1,k2)| k1,k2Z26, 其中gcd(k1, 26)=1},k1可能的取值有1,3,5,7,9,11,15,17,19, 21,23,25,因此,最多尝试12×26次即可恢复明文。
对于古典密码方案而言,由于密钥空间非常有限,因此,很难 抵抗穷举搜索攻击。另一方面,就英文而言,一些古典密码方 案不能很好地隐藏明文消息的统计特征,攻击者也可以利用这 一弱点进行破译。
明文: Joker is a murderer 按4字母一行写出
joke
risa
murd
erer 按列写出的顺序 4 3 2 1 按列写出密文:eadrksreoiurjrme
密文: eadrksreoiurjrme 按4字母一列写出
ekoj
asir
drum
rere 交换列的顺序 4 3 2 1 按行写出明文: joker is a murderer
对称密码体制的开放性差,要求通信双方在通信之前 ,商定一个共享密钥,彼此必须妥善保管。
对称密码体制分为两类。一类是对明文的单个位(或 字节)运算的算法,称为序列密码算法,也称为流密 码算法(Stream Cipher)。另一类算法是把明文信息 划分成不同的块(或小组)结构,分别对每个块进行 加密和解密,称为分组加密算法(Block Cipher)。
明文(Message):待加密的信息,用M或P(Plaintext)表示。 明文的集合构成明文空间,记为SM={M}。
密文(Ciphertext):经过加密处理后的形式,用C表示。密文 的集体构成密文空间,记为SC={C}。
密钥(Key):用于加密或解密的参数,用K表示。密钥的集合 构成密钥空间,记为SK={K}。
2.3 古典密码
从古代到19世纪末提出和使用的密码称为古典密码
古典密码大多比较简单,一般可用手工或机械方式实 现其加密和解密过程,破译也比较容易。
1.移位密码 移位密码的加密方法是将明文字母按某种方式进行移位,如著
名的恺撒密码。
在移位密码中,将26个英文字母依次与0,1,2,…,25对应,密文 字母c 可以用明文字母m和密钥k按如下算法得到:
2.2 密码学基本概念
密码系统(Cryptosystem):用于加密和解密的系统。加密时 ,系统输入明文和加密密钥,加密变换后,输出密文;解密时 ,系统输入密文和解密密钥,解密变换后,输出明文。一个密 码系统由信源、加密变换、解密变换、信宿和攻击者组成。
主动攻击者
被动攻击者
信源 M
加密变换 C=Ek(M)
② 防止算法设计者在算法中隐藏后门。因为算法公开后,密码 学家可以研究分析是否存在漏洞,同时也接受攻击者的检验。
③ 有助于推广使用。当前网络应用十分普及,密码算法的应用 不再局限于传统的军事领域,只有算法公开,才可能被大多数 人接受并使用,同时,对用户而言,只需掌握密钥就可以使用 了,勿须应用非常方便。
C
K 密钥器
解密变换 M=Dk(C)
K 密钥器
信宿
2.2 密码学基本概念
柯克霍夫(Kerckhoffs)原则:密码系统的安全性取决于密钥 ,而不是密码算法,即密码算法要公开。
这是荷兰密码学家Kerckhoff于1883年在名著《军事密码学》中 提出的基本假设。遵循这个假设的好处是:
① 它是评估算法安全性的惟一可用的方式。因为如果密码算法 保密的话,密码算法的安全强度无法进行评估。