本發(fā)明涉及一種高效的門限加密方案,屬于信息安全技術(shù)領(lǐng)域。
背景技術(shù):
隨著網(wǎng)絡(luò)信息技術(shù)的飛速發(fā)展,計算機網(wǎng)絡(luò)在社會、政治、經(jīng)濟等方面的作用日益突出,人們的日常生活和工作也越來越依賴計算機網(wǎng)絡(luò)。計算機網(wǎng)絡(luò)在給人們帶來便利的同時,也帶來了信息安全問題,如隱私數(shù)據(jù)泄漏,惡意攻擊等。如何有效的防止信息的泄密,保證信息的安全,已成為信息科學領(lǐng)域的一個研究熱點。shamira和blakleyg在1979年分別獨立提出了秘密共享概念,其主要思想是將秘密分成n份影子,分發(fā)給n個參與者。其中任意t個多于t個參與者協(xié)同合作就可以恢復秘密。這種(t,n)門限加密方案的主要特點是能夠分散安全風險,保證數(shù)據(jù)的安全性。在保證數(shù)據(jù)安全性的條件下,提高(t,n)門限加密方案的效率,使得多方用戶在數(shù)據(jù)進行加解密過程中能夠高效的操作,也是十分重要的一個問題。
下面首先對相關(guān)概念進行說明和解釋:
一、hash函數(shù)
hash函數(shù)是密碼學體系中的一個重要的組成部分,它也被稱為散列函數(shù),能夠把任意有限長度的輸入串m映射成某一固定長度的輸出串h,公式表示為:h=h(m)。一個hash函數(shù)h=h(x)需要滿足以下條件:
(1)輸入的x的長度是任意的,但是輸出的h的長度確是固定相同的;
(2)對于任意給定的輸入x,計算輸出h是容易的;而反過來,給定輸出h,找到輸入x使得h=h(x)在計算上是不可行的;
(3)找出兩個不同的輸入x和x',即x≠x',使得h(x)=h(x')在計算上是不可行的;給定一個輸入x,找出另一個不同的輸入x',即x≠x',使得h(x)=h(x')在計算上是不可行的。
二、rsa加密算法
rsa是一個基于數(shù)論的非對稱(公開鑰)密碼體制,是一種分組密碼體制。它的安全性是基于數(shù)論和計算復雜性理論中:求兩個大素數(shù)的乘積在計算上是容易的,但是要分解兩個大素數(shù)的積求出它的素因子在計算上是困難的。該算法的主要實現(xiàn)方法為:首先選取兩個大素數(shù)p和q,滿足|p|≈|q|,計算并公開它們的乘積n=pq;其次再確定公鑰,選擇一個整數(shù)e,滿足gcd(e,φ(n))=1,其中φ(n)=(p-1)(q-1);最后計算解密密鑰d,滿足ed≡1modφ(n),則公鑰為(n,e),私鑰為(n,d)。那么對于數(shù)據(jù)m進行加密為:c=memodn,解密為:m=cdmodn。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是克服現(xiàn)有技術(shù)的缺陷,提供一種高效的門限加密方案,并且在保證數(shù)據(jù)在傳輸過程中安全性的同時,也保證了算法的效率。
為解決上述技術(shù)問題,本發(fā)明提供一種高效的門限加密方案,其特征是,包括如下步驟:
1)密鑰生成:生成加密所需的公私鑰對;
2)密鑰分配:將生成的私鑰分成不同的密鑰片段分發(fā)給相應(yīng)的實體,并公開相應(yīng)的參數(shù);
3)數(shù)據(jù)加密:對于需要傳輸?shù)臄?shù)據(jù)進行加密,并使用自己的密鑰片段進行初步的解密,將半密文發(fā)送給數(shù)據(jù)接收方;
4)密文解密:接收到發(fā)送的半密文,使用擁有的密鑰片段對半密文進行解密。
進一步的,所述密鑰生成的步驟為:
首先選取兩個大素數(shù)p和q,使得|p|≈|q|,計算并公開它們的乘積n=pq,其次在確定公鑰e,滿足gcd(e,φ(n))=1,其中φ(n)=(p-1)(q-1),最后計算相應(yīng)的解密密鑰d:使得d≡e-1modφ(n)。
進一步的,所述密鑰分配的步驟為:
步驟2-1:隨機選取一個大素數(shù)p和a0,其中a0∈zp-1,令函數(shù)f(x)=d+a0x,其中d為密鑰生成過程中的解密密鑰,zp-1為整數(shù)p-1的加法循環(huán)群,該群為參數(shù)選擇的空間;
步驟2-2:為每一個數(shù)據(jù)接收方選取一個xi,則對于n個不同的數(shù)據(jù)接收方,有整數(shù)集合{x1,x2,…,xn},然后計算出各自的密鑰片段di=f(xi)modp-1,i=1,2,…,n,xi表示系統(tǒng)為數(shù)據(jù)接收方選取的一個隨機的整數(shù),di表示各數(shù)據(jù)接收方計算的密鑰片段;
步驟2-3:公開選取的整數(shù)集合{x1,x2,…,xn},并通過安全信道將生成的密鑰片段di發(fā)送給對應(yīng)的數(shù)據(jù)接收方i。
進一步的,所述數(shù)據(jù)加密的步驟為:
步驟3-1:假設(shè)數(shù)據(jù)m需要在實體i與實體j之間進行傳輸,則實體i對數(shù)進行rsa加密c1=memodn;
步驟3-2:隨后對加密的密文c1進行初步的解密
步驟3-3:將生成的半密文ch發(fā)送給實體j。
進一步的,所述密文解密的步驟為:實體j接收到實體i發(fā)送的半密文ch,恢復數(shù)據(jù):
進一步的,所述密文解密的解密過程的正確性由下列方程式證明:
k表示任意一個整數(shù)。
本發(fā)明所達到的有益效果:
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點在于:在整個的加密過程中將密鑰分成了(2,n)的門限加密方案,在數(shù)據(jù)傳輸過程中保證了數(shù)據(jù)的安全性,同時任意兩個密鑰片段就可以對密文進行解密操作,這也提高了算法的執(zhí)行效率。
附圖說明
圖1是本發(fā)明高效門限加密方案流程圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明作進一步描述。以下實施例僅用于更加清楚地說明本發(fā)明的技術(shù)方案,而不能以此來限制本發(fā)明的保護范圍。
如圖1所示,一種高效的門限加密方案,包括如下步驟:
1)密鑰生成:生成加密所需的公私鑰對;
2)密鑰分配:將生成的私鑰分成不同的密鑰片段分發(fā)給相應(yīng)的實體,并公開相應(yīng)的參數(shù);
3)數(shù)據(jù)加密:對于需要傳輸?shù)臄?shù)據(jù)進行加密,并使用自己的密鑰片段進行初步的解密,將半密文發(fā)送給數(shù)據(jù)接收方;
4)密文解密:接收到發(fā)送的半密文,使用擁有的密鑰片段對半密文進行解密。
本實施例中,所述密鑰生成的步驟為:
首先選取兩個大素數(shù)p和q,使得|p|≈|q|,計算并公開它們的乘積n=pq,其次在確定公鑰e,滿足gcd(e,φ(n))=1,其中φ(n)=(p-1)(q-1),最后計算相應(yīng)的解密密鑰d:使得d≡e-1modφ(n)。
本實施例中,所述密鑰分配的步驟為:
步驟2-1:隨機選取一個大素數(shù)p和a0,其中a0∈zp-1,令函數(shù)f(x)=d+a0x,其中d為密鑰生成過程中的解密密鑰,zp-1為整數(shù)p-1的加法循環(huán)群,該群為參數(shù)選擇的空間;
步驟2-2:為每一個數(shù)據(jù)接收方選取一個xi,則對于n個不同的數(shù)據(jù)接收方,有整數(shù)集合{x1,x2,…,xn},然后計算出各自的密鑰片段di=f(xi)modp-1,i=1,2,…,n,xi表示系統(tǒng)為數(shù)據(jù)接收方選取的一個隨機的整數(shù),di表示各數(shù)據(jù)接收方計算的密鑰片段;
步驟2-3:公開選取的整數(shù)集合{x1,x2,…,xn},并通過安全信道將生成的密鑰片段di發(fā)送給對應(yīng)的數(shù)據(jù)接收方i。
本實施例中,所述數(shù)據(jù)加密的步驟為:
步驟3-1:假設(shè)數(shù)據(jù)m需要在實體i與實體j之間進行傳輸,則實體i對數(shù)進行rsa加密c1=memodn;
步驟3-2:隨后對加密的密文c1進行初步的解密
步驟3-3:將生成的半密文ch發(fā)送給實體j。
本實施例中,所述密文解密的步驟為:實體j接收到實體i發(fā)送的半密文ch,恢復數(shù)據(jù):
本實施例中,所述密文解密的解密過程的正確性由下列方程式證明:
k表示任意一個整數(shù)。
本發(fā)明較現(xiàn)有的門限加密方案,由于彼此所持有的密鑰片段是不同的,更適用于多用戶之間數(shù)據(jù)的傳輸,而且數(shù)據(jù)是通過半密文進行傳輸?shù)?,在解密時通過自身的密鑰片段就可以很快的恢復明文。與同類的門限加密方案相比,在保證數(shù)據(jù)安全性的情況下,本發(fā)明的構(gòu)造簡潔、高效。
下面將對本發(fā)明的高效門限加密方案應(yīng)用于企業(yè)的情況進行說明。
依照本發(fā)明的步驟,當政府部門或大型企業(yè)應(yīng)用本發(fā)明的門限加密系統(tǒng)時,如一個大型的企業(yè)有a、b、c、d這樣四個分布在各地的部門,那么部門之間會需要進行文件以及技術(shù)方面的交流。在這樣一個網(wǎng)絡(luò)信息高速發(fā)展的時代,更多的企業(yè)會選擇在網(wǎng)絡(luò)之間進行數(shù)據(jù)之間的交流和傳輸,有些數(shù)據(jù)是在部門內(nèi)部的網(wǎng)絡(luò)上傳輸,而部門之間數(shù)據(jù)的傳輸更多的是通過公網(wǎng)進行傳輸,而有些機密的文件和技術(shù)是不能夠讓第三方知道的,這就需要部門之間在數(shù)據(jù)傳輸?shù)倪^程中進行數(shù)據(jù)的加密,而該門限加密方案就可以很好的解決這一問題。由企業(yè)生成密鑰,并將密鑰片段發(fā)送給a、b、c、d四個部門,當企業(yè)與a、b、c、d部門中任意一個進行數(shù)據(jù)傳輸時,就可以很好的保證數(shù)據(jù)的安全。由于每個部門所持有的密鑰片段是不同的,所以當一個部門的密鑰被泄漏時,并不影響其他部門數(shù)據(jù)的安全性,同時該門限加密算法的效率很高,很適合企業(yè)使用。
所以,本發(fā)名帶來的有益效果是:增強了門限加密方案的適用性,尤其適用于企業(yè)中部門之間通過公網(wǎng)進行數(shù)據(jù)傳輸?shù)膽?yīng)用場景。
該方法主要是保證數(shù)據(jù)傳輸過程中的安全,以防信息的泄漏,并大大提高了加解密的效率。該門限加密方案有效的保護了數(shù)據(jù)在傳輸過程中的安全,數(shù)據(jù)在信道上傳輸過程中是以半密文的形式傳輸?shù)?,由于不同用戶的密鑰片段的不同,保證了數(shù)據(jù)的安全性;由于hash函數(shù)具有不可逆性,以及任意一方想通過自身密鑰片段推出完整密鑰等價于求解(2,n)的門限問題,在模數(shù)n足夠大的情況下,推出完整密鑰的概率趨于0;在保證數(shù)據(jù)安全的情況下,該方案的效率也是非常高的,用戶可以使用任意兩個密鑰片段就可以對半密文數(shù)據(jù)進行解密,而且方案中大部分的運算的時間復雜度為o(1),除了密鑰分發(fā)過程中,模加運算的復雜度為o(n),可以看出該方案在效率和功能性上均有顯著提高,構(gòu)造簡潔、高效。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明技術(shù)原理的前提下,還可以做出若干改進和變形,這些改進和變形也應(yīng)視為本發(fā)明的保護范圍。