パソコンを使ってオンラインでショッピング
を楽しんでいる方も多いと思います。
こうしたやりとりは普通暗号化され、第三者
の盗聴から守るしくみが使われています。
代表的な暗号化方式で、その元となるのは、
数学の「素数」の性質を利用しています。
素数とは、「1より大きい整数のうち、1と
自分自身しか約数がない整数」のことです。
たとえば、2,3,5,7,......といった数です。
コンピュータの暗号では、「素数どうしをか
け算すると結果も素数となり、桁数が多く
なればなるほどかけ算した結果から元の素
数のペアを見つけることが困難になる」と
いう性質を利用しています。
ところが、元の素数の一方がわかっていれば、
他方の素数を求めるのは簡単にできます。
(割算すればよいので)
たとえば、AさんとBさんがやりとりする時、
Aさんは秘密の鍵数字として「691」という
素数をもち、Bさんは「997」という素数を持
っていたとします。Aさんは、事前に何らか
の方法でBさんの秘密の数字を得ておきます。
Aさんは、自分の秘密の数字691を使って送り
たい情報を暗号化し、さらに二人の素数のか
け算した結果 691×997=「688,927」をつく
り、暗号化した情報と二人の素数のかけ算し
た結果の2つを公開してBさんに送ります。
Bさんは、素数のかけ算した結果を自分の秘
密の数字「997」で割算して、Aさんの秘密
の数字「691」を求め、それを使って受け取っ
た暗号化情報を復元すればよいのです。
第三者が、暗号化された情報と素数のかけ算
した結果を盗聴したとしても、素数の結果だ
けから元の素数のペアを探すのに時間がかか
るので、実際的な話として心配することはな
い、というものです。
実際には、この例のような688,927という数字
では簡単に元の2つの素数を解析されてしまう
ので、ずっと桁数の大きい素数が使われてい
ます。
ちなみに、129桁の素数である
11438162575788886766923577997614661201021
82967212423625625618429357069352457338978
30597123563958705058989075147599290026879
543541
という数の答えを見つけるのに1,600台のコン
ピュータを使って約17年かかったそうです。
(解読に千年はかかるといわれていましたが、
実際にはずっと早く解読されました)
答えは
34905295108476509491478496199038981334177
64638493387843990820577
と
32769132993266709549961988190834461413177
642967992942539798288533
とのことです。
インターネット上でやりとりされている暗号化
技術の根幹は、元の素数を簡単に求める方法が
今現在見つかっていないからこそ、有効な方法
なのです。
経理総務部 渡辺雅彦