====== 6.1 暗号学的基盤 (Cryptographic Foundations) ======  Qubic ネットワークのセキュリティは、確立された暗号アルゴリズムとプロトコルに依存しています。このサブセクションでは、データの完全性、真正性、機密性、および否認防止を保証するために採用されている暗号プリミティブとメカニズムの詳細を説明します。 ===== 6.1.1 暗号学的ハッシュ関数 (Cryptographic Hash Functions) ===== **使用アルゴリズム: [[tag/KangarooTwelve]]**\\ * **目的**: * **KangarooTwelve** は、ティック投票、ティックデータ、取引、ならびにスペクトラム、ユニバース、スマートコントラクト状態のメルクルツリーを含む、ネットワーク内のハッシュ操作に使用されます。 * これは Keccakアルゴリズムファミリー(SHA-3のベース)のバリアントですが、速度とスケーラビリティのために最適化されています。 * KangarooTwelve のスケーラビリティと速度は、高スループット環境に理想的です。その衝突耐性と効率性は、ネットワーク全体のデータ完全性を確保しながら、Qubic のリアルタイムコンセンサスのニーズをサポートします。 **特性**: * **衝突耐性 (Collision Resistance)**: * 同じハッシュ出力を生成する2つの異なる入力を計算で見つけることは事実上不可能です。 * **原像耐性 (Preimage Resistance)**: * 与えられたハッシュ出力から、そのハッシュを生成する入力を計算で見つけることは事実上不可能です。 * **第2原像耐性 (Second Preimage Resistance)**: * 与えられた入力とそのハッシュから、同じハッシュを持つ異なる入力を見つけることは不可能です。 **Qubicにおける役割**: * **ティックハッシュ**: * 事前に定義された一連のキーのハッシュを通じて各ティックを前のティックにリンクさせることで、効率的な計算のためにKangarooTwelveを使用し、ティックの完全性を保証します。 * **[[tag/Computor]] 状態の一貫性の確保**: * スペクトラム、ユニバース、スマートコントラクト状態のハッシュを計算し、それらをコンセンサスプロトコルに含めることで、Computor は各ティックにおける自身の状態の合意(アライメント)を確保します。 * **取引の識別**: * 取引を識別するために、KangarooTwelve を使用して各取引のハッシュ(ダイジェストとも呼ばれる)が計算されます。 * **メルクルツリー**: * スペクトラムやユニバースのような大規模なデータ構造のハッシュを、効率的かつ安全に計算するために利用されます。 ===== 6.1.2 デジタル署名 (Digital Signatures) ===== **使用アルゴリズム: FourQ (改変版)**\\  FourQはMicrosoft Researchによって開発された楕円曲線です。これは鍵合意スキーム(楕円曲線Diffie–Hellman)とデジタル署名(Schnorr)のために設計されており、約128ビットのセキュリティを提供します。 * **目的**: * ネットワーク内の取引とメッセージを認証し、許可された当事者のみがアクションを開始できるようにするために、署名/検証が採用されています。 * **特性**: * **真正性 (Authenticity)**: 送信者の身元を確認します。 * **否認防止 (Non-Repudiation)**: 送信者が自身の署名の真正性を否定することを防止します。 * **完全性 (Integrity)**: メッセージが改ざんされていないことを保証します。 * **Qubicにおける役割**: * **取引署名**: ユーザーは秘密鍵で取引に署名し、Computorは対応する公開鍵を使用して署名を検証します。 * **コンセンサスメッセージ**: Computorはコンセンサスプロセス中に自身の投票と提案に署名し、説明責任と追跡可能性を維持します。 ===== 6.1.3 鍵管理 (Key Management) ===== **公開鍵と秘密鍵**: * **生成**: * 予測不能性を確保するため、安全な乱数生成器を使用して鍵が生成されます。 * **保管**: * 秘密鍵はユーザーによって安全に保管されなければなりません。Qubicは鍵の保管にハードウェアウォレットやセキュアエンクレイブの使用を推奨しています。 ===== 6.1.4 セキュア通信プロトコル (Secure Communication Protocols) ===== **メッセージ署名**: * **目的**: * 真正性と完全性の確保。 * **実装**: * Qubicで送信されるメッセージは、送信者によって署名されます。これにより、受信者はメッセージの真正性と完全性を検証できます。