网络安全密码学简介密码学发展历史古典密码近代密码现代密码古典密码起始时间:从古代到19世纪末,长达几千年密码体制:纸、笔或者简单器械实现的简单替代及换位通信手段:信使例子:行帮暗语、隐写术、黑帮行话近代密码起始时间:从20世纪初到20世纪50年代,即一战及二战时期密码体制:手工或电动机械实现的复杂的替代及换位通信手段:电报通信现代密码起始时间:从20世纪50年代至今密码体制:分组密码、序列密码以及公开密钥密码,有坚实的数学理论基础。通信手段:无线通信、有线通信、计算网络等现代密码学的重要事件1949年Shannon发表题为《保密通信的信息理论》,为密码系统建立了理论基础,从此密码学成了一门科学。(第一次飞跃)1976年后,美国数据加密标准(DES)的公布使密码学的研究公开,密码学得到了迅速发展。1976年,Diffe和Hellman提出公开密钥的加密体制的实现,1978年由Rivest、Shamire和Adleman提出第一个比较完善的公钥密码体制算法(第二次飞跃)(现代)密码学的基本概念密码学(Cryptology)是结合数学、计算机科学、电子与通讯等诸多学科于一体的交叉学科,是研究密码编制和密码分析的规律和手段的技术科学。密码学不仅具有信息通信加密功能,而且具有数字签名、身份认证、安全访问等功能密码学提供的只是技术保障作用密码学分支密码学的两个分支密码编码学研究密码变化的客观规律,设计各种加密方案,编制密码以保护信息安全密码分析学研究如何分析和破译密码相互对立、相互促进密码学的基本思想用秘密方式写东西的艺术对机密信息进行伪装将机密信息表述为不可读的方式有一种秘密的方法可以读取信息的内容信息不可读消息原始信息伪装去伪装密码系统/密码体制密码系统一个用于加/解密,能够解决网络安全中的机密性、完整性、可用性、可控性和真实性等问题中的一个或几个的系统由明文、密文、加密算法和解密算法、密钥五部分组成。明文:需要加密的原始信息,用m表示密文:明文经过变换或伪装,形成密文,用c表示密码算法加密变换与解密变换的具体规则商业上多公开,而军事上多保密密钥空间加密和解密算法的操作是在密钥k控制下进行的。密钥的全体称为密钥空间加密和加密加密:对明文实施的一系列变换过程Ek(m)加密:对密文施加的一系列的逆变换还原明文的过程Dk(c)密码体制分类对称密码体制(SymmetricSyetem)加密密钥和解密密钥相同,或者虽然不相同,但由其中的任意一个可以很容易地推出另一个,又称传统密码体制、秘密密钥体制或单密钥体制。非对称密码体制(AsymmetricSystem)加密密钥和解密密钥不相同,并且从一个很难推出另一个,又称公开密钥体制用一个密钥进行加密,而用另一个进行解密。其中一个密钥可以公开,成为公开密钥(pulickey),简称公钥;另一个密钥成为私人密钥(privatekey),简称私钥。密码系统的模型加密算法解密算法加密密钥明文密文解密密钥明文密码系统的安全性是基于密钥而不是加密和解密算法的细节。这意味着算法可以公开,甚至可以当成一个标准加以公布。密码系统的安全性(1)可破译:由密文推出明文或密钥,或者由明文和密文可以寻求密钥无条件安全性:理论上不可破译不论提供的密文有多少,密文中所包含的信息都不足以惟一地确定其对应的明文;具有无限计算资源(诸如时间、空间、资金和设备等)的密码分析者也无法破译某个密码系统。密码系统的安全性(2)计算安全性理论上可破译,但是需要付出十分巨大的计算,不能在希望的时间或可行的经济条件下求出准确的答案密码分析/密码攻击借助窃听到的密文以及其它信息,通过各种方法推求原来的明文甚至密钥的过程,叫做密码分析或密码攻击被动攻击:窃听、分析,破坏明文信息的机密性防范措施:加密主动攻击:篡改、伪装等,破坏明文信息的完整性防范措施认证数字签名密码攻击方法(1)密码分析:常用的方法有以下4类:惟密文攻击已知明文攻击选择明文攻击选择密文攻击密码攻击方法(2)惟密文攻击密码破译者除了拥有截获的密文,以及对密码体制和密文信息的一般了解外,没有什么其它可以利用的信息用于破译密码。在这种情况下进行密码破译是最困难的,经不起这种攻击的密码体制被认为是完全不保密的。已知明文攻击密码破译者不仅掌握了相当数量的密文,还有一些已知的明文,密文对(通过各种手段得到的)可供利用。现代的密码体制(基本要求)不仅要经受得住唯密文攻击,而且要经受得住已知明文攻击。密码攻击方法(3)选择明文攻击密码破译者不仅能够获得一定数量的明文,密文对,还可以用它选择的任何明文,在暂时未知密钥的情况下能加密相应的明文。选择密文攻击密码破译者能选择不同的被加密的密文,并还可得到对应的解密的明文,据此破译密钥及其它密文。密码体制的基本原则密码体制是不可破的(理论上不可破,计算上不可破);密码体制的安全性是依赖密钥的保密,而不是依赖于对加密体制的保密;加密和解密算法适用于密钥空间中的所有元素;密码体制既易于实现又便于使用。密钥空间应足够大,使得试图通过穷举密钥空间进行搜索的方式在计算上不可行。现代密码的算法秘密密钥算法-对称密码技术公开密钥算法-公钥密码技术哈希算法秘密密钥算法加密和解密使用相同的密钥明文密文密文明文加密解密密钥秘密密钥算法的应用(1)通过不安全的信道传输信息通信双方预先协商好一个密钥发送者用密钥加密接收者用相同的密钥解密在不安全介质中存储信息使用一个密钥对信息加密使用相同的密钥对信息解密秘密密钥算法的应用(2)身份认证口令:易被窃听强认证:能向对方表明自己拥有证明身份的秘密(口令),而不需要泄露该秘密双方拥有一个共享密钥“挑战–相应”的方式表明自己的身份AliceBobrArB挑战响应用KAB加密rA用KAB加密rB秘密密钥算法的应用(3)完整性校验为消息生成一个特定长度的校验码防止对消息的篡改给定一个消息,利用密钥和加密算法,生成一个固定长度的MAC(messageauthenticationcode),并与消息一块发送篡改消息者:不知道密钥公开密钥算法不要求通信双方共享密钥,而是每个通信实体拥有两个密钥公钥:向其他人公开,用于加密私钥:不公开,用于解密不需要传递解密密钥-私钥公开密钥算法的应用(1)通过不安全信道传输信息发送者使用接收者的公钥对信息加密接收者使用自己的私钥加密信息Alice的公钥,私钥为eA,dABob的公钥,私钥为eB,dBAliceBob用eB加密mA用dB解密mA用eA加密mB用dA解密mB公开密钥算法的应用(2)在不安全介质中存储信息用户用公钥加密信息用私钥解密可以为别人加密信息身份认证秘密密钥算法认证:记住大量的秘密密钥公开密钥算法认证:只需记住自己的私钥AliceBob用eB加密r用dB解密rr挑战响应数字签名给定消息发送者使用自己的私钥生成数字签名;接收者使用发送者的公钥来验证;签名结果既取决于发送者的私钥,也取决于消息内容证明某一消息是某一特定实体发送的证明消息未被篡改(完整性校验)公开密钥算法的应用(3)哈希算法一种由任意长的消息计算出一个固定长度数值的数学变换:mh(m)对于任意消息m,计算h(m)相对容易给定h(m),寻找m使得其哈希值为h(m),其难度相当于穷举所有m并计算相应的h(m)寻找两个哈希值相同的m是很困难的哈希算法的应用(1)口令哈希明文存储口令比较危险仅仅保存口令的哈希值消息完整性与秘密密钥算法类似,可以生成MACAliceBob消息秘密计算哈希计算哈希秘密=?哈希算法的应用(2)消息指纹定期计算大型数据的哈希值并存储,可以判断数据是否被修改离线转载程序的安全性设备没有非易失存储器,需要启动时下载程序计算程序的哈希,以保证程序未被篡改网络安全古典密码古典密码体制古典密码体制是指那些比较简单的、大多数采用手工或机械操作对明文进行加密、对密文进行解密的密码体制。古典密码技术以字符为基本加密单元,大都比较简单反映了密码设计和破译的思想,是学习密码学的基本入口,对于理解、设计和分析现代密码仍然具有借鉴的价值。置换技术(1)一维倒置报文倒置:将一整段明文整体倒置,并截成固定长度的字母组,形成密文分组倒置:首先将明文分成固定长度的字符串,再对每组明文的字符分别进行倒置,形成密文明文:iamastudentinnuist密文:tsiunnitnedutsamai对明文字符按某种规律进行位置的交换而形成密文的技术称为置换字符或字符串的多维变序(2)二维易位首先根据约定的书写顺序填入所要加入的明文,再按照约定的抄写顺序写出规定长度的密码iamastudentinnuist密文:iunadnmeuaniststit明文:iamastudentinnuist单表密码单表密码是一种代换密码。所谓代换密码就是指把明文中的字母用另一个固定的字母来代替,把明文变成密文。明文26字母密文26字母加密c=Ek(m)=(m+k)mod26,即每个字母使用其后第k个(循环)代替,如取k=3:明文meetmeafterclass密文PHHWPHDIWHUFODVV解密m=Dk(c)=(c-k)mod26,即m是c前第3个,或其后第23个字母单表置换加密函数nopqrstuvwxyzXHTMYAUOLRGZNabcdefghijklmDKVQFIBJWPESC解密函数NOPQRSTUVWXYZzujdwlptcinryABCDEFGHIJKLMsgmakexofhbvq明文:ifwewishtoreplaceletters密文:WIRFRWAJUHYFTSDVFSFUUFYA多表密码(1)多表密码是利用多个单表代替密码构成的密码体制。它在对明文进行加密的过程中依照密钥的指示轮流使用多个单表代替密码。M=(m1,m2,…,mn)K=(k1,k2,…,kn)C=(c1,c2,…,cn)加密变换:ci=Ei(mi)=mi+kimodN解密变换:mi=Di(mi)=ci-kimodN多表密码(2)K=(1,2,3)nopqrstuvwxyzOPQRSTUVWXYZAabcdefghijklmBCDEFGHIJKLMNnopqrstuvwxyzPQRSTUVWXYZABabcdefghijklmCDEFGHIJKLMNOnopqrstuvwxyzQRSTUVWXYZABCabcdefghijklmDEFGHIJKLMNOP明文:nuist密文:OWLTV网络安全秘密密钥算法秘密密钥算法在算法中,加密和解密过程中的密钥相同。它要求发送者和接收者在安全通信之前,商定一个密钥。又称为对称密码算法、传统密码算法秘密密钥算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对消息进行加密解密。只要通信需要保密,密钥就必须保密。秘密密钥算法的模型加密解密密钥密钥明文密文明文AB明文:原始信息。加密算法:以密钥为参数,对明文进行变换结果为密文。密钥:加密与解密算法的参数,直接影响对明文进行变换的结果。密文:对明文进行变换的结果。解密算法:加密算法的逆变换,以密文为输入、密钥为参数,变换结果为明文。秘密密钥算法的分类序列密码/流密码分组密码序列密码序列密码是对称密码体制中的一类,主要用于政府、军事等领域。加密过程:先把明文转换成明文数据序列,然后同密钥序列进行逐位加密生成密文序列发送给接收者。解密过程:用相同的密钥序列对密文序列进行逐位解密以恢复出明文序列。序列密码加解密框图秘密信道密钥序列产生器密钥序列产生器种子密钥K信道明文序列011...mmmn明文序列011...mmmn密文序列011...cccn密钥序列011...kkkn序列密码小结安全强度取决于密钥序列的随机性和不可预测性不存在数据扩