秘密共享这一思想首先是由Shamir11和Blakley于1979年于不同场合提出的。其主要思想是在一个由若干实体组成的集合中,允许一个密钥分发者来专门负责密钥的分发和管理,而原始密钥被这若干个实体(若n>0)也称作密钥的分享者或参与者分享,结果使得只有特定的若干个密钥分享者构成的子集才能恢复原始密钥。若给定一个门限值t,t<n,只需t个共享者就能恢复原始密钥,而任何一个含元素个数比t少的子集都不能得出有关密钥的任何信息,此时得出的方案就是(t,n)门限方案。随着这一思想的提出,许多秘密共享方案应运而生,如Asmuth和Bloom提出的基于模数的密钥保护分割方案,Brickell提出的理想化的密钥分割方案,等等。但是这些方案普遍都是基于数学上的问题,在本文中介绍了基于对称加密系统的秘密共享方案。

基于对称加密系统的秘密共享方案

对称密钥加密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,保持钥匙的秘密。其中很有代表性的有DES,IDEA,AES。而本文所提到的方案是以DES算法为例的。也就是说模型是固定的,中间的加密算法可以根据自己的情况进行更改。

方案原理

该方案的实质是将要分享的主密钥以及要分发子密钥都通过对称加密系统进行加密保存在本机中,参与者要重组主密钥时需通过达到门限值数量的子密钥来产生解密主密钥所需新密钥,并与本机所储存的数据进行比对,从而达到秘密的共享。具体步骤如下:

1)密钥产生与分发过程:密钥分发者在分享秘密之前,产生主密钥,这个主密钥MKey可以是随机产生,也可以是指定的。之后再随机产生n(参与者个数)个子密钥SKey。将这n个子密钥SKey按照一定算法产生n个原子密钥OKey。这里提到的算法是通过在64byte的子密钥中每8byte取其中的第一个byte派生出64位的原子密钥。

这个算法是用来通过子密钥派生原子密钥的,所以算法的复杂程度不需要很高。但是这个算法是保密的,同时可根据加密算法的不同以及安全性的要求进行更改,扩展性很强。然后利用n个原子密钥OKey作为密钥与n个子密钥SKey作为明文进行DES加密,之后生成n*n个密文。通过组合数公式计算出C(t,n)种原子密钥OKey组合,每个原子密钥组合做异或运算,产生C(t,n)个组合数密钥CKey。

之后通过这些组合数密钥对主密钥MKey进行加密。产生C(t,n)个密文。将这C(t,n)十ntn个密文存储在数据库中用作之后的验证使用。发送n个子密钥SKey到n个分享者,并删除本机的主密钥以及子密钥信息。这样主密钥和子密钥都以密文形式存储在本机上用作以后密钥的重组和验证。

2)重组主密钥的过程:由s≤n个参与者向密钥分发者发送子密钥SKey。分发者将这s个子密钥之中任意一个按照之前产生原子密钥的方法产生原子密钥OKey,再利用这个OKey对数据库中的n。n个子密钥密文即SKeyC进行解密,若这个密钥是真实的就会产生原来的n个子密钥,并与输入的s个子密钥进行比对,如果比对成功的个数大于门限值t,便验证成功,之后使用认证成功的密钥按照t值组合进行异或运算产生CKey,并对其对应的密文进行解密,解出主密钥MKey。门限值t是在密钥重组之前由密钥分发者确定的,参与者不知道t的值,也不可能去改变t的值。要实现t值的更改是要建立在对密钥分发者系统的攻破的前提下。

方案分析

1)通过对称加密系统实现秘密共享,比起通过数学方法来实现的优势在于前者更加易于实现。因为对称加密系统都是公开的,本文中的方案就是利用这个已完成的T,具基础简便的实现秘密共享的思想,并且可以根据情况选择不同的加密系统,扩展性比较强。

2)定理:该方案的抗攻击强度与所使用的密码系统的抗攻击强度是一样高的。

该方案可归结为这样的一个过程:“加密一储存一传输一>加密比较一传输”。由于传输过程中的安全问题,在所有的秘密共享方案中是相同的,在这里不妨将其去之。于是便得“加密-储存—加密比较”。

该方案常驻的信息是储存在服务器端的信息,最多是n*n+ c(t,n)个,当n不大时,是一个不大的数。要想从这些信息中去找到明文(分享的秘密)和加密的密钥,就是对该加密系统的攻击,因此定理成立。

3)但是本方案仍然存在缺陷,那就是对于n各参与者要生成n*n+C(t,n)的密文数据用来做数据的验证,当实现多组密钥分时对于密钥分发者的存储空间有—定要求。通过比对算法的改进是可以减小这个存储空间大小的。同时在密钥重组的时候需要进行运算的时间复杂度最大为0(n“2))最小为0(n“3)。可以看到当t与n的差距越大则,运算时间越长。在文献[6]中提到,LaCrange插值多项式体制的恢复密钥的算法时间复杂度为0(1´3),然而传统的LaGrange方案是不具备验证功能的。

本文提出了基于对称加密系统的秘密共享方案。通过公开的对称加密算法的易用性,和抗攻击性来实现秘密共享中验证参与者正确密钥数量是否达到门限值,分辨参与者密钥的真假,动态更新参与者数量与密钥等思想。通过例子的实验结果证明了该方案的可行性与拓展性。