⑴ブロックチェーンの暗号化は何ですか(ブロックチェーン暗号化アルゴリズムとは何ですか)
ブロックチェーンの対称暗号化とは何ですか? 非対称の暗号化とは何ですか?対称的な暗号化アルゴリズムは、むさぼり食い、復号化する際の同じ秘密鍵の使用を指します。 対称的な暗号化アルゴリズムとは対照的に、非対称暗号化アルゴリズムにはパブリックキーとプライベートキーが必要です。 公開鍵と秘密鍵はカップルです。
非対称暗号化は対称暗号化よりも優れています。 対称的に暗号化された通信の両当事者は、同じ秘密の鍵を使用します。
非対称暗号化、いくつかの秘密のキー、1つは暗号化用、もう1つは復号化用であり、公開鍵は公開されており、シークレットキーはそれ自体で保存されているため、同期は必要ありません。 コミュニケーション前。
P2P、暗号化、ネットワーク、プロトコルなどを含む。 直接収集します。 キーがオンラインで送信されると、傍受できます。 したがって、非対称の暗号化が使用されます。 2つのキー、秘密鍵がそれ自体に保持され、他の公開キーが明らかになります。 パブリックキーはオンラインで転送できます。 オフライントランザクションは必要ありません。 データの安全性を安全にします。上記の図に示すように、ノードA aをノットBにノードし、その時点で公開キーの暗号化が使用されます。 Knote Aは、独自の公開鍵からノードBの公開キーを受け取り、プレーンテキストデータであるCipherテキストを暗号化し、ノードBに送信します。 KnotBは独自の秘密鍵を使用して復号化します。
2。 a暗号テキストを解読します。
1。 率直に表現するために、メッセージが傍受される限り、この暗号化方法は解決できます。
2。 暗号テキスト2を取得するciphetext 1。 結び目Bが暗号テキストを受け取った後、最初にAの公開キーで解読して暗号テキスト1を維持し、次にBの秘密鍵でそれを解読してプレーンテキストを取得します。
1。 一般的に、私たちは皆、最も元のデータの署名に署名することを望んでいます。 署名が背後に設定されている場合、公開鍵が公開されているため、署名にはセキュリティがありません。
2。 メッセージを受信した後、ノードBは最初にbからの秘密鍵は、公開キーを復号化してから復号化します。
1。 したがって、セキュリティが最高です。
2。 Aの秘密鍵によって暗号化されたデータのみは、Aの公開鍵で正常にデコードできます。
2つの非対称暗号化の後、パフォーマンスの問題は比較的深刻です。
上記のデータによる操作の問題に基づいて、ニュース認証を導入しました。 ニュース認証後の暗号化プロセスは次のとおりです。
ノットAの前に、メッセージがメッセージを送信します。 プレーンテキストデータのハッシュ計算を実行する必要があります。 要約を受け取り、元のデータと同時に照明をノードBに送信します。 ノットBがメッセージを受信した場合、メッセージを解読します。 ハッシュサマリーと元のデータが分析され、元のデータの同じハッシュ計算が実行され、要約1が取得され、要約は要約1と比較されます。 もしそうなら、それが違う場合、それは操作されませんでした、それはそれが操作されたことを意味します。
プロセスの伝達では、Cipherテキスト2が操作されている限り、ハッシュとハッシュ1が最終的に終了します。
署名の問題は解決できません。 つまり、双方が互いに攻撃します。 彼が送るニュースを決して認めない。 たとえば、aはbにエラーメッセージを送信します。 しかし、拒否はそれ自体で送られませんでした。
(iii)プロセスでは、2つの当事者間の相互攻撃を解決する方法はありません。 それはどういう意味ですか? これは、Aから送信されたメッセージがKnot Aに良くないという事実に起因する可能性があり、後にAはメッセージが送信されなかったことを否定します。
この問題を解決するために、署名が導入されました。 ここでは、(ii)-4の暗号化方法をニュース署名と統合します。
上記の図では、結び目Aの秘密鍵を使用して、彼が送信した要約情報に署名し、署名 +オリジナルのテキストを暗号化し、Bの公開キーを使用して暗号化します。 Bが暗号を受け取った後、彼は最初にBS秘密鍵でデコードし、次にAの公開鍵でダイジェストを復号化します。 これは操作の問題を回避するだけでなく、両側間の攻撃を回避します。 情報に署名したので、拒否することはできません。
データをむさぼるときにパフォーマンスの問題を非対称的に解決するために、ハイブリッド暗号化がよく使用されます。 次の図に示すように、対称暗号化を挿入する必要があります。
データ暗号化が拡大すると、暗号化のために両当事者が共有する対称キーを使用します。 損失を避けるために、ネットワーク内の対称キーを転送しないようにしてください。 ここでは、共通の対称キーは、独自の秘密鍵と相手の公開鍵に基づいて計算され、データは対称キーで暗号化されます。 相手がデータを受信した場合、対称キーも計算し、暗号を解読します。
上記の対称キーは、Aからの秘密鍵とbの公開キーは一般に短時間で定義されているため、共通は一般的に定義されているため、対称キーが設定されています。 セキュリティを改善するために、最良の方法は、すべての相互作用に対して一時的な共通の対称キーを生成することです。 それでは、すべての相互作用にランダムな対称キーをどのように作成できますか?
ランダムに使用されているキーを暗号化に生成するにはどうすればよいですか?
送信機ノードAの場合、一時的な非対称キーカップルが送信されると生成され、次にノードBの公開キーと一時的な非対称的な秘密鍵に基づく対称キーを計算できます。 KAアルゴリズムKeyAgreement)。 次のように、データは共通ボタンの対称キーで暗号化されます。 次のように:
ノットBは、対称キー(ka -algorithm)を解析するノードAのランダムな公開キーです。 ノードAのキーキーと、計算されたノットBの秘密キーキー。 次に、対称キーを使用して機密データを使用します。
上記の暗号化方法にはまだ多くの問題があります。 時間が限られているため、能力があるため、一時的に無視されます。
どのような暗号化を使用する必要がありますか?
主に、送信されるデータのセキュリティレベルに基づいて考慮されます。 実際、重要なデータを認証して署名しないだけで十分ですが、非常に重要なデータには、比較的高いレベルの安全性を持つ暗号化ソリューションが必要です。
パスワードスイートは、ネットワークプロトコルの概念です。 主に、アイデンティティ認証、暗号化、ニュース認証(MAC)、キーエクスチェンジなどのアルゴリズムが含まれています。
ネットワーク全体の伝送プロセスでは、暗号スイートによると、以下のアルゴリズムのカテゴリは主に次のカテゴリに分割されます。 RSA。 これは、主にクライアントとサーバーの手を吹くときに認証に使用されます。
ニュース認証アルゴリズム:SHA1、SHA2、SHA3のように。 主にニュース消化に使用されます。
バッチ暗号化アルゴリズム:たとえば、AEは主に情報フローの暗号化に使用されます。
擬似ランダム番号アルゴリズム:たとえば、TLS1.2の擬似ランダム関数は、MACアルゴリズムのハッシュ関数を使用して、両方で共有されるマスターキーA 48バイトの秘密鍵を作成します。 パーティー。 メインキーは、セッションキーを作成するときにエントロピーのソースとして機能します(たとえば、Macの作成など)。
ネットワークでは、一般的に次の4つのレベルでメッセージを転送するには、メッセージの安全で信頼できる送信を確保するために暗号化が必要です。
ハンドシェイク/ネットワーク交渉フェーズ:
2つの当事者間の握手段階では、接続交渉が必要です。 主な暗号化アルゴリズムには、RSA、IE、ECDHなどが含まれます。
認証レベル:
認証認証、送信メッセージのソースを決定する必要があります。 使用される主な暗号化方法には、RSA、DSA、ECDSA(ECC暗号化、DSA署名)などが含まれます。 使用される主な暗号化方法には、RC4、AESなどが含まれます。
主な目的は、転送中にメッセージが操作されないようにすることです。 主な暗号化方法には、MD5、SHA1、SHA2、SHA3などが含まれます。 これは、楕円のパブリックキーとプライベートキーに基づいたアルゴリズムです。 官民キーを生成するために使用されます。
ECDSA:デジタル署名に使用される場合、デジタル署名アルゴリズムはそうです。 効果的なデジタル署名は、受信者にメッセージが既知の送信者によって作成されたと仮定する理由を与え、送信者がメッセージが送信されたこと(認証と紛れもなく)を否定できないこと、および送料プロセス中にメッセージが変更されていないことを示します。 ECDSA署名アルゴリズムは、ECCとDSAの組み合わせです。 主にID認証フェーズで使用されます。
ECDH:ECCアルゴリズムに基づいたホフマンツリーキーでもあります。 たまたま、コミュニケーションが中断されるとすぐにキーが消えます。 主に握手コンサルティングフェーズで使用されます。
ecies:ハイブリッド暗号化スキームとも呼ばれ、選択したプレーンテキストと選択されたパスワードに対してセマンティックセキュリティを提供する統合された暗号化スキームです。 ECIEは、関数のさまざまな関数を使用できます。 キーネゴシエーション関数(KA)、重要な微分関数(KDF)、対称暗号化スキーム(ENC)、ハッシュ関数(ハッシュ)、H-MAC関数(MAC)。
ECCは楕円暗号化アルゴリズムであり、主に、楕円形と秘密鍵に応じて楕円を生成し、不可逆的に生成する方法を説明しています。 ECDSAは主にECCアルゴリズムを使用して署名しますが、ECDHはECCアルゴリズムを使用して対称キーを作成します。 上記の3つはすべて、ECC暗号化アルゴリズムのアプリケーションです。 実際のシナリオでは、ハイブリッド暗号化(対称暗号化、非対称暗号化、署名テクノロジーなど)を使用することがよくあります。 ECIESは、基礎となるECCアルゴリズムによって提供される統合(ハイブリッド)暗号化ソリューションです。 これには、非対称暗号化、対称暗号化、署名の関数が含まれます。
metacharset = "utf-8"
この予約注文条件は、曲線に特異点が含まれていないことを確認する必要があります。
曲線パラメーターaとbが変化し続けると、曲線はさまざまな形をとります。 たとえば、
すべての非対称暗号化の基本原則は、基本的に式k = kgに基づいています。 Kは公開キーを示し、kは秘密鍵を表し、Gは選択されたベースポイントです。 非対称暗号化のアルゴリズムは、式を逆に計算できないことを確認することです(つまり、計算できない)。 *
ECCはどのようにパブリックキーと秘密鍵を計算しますか? ここで私はそれを私自身の理解に従って説明します。
ECCのコアアイデアは次のとおりです。 曲線でベースポイントGを選択し、ECC曲線でポイントKを取得し(秘密鍵として)、公開キーKを計算します。 kg。 また、公開キーKも曲線上にある必要があることを確認してください。 *
kgを計算するにはどうすればよいですか? KGを計算して、最終結果が不可逆的であることを確認しますか? これは、ECCアルゴリズムが解決しなければならないものです。
最初に、誤ってECC曲線、a = -3、b = 7を選択して、次の曲線を取得します。
この曲線では、私はたまたま2つのポイントを選択します。 問題を簡素化できます。 曲線でアンコールを計算できる限り、理論的に乗算を計算できます。 この曲線に計算を追加できる限り、理論的に乗算を計算し、式の値を理論的に計算できます。
曲線上の2つのポイントの追加を計算するにはどうすればよいですか? 不可逆性を確保するために、ECCは添加システムを曲線に適応させます。
現実には1+1 = 2、2+2 = 4ですが、ECCアルゴリズムでは、私たちが理解している追加システムは不可能です。 したがって、この曲線に適したユーザー定義の追加システムが必要です。
ecc定義図には、マシンはECC曲線と重複する(および2つのポイント)に重複する直線を見つけます。 これらの3つのポイントはP、Q、R。 +q+r =0。 ここで、0は軸上の0ポイントではなく、ECCの無限点です。 これは、インフィニティポイントが0ポイントとして定義されることを意味します。
同様の方法で、p+q = -rを受け取ることができます。 Rと-Rはx軸について対称的であるため、曲線上の座標を見つけることができます。
p+r+q = 0、したがって、上記の図に示すように、p+r = -q。
上記は、ECC曲線の世界でアンコールがどのように実行されるかを説明しています。
上の図からは、直線と曲線の間に交差が2つしかないことがわかります。 これは、直線が曲線の接線であることを意味します。 この時点でPおよびR.
dh p = r。
したがって、2p = -Qを取得します(非対称アルゴリズムの式k = kgに近づきます)。
乗算は計算できるという結論に達しましたが、点数が接線であり、2の乗算としてのみ計算できる場合にのみ、乗算は計算できます。
2を乗算のために任意の数に変更できる場合、これはECC曲線の乗算操作を実行でき、ECCアルゴリズムが非対称的暗号化アルゴリズムの要件を満たすことができることを意味します。
数の乗算をランダムに計算できますか? 答えはです。 つまり、DOT製品計算方法を意味します。
乱数kを選択してください。 K*Pとは何ですか?
すべてがコンピューターの世界でバイナリであることを知っています。 k = 151 = 10010111
の場合、2p = -q、kpはこの方法で計算されます。 これがいくつかの世代のゴリスムのポイントです。 したがって、この非対称暗号化方法が可能になるように、ECC曲線システムの下で乗算を計算できます。
なぜこの計算が不可逆的であるのか。 これには多くの控除が必要であり、私も理解していません。 しかし、私はこのように理解できると思います:
私たちの時計には一般的に時間スケールがあります。 1990年1月1日の午前0時、時計、分、分、2番目のポインターポイントに00:00:00に出発点を取得した場合。 しかし、一方で、私は時計の時間、分、秒針が00:00:00を示していると言いました。
ECDSA-シグネチャアルゴリズムは、基本的に他のDSASとRSAに似ており、どちらも秘密キーシグネチャと公開キーチェックを使用しています。 ただし、アルゴリズムシステムはECCアルゴリズムを使用します。 相互作用の両当事者は、同じパラメーターシステムを使用する必要があります。 署名の原則はその方法ですフォロー:
ベースポイントg =(x、y)として曲線の無限点を選択します。 秘密鍵として曲線上の小さなkを取り、k = k*gは公開キーを計算します。
署名プロセス:
乱数rを作成し、rgを計算します。
nachrichten m、rg、s受信者。
署名検証プロセス:
ニュースM、rg、s
メッセージに基づいてハッシュ値h
送信者の計算公開鍵k計算の計算はHg/S+XK/sで、計算結果はRGと比較されます。 同じ場合、レビューは成功します。
式推論:
hg/s+xk/s = hg/s+x(kg)/s =(h+xk)/gs = rg
原則を紹介する前に、ECCは拘束力のある法則と交換法、すなわちa+b+c = a+c+b =(a+c)+bを満たしていることを説明します。
共通の秘密鍵を生成する方法を説明するためのWikiの例を次に示します。
アリスとボブは通信する必要があり、両方の当事者には、同じパラメーターシステムに基づいてECCによって生成される前提、パブリック、プライベートキーがあります。 したがって、ECCがあり、共通のベースポイントGがあります。 生成するためのキーケーバーと公開キーKAが明らかにされています。
BOBは、公開キーアルゴリズムKB = KB*gを使用して、公開キーKBと秘密鍵KBおよびパブリックKBを公開します。
コンピューティングECDHレベル:
Aliceは計算式q = Ka*kbを使用してシークレットキーを計算します。
ボブは計算式q '= kb*kaを使用して秘密のキーq'を計算します。 一緒に使用される
q = kakb = ka*kb*g = ka*kb = ka*kb*ka = q '
両当事者によって計算された一般的な秘密の鍵は開示することはできず、Qで暗号化することができます。 Qを共同で使用したキーと呼びます。
Ethereumでは、ECIEC暗号化カバーが使用されます。 使用されています。
最初に、EthereumのUDP通信の構造は次のとおりです。
Sig署名情報は秘密鍵で暗号化されます。 MACはメッセージ全体の消化であり、PTYPEはメッセージのイベントのタイプであり、データはRLPによってエンコードされた伝送データです。
そのUDPの暗号化、認証、および署名モデル全体が次のとおりです。 暗号化方法が割れ次第、ブロックチェーンのデータセキュリティに疑問視され、ブロックチェーンのタンク性が利用できなくなりました。 暗号化アルゴリズムは、対称暗号化アルゴリズムと非対称暗号化アルゴリズムに分割されます。 ブロックチェーンは、最初に非対称暗号化アルゴリズムを使用します。 非対称暗号化アルゴリズムのパブリックキーの暗号化システムは、一般に、それが基づいている問題に基づいて、3つのカテゴリに分割されます。 まず、ブロックチェーン暗号化スキルの導入-cc)一般に対称暗号化と非対称暗号化に分割されます。 非対称暗号化とは、セキュリティ要件と所有権のレビューを満たすために、ブロックチェーンに統合された暗号化スキルを指します。 非対称暗号化は、通常、暗号化と復号化プロセスで、公開キーとプライベートキーとして2つの非対称パスワードを使用します。 非対称キーペアには2つのプロパティがあります。 1つはキー(パブリックキーまたは秘密鍵)が暗号化され、もう1つのキーのみを解読できるということです。 第二に、公開鍵は他の人に明らかにすることができますが、秘密鍵は機密であり、他の人は公開鍵を介して対応する秘密鍵を計算することはできません。 非対称的な暗号化は、一般に3つの主要なタイプに分けられます:多数の分化の問題、個別の対数問題、楕円曲線の問題。 多数の分化の問題クラスは、暗号化された数字としての2つの多数の素数の積の使用に関連しています。 素数の発生は不規則であるため、継続的なテスト計算により解決策のみを見つけることができます。 離散対数問題クラスとは、離散対数の難しさと関数を持つ強力な使い捨てに基づいた非対称分散暗号化アルゴリズムを指します。 楕円曲線は、平面楕円曲線の使用に関連して非対称の特別な値のセットを計算し、ビットコインはこの暗号化アルゴリズムを使用します。 ブロックチェーンでの非対称暗号化のシナリオの使用には、主に情報暗号化、デジタル署名、登録認証が含まれます。 (1)情報暗号化シナリオでは、送信者(Aを示します)は、受信者の公開鍵(Bを表す)で情報を暗号化し、Bに送信します。 これは、ビットコイントランザクション暗号化のシナリオです。 (2)デジタル署名シナリオでは、送信者Aは独自の秘密鍵を使用して、情報を解読し、A。 によって情報が送信されることを確認するために、B。 Bに情報を暗号化して送信します。 (3)登録認証のシナリオでは、クライアントは秘密鍵を使用してログイン情報をサーバーに暗号化して送信し、サーバーがクライアントの公開キーを使用して認証ログイン情報を復号化します。 上記の暗号化計画の違いに注意してください。 情報暗号化は、情報の安全性を確保するための公開キーの暗号化と秘密鍵の減少です。 本物の秘密鍵暗号化、公開鍵の減少。 ビットコインシステムを例にとると、非対称暗号化メカニズムを図1に示します。 ビットコインシステムは、通常、オペレーティングシステムの下部にある乱数ジェネレーターにアクセスすることにより、秘密鍵として256ビットのベース番号を秘密鍵として生成します。 ビットコインからのプライベートキーの合計量は大きく、すべてのプライベートキールームを渡ってビットコインからプライベートボタンを取得することは非常に困難です。 そのため、パスワード科学は確実です。 簡単な識別のために、256ビットのビットコインプライベートキーを使用しますSHA256-HASHアルゴリズムとBase58は、ユーザー向けに簡単に認識して書き込むことができる50文字を持つ秘密鍵を形成するように変換されました。 ビットコインの公開キーは、2つの65バイト数であり、楕円形のコーナリングGorithm SECP256K1を介して秘密鍵によって生成されます。 公開キーを使用して、ビットコイントランザクションで使用されるアドレスを生成できます。 生産プロセスは、公開キーがSHA256とRIPEMD160によって初めて水分補給されており、20バイトの複合結果(つまり、H。 Hash160)を作成し、SHA256-HashアルゴリズムとBase58を介して変換して33333 - チャータービットコインアドレス。 「どのように不可逆的な」という公共の世代、つまり秘密鍵は公開鍵から導き出すことはできません。 ビットコインのパブリックボタンとプライベートボタンは通常、ビットコインレターのファイルに保存され、プライベートキーが最も重要です。 秘密鍵を失うということは、対応するアドレスですべてのビットコインプロパティを失うことを意味します。 既存のビットコインおよびブロックチェーンシステムでは、マルチシグナルなどのますます敏感で混oticとしたシナリオを満たすために、実用的な使用要件に基づいてマルチプライベートのキー暗号化スキルが導き出されました。