密码技术基础

上传人:s9****2 文档编号:586735768 上传时间:2024-09-05 格式:PPT 页数:100 大小:2.43MB
返回 下载 相关 举报
密码技术基础_第1页
第1页 / 共100页
密码技术基础_第2页
第2页 / 共100页
密码技术基础_第3页
第3页 / 共100页
密码技术基础_第4页
第4页 / 共100页
密码技术基础_第5页
第5页 / 共100页
点击查看更多>>
资源描述

《密码技术基础》由会员分享,可在线阅读,更多相关《密码技术基础(100页珍藏版)》请在金锄头文库上搜索。

1、第2章 密码技术基础 第第2 2章章 密码技术基础密码技术基础 2.1 2.1 密码技术的基本概念密码技术的基本概念2.2 2.2 古典加密技术古典加密技术 2.3 2.3 现代加密技术现代加密技术 第2章 密码技术基础 2.1 密码技术的基本概念密码技术的基本概念 采用密码方法可以隐藏和保护需要保密的信息,使未授权者不能获得该信息。加密技术是对传输过程中的数据进行保护的重要方法, 也是对存储在媒体上的数据内容加以保护的一种有效手段。加密已经成为实现网络安全的一种有效又必不可少的技术手段。 传统加密体制的整个过程如图2.1所示。此图是加密/解密的一个基本原理图,需要加密的信息称为明文(Plai

2、ntext), 这个明文信息由一个加密函数变换成密文 (Ciphertext), 这个函数以一个密钥(Key)作为参数, 所以可以用c=E(m,ke)来表达这个加密过程。 第2章 密码技术基础 解密过程基本类似,用一个解密函数和解密密钥对密文进行变换,成为明文,即m=D(c,kd),所以有m=D(E(m,ke), kd)。如果ke=kd,那么这种加密体制称为单钥或对称密码体制(One-Key or Symmetric Cryptosystem)。如果kekd, 那么这种加密体制称为双钥或非对称密码体制(Two-Key or Asymmetric Cryptosystem)。这是1976年由Di

3、ffie和Hellman等人所开创的新体制。 密钥是密码体制安全的关键,它的产生和管理是密码技术中的重要研究课题。 第2章 密码技术基础 图2.1传统加密体制的基本过程第2章 密码技术基础 一般加密/解密的函数(算法)是公开的,一个算法的强度(被称为破解的难度)除了依赖于算法本身以外,还往往与密钥长度有关。 通常密钥越长,强度越高, 这是因为密钥越长, 被猜出的可能性越低。所以,保密性在于一个强度高的算法加上一个长度长的密钥。第2章 密码技术基础 2.2 古典加密技术古典加密技术2.2.1 置换密码置换密码置换密码亦称换位密码。置换只不过是一个简单的换位。 每个置换都可以用一个置换矩阵来Ek表

4、示。每个置换都有一个与之对应的逆置换Dk。置换密码的特点是仅有一个发送方和接收方知道的加密置换(用于加密)及对应的逆置换(用于解密)。它是对明文L长字母组中的字母位置进行重新排列,而每个字母本身并不改变。 第2章 密码技术基础 令明文m=m1, m2, , mL。令置换矩阵所决定的置换为,则加密置换c=Ek(m)=(c1, c2, , cL)=m(1), m(2), ,m(L)解密置换例,置换密码。第2章 密码技术基础 最后一段长不足5,加添一个字母x。将各段的字母序号按下述置换矩阵进行换位:得到密文如下:STIEHEMSLPSTSOPEITLBSRPNATOIISIOPCNSHXRE第2章

5、密码技术基础 利用下述置换矩阵:可将密文恢复为明文。 L=5时可能的置换矩阵总数为5!=120。一般为L!个。可以证明,在给定L下所有的置换矩阵构成一个L!对称群。第2章 密码技术基础 2.2.2 代换密码代换密码令表示明文字母表,内有q个“字母”或“字符”。设其顺序号为:0,1,q-1,可以将映射为一个整数集Zq=0,1,2,q-1,在加密时常将明文信息划分为长为L的信息单元,称为明文组。以m表示,如m=(m0,m1,mL),miZq第2章 密码技术基础 令表示明文字母表,内有q个“字母”或“字符”。设其顺序号为:0,1,:,q-1,可以将映射为一个整数集Z-q=0,1,2,:,q-1,密文

