JIS X 5063-1:2005 タイムスタンピングサービス-第1部:枠組み | ページ 5

                                                                                             19
X 5063-1 : 2005 (ISO/IEC 18014-1 : 2002)
附属書B(規定)暗号メッセージ構文抜粋
この附属書は,RFC 2630 CMS Cryptographic Message Syntax(暗号メッセージ構文)の一部分であり,タ
イムスタンピングに要求されるコンテントタイプを規定する。この附属書は,RFC 2630の定義を使用して,
記述している。Abstract Syntax Notation One(ASN.1)構文は,本体の2.で引用する規格を利用する。
B.1 序文 この附属書は,暗号メッセージ構文について記述する。この構文は,電子署名,ダイジェスト
作成,認証又は任意のメッセージの暗号化に使われる。
暗号メッセージ構文は,データ保護のためのカプセル化構文を記述し,電子署名,メッセージ認証符号
及び暗号化の機能をもつ。この構文は,多重のカプセル化を許容するので,一つのカプセルが他のカプセ
ルに入れ子になっていることがあり得る。同様に,一つの機関が,既にカプセル化されたあるデータに電
子署名を付与することも可能である。例えば,メッセージコンテントに並べて,署名時刻のような任意の
属性に署名することも許容するし,署名に関連付けられた連鎖署名のような他の属性を与えることも許容
する。
例えば,暗号メッセージ構文は, PKIXワーキンググループが定義したかぎ管理のように,証明書に基
づくかぎ管理の多様なアーキテクチャの機能をもつ。
暗号メッセージ構文の値は,ASN.1を使い,BER(Basic Encoding Rules : 基本符号化規則)符号化及び
DER(Distinguished Encoding Rules : 識別符号化規則)符号化を使って,生成される。値は,通常,オクテ
ット列として表現される。多くのシステムでは任意のオクテット列を確実に転送できるが,多くの電子メ
ールシステムではそうではないことがよく知られている。この附属書では,そのような環境で確実な転送
をするためのオクテット列符号化機構は扱わない。
B.2 総論 暗号メッセージ構文(CMS)は,たくさんのコンテントタイプに対応するように十分に一般
化されている。この附属書では,一つの保護コンテントであるContentInfoを定義する。ContentInfoは,識
別されたコンテントタイプをカプセル化し,識別されたコンテントタイプは更にカプセル化をしてもよい。
附属書のこの箇条では,データ及び署名付きデータ(signed data)の二つのタイプを定義する。
一般的な設計思想として,不定長の基本符号化規則(BER)を使って,それぞれのコンテントタイプは,
単一パス処理することができる。特に,単一パス操作は,コンテントが大きい場合,テープに格納される
場合又は他のプロセスからパイプライン処理される場合に役立つ。単一パス操作には,一つの顕著な欠点
がある。すなわち,種々の成分の長さをあらかじめ知ることができないので,単一パスで識別符号化規則
(DER)を使って符号化処理することが難しい。しかし,署名付きデータに含まれる署名付きの属性は,
DER符号化を必要とする。署名付き属性は,受信者が一つ以上の認識できない属性をもつコンテントを検
証することを確実にするために,DER形式で転送されなければならない。署名付き属性は,DER符号化を
必要とするCMSデータタイプである。
B.3 一般構文 暗号メッセージ構文(CMS)は,コンテントタイプ識別子をコンテントに関連付ける。
構文は,ASN.1タイプContentInfoを使用しなければならない。

――――― [JIS X 5063-1 pdf 21] ―――――

