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

Appendix A. ASN.1 Syntax (ASN.1構文)

本附録は、本文書で使用されるASN.1構文を要約しています。附録Cには完全なASN.1モジュールが含まれています。

A.1. RSA Key Representation (RSA鍵表現)

本セクションでは、RSA公開鍵と秘密鍵のASN.1構文を定義します。

A.1.1. RSA Public Key Syntax (RSA公開鍵構文)

RSA公開鍵は、ASN.1型RSAPublicKeyとして表現される必要があります:

RSAPublicKey ::= SEQUENCE {
modulus INTEGER, -- n
publicExponent INTEGER -- e
}

フィールドの説明:

  • modulus: RSA剰余n
  • publicExponent: RSA公開鍵指数e

有効なRSA公開鍵では、剰余nの値はu個の異なる奇素数r_i (i = 1, 2, ..., u)の積である必要があり、ここでu >= 2であり、公開鍵指数eは3とn - 1の間の整数で、GCD(e, λ(n)) = 1を満たす必要があります。

A.1.2. RSA Private Key Syntax (RSA秘密鍵構文)

RSA秘密鍵は、ASN.1型RSAPrivateKeyとして表現される必要があります:

RSAPrivateKey ::= SEQUENCE {
version Version,
modulus INTEGER, -- n
publicExponent INTEGER, -- e
privateExponent INTEGER, -- d
prime1 INTEGER, -- p
prime2 INTEGER, -- q
exponent1 INTEGER, -- d mod (p-1)
exponent2 INTEGER, -- d mod (q-1)
coefficient INTEGER, -- (inverse of q) mod p
otherPrimeInfos OtherPrimeInfos OPTIONAL
}

Version ::= INTEGER { two-prime(0), multi(1) }
(CONSTRAINED BY {
-- version must be multi if otherPrimeInfos present --
})

OtherPrimeInfos ::= SEQUENCE SIZE(1..MAX) OF OtherPrimeInfo

OtherPrimeInfo ::= SEQUENCE {
prime INTEGER, -- r_i
exponent INTEGER, -- d_i
coefficient INTEGER -- t_i
}

フィールドの説明:

  • version: バージョン番号(two-primeは2素数RSAを示し、multiは多素数RSAを示す)
  • modulus: RSA剰余n
  • publicExponent: RSA公開鍵指数e
  • privateExponent: RSA秘密鍵指数d
  • prime1: 第一の素因子p
  • prime2: 第二の素因子q
  • exponent1: d mod (p-1)
  • exponent2: d mod (q-1)
  • coefficient: CRT係数qInv、(q^-1) mod p
  • otherPrimeInfos: オプション、多素数RSAの追加素因子情報に使用

A.2. Scheme Identification (スキーム識別)

本セクションでは、本文書で定義されている各種スキームのオブジェクト識別子(Object Identifiers)を定義します。

A.2.1. RSAES-OAEP

RSAES-OAEP暗号化スキームのオブジェクト識別子:

id-RSAES-OAEP OBJECT IDENTIFIER ::= { pkcs-1 7 }

RSAES-OAEPのアルゴリズムパラメータ型:

RSAES-OAEP-params ::= SEQUENCE {
hashFunc [0] AlgorithmIdentifier DEFAULT sha1,
maskGenFunc [1] AlgorithmIdentifier DEFAULT mgf1SHA1,
pSourceFunc [2] AlgorithmIdentifier DEFAULT pSpecifiedEmpty
}

A.2.2. RSAES-PKCS1-v1_5

RSAES-PKCS1-v1_5暗号化スキームのオブジェクト識別子:

id-RSAES-PKCS1-v1_5 OBJECT IDENTIFIER ::= { pkcs-1 1 }

このスキームには関連するパラメータがありません。

A.2.3. RSASSA-PSS

RSASSA-PSS署名スキームのオブジェクト識別子:

id-RSASSA-PSS OBJECT IDENTIFIER ::= { pkcs-1 10 }

RSASSA-PSSのアルゴリズムパラメータ型:

RSASSA-PSS-params ::= SEQUENCE {
hashAlgorithm [0] AlgorithmIdentifier DEFAULT sha1,
maskGenAlgorithm [1] AlgorithmIdentifier DEFAULT mgf1SHA1,
saltLength [2] INTEGER DEFAULT 20,
trailerField [3] INTEGER DEFAULT 1
}

A.2.4. RSASSA-PKCS1-v1_5

RSASSA-PKCS1-v1_5署名スキームは、異なるハッシュ関数に対して以下のオブジェクト識別子を使用します:

sha256WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 11 }
sha384WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 12 }
sha512WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 13 }

これらのオブジェクト識別子は、特定のハッシュ関数と関連付けられています。