当前位置:文档之家› 单向哈希密钥链简析

单向哈希密钥链简析


Hash函数 函数
• Hash函数的性质: Hash函数的性质 函数的性质 输入可以是任意长; 输出是固定长; 对于给定的x,计算h(x)比较容易; 对任意给定的Hash值z,找到满足h(x)=z的x 在计算上是不可行的,这就是函数的单向性 单向性; 单向性 已知x,找到y (y ≠ x) 满足h(y)=h(x)在计算上 是不可行的,这称为抗弱碰撞性 抗弱碰撞性; 抗弱碰撞性
Hash函数 函数
• Hash,一般翻译做"散列",也有直接音译为"哈希 "的,就是把任意 任意长度的输入(又叫做预映射, 任意 pre-image),通过散列算法,变换成固定 固定长度的 固定 输出,该输出就是散列值。这种转换是一种压缩 映射,也就是,散列值的空间通常远小于输入的 空间,不同的输入可能会散列成相同的输出,而 不可能从散列值来唯一的确定输入值。 • Hash函数 函数: 函数 简单的说,就是一种将任意长度的消息压缩 到某一固定长度的消息摘要 摘要的函数。 摘要
分层单向哈希密钥链
分层单向哈希密钥链
每个密钥 应用在高级(high-level)时间间 隔 内,而每个密钥 被用在低级(low-level)时 间间隔 内。 和 是不同的伪随机函数。 commitment 每个承诺(commitment) 在时间间隔 与时间间隔 联系在一起。我们记 的起始时间为 ,因此高层链的起始时间就是 。 因为高层链的持续时间相对于网络时延、同 步误差(clock discrepancie)很大,我们决定在时 clock discrepancie 间段 公布 。假设节点在t时刻收到了密钥 , 当 ,说明还没有到达 时刻,也就是基 站还没有公布 。基站是在 时刻才会公布密 钥 。其中, 是基站与节点之间的最大的同步 误差。
(陷门)单向函数 陷门)
2*.当用陷门函数f作为加密函数时,可将f公 开,这相当于公开加密密钥。此时加密密钥便称 为公开钥,记为Pk。f函数的设计者将δ保密, 用作解密密钥,此时δ称为秘密钥记为Sk。由于 加密函数是公开的,任何人都可以将信息x加密 成y=f(x),然后送给函数的设计者(当然可以通 过不安全信道传送);由于设计者拥有Sk。他自 然可以解出 x = f −1(y) 。
y = gx mod p
常见的单向函数(困难问题) 常见的单向函数(困难问题)
(3)多项式求根问题 有限域 GF( p)上的一个多项式: y = f ( x ) = x n + a n −1 x n −1 + L + a1 x + a0 mod p 已知 a0 , a1,L, an−1, p 和 x ,求 y 是容易的,而已 知 y, a0 , a1 ,L, an−1 ,求 x 则是困难的。 (4)二次剩余问题(quadratic residue problem) 已知 x和 n,求满足 x2 ≡ y(modn) 的 y 是容易的;而 2 y ,求满足x ≡ y(modn) 在 n 的分解未知时,已知 n 和 的 x 则是困难的。
分层单向哈希密钥链
分层单向哈希密钥链
也称,secondary chain是低层链,primary chain是高层链。 低层链的作用是验证广播信息,而高层链则 是起到分配和验证低层链的承诺(commitment)。 在高层链用足够长的时间间隔(这个时间间 隔可以覆盖一个传感器网络的生命周期)分割时 间线的同时,保证低层密钥链有足够短的时间间 隔,使得接受与认证广播信息之间的时延在可以 容忍的范围。 而传感器网络的生命周期被连续地分成n份, 分别记为 ,高层链有 个元素(密钥) 分别为 。
单向哈希密钥链
如下图所示为一个标准哈希密钥链:
可信性验证: 可信性验证: 我们假使验证者(verifier)获得一个生成的哈 希链的可信值 ,通过判断 的值是否为 来判 断一个输入的检验值 的真实性。如果相等,则是 可信的,否则不可信。 注意到,对任意一个已知(可信)的 ,其 中 ,对其迭代 次后的值为 的话, 也是 可信的。
Hash函数 函数
对任意两个不同的输入x、y,使h(y)=h(x)在 计算上是不可行的,这称为抗强碰撞性 抗强碰撞性; 抗强碰撞性
注: 碰撞性是指对于两个不同的消息x和y,如果 碰撞性 它们的Hash值相同,则说发生了碰撞。
单向哈希密钥链
一个单向链 若满足如下条件: 对任意的 ,有 成立,这里 是密码体制中常用的一个单向Hash函数。 那么,该单向链也称为哈希链 哈希链。 哈希链 通常,密钥分发者(generator)随机选择一个 (generator) 作为该哈希密钥链的根密钥 根密钥(或者说种子密钥 种子密钥)。 根密钥 种子密钥 然后,通过哈希函数 对这个种子密钥反复迭代 计算出该链中其它密钥。最后算出的 我们称之 为终值 终值。这个值 通常公开,间接标识了拥有种 终值 子密钥的用户的身份。
单向哈希密钥链
遍历性: 遍历性: 当密钥发布者(generator)公布了哈希链中 所有的密钥值,我们就称遍历 遍历了该哈希链。 遍历 目前,generator主要有两种遍历方式: 其一,generator在存储器中存储该哈希链的 所有密钥值; 其二,generator通过根密钥与哈希函数验证 每个密钥值。
You! Thank You!
Zp
常见的单向函数(困难问题) 常见的单向函数(困难问题)
(1)大整数分解问题(factorization problem) 若已知两个大素数p和q,求n=pq是容易的, 而由n求p和q则是困难的。 (2)离散对数问题(discrete logarithm problem) 给定一个大素数p,p-1含另一个大素数因子q, 则可构造一个p-1阶乘法群 (Zp是一个有限域,除 Z* 去其中的零元则构成p-1阶循环群),它是一个pp 1阶循环群。设g是 的一个生成元,1<g<p-1。 已知x,求 是容易的,而已知y、g、p, Z* p x y = g mod p 求x使得 成立则是困难的。
其中, 下面没有子链,因为它代表整个分层 哈希链的验证值(verification value)。 一个不足之处是,这种方案中的验证是分期 的,而generator仅仅在主链的转换过程中发送的 authentication value 验证值(authentication value)。另一个明显不足 是,对第二层(secondary chain)的终值的验证 (通过承诺)比较繁琐。如果终值的承诺 (commitment)发生丢失,验证者就不得不等到 该低层链的生成密钥被修复后公布才能继续。所 以一种折中方案是:在primary chain的少的转换 (infrequent transitions)与小的认证时延(a short authentication delay)之间找到平衡。
单向哈希密钥链简析
杭州电子科技大学 邓淑华
(陷门)单向函数 陷门)
• 若对于函数f有以下条件: 给定自变量x,计算y=f(x)是容易的; 给定y,获取x,使得y=f(x)是困难的(所谓计算困 难是指计算上相当复杂,已无实际意义。); 存在δ,已知δ时,对给定的任何y,若相应的x 存在,则计算x使y=f(x)是容易的。 注: 单向函数;第 1*.仅满足 、 两条的称为单向函数 单向函数 条称为陷门性,δ称为陷门信息。满足以上三条的 函数f称为陷门单向函数。 陷门单向函数。 陷门单向函数
分层单向哈希密钥链
每一个 进一步被分成 ,如果需要, 基站为每个 产生一个低级链,由 生成 ,其中 用于验证在时间段 内的广播消息,而密钥链 的开始时间已被 设置为 为了使传感器在时间段 内使用低层 链 ,必须对承诺(commitment) 进行验证。
分层单向哈希密钥链
密钥公布时间表
分层单向哈希密钥链
单向哈希密钥链
优缺点: 单向性在显著改善安全的同时,也面临计算 复杂度高(当迭代次数很大时)以及存储与传输 开销大等缺点。特别是对于在无线传感网络等资 源受限的环境下,这种缺陷更加明显。 所以,有学者提出分层单向密钥链 分层单向密钥链机制。 分层单向密钥链
分层单向哈希密钥链
分层单向哈希密钥链( 分层单向哈希密钥链(Hierarchical One-Way Chains): ):顾名思义,就是包含两层或更多哈希 ): 密钥链的密钥链。 第一层称为基本链 主要链(primary chain), 基本链或主要链 基本链 主要链( ) 它是其下一层(secondary chain)的基础或基准。 secondary chain 我们称由primary chain中第i个密钥生成的新链为 secondary chain 中的第i个链。不同层的链使用的 单向函数可以相同也可以不同。 secondary chain 中的第i个链的所有值的发布,必须在第i+1个链中 任意一个值(肯定也包含基本链中的第i+1个值) 发布之后。并且,primary chain中的第i个值的发 布时机处于二者之间。
常见的单向函数(困难问题) 常见的单向函数(困难问题)
(5)背包问题(knapsack problem) r r 给定向量 A = (a1, a2 ,L, an )(ai为正整数)和x = ( x1, x2 ,L, xn )( xi ∈{0,1}), r r 求和式 S = f (x) = a1x1 + a2x2 +L+ anxn 是容易的,而由 A 和 S ,求 r x 则是困难的。 当然,还有其他一些单向函数,而更多的单向 函数还有待于发掘和应用。
相关主题