專利名稱::一種基于時(shí)滯混沌迭代的數(shù)字簽名方法及裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于通信
技術(shù)領(lǐng)域:
,涉及一種數(shù)字簽名方法及裝置。
背景技術(shù):
:21世紀(jì)是信息的時(shí)代,一方面,信息技術(shù)和產(chǎn)業(yè)高速發(fā)展,呈現(xiàn)出空前繁榮的景象。另一方面,危害信息安全的事件不斷發(fā)生,形勢是嚴(yán)峻的。信息安全事關(guān)國家安全和社會穩(wěn)定,因此,必須采取措施確保我國的信息安全。信息安全系統(tǒng)除了信息保密外,還需要抵抗偽造、篡改、冒充及否認(rèn)等攻擊,這些發(fā)送方與接收方之間的問題需要利用認(rèn)證技術(shù)來解決,以此來確定通信雙方身份的真實(shí)性。數(shù)字簽名技術(shù)的出現(xiàn)解決了上述問題。數(shù)字簽名技術(shù)即進(jìn)行身份認(rèn)證的技術(shù)。該技術(shù)是通過一個(gè)單向函數(shù)對要傳送的消息進(jìn)行處理,得到的用以認(rèn)證消息來源并核實(shí)消息是否發(fā)生變化的一個(gè)字母數(shù)字串,從而保證信息的真實(shí)性和完整性。目前,現(xiàn)有的數(shù)字簽名技術(shù),其認(rèn)證步驟如下信息的發(fā)送端利用現(xiàn)有的MD4、MD5等Hash函數(shù)計(jì)算生成一個(gè)固定長度的Hash值,并用其私鑰對該Hash值進(jìn)行加密生成數(shù)字簽名,作為信息的附件和信息一起發(fā)送至接收端。信息的接收端首先從接收到的原始信息中,利用現(xiàn)有的MD4、MD5等Hash函數(shù)計(jì)算出這個(gè)固定長度的Hash值,接著再用發(fā)送端的公開密鑰來對信息附加的數(shù)字簽名進(jìn)行解密。如果兩個(gè)Hash值相同,那么接收端就能確認(rèn)該數(shù)字簽名是發(fā)送端的,且消息未經(jīng)篡改。但是,在2004年的美國密碼學(xué)會議上,山東大學(xué)王小云教授發(fā)表的題為《對MD4,MD5,HAVAL-128,RIPEMD等Hash函數(shù)的碰撞攻擊》的學(xué)術(shù)報(bào)告。這份報(bào)告對一些國際上通行的Hash函數(shù)給出了快速尋找碰撞攻擊的方法。之后,在2005年歐洲密碼學(xué)和美國密碼學(xué)會議上,王小云進(jìn)一步發(fā)表了他們對Hash函數(shù)研究的新進(jìn)展。由此可以看出,現(xiàn)有數(shù)字簽名技術(shù)中所用到的一些國際上通用的Hash認(rèn)證函數(shù)如MD4、MD5、SHA-1等算法都存在缺陷。進(jìn)而可以看出現(xiàn)有的數(shù)字簽名技術(shù)的安全性已經(jīng)開始降低,其防偽造、抗碰撞攻擊等能力上均有待提高,進(jìn)而達(dá)到更加安全有效、簡潔快速的認(rèn)證效果。
發(fā)明內(nèi)容針對現(xiàn)有數(shù)字簽名技術(shù)有待于提高其防偽造、抗碰撞攻擊能力的技術(shù)問題,本發(fā)明提供一種數(shù)字簽名方法及裝置。利用時(shí)滯混沌迭代的敏感性和遍歷性,將明文信息調(diào)制在時(shí)滯混沌迭代的迭代軌跡(過程)中,使其產(chǎn)生的Hash值具有更大的密鑰空間和具備更高的安全性。本發(fā)明技術(shù)方案如下—種基于時(shí)滯混沌迭代的數(shù)字簽名方法,如圖1所示,包括數(shù)字簽名的生成過程和認(rèn)證過程,所述數(shù)字簽名的生成過程包括以下步驟步驟l:對待數(shù)字簽名的明文信息M(k)(其中k二1,2,3,…K,K為明文信息M(k)的長度)以字符為單位進(jìn)行ASCII編碼,得到明文信息M(k)的ASCII編碼序列Asc(M[k]),編碼序列Asc(M[k])的每一個(gè)ASCII編碼的值域范圍在之間;然后根據(jù)ASCII編碼的值域范圍對編碼序列Asc(M[k])進(jìn)行線性變換的量化處理,得到符合時(shí)滯混沌迭代參數(shù)所要求的值域范圍[12,12.8]的離散序列C(k),C[k]二g+0.001XAsc(M[k]),其中g(shù)為取值范圍在[12,12.545]之間的一個(gè)常數(shù)。步驟2:對步驟1所得的離散序列C(k)進(jìn)行時(shí)滯混沌迭代,獲得離散時(shí)滯混沌序列X,、iG[l,N]);具體方法為利用一維時(shí)滯混沌迭代公式xn+1=asin2(xn+b)對離散序列C(k)中的C(1)、C(2)、C(3)直至C(K)順序進(jìn)行K輪時(shí)滯混沌迭代,其中,l《n《N,N為每輪時(shí)滯混沌迭代的次數(shù);a和b為每一輪時(shí)滯混沌迭代的固定參數(shù),且aG[12.000,12.8000],bG;第一輪迭代時(shí),令a二C(l)、選定任意一個(gè)初值A(chǔ),得到N次迭代后與C(1)相關(guān)的迭代結(jié)果xN+1°;第二輪迭代時(shí),令a=C(2)、以第一輪時(shí)滯混沌迭代的迭代結(jié)果xN+1°為初值Xl,得到N次迭代后與C(l)和C(2)相關(guān)的迭代結(jié)果xN+/;第三輪迭代時(shí),令a=C(3)、以第二輪時(shí)滯混沌迭代的迭代結(jié)果x肝/為初值A(chǔ),得到N次迭代后與C(l)、C(2)和C(3)相關(guān)的迭代結(jié)果%+12;直至第K輪迭代時(shí),令a=C(K)、以第(K_l)輪時(shí)滯混沌迭代的迭代結(jié)果xN+1K-2為初值x"得到N次迭代后與C(l)、C(2)、C(3)……C(K)相關(guān)的離散時(shí)滯混沌序列XiK—、iG[l,N]),即x,Sc/—1……xNK—、+,、表1所示為時(shí)滯混沌迭代輪次與每一輪N次時(shí)滯混沌迭代所得離散時(shí)滯混沌序列結(jié)果。表l迭代輪次初值《離散時(shí)滯混沌序列第一輪任意2人W第二輪c[2]第三輪剩義w第《輪+l(1《-1+l步驟3:對步驟2所得離散時(shí)滯混沌序列x廣、/—1……x/—、+廣1進(jìn)行帶密鑰的Hash函數(shù)運(yùn)算,獲得定長值為L的混沌Hash值Hl。步驟4:對步驟3所得混沌Hash值&進(jìn)行加密處理,得到最終的數(shù)字簽名。步驟5:發(fā)送方將明文信息M(k)和步驟4所得的數(shù)字簽名進(jìn)行組合后發(fā)送到通信信道。所述數(shù)字簽名的認(rèn)證過程包括以下步驟6步驟6:接收方從通信信道中接收來自于發(fā)送方的明文信息和數(shù)字簽名后,進(jìn)行下述步驟7至步驟9的處理。步驟7:接收方對接收到的明文信息按照步驟1至步驟3進(jìn)行處理,得到混沌Hash值H2。步驟8:接收方對接收到的數(shù)字簽名進(jìn)行與發(fā)送方相對應(yīng)的解密處理,得到混沌Hash值113。步驟9:判斷步驟7所得混沌Hash值H2和步驟8所得混沌Hash值H3是否一致,如果一致,則通過認(rèn)證;否則,不通過認(rèn)證。上述技術(shù)方案中,步驟3"對步驟2所得離散時(shí)滯混沌序列、/—、k—1……x/—、w+,1進(jìn)行帶密鑰的Hash函數(shù)運(yùn)算,獲得定長值為L的混沌Hash值H/'時(shí),具體方法包括以下步驟步驟3-1:采用ipad序列(ipad序列為"00110110"重復(fù)排列任意次的序列)中排在前面、且長度與通信雙方約定的密鑰Key等長的子序列,與通信雙方約定的密鑰Key進(jìn)行異或運(yùn)算,得到序列SO。步驟3-2:將序列SO與步驟2所得離散時(shí)滯混沌序列x^x/^x/—1……x/—1^1"拼接在一起,拼接時(shí),在序列SO與離散時(shí)滯混沌序列XlK—、/—1x/—、+,1之間補(bǔ)充一定位數(shù)的"0"或"1"字符,使得拼接后構(gòu)成的離散序列GO能夠分成若干個(gè)長度相等的數(shù)據(jù)塊。步驟3-3:對離散序列GO進(jìn)行Hash運(yùn)算,具體過程為采用一個(gè)長度為L的初始hash值,對離散序列GO中的數(shù)據(jù)塊依次進(jìn)行Hash迭代,得到一個(gè)長度為L的hash值H。。步驟3-4:采用opad序列(opad序列為"01011100"重復(fù)排列任意次所構(gòu)成的序列)中排在前面、且長度與通信雙方約定的密鑰Key等長的子序列,與通信雙方約定的密鑰Key進(jìn)行異或運(yùn)算,得到序列Sl。步驟3-5:將序列SI與步驟3-2所得的hash值H。拼接在一起,拼接時(shí),在序列SI和hash值H。之間補(bǔ)充一定位數(shù)的"0"或"1"字符,使得拼接后構(gòu)成的離散序列Gl能夠分成若干個(gè)長度相等的數(shù)據(jù)塊。步驟3-6:對離散序列Gl進(jìn)行Hash運(yùn)算,具體過程為采用一個(gè)長度為L的初始hash值,對離散序列Gl中的數(shù)據(jù)塊依次進(jìn)行Hash迭代,得到一個(gè)長度為L的hash值根據(jù)上述技術(shù)方案,本發(fā)明還提供一種基于時(shí)滯混沌迭代的數(shù)字簽名裝置,如圖2所示,包括數(shù)字簽名生成裝置和數(shù)字簽名認(rèn)證裝置。所述數(shù)字簽名生成裝置包括一個(gè)性變換模塊、一個(gè)時(shí)滯混沌迭代模塊、一個(gè)帶密鑰Hash函數(shù)運(yùn)算模塊、一個(gè)數(shù)字簽名加密模塊及一個(gè)信息傳輸模塊。所述性變換模塊完成的功能是對待數(shù)字簽名的明文信息M(k),其中k=1,2,3,…K,K為明文信息M(k)的長度,以字符為單位進(jìn)行ASCII編碼,得到明文信息M(k)的ASCII編碼序列Asc(M[k]),編碼序列Asc(M[k])的每一個(gè)ASCII編碼的值域范圍在之間;然后根據(jù)ASCII編碼的值域范圍對編碼序列Asc(M[k])進(jìn)行線性變換的量化處理,得到符合時(shí)滯混沌迭代參數(shù)所要求的值域范圍[12,12.8]的離散序列C(k),C[k]=g+0.001XAsc(M[k]),其中g(shù)為取值范圍在[12,12.545]之間的一個(gè)常數(shù)。所述時(shí)滯混沌迭代模塊完成的功能是對步驟1所得的離散序列C(k)進(jìn)行時(shí)滯混7沌迭代,獲得離散時(shí)滯混沌序列XiK—、iG[1,N]);具體方法為利用一維時(shí)滯混沌迭代公式xn+1=asin2(xn+b)對離散序列C(k)中的C(1)、C(2)、C(3)直至C(K)順序進(jìn)行K輪時(shí)滯混沌迭代,其中,l《n《N,N為每輪時(shí)滯混沌迭代的次數(shù);a和b為每一輪時(shí)滯混沌迭代的固定參數(shù),且aG[12.000,12.8000],bG;第一輪迭代時(shí),令a=C(1)、選定任意一個(gè)初值xl,得到N次迭代后與C(l)相關(guān)的迭代結(jié)果xN+1°;第二輪迭代時(shí),令a=C(2)、以第一輪時(shí)滯混沌迭代的迭代結(jié)果x,^為初值^得到N次迭代后與C(1)和C(2)相關(guān)的迭代結(jié)果%+/;第三輪迭代時(shí),令a=C(3)、以第二輪時(shí)滯混沌迭代的迭代結(jié)果xN+,為初值^,得到N次迭代后與C(1)、C(2)和C(3)相關(guān)的迭代結(jié)果%+12;直至第1(輪迭代時(shí),令a=C(K)、以第(K-l)輪時(shí)滯混沌迭代的迭代結(jié)果xN+1K—2為初值Xl,得到N次迭代后與C(1)、C(2)、C(3)……C(K)相關(guān)的離散時(shí)滯混沌序列XiK—、iG[l,N]),即x,、/—、315—1……K_lK-lXNXN+1o所述帶密鑰Hash函數(shù)運(yùn)算模塊完成的功能是對混沌迭代模塊所得離散時(shí)滯混沌序列XlK—、/—、/—1……%K—、w+,1進(jìn)行帶密鑰的Hash函數(shù)運(yùn)算,獲得定長值為L的混沌Hash值H丄。所述數(shù)字簽名加密模塊完成的功能是對帶密鑰Hash函數(shù)運(yùn)算模塊所得混沌Hash值&進(jìn)行加密處理,得到最終的數(shù)字簽名。所述信息傳輸模塊完成的功能是將明文信息M(k)和數(shù)字簽名加密模塊所得的數(shù)字簽名進(jìn)行組合后發(fā)送到通信信道。所述數(shù)字簽名認(rèn)證裝置包括一個(gè)信息接收模塊、一個(gè)明文信息處理模塊、一個(gè)數(shù)字簽名解密模塊及一個(gè)數(shù)字簽名認(rèn)證模塊。所述信息接收模塊完成的功能是從通信信道中接收來自于發(fā)送方的明文信息和數(shù)字簽名。所述明文信息處理模塊完成的功能是對接收的明文信息進(jìn)行明文線性變換、時(shí)滯混沌迭代、帶密鑰的Hash函數(shù)運(yùn)算,獲得混沌Hash值H2。所述明文信息處理模塊由一個(gè)線性變換模塊、一個(gè)時(shí)滯混沌迭代模塊和一個(gè)帶密鑰的Hash函數(shù)運(yùn)算模塊組成。數(shù)字簽名認(rèn)證裝置中明文信息處理模塊的線性變換模塊、時(shí)滯混沌迭代模塊和帶密鑰的Hash函數(shù)運(yùn)算模塊各自所完成的功能分別與數(shù)字簽名生成裝置中的線性變換模塊、時(shí)滯混沌迭代模塊和帶密鑰的Hash函數(shù)運(yùn)算模塊所完成的功能相對應(yīng)。所述數(shù)字簽名解密模塊完成的功能是對接收到的數(shù)字簽名進(jìn)行與發(fā)送方相對應(yīng)的解密處理,得到混沌Hash值H3。所述數(shù)字簽名認(rèn)證模塊完成的功能是判斷明文信息處理模塊所得混沌Hash值H2和數(shù)字簽名解密模塊所得混沌Hash值H3是否一致,如果一致,則通過認(rèn)證;否則,不通過認(rèn)證。本發(fā)明提供的基于時(shí)滯混沌迭代的數(shù)字簽名方法及裝置,利用離散混沌迭代的敏感性和遍歷性,將需要傳送的明文信息調(diào)制在時(shí)滯混沌迭代的軌跡(過程)中,使其產(chǎn)生的Hash值(數(shù)字簽名)具有更大的密鑰空間和具備更高的安全性。在時(shí)滯混沌迭代過程中,采用運(yùn)算方式簡單、且運(yùn)算速度較快的一維時(shí)滯混沌迭代公式x^=asin2(xn+b),其中,當(dāng)參數(shù)aG[12.000,12.800],bG,系統(tǒng)具有穩(wěn)定的混沌吸引子,該混沌序列具有很好的類噪聲特性。其分布特征適合用來構(gòu)造單向值的分布平穩(wěn),與迭代步數(shù)無關(guān),而且與初值無關(guān),分布也較為均勻,這樣在已知終值的情況下,初值分布的概率比較均勻,只能以窮舉搜索初值,因而保證了不可逆性和防偽造性。在帶密鑰的Hash函數(shù)運(yùn)算過程中,采用的HMACHash函數(shù)運(yùn)算算法。HMAC算法是基于一個(gè)通信雙方共享的密鑰,在發(fā)送明文消息前,對密鑰和明文消息都進(jìn)行了Hash散列(本發(fā)明采用的MD5方法)運(yùn)算;在生成Hash值的過程中,又對密鑰進(jìn)行了兩次異或運(yùn)算,大大加深了攻擊者破譯的難度。另外,如果配合周期性地動態(tài)更新密鑰,可進(jìn)一步克服hash函數(shù)和密鑰本身潛在的不安全隱患,降低了由此帶來的危害,進(jìn)一步加強(qiáng)了Hash函數(shù)運(yùn)算生成的數(shù)字簽名的抗攻擊性。本發(fā)明提供的基于時(shí)滯混沌迭代的數(shù)字簽名方法及裝置,具有算法簡單、速度快的特點(diǎn);本發(fā)明利用了離散時(shí)滯混沌迭代過程對初始條件的敏感性和迭代過程的單向性,使產(chǎn)生的數(shù)字簽名(Hash值)的每個(gè)比特都與需要傳送的明文信息相關(guān),并且這種關(guān)系對明文信息及時(shí)滯混沌迭代初始值的微小改變非常敏感。因此,基于時(shí)滯混沌迭代所產(chǎn)生的數(shù)字簽名(Hash值)與需要傳送的明文信息之間的這種復(fù)雜而敏感性的非線性關(guān)系可以有效地抵御線性分析,具有更大的密鑰空間和更大的安全性。圖1是本發(fā)明提供的一種基于時(shí)滯混沌迭代的數(shù)字簽名方法的流程示意圖。圖2是本發(fā)明提供的一種基于時(shí)滯混沌迭代的數(shù)字簽名裝置的結(jié)構(gòu)示意圖。具體實(shí)施例方式以下結(jié)合附圖,對本發(fā)明技術(shù)方案進(jìn)一步說明。以下描述僅為本發(fā)明的一個(gè)具體實(shí)施方式,并非是對本發(fā)明的限定。對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)本發(fā)明思想獲得其他具體實(shí)施方式。對于一個(gè)字符長度為6000左右的原始文本文件,對其進(jìn)行本發(fā)明所述的基于時(shí)滯混沌迭代的數(shù)字簽名,包括以下步驟步驟1:將原始文本文件逐字符地進(jìn)行ASCII編碼,得到原始文本文件的ASCII編碼序列Asc(M[k])(K為原始文本文件的長度),將值域范圍在之間的ASCII編碼序列Asc(M[k])進(jìn)行線性變換的量化處理,得到一個(gè)值域范圍在[12.000,12.255]之間的離散序列C(k)。步驟2:對步驟1所得的離散序列C(k)進(jìn)行時(shí)滯混沌迭代,獲得離散時(shí)滯混沌序列X,、iG[l,N]);具體方法為利用一維時(shí)滯混沌迭代公式xn+1=asin2(xn+b)對離散序列C(k)中的C(1)、C(2)、C(3)直至C(K)順序進(jìn)行K輪時(shí)滯混沌迭代,其中,l《n《50,50為每輪時(shí)滯混沌迭代的次數(shù);a和b為每一輪時(shí)滯混沌迭代的固定參數(shù),且aG[12.000,12.255],bG;第一輪迭代時(shí),令a=C(l)、b=0.1和Xl=0.1,得到50次迭代后與C(1)相關(guān)的迭代結(jié)果;第二輪迭代時(shí),令a=C(2)、b=0.1禾P力-x乙,得到50次迭代后與C(l)和C(2)相關(guān)的迭代結(jié)果xN+,;第三輪迭代時(shí),令a=C(2)、b=0.1和x,=x:+,,得到50次迭代后與C(l)、C(2)和C(3)相關(guān)的迭代結(jié)果xN+12;直至第K輪迭代時(shí),令a=C(K)、b=90.1和^=x=,得到50次迭代后與C(l)、C(2)、C(3)……C(K)相關(guān)的離散時(shí)滯混沌序列XiK—1(ie[1,N]),艮卩x,—工x/—工x/—1......xNK—1。步驟3:對步驟2所得離散時(shí)滯混沌序列XlK—、/—1……xNK—、+廣1進(jìn)行帶密鑰的Hash函數(shù)運(yùn)算,獲得定長值為128的混沌Hash值&;具體步驟包括步驟3-1:采用ipad序列(ipad序列為"00110110"重復(fù)排列任意次的序列)中排在前面、且長度與通信雙方約定的密鑰Key等長的子序列,與通信雙方約定的密鑰Key進(jìn)行異或運(yùn)算,得到序列SO。步驟3-2:將序列SO與步驟2所得離散時(shí)滯混沌序列x,、/—、/—1……xNK—、+廣1拼接在一起,拼接時(shí),在序列S0與離散時(shí)滯混沌序列XlK—、/—1x/—、+,1之間補(bǔ)充一定位數(shù)的"0"或"1"字符,使得拼接后構(gòu)成的離散序列G0能夠分成若干個(gè)長度為512的數(shù)據(jù)塊。步驟3-3:對離散序列GO進(jìn)行Hash運(yùn)算,具體過程為采用一個(gè)長度為128的初始hash值,對離散序列GO中的數(shù)據(jù)塊依次進(jìn)行Hash迭代,得到一個(gè)長度為128的hash值H0。步驟3-4:采用opad序列(opad序列為"01011100"重復(fù)排列任意次所構(gòu)成的序列)中排在前面、且長度與通信雙方約定的密鑰Key等長的子序列,與通信雙方約定的密鑰Key進(jìn)行異或運(yùn)算,得到序列Sl。步驟3-5:將序列SI與步驟3-2所得的hash值H。拼接在一起,拼接時(shí),在序列SI和hash值H。之間補(bǔ)充一定位數(shù)的"0"或"1"字符,使得拼接后構(gòu)成的離散序列Gl能夠分成若干個(gè)長度為512的數(shù)據(jù)塊。步驟3-6:對離散序列Gl進(jìn)行Hash運(yùn)算,具體過程為采用一個(gè)長度為128的初始hash值,對離散序列Gl中的數(shù)據(jù)塊依次進(jìn)行Hash迭代,得到一個(gè)長度為128的hash值H1Q步驟4:對步驟3所得混沌Hash值&進(jìn)行加密處理,得到最終的數(shù)字簽名。步驟5:發(fā)送方將原始文本文件和步驟4所得的數(shù)字簽名進(jìn)行組合后發(fā)送到通信信道。文件接收方的數(shù)字簽名的認(rèn)證過程包括以下步驟步驟6:接收方從通信信道中接收來自于發(fā)送方的文本文件和數(shù)字簽名后,進(jìn)行下述步驟7至步驟9的處理;步驟7:接收方對接收到的文本文件按照步驟1至步驟3進(jìn)行處理,得到混沌Hash值H2;步驟8:接收方對接收到的數(shù)字簽名進(jìn)行與發(fā)送方相對應(yīng)的解密處理,得到混沌Hash值H3;步驟9:判斷步驟7所得混沌Hash值H2和步驟8所得混沌Hash值H3是否一致,如果一致,則通過認(rèn)證;否則,不通過認(rèn)證。本發(fā)明提供的基于時(shí)滯混沌迭代的數(shù)字簽名方法及裝置,利用離散混沌迭代的敏感性和遍歷性,將需要傳送的明文信息調(diào)制在時(shí)滯混沌迭代的軌跡(過程)中,使其產(chǎn)生的Hash值(數(shù)字簽名)具有更大的密鑰空間和具備更高的安全性。在時(shí)滯混沌迭代過程中,采用運(yùn)算方式簡單、且運(yùn)算速度較快的一維時(shí)滯混沌迭10代公式x^=asin2(Xn+b),其中,當(dāng)x的值域范圍在[O,l],參數(shù)aG[12.000,12.800],bG,系統(tǒng)具有穩(wěn)定的混沌吸引子,該混沌序列具有很好的類噪聲特性。其分布特征適合用來構(gòu)造單向的Hash函數(shù),不僅終值的分布平穩(wěn),與迭代步數(shù)無關(guān),而且與初值無關(guān),分布也較為均勻,這樣在已知終值的情況下,初值分布的概率比較均勻,只能以窮舉搜索初值,因而保證了不可逆性和防偽造性。在帶密鑰的Hash函數(shù)運(yùn)算過程中,采用的HMACHash函數(shù)運(yùn)算算法。HMAC算法是基于一個(gè)通信雙方共享的密鑰,在發(fā)送明文消息前,對密鑰和明文消息都進(jìn)行了Hash散列(本發(fā)明采用的MD5方法)運(yùn)算;在生成Hash值的過程中,又對密鑰進(jìn)行了兩次異或運(yùn)算,大大加深了攻擊者破譯的難度。另外,如果配合周期性地動態(tài)更新密鑰,可進(jìn)一步克服hash函數(shù)和密鑰本身潛在的不安全隱患,降低了由此帶來的危害,進(jìn)一步加強(qiáng)了Hash函數(shù)運(yùn)算生成的數(shù)字簽名的抗攻擊性。本發(fā)明提供的基于時(shí)滯混沌迭代的數(shù)字簽名方法及裝置,具有算法簡單、速度快的特點(diǎn);本發(fā)明利用了離散時(shí)滯混沌迭代過程對初始條件的敏感性和迭代過程的單向性,使產(chǎn)生的數(shù)字簽名(Hash值)的每個(gè)比特都與需要傳送的明文信息相關(guān),并且這種關(guān)系對明文信息及時(shí)滯混沌迭代初始值的微小改變非常敏感。因此,基于時(shí)滯混沌迭代所產(chǎn)生的數(shù)字簽名(Hash值)與需要傳送的明文信息之間的這種復(fù)雜而敏感性的非線性關(guān)系可以有效地抵御線性分析,具有更大的密鑰空間和更大的安全性。以下是仿真驗(yàn)證說明—、仿真證明,通過對原始文本任意單個(gè)字符或連續(xù)多個(gè)字符的篡改,經(jīng)本發(fā)明所述方法所得到的數(shù)字簽名(Hash值)均不相同。這意味這原始文本的微小變化,都將到導(dǎo)致輸出的Hash值有很大的差異變化。由此可見,本發(fā)明提供的基于時(shí)滯混沌迭代的數(shù)字簽名方法及裝置具有很強(qiáng)的初值敏感性。二、仿真同時(shí)證明,本發(fā)明提供的基于時(shí)滯混沌迭代的數(shù)字簽名方法及裝置使用微小差異(哪怕這種差異率小于10—3)的密鑰進(jìn)行Hash運(yùn)算,就會產(chǎn)生截然不同的Hash值,可見該方法單向性好,并且具有十分高的初值敏感性。三、混亂與散布性質(zhì)統(tǒng)計(jì)分析在設(shè)計(jì)密碼的過程中需要根據(jù)混亂和散布兩個(gè)重要原則來設(shè)計(jì)。這就要求本發(fā)明在生成Hash值的過程中,生成的Hash值要與所對應(yīng)的明文信息在內(nèi)容上不相關(guān),但是又要對所對應(yīng)的明文信息有著高度的敏感性。只有這樣了才能做到混亂和散布密碼設(shè)計(jì)原則所要求的,使得Hash值盡可能在密文空間均勻分布。理想Hash值的散布效果應(yīng)該是初值的微小變化將導(dǎo)致結(jié)果的每bit都以50%的概率變化。因此,考察Hash值的混亂與散布性質(zhì),即需要考察在明文信息發(fā)生lbit變化的情況下,引起Hash值結(jié)果的變化bit數(shù)。如下面式子所示,即為混亂與散布性質(zhì)的統(tǒng)計(jì)數(shù)字特征。平均變換比特?cái)?shù)J=;l>n;平均變換率P=(5/128)X100%B的均方差A(yù)5=|^~丄^-巧2;P的均方差A(yù)P=(&/128-尸):<formula>formulaseeoriginaldocumentpage11</formula>其中,K明文的長度,Bn為第n次測試時(shí)結(jié)果變換的比特?cái)?shù)。測試的方法為1)取一段長度為K的明文,通過本發(fā)明提供的方法,先計(jì)算出該段明文的Hash值Dgt;2)在該段明文的第一個(gè)字符的ASCII碼上加l,得到一段新的明文,計(jì)算出新的明文的Hash值Dgtl;比較Dgt和Dgtl的變換比特?cái)?shù),得到Bi;3)在第一個(gè)字符的ASCII碼上減1,恢復(fù)明文為原始明文;4)在原始明文的第二個(gè)字符的ASCII碼上加l,得到一段新的明文,計(jì)算出新的明文的Hash值Dgt2比較Dgt和Dgt2的變換比特?cái)?shù),得到B2;5)以此類推,最終得到BpB2,B3,……Bn—2Bn—A;6)在得到Bn序列后,計(jì)算出相應(yīng)的統(tǒng)計(jì)數(shù)據(jù)。本發(fā)明采用Matlab仿真得到明文長度K為250、500、1000、6500的性能統(tǒng)計(jì)數(shù)據(jù),如表2所示表2-Hash性能測試統(tǒng)計(jì)N<table>tableseeoriginaldocumentpage12</column></row><table>從上表可以看出,明文通過本發(fā)明提供的方法得到的Hash值,初始明文只要有微小的變換都將導(dǎo)致Hash值將近有一半的位變化。平均變化比特?cái)?shù)和每比特平均變化率都趨近于理想狀態(tài)下的64比特(Hash值為128比特)和50%。相當(dāng)充分和均勻地利用了明文空間,明文的任何擾動,使得密文在統(tǒng)計(jì)上產(chǎn)生接近等概率的均勻分布,從統(tǒng)計(jì)效果上保證了攻擊者無法在已知一些明文密文對的情況下偽造其它的明文密文。同時(shí),AB與AP都很小,表明算法對明文的混亂與散布能力強(qiáng)而穩(wěn)定。四、抗碰撞分析抗碰撞性是衡量Hash性能的又一重要的指標(biāo)。所謂碰撞,是指不同的初始文本對應(yīng)的Hash映射結(jié)果相同,即發(fā)生了多對一映射。如果不同的原始文本對應(yīng)的Hash值相同,就是所謂的一次碰撞。由于Hash算法的作用是把變長的明文壓縮成固定長度的密文,本文提出的算法中Hash值長度只有128bit,因此碰撞分析是非常必要的,是要盡可能防止不同的明文Hash變換成相同的Hash值。對于碰撞的分析可以通過如下的方法來衡量。由于最后的Hash值是通過十六進(jìn)制的方式來表示的,因此測試的目的就是看每次改變明文的任何一個(gè)bit位,而得到的Hash值在相同的位置出現(xiàn)相同十六進(jìn)制值的情況,并作統(tǒng)計(jì)分析。下表所示為經(jīng)Matlab仿真測試文本長度為250、500、1000、6500情況下,得到相同Hash值的概率K<table>tableseeoriginaldocumentpage12</column></row><table>從表中數(shù)據(jù)可以看出,多次測試的碰撞值都非常低,說明本發(fā)明具有很強(qiáng)的抗碰撞性。通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的硬件平臺的方式來實(shí)現(xiàn),當(dāng)然也可以全部通過硬件來實(shí)施?;谶@樣的理解,本發(fā)明的技術(shù)方案對
背景技術(shù):
做出貢獻(xiàn)的全部或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。權(quán)利要求一種基于時(shí)滯混沌迭代的數(shù)字簽名方法,包括數(shù)字簽名的生成過程和認(rèn)證過程,所述數(shù)字簽名的生成過程包括以下步驟步驟1對待數(shù)字簽名的明文信息M(k),其中k=1,2,3,…K,K為明文信息M(k)的長度,以字符為單位進(jìn)行ASCII編碼,得到明文信息M(k)的ASCII編碼序列Asc(M[k]),編碼序列Asc(M[k])的每一個(gè)ASCII編碼的值域范圍在之間;然后根據(jù)ASCII編碼的值域范圍對編碼序列Asc(M[k])進(jìn)行線性變換的量化處理,得到符合時(shí)滯混沌迭代參數(shù)所要求的值域范圍[12,12.8]的離散序列C(k),C[k]=g+0.001×Asc(M[k]),其中g(shù)為取值范圍在[12,12.545]之間的一個(gè)常數(shù);步驟2對步驟1所得的離散序列C(k)進(jìn)行時(shí)滯混沌迭代,獲得離散時(shí)滯混沌序列xiK-1(i∈[1,N]);具體方法為利用一維時(shí)滯混沌迭代公式xn+1=asin2(xn+b)對離散序列C(k)中的C(1)、C(2)、C(3)直至C(K)順序進(jìn)行K輪時(shí)滯混沌迭代,其中,1≤n≤N,N為每輪時(shí)滯混沌迭代的次數(shù);a和b為每一輪時(shí)滯混沌迭代的固定參數(shù),且a∈[12.000,12.8000],b∈;第一輪迭代時(shí),令a=C(1)、選定任意一個(gè)初值x1,得到N次迭代后與C(1)相關(guān)的迭代結(jié)果xN+10;第二輪迭代時(shí),令a=C(2)、以第一輪時(shí)滯混沌迭代的迭代結(jié)果xN+10為初值x1,得到N次迭代后與C(1)和C(2)相關(guān)的迭代結(jié)果xN+11;第三輪迭代時(shí),令a=C(3)、以第二輪時(shí)滯混沌迭代的迭代結(jié)果xN+11為初值x1,得到N次迭代后與C(1)、C(2)和C(3)相關(guān)的迭代結(jié)果xN+12;直至第K輪迭代時(shí),令a=C(K)、以第(K-1)輪時(shí)滯混沌迭代的迭代結(jié)果xN+1K-2為初值x1,得到N次迭代后與C(1)、C(2)、C(3)……C(K)相關(guān)的離散時(shí)滯混沌序列xiK-1(i∈[1,N]),即x1K-1x2K-1x3K-1……xNK-1xN+1K-1;步驟3對步驟2所得離散時(shí)滯混沌序列x1K-1x2K-1x3K-1……xNK-1xN+1K-1進(jìn)行帶密鑰的Hash函數(shù)運(yùn)算,獲得定長值為L的混沌Hash值H1;步驟4對步驟3所得混沌Hash值H1進(jìn)行加密處理,得到最終的數(shù)字簽名;步驟5發(fā)送方將明文信息M(k)和步驟4所得的數(shù)字簽名進(jìn)行組合后發(fā)送到通信信道;所述數(shù)字簽名的認(rèn)證過程包括以下步驟步驟6接收方從通信信道中接收來自于發(fā)送方的明文信息和數(shù)字簽名后,進(jìn)行下述步驟7至步驟9的處理;步驟7接收方對接收到的明文信息按照步驟1至步驟3進(jìn)行處理,得到混沌Hash值H2;步驟8接收方對接收到的數(shù)字簽名進(jìn)行與發(fā)送方相對應(yīng)的解密處理,得到混沌Hash值H3;步驟9判斷步驟7所得混沌Hash值H2和步驟8所得混沌Hash值H3是否一致,如果一致,則通過認(rèn)證;否則,不通過認(rèn)證。2.根據(jù)權(quán)利要求1所述的基于時(shí)滯混沌迭代的數(shù)字簽名方法,其特征在于,步驟3"對步驟2所得離散時(shí)滯混沌序列XlK—、/—1……x/—、+,1進(jìn)行帶密鑰的Hash函數(shù)運(yùn)算,獲得定長值為L的混沌Hash值H/,時(shí),具體方法包括以下步驟步驟3-l:采用ipad序列(ipad序列為"00110110"重復(fù)排列任意次的序列)中排在前面、且長度與通信雙方約定的密鑰Key等長的子序列,與通信雙方約定的密鑰Key進(jìn)行異或運(yùn)算,得到序列SO。步驟3-2:將序列SO與步驟2所得離散時(shí)滯混沌序列XlK—、/—1……%K—、+,1拼接在一起,拼接時(shí),在序列SO與離散時(shí)滯混沌序列XlK—、/—、/—1……x/—、w+,1之間補(bǔ)充一定位數(shù)的"0"或"1"字符,使得拼接后構(gòu)成的離散序列GO能夠分成若干個(gè)長度相等的數(shù)據(jù)塊。步驟3-3:對離散序列GO進(jìn)行Hash運(yùn)算,具體過程為采用一個(gè)長度為L的初始hash值,對離散序列GO中的數(shù)據(jù)塊依次進(jìn)行Hash迭代,得到一個(gè)長度為L的hash值H。。步驟3-4:采用opad序列(opad序列為"01011100"重復(fù)排列任意次所構(gòu)成的序列)中排在前面、且長度與通信雙方約定的密鑰Key等長的子序列,與通信雙方約定的密鑰Key進(jìn)行異或運(yùn)算,得到序列Sl。步驟3-5:將序列SI與步驟3-2所得的hash值H。拼接在一起,拼接時(shí),在序列SI和hash值H。之間補(bǔ)充一定位數(shù)的"0"或"1"字符,使得拼接后構(gòu)成的離散序列Gl能夠分成若干個(gè)長度相等的數(shù)據(jù)塊。步驟3-6:對離散序列Gl進(jìn)行Hash運(yùn)算,具體過程為采用一個(gè)長度為L的初始hash值,對離散序列Gl中的數(shù)據(jù)塊依次進(jìn)行Hash迭代,得到一個(gè)長度為L的hash值H1Q3.—種基于時(shí)滯混沌迭代的數(shù)字簽名裝置,包括數(shù)字簽名生成裝置和數(shù)字簽名認(rèn)證裝置;所述數(shù)字簽名生成裝置包括一個(gè)性變換模塊、一個(gè)時(shí)滯混沌迭代模塊、一個(gè)帶密鑰Hash函數(shù)運(yùn)算模塊、一個(gè)數(shù)字簽名加密模塊及一個(gè)信息傳輸模塊;所述性變換模塊完成的功能是對待數(shù)字簽名的明文信息M(k),其中k=1,2,3,…K,K為明文信息M(k)的長度,以字符為單位進(jìn)行ASCII編碼,得到明文信息M(k)的ASCII編碼序列Asc(M[k]),編碼序列Asc(M[k])的每一個(gè)ASCII編碼的值域范圍在之間;然后根據(jù)ASCII編碼的值域范圍對編碼序列Asc(M[k])進(jìn)行線性變換的量化處理,得到符合時(shí)滯混沌迭代參數(shù)所要求的值域范圍[12,12.8]的離散序列C(k),C[k]=g+0.001XAsc(M[k]),其中g(shù)為取值范圍在[12,12.545]之間的一個(gè)常數(shù);所述時(shí)滯混沌迭代模塊完成的功能是對步驟1所得的離散序列C(k)進(jìn)行時(shí)滯混沌迭代,獲得離散時(shí)滯混沌序列XiK—、iG[1,N]);具體方法為利用一維時(shí)滯混沌迭代公式xn+1=asin2(xn+b)對離散序列C(k)中的C(l)、C(2)、C(3)直至C(K)順序進(jìn)行K輪時(shí)滯混沌迭代,其中,1《n《N,N為每輪時(shí)滯混沌迭代的次數(shù);a和b為每一輪時(shí)滯混沌迭代的固定參數(shù),且aG[12.000,12.8000],bG;第一輪迭代時(shí),令a=C(1)、選定任意一個(gè)初值Xl,得到N次迭代后與C(l)相關(guān)的迭代結(jié)果xN+1°;第二輪迭代時(shí),令a=C(2)、以第一輪時(shí)滯混沌迭代的迭代結(jié)果x,^為初值^得到N次迭代后與C(1)和C(2)相關(guān)的迭代結(jié)果%+/;第三輪迭代時(shí),令a=C(3)、以第二輪時(shí)滯混沌迭代的迭代結(jié)果xN+,為初值^,得到N次迭代后與C(1)、C(2)和C(3)相關(guān)的迭代結(jié)果%+12;直至第1(輪迭代時(shí),令a=C(K)、以第(K-l)輪時(shí)滯混沌迭代的迭代結(jié)果xN+1K—2為初值Xl,得到N次迭代后與C(1)、C(2)、C(3)……C(K)相關(guān)的離散時(shí)滯混沌序列XiK—、iG[l,N]),即x,、/—、315—1……K_lK-lxnxn+i;所述帶密鑰Hash函數(shù)運(yùn)算模塊完成的功能是對混沌迭代模塊所得離散時(shí)滯混沌序列XlK—VV1……x/—、+廣1進(jìn)行帶密鑰的Hash函數(shù)運(yùn)算,獲得定長值為L的混沌Hash值H1;所述數(shù)字簽名加密模塊完成的功能是對帶密鑰Hash函數(shù)運(yùn)算模塊所得混沌Hash值&進(jìn)行加密處理,得到最終的數(shù)字簽名;所述信息傳輸模塊完成的功能是將明文信息M(k)和數(shù)字簽名加密模塊所得的數(shù)字簽名進(jìn)行組合后發(fā)送到通信信道;所述數(shù)字簽名認(rèn)證裝置包括一個(gè)信息接收模塊、一個(gè)明文信息處理模塊、一個(gè)數(shù)字簽名解密模塊及一個(gè)數(shù)字簽名認(rèn)證模塊;所述信息接收模塊完成的功能是從通信信道中接收來自于發(fā)送方的明文信息和數(shù)字簽名;所述明文信息處理模塊完成的功能是對接收的明文信息進(jìn)行明文線性變換、時(shí)滯混沌迭代、帶密鑰的Hash函數(shù)運(yùn)算,獲得混沌Hash值H2。所述明文信息處理模塊由一個(gè)線性變換模塊、一個(gè)時(shí)滯混沌迭代模塊和一個(gè)帶密鑰的Hash函數(shù)運(yùn)算模塊組成。數(shù)字簽名認(rèn)證裝置中明文信息處理模塊的線性變換模塊、時(shí)滯混沌迭代模塊和帶密鑰的Hash函數(shù)運(yùn)算模塊各自所完成的功能分別與數(shù)字簽名生成裝置中的線性變換模塊、時(shí)滯混沌迭代模塊和帶密鑰的Hash函數(shù)運(yùn)算模塊所完成的功能相對應(yīng);所述數(shù)字簽名解密模塊完成的功能是對接收到的數(shù)字簽名進(jìn)行與發(fā)送方相對應(yīng)的解密處理,得到混沌Hash值H3;所述數(shù)字簽名認(rèn)證模塊完成的功能是判斷明文信息處理模塊所得混沌Hash值H2和數(shù)字簽名解密模塊所得混沌Hash值H3是否一致,如果一致,則通過認(rèn)證;否則,不通過認(rèn)證。全文摘要一種基于時(shí)滯混沌迭代的數(shù)字簽名方法及裝置,屬于通信
技術(shù)領(lǐng)域:
。數(shù)字簽名生成過程包括1)對明文進(jìn)行ASCII編碼并對值域線性量化,2)一維時(shí)滯混沌迭代,3)帶密鑰的Hash函數(shù)變換,4)加密等步驟;數(shù)字簽名認(rèn)證過程包括5)對接收的明文信息進(jìn)行與數(shù)字簽名的生成過程相同的步驟生成一個(gè)Hash值,6)對接收的數(shù)字簽名(Hash值)進(jìn)行解密,7)認(rèn)證等步驟。本發(fā)明利用時(shí)滯混沌迭代的敏感性和遍歷性,將明文信息調(diào)制在時(shí)滯混沌迭代的迭代軌跡(過程)中,使其產(chǎn)生的Hash值具有更大的密鑰空間和具備更高的安全性;本發(fā)明適用于各種需要進(jìn)行數(shù)字簽名進(jìn)行驗(yàn)證的文本、音視頻文件等的安全傳輸場合,具有運(yùn)算簡單、速度較快,不可逆、防偽造,抗攻擊性和碰撞性強(qiáng)的特點(diǎn)。文檔編號H04L9/00GK101741544SQ20091026507公開日2010年6月16日申請日期2009年12月29日優(yōu)先權(quán)日2009年12月29日發(fā)明者劉小林,徐杰,楊娣潔,王軍浩,隆克平申請人:電子科技大學(xué)