專利名稱:一種基于虛擬基因組的密碼系統(tǒng)(vgc)的制作方法
一種基于虛擬基因組的密碼系統(tǒng)(VGC)技術(shù)領(lǐng)域
本發(fā)明屬于信息安全領(lǐng)域,特別是涉及一種基于虛擬基因組的密碼系統(tǒng)。
技術(shù)背景
密碼系統(tǒng)是信息安全的核心。傳統(tǒng)的密碼系統(tǒng)基本都是依賴于數(shù)學(xué)的密碼系 統(tǒng),也就是說它們只具有數(shù)學(xué)計算上的安全性。目前僅有所謂的一次一密的密碼系統(tǒng)具 有理論上不可破譯的安全性。但是,一次一密的密碼系統(tǒng)由于存在密匙管理和分配問 題,因此實際上難以應(yīng)用?,F(xiàn)在密碼學(xué)家們正在探索新的密碼系統(tǒng),比如量子密碼和 DNA密碼。
由于DNA具有超大規(guī)模并行性、超低的能量消耗和超高密度的存儲容量,DNA 現(xiàn)已被用于計算、數(shù)據(jù)儲存以及密碼學(xué)等領(lǐng)域。DNA密碼在理論和實踐上都遠(yuǎn)沒有成 熟,有效的DNA密碼系統(tǒng)并不多。目前,DNA密碼系統(tǒng)并不特別重視編碼方法,往往采 用G、A、T、C四個堿基字母編碼二進(jìn)制信息或者以3個堿基字母編碼1個英文字母、數(shù) 字或標(biāo)點等其它信息,這使得這種編碼方式本身極容易被破解。DNA密碼系統(tǒng)的安全性 自然也就不在于這種編碼方式,而在于DNA操作本身的生物學(xué)困難問題。比如Celland等 發(fā)明了一種DNA微點技術(shù)。Gehani等設(shè)計了一個基于DNA的一次一密密碼系統(tǒng)方案, 該方案雖然理論上是不可破譯的,但也存在明顯的缺陷構(gòu)建這樣一個一次一密亂碼本 DNA不僅成本巨大,加密和解密費時費力,而且DNA操作容易污染,從而造成這種方案 實際上不可用。
事實上,現(xiàn)行的基于DNA的密碼系統(tǒng)都是直接把信息“寫入” DNA分子,使得 這種編碼方式非常脆弱,而生物學(xué)操作都要經(jīng)過DNA的合成、提取、克隆、PCR擴(kuò)增、 DNA測序、分子雜交等復(fù)雜過程,需要昂貴的實驗儀器,同時還費時費力,此外還存在 DNA污染、PCR和測序有一定的出錯幾率、沒有正對照(比如預(yù)先不知攜帶消息的DNA 分子的序列和片段大小)等問題。DNA密碼系統(tǒng)所傳遞的DNA分子只能依賴物理運輸 方式傳送,不能通過電線、光纖和無線信道傳輸,因而不能用于實時通信,只能用于在 對實時性要求不高的大規(guī)模并行數(shù)據(jù)加密、安全數(shù)據(jù)存儲,以及身份認(rèn)證、數(shù)字簽名和 信息隱藏等密碼學(xué)應(yīng)用領(lǐng)域。發(fā)明內(nèi)容
本發(fā)明的目的是要建立一種基于虛擬基因組的新型密碼系統(tǒng),該系統(tǒng)利用了生 物信息學(xué)的BLAST (Basic Local Alignment Search Tool)算法,避免了直接對DNA分子的生物學(xué)操作,不僅可以達(dá)到“一次一密”這樣的理論上不可破譯的安全性,又可以在電 子和網(wǎng)絡(luò)媒體上實時快速地進(jìn)行通信,同樣也可以用于數(shù)字簽名與認(rèn)證。
為了達(dá)到本發(fā)明的目的,“基于虛擬基因組的密碼系統(tǒng)”采取如下步驟和方法 (圖 1)
(1)首先,產(chǎn)生大量隨機(jī)DNA序列,并隨機(jī)編號或命名(每個隨機(jī)DNA序列編號或命名為一個虛擬基因),每個虛擬基因采用FASTA格式,所有這些虛擬基因組成 “虛擬基因組”,生成“虛擬基因組數(shù)據(jù)庫”(Virtual Genome Database,VGDB)。也可 根據(jù)需要,方便地將“虛擬基因組數(shù)據(jù)庫”轉(zhuǎn)換成“虛擬蛋白質(zhì)數(shù)據(jù)庫”(Virtual Protein Database, VPDB)。
( 然后,將“虛擬基因組數(shù)據(jù)庫”中的所有虛擬基因隨機(jī)分配在一個2維 陣列表上,得到一個虛擬基因分布位置表,該表即為“虛擬基因芯片”(VirtualDNA Microarray Chip, VDMC)。
(3)信息發(fā)送方可在“虛擬基因芯片”(VDMC)上“書寫”任何所要傳遞的 秘密信息,這種“書寫”就是在擁有巨大點陣的VDMC上挑選用于組成秘密信息的“占”
(4)由于VDMC上的每個點對應(yīng)于“虛擬基因組數(shù)據(jù)庫”(VGDB)中的一個虛 擬基因,因此在VDMC上挑選組成秘密信息的點,對應(yīng)地就是找出了 VGDB中的虛擬基 因。
(5)然后,從每個找出的虛擬基因中隨機(jī)地挑選一個DNA序列小片段,利用 本地BLAST程序?qū)GDB進(jìn)行相似性搜索,確認(rèn)隨機(jī)挑選的這個小片段DNA序列在 VGDB中是唯一的。也就是說,該小片段DNA序列與所挑選的虛擬基因是一一對應(yīng)的, 在其它的虛擬基因中沒有相同的DNA序列存在。
(6)將所有這些隨機(jī)挑選出來的DNA序列不分先后順序地隨機(jī)組合起來(每個 小片段DNA序列用逗號或其它間隔方式如空格、分號等等區(qū)隔開來)就成了密文信息。
(7)信息接收方收到密文后,將以逗號等方式區(qū)隔開來的各小片段DNA序列對 VGDB進(jìn)行BLAST,找出各自對應(yīng)的虛擬基因,再在VDMC上把這些虛擬基因標(biāo)記出 來,秘密信息自然就顯現(xiàn)出來了。
為了增強(qiáng)保密性能,可以采取如下兩種方法
(1)在密文中隨機(jī)插入非VGDB數(shù)據(jù)庫的隨機(jī)DNA序列。由于密文中的非 VGDB數(shù)據(jù)庫的隨機(jī)DNA序列經(jīng)BLAST分析不會得到任何結(jié)果,因此它們不會影響解 密結(jié)果。這種可隨意性的插入冗余DNA序列的特性,使得本密碼系統(tǒng)具有無限的密匙空 間。
(2)密匙可以自我更新,VGC密碼系統(tǒng)成為一次一密的密碼系統(tǒng)。比如,隨機(jī) 選擇的小片段DNA序列處于某個虛擬基因的第i個位置,而該虛擬基因在VDMC上處于 第m行、第η列。那么,經(jīng)過加密或解密之后,隨機(jī)小片段序列從虛擬基因的第i位置 刪除并重新插入到第(i+j)個位置,重排后的虛擬基因從VDMC上的第m行、第η列位置 上刪除并重新插入到第(m+a)行、第(n+b)列位置上。j,a, b的數(shù)值發(fā)送方和接收方 可以自由地約定。因此,每次加密和解密過程完成之后,密匙就自動更新一次。這樣, VGC密碼系統(tǒng)就成了一次一密的密碼系統(tǒng)。
本發(fā)明具有如下顯著的特點
1,本密碼系統(tǒng)的密匙包括VGDB和VDMC兩個相互匹配的密匙。VGDB是 一個巨大的隨機(jī)DNA序列即虛擬基因組數(shù)據(jù)庫,具有巨大的密匙空間;VDMC是一個 VGDB中虛擬基因隨機(jī)分布2維陣列表。
2,密匙完全隨機(jī),密文也完全隨機(jī)。
3,本密碼系統(tǒng)的算法非常簡單,采用DNA序列的相似性搜索程序BLAST。也 可以采用其它字符串搜索算法,比如Knuth-Morris-Pratt(KMP)算法。
4,密文可以隨意插入非VGDB數(shù)據(jù)庫的隨機(jī)DNA序列。此外,由于虛擬基因 可由多個小片段DNA序列所“代表”,而密文中也可隨機(jī)插入冗余DNA序列,因而同 樣的明文使用同樣的密匙加密,得到完全不同的密文。明文與密文之間不存在一一對應(yīng) 的關(guān)系,因而通過明文或者密文,甚至明文與密文對無法對本密碼系統(tǒng)造成有效攻擊。
5,密匙可以自我更新,成為一次一密的密碼系統(tǒng)。發(fā)送與接收方共享一次密匙 后,可通過不斷的密匙更新,得到一個全新的密匙,可完美解決對稱密碼系統(tǒng)密匙的第 一次共享問題。也就是說,密匙的第一次共享不一定要通過秘密渠道。
6,由于信息加密過程經(jīng)過VGMC的“書寫”,明文信息可以在VGMC上以任 何形式進(jìn)行書寫,包括圖像形式、將明文信息編碼成其它密碼形式(圖2)、手書形式等 等。因此本密碼系統(tǒng)可輕松實現(xiàn)信息的二次編碼。
7,本密碼系統(tǒng)不僅適合于絕密的秘密通信,還可用于數(shù)字簽名與認(rèn)證。由第6 個特征可知,本密碼系統(tǒng)可以實現(xiàn)真正的“手寫式”數(shù)字簽名與認(rèn)證。由于本系統(tǒng)一次 一密的特點,數(shù)字簽名將完全無法偽造。
圖1是“基于虛擬基因組的密碼系統(tǒng)”(VGC)的示意圖。以加密和解密一個 字母“T”為例。(1)是由隨機(jī)DNA序列組成的虛擬基因組數(shù)據(jù)庫(VGDB) ; (2)是與 VGDB相匹配的虛擬基因芯片(VDMC),是一個VGDB中的虛擬基因在2維點陣中隨機(jī) 分布的位置表;(3)在VDMC上“書寫” 一個字母“T”,挑選組成字母“T”的點; (4)找出(3)中各點在VGDB中對應(yīng)的虛擬基因;(5)從每個找出的虛擬基因中隨機(jī)地挑 選一個DNA序列小片段,利用本地BLAST程序?qū)GDB進(jìn)行相似性搜索,確認(rèn)隨機(jī)挑 選的這個小片段DNA序列是在VGDB中是唯一的;(6)將所有這些隨機(jī)挑選出來的DNA 序列不分先后順序地隨機(jī)組合起來(每個小片段DNA序列用逗號或其它間隔方式如空 格、分號等等區(qū)隔開來)就成了密文信息。解密的過程是將以逗號等方式區(qū)隔開來的各 小片段DNA序列對VGDB進(jìn)行BLAST,找出各自對應(yīng)的虛擬基因,再在VDMC上把這 些虛擬基因標(biāo)記出來,加密的字母“T”就顯現(xiàn)出來了。
圖2說明“基于虛擬基因組的密碼系統(tǒng)”(VGC)和秘密傳送任何信息。A,B 和C分別表示VGC可以傳送二進(jìn)制編碼、Braille盲文和莫爾斯代碼傳遞“SOS”信息。 VGC可以傳遞任何加密信息,也就是說,可以用VGC傳遞傳統(tǒng)密碼系統(tǒng)的密文;D表示 VGC可以傳遞圖像信息。
具體實施方式
實施例1建立VGC密碼系統(tǒng),并發(fā)送與接收一個字母“T”(圖1)
(1)首先,隨機(jī)產(chǎn)生大量(幾千幾萬,甚至幾百萬上千萬)幾kb甚至更長的DNA 序列,并隨機(jī)編號或命名(每個隨機(jī)DNA序列編號或命名為一個虛擬基因),每個虛擬 基因采用FASTA格式,所有這些虛擬基因組成“虛擬基因組”,生成“虛擬基因組數(shù)據(jù) 庫”(VirtualGenome Database,VGDB)。
( 然后,將“虛擬基因組數(shù)據(jù)庫”中的所有虛擬基因隨機(jī)分配在一個2維 陣列表上,得到一個虛擬基因分布位置表,該表即為“虛擬基因芯片”(VirtualDNA Microarray Chip, VDMC)。
(3)在“虛擬基因芯片”(VDMC)上書寫字母“T”,即在VDMC上挑選用于 組成字母“T”的“點”。
(4)找出這些點應(yīng)于“虛擬基因組數(shù)據(jù)庫”(VGDB)中的虛擬基因,即B2, C2, D2, C3 禾PC4.
(5)然后,從每個找出的虛擬基因中隨機(jī)地挑選一個DNA序列小片段從B2 虛擬基因找出“CGACGTGCG”,從C2虛擬基因找出“ACTCGGC”,從D2虛擬基 因找出“GCCGCGGGA”,從C3虛擬基因找出“GGAGCCAT”,從C4虛擬基因找出 “CATGCCTCG”。利用本地BLAST程序?qū)GDB進(jìn)行相似性搜索,確認(rèn)隨機(jī)挑選的這個小片段DNA序列在VGDB中是唯一的。也就是說,該小片段DNA序列與所挑選的 虛擬基因是一一對應(yīng)的,在其它的虛擬基因中沒有相同的DNA序列存在。
(6)將所有這些隨機(jī)挑選出來的DNA序列不分先后順序地隨機(jī)組合起來(每 個小片段DNA序列用逗號開來)就成了密文信息“CGACGTGCG,ACTCGGC, GCCGCGGGA, GGAGCCAT, CATGCCTCG”
(7)信息接收方收到密文后,將密文“CGACGTGCG,ACTCGGC, GCCGCGGGA, GGAGCCAT, CATGCCTCG” 中各小片段 DNA 序列對 VGDB 進(jìn)行 BLAST,找出各自對應(yīng)的虛擬基因,B2,C2,D2,C3和C4,再在VDMC上把這些虛 擬基因標(biāo)記出來,字母“T”自然就顯現(xiàn)出來了。
實施例2數(shù)字簽名
VGC系統(tǒng)用于數(shù)字簽名具有特殊的簽名方法。由于VGC系統(tǒng)使用的是圖像識 別式的信息輸入輸出,也即在VDMC上“書寫”與還原信息,因此,VGC傳送的信息本 身就是非常個性化的。VGC數(shù)字簽名可以真正做到手寫式真跡簽名。還可以在VDMC 特殊位置上做一些特殊的標(biāo)記,從而使得密文完全無法偽造。
權(quán)利要求
1.一種基于虛擬基因組的密碼系統(tǒng)(VGC),其特征在于按如下步驟和方法進(jìn)行(1)產(chǎn)生大量隨機(jī)DNA序列,并隨機(jī)編號或命名(每個隨機(jī)DNA序列編號或命名 為一個虛擬基因),每個虛擬基因采用FASTA格式,所有這些虛擬基因組成“虛擬基因 組”,生成“虛擬基因組數(shù)據(jù)庫”(Virtual Genome Database,VGDB)。(2)將VGDB中的所有虛擬基因隨機(jī)分配在一個2維陣列表上,得到一個虛擬基因分 布位置表,該表即為“虛擬基因芯片”(Virtual DNAMicroarray Chip,VDMC)。(3)信息發(fā)送方可在VDMC上“書寫”任何所要傳遞的秘密信息,也就是在擁有巨 大點陣的VDMC上挑選用于組成秘密信息的“點”。(4)由于VDMC上的每個點對應(yīng)于VGDB中的一個虛擬基因,因此在VDMC上挑選 組成秘密信息的點,對應(yīng)地就是找出VGDB中的虛擬基因。(5)從每個找出的虛擬基因中隨機(jī)地挑選一個DNA序列小片段,利用本地BLAST程 序?qū)GDB進(jìn)行相似性搜索,確認(rèn)隨機(jī)挑選的這個小片段DNA序列在VGDB中是唯一 的。也就是說,該小片段DNA序列與所挑選的虛擬基因是一一對應(yīng)的,在其它的虛擬基 因中沒有相同的DNA序列存在。(6)將所有這些隨機(jī)挑選出來的DNA序列不分先后順序地隨機(jī)組合起來(每個小片 段DNA序列用逗號或其它間隔方式如空格、分號等等區(qū)隔開來)就成了密文信息。(7)信息接收方收到密文后,將以逗號等方式區(qū)隔開來的各小片段DNA序列對 VGDB進(jìn)行BLAST分析,找出各自對應(yīng)的虛擬基因,再在VDMC上把這些虛擬基因標(biāo)記 出來,秘密信息就顯現(xiàn)出來了。
2.根據(jù)權(quán)利要求1所述的基于虛擬基因組的密碼系統(tǒng)(VGC),其特征在于其密匙是 由虛擬基因組數(shù)據(jù)庫(VGDB)和虛擬基因芯片(VDMC)共同組成的。
3.根據(jù)權(quán)利要求1所述的VGC密碼系統(tǒng),其特征在于所述的VGDB中每個虛擬基因 都是隨機(jī)產(chǎn)生的DNA序列。虛擬基因的編號或命名是隨機(jī)的或無規(guī)律的。
4.根據(jù)權(quán)利要求1所述的VGC密碼系統(tǒng),其特征在于所述的VGDB可轉(zhuǎn)換為虛擬蛋 白質(zhì)數(shù)據(jù)庫(Virtual Protein Database, VPDB)。
5.根據(jù)權(quán)利要求1所述的基于虛擬基因組的密碼系統(tǒng),其特征在于所述的“虛擬基因 芯片”(VDMC)是一個2維陣列表,表中的每個點對應(yīng)于VGDB中的一個虛擬基因。
6.根據(jù)權(quán)利要求1所述的VGC密碼系統(tǒng),其特征在于所述的秘密信息在VDMC上的 “書寫”指的是在VDMC上挑選用于組成秘密信息的“點”,也就是找出與各點對應(yīng)的虛擬基因。
7.根據(jù)權(quán)利要求1所述的VGC密碼系統(tǒng),其特征在于所述的從虛擬基因中隨機(jī)地 挑選一個DNA序列小片段指的是在虛擬基因DNA序列中的任意位置隨機(jī)地截取一小段 DNA序列(為了精簡起見,一般取5-10bp左右大小)。
8.根據(jù)權(quán)利要求1所述的VGC密碼系統(tǒng),其特征在于所述的BLAST算法指的是生 物信息學(xué)中的相似性搜索算法,可從NCBI網(wǎng)站下載并進(jìn)行本地化安裝,按說明對VGDB 進(jìn)行格式化處理。BLAST算法有很多種,對VGDB進(jìn)行BLAST采用BLASTn算法,對 VPDB則采用BLASTx算法。本加密方法中BLAST的目的是要確認(rèn)小片段DNA序列的 唯一性。
9.根據(jù)權(quán)利要求1所述的VGC密碼系統(tǒng),其特征在于所述的BLAST算法也可以用其它字符串搜索算法如Knuth-Morris-Pratt (KMP)算法代替。如使用KMP等字符串搜索算 法,DNA隨機(jī)序列則可用任意字符串序列替代。
10.根據(jù)權(quán)利要求1所述的VGC密碼系統(tǒng),其特征在于所述的密文是經(jīng)權(quán)利要求6和 7所選定所有小片段DNA序列不分先后順序組合而成的,各小片段DNA序列之間可用逗 號、空格、分號、回車等任意與DNA四個堿基字母不同的字符區(qū)隔開來。
11.根據(jù)權(quán)利要求1所述的VGC密碼系統(tǒng),其特征在于為了增強(qiáng)保密性能,密文中可 隨意插入非VGDB序列片段,以BLAST分析或其它字符串搜索算法如KMP確認(rèn)其不存 在于VGDB中。
12.根據(jù)權(quán)利要求1所述的VGC密碼系統(tǒng),其特征在于其密匙可以自我更新。比如, 隨機(jī)選擇的小片段DNA序列處于某個虛擬基因的第i個位置,而該虛擬基因在VDMC上 處于第m行、第η列。那么,經(jīng)過加密或解密之后,隨機(jī)小片段序列從虛擬基因的第i 位置刪除并重新插入到第(i+j)個位置,重排后的虛擬基因從VDMC上的第m行、第η列 位置上刪除并重新插入到第(m+a)行、第(n+b)列位置上。j,a, b的數(shù)值發(fā)送方和接 收方可以自由地約定。因此,每次加密和解密過程完成之后,密匙就自動更新一次。這 樣,VGC密碼系統(tǒng)就成了一次一密的密碼系統(tǒng)。
全文摘要
本發(fā)明涉及一種信息安全技術(shù),尤其是一種基于虛擬基因組的密碼系統(tǒng)。本密碼系統(tǒng)有兩個互相匹配的密匙,一個是由隨機(jī)DNA序列組成的虛擬基因組數(shù)據(jù)庫(VGDB),另一個是VGDB中虛擬基因在2維微陣列中隨機(jī)分布的位置表,即虛擬基因芯片(VDMC)。任意明文信息可自由地在VDMC上“書寫”,也就是在VDMC微陣列上選擇組成明文信息的“點”。這些挑選出來的“點”對應(yīng)著VGDB中的虛擬基因,在這些虛擬基因中隨機(jī)挑選一個小片段DNA序列,并用生物信息學(xué)常用工具BLAST或其它字符串搜索算法如KMP算法確認(rèn)其在VGDB中唯一性。密文就是由這些小片段DNA序列組合而成。解密過程只需用這些小片段DNA序列對VGDB進(jìn)行BLAST,即可找出組成明文信息的“點”,根據(jù)VDMC即可恢復(fù)出明文信息。密文中可以隨意插入任意非VGDB序列而對解密沒有任何影響,因而VGC是一個很好的信息隱藏系統(tǒng)。此外,VGC密匙可自我更新,從而實現(xiàn)不可破譯的一次一密系統(tǒng)。本發(fā)明不僅可用于實時快速的秘密信息通信,也可用于數(shù)字簽名與身份認(rèn)證。
文檔編號G06N3/12GK102025482SQ200910192218
公開日2011年4月20日 申請日期2009年9月10日 優(yōu)先權(quán)日2009年9月10日
發(fā)明者張明永, 曾紀(jì)晴 申請人:中國科學(xué)院華南植物園