新四季網

一種用於高速加密的新型對稱型密鑰算法的製作方法

2024-02-12 02:58:15


本發明涉及信息加密技術領域,具體地說,是一種用於高速加密的新型對稱性密鑰算法。



背景技術:

隨著計算機性能的提升和大數據的興起,我們對於數據的處理計算能力要求成幾何倍數的提高。同時隨著旁路攻擊的出現,許多安全性極高的密碼算法遭到破壞,原來安全度極高的AES(Advanced Encryption Standard)算法在128位制被破解。人們開始設計尋找加密效率更快、安全性更高的算法。

目前主流的對稱密鑰算法或者流密碼算法比較典型的有RC4算法、RC6算法、AES加密中的Rijndael算法、國密標準SM4算法。

(1)RC4算法:RC4加密算法是RSA三人組中的頭號人物Ronald Rivest在1987年設計的密鑰長度可變的流加密算法簇。RC4算法的本質就是查找表,該表包含所有可能的256個字節的值的排列。核心部分S-box長度任意,算法速度可以達到DES加密的十倍左右,具有很高級別的非線性。其原理是初始化和偽隨機子密碼生成算法。每次生成密鑰流字節後,查找表就被修改,而查找表總會包含{0,1,2,···,255}的一個排列。因為這種持續更新,該算法的查找表以及相應的加密算法自身都為密碼分析者提供了移動靶。而且由於存在弱密鑰,使得其子密鑰序列在不到100萬字節內就出現了完全的重複,在10萬字節內出現部分重複。

(2)RC6算法:RC6是作為AES的候選算法提交給NIST(美國國家標準局)的一種新的分組密碼,是在RC5算法的基礎上設計的。RC5本身因為使用了大量的數據依賴循環,所以算法本身非常簡潔。只是在AES候選中,為了滿足徵集要求,使用4個寄存器並加進了32比特的整數乘法,用於加強擴散的特性。但是正因為使用了32比特的整數乘法,使得RC6的運算速度受到了一定的影響[6]。此外RC6的精準表示為RC6-w/r/b(字長為w位,r為加密輪數,b為加密密鑰用字節表示的長度)。RC6是一種安全、架構完整而且簡單的區塊加密法。它提供了較好的測試結果和參數方面相當大的彈性。RC6可以抵抗所有已知的攻擊,能夠提供AES所要求的安全性,可以說是近幾年來相當優秀的一種加密法。

(3)AES算法:RC6算法儘管是相當優秀的一款算法,但仍然只是AES候選算法之一。目前使用的AES加密使用的是Rijndael算法,AES目前成為對稱加密中最重要的國際標準之一。AES加密速度較快,且分組長度靈活,密鑰長度比DES大且可以靈活選擇,可以有效抵抗差分分析和線性分析,目前僅有旁道攻擊是唯一可以成功的攻擊方式(上海交通大學鬱昱教授使用的便是旁路攻擊成功破解AES-128加密)。在加密過程中,AES有十輪,且前九輪都要進行字節代換、行位移、列混淆和輪密鑰加四個算法,第十輪只要進行字節代換、行移位、輪密鑰加三個算法。對於每個分組明文段的加密步驟相比流密碼仍然複雜的多。

(4)國密SM4算法:國家密碼管理局於2012年3月21日公布了「GM/T0002-2012《SM4分組密碼算法》」,SM4算法分組長度和密鑰長度都是128bit,加密算法和密鑰擴展算法都採用32輪非線性迭代結構,加解密算法結構相同,只是輪密鑰的使用順序相反。國密SM4的安全性毋庸置疑,但是仍然具備功耗攻擊的可能性[12]。同時因為加密和密鑰擴展時都採用了32輪,因此理論上加密速度上仍然不如流密碼。

目前被密碼學界公認的不可攻破的密碼算法為「一次一密體制」,Shannon在《保密系統的信息理論》提出了完善保密的概念,並證明了「一次一密體制」具備完善保密性。其算法方案的基準原則是:密鑰是隨機選取的,並且僅使用一次,使用之後便立即銷毀。但是經過論證一次密碼本也有兩點不足之處:

(1)明文長度暴露:「一次一密制」密鑰隨機選擇生成,該密鑰字符串與明文消息具有相同的長度,密鑰與明文消息異或運算產生密文。但是對於敵手而言,截獲密文的同時便獲知了明文的長度,假設發送的明文消息長度為N,則密文長度也為N,那麼當N的值小於敵手計算能力時,便毫無保密性可言。此外,因為一次密密鑰是隨機分布的,而假設明文具有一定的先驗概率分布,那麼根據密文的後驗概率分布也可以對明文產生一定的威脅。

(2)實際使用不便:假設對長消息進行加密,則需要與消息樣本本身等長的密碼本,因為密碼本正是密鑰自身,所以必須安全的將密鑰發送給接收方。

