トピックス
フィンスラー暗号とは、情報システム学科教授の永野哲也と青森大学ソフトウェア学部教授の穴田啓晃氏が共同で開発した新公開鍵暗号システムです。
まずは、簡単に公開鍵暗号について説明します。アリスが情報を暗号化してボブに送るとき、ボブが作成した公開鍵(PK) を使って情報(平文)を暗号化し、ボブに送ります。ボブは受け取った暗号文を秘密鍵(SK)で元に戻(復号)して情報を受け取ります。このとき使用されたPK とSK は対になっています。PK で暗号化された暗号文はそのSK でしか復号されないということです。公開鍵PK はその名の通り、誰でも使用できる状態(公開)になっていますが、秘密鍵 SK は情報を受け取るボブのみが知っている(秘密)鍵です。したがって、PK で暗号化された暗号文はSK を持っている者しか元に戻せないので、情報の秘匿(秘密通信)が可能になります。通信は公開された通信路(インターネットなど)で行うことを前提とします。わざわざ“公開鍵” 暗号と呼ぶのは、それまでの暗号は、上述したような仕組みにはなっていないからです(興味ある人は「暗号の歴史」の解説文などを読んでみてください)。
さて、現在よく知られた公開鍵暗号システムにRSA 暗号と呼ばれるものがあります。情報m(整数) をある数e 乗し暗号文c(=me)を作ります。復号はc を再度ある数d 乗してもとのm を得えます。つまり、m = cd が成り立ちます。だいたいe が公開鍵で、d が秘密鍵です。暗号化する鍵(公開鍵)と復号する鍵(秘密鍵)が異なっています。ただ し、これらの計算はある有限体上での mod 計算と呼ばれる代数的数理構造を利用して行われます。数学をきちんと理解し計算できないと本当の理解は得られません(きちんとした暗号の本を参照してください)。
さてそれでは、フィンスラー暗号はどのような仕組みかを大雑把に説明します。数学が対象とする空間と呼ばれる集合はいろいろなものがあります。もっともなじみ深いのは、ユークリッド空間でしょう。この空間は、小学校、中学校、高等学校そして大学での数理系の学習で主要な舞台となっている空間(世界)です。しかし、高等数学では、ユークリッド空間よりも、いろいろな意味で広いあるいは条件が緩い、そのため、ユークリッド空間には含まれない空間(曲がった空間)が研究対象として登場します。その中に、フィンスラー空間と呼ばれる空間があります。空間という広がりをもつ世界でいろいろな物が移動できるのは知っていると思います。特に平行移動とか回転移動はなじみのある移動(運動)でしょう。ユークリッド空間での平行移動や回転移動では、ものの長さは変化しません。このことを数学では平行移動は長さを保つ、または、不変にするという言い方をします。一方、フィンスラー空間では、平行移動が長さを保ちません。保つ場合もありますが、それは特殊な場合です。平行移動で長さを保たないとどんなことが起こるでしょうか?それは、直線上を車が一定速度で走っ(平行移動し)ているのを想像してみてください。出発点で車は 5m の長さでしたが走り出してあるところまで来ると車の長さが 6m、7m などと長くなったり、あるいは短くなったりするということです。また、あるところまで着て、そこから初めの位置までもどったとしても、車の長さは元の長さになっていませんし、車は回転した位置(傾いた状態)に止まるかもしれません。このようなことが普通に起こる世界が、フィンスラー空間です(むちゃくちゃな世界だと思われるでしょう)。しかし、このような世界でも、数学として世界の秩序はきちんと保たれているのです。
このような世界で何をどう使って暗号を作ったかというと、今述べた、平行移動を利用しました。一般に、平行移動は長さを保ちませんが、測地線と呼ばれる特別な曲線の上では長さを保ちます。それでも、平行移動で元に戻っても位置が回転してしまうような状況は発生します。長さが変わったり向きが元に戻らない(回転している)ことを(線形)平行移動の非対称性と言います。非対称性があっても長さは保つ測地線上での線形平行移動を使います。まず、出発点で平文としてベクトル(初期ベクトル)をたて、そのベクトルを測地線上をある点p まで平行移動します。点p でのベクトルを暗号文とします。暗号文を受信したボブは、不変なベクトルの長さを利用して、もとの初期ベクトル(平文)に復号します。公開鍵は平行移動と長さを組み合わせた関数(複雑な式)です。秘密鍵は、ベクトルの長さを計算する一連の式などです。平行移動が非対称性をもつので、仮に測地線が知られて、逆の平行移動を試みてもベクトルは元に戻りません。これが暗号化鍵を公開しても情報が秘匿される(一方向性をもつ)仕組みです。