基于dna技術的非對稱加密與簽名方法
【專利摘要】本發明提出一個以DNA分子作為信息載體,利用DNA分子的生物學特性實現的非對稱加密與簽名系統——DNA-PKC(DNA-public?key?cryptosystem)。本發明將結合現代基因工程技術和密碼學技術進行設計,DNA-PKC的密鑰由加密鑰和解密鑰組成,加密者之間互相不能解密,只有解密鑰的擁有者才能解密所有密文。DNA-PKC的密鑰與密文均為生物分子實物,在應用協議等方面具有不同的要求。在安全性方面,DNA-PKC能夠對未來的量子計算機的攻擊免疫。
【專利說明】基于DNA技術的非對稱加密與簽名方法
【技術領域】
[0001]本發明涉及一種通信以及傳輸的加密與簽名方法,具體涉及到一種基于DNA技術的非對稱性加密與簽名方法。
【背景技術】
[0002]密碼學是對信息進行編碼實現隱蔽信息的一門科學,其存在與發展總是和人類社會對信息的處理能力或者計算能力的進步息息相關。現代社會隨著電子計算技術在微型化方面逐漸接近物理極限,人類社會已經致力于研究新型的計算技術,這可能對密碼技術的未來發展產生深遠的影響。在當前的研究中,最有希望的是生物計算和量子計算,由此可能會推動生物密碼和量子密碼成為未來重要的密碼技術。
[0003]從20世紀70年代初Wiesner提出不成熟的量子密碼概念開始,量子密碼的研究已經進行了近40年。雖然今天的量子密碼還遠遠不能撼動數學密碼的主體地位,但在量子通信方面已經取得了可喜的進展。相對于量子密碼的進步,量子計算雖然具有直接威脅現代密碼學的驚人計算潛力,但要實現電子計算機那樣精巧的計算仍然非常遙遠。與之形成對比的是,在DNA(生物)計算方面,從1994年Adleman進行的第一次DNA計算到現在經歷了 15年的發展,世界DNA計算大會舉行了 15屆,不同的計算方法被不斷提出并且在實驗室中的計算能力越來越強,甚至已經被用來攻擊NP-C問題與傳統的數學密碼;而0嫩(生物)密碼的研究卻沉默許多。
[0004]DNA是脫氧核糖核酸的縮寫,從構成上看,是由核苷酸組成的一種生物大分子。DNA芯片,也稱作基因芯片、寡核苷酸芯片或者生物芯片,是用原位合成的寡核苷酸或者噴涂的cDNA探針制作的。大量的DNA探針被放到玻璃或者硅片上,通過大量與芯片上的探針互補的探針標記后,被退火到芯片上能獲得各種各樣的基因信息。基于此,本發明提出一個以DNA分子作為信息載體,利用DNA分子的生物學特性實現的非對稱加密與簽名系統——DNA-PKC(DNA-publie key cryptosystem)。
【發明內容】
[0005]生物密碼在通信系統模型上和傳統的密碼基本一致,也是由消息發送者、消息接收者以及攻擊者組成。就本發明DNA-PKC而言,其也如同傳統的公鑰密碼系統,需要2個不同的密鑰,即私鑰dk和公鑰ek。公鑰ek被分成多個份額,而私鑰dk只有一個份額。任何一個擁有公鑰ek份額的人都可以很容易地把明文加密成密文,但不能把其他份額加密的密文解密成明文。而擁有私鑰dk的人,可以很容易地把所有用公鑰份額加密的密文解密成明文。其他如雜交條件,也可以作為解密鑰的組成部分。在DNA-PKC加密系統中,一般一個探針集合被選作公鑰ek,另一個探針集合被選作私鑰dk。利用公鑰的份額可以制作出密文來,當密文與私鑰dk雜交時,結果會滿足某個標準,從而恢復出用雜交信號表示的信息。類似地,在DNA-PKC簽字系統中,私鑰的所有者利用私鑰制作簽名,其他人利用公鑰的份額可以進行驗證,但無法偽造。[0006]本發明,基于DNA技術的非對稱性加密和簽名方法,系中國國家自然科學基金(項目編號:61272440,60903180)的研究成果。其實現的步驟為:密鑰生成、加密與解密以及簽名與驗證。具體包括以下內容:
[0007]步驟一,密鑰生成
[0008]1.準備候選加/解密鑰探針集合。取2個探針集合,一個探針集合作為加密鑰候選,另一個集合是探針混合液,作為候選的解密鑰。加密鑰候選集合中包含多個純化的探針,探針可以從自然界中選取或者是人工合成。解密鑰候選探針集合并不是隨意選取的,而是要和加密鑰有一定關聯的。混合溶液可以來自以往實驗或現場配制,但要保證其中含有足夠數量的候選加密鑰的互補探針或相關的能起雜交反應的探針。
[0009]2.篩選出加/解密鑰探針集合。每種探針單獨制作一個點,為了質量控制的要求,每個點可以制作多個副本。把候選加密探針芯片與候選解密探針在一個設定的雜交條件下進行雜交。這個雜交條件的設定可以依據以往的經驗值。當芯片上有一定數量的探針信號(如超過20%?30% ),則雜交結果比較理想,可以進行探針挑選工作。否則修改雜交條件重新進行實驗。對于探針雜交結果,可以設定一個特定的探針挑選條件,如雜交信號強度高于某一特定值的探針稱為I探針,雜交信號強度低于某一特定值的探針稱為O探針,其余探針丟棄。由O和I探針組成的集合就是加密鑰集合。也可以只挑選I探針,然后隨機選擇探針作為O探針。
[0010]步驟二:加密與解密
[0011]1.密鑰分發。如果Bob想加入DNA-PKC密碼系統,他隨機選擇他的密鑰對(ek,dk),對dk保密作為解密鑰。加密鑰探針ek的各個份額可以分發給指定的接收者。
[0012]2.加密。任意一個人,比如Alice,想發送消息給Bob,她可以先得到Bob的加密鑰的一個份額,然后利用這個份額根據明文制作芯片,也就得到了相應的密文。制做芯片的方法是先把明文按照一定的編碼規則轉化成二進制數字串,然后在芯片上對應于O的位置放上O探針,對應于I的位置放上I探針。這樣,她就可以通過公開的途徑把芯片發送給Bob0
[0013]3.解密。Bob使用他的解密鑰dk和Alice的密文芯片雜交,然后分析雜交信號從而得到明文。
[0014]如果其他人比如Tom也想給Bob發送信息,他只需要重復Alice的工作即可。
[0015]步驟三:簽名與驗證
[0016]1.密鑰分發。如果Bob想加入DNA-PKC密碼系統,他隨機選擇自己的密鑰對(vk,sk),對Sk保密作為簽名鑰。驗證鑰Vk被分成多個份額分發到有意的驗證者手中。
[0017]2.簽名過程。Bob根據要簽名的信息,使用簽名鑰sk制作芯片作為簽名。將待簽名的消息轉換成二進制矩陣,在芯片上對應于O的位置放上O探針,對應于I的位置放上I探針。芯片可以通過公開的途徑發送給指定的接收者。
[0018]3.簽名驗證。一個指定的接收者如Alice收到來自Bob的簽名芯片后,她可以使用得到的Bob的驗證鑰的一個份額同簽名芯片雜交,然后根據雜交信號恢復出Bob的簽名。
[0019]如果另一個人比如Tom也想驗證Bob的簽名,他只需要重復Alice的過程。注意至IJ,Tom的驗證鑰份額和Alice的份額可以是不同的,雖然他們都可以執行驗證過程,但都不能偽造Bob的簽名進彳丁欺騙。[0020]本發明技術方案的顯著性進步和特點主要體現在=DNA-PKC的信息載體是生物分子,在計算方面的復雜性很容易做到遠高于128位AES算法。依照現有的技術水平,對特殊探針芯片測序困難,因而生物學的安全性將會保持相當長的時間。在僅考慮數學的安全性的前提下,DNA-PKC仍然具有相當程度的安全性。考慮一個簡單的示例,加密探針的數量非常少,僅僅由128個探針組成,其中包含64個I探針和64個O探針。那么,攻擊者利用數
學計算的方法進行窮舉攻擊,可能的密鑰量為Cg8 =128!/(64!x64 ! ) = 2.4X 1037。對使用
128位密鑰的AES算法窮舉攻擊時,可能的密鑰量為2128 = 3.4X IO380 二者的密鑰搜索計算量已經接近,能夠對未來的量子計算機的攻擊免疫。在DNA-PKC中,從公鑰的一個份額推導不出解密鑰,也推導不出另外的加密鑰份額,因而不能解密其他人加密的密文。
[0021]本發明中,DNA-PKC的密鑰不再是數字,而是生物分子或者一些秘密的信息,比如雜交條件、讀取的規則等等。密文是以生物分子為載體變化出的各種形式,如混合物溶液或者芯片等。密文和密鑰的傳遞方式也不再是通過現有的計算機網絡,而是物理的,或未來可能出現的其他方式。在DNA-PKC中,加密或者簽名的過程是制作芯片,而解密或者驗證的過程是芯片雜交。在加密的應用中,雜交條件是保存在解密者的手中不公開的,而在簽名的應用中,雜交條件要公開給驗證者。雜交條件,包括溫度、濃度等等,對雜交結果有巨大的影響。【具體實施方式】
[0022]本發明中,基于DNA技術的非對稱性加密和簽名方法的具體實驗步驟類似,下面僅對基于DNA技術的非對稱性加密方法結合實例進行詳細說明,其具體步驟如下:
[0023]第一步:密鑰生成
[0024]1.準備候選加/解密鑰探針集合。本發明中,從中國生物芯片上海國家工程中心已有的基因實驗中挑選探針作為密鑰,基因來源對外保密。芯片雜交信號標準值有12個(Cy5_FM, Cy5_BM, Cy5_BSD, Cy5_Signal, Cy5_SN, Cy3_FM, Cy3_BM, Cy3_BSD, Cy3_Signal,Cy3_SN, Sat, flag),以Cy3_Signal值為標準挑選探針。然后,取2個探針集合,一個探針集合作為加密鑰候選,另一個集合是探針混合液,作為候選的解密鑰。
[0025]2.篩選出加/解密鑰探針集合。每種探針單獨制作一個點,為了質量控制的要求,每個點制作多個副本。把候選加密探針芯片與候選解密探針在一個設定的雜交條件下進行雜交。這個雜交條件的設定依據以往的經驗值。當芯片上有一定數量的探針信號(如超過20%~30% ),則雜交結果比較理想,可以進行探針挑選工作。否則修改雜交條件重新進行實驗。對于探針雜交結果,本發明中,規定雜交信號強度高于8000的探針作為I探針,雜交信號強度低于2000的探針作為O探針。
[0026]第二步,加密與解密
[0027]1.密鑰分發。從實驗樣本中分別選取兩組不同的加密鑰PKa和PKb分發給兩個指定的加密者A和B,每個加密鑰分別含有32種O探針和32種I探針,并將對應的雜交溶液保密作為解密鑰SK。
[0028]2.加密。用加密鑰PKa和PKb加密同一句話,也就是著名的二戰時期的秘文”June6invasion:Normandy”。加密的過程如下,首先將明文消息按照ASCII碼的編碼方式轉換成二進制序列,得到如下的數據(圖1):[0029]0100101001110101 0110111001100101 0010000000110110 00100000011010010110111001110110
[0030]0110000101110011 0110100101101111 0110111000111010 00100000010011100110111101110010
[0031]0110110101100001 0110111001100100 0111100100000000
[0032]圖1明文消息二進制序列
[0033]然后把這些數據按行排列成一個13X16的數字矩陣,根據這個數字矩陣,利用芯片中心的點樣機制作密文芯片上的探針矩陣。具體的方法為,對于數字矩陣上是O的點,從加密鑰中選取O探針點樣到芯片矩陣的對應位置;對于數字矩陣上是I的點,從加密鑰中選取I探針點樣到芯片矩陣的對應位置。為增強對比性,實驗中把兩個密文矩陣放在同一個芯片上,每個矩陣重復3次。
[0034]3.解密。解密時把用加密鑰PKa和PKb加密得到的密文分別和同一個解密鑰SK雜交,當解密鑰中的CDNA樣本退火到芯片上的時候,就能得到理想的雜交結果。圖2是在激光共聚焦顯微鏡下看到的雜交結果,其中亮點(此處呈現自色)也就是雜交信號強度高的點表示1,暗點也就是雜交信號強度低的點表示O。根據雜交圖譜,以Cy3_Signal強度為標準解密。由于數據很多,在此僅列出圖2中第I個探針矩陣的第I行16個點位數據作為示例:(4187,65285,915,1056,65268,1403,65264,1831,1395,65228,65209,65222,2507,65183,2151,65174)。設定解讀標準為信號強度在5000以下的為0,10000以上的為1,中間的數據點拋棄。由此可以把雜交信號轉換成二進制序列,進而根據ASCII碼的編碼規則恢復出明文。從圖2可以看出,分別用兩個不同的加密鑰加密的密文,在解密時和同一個解密鑰雜交,獲得了基本相同的雜交圖譜。
[0035]
[0036]綜上所述,本發明結合了現代基因工程技術和密碼學技術進行設計,DNA-PKC的密鑰由加密鑰和解密鑰組成,加密者之間互相不能解密,只有解密鑰的擁有者才能解密所有密文。DNA-PKC的密鑰與密文均為生物分子實物,在應用協議等方面具有不同的要求。在安全性方面,DNA-PKC能夠對未來的量子計算機的攻擊免疫。
[0037]以上所述,僅是本發明的較佳實施例子。并非對本發明作任何形式上的限制,凡是依據本發明的技術實質對以上實例所作的任何簡單修改、等同變化與裝飾,均仍屬于本發明的范圍內。
【專利附圖】
【附圖說明】
[0038]圖1明文消息二進制序列
[0039]圖2解密結果
【權利要求】
1.一種基于DNA技術的非對稱加密和簽名方法,包括以下步驟: 步驟一:密鑰生成 (1.)準備候選加/解密鑰探針集合。取2個探針集合,一個探針集合作為加密鑰候選,另一個集合是探針混合液,作為候選的解密鑰。加密鑰候選集合中包含多個純化的探針,探針可以從自然界中選取或者是人工合成。解密鑰候選探針集合并不是隨意選取的,而是要和加密鑰有一定關聯的。混合溶液可以來自以往實驗或現場配制,但要保證其中含有足夠數量的候選加密鑰的互補探針或相關的能起雜交反應的探針。 (2.)篩選出加/解密鑰探針集合。每種探針單獨制作一個點,為了質量控制的要求,每個點可以制作多個副本。把候選加密探針芯片與候選解密探針在一個設定的雜交條件下進行雜交。這個雜交條件的設定可以依據以往的經驗值。當芯片上有一定數量的探針信號(如超過20%?30% ),則雜交結果比較理想,可以進行探針挑選工作。否則修改雜交條件重新進行實驗。對于探針雜交結果,可以設定一個特定的探針挑選條件,如雜交信號強度高于某一特定值的探針稱為I探針,雜交信號強度低于某一特定值的探針稱為O探針,其余探針丟棄。由O和I探針組成的集合就是加密鑰集合。也可以只挑選I探針,然后隨機選擇探針作為O探針。 步驟二:加密與解密 (1.)密鑰分發。如果Bob想加入DNA-PKC密碼系統,他隨機選擇他的密鑰對(ek,dk),對dk保密作為解密鑰。加密鑰探針ek的各個份額可以分發給指定的接收者。 (2.)加密。任意一個人,比如Alice,想發送消息給Bob,她可以先得到Bob的加密鑰的一個份額,然后利用這個份額根據明文制作芯片,也就得到了相應的密文。制做芯片的方法是先把明文按照一定的編碼規則轉化成二進制數字串,然后在芯片上對應于O的位置放上O探針,對應于I的位置放上I探針。這樣,她就可以通過公開的途徑把芯片發送給Bob。 (3.)解密。Bob使用他的解密鑰dk和Alice的密文芯片雜交,然后分析雜交信號從而得到明文。 步驟三:簽名與驗證 (1.)密鑰分發。如果Bob想加入DNA-PKC密碼系統,他隨機選擇自己的密鑰對(vk,sk),對sk保密作為簽名鑰。驗證鑰vk被分成多個份額分發到有意的驗證者手中。 (2.)簽名過程。Bob根據要簽名的信息,使用簽名鑰sk制作芯片作為簽名。將待簽名的消息轉換成二進制矩陣,在芯片上對應于O的位置放上O探針,對應于I的位置放上I探針。芯片可以通過公開的途徑發送給指定的接收者。 (3.)簽名驗證。一個指定的接收者如Alice收到來自Bob的簽名芯片后,她可以使用得到的Bob的驗證鑰的一個份額同簽名芯片雜交,然后根據雜交信號恢復出Bob的簽名。
【文檔編號】H04L9/32GK103856329SQ201210510330
【公開日】2014年6月11日 申請日期:2012年12月4日 優先權日:2012年12月4日
【發明者】盧明欣, 來學嘉, 何菊香 申請人:盧明欣, 來學嘉, 何菊香