ブロックチェーン科学: 非対称暗号化、楕円曲線暗号

ブロックチェーン科学: 非対称暗号化、楕円曲線暗号

ブロックチェーン暗号化入門

ブロックチェーン暗号化技術

ブロックチェーン技術の応用と発展において、デジタル暗号化技術が鍵となります。暗号化方法が解読されると、ブロックチェーンのデータセキュリティが脅かされ、ブロックチェーンの不変性は失われます。

暗号化アルゴリズムは一般的に対称暗号化と非対称暗号化に分けられ、ブロックチェーンでは主に非対称暗号化アルゴリズムが使用されています。非対称暗号化とは、セキュリティと所有権の検証のニーズを満たすためにブロックチェーンに統合された暗号化技術を指します。非対称暗号化では通常、暗号化および復号化のプロセスで、公開鍵と秘密鍵と呼ばれる 2 つの非対称鍵が使用されます。非対称キー ペアには 2 つの特性があります。まず、情報がいずれかのキー (公開キーまたは秘密キー) で暗号化された後、もう一方の対応するキーだけがそれを復号化できます。 2 番目に、公開鍵は他人に公開できますが、秘密鍵は秘密に保たれ、他人は公開鍵から対応する秘密鍵を推測することはできません。

非対称暗号化の応用シナリオ

ブロックチェーンにおける非対称暗号化技術の応用シナリオは、主に情報暗号化、デジタル署名、ログイン認証などです。その中でも、情報暗号化シナリオは、主に情報の送信者(Aと表記)が受信者(Bと表記)の公開鍵を使用して情報を暗号化してBに送信し、Bが自分の秘密鍵を使用して情報を復号化します。ビットコイン取引の暗号化は、このシナリオに該当します。デジタル署名のシナリオでは、送信者 A は自分の秘密鍵を使用して情報を暗号化し、それを B に送信します。B は A の公開鍵を使用して情報を復号化し、情報が A から送信されたことを確認します。ログイン認証のシナリオでは、クライアントは秘密鍵を使用してログイン情報を暗号化し、サーバーに送信します。サーバーはそれを受信した後、クライアントの公開鍵を使用してログイン情報を復号化し、認証します。

非対称暗号化ポピュラーサイエンス

鍵配布問題

日常生活でアカウントやファイルを暗号化する場合、通常は対称暗号化を使用します。いわゆる対称暗号化とは、暗号化と復号化に同じパスワードが使用されることを意味します。たとえば、自分の WeChat アカウントを登録するときに、他の人がログインできないようにパスワードを入力します。今後、WeChat から手動でログアウトする必要がある場合、または携帯電話を変更して再度 WeChat にログインする必要がある場合は、パスワードをもう一度入力するだけです。

対称暗号はほとんどの状況で問題なく機能します。しかし、特定の状況では、それほど役に立ちません。例えば、シャオミンがシャオホンにメールでラブレターを書きたい場合、シャオミンは内気で用心深い性格なので、誰にも覗かれたくないので、このメールにパスワードを設定し、受信者はこのパスワードを入力した後でのみメールの内容を見ることができます。たとえば、Xiaohong の父親は Xiaohong のメールを頻繁にチェックする習慣があるが、パスワードがわからない場合は諦めるしかない。あるいは、シャオミンには恋のライバルであるシャオチアンがいる。彼はコンピューターの専門家で、ハッキングの手法を使ってシャオミンとシャオホンの間でやり取りされるメールを傍受することができるが、メールが暗号化されている場合(そしてパスワードが十分に強力である場合)、彼は絶望のため息をつくことしかできない。

しかし、問題は、シャオミンがシャオホンにパスワードをどうやって伝えるかだ。シャオミンがシャオホンと会ったときに直接パスワードを伝え、今後のすべてのメールをこのパスワードで暗号化することに同意すれば、当然問題は発生しません。しかし、シャオミンとシャオホンが遠距離恋愛中だったらどうなるでしょうか?シャオミンがシャオホンにパスワードを電子メールで送信した場合、パスワードも漏洩する可能性があり、電子メールを暗号化しても意味がありません。もちろん、理論的には、電話、手紙、郵便などでパスワードを送信すると、高度なゴキブリによって傍受される可能性があります。これが鍵配布問題と呼ばれるものです。

非対称暗号化メカニズム

鍵配布の問題に対応して、暗号史上最大の発明である非対称暗号化(公開鍵暗号化)が登場しました。これは、キーの発行と管理の問題を解決し、現在の商用暗号化の中核となっています。公開鍵暗号方式では、公開されないものが秘密鍵、公開されるものが公開鍵となります。

