お断り この記事は『Software Design2022年3月号』の「第4章:電子署名のプロセスを体験 Pythonによる楕円曲線暗号の実装」の入稿記事を技術評論社のご好意で公開したものです。 元はLaTeXだったのをマークダウンに修正し、二つに分けています。 前半は楕円曲線暗号のPythonによる実装その1(有限体とECDH鍵共有)です。 記事中のサンプルコードはサポートページからダウンロードできます。 楕円曲線クラス 楕円曲線の点 有限体クラスを実装できたので次は楕円曲線クラス\texttt{Ec}を実装します。 楕円曲線は有限体\texttt{Fp}とその値aとbで決まります。 楕円曲線クラスは楕円曲線の節で紹介したようにr個の点0, P, 2P, ....からなる集合です。 secp256k1はTLSやビットコインで使われる楕円曲線のパラメータで、 a=0 b=7 p=2^{25
