原文标题:《这封信里隐藏着一个密码,你猜藏在哪?》
图片来源: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 个不同的单体来编码信息,代表序列可控聚合物的存储潜力还很大。
原论文:
https://pubs.acs.org/doi/10.1021/acscentsci.2c00460
参考链接:
https://www.eurekalert.org/news-releases/958890
https://research.utexas.edu/showcase/articles/view/scientists-encode-wizard-of-oz-in-a-vanishingly-small-plastic
https://www.researchgate.net/figure/Steganography-used-to-hide-the-image-of-a-cat-in-the-image-of-a-tree_fig2_344459934
本文来自微信公众号:环球科学 (ID:huanqiukexue),撰文:栗子,审校:二七
本文由LinkNemo爬虫[Echo]采集自[https://www.ithome.com/0/660/113.htm]