メインコンテンツまでスキップ

暗号アルゴリズム

注記

暗号アルゴリズムのサポートに関する参考情報および基準は、継続的な見直しの対象であり、必要に応じて更新される可能性があります。

署名アルゴリズム

署名を検証するときに使用する署名アルゴリズムは必ず次の要件を満たす必要があります (MUST)。

許可リスト (検証側) は次のとおりです。

  • ES256 (RECOMMENDED)
  • ES384
  • ES512
  • PS256
  • PS384
  • PS512

これらの許可リストに含まれるいずれかの署名アルゴリズムをサポートする必要があります (MUST)。

検証者は、この許可リストに含まれない署名アルゴリズムでの検証を拒否しなければなりません (MUST)。

パフォーマンスとセキュリティのバランスを考慮し ES256 を推奨しますが、他の署名アルゴリズムの使用を禁止するものではありません。

実装者はアルゴリズムを定期的に見直し、危殆化したアルゴリズムの使用を中止してください (RECOMMENDED)。

注記

C2PA 2.0 署名アルゴリズムの許可リストに含まれる EdDSA1、本文書が書かれた時点ではサポートしない実装が一定数存在するため2EdDSA は許可リストに含めていません。

注記

Originator Profile 技術研究組合の開発するアプリケーションでは、当面の間、署名アルゴリズムは ES256 のみをサポートします。

ハッシュアルゴリズム

OP の仕様に準拠するアプリケーションは、 CA の Content Integrity Descriptor の integrity プロパティの値を生成・検証するとき、および各 VC の digestSRI プロパティの値を生成・検証するときに、使用するハッシュアルゴリズムについて次の要件を満たす必要があります (MUST)。

検証者は、 SHA-256 ハッシュ値による検証をサポートしなければなりません (MUST)。また、SHA-384、SHA-512 ハッシュ値による検証をサポートしてもよいです (MAY)。

実装者はハッシュアルゴリズムを定期的に見直し、危殆化したハッシュアルゴリズムは使用しないようにしてください。

注記

Originator Profile 技術研究組合の開発するアプリケーションでは、当面の間、ハッシュアルゴリズムは SHA-256 のみをサポートします。

セキュリティの考慮事項

このセクションは非規範的です。

このセクションでは、RFC 7696 Section 2.2.3で要求されている、予想されるアルゴリズムの移行について通知することを目的として、また、鍵の更新と使用する暗号アルゴリズムの定期的な見直しに関する指針として、米国連邦政府が定める鍵管理の推奨事項についての文書であるNIST SP 800-57 Part 1と、暗号技術の利用移行についての文書であるNIST SP 800-131A Rev.3 (Initial Public Draft)を参考に、次のとおり記します。

セキュリティ強度

NIST SP 800-131A Rev.3 (Initial Public Draft) では、NIST SP 800-57 Part 1に定めのあるセキュリティ強度に基づいて、128 ビット未満のセキュリティ強度を持つ各種暗号アルゴリズムおよび鍵長を使用している場合、2031年以降にはその利用を推奨せず、128 ビット以上のセキュリティ強度または耐量子暗号アルゴリズムへの移行を求めています。

本文書に定める暗号アルゴリズムの許可リストに対応するセキュリティ強度は次のとおりです:

署名アルゴリズム

  • ES256: 128 ビット
  • ES384: 192 ビット
  • ES512: 256 ビット
  • PS256: ~128 ビット 3
  • PS384: ~192 ビット 3
  • PS512: ~256 ビット 3

ハッシュアルゴリズム

  • SHA-256: 128 ビット
  • SHA-384: 192 ビット
  • SHA-512: 256 ビット

推奨暗号利用期間

NIST SP 800-57 Part 1 Section 5.3.6では、次の鍵タイプの推奨暗号利用期間を示しています。

  • 署名鍵: 署名に使用する期間として1~3年
  • 検証鍵: 数年(鍵長に依存)

この推奨暗号利用期間を目安に鍵の更新をおこなうことが望ましく、また、より長い暗号利用期間を設ける場合には、鍵の危殆化に伴う鍵の更新の必要性について考慮すべきです。

新しい暗号アルゴリズムおよび鍵長への移行

NIST SP 800-57 Part 1 Section 5.6.4では、利用している暗号アルゴリズムおよび鍵長の寿命(その暗号アルゴリズムおよび鍵長によるデータの保護がもはや安全とはみなされない状態)に伴う移行のための論点について示されています。

署名の検証を可能とする期間が暗号アルゴリズムおよび鍵長の寿命を迎える時点を超える場合には、その暗号アルゴリズムおよび鍵長での新規の署名をすべきではありません。また、既に署名の検証を可能とする期間にあるデータについては、残りの期間の保護を提供するために、異なる暗号アルゴリズムおよび鍵長による再署名をすべきです。

暗号鍵の保護および保証要件

NIST SP 800-57 Part 1 Section 6.1.1では、暗号鍵の保護および保証要件について次のとおり示されています。

  • 署名鍵: 生成から暗号利用期間終了まで、機密性、完全性が保たれた保有の保証
  • 検証鍵: 生成から署名データの検証が不要になるまで、完全性、可用性が保たれた有効性の保証

Footnotes

  1. https://c2pa.org/specifications/specifications/2.0/specs/C2PA_Specification.html#_signature_algorithms

  2. https://github.com/WICG/webcrypto-secure-curves/issues/20

  3. 鍵長による。鍵長 3072 ビットの場合: 128 ビット 2 3