河内分分
河内分分

让梦想从这里开始

因为有了梦想,我们才能拥有奋斗的目标,而这些目标凝结成希望的萌芽,在汗水与泪水浇灌下,绽放成功之花。

你的位置:河内分分 > 媒体报道 > 这封信里隐藏着一个密码,你猜藏在哪?

这封信里隐藏着一个密码,你猜藏在哪?

发布日期:2022-08-09 11:44    点击次数:124

图片来源:Unsplash

这种加密通信,或许能抵御黑客入侵。

撰文 | 栗子

审校 | 二七

你看,这幅图中有些叶子掉光的树。图中每一格像素的色彩,可以由红(R)、绿(G)、蓝(B)三个分量共同决定。假如把各个像素的 RGB 数值,依照特定的规则进行变换,会得到一张完全不同的图片。

图片来源:cyp via Wikimedia Commons

那个变换规则就是密钥。假如使用的密钥正确,完成变换之后再把解得的图片调亮些,就会发现里面藏着一只小猫。

图片来源:cyp via Wikimedia Commons

如此一来,当小明把树的照片发送给小红,即便数据在传输过程中被外人截获,对方也只能看树。唯有掌握正确密钥的小红,才会知道小明想给自己看的其实是猫。这便是隐写术(Steganography),用一些肉眼可见的信息,为真正要传递的信息打掩护。

在从前的战争中,人们常常要用密码本把密钥送去前线,来保障加密通信的进行。但是,在非对称加密(用公钥加密、用私钥解密)的技术还没出现的年代,一旦密码本被敌方拿到,通信内容可能就不再安全了。

那么,假如利用 " 隐写术 " 的思路,把密码本里的密钥藏在无用的信息背后,对手就很难从中找出真正的密钥了吧?最近,德克萨斯大学奥斯汀分校的一群科学家,给远在马萨诸塞大学洛威尔分校的詹姆斯 · 鲁瑟(James Reuther)教授写了封信:

亲爱的鲁瑟教授,

希望您在洛威尔收到信时一切安好!

我们的分子加密计划进展顺利。期待和您聊一聊!

祝好,

安斯林实验室

简短的信里,暗含着一份密钥。假如你还在仔细阅读这封信,请千万不要放弃,因为这密钥不在信的字句里,而在写信用的墨水里 ……

神奇墨水是什么?

近年来,随着科学家的想象力与日俱增,能够用来存储信息的载体越来越多。比如,在纳米级的 DNA 分子中存进一本小说的内容,可能已经不算是令人惊奇的操作。毕竟,像人体这样复杂而精密的机器,也是根据 DNA 编码的信息组装而来,它的存储能力可想而知。

相比之下,一些非生物的聚合物还不能像 DNA 那样高密度地存储数据,常常只能存下几个字节或是一个单词,而且从中读取信息也很不容易,不过研究者乐于接受挑战。德克萨斯大学奥斯汀的化学教授艾瑞克 · 安斯林(Eric Anslyn)和小伙伴们,想试着把一份加密文件的密钥,保存在序列可控的聚合物(sequence-defined polymers)里。

首先,科学家用计算机生成了一份长达 256 位的二进制密钥,就是由 256 个 0 或 1 组成的一串数字——用来给一本小说的全文加密。这样的密钥有 2256≈1077 种可能的排列方式,用计算机暴力破解几乎不可能。利用这串数字来给信息加密,安全系数很高,但前提是密钥不被泄露出去。

那么,接下来就需要设计用来储存密钥的聚合物。研究者选用的聚合物是低聚氨基甲酸酯(oligourethane),一种很像塑料的材料。他们把 256 位的密钥分成 8 份,储存在 8 个不同的低聚物序列里面,那么每个序列要代表 32 位数字。

你或许觉得,那每个聚合物需要有 32 个单体吧。并不用,事实上一个聚合物序列只包含 10 个单体,且仅有中间的 8 个单体负责编码密钥。用 8 个单体表示出 32 位数字,要如何做到?

图片来源:credit-kalmatthes.medium.com

