第1页:第7章网络安全章节封面
- 随着计算机网络的迅速普及,人们对网络的依赖性更大。国防、金融、教育、科研等诸多应用领域对计算机网络安全性能也提出了更高的要求。
- 本章重点介绍目前用于保障网络安全的多种技术,如防火墙技术、加密技术、数字签名及认证技术等。
第2页:7.1网络安全概述
- 计算机网络安全的核心是信息安全。
- 计算机网络安全关注的焦点是如何防止对数据的窃取、伪造和破坏。
- 计算机网络安全包括物理安全和逻辑安全。
- 物理安全是指对系统设备及相关设施的物理保护,防止破坏和丢失。
- 逻辑安全则是指信息的可用性、完整性和保密性三大要素。
第3页:网络系统面临的安全威胁(1)
- 窃听
- 攻击者通过监视网络数据获得敏感信息。
- 重传
- 攻击者获得部分或全部信息,并将此信息发送给接收方。
- 伪造
- 攻击者将伪造的信息发送给接收方。
- 篡改
- 攻击者对合法用户之间的通讯信息进行修改、删除、插入,再发送给接收方。
- 拒绝服务攻击
- 攻击者通过某种方法使系统响应减慢甚至瘫痪,阻止合法用户获得服务。
- 行为否认
- 通讯实体否认已经发生的行为。
第4页:网络系统面临的安全威胁(2)
- 网络系统面临的安全威胁(2)
- 非授权访问:没有预先经过同意,就使用网络或计算机资源的行为被看作非授权访问。主要有以下几种形式:假冒、身份攻击、非法用户进入网络系统进行违法操作、合法用户以未授权方式进行操作等。
- 传播病毒:通过网络传播计算机病毒,其破坏性非常高,而且用户很难防范。
- 人为无意识地损坏。
- 自然灾害。
- 其他因素造成的损害。
第5页:计算机网络信息系统安全的目标(1)
- 身份真实性
- 能鉴别通讯实体的真实身份。
- 信息机密性
- 能保证机密信息不会泄露给非授权的人或实体。
- 信息完整性
- 能保证数据的一致性,防止数据被非授权用户或实体建立、修改和破坏。
- 服务可用性
- 能保证合法用户对信息和资源的使用不被拒绝。
第6页:计算机网络信息系统安全的目标(5)
- 不可否认性
- 建立有效的责任机制,防止实体抵赖或否认其行为。
- 系统可控性
- 能够控制使用资源的人或实体的使用方式。
- 系统易用性
- 系统应当操作简单、维护方便。
- 可审查性
- 为网络提供包括技术在内的各种审查手段以保障信息的安全。
第7页:网络系统安全所涉及的内容
- 网络信息安全,是指网络系统的硬件、软件、数据受到保护,不致、遭到破坏、更改和泄露。
- 系统连续可靠正常地运行,网络服务不中断。
- 广义上讲,凡是涉及网络信息的保密性、完整性、可用性、真实性和可控性的相关技术和理论都是网络安全所要研究的领域。
- 广义的网络安全还应该包括如何保护内部网络的信息不被轻易地从内部泄露、如何抵御文化侵略、如何防止不良信息的泛滥等等。
第8页:7.2防火墙技术
- 防火墙是一个分析器和过滤器,其目标是有效地监控内部网和Internet之间的任何活动,保证内部网络的安全。
- 防火墙的安全技术包括包过滤技术、网络地址转换技术、代理技术等。
第9页:包过滤技术
包过滤技术(Packet Filter)通过设备对进出网络的数据流进行有选择的控制与操作。Internet内部网屏蔽路由器
第10页:包过滤技术
- 包过滤操作通常在选择路由的同时对数据包进行过滤。
- 可以设定一系列的规则,指定允许哪些类型的数据包可以流入或流出内部网络;哪些类型的数据包的传输应该被拦截。
- 包过滤规则以IP包信息为基础,对IP包的源地址、目的地址、封装协议、端口号等进行筛选。
第11页:包过滤技术
- 数据包过滤路由器的缺点:
- 包过滤配置复杂,过滤数目增加网络效率下降;
- 不能对付数据驱动攻击;
- 不能对付IP地址欺骗攻击。
第12页:网络地址转换技术
网络地址转换(Network Address Translator,NAT)是一种把内部IP地址转换成临时的、外部的、注册的IP地址的转换技术。Internet内部网地址转移防火墙
第13页:网络地址转换技术
- 网络中每台机器不需要取得注册的IP地址。
- 系统将外出的源地址和源端口映射为一个伪装的地址和端口,这样对外就隐藏了真实的内部网络地址。
- 外部网络访问内部网络时,通过一个开放的IP地址和端口来请求访问。
第14页:网络地址转换技术
- 当符合规则时,防火墙认为访问是安全的,可以接受访问请求,也可以将连接请求映射到不同的内部计算机中。当不符合规则时,防火墙认为该访问是不安全的,不能被接受,将屏蔽外部的连接请求。
- 网络地址转换的过程对于用户来说是透明的,不需要用户进行设置,用户只需进行常规操作即可。
第15页:应用代理
- 应用代理或代理服务器(Application–Level Proxyor Proxy Server)是代理内部网络用户与外部网络服务器进行信息交换的程序。
- 它将内部用户的请求确认后送至外部服务器,同时将外部服务器的响应再回送给用户。
- 设置专门的代理系统来完成防火墙的功能,这相当于将防火墙的任务交给专业公司来完成。专门的代理系统一般由代理服务器来实现。
第16页:双宿主主机结构
- 使用一个双宿主主机完成防火墙功能
- 双宿主主机不允许两网之间的数据直接传送,内网与外网通信时,必须由双宿主主机转发,即网络之间的IP通信完全被阻止,双宿主主机提供代理服务。
- 缺点是依赖单一部件保护系统,一旦被攻破,网络安全遭破坏。Internet内部网双宿主主机防火墙
第17页:屏蔽主机结构
- 屏蔽主机防火墙由屏蔽路由器、堡垒主机结合构成防火墙。
- 堡垒主机系统健壮,能抗攻击。对外提供一定的服务。
- 外部主机只能通过堡垒主机才能得到系统内部服务。
- 堡垒主机是唯一暴露在因特网中的主机,要攻击系统,只能通过攻击堡垒主机完成。Internet内部网屏蔽路由器堡垒主机防火墙
第18页:屏蔽子网结构Internet内部网外屏蔽
屏蔽子网结构Internet内部网外屏蔽路由器堡垒主机防火墙内屏蔽路由器屏蔽子网
第19页:屏蔽子网结构
- 防火墙由外屏蔽路由器、屏蔽子网、堡垒主机和内屏蔽路由器共同组成。
- 一般内部网对外提供服务的服务器容易遭到攻击,一旦被攻破将作为进一步攻击内部网的跳板。
- 有了屏蔽子网,最坏的情况是子网中的服务器和堡垒主机被损坏,但内部网的完整性不被破坏。
- 两个屏蔽路由器消除了内部网络的单一侵入点
- 堡垒主机充当各种服务的代理服务器
第20页:防火墙技术的发展
- 在包过滤中引入鉴别授权机制
- 对数据包的发送者身份进行鉴别,防止使用别人的IP地址或伪造IP地址现象。
- 复变包过滤技术
- 采用多级并行或串行或串并行混合的复杂结构方式,进行多重检查,避免攻破一处全线崩溃的局面。
第21页:防火墙技术的发展
- 虚拟专用防火墙
- 针对具体的用户给出特有的安全规则集。当用户要求使用防火墙时,防火墙首先确认用户身份,对用户进行鉴别,然后动态地创建一个虚拟的接口给用户,调查用户的安全规则集,加载在该虚拟接口上,并且其他用户看不到该接口。只有该用户才可以使用该接口,用户不使用时,该虚拟接口自动消失。VPF具有很好的安全性,而且是透明的,是高性能的下一代防火墙。
- 多级防火墙
- 超大规模集成电路的发展,未来的硬件在同时支持路由、交换和防火墙方面完全可能。这种多级防火墙是传统路由器、交换机和防火墙的集合体。
第22页:防火墙技术的发展
- 自适应代理技术
- 自适应代理技术是根据用户定义的安全规则,动态“适应”传输中的分组流量。
- 复合型防火墙
- 采用几种防火墙技术并用的方式,如包过滤型防火墙和代理服务型防火墙的方法结合起来。通常情况下,可在路由器上设立过滤,使内部网络不受未被授权的外部用户的攻击。
第23页:7.3加密技术
- 加密(Encryption)是指将称为明文(Plain Text)的信息经过加密钥匙(Encryption Key)及加密函数变成密文(Cipher Text)的过程。
- 接收方经过解密函数和解密钥匙(Decryption Key)再将其还原成明文。
第24页:一般数据加密模型
- 在发送端,明文X通过加密算法和加密密钥K1处理变成密文Y;
- 在接收端,密文Y通过解密算法和解密密钥K2处理变成明文X;
- 在进行解密运算时,如果不使用事先约定好的解密密钥K2,就无法解出明文X;
- 截获者正是因为没有解密密钥K2,而无法得到明文X。加密算法解密算法明文X明文X密文Y加密密钥K1解密密钥K2截获
第25页:加密技术的实现方式
加密技术可以在通信的三个层次来实现:链路加密、节点加密和端到端加密。
第26页:链路加密:网络提供的加密
- 数据包在传输介质上处于加密状态。
- 节点对接收到的数据包采用与上一个节点配套的方法进行解密;在向下一个节点传输前,采用与下一个节点配套的方法对数据包进行加密。
- 在到达目的地之前,一个数据包可能要经过许多通信链路的传输,因而被用不同的方法加、解密多次。
- 优点:自动加、解密,无须用户操心。缺点:在节点处,明文显现,容易泄密。
第27页:节点加密:网络提供的加密
- 在操作方式上与链路加密类似
- 两者均在通信链路上为传输的数据提供安全性;都在中间节点先对消息进行解密,然后进行加密。
- 缺点
- 报头和路由信息必须以明文形式传输,以便中间节点能得到如何处理消息的信息。因此,这种方法对于防止攻击者分析通信业务是脆弱的。
- 不同的是,节点加密不允许数据在网络节点以明文形式存在,它先把收到的数据包解密,然后采用另一个不同的密钥进行加密,这一过程是在节点上的一个安全模块中进行的。
第28页:端到端加密:用户加密
- 源端对数据进行加密,直到目标端才对数据进行解密。只需要一次加、解密。
- 加密由数据发送者在源端进行,解密由数据接收者在目标端进行。
- 用户只需要在应用层对数据文件进行加密,下层不能对报头和路由信息加密,以便数据能够正确传输。
- 缺点:对于防止攻击者分析通信业务也是比较脆弱的。
第29页:对称加密算法
- 在对称加密中,收信方和发信方使用相同的密钥,即加密密钥和解密密钥是相同或等价的。又称为单钥加密体制。
- 在众多的对称密码中影响最大的是数据加密标准(Data Encryption Standard,DES)。
- DES加密算法是一种分组加密方法,需要将数据文件分成若干个大小为64位(比特)的组。一组64位(比特)的明文,在64位密钥的控制下产生64位的密文;反之输入64位的密文,则输出64位的明文。
第30页:DES算法(1)
- 加密工作过程:
- 给定一个64比特明文分组x,通过一个固定的初始转换IP置换x的比特顺序获得x0,记x0= IP(x)=L0R0L0是x0的前32比特,R0是x0的后32比特。IP置换:只是改变x的比特顺序。IP置换,以后解释。
- 进行16轮计算Li= Ri-1,Ri= Li-1⊕f(Ri-1,ki)异或
第31页:DES算法(2)
- DES算法(2)
- 对R16L16进行逆置换IP-1,获得密文y,加密完成。整个加密过程表示:y=DES(x,ki=1,…,16)
- 解密采取同一算法完成,把密文作为输入,倒过来使用密钥,即使用顺序:k16, k15, ……, k1,输出得到明文x。整个解密过程表示:x=DES(y,ki=16,…,1)Li-1Ri-1LiRi+fki函数f(A,J),A:32比特串,J:48比特串ki:第i轮DES加密密钥问题:ki从何而来,函数f(A,J)怎样计算?以后解释
第32页:DES算法(3)
DES算法(3)1.IP置换该算法要将分组不断置换位置,要应用初始置换IP及逆置换IP-1。置换表示:x0=IP(x)58 50 42 34 26 18 10 260 52 44 36 28 20 12 462 54 46 38 30 22 14 664 56 48 40 32 24 16 857 49 41 33 25 17 9 159 51 43 35 27 19 11 361 53 45 37 29 21 13 563 55 47 39 31 23 15 740 8 48 16 56 24 64 3239 7 47 15 55 23 63 3138 6 46 14 54 22 62 3037 5 45 13 53 21 61 2936 4 44 12 52 20 60 2835 3 43 11 51 19 59 2734 2 42 10 50 18 58 2633 1 41 9 49 17 57 25这意味着x的58比特变成x0的第1比特,x的50比特变成x0的第2比特,依次类推。初始置换在于打乱x的划分关系;没有密码意义。置换IP逆置换IP-1
第33页:DES算法(4)
DES算法(4)2.要从种子密钥64比特k ,导出16个48比特密钥ki。K的第8,16,24,……,64比特将被扔掉,实际只有56比特。ki导出方法:①用置换PC-1置换出k的56比特,即PC-1(k) =C0D0, C0是PC-1(k)的前28比特,D0是PC-1(k)的后28比特②对每个i(1<=i<=16),计算Ci=LSi(Ci-1), Di=LSi(Di-1),ki=PC-2 (CiDi)。LSi表示一个或两个位置的左循环移位,i=1,2,9,16时移动一位,i为其他数时移动两位③PC-2表示一个置换,每7个比特一组丢弃最后一个比特,由56比特CiDi导出48比特ki
第34页:DES算法(5)3.函数
DES算法(5)3.函数f(A,J),A:32比特,J:48比特,f输出为32比特函数f(A,J)计算方法:①将A用固定扩展函数E扩展成48比特串57 49 41 33 25 179X1 58 50 42 34 2618X10 2 59 51 43 3527X19 11 3 60 52 4436X63 55 47 39 31 2315X7 62 54 46 38 3022X14 6 61 53 45 3729X21 13 5 28 20 124X14 17 11 24 15X3 28 15 6 2110X23 19 12 4 268X16 7 27 20 132X41 52 31 37 4755X30 40 51 45 3348X44 49 39 56 3453X46 42 30 36 2932X置换PC-1置换PC-2
第35页:DES算法(5)②计算
- DES算法(5)②计算E(A)⊕J,并将结果分成8个6比特串,记为B=B1B2B3B4B5B6B7B8。③使用8个事先设计好的S盒分别计算Sj(Bj)。Sj是一个固定的4x16矩阵,它的元素来自0到15这16个数。
- 例子:S2盒32 1 2 3 4 54 5 6 7 8 98 9 10 11 12 1312 13 14 15 16 1716 17 18 19 20 2120 21 22 23 24 2524 25 26 27 28 2928 29 30 31 32 1E扩展1518 146 1134 9 7 213 12 05103134 7152814 12 0 110 6 91150147 1110413 1 58126 9 32151381013 1542 11 6 712 0 5149
第36页:DES算法(6)④
DES算法(6)④Sj(Bj)的计算方法:对于6比特变量Bj=b1b2b3b4b5b6,用b1b6对应整数r(0≦r≦3)用b2b3b4b5对应整数c(0≦c≦15),Sj(Bj)的取值就是Sj矩阵第r行c列的整数对应的二进制表示(4比特)。⑤对于B,可得到32比特C=C1C2C3C4C5C6C7C8
第37页:DES算法(7)⑥将C通过一个固定的置换
DES算法(7)⑥将C通过一个固定的置换P,其结果P(C)就是f(A,J)。16 7 20 2129 12 28 171 15 23 265 18 31 102 8 24 1432 27 3 919 13 30 622 11 4 25置换P加密算法必须是可逆的。DES算法可逆。
第38页:对称加密算法评价
- 最主要的问题是
- 由于加解密双方要使用相同的密钥,在发送和接收数据之前,就必须完成密钥的分发。因此,密钥的分发成了该加密体系中的最薄弱的环节。
- 密钥的分发手段
- 距离近的采用人工送达的方式;距离远的采用网络安全通道的方式。
- DES算法的主要优点是加解密速度快,算法容易实现,安全性好。是常用的加密算法。
第39页:公开密钥密码体制
- 加密密钥不同于解密密钥,它们是一对,即用其中一把钥匙加密得到的密文,只能用另一把钥匙解密才能得到明文。这种密码体制中,存在两把对应的密钥,所以又叫双钥体制。
- 解决了密钥分发的难题。加密密钥公之于众,任何人都可以使用;解密密钥只有解密人自己知道。它们分别称为公开密钥(Public Key)和私有密钥(Private Key)。
第40页:公开密钥密码体制
比较著名的公钥密码算法有:RSA、背包密码、McEliece密码、Diffe-Hell man、Rabin、Ong-Fiat-Shamir、零知识证明算法、椭圆曲线和EIGamal算法等等。最有影响的公钥密码算法是RSA。
第41页:RSA公开密钥密码系统
- RSA公开密钥密码系统是由R.Rivest、A.Shamir和L.Adleman教授于1977年提出的。RSA的取名就是来自于这三位发明者姓氏的第一个字母。
- 采用公钥(uK)和私钥(rK)组成一对密钥,用公(私)钥加密的密文,只能由私(公)钥解密才能得到明文。
第42页:RSA公开密钥密码系统
- RSA算法的安全性是建立在大数分解这一数学难题上:n=p×q,p和q是两个大素数。由p和q分别用单向陷门函数生成公钥和私钥。其中n对外公开(对方加密或解密时要使用)。
- 破解理想途径:N(公开)p,q单向陷门函数(公开)公钥和私钥
- 要破解RSA密码系统只能寄希望于由n找出p和q21:3,749:7,7 17667:?
第43页:RSA公开密钥密码系统
n非常大,二进制位数达到384,512,768,1792,2304位。分解这样的大数,在数学上尚未解决。
第44页:RSA算法(1)
- RSA密码算法简介
- 第一个较完善、研究得最广泛的双钥算法,经历了各种攻击的考验,公认为最优秀的双钥算法之一。
- 该算法的数学基础是数论。安全性建立在大整数分解难题之上。
- 一旦因子分解问题的研究取得进展,RSA双钥体制的安全性将受到极大的挑战。
第45页:RSA算法(2)
- RSA密码算法描述:
- 设一对足够大的素数为p和q(为保证算法具有最大的安全性,它们长度应该相同),它们的乘积n=pq,记ф(n)=(p-1)(q-1)。选取适当的加密密钥e和解密密钥d,使之满足ed≡1 modф(n)。公开n和e,保密p,q和d。加密运算:y=Ek(x)=xemod n,x∈Zn解密运算:x=Dk(y)=ydmod n,y∈Zn这里,加密过程和解密过程满足Dk(Ek(x))=x,即(xe)d=xed= xф(n)+1= x mod n
第46页:RSA算法(3)
- 素数
- 只能被1和本身整除的整数。
- mod
- 模运算,a mod b,结果为a÷b的余数,上式读为,a模b或a的模b运算
- 求幂算法(平方-乘)
- 计算xemodn已知e=eL-1eL-2…e0且eL-1=1,计算xemodnz=1for i=L-1 downto 0 doz=z2mod nif ei=1 then z=z*x mod n
- 有关问题解释:
- 若a mod b= c mod b,则a,c称为同模,记为a≡c modb
第47页:RSA算法(4)
- RSA算法密码系统步骤如下:
- 生成两个大素数p,q;
- 计算n=pq,ф(n)=(p-1)(q-1);
- 选择随机数e(加密密码),e与ф(n)互素;
- 计算解密密码d,de=1 modф(n);
- 公布整数n和加密密码e。
- 双钥体制运作方式:
- 数据接收者将加密密码e和n传给对方
- 数据发送者用e和n对明文加密,传给对方
- 数据接收者用解密密码d和n对密文解密。
- 要破解密码,只能由n推出p,q,这很难。加密密码e和n可广为分发,解密密码d只有所有者一人才有,因此可以保密。
第48页:RSA公开密钥密码系统评价
- 由于RSA采用加密与解密双钥制,即一把是用户的专用密钥,另一把是其他用户都可利用的公共密钥,因此,使用方便,安全可靠。
- 在RSA的硬件实现中,RSA比DES慢1500倍,在软件实现上,RSA比DES慢100倍。一般用来加密小数据,如数字签名、密码等。
- 混合加密体制(安全通道)用双钥加密体制作为安全通道传送单钥加密密钥,然后用单钥加密算法传送数据。
第49页:加密技术的发展
- 加密技术的两大体制:单钥体制,双钥体制
- 单钥体制成熟的算法有100多种,DES是典型代表,应用范围最广。
- 双钥体制成熟的算法也很多,以RSA、椭圆曲线算法为研究热点。
- 加密技术是在加密与解密的矛盾斗争中发展的。
- 所有的加密方法理论上都可破解,只是时间和代价的问题。
第50页:加密技术的发展
- DES理论上无法对付穷举法的攻击,加大密钥字长,可以加大破解代价。计算机技术的发展,会降低破解代价。
- RSA依赖于大数分解这一数学难题,一旦攻破这一难题,RSA大厦倒塌。
- 新的加密算法不断涌现,又不断淘汰。不能经历各种攻击长期考验的加密算法,不能投入实用。
第51页:密钥长度与安全期对照表
密钥长度与安全期对照表:下表列出相关数据。
密钥长度与安全期的关系| 时间(安全期) | DES最小密码长度(位) | RSA最小密码长度(位) |
|---|
| 数小时 | 56 | 384 |
|---|
| 几周 | 64 | 512 |
|---|
| 几十年 | 80 | 768 |
|---|
| >50年 | 112 | 1792 |
|---|
| >65年 | 128 | 2304 |
|---|
第52页:加密技术的发展
- 新闻世界密码大厦轰然倒塌随着电子商务的发展,网上银行、网上合同、电子签名等的应用越来越广泛,网络已经成为我们生活中不可或缺的一部分。电子商务在给我们的工作生活带来便捷的同时,也存在着安全隐患。一直在国际上广泛应用的两大密码算法MD5、SHA-1(注:应该是两种散列算法),近期宣布被一名中国密码专家破解。这一消息在国际社会尤其是国际密码学领域引起极大反响,同时也再次敲响了电子商务安全的警钟。从密码分析上找出这两大国际通用密码漏洞的是一位土生土长的中国专家——山东大学信息安全所所长王小云。
- 摘自2005.3.25sohu新闻网
第53页:7.4报文鉴别技术
- 数据加密—对付被动进攻,数据的保密性
- 报文鉴别—对付主动进攻中的数据篡改、伪造、删除,数据的完整性
- 对付报文篡改的两种方法:1,拒绝修改,用在资源子网系统中,用访问控制技术实现;2,能够及时发现数据被篡改、伪造,用报文鉴别技术
第54页:报文鉴别技术
- 工作原理类似于数据校验技术
- 发送方根据数据计算一个鉴别码;接收方对接收数据用同样方法再计算一个鉴别码;与接收的鉴别码比较,得出数据是否有变化的结论
- 鉴别码与数据校验码的计算方法不一样,更严密,防伪造
第55页:基于报文鉴别码的鉴别技术
- 报文鉴别码(message authentication code,MAC)机制的核心是报文鉴别函数Ck( )。
- 该函数以报文内容作为输入,通过某种运算得到一个较短的定长数据分组,使用一个密钥对定长数据分组进行加密得到定长码MAC作为函数的输出,即MAC= Ck(M)。
- MAC被附加在报文中传输,用于消息合法性的鉴别。
第56页:基于报文鉴别码的鉴别技术
- A发送消息M前,用密钥k计算MAC= Ck(M),将MAC附加在原文上,发给B;B根据得到的原文和MAC,用密钥k重新计算MAC。若与接收MAC相同,可确认收到的消息是合法的。
- 攻击者修改原文而未改MAC,B通过计算MAC可发现原文被篡该。
- 由于攻击者不知密钥k,因此无法计算与一个修改后的原文匹配的MAC。
- 因为只有A有密钥k,能够计算出与原文匹配的MAC,所以B可确信,原文发自A。
第57页:报文鉴别码函数
- Ck(M)函数的基本要求
- 输入消息M是变长的,输出结果MAC定长
- 运用密钥k进行加密,即MAC= Ck(M) =Ek(△(M))
- △(M)的一种计算方法是:△(M)=M1⊕M2⊕……⊕Mt其中被划成了若干个64比特的段,最后一段Mt必须被补充到64比特。
第58页:报文鉴别码函数
- Ck(M)函数安全性
- Ck(M)类似于加密函数,但加密函数必须是可逆,Ck(M)是单向函数。
- 可逆的加密函数理论上是可破译的,只要试遍所有可能的密钥,同时用逆函数验证结果,可以找到密钥。所以密钥要足够长,以打破这种幻想。
- 单向的Ck(M)无法在试用可能的密钥后立即确认结果,破译难度大的多。
第59页:基于散列函数的鉴别技术
- 实际上是报文鉴别码技术的变种
- 方式:根据散列函数,由变长的报文消息计算出一个定长的散列值;接收方同样计算一个散列值,与接收的散列值进行比较,并由此做出判断.
- 一般,报文鉴别码要简单的多,报文不需要加密;散列函数范围更广,函数结构更复杂,在计算散列值时,常加入一个随机数作为初始条件.
第60页:散列函数
- 散列函数H以变长的报文M为输入,产生定长的散列值h=H(M)。
- 发送端在发送正确的消息报文时,将计算出来的散列值附加在报文中。
- 接收者通过重新计算报文的散列值来对报文进行合法性的鉴别。
第61页:散列函数的性质
- 散列函数的输入可以是任意大小的数据块
- 散列函数的输出是定长的
- 对任意大小的报文,散列函数的计算需要相对简单
- 单向性:对任意散列值h,要寻找一个M,使H(M)=h在计算上是不可行的。
- 抗冲突性:对任意给定的报文M,要寻找不等于M的报文N,使H(M)= H(N),在计算上是不可行的。
第62页:散列函数的构造(1)
- 构造原则:
- 将输入划分成定长n分组,必要时进行填充,使其长度为n的整数倍。
- 在计算散列值时,采用迭代方式每次处理一个分组,最终产生一个n比特的散列值
- 散列函数的构造方式可以是任意的,只要满足散列函数的性质。前述的Ck(M)函数就是一个散列函数。
第63页:散列函数的构造(2)
- 利用密码分组链接技术构造散列函数
- 将报文M划分成固定长度分组M1,M2,…,MN
- 设置通信双方都知道的初始值H
- 依次计算Hi=EMi(Hi-1)
- 计算C= HN得到散列值
- 著名的散列函数构造方法有:MD5消息摘要算法,安全散列算法SHA-1,RIPEMD-160散列算法等。
第64页:MD5算法(1)
- MD5算法
- 填充文件,使其长度为模512余448位;填充内容是第一位为1,其余为0。
- 将文件原始长度值以64位二进制数表示,并将这64位二进制数填充文件最后部分,形成512整数倍。
- 设置四个32位变量:A=0x01234567,B=0x89abcdef, C=0xfedcba98,D=0x76543210。
第65页:MD5算法(4)
- MD5算法
- 读文件一个分组(512位),将其分成16个32位分组Mi
- 设a=A, b=B, c=C, d=D。
- 依次对Mi进行四轮计算:①a=b+(a+F(b,c,d)+Mi+ti)<<<s)②b=c+(b+G(c,d,a)+Mi+ti)<<<s)③c=d+(c+H(d,a,b)+Mi+ti)<<<s)④d=a+(d+I(a,b,c)+Mi+ti)<<<s)常数循环左移s位非线性函数
第66页:MD5算法(7)
- MD5算法
- A+=a, B+=b, C+=c, D+=d
- 循环6,7直到所有Mi运算完毕
- 循环4~8直到所有分组运算完毕
- 级联A,B,C,D,得到128位散列码。算法结束。
- 非线性函数为:F(a,b,c)=(a∩b)∪((-a) ∩c)G(a,b,c)=(a∩c)∪(b∩ (-c ))H(a,b,c)=a⊕b⊕cI(a,b,c)=b⊕(a∪(-c ))
第67页:MD5算法
- 常数ti为
- ti=int(232*abs(sin(i)))
- 山东大学教授王小云发现
- 很容易找到MD5的冲突(碰撞),即:对于一份文件,很容易伪造另一份文件,两者具有相同的散列码,使两份文件的真伪难辨。这意味着MD5算法被破解。
第68页:7.5身份认证与数字签名
- 身份认证:用户身份的确认技术。
- 网络中的各种应用和计算机系统都需要通过身份认证来确认用户的合法性,然后确定用户的个人数据和特定权限。
- 数字签名(Digital Signatures):能够使接收方证实发送方的真实身份,防止发送方事后否认已发送过的报文,鉴别非法伪造、篡改报文等行为。
- 对数字签名的识别过程也是一种身份认证
第69页:数字签名设计目标
- 签名的比特模式是依赖于消息报文的,即签名能对消息内容进行鉴别
- 数字签名对发送者来说必须是唯一的,也就是只有发送者能够生成该数字签名.因此能够防止伪造和抵赖
- 产生数字签名的算法必须简单,且能够在存储介质上保持备份
- 对数字签名的识别、证实、鉴别必须简单
- 无论攻击者采用什么方法,伪造数字签名在计算上是不可行的
第70页:常用的数字签名技术
- 已经有多种数字签名解决方案和数字签名计算函数.根据其技术特点,这些方案可以分为两大类:
- 直接数字签名方案
- 基于仲裁的数字签名方案
第71页:直接数字签名方案
- 发送方A使用私钥对消息报文的散列码进行加密形成数字签名
- 接收方B使用A的公钥对数字签名进行解密得到散列码,并用散列码检查消息报文
- 因为只有A拥有私钥,所以该签名只有A能够形成,对此A无法抵赖, B也可以确信消息报文确实来自A
- B没有A的私钥,因此没法伪造A的签名。
- 如果A抵赖, B可以找到第三方,用A的公钥加以验证。
- 数字签名形成后,对整个报文和签名进行进一步加密,以增强数据通信的保密性。
第72页:直接数字签名方案
- 对整个报文和签名进行进一步加密的方法有很多种。不论采用何种方式加密,第三方必须拥有解密密钥,才能查看报文和签名。
- 由于签名来自于加密的散列码,因此数字签名依赖于消息报文的内容
- 报文和签名可以保存在存储介质中,以备解决争端时使用。
- 缺点是发送方可以声称私钥丢失或被盗,而否认发送过报文。
- 普通用户难以使用。
第73页:基于仲裁的数字签名
- 基本原理:发送方A发往接收方B的签名报文首先被送到仲裁者Z,Z检验该报文及其签名的出处和内容,然后对报文注明日期,并附加一个“仲裁证实”的标记发给B。
- 仲裁者非常关键和敏感,必须是一个受到充分信任的机构和一个可信的系统。
- 两种基于仲裁的数字签名方案
第74页:基于仲裁的数字签名方案一
- A计算散列码H(M),然后用自己的标识符IDA与H(M)组成数字签名
- A用与Z共享的密钥加密报文以及附加的数字签名,然后发往仲裁Z
- 仲裁Z用与A共享的密钥解密,验证散列值
- 验证后,Z用与B共享的密钥加密一个报文,送往B
- 该报文包括A的原报文M,A的数字签名,A的时间戳T,以及附加的一个“仲裁证实”的标记
- B能解密恢复出报文M和数字签名
- B存储报文M和数字签名,防备争端。
第75页:基于仲裁的数字签名方案一
- 缺点:验证真伪的工作完全交给仲裁者,无法防止仲裁者与一方合谋,打击另一方.
- 下一种方案可以避免这种情况.
第76页:基于仲裁的数字签名方案二
- A先用私钥然后再用B的公钥对报文加密,这样就得到了一个具有签名的加密报文
- 再用加密报文连同A的标志用私钥加密一次
- 加密结果连同A的标志发往Z。报文经过两次加密,只有B能解密,对Z也是安全的。
- Z用A的公钥解密,可以证实报文确实来自A
- Z加上时间戳,用B的公钥加密,发往B
- B用私钥解密,得到加密报文。存储该报文,以备争论。
- B先用私钥再用A的公钥对报文解密,可以得到原文。