密码技术概述3信息安全技术基础2011~2012第一学期2信息安全技术基础学习目标数据保密通信模型及基本术语对称密码体制及其分类与工作原理公钥密码体制及其工作原理数字签名技术及其特性消息完整性保护及认证如何定义和衡量密码体制的安全性本章介绍密码基本概念、分类、实现和应用原理。3信息安全技术基础3.1密码术及发展3.2数据保密通信模型3.3对称密码体制3.4公钥密码体制3.5数字签名3.5消息完整性保护3.6认证3.7计算复杂理论3.8密码分析目录4信息安全技术基础什么是密码术?4Cryptography?5信息安全技术基础3.1密码术及发展•保密性要求即使非授权者获取了数据副本,他也无法从副本中获得有用的信息。Thismessagemustbesecret!GY$^)*JO*-+$%^GQLANH远上寒山石径斜白云深处有人家停车坐爱枫林晚霜叶红于二月花+=6信息安全技术基础3.1密码术及发展•宋曾公亮、丁度等编撰《武经总要》“字验”•公元前405年,斯巴达的将领来山得使用了原始的错乱密码;•公元前一世纪,古罗马皇帝凯撒曾使用有序的单表代替密码;•1863年普鲁士人卡西斯基所著《密码和破译技术》1883年法国人克尔克霍夫所著《军事密码学》•20世纪初,产生了最初的可以实用的机械式和电动式密码机,同时出现了商业密码机公司和市场。•第二次世界大战德国的Enigma密码转轮机,堪称机械式古典密码的巅峰之作。7信息安全技术基础3.1密码术及发展•1976年美国政府颁布数据加密标准(DES)。•1976年Diffie和Hellman发表的文章《密码学的新动向》•1978年R.L.Rivest,A.Shamir和L.Adleman实现了RSA公钥密码体制•1969年哥伦比亚大学的StephenWiesner首次提出“共轭编码”概念。1984年H.Bennett和G.Brassard在此思想启发下,提出量子理论BB84协议•1985年Miller和Koblitz首次将有限域上的椭圆曲线用到了公钥密码系统中。•1989年R.Mathews,D.Wheeler,L.M.Pecora和Carroll等人首次把混沌理论使用到序列密码及保密通信理论。•2001年NIST发布高级加密标准AES,替代DES作为商用密码标准。8信息安全技术基础3.1密码术及发展3.2数据保密通信模型3.3对称密码体制3.4公钥密码体制3.5数字签名3.5消息完整性保护3.6认证3.7计算复杂理论3.8密码分析目录9信息安全技术基础如何在开放网络中保密传输数据?SecretTransmission?10信息安全技术基础明文m=Dk2(c)发送方接收方窃听者加密(Encrypttion)解密(Decryption)解密密钥k2加密密钥k1密文c=Ek1(m)公众信道明文m秘密信道搭线信道11信息安全技术基础3.2数据保密通信模型•对于m∈M,k1,k2∈K,有,五元组(M,C,K,E,D)称为一个密码体制,其中E和D代表具体的密码算法——具体的变换过程或数学方法。可以看出,加密可以看做是将密钥与明文混合变换的过程,而解密是从密文中剥离密钥的过程,因此也称脱密过程。•Kerchhoff假设:一个密码体制,对于所有的密钥,加密和解密算法迅速有效;密码体制的安全性不应该依赖于算法的保密,而仅依赖密钥的保密。12信息安全技术基础3.1密码术及发展3.2数据保密通信模型3.3对称密码体制3.4公钥密码体制3.5数字签名3.5消息完整性保护3.6认证3.7计算复杂理论3.8密码分析目录13信息安全技术基础如何使用相同的密钥加/解密数据?SymmetricCryptography?14信息安全技术基础加密解密明文明文密文密钥密钥对称密码体制15信息安全技术基础3.3对称密码体制•对称密码体制分类:–分组密码先将明文划分成若干等长的块——分组,如每个分组长64比特、128比特,然后再分别对每个分组进行加密,得到等长的密文分组。解密过程类似,有些密码算法解密算法与加密算法完成一样,如DES。–序列密码是把明文以位或字节为单位进行加密,一般是与密钥(如由密钥种子产生的任意长度的字节流)进行混合(最简单地进行异或运算)获得密文序列。16信息安全技术基础3.3对称密码体制•两个思想:–扩散(Diffusion):即将明文及密钥的影响尽可能迅速地散布到较多的输出密文中,典型操作就是“置换”(Permutation)(如重新排列字符)。–混乱(Confusion):目的在于使作用于明文的密钥和密文之间的关系复杂化,使得明文和密文、密文和密钥之间的统计相关特性极小化,从而使统计分析攻击不能奏效。混乱通常采用“代换”(Substitution)操作。17信息安全技术基础FLiRiLi+1Ri+1kiFLiRiLi+1Ri+1Feistel网络结构iiRL1),(1iiiikRFLR1iiLR),(),(111iiiiiiikRFRkLFRL18信息安全技术基础3.3对称密码体制•序列密码(流密码)将明文流和密钥流混合(一般为简单的按字节或比特位异或)产生密文流。•流密码使用一个“种子密钥”产生密钥流(理论上可以是无限长度),通信双方共享这个“种子密钥”,按相同方式产生密钥流。伪随机字节发生器异或加密明文流密钥流种子密钥密文流伪随机字节发生器异或解密密钥流种子密钥明文流加密方解密方明文流:11010011010100...密钥流:01011001111000...密文流:10001010101100...示例(异或)19信息安全技术基础3.1密码术及发展3.2数据保密通信模型3.3对称密码体制3.4公钥密码体制3.5数字签名3.5消息完整性保护3.6认证3.7计算复杂理论3.8密码分析目录20信息安全技术基础如何方便地管理和使用密钥?AsymmetricCryptography?21信息安全技术基础3.4公钥密码体制公钥加密体制加密解密明文明文密文公钥私钥22信息安全技术基础3.4公钥密码体制•公钥密码就是一种陷门单向函数f。即:•(1)对f的定义域中的任意x都易于计算f(x),而对f的值域中的几乎所有的y,即使当f为已知时要计算f-1(y)在计算上也是不可行的。•(2)当给定某些辅助信息(陷门信息)时则易于计算f-1(y)。•此时称f是一个陷门单向函数,辅助信息(陷门信息)作为秘密密钥。这类密码一般要借助特殊的数学问题,如数论中的大数分解、离散对数等数学难解问题,构造单向函数,因此,这类密码的安全强度取决于它所依据的问题的计算复杂度。23信息安全技术基础3.4公钥密码体制一个公钥密码体制是一个七元组(M,C,SK,PK,Gen,Enc,Dec):•明文空间M(Message消息,或Plantext),需要加密的消息表示为m,m∈M。•密文空间C(Ciphertext),明文m经过加密变换为密文c,c∈C。•私钥空间SK(SecretKey),所有可能的私钥构成。•公钥空间PK(PublicKey),所有可能的公钥构成。•密钥生成算法Gen(KeyGenerationAlgorithm),从可能的私钥空间中随机选取一个私钥kpri(PrivateKey),kpri∈SK,算法Gen输出私钥kpri和对应的公钥kpub(PubklicKey),kpub∈PK。•加密算法Enc(EncryptionAlgorithm),给定明文m,m∈M,输出密文c,c=Enc(m,kpub),c∈C。•解密算法Dec(DecryptionAlgorithm),给定密文c,c∈C,输出明文m,m=Dec(c,kpri),m∈M。24信息安全技术基础3.1密码术及发展3.2数据保密通信模型3.3对称密码体制3.4公钥密码体制3.5数字签名3.5消息完整性保护3.6认证3.7计算复杂理论3.8密码分析目录25信息安全技术基础如何在电子世界中实现签名?DigitalSignature?26信息安全技术基础3.5数字签名一个假想的例子:–某人甲要通过网络传输一份文档给乙,乙接收到这份文档,乙能确认这份文档的真实性吗(确实来自于甲,而不是其他人冒充甲发送的)?乙能确定这份文档的正确性码(在传输过程中没有被篡改)?甲如果否认曾经发送过该文档(实际上确实是甲发送的)怎么办?27信息安全技术基础数字签名机制签名验证消息消息签名有效无效签名者私钥签名者公钥签名者签名验证者28信息安全技术基础3.5数字签名•一个数字签名机制是使用一种公钥密码,使得一个消息接收者相信接收的消息来自声称的消息发送者(消息主体的识别与鉴别),并信任该消息(消息被正确地传递,没有被篡改——完整性保护),同时消息签名者不能否认签发了该消息(不可否认性保护)。29信息安全技术基础3.5数字签名一个数字签名体制是一个七元组(M,S,SK,PK,Gen,Sig,Ver):•明文空间M(Message消息,或Plantext),对应需要签名的消息表示为m,m∈M。•密文空间S(Signature),明文m经过密码变换输出密文s,s∈S。•私钥空间SK(SecretKey),所有可能的私钥构成。•公钥空间PK(PublicKey),所有可能的公钥构成。•密钥生成算法Gen(KeyGenerationAlgorithm),从可能的私钥空间中随机选取一个私钥kpri(PrivateKey),kpri∈SK,算法Gen输出私钥kpri和对应的公钥kpub(PubklicKey),kpub∈PK。•签名算法Sig(SigningAlgorithm),给定明文m,m∈M,输出签名s,s=Sig(m,kpri),s∈S。•加密算法Ver(VerifyingAlgorithm),给定签名s,s∈S,验证签名v=Ver(s,kpuk),输出正确或错误的结果,v∈{True,False}。30信息安全技术基础数字签名机制签名验证签名s签名者公钥签名者私钥Hash摘要h(m)Hash消息m摘要h(m)消息m有效无效签名者签名验证者31信息安全技术基础3.5数字签名密码学哈希函数:•密码学哈希函数将任意长度输入转换为特定长度输出,典型的算法如MD5、SHA、SHA-256等。一个密码学哈希函数H应具备以下特性:•单向性:给定一个输入m,容易计算哈希值h=H(m);但反过来,给定一个哈希值h,计算原像m是困难的。•抗碰撞性:已知一个哈希值h=H(m),找出另一个m’,使得H(m’)等于h是困难的;同时任意找到两个值c1、c2,使得这两个数的哈希值相同,即H(c1)=H(c2),是困难的。32信息安全技术基础带签名加密封装32Hash加密明文密钥签名摘要私钥(发送者)签名密文密文|签名解密明文密钥签名验证公钥(发送者)解密加密私钥(接收者)解密公钥(接收者)Hash明文有效无效摘要密文接收者发送者33信息安全技术基础3.1密码术及发展3.2数据保密通信模型3.3对称密码体制3.4公钥密码体制3.5数字签名3.5消息完整性保护3.6认证3.7计算复杂理论3.8密码分析目录34信息安全技术基础如何保护通信数据的完整性?DigitalSignature?35信息安全技术基础3.5消息完整性保护•循环冗余校验码(CyclicRedundancyCheck,CRC)?•数字签名?36信息安全技术基础3.5消息完整性保护•消息认证码(MessageAuthenticationCode,MAC)——带密码的摘要消息MMAC摘要+密码用户A用户B密码变换消息MKMAC消息M消息M密码变换比较一致:接受不一致:拒绝K37信息安全技术基础3.5消息完整性保护•一个基于HMAC的应用实例,使用HMAC完成一个典型的“质询/响应”(Challenge/Response)身份认证过程:(1)客户端向服务器发出认证请求,如一个登录请求(假设是浏览器的GET请求)。(2)服务器返回一个质询(Challenge),一般为一个随机值,并在会话中记录这个随机值。(3)客户端将该随机值作为输入字符串,与