カテゴリー
blockchain

ブロックチェーン(7)

1960年代にイギリスの政府機関(GCHQ という機関)で働いていたジェイムズ・エリス(James H. Ellis)という人が公開鍵暗号方式を提案したが、それを実際に行うための適切な関数が当時は見つからなかった。

その適切な関数というのは、先ほどのy=f(x)で、xを入力すれば簡単にyがどの数字であるかは求められるが、yがどの数字であるかわかっても、簡単にxがどの数字であるかは求められないという性質をもつ関数を指す。要するに、簡単に暗号化できるが、復号するのは簡単ではないという関数である。

1970年代に同じGCHQで働いていたクリフォード・コックス(Clifford Cocks)が素数と素因数分解を使えばそのような関数は作れることを思いついたらしい。具体的には、素数pと素数qを掛け合わせた数字を計算して、その計算された数字からもとの素数pと素数qに分けるのは、数字が大きくなってくると簡単には分けられなくなるという性質を利用している。これは、いわゆる素因数分解である。これが、今日の”RSA”と呼ばれる暗号システムの基礎になっているとのこと。

ただ、この素因数分解を使う方法は、数が大きくなればなるほど困難になるという性質を使ってはいるが、コンピューターの性能はどんどん良くなっているので、完全に安全とは言えなくなってきてしまう。すると、どんどん大きな数字を使わなくてはならなくなるので、暗号が長くなっていってしまうという短所がある。2019年時点で推奨されている暗号のサイズとしては、2048bitsとのこと。bit(ビット)は、コンピューターが扱うデータの最小単位で、2進数の1桁のこと。それぞれの桁を0か1で表す。

コメントを残す