淺析DES加密算法在秘密共享中的應(yīng)用

秘密共享這一思想首先是由Shamir11和Blakley于1979年于不同場合提出的。其主要思想是在一個(gè)由若干實(shí)體組成的集合中,允許一個(gè)密鑰分發(fā)者來專門負(fù)責(zé)密鑰的分發(fā)和管理,而原始密鑰被這若干個(gè)實(shí)體(若n>0)也稱作密鑰的分享者或參與者分享,結(jié)果使得只有特定的若干個(gè)密鑰分享者構(gòu)成的子集才能恢復(fù)原始密鑰。若給定一個(gè)門限值t,t<n,只需t個(gè)共享者就能恢復(fù)原始密鑰,而任何一個(gè)含元素個(gè)數(shù)比t少的子集都不能得出有關(guān)密鑰的任何信息,此時(shí)得出的方案就是(t,n)門限方案。隨著這一思想的提出,許多秘密共享方案應(yīng)運(yùn)而生,如Asmuth和Bloom提出的基于模數(shù)的密鑰保護(hù)分割方案,Brickell提出的理想化的密鑰分割方案,等等。但是這些方案普遍都是基于數(shù)學(xué)上的問題,在本文中介紹了基于對稱加密系統(tǒng)的秘密共享方案。

基于對稱加密系統(tǒng)的秘密共享方案

對稱密鑰加密系統(tǒng)是加密和解密均采用同一把秘密鑰匙,而且通信雙方都必須獲得這把鑰匙,保持鑰匙的秘密。其中很有代表性的有DES,IDEA,AES。而本文所提到的方案是以DES算法為例的。也就是說模型是固定的,中間的加密算法可以根據(jù)自己的情況進(jìn)行更改。

方案原理

該方案的實(shí)質(zhì)是將要分享的主密鑰以及要分發(fā)子密鑰都通過對稱加密系統(tǒng)進(jìn)行加密保存在本機(jī)中,參與者要重組主密鑰時(shí)需通過達(dá)到門限值數(shù)量的子密鑰來產(chǎn)生解密主密鑰所需新密鑰,并與本機(jī)所儲(chǔ)存的數(shù)據(jù)進(jìn)行比對,從而達(dá)到秘密的共享。具體步驟如下:

1)密鑰產(chǎn)生與分發(fā)過程:密鑰分發(fā)者在分享秘密之前,產(chǎn)生主密鑰,這個(gè)主密鑰MKey可以是隨機(jī)產(chǎn)生,也可以是指定的。之后再隨機(jī)產(chǎn)生n(參與者個(gè)數(shù))個(gè)子密鑰SKey。將這n個(gè)子密鑰SKey按照一定算法產(chǎn)生n個(gè)原子密鑰OKey。這里提到的算法是通過在64byte的子密鑰中每8byte取其中的第一個(gè)byte派生出64位的原子密鑰。

這個(gè)算法是用來通過子密鑰派生原子密鑰的,所以算法的復(fù)雜程度不需要很高。但是這個(gè)算法是保密的,同時(shí)可根據(jù)加密算法的不同以及安全性的要求進(jìn)行更改,擴(kuò)展性很強(qiáng)。然后利用n個(gè)原子密鑰OKey作為密鑰與n個(gè)子密鑰SKey作為明文進(jìn)行DES加密,之后生成n*n個(gè)密文。通過組合數(shù)公式計(jì)算出C(t,n)種原子密鑰OKey組合,每個(gè)原子密鑰組合做異或運(yùn)算,產(chǎn)生C(t,n)個(gè)組合數(shù)密鑰CKey。

之后通過這些組合數(shù)密鑰對主密鑰MKey進(jìn)行加密。產(chǎn)生C(t,n)個(gè)密文。將這C(t,n)十ntn個(gè)密文存儲(chǔ)在數(shù)據(jù)庫中用作之后的驗(yàn)證使用。發(fā)送n個(gè)子密鑰SKey到n個(gè)分享者,并刪除本機(jī)的主密鑰以及子密鑰信息。這樣主密鑰和子密鑰都以密文形式存儲(chǔ)在本機(jī)上用作以后密鑰的重組和驗(yàn)證。