6、组为c=(c1,c2,cL-1),ciZq,代换密码的加密变换是由明文空间到密文空间的映射。f: mc, m, c 假定函数f是一对一的映射,那么,给定密文c,有且仅有一个对应的明文组m,即对于f存在逆映射f-1,使f-1(c)=f-1f(m)=m加密变换通常是在密钥控制下进行的,即c=f(m, k)=Ek(m)第2章 密码技术基础 1 单表代换密码单表代换密码单表代换密码是对明文的所有字母都用同一个固定的明文字母表到密文字母表的映射,即f: ZqZq若明文为m=m0,m1,则相应的密文为c=c0, c1, .=f(m0), f(m1), 第2章 密码技术基础 1)位移代换密码位移代换密码是最

7、简单的一种代换密码,其加密变换为Ek(i)=(i+k)jmodq 0i,jq,0kq密钥空间元素个数为q,其中有一恒等变换,k=0,解密变换为D(j)=Eq-k(j)j+q-k(i+k)-kimodq例如,凯撒密码变换是对英文26个字母进行位移代换的密码,即将每一字母向前推移k位。若q=26,如选择密钥k=5,则有下述变换:明文:abcdefghijklmnopqrstuvwxyz密文:FGHIJKLMNOPQRSTUVWXYZABCDE第2章 密码技术基础 不同的k将得到不同的密文。于是对于明文:m=caesarcipherisashiftsubstitution经凯撒密码变换后得到的密文:

8、cFDHVDUFLSKHULVDVKLIWVXEVWLWXWLRQ反向利用同一个对应表,就可以很容易地从密文:cE(m)FDHVDUFLSKHULVDVKLIWVXEVWLWXWLRQ中恢复出原来的明文:m=caesarcipherisashiftsubstitution第2章 密码技术基础 2)乘数密码乘数密码的加密变换为Ek(i)=ikjmodq 0jq这种密码也称采样密码,是将明文字母表按序号每隔k位取出一个字母排列而成密文(字母表首尾相连)。显然,当(k,q)=1,即k与q互素时才是一一对应的。若q为素数,则有q-2个可用密钥。第2章 密码技术基础 例如,英文字母表q=26,选k=9,

9、则由明文密文字母对应表明文:abcdefghijklmnopqrstuvwxyz密文:AJSBKTCLUDMVENWFOXGPYHQZIR于是对明文:Multiplicativercipher有密文:EYVPUFVUSAPUHKSUFLKX。第2章 密码技术基础 3)仿射密码将移位密码和乘数密码进行组合就可以得到更多的选择方式获得密钥。按Ek(i)=ik1+k0jmod q k1,k0Zq其中,(k1,q)=1,以k1,k0表示密钥。当k0=0时就得到乘数密码,当k1=1时就得到位移密码,q=26时可能的密钥数为2612-1=311个。第2章 密码技术基础 2 多表代换密码多表代换密码多表代换

10、密码是一系列(两个以上)代换表依次对明文信息的字母进行代换的加密方法。令明文字母表为Zq,令=(1,2,)为代换序列,明文字母序列为m=m1,m2,则相应的密文字母序列为c=Ek(m)=(m)=1(m),2(m),,若为非周期的无限序列,则相应的密码为非周期多表代换密码,否则,为周期多表代换密码。维吉尼亚是法国的密码专家,以他的名字命名的维吉尼亚密码加密算法是多表密码的典型代表。方法如下:第2章 密码技术基础 设密钥k=k1,k2,kn,明文m=m1,m2,mn,加密变换为Ek(m)=c1, c2, cn其中cimi+kimodq i=1,2,n例如,令q=26,明文m=polyalphabe

11、ticcipher,k=RADIO,即周期为5。首先将m分解成长为5的序列:polyalphabeticcipher每一段用密钥k=RADIO加密得密文:c=GOOGOCPKTPNTLKQZPKMF第2章 密码技术基础 表2.1是维吉尼亚代换方阵,利用它可进行加密和解密。利用密钥k=RADIO对明文polya加密得GOOGO,第一个G是在r行p列上,第二个O是在a行o列上,第三个O是在d行l列上,以此类推。解密时p是r行含G的列,同理o是a行含O的列。以此可以推出全部密文,从而恢复明文。第2章 密码技术基础 表表2.1 维吉尼亚密码代换方阵维吉尼亚密码代换方阵 第2章 密码技术基础 表表2.1

