前回、素因数分解をするのが数が大きくなると難しくなるという性質をつかったRSA暗号が、コンピューターの性能が向上したりすると第三者に解読されてしまう可能性があると指摘した。その一方で、正当な受信者が暗号分を復号するのに時間がかかると不便であることも考慮しないといけない。
そこで、1980年代になると楕円曲線のような線をグラフに描く、y^2 = x^3 + ax + b という数式で表される関数を使う暗号方式が考案された。ここで、^は、乗数という意味で、y^2はyの2乗、つまりy * y、つまり yかけるy、という意味である。
詳しい説明は省くが、この楕円曲線のもつ楕円曲線離散対数問題を利用すれば、RSA暗号と比べて、同レベルの安全性をより短い鍵で実現できて、処理速度も速いということがメリットになるらしい。しかし、今のところ、 楕円曲線離散対数問題を解くためのアルゴリズムは、まだ見つかっていないらしい。
アルゴリズムとは、問題を解くための手順を定式化した形で表現することで、どうやって効率的に問題を解くかということを重視して、具体的な手順にまで言及する。理論や一般的な解法というのは、時間がないときには、適用するのが非効率なことがあるので、時間が短くても問題を解けるようためにアルゴリズムが存在する。まるで、問題を早く解くための解法のテクニックのようなものとも言える。
いまのところ、 楕円曲線離散対数問題を解くためのアルゴリズム は見つかっていないらしいが、将来見つかるかもしれない。世の中、絶対に安全なものなど存在しないということかと思う。いままで、人類の歴史でも、過去は永遠に解けないかもしれないと思われていた問題が、いつか解かれてきたということがある。
この楕円曲線離散対数問題の性質を使って、第三者が公開鍵からペアになっている秘密鍵を推定することができないようにする暗号が作られている。その性質を、暗号資産であるビットコイン(Bitcoin)は使って、秘密鍵から公開鍵を作っている。