第 2 章 密码学概论

47
第 2 第 第第第第第 第第第第第第第第第第第第第第第第第 第第第第第第第第第第第第第 第 ,, 第第第第第第第第 第第第第第第第第第第第第第第第第第第 ,。 第第第第第第第第 第第第第第第第第第第 第第第第第第第第第第 第第 ,,, 第第第第 一。 第第第第第第第第第第第——第第第第第第第第第第第第第第第第 第第第第第第第第第第第 第第第第第第第第第第第第 ,。

description

第 2 章 密码学概论. 随着计算机病毒所带来危害的日益加剧,计算机犯罪事件不断的增加,黑客攻击的日益频繁,信息安全已成为人们不得不面对的问题。 互联网的广泛使用,全世界都在自投入网,如果不加强网络安全,则将被一网打尽。 作为信息安全的核心技术 —— 密码技术成为人们研究和关注的重点。 有关信息加密技术的研究,特别要注意重视自主开发。. 对于 DES 算法加密产品,美国中央情报局对密钥位在几年前曾作过预测和比较:. 美国政府作出限制密钥为 56bit 位的产品出口,而去年开始放宽出口限制,但其背景是什么呢? - PowerPoint PPT Presentation

Transcript of 第 2 章 密码学概论

Page 1: 第 2 章 密码学概论

第 2 章 密码学概论 随着计算机病毒所带来危害的日益加剧,计算机犯罪事件不断的增加,黑客攻击的日益频繁,信息安全已成为人们不得不面对的问题。 互联网的广泛使用,全世界都在自投入网,如果不加强网络安全,则将被一网打尽。 作为信息安全的核心技术——密码技术成为人们研究和关注的重点。 有关信息加密技术的研究,特别要注意重视自主开发。

Page 2: 第 2 章 密码学概论

对于 DES 算法加密产品,美国中央情报局对密钥位在几年前曾作过预测和比较:40bit 位 56bit 位

400 美元 5 小时 38 年300 百万美元 24 秒 10 天1 千万美元 7 秒 13 小时1 亿美元 0.2 秒 12 秒

美国政府作出限制密钥为 56bit 位的产品出口,而去年开始放宽出口限制,但其背景是什么呢?对密钥为 56bit 位 DES 只要化 25 万美元,在不到 3 天就可破译。

Page 3: 第 2 章 密码学概论

密码技术涉及哪些内容? 下面通过简单例子来引入。 Alice 和 Bob 想在晚上一起出去,但定不下来是去电影院还是歌剧院,但他们达成协议,通过掷硬币来决定 如果他们是通过电话来执行上述协议,显然无法公平实现,因为一方无法验证对方掷硬币的结果。 如果在协议中加入密码技术,可形成适合在电话上工作的形式。 把密码技术看成函数 f(x):Z 到 Z, 且具有性质: (1) 对任意函数,由 x 计算 f(x) 是容易的 , 而给出 f(x) ,要找出对应的 x 是难的; (2) 找出一对整数 (x, y), 满足 x≠y 而 f(x)=f(y) 是难的。 密码技术将研究探讨容易,难的的数学描述,建立量化表示。

Page 4: 第 2 章 密码学概论

电话掷币 1.Alice 选择一个大随机数 x ,并计算 f(x);然后通过电话告诉 Bob f(x) 的值; 2.Bob 告诉 Alice 自己对 x 的奇偶猜测; 3.Alice 告诉 Bob x 的值; 4.Bob 验证 f(x) 并查看所做猜测是否正确。 在开放的计算机和通信网络中保证安全通信,采用密码技术是有效且是唯一可行的方法。 电子商务,事务处理,等信息系统对安全的需求,导致了很多密码系统和协议的产生。

Page 5: 第 2 章 密码学概论

2.1 信息加密的基本概念 密码学分为密码编码学和密码分析学两个分支。 密码编码学是对信息进行编码实现隐蔽信息的一门学问 密码分析学则是研究分析破译密码的学问 两者互相对立,又互相促进向前发展。

Page 6: 第 2 章 密码学概论