12、 维吉尼亚密码代换方阵维吉尼亚密码代换方阵 第2章 密码技术基础 2.3 现代加密技术现代加密技术2.3.1 对称加密技术对称加密技术对称密码技术包括任何加密形式,其中同一个密钥既用于加密又用于解密所涉及的文本,被称为对称密码,这点也是对非对称密码而言的。下面介绍几种著名的对称密码技术。 1、分组加密、分组加密2、序列密码、序列密码 第2章 密码技术基础 1、分组加密、分组加密分组密码将定长的明文块转换成等长的密文,这一过程是在密钥的控制之下。使用逆向变换和同一个密钥来实现解密。对于当前的许多分组密码,分组大小是64位,但这种长度可能会增加。第2章 密码技术基础 明文信息通常要比特定的分组大小

13、长得多, 而且使用不同的技术或操作方式。这样的方式示例有:电子编码本(ECB)、 密码分组链接(CBC)或密码反馈(CFB)。ECB 使用同一个密钥简单地将每个明文块一个接一个地进行加密; 在 CBC 方式中, 每个明文块在加密前先与前一密文块进行“异或”运算, 从而增加了复杂程度, 可以使某些攻击更难以实施。 “输出反馈”方式(OFB)类似 CBC 方式,但是进行“异或”的量是独立生成的。 目前CBC 受到广泛使用,例如在 DES(qv)实现中。 第2章 密码技术基础 迭代的分组密码是那些在加密过程有多次循环的密码, 因此提高了安全性。在每个循环中,可以通过使用特殊的函数从初始密钥派生出的子

14、密钥来应用适当的变换。该附加的计算需求必然会影响加密的速度, 因此在安全性需要和执行速度之间存在着一种平衡。天下没有免费的午餐,密码术也是如此;与其它地方一样,应用适当方法的技巧中有一部分是源于对需要进行的权衡以及它们与需求平衡的关系如何的理解。 第2章 密码技术基础 分组密码包括DES、IDEA、SAFER、Blowfish和Skipjack最后一个是“美国国家安全局(NSA,USNationalSecurityAgency)”限制器芯片中使用的算法。下面介绍具体的分组密码的实现。第2章 密码技术基础 1 1)DES数据加密算法数据加密算法 DES数据加密算法(DEA, Data Encry

15、ption Algorithm)的数据加密标准(DES, Data Encryption Standard)是规范的描述,它出自IBM 的研究工作,并在1997年被美国政府正式采纳。它很可能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,最初开发的 DES 是嵌入硬件中的。通常,自动取款机(ATM, Automated Teller Machine)都使用 DES。第2章 密码技术基础 该算法利用一个56+8奇偶校验位(第8, 16, 24, 32, 40, 48, 56, 64位)=64位的密钥对以64位为单位的块数据进行加解密。 这是一个迭代的分组密码,使用称为 Feistel 的技

16、术, 其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去, 但最后一个循环不交换。 DES 使用 16 个循环。第2章 密码技术基础 设明文m是0和1组成的长度为64bit的符号串,密钥k也是64bit的0、1符号串,即m m= =m m1 1, , m m2 2, , , , m m6464( (m mi i=0=0或或1)1)k k= =k k1 1, , k k2 2, , , , k k6464( (k ki i=0=0或或1)1)其中,密钥k只有56bit有效,k8,k16,k24,k64是奇偶校验位,

17、在算法中不起作用。加密过程为DES(DES(m m)=)=IPIP-1 -1 。T T1616 。T T15 15 T T2 2 。T T1 1 。IPIP( (m m) )IP是初始置换,是初始置换,IP-1是它的逆置换。是它的逆置换。第2章 密码技术基础 表表2.2 IP的初始置换及逆置换的初始置换及逆置换 第2章 密码技术基础 (1) DES的加密过程 将DES的加密过程用图2.2表示。初始化换位IP,是将输入的二进制明文块T 变换成T0=IP(T), 然后T0经过16次函数f的迭代,最后通过逆初始换位IP-1得到64位的二进制密文输出。两次相邻的迭代之间的关系是 Li=Ri-1Ri=L

