「ウイルス」が本来の意味に立ち戻る日

2016年12月14日

「ウイルス」という用語の由来を覚えていますか?そうです、ITセキュリティの専門家は、生物学上のウイルスにちなんで、自身のコードを他のオブジェクトに挿入して自己複製、増殖するコンピュータープログラムに名前をつけました。

このIT用語がもともとの意味を取り戻すのも、そう遠くないでしょう。Microsoftとワシントン大学は、約200 MBのデータを合成DNAの形で記述することに成功しました(英語記事)。データストレージの開発における、新たな一歩です。

dna-storage-featured

それと、生物学的なウイルスとはどういう関係があるのか?かなり直接的に関係があります。生物学上のウイルスは、自身の遺伝情報を感染先の生命体のDNAに挿入し、挿入されたDNAは生命に必要なタンパク質を合成するのではなく、ウイルスを複製するようになります。

攻撃性の高いウイルスは、細胞が死滅し、最終的に生命体が死に至るまで、正常な生理的なプロセスを妨害します。同じように、攻撃性の高いコンピューターウイルスは、感染した情報システムをまったく使い物にならない、「死んだ」状態にする可能性があります。

したがって、人類がDNAの形で情報を書き出した今こそ、こうしたデータを「ハードウェアレベル」で保護することを気にし始めるべきです。では初めに、この「ハードウェア」の仕組みをざっと説明しましょう。

DNAの内側

DNA(デオキシリボ核酸)は、人体の中で一番大きな分子であり、遺伝情報を保持しています。ITの世界で最も近いのは、コンピューターを起動し、OSをロードするブートイメージでしょう。ほとんどの場合(例外はありますが、この記事では触れません)、OSがメモリにロードされた後、コンピューターは自身の動作に必要な実行可能モジュールを起動し、プログラムに記述されたタスクを実行します。同じように、ほとんどの生体細胞はDNAを使って「実行可能モジュール」、つまりRNA(リボ核酸)配列を作成し、生命体の維持と生体機能に必要なタンパク質を合成します。

目や髪の色から遺伝性疾患まで、生命体の特性はすべてDNAに保存され、ヌクレオチド配列にコード化されています。ヌクレオチド配列は、(ほとんどの既知の生物の場合)たった4種類の窒素塩基(アデニン、グアニン、チミン、シトシン)で構成される分子ブロックです。これらの塩基は「生物学的なビット」といえます。人間が作ったコンピューターは2進コードを使っていますが、自然界は4つの要素を組み合わせた記数法を使って、遺伝情報をコード化しています。

特筆すべきは、DNAにコード訂正機能が備わっていることです。一般に、DNAはヌクレオチド鎖を2本持っていて、これらの鎖はツイストペア線のように二重らせん状に絡み合っています。

これら2本の鎖は、水素結合で結ばれています。ヌクレオチドのペアは厳密に決められており、相補的な関係にあります。このため、1本目の鎖のヌクレオチド配列にコード化されている情報は、2本目の鎖にある相補的なヌクレオチド配列に対応しています。これがコード訂正メカニズムの仕組みです。コードを復号またはコピーするとき、DNA鎖の1本目は元のデータとして、2本目は制御配列として使用されます。これにより、どちらかの鎖のヌクレオチド配列(遺伝特性がコード化されている)が損傷しているかどうかがわかります。

また、ヌクレオチド配列に遺伝特性をコードするとき、冗長符号化アルゴリズムが使用されます。このアルゴリズムの仕組みを簡単に説明すると、ヌクレオチド配列として記述された1つ1つの遺伝特性にチェックサムがついているようなものです。

DNAの発見から50年間、遺伝特性(遺伝子)をコードするヌクレオチド配列は大々的に研究されてきました。今では、さまざまな研究機関でDNAを読んでもらうことができますし、23andme(英語サイト)などを使えば、オンラインでもこのサービスを受けられます。

科学者はどのようにDNAを読むか

科学者たちは、過去数世紀にわたり、極小物質の構造を究明する方法を開発してきました。たとえば、X線構造解析や質量分析、各種の分光法などです。このような方法は、2~4個の原子で構成される分子には極めて効果的でしたが、分子量の大きな分子の実験結果は複雑すぎて、理解できませんでした。分子を構成する原子の数が多いほど、分子構造を理解するのは難しくなります。

DNAが最大の分子と考えられているのには、もっともな理由があります。ヒトの半数体細胞のDNAには、約30億の塩基対が入っています。DNAの分子量は、これまでに知られているタンパク質の最大分子量よりも数桁大きくなります。

要するに、DNAは原子の巨大な集合です。従来の方法で得られた実験データの解析には、最新のスーパーコンピューターをもってしても、優に何か月、もしかしたら何年もかかるかもしれません。