对信息进行编码可以隐蔽和保护需要加密的信息,使未授权者不能提取信息。 被隐蔽的信息称为明文, 编码后明文变换成另一种隐蔽形式,称为密文。 这种变换过程称为加密 其逆过程,即由密文恢复成原明文的过程称为解密。 对明文进行加密时所采用的一组规则称为加密算法 对密文进行解密时所采用的一组规则称为解密算法。

Page 7: 第 2 章 密码学概论

加密和解密算法的操作通常都是在一组密钥控制下进行的,分别称为加密密钥和解密密钥。 密钥是密码体制安全保密的关键,它的产生和管理是一个重要研究课题。 在一个密码体制中,如果加密密钥和解密密钥相同,或从一个易得到另一个,就称其为单钥密码体制或对称密码体制。 如果在密码体制中,加密密钥和解密密钥不同,且从一个难于推出另一个,则称为双钥密码体制或非对称密码体制, 1976 年由 Diffe 和 Hellman 等人所开创的新体制

Page 8: 第 2 章 密码学概论

采用双钥体制的每个用户都有一对选定的密钥:一个是可以公开的,另一个则是秘密的。 公开的密钥可以进行注册公布,因此双钥密码体制又称为公钥密码体制。 其主要特点是将加密和解密能力分开,从而实现多个用户加密的信息只能由一个用户解读,或只能由一个用户加密信息而使多个用户解读。

Page 9: 第 2 章 密码学概论

在信息传输和处理系统中,除了确定的接受者外,还有非授权者 他们通过各种办法(如搭线窃听、电磁窃听、声音窃听等)来窃取机密信息。 他们虽然不知道系统所用的密钥,但通过分析可能从截获的密文推出原来的明文,这一过程称为密码分析。 研究如何从密文推出明文、密钥或解密算法的学问称为密码分析学。

Page 10: 第 2 章 密码学概论

为了保护信息的保密性,抗击密码分析,信息加密系统应满足如下要求: (1)系统至少为实际上不可破,即,从截获的密文或某些已知明文密文对,要决定密钥或任意明文在计算上是不可行的 (2)系统的保密性只依赖于密钥的保密。 (3) 加密和解密算法适用于所有密钥空间中的元素。 (4)系统便于实现和使用方便。

Page 11: 第 2 章 密码学概论

为了防止信息被篡改、删除、重放和伪造,就要求系统具有对发送的信息验证的能力,使接收者或第三者能够设别和确认信息的真伪。 实现这类功能的系统称为认证系统。 信息认证要求能保证任何不知密钥的人不能构造出一个密文,使确定的接收者脱密成一个可理解的信息。 信息的完整性,它表示在干扰条件外,系统保持恢复信息和原来发送信息一致性的能力,实际中常借助于检错和纠错技术来保证信息的完整性。 信息系统安全的中心内容是保证信息的保密性、认证性和完整性。

Page 12: 第 2 章 密码学概论

2.2 单表代换密码 2.2.1代换密码概述 令 A 表示明文字母集,它有 q 个字母或字符,可以抽象地用 Zq={0,1,2,…, q-1} 来表示。 在加密时,将明文分成长为 L 的信息单元,称为明文组,用 m 表示,即m=(m0m1…mL-

1)(mi Z∈ q) 。 通常称 m 为 L- 报文,它是定义在 Zq

L 上的随机变量 (ZqL 是 Zq 上的 L维向量空间 ) 。明文空间M={m|m Z∈ q

L} 。

Page 13: 第 2 章 密码学概论

令 A' 表示密文字母集,它有 q' 个字母或字符,可用 Zq'={0,1,2,…, q'-1} 来表示。密文单元为c=(c0c1…cL'-1)(ci Z∈ q') 。 c 是定义在 Zq’

L’ 上的随机变量( Zq’L’ 是 Zq' 上的 L'维向量空间)。密文空间 C={c|c Z∈ q’

L’}. 当 A=A' 时,有 C= {c|c Z∈ q

