密码技术基础.ppt
《密码技术基础.ppt》由会员分享,可在线阅读,更多相关《密码技术基础.ppt(100页珍藏版)》请在三一文库上搜索。
1、第2章 密码技术基础,2.1 密码技术的基本概念 2.2 古典加密技术 2.3 现代加密技术,2.1 密码技术的基本概念,采用密码方法可以隐藏和保护需要保密的信息,使未授权者不能获得该信息。加密技术是对传输过程中的数据进行保护的重要方法, 也是对存储在媒体上的数据内容加以保护的一种有效手段。加密已经成为实现网络安全的一种有效又必不可少的技术手段。 传统加密体制的整个过程如图2.1所示。此图是加密/解密的一个基本原理图,需要加密的信息称为明文(Plaintext), 这个明文信息由一个加密函数变换成密文 (Ciphertext), 这个函数以一个密钥(Key)作为参数, 所以可以用c=E(m,k
2、e)来表达这个加密过程。,解密过程基本类似,用一个解密函数和解密密钥对密文进行变换,成为明文,即m=D(c,kd),所以有m=D(E(m,ke), kd)。如果ke=kd,那么这种加密体制称为单钥或对称密码体制(One-Key or Symmetric Cryptosystem)。如果kekd, 那么这种加密体制称为双钥或非对称密码体制(Two-Key or Asymmetric Cryptosystem)。这是1976年由Diffie和Hellman等人所开创的新体制。 密钥是密码体制安全的关键,它的产生和管理是密码技术中的重要研究课题。,图 2.1 传统加密体制的基本过程,一般加密/解密的
3、函数(算法)是公开的,一个算法的强度(被称为破解的难度)除了依赖于算法本身以外,还往往与密钥长度有关。 通常密钥越长,强度越高, 这是因为密钥越长, 被猜出的可能性越低。所以,保密性在于一个强度高的算法加上一个长度长的密钥。,2.2 古典加密技术,2.2.1 置换密码 置换密码亦称换位密码。置换只不过是一个简单的换位。 每个置换都可以用一个置换矩阵来Ek表示。每个置换都有一个与之对应的逆置换Dk。置换密码的特点是仅有一个发送方和接收方知道的加密置换(用于加密)及对应的逆置换(用于解密)。它是对明文L长字母组中的字母位置进行重新排列,而每个字母本身并不改变。,令明文m=m1, m2, , mL。
4、令置换矩阵所决定的置换为, 则加密置换,c=Ek(m)=(c1, c2, , cL)=m(1), m(2), ,m(L),解密置换,例,置换密码。,最后一段长不足5, 加添一个字母x。 将各段的字母序号按下述置换矩阵进行换位:,得到密文如下:,STIEH EMSLP STSOP EITLB SRPNA TOIIS IOPCN SHXRE,利用下述置换矩阵:,可将密文恢复为明文。,L=5时可能的置换矩阵总数为5!=120。一般为L!个。可以证明,在给定L下所有的置换矩阵构成一个L!对称群。,2.2.2 代换密码 令表示明文字母表,内有q个“字母”或“字符”。设其顺序号为:0, 1, , q-1,
5、可以将映射为一个整数集Zq=0, 1, 2, , q-1,在加密时常将明文信息划分为长为L的信息单元, 称为明文组。以m表示,如 m=(m0, m1, , mL), miZq,令表示明文字母表,内有q个“字母”或“字符”。 设其顺序号为: 0, 1, :, q-1, 可以将映射为一个整数集Z-q=0, 1, 2, :, q-1, 密文组为c=(c1, c2, cL-1), ciZq,代换密码的加密变换是由明文空间到密文空间的映射。,f: mc, m, c,假定函数f是一对一的映射,那么,给定密文c,有且仅有一个对应的明文组m,即对于f存在逆映射f-1,使 f-1(c)=f-1f(m)=m 加密
6、变换通常是在密钥控制下进行的,即 c=f(m, k)=Ek(m),1 单表代换密码 单表代换密码是对明文的所有字母都用同一个固定的明文字母表到密文字母表的映射, 即 f: ZqZq 若明文为m=m0, m1, , 则相应的密文为 c=c0, c1, .=f(m0), f(m1), ,1) 位移代换密码 位移代换密码是最简单的一种代换密码, 其加密变换为 Ek(i)=(i+k)j mod q 0i, jq, 0kq 密钥空间元素个数为q, 其中有一恒等变换, k=0, 解密变换为 D(j)=Eq-k(j)j+q-k(i+k)-ki mod q 例如, 凯撒密码变换是对英文26个字母进行位移代换的
7、密码, 即将每一字母向前推移k位。若q=26,如选择密钥k=5,则有下述变换: 明文: 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 密文: 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,不同的k将得到不同的密文。 于是对于明文: m=caesar cipher is a shift substitution 经凯撒密码变换后得到的密文: cFDHVDU FLSKHU LV D VKLIW VXEVWLWXWLRQ 反向利用同一个对应表, 就可以很容易地从密文: cE(m)FDH
8、VDU FLSKHU LV D VKLIW VXEVWLWXWLRQ 中恢复出原来的明文: m = caesar cipher is a shift substitution,2) 乘数密码 乘数密码的加密变换为 Ek(i)=ikj mod q 0jq 这种密码也称采样密码, 是将明文字母表按序号每隔k位取出一个字母排列而成密文(字母表首尾相连)。显然,当(k,q)=1, 即k与q互素时才是一一对应的。若q为素数,则有q-2个可用密钥。,例如, 英文字母表q=26, 选k=9, 则由明文密文字母对应表 明文: a b c d e f g h i j k l m n o p q r s t u
9、v w x y z 密文: A J S B K T C L U D M V E N W F O X G P Y H Q Z I R 于是对明文:Multiplicativer cipher 有密文: EYVPUFVUSAPUHK SUFLKX。,3) 仿射密码 将移位密码和乘数密码进行组合就可以得到更多的选择方式获得密钥。按 Ek(i)=ik1+k0j mod q k1, k0Zq 其中, (k1, q)=1, 以k1, k0表示密钥。当k0=0时就得到乘数密码,当k1=1时就得到位移密码,q=26时可能的密钥数为 2612-1=311个。,2 多表代换密码 多表代换密码是一系列(两个以上)代
10、换表依次对明文信息的字母进行代换的加密方法。令明文字母表为Zq,令=(1, 2, )为代换序列,明文字母序列为m=m1,m2, , 则相应的密文字母序列为c=Ek(m)=(m)=1(m), 2(m), ,若为非周期的无限序列,则相应的密码为非周期多表代换密码,否则,为周期多表代换密码。 维吉尼亚是法国的密码专家,以他的名字命名的维吉尼亚密码加密算法是多表密码的典型代表。方法如下:,设密钥k=k1, k2, , kn,明文m=m1, m2, mn,加密变换为,Ek(m)=c1, c2, , cn,其中,cimi+ki mod q i=1, 2, , n,例如,令q=26,明文m=polyalph
11、abetic cipher,k=RADIO, 即周期为5。首先将m分解成长为5的序列: polya lphab eticc ipher 每一段用密钥 k=RADIO加密得密文: c=GOOGO CPKTP NTLKQ ZPKMF,表2.1是维吉尼亚代换方阵,利用它可进行加密和解密。 利用密钥k=RADIO对明文polya加密得GOOGO, 第一个G是在r行p列上,第二个O是在a行o列上,第三个O是在d行l列上,以此类推。解密时p是r行含G的列,同理o是a行含O的列。以此可以推出全部密文, 从而恢复明文。,表2.1 维吉尼亚密码代换方阵,表2.1 维吉尼亚密码代换方阵,2.3 现代加密技术,2.
12、3.1 对称加密技术 对称密码技术包括任何加密形式,其中同一个密钥既用于加密又用于解密所涉及的文本,被称为对称密码,这点也是对非对称密码而言的。下面介绍几种著名的对称密码技术。 1、分组加密 2、序列密码,1、分组加密 分组密码将定长的明文块转换成等长的密文,这一过程是在密钥的控制之下。使用逆向变换和同一个密钥来实现解密。 对于当前的许多分组密码,分组大小是 64 位,但这种长度可能会增加。,明文信息通常要比特定的分组大小长得多, 而且使用不同的技术或操作方式。这样的方式示例有:电子编码本(ECB)、 密码分组链接(CBC)或密码反馈(CFB)。ECB 使用同一个密钥简单地将每个明文块一个接一
13、个地进行加密; 在 CBC 方式中, 每个明文块在加密前先与前一密文块进行“异或”运算, 从而增加了复杂程度, 可以使某些攻击更难以实施。 “输出反馈”方式(OFB)类似 CBC 方式,但是进行“异或”的量是独立生成的。 目前CBC 受到广泛使用,例如在 DES(qv)实现中。,迭代的分组密码是那些在加密过程有多次循环的密码, 因此提高了安全性。在每个循环中,可以通过使用特殊的函数从初始密钥派生出的子密钥来应用适当的变换。该附加的计算需求必然会影响加密的速度, 因此在安全性需要和执行速度之间存在着一种平衡。天下没有免费的午餐,密码术也是如此;与其它地方一样,应用适当方法的技巧中有一部分是源于对
14、需要进行的权衡以及它们与需求平衡的关系如何的理解。 ,分组密码包括 DES、IDEA、SAFER、Blowfish 和 Skipjack 最后一个是“美国国家安全局(NSA, US National Security Agency)”限制器芯片中使用的算法。 下面介绍具体的分组密码的实现。,1)DES数据加密算法 DES数据加密算法(DEA, Data Encryption Algorithm)的数据加密标准(DES, Data Encryption Standard)是规范的描述,它出自IBM 的研究工作,并在1997年被美国政府正式采纳。它很可能是使用最广泛的密钥系统,特别是在保护金融数据
15、的安全中,最初开发的 DES 是嵌入硬件中的。通常,自动取款机(ATM, Automated Teller Machine)都使用 DES。,该算法利用一个56+8奇偶校验位(第8, 16, 24, 32, 40, 48, 56, 64位)=64位的密钥对以64位为单位的块数据进行加解密。 这是一个迭代的分组密码,使用称为 Feistel 的技术, 其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去, 但最后一个循环不交换。 DES 使用 16 个循环。,设明文m是0和1组成的长度为64 bit的符号串,密钥k也
16、是64 bit的0、1符号串,即 m=m1, m2, , m64(mi=0或1) k=k1, k2, , k64(ki=0或1) 其中,密钥k只有56 bit有效,k8, k16, k24, , k64是奇偶校验位,在算法中不起作用。加密过程为 DES(m)=IP-1 。T16 。T15 T2 。T1 。IP(m) IP是初始置换,IP-1是它的逆置换。,表2.2 IP的初始置换及逆置换,(1) DES的加密过程 将DES的加密过程用图2.2表示。初始化换位IP,是将输入的二进制明文块T 变换成T0=IP(T), 然后T0经过16次函数f的迭代,最后通过逆初始换位IP-1得到64位的二进制密文
17、输出。两次相邻的迭代之间的关系是,Li=Ri-1 Ri=Li-1f(Ri-1, ki),其中,表示按位做不进位的加法运算,即10=01=1, 0 0=11=0, ki表示48位的子密钥。,图 2.2 DES加密过程,(2)函数f(Ri-1, ki)的结构,Ri-1,48位 E(Ri-1),B1, B2, B8=kiE(Ri-1),S1(B1) S2(B2), , , S8(B8),P(Si(Bi),Ri-1,48位 E(Ri-1),B1, B2, B8=kiE(Ri-1),S1(B1) S2(B2), , , S8(B8),P(Si(Bi),图2.3中E是位选择表,用来为扩展,表 2.3 位选
18、择表,Ri-1,48位 E(Ri-1),B1, B2, B8=kiE(Ri-1),S1(B1) S2(B2), , , S8(B8),P(Si(Bi)),子密钥Ki,要由初始密钥生成,等下讲,Ri-1,48位 E(Ri-1),B1, B2, B8=kiE(Ri-1),S1(B1) S2(B2), , , S8(B8),P(Si(Bi),每个6位子块Bi都是选择(代换)函数Si的输入,表2.5 选择(替代)函数S,表2.5 选择(替代)函数S,表2.5 选择(替代)函数S,Ri-1,48位 E(Ri-1),B1, B2, B8=kiE(Ri-1),S1(B1) S2(B2), , , S8(B8
19、),P(Si(Bi),输出是一个4位的二进制块,Ri-1,48位 E(Ri-1),B1, B2, B8=kiE(Ri-1),S1(B1) S2(B2), , , S8(B8),P(Si(Bi),把这些子块合并成32位二进制块后,用置换表P置换,表 2.4 换位表,(3)子密钥ki生成算法 ki是由初始密钥推导得到的,初始密钥k是一个64位的二进制块, 其中8位是奇偶校验位,分别位于第8、16、64位。 Step1:子密钥换位函数PC-1 把这些奇偶校验去掉,并把剩下的56位进行换位,可参照实例。,(3)子密钥ki生成算法 Step2:换位后的结果PC-1(k)被分成两半C和D, 各有28位,令
20、Ci和Di分别表示推导ki时所用的C和D的值,变换公式如下 ,Ci=LS(Ci-1) Di=LS(Di-1),式中,LS是循环左移位变换,其中LS1, LS2, LS9, LS16是循环左移一位变换,其余的LSi是循环左移两位变换。C0,D0是C和D的初始值。,(3)子密钥ki生成算法 Step2: 通过子密钥变换函数PC-2(参照实例)得出,ki=PC-2(Ci, Di),(4)解密算法算法,解密算法和加密算法相同,但是它使用的子密钥顺序是相反的。第一次是用k16, 第2次迭代用k15, 最后一次用k1,这是因为最终换位IP-1是初始换位IP的逆变换且,Ri-1=Li Li-1=Rif(Li
21、, ki),注: DES代换使得输出成为输入的非线性函数, 换位扩展了输出对输入的依赖性。,(5)DES 加解密算法:举例 有明文M(64位) = 0123456789ABCDEF,即 M(64位) = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 L(32位) = 0000 0001 0010 0011 0100 0101 0110 0111 R(32位) = 1000 1001 1010 1011 1100 1101 1110 1111,有初始密钥K(64位) = 133457
22、799BBCDFF1,即 K(64位) = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001 其中红色标注为奇偶校验位,即实际密钥为56位。,第一步:生成16个子钥(48位),对K使用PC-1(87) 57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28
23、20 12 4,返回,K(64位) = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001,得到K+(56位) = 1111000 0110011,第一步:生成16个子钥(48位),从而,由K(64位) = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001 得到K+(56位) = 1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111 进而
24、, C0(28位) = 1111000 0110011 0010101 0101111 D0(28位) = 0101010 1011001 1001111 0001111,第一步:生成16个子钥(48位),C1和D1分别为C0和D0左移1位。 C3和D3分别为C2和D2左移2位 ,返回,第一步:生成16个子钥(48位),从而得到C1D1 C16D16: C1 = 1110000110011001010101011111 D1 = 1010101011001100111100011110 C2 = 1100001100110010101010111111 D2 = 010101011001100
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 密码 技术 基础
链接地址:https://www.31doc.com/p-2627491.html