1.44k likes | 2.05k Views
第二章 密码学基础. 目录. 2.1 密码学的基本知识 2.2 对称密码体制 2.3 密码学的数学基础 2.4 公钥密码体制 . 密码学的基本概念. 密码学的基本概念. 由明文空间、密文空间、密码方案和密钥空间组成. 密码 系统. 未经过加密的原始信息称为明文 m ,明文的全体称为 明文空间 M. 明文. 是经过伪装后的明文 c 。全体可能出现的密文集合称为 密文空间 C. 密文. 密码学的基本概念 (2). 确切地描述了加密变换和解密变换的具体规则. 密码 方案. 加密算法 对明文进行加密时所使用的规则的描述 E (m). 解密算法
E N D
目录 • 2.1 密码学的基本知识 • 2.2 对称密码体制 • 2.3 密码学的数学基础 • 2.4 公钥密码体制
密码学的基本概念 密码学的基本概念 由明文空间、密文空间、密码方案和密钥空间组成 密码 系统 未经过加密的原始信息称为明文m,明文的全体称为明文空间 M 明文 是经过伪装后的明文c。全体可能出现的密文集合称为密文空间C 密文
密码学的基本概念(2) 确切地描述了加密变换和解密变换的具体规则 密码 方案 加密算法 对明文进行加密时所使用的规则的描述E(m) 解密算法 对密文进行还原时所使用的规则D(c) 加密和解密算法的操作在称为密钥(k)的元素控制下进行。密钥的全体称为密钥空间(K) 密钥
加密密钥Ke 解密密钥Kd 明文 m 密文 c 明文 m 加密算法 解密算法 窃听 干扰 密码分析者 保密通信系统的基本模型 有了密钥的概念后,加密的过程:c=EKe(m),解密的过程:m=DKd(c),其中m∈M,c∈C
被动攻击和主动攻击 • 密码分析者(Cryptanalyst)又称攻击者,可采用搭线窃听等方式直接获得未经加密的明文或加密后的密文,并分析得知明文。这种对密码系统的攻击手段称为被动攻击(Passive attack),特点:不破坏原始信息 • 攻击者还可以采用删除、更改、增添、重放、伪造等手段主动向系统注入假信息,这种对密码系统的攻击手段称为主动攻击(Active attack)
密码体制的分类 • 1. 按照密码的发展历史分类密码可分为古典密码和近现代密码 • 2.按照需要保密的内容分类 根据密码体制的密码算法是否需要保密,可分为受限制的算法和基于密钥的算法 • 1883年Kerchoffs第一次明确提出了编码的原则,即加密算法应建立在算法的公开不影响明文和密钥的安全的基础上
密码体制的分类 • 3. 根据加密和解密所使用的密钥是否相同对称密码体制公钥密码体制:也称为非对称密码体制
对称密码体制 • 对称密码体制 • Symmetric Key Cryptosystem 加密密钥=解密密钥 密钥必须保密
公钥密码体制 • 公钥密码体制 • Public Key Cryptosystem 加密密钥≠解密密钥 • 加密密钥为公钥(Public Key),公钥无需保密 • 解密密钥为私钥(Private Key)
密码体制的分类 • 4. 根据对明文的处理方式 分组密码算法和流密码算法 • 5. 根据是否能进行可逆的加密变换分为单向函数密码体制和双向变换密码体制
密码学的发展历程 密码学的发展历程 • 近现代密码体制 • Shannon的《保密通信的信息理论》 • 古典密码体制 • 密码学的新方向 • Diffie和Hellman《密码学的新方向》
密码分析与密码系统的安全性 密码分析研究如何分析和破解密码 密码系统的安全性取决于 (1) 所使用的密码算法的保密强度 (2) 密码算法以外不安全的因素 因此必须同时完善技术与管理上的要求,才能保证整个密码系统的安全
穷举分析攻击(Exhaustive attack) 密码分析的方法 统计分析攻击(Statistical analysis attack) 数学分析攻击(Mathe-matical analysis attack) 密码分析的方法
现代加密算法的设计目标是要能抵抗住选择明文攻击现代加密算法的设计目标是要能抵抗住选择明文攻击 密码分析攻击的类型 • 假设密码分析者已经知道加密算法,根据密码分析者对明文、密文等资源的掌握程度: • 1)唯密文攻击(Ciphtext-only attack) • 2)已知明文攻击(Plaintext-known attack) • 3)选择明文攻击(Chosen-plaintext attack) • 4)选择密文攻击(Chosen—Ciphtext attack)
一般认为,密码系统只要能达到计算上安全就是安全的一般认为,密码系统只要能达到计算上安全就是安全的 密码系统安全性的层次 • 无条件安全(Unconditionally Secure) • 计算上安全(Computationally Secure) • 可证明安全(Provable Secure)
目录 • 2.1 密码学的基本知识 • 2.2 对称密码体制 • 2.3 密码学的数学基础 • 2.4 公钥密码体制
对称密码体制 • 对称密码体制,即加密密钥与解密密钥相同的密码体制,这种体制只要知道加(解)密算法,就可以反推解(加)密算法 • 在1976年公钥密码算法提出以前的所有加密算法都是对称密码体制 • 对称密码体制可分为分组密码和流密码 • 本节将介绍的古典密码、分组密码和流密码
古典密码 采用的加密思想:替代和置换 替代是将明文中的每个元素映射为另一个元素,明文元素被其他元素所替代而形成密文 替代 置换(换位)是对明文中的元素进行 换位排列,可以证明置换是替代的一 种特殊形式 置换 对于明文“dog”,使用替代技术加密:结果可能是“eph”,使用置换技术加密:结果可能是“ogd”
讨论下面密码算法的加密思想 • Scytale 密码 • 棋盘密码
弗纳姆密码 例: Aice欲将明文m=‘OK’,借由弗纳姆密码加密成密文c,传递给Bob。假设密钥为k=‘DA’。 • 加密: 明文 密钥 密文 密文 • 解密: 密钥 明文 ci=(mi+ki) mod 2 表示XOR运算,即
几种典型的古典密码 • 移位密码(又称凯撒密码) • 一般单表替代密码 • 仿射密码 • 密钥短语密码 • 维吉尼亚(Vigenere)密码 • 希尔(Hill)密码 • 置换密码
移位密码 • 加密变换:Ek(m)=m+k(mod 26) m∈M, k∈K • 解密变换:Dk(c)=c-k(mod 26) c∈C, k∈K • 很容易利用穷举法将密文解密,最多尝试25次,就能找到密文对应的明文信息 将明文每个字母前移三位
移位密码加密示例 密钥: 密钥产生)Alice与Bob协定编码方式为明文字母后移4位,即加密密钥及解密密钥同为K=4。 加密: Alice将明文“gaul is divided into three part”转为数字代码:(6,0,20,11,8,18,3,8,21,8,3,4,3,8,13,19,14,19,7,17,4,4,15,0,17,19)。使用加密函数E(m)m+k=m+4(mod 26)计算得:(10,4,24,15,12,22,7,12,25,12,7,8,7,12,17,23,17,23,11,21,8,8,19,4,21,23)即密文“K,E,Y,P,M,Z,M,H,I,H,M,R,X,R,X,L,V,I,I,T,E,V,X”。
2.一般单表替代密码 • 明文消息中的每个字母不是同时移动相同的位数,而是根据一张替代表使用随机替换 一张一般单表替代密码的映射表 c=Ek(m)=π(m) m=Dk(c)=π-1(c)
3. 仿射密码 • 加密变换为: • c=Ek(m)= (k1m+k2) mod 26 • 相应的解密变换为: • m=Dk(c)=k1-1(c-k2) mod 26 • 注意:k1必须和26互素,如果不互素,例如取k1=2,则明文m=mi和m=mi+13两个字符都将被映射成同一个密文字符
仿射密码示例 例:Alice欲将明文m=“affine”用仿射密码加密,传递给Bob,Bob来解读。 密钥: Alice与Bob事先协定一把密钥K=(3,8)其中gcd(3,26)=1 加密: 解密:
密钥短语密码 • 密钥短语密码选用一个英文短语或单词作为密钥,如密钥为university时,先去掉重复字母i,成为universty
总结:单表替代密码的特点 • 以上几种密码都是单表替代密码,特点如下: 明文和密文是一对一的映射关系。Ef (x0,x1,x2,…)=(f(x0),f(x1),f(x2),…) 这个特点使其密文中单字母出现的频率分布与明文中的相同,因此任何单表替代密码都经不起统计分析。
对单表加密算法的统计分析 另外最常出现的双字母组合为: th(3.15%),he(2.51%),an(1.72),in(1.69%),er(1.54%),re(1.48%),es(1.45%), on(1.45%),ea(1.31%),ti(1.28),at(1.24%),st(a.21%),en(1.20%),nd(1.18%)等。 最常出现的三字母组合(Trigram)为: the,ing,and,her,ere ,ent,tha,…。
多表替代密码 • 多表替代密码使用从明文字母到密文字母的多个映射来隐藏单字母出现的频率分布 • 同一个明文字母将对应不同的密文字母 Ef (x0,x1,x2,…)=(f0(x0),f1(x1),f2(x2),…)
维吉尼亚(Vigenere)密码 • 维吉尼亚密码:一种典型的多表替代密码,该密码体制有一个参数n,表示采用n位长度的字符串(例如一个英文单词)作为密钥。 • 设密钥k=k1k2…kn,明文M=m1m2…mn,则加密变换为: • Ek(m1,m2,…,mn)=(m1+k1mod 26, m2+k2mod 26 ,…,mn+knmod 26 )
维吉尼亚密码举例 • 例2.2 设明文为“killthem”密钥为“gun”,试用维吉尼亚密码对明文进行加密。 • 加密密钥:k=gun=(6,20,13) 因 密文为:hcyrnvwg
破解维吉尼亚密码 • 密文为:hcyrnvwgcxgtu h n c u c v x y w g r g t 关键是如何确定密钥长度n
希尔密码 • 希尔密码:利用矩阵变换来对信息实现加密。 • 数学定义:设m是一个正整数,令M=E=(Z26)m,密钥Km×m={定义在Z26上的m×m矩阵},其中K的行列式值必须和26互素,否则不存在K的逆矩阵K-1。 • 对任意的密钥Km×m,定义加密/解密变换为Ek(x)= Km×m·x mod 26Dk(y)= K-1m×m·y mod 26
希尔(Hill)密码举例 • 密钥产生: 首先决定所用矩阵的大小,譬如是2×2 其中E的行列式值detE必须与26互素,否则不存在E的反矩阵。 矩阵形态 • 明文: m=‘Hill’ • 加密过程: 密文 c=‘pbwz’
如何求矩阵的逆矩阵 • A*为A的伴随矩阵。
Hill密码解密过程 • 解密矩阵 计算加密矩阵的逆矩阵,再进行模运算(mod 26), 得解密矩阵 • 解密过程
常见的置换密码 • 置换(Permutation)密码通过改变明文消息中各字符出现的相对位置,但明文消息字符本身的取值不变。置换密码的一个显著特点是它的明文空间和密文空间完全相同 • 列置换密码 • 螺旋置换密码
置换密码 • 置换密码:Ek(dog)=ogd可用如下希尔密码实现 这证明了置换密码可转换为替代密码
古典密码分类汇总图 移位密码 仿射密码 单表替代密码 密钥短语密码 一般单表替代密码 替代密码 维吉尼亚密码 多表替代密码 希尔密码 置换密码
2.2.2 分组密码 • 分组密码体制是目前商业领域中比较重要而流行的一种加密体制,它广泛地应用于数据的保密传输、加密存储等应用场合。 • 加密时,先对明文分组,每组长度都相同,然后对分组加密得到等长的密文,分组密码的特点是加密密钥与解密密钥相同。 • 如果明文不是分组长的倍数,则要填充
分组密码算法的要求 • 分组长度m足够大 • 密钥空间足够大 • 密码变换必须足够复杂 强化密码算法的措施 • 将大的明文分组再分成几个小段,分别完成各个小段的加密置换,最后进行并行操作 • 采用乘积密码技术。乘积密码就是以某种方式连续执行两个或多个密码变换
数据加密标准DES • DES是一种分组密码算法,它将明文从算法的一端输入,将密文从另一端输出。 • 由于采用的是对称密钥,因此加密和解密使用相同的算法和密钥 • 并且加密和解密算法是公开的,系统的安全性完全依赖于密钥的保密
DES分组的原理 • DES对数据进行加密时,首先将数据切分成64位的明文分组 • 它使用的密钥为64位,但有效密钥长度为56位(另有8位用于奇偶校验)。输出的密钥分组也是64位 • 解密时的过程和加密时的类似,但密钥的顺序正好相反
DES的加密过程 • (1)明文初始置换 • (2)密钥初始置换 • (3)生成16个48位的子密钥 • (4)明文扩展置换 • (5)S盒替代 • (6)P盒置换 • (7)末置换 • (8)DES的解密
明文初始置换 初始置换 M=m1m2,……m62m63,m64 IP(M) M’=m58m50,……m23m15,m7 由于M(64位) =0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 对M运用IP,故有IP(64位) = 1100 1100 0000 0000 1100 1100 1111 1111 1111 0000 1010 1010
将明文分成左右两半 • IP(64位) = L0(32位) + R0(32位) • 故 • L0 (32位) = 1100 1100 0000 0000 1100 1100 1111 1111 R0 (32位) = 1111 0000 1010 1010 1111 0000 1010 1010