20
X 5063-1 : 2005 (ISO/IEC 18014-1 : 2002)
ContentInfo ::= SEQUENCE [{
ContentType CONTENT.&id([{Contents}]),
content [0] EXPLICIT CONTENT.&id
([{Contents}][{@contentType}])}]
ContentInfoの領域は,次の意味をもっている :
データ領域 記述
contentType 関連付けられたコンテントのタイプ。これはオブジェクト識別子であり,このコンテントタ
イプを定義した機関によって割り当てられた一意に定まる整数列である。
content 関連付けられたコンテント。コンテントのタイプは,ContentTypeによって一意に定められ
る。有効な型は,データ又は署名付きデータである。
B.4 データのコンテントタイプ 次のオブジェクト識別子は,データのコンテントタイプを識別する。
id-data OBJECT IDENTIFIER ::= [{ iso(1) ember-body(2) s(840)
rsadsi(113549) kcs(1) kcs7(7) 1}]
データのコンテントタイプは,ASCIIのテキストファイルのような,任意のオクテット列を参照するこ
とを意図しており,解釈はアプリケーションに委ねられている。そのような文字列は,(独自のASN.1定
義又は他の構造をもてるとしても,)内部的な構造を必要としない。
データのコンテントタイプは,一般的に,署名付きデータのコンテントタイプにカプセル化される。
B.5 署名付きデータのコンテントタイプ 署名付きデータのコンテントタイプは,データと0個以上の署
名とで構成される。どのようなタイプのコンテントに対しても,署名者が何人でも並列に署名することが
できる。
署名付きデータのコンテントタイプの典型的な応用としては,データのコンテントタイプのコンテント
に対する一人の署名者による電子署名がある。他の典型的な応用として,証明書及び証明書失効リスト
(CRL)がある。
署名付きデータが作成される処理は,次のステップを含む。
1) それぞれの署名者に対して,署名者に固有のメッセージダイジェストのアルゴリズムを使って,コン
テントのメッセージダイジェスト又はハッシュが計算される。署名者がコンテント以外の何らかの情
報に署名をすると,コンテントのメッセージダイジェスト,その他の情報は,署名者のメッセージダ
イジェストのアルゴリズム(B.5.4参照)を使って署名され,その結果が“メッセージダイジェスト”
になる。
2) それぞれの署名者に対して,署名者のプライベートかぎを使ってメッセージダイジェストがディジタ
ル署名される。
3) それぞれの署名者に対して,署名値及びその他の署名者に固有の情報が,B.5.3に定義されているよう
に,SignerInfoの値として集められる。それぞれの署名者の証明書及びCRL,並びにどの署名者にも

――――― [JIS X 5063-1 pdf 22] ―――――

                                                                                             21
X 5063-1 : 2005 (ISO/IEC 18014-1 : 2002)
対応しない証明書及びCRLは,このステップで集められる。
4) すべての署名者に対するメッセージダイジェストのアルゴリズム及びすべての署名者に対する
SignerInfoの値は,B.5.1に定義されているように,コンテントと一緒にSignedDataの値の中に集めら
れる。
受信者は,独立にメッセージダイジェストを計算する。このメッセージダイジェスト及び署名者の公開
かぎが署名値の検証に用いられる。発行者固有のシリアル番号に伴う発行者識別名(issuer distinguished
name)によって,又は公開かぎを含む証明書を一意に識別するサブジェクトかぎ識別子(subject key
identifier)によって,署名者の公開かぎは参照される。署名者の証明書は,SignedDataの証明書領域に含
むこともできる。
B.5は,六つの部分に分かれる。1番目の部分は,最上位のタイプSignedDataについて記述する。2番目
の部分は,EncapsulatedContentInfoについて記述する。3番目の部分は,署名者ごとの情報であるタイプ
SignerInfoについて記述する。4番目,5番目及び6番目の部分は,それぞれ,メッセージダイジェストの
計算,署名生成及び署名検証の各処理について記述する。
B.5.1 SignedDataタイプ 次のオブジェクト識別子は,署名付きデータのコンテントタイプを識別する。
id-signedData OBJECT IDENTIFIER ::= [{ iso(1) ember-body(2) s(840) sadsi(113549) kcs(1) kcs7(7) 2}]
署名付きデータのコンテントタイプは,ASN.1のタイプであるSignedDataをもたなくてはならない。
SignedData ::= SEQUENCE [{
version CMSVersion,
digestAlgorithms DigestAlgorithmIdentifiers,
encapContentInfo EncapsulatedContentInfo,
certificates [0] IMPLICIT CertificateSet OPTIONAL,
crls OPTIONAL,
[1] IMPLICIT CertificateRevocationLists
signerInfos SignerInfos}]
ここで,次のとおりとする。
DigestAlgorithmIdentifiers::= SET OF
DigestAlgorithmIdentifier
SignerInfos ::= SET OF SignerInfo
SignedDataタイプの領域は,次の意味をもつ。
versionは,構文の版数である。もしcertificates領域に属性の証明書がなければ,カプセル化されたコン
テントタイプはid-dataで,SignerInfosのすべての要素は第1版であり,versionの値は1でなければならな
い。また,属性の証明書がある場合,カプセル化されたコンテントタイプがid-data以外である場合又は
SignerInfosのいずれかの要素が第3版である場合には,versionの値は3でなければならない。
digestAlgorithmsは,メッセージダイジェストのアルゴリズム識別子の集まりである。この集まりの要素
の数は,0を含めどのような数でもよい。それぞれの要素は,関連するパラメタを伴う,一人以上の署名

