《第三章-密码技术的应用课件.ppt》由会员分享,可在线阅读,更多相关《第三章-密码技术的应用课件.ppt(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第三章第三章 密码技术的应用密码技术的应用3.1数据的完整性和安全性数据的完整性和安全性3.2数字签名数字签名3.3数字信封数字信封3.4混合加密系统混合加密系统3.5数字时间戳数字时间戳3.1数据的完整性和安全性数据的完整性和安全性3.1.1 数据完整性和安全性的概念数据完整性和安全性的概念P53散列函数是主要手段散列函数是主要手段1、数据完整性被破坏的后果;、数据完整性被破坏的后果;p53散列函数散列函数 散列函数散列函数(又称杂凑函数又称杂凑函数)是对不定长的输入是对不定长的输入产生定长输出的一种特殊函数产生定长输出的一种特殊函数: h=H(M) 其中其中M是变长的消息是变长的消息,h=
2、H(M)是定长的散是定长的散列值列值(或称为消息摘要或称为消息摘要),散列函数散列函数H是公开的是公开的,散列值在信源处被附加在消息上,接收方通散列值在信源处被附加在消息上,接收方通过重新计算散列值来保证消息未被篡改。由过重新计算散列值来保证消息未被篡改。由于函数本身公开,传送过程中对散列值需要于函数本身公开,传送过程中对散列值需要另外的加密保护另外的加密保护(如果没有对散列值的保护如果没有对散列值的保护,篡改者可以在修改消息的同时修改散列值篡改者可以在修改消息的同时修改散列值,从从而使散列值的认证功能失效而使散列值的认证功能失效)。散列函数的性质散列函数的性质 散列函数的目的是为文件、消息或
3、其他的分组数据产散列函数的目的是为文件、消息或其他的分组数据产生生“指纹指纹”。用于消息认证的散列函数。用于消息认证的散列函数H必须具有如下必须具有如下性质:性质: 1. H能用于任何大小的数据分组能用于任何大小的数据分组,都能产生都能产生定长的输出定长的输出; 2. 对于任何给定的对于任何给定的x,H(x)要相对要相对易于计算易于计算; 3. 对任何给定的散列码对任何给定的散列码h,寻找寻找x使得使得H(x)=h在计算上不在计算上不可行可行(单向性单向性)。 4. 对任何给定的分组对任何给定的分组x,寻找不等于寻找不等于x的的y,使得使得H(x)=H(y)在计算上不可行在计算上不可行(弱抗冲
4、突弱抗冲突)。 5. 寻找任何的寻找任何的(x,y) 使得使得H(x)=H(y)在计算上不可行在计算上不可行(强强抗冲突抗冲突)散列函数散列函数 散列函数散列函数(又称杂凑函数又称杂凑函数)是对不定长的输入是对不定长的输入产生定长输出的一种特殊函数产生定长输出的一种特殊函数: h=H(M) 其中其中M是变长的消息是变长的消息,h=H(M)是定长的散是定长的散列值列值(或称为消息摘要或称为消息摘要),散列函数散列函数H是公开的是公开的,散列值在信源处被附加在消息上,接收方通散列值在信源处被附加在消息上,接收方通过重新计算散列值来保证消息未被篡改。由过重新计算散列值来保证消息未被篡改。由于函数本身
5、公开,传送过程中对散列值需要于函数本身公开,传送过程中对散列值需要另外的加密保护另外的加密保护(如果没有对散列值的保护如果没有对散列值的保护,篡改者可以在修改消息的同时修改散列值篡改者可以在修改消息的同时修改散列值,从从而使散列值的认证功能失效而使散列值的认证功能失效)。散列函数的性质散列函数的性质 前两个性质使得散列函数用于消息认证成为可前两个性质使得散列函数用于消息认证成为可能能; 第第2和第和第3个性质保证个性质保证H的单向性的单向性:给定消息产生给定消息产生散列值很简单散列值很简单,反过来由散列值产生消息计算上反过来由散列值产生消息计算上不可行不可行,这保证了攻击者无法通过散列值恢复消
6、这保证了攻击者无法通过散列值恢复消息息; 第第4个性质保证了攻击者无法在不修改散列值个性质保证了攻击者无法在不修改散列值的情况下替换消息而不被察觉的情况下替换消息而不被察觉; 第第5个性质比第个性质比第4个性质更强个性质更强,保证了一种被称为保证了一种被称为生日攻击的方法无法奏效生日攻击的方法无法奏效.小知识小知识生日攻击生日攻击 生日攻击这个术语来自于所谓的生日问题,在一个教生日攻击这个术语来自于所谓的生日问题,在一个教室中最少应有多少学生才使得至少有两个学生的生日室中最少应有多少学生才使得至少有两个学生的生日在同一天的概率不小于在同一天的概率不小于1/2?这个问题的答案为?这个问题的答案为
7、23。 k1.17 sqrt(n)。 N=365k=22.3,因此,此生日问题因此,此生日问题的答案为的答案为23。 生日攻击隐含着消息摘要的长度的一个下界。一个生日攻击隐含着消息摘要的长度的一个下界。一个40比特长的消息摘要是很不安全的,因为仅仅用比特长的消息摘要是很不安全的,因为仅仅用220次随次随机机Hash可至少以可至少以1/2的概率找到一个碰撞。为了抵抗生的概率找到一个碰撞。为了抵抗生日攻击,通常建议消息摘要的长度至少应取为日攻击,通常建议消息摘要的长度至少应取为128比特比特,此时生日攻击需要约,此时生日攻击需要约264次次Hash。安全的。安全的Hash标准标准的输出长度选为的输
8、出长度选为160比特是出于这种考虑。比特是出于这种考虑。散列码使用方式散列码使用方式散列码不同的使用方式可以提供不同要求的消息认证。散列码不同的使用方式可以提供不同要求的消息认证。 使用对称密码体制对附加了散列码的消息进行加密。这种方式与使用对称密码体制对附加了散列码的消息进行加密。这种方式与用对称密码体制加密附加检错码的消息在结构上是一致的。认证用对称密码体制加密附加检错码的消息在结构上是一致的。认证的原理也相同的原理也相同,而且这种方式也提供保密性。而且这种方式也提供保密性。 使用对称密码体制仅对附加的散列码进行加密。在这种方式中如使用对称密码体制仅对附加的散列码进行加密。在这种方式中如果
9、将散列函数与加密函数合并为一个整体函数实际上就是一个果将散列函数与加密函数合并为一个整体函数实际上就是一个MAC函数。函数。 使用公钥密码体制,用发方的私有密钥仅对散列码进行加密。这使用公钥密码体制,用发方的私有密钥仅对散列码进行加密。这种方式与第二种方式一样提供认证而且还提供数字签名。种方式与第二种方式一样提供认证而且还提供数字签名。 发送者将消息发送者将消息M与通信各方共享的一个秘密值与通信各方共享的一个秘密值S串接,然后计算出串接,然后计算出散列值,并将散列值附在消息散列值,并将散列值附在消息M后发送出去。由于秘密值后发送出去。由于秘密值S 并不并不发送,攻击者无法产生假消息。发送,攻击
10、者无法产生假消息。散列函数的结构散列函数的结构 为了对不定长的输入产生定长的输出,并且最后的结为了对不定长的输入产生定长的输出,并且最后的结果要与所有的字节相关,大多数安全的散列函数都采果要与所有的字节相关,大多数安全的散列函数都采用了分块填充链接的模式,其结构是迭代型的。用了分块填充链接的模式,其结构是迭代型的。 这种散列函数将输入数据分为这种散列函数将输入数据分为L个固定长度为个固定长度为b比特的比特的分组。输入数据除了消息和附加的填充数据外,还附分组。输入数据除了消息和附加的填充数据外,还附加了消息的长度值。附加的这个长度值将增加对手攻加了消息的长度值。附加的这个长度值将增加对手攻击的难
11、度。对手要么找出两个具有相同长度的消息,击的难度。对手要么找出两个具有相同长度的消息,使得它们加上各自长度值后散列值相同。要么找出两使得它们加上各自长度值后散列值相同。要么找出两个不同长度的消息,这样的消息加上各自的长度值后个不同长度的消息,这样的消息加上各自的长度值后必须散列成相同的值。必须散列成相同的值。 散列算法中重复使用一个压缩函数散列算法中重复使用一个压缩函数f,f产产生一个生一个n比特的输出。比特的输出。f有两个输入:一有两个输入:一个是前一步的个是前一步的n比特输出比特输出,称为链接变量称为链接变量;另一个是另一个是b比特的分组。比特的分组。迭代型散列函数的结构迭代型散列函数的结
12、构Hash函数的核心函数的核心 已经证明如果压缩函数是无碰撞的已经证明如果压缩函数是无碰撞的,则上述方法则上述方法得到的得到的Hash函数也是无碰撞的。因此函数也是无碰撞的。因此Hash函函数的核心技术是设计无碰撞的压缩函数。同样数的核心技术是设计无碰撞的压缩函数。同样,敌手对算法的攻击重点也是对敌手对算法的攻击重点也是对f 的内部结构的的内部结构的分析。与分组密码一样分析。与分组密码一样,f也是由若干轮处理过也是由若干轮处理过程组成程组成,因而对因而对f 的分析需要通过对各轮之间的的分析需要通过对各轮之间的比特模式的分析来进行比特模式的分析来进行,常常需要先找出常常需要先找出f的碰的碰撞。由
13、于撞。由于f 是压缩函数是压缩函数,因而一定存在碰撞。这因而一定存在碰撞。这就要求在设计就要求在设计f时使找出时使找出f的碰撞在计算上是不的碰撞在计算上是不可行的。可行的。3.1.2常见的散列函数常见的散列函数 MD4和和MD5 SHA 其他其他3.2数字签名数字签名 3.2.1数字签名的基本概念数字签名的基本概念 3.2.2数字签名的必要性数字签名的必要性 3.2.3数字签名的原理数字签名的原理 3.2.4数字签名的要求数字签名的要求 3.2.5数字签名的作用数字签名的作用 3.2.6单独数字签名的安全问题单独数字签名的安全问题3.2数字签名数字签名 3.2.7 RSA签名体制签名体制 3.
14、2.8 ELGamal签名体制签名体制 3.2.9 无可争辩签名无可争辩签名:签名者参与验证签名者参与验证 3.2.10 盲签名盲签名 3.2.11 双联签名双联签名RSA数字签名体制数字签名体制 3.3 数字信封数字信封- 发送方产生会话密钥发送方产生会话密钥- 用接收方公钥加密会话密钥,形成数字用接收方公钥加密会话密钥,形成数字信封信封- 发送加密消息和数字信封发送加密消息和数字信封- 接收方打开信封接收方打开信封- 解密消息解密消息3.4 混合加密系统混合加密系统 消息摘要算法会话密钥链接签名算法发送加密算法消息签名签名私钥消息摘要时间戳密文消息消息签名3.5 数字时间戳数字时间戳 仲裁方案仲裁方案- A产生产生hash值并传送给值并传送给B- B在收到的值后附加时间并签名在收到的值后附加时间并签名,回传给回传给AA、B仍然可能合谋仍然可能合谋 链接协议链接协议