1、n3.5 3.5 密密 钥钥 长长 度度n3.6 3.6 报文鉴别技术报文鉴别技术n3.7 3.7 数字签名数字签名n决定密钥长度需要考虑多方面的因素:n数据价值有多大?n数据要多长的安全期?n攻击者的资源情况怎样?信息类型 时间(安全期)最小密钥长度战场军事信息产品发布、合并、利率贸易秘密氢弹秘密间谍的身份个人隐私外交秘密数分钟/小时几天/几周几十年40年50年50年65年56-64 bits64 bits112 bits128 bits128 bits128 bits至少128 bitsu计算机的计算能力和加密算法的发展也影响密钥长度选择的重要因素。u根据摩尔定律估计:计算机设备的性价比每
2、18年月翻一番或以每5年10倍的速度增长。即在50年内最快的计算机比今天快1010倍,但这只是对于普通用途的计算机。u选择比需要的密钥长度更长的密钥。n对称密钥密码体制的安全性是算法强度和密钥长度的函数:前者比较重要而后者则更容易描述.n假设算法具有足够的强度,即除了穷举攻击的方式试探所有的密钥外没有更好的方法破译密码系统,则更容易计算密钥长度和一次穷举攻击的复杂程度之间之间的关系.n决定穷举攻击的速度的要素有两个:需要测试的密钥量密钥长度及每个可能密钥的测试速度-算法和资源(并行处理器:每个处理器测试密钥空间中的一个子集).代价代价(美元)(美元)密钥长度(比特)40 40 56 56 64
3、 64 80 80 112 112 128 128 100K 100K 2 秒 35 小时 1 年70,000年1014年1019年 1M 1M0.2 秒3.5 小时37年7000 年1013年1018年 10M 10M0.02 秒21 分钟4 天700 年1012年1017 年 100M 100M2 毫秒 2 分钟9 小时70 年1011 年1016 年 1G 1G0.2 毫秒13 秒1 小时7 年1010 年1015 年 10G 10G0.02毫秒 1 秒5.4分钟245天109 年1014 年 100G 100G2 微秒0.1 秒32秒24天108 年1013 年 1T 1T0.2 微秒
4、0.01 秒3秒2.4天107 年1012 年 10T 10T0.02 微秒1毫秒0.3秒6 小时106 年1011 年n公钥算法RSA是基于分解一个大整数的难度,而大整数是两个大素数的乘积.n受到穷举攻击的威胁,破译它们的出发点并不是穷举所的的密钥进行测试而是试图分解这个大整数.n大整数取多大直接关系到安全程度,即关系进行因子分解所需要的代价和成功的可能性.n计量单位:即计算机的计算能力-MIPS(每秒百万条指令,即CPU执行指令的速度)nMIPS-年:表示一个任务需要1MIPS的机器运行多少年来完成.一般数域筛选法进行因子分解位数分解所需的MIPS年51230 00076821081024
5、31011128011014153631016204841020年份对个人对公司对政府1995768128015362000102412801536200512801536204820101280153620482015153620482048 对称密钥密码的密钥长度对称密钥密码的密钥长度 公钥密码的密钥长度公钥密码的密钥长度 56bits 384bits 64bits 512bits 80bits 768bits 112bits 1792bits 128bits 2304bitsp在应用环境中,用户通过网络传输大量的报文(消息),出于安全性考虑,必须对消息或报文的有效性和合法性进行鉴别或认证
6、。u网络通信的安全威胁u泄漏u消息的内容被泄漏没有合法权限的人或过程。u伪造u以假冒源点的身份向网络中插入报文;u例如,攻击者伪造消息发送给目的端,却声称该消息源来自一个已授权的实体。u消息篡改u内容篡改:以插入、删除、调换或修改等方式篡改消息;u序号篡改:在依赖序号的通信协议中(如 TCP)等,对通信双方报文序号的进行篡改,包括插入、删除和重排序等;u时间篡改:对报文进行延迟或回放,破坏其时间上的完整性。u行为抵赖u接收端否认收到某报文;源点否认发过某报文。n 报文鉴别(Message Authentication)nMessage:消息、报文。nAuthentication:鉴别、认证。n
7、鉴别:消息的接收者对消息进行的验证。n真实性:消息确实来自于其真正的发送者,而非假冒;n完整性:消息的内容没有被篡改。l报文鉴别(消息认证消息认证)就是验证消息的完整性就是验证消息的完整性.当接收方收到发送当接收方收到发送方的报文时,接收方能够验证收到的报文是真实的未被篡改的。方的报文时,接收方能够验证收到的报文是真实的未被篡改的。l保密和认证同时是信息系统安全的两个方面,但它们是两个不保密和认证同时是信息系统安全的两个方面,但它们是两个不同属性的问题,认证不能自动提供保密性,而保密性也不能自同属性的问题,认证不能自动提供保密性,而保密性也不能自然提供认证功能。然提供认证功能。l从层次角度上来
8、看,报文鉴别系统的功能一般可以划分成两个基本的层次:鉴别算法:在较低的层次上,系统需要提供某种报文鉴别函数 f 来产生一个用于实现报文鉴别的鉴别符或鉴别码;鉴别协议:消息的接收者通过鉴别协议完成对报文合法性的鉴别,底层的鉴别函数通常作为一个原语,为高层鉴别协议的各项功能提供服务;鉴别函数 f 是决定鉴别系统特性的主要因素。可用来做认证的函数分为三类可用来做认证的函数分为三类(1)(1)信息加密函数信息加密函数(Message encryption)(Message encryption)用完整信息的密文作为对信息的认证用完整信息的密文作为对信息的认证(2)(2)信息认证码信息认证码MAC(Me
9、ssage Authentication Code)MAC(Message Authentication Code)是对信源消息的一个编码函数是对信源消息的一个编码函数(3)(3)散列函数散列函数(Hash Function)(Hash Function)或信息摘要或信息摘要是一个公开的函数,它将任意长的信息映射成一个固定长度的信息是一个公开的函数,它将任意长的信息映射成一个固定长度的信息信息加密函数作认证信息加密函数作认证信息加密函数分二种:信息加密函数分二种:一种是常规的对称密钥加密函数;一种是常规的对称密钥加密函数;另一种是公开密钥的双密钥加密函数另一种是公开密钥的双密钥加密函数。n对称
10、密钥加密方式:加密的同时提供保密和鉴别。p问题:由于消息M的内容对于终点B是未知的,因此B如何判断收到的密文X的合法性?p如果消息M是具有某种语法特征的文本,或者M本身具有一定的结构:B可通过分析Y的语法或结构特征。p如果消息M是完全随机的二进制比特序列:B无法判断是否正确恢复密文。p解决办法:强制明文使其具有某种结构。p这种结构易于识别、不能被复制,同明文相关,并且不依赖于加密。l附加报文鉴别结构 源点A-对消息明文M首先利用校验函数F计算出消息的校验码 C=F(M);-校验码 C=F(M)被附加到原始消息明文上,生成新的明文 MC;-利用密钥K对明文 MC进行加密,得到密文 X=EK MC
11、;-将密文X发送给接收端 B 终点B-接收密文 X;-用密钥K解密得到明文Y=DK(X),其中Y被视为附加校验码的消息,即 Y=MC;-利用校验函数F 计算明文Y中消息部分的校验码F(M)。若校验码相匹配,即F(M)=C,则可确认报文是可信的,M就是原始消息M,并且可以确认该报文就是来自A的。注:检验码的生成和加密函数执行的顺序是至关重要。检验码必须被作为内部的差错控制,在加密之前附加到明文上,才能提供鉴别功能。因为攻击者很难在密文中产生一个检验码,使其在解密后仍然有效。如果报文内容本身就具有一定的控制结构,也能够加强鉴别的抗攻击能力。如,在TCP/IP协议体系中,若采用TCP协议来传送消息,
12、则可对TCP报文段进行加密。由于TCP报文段本身具有特定的控制结构和格式,如果经过解密的TCP报文段不能通过TCP协议自身的合法性检查,就可说明该报文是非法的。p在公开密钥体系结构中,直接使用公开密钥加密方式只能提供保密,而不能自动提供鉴别功能。p源点A使用终点B的公开密钥Kub对报文进行加密,由于只有终点B拥有其对应的私有密钥KRb,因此只有B能对报文进行解密保密功能。p不提供鉴别功能,因为任何人均可使用B的公开密钥来加密报文,而假称报文是发自A的,终点B也无法确定消息的发送者。n私有密钥加密方式:提供报文鉴别和签名功能,不提供加密功能。n报文鉴别码或消息鉴别码(message authen
13、tication code,MAC):核心是一个类似于加密的算法CK()。nCK()在密钥的作用下,以报文内容作为输入,其输出值是一个较短的定长数据分组,也就是MAC,即:nMAC CK(M)nMAC被附加在报文中传输,用于消息的合法性鉴别。u如果B端通过比较发现MAC匹配,则可确信报文M没有被篡改过(完整性完整性)u若攻击者更改报文内容而末更改MAC,则接收者计算出的MAC将不同于接收到的MAC;u由于攻击者不知道密钥K,不可能计算出一个与更改后报文相对应MAC值。u接收者B也能够确信报文M是来自发送者A的(真实性真实性)u只有A了解密钥K,也只有A能够计算出报文M所对应的正确的MAC值。h
14、ash function:哈希函数、摘要函数,又称为杂凑函数。输入:任意长度的消息报文 M。输出:一个固定长度的散列码值 H(M)。是报文中所有比特的函数值。单向函数。最常用的信息摘要算法叫做MD5,可产生一个128位长的摘要。md5的全称是message-digest algorithm 5(信息-摘要算法),在90年代初由mit laboratory for computer science和rsa data security inc的ronald l.rivest开发出来,经md2、md3和md4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密匙前被压缩成一种保密的格式(就是把
15、一个任意长度的字节串变换成一定长的大整数)。不管是md2、md4还是md5,它们都需要获得一个随机长度的信息并产生一个128位的信息摘要。这三个算法的描述和c语言源代码在internet rfcs 1321中有详细的描述(),这是一份最权威的文档,由ronald l.rivest在1992年8月向ieft提交。MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫 readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这
16、个文件重新计算MD5时就会发现(两个MD5值不相同)。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。对信息签名过程如下:(1)用户制作信息摘要;(2)信息摘要由发送者的专用密钥加密;(3)原始信息和加密信息摘要发送到目的地;(4)目的地接收信息,并使用与原始信息相同的信息摘要函数对信息制作其自己的信息摘要;(5)目的地还对所收到的信息摘要进行解密;(6)目的地将制作的信息摘要同附有信息的信息摘要进行对比,如果相吻合,目的地就知道信息的文本与用户发送的信息文本是相同的,如果二者不吻合,则目的地知道原始信息已经被修改过。3.7.1 应用需要和数字签名
17、的产生u网络通信中,希望有效防止通信双方的欺骗和抵赖行为。u简单的报文鉴别技术用以保护双方之间的数据交换不被第三方侵犯;但它并不保证双方自身的相互欺骗。假定A发送一个认证的信息给B,双方之间的争议可能有多种形式:B伪造一个不同的消息,但声称是从A收到的。A可以否认发过该消息,B无法证明A确实发了该消息。原因:鉴别技术基于秘密共享。u数字签名技术为此提供了一种解决方案。n数字签名是指只有发送者才能产生的别人无法伪造的一段数字串,这段字符串同时也是对发送者发送信息真实性的一个证明。n传统书面文件上签名的作用:n一是因为自己的签名难以否认,从而确定了文件已签署这一事实;n二是因为签名不易仿冒,从而确
18、定了文件是真实的这一事实。n签名是依赖于消息报文的,即,数字签名是以消息报文作为输入计算出来的,签名能够对消息的内容进行鉴别;n签名是可以被确认的,即收方可以确认或证实签名确实是由发方签名的;n数据签名对发送者来说必须是惟一的,伪造数字签名在计算上是不可行的,能够防止伪造和抵赖;n产生数字签名的算法必须相对简单易于实现,对数字签名的识别、证实和鉴别也必须相对简单,易于实现;n签名不可重用,即签名是消息(文件)的一部分,不能把签名移到其它消息(文件)上;n签名是不可抵赖的,即发方不能否认他所签发的消息。数字签名必须保证:可验证:签名是可以被确认的防抵赖:发送者事后不承认发送报文并签名;防假冒:攻
19、击者冒充发送者向收方发送文件;防篡改:收方对收到的文件进行篡改;防伪造:收方伪造对报文的签名。数字签名分类以方式分直接数字签名direct digital signature仲裁数字签名arbitrated digital signature以安全性分无条件安全的数字签名计算上安全的数字签名以可签名次数分一次性的数字签名多次性的数字签名1.1.直接数字签名直接数字签名X X用其私钥加密文件,这便是签名过程;用其私钥加密文件,这便是签名过程;X X将加密的文件送到将加密的文件送到Y Y;Y Y用用X X的公钥解开的公钥解开X X送来的文件。送来的文件。u实现比较简单,在技术上仅涉及到通信的源点X
20、和终点Y双方。u终点Y需要了解源点X的公开密钥Kux。u发送方X可以使用其私有密钥KRx对整个消息报文进行加密来生成数字签名。u更好的方法是使用KRx对消息报文的散列码进行加密来形成数字签名。方案的安全性依赖于发送方X私有密钥的安全性。发送方可以声称自己的私有密钥丢失或被盗用,而否认其发送过某个报文。改进:每个签名报文中包含一个时间戳(数字时间戳是由第三数字时间戳是由第三方提供的一种可信时间标记服务,通过该服务获得的数字时间方提供的一种可信时间标记服务,通过该服务获得的数字时间戳数据可以用来证明在某一时刻数据已经存在戳数据可以用来证明在某一时刻数据已经存在)。问题:X X的某些私有密钥确实在时
21、间的某些私有密钥确实在时间T T被窃取,敌方可以伪造被窃取,敌方可以伪造X X的签名及的签名及早于或等于时间早于或等于时间T T的时间戳的时间戳2.2.基于仲裁的数字签名直接数字签名的缺陷:签名者声称私钥被盗,签名是他人假直接数字签名的缺陷:签名者声称私钥被盗,签名是他人假冒。为此引入第三方作仲裁者。冒。为此引入第三方作仲裁者。仲裁者必须是一个所有通信方都能充分信任的权威的第三方仲裁机构。基本工作方式(假定用户X和Y之间进行通信):每个从X发往Y的签名报文首先被送给仲裁者A;A检验该报文及其签名的出处和内容,然后对报文注明日期,并附加上一个“仲裁证实”的标记发给Y。u发送方X和仲裁A共享一个密
22、钥Kax。u数字签名由X的标识符IDx和报文的散列码H(M)构成,用密钥Kax进行加密。u过程:(1)X A(1)X A:MME EKaxKax(ID(IDx xH(M)H(M)。(2)A Y(2)A Y:E EKayKay(ID(IDx xMME EKaxKax(ID(IDx xH(M)H(M)T)T)。(3)Y(3)Y存储报文存储报文M M及签名。及签名。作用:Y能够判断出M是不是过时的报文l争端解决方式Y A Y A:E EKayKay(ID(IDx xMME EKaxKax(ID(IDx xH(M)H(M)。仲裁A可用Kay恢复出IDx、M及签名,然后再用Kax对签名解密并验证其散列码
23、。l特点:Y 不能直接验证 X 的签名。双方都需要高度相信 AlY 相信 A 已对消息认证,X 不能否认其签名;lX 信任 A 没有暴露 Kxa,无人可伪造 DS;l双方都信任 A 处理争议是公正。问题:l报文 M 明文传送给A,有可能被窃听。l明文加密的方案(1)X A(1)X A:IDIDx xEEKxyKxy(M)(M)E EKaxKax(IDxH(E(IDxH(EKxyKxy(M)(M)。(2)A Y(2)A Y:E EKayKay(ID(IDx xEEKxyKxy(M)(M)E EKaxKax(ID(IDx xH(EH(EKxyKxy(M)(M)T)T)。l特征:X 与 Y 之间共享
24、密钥 Kxy xy。DS 的构成:IDx x 和消息密文的散列码用 Kxa xa 加密。DS 的验证:A 解密签名,用散列码验证消息。lA 只能验证消息的密文,而不能读取其内容。A 将来自 X 的所有信息加上时间戳并用 Kayay 加密后发送给Y。l问题:A 和发送方 X 联手可以否认签名的信息。A和接收方 Y 联手可以伪造发送方 X 的签名。l过程:X 对报文 M 进行两次加密。经过双重加密后,报文 M 只有 Y 能够阅读,A 不能读取 X XA A:IDIDx x|E|EKRx KRx ID IDx x|E|EKUyKUy E EKRxKRx(M)(M)A 能进行外层的解密,从而证实报文确
25、实是来自 X。l因为只有 X 拥有KRx Rx。验证后 A 向 Y 发送用 KUyUy 加密的报文,其中包括时间戳 T A AY Y:E EKRaKRa ID IDx x|E|EKUyKUy E EKRxKRx(M)|T(M)|Tl特点:仲裁者看不见消息的内容。l优点:通信各方之间无须共享任何信息,从而避免了联手作弊;只要 KRaRa 安全,则不会出现伪造 A 发送的消息;消息的内容是保密的,包括对 A 在内。AliceAlice向向BobBob传送数字信息,为了保证信息传送的传送数字信息,为了保证信息传送的保密性、真实性、完整性和不可否认性,需要对保密性、真实性、完整性和不可否认性,需要对要
26、传送的信息进行加密、消息摘要和数字签名,要传送的信息进行加密、消息摘要和数字签名,其传送过程如下:其传送过程如下:AliceAlice准备好要传送的数字信息(明文)。准备好要传送的数字信息(明文)。AliceAlice对数字信息进行哈希(对数字信息进行哈希(hashhash)运算,得到一个信息)运算,得到一个信息摘要。摘要。AliceAlice用自己的私钥(用自己的私钥(SKSK)对信息摘要进行加密得到)对信息摘要进行加密得到AliceAlice的数字签名,并将其附在数字信息上。的数字签名,并将其附在数字信息上。AliceAlice随机产生一个加密密钥(随机产生一个加密密钥(DESDES密钥)
27、,并用此密钥对密钥),并用此密钥对要发送的信息进行加密,形成密文。要发送的信息进行加密,形成密文。AliceAlice用用BobBob的公钥(的公钥(PKPK)对随机产生的加密密钥进行加密,)对随机产生的加密密钥进行加密,将加密后的将加密后的DESDES密钥连同密文一起传送给密钥连同密文一起传送给BobBob。BobBob收到收到AliceAlice传送过来的密文和加过密的传送过来的密文和加过密的DESDES密钥,先用自密钥,先用自己的私钥(己的私钥(SKSK)对加密的)对加密的DESDES密钥进行解密,得到密钥进行解密,得到DESDES密钥。密钥。BobBob然后用然后用DESDES密钥对收
28、到的密文进行解密,得到明文的数密钥对收到的密文进行解密,得到明文的数字信息,然后将字信息,然后将DESDES密钥抛弃(即密钥抛弃(即DESDES密钥作废)。密钥作废)。BobBob用用AliceAlice的公钥(的公钥(PKPK)对)对AliceAlice的数字签名进行解密,的数字签名进行解密,得到信息摘要。得到信息摘要。BobBob用相同的用相同的hashhash算法对收到的明文再进行一次算法对收到的明文再进行一次hashhash运算,运算,得到一个新的信息摘要。得到一个新的信息摘要。BobBob将收到的信息摘要和新产生的信息摘要进行比较,如将收到的信息摘要和新产生的信息摘要进行比较,如果一
29、致,说明收到的信息没有被修改过。果一致,说明收到的信息没有被修改过。签名提供真实性签名提供真实性(authentication)(authentication)鉴别提供完整性鉴别提供完整性加密提供保密性加密提供保密性(confidentiality)(confidentiality)“签名签名+消息摘要消息摘要+加密加密”提供提供“真实性真实性+完整性完整性+保密性保密性”实现方式实现方式:(A:(AB)B)先消息摘要,而后签名先消息摘要,而后签名,最后加密最后加密:先消息摘要,而后加密先消息摘要,而后加密,最后签名最后签名:p 经常不断地学习,你就什么都知道。你知道得越多,你就越有力量p Study Constantly,And You Will Know Everything.The More You Know,The More Powerful You Will Be写在最后Thank You在别人的演说中思考,在自己的故事里成长Thinking In Other PeopleS Speeches,Growing Up In Your Own Story讲师:XXXXXX XX年XX月XX日