2020/4/7第2章密码技术•2.1密码学基础•2.2对称密码算法•2.3非对称密码算法•2.4数字签名技术•2.5数字证书•2.6信息隐藏技术•2.7邮件加密软件PGP•2.8习题2020/4/72.1密码学基础•2.1.1密码学历史及密码系统组成•2.1.2密码的作用•2.1.3密码算法2020/4/72.1.1密码学历史及密码系统组成•密码系统的四个基本部分组成–明文:要被发送的原文消息–密码算法:由加密和解密的数学算法组成–密文:明文经过加密算法加密之后得到的结果–密钥:在加密和解密过程中使用的一系列比特串图2-1密码系统组成2020/4/72.1.2密码的作用•实现信息的保密性,完整性,不可否认性和可控性保密性:消息的发送者使用密钥对消息进行加密完整性:密码可以保证被接收方收到的消息在传输过程中未经任何变动以保护其完整性。不可否认性:以向用户提供不可否认性可控性:利用密码技术向其他的用户或系统来证明自己的身份2020/4/72.1.3密码算法加密密钥密文:QnTtadk3加密算法明文:hello!解密密钥明文:hello!解密算法密文:QnTtadk3图2-2密码算法基本加密操作图2-3密码算法基本解密操作2.2对称密码算法•2.2.1DES算法•2.2.2对称密码算法存在的问题2020/4/72020/4/72.2对称密码算法•对称密码算法:消息的发送者和接收者使用相同的密钥进行加密和解密的算法。这个密钥通常被称为共享密钥或秘密密钥。•流密码:RC4•分组密码:DES,AES,Blowfish,Twofish,Skipjack,和RC22020/4/7•算法描述–典型的分组密码,明文分组长度64位,密钥长度64位•整体结构–解密过程除了子密钥输出的顺序相反外,密钥调度的过程与加密完全相同•特点–灵活、多模式、不能提供足够的安全性能、运算量小、加密速度快、加密效率高2020/4/72.2.1DES算法明文初始置换IPL0L15=R14L1=R0R1=L0⊕F(R0,K1)R0R15=L14⊕F(R14,K15)L16=R15R16=L15⊕F(R15,K16)逆初始置换IP-1密文⊕FK1⊕FK16整体结构2020/4/7F函数S2S5S6S4S3S7EPS1S81iR子密钥48bits32bits2020/4/7密钥调度PC1PC2PC2PC2PC2循环左移循环左移循环左移循环左移循环左移循环左移循环左移循环左移密钥(64bits)子密钥1(48bits)子密钥2(48bits)子密钥15(48bits)子密钥16(48bits)2020/4/72.2.2对称密码算法存在的问题•密钥管理成为用户的负担•对拥有庞大用户数量的网络的通信空间提出了很高的要求•密钥不能被及时更换以保证信息的保密性•数据的完整性得不到保证•无法保证接收到的消息来自于声明的发送者2.3非对称密码算法•2.3.1RSA算法•2.3.2非对称密码算法存在的问题2020/4/72020/4/72.3非对称密码算法•非对称密码算法和对称密码算法最大的不同在于通信双方使用不同的密钥。•除了用于加密,当用户使用自己的私钥对消息进行加密,而使用公钥解密时,非对称密码算法还可以实现签名的功能,保证了数据的完整性2020/4/72.3.1RSA算法•能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。•算法基于大素数因式分解的困难性来产生公钥/私钥对2020/4/7密码体制公钥和私钥的产生随机选择两个大素数p和q,p不等于q,p和q保密。计算n=pq,n公开。计算欧拉函数=(p-1)(q-1),保密。随机选择整数e,1<e<且gcd(e,)=1,e公开。计算d满足:de≡1(mod),d保密。(n,e)是公钥,(n,d)是私钥。加密变换:对于明文m,密文为c≡modn解密变换:对于密文c,明文为m≡modn2020/4/7字符串明文字符串明文Byte[]字节流明文密文Byte[]Byte[]字节流明文密文Byte[]加密操作解密操作通过Encoding指定不同的代码页,把字符串转成不同代码页对应的编码,表现为byte[]形式使用加密时Encoding使用的代码页,把byte[]形式的明文转换为适当字符串明文公钥公钥私钥加密解密cer证书pfx证书12345RSA加密解密过程图解2020/4/7RSA应用举例•Alice想要使用RSA算法与Bob通信。首先,Alice计算公钥/私钥对。选p=11,q=23,则n=pq=253,=(p-1)(q-1)=220。选加密密钥e=3,由3×147≡1(mod220),得解密密钥d=147。至此,Alice的公钥对是(253,3),私钥对是(253,147)。Alice将公钥(253,3)传递给Bob,自己保留私钥(253,147)。•设Bob向Alice传递的消息是“A”,Bob首先将消息转换成ACSII码形式(当然也可以选择其他方式),得m=65。Bob利用公钥(253,3)计算≡120mod253,得到密文c=120。然后,Bob将c=120通过信道传递给Alice。•Alice收到密文消息c=120之后,计算≡65mod253,得到明文消息m=65。则Alice知道Bob发送给自己的消息是“A”。2020/4/72.3.2非对称密码算法存在的问题•速度问题•中间人攻击:中间人攻击是一种常见的攻击方式,攻击者从通信信道中截获数据包并对其进行修改,然后再插回信道中,从而将自己伪装成合法的通信用户。2.4数字签名技术•2.4.1数字签名生成•2.4.2数字签名认证2020/4/72020/4/72.4数字签名技术•使用一个哈希函数来产生明文消息的消息摘要(又称MAC值)。•哈希函数是一种单向函数,并且能保证消息和消息摘要之间一对一的映射,也就是说,没有任何两个不同的消息能够产生相同的哈希值。2020/4/7•四个政府认可的哈希函数–SHA-1对任何输入长度小于比特的消息产生一个160比特的摘要。–SHA-256对任何输入长度小于比特的消息产生一个256比特的摘要。–SHA-384对任何输入长度小于比特的消息产生一个384比特的摘要。–SHA-512对任何输入长度小于比特的消息产生一个512比特的摘要。2.4.1数字签名生成2020/4/7•三种常见的MD算法–MD2对任意长度的消息产生一个128比特的消息摘要,适用于8比特的处理器。–MD4对任意长度的消息产生一个128比特的消息摘要。但由于MD4算法存在引起冲突的漏洞,应该避免使用。–MD5对任意长度的消息产生一个128比特的消息摘要,适用于32位的处理器。MD5检验互联网下载的文件的完整性,防止偶然的和蓄意的篡改。2020/4/72.4.2数字签名认证原始消息消息摘要数字签名原始消息数字签名原始消息数字签名原始消息消息摘要消息摘要'Hash函数计算发送方私钥加密传输Hash函数计算发送方公钥解密=?发送方接收方数字签名生成验证过程2020/4/7•可能出现的意外–发送方和接收方之间发生传输错误;–消息传输过程中,被第三方更改;–消息是伪造的;–通信的一方不正确地使用了密码软件2.5数字证书•2.5.1数字证书的工作原理•2.5.2数字证书的颁发机制•2.5.3数字证书的分类2020/4/72020/4/72.5数字证书•定义–数字证书是由权威公正的第三方机构(即CA中心)签发的证书,它能提供在因特网上进行身份验证的一种权威性电子文档,人们可以在互联网交往中用它来证明自己的身份和识别对方的身份。•应用–数字证书广泛应用于收发安全电子邮件、网上银行、网上办公、网上交易、访问安全站点等安全电子事务处理和安全电子交易活动。2020/4/72.5.1数字证书的工作原理浏览器管理员证书最终用户浏览器用户证书管理员路由器防火墙CA服务器CA认证系统Internet2020/4/72.5.2数字证书的颁发机制•颁发过程–1.用户首先产生自己的密钥对,并将公钥及部分个人身份信息传送给认证中心–2.认证中心在核实身份后,将执行一些必要的步骤,以确信请求确实由用户发送而来–3.认证中心将发给用户一个数字证书,该证书内包含用户的个人信息和他的公钥信息,同时还附有认证中心的签名信息–4.用户使用自己的数字证书进行相关的各种活动2020/4/7•授权机构–用户和服务器发布数字证书时,需要选择可信的第三方CA(CertificateAuthority),并遵循一定的程序。CA中心,即证书授证中心,作为受信任的第三方,承担公钥体系中公钥的合法性验证的责任。根CA在线子CA用户证书用户证书图2-11数字证书授权机构2020/4/72.5.3数字证书的分类•电子邮件证书–证明邮件发件人的真实性–不证明数字证书所有者姓名(由证书上面CN一项所标识)的真实性,只证明邮件地址的真实性•服务器证书(SSL证书)–证明服务器的身份和进行通信加密•客户端个人证书–身份验证和数字签名2020/4/72.6信息隐藏技术•2.6.1信息隐藏•2.6.2数字水印•2.6.3数字隐写2020/4/72.6.1信息隐藏•信息隐藏原理图信息嵌入算法伪装对象C'伪装对象C'信息提取算法载体对象C秘密消息m不安全信道传输密钥K秘密消息m2020/4/72.6.2数字水印•作用–解决数字作品的侵权问题•定义–数字水印将一些标识信息(即数字水印)嵌入数字载体当中(包括多媒体、文档、软件等)达到确认内容创建者、购买者、传送隐秘信息或者判断载体是否被篡改等目的2020/4/7•特点–安全性:数字水印的信息应是安全的,难以篡改或伪造–隐蔽性:数字水印应是不可知觉的,而且应不影响被保护数据的正常使用;不会降质–鲁棒性:是指在经历多种无意或有意的信号处理过程后,数字水印仍能保持部分完整性并能被准确鉴别–水印容量:是指载体在不发生形变的前提下可嵌入的水印信息量。2020/4/7•数字水印算法⑴空间域(时间域)法–以灰度图像而言,每个取样点(pixel)一般是以八个位来表示,且由最高有效位(MSB)开始向右排列至最低有效位(LSB),表示数据位的重要性次序,因此可通过更改每个取样点中敏感度最低的LSB来嵌入水印信息,使得水印具有较高的隐密性⑵变换域法–离散余弦转换域法–小波域法2020/4/72.6.3数字隐写•隐写就是将秘密信息隐藏到看上去普通的信息(如数字图像)中进行传送,以达到保密传送信息的目的•信息隐藏方法–替换系统:用秘密信息替代载体文件的冗余部分。–变换域技术:在信号的变换域嵌入秘密信息。–扩展频谱技术:采用扩频通信的思想进行信息隐藏。–统计方法:通过更改载体文件的若干统计特性来对信息进行编码,并在提取过程中采用假设检验的方法。–失真技术:通过信号失真来保存信息,在解码时测量与原始载体的偏差。2020/4/72.7邮件加密软件PGP•2.7.1PGP加密原理•2.7.2PGP安装•2.7.3PGP生成密钥•2.7.4PGP加解密2020/4/72.7.1PGP加密原理IDEA密钥被加密的IDEA密钥用乙的公钥加密加密邮件邮件密文传输邮件密文被加密的IDEA密钥邮件密文被加密的IDEA密钥甲乙邮件密文IDEA密钥用乙的私钥解密解密邮件邮件原文2020/4/72.7.2PGP安装图2-16PGP安装示意图2020/4/72.7.3PGP生成密钥根据密钥生成向导,按照提示步骤操作图2-17PGP生成密钥示意图2020/4/7图2-18输入用户名和邮件地址图2-19选择加密类型2020/4/7图2-20设置口令图2-21PGP生成密钥2020/4/72.7.4PGP加解密图2-23PGP加密示意图图2-24PGP解密示意图2020/4/72.8习题•一、选择题1.密码技术的哪一个目标不能被对称密码技术实现?A.完整性B.保密性C.不可否认性D.认证性2.A想要使用非对称密码系统向B发送秘密消息。A应该使用哪个密钥来加密消息?A.A的公钥B.A的私钥C.B的公钥D.B的