2. 中国科学技术大学 计算机科学与技术学院, 合肥 230026
2. School of Computer Science and Technology, University of Science and Technology of China, Hefei 230026, China
秘密共享最早由Shamir[1]和Blakley[2]与1979年提出. 秘密共享方案中存在一个可信的秘密持有者去分离一个秘密到多个不同的子份额. 秘密持有者需要将子份额分发给多个子份额持有者. 当秘密恢复时, 子份额持有者互相交换子份额用于恢复秘密. 为了避免子份额的持有者收到错误的子份额, 可验证秘密共享允许子份额持有者去验证自己收到的子份额. 后来的可验证秘密共享方案拓宽了原始的概念, 使得可验证体现在以下两个方面:
1)秘密分发过程中, 子份额持有者验证从秘密持有者获得子份额的完整性和正确性.
2)秘密恢复过程中, 秘密恢复者验证从其他子份额持有者那获得的子份额的正确性和完整性.
秘密共享自提出之后就得到了广泛关注, 并成为众多论文的研究热点[3–8]. 此外, 可验证秘密共享是密码学方向中的一个重要领域. 最早的方案是由文献[9]提出, 用以抵抗非法参与者欺骗攻击来提高秘密共享方案的安全性. 随后, 文献[10]提出基于文献[1]的非交互式的可验证秘密共享方案. 该方案利用离散对数的同态性去完成认证. 其安全性是基于离散对数的计算难题假设. 文献[11]总结并提出了一种公开秘密共享方案, 在其中有一种特别的属性. 任何一位参与者都允许检查自己收到子份额是不是正确的.
从方案设计角度来看, 已经有很多种秘密共享方案被提出. 大致可以分为两类.
第一类, 通过通信来完成子份额的验证. 大多数该类方案主要采用双变量多项式, 该类方案主要问题在于, 过多的通信导致验证低效. 比如, 当n个人参与恢复秘密时, 我们需要两两验证子份额的合法性, 总共需要进行
第二类, 采用数学难题来保证验证的安全性和有效性. 很多该类可验证秘密共享方案, 如著名的Feldman[10]和Pedersen[15]都是基于离散对数难题的. 该类的方案主要特点, 利用公开的参数信息进行验证, 可以做到非交互式的验证. 然而针对离散对数问题和大数分解难题, 文献[16]中Shor给出了一个高效的量子算法. 虽然Pedersen[15]更是在Feldman[10]的基础上, 提出了无条件安全的可验证秘密共享方案, 即安全性不依赖于数学难题. 即使离散对数能被解决, 也能保证子份额的安全性. 但一旦出现这种情况, 虽然能保证子份额的安全性, 但方案将无法保持有效性, 验证的过程可被任意伪造, 方案不再有效.
因此, 为了应对可能存在的量子计算机, 保证方案的有效性, 我们需要设计出一种可以抵抗量子攻击的新型无条件安全的可验证秘密共享方案.
本论文组织结构如下. 在第2节, 我们回顾一些基础的定义, 概念和定理. 在第3节, 提出具体的可验证秘密共享方案并描述如何进行子份额的验证. 在第4节, 分析方案的效率安全性, 比较其他的方案. 在结束语中做出全文的总结.
2 基础知识 2.1 秘密共享定义1. 访问结构
使
定义2. 秘密共享[17]
假定K是秘密s的有限集合. 一个分发方案
正确性: 任意在
隐私性: 任意不在
格[18]是
${\bf{L}}({\bf{B}}) = \left\{ {\sum\limits_{i = 1}^n {{x_i}} {{\bf{b}}_i}:{x_i} \in \mathbb{Z},i = 1, \cdots ,n} \right\}$ |
向量组
最短向量问题(Shortest Vector Problem, SVP): 给定格
最短线性无关向量问题(Shortest Independent Vector Problem, SIVP): 给定一个秩为
选定适合的整数
给定函数
上述单向函数的构造十分简单, 且计算十分高效, 他的安全性依赖于格难题. 根据Ajtai文章[19]中结论, 我们有如下引理.
引理1. 如果格上的近似最短向量问题(SVP)和近似最短线性无关向量问题 (SIVP)是多项式时间不可解的, 对于
本节介绍我们提出的可验证秘密共享方案. 该方案示基于Shamir的(t, n)秘密共享, 并且具有高效和抵抗量子攻击的特性.
3.1 符号首先, 定义
该方案由以下3个步骤组成: 初始化阶段, 子份额分发阶段和秘密恢复阶段.
初始化阶段:
秘密持有者在
$f(x) = {a_0} + {a_1}x + \cdots +{a_{t - 1}}{x^{t - 1}}od p$ |
其中, 秘密
分发阶段:
(1) 秘密持有者计算
(2) 秘密持有者公开矩阵A,
(3) 子份额持有者
${F_{\bf A}}({s_i} \oplus {t_i}) = {\bf{A}}({s_i} \oplus {t_i})od q$ |
如果验证所得到的子份额是正确的, 那么继续以下的骤, 如果验证失败, 则要求秘密持有者重新发送子份额.
秘密恢复阶段:
假设有
(1) 子份额持有者之间互相验证对方子份额的合法性, 具体操作如下:
${F_{\bf A}}\left(\sum {(s_j')} \right) = \sum {{F_{\bf A}}({s_j} \oplus {t_j})} od q,j \in [k]$ |
如果验证正确, 则继续下边的步骤. 否则, 我们可以通过以下操作检查每个参与者的身份从而确定哪个是非法的参与者.
${F_{\bf A}}(s_j') = A({s_j} \oplus {t_j})od q,j \in [k]$ |
(2) 参与秘密恢复的子份额持有者互相交换信息
$s = \sum\limits_{i = 1}^k {{s_i}\prod\limits_{1 \le j \le k,j \ne i} {\frac{{{x_j}}}{{{x_j} - {x_i}}}} } od p$ |
为证明验证秘密恢复阶段步骤(1)的正确性, 我们给出定理1.
定理1. 单向函数
$\sum {{F_{\bf A}}({s_i} \oplus {t_i})} = {F_{\bf A}}\left(\sum {({s_i} \oplus {t_i})} \right)od q$ |
证明: 假设有
$\begin{aligned} \sum\limits_{i = 1}^k {{F_{\bf A}}({s_i} \oplus {t_i})} & = \sum\limits_{i = 1}^k {{\bf A}({s_i} \oplus {t_i})} \\ & = \sum\limits_{i = 1}^k {({\alpha _1}, \cdots ,{\alpha _m})({s_i} \oplus {t_i})} od q \end{aligned} $ |
此外, 因为
$\begin{aligned} \sum\limits_{i = 1}^{{k}} {\left( {{\alpha _1}{\delta _{{i_1}}} + \cdots + {\alpha _m}{\delta _{{i_m}}}} \right)} & = \sum\limits_{i = 1}^{\rm{k}} {\sum\limits_{j = 1}^m {{\alpha _j}} } {\delta _{{i_j}}} \\ & = {\bf A}\sum\limits_{i = 1}^k {\left( {{\delta _{{i_1}}}, \cdots ,{\delta _{{i_m}}}} \right)} od \,q \end{aligned} $ |
因此, 函数
在本节, 我们分析提出方案的效率以及安全性. 事实上, 我们的方案就是将Ajtai单向函数函数应用到Shamir方案中, 同时引入随机变量
首先, 我们需要考虑方案的信息率. 信息率是作为衡量一个秘密共享系统的重要手段, 被广泛用于衡量秘密共享方案本身的效率. 信息率
$\sigma = \frac{s}{{{{\max }_{i \in P}}\left( {{s_i}} \right)}}$ |
在我们的方案中, 因为子份额不仅仅是单独的
(1) 验证子份额时所要通信的轮数.
(2) 子份额持有者用于验证子份额合法性所需的通信数据量.
(3) 子份额持有者验证子份额合法性所要做出的运算量.
指标(1)和(2)用于衡量通信的效率, 也是大多数分析通信协议通信复杂度的指标. 指标(3)用于衡量计算的效率.
可验证秘密共享的轮数复杂度主要是在实际方案设计中需要考虑的. 通信轮数相较于通信量来言, 往往需要更多的时间. 因此, 在实际的通信协议中往往作为重要因素被考量. 我们的方案类似于方案[9,16], 是非交互式的可验证秘密共享, 在分发阶段, 并不需要在验证时额外交互信息. 在秘密恢复时, 仅仅只需要将自己的验证信息广播出去即可, 所以不会提高通信轮数, 通信的轮数复杂度可被忽略.
子份额持有者用于验证子份额合法性所需的比特数可以被分为以下两部分: 秘密持有者分发的信息和子份额持有者之间互相交互的信息. 第一部分与其它可验证秘密共享方案差别较大而后一部分和其它可秘密共享方案大致相同, 因此我们主要分析第一部分的信息量. 在我们的方案中, 秘密持有者需要公开一个矩阵
$mn\log q + n\log q \approx {m^2} = {\log ^2}p$ |
其中,
在本文中, 计算开销是可以预估的. 为了更好的说明, 我们比较我们的方案与其它3篇基于Shamir秘密共享的可验证秘密共享方案. 假设所有的秘密和子份额的空间都是在
我们只在此比较子份额持有者用于验证其它子份额合法性所需要的计算量. 在我们的方案中, 子份额持有者仅仅需要在很小的整数中进行线性运算. 总共所需要在
下面我们将从通讯量, 计算量和适用性3个方面, 比较本文方案和以往方案. 通讯量是秘密恢复阶段, 每个参与者需要广播多少比特的验证信息. 计算量是每个在于者在最坏情况的计算复杂度来表示. 比较结果如表1所示.
在表1中, Schoenmakers的方案[20]取决于公钥密码, 所以无法进行评估. 此外, 我们使用“普适”去代表我们方案的适用性. 它代表我们的方案可以应用于任何的方式构造的秘密共享方案中, 例如基于拉格朗日插值多项式, 基于中国剩余定理, 基于超平面空间, 基于线性码等密码共享方案. 显然, 我们的方案相对于其它可验证秘密共享方案具有更好的计算效率.
4.2 安全性分析
我们的方案是基于Shamir秘密共享, 所以任何授权集合都应该能够恢复秘密而任何的非授权集合都不应该能恢复秘密. 此外, 我们还需要考虑验证过程的安全性, 也就是说子份额持有者在验证子份额合法性时是否泄漏了秘密.
定理2. 本文方案的验证机制, 包括分发和秘密恢复过程, 基于Ajtai单向函数, 满足不可区分和不可伪造特性.
证明: 在我们的方案中,
为了证明绑定特性, 我们需要证明不存在 概率多项式时间的算法去找到两个不同的
我们已经证明了我们方案的验证机制满足不可区分和不可伪造两个特性. 不可区分特性意味着方案的验证过程不会泄露秘密的任何信息. 不可伪造特性意味着只有正确的子份额才能通过验证. 在上述证明过程中, 不可区分和不可伪造均是依赖于格难题.
定理3. 即使Ajtai单项函数被破解, 验证子份额的过程也不会泄露任何秘密的信息.
证明: 根据引理1, 我们知道Ajtai单项函数可以被约简为格难题中的近似最短线性无关向量问题. 至今还没有任何多项式时间的算法去解决近似最短线性无关向量问题. 假设近似最短独立向量问题和Ajtai单项函数都被破解, 攻击者可以从
通过以上证明, 我们得到我们的方案是无条件安全的. 换言之, 格难题保证了可验证的有效性, 即使格难题被破解, 我们的方案依旧不会泄露子份额的任何信息. 即本方案的验证机制是无条件安全的.
5 结束语我们在本文展示了基于格的可验证秘密共享方案, 能够在秘密分发和恢复过程中, 验证子份额的合法性. 同时该方案具备无条件安全的特性, 即使格难题被其他什么未知工具破解, 也能保证子份额的安全性.
本方案通过与已有方案的比较, 我们的方案具有以下特性: 更高的效率; 量子攻击抵抗性; 普适性(可以应用于任何数学工具实现的秘密共享方案).
[1] |
Shamir A. How to share a secret. Communications of the ACM, 1979, 22(11): 612-613. DOI:10.1145/359168.359176 |
[2] |
Blakley GR. Safeguarding cryptographic keys. Proceedings of 1979 International Workshop on Managing Requirements Knowledge. New York, NY, USA. 1979. 313–318.
|
[3] |
李新超, 钟卫东, 刘明明, 等. 基于秘密共享的SM4算法S盒实现方案. 计算机工程, 2018, 44(11): 148-153. |
[4] |
王俞力, 杜伟章. 向量空间上无可信中心的动态多秘密共享方案. 计算机工程, 2017, 43(7): 163-169. DOI:10.3969/j.issn.1000-3428.2017.07.027 |
[5] |
顾为玉, 苗付友, 何晓婷. 基于二元对称多项式的公平秘密共享方案. 计算机工程与应用, 2016, 52(13): 38-42, 109. DOI:10.3778/j.issn.1002-8331.1601-0192 |
[6] |
张红军, 刘珂, 牟占生. 基于格的门限秘密共享算法. 计算机工程, 2016, 42(6): 139-143, 150. DOI:10.3969/j.issn.1000-3428.2016.06.024 |
[7] |
梁建武, 刘晓书, 程资. 基于图态和中国剩余定理的量子秘密共享方案. 通信学报, 2018, 39(10): 72-78. DOI:10.11959/j.issn.1000-436x.2018220 |
[8] |
彭巧, 田有亮. 基于多线性Diffie-Hellman问题的秘密共享方案. 电子学报, 2017, 45(1): 200-205. DOI:10.3969/j.issn.0372-2112.2017.01.027 |
[9] |
Chor B, Goldwasser S, Micali S, et al. Verifiable secret sharing and achieving simultaneity in the presence of faults. Proceedings of the 26th Annual Symposium on Foundations of Computer Science. Portland, OR, USA. 1985. 383–395.
|
[10] |
Feldman P. A practical scheme for non-interactive verifiable secret sharing. Proceedings of the 28th Annual Symposium on Foundations of Computer Science. Los Angeles, CA, USA. 1987. 427–438.
|
[11] |
Stadler M. Publicly verifiable secret sharing. Proceedings of the International Conference on the Theory and Applications of Cryptographic Techniques. Saragossa, Spain. 1996. 190–199.
|
[12] |
Fitzi M, Garay J, Gollakota S, et al. Round-optimal and efficient verifiable secret sharing. Proceedings of the 3rd Theory of Cryptography Conference. New York, NY, USA. 2006. 329–342.
|
[13] |
Patra A, Choudhary A, Rabin T, et al. The round complexity of verifiable secret sharing revisited. Proceedings of the 29th Annual International Cryptology Conference. Santa Barbara, CA, USA. 2009. 487–504.
|
[14] |
Kumaresan R, Patra A, Rangan C P. The round complexity of verifiable secret sharing: The statistical case. Proceedings of the 16th International Conference on the Theory and Application of Cryptology and Information Security. Singapore. 2010. 431–447.
|
[15] |
Pedersen TP. Non-interactive and information-theoretic secure verifiable secret sharing. Proceedings of the Annual International Cryptology Conference. Santa Barbara, CA, USA. 1992. 129–140.
|
[16] |
Shor PW. Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer. SIAM Review, 1999, 41(2): 303-332. DOI:10.1137/S0036144598347011 |
[17] |
Beimel A. Secret-sharing schemes: A survey. Proceedings of the 3rd International Conference on Coding and Cryptology. Qingdao, China. 2011. 11–46.
|
[18] |
王小云, 刘明洁. 格密码学研究. 密码学报, 2014, 1(1): 13-27. |
[19] |
Ajtai M. Generating hard instances of lattice problems extended abstract. Proceedings of the Twenty-eighth Annual ACM Symposium on Theory of Computing. Philadelphia, PA, USA. 1996. 99–108.
|
[20] |
Schoenmakers B. A simple publicly verifiable secret sharing scheme and its application to electronic voting. Proceedings of the 19th Annual International Cryptology Conference. Santa Barbara, CA, USA. 1999. 148–164.
|