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

暗号アルゴリズム

注記

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

署名アルゴリズム​

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

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

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

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

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

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

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

ハッシュアルゴリズム​

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

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

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

セキュリティの考慮事項​

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

RFC 7696 Section 2.2.3に基づき、鍵の更新と暗号アルゴリズムの見直し、移行に関する指針を示します。 NIST SP 800-57 Part 1、NIST SP 800-131A Rev.3 (Initial Public Draft)、CRYPTREC の暗号リスト (LS-0001-2022R2)と暗号強度要件の設定基準 (LS-0003-2022R1)を参照します。 本文書の許可リストには、これらの文書で推奨または承認されている暗号アルゴリズムを掲載しています。

セキュリティ強度​

NIST SP 800-57 Part 1 と CRYPTREC の暗号強度要件の設定基準 (LS-0003-2022R1) では、セキュリティ強度 112 ビットの暗号アルゴリズムおよび鍵長による新たな暗号保護 (署名生成など) を 2030 年までとし、2031 年以降は使用しないとしています。

注記

NIST SP 800-131A Rev.3 の草案 (Initial Public Draft) は、112 ビットの署名と鍵確立を 2031 年以降も禁止せず非推奨 (Deprecated) にとどめ、128 ビットを経ずに耐量子計算機暗号へ移行する案を示しています。

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

署名アルゴリズム

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

ハッシュアルゴリズム

  • 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では、暗号鍵の保護および保証要件について次のとおり示されています。

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

Originator Profile では、運用ミスなどのセキュリティインシデントにより、署名鍵の漏洩などの前述の署名鍵の保護および保証要件に適合しない状況に至った場合には、鍵の交換と、それに伴う発行済み全 VC の再発行および再設置が必要になります。このような事態を避けるためには、原理的に署名鍵の取り出しが不可能な仕組みを利用すべきです。具体的な手段としては、たとえば Key Management Service (KMS) や Hardware Security Module (HSM) などが挙げられます。

Footnotes​

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