――――― [JIS X 5063-1 pdf 23] ―――――

22
X 5063-1 : 2005 (ISO/IEC 18014-1 : 2002)
者が使ったメッセージダイジェストのアルゴリズムを識別する。この集まりは,単一パスの署名検証を容
易にするために,すべての署名者が採用したメッセージダイジェストアルゴリズムを順不同に並べること
を意図している。メッセージダイジェストの処理は,B.5.4による。
encapContentInfoは,署名付きコンテントとし,コンテントタイプ識別子及びコンテント自体からなる。
encapContentInfoタイプの詳細は,B.5.2による。
certificatesは,証明書の集まりである。この証明書の集まりは,認識される“ルート”又は“最上位の
証明機関”からsignerInfos領域に含まれるすべての署名者までの連鎖を十分に含むことを意図している。
必要以上に多くの証明書を含むこともあるし,二つ以上の独立した最上位の証明機関からの連鎖を十分に
含むこともある。受信者が必要な証明書を得る別の手段(例えば,これまでの証明書の集まりから得る。)
が予想される場合には,必要な証明書よりも少ない証明書しか含まないこともある。上で規定したように,
certificates属性がある場合には,versionの値は,3でなければならない。
crlsは,証明書失効リスト(CRL)の集まりである。その集まりはcertificates領域に含まれる証明書が
有効とするか否かを決定するために十分な情報を含んでいることを意図している。必要以上に多くのCRL
を含むこともあるし,必要数に満たないCRLしか含まないこともある。
signerInfosは,署名者ごとの情報の集まりである。この集まりの中には,0個も含めて,どのような数の
要素も含むことがある。SignerInfoタイプの詳細は,B.5.3による。
B.5.2 EncapsulatedContentInfoタイプ EncapsulatedContentInfoタイプのコンテントは,次のとおり表現
される。
EncapsulatedContentInfo::= SEQUENCE [{
eContentType CONTENT.&id([{EContents}]),
eContent [0] EXPLICIT CONTENT.&id([{EContents}][{@eContentType}])
}]
EncapsulatedContentInfoタイプの領域は,次の意味をもっている :
eContentTypeは,コンテントタイプを一意に識別するオブジェクト識別子である。
eContentは,コンテントの本体であり,オクテット列として伝えられる。eContentは,DER符号化され
る必要はない。
EncapsulatedContentInfo領域内のeContentを任意に省略することによって,“外部署名”を構成すること
が可能になる。外部署名の場合には,署名されるコンテントは,署名付きデータのコンテントタイプに含
まれるEncapsulatedContentInfoの値には存在しない。EncapsulatedContentInfo内のeContent値が存在しない
場合は,eContent値が存在するかのようにsignatureValueを計算し,eContentTypeを割り当てる。
署名者が存在しない場合には,“署名された”EncapsulatedContentInfo値は意味がない。この場合は,
EncapsulatedContentInfo値の中の“署名された”コンテントタイプは(B.4で定義した)id-dataとし,
EncapsulatedContentInfo値のコンテント領域は省略されることが望ましい。
B.5.3 SignerInfoタイプ 署名者ごとの情報は,タイプSignerInfoで次のとおり表現される。
SignerInfo ::= SEQUENCE [{
version CMSVersion,
sid SignerIdentifier,

――――― [JIS X 5063-1 pdf 24] ―――――

                                                                                             23
X 5063-1 : 2005 (ISO/IEC 18014-1 : 2002)
digestAlgorithm DigestAlgorithmIdentifier,
signedAttrs [0]IMPLICIT SignedAttributes OPTIONAL,
signatureAlgorithm SignatureAlgorithmIdentifier,
signature SignatureValue,
unsignedAttrs [1]IMPLICIT UnsignedAttributesOPTIONAL}]
ここで,次のとおりとする。
SignerIdentifier ::= CHOICE [{
issuerAndSerialNumber IssuerAndSerialNumber,
subjectKeyIdentifier[0] SubjectKeyIdentifier}]
SignedAttributes ::= SET SIZE(1..MAX) F Attribute
UnsignedAttributes::= SET SIZE(1..MAX) F Attribute
Attribute ::= SEQUENCE [{
attrType OBJECT IDENTIFIER,
attrValue SET OF AttributeValue}]
AttributeValue ::= ATTRIBUTE.&Type
SignatureValue ::= OCTET STRING
タイプSignerInfoの領域は,次の意味をもつ。
versionは,構文の版数である。SignerIdentifierがCHOICE issuerAndSerialNumberならば,versionは1で
なければならない。SignerIdentifierがsubjectKeyIdentifierならば,versionは3でなければならない。
sidは,署名者の証明書を特定する(それによって署名者の公開かぎも特定する。)。署名者の公開かぎは,
受信者が署名を検証するのに必要である。
SignerIdentifierは,署名者の公開かぎを特定するための二つの選択肢を提供する。issuerAndSerialNumber
という選択肢は,署名者の証明書を,発行者の識別名及び証明書のシリアル番号によって識別する。
subjectKeyIdentifierという選択肢は,署名者の証明書をX.509のsubjectKeyIdentifierの拡張値によって識別
する。
digestAlgorithmは,署名者に使われたメッセージダイジェストのアルゴリズム及び関連するパラメタを
識別する。メッセージダイジェストは,B.5.4に記述される処理を使って,署名されるコンテント又は署名
された属性を伴ったコンテントについて,計算される。メッセージダイジェストのアルゴリズムは,関連
するSignerDataのdigestAlgorithms領域に挙げられているものでなければならない。
SignedAttributesは,署名される属性の集まりである。この領域は任意選択とするが,署名される
EncapsulatedContentInfo値のコンテントタイプがid-dataでない場合は存在しなければならない。SETの中
のそれぞれのSignedAttributesは,領域が存在するならば,DER符号化されなければならない。この領域
が存在するならば,少なくとも,次の二つの属性を含まなければならない :
content-type属性は,署名されるEncapsulatedContentInfo値のコンテントタイプを値としてもつ。B.6.1で
content-type属性を定義する。B.6.3で定義される署名されない属性とする連鎖署名の一部として使われる
場合は,content-type属性を必要としない。
message-digest属性は,コンテントのメッセージダイジェストを値としてもつ。B.6.2でmessage-digest

――――― [JIS X 5063-1 pdf 25] ―――――

次のページ PDF 26

JIS X 5063-1:2005の引用国際規格 ISO 一覧

  • ISO/IEC 18014-1:2002(IDT)

JIS X 5063-1:2005の国際規格 ICS 分類一覧

JIS X 5063-1:2005の関連規格と引用規格一覧

規格番号
規格名称