RSAを置き換える次世代の暗号と呼ばれる楕円曲線暗号について、鍵交換と暗号化に応用する概念を簡単ににまとめてみました。
基本理論
- 有限体上の楕円曲線( $y^2 = x^3 + ax + b$ )上の点 $G$ について、そのスカラー倍 $n \cdot G$ は同じ楕円曲線上の点になる。
- ここで $n$、$G$、$n \cdot G$ について、$n$ と $G$ から $n \cdot G$ を求めることは容易だが、$G$ と $n \cdot G$ から $n$ を求めることは現実的な時間ではできない。(楕円離散対数問題)
共通鍵生成方法
楕円曲線暗号を使った鍵交換と暗号化は、2組の公開鍵・秘密鍵から同じ共通鍵を作ることができる性質を利用している。
- 楕円曲線のパラメータ $a$、$b$ とその楕円曲線上の点(ベースポイント)$G$ を事前に共有しておく。
- Aliceがランダムな整数 $a$ を作り、$a$ を秘密鍵、$a \cdot G$ を公開鍵として公開する。
- Bobも同様に秘密鍵 $b$ と、$b \cdot G$ を公開鍵として公開する。
- AliceとBobは自分の秘密鍵と相手の公開鍵を乗算することで共通鍵 $a \cdot b \cdot G \ (= b \cdot a \cdot G)$ を手に入れることができる。(楕円離散対数問題により公開鍵 $a \cdot G$ 、$b \cdot G$ から 秘密鍵 $a$、$b$ を求めることは困難となる。)
参考
- http://www.atmarkit.co.jp/ait/articles/1507/28/news002_2.html
- http://gaiax-blockchain.com/elliptic-curve-cryptography
代表的なアルゴリズム
- 鍵共有
- Elliptic Curve Diffie-Hellman Key Agreement (ECDH)
- 署名
- Elliptic Curve Digital Signature Algorithm (ECDSA)
- 暗号化
- Elliptic Curve Integrated Encryption Scheme (ECIES)