3章楕円曲線暗号
1章と2章では、数学の基礎的な内容を扱いました。有限体の働きや楕円曲線の概念について理解できたでしょうか。本章では、1章と2章の内容を組み合わせて、楕円曲線暗号について学んでいきます。具体的には、ビットコインの動きの中心部分にあたる、メッセージの署名と検証に必要となる基本要素を構築していきます。
3.1 実数上の楕円曲線
2章では、楕円曲線を目に見えるものとして議論しましたが、それは実数で曲線を描いたためでした。実数とは整数や有理数に限らず、有理数と無理数を含む数のことです。π, sqrt(2)
, ネイピア数、これらはすべて実数です。
また、実数が体の1つであることも楕円曲線を描けた要因です。有限体とは異なり、実数は無数にありますが、次のように同じ性質を持ちます。
- ❶ aとbが集合内に存在する場合、a+bとa・bも集合内に存在します。
- ❷ 0が存在し、a+0=aが成り立ちます。
- ❸ 1が存在し、a・1=aが成り立ちます。
- ❹ aが集合内に存在する場合、−aも集合内に存在し、a+(−a)=0となる値として定義されます。
- ❺ 0ではないaが集合内に存在する場合、a−1も集合内に存在し、a・a−1=1となる値として定義されます。
上記すべてが成り立つことは明らかです。最初を通常の加算と乗算として適用すれば、加法単位元および乗法単位元となる0と1が存在するので、−xは加法逆元、1/xは乗法逆元となります。
実数をグラフに描くのは簡単です。たとえばy2=x3+
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.