别忘了,32 位数字是二进制中的 32 位,假如用两种不同的单体分别表示 0 和 1,才需要 32 个单体。但科学家设计了 16 种不同的氨基甲酸酯单体,分别代表 0~9 和 A~F,这样就能将二进制数转换为十六进制的数:16 是 2 的四次方,十六进制中的 1 位数字可以代表二进制中的 4 位数字。如此一来,二进制中的 32 位数字便能写入一个聚合物中间的 8 个单体里。

256 位的密钥,写在 8 种聚合物序列里。等到密钥被分发出去,接收的一方还需要知道先读哪个序列、后读哪个序列,才能拿到正确的密钥。对此研究者也有准备,每个聚合物序列里除了代表数字的 8 个单体,还有首尾两个单体作为占位符。其中一个是解码占位符,科学家为它做了同位素标记,好像 " 指纹 " 一样,8 个序列中的标记各不相同,指示着读取的顺序。

加密完成之后,研究团队把 8 种聚合物(各 500 纳摩尔)都溶解在异丙醇里,又在溶液中混入了甘油和碳烟。这些物质共同构成一种特别的墨水,科学家把墨水灌进了圆珠笔。开头提到的那封信,便是用这支笔,在普通的打印纸上写成的。

图片来源:原论文

而远在 2000 公里之外,另一间实验室里的詹姆斯 · 鲁瑟教授和他的同事们,会在收到信件后,从中寻找隐藏的密钥。

存进去容易,怎么读出来?

读取聚合物里编码的信息,大概是分子存储当中最难的一步。

写信的墨水里面,一共有 8 个聚合物序列需要读取。通常来说,使用串联质谱(MS/MS)方法的时候,研究者要单独分析每一种聚合物,以免谱图变得太过复杂。假如能够在一份混合物当中,同时分析 8 种低聚物的序列就好了。

科学家想到一种新的方案,就是把组成聚合物的单体一个个 " 砍下来 ",或者叫解聚合。从墨水中提取出藏着密钥的 8 种聚合物之后,利用热诱导的环化反应,每次可以从聚合物的末端去除一个单体。这样,那 8 种被逐步拆掉单体的聚合物,就能利用液相色谱 - 质谱联用(LC/MS)技术来实现同时测序,不再需要分开检测。

末端的单体被砍掉(图片来源:原论文)

研究者就让这些大分子在 70 ℃的环境下慢慢解体。而仪器要在指定的时间点进行采样,看聚合物们被拆到哪步了。一开始,仪器只能检测到 8 种聚合物,那就是初始版本。等到 550 分钟过后,聚合物几乎都变成了一个一个的单体。

从第 0 分钟开始,到第 550 分钟基本上已经拆解完成(图片来源:原论文)

密钥一共用了 8 个聚合物序列,每个序列最初有 10 个单体。当聚合物被砍下一个单体,剩余部分的质量就会减少。当聚合物的长度从 10 个单体变成 9 个单体、8 个单体,最终只剩 1 个单体,科学家在此过程中一共会获得 80 个不同的质量。

80 个质量数据(图片来源:原论文)

依靠这 80 个质量数据,加上研究者识别出的 8 个同位素标签(用来指示读取顺序),研究者终于读出了聚合物中藏着的那串数字。只不过,它还是十六进制的版本,再转换成二进制就是 256 位的密钥了。

假如你还记得,在德克萨斯州的实验室里,研究团队用这密钥加密了一份文件。而当马萨诸塞州的科学家用密钥解开文件,发现那是《绿野仙踪》小说的全文。

或许在研究者心里,这场传递 " 密码本 " 的谍战游戏,像小说的情节一样曲折。而结局也让他们十分兴奋。这项研究的主要作者之一,艾瑞克 · 安斯林教授说,还是第一次在这种类型的聚合物(即序列可控聚合物,SDP)里储存如此多的信息,这标志着分子数据存储和密码学领域的革命性的进步。

毕竟,存储能力超强的 DNA 也只有 4 种不同的碱基(A、T、C、G),而科学家这次用了 16 个不同的单体来编码信息,代表序列可控聚合物的存储潜力还很大。