3章楕円曲線暗号

1章2章では、数学の基礎的な内容を扱いました。有限体の働きや楕円曲線の概念について理解できたでしょうか。本章では、1章2章の内容を組み合わせて、楕円曲線暗号について学んでいきます。具体的には、ビットコインの動きの中心部分にあたる、メッセージの署名と検証に必要となる基本要素を構築していきます。

3.1 実数上の楕円曲線

2章では、楕円曲線を目に見えるものとして議論しましたが、それは実数で曲線を描いたためでした。実数とは整数や有理数に限らず、有理数と無理数を含む数のことです。π, sqrt(2), ネイピア数e+\sqrt[7]{19}、これらはすべて実数です。

また、実数がたいの1つであることも楕円曲線を描けた要因です。有限体とは異なり、実数は無数にありますが、次のように同じ性質を持ちます。

  1. abが集合内に存在する場合、ababも集合内に存在します。
  2. 0が存在し、a+0=aが成り立ちます。
  3. 1が存在し、a1=aが成り立ちます。
  4. aが集合内に存在する場合、aも集合内に存在し、a(−a)0となる値として定義されます。
  5. 0ではないaが集合内に存在する場合、a−1も集合内に存在し、aa−11となる値として定義されます。

上記すべてが成り立つことは明らかです。最初を通常の加算と乗算として適用すれば、加法単位元および乗法単位元となる0と1が存在するので、xは加法逆元、1/xは乗法逆元となります。

実数をグラフに描くのは簡単です。たとえばy2x3

Get プログラミング・ビットコイン ―ゼロからビットコインをプログラムする方法 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.