対称暗号化とは異なり、公開鍵暗号化システムは、暗号化と復号化という 2 つの異なる鍵セットで構成されます。情報の送信者は暗号化キーを使用して情報を暗号化し、受信者は復号化キーを使用して情報を復号化できます。

前の例に戻ると、Xiaohong は暗号化キーと復号化キーの両方を持っています。シャオホンは暗号化キーをシャオミンに送信し、このキーを使用して送信したい電子メールを暗号化し、シャオミン自身に送信するように依頼します。この暗号化キーは、電子メール、電話、WeChat、伝書鳩など、あらゆる方法で送信できます。玄関先に貼ることもできます(もちろん、それほど派手な方法である必要はありません)。彼女がそんなに大胆なのは、Xiaohong だけが、彼女の手にある復号鍵を使ってこの暗号化されたメールを復号し、読むことができるからです。つまり、たとえシャオチアンがハッキング手段を通じて暗号化された電子メールを入手し、暗号化キーを知っていたとしても、復号化キーを知らない限り、電子メールを読むことはできない。この重要な復号キーはシャオホン自身が保管しており、シャオミンを含め、他の誰にも送信されませんし、送信する必要もありません。

暗号化キーは通常公開できるため、公開キーとも呼ばれます。復号化キーは公開できず、自分だけが使用できるため、秘密キーとも呼ばれます。公開鍵と秘密鍵は常にペアになっており、別々に生成することはできません。

RSAアルゴリズム

公開鍵暗号の一般的な概念がわかったので、より直感的に理解できるようにその実装方法について説明しましょう。公開鍵暗号にはさまざまな実装方法がありますが、その中でも RSA アルゴリズムは最もよく知られており、公開鍵暗号の事実上の標準と言えます。

RSA のプレーンテキストとキーは両方とも数字です。まず、RSA の暗号化式は次のとおりです。

  1. 暗号文 = 平文^a % b

暗号文は、平文を a 乗し、それを b の剰余で割った結果です。 2 つの数値 a と b を知っている人なら誰でも、この式を使用して平文を暗号化できます。つまり、a と b が一緒に RSA 暗号化アルゴリズムの公開鍵を構成します。

RSA復号化の式

  1. 平文 = 暗号文^c % b

この式と前の式の唯一の違いは、a が別の数値 c に置き換えられ、c と b が一緒に RSA 秘密鍵を構成することです。

数字を入力して、より具体的な例を挙げてみましょう。

たとえば、Xiao Ming はプレーンテキストの番号 123 を持っており、それを暗号化して Xiao Hong に送信したいと考えています。同時に、Xiaohong は鍵ペアのセットを持っており、公開鍵は (a=5, b=323)、秘密鍵は (c=29, b=323) です。そこで、シャオホンは公開鍵をシャオミンに送りました。 Xiao Ming は公開鍵を使用して平文 123 を暗号化し、暗号文 225 を取得して Xiao Hong に送信します。

  1. 暗号文 = 123^5 % 323 = 225

Xiaohong は暗号文を入手した後、自分の秘密鍵でそれを復号しました。

  1. プレーンテキスト = 225^29 % 323 = 123

このようにして、Xiaohong は元の平文番号 123 を取得します。ここでは多くの詳細が省略されています。たとえば、公開鍵と秘密鍵の番号 5、29、323 はランダムに選択されたものではなく、特定のアルゴリズムによって生成されています。

ブロックチェーン暗号化アルゴリズム

暗号化とは、簡単に言えば、アルゴリズムを通じて元の情報を変換し、情報の受信者が秘密鍵を使用して暗号文を復号化し、元のテキストを取得できるようにするプロセスです。暗号化アルゴリズムは、暗号化キーと復号化キーが同じかどうかに基づいて、おおよそ 3 つのサブタイプに分けられます。

  • 対称暗号化では、暗号化と復号化に同じ秘密鍵を使用します。この方法の利点は、暗号化と復号化が高速であることです。ただし、秘密鍵の安全な配布はより困難です。一般的な対称暗号化アルゴリズムには、DES と AES があります。
  • 非対称暗号化では、暗号化側は暗号化と復号化の際に公開鍵と秘密鍵を保持します。暗号化側は公開鍵を他の関係者に送信できますが、秘密鍵は暗号化側で厳重に保持されます。たとえば、銀行が個々のユーザーに発行した秘密鍵は、その個人の U シールドに保存されます。非対称暗号化では、暗号化は秘密鍵で実行でき、他の人は公開鍵を使用して復号化できます。その逆も同様です。非対称暗号化アルゴリズムは一般に、対称暗号化よりも複雑で、実行に時間がかかります。利点は、秘密鍵の配布の問題がないことです。その他の一般的な非対称暗号化アルゴリズムには、RSA と ECC があります。
  • 対称暗号化と非対称暗号化の組み合わせ。この方法では、暗号化プロセスが 2 つの段階に分かれています。第 1 段階では、非対称暗号化を使用して秘密鍵を配布し、相手が対称暗号化キーを安全に取得できるようにします。第 2 段階では、対称暗号化を使用して元のテキストを暗号化および復号化します。

