こんにちわ!CATです!
結構ビットコイン 上がってきましたね!アメリカの上場企業もビットコイン を買うようになったし、風向きが変わってきました。
私はただただ持ってるポジションを放置してるだけなので、黙って勉強します。
-
暗号資産の暗号
仮想通貨革命の末尾に補論として「公開鍵方式と署名」って章があるんですが、この本の中で一番むずかったです。メール送る時って書類にパスワードかけて送信して、また別のメールでパスワード送るって動作を仕事でやってませんか?個人的にはメールを2つに分けたところで意味ないように思ってます。パスワードをどう送るのか?ってのが問題ですよね。第三者に送信中に見られたら危ないですよね。
次に発明されたのが、送信したパスワードを見られても第三者が解読できない暗号を開発した人がいて、ディフィ=ヘルマン鍵共有って名前で呼ばれてます。簡単な算数で決まった数字をお互いに共有するのですが、秘密の数字をそれぞれお互いに保有します。複雑な計算でお互いに伝えたい数字を伝える事はできますが、第三者がその数字を知るためには秘密の数字を盗むか、膨大な計算をしないといけません。
このディフィ=ヘルマン鍵共有に刺激を受けて作られたのがRSA暗号。RSA暗号は誰にでも知られても良い公開鍵と知られてはいけない秘密鍵にがあります。公開鍵で平文を暗号化しても秘密鍵を持つ人しか復号できません。計算式も見てみましたが、ディフィ=ヘルマン鍵共有と考え方は似てましたが、計算量が膨大で長いメッセージを暗号化するのは不向きなようです。
太郎が花子にデータを送る時に注意することは
- データが改竄されていないこと
- 確かに太郎が送ったこと
- 太郎が送ったことを第三者が確認出来ること
です。これは「ハッシュと公開鍵暗号」を組み合わせると解決する事が出来る。ハッシュ関数に求められる性質は
だそうです。現在標準はSHA256ですね。ビットコイン やん。流れを書くと
- 太郎が花子にデータを送る
- 太郎はデータをハッシュ関数でハッシュ値を算出する
- 太郎はハッシュ値を秘密鍵で電子署名(暗号化)する
- 太郎は花子に「暗号化されたハッシュ値」を送付する
- 花子は太郎から受け取ったデータでハッシュ関数でハッシュ値を算出
- 花子は「暗号化されたハッシュ値」を太郎の公開鍵で復号する
- 5と6のハッシュ値が一致していることを確認する
となります。7でハッシュ値が一致している事からデータが改竄されていない事が分かり、6で太郎の公開鍵で復号化出来る事から太郎の秘密鍵で作ったハッシュ値である事が分かり、公開鍵は誰でも手に入れる事が出来るので第三者の確認もできます。
-
楕円曲線暗号とECDSA
正直、数ページしかないのに一番時間かかってますね。ノートに数字書いて計算して確認してます。RSA暗号の計算をしてみたのですが、計算に時間かかりますね。楕円曲線暗号はRSA暗号よりも計算が早く出来るようです。
楕円曲線暗号は公開鍵と秘密鍵、署名方法はRSAと同じです。公開鍵で暗号化し秘密鍵で復号する事も出来るし、秘密鍵で暗号化し公開鍵で暗号化する事もできます。楕円曲線暗号の仕組みは
P ✖︎ k = Qとした時、Pとkが与えられた時にQが簡単に計算できるが、PとQからkを算出できないというような一方向性関数です。上記の電子署名を図にしたが、ECDSA暗号も同じ方法で電子署名が行われる。
一見難しそうに見えますが1日考えてたら分かるかと思います。良いブログを見つけたので添付しておきます。LayerXの中の人がECSDAについて記載してました。
この方のブログ途中で更新止まってますが、非常に勉強になるので今後読んで勉強しようと思います。仮想通貨革命の内容は今日でおしまいで、次からはマイニングについて書いていこうかなって思ってます。それでは!