CER(Canonical Encoding Rules)
DER(Distinguished Encoding Rules)

BERは符号化の際に送信側の任意である事が多く、同じ情報に対し多数の符号化が存在します。 これは特にデジタル署名を行う場合に問題になりました。 これに対処するために、BERの符号化方法に制限をかけた符号化方法であるCERとDERが規定されました。 CERとDERの主な違いは、DERが一定の長さのフォーマットを使うのに対して、 CERが不定長のフォーマットを使うことです。 主要な差分を下記に示します。

CER DER
長さフィールド 基本型の符号化化の際には、長さ127オクテット以下では短形式で、128オクテット以上では長形式を使用します。 構造型では可変長形式を使用します。 基本型でも構造型でも符号化化の際には、長さ127オクテット以下では短形式で、 128オクテット以上では長形式を使用します。
論理型 TRUE値は常にオール1で符号化します。
ビット列型 未使用ビットは常に0にします。
もし名前付きのビットリストの場合、後ろの0は常に切り捨てます。
もし型にサイズ制限がある場合は後ろの0のビットは必要なだけ存在しなければなりません。
もし長さが0の場合、長さフィールドは1、内容フィールドは1オクテットの0で符号化します。
ビット列型
オクテット列型
文字列型
もし1000オクテット未満なら基本型で符号化します。
1000オクテット以上なら、構造型で符号化し、最後を除き各要素は1000オクテット丁度でなければなりません。
常に基本型で符号化します。
順序列型
集合型
デフォルト値の要素は符号化しません。
集合型 要素はタグの正規化順(汎用、応用、文脈特定、私用の順、同じクラスでは昇順)で符号化します。
もし、要素がタグなしの選択型の場合、選択肢内のもっとも小さいタグの正規化順で符号化します。 もし、要素がタグなしの選択型の場合、選択された要素のタグの正規化順で符号化します (選択肢に応じて動的な並べ替えが必要です)。
単一集合型 要素は、符号化した情報の昇順にします。順序比較は、オクテット列としての比較です。

記述内容について一切保障しません。リンクは自由に行ってかまいません。
Since 2006/6/19, Final update 2006/7/8, Presented by Ishida So