基於以上兩點,一次性密碼本並沒有大規模的投入使用。但「一次性密碼本」的思想卻產生設計出一些新型算法,如流密碼算法RC4和RC6等算法。但是流密碼算法並不是可證明為安全的,只是犧牲了可證明安全性以向實用性妥協。

中國發明專利CN201610467088.7,公開日為2016.09.21,公開了一種基於FPGA的在線生成密鑰的AES數據加密方法,但是該加密方法加密輪數過多,加密方式單一,密鑰會重複出現,無法保證數據安全。

因此,亟需一種一次一密、加密速度快、密鑰不重複出現的高效密鑰算法,而目前關於這種算法還未見報導。



技術實現要素:

本發明的目的是針對現有技術中的不足,提供一種用於高速加密的新型對稱型密鑰算法。

為實現上述目的,本發明採取的技術方案是:

一種用於高速加密的新型對稱密鑰算法,所述對稱密鑰算法包括加密算法和解密算法,所述的加密算法的步驟包括:

S11:對明文M進行分組,得到Mi,Mi∈{M0,M1,···,Mn-1};

S12:利用隨機數生成器生成n位基礎密鑰R1和R2;

S13:統計明文長度L,並對Mn-1進行明文填充,在明文後首先填充二進位密鑰生成器識別碼,計算剩餘位數,並用隨機二進位碼填充;

S14:獲得密鑰偏移生成器G;

S15:對Mn-1明文組進行加密;

S16:獲得加密密鑰Keyi;

S17:對所有明文組進行加密;

S18:對基礎密鑰R1和R2進行加密,得到密文密鑰CR;

S19:完成加密,並將密文密鑰CR與密文進行傳輸;

所述的解密算法的步驟包括:

S21:對密文密鑰CR進行解密,得到基礎密鑰R1和R2;

S22:解密得到Mn-1;

S23:得到密鑰偏移生成器G;

S24:對所有密文進行解密,得到明文M。

所述的加密算法的S12步驟中,R1和R2為1024位的二進位序列隨機數,R1∈{0,1}1024,R2∈{0,1}1024。

所述的加密算法的S13步驟中,如果Mn-1∈(0,1000)時,在明文後首先填充二進位密鑰生成器識別碼,剩餘的位數使用隨機二進位碼填充,使得Mn-1最終滿足1024位;如果Mn-1∈[1000,1024]之間,那麼填充需要擴展,即在Mn-1之後首先進行密鑰生成器識別碼的填充,並在之後的位數填充二進位序列隨機數,這樣便組成了兩段1024位的明文組Mn-1和Mn。

所述的二進位密鑰生成器識別碼位數為24位,該識別碼為(0000-1111-1111-1111-1111-0000)。

所述的加密算法的S14步驟中,當Mn-1∈(0,1000)時,模運算的計算公式為G=1024-L mod1024,當Mn-1∈[1000,1024]時,模運算的計算公式為G=2048-L mod1024,所述的密鑰偏移生成器G∈[25,1048]。

所述的加密算法的S15步驟中,對Mn-1明文組進行加密時,將基礎密鑰R1和R2分別根據n的值進行左偏移和右偏移,異或加密得到密文;當Mn-1∈(0,1000)時,計算公式為當Mn-1∈[1000,1024]時,計算公式為

所述的加密算法的S16步驟中,將子明文組i代入密鑰偏移生成器G中,計算出偏轉量Xj,計算公式為Xj=(G mod512×(i+G)+19)mod512,並將偏移量代入基礎密鑰R2中進行左循環或右循環產生偏移密鑰R2(j),計算公式為R2(j)=R2<<Xj Xj mod2=0或R2(j)=R2>>XjXj mod2≠0;基礎密鑰R1則每次右偏移i位得到R1(i),計算公式為R1(i)=R1>>(imod1024);將R1(i)和R2(j)進行異或運算得到加密密鑰Keyi,計算公式為

所述的加密算法的S17步驟中,從M0開始到Mn-2,將加密密鑰Keyi與相對應明文進行異或加密,得到密文Ci,計算公式為

所述的加密算法的S18步驟中,對基礎密鑰R1和R2進行RSA加密,採用最有非對稱加密(RSA-OAEP)方案得到密文密鑰CR。

所述的對稱密鑰算法每加密n個明文組時需要更換基礎密鑰,其步驟如下:

S31:一組基礎密鑰R1和R2,其加密的明文空間為n×n位,這個加密後的等量空間為密文塊(C-Block);

S32:當需要對基礎密鑰進行重新構造時,新的基礎密鑰從前一個密文塊中選擇;

S33:新的基礎密鑰為R1』和R2』;

