密码学认证

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

函数的分类
单向 函数按其是否有使用密钥控制可划分两类,即带密钥控制的单 向 函数(, )和不带密钥控制的单向 函数()。
无密钥控制的单向 函数,其 值只是输入字串的函数,任何人都可以 计算,因而不具有身份认证功能,只用于检测接收数据的完整性。如 篡改检测码,在安全的标准就采用了这种技术。
而带密钥控制的单向 函数,其 值不仅与输入有关,而且与密钥有关, 只有具有密钥的人才能计算出相应的 值,因此具有身份验证的功能。 在消息认证标准和中就使用了带密钥的单向 函数。
第一步:消息分组和填充( ) 对消息输入按位进行分组,最后要填充使其成为位
的整数倍,且最后一个分组的后位用来表示消息 在 的值。 第二步:初始化缓冲区 函数的中间结果和最终结果保存在位的缓冲 区、、、中,其中、、、均为位,其初始值分别 为, ,,。 第三步:主循环 每次:一个输入位,另一个输入位,结果输出位, 用于下一轮输入 最后一步的输出即为散列结果位 循环的次数为填充后消息的分组数
安全函数的一般结构
由于年提出, 是一个迭代结构, 几乎被所有算法采用 具体做法: 把原始消息分成一些固定长度的块 若最后个分组不足位,则将其填充为位,通常把的长度填
充到最后一个分组中。 设定初始值 压缩函数, () 最后一个为值
安全函数的一般结构
安全函数的结构如图所示。其中,为初值,为链接变量, 为个输入分组,为压缩算法,为输入的分组组数,为码的 长度,为输入分组长度。
认证系统
在这个系统中的发送者通过一个公开信道将消息送给接收者,接收者不 仅想收到消息本身,而且还要验证消息是否来自合法的发送者及消息是否 经过篡改。系统中的密码分析者不仅可以截取和分析信道中传送的密报, 而且可伪造密文送给接收者进行欺诈,称其为系统的窜扰者()更加贴切。实 际认证系统要能防止收、发之间的相互欺诈。
是生日攻击。
生日攻击基于生日悖论,即任意个人至少两个人生日相同的概率不小 于,至少应该多少?答案是人。生日攻击方法是随机选择个不同的 值,…,计算(),然后确定是否有一个碰撞发生。
强碰撞的单向函数正是基于生日攻击定义的。为了抵抗生日攻击,值 必须足够长,通常建议函数值至少为。安全标准的输出长度选为正是 基于这个考虑。
信源
窜扰者
认证编码器 认证译码器 信道
认证信道
密钥源
信宿
消息认证
在网络通信中,有一些针对消息内容的攻击方法 伪造消息 篡改消息内容 改变消息顺序 消息重放或者延迟 消息认证:对收到的消息进行验证,证明确实是
来自声称的发送方,并且没有被修改过。 如果在消息中加入时间及顺序信息,则可以完成
函数在实际中有广泛的应用,特别在密码学和数据安全技 术中,它是实现安全、可靠的认证和数字签名的重要工具, 是安全认证协议、数字签名算法的重要组成部分。
函数的安全性
函数的安全性取决于抗击各种攻击的能力。 攻击者的主要目标是找到一对或更多对碰撞消息。 一般假定攻击者知道单向 函数的算法。对单向 函数的主要攻击方法
设计函数的基本方法
函数算法的核心是压缩函数,如果压缩函数具有抗碰撞能 力,那么函数也就具有抗碰撞的能力。
设计函数的基本方法有以下几种:
利用某些数学难题比如因子分解问题、离散对数问题等设 计函数。已设计出的算法有平方算法、建议、 算法、平 方算法、背包算法、的 算法等 。
利用某些私钥密码体制比如等设计函数。这种函数的安全 性与所使用的基础密码算法有关。这类算法有算法、算法、 算法、算法和算法等。
密码学(六)
认证
(一) 认证基本概念 (二) 认证协议
认证基本概念
认证目的
保密的目的是防止对手破译系统中的机密信息。认证() 是防止攻击,如伪装、窜扰等的重要技术。
认证目的: ()验证信息的发送者是真的、而不是冒充的,此为实体认 证,包括信源、信宿等的认证和识别; ()验证信息的完整性,此为消息认证,验证数据在传送或 存储过程中未被篡改、重放或延迟等。
条件: 攻击者知道函数但不知道密钥 要求: 已知和(),要想构造 使得()( )在计算上不可行(计算上
无碰撞) ()均匀分布:随机选择和 ,
[() ( )] 是的一个变换(例如对某些位取反),那么, [() (())]
标准(美国国家标准)() 初始向量为 该方法适用于其他加密算法
不等于数字签名 因为通讯双方共享同一个密钥 有固定的长度 结构的重要性,例如,密钥足够长加密算法足够好 安

(,…)
对产生校验码
Leabharlann Baidu

() 攻击者选择 (,…),使得满足:


于是
, ( )( ), ( )( ),
所以,尽管攻击者不知道,仍然可以伪造消息
算法的要求
算法: (,…) ( ), <
散列函数
函数
需要对全部数据进行加密 速度慢 是一种直接产生认证码的方法。函数是以一个变长的消息
作为输入,并产生一个定长的散列值函数。 函数: (), 要求: 给定和,很容易计算(); ()能够快速计算 单向性:给定(),根据() 计算很难; 给定,找到 使()()在计算上不可行
直接设计函数。这类算法不基于任何假设和密码体制,是 人们广泛关注和青睐,是当今比较流行的一种方法。美国 的安全算法()就是这类算法,此类算法还有、、、和等。
函数—算法
作者: 算法 输入:任意长度的消息 输出:位消息摘要 处理:以位输入数据块为单位
函数—算法意示图
函数— 步骤
对时间和顺序的认证
消息认证的三种方式
:用整个消息的密文作为认证标识 接收方必须能够识别错误 :一个公开函数,加上一个密钥产生一个固定长度的值作
为认证标识 :一个公开函数将任意长度的消息映射到一个固定长度
的散列值,作为认证标识
使用一个双方共享的秘密密钥生成一个固定大小的小数 据块,并加入到消息中,称.
用户和用户,共享密钥,对于消息, () 如果接收方计算的与收到的匹配,则
接收者可以确信消息未被改变
接收者可以确信消息来自所声称的发送者
如果消息中含有序列号,则可以保证正确的消息顺序
函数类似于加密函数,但不需要可逆性。因此在数学上 比加密算法被攻击的弱点要少
应用方式
()
关于算法
相关文档
最新文档