密码与隐藏技术

上传人:j****9 文档编号:54638927 上传时间:2018-09-16 格式:PPT 页数:99 大小:2.25MB
返回 下载 相关 举报
密码与隐藏技术_第1页
第1页 / 共99页
密码与隐藏技术_第2页
第2页 / 共99页
密码与隐藏技术_第3页
第3页 / 共99页
密码与隐藏技术_第4页
第4页 / 共99页
密码与隐藏技术_第5页
第5页 / 共99页
点击查看更多>>
资源描述

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

1、1,第2章 密码与隐藏技术,2.1 密码技术概述 2.2 古典加密方法 2.3 数据加密标准DES 2.4 高级加密标准AES 2.5 公开密钥体制 2.6 RSA算法 2.7 NTRU公开密钥体制 2.8 对称加密体制与公开密钥体制比较 2.9 信息隐藏技术 2.10 数字水印,2,2.1 密码技术概述密码技术是防止信息泄露的技术,是信息安全技术中最重要和最基本的安全技术。密码技术中常用的一些术语:1明文P(Plaintext ):可以理解的信息原文。2. 加密E(Encryption):用某种方法伪装明文以隐藏它的内容的过程。3密文C(Ciphertext):经过加密后将明文变换成不容易理

2、解的信息。4解密D (Decryption):将密文恢复成明文的过程。,3,5算法(algorithm):就是用于加密或解密的方法,在现代密码学中算法就是一个用于加密和解密的数学函数。6密钥K(key):是用来控制加密和解密算法的实现。典型的加密和解密过程可以用图2.1来描述。如果将加密过程看成是一个数学函数F的话,则密文C可以表示为: C = F (P,K ),4,这个函数具有两个自变量P和K,在函数F的作用下得到密文。在已知密钥K1、K2、加密算法E和解密算法D时,则加密和解密过程可以表示如下:EK1 ( P ) = CD K2( C ) = P 显然为使明文加密后能被解密必须有:P =

