基于DNA 技术的对称加密方法摘要 DNA 密码是伴随DNA 计算的研究而出现的密码学前沿领域。
文中结合现代基因工程技术和密码学技术设计了一个对称加密系统—DNASC 。
在DNASC 中,加密钥和解密钥是DNA 探针,密文是特殊设计的DNA 芯片。
系统的安全性主要基于生物学困难问题而不是传统的计算问题,因而对未来的量子计算机的攻击免疫。
加密过程是制作特殊设计的DNA 芯片(微阵列),解密过程是进行芯片杂交。
在DNASC 中,数以万亿计的DNA 探针被方便地同时进行杂交并识别出来,从一定程度上体现了DNA 在超大规模并行计算和超高容量数据存储方面的巨大潜力。
关键词 对称加密 DNA 密码 DNA 计算近几年来,DNA 所固有的超大规模并行性、超低的能量消耗和超高密度的存储容量被开发出来用于计算、数据储存以及密码学等领域。
DNA 密码就是在这样的背景下诞生的。
类似于量子密码,DNA 密码是传统密码系统的潜在替代与补充,但二者在实现技术上大不相同。
DNA 密码系统的安全性不依赖于计算困难问题,因此不管未来的DNA 计算机和量子计算机的计算能力有多么强大,DNA 密码对这些计算机的攻击都是免疫的。
并且,同量子密码相比,DNA 密码更适用于安全的数据存储。
新生的DNA 密码在理论和实现上都远未成熟,有效的DNA 密码系统鲜见。
这主要是因为下述原因:首先,当前的DNA 技术主要处于试验阶段,缺乏可用于DNA 密码中的成熟理论。
其次,DNA 密码涉及交叉学科,相关研究需要密码学家和生物学家的通力合作,而这两个领域在以往的研究中关联很少。
另外,相关的核心技术如(PCR)技术和DNA 芯片技术以及自动测序技术都是近年来才走向成熟[1]。
密码学家要完全理解这些技术,需要一定的时间。
文中提出如下几点:首先,阻碍生物学发展的生物学困难问题在密码学中会有不同的用途,有可能用来构建新型的密码系统。
本文提出了一个生物学困难问题,并根据当前的生物技术发展水平,对这个困难问题的难度进行了探讨。
基于这个困难问题,提出了一个非确定性的对称加密系统—DNASC 。
DNASC 的安全性主要依赖于文中提出的生物学困难问题,对于量子计算机等超级计算机的攻击是免疫的[2]。
其次,DNASC 的加密是非确定性的,在一定程度上类似于一次一密,其随机化的过程是基于DNA 计算的超大规模并行性。
虽然DNA 计算具有超大规模并行计算的潜力,但是在实际应用中很难得到体现。
在DNASC 的解密过程中,数以万亿计的DNA 探针被方便地同时进行杂交并识别出来,在一定程度上体现了DNA 在并行计算和超大规模数据存储方面的巨大潜力。
第三,已有的DNA 密码系统多需要利用核苷酸直接编码,因而难以实现。
本文中利用DNA 芯片(微阵列)技术,提出了新的数据存储技术、新的编码技术以及新的数据读取技术,因此,在加密阶段不再需要合成DNA 序列,在解密阶段也不再需要对DNA 序列进行测序,这使得DNASC 更容易实现[3]。
本文的目的并不是要提出一个马上就可以替代DES 等加密系统的实用密码系统,而是展示DNA 在密码学的应用中有巨大的发展潜力。
未来,DNA 密码有可能发展成为密码学的重要组成部分。
1生物学困难问题传统密码学基于NP 问题之类的各种数学困难问题。
量子密码基于测不准定理,测不准定理也可以认为是量子状态测定的困难问题。
所以,DNA 密码应该基于生物学困难问题。
然而,现代生物学主要还是基于实验的,并不像数学那样有大量精确的公式和完善的定理[4]。
虽然在研究中发现了众多的生物学困难问题,并且其中很多问题可能比密码学中常用的大整数分解问题等还要难以解决,但是,大多数生物学困难问题并不适用于实现密码系统,而且,要找到一个适合于构建密码系统的生物学困难问题并不容易。
人们对计算复杂性问题已经有了相当深入的研究,而对生物学困难问题的难度还没有系统的研究过。
我们提出了下面一个生物学困难问题,论证了其难度,并利用这个生物学困难问题开发了一个密码系统。
这个生物学困难问题的部分内容也是文献[5]中DNA 信息隐藏方法的安全性依据。
我们认为,“对DNA 芯片(微阵列)上仅核苷酸排列不同的未知混合DNA(PNA)探针的信息进行完全精确测序破译是困难的”,这意味着攻击者不仅要知道芯片上每个点中DNA 探针的种类,而且要知道每一种探针的准确数量,这样的芯片在DNASC 中称为加密芯片或者密文。
相关的解释如下:首先,让我们看一下当前的DNA 测序技术和DNA 克隆技术。
现在有两种主要的测序方法:Maxam-Gilbert 方法(也称为化学降解法)和Sanger 的方法(也称为酶法)。
这两种方法都不适用于对DNA 芯片上微量的未知混合序列进行测序[6]。
Maxam-Gilbert 方法需要相对较多的DNA 样本,不能用于对芯片上微量的DNA 分子进行有效测序。
Sanger 的方法要把引物退火到DNA 模板上来完成测序反应。
如果对待测序的DNA 模板完全未知,最关键的用于测序的引物就无法合成,因此Sanger 的方法不能直接用于对DNA 芯片上的探针进行测序。
有人也许会提出可以先把探针克隆以后再用Maxam-Gilbert 方法进行测序。
然而,这个方法也难以奏效。
在原位合成法制作的芯片中,通常只有不到100万个探针,而在cDNA 微阵列中,通常只有0.10.3ng 的DNA 。
DNA 克隆技术需要的DNA 数量远多于芯片上的DNA 数量,所以难以进行有效的克隆,而且特殊的探针并不能用于克隆[7]。
例如,类似于DNA 分子的肽核酸(PNA)探针已经开始代替DNA 探针用于制作微阵列。
肽核酸(PNA)是DNA 分子的类似物,其特点是DNA 分子的戊糖链骨架被PNA 的N(2-氨基乙基)-甘氨酸代替。
PNA 分子可以作为DNA 分子的替代物在基因芯片等领域使用,但是不能被传统的DNA 克隆技术克隆。
当前,几乎所有的DNA 测序技术,包括最精确的质谱测序技术(MS),都基于Sanger 的方法。
虽然近年来也提出了其他的方法作为Sanger 方法的替代,包括用酶消化核酸片段的MS 方法,用DNA 微阵列测序的方法等等,这些方法仍然处于发展阶段并且都具有自身的弱点。
质谱方法测序的基本原理要求对目的DNA 分子质量的准确测定,从而对DNA 样品的纯度要求极高,而实际应用效果并没有报道的那么理想[8]。
DNA 微阵列方法缺乏成熟的理论并且也有很多技术瓶颈。
其次,相对于DNA 测序技术中遇到的困难而言,制作更难以测序的特殊加密芯片是容易的。
例如,可以在密码系统中使用仅仅是核苷酸排列顺序不同的微量混合探针,现有的测序方法都无法对这种探针进行有效的测序,这是因为所有已知的测序方法都要求对DNA 分子进行纯化与扩展。
如果对这种混合探针预先进行纯化再测序,也是难以实现的,这是因为对这种混合探针的纯化非常困难[9]。
Khodor 和Gifford 指出,对未知的仅核苷酸排列顺序不同的混合探针,即使是40mer 的短序列,如果没有和目标探针同源的探针,利用先进的磁珠法来进行纯化,在理想条件下所能纯化出探针的上限值是1%。
并且,在使用混合探针的情形下,DNA 芯片上的一个点表示0还是表示1,将不仅取决于这个点上的探针的种类,而且要取决于各种探针的比例。
表示0的点和表示1的点可以具有相同的探针种类,所不同的只是各种探针的比例。
在这种情形下,攻击者要想通过测序的方法破译本系统,他不仅要知道芯片上所有探针的种类,还要知道每种探针的准确数量。
对混合探针测序已经如此困难了,要想精确测定混合探针中每种探针的数量,恐怕很多年以内都是难以实现的。
最后,我们认为这个困难问题将持续很多年。
一个原因是现有的生物学技术要解决这个问题还有非常远的距离。
另外一个原因是生物技术的发展,也使得人们更容易制造更难以测序的芯片。
例如,随着纳米技术的进步,人们正在尝试利用原子力显微技术(AFM)在DNA 芯片的每个点上仅放置单个DNA 分子[10]。
2加密流程现在,我们具体描述DNADSE 。
这个系统的安全性主要依赖于第1节描述的生物学困难问题。
首先扩展密码系统的定义如下:假设发送者为Alice ,她拥有加密钥KA 。
指定的接收者为Bob ,他拥有解密钥KB (KA =KB 或者KA ≠KB )。
Alice 使用KA 通过一个变换E 把明文P 装换成密文C 。
除非拥有KB ,从C 得到P 是困难的。
我们称变换E 为加密过程,C 是密文。
Bob 收到密文C 后,利用解密钥KB 和密文C 进行一个变换D 得到明文P 。
这里,KA 和KB 以及C 并不限于数字,还可以是量子或者DNA 等任意的材料、方法等等。
E 和D 也不仅仅限于数学计算,而可以是任意的物理、化学、生物等过程[11]。
系统的总体步骤如下:步骤A 密钥生成。
加密钥是一个特定探针的集合,解密钥是一个对应的互补探针的集合。
杂交条件也可以作为解密钥的组成部分。
发送者Alice 从已有的实验中挑选探针作为加密钥。
解密钥通过安全的途径传送给指定的接收者Bob 。
步骤B 加密。
Alice 首先把明文转换成二进制矩阵,然后根据这个矩阵用加密钥制作DNA 芯片。
在没有解密钥的情况下,从芯片上读出明文是困难的,这类似于量子密码。
量子密码是由于测不准原理难以测定量子状态,而在DNASC 中是由于DNA 技术的局限性无法读取芯片上的特殊探针。
在DNASC 的加密步骤中引入了随机化的过程,这使得加密过程在一定程度上类似于一次一密[12]。
步骤C 解密。
Bob 使用解密钥和DNA 芯片(密文)杂交从而得到杂交信号,这是一个生物过程而非数学计算。
然后Bob 利用电子计算机进行一个信号处理过程得到明文。
下面借助一个例子详细解释这个系统的细节:步骤1 密钥生成。
首先,我们要做一个DNA 杂交实验或者从一个已知的实验中挑选探针作为密钥(这个实验应该保密)。
这里,我们使用一个已知的实验,这个实验并不是为了加密而设计的,我们只是利用这个实验演示一下加密系统。
在实际中,应该如本文所述重新设计实验以获得更高的安全性。
下面,我们将介绍这个已知的实验。
在这个实验里,基因芯片的基因表达数据反映了酵母从无氧呼吸(发酵)到有氧呼吸的代谢转变的过程中基因转录谱的变化。
代表已知的所有酵母基因的6400个cDNA 探针被事先点样在基因芯片上,而从上述两种代谢条件下的酵母体内提取的RNA 则用不同的荧光探针标记作为被检测探针和该芯片上的探针杂交,杂交的结果可以用来分析整个基因组的基因转录水平的变化。
具体地说就是从接种9小时后的酵母细胞(发酵状态)中抽取的RNA 反转录获得的cDNA 探针用绿色荧光分子3Cy 标记,在杂交实验中作为参照系;而从接种后19小时的酵母细胞(有氧呼吸状态)制备的cDNA 分子用红色荧光分子5Cy 标记。