您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 第2章 现代加密技术
1第二章现代加密技术2密码学(Cryptography)是研究信息系统安全保密的科学,把有意义的信息编码为伪随机性的乱码,以实现信息保护的目的。密码编码学,是研究密码体制的设计,对信息进行编码实现隐蔽信息的一门学问。密码分析学,是研究如何破解被加密信息的学问。2.1加密技术概述31、古典密码学二战以前,以字符为基本加密单元,使用手工和机械方式进行加解密;例:中国古代的拆字法、古希腊的木棍缠绕、近代的转轮机、维吉尼亚密码等。2、现代密码学20世纪70年代以后,以信息块为基本加密单元,使用计算机进行加解密的运算。4明文没有加密的原始信息,M/P密文明文经过加密,C密钥一串字符算法加密时采用的规则:置换、替代或数学函数加密技术=加密算法+密钥2.1.1密码技术的基本概念加密和解密算法的操作通常都是在一组密钥的控制下进行的,分别称为加密密钥(EncryptionKey)和解密密钥(DecryptionKey).5算法是一些公式、法则或程序,规定了明文与密文之间的变换方法。密钥可以看作是算法中的参数,即指示和控制明文与密文间变换的参数,也是唯一能控制明文与密文之间变换的关键,它由使用密码体制的用户随机选取。Data3A78明文密文加密过程解密过程加密算法及密钥解密算法及密钥注意区分6加解密过程就是一组含有参数k的变换。设已知信息M,通过变换E(Encryption)得到密文C。即EK(M)=C,这个过程称之为加密,参数k称为加密密钥。解密算法D(Decryption)是加密算法E的逆运算,解密算法也是含参数k的变换。DK(EK(M))=M.加密解密明文M密文C原始明文M加密密钥K1解密密钥K2EK(M)=CDK(C)=M加解密过程的数学表示72.1.2密码技术的分类1、按照发展阶段手工密码:一战以前机械密码:一战到二战电子机内乱密码:20世纪50年代末到70年代计算机密码:20世纪70年代以后8转轮机-恩尼格马(Enigma)1918年,德国发明家亚瑟·谢尔比乌斯发明了电子加密机械,名叫ENIGMA(读作“恩尼格玛”,意为“谜”),它被证明是到当时为止最为可靠的加密系统之一,在第二次世界大战中成为德国秘密通讯的主要手段,更是希特勒实施“闪电战”的关键。9转轮机|恩尼格马102.1.2密码技术的分类2、按照保密程度理论上保密的密码:一次一密实际上保密的密码:现在使用的DES、RSA等不保密的密码:早期的密码体制11一次一密一次一密密码,由AT&T公司的GilbertVernam在1917年提出。发方和收方各保存一份一次一密乱码本,它是一个大的不重复的完全随机的密钥字母集。发方用乱码本中的某一页密钥加密明文。每个密钥仅对一个消息使用一次。发方对所发的消息加密,然后销毁乱码本中用过的一页。收方有一个同样的乱码本,并依次使用乱码本上的每个密钥去解密密文的每个字符,然后销毁乱码本中用过的一页。122.1.2密码技术的分类3、按照密钥方式对称密码:加解密密钥相同非对称密码:加解密密钥不同4、按照明文形态模拟型密码数字型密码5、按照编制原理基于字符移位的密码基于字符替代的密码基于数学函数的密码13明文字符不变,只进行换位,即顺序被打乱。例如:纵行换位密码明文以固定的宽度水平写出,密文按垂直方向读出。明文:COMPUTERSYSTEMSECURITYCOMPUTERSYSTEMSECURITY密文:CTSETOETCYMREUPSMRUYSI基于字符移位的密码14明文中每一个字符被替换成密文中的另外一个字符,而位置不变。对密文进行逆替换就可恢复出明文。例如:单字母(简单)替代密码就是明文的一个字符用相应的一个密文字符代替。加密过程中是从明文字母表到密文字母表的一一映射。基于字符替代的密码15易操作原则不可破原则整体安全原则与计算机、系统匹配原则柯克霍夫斯原则:密码系统中的算法即使被密码分析员所掌握,也应该无助于用来推导出明文或密钥。2.1.3密码系统的设计原则16柯克霍夫斯原则为什么成为密码系统设计的重要原则?算法是相对稳定的,经过一定次数或一定时间的使用,难免被攻击者所获取。其次,在某种场合可能使用某类密码更为合适,再加上某些设计家对某种密码系统有所偏爱等因素,都可能导致攻击者“猜出”密码算法。更为重要的是,通常只要经过一些统计实验和其它测试就不难分辨出不同的密码类型。因此将安全性依赖于密码算法,认为密码分析员不可能掌握密码系统算法,是一种很危险的想法。17传统密码学:用算法安全性来保证加密的安全性现代密码学:用密钥安全性来保证加密的安全性算法可以公开,可以被分析,可以大量生产使用算法的产品。破译者只知道算法而不知道密钥,则不能得到明文。(保险柜)在现代密码学中加密和解密都依赖于密钥,密钥的所有可能值叫密钥空间。18对称密码体制按照对明文加密方式的不同:分组密码:将明文比特流分成固定长度的组,用同一密钥和算法对每一块加密,输出也是固定长度的密文,适合用软件实现。流密码:又称序列密码,每次加密一个比特位或一个字节的明文,适合用硬件实现。2.2对称密码体制19数据加密标准(DES)是最著名的对称密码算法,它的产生被认为是20世纪70年代信息加密技术发展史上的两大里程碑之一。1977年7月,美国国家标准局正式颁布数据加密标准DES(DataEncryptionStandard)。1980年12月,美国国家标准委员会正式采用DES算法作为美国的商用加密算法。2.2.1数据加密标准DES20扩散:要求明文的统计特性扩散消失到密文中。要做到这一点,必须使明文的每个比特影响到密文的多个比特的取值,即密文的每一位受明文中多位影响。扩散一般通过多重移位来实现;扰乱:用复杂的替代算法使密文的统计特性与加密密钥的取值之间的关系尽量复杂。扩散与扰乱的目的都是为了抗击基于统计分析的密码攻击。一、DES密码的设计思路21加密算法的输入是2w比特长度的明文分组和密钥K,明文分组被分成左右两个部分,即L(0)与R(0),长度均为w比特。这两个部分经过n轮处理后再组合成2w比特长度的密文分组。二、DES密码的基本原理运算的每一轮有相同的结构:(1)输入是上一轮得到的L(i-1)与R(i-1),以及从总密钥K中生成的子密钥K(i)。(2)对L(i-1)进行替代:对R(i-1)应用函数g,然后与L(i-1)相异或。最后将两部分数据互换生成L(i)与R(i)。22每一轮的处理过程Li-1LiRi-1RiLi-1g(Ri-1,Ki)23分组长度密钥长度循环次数子密钥算法轮函数gDES密码的安全性、实现速度取决于下列参数:安全性加解密速度24DES加密流程64位明文初始置换进行16轮置换与替代;进行初始置换的逆置换得到64位密文三、DES的实现步骤DES是一种单钥密码算法,它是将二进制序列的明文分成每64bit一组,用长为64bit的密钥对其进行16轮替代和置换加密,最后形成密文。2564位bit64位码初始变换逆初始变换16轮处理明文密文输入输出IPIP-12612345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364原始明文64位bits所在位置27输入(64位)58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157输出(64位)L0(32位)R0(32位)初始变换IP(换位)28输入(64位)40848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725输出(64位)逆初始变换IP-129Li-1LiRi-1RiLi-1g(Ri-1,Ki)将明文分成左右各32位长的两半对其中一半进行g函数运算得到的结果和另一半进行异或运算每一轮的处理过程30首先用位选择表E将32位的Ri-1扩展成48位二进制块E(Ri-1);与Ki进行异或运算;将得到的48位数分成8个6位数Bi,将每个6位子块输入函数Sj(S盒),输出8个4位二进制块S(Bj)。合成32位二进制块之后,用换位表P进行置换,结果即为函数g的32位输出。函数g(Ri-1,Ki)的设计31E(Ri-1)48位8个4位数BjKi48位32位结果将得到的48位数分成8个6位数Bi函数g(Ri-1,Ki)的设计Ri-132位位选择表E选择函数S换位表P32选择函数S盒的算法S盒的作用在于将每一个6位二进制块都转换成一个4位块;对于每一个6位二进制块Bj=b1b2b3b4b5b6,b1b6确定列号,b2b3b4b5确定行号,对应的值即为结果。例:B1=111011,则经过S盒转换后的S1应为多少?B3=101010,则经过S盒转换后的S3应为多少?33子密钥是DES加密和解密的每一轮都需要的,共16个子密钥,记作Ki。子密钥由初始密钥置换而来。初始密钥Key值为64位,其中第8、16、......64位是奇偶校验位,不参与DES运算。故Key实际可用位数只有56位。即:经过子密钥换位表PC-1的变换后,Key的位数由64位变成了56位。子密钥Ki的产生3412345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364初始密钥64位bits所在位置35输入(64位密钥)57494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124输出(56位密钥)置换选择1经过置换选择1,去掉了输入中的第8、16、24、32、40、48、56、64位C0(28位)D0(28位)36将56位子密钥分为C0、D0两部分,各28位;C0、D0分别进行1位的循环左移,得到C1、D1;将C1(28位)、D1(28位)合并得到56位,再经过置换选择表PC-2,便得到了密钥K0(48位)。子密钥Ki的产生37输入(56位密钥)1417112415328156211023191242681672720132415231374755304051453348444939563453464250362932输出(48位子密钥)置换选择2经过置换选择2,去掉了输入中的第9、18、22、25、35、38、43、54位38依此类推,便可得到K1、K2、......、K15,不过需要注意的是,16次循环左移对应的左移位数要依据下述规则进行:循环左移位数1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1,即第1、2、9、16轮是循环左移1位,其他轮循环左移2位。通过16次循环左移操作和置换选择2的转换,产生16个48比特的子密钥Ki。虽然每个循环的置换函数相同,但由于密钥比特在不断循环移位,所以产生的子密钥并不相同。子密钥Ki的产生391977年,人们估计要耗资两千万美元才能建成一个专门计算机用于DES的解密,而且需要12个小时的破解才能得到结果。1997年1月,RSA公司发起了一个称作“向DES挑战”的竞技赛。用了96天时间,成功地破解了用DES加密的一段信息;1998年,在第二届赛事上,这一记录为41天;1998年7月,破解DES的时间缩短到了56个小时;1999年,
本文标题:第2章 现代加密技术
链接地址:https://www.777doc.com/doc-3741200 .html