ISheep

ISheep

Badminton | Coding | Writing | INTJ
github

楕円曲線暗号

アドレスの生成方法とは?非対称暗号とは何ですか?#

アドレス生成の手順#

  1. 256 ビットのランダムな秘密鍵(32 バイト)を生成します
  2. 楕円曲線暗号を使用して公開鍵を取得します
  3. 公開鍵は 2 回のハッシュ関数を経て、20 バイトのアドレスが生成されます

楕円曲線#

y2=x3+ax+by^{2} =x^{3} +ax+b

アニメーション

ここで、秘密鍵 K、公開鍵 P。

曲線上でランダムに点 A (x,y) を取り、Kx+Ky が P に等しいように計算します。つまり、KA=P であり、実際には P は曲線上の 1 つの座標点です。 Bitcoin では、G という公認の点が A の役割を果たし、つまりランダムな点は公開されており、G は定数のようなものです。

メッセージの暗号化#

NP 問題:P と G が与えられた場合、K を求めることは難しいが、K と G に基づいて P が正しいことを迅速に検証できます

Alice と Bob という 2 人がそれぞれ公開鍵と秘密鍵を持っています

  • Alice:Pa Ka
  • Bob:Pb Kb

Pa = Ka * G

Pb = Kb * G

ここで、公開鍵は公開されています。つまり、2 人はお互いの情報を知ることができます

  • Alice: Ka * Pb = Ka * Kb * G
  • Bob : Kb * Pa = Kb * Ka * G

これら 2 つの情報は等しいため、このキーは 2 人だけの対称鍵と見なすことができます。

Alice が Bob にメッセージを送りたい場合、Pb で情報を暗号化し、Bob は Kb で復号化します。つまり、可逆演算を行います。

デジタル署名#

m:メッセージ

Alice は m に対して Ka を使用して署名し、m * Ka = N、これは秘密鍵から公開鍵を生成するのと同様です(m は G です)
相手がこの文が Alice のものであることを検証したい場合

m * Pa = m * G * Ka、つまり = G * N、G が公開されているため、m が Alice のものであるかどうかを迅速に検証できます

参考動画

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。