区块链中的数学 - Amir Herzberg动态密钥共享

  • blocksight
  • 更新于 2020-11-29 14:52
  • 阅读 3846

动态秘密共享方案可有效提高长周期密钥的安全性。本文介绍了典型的Amir Herzberg实现方案,默认情况下所有参与者都参与,恢复阶段只要大于或等于门限t个参与能够周期性地更新自己的密钥部分,就能达到目的,本质上是 n 个参与者协商了一个常数项为零的 t-1 次多项式!

写在前面

上一节讲了Feldman可验证密钥分享方案,在原始Shamir 方案基础上添加了校验,解决传统秘密共享方案中存在的分发者和子秘密持有者的不诚实的问题。

但是安全问题是多方面的,该方案安全性是建立在攻击者不可能在秘密的生命周期内获取特定阈值(门限)如t个子密钥的前提之下的,但是在秘密的生命周期较长的情况下,这一点难以保证,例如参与者电脑可能受到病毒攻击,或者其他原因没有妥善保管以至于泄露或者遗忘等,如果面对长时间的破坏性攻击,可验证秘密共享方案并没有一直较好的安全性。当然可以周期性的改变原始密钥(秘密)来缓解,但是总有一些情况一个密钥(秘密)是长时间不能变的(如一些商业,军事机密等)。

如果每个参与者的密钥分片能够周期性的动态改变并且统一的原始密钥不受影响就好了,本文就来介绍这种动态秘密共享体制。

理解本文的基础是前两篇,如果没看过,建议先熟悉,千里之行,少不了每一步的积累!

动态秘密共享

动态秘密共享方案旨在通过在不改变秘密的情况下,来解决秘密共享方案在长周期保存的安全性问题。其通过周期性地更换密钥分片(即每个参与者自己保存的一部分子密钥),这样每次更换密钥分片后,攻击者在上一个周期内所获得的信息完全失效。

如此,可以根据密钥可能受攻击的程度相应地决定子秘密更换周期的长短,例如如果密钥(秘密)保密级别很高,更换密钥分片的周期就要相应的时间很短,频率高。反之,更换周期就会变长。

保证在每一个周期内密钥的安全性。除此之外,动态秘密共享有一点要满足:

过期的子秘密所包含的信息不会对以后秘密的构造(或恢复)产生不安全的影响

即消除上一周期内攻击者的劳动所获,不随着时间增加,产生累加效应。 接下来,我们介绍经典的动态秘密共享方案-- Amir Herzberg 方案。

Amir Herzberg方案

按照惯例,通过名字,可以猜出这种方案应该是Amir Herzberg提出的, 没错,最早由Amir Herzberg等首于1995年首先提出。这种方案在shamir方案基础上,增加了密钥分片的更新协议。 符号约定同前两篇, 作用在有限域 GF(q)(q 为大素数)上。 这里使用$s_i^k$ 表示参与者$P_i$在第k 周期持有的部分密钥。

密钥分片更新协议:

每个时段开始时要进行子秘密更新,进入第 k 时段后,参与者 $P_i$持有的子秘密要从 $s_i^{k-1}=f^{k-1}(i)$ 更新至$s_i^k$ ,其中$f^{k-1}(0)=s$。

过程如下:

  1. 参与者$P_i$在$Zq$中随机选择t-1 个数,记为$a{ij}(j = 1,2, ..., t-1)$,构造多项式$hi^k(x)=a{i1}x+a{i2}x^2+...+a{it-1}x^{t-1}$ 满足$h_i^k(0)=0$
  2. $Pi$(i= 1,2,..., n)计算$\delta{ij}^k=h_i^k(j) mod\ q $,将结果秘密发送给其他参与者
  3. 参与者$P_j$计算:$s_j^k(x)=sj^{k-1}(x)+\sum{i=0}^n \delta_{ij}$ 作为自己新密钥分片。

可以看出,在密钥分片更新后,原始隐藏密钥的多项式就会变成$f^k(x)=f^{k-1}(x)+\sum_{i=0}^n hi^k(x)$ 显然,$f^k(0)=f^{k-1}(0)+\sum{i=0}^n h_i^k(0)=s$

更新后,也是符合门限秘密共享的要求,任意大于或等于 t 个参与者即可恢复原始秘密。

当然也可以基于Feldman可验证密钥分享的方案来实现动态密钥更换,进一步加强方案的安全性。

小结

动态秘密共享方案可有效提高长周期密钥的安全性。本文介绍了典型的Amir Herzberg实现方案,默认情况下所有参与者都参与,恢复阶段只要大于或等于门限t个参与能够周期性地更新自己的密钥部分,就能达到目的,本质上是 n 个参与者协商了一个常数项为零的 t-1 次多项式!

但是也隐藏了一个约束,需要至少 >= t 个参与者, 如果参与者数量小于t呢?

这是下一节要讲的内容,下一篇将继续介绍!

欢迎关注公众号:blocksight

相关阅读:

区块链中的数学 - Feldman的可验证的密钥分享 Feldman可验证密钥分享方案

区块链中的数学 - Shamir密钥分享 Shamir原始的密钥分享方案

区块链中的数学 - 比特币使用的多签方式 比特币多签和Schnorr聚合签名

区块链中的数学 - 随机数和伪签名 随机数与伪签名构造

区块链中的数学 - EdDSA签名机制 EdDSA的发展及优点

区块链中的数学 - Ed25519签名 Ed25519签名

区块链中的数学-ElGamal算法 ElGamal算法签名及验证&实例演练

区块链中的数学-VRF基于ECC公钥体制的证明验证过程 基于椭圆曲线的VRF证明验证过程

Schorr签名与椭圆曲线 Schorr签名与椭圆曲线

区块链中的数学-Uniwap自动化做市商核心算法解析 Uniwap核心算法解析(中)

点赞 1
收藏 1
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
blocksight
blocksight
江湖只有他的大名,没有他的介绍。