ブロックチェーンでは主に非対称暗号化のECC楕円曲線アルゴリズムが使用されます。

楕円曲線暗号

楕円曲線はどのように見えるでしょうか?

楕円曲線を式で表すと、次のように書きます。

  1. y^2 = x^3 + ax + b

a と b が異なる値を取る場合、曲線は異なって見えます。例:

ちょっと変に見えますか?aとbの値が何であっても、楕円には見えません。楕円曲線の名前の由来は、曲線が楕円の形に描かれているということではなく、その表現が楕円の円周を計算する積分公式に似ていることに由来していると言われています。

楕円曲線の加算と乗算

楕円曲線の世界では、奇妙な加法規則が定義されています。楕円曲線上の任意の 2 つの点 P と Q を取り、直線を引きます。この直線と曲線上の別の点との交点は R' であり、x 軸に関する R' の鏡像点は R です。すると、3 つの点 P、Q、R は互いに次の関係を形成します。P+Q=R (ただし、R'=-R)。ちょっと特殊じゃないですか?この加算規則は、私たちが通常理解している 1+2=3 とは異なります。楕円曲線上の点間の関係を確立します。

P と Q が同じ点である場合、両方を P と呼びます。次に、P を通る接線を引くと、曲線との交点 R' も得られます。R' には、x 軸に対する鏡映点 R もあります。このとき、加算は P+P=2P=R となり、乗算演算になります。

さらに一歩進んで、R を開始点として、2R (4P) を表す新しい点を描き、この新しい点を開始点として描画を続けます... 下の図では、G を開始点として、2G、4G、8G が表示されています。

離散楕円曲線

以上の説明で、楕円曲線は連続曲線であることがわかりました。連続曲線である理由は、実数の範囲内で値を取る、つまり曲線上の各点の水平座標と垂直座標が実数であるからです。

ただし、楕円曲線を暗号化に適用する場合、実数は使用できません。実数には整数と小数が含まれるため、小数を使用すると計算速度が大幅に低下するだけでなく、計算結果に丸めの問題も発生し、計算精度に影響します。暗号化には速度と精度に関する厳しい要件があるため、実数を使用して情報を暗号化することはできません。

楕円曲線を暗号化に使用するには、曲線を離散化する必要があります。簡単に言えば、曲線上の各点の水平座標と垂直座標は整数でなければならず、これらの点の数は有限でなければなりません。例を見てみましょう。

楕円曲線 y^2= x^3 + x(a=1, b=0) を離散化し、23 点のみを取ることができると仮定します。この場合、これらの 23 点の水平座標と垂直座標は 0 から 22 までの整数でなければならず、水平座標と垂直座標は次の関係を満たしている必要があります (% は剰余を取ることを意味します)。

  1. y^2 % 23 = x^3 + x % 23

これら23点を描くと次の図のようになります。連続楕円曲線とは少し違う感じでしょうか?

ランダムに点 (9,5) を選び、それが上記の式を満たすかどうかを確認します。

  1. 5^2 % 23 = 9^3 + 9 % 23  
  2. 25 % 23 = 738 % 23  
  3. 2=2

離散楕円曲線上の加算や乗算も連続楕円曲線と同様の規則に従います。ただし、離散点であるため、計算過程を連続楕円曲線ほど鮮明に表現することはできません。説明のために 2 つの例を挙げてみましょう。

  • 加算: P(11,10)+Q(1,5)=R(17,10)
  • 掛け算: 2P(11,10)=R(13,18)

(数学の授業を受けていないため、対応する計算式はここには記載されていません。一般的な原則がわかっている限り、詳細には立ち入りません)

つまり、23 個の点すべてに不思議なつながりがあり、任意の 2 個の点を合計するか、任意の点を倍数にすると、23 個の点のうちの別の点が生成されます。あたかも、これら 23 の点が独自の閉じた数学体系を形成しているかのようです。

ビットコインで使用される楕円曲線

では、ブロックチェーンで使用される楕円曲線はどのようなものなのでしょうか?

実際、すべての楕円曲線が暗号化に十分なセキュリティを保証できるわけではありません。ブロックチェーン技術の最も代表的なアプリケーションであるビットコインで使用される楕円曲線は、secp256k1 と呼ばれる標準に準拠しています。この標準で定義されている楕円曲線方程式は次のようになります。

  1. y^2 % p = x^3 + 7 % p

ここで、p は非常に大きな素数です。

  1. 2^256 – 2^32 – 2^9 – 2^8 – 2^7 – 2^6 – 2^4 – 1

つまり、これは p 個の点からなる離散楕円曲線です。

楕円曲線を使用して公開鍵を生成する

楕円曲線の基本原理について多くを語ってきましたが、それはビットコインにどのように適用されるのでしょうか?

実際、ビットコインにおける楕円曲線の役割は非常に単純です。公開鍵を生成するために使用されます。

前回の記事では、公開鍵暗号方式の仕組みは、メッセージは公開鍵で暗号化し、秘密鍵で復号化することができ、公開鍵と秘密鍵はペアで出現する必要があることを説明しました。実際、公開鍵は特定のアルゴリズムを通じて秘密鍵から計算されます。ビットコインでは、楕円曲線アルゴリズムを使用して秘密鍵から公開鍵が生成されます。

具体的には、秘密鍵 k があると仮定し、それを楕円曲線上の初期点 G に掛け合わせると、曲線上の別の点、つまり対応する公開鍵 K が得られます。この掛け算の計算方法は、前に説明した演算規則を使用します。

K(公開鍵) = k(秘密鍵) * G(楕円曲線上の初期点)

実際、secp256k1 標準の一部である初期点 G は固定点であり、定数と同等です。したがって、秘密鍵 k と公開鍵 K の関係は固定されます。ただし、この計算は一方向のみです。つまり、秘密鍵 k から公開鍵 K を取得することはできますが、その逆はできません。そのため、秘密鍵を明かさずに公開鍵を誰とでも共有できます。例として、ビットコインの公開鍵と秘密鍵がどのようなものかを見てみましょう。

ビットコインの秘密鍵は 256 ビットの 2 進数で、通常は次のように 64 ビットの 16 進数として表示されます。

  1. k=1E99423A4ED27608A15A2616A2B0E9E52CED330AC530EDCC32C8FFC6A526AEDD

k を楕円曲線上の初期点 G に掛けると、公開鍵 K(x,y) が得られます。ここで、x と y はそれぞれ K の水平座標と垂直座標です。

  1. x=F028892BAD7ED57D2FB57BF33081D5CFCF6F9ED3D3D7F159C2E2FFF579DC341A  
  2. y=07CF33DA18BD734C600B96A72BBC4749D5141C90EC8AC328AE52DDFE2E505BDB

<<:  イーブンテクノロジーは、AIアプリケーションシナリオに沿った新世代のデータウェアハウスを構築します。

>>:  中国航空工業集団の「ドラゴンネスト」の初飛行は、電力検査のインテリジェント時代の幕開けを告げる

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

...

...

キロメートル認識誤差5%未満の世界最先端の超長距離精密3Dセンシング技術をリリース。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

新しい報告書が確認:慎重に扱わなければ、人工知能は現実版「ブラックミラー」になる

新しい報告によると、私たちは人工知能革命の瀬戸際に立っている。この革命において、私たちが作り出すテク...

...

...

...

ChatGPTに「カスタムコマンド」機能が追加されました

海外メディアの報道によると、7月21日、OpenAIはユーザーにChatGPTの応答に対する強化され...

将来、人工知能が自発的な感情知能を獲得することは可能でしょうか?

人工知能の発展は人類の生存を脅かすという見方は以前からあった。人類の知能の典型的な反映である囲碁で、...

ディープラーニングツール: TensorFlow と NLP モデル

[[200204]]序文自然言語処理 (略して NLP) は、コンピューターが人間の言語を処理する方...

...

Tik Tok ダンスでは、実際の人物がカメラに映る必要はなく、1 枚の写真だけで高品質のビデオを生成できます。バイトダンスの新技術をCTOと一緒に体験する機会も

見て!今、あなたの前で踊っているのは 4 人の若い女性です。ショート動画プラットフォームで何人かのキ...

ニュースローン賞受賞者 宋 樹蘭: 視覚の観点からロボットの「目」を構築する

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

初心者が機械学習をすぐに始められるように、Colabリソースの完全なリストはこちらです。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

EUのAI法案は企業に厳しい規則と巨額の罰金をもたらす

EUが長らく議論されてきたEU AI法案を前進させ、AIの使用に関するガードレールを導入しようと最近...