王夕遠(yuǎn), 殷志祥,2*, 唐 震, 楊 靜, 崔建中, 徐如解
(1. 安徽理工大學(xué) 數(shù)學(xué)與大數(shù)據(jù)學(xué)院, 安徽 淮南 232001;2. 上海工程技術(shù)大學(xué) 數(shù)學(xué)與統(tǒng)計(jì)學(xué)院, 上海 201620; 3. 淮南聯(lián)合大學(xué) 計(jì)算機(jī)系, 安徽 淮南 232001)
近年來由于科技的迅猛發(fā)展,傳統(tǒng)電子計(jì)算機(jī)已經(jīng)難以滿足人們的需求.DNA計(jì)算機(jī)是近些年最有獨(dú)創(chuàng)性和出乎意料的發(fā)現(xiàn)之一,其具有高度的并行性、運(yùn)算速度快、存儲(chǔ)容量大、耗能低和DNA分子資源豐富等優(yōu)點(diǎn).為了制造出DNA計(jì)算機(jī),人們開始對(duì)DNA計(jì)算進(jìn)行研究.DNA計(jì)算的第一個(gè)例子解決了一個(gè)7城市哈密頓路徑問題[1].2000年,Head等[2]提出了使用DNA質(zhì)粒的一種新的計(jì)算方法,列出了潛在的優(yōu)勢(shì).通過報(bào)告計(jì)算圖頂點(diǎn)集最大獨(dú)立子集基數(shù)的NP完備算法題的一個(gè)實(shí)例計(jì)算,說明了新方法的有效性.2003年,殷志祥等[3]提出了在基于表面的DNA計(jì)算采用熒光標(biāo)記策略,解決了簡(jiǎn)單的0-1規(guī)劃問題.2011年,Qian等[4]提出了DNA鏈置換級(jí)聯(lián)的神經(jīng)網(wǎng)絡(luò)計(jì)算.此外,DNA計(jì)算還可以用來構(gòu)建半加器、半減器、全加器、全減器[5-9].2019年,Chao等[10]在DNA折紙上利用DNA單分子導(dǎo)航儀求解迷宮問題.同年,唐震等[11- 12]利用了DNA折紙術(shù)解決了一類特殊的整數(shù)規(guī)劃問題,還提出了在DNA折紙基底上的一種動(dòng)態(tài)的與非門計(jì)算系統(tǒng).
隨著計(jì)算機(jī)技術(shù)的發(fā)展和運(yùn)用,人們通過網(wǎng)絡(luò)進(jìn)行信息傳輸?shù)念l率越來越頻繁.為了防止傳輸?shù)男畔⒈唤孬@破解,人們?cè)絹碓街匾晫?duì)信息的傳輸加密.由于混沌系統(tǒng)具有有界性、遍歷性、偽隨機(jī)性、對(duì)初值條件和控制參數(shù)敏感性等特點(diǎn),人們把混沌系統(tǒng)用于信息加密領(lǐng)域.2010年,王林林[13]提出了基于混沌的密碼算法設(shè)計(jì)與研究.2015年,賈嫣等[14]提出了基于改進(jìn)混沌映射的圖像加密算法,該算法采用的是雅克比橢圓映射對(duì)初始密鑰進(jìn)行迭代產(chǎn)生新的密鑰.2020年,嚴(yán)利民等[15]提出了混沌映射和流密碼結(jié)合的圖像加密算法.2021年,蔡敏等[16]設(shè)計(jì)并實(shí)現(xiàn)了基于混沌時(shí)間序列的圖像加密算法.同年,曾祥秋等[17]提出了基于改進(jìn)的Logistic映射的混沌圖像加密算法.考慮到DNA可以存儲(chǔ)大量信息的特點(diǎn),人們開始將DNA和混沌系統(tǒng)進(jìn)行結(jié)合,并用于信息加密領(lǐng)域.2016年,Wang等[18]提出使用CML和DNA序列操作的彩色圖像加密方案.該方案將圖像的每一個(gè)像素進(jìn)行DNA編碼,并給出了8種相對(duì)應(yīng)的DNA編碼規(guī)則.2017年,孫倩等[19]提出了基于DNA編碼與統(tǒng)計(jì)信息優(yōu)化的圖像加密算法.2020年,朱凱歌等[20]設(shè)計(jì)了基于DNA動(dòng)態(tài)編碼和混沌系統(tǒng)的彩色圖像無損加密算法.
之前,人們所提出的將DNA用于信息加密的算法中,并沒有涉及到DNA計(jì)算中的化學(xué)反應(yīng),只是將數(shù)據(jù)轉(zhuǎn)換成了DNA編碼的形式.本文提出了一種基于聚合酶鏈置換反應(yīng)的2D-LASM混沌映射文本加密算法,成功將DNA計(jì)算中的化學(xué)反應(yīng)結(jié)合到加密過程中,并對(duì)該算法進(jìn)行了密鑰空間分析,表明該算法具有較好的加密效果.
本文的加密算法采用結(jié)構(gòu)簡(jiǎn)單、性能優(yōu)良的二維Logistic-Adjusticed-sine(2D-LASM)映射,其數(shù)學(xué)表達(dá)式如下:
其中,μ∈[0,1],Xn,Yn∈(0,1).這里給定初值,設(shè)X1=0.5,Y1=0.5,為了消除瞬態(tài)效應(yīng)迭代n次,產(chǎn)生兩個(gè)長(zhǎng)度為n的偽隨機(jī)數(shù)組X和Y.
DNA(脫氧核糖核酸)是染色體的主要組成成分,同時(shí)也是主要遺傳物質(zhì).DNA是雙螺旋結(jié)構(gòu),有兩條脫氧核苷酸鏈,一個(gè)脫氧核苷酸分子由三個(gè)分子組成:一分子含氮堿基、一分子脫氧核糖及一分子磷酸.脫氧核苷酸共有4種含氮堿基分別為:A(腺嘌呤)、T(胸腺嘧啶)、G(鳥嘌呤)和C(胞嘧啶).按照Watson-Crick堿基互補(bǔ)配對(duì)原則,A和T互補(bǔ),C和G互補(bǔ).在計(jì)算機(jī)中,信息的存儲(chǔ)是用二進(jìn)制0和1進(jìn)行表示.二進(jìn)制中0和1是互補(bǔ)的,因此00和11,10和01也是互補(bǔ)的.若將A、T、C、G分別用00,01,10,11進(jìn)行表示共有24種,而符合互補(bǔ)原則的只有8種,見表1.
表1 DNA編碼規(guī)則
聚合酶鏈置換反應(yīng)(Polymerase Strand Displacement, PSD)是一種基于聚合酶的鏈置換反應(yīng),其和一般的鏈置換反應(yīng)不同的是該反應(yīng)需要有酶的參與.反應(yīng)原理見圖1,這里的A和A*互補(bǔ),B和B*互補(bǔ),C和C*互補(bǔ),D和D*互補(bǔ).這種反應(yīng)類似于聚合酶鏈?zhǔn)椒磻?yīng)(PCR).首先,引物和部分互補(bǔ)的雙鏈DNA粘性末端按堿基互補(bǔ)配對(duì)原則結(jié)合,即A和A*相結(jié)合;其次,將溫度調(diào)至DNA聚合酶最適反應(yīng)溫度,在DNA聚合酶的作用下,從引物的3′端開始以5′→3′端的方向延伸,合成與模板5′-D-C-B-A-3′互補(bǔ)的DNA鏈,將部分互補(bǔ)的雙鏈DNA中的單鏈5′-C*-D*-3′置換出來.
圖1 聚合酶鏈置換反應(yīng)原理Fig.1 Principle of polymerase strand displacement reaction
(1)將待加密的文本信息進(jìn)行置亂處理,隨后和2D-LASM混沌映射產(chǎn)生的偽隨機(jī)序列進(jìn)行異或操作,之后再根據(jù)產(chǎn)生的隨機(jī)種子選擇相應(yīng)的DNA編碼規(guī)則得到相對(duì)應(yīng)的DNA序列;
(2)將所得到的DNA序列進(jìn)行PSD反應(yīng),得到一組新的DNA序列.根據(jù)隨機(jī)種子選擇相應(yīng)的DNA解碼規(guī)則,得到加密的文本.
本文的加密算法具體框架如圖2所示.
圖2 算法框架Fig.2 Algorithm framework
Step1:輸入一段明文,將其轉(zhuǎn)換為十進(jìn)制的數(shù),長(zhǎng)度為L(zhǎng);
Step2:采用randperm函數(shù)將十進(jìn)制數(shù)進(jìn)行重新排列,并將其轉(zhuǎn)換為二進(jìn)制數(shù),記為A;
Step3:通過二維Logistic-Adjusted-Sine混沌映射迭代1 000+L次,得到兩個(gè)偽隨機(jī)序列X,Y;
Step4:分別取X,Y的后L位,經(jīng)過mod(floor(k*108),256)將其轉(zhuǎn)換到[0,255]之間并進(jìn)行二進(jìn)制處理得到B,C,這里mod表示取余,floor表示向下取整;
Step5:對(duì)Step2中的A和Step4中所得到的B,C進(jìn)行異或操作得到D;
相關(guān)的地方性立法目前還不健全,特別是自然地理環(huán)境特殊的省份,例如西藏自治區(qū)發(fā)展高原農(nóng)業(yè)和河谷農(nóng)業(yè),東北三省有廣袤的東北平原發(fā)展專業(yè)化農(nóng)業(yè),都沒有出臺(tái)相關(guān)文件。“各地可結(jié)合當(dāng)?shù)氐膬?yōu)勢(shì)農(nóng)產(chǎn)品布局,形成各具特色的農(nóng)業(yè)機(jī)械化區(qū)域,進(jìn)一步拓展農(nóng)業(yè)機(jī)械化的服務(wù)和作業(yè)領(lǐng)域,突出綜合性、多樣性、優(yōu)質(zhì)高效性,實(shí)現(xiàn)農(nóng)業(yè)機(jī)械化的跨越式發(fā)展,促進(jìn)農(nóng)業(yè)機(jī)械化與地區(qū)經(jīng)濟(jì)協(xié)調(diào)統(tǒng)一發(fā)展?!盵5]即形成地理單元與行政區(qū)劃緊密連接的農(nóng)業(yè)機(jī)械化發(fā)展格局。伴隨著我國(guó)經(jīng)濟(jì)的發(fā)展和全面深化改革進(jìn)程的加快,農(nóng)業(yè)機(jī)械化立法已經(jīng)明顯滯后于現(xiàn)實(shí)的發(fā)展,制約了農(nóng)業(yè)機(jī)械化在發(fā)展農(nóng)業(yè)現(xiàn)代化中的作用。
Step6:根據(jù)產(chǎn)生的隨機(jī)種子選擇相應(yīng)的DNA編碼規(guī)則對(duì)D進(jìn)行編碼,得到DNA序列E;
Step7:將所得到的DNA序列E按照長(zhǎng)度為m進(jìn)行分割,得到u條DNA序列.再將這u條序列分別進(jìn)行PSD反應(yīng),可以置換出u條新的DNA序列;
Step8:將Step7所得到的u條DNA序列在DNA連接酶的作用下組成一條新的DNA序列F;
Step9:根據(jù)隨機(jī)種子選擇相應(yīng)的DNA解碼規(guī)則對(duì)F進(jìn)行解碼,并將其轉(zhuǎn)換為十進(jìn)制數(shù)G;
Step10:對(duì)G使用char函數(shù)得到相應(yīng)的密文.
解密過程是加密過程的逆過程,這里由于篇幅問題就不再闡述.
該實(shí)例的仿真是在Matlab 2016a仿真軟件上進(jìn)行的,這里所采用的明文為you are a better man;將其轉(zhuǎn)換為十進(jìn)制數(shù)得到[121,111,117,32,97,114,101,32,97,32,98,101,116,116,101,114,32,109,97,110],可知L為20.并將其進(jìn)行重新排列得到[97,101,98,114,110,121,97,109,116,32,32,32,117,32,101,116,111,97,101].隨后轉(zhuǎn)換為二進(jìn)制數(shù)得到A;
通過二維Logistic-Adjusted-Sine混沌映射迭代1 000+20次,得到兩個(gè)偽隨機(jī)序列X,Y;
分別取X,Y的后20位,經(jīng)過mod(floor(k* 108),256)將其轉(zhuǎn)換到[0,255]之間并進(jìn)行二進(jìn)制處理得到B,C,這里mod表示取余,floor表示向下取整;
對(duì)A,B,C進(jìn)行異或操作得到D;這里產(chǎn)生的隨機(jī)種子為2,即選擇第二種DNA編碼規(guī)則進(jìn)行編碼得到DNA序列E: CGACCGTCGTTTCTACAAAGGGAGTAATTCGGCTATACTTTGTTGACGG-GCGAAGCCTAGCCCTGTGACTCCTTCCCCAT長(zhǎng)度為80 nt;對(duì)DNA序列E按照長(zhǎng)度為16 nt進(jìn)行分割,可得到5條DNA序列,見圖3.
圖3 DNA序列E的分割Fig.3 Segmentation of DNA sequence E
將所得到的5條DNA序列進(jìn)行PSD反應(yīng),具體過程見圖5.為了保證和DNA序列E相對(duì)應(yīng),生成一組隨機(jī)數(shù),根據(jù)上述的方法進(jìn)行DNA編碼得到DNA序列F:CCGCAGTTCATGGACCGCTCGGTTAGACTCGAGATCTTTCATTAAAAGATTCCGACG-CCACCTCGGTGTTTGGCGTACCT長(zhǎng)度為80 nt;對(duì)F按照16 nt進(jìn)行分割得到5條DNA序列,見圖4.
圖4 DNA序列F的分割Fig.4 Segmentation of DNA sequence F
經(jīng)過PSD反應(yīng)之后得到5條長(zhǎng)度為16 nt的DNA單鏈,將這5條單鏈按照m1-m2-m3-m4-m5的順序進(jìn)行合并得到F.這樣通過PSD反應(yīng)將文本信息轉(zhuǎn)換的DNA序列E成功變成了DNA序列F;接下來根據(jù)隨機(jī)種子選取相對(duì)應(yīng)的DNA解碼規(guī)則將其轉(zhuǎn)換為二進(jìn)制數(shù)G,將G轉(zhuǎn)換成十進(jìn)制數(shù)H,之后得到密文“|Jn_N<>h?]g+”.
通過以上步驟成功將明文you are a better man轉(zhuǎn)換為|□Jn_N<>□h?]g+.需要注意的是這里的DNA序列F是根據(jù)產(chǎn)生的隨機(jī)數(shù)進(jìn)行DNA編碼的,產(chǎn)生的隨機(jī)數(shù)不同這里的F就不同,最終得到的密文也就有所不同.
若想對(duì)密文進(jìn)行解密需要知道明文所對(duì)應(yīng)的DNA序列E和所產(chǎn)生的隨機(jī)種子,但由于DNA序列F是由產(chǎn)生的隨機(jī)數(shù)所得到的,再加上PSD反應(yīng)是不可逆的,因此,得到DNA序列E就顯得很困難,此外還需要知道明文信息轉(zhuǎn)換為十進(jìn)制之后是如何進(jìn)行重新排列的.本文將經(jīng)過PSD反應(yīng)(圖5)所置換出來的DNA單鏈設(shè)置為16 nt,由于DNA具有4種含氮堿基,因此,每條DNA單鏈共有416種可能性.由于滿足互補(bǔ)條件的DNA編碼規(guī)則共有8種,因此,相對(duì)應(yīng)的DNA解碼規(guī)則也有8種.對(duì)明文信息轉(zhuǎn)換成十進(jìn)制的數(shù)進(jìn)行重新排列共有20!種,因此,該算法的密鑰空間為(20!)*8*8*416*416*416*416≈2184遠(yuǎn)大于2100,這說明該算法可以抵抗窮舉攻擊,安全性能高.
圖5 PSD反應(yīng)Fig.5 Polymerase stand displacement reation
本文提出了一種基于聚合酶鏈置換反應(yīng)的2D-LASM混沌映射文本加密算法,克服了之前DNA加密算法中沒有涉及到DNA計(jì)算加入化學(xué)反應(yīng)這一缺點(diǎn).加入化學(xué)反應(yīng)之后,算法的密鑰空間有了很大的改善.同時(shí),這一算法還為圖像加密提供了思路.如何將DNA計(jì)算中的化學(xué)反應(yīng)用于圖像加密,這是以后需要解決的問題.