3、D K2 (E K1( P ) = P在实际加密和解密时,根据加密算法的特点,K1与K2的值可以不同,也可以相同。,5,例:设明文是一串二进制序列,加密和解密算法都采用模2运算,即异或运算,加密密钥和解密密钥也相同。若明文 P = 1 1 0 0 1 1 0 0 加密和解密密钥 K= 1 1 0 0 0 1 1 1 则加密后的密文 C = P K = 0 0 0 0 1 0 1 1 解密后的密文 P = C K = 1 1 0 0 1 1 0 0如字符串“HYIT”的ASCII码为48594954H, 密钥用05H,密文为4D5C4C51H,对应的ASCII码为“MLQ”,6,现代密码学已发展

4、成两个重要的研究分支:(1)对称加密方法,其典型代表是数据加密标准DES(数据加密标准)、IDEA(国际数据加密算法)、AES(高级加密标准)等算法。(2)公开密钥算法(也称非对称算法),其典型代表是RSA、椭圆曲线加密、NTRU算法等。,7,2.2 古典加密方法 2.2.1 代替密码代替密码又称替换密码,就是按照一定要求,将明文中的每个字符替换成另一个字符,明文中字符的位置保持不变,但其本身改变了。分为单表代换和多表代换。 (1)单表代换:同一个字符具有一个密文字符。 (2)多表代换:同一个字符具有不同的密文字符。 如:移位密码:C=P+K(mod 26), M=C-K(mod 26)仿射变

5、换:C=aP+b(mod 26), M=a-1(C-b)(mod 26),a与26互素,8,多表代换:密钥由多个字母组成,依次用来对明文进行加密。2.2.2 换位密码换位密码也可称为置换密码,它是改变明文中字母的位置,明文中的字母不变。也就是明文中的字母保持不变,但顺序被打乱了。例如可以将明文the变换成het。,9,2.3 对称加密体制对称加密算法,有时又叫传统密码算法,它的典型特点是:1采用的解密算法就是加密算法的逆运算,或者解密算法与加密算法完全相同;2加密密钥和解密密钥相同,或者加密密钥能够从解密密钥中推算出来,反过来也成立。 对称算法要求发送者和接收者在安全通信之前,商定一个密钥。它

6、的安全性依赖于密钥的保密性。,10,对称算法可分为两类:分组密码和序列密码或流密码。1分组密码是将明文分成固定长度的组或块(如64比特为一组),然后用同一密钥和算法对每一块进行加密,输出密文的长度也是固定的,如图2.3所示。教材P192序列密码(stream cipher)的主要原理是通过伪随机序列发生器产生性能优良的随机序列,使用该序列与明文序列叠加来输出密文序列。解密时,再用同一个随机序列与密文序列进行叠加来恢复明文,如图2.4所示。教材P19,11,2.3.1 DES算法DES(数据加密标准,Data Encryption Algorithm)算法:IBM提出,美国标准,世界首例标准。D

7、ES 是分组加密算法,它以64位(二进制)为一组,对称数据加密,64位明文输入,64位密文输出。密钥长度为56位,但密钥通常表示为64位,并分为8组,每组第8位作为奇偶校验位,以确保密钥的正确性,这样对用户来说每组密钥仍是56位。利用密钥,通过传统的换位、替换和异或等变换,实现二进制明文的加密与解密。,12,DES算法概要:1对输入的明文从右向左按顺序每64位分为一组(不足64位时,在高位补0),并按组进行加密或解密。2进行初始换位。3将换位后的明文分成左、右两个部分,每部分为32位长。4进行16轮相同的变换,包括密钥变换。5将变换后左右两部分合并在一起。6逆初始变换,输出64位密文。,13,

8、p=p1p2p64,p=p58p50p7,c=c1c2c64,c=c40c8c25,14,加密变换:将明文p初始置换后得到p分为两部分(L0,R0),首轮变换后得到新的64位数据,还分为左右两部分(L1,R1),再用(L1,R1)进行同样变换,从而先后得到(L2,R2) (L16,R16)。 (L16,R16)即为c。,一轮变换过程图示:,15,16,置换相当于重新排队,队列:,1 2 3 62 63 64,p1,p2,p3,p64,p62,p63,p58,p50,p42,p23,p15,p7,17,18,19,20,21,对应S盒的(3,5)元素为9,将9转换为二进制数1001。所以,当S盒

9、的输入为101011时,S盒的输出为1001。S盒代替是DES算法的核心部分,整个变换过程是非线性的(而DES算法的其他变换都是线性的),提供很好的混乱数据效果,比DES算法的其他步骤都提供了更好的安全性。9. P盒置换:将S盒输出的32位二进制数据按P盒置换表2.7进行置换。,22,23,可利用课后时间,编程实现DES算法,24,DES算法的安全性:(1)安全性比较高,目前只有一种方法可以破解该算法,那就是穷举法。(2)采用64位密钥技术,实际只有56位有效,8位用来校验的。一台PC机器,它能每秒计算一百万次(约220),那么它要穷举的时间为2285年,所以这种算法还是比较安全的一种算法。

10、但破译DES不是不可能:(1)1997年DESCHALL小组经过4个月,通过Internet搜索了31016个密钥,找出了DES密钥,恢复了明文。(2)1998年美国EFF(electronics frontier foundation)宣布,他们用一台20万美元的计算机改装的专用解密机,花56小时破译了56位密钥的DES。2000年有了高级加密标准AES- Rijndael算法。,25,2.4 高级加密标准AESRijndael算法也是一种分组密码体制,其明文分组长度、密钥长度可以是128比特、192比特、256比特中的任意一个。按照密钥长度,分别记为AES-128,AES-192,AES-

11、256。AES比DES支持更长的密钥,AES-128密钥个数比DES的56位密钥个数要多1021倍,对AES的攻击仍然是穷举密钥攻击。如果用一台每秒钟能够找出255个DES密钥的机器,用它来找AES-128的密钥,大约需要149万年。,26,2.4 高级加密标准AES,27,即5783=D4,28,11B即0001 0001 1011对应多项式x8+x4+x3+x+1,即57 83=C1(先相乘,再相除,得到的余数),29,30,注意: 系数a3,a1,b3,b1 是一个字节8位二进制数,不是一位二进制数1或0,把复杂的乘法运算转换为移位和加法运算。,31,32,该矩阵是一个循环矩阵,x b(

12、x)=b2x3+b1x2+b0x+b3, 即左循环移了一位(a0=a2=a3=00,a1=01,系数为一个字节),可见x或x的幂模乘多项式,相当于对字节构成的向量进行字节循环移位。,33,34,2.4.2 AES算法概述AES算法是一种可变数据块长Nb和可变密钥长Nk的迭代分组加密算法,其数据块长和密钥长度可分别为128、192和256比特。AES算法以字节(8比特)和字(32比特)为处理单位,将明文分成Nb个字,密钥分成Nk个字,每个字为4个字节32比特。 Nb 、Nk可分别取4、6、8,两者不一定相同。令变换轮数 Nr max Nb,Nk + 6,则算法共进行一个初始轮(初始化),Nr-1

13、轮变换及最后一轮变换,即AES算法共进行Nr +1轮变换。,35,当AES的输入明文分组长度为128位时,经AES加密或解密处理后,得到的输出也是128位。基本处理单位:在AES中,各种运算是以字节为基本单位进行处理的。在一个字节中,最右边的位是字节低位,最左边的位是字节高位。状态:对明文数据块加密或解密时,要经过多次的数据变换操作,每一次变换操作都产生一个中间结果,我们将这个中间结果称为状态(state)。怎么表示状态?状态可以用二维字节数组表示,它有4行Nb列,其中数组中元素单位为字节,Nb列的单位为字。,36,37,状态数组:,38,轮数Nr的取值:Nr max Nb,Nk + 6教材P

14、31表2.9,与Nb和Nk的值有关。,39,40,41,42,43,一个字节总共就256种可能,可以把字节代替变换SubBytes()对各种可能字节的变换结果排成一个表,如表2.10所示,该表称为AES的S盒。可以通过查表直接得到Subbytes()的输出。这样可以加快程序执行速度。如果状态中的一个字节为xy,则S盒中第x行第y列的字节就是SubBytes()的输出。例:设有状态中的一个字节为C4H,则SubBytes ( )的输出为S盒中第C行第4列的字节值为1CH。可以看出AES的S盒具有一定的代数结构,而DES中S盒是人为构造的。,44,共4行,每行以字节为单位循环移位,共Nb列,每列与

15、一个固定的多项式a(x)进行模x4+1乘法,a(x)是模x4+1可逆的。,45,4圈密钥加法变换AddRoundKey ( )圈密钥也称轮密钥,圈密钥加法变换AddRoundKey( )是将一个圈密钥按位异或到一个状态上,如图2.10所示,圈密钥的长度为Nb个字。圈密钥按顺序取自扩展密钥ExpandedKey,扩展密钥是由原始密钥经过扩展后得到的,扩展密钥的长度为Nb(Nr十1)个字 。 例:(S0j ,S1j ,S2j ,S3j)=(S0j ,S1j ,S2j ,S3j)(k0j ,k1j ,k2j ,k3j),0 j 3。其中(k0j ,k1j ,k2j ,k3j)表示扩展密钥中的第rNb

16、 + j个字,0 r Nr。,46,圈密钥按列S00, S10 ,S20 ,S30,S03, S13 ,S23 ,S33顺序与状态上各元素进行异或运算。在AES加密过程中,r = 0时,是第一轮变换之前的初始圈密钥加法变换;r = Nr时,是输出之前的最后一轮密钥加法变换。Nb与Nk不同如何进行加法变换呢?他们以字为单位,而且是以Nb个字同时进行加法变换。 Nr十1轮需要 Nr十1次Nb个字的加法变换,即需要Nb(Nr十1)个字密钥。由Nk个字的密钥,如何扩展成长度为Nb(Nr十1)个字的扩展密钥呢?,47,5扩展密钥(密钥编排规则)AES算法利用外部输入字数为Nk的密钥串K,通过扩展密钥程序得到共Nb(Nr + l)字的扩展密钥串。对扩展密钥按每组为Nb个字分组,将每组的密钥称为圈密钥(或轮密钥)。这样就可以产生Nr + 1个圈密钥,每个圈密钥由Nb个字组成。每个字用wi表示,其中i = 0,1,2, , Nb(Nr1) - 1。扩展密钥算法见教材p35-36。一次生成所有密钥,不像DES算法,在每轮变换密钥。扩展密钥程序涉及三个RotWord()、SubWord()和Rcon 模块。它们的工作方式如下:,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

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