Appendix B. DER Expectations
Appendix B. DER Expectations (DERの期待事項)
この付録は参考情報です。規範的な規則については各標準を参照してください。
DER は BER [X.690] の制限されたプロファイルです。したがって, データ値のすべての DER エンコーディングは BER エンコーディングですが, BER エンコーディングの中でデータ値の DER エンコーディングは1つだけです。正規エンコーディングは暗号操作を実行する際に重要です。さらに, 正規エンコーディングはパーサーに対して特定の効率上の利点があります。DER でエンコードする主な理由は3つあります:
-
デジタル署名は意味的コンテンツの DER エンコーディングに対して計算される (はずである) ため, DER エンコーディング以外のものを提供することは無意味です。(実際には, 実装者は実装がデータをそのまま解析してダイジェストするように選択するかもしれませんが, この実践は推測作業に等しいです。)
-
実際には, 暗号ハッシュは識別のために DER エンコーディングに対して計算されます。
-
実際には, コンテンツは小さいです。DER は常にデータ値を確定長形式 (長さがエンコーディングの開始時に述べられる) でエンコードします。したがって, パーサーは事前にメモリまたはリソース使用量を予測できます。
図20は, この文書の構造と DER エンコーディングの特定の理由を対応させています:
Sec. Label Reasons
----+----------------------+-------
5 CERTIFICATE 1 2 ~3
6 X509 CRL 1
7 CERTIFICATE REQUEST 1 ~3
8 PKCS7 *
9 CMS *
10 PRIVATE KEY 3
11 ENCRYPTED PRIVATE KEY 3
12 ATTRIBUTE CERTIFICATE 1 ~3
13 PUBLIC KEY 2 3
図20: DER エンコーディングのガイド
* Cryptographic Message Syntax は任意の長さのコンテンツ用に設計されています。不定長エンコーディングは, エンコーディングを生成する際にワンパス処理 (ストリーミング) を可能にします。特定の部分, すなわち署名された属性と認証された属性のみが DER エンコードされる必要があります。
~ 必ずしも "小さい" わけではありませんが, これらのエンコードされた構造は特に "大きい" (例えば, 16キロバイト以上) べきではありません。パーサーはいずれにせよ事前に大きなものについて通知されるべきです。これは, これらのものを最初の場所で DER エンコードするもう1つの理由です。
図20: DER エンコーディングのガイド