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 は曲線上の座標点です。Bitcoin では、点 A の役割を果たす公認の点 G があります。つまり、ランダムな点は公開されており、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 のものであるかどうかをすばやく検証できます。

参考ビデオ

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