认证理论与技术.ppt_第1页
认证理论与技术.ppt_第2页
认证理论与技术.ppt_第3页
认证理论与技术.ppt_第4页
认证理论与技术.ppt_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第11章认证理论与技术 1 认证 认证码 hash函数 11 1认证与认证系统 认证 authentication 是防止主动攻击的重要技术 对开发系统安全性有重要作用 认证的主要目的实体认证 发送者非冒充 消息认证 验证信息的完整性 11 1认证与认证系统 cont 网络环境中的攻击 认证的需求 1 泄漏2 通信量分析3 伪装 假报文 4 内容篡改 插入 删除 调换和修改 5 序号篡改 报文序号的修改 6 计时篡改 报文延迟或回放 7 抵赖 否认收或发某报文 1 2加密 3 6报文认证 7数字签名 3 6 保密和认证同时是信息系统安全的两个方面 但它们是两个不同属性的问题 认证不能自动提供保密性 而保密性也不能自然提供认证功能 一个纯认证系统的模型如下图所示 窜扰者 信宿 信源 认证编码器 认证译码器 信道 安全信道 密钥源 11 1认证与认证系统 三类产生认证码的函数报文加密以整个报文的密文为认证码 报文认证码 mac 是报文和密钥的公共函数 产生一个定长值作为认证码 hash函数一个将任意长度的报文映射为定长的hash值的公共函数 以hash值作为认证码 11 2报文加密提供认证 常规加密问题 如果报文是任意比特的组合 接收方没有自动的方法确定报文的合法性 解决方案 强调明文的某种结构 这种结构是易于识别但不能复制且无需加密的 对称加密与认证的关系 a b e k m 提供保密 仅a和b共享密钥k 提供一定程度的认证仅来自a传输中不会被更改需要某种结构或冗余不提供签名接收者可以伪造报文发送者可以否认报文 下图的通信双方 用户a为发信方 用户b为接收方 用户b接收到信息后 通过解密来判决信息是否来自a 信息是否是完整的 有无窜扰 常规加密 具有机密性 可认证 11 2报文加密提供认证 cont 公开密钥加密发送方用自己的私钥加密报文 接收方用发送方的公钥解密 与对称密钥加密原理相同 需要某种特定报文结构 该方案不提供加密 发送方先用自己的密钥加密以提供认证 然后使用接收方公钥加密提供保密性 缺点是效率不高 公开密钥加密与认证的关系 a b e kub m 提供保密 仅b能解密 不提供认证a b e kra m 提供认证和签名 仅有a可加密 需要某种结构和冗余 任何一方均能验证签名 a b e kub e kra m 可提供保密可提供认证和签名 kub b方的公钥 1 公钥加密 具有机密性 2 公钥加密 认证和签名 3 公钥加密 机密性 可认证和签名 11 3报文认证码 mac 认证码 mac 也称密码检验和 对选定报文 使用一个密钥 产生一个短小的定长数据分组 称认证码 并将它附加在报文中 提供认证功能 mac ck m 其中m是可变长的报文 k是共享密钥 ck m 是定长的认证码 应用认证码 如果只有收发方知道密钥 同时收到的mac与计算得出的mac匹配 确认报文未被更改 确信报文来自所谓的发送者 如果报文包含序号 可确信该序号的正确性 11 3报文认证码 cont 报文认证码的基本用法1a b m ck m 提供认证 因仅a和b共享k c m m ck m k c k 比较 源点 终点 11 3报文认证码 cont 报文认证码的基本用法2a b ek2 m ck1 m 提供认证 因仅a和b共享k1 提供保密 因仅a和b共享k2 c m ek2 m ck1 m k1 c k1 比较 源点 终点 e k2 d k2 ck1 m 11 3报文认证码 cont 报文认证码的基本用法3a b ek2 m ck1 ek2 m 提供认证 因仅a和b共享k1 提供保密 因仅a和b共享k2 c m ck1 ek2 m k1 c k2 比较 源点 终点 e k2 d k1 ek2 m m 11 3报文认证码 cont 为什么使用报文认证 而不是用常规加密 适用于报文广播 并不需要每个点都有密钥 报文加密解密的工作量比较大 某些应用不关心报文的保密而只关心报文的真实性 认证函数与保密函数的分离能提供结构上的灵活性 认证与保密可在网络协议的不同层次进行 认证码可延长报文的保护期限 同时能处理报文内容 使用加密 当报文解密后 保护就失效了 11 3报文认证码 cont 注意认证函数类似加密函数 但它是不可逆的 这个性质使其比加密函数更难破解 认证函数并不提供数字签名 认证码的信息论 g j simmons发展的认证系统的信息理论 类似保密系统的信息理论 也是将信息论用于研究认证系统的理论安全性和实际安全性问题 指出认证系统的性能极限以及设计认证码必须遵循的原则 是研究认证问题的理论基础 11 3报文认证码 cont mac函数应有如下性质 攻击者没有k 有m和ck m 试图生成m 使得ck m ck m 这在计算上不可行 ck m 应能均匀分布 对于随机选取的报文m和m ck m ck m 的概率为2 n其中n为mac的比特长度 抗选择明文攻击 报文m 为m的某种已知代换 即m f m 则ck m ck m 的概率为2 n 11 3报文认证码 cont 基于des的报文认证码描述如下 被认证报文分成连续的64bit分组 d1 d2 dn 必要时用0填充 使用des算法e 密钥k 数据认证码计算如下 16 m 64 c1 ek d1 c2 ek d2 c1 cn ek dn cn 1 11 4hash函数 散列 哈希函数 hash函数hash函数是将任意长度的报文映射成一个较短的定长输出报文的函数 如下形式 h h m m是变长的报文 h是定长的hash值 hash函数的目的是为文件 报文或其它的分组数据产生 数字指纹 11 4hash函数 cont 使用hash码提供报文认证的方式 a a b ek m h m 提供保密 仅a和b共享k 提供认证 加密保护h m b a b m ek h m 提供认证 加密保护h m c a b m ekra h m 提供认证和数字签名 加密保护h m 且仅a能生成ekra h m 11 4hash函数 cont 使用hash码提供报文认证的方式 续 d a b ek m ekra h m 提供认证和数字签名提供保密 仅a和b共享k e a b m h m s 提供认证 s是通信双方共享的一个秘密值 仅a和b共享s f a b ek m h m s 提供认证和数字签名 仅a和b共享s 提供保密 仅a和b共享k 11 4hash函数 cont 为什么要避免加密的方法 见方法 e 加密软件慢 加密硬件开销不可忽略 加密硬件是针对大长度数据进行优化的 换而言之 对小数据分组加密开销大 加密算法可能受专利保护 加密算法易遭美国政府的出口限制 11 4hash函数 cont hash函数的需求h能用于任何大小的数据分组 h产生定长输出 对任意给定的x h x 要相对易于计算 使得软硬件实现都实际可行 对任意给定的码h 寻求x使得h x h在计算上是不可行的 单向性 任意给定分组x 寻求不等于x的y 使得h y h x 在计算上不可行 弱抗攻击性 寻求对任何的 x y 对使得h x h y 在计算上不可行 强抗攻击性 11 4hash函数 cont 简单的hash函数每个分组按比特异或 ci bi1 bi2 bim其中 ci是第i个比特的hash码 1 i n m是输入的n比特分组数 bij是第j分组的第i比特 简单的奇偶校验 针对应用中的可预测数据格式 提出如下改进方案 11 4hash函数 cont 简单的hash函数的改进方案先将n比特的hash值设置为0 按如下方式依次处理数据分组 将当前的hash值循环左移一位 将数据分组与hash值异或形成新的hash值 这将起到输入数据完全随机化的效果 并且将输入中的数据格式掩盖掉 11 4hash函数 cont 生日攻击 基于生日悖论 在k个人中 找一个与某人生日相同的人的概率超过0 5时 只需k 183 而在此人群中 至少有两个人生日相同的概率超过0 5 只需k 23 第12章hash算法 md5和md4安全hash算法sharipemd 160hmac b y0 n iv cv0 f b y1 n f b yl 1 n cvl 1 f cv1 n n iv 初始值cv 链接值yi 第i个输入数据块f 压缩算法n hash码的长度b 输入块的长度 安全hash算法的一般结构 cvl cv0 iv initialn bitvaluecvi f cvi 1 yi 1 1 i l h m cvl md5算法 输入 任意长度的消息输出 128位消息摘要处理 以512位输入数据块为单位 md5 rfc1321 wasdevelopedbyronrivest r ofthersa atmitin90 s 报文 kbits l 512bits n 32bits 100 0 y0 512bits y1 512bits yq 512bits yl 1 512bits hmd5 iv 128 hmd5 cv1 128 hmd5 cvq 128 hmd5 cvl 1 128 512 512 512 512 128 bit摘要 md5产生报文摘要的过程 md5算法描述 步骤1 添加填充位 一个1和若干个0 在消息的最后添加适当的填充位使得数据位的长度满足length 448mod512 步骤2 添加长度 原始消息长度 二进制位的个数 用64位表示 如果长度超过264位 则仅取最低64位 即mod264 到此为止 我们已经得到一个512位的整倍数长度的新的消息 可以表示为l个512位的数据块 y0 y1 yl 1 其长度为l 512bits 令n l 16 则长度为n个32位的字 令m 0 n 1 表示以字为单位的消息表示 md5算法描述 cont 步骤3 初始化md缓冲区 一个128位md缓冲区用以保存中间和最终hash函数的结果 它可以表示为4个32位的寄存器 a b c d 寄存器初始化为以下的16进制值 a 67452301b efcdab89c 98badcfed 10325476 md5算法描述 cont 上述值的存储方式为 worda 01234567wordb 89abcdefwordc fedcba98wordd 76543210 md5算法描述 cont 步骤4 处理消息块 512位 16个32位字 压缩函数是本算法的核心 hmd5 它包括4轮处理 四轮处理具有相似的结构 但每次使用不同的基本逻辑函数 记为f g h i 每一轮以当前的512位数据块 yq 和128位缓冲值abcd作为输入 并修改缓冲值的内容 每次使用64元素表t 1 64 中的四分之一 t表 由sin函数构造而成 t的第i个元素表示为t i 其值等于232 abs sin i 其中i是弧度 由于abs sin i 是一个0到1之间的数 t的每一个元素是一个可以表示成32位的整数 t表提供了随机化的32位模板 消除了在输入数据中的任何规律性的特征 t 1 d76aa478t 2 e8c7b756t 3 242070dbt 4 c1bdceee t 16 49b40821 t 49 f4292244t 50 432aff97t 51 ab9423a7t 52 fc93a039 t 64 eb86d391 步骤5 输出结果 所有l个512位数据块处理完毕后 最后的结果就是128位消息摘要 cv0 ivcvq 1 sum32 cvq rfi yq rfh yq rfg yq rff yq cvq md cvl其中 iv abcd的初始值 见步骤3 yq 消息的第q个512位数据块l 消息中数据块数 cvq 链接变量 用于第q个数据块的处理rfx 使用基本逻辑函数x的一轮功能函数 md 最终消息摘要结果sum32 分别按32位字计算的模232加法结果 md5算法描述 cont f t 1 16 x i 16steps g t 17 32 x 2i 16steps h t 33 48 x 3i 16steps i t 49 64 x 4i 16steps a b c d a b c d a b c d a b c d cvq 128 32 yq 512 cvq 1 128 单个512 bit分组的md5处理过程 ismod232 md5压缩函数 每一轮包含对缓冲区abcd的16步操作所组成的一个序列 a b a g b c d x k t i s 其中 a b c d 缓冲区的四个字 以一个给定的次序排列 g 基本逻辑函数f g h i之一 s 对32位字循环左移s位x k m q 16 k 在第q个512位数据块中的第k个32位字t i 表t中的第i个32位字 模232的加 逻辑函数的真值表 bcdfghi00000010011010010011001110011000011101010111011001111110 a b c d a b c d clss g x k t i functiongg b c d 1f b c d b c b d 2g b c d b d c d 3h b c d b c d4i b c d c b d 2i 1 5i mod16 3i 5 3i mod16 4i 7imod16 基本md5操作 单步 md4 1990年10月作为rfc1320发表 byronrivestatmit md4的设计目标安全性 速度 32位体系结构下计算速度快 简明与紧凑 易于编程 有利的小数在前的结构 intel80 xxx pentium md4与md5的区别md4用3轮 每轮16步 md5用4轮 每轮16步 md4中第一轮没有常量加 md5中64步每一步用了一个不同的常量t i md5用了四个基本逻辑函数 每轮一个 md4用了三个 md5每轮加上前一步的结果 md4没有 sha 1算法逻辑 输入 最大长度为264位的消息 输出 160位消息摘要 处理 输入以512位数据块为单位处理 sha由美国国家标准技术研究所nist开发 作为联邦信息处理标准于1993年发表 fipspub180 1995年修订 作为sha 1 fipspub180 1 sha 1基于md4设计 sha 1算法描述 步骤1 添加填充位 一个1和若干个0 在消息的最后添加适当的填充位使得数据位的长度满足length 448mod512 步骤2 添加长度 一个64位块 表示原始消息长度 64位无符号整数 步骤3 初始化md缓冲区 一个160位md缓冲区用以保存中间和最终hash函数的结果 它可以表示为5个32位的寄存器 a b c d e 初始化为 a 67452301b efcdab89c 98badcfed 10325476e c3d2e1f0前四个与md5相同 但存储为大数在前的形式 步骤4 以512位数据块为单位处理消息 四轮 每轮20步 四个基本逻辑函数 f1 f2 f3 f4步骤5 输出 全部l个512位数据块处理完毕后 输出160位消息摘要 cv0 ivcvq 1 sum32 cvq abcdeq md cvl其中 iv abcde的初始值 abcdeq对第q轮消息数据块处理最后一轮所得的结果 l 数据块的个数sum32 对每一个输入对的字求加模232md 最后的消息摘要值 a b c d a b c d ft e e s5 wt kt s30 基本sha操作 单步 sha 1压缩函数a b c d e e f t b c d s5 a wt kt a s30 b c d其中 a b c d e 缓冲区的5个字 t 步数 0 t 79 f t b c d 步t的基本逻辑函数 sk 循环左移k位给定的32位字 wt 一个从当前512数据块导出的32位字 kt 一个用于加法的常量 四个不同的值 如前所述 加模232 f1 k w 0 19 20steps f2 k w 20 39 20steps f3 k w 40 59 20steps f4 k w 60 79 20steps a b c e a e a e a e cvq 160 32 yq 512 cvq 1 160 sha 1processingofasingle512 bitblock ismod232 d b c d b c d b c d stepfunctionnamefunctionvalue 0 t 19 f1 f t b c d b c b d 20 t 39 f2 f t b c d b c d 40 t 59 f3 f t b c d b c b d c d 60 t 79 f4 f t b c d b c d wt s1 wt 16 wt 14 wt 3 yq 512bits w0 w1 w15 w16 s1 xor w0w2w8w13 wt s1 xor wt 16wt 14wt 8wt 3 w79 s1 xor w63w65w71w76 ripemd 160 输入 任意长度的消息输出 长度为160位的消息摘要处理 以512位数据块为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论