2)重組主密鑰的過程:由s≤n個(gè)參與者向密鑰分發(fā)者發(fā)送子密鑰SKey。分發(fā)者將這s個(gè)子密鑰之中任意一個(gè)按照之前產(chǎn)生原子密鑰的方法產(chǎn)生原子密鑰OKey,再利用這個(gè)OKey對數(shù)據(jù)庫中的n。n個(gè)子密鑰密文即SKeyC進(jìn)行解密,若這個(gè)密鑰是真實(shí)的就會(huì)產(chǎn)生原來的n個(gè)子密鑰,并與輸入的s個(gè)子密鑰進(jìn)行比對,如果比對成功的個(gè)數(shù)大于門限值t,便驗(yàn)證成功,之后使用認(rèn)證成功的密鑰按照t值組合進(jìn)行異或運(yùn)算產(chǎn)生CKey,并對其對應(yīng)的密文進(jìn)行解密,解出主密鑰MKey。門限值t是在密鑰重組之前由密鑰分發(fā)者確定的,參與者不知道t的值,也不可能去改變t的值。要實(shí)現(xiàn)t值的更改是要建立在對密鑰分發(fā)者系統(tǒng)的攻破的前提下。

方案分析

1)通過對稱加密系統(tǒng)實(shí)現(xiàn)秘密共享,比起通過數(shù)學(xué)方法來實(shí)現(xiàn)的優(yōu)勢在于前者更加易于實(shí)現(xiàn)。因?yàn)閷ΨQ加密系統(tǒng)都是公開的,本文中的方案就是利用這個(gè)已完成的T,具基礎(chǔ)簡便的實(shí)現(xiàn)秘密共享的思想,并且可以根據(jù)情況選擇不同的加密系統(tǒng),擴(kuò)展性比較強(qiáng)。

2)定理:該方案的抗攻擊強(qiáng)度與所使用的密碼系統(tǒng)的抗攻擊強(qiáng)度是一樣高的。

該方案可歸結(jié)為這樣的一個(gè)過程:“加密一儲(chǔ)存一傳輸一>加密比較一傳輸”。由于傳輸過程中的安全問題,在所有的秘密共享方案中是相同的,在這里不妨將其去之。于是便得“加密-儲(chǔ)存—加密比較”。

該方案常駐的信息是儲(chǔ)存在服務(wù)器端的信息,最多是n*n+ c(t,n)個(gè),當(dāng)n不大時(shí),是一個(gè)不大的數(shù)。要想從這些信息中去找到明文(分享的秘密)和加密的密鑰,就是對該加密系統(tǒng)的攻擊,因此定理成立。

3)但是本方案仍然存在缺陷,那就是對于n各參與者要生成n*n+C(t,n)的密文數(shù)據(jù)用來做數(shù)據(jù)的驗(yàn)證,當(dāng)實(shí)現(xiàn)多組密鑰分時(shí)對于密鑰分發(fā)者的存儲(chǔ)空間有—定要求。通過比對算法的改進(jìn)是可以減小這個(gè)存儲(chǔ)空間大小的。同時(shí)在密鑰重組的時(shí)候需要進(jìn)行運(yùn)算的時(shí)間復(fù)雜度最大為0(n“2))最小為0(n“3)??梢钥吹疆?dāng)t與n的差距越大則,運(yùn)算時(shí)間越長。在文獻(xiàn)[6]中提到,LaCrange插值多項(xiàng)式體制的恢復(fù)密鑰的算法時(shí)間復(fù)雜度為0(1′3),然而傳統(tǒng)的LaGrange方案是不具備驗(yàn)證功能的。

本文提出了基于對稱加密系統(tǒng)的秘密共享方案。通過公開的對稱加密算法的易用性,和抗攻擊性來實(shí)現(xiàn)秘密共享中驗(yàn)證參與者正確密鑰數(shù)量是否達(dá)到門限值,分辨參與者密鑰的真假,動(dòng)態(tài)更新參與者數(shù)量與密鑰等思想。通過例子的實(shí)驗(yàn)結(jié)果證明了該方案的可行性與拓展性。