在S33步驟中,基礎密鑰R1』的計算公式為基礎密鑰R2』的計算公式為或其中,Cx和Cy中的x和y,分別代表加密後的前一密文塊內從第一段開始的密文段數(與明文代表的段數相同),其計算公式分別為x=(17×i+G)mod512和y=(13×(i+G)+i)mod512+512,R1』中的R1>>x與Cx中的R1(i)完全相同,R2』中的Xj(y)就是明文段數為y的情況下的R2偏移量,偏移後與R2(j)完全相同;將R1』和R2』進行異或運算得到加密密鑰Key,計算公式為

所述的對稱密鑰算法還包括摘要算法,其步驟如下:

S41:加密前,首先使用摘要算法對明文進行摘要得到哈希值,即Hash(Mess);

S42:將哈希值存儲在密文的末尾,並一通進行傳輸保存;

S43:解密前,將哈希值單獨取出;

S44:使用摘要算法對解密後的明文進行摘要得到新的哈希值,即Hash(Mess』);

S45:將Hash(Mess)與Hash(Mess』)進行對比,若Hash(Mess)=Hash(Mess』),則密文未被篡改,證明信息完整性或通信線路安全性與可靠性;;若Hash(Mess)≠Hash(Mess』),則密文篡改,存儲環境或通信線路存在隱患,需要及時保護。

本發明優點在於:

1、通過密文塊(C-Block)的設計,降低密鑰重複的概率至0;

2、每個明文段加密的子密鑰為唯一且隨機的,提高了安全性;

3、加密速度快,僅需要進行兩次偏移、兩次模運算、一次乘法、兩次加法、一次判斷、兩次異或共10步基本運算操作。

附圖說明

附圖1是本發明的一種用於高速加密的新型對稱密鑰算法的加密算法的明文分組填充的示意圖。

附圖2是本發明的一種用於高速加密的新型對稱密鑰算法的加密算法的明文加密的示意圖。

附圖3是本發明的一種用於高速加密的新型對稱密鑰算法的加密算法的生成新基礎密鑰的示意圖。

具體實施方式

下面結合附圖對本發明提供的具體實施方式作詳細說明。

實施例1

本發明的一種用於高速加密的新型對稱密鑰算法的加密算法具體流程如下:

A1:設明文總體為M,對明文總體M進行分組得到Mi,Mi分組長度為1024bit(或者是1024bit的整數倍),因此有Mi∈{M0,M1,···,Mn-1};

A2:利用隨機數生成器生成兩串1024位的二進位序列隨機數R1和R2,R1和R2為基礎密鑰,R1∈{0,1}1024,R2∈{0,1}1024;

A3:如圖1所示,將明文M轉化為二進位序列Mess,統計明文長度L,計算公式為(1);最後一組Mn-1可能不滿1024位,所以需要對Mn-1進行填充;如果Mn-1∈(0,1000)時,在明文後首先填充二進位密鑰生成器識別碼,該識別碼為24位,識別碼為(0000-1111-1111-1111-1111-0000),剩餘的位數使用隨機二進位碼填充,使得Mn-1最終滿足1024位,並通過模運算獲得密鑰偏移生成器G,計算公式為(2);如果Mn-1∈[1000,1024]之間,那麼填充需要擴展,即在Mn-1之後首先進行密鑰生成器識別碼的填充,並在之後的位數填充二進位序列隨機數,這樣便組成了兩段1024位的明文組Mn-1和Mn,並通過模運算獲得密鑰偏移生成器G,計算公式為(3);密鑰偏移生成器G的取值範圍為(4);

L=strlen(Mess) (1)

G=1024-L mod1024Mn-1∈(0,1000) (2)

G=2048-L mod1024Mn-1∈[1000,1024] (3)

G∈[25,1048] (4)

A4:如圖2所示,對Mn-1明文組進行加密,將基礎密鑰R1和R2分別根據n的值進行左偏移和右偏移,異或加密得到密文;當Mn-1∈(0,1000)時,計算公式為(5);當Mn-1∈[1000,1024]時,計算公式為(6);

A5:將子明文組i代入密鑰偏移生成器G中,計算出偏轉量Xj,計算公式為(7),並將偏移量代入基礎密鑰R2中進行左循環或右循環產生偏移密鑰R2(j),計算公式為(8)或(9);基礎密鑰R1則每次右偏移i位得到R1(i),計算公式為(10);將R1(i)和R2(j)進行異或運算得到加密密鑰Keyi,計算公式為(11);

Xj=(G mod512×(i+G)+19)mod512 (7)

R2(j)=R2<<Xj Xjmod2=0 (8)

R2(j)=R2>>Xj Xjmod2≠0 (9)

R1(i)=R1>>(i mod1024) (10)