L’} ,即明文和密文由同一字母表构成。 加密变换是由明文空间到密文空间上的映射 f: M→C(m M∈ , c C)∈ 当 f 是一一对应映射时,存在逆映射 f-1 ,使

)C,M()()( 11 cmmmffcf

Page 14: 第 2 章 密码学概论

加密变换通常是在密钥控制下变化的,即 c=f(m,k)=Ek(m) 其中 k Y∈ , Y 为密钥空间。 一个密码系统就是在 f 作用下由→的映射,或以中的元素代替中的元素,在此意义下称这类密码为代换密码。 当 L=1时,称为单字母代换, L>1时,称为多字母代换。

Page 15: 第 2 章 密码学概论

一般选择 A=A' ,即明文和密文字母表相同。 若 L=L' ,则映射 f 可以构造成一一对应,密码没有数据扩展。 若 L<L' ,则有数据扩展,可使映射 f 为一对多的,即明文组可能找到多于一个密文组来代换,称为多名代换密码。 若 L>L' ,则明文数据将被压缩,此时每个明文组无法找到唯一的只与它相对应的密文组,映射 f 是不可逆的,从密文无法完全恢复成明文信息 在信息加密时必须是 L≤L' 。 而 L>L' 的变换可用在数据认证系统。

Page 16: 第 2 章 密码学概论

2.2.2 几种代换密码 在代换密码中,当 A=A',q=q',L=L'时,如果明文的所有字母都用一个固定的明文字母表到密文字母表的映射,即 f : Zq→Zq ,则称这种密码为单表代换。 令明文m= m0m1… ,则其相应密文为: c=E(m)=c0c1…=f(m0) f(m1)… 若明文字母表 A=Zq={0,1,…,q-1} ,则相应的密文字母表为 A'={f(0), f(1),…f(q-1)} ,

A' 是 A 的某种置换。

Page 17: 第 2 章 密码学概论

1. 加法密码 加法密码表达式为: Ek(i)=(i+k)≡j mod q 0≤i,j<q, Y={k|0≤k<

q} 其中密钥空间元素个数为 q k=0 为恒等变换。 解密变换为: Dk(j)= Eq-k(j)≡j+q-k≡i+k-k≡i mod q 密文字母表是将明文字母表循环左移 k 位 由于 k 只能取 25 个不同数字(除去 k=0的恒等变换),故安全性极差。

Page 18: 第 2 章 密码学概论

例 2.1:对英文 26个采用加法密码,选定密钥为 k=5,则有代换表: A: a b c d e f g h i j k l m n o p q r s t u v w x y z A' : F G H I J K L M N O P Q R S T U V W X Y Z A B C D E 明文m=This is aprivate conversation 密文 c=YMNX NX FUWNAFYJ HTSAJWXFYNTS

Page 19: 第 2 章 密码学概论

2.乘法密码 乘法密码的加密变换为 Ek(i)=ik≡j mod q 0≤i,j<q 其密文字母表是将明文字母表按下标每隔 k位取出一个字母排列而成。 例 2.2 :对英文 26 个采用乘法密码,选定密钥为 k=7 ,则有代换表: A =abcdefghijklmnopqrstuvwxyz A'=AHOVCJQXELSZGNUBIPWDKRYFMT 对明文m=multiplicative cipher 有密文c=GKZDEBZEOADERC OEBXCP

Page 20: 第 2 章 密码学概论

确保 Ek 是一一对应的。 不加证明地给出定理: 定理 2.1 当且仅当 (k,q)=1 时, Ek才是一一对应的。 由定理可知,乘法密码的密钥个数为

(q)((q) 表示小于 q 且与 q 互素的个数,称为整数 q 的欧拉函数) 除去 k=1这一恒等变换,可供选择的密钥为 (q)-1 个。

Page 21: 第 2 章 密码学概论

对于 q=26 ,我们有 (q)=12 ,故除去 k=1恒等变换,可供选择的密钥只有 1,5,7,9,11, 15,17,19,25共 11 个

保密性极差

为素数其中若 i

r

ii ppq i ,

1

r

i ipqq

1)11()(则有

Page 22: 第 2 章 密码学概论

3.仿射密码 将加法密码和乘法密码进行组合就可得到更多数量的不同密码。按公式 Ek(i)=ik1+k0≡j mod q 0≤i, j,k1, k0<q , 加密的称为仿射密码。 当 (k1,q)=1时, Ek 是一一对应的。 当 k0=0时,即为乘法密码,当 k1=1时,即为加法密码。 q=26时, k1 有 12种选法, k0 有 26种选法,因而 k0、 k1共可组合成 12×26=312种选法 除去恒等变换,可有密钥数 311种 对于用手工进行穷举,需要花费相当的时间和精力。

Page 23: 第 2 章 密码学概论

4. 密钥短语密码 密码表是从正常顺序字母表按某种规律变换而成 优点是便于记忆,缺点是密钥量小,保密强度低。 如果代换字母表由 26 个字母随机抽取排列,则共有 26!种不同的排列,即共有

26!个不同密钥。 26!≈4×1026 ,是一个很大的量。 用穷举法进行密码分析,即便利用现代计算机,也是很困难的

Page 24: 第 2 章 密码学概论

为了保留随机代换密码密钥量大的优点,同时又克服密钥不便记忆的缺点,就产生了密钥短语密码。 基本思想是任意选择一个英文短语作为密钥,去掉重复字母后,将其依次写在明文字母表的下面,然后将字母表中没有在短语中出现的字母依次写在此短语后面,就可构造出一个字母代换表。

Page 25: 第 2 章 密码学概论

例 2.3 :取密钥短语为 key phrase cipher ,则其代换表为 A =a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,x,t,z A'=K,E,Y,P,H,R,A,S,C,I,B,D,F,G,J,L,M,N,O,T,U,V,W,X,Z 若明文m=key phrase cipher 则密文 c=BHX LSNKOH YCLSHN 密钥短语是可以任意选择的,故可构成的代换字母表的数量是极大的 足以对付密码分析者用穷举法进行的攻击 同时密钥短语既可任意选择,又便于记忆

Page 26: 第 2 章 密码学概论

2.2.3 密码分析的统计方法 密钥短语密码与其他单表代换密码一样,每个字母都是用另一个字母固定代换 因而明文中所用语言的各种统计特性都会反应到密文中, 这样只要所截获的密文具有适当长度,足以反映出所用语言的某些统计特性, 利用统计方法就可以很快破译单表代换密码。

Page 27: 第 2 章 密码学概论

表 4. 1 字母统计表字母 a B c d e f g h i j K l m频率 0.0356 0.0139 0.0279 0.0378 0.1304 0.0289 0.0199 0.0528 0.0627 0.0013 0.042 0.0339 0.0249字母 n o p q r s t u V w X y z频率 0.0707 0.0797 0.0199 0.0012 0.0677 0.0607 0.1045 0.0249 0.0092 0.0149 0.0017 0.0199 0.0008

字母 e 出现的频率最高, z 出现的频率最低。依据各字母出现频率大小的不同,可将 26 个字母划分为五组,如下表所示:表 4. 2 英文字母分类表

Ⅰ 类 极高频率字母集 EⅡ 类 次高频率字母集 t a o i n s h rⅢ 类 中等频率字母集 d lⅣ类 低频率字母集 c u m w f g y p bⅤ 类 极低频率字母集 v k j x q z

Page 28: 第 2 章 密码学概论

利用统计分析方法,破译单表代换密码的方法是: 首先根据密文的统计分析得到单字母频率分布表,将密文字母按频率分类,并与明文字母分类表进行比较,得到初步了解; 通过研究双字母、三字母或四字母的密文组合来区分元音和辅音字母,从而确定表示元音的那些密文字母; 采用猜字法,像 beginning,committee, people,

tomorrow等在密文中也会以某种形式出现,由此进行试验。 综合利用英语本身的各种统计特性,对单表代换进行统计分析,破译这类单表密码。

Page 29: 第 2 章 密码学概论

2.3 多表代换密码多 表 代 换 密 码 就 是 用 一 个 以 上 代 换 表 依 次 对 明 文

字 母 进 行 代 换 的 加 密 方 法 。 令 明 文 字 母 表 为 Z q ,),,( 21 为 代 换 系 列 , )( 21 mmm 为 明 文 字 母 序 列 ,

则 相 应 的 密 文 字 母 序 列 是 :))()(()()( 2211 mmmmEc k

若是非周期的无限序列,则相应的密码为非周期多表代换密码。这类密码对每个明文字母都采用不同的代换表(或密钥),称为一次一密钥密码,是理论上唯一不可破的密码,它可以使明文特点完全隐蔽,需要密钥量和明文信息长度相同而难于广泛使用

Page 30: 第 2 章 密码学概论

当 d=1时就退化为单表代换

为 了 减 少 密 钥 量 , 在 实 际 应 用 中 多 采 用 周 期 多 表 代 换密 码 , 即 代 换 表 个 数 有 限 , 重 复 使 用 , 此 时 代 换 序 列为 ),,,,,,( 2121 dd , 相 应 于 明 文 m 的 密 文 为

))()()()()()(()()( 22112211 dddddddk mmmmmmmmEc

Page 31: 第 2 章 密码学概论

2.3.1 几种多表代换密码 1.维吉尼亚密码 以加法密码为基础的周期代换密码。

d 个 代 换 表 d 21 由 d 个字 母 序列 给 定 的 密 钥dqd ZkkkK ),,( 21 决 定 , 其 中 k i( i= 1 ,… d )确 定 明 文 第

i+ td 个 字 母 ( t 为 正整 数 )的 移 位次 数 ,即c i + t d = E k i(m i + t d )= m i + t d + k i m o d q

称 K 为用户密钥 , 其周期地延伸就给出了整个明文加密所需的工作密钥。

Page 32: 第 2 章 密码学概论

例 2.4:令 q=26,m=user key and working key,用户密钥 K=RADIO,即 d=5,则有: 明文m=user key and working key 密钥 K=RADI ORA DIO RADIORA DIO 密文 c=LSHZ YVY DVR NOUSWEG NMM

Page 33: 第 2 章 密码学概论

2.博福特密码 博福特密码是按 mod q减法运算的一种周期代换密码,即 ci+td=Eki(mi+td)= ki -mi+td+ki mod q 博福特密码以 ki 加密相当于下式的维吉尼亚密码加密: ci+td=((q-1)-mi+td+ki)mod q

Page 34: 第 2 章 密码学概论

3.弗纳姆密码 周期代换密码保密性随周期 d 加大而增加。 当 d 的长度和明文一样长时就是滚动密钥。 如果其中所采用的密钥不重复就是一次一密体制。 一般密钥可取自一本书或一篇报告作为密钥源 当字母表字母数 q=2时的滚动密钥密码称为弗纳姆密码。 该密码方案是先将英文字母编成五单元波多电码(见下表),然后随机选择二元数字流作为密钥,用 K=k1k2…kl…(kl {0,1}) 表示。 明文字母表示为 (ki {0.1}∈ 。

Page 35: 第 2 章 密码学概论

表 4.3 波多电码A 11000 B 10011 C 01110 D 10010E 10000 F 10110 G 01011 H 00101I 01100 J 11010 K 11110 L 01001M 00111 N 00110 O 00011 P 01101Q 11101 R 01010 S 10100 T 00001U 11100 V 01111 W 11001 X 10111Y 10101 Z 10001 α 01000 β 00010γ 11111 δ 11011 ε 00100 η 00000注:α β γ → δ → ε η:字间隔, :回车, :数字 字母, :字母 数字, :空格行; :空格

Page 36: 第 2 章 密码学概论

弗纳姆密码的加密运算就是将 k 和 m 的相应位逐位模 2相加,即 ci=mikimod2 i=1,2…, 解密时,可用同样的密钥对密文数字同步地逐位模 2相加,便可恢复出明文的二元码序列,即 mi=cikimod2 i=1,2…,

Page 37: 第 2 章 密码学概论

2.3.2密码分析 单表代换可以依靠语言的统计特性来破译, 多表代换下,原来的统计特性通过多个表的平均作用而被隐蔽起来,因而它的破译比单表要难。 在周期为 d 的多表代换中,字母表中的每个字母将根据它在明文字母序列中的位置而有 d种不同的代换字母。 在多表代换下,密文字母的频率分布起伏不象明文的起伏那样明显,而且随着代换表数 d 的加大而更加趋于平坦。 但可以通过定量分析,来研究多表代换与单表代换的差别。

Page 38: 第 2 章 密码学概论

2.4 多字母代换密码 2.4.1 几种多字母函数 1.普莱费尔密码 这是一种著名的双码代换密码,它的密钥由 5×5阶矩阵给定,将英文字母随机填入阵中,将 I 和 J 算作一个字母。 可选定一个密钥字,除去重复字母后依次按行填入阵中,而后将字母表中还没用上的各字母继续按行填入阵中,就得到密钥阵 K 。

Page 39: 第 2 章 密码学概论

将明文划分成长为 L=2 的组或字母对,用(m1,m2) 表示,它们在密钥阵K 中的位置用(kij,kln), 假设 (m1≠m2) ,则 (m1,m2)=(kij,kln)的密文字母为:

njlikknjlikknjlikk

cc

jlji

niji

ljin

,且若,且若,且若

),(),(

),(),(

,1,1

1,1,21

式中,下标指数按模 5运算。如果 m1=m2 ,则可在 m1 和 m2之间插入哑字母如 x ,则明文变为…m1xm2… 。

Page 40: 第 2 章 密码学概论

例 2.5 :明文 m=cryptographic system ,取 cryptography 为密钥字,则其密钥阵就是:

ZXWVUSQNMLKIFEDBHAGOTPYRC

kK ij )(

相应加密结果是:m=cr yp to gr ap hi cs ys te mxc=RY PT CB EG HY IQ TL TN RK QV

Page 41: 第 2 章 密码学概论

2.矩阵变换密码令明文字母表为Zq,若采用L个字母为单位进行

代换,则多字母代换为映射 Lq

Lq ZZf : 。

若映射是线性变换,可用 Zq 上的 L×L矩阵 T 表示若 T 是满秩的,则变换为一一对应映射,存在逆变换 T-1 ,使 TT-1=T-1T=I 。将 L 个字母的数字表示为 Zq 上的 L维向量 m=(m1

,m2,…,mL) ,则相应的密文向量 c=(c1,c2,…,cL) 为 mT=c 。把 T-1 作为解密矩阵,可由 c恢复出相应明文 cT-1=m

Page 42: 第 2 章 密码学概论

例 2.7 :设 q=26 , L=4 ,选满秩阵

4510511459689610568

T

对明文 m=cryptographic system 的前 4 个字母组变换成向量 x=(4,25,23,6)由 xT(mod26) 得密文 y=(3,8,2,25) ,相应密文字母为 ASIR类似可依次对后面明文组加密。若最后一组明文不足 4 个字母,就加上哑字母(如 x)凑足 4 个。最后可求得密文为 ASIR QGLT WCFW BMSK IPWG。

加密时,先将字母按下述乱序表变换成 Z26 上的整数:Abcdef ghijk lmn opqrs t u vwxy z3 15 4 10 1 13 7 24 2 16 9 14 5 12 20 6 18 25 8 19 22 21 0 17 23 11

Page 43: 第 2 章 密码学概论

加密中, 4 个字母为一个整体,变换其中任一个明文字母都会使相应的 4 个密文字母受到影响。例如,将 cryp变为 crmp 所得密文就由 ASIR变为 YUSK 。

该例的逆阵

2525112261852201120252223

1T

由 yT-1(mod26) 可得到 x, 由 x 及乱序表就可恢复出明文。

Page 44: 第 2 章 密码学概论

3.扩表法 扩表法就是将字母表 Zq扩展为 Zq

L ,然后再采用单表代换。 将 Zq 上的 L 个字母 m0,m1…,mL-1 表示成

ZqL 中的整数

x=m0+m1q+m2q2+…+mL-1qL-1

任一 L 长字母组都变成 ZqL={0,1,…,qL-1}上的某个元素,然后再对该元素加密。

Page 45: 第 2 章 密码学概论

例 2.8 :英文字母表 Z26={0,1,…,25} ,采用双码扩表加密,则 Z262={0,1,…,675} 。

明文字母对 is 可表示成 Z262 中的数字 x=8+

18×26=476 。 对 Z26

2 采用仿射变换,取 k0=576,k1=129 y≡129×476+576≡464 ≡17×26+22(mod675) , 相应密文字母为 WR 。 解密时先将密文字母WR变换成中的元素,即 y=17×26+22=464 ,而后按加密的反变换求解出 x=18×26+8 。

Page 46: 第 2 章 密码学概论

2.4.2密码分析 同样可以进行密码分析

Page 47: 第 2 章 密码学概论

作业: P71 1,2,3,4