计算机安全密码学4.ppt
- 文档编号:18074630
- 上传时间:2023-08-12
- 格式:PPT
- 页数:70
- 大小:817KB
计算机安全密码学4.ppt
《计算机安全密码学4.ppt》由会员分享,可在线阅读,更多相关《计算机安全密码学4.ppt(70页珍藏版)》请在冰点文库上搜索。
计算机安全技术,密码学理论及应用:
加密技术,信息安全的任务,保密性(confidentiality):
即保证信息为授权者享用而不泄漏给未经授权者。
完整性(integrity):
包括数据完整性(即未被未授权篡改或者损坏)和系统完整性(即系统未被非授权操纵,按既定的功能运行)。
可用性(availability):
即保证信息和信息系统随时为授权者提供服务,而不要出现非授权者滥用却对授权者拒绝服务的情况。
信息安全的任务,信息的不可否认性(Non-repudiation):
要求无论发送方还是接收方都不能抵赖已发送的消息。
认证性(Authentication):
消息的接收者应那个确认消息的来源。
密码学的目的:
实现消息源和消息宿在不安全的信道上进行通信,而系统分析者(破译者)不能理解他们通信的内容。
加密通信的shannon模型,加密算法分类,对称密码算法:
又称传统密码算法,秘密密钥算法:
就是加密密钥和解密密钥相同,或实质上等同,即从一个易于推出另一个。
运算速度快、密钥短、多种用途(随机数产生、Hash函数)、历史悠久。
密钥管理困难(分发、更换),密钥量大,无法实现数字签名。
非对称密钥算法,又称公开密钥算法:
加密密钥和解密密钥不相同,从一个很难推出另一个。
只需保管私钥、可以相当长的时间保持不变、需要的数目较小。
运算速度慢、密钥尺寸大、历史短,基于公开密钥的加密过程,用户拥有自己的密钥对(KU,KR),公钥KU公开,而私钥KR保密。
AB:
Y=EKUb(X),B:
DKRb(Y)=DKRb(EKUb(X)=X,公钥密钥的应用范围,加密/解密数字签名(身份认证)密钥交换,数字信封,数字信封(DIGITALENVELOPE):
对数据进行加密的密钥必须经常更换。
数字信封解决两个难题:
取长补短单钥体制:
密钥分发困难;高效;数据的加密公钥体制:
加解密时间长;灵活;密钥的加密目的:
利用数据接收者的公钥来封装保护加密数据的密钥。
数字信封,发方:
A1:
生成对称密钥,用该密钥对报文加密;A2:
用收方的公钥加密上述对称密钥;A3:
将A1、A2步骤的结果传给收方;收方:
B1:
用自己的私钥解密对称密钥;B2:
用得到的对称密钥解密报文。
数字信封,在数字信封中,信息发送方采用对称密钥来加密信息内容,然后将此对称密钥用接收方的公开密钥来加密(这部分称数字信封)之后,将它和加密后的信息一起发送给接收方,接收方先用相应的私有密钥打开数字信封,得到对称密钥,然后使用对称密钥解开加密信息。
这种技术的安全性相当高。
数字信封主要包括数字信封打包和数字信封拆解,数字信封打包是使用对方的公钥将加密密钥进行加密的过程,只有对方的私钥才能将加密后的数据(通信密钥)还原;数字信封拆解是使用私钥将加密过的数据解密的过程。
数字信封,网络信息安全,密码学理论及应用:
数字签名技术,数字签名,鉴别用以保护双方之间的数据交换不被第三方侵犯;但它并不保证双方自身的相互欺骗和抵赖。
假定A发送一个认证的信息给B,双方之间的争议可能有多种形式:
B伪造一个不同的消息,但声称是从A收到的。
A可以否认发过该消息,B无法证明A确实发了该消息,数字签名技术主要解决以下问题:
否认:
发送方不承认自己发送过的某一个报文。
伪造:
接收方自己伪造一份报文,并声称它来自发送方冒充:
网络上的某个用户冒充另一个用户接收或发送报文篡改:
接收方对收到的信息进行篡改。
保密性vs真实性,保密性与真实性是两个不同的概念。
根本上,信息加密提供的是保密性而非真实性加密代价大(公钥算法代价更大)。
鉴别函数与保密函数的分离能提供功能上的灵活性。
某些信息只需要真实性,不需要保密性广播的信息难以使用加密(信息量大)网络管理信息等只需要真实性政府/权威部门的公告,签名与加密的关系,签名提供真实性(authentication)加密提供保密性(confidentiality)“签名+加密”提供“真实性+保密性”两种实现方式:
(AB)先签名,后加密:
EKUbM|SigA(M)先加密,后签名:
EKUb(M)|SigA(EKUb(M)方式的问题:
发生争议时,B需要向仲裁者提供自己的私钥安全漏洞:
攻击者E截获消息,把SigA(EKUb(M)换成SigE(EKUb(M),让B以为该消息来自E保存信息多:
除了M,SigA(EKUb(M),还要保存EKUb(M)(KUb可能过期),消息认证与数字签名的区别:
前者能验证消息来源及完整性,防范第三者;后者在收发双方产生利害冲突时,解决纠纷。
数字签名需要解决的一些问题签字后的文件可能被B重复使用。
如果签字后的文件是一张支票,B很容易多次用该电子支票兑换现金,为此A需要在文件中加上一些该支票的特有的凭证,如timestamp等,以防止上述情况发生。
数字签名与传统签名的比较,传统签名的基本特点:
与被签的文件在物理上不可分割签名者不能否认自己的签名签名不能被伪造容易被验证数字签名是传统签名的数字化,基本要求:
能与所签文件“绑定”签名者不能否认自己的签名签名不能被伪造容易被自动验证,数字签名应具有的性质,必须能够验证作者及其签名的日期时间;必须能够认证签名时刻的内容;签名必须能够由第三方验证,以解决争议;数字签名机制提供了一种抗否认性,使用户无法对其网络行为进行抵赖。
数字签名技术也具有防止信息伪造和窜改能力。
数字签名技术,数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。
接收者只有用发送的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。
如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。
数字签名主要的功能是:
保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。
数字签名工作流程,采用散列算法对原始报文进行运算,得到一个固定长度的数字串,称为报文摘要(messagedigest)。
发送方生成报文的报文摘要,用自己的私有密钥对摘要进行加密来形成发送方的数字签名。
这个数字签名将作为报文的附件和报文一起发送给接收方。
接收方首先从接收到的原始报文中用同样的算法计算出新的报文摘要,再用发送方的公钥对报文附件的数字签名进行解密,来判断报文是否被篡改。
数字签名算法,数字签名算法主要由两个算法组成,即签名算法和验证算法,用户签名算法签名一个消息,所得到的签名能通过一个公开的验证算法来验证。
普通数字签名算法RSAEIGamalDSS(数字签名标准)/DSA不可否认的数字签名算法群签名算法盲签名算法,网络信息安全,密码学理论及应用:
鉴别技术,鉴别技术,信息安全中另一个重要领域是消息鉴别,用户通过网络传输大量的消息(或报文),因此,必须对消息的有效性和合法性进行鉴别或认证。
防范信息伪造和篡改则需要消息鉴别技术。
消息鉴别提供了一种证实的报文来自可信源且未被窜改的手段。
鉴别的主要目的:
验证信息的发送者是真正的,而不是冒充的,此为信源识别。
(实体或身份鉴别)验证信息的完整性,在传送或存储过程中未被篡改,重放或延迟等。
(消息鉴别),鉴别系统的组成,鉴别编码器和鉴别译码器可抽象为鉴别函数,用于产生鉴别的认证符或认证码。
一个安全的鉴别系统,需满足:
接收者能够检验和证实消息的合法性、真实性和完整性(消息鉴别)消息的发送者和接收者不能抵赖(身份鉴别)除了合法的消息发送者,其它人不能伪造合法的消息。
首先要选好合适的鉴别函数,该函数产生一个认证标识,然后在此基础上,给出合理的鉴别协议(AuthenticationProtocol),使接收者完成消息的鉴别。
一个单纯鉴别系统的模型,鉴别函数分类1,鉴别的方式分类消息加密:
整个消息的密文作为认证标识消息鉴别码(MAC):
公开函数+密钥产生一个固定长度的值作为认证标识散列函数:
一个公开函数将任意长度的消息映射到一个固定长度的哈希值,作为认证标识,鉴别函数分类2,鉴别技术分为对称技术和非对称技术:
对称技术分为两种基于密钥散列函数的MAC基于分组加密算法得MAC使用非对称技术分为两种数字签字技术,对称加密保密和鉴别,A,B,对称加密保密和鉴别,明文M的自动确定,M定义为有意义的明文序列,便于自动识别强制定义明文的某种结构,这种结构是易于识别但又不能复制且无需借助加密的可以在加密前对每个报文附加检错码,即所谓的帧检验序列号或检验和FCS内部差错控制和外部差错控制,差错控制,提供鉴别保证数据完整性,提供鉴别,基于分组加密方式的MAC,对称加密方式由于信息源A和信息宿B共享加密解密的密钥,因此,对称加密方式同时提供了保密和鉴别的功能。
利用CBC分组密码加密模式进行加密,所得到的最后一个分组和初始向量IV:
(IV,Cl)作为MAC附在M后发出.(消息鉴别)M=m1,m2,ml,设C0=IV作为随机初始向量,CiEK(miCi-1),i=1,2,l,只有知道密钥K的人才能生成和验证Cm,可以实现鉴别发送者的身份。
(身份鉴别),基于DES的报文鉴别码,算法来源FIPSpublication(FIPSPUB113)ANSIstandard(X9.17)使用CBC(CipherBlockChaining)方式,初始向量为IV=0,基于DES的报文鉴别码,将数据按64位分组,D1,D2,DN,必要时最后一个数据块用0向右填充运用DES算法E,密钥K数据认证码(DAC)的计算如下:
O1=EK(D1)O2=EK(D2O1)O3=EK(D3O2)ON=EK(DNON-1)选取ON中的部分或全部字节作为数据的MAC,FIPSPUB113,公钥加密保密性,A,B,私钥加密鉴别和签名,A,B,非对称算法保密、鉴别和签名,A,B,对称加密:
保密性与鉴别,对称加密算法:
提供保密提供鉴别(实体鉴别)不提供签名,基于散列函数(hash)的鉴别方式,基于散列函数的鉴别方法是使用所谓密钥散列函数技术.散列函数是一个确定的函数,它将任意长的比特串映射为定长比特串的散列值.设h表示散列函数,其输出长度为|h|,h具有如下性质:
混合变换:
对于任意得输入x,输出的散列值h(x)应当和区间0,2|h|中均匀的二进制串在计算上是不可区分的.抗碰撞攻击:
找两个输入x和y,且xy,使得h(x)=h(y),在计算上是不可行的.(要求h的输出空间足够大,|h|最小为128,而典型值为160抗原像攻击:
已知一个散列值h,找一个输入串x,使得h=h(x),在计算上是不可行的.实用性:
给定一个输入串x,h(x)的计算可以在关于x的长度规模的低阶多项式时间内完成.,MD5(消息摘要算法)简介,Merkle于1989年提出hashfunction模型。
MIT教授RonRivest于1990年提出MD4算法。
RonRivest于1992年提出MD5算法。
MD5把数据分成512-bit块MD5的hash值是128-bit前几年,MD5被认为是非常安全的,也是最主要、普遍被使用的安全散列算法。
但是,目前,随着软硬件技术的发展,以及对MD5算法的研究,MD5算法已经被认为是易受攻击的散列算法。
安全散列算法(SHA),安全散列算法(SHA)是由NIST提出,SHA算法也是基于MD4,它允许的最大输入报文长度步超过264位,输出160位的消息摘要。
SHA-1算法计算时也是按512位的分组进行处理,总体处理过程与MD5结构相似。
SHA-1算法更复杂,更安全。
MD5,SHA-1被中国密码学家王小云攻破。
hash函数小结,hash函数把变长信息映射到定长信息hash函数不具备可逆性hash函数速度较快hash函数与对称密钥加密算法有某种相似性对hash函数的密码分析比对称密钥密码更困难hash函数可用于消息摘要hash函数可用于数字签名,基于散列函数的鉴别方式,网络,算法C(),MAC,报文M,M,密钥K,比较,密钥K,算法C(),鉴别结果,MAC=h(k|M),HMAC=h(k|M|k),HMAC=H(Kopad)|H(k|ipad)|MIpad:
将00110110重复于K等长Opad:
将01011010重复于K等长,散列函数基本用法
(1),AB:
EKM|H(M)提供鉴别加密保护H(M)提供保密仅A和B共享密钥K,散列函数基本用法
(2),AB:
M|EKH(M)提供鉴别加密保护H(M),散列函数基本用法(3),散列函数基本用法(4),AB:
EKM|EKRaH(M)提供鉴别和数字签字加密保护H(M)提供保密仅A和B共享密钥K,散列函数基本用法(5),AB:
M|H(M|S)提供鉴别和数字签字仅A和B共享S,散列函数基本用法(6),AB:
EKM|H(M|S)提供鉴别和数字签字仅A和B共享S提供保密仅A和B共享密钥K,密码功能模块基本用法(6),网络信息安全,密码学理论及应用:
密码协议设计与分析,签字,密码学研究范畴,加密,单向函数,现代观念,应用系统,加密,密码协议,签字,随机数,零知识证明,计算难题(单向函数),传统观念,密码协议的定义,协议:
两个或两个以上的参与者为完成某项特定的任务而采取的一系列的步骤.包括三层含义协议是有序的过程,每一步必须依次执行协议至少需要两个参与者通过协议的执行必须能够完成某项任务.协议参与者Alice协议的第一参与者Bob协议的第二参与者Trent协议中的可信第三方Malice协议中的攻击者,密码协议威胁模型,攻击者Malice具有如下特征他能获得经过网络的任何消息他是网络的一个合法使用者,因而能够发起与任何其他用户的对话他有机会成为任何主体发出消息的接收者他能冒充任何别的主体给任意主体发送消息他不能猜到从足够大的空间选出的随机数没有正确的密钥(私钥),他不能由给定的密文恢复出明文;对于完善加密算法,他不能从给定的明文构造出正确的密文他不能从给定的公钥中恢复出私钥他不能控制计算环境中许多私有区域,比如离线的存储器,密钥共享协议,假定Alice和Bob以前从未见过面,因而不能事先就有一个共享密钥,也不能确定对方的公钥,如何通过不安全的网络进行安全通信?
直接方式:
Alice和Bob见面建立共享密钥或交换对方公钥的知识。
间接方式:
通过可信第三方(TTP)进行可信第三方是一种特殊的主体,它行为老实并必须得到用户的信赖,在系统中称为认证服务器(Trent)在同一个认证服务器下,假定Alice(Bob)同Trent共享一个密钥,设密钥由KAT(KBT)表示,这个密钥称为密钥-加密密钥,一般的要长期使用,又称为长期密钥,认证密钥建立的安全属性,设K表示Alice和Bob要建立的共享密钥,应该具有以下安全性质:
只有Alice和Bob(或者可能还有他们都信任的某个主体)能够知道KAlice和Bob应当知道对方主体知道K(活现性)Alice和Bob应当知道K是新生成的密钥管理原则:
当一个密钥是共享密钥,并用于大量数据加密时,只能使用较短时间这种密钥称为会话密钥和短语密钥,利用加密的认证密钥建立协议
(1),协议2.2来自Trent的会话密钥假定Alice和Trent共享密钥KAT,Bob和Trent共享密钥KBT目标Alice和Bob想要建立一个新的共享密钥K,Alice,Trent,Bob,1,2,3,Alice向Trent发送:
Alice,Bob,Trent找出密钥KAT,KBT,随机生成K,发送Alice:
Alice,KKATKKBTAlice解密KKAT并发送给Bob:
Trent,Alice,KKBTBob解密KKBT恢复K,向Alice发送:
你好,Alice,我是BobK,4,利用加密的认证密钥建立协议
(2),攻击2.12对”来自Trent的会话密钥”的一种攻击假定除原假定外,Malice和Trent共享密钥KMT攻击结果Alice认为和Bob共享密钥K,实际上是和Malice共享密钥K,Alice,Malice,Bob,1,2,3,Alice向Malice(“Trent”)发送:
Alice,BobMalice向Trent发送:
Alice,Malice(篡改伪造)Trent找出密钥KAT,KMT,随机生成KAM,发送Alice:
Alice,KAMKATKAMKMTAlice解密KKAT并发送给Malice(“Bob”):
Trent,Alice,KKmTMalice(“Bob”)解密KKmT向Alice发送:
你好,Alice,我是BobKAM,5,Trent,4,篡改,修补1Alice向Trent发送:
Alice,BobKAT,攻击:
Malice(“Alice”)向Trent发送:
Alice,MaliceKAT,利用加密的认证密钥建立协议(3),Alice,Malice,Bob,1,2,3,Alice向Malice(“Trent”)发送:
Alice,BobMalice(“Trent”)发送Alice:
Alice,KAMKATKAMKMTAlice解密KKAT并发送给Malice(“Bob”):
Trent,Alice,KKmTMalice(“Bob”)向Alice发送:
你好,Alice,我是BobKAM,4,Trent,消息篡改!
另一种攻击,通过”解密-检验”实现,消息认证(数据完整性)协议,协议2.3来自Trent的会话密钥假定Alice和Trent共享密钥KAT,Bob和Trent共享密钥KBT目标Alice和Bob想要建立一个新的共享密钥K,Alice,Trent,Bob,1,2,3,1.Alice向Trent发送:
Alice,Bob,2.Trent找出密钥KAT,KBT,随机生成K,发送Alice:
Bob,KKATAlice,KKBT3.Alice解密Bob,KKAT验证Bob身份,并发送给Bob:
Trent,Alice,KKBT4.Bob解密Alice,KKBT验证Alice身份,向Alice发送:
你好,Alice,我是BobK,4,对消息认证协议的攻击,攻击2.3对消息认证协议的攻击假定Alice和Trent共享密钥KAT,Bob和Trent共享密钥KBT结果Alice和Malice建立一个新的共享密钥K,Alice,Malice,Bob,1,2,3,Alice向Malice(“Trent”)发送:
Alice,BobMalice(“Trent”)向Alice发送:
Alice,Bob,KAMKATAlice,KAMKMTAlice解密KKAT并发送给Malice(“Bob”):
Trent,Alice,KKmTMalice(“Bob”)解密KKmT向Alice发送:
你好,Alice,我是BobKAM,Trent,4,重放攻击,询问-应答协议,Needham-Schroeder对称密钥认证协议,协议2.3来自Trent的会话密钥假定Alice和Trent共享密钥KAT,Bob和Trent共享密钥KBT目标Alice和Bob想要建立一个新的共享密钥K,Alice,Trent,Bob,1,2,3,1.Alice随机生成NA,向Trent发送:
Alice,Bob,NA2.Trent找出密钥KAT,KBT,随机生成K,发送Alice:
NABob,K,Alice,KKBTKAT3.Alice解密Bob,KKAT验证NA,验证Bob身份,并发送给Bob:
Trent,Alice,KKBT4.Bob解密Alice,KKBT验证Alice身份,随机生成NB,向Alice发送:
我是Bob,NBK5.Alice向Bob发送:
我是Alice,NB-1K,4,5,对N-S对称密钥认证协议攻击,攻击2.4来自Trent的会话密钥假定Alice和Trent共享密钥KAT,Bob和Trent共享密钥KBT结果Bob认为他正和Alice共享一个会话密钥,但实际上这个密钥并不是新的,Malice可能知道,Alice,Trent,Bob,1,2,3,1.Alice随机生成NA,向Trent发送:
Alice,Bob,NA2.Trent找出密钥KAT,KBT,随机生成K,发送Alice:
NABob,K,Alice,KKBTKAT3.Malice向Bob发送:
Trent,Alice,KKBT(活现性的实体认证?
)(消息的认证)4.Bob解密Alice,KKBT验证Alice身份,向Malice(“Alice”)发送:
我是Bob,NBK5.Malice(“Alice”)向Bob发送:
我是Alice,NB-1K,4,5,Malice,3,重放,实体认证协议,协议2.3来自Trent的会话密钥假定Alice和Trent共享密钥KAT,Bob和Trent共享密钥KBT,设T表示一个时戳目标Alice和Bob想要建立一个新的共享密钥K,Alice,Trent,Bob,1,2,3,1.Alice随机生成NA,向Trent发送:
Alice,Bob,NA2.Trent找出密钥KAT,KBT,随机生成K,发送Alice:
T,Bob,K,Alice,K,TKBTKAT3.Alice解密Bob,KKAT,验证Bob身份和时间,并发送给Bob:
Trent,Alice,K,TKBT4.Bob解密Alice,KKBT验证Alice身份和时间,NB,发送Alice:
我是Bob,NBK5.Alice向Bob发送:
我是Alice,NB-1K,4,5,|Clock-T|t1+t2,一个使用公钥密码体制的协议,协议2.5N-S公钥认证协议假定:
Alice的公钥是KA,Bob的公钥是KB,Trent的公钥是KT目标Alice和Bob建立一个新的共享秘密Alice发给Trent:
Alice,BobTrent发给Alice:
KB,BobKT-1Alice验证Trent对KB,Bob的签字,随机生成NA,发送Bob:
NA,AliceKBBob解密,验证Alice的身份,并发送给Trent:
Bob,AliceTrent发给Bob:
KA,AliceKT-1Bob验证Trent对KA,Alice的签字,随机生成NB,发送Alice:
NA,NBKAAlice解密,并发给Bob:
NBKB,对N-S公钥认证协议的攻击,Alice,Malice,Bob,1-3NA,AliceKM,2-6NA,NBKA,2-3NA,AliceKB,1-6NA,NBKA,1-7NBKM,2-7NBKB,Bob认为他正和Alice共享秘密NA,NB,但实际上正和Malice共享,预言机,中间人攻击,一个修补,协议2.6N-S公钥认证协议(修补)假定:
Alice的公钥是KA,Bob的公钥是KB,Trent的公钥是KT目标Alice和Bob建立一个新的共享秘密Alice发给Trent:
Alice,BobTrent发给Alice:
KB,Bob,TKT-1Alice验证Trent对KB,Bob的签字,随机生成NA,发送Bob:
NA,AliceKBBob解密,验证Alice的身份,并发送给Trent:
Bob,AliceTrent发给Bob:
KA,Alice,TKT-1Bob验证Trent对KA,Alice的签字,随机生成NB,发送Alice:
Bob,NA,NBKAAlice解密,并发给Bob:
NBKB,如果主体的身份对于消息的意义来说是必要的,那么为了保险起见,应当在消息中明确置入主体的名字,典型的攻击方法,消息篡改:
签字消息重放:
询问-应答,时戳中间人:
主体名字,协议现在安全了么?
?
课程实习,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 安全 密码学