A6:從M0開始到Mn-2,將加密密鑰Keyi與相對應明文進行異或加密,得到密文Ci,計算公式為(12);

A7:對基礎密鑰R1和R2進行RSA加密,採用最有非對稱加密(RSA-OAEP)方案得到密文密鑰CR,並將信息傳輸給信息接收方;

A8:完成加密,設任意一段密文為Ci,則Ci∈{C0,C1,···,Cn-1,(Cn)}。

實施例2

本發明的一種用於高速加密的新型對稱密鑰算法的解密算法具體流程如下:

B1:接收到密文密鑰CR,對其進行RSA-OAEP方案解密,分別得到基礎密鑰R1和R2;

B2:首先截取密文的最後2048位二進位序列,使用解密得到的基礎密鑰R1和R2進行與加密同向的偏移n位後再進行異或運算,得到2048位包含Mn-1的二進位序列;

B3:對2048位包含Mn-1的二進位序列進行搜索並識別填充時產生的24位密鑰生成器識別碼,並得到密鑰偏移生成器G,之後拋棄隨機數序列得到Mn-1明文組,計算公式為(13);

B4:從C0正向開始,根據密文組數量i一次進行運算得到R1(i)和每組密文基礎密鑰R2的偏移量Xj,並進行密鑰偏移後得到R2(j),兩者異或運算得到加密密鑰Keyi,將加密密鑰Keyi與密文結合得到明文,計算公式為(14);依次解密並得到全部明文M,M=M0+M1+…+Mn-1。

實施例3

為了更加安全的進行加密,本發明的一種用於高速加密的新型對稱密鑰算法的基礎密鑰會進行重新構造。

初始加密產生的一組兩串隨機數序列R1和R2,首先在對Mn-1進行加密後,再依次從M0開始進行相對應的偏移加密,對於基礎密鑰R1,每個明文組加密中都相當於向右移一位,因此當加密到M1023時,R1會出現重複,因此,當Mi中i mod 1024-1=0時,需要對基礎密鑰進行重新構造。

如圖3所示,基礎密鑰重新構造的流程如下:

C1:一組基礎密鑰R1和R2,其加密的明文空間為1024×1024位,這個加密後的等量空間為密文塊(C-Block);

C2:當需要對基礎密鑰進行重新構造時,新的基礎密鑰從前一個密文塊中選擇;

C3:新的基礎密鑰為R1』和R2』,R1』的計算公式為(15),R2』的計算公式為(16)或(17),

其中,Cx和Cy中的x和y,分別代表加密後的前一密文塊內從第一段開始的密文段數(與明文代表的段數相同),其計算公式分別為(18)和(19),

x=(17×i+G)mod512 (18)

y=(13×(i+G)+i)mod512+512 (19)

R1』中的R1>>x與Cx中的R1(i)完全相同,R2』中的Xj(y)就是明文段數為y的情況下的R2偏移量,偏移後與R2(j)完全相同;將R1』和R2』按照A5的步驟進行異或運算得到加密密鑰Key,計算公式為(20)。

實施例4

為了保持密文的完整性,本發明的一種用於高速加密的新型對稱密鑰算法還包括摘要算法,其流程如下:

D1:加密前,首先使用摘要算法對明文進行摘要得到哈希值,即Hash(Mess);

D2:將哈希值存儲在密文的末尾,並一通進行傳輸保存;

D3:解密前,將哈希值單獨取出;

D4:使用摘要算法對解密後的明文進行摘要得到新的哈希值,即Hash(Mess』);

D5:將Hash(Mess)與Hash(Mess』)進行對比,若Hash(Mess)=Hash(Mess』),則密文未被篡改,證明信息完整性或通信線路安全性與可靠性;;若Hash(Mess)≠Hash(Mess』),則密文篡改,存儲環境或通信線路存在隱患,需要及時保護。

本發明的一種用於高速加密的新型對稱密鑰算法的優點在於,通過密文塊(C-Block)的設計,將密鑰重複的概率降低為0;並且密文塊內產生的密鑰基於前一密文塊的明文內容,即要破解加密密鑰必須先知道前一密文塊內隨機明文段的內容,因此保證了每個明文段加密的子密鑰是獨一無二且隨機的,達到了一次性密碼本的加密要求,由此保證了算法的絕對安全性,可以有效抵禦各種類型的攻擊;單明文段加密操作僅有兩次偏移、兩次模運算、一次乘法、兩次加法、一次判斷、兩次異或共10步基本運算操作,沒有AES和SM4的多輪數和其他複雜步驟,對於RC6不存在大整數模乘運算,因此算法加密速度可以更快;

以上所述僅是本發明的優選實施方式,應當指出,對於本技術領域的普通技術人員,在不脫離本發明方法的前提下,還可以做出若干改進和補充,這些改進和補充也應視為本發明的保護範圍。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