著者の勝田氏は1962年生まれで、京都大学理学部、同大学院で数理工学を専攻したという理系出身の新聞記者だそうです。だからでしょうか、暗号化技術とか乱数とかの説明がとても分かり易い。数学をきちんと理解している方のようで信頼できます。
氏がこの本を書こうと思ったのは、Googleが2019年秋に量子コンピューターを用いて世界初の「量子超越」を実現したというニュースがきっかけだったとか。現在、クレジットカードなどの機密情報の暗号化の鍵には巨大な素数が用いられており、従来のタイプのコンピューターでは暗号解読に天文学的な時間がかかるため、暗号は暗号鍵を知らない人間には事実上解くことができません。それでクレジットカードの安全性が保障されていたのですが、量子超越が実現すると既存のコンピューターより桁違いに暗号解読にかかる時間が短くなり、クレジットカードは安全とはいえなくなると言われています。
[2020年には中国のチームが当時世界最速のスーパーコンピュータ・富岳で6億年かかる計算を、量子コンピューターを用いて200秒で実行したと発表した(Wikipediaより)。]
そこで登場したのが「素数」の代わりに「乱数」を使った「量子鍵」を用いる方法です。量子鍵は誰かが通信を盗み見ようとすると盗聴の形跡が残るため、絶対に盗聴されてない暗号鍵を使うことができます。
ここで重要になるのが「乱数」の質であるといいます。乱数にも品質の違いによるグレードがあるとか。質の悪い乱数では解読されるリスクがあります。
第一章では質の高い乱数の作り方と、できた乱数の質(本当にランダムなのか)を評価する方法について最新の研究成果を説明してくれています。
乱数の作り方には自然現象を利用する「物理乱数」とコンピューターを使う「疑似乱数」とがあるといいます。物理乱数の代表格は放射性元素からでる放射線により乱数をつくるやり方ですが、時間がかかります。ここではレーザーの発振を利用した超高速の「サイコロ」を紹介しています。これは毎秒17億個の乱数を発生させ世界記録を樹立したとか。
ところで乱数の質はどうやって評価するのでしょうか。分かり易い例が示されていました。例えば、414213562373・・・という一見規則性がなさそうな数字を3個づつ組にして、(4,1,4)(2,1,3)・・・とし、一組の数列を3次元空間の座標の位置を示す点だと見なすと、本当にランダムな数列なら3次元空間に均等に偏りなく点が分布しますが、質の悪い乱数は点のない空間と点のある空間に分かれ、縞模様が現れてしまいます。これは数列にまだ規則性が残っているためです。
面白いのは、同じ無理数である2の平方根(√2)や自然対数の底(e)と円周率(π)はどちらも繰り返しのない無限の数列ですが、√2やeから作った乱数は規則性が残っていますが、πは本当にランダムなのだそうです。
ところで、先に紹介したレーザーの発振を利用したサイコロですが、レーザーの発振は「カオス」な現象なので、つまり初期値がきまると後の様子が決まってしまうため、偏りが生じるはずなのですが、光の放射には揺らぎ(雑音)があるため実際には「ランダム」になるのだそうです。
つぎに「疑似乱数」ですが、これはコンピュータを用いて一定のアルゴリズム(計算の手順)に従って計算した数列です。この方法は同じアルゴリズムを使うと同じ結果が出てしまうという欠点があります。
この欠点を無くす計算方法の研究も進んでいます。日本の数学者が編み出したMT(メルセンヌ・ツイスター)法による乱数です。
最後に、ゲームソフトと乱数についての話題を紹介します。ゲームではゲームの進行をコンピュータが作った乱数で決めていますが、この乱数には先ほど説明したような規則性が残っています。そこで熟練したゲーマーたちはこの規則性を解析して、ゲームの進行を制御できるようになったのだそうです。
これまでは偏りのない乱数が良い乱数だというお話でしたが、本の最後の方で少し偏りの残った乱数(カオスの残ったランダム?)は有用かもしれないという話がでてきました。暗号と乱数の世界はまだまだ奥が深そうです。
この書評へのコメント