RSA 秘密外部鍵トークン
- トークン ID X'1E' で始まる、必須の PKA トークン・ヘッダー
- 以下のいずれかのセクション ID で始まる、必須の RSA 秘密鍵セクション:
- X'02'。これは最大 1024 ビットのモジュラス長の、モジュラス指数形式の RSA 秘密鍵セクション (最適化されていない) を示します。
- X'08'。これは最大 4096 ビットのモジュラス長の、最適化された中国剰余定理形式の秘密鍵セクションを示します。
- X'09'。これは最大 4096 ビットのモジュラス長の、モジュラス指数形式の RSA 秘密鍵セクション (最適化されていない) を示します。
- X'30'。これは最大 4096 ビットのモジュラス長の、AES オブジェクト保護鍵を持つ、モジュラス指数形式の RSA 秘密鍵セクションを示します。
- X'31'。これは最大 4096 ビットのモジュラス長の、AES オブジェクト保護鍵を持つ、中国剰余定理形式の秘密鍵セクションを示します。
- セクション ID X'04' で始まる、必須の RSA 公開鍵セクション
- セクション ID X'10' で始まる、オプションの秘密鍵名セクション
表 1 は、RSA 秘密外部鍵トークンの基本レコード形式を示します。 長さフィールドはすべて 2 進数です。 すべての 2 進数フィールド (指数、長さなど) は、まず上位バイトが格納されます。 トークンの秘密セクション内のすべての 2 進数フィールド (指数、モジュラスなど) は、右寄せされ、左側にはゼロが埋め込まれます。
| オフセット (10 進) | バイト数 | 説明 |
|---|---|---|
| トークン・ヘッダー (必須) | ||
| 000 | 001 | トークン ID。 X'1E' は外部トークンを示します。 秘密鍵は、非暗号化テキストであるか、またはトランスポート鍵暗号鍵で暗号化されるかのいずれかです。 |
| 001 | 001 | バージョン、X'00'。 |
| 002 | 002 | 鍵トークン構造体の長さ。 |
| 004 | 004 | 無視されます。ゼロでなければなりません。 |
RSA 秘密鍵セクション (必須)
|
||
| RSA 公開鍵セクション (必須) | ||
| 000 | 001 | X'04'、セクション ID、RSA 公開鍵。 |
| 001 | 001 | X'00'、バージョン。 |
| 002 | 002 | セクション長: 12+xxx。 |
| 004 | 002 | 予約フィールド。 |
| 006 | 002 | RSA 公開鍵指数フィールド長 (バイト): "xxx"。 |
| 008 | 002 | 公開鍵モジュラス長 (ビット)。 |
| 010 | 002 | RSA 公開鍵モジュラス・フィールド長 (バイト)。これは秘密トークンの場合はゼロです。
注: RSA 秘密鍵トークンでは、このフィールドはゼロでなければなりません。
RSA 秘密鍵セクションには、モジュラスが含まれています。
|
| 012 | xxx | 公開鍵指数、e (これは一般に、1、3、または 64 から 512 バイトの数量)。 e は奇数および 1<e<n でなければなりません。 (多くの場合、e の値は 16+1 2**16+1 (=65,537) です。 |
| 秘密鍵名 (オプション) | ||
| 000 | 001 | X'10'、セクション ID、秘密鍵名。 |
| 001 | 001 | X'00'、バージョン。 |
| 002 | 002 | セクション長、X'0044' (10 進数の 68)。 |
| 004 | 064 | 秘密鍵名 (ASCII フォーマット)、左寄せされ、スペース文字 (X'20') が埋め込まれます。 アクセス制御システムは、秘密鍵名を使用して、呼び出し側アプリケーションが鍵を使用する資格があることを確認できます。 |
RSA 秘密鍵トークン、1024 ビットのモジュラス指数外部フォーマット
| オフセット (10 進) | バイト数 | 説明 |
|---|---|---|
| 000 | 001 | X'02'、セクション ID、RSA 秘密鍵、モジュラス指数フォーマット (RSA-PRIV) |
| 001 | 001 | X'00'、バージョン。 |
| 002 | 002 | RSA 秘密鍵セクション X'016C' の長さ (10 進数 364)。 |
| 004 | 020 | 秘密鍵サブセクション非暗号化テキストの SHA-1 ハッシュ値、セクションの終わりまでのオフセット 28。 このハッシュ値は、暗号化された秘密鍵を使用のために復号した後に検査されます。 |
| 024 | 004 | 予約済み、2 進ゼロに設定します。 |
| 028 | 001 | 鍵のフォーマットおよびセキュリティー:
|
| 029 | 001 | 予約済み、2 進ゼロ。 |
| 030 | 020 | オプションの鍵名セクションの SHA-1 ハッシュ。 鍵名セクションがない場合、20 バイトの X'00'。 |
| 050 | 004 | 鍵用途フラグ・ビット。
他のすべてのビットは予約済みであり、2 進ゼロに設定されます。 |
| 054 | 006 | 予約済み、2 進ゼロに設定します。 |
| 060 | 024 | 予約済み、2 進ゼロに設定します。 |
| オプションで暗号化されたセキュア・サブセクションの開始。 | ||
| 084 | 024 | 乱数、コンファウンダー。 |
| 108 | 128 | 秘密鍵指数、d。d=(e**-1) mod((p-1)(q-1))、および 1<d<n。ここで e は、公開鍵指数です。 |
| オプションで暗号化されたサブセクションの終わり。コンファウンダー・フィールドと秘密鍵指数フィールドは、秘密鍵が暗号化されていることを鍵フォーマットおよびセキュリティー・フラグ (オフセット 28) が示している場合、鍵の機密性のために暗号化されます。 それらのフィールドは、ede2 アルゴリズムを使用して、倍長トランスポート鍵で暗号化されます。 | ||
| 236 | 128 | モジュラス、n。 n=pq。ここで p および q は、基本および 1024 です。1<n<2**1024 です。 |
RSA 秘密鍵トークン、4096 ビット・モジュラス指数外部フォーマット
この RSA 秘密鍵トークンおよび外部 X'09' トークンは、CCA Crypto Express コプロセッサー上でサポートされます。
| オフセット (10 進) | バイト数 | 説明 |
|---|---|---|
| 000 | 001 | X'09'、セクション ID、RSA 秘密鍵、モジュラス指数フォーマット (RSAMEVAR)。 |
| 001 | 001 | X'00'、バージョン。 |
| 002 | 002 | RSA 秘密鍵セクションの長さ: 132 + ddd + nnn + xxx。 |
| 004 | 020 | 秘密鍵サブセクション非暗号化テキストの SHA-1 ハッシュ値、セクションの終わりまでのオフセット 28。 このハッシュ値は、暗号化された秘密鍵を使用のために復号した後に検査されます。 |
| 024 | 002 | 暗号化された秘密鍵セクションの長さ 8 + ddd + xxx。 |
| 026 | 002 | 予約済み、2 進ゼロに設定します。 |
| 028 | 001 | 鍵のフォーマットおよびセキュリティー:
|
| 029 | 001 | 予約済み、2 進ゼロに設定します。 |
| 030 | 020 | オプションの鍵名セクションの SHA-1 ハッシュ。 鍵名セクションがない場合、20 バイトの X'00'。 |
| 050 | 001 | 鍵用途フラグ・ビット。
他のすべてのビットは予約済みであり、2 進ゼロに設定されます。 |
| 051 | 001 | 予約済み、2 進ゼロに設定します。 |
| 052 | 048 | 予約済み、2 進ゼロに設定します。 |
| 100 | 016 | 予約済み、2 進ゼロに設定します。 |
| 116 | 002 | 秘密鍵指数の長さ、d (バイト): ddd。 |
| 118 | 002 | モジュラスの長さ、n (バイト): nnn。 |
| 120 | 002 | 埋め込みフィールドの長さ (バイト): xxx。 |
| 122 | 002 | 予約済み、2 進ゼロに設定します。 |
| オプションで暗号化されたセキュア・サブセクションの開始。 | ||
| 124 | 008 | 乱数、コンファウンダー。 |
| 132 | ddd | 秘密鍵指数、d。-1 mod((p-1)(q-1))、d=(e**-1) mod((p-1)(q-1))、および 1<d<n。ここで e は、公開鍵指数です。 |
| 132+ddd | xxx | 長さが xxx バイトの X'00' 埋め込み。上記の乱数の開始から埋め込みフィールドの終わりまでの長さは、8 バイトの倍数になります。 |
| オプションで暗号化されたサブセクションの終わり。コンファウンダー・フィールドと秘密鍵指数フィールドは、秘密鍵が暗号化されていることを鍵フォーマットおよびセキュリティー・フラグ (オフセット 28) が示している場合、鍵の機密性のために暗号化されます。 それらのフィールドは、ede2 アルゴリズムを使用して、倍長トランスポート鍵で暗号化されます。 | ||
| 132+ddd+xxx | nnn | モジュラス、n。 n = pq。ここで p および q は、基本および 4096 です。1<n<2**4096 です。 |
RSA 秘密鍵トークン、4096 ビットの中国剰余定理外部形式
最大で 2048 ビットのモジュラスを持つこの RSA 秘密鍵トークンは、すべてのコプロセッサー上でサポートされます。 このモジュラス・サイズは、CCA Crypto Express コプロセッサーにインストールされた 2007 年 11 月以降のバージョンのライセンス内部コードがある、z9 EC、z9 BC、z10 EC、z10 BC またはそれ以降があるマシンでは、4096 ビットに増やされます。
| オフセット (10 進) | バイト数 | 説明 |
|---|---|---|
| 000 | 001 | X'08'、セクション ID、RSA 秘密鍵、CRT フォーマット (RSA-CRT) |
| 001 | 001 | X'00'、バージョン。 |
| 002 | 002 | 秘密鍵セクションの長さ、132 + ppp + qqq + rrr + sss + uuu + xxx + nnn。 |
| 004 | 020 | 秘密鍵サブセクション非暗号化テキストの SHA-1 ハッシュ値、モジュラスの末尾までのオフセット 28。 |
| 024 | 004 | 予約済み、2 進ゼロに設定します。 |
| 028 | 001 | 鍵のフォーマットおよびセキュリティー:
|
| 029 | 001 | 予約済み、2 進ゼロに設定します。 |
| 030 | 020 | オプションの鍵名セクションの SHA-1 ハッシュ、およびそれに続くすべてのオプション・セクション。 オプションのセクションがない場合は、20 バイトの X'00' です。 |
| 050 | 004 | 鍵用途フラグ・ビット。
他のすべてのビットは予約済みであり、2 進ゼロに設定されます。 |
| 054 | 002 | 基本番号 p の長さ (バイト): ppp。 |
| 056 | 002 | 基本番号 q の長さ (バイト): qqq。 |
| 058 | 002 | dp の長さ (バイト): rrr。 |
| 060 | 002 | dq の長さ (バイト): sss。 |
| 062 | 002 | U の長さ (バイト): uuu。 |
| 064 | 002 | モジュラスの長さ、n (バイト): nnn。 |
| 066 | 004 | 予約済み、2 進ゼロに設定します。 |
| 070 | 002 | 埋め込みフィールドの長さ (バイト): xxx。 |
| 072 | 004 | 予約済み、2 進ゼロに設定します。 |
| 076 | 016 | 予約済み、2 進ゼロに設定します。 |
| 092 | 032 | 予約済み、2 進ゼロに設定します。 |
| オプションで暗号化されたセキュア・サブセクションの開始。 | ||
| 124 | 008 | 乱数、コンファウンダー。 |
| 132 | ppp | 素数 p。 |
| 132 + ppp | qqq | 素数 q。 |
| 132 + ppp + qqq | rrr | dp = d mod(p - 1) |
| 132 + ppp + qqq + rrr | sss | dq = d mod(q - 1) |
| 132 + ppp + qqq + rrr + sss | uuu | U = q**-1 mod(p)。 |
| 132 + ppp + qqq + rrr + sss + uuu | xxx | 長さが xxx バイトの X'00' 埋め込み。上記の乱数の開始から埋め込みフィールドの終わりまでの長さは、8 バイトの倍数になります。 |
| オプションで暗号化されたセキュア・サブセクションの終わり。コンファウンダー・フィールドで始まり、可変長埋め込みフィールドで終わるすべてのフィールドは、秘密鍵が暗号化されていることを鍵フォーマットおよびセキュリティー・フラグ (オフセット 28) が示している場合には、鍵の機密性のために暗号化されます。 それらのフィールドは、TDES (CBC 外部チェーニング) アルゴリズムを使用して、倍長トランスポート鍵で暗号化されます。 | ||
| 132 + ppp + qqq + rrr + sss + uuu + xxx | nnn | モジュラス、n。 n = pq。ここで、p および q は基本および 1**<n<2**2048 です。 |
RSA 秘密鍵、AES 暗号化 OPK セクション (X'30') 外部フォーマットを持つ 4096 ビットのモジュラス指数フォーマット
この RSA 秘密鍵トークンは、Crypto Express3 コプロセッサーおよび Crypto Express4 コプロセッサー上でサポートされます。
| オフセット (バイト) | 長さ (バイト) | 説明 |
|---|---|---|
| 000 | 001 | セクション ID:
|
| 001 | 001 | セクションのバージョン番号 (X'00'). |
| 002 | 002 | セクション長: 122 + nnn + ppp |
| 004 | 002 | 「関連データ・セクション」の長さ |
| 006 | 002 | ペイロード・データの長さ: ppp |
| 008 | 002 | 予約済み、2 進ゼロ。 |
| 関連データの開始 | ||
| 010 | 001 | 関連データ・バージョン:
|
| 011 | 001 | 鍵のフォーマットおよびセキュリティー・フラグ:
|
| 012 | 001 | 鍵ソース・フラグ: 予約済み、2 進ゼロ。 |
| 013 | 001 | 予約済み、2 進ゼロ。 |
| 014 | 001 | ハッシュ・タイプ:
|
| 015 | 032 | すべてのオプション・セクションの SHA-256 ハッシュ。これには公開鍵セクションが存在すれば、それに続きます。存在しない場合は、32 バイトの X'00' に続きます。 |
| 047 | 003 | 予約済み、2 進ゼロ。 |
| 050 | 001 | 鍵用途フラグ:
変換制御:
|
| 051 | 001 | 予約済み、2 進ゼロ。 |
| 052 | 002 | モジュラスの長さ: nnn バイト |
| 054 | 002 | 秘密鍵指数の長さ: ddd バイト |
| 関連データの終わり | ||
| 056 | 048 | 16 バイトのコンファウンダー + 32 バイトのオブジェクト保護鍵。
OPK は AES 鍵として使用されます。 AES KEK で暗号化されます。 |
| 104 | 016 | 鍵検証パターン
|
| 120 | 002 | 予約済み、2 進ゼロ。 |
| 122 | nnn | モジュラス |
| 122+nnn | ppp | ペイロードはここから開始され、以下のものが含まれます。
このセクションが暗号化されていない場合:
このセクションが暗号化されている場合:
|
RSA 秘密鍵、AES 暗号化 OPK セクション (X'31') 外部フォーマットを持つ 4096 ビットの中国剰余定理形式
この RSA 秘密鍵トークンは、Crypto Express3 コプロセッサーおよび Crypto Express4 コプロセッサー上でサポートされます。
| オフセット (バイト) | 長さ (バイト) | 説明 |
|---|---|---|
| 000 | 001 | セクション ID:
|
| 001 | 001 | セクションのバージョン番号 (X'00'). |
| 002 | 002 | セクション長: 134 + nnn + xxx |
| 004 | 002 | 「関連データ・セクション」の長さ |
| 006 | 002 | ペイロード・データの長さ: xxx |
| 008 | 002 | 予約済み、2 進ゼロ。 |
| 関連データの開始 | ||
| 010 | 001 | 関連データ・バージョン:
|
| 011 | 001 | 鍵のフォーマットおよびセキュリティー・フラグ:
|
| 012 | 001 | 鍵ソース・フラグ: 予約済み、2 進ゼロ。 |
| 013 | 001 | 予約済み、2 進ゼロ。 |
| 014 | 001 | ハッシュ・タイプ:
|
| 015 | 032 | すべてのオプション・セクションの SHA-256 ハッシュ。これには公開鍵セクションが存在すれば、それに続きます。存在しない場合は、32 バイトの X'00' に続きます。 |
| 047 | 003 | 予約済み、2 進ゼロ。 |
| 050 | 001 | 鍵用途フラグ:
変換制御:
|
| 051 | 001 | 予約済み、2 進ゼロ。 |
| 052 | 002 | 基本番号 p の長さ (バイト): ppp。 |
| 054 | 002 | 基本番号 q の長さ (バイト): qqq。 |
| 056 | 002 | dp の長さ: rrr。 |
| 058 | 002 | dq の長さ: sss。 |
| 060 | 002 | U の長さ: uuu。 |
| 062 | 002 | モジュラスの長さ: nnn。 |
| 064 | 002 | 予約済み、2 進ゼロ。 |
| 066 | 002 | 予約済み、2 進ゼロ。 |
| 関連データの終わり | ||
| 068 | 048 | 16 バイトのコンファウンダー + 32 バイトのオブジェクト保護鍵。
OPK は AES 鍵として使用されます。 外部トークン: AES KEK で暗号化されます。 内部トークン: ECC マスター鍵で暗号化されます。 |
| 116 | 016 | 鍵検証パターン
|
| 132 | 002 | 予約済み、2 進ゼロ |
| 134 | nnn | モジュラス、n、n=pq。ここで p および q は基本です。 |
| 134+nnn | xxx | ペイロードはここから開始され、以下のものが含まれます。
このセクションが暗号化されていない場合:
このセクションが暗号化されている場合:
|