Documentation

AMATELUS.Audit

ハッシュの一方向性による保護(具体的なセキュリティレベル)

AMATELUSの逆引き耐性は、SHA3-512の原像攻撃コストに依存します。

計算コスト(量子脅威下):

  • 原像攻撃の量子コスト: 256ビット
  • NIST最小要件: 128ビット
  • 結論: 十分安全(256 ≥ 128)

監査区分識別子のエントロピーの指数(ビット数の指数表現)

audit_section_entropy = 2^8 = 256 ビット 指数表現を使用することで、Leanの計算を軽量化しています。

Equations
Instances For

    監査区分識別子のエントロピー(ビット数)

    AMATELUSプロトコルでは、監査区分識別子(AuditSectionID)は 十分なエントロピーを持つ必要があります。

    設定値: 2^8 = 256ビット

    • セキュリティパラメータと同等以上のエントロピーを保証
    • 総当たり攻撃に対する十分な保護: 2^256 の検索空間
    • 実装例: 32バイトのランダムバイト列(SHA3-256のハッシュ値など)

    安全性の根拠:

    • 攻撃者が監査区分識別子を推測する確率: 1 / 2^256

    ポスト量子暗号(PQC)での安全性:

    • Groverのアルゴリズム適用後も 2^128 の検索空間
    • 依然として十分な安全性を維持
    Equations
    Instances For

      総当たり攻撃の計算コスト

      エントロピーが十分大きい場合、総当たり攻撃には以下の計算量が必要です。

      256ビットのエントロピーの場合:

      • 古典計算機: 2^256 の試行
      • 量子計算機: 2^128 の試行(Grover適用)

      注意: これは探索空間のサイズに依存します。256ビットのエントロピーは、 量子脅威下でも128ビットの安全性を提供します。

      Equations
      • bruteForceSecurity entropy = { classicalBits := entropy, quantumBits := entropy / 2, grover_reduction := }
      Instances For

        監査区分識別子のエントロピーがセキュリティパラメータ以上であることを保証

        値:

        • audit_section_entropy = 2^8 = 256
        • securityParameter = 2^8 = 256
        • したがって 2^8 ≥ 2^8 が成立(自明)

        証明: 両方の値を256に展開し、反射性により証明されます。

        監査区分ID未知時の総当たり攻撃の量子安全性

        攻撃者が監査区分IDを知らない場合、総当たり攻撃には 量子計算機でも128ビットの計算量が必要です。

        証明: brute_force_quantum_secureにより、256ビットエントロピーに対する 総当たり攻撃の量子コストは128ビットであり、NIST最小要件を満たす。

        Theorem 6.1: 匿名ハッシュ識別子の逆引き耐性(量子安全性)

        監査区分識別子と国民識別番号の両方を知らない攻撃者は、 量子計算機を用いても、AHIから国民識別番号を復元できません。

        量子脅威下での安全性:

        • 原像攻撃の量子コスト: 256ビット(ahi_one_way_protection_quantum_secure)
        • 総当たり攻撃の量子コスト: 128ビット(Grover適用後)
        • NIST最小要件: 128ビット
        • 結論: 両方とも十分安全
        def concatenateAHIInput (auditID : AuditSectionID) (nationalID : NationalID) :

        AHI生成における入力の連結

        Equations
        Instances For

          ランダムオラクルモデルでの独立性(具体的なセキュリティレベル)

          AMATELUSの監査区分間独立性は、SHA3-512のランダムオラクル性に依存します。

          計算コスト(量子脅威下):

          • RO識別攻撃の量子コスト: 256ビット
          • NIST最小要件: 128ビット
          • 結論: 十分安全(256 ≥ 128)
          theorem different_audit_different_input (auditID₁ auditID₂ : AuditSectionID) (nationalID : NationalID) :
          auditID₁ auditID₂concatenateAHIInput auditID₁ nationalID concatenateAHIInput auditID₂ nationalID

          異なる監査区分IDは異なる連結入力を生成する

          Theorem 6.2: 監査区分間の名寄せ防止(量子安全性)

          異なる監査区分で生成された匿名ハッシュ識別子を関連付けることは、 量子計算機を用いても困難です。

          量子脅威下での安全性:

          • RO識別攻撃の量子コスト: 256ビット
          • NIST最小要件: 128ビット
          • 結論: 十分安全(256 ≥ 128)、2倍の安全性マージン

          証明: SecurityAssumptions.hash_random_oracle_quantum_secureにより、 SHA3-512のRO識別攻撃の量子コストは256ビットであり、 NIST最小要件128ビットを満たす。

          structure AuditCondition :

          監査実行の条件

          Instances For

            認可された監査のみが実行可能

            Equations
            Instances For

              認可なし監査の計算コスト

              認証情報を知らない攻撃者が、認可されていない監査を実行するには、 総当たり攻撃が必要です。

              計算コスト:

              • 古典計算機: 2^256 の試行(監査区分IDの探索空間)
              • 量子計算機: 2^128 の試行(Grover適用)

              注意: これは brute_force_quantum_secure と同等です。

              Equations
              Instances For

                アクセス制御突破の計算コスト

                認証情報を知っていても、アクセス制御メカニズムを突破するには、 以下の計算量が必要です。

                実装依存の安全性:

                • 認証トークンの署名偽造: 128ビット(Dilithium2)
                • セッションハイジャック: 128ビット(ナンスの一意性)
                • その他の実装レベル攻撃: 最低128ビット

                注意: これは実装レベルのセキュリティに依存します。 ポスト量子暗号の採用が必須です。

                Equations
                Instances For

                  制限された監査実行の量子安全性

                  認可されていない監査を実行するには、量子計算機でも128ビットの計算量が必要です。

                  証明: 認可されていない監査を実行するには、以下のいずれかが必要:

                  1. 認証情報を知らずに監査を実行 → authorization_bypass_quantum_secure により128ビット
                  2. アクセス制御を突破 → access_control_bypass_quantum_secure により128ビット

                  いずれの場合も、量子脅威下で最低128ビットの計算量が必要です。

                  theorem privacy_audit_balance (auditID : AuditSectionID) (nationalID : NationalID) :
                  let ahi₁ := AnonymousHashIdentifier.fromComponents auditID nationalID; let ahi₂ := AnonymousHashIdentifier.fromComponents auditID nationalID; ahi₁ = ahi₂

                  プライバシー保護と監査可能性の両立

                  ハッシュ関数の衝突耐性(量子安全性)

                  異なる入力に対して同じハッシュ値を生成する(衝突を発見する)には、 量子計算機でも128ビットの計算量が必要です。

                  証明: SecurityAssumptions.amtHashFunction.quantum_secureにより、 SHA3-512の衝突探索の量子コストは128ビットであり、 NIST最小要件128ビットを満たす。

                  注意: この定理は、衝突が存在しないことを主張するのではなく、 衝突を発見することが計算量的に困難であることを主張します。

                  異なる監査区分での独立性(量子安全性)

                  異なる監査区分で同じ国民識別番号から生成されたAHIが 衝突する(同じになる)ことを発見するには、量子計算機でも128ビットの計算量が必要です。

                  量子脅威下での安全性:

                  • 衝突探索の量子コスト: 128ビット
                  • NIST最小要件: 128ビット
                  • 結論: 十分安全

                  証明: hash_collision_resistance_quantum_secureにより、 SHA3-512の衝突探索の量子コストは128ビットであり、 NIST最小要件128ビットを満たす。

                  注意: different_audit_different_inputにより、異なる監査区分は異なる入力を生成することが 保証されているため、衝突があるとすればハッシュ関数の衝突である。 したがって、この独立性はハッシュ関数の衝突耐性に完全に依存する。

                  structure AuditLog :

                  監査ログエントリ

                  Instances For

                    監査ログの保護方式

                    監査ログの完全性を保証するための暗号学的保護方式です。

                    Instances For

                      監査ログ改ざんの計算コスト

                      監査ログを検出されずに改ざんするには、以下の計算量が必要です。

                      実装方式に依存:

                      1. デジタル署名方式: 署名偽造の困難性(128ビット、Dilithium2)
                      2. ハッシュチェーン方式: 衝突発見の困難性(128ビット、SHA3-512)
                      3. Merkle木方式: 同上(128ビット)

                      注意: いずれの方式も、ポスト量子暗号時代で最低128ビットの量子安全性を提供します。

                      Equations
                      Instances For

                        各保護方式のセキュリティレベル

                        すべての保護方式が同じセキュリティレベルを提供します。

                        Equations
                        Instances For

                          監査ログの暗号学的保護メカニズム

                          この構造体は、監査ログが暗号学的に保護されていることを表します。

                          保護方式:

                          1. デジタル署名方式: 各ログエントリがデジタル署名される(例: Dilithium2)
                          2. ハッシュチェーン方式: 各ログが前のログのハッシュを含む(例: SHA3-512)
                          3. Merkle木方式: ログ全体が検証可能なデータ構造で保護される(例: SHA3-512ベース)

                          実装の前提条件: correctly_implemented フィールドは、選択した保護方式が正しく実装されていることを 前提としています。これは実装者の責任であり、数学的証明の範囲外です。

                          使用例:

                          -- デジタル署名方式を使用する場合
                          def myAuditLogIntegrity : AuditLogIntegrity := {
                            method := .digital_signature
                            correctly_implemented := by <implementation proof>
                          }
                          
                          Instances For

                            監査ログの改ざん耐性(構造体バージョン)

                            AuditLogIntegrity が正しく実装されている場合、 攻撃者が検出されずにログを改ざんするには、量子計算機でも128ビットの計算量が必要です。

                            量子脅威下での安全性:

                            • 改ざん検出突破の量子コスト: 128ビット
                            • NIST最小要件: 128ビット
                            • 結論: 十分安全

                            証明の流れ:

                            1. integrity.correctly_implemented により、選択した保護方式が正しく実装されている
                            2. protectionMethodSecurity により、その保護方式は128ビットの量子安全性を提供
                            3. したがって、改ざんには128ビットの計算量が必要

                            監査ログの検証可能性(構造体バージョン)

                            AuditLogIntegrity が正しく実装されている場合、 攻撃者が検出されずにログを改ざんすることは計算量的に困難です。

                            量子脅威下での安全性:

                            • 改ざん検出突破の量子コスト: 128ビット
                            • NIST最小要件: 128ビット
                            • 結論: 十分安全

                            証明: audit_log_integrity_quantum_secureにより、以下のいずれの方式でも 量子計算機に対して128ビットの安全性を提供:

                            1. デジタル署名方式: 署名偽造の困難性(Dilithium2)
                            2. ハッシュチェーン方式: 衝突発見の困難性(SHA3-512)
                            3. Merkle木方式: 同上

                            国家識別システムの抽象化

                            Instances For
                              theorem protocol_generality (system : NationalIDSystem) (auditID : AuditSectionID) :
                              let nationalID := system.generate (); system.validate nationalID = true (ahi : AnonymousHashIdentifier), ahi = AnonymousHashIdentifier.fromComponents auditID nationalID

                              プロトコルの一般適用可能性