ブロックチェーンの暗号化
序文: ブロックチェーンについて語ることは暗号化と切り離せません。一般的に、ブロックチェーン テクノロジーは、ブロック チェーン データ構造を使用してデータを検証および保存し、分散ノード式アルゴリズムを使用してデータを生成および更新し、暗号化を使用してデータ送信とアクセスのセキュリティを確保し、自動スクリプトを使用して新しい分散インフラストラクチャとコンピューティングを実行します。コードで構成されるスマート コントラクトを通じてデータをプログラミングおよび操作するためのパラダイム。ブロックチェーンの中核は、データブロックを時系列に連続接続して結合した連鎖データ構造と、暗号によって改ざん・偽造不可能が保証された分散台帳です。これを要約すると、ブロックチェーンには分散ストレージ、コンセンサスメカニズム、暗号原理、スマートコントラクトという 4 つの不可欠なコアテクノロジーがあることがわかります。今日は主に暗号の観点からブロックチェーンの起源についてお話します。
【シーザー暗号】
暗号化は、長く魅力的な歴史を持つ古代の学問です。軍事および外交上の通信を保護するためにこの言語が使用されたのは、文字が発明されたばかりの数千年前の古代にまで遡ります。何千年もの間、暗号化は継続的に進歩してきました。今日の情報化時代の急速な発展に伴い、暗号の役割はますます重要になっています。それは軍事、政治、外交での使用に限定されず、人々の生活と密接に関係しています。人々がオンラインで買い物をしたり、企業と通信したり、クレジットカードを使用したりする場合、人々は皆、人々の個人情報や個人情報を保護するために暗号化の知識を必要とします。もちろんプライバシーはもちろんですが、私たちが懸念しているブロックチェーン技術にとって、暗号化はその基礎として存在します。
シーザーは、軍事利用のために換字暗号を初めて使用し、それを文書化した人でした。カエサルは、自身の偉業を称える『ガラ・ガリア』の中で、包囲下にあり降伏寸前だったキケロに秘密の手紙を送ったことについて述べている。カエサルは暗号文を非常に好んでおり、後世の『カエサル伝』にはカエサルが使用した暗号文の一種が詳細に記録されている。そして、この暗号化方式は現在でも使用されています。
シーザー暗号の表現方法は、各文字をアルファベットの 3 桁後の文字に置き換えます。これは置換暗号化の技術であり、平文内のすべての文字がアルファベットの固定数値だけ後方 (または前方) にオフセットされ、暗号文に置き換えられます。たとえば、オフセットが 3 の場合、すべての文字 A は D に、B は E に置き換えられます。つまり、文字 A は文字 D に置き換えられ、文字 B は文字 E に置き換えられます。たとえば、カエサルが暗号文で手紙を書いたとき、「アブロード」はドゥルジに置き換えられました。このようにして、敵には理解できない暗号文が得られる。
そのようなコマンドがある場合:
RETURN TO ROME
シーザー暗号で暗号化すると、次のようになります。
UHWXUQ WR URPH
この指示は敵に傍受されても言葉に意味がないので漏れることはありません。
さて、この暗号化方法は少し単純かもしれないように思えますが、歴史に記録されている暗号化キーを使用した最初の例として、暗号化キーは送信者と受信者によって共有され、現代の暗号化の起源を示しています。シーザー暗号から、20 世紀に公開鍵が発明される数千年前まで、暗号の原理は同じであると言えます。ビットコインやブロックチェーンの暗号化方式はシーザー暗号の原理とは異なり、より多くの公開鍵が存在します。今日に至るまで、多くのスパイ映画を見ると、多くのエージェントやスパイが依然としてこの方法を使って情報を伝達していることがわかります。
ここでは、特に言及する価値のある用語がいくつかあります。暗号学者は通常、元の情報を記述するために使用されたアルファベット、つまり通常のアルファベットを平文コード表と呼び、平文文字を置き換えるために使用されるものを暗号表と呼びます。これがパスワードという言葉の由来です。次に 3 ビット前に移動します。この「3」がキーと呼ばれます。もちろん、数学を勉強したことのある人なら、ここに 26 個の文字があることはわかりますが、それらを順番に移動するだけで、各文字には 25 の異なる選択肢、つまり 25 個のキーがありすぎます。アルゴリズムは、さまざまな試みを通じて暗号を解読するプロセスです。
中国の前漢時代に相当する紀元前100年頃には、カエサルの暗号が解読される可能性はほぼゼロだったと考えられる。暗号化において、シーザー暗号は最も単純で最もよく知られた暗号化技術の 1 つです。シーザー暗号は、最新の ROT13 システムでも使用されています。しかし、アルファベット置換を使用する他の暗号化技術と同様に、シーザー暗号は非常に解読されやすく、実際のアプリケーションでは通信のセキュリティを保証できません。
【複数テーブル置換】
最も初期の古典的な暗号システムには、主に単一テーブル置換暗号システムと複数テーブル置換暗号システムが含まれます。古典暗号における 2 つの重要なシステムとして、古代の歴史において世界のさまざまな地域で広く使用されてきました。シーザー暗号は、代表的な単一表置換暗号です。
単一表置換暗号は、手作業では計算できない膨大な数の鍵があるため、1000 年間解読不可能と考えられてきました。しかし、社会の発展とテクノロジーの進歩に伴い、東方から来たアラブ人がより新しいテクノロジーを発見し、解けないと思われていたこの暗号を解読する近道を見つけ、統計学者と宗教学者が共同でこの3つを完成させました。
これは間接的には中国での製紙技術の発明とイスラム文明の急速な普及のおかげでもあります。本の需要が急増しているため、誰かがそれを校正する必要があり、この仕事に最も適任なのは当然神学者です。校正の際、ムハンマドの黙示録に使われている単語の頻度も数えており、この黙示録に新しい単語があれば、その出現年はもっと後になるはず、という具合です。調査の過程で、一部の文字が他の文字よりも頻繁に出現することもわかりました。
英語を勉強したことのある私たちは、文字 e が最も一般的で、文字 t と a がそれに続くことを知っています。シーザー暗号に従って暗号化されている場合、パスワード文字は通常のコード文字に対応し、パスワード文字に最も頻繁に出現する文字は通常のコード文字 E に対応する必要があり、以下同様になります。正しい解読方法をすぐに見つけるために、多数のキーを使用します。誰が文字の頻度と暗号の解読を結びつけたのかを検証することは不可能ですが、確かなことは、アラブ人は西暦9世紀にすでにシーザー暗号の解読に非常に優れていたということです。
紀元7世紀から12世紀にかけてアラブ人は素晴らしい文明を築き上げましたが、それに比べて当時のヨーロッパはまだ無知で後進的で貧しい国でした。イスラム文明の繁栄は、芸術、科学、その他の文化の繁栄をもたらしただけでなく、社会の統治と運営も非常に秩序正しく効率的でした。当時の管理者らは、政務の重要事項を暗号化するだけでなく、税金の記録にも暗号を利用しており、「大臣ハンドブック」などの管理文書においても暗号に関する技術的な議論を続けていた。まさに巨大な需要と科学技術の進歩のおかげで、アラブ人はついに置換暗号という千年問題を解読する機会を得たのだ。
単一テーブル置換の解読は非常に簡単です。単一テーブル置換では、文字名の変更を除いて、文字の頻度、文字の繰り返しパターン、文字の組み合わせなどの統計的特徴が得られるからです。これらの変化しない統計特性に基づいて、単一テーブルの置換を解読できます。単一テーブル置換と比較して、複数テーブル置換暗号は解読がはるかに困難です。
マルチテーブル置換は、フィレンツェの建築家アルベルティによって 1467 年頃に発明されました。多表置換暗号は、さらに非周期多表置換暗号と周期多表置換暗号に分類される。多表置換暗号では、複数の文字が暗号として使用されます。暗号化または復号化を高速化するために、通常、すべての文字は、暗号化ではタブローと呼ばれるフォームに書かれます。この形式は、26 個の英語文字すべてをこの方法で入力できるため、通常は 26×26 になります。フォームに記入して次回使用する文字を選択する方法は、異なる複数文字置換暗号間の定義です。複数文字置換暗号は、置換の可能性が多く、暗号文を長くする必要があるため、単一文字置換暗号よりも解読が困難です。
これらの中で最も有名なのは、1585 年にベラッツォによって導入されたバージニア暗号です。 1863年まで解読されなかった。フランス人はこれを「解読不可能な暗号」(フランス語: le chiffre indéchiffrable)と呼んでいます。この暗号はブライス・デ・バージニアによって作成されたと誤って信じられていたため、バージニア暗号と呼ばれています。
バージニア暗号では、表の最初の行に 26 文字だけを直接入力する必要があり、その後の各行の文字が 1 スペース分左にシフトされます。 (これはテーブルの走査と呼ばれ、数学的には各列は 26 に合同です。) この暗号を使用するには、キーワードをキーとして使用する必要があります。キーワードは使い果たされるたびに再度繰り返されます。キーワードが「CAT」であると仮定すると、平文の最初の単語は「C」で暗号化され、2 番目の単語は「A」で暗号化され、3 番目の単語は「T」で暗号化され、その後 C 暗号化に戻り、すべての暗号化が繰り返されます。時間。次に、右のパスワード表に従って暗号化しますが、例えばBALLがCATをキーワードにするとDAENに暗号化され、同じ「L」でも別の文字に暗号化されることがわかります。実際には、バージニア暗号のキーワードは非常に長いです。
平文文字ごとに異なる置換テーブル (またはキー) を使用する非周期マルチテーブル置換暗号は、ワンタイム パッド暗号と呼ばれ、暗号化テーブルが十分に長い限り、これが理論的に解読できない唯一のパスワードです。この種の暗号は平文の特徴を完全に隠すことができますが、必要な鍵の量が平文メッセージの長さと同じであるため、広く使用するのは困難です。
鍵の量を減らすために、実際のアプリケーションでは周期的な複数テーブル置換暗号がよく使用されます。 16 世紀には、さまざまなマルチテーブル オートキー暗号が使用されましたが、最も顕著なのはフランスの暗号です。http://B.deVigtnère の Vigenère 暗号システム。よく知られている多表置換暗号には、Vigenère、Beaufort、Running-Key、Vernam、およびローター マシンなどがあります。暗号文のみの分析は、単一テーブル置換暗号および複数テーブル置換暗号に対して実行可能です。単一テーブル置換暗号と複数テーブル置換暗号はどちらも単一の文字を置換対象として使用し、複数の文字が置換されるたびに複数文字置換暗号になります。 1854 年頃、L. プレイフェアは、イギリスの科学者 C. ホイートストンによって発明されたプレイフェア暗号をイギリスで宣伝しました。これは、第一次世界大戦で英国によって使用された最初の多文字置換暗号でした。複数の文字を置換する利点は、文字の固有頻度を隠蔽したり平準化したりすることが容易であり、統計分析に対する耐性に有利です。この種のパスワードには、主に Playfair パスワード、Hill パスワードなどが含まれます。
1920 年代までに、暗号化を自動的に処理するさまざまな機械的暗号化デバイスが発明されました。ほとんどは車輪の概念に基づいています。 1918 年、アメリカの EH ヘバーンは最初のロータリー マシンを作成しました。これは、単一アルファベットの置換を生成するために有線接続で改造された初期のタイプライターに基づいており、出力はオリジナルのライトアップ命令によって行われました。最も有名な車輪装置は、ドイツのシェルビウス社が発明、製造したエニグマです。第二次世界大戦ではドイツ軍によって使用されました。しかし、それは第二次世界大戦中に解読されました。
【現代の暗号】
現代の暗号学は、情報の送信元から受信者までの安全な送信と安全な保存を研究しており、「自分と敵を知る」ことを研究する科学です。その中心となるのは暗号化と暗号解析です。前者は敵や敵対者、つまり「腹心」に解読されにくい安全なパスワード体系の確立に努めるのに対し、後者は敵や敵対者の既存のパスワード体系を解読する、つまり「秘密を知る」ことに努める。敵"。人間が記録した通信コードは紀元前 400 年に始まりました。古代ギリシャ人は順列暗号の発明者でした。 1881 年に、世界初の電話セキュリティの特許が発行されました。電信とラジオの発明により、暗号化は通信分野において避けられない研究テーマとなりました。
第二次世界大戦初期、ドイツ軍は「エニグマ」という暗号機を使用していましたが、連合国軍はドイツ軍が暗号化した情報については数年間何もすることができず、「エニグマ」という暗号機は解読不可能と思われていました。しかし、連合軍の暗号解読者のたゆまぬ努力により、暗号機「エニグマ」は解読され、連合軍はドイツ軍の多くの秘密を掌握しましたが、ドイツ軍はそれについて何も知りませんでした。
太平洋戦争中、米軍は日本海軍の暗号機を解読し、山本五十六艦隊司令官が指揮官に発した命令を理解し、ミッドウェー島で日本海軍を完敗し、決戦に導いた。太平洋戦争の転換点、その直後、山本五十六が戦死した。それどころか、枢軸国の中で第二次世界大戦初期に暗号解読で輝かしい実績を残したのはドイツだけだった。したがって、暗号は戦争において非常に重要な役割を果たしていると言えます。
エンコーディング暗号化は、主に情報の暗号化、情報認証、デジタル署名、および鍵管理の研究に特化しています。情報の暗号化の目的は、読み取り可能な情報を認識できない内容に変換し、情報を傍受した人がその情報を読み取ることができないようにすると同時に、情報の受信者が受信した情報が改ざんされていないか、暗号化された情報に置き換えられていないかを確認できるようにすることです。敵、デジタル署名は情報です。受信者は、受信したメッセージが本当に意図した送信者からのものであるかどうかを判断できます。メッセージ暗号化のセキュリティはキーに依存するため、キー管理はメッセージ暗号化の最も難しい部分です。歴史的に、各国の軍事諜報機関は、暗号化アルゴリズムを解読するよりも、他国の鍵管理方法を追跡することに成功してきました。
暗号解析はコーディングの手法とは異なり、数学的論理の不変の真実に依存するのではなく、経験と客観的世界によって認識される事実に依存する必要があります。したがって、暗号解読は人々の創意工夫を必要とし、より困難です。
現代の暗号化は、急速に発展している応用科学です。インターネットの急速な普及に伴い、人々は大量の情報を送信するためにインターネットに依存していますが、ネットワーク上のこれらの情報の送信はオープンです。したがって、個人の利益に関連する情報は、オンラインで送信する前に暗号化する必要があり、これは最新の暗号化技術と切り離すことができません。
1976 年に、ディフィーとヘルマンは、「暗号化の新しい方向性」で有名な DH キー交換プロトコルを提案し、公開キー暗号化システムの出現を特徴づけました。 Diffie と Hellman は秘密チャネルに基づかない鍵配布を初めて提案し、そこに DH プロトコルの大きな意義があります。
PKI (公開キー インフラストラクチャ) は、公開キーの概念とテクノロジを使用してセキュリティ サービスを実装および提供するユニバーサル セキュリティ インフラストラクチャです。 PKI 公開キー インフラストラクチャの主なタスクは、オープン環境でオープン ビジネスにデジタル署名サービスを提供することです。
1960 年代から 1970 年代にかけてのコンピュータと通信システムの普及により、デジタル情報保護とさまざまなセキュリティ サービスに対する個人の需要が高まりました。 IBM の Feistel は 1970 年代初頭に研究を開始し、1977 年にピークに達しました。彼の研究結果は、非機密情報を暗号化するための米国連邦情報処理標準、つまり史上最も有名な暗号化システムであるデータ暗号化標準 DES として採用されました。
1977年に米国国家標準局が「米国データ暗号化標準(DES)」の導入を発表すると、暗号に関する軍部の独占は崩れ、民間勢力が暗号の研究と応用に全面的に介入するようになった。民間の暗号化製品が市場で大量に販売されており、使用されている暗号化アルゴリズムには DES、IDEA、RSA などが含まれます。
DES は、現在でも世界中の多くの金融機関が安全な電子商取引を行うための標準的な方法であり、これまでのところ世界で最も広く使用され、人気のあるブロック暗号アルゴリズムです。しかし、コンピュータ ハードウェアの発展と計算能力の向上により、DES はもはや安全ではなくなりました。 1997 年 7 月 22 日、電子フロンティア財団 (EFF) は 25 万ドルのコンピュータを使用して 56 ビット DES を 56 時間で解読しました。 1998 年 12 月、米国は DES を使用しないことを決定しました。米国立標準技術研究所 (NIST) は、ベルギーの研究成果「Rijndael」を使用した新しい暗号化標準 AES を有効にしました。上記の 2 つの段階で使用される暗号化方式は、暗号化キーと復号化キーが同じであるため、対称暗号化システムと呼ばれますが、暗号技術の発展の第 3 段階に入ると、非対称暗号化が登場します。暗号システム。
既存の暗号システムは何万もあり、それらはすべて異なります。ただし、それらはすべて秘密キー暗号化 (DES 暗号化など) と公開キー暗号化 (公開キー暗号化など) に分類できます。前者の暗号化プロセスと復号化プロセスは同じであり、使用される鍵も同じですが、後者では各ユーザーが公開秘密鍵を持ちます。
【マルチチェーンと非対称暗号化】
対称暗号化は、暗号化と復号化に同じキーを使用することを指すため、対称暗号化と呼ばれます。対称暗号化には、秘密キーとして機能する秘密キーが 1 つだけあります。一般的な対称暗号化アルゴリズム: DES、AES、3DES など。
非対称暗号化とは、暗号化と復号化では異なる秘密鍵を使用し、一方を公開鍵として、もう一方を秘密鍵として使用することを意味します。公開キーで暗号化された情報は、秘密キーでのみ復号化できます。秘密キーで暗号化された情報は、公開キーでのみ復号化できます。一般的な非対称暗号化アルゴリズム: RSA、ECC。
非対称暗号化アルゴリズムでは、公開キー (publickey) と秘密キー (privatekey) の 2 つのキーが必要です。公開鍵と秘密鍵はペアであり、データが公開鍵で暗号化されている場合は、対応する秘密鍵のみを使用して復号化でき、データが秘密鍵で暗号化されている場合は、対応する公開鍵のみを復号化できます。データを復号化するために使用されます。暗号化と復号化には 2 つの異なるキーが使用されるため、このアルゴリズムは非対称暗号化アルゴリズムと呼ばれます。機密情報の交換を実現するための非対称暗号化アルゴリズムの基本プロセスは、当事者 A が鍵のペアを生成し、一方を公開鍵として他の当事者に開示する、暗号化して当事者 A に送信する、当事者 A が別の秘密鍵を使用する、というものです。暗号化された情報を復号化するために独自に保存されたキー。
一方、当事者 A は、当事者 B に送信する前に、当事者 B の公開キーを使用して機密情報に署名し、その後、当事者 B が独自の秘密キーを使用してデータを検証することができます。
当事者 A は、公開鍵で暗号化された情報を復号化するためにのみ秘密鍵を使用できます。非対称暗号化アルゴリズムの機密性は比較的良好であり、エンド ユーザーがキーを交換する必要がなくなります。
非対称暗号化システムの特徴:アルゴリズムの強度が複雑で、安全性はアルゴリズムと鍵に依存しますが、アルゴリズムが複雑なため、暗号化と復号の速度は非対称暗号化システムほど速くありません。対称暗号化と復号化。対称暗号方式の鍵は1種類のみで非公開のため、復号したい場合は相手に鍵を知らせる必要があります。したがって、その安全性を確保するということは鍵の安全性を確保することであり、非対称鍵方式では鍵が2つあり、そのうちの1つは公開されているため、対称暗号のように相手の鍵を送信する必要がありません。このようにして、セキュリティが大幅に強化されます。
EKT では、非対称暗号化のメカニズムと、公開キーと秘密キーを組み合わせたルーティング戦略を使用して、ビザンチン フォールト トレランスを実現します。 EKTのマルチチェーンは、「マルチチェーン分割統治」という新しいスキームを採用し、各コントラクトの正常な動作を保証するパブリックチェーンを再設計し、ユーザー情報の保存には非対称暗号化を使用します。およびサブチェーン 情報は共有されますが、機能的に分離されています。このイノベーションにより、アーキテクチャが大幅に簡素化され、データ処理のプレッシャーが軽減され、一方のチェーン上のトラフィックの急増がもう一方のチェーンの効率に影響を与えず、チェーン上で実行されるビジネスが他のビジネスの干渉を受けないよう効果的に保証されます。リソースの分離が実現されます。
EKT では、トークン チェーンは並列マルチチェーン構造、マルチチェーンおよびマルチコンセンサスであり、ユーザー ベースを共有します。 EKT のトークンはチェーン上の属性です。utxo モデルを使用するチェーン utxo に他のトークンがあるのと同様に、転送イベントも組み込まれています。
実際、EKT が解決する中心的な問題の 1 つは、Dapp 開発の現在の難しさは、イーサリアムの Solidity を使用して開発する場合、イーサリアムのロジック全体を学習する必要があり、開発時にさまざまな最適化ソリューションを検討する必要があることです。従来の C/S 構造は 1 日で作成されますが、イーサリアムで作成するには数週間かかる場合があり、開発者にとっては非常に不親切です。
たとえば、C/S モデルの場合、非対称暗号化サービスを作成するには次のものが必要です。
1. 秘密鍵のペア pub/pri を計算できるサーバーを設計します。秘密キーは秘密にし、公開キーは公開します。
2. サーバーに要求するクライアントを設計する場合は、サーバーの公開キーの公開鍵を取得します。
3. クライアントは、AES を通じて対称暗号化キー X を計算します。次に、X は pub を使用して暗号化されます。
4. クライアントは、暗号化された暗号文をサーバーに送信します。サーバーは、pri 復号化を通じて X を取得します。
5. 最後に、双方間の通信メカニズムが設計され、対称鍵 X を使用して対称暗号化アルゴリズムを使用して暗号化および復号化されます。
この一連の手順を Dapp/パブリック チェーン開発者が作成する場合、ブロックチェーン機能を実際に開発する前に、これらの退屈だが一般的な手順によって多量のエネルギーとリソースを消費することは間違いありません。
EKT の中心的なアイデアは、開発者が DAPP を実行できるメイン チェーンを簡単に開発できるようにコミュニティ メカニズムを設計し、残りは EKT に引き継がれることです。EKT の「1 つのチェーン、1 つの主要通貨、マルチチェーン、マルチコンセンサス」メカニズムは、後続のブロックチェーン プロジェクトの開発に非常に便利であり、ブロックチェーンの適用可能なあらゆるアプリケーション シナリオで使用できます。 EKT は基礎となるブロックチェーン メカニズムのセットを提供し、他のブロックチェーン プロジェクトは EKT のメイン チェーン コードに基づいて独自のメイン チェーンを簡単にデプロイできます。 EKT で書かれたブロックチェーン プロジェクトは、各インターフェイスが非常にシンプルで、多数の並列メイン チェーン上でデプロイおよび実行されるため、セキュリティの問題についてあまり心配する必要はありません。メインチェーンをデプロイする場合、独自のメインチェーンのトークンを柔軟に発行し、コンセンサスアルゴリズムを選択できます。新しく展開されたメインチェーンは、EKT マルチチェーン技術のエコロジー全体に参加することもでき、EKT エコロジーのユーザーリソースを共有し、トークンを EKT メイン通貨や他のメインチェーンのトークンと交換および流通させることもできます。
EKT メインチェーン上の各ノードの公開鍵は公開されています。これは、効率、セキュリティ、分散化のバランスをとったソリューションです。現在、トークンは一般にスマート コントラクトとして定義されていますが、事前定義されたイベントを持つ「オブジェクト」に変換されると、この「オブジェクト」は独自のパラメーター (合計金額、コンセンサス メカニズムなど) を持つことができます。より良いセキュリティ体験をもたらします。トークンを受け入れるアドレスには、通常のユーザー アドレスとコントラクト アドレスの 2 種類があり、トークンを受信したコントラクト アドレスは、単純な状態計算やトークン転送のための非チューリング完全コントラクト言語を実行できます。
上記は、ブロックチェーン暗号化に関する私の考えの一部と、EKT のマルチチェーンおよびマルチコンセンサスを設計する際の非対称暗号化の最下層の構築に関する考慮事項の一部です。質問したり、一緒に議論したりすることを歓迎します。
【SHA-1失敗】
ブロックチェーンプレイヤーはハッシュという言葉に精通しているはずです。
ハッシュ (学界では一般に「ハッシュ」と訳されますが、プログラマによって直接「ハッシュ」と音訳されます)。その操作は、ハッシュ アルゴリズムを通じて任意の長さの入力 (プリマッピング プリイメージとも呼ばれる) を固定長の出力に変換することです。 、出力はハッシュ値です。この変換は圧縮マップです。つまり、ハッシュ値のスペースは通常、入力のスペースよりもはるかに小さく、異なる入力が同じ出力にハッシュされる可能性があるため、ハッシュから一意の入力値を決定することは不可能です。価値。簡単に言うと、任意の長さのメッセージを固定長のメッセージダイジェストに圧縮する機能です。
すべてのハッシュ関数には基本的な特性があります。2 つのハッシュ値が (同じ関数によると) 同一でない場合、2 つのハッシュ値の元の入力も同一ではありません。この性質はハッシュ関数の決定的な結果であり、この性質を持つハッシュ関数は一方向ハッシュ関数と呼ばれます。しかし一方で、ハッシュ関数の入力と出力は一意に対応しているわけではなく、2つのハッシュ値が同じであれば、2つの入力値は同じである可能性が高くなりますが、異なる場合もあります。この状況は「ハッシュ衝突」と呼ばれます。これは通常、異なる長さの 2 つの入力値が意図的に同じ出力値を計算することです。ハッシュ値を計算するためにデータを入力し、入力値を部分的に変更すると、強力な難読化特性を持つハッシュ関数はまったく異なるハッシュ値を生成します。
ハッシュ関数は次の条件を満たす必要があります。
a. 決定的: ハッシュ関数のアルゴリズムは決定的アルゴリズムであり、アルゴリズムの実行プロセスでは乱数が導入されません。これは、同じメッセージのハッシュ結果が同じでなければならないことを意味します。
b. 効率: 任意のメッセージ m が与えられると、HASH(m) を迅速に計算できます。
c. ターゲットの衝突耐性: 任意のメッセージ m0 が与えられた場合、HASH(m0)=HASH(m1) となる別のメッセージ m1 を見つけるのは困難です。
d. 一般化された衝突耐性: HASH(m0) = HASH(m1) となるような、m0 が m1 に等しくない 2 つのメッセージを見つけることは困難です。
暗号化では、d 条件が満たされない場合、ハッシュ関数はもはや安全ではないと一般的に考えられています。実際には、c 条件がある程度満たされない場合、ハッシュ関数はもはや安全ではないと一般に考えられています。もちろん、c の条件がまったく満たされない場合、このハッシュ関数は完全に安全ではないため、直接破棄する必要があります。
ハッシュの一般的な実用的な応用はセキュア ハッシュ アルゴリズム (英語: Secure Hash Algorithm、略称 SHA) と呼ばれ、FIPS 認定のセキュア ハッシュ アルゴリズムおよび暗号化ハッシュ関数のファミリーです。デジタル メッセージに対応する固定長の文字列 (メッセージ ダイジェストとも呼ばれる) を計算できるアルゴリズム。そして、入力メッセージが異なる場合、それらが異なる文字列に対応する確率は非常に高くなります (以前は 99.99999999% に限りなく近いと考えられていました。なぜ以前はそうであったかについては、後で説明します)。
暗号化は、長く魅力的な歴史を持つ古代の学問です。軍事および外交上の通信を保護するためにこの言語が使用されたのは、文字が発明されたばかりの数千年前の古代にまで遡ります。何千年もの間、暗号化は継続的に進歩してきました。シーザー暗号に始まり、人々は新しい暗号アルゴリズムを開発する際に、既存の暗号アルゴリズムを精力的に解読しています。クラッカーにとって、パスワードの難易度が高いほど、その背後にある秘密の価値が高まるからです。 SHA ファミリの 5 つのアルゴリズムは SHA-1、SHA-224、SHA-256、SHA-384、および SHA-512 です。後者は、米国国家機関によって制定された SHA-2 と総称されることもあります。 Security Agency (NSA) 米国標準技術研究所 (NIST) によって設計および発行され、米国政府の標準です。また、多くのインターネットや電子製品の重要なゲートキーパーでもあります。
SHA シリーズのハッシュ関数ファミリーは最もよく知られたハッシュ関数ファミリーであり、MD5、SHA-1、SHA-2 が広く使用されており、ビットコインでは SHA-2 シリーズに属する SHA-256 ハッシュ アルゴリズムが使用されています。 MD4 アルゴリズムは 1990 年に提案されましたが、重大なセキュリティ問題がすぐに発見され、1992 年に MD5 アルゴリズムに置き換えられました。 MD5 アルゴリズムは、10 年以上にわたってソフトウェア業界で広く使用されてきました。2004 年までは、中国の暗号学者、Wang Xiaoyun が国際暗号会議 (CRYPTO) で MD5 アルゴリズムの衝突を実証し、最初の例を示しました。攻撃の複雑さは非常に低く、通常のコンピュータでは数秒しかかかりません。 2005 年に、Wang Xiaoyun 教授と彼の同僚は、SHA-1 アルゴリズムの衝突アルゴリズムを提案しました (Finding Collisions in the Full SHA-1, CRYPTO 2005)。しかし、計算量は 2 の 69 乗であり、これを実装するのは困難です。実際の状況。
昨年(2017年)の2月24日まで、GoogleはSHA-1ハッシュ衝突の初例を発表するという驚くべき実験結果を発表していましたが、論文修正の結果は19時間遅れでした。なぜなら、簡単に言えば、Googleの仕事は基本的にSHA-1の死刑宣告を宣告したからである。この作品が公開される前は、ほとんどの Web サイト https の証明書には SHA-1 アルゴリズムの使用が含まれていました。GitHub やさまざまなクラウド同期サービスを含む多くのバージョン管理ツールは、ファイルを区別するために SHA-1 を使用していました。多くのセキュリティ証明書や Yes 署名もまた、SHA-1 を使用していました。一意性を保証する SHA-1。長い間、SHA1 は非常に安全であり、少なくとも衝突事例は見つかっていないと人々は信じてきましたが、今ではユーザーの安全を考慮して SHA-2 または他のアルゴリズムへのアップグレードを開始する必要があります。
CWI と Google の研究者は、SHA1 衝突の例を見つけることができました。驚くべきことに、2 つの実際の読み取り可能な PDF ファイルが衝突しました。これら 2 つの PDF ファイルの内容は異なりますが、SHA1 値はまったく同じです。
この研究の発表がなぜこれほど説得力があるのでしょうか? それは、ハッシュ アルゴリズムには衝突が発生する可能性があることを誰もが知っているからですが、衝突が発生しにくい限り、ハッシュ アルゴリズムによって支えられているシステムは安全であり、以前は衝突が発生すると考えられていました。 SHA1 の場合は実装が困難です。 Google は、特に GPU 並列コンピューティングが広く使用されている現在、この主張が支持できないことを証明しています。 Google は 110 個の GPU を使用し、1 年間の計算の後、この衝突ケースを作成するために合計 9 回のエクサスケール計算 (合計 9,223,372,036,854,775,808 回) が使用されました。この計算プロセスの時間オーバーヘッドは膨大ですが、現在では非常に一般的です。大規模なコンピューティングセンターであれば、それを実現するのは難しくありません。これは、SHA1 に対する衝突攻撃の現在の実装には依然として膨大な計算時間が必要であることを意味します。
MD5 と SHA-1 の使用は推奨されませんが、完全に廃止されたという意味ではありません。実際、既存のさまざまなより優れた暗号アルゴリズムは古いアルゴリズムに基づいて確立されており、古いアルゴリズム システムは、固有の抜け穴があるために放棄されないことがよくあります。コンピューティング能力の急速な発展により、基本的なアルゴリズムは継続的に改善され、環境に適応する必要があります。潜在的なセキュリティ リスクを回避しながら、実稼働環境のニーズを満たします。また、常に最新のビジョンを持って仕事に取り組み、新しい技術の進歩にタイムリーに注意を払い、ルールに固執して立ち止まることはありません。 SHA-1 と SHA-2 は SHA アルゴリズムの 2 つの異なるバージョンであり、構造と署名の長さが異なりますが、SHA-2 は SHA-1 の後継として理解できます。ビットコインで使用される SHA-256 は、SHA-2 の 256 ビット使用法に属します。サトシ ナカモトが 2008 年にビットコインを作成したとき、彼は SHA アルゴリズムがこれほど早く解読されるとは考えていませんでしたが、幸いなことに、その後、さまざまなデジタル通貨がますます増えています。解読が困難な暗号アルゴリズムを採用していますので、詳しくは以前書いた「暗号通貨の暗号化のしかた」シリーズを読み返してください。しかし、Google による SHA-1 違反から判断すると、相互利益のコンセンサスの維持は依然として暗号化アルゴリズムの基礎に基づいている必要があるため、時価総額が巨大なすべての暗号通貨に警戒が必要です。
【量子コンピューティングの隠れた不安】
しかし、既存の暗号化方式がすべて失敗したら、デジタル通貨の世界はどうなるでしょうか?
少し突飛に聞こえるこのアイデアは、実際には私たちの身近にあるものではありません。 10年以上後に実用的な量子コンピュータが登場し、計算能力が大幅に向上すると、数学的な複雑さに依存してセキュリティを確保する既存の非対称鍵暗号化方式はすべて失敗する可能性が高い。学者のGuo Guangcan氏は講演の中で、2000量子ビットに基づく量子コンピュータはShorアルゴリズムを使用して、RSAアルゴリズムの安全性が依存する大数分解計算を1秒で完了できると述べた。
まず、量子コンピューティングとは何かについて簡単に説明します。量子ビットは、2 つの論理状態 0 と 1 をコヒーレントに重ね合わせて作成できます。つまり、0 と 1 の両方を同時に保存できます。 N 個の物理ビットを持つメモリを考えてみましょう。古典的なメモリの場合は、2^N 個の可能なデータのいずれか 1 つだけを保存できます。量子メモリの場合は、2^N 個の数値を同時に保存できます。 N が増加すると、情報を保存する能力が指数関数的に増加します。たとえば、250 量子ビット メモリ (250 個の原子で構成される) は、最大 2^250 の数値を保存できますが、これは既知の宇宙のすべての原子の数よりも多くなります。もっといります。メモリ内のすべてのデータに対して数学的演算を同時に実行できるため、量子コンピューターは 2^N 個の入力数値に対して 1 回の演算で同時に数学的演算を実行できます。この効果は、古典的なコンピュータが演算を 2^N 回繰り返すか、2^N 個の異なるプロセッサを使用して並列演算を実行するのと同等です。量子コンピューターは、多くのコンピューティング リソース (時間、メモリ ユニットなど) を節約できることがわかります。
量子コンピューターは、より高速なコンピューターではありません。論理と出力方法の点で古典的なコンピューターとは根本的に異なりますが、その最も重要な点は量子もつれの存在です。量子情報科学の観点から見ると、量子もつれは物質、エネルギー、情報と並ぶ天然資源であり、これをうまく活用することで量子コンピューターは大きな力を発揮します。ただし、それを使用してより高速なアルゴリズムを設計する方法は、理論的には大きな課題です。現在、ほとんどのコンピューティング問題について、理論家は古典的なアルゴリズムを超える量子アルゴリズムを発見していませんが、いくつかの特殊な問題については確かに新しい発見がなされています。どのような質問ですか?最古の発見には主に 2 つのタイプがあります: 1 つは、既知の最速の古典的アルゴリズムよりも指数関数的な加速 (正確に言えば、超多項式加速) を持つ素因数分解 (Shor のアルゴリズム) に起因するものであり、もう 1 つは順序付けされていない検索に起因するものです ( Grove のアルゴリズム)、従来のアルゴリズムよりも多項式の速度が向上します。
ショールのアルゴリズムとグローブのアルゴリズムは、それぞれ 1994 年と 1996 年に提案されました。それらの発見により、量子コンピューティングに対する科学界の本格的な関心が呼び起こされたと言えます。量子コンピューティングの最初の概念は 1980 年代初頭に登場しましたが、十数のアルゴリズムが提案されました。長年、それは小さなサークルの理論上のゲームにすぎず、実現可能でも有用でもないと考えられていましたが、Shor のアルゴリズムと Grove のアルゴリズムは、ついに量子コンピューターの実用的な応用の可能性を見出しました。その中でも、ショールのアルゴリズムの影響は特に大きく、現代の暗号化では、RSA (Rivest-Shamir-Adleman) や ECC (楕円曲線暗号) など、一般的に使用されているいくつかの公開鍵システムの基本的な暗号化原理は、数値分解は複雑です。したがって、量子コンピューターが出現すると、既存の情報セキュリティに大きな脅威をもたらすことになり、既存の仮想通貨のアルゴリズムのほぼすべてが脆弱になります。ちなみにECCとはビットコインで使われている暗号化方式のことです。
ウォータールー大学量子コンピューティング学部の共同創設者であるミケーレ・モスカ氏(理論物理学ペリメーター研究所の研究者でもある)は、現在私たちが使用している暗号化ツールの一部は、7 分の 1 の確率で解読される可能性があると考えています。 2026 年までに、再び 50% に上昇します。つまり、その時点で現在の暗号化の仕組みを使っていれば、ネットワーク上に送信されるデータが暗号化されていても、総当たりクラッキングで復号できる、これも量子コンピューティングの「利便性」です。持ってくる。
【EKTの想い】
【EKTの想い】
1970 年代に、英国の諜報機関と学術機関の研究者が独自に非対称暗号化方式を発明しました。公開キーと秘密キーという 2 つの異なるキーを使用します。トランザクションの暗号化中は両方のキーが必要です。たとえば、オンライン ショッピングの場合、サプライヤーのサーバーは公開キーを消費者のコンピュータに送信します。このキーは公開されており、すべての消費者が取得して使用できます。消費者のコンピュータは、この公開鍵を使用して秘密鍵を暗号化し、これが供給者と共有される対称鍵として機能します。暗号化された対称キーを受信した後、プロバイダーのサーバーは独自の一意の秘密キーを使用してそれを復号化します。両者が対称キーを安全に共有すると、それを使用して後続のトランザクションの暗号化と復号化を完了できます。
非対称暗号化アルゴリズムでは、公開キー (publickey) と秘密キー (privatekey) の 2 つのキーが必要です。公開鍵と秘密鍵はペアであり、データが公開鍵で暗号化されている場合は、対応する秘密鍵のみを使用して復号化でき、データが秘密鍵で暗号化されている場合は、対応する公開鍵のみを復号化できます。データを復号化するために使用されます。暗号化と復号化には 2 つの異なるキーが使用されるため、このアルゴリズムは非対称暗号化アルゴリズムと呼ばれます。機密情報の交換を実現するための非対称暗号化アルゴリズムの基本プロセスは、当事者 A が鍵のペアを生成し、一方を公開鍵として他の当事者に開示する、暗号化して当事者 A に送信する、当事者 A が別の秘密鍵を使用する、というものです。暗号化された情報を復号化するために独自に保存されたキー。
一方、当事者 A は、当事者 B に送信する前に、当事者 B の公開キーを使用して機密情報に署名し、その後、当事者 B が独自の秘密キーを使用してデータを検証することができます。当事者 A は、公開鍵で暗号化された情報を復号化するためにのみ秘密鍵を使用できます。非対称暗号化アルゴリズムの機密性は比較的良好であり、エンド ユーザーがキーを交換する必要がなくなります。
EKT では、非対称暗号化のメカニズムと、公開キーと秘密キーを組み合わせたルーティング戦略を使用して、ビザンチン フォールト トレランスを実現します。 EKTのマルチチェーンは、「マルチチェーン分割統治」という新しいスキームを採用し、各コントラクトの正常な動作を保証するパブリックチェーンを再設計し、ユーザー情報の保存には非対称暗号化を使用します。およびサブチェーン 情報は共有されますが、機能的に分離されています。このイノベーションにより、アーキテクチャが大幅に簡素化され、データ処理のプレッシャーが軽減され、一方のチェーン上のトラフィックの急増がもう一方のチェーンの効率に影響を与えず、チェーン上で実行されるビジネスが他のビジネスの干渉を受けないよう効果的に保証されます。リソースの分離が実現されます。
実際、EKT が解決する中心的な問題の 1 つは、Dapp 開発の現在の難しさは、イーサリアムの Solidity を使用して開発する場合、イーサリアムのロジック全体を学習する必要があり、開発時にさまざまな最適化ソリューションを検討する必要があることです。従来の C/S 構造は 1 日で作成されますが、イーサリアムで作成するには数週間かかる場合があり、開発者にとっては非常に不親切です。この一連の手順を Dapp/パブリック チェーン開発者が作成する場合、ブロックチェーン機能を実際に開発する前に、これらの退屈だが一般的な手順によって多量のエネルギーとリソースを消費することは間違いありません。
実際、EKT が解決する中心的な問題の 1 つは、Dapp 開発の現在の難しさは、イーサリアムの Solidity を使用して開発する場合、イーサリアムのロジック全体を学習する必要があり、開発時にさまざまな最適化ソリューションを検討する必要があることです。従来の C/S 構造は 1 日で作成されますが、イーサリアムで作成するには数週間かかる場合があり、開発者にとっては非常に不親切です。この一連の手順を Dapp/パブリック チェーン開発者が作成する場合、ブロックチェーン機能を実際に開発する前に、これらの退屈だが一般的な手順によって多量のエネルギーとリソースを消費することは間違いありません。
トークンチェーンは、トークントランザクションを処理するために特別に使用されるチェーンであり、ERC20トークンによって常に露出されているさまざまな脆弱性を考慮すると(脆弱性の生成はスマートコントラクト開発者の問題ですが、それを達成するためのより良い解決策があると私たちは信じています) 、トークン オブジェクトは EKT に組み込まれており、開発者は送信するトークンの数を定義するだけで済みます。さらに、EKT のトークン チェーンはマルチチェーンおよびマルチコンセンサス構造です。つまり、異なるトークンを異なるトークン チェーンにパッケージ化でき、マルチチェーンの並列処理によりトランザクション処理速度が大幅に向上します。
トークンチェーンは、トークントランザクションを処理するために特別に使用されるチェーンであり、ERC20トークンによって常に露出されているさまざまな脆弱性を考慮すると(脆弱性の生成はスマートコントラクト開発者の問題ですが、それを達成するためのより良い解決策があると私たちは信じています) 、トークン オブジェクトは EKT に組み込まれており、開発者は送信するトークンの数を定義するだけで済みます。さらに、EKT のトークン チェーンはマルチチェーンおよびマルチコンセンサス構造です。つまり、異なるトークンを異なるトークン チェーンにパッケージ化でき、マルチチェーンの並列処理によりトランザクション処理速度が大幅に向上します。
EKT の DApp チェーンは、さまざまな開発者が DApp を開発するためのチェーンです。スマート コントラクト開発言語、データ ストレージ (マークル証明あり、マークル証明なしのプライベート ストレージ スペース)、効率の 3 つの側面から最適化しました。 EKT の DApp チェーンは、基本的に現在のインターネット アプリケーションと同等かそれ以上の開発速度を実現でき、実現可能な機能はインターネット アプリケーションとあまり変わりません。最も重要なのは、ほとんどのイベントの実行と確認を 1 秒で達成できることです。比較的セキュリティ要件の高いイベントも 3 秒で確認できます。
EKT の中心的なアイデアは、開発者が DAPP を実行できるメイン チェーンを簡単に開発できるようにコミュニティ メカニズムを設計し、残りは EKT に引き継がれることです。EKT の「1 つのチェーン、1 つの主要通貨、マルチチェーン、マルチコンセンサス」メカニズムは、後続のブロックチェーン プロジェクトの開発に非常に便利であり、ブロックチェーンの適用可能なあらゆるアプリケーション シナリオで使用できます。 EKT は基礎となるブロックチェーン メカニズムのセットを提供し、他のブロックチェーン プロジェクトは EKT のメイン チェーン コードに基づいて独自のメイン チェーンを簡単にデプロイできます。 EKT で書かれたブロックチェーン プロジェクトは、各インターフェイスが非常にシンプルで、多数の並列メイン チェーン上でデプロイおよび実行されるため、セキュリティの問題についてあまり心配する必要はありません。メインチェーンをデプロイする場合、独自のメインチェーンのトークンを柔軟に発行し、コンセンサスアルゴリズムを選択できます。新しく展開されたメインチェーンは、EKT マルチチェーン技術のエコロジー全体に参加することもでき、EKT エコロジーのユーザーリソースを共有し、トークンを EKT メイン通貨や他のメインチェーンのトークンと交換および流通させることもできます。
EKTの暗号化システムを設計する際、私たちのチームはSHA-1クラッキングと量子コンピューティング技術の発展が将来ブロックチェーンの世界に与える影響も真剣に検討し、この一見派手な機能をすぐに実装したいとさえ考えました。しかし、慎重に検討した結果、私たちのチームは現在の限られたリソースを可能な限りプラットフォームの開発に充てることを決定し、同時に数人の同僚と私は仮想通貨のセキュリティの進歩に細心の注意を払い、常に最新の情報を維持していきます。最新かつ最も安全なものを参考にしてください。学術界の新しい動向。
上記は、ブロックチェーン暗号化に関する私の考えの一部と、EKT のマルチチェーンおよびマルチコンセンサスを設計する際の非対称暗号化の最下層の構築に関する考慮事項の一部です。質問したり、一緒に議論したりすることを歓迎します。