18、i-1f(Ri-1,ki)其其中中, 表表示示按按位位做做不不进进位位的的加加法法运运算算,即即1 0=0 1=1, 0 0=1 1=0, ki表示表示48位的子密钥。位的子密钥。 第2章 密码技术基础 图2.2DES加密过程第2章 密码技术基础 (2)函数函数f(Ri-1, ki)的结构的结构第2章 密码技术基础 Ri-148位E(Ri-1)B1, B2,B8=kiE(Ri-1) S1(B1)S2(B2),.,S8(B8)P(Si(Bi),第2章 密码技术基础 Ri-148位E(Ri-1)B1, B2,B8=kiE(Ri-1) S1(B1)S2(B2),.,S8(B8)P(Si(Bi),图2

19、.3中E是位选择表,用来为扩展第2章 密码技术基础 表表 2.3 位选择表位选择表 第2章 密码技术基础 Ri-148位E(Ri-1)B1, B2,B8=kiE(Ri-1) S1(B1)S2(B2),.,S8(B8)P(Si(Bi))子密钥Ki,要由初始密钥生成,等下讲第2章 密码技术基础 Ri-148位E(Ri-1)B1, B2,B8=kiE(Ri-1) S1(B1)S2(B2),.,S8(B8)P(Si(Bi),每个6位子块Bi都是选择(代换)函数Si的输入第2章 密码技术基础 表表2.5 选择(替代选择(替代)函数函数S 第2章 密码技术基础 表表2.5 选择(替代选择(替代)函数函数S

20、 第2章 密码技术基础 表表2.5 选择(替代选择(替代)函数函数S 第2章 密码技术基础 Ri-148位E(Ri-1)B1, B2,B8=kiE(Ri-1) S1(B1)S2(B2),.,S8(B8)P(Si(Bi),输出是一个4位的二进制块第2章 密码技术基础 Ri-148位E(Ri-1)B1, B2,B8=kiE(Ri-1) S1(B1)S2(B2),.,S8(B8)P(Si(Bi)把这些子块合并成32位二进制块后,用置换表P置换第2章 密码技术基础 表表 2.4 换位表换位表 第2章 密码技术基础 (3)子密钥)子密钥ki生成算法生成算法 ki是由初始密钥推导得到的,初始密钥k是一个6

21、4位的二进制块, 其中8位是奇偶校验位,分别位于第8、16、64位。 Step1:Step1:子密钥换位函数PC-1 把这些奇偶校验去掉,并把剩下的56位进行换位,可参照实例。第2章 密码技术基础 (3)子密钥)子密钥ki生成算法生成算法Step2:Step2:换位后的结果PC-1(k)被分成两半C和D, 各有28位,令Ci和Di分别表示推导ki时所用的C和D的值,变换公式如下 Ci=LS(Ci-1)Di=LS(Di-1)式中,LS是循环左移位变换,其中LS1,LS2,LS9,LS16是循环左移一位变换,其余的LSi是循环左移两位变换。C0,D0是C和D的初始值。第2章 密码技术基础 (3)子

22、密钥)子密钥ki生成算法生成算法Step2: 通过子密钥变换函数PC-2(参照实例)得出 ki=PC-2(Ci,Di)第2章 密码技术基础 (4)解密算法)解密算法算法算法解密算法和加密算法相同,但是它使用的子密钥顺序是相反的。第一次是用k16, 第2次迭代用k15, 最后一次用k1,这是因为最终换位IP-1是初始换位IP的逆变换且 Ri-1=LiLi-1=Rif(Li,ki)注:注:DES代换使得输出成为输入的非线性函数,换位扩展了输出对输入的依赖性。第2章 密码技术基础 (5)DES 加解密算法:加解密算法:举例举例有明文M(64位)=0123456789ABCDEF,即M(64位)=00

23、00000100100011010001010110011110001001101010111100110111101111L(32位)=00000001001000110100010101100111R(32位)=10001001101010111100110111101111第2章 密码技术基础 有初始密钥K(64位)=133457799BBCDFF1,即K(64位)=0001001100110100010101110111100110011011101111001101111111110001其中红色标注为奇偶校验位,即实际密钥为56位。第2章 密码技术基础 第一步:生成16个子钥(48

24、位)对对K使用使用PC-1(87)57494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124返回返回K(64位)=0001001100110100010101110111100110011011101111001101111111110001得到得到K+(56位)=11110000110011第2章 密码技术基础 第一步:生成16个子钥(48位)从而,由从而,由K(64位位)=00010011001101000101011101111001100

25、11011101111001101111111110001得到得到K+(56位)=11110000110011001010101011110101010101100110011110001111进而,C0(28位)=1111000011001100101010101111D0(28位)=0101010101100110011110001111第2章 密码技术基础 第一步:生成16个子钥(48位)C1和D1分别为C0和D0左移1位。 C3和D3分别为C2和D2左移2位 返回返回第2章 密码技术基础 第一步:生成16个子钥(48位)从而得到从而得到C1D1 C16D16:C1 = 11100001

26、10011001010101011111D1 = 1010101011001100111100011110 C2 = 1100001100110010101010111111D2 = 0101010110011001111000111101 C3 = 0000110011001010101011111111D3 = 0101011001100111100011110101 C4 = 0011001100101010101111111100D4 = 0101100110011110001111010101 C15 = 1111100001100110010101010111D15 = 10101

27、01010110011001111000111 C16 = 1111000011001100101010101111D16 = 0101010101100110011110001111 C0(28位位) = 1111000 0110011 0010101 0101111 D0(28位位) = 0101010 1011001 1001111 0001111第2章 密码技术基础 第一步:生成16个子钥(48位)Kn(48位位) = PC-2( Cn Dn(56位位) )PC-2(86)141711241532815621102319124268167272013241523137475530405

28、1453348444939563453464250362932第2章 密码技术基础 第一步:生成16个子钥(48位)最终得到所有16个子钥,每个48位:K1=000110110000001011101111111111000111000001110010K2=011110011010111011011001110110111100100111100101K3=010101011111110010001010010000101100111110011001K4=011100101010110111010110110110110011010100011101K5=01111100111011000

29、0000111111010110101001110101000K6=011000111010010100111110010100000111101100101111K7=111011001000010010110111111101100001100010111100K8=111101111000101000111010110000010011101111111011K9=111000001101101111101011111011011110011110000001K10=101100011111001101000111101110100100011001001111K11=001000010

30、101111111010011110111101101001110000110K12=011101010111000111110101100101000110011111101001K13=100101111100010111010001111110101011101001000001K14=010111110100001110110111111100101110011100111010K15=101111111001000110001101001111010011111100001010K16=110010110011110110001011000011100001011111110101第

31、2章 密码技术基础 第二步:用子钥对64位数据加密对明文对明文M使用使用IP(88)58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157第2章 密码技术基础 第二步:用子钥对64位数据加密由于M(64位)=0000000100100011010001010110011110001001101010111100110111101111对M运用IP,故有IP(64位)=11001100000000001100110

32、01111111111110000101010101111000010101010第2章 密码技术基础 第二步:用子钥对64位数据加密由于M(64位)=0000000100100011010001010110011110001001101010111100110111101111对M运用IP,故有IP(64位)=1100110000000000110011001111111111110000101010101111000010101010对明文对明文M使用使用IP(88)58504234261810260524436282012462544638302214664564840322416857

33、494133251791595143352719113615345372921135635547393123157第2章 密码技术基础 第二步:用子钥对64位数据加密IP(64位)=L0(32位)+R0(32位)故L0 (32位)=11001100000000001100110011111111R0 (32位)=11110000101010101111000010101010第2章 密码技术基础 第二步:用子钥对64位数据加密从L0和R0开始,循环16次,得出L1R1到L16R16,依据递推公式:Ln=R(n-1)Rn=L(n-1)+f (R(n-1),Kn)其中除了Kn为48位,其他变量及函

34、数均为32位。其中+号表示异或XOR运算,函数f从一个32位的数据块R(n-1)和一个48位子钥Kn得到一个新的32位数据块。(算法从略)第2章 密码技术基础 第二步:用子钥对64位数据加密到此为止,我们得到了16对32位的数据块,即L1R1,L2R2,L3R3,L16R16最后一对L16R16就是我们需要的。第2章 密码技术基础 第二步:用子钥对64位数据加密继续对R16L16(64位)运用一次重排列:IP-1(88)IP-1(88) 40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13

35、 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25 第2章 密码技术基础 第二步:用子钥对64位数据加密即在L16(32位) = 0100 0011 0100 0010 0011 0010 0011 0100 R16(32位) = 0000 1010 0100 1100 1101 1001 1001 0101 R16L16(64位) = 00001010 01001100 11011001 10010101 01000011 0100001

36、0 00110010 00110100 时,对R16L16运用IP-1,得IP-1(64位) = 10000101 11101000 00010011 01010100 00001111 00001010 10110100 00000101 = 85E813540F0AB405从而,经过以上步骤,最终从明文M = 0123456789ABCDEF得到密文C = IP-1 = 85E813540F0AB405 以上为加密过程,要解密,依次反向计算即可。第2章 密码技术基础 2) IDEA 加密算法加密算法IDEA国际数据加密算法IDEA(InternationalDataEncryptionAl

37、gorithm)是由两位研究员XuejiaLai和JamesL.Massey在苏黎世的ETH公司开发的,一家瑞士Ascomsystec公司拥有专利权。IDEA是作为迭代的分组密码实现的,使用128位的密钥和8个循环。这比DES提供了更多的安全性,但是在选择用于IDEA的密钥时,应该排除那些称为“弱密钥”的密钥。DES只有四个弱密钥和12个次弱密钥,而IDEA中的弱密钥数相当可观,有251个。但是,如果密钥的总数非常大,达到2128个,那么仍有277个密钥可供选择。个密钥可供选择。 第2章 密码技术基础 2、序列密码、序列密码与分组密码相比,序列密码是非常快速的,尽管某些方式下工作的一些分组密码

38、(如CFB或OFB中的DES)可以与序列密码一样有效地运作,但序列密码作用于由若干位组成的一些小型组,通常使用称为密钥流的一个位序列作为密钥对它们逐位应用“异或”运算。有些序列密码基于一种称做“线性反馈移位寄存器(LFSR,LinearFeedbackShiftRegister)”的机制,该机制生成一个二进制位序列。第2章 密码技术基础 2. 3.2 非对称密码非对称密码非对称密码术相对于对称密码术的最大区别就在于它的加密和解密不是使用同一个密钥和算法。在对称密码术中加密和解密都需要共享一个密钥,这可能是使用密码术的对称密码体制的主要弱点。在非对称密码术或公钥密码术中没有这样的问题。使用在数学

39、上相关的两个密钥,并通过用其中一个密钥加密的明文只能用另一个密钥进行解密的方法来使用它们。通常,其中一个密钥由个人秘密持有,因此几乎没有必要共享密钥,从而避免了对安全性的威胁。第二个密钥,即所谓的公钥,需要让尽可能多的人知道。第2章 密码技术基础 非对称密码体制提供的安全性取决于难以解决的数学问题。例如,将大整数因式分解成质数。公公钥钥系系统统使使用用这这样样两两个个密密钥钥, 一一个个是是公公钥钥,用用来来加加密密文文本本; 另另一一个个是是安安全全持持有有的的私私钥钥,只只能能用用此此私私钥钥来来解解密密。也可以使用私钥加密某些信息,然后用公钥来解密,而公钥是大家都知道的,这样拿此公钥能够

40、解密的人就知道此消息是来自持有私钥的人,从而达到了认证作用。对于认证的应用方式我们下面会给出几种常见的非对称密码加密算法。第2章 密码技术基础 1、Diffie-HellmanDiffie-Hellman协议允许两个用户通过某个不安全的交换机制来共享密钥,而不需要首先就某些秘密值达成协议。它有两个系统参数,每个参数都是公开的,其中一个是质数p,另一个通常称为生成元,是比p小的整数;这一生成元经过一定次数幂运算之后再对p取模,可以生成从1到p-1之间任何一个数。第2章 密码技术基础 第2章 密码技术基础 这一密钥交换协议容易受到伪装攻击,即所谓中间人(middleperson)攻击。如果A和B正

41、在寻求交换密钥,则第三个人C可能介入每次交换。A认为初始的公共值正在发送到B,但事实上,它被C拦截,然后向B传送了一个别人的公共值,然后B给A的消息也遭受同样的攻击,而B以为它给A的消息直接送到了A。这导致A与C就一个共享秘钥达成协议而B与C就另一个共享秘钥达成协议。然后,C可以在中间拦截从A到B的消息,并使用A/C密钥解密,修改它们,再使用B/C密钥转发到B,B到A的过程与此相反,而A和B都没有意识到发生了什么。第2章 密码技术基础 为了防止这种情况,1992年Diffie和其他人一起开发了经认证的Diffie-Hellman密钥协议。在这个协议中,必须使用现有的私钥公钥对以及与公钥元素的相

42、关数字证书,由数字证书验证交换的初始公共值。第2章 密码技术基础 2、第2章 密码技术基础 第2章 密码技术基础 第2章 密码技术基础 第2章 密码技术基础 2.3.3 散列函数散列函数散列函数与公钥密码体制不同,但因为散列函数通常用于消息摘要,因此在这里将它们视为认证和数字签名的整个系统的一部分也是适宜的。1)MD4和MD5MD2、MD4和MD5是由RonRivest开发的用于数字签名应用程序的消息摘要算法,在数字签名应用程序中将消息压缩成摘要,然后由私钥加密。MD2是为8位计算机系统设计的,而MD4和MD5是为32位计算机系统开发的。MD4是在1990开发的,现在它被认为是不安全的。第2章

43、 密码技术基础 哈希函数概念哈希函数,也称为单向散列函数、杂凑函数或消息摘要算法。它通过把一个单向数学函数应用于数据,将任意长度的一块数据转换为一个定长的、不可逆转的数据。哈希函数H能用于任意大小的分组,产生定长的输出;对任何给定的x,H(x)要相对易于计算,使得硬件和软件实现成为实际可能;单向性;弱抗冲突性;即强抗冲突性。第2章 密码技术基础 第2章 密码技术基础 我们给出MD5的算法描述,对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位

44、散列值。算法结构图如下:第2章 密码技术基础 第2章 密码技术基础 第2章 密码技术基础 在MD5算法中,首首先先需需要要对对信信息息进进行行填填充充,使其字节长度对512求余的结果等于448。因此,信息的字节长度(bitslength)将被扩展至n512+448,即n64+56个字节(bytes),n为一个正整数。填充的方法如下,在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后,在在这这个个结结果果后后面面附附加加一一个个以以64位位二二进进制制数数表表示示的的填填充充前前信信息息长长度度。经过这 两 步 的 处 理 , 现 在 的 信 息 字 节 长 度

45、为n512+448+64=(n+1)512,即长度恰好是512的整数倍。这样做的原因是为满足后面处理中对信息长度的要求。第2章 密码技术基础 MD5中有四个32位被称为链接变量(ChainingVariable)的整数 参 数 , 它 们 分 别 为 : a=0x01234567, b=0x89abcdef, c=0xfedcba98,d=0x76543210。当设置好这四个链接变量后,就开始进入算法的四轮循环运算。循环的次数是信息中512位信息分组的数目。将上面四个链接变量复制到另外四个变量中:a到a,b到b,c到c,d到d。主循环有四轮(MD4只有三轮),每轮循环都很相似。第一轮进行16次

46、操作,每次操作对a、b、c和d中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量,文本的一个子分组和一个常数。再将所得结果向右环移一个不定的数,并加上a、b、c或d中之一。最后用该结果取代a、b、c或d中之一。以下是每次操作中用到的四个非线性函数(每轮一个)。第2章 密码技术基础 f(x,y,z)=(x&y)|(x)&z);g(x,y,z)=(x&z)|(y&(-z);h(x,y,z)=xyz;i(x,y,z)=y(x|(z)式中,&是与操作,|是或操作,是非操作,是异或操作。第2章 密码技术基础 这四个函数的说明:如果x、y和z的对应位是独立和均匀的,那么结果的每一位也应是独立和

47、均匀的。f是一个逐位运算的函数。即,如果x为1,那么选择y位上的数据,否则选择z位上的数据。函数h是逐位奇偶操作符。压缩过程如图2.4所示。第2章 密码技术基础 图2.4第2章 密码技术基础 假设Tj表示消息的第j个子分组(从015),F(a,b,c,d,Tj,s,Xi)表示a=b+(a+(f(b,c,d)+Tj+Xi)G(a,b,c,d,Tj,s,Xi)表示a=b+(a+(g(b,c,d)+Tj+Xi)H(a,b,c,d,Tj,s,Xi)表示a=b+(a+(h(b,c,d)+Tj+Xi)I(a,b,c,d,Tj,s,Xi)表示a=b+(a+(i(b,c,d)+Tj+Xi)第2章 密码技术基础

48、 第2章 密码技术基础 这四轮(64步)是:第一轮F(a,b,c,d,T0,7,0xd76aa478)F(d,a,b,c,T1,12,0xe8c7b756)F(c,d,a,b,T2,17,0x242070db)F(b,c,d,a,T3,22,0xc1bdceee)F(a,b,c,d,T4,7,0xf57c0faf)F(d,a,b,c,T5,12,0x4787c62a)F(c,d,a,b,T6,17,0xa8304613)第2章 密码技术基础 F(b,c,d,a,T7,22,0xfd469501)F(a,b,c,d,T8,7,0x698098d8)F(d,a,b,c,T9,12,0x8b44f7

49、af)F(c,d,a,b,T10,17,0xffff5bb1)F(b,c,d,a,T11,22,0x895cd7be)F(a,b,c,d,T12,7,0x6b901122)F(d,a,b,c,T13,12,0xfd987193)F(c,d,a,b,T14,17,0xa679438e)F(b,c,d,a,T15,22,0x49b40821)第2章 密码技术基础 第二轮G(a,b,c,d,T1,5,0xf61e2562)G(d,a,b,c,T6,9,0xc040b340)G(c,d,a,b,T11,14,0x265e5a51)G(b,c,d,a,T0,20,0xe9b6c7aa)G(a,b,c,d

50、,T5,5,0xd62f105d)G(d,a,b,c,T10,9,0x02441453)G(c,d,a,b,T15,14,0xd8a1e681)G(b,c,d,a,T4,20,0xe7d3fbc8)第2章 密码技术基础 G(a,b,c,d,T9,5,0x21e1cde6)G(d,a,b,c,T14,9,0xc33707d6)G(c,d,a,b,T3,14,0xf4d50d87)G(b,c,d,a,T8,20,0x455a14ed)G(a,b,c,d,T13,5,0xa9e3e905)G(d,a,b,c,T2,9,0xfcefa3f8)G(c,d,a,b,T7,14,0x676f02d9)G(b

51、,c,d,a,T12,20,0x8d2a4c8a)第2章 密码技术基础 第三轮H(a,b,c,d,T5,4,0xfffa3942)H(d,a,b,c,T8,11,0x8771f681)H(c,d,a,b,T11,16,0x6d9d6122)H(b,c,d,a,T14,23,0xfde5380c)H(a,b,c,d,T1,4,0xa4beea44)H(d,a,b,c,T4,11,0x4bdecfa9)H(c,d,a,b,T7,16,0xf6bb4b60)H(b,c,d,a,T10,23,0xbebfbc70)H(a,b,c,d,T13,4,0x289b7ec6)第2章 密码技术基础 H(d,a,

52、b,c,T0,11,0xeaa127fa)H(c,d,a,b,T3,16,0xd4ef3085)H(b,c,d,a,T6,23,0x04881d05)H(a,b,c,d,T9,4,0xd9d4d039)H(d,a,b,c,T12,11,0xe6db99e5)H(c,d,a,b,T15,16,0x1fa27cf8)H(b,c,d,a,T2,23,0xc4ac5665)第2章 密码技术基础 第四轮I(a,b,c,d,T0,6,0xf4292244)I(d,a,b,c,T7,10,0x432aff97)I(c,d,a,b,T14,15,0xab9423a7)I(b,c,d,a,T5,21,0xfc9

53、3a039)I(a,b,c,d,T12,6,0x655b59c3)I(d,a,b,c,T3,10,0x8f0ccc92)I(c,d,a,b,T10,15,0xffeff47d)I(b,c,d,a,T1,21,0x85845dd1)第2章 密码技术基础 I(a,b,c,d,T8,6,0x6fa87e4f)I(d,a,b,c,T15,10,0xfe2ce6e0)I(c,d,a,b,T6,15,0xa3014314)I(b,c,d,a,T13,21,0x4e0811a1)I(a,b,c,d,T4,6,0xf7537e82)I(d,a,b,c,T11,10,0xbd3af235)I(c,d,a,b,T

54、2,15,0x2ad7d2bb)I(b,c,d,a,T9,21,0xeb86d391)第2章 密码技术基础 常 数 x i 可 以 如 下 选 择 : 在 第 i步 中 , x i 是4294967296*abs(sin(i)的 整 数 部 分 , i的 单 位 是 弧 度 ,4294967296=232。所有这些完成之后,将a,b,c,d分别加上a,b,c,d。然后用下一分组数据继续运行算法,最后的输出是a,b,c,d的级联。MD5的安全性相对MD4所做的改进:增加了第四轮;每一步均有惟一的加法常数;为减弱第二轮中函数g的对称性从(x&y)|(x&z)|(y&z)变为(x&z)|(y&(z)

55、;第一步加上了上一步的结果,这将引起更快的雪崩效应;改变了第二轮和第三轮中访问消息子分组的次序,使其更不相似;近似优化了每一轮中的循环左移位移量以实现更快的雪崩效应。各轮的位移量互不相同。第2章 密码技术基础 2)SHA和SHA-1安全散列算法(SHA)是由美国国家标准和技术协会(NationalInstituteofStandardsandTechnology)开发的,该协会隶属于美国商务部,负责发放密码规程的标准。然而,该算法的安全性要比其名称所暗示的低,1994年适时发布了原始算法的修订版,称为SHA-1。与MD5相比,SHA-1生成160位的消息摘要,虽然执行更慢,却被认为更安全。明文消息的最大长度可达到264位。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号