しかし、科学者たちはシークエンス法を開発し、解析処理をぐっと加速しました。この方法は、長い塩基配列を短い断片に分割し、並行して分析できるようにするという考え方に基づいています。

この方法では、分子レベルの道具、つまりポリメラーゼと呼ばれる特別なタンパク質(酵素)を用います。このタンパク質の主な役割は、鎖に沿って移動しながら塩基のレプリカを構築して、DNAをコピーすることです。

しかし、必要なのはDNAの完全なコピーではありません。DNAを断片に分割し、それからプライマーとターミネーターという化合物を追加してDNAを複製できればいいのです。プライマーは複製処理の開始位置を、ターミネーターは終了位置をポリメラーゼに知らせます。

プライマーは特定のヌクレオチド配列で構成されており、相補的な塩基配列を持つDNA鎖に自分自身を結合することができます。ポリメラーゼはプライマーを見つけると、配列の複製を開始し、溶液からDNA構成分子を取得していきます。あらゆる生命過程と同様、これらのプロセスはすべて、液体形態で行われます。ポリメラーゼは、ターミネーター(鎖の構築プロセスの終わりを表す、改変されたヌクレオチド)のところまで配列を複製します。

ただし、問題があります。ポリメラーゼ、DNA鎖、プライマー、ターミネーター、DNA構成分子はすべて溶液の中に分散しています。したがって、ポリメラーゼがどこから処理を開始するのか、正確な場所の定義は不可能です。私たちが定義できるのは、配列のコピーを開始する位置と終了する位置だけです。

ここでも、ITにたとえて説明しましょう。私たちのDNAは「1101100001010111010010111」というビットの組み合わせだとしましょう。プライマーを「0000」、ターミネーターを「11」とした場合、確度の高い断片から順にならべると次のようになります。

0000101011
00001010111
0000101011101001011
00001010111010010111

プライマーとターミネーターをいろいろ組み合わせて、考えられうる短い配列をすべて調べ、配列の構成情報に基づいて、より長い配列を推測します。

直感に反した複雑なやり方のように感じるかもしれませんが、この方法はきちんと機能しています。実際、複数の処理を並行して進めるため、処理がかなりスピードアップされ、何か月や何年どころか数時間で終わります。ITの視点では、それほど早くありませんが。

DNAとランダムアクセス

科学者たちはDNAの読み方を理解した後で、ヌクレオチド配列の合成方法を研究しました。人工DNAの形で情報を書き込もうとしたのは、Microsoftの研究者が初めてではありません。数年前、EMBL-EBIの研究者グループが、739 KBのコード化に成功しています(英語記事)。

Microsoftの研究成果は次の2点で画期的でした。まず、データの保存量が飛躍的に増え、200 MBの格納に成功しました。ヒトのDNA鎖1本に含まれるデータ量は750 MBですから、それほどかけ離れていません。

しかし、さらに画期的だったのは、1回のシークエンス処理で、DNAから約100塩基分(生物学的なビット)の情報を読む方法を示したことです。

研究者グループは、プライマーとターミネーターのペアを使って、鎖の始点から、指定された距離だけ離れたところにあるヌクレオチドのセットを読み取ることができました。この技術は1ビットに対するランダムアクセスではなく、ブロックメモリアクセスに近いと言えます。

研究者たちは、このようなDNAメモリは特に高密度の長期保存メモリの分野で生かせるだろうと考えていますが、確かにその通りです。有名メーカーのUSBメモリのデータ密度は、1cm3あたり約1016ビットですが、DNAメモリの推定密度はこれを3桁上回り、約1019ビットです(英語記事)。

その上、DNAは非常に安定した分子です。冗長符号化機能とエラー訂正機能が組み込まれているので、書き込み後何年どころか何世紀たっても、DNA上のデータは読み取り可能でしょう。

さて、ウイルスに戻ります

ところで、ここまで長々と説明してきた事実には、情報セキュリティの観点ではどんな意味があるのでしょうか?前述のような方法でDNAに保存された情報の整合性は、数十億年にわたりデータ破壊を専門としてきた有機体によって脅かされる可能性がある…そう、生物学的に言う「ウイルス」の脅威に晒されるかもしれないのです。

コードされた合成DNAを狙う遺伝子組み換えウイルスが大発生、などという事態はまずなさそうです。当面は、データがDNAに書き込まれる前のデジタル形式であるうちにデータを書き換えて悪意あるコードを侵入させる方が簡単です。

しかし、既存のウイルスによる破壊から合成DNA内のデータをいかにして保護するか、その方法については議論の余地が大いにあります。たとえばポリメラーゼは、一般的なインフルエンザウイルスのDNAなど、溶液内のDNAを何でも喜んで複製しますから。重要なファイルを書き込んでいるときに、誰かが咳やくしゃみをしたらどうなるでしょうか…。