制御ベクトル基本値の指定

以下の一連の質問を考慮することによって、制御ベクトルの値を決定できます。
  1. 最初に 64 ビット (8 バイト) のフィールドに B'0' を設定します。 最上位ビットはビット 0 と呼ばれます。鍵タイプとサブタイプ (ビット 8 から 14) を以下のように定義します。
    • メイン鍵タイプ・ビット (ビット 8 から 11)。 ビット 8 から 11 を以下のいずれかの値に設定します。
      表 1. ビット 8 から 11 のメイン鍵タイプ
      ビット 8 から 11 メイン鍵タイプ
      0000 データ操作鍵
      0010 PIN 鍵
      0011 暗号変数暗号鍵
      0100 鍵暗号鍵
      0101 鍵生成鍵
      0111 変形鍵生成鍵
    • 鍵サブタイプ・ビット (ビット 12 から 14)。 ビット 12 から 14 を以下のいずれかの値に設定します。
      注: 変形鍵生成鍵の場合、サブタイプ・フィールドは DKYGENKY の階層レベルを指定します。 サブタイプがゼロ以外である場合、DKYGENKY は階層レベルを 1 だけデクリメントして、別の DKYGENKY 鍵の生成のみを実行できます。 サブタイプがゼロの場合、DKYGENKY は、使用ビットで指定された鍵タイプを用いて、最終の変形鍵 (非 DKYGENKY 鍵) の生成のみを実行できます。
      表 2. 変形鍵生成鍵の鍵サブタイプ
      ビット 12 から 14 鍵サブタイプ
      データ操作鍵
      000 互換鍵 (DATA)
      001 機密性鍵 (CIPHER、DECIPHER、または ENCIPHER)
      010 MAC 鍵 (MAC または MACVER)
      101 セキュア・メッセージング鍵
      110 暗号化テキスト変換鍵 (CIPHERXI、CIPHERXL、CIPHERXO)
      鍵暗号鍵
      000 トランスポート送信鍵 (EXPORTER および OKEYXLAT)
      001 トランスポート受信鍵 (IMPORTER および IKEYXLAT)
      PIN 鍵
      001 PIN 生成鍵 (PINGEN、PINVER)
      000 インバウンド PIN ブロック暗号化解除鍵 (IPINENC)
      010 アウトバウンド PIN ブロック暗号鍵 (OPINENC)
      暗号変数暗号鍵
      111 暗号変数暗号鍵 (CVAR....)
      変形鍵生成鍵
      000 DKY サブタイプ 0
      001 DKY サブタイプ 1
      010 DKY サブタイプ 2
      011 DKY サブタイプ 3
      100 DKY サブタイプ 4
      101 DKY サブタイプ 5
      110 DKY サブタイプ 6
      111 DKY サブタイプ 7
  2. 鍵暗号鍵の場合、 以下のビットを設定します。
    • 鍵生成使用ビット (gks、ビット 18 から 20)。 gks ビットを B'111' に設定して、鍵生成呼び出し可能サービスがさまざまな鍵ペアでの鍵形式の組み合わせを生成するときに、鍵生成呼び出し可能サービスが、関連する鍵暗号鍵を使用して、生成対象鍵を暗号化できることを示します (図 1の『鍵暗号鍵』セクションを参照してください)。 いずれかの gks ビットが 1 に設定されていない場合には、鍵生成呼び出し可能サービスは、関連する鍵暗号鍵を使用できません。 鍵トークン作成呼び出し可能サービスは、OPIM、IMEX、IMIM、OPEX、および EXEX の各キーワードを指定するときに、gks ビットを 1 に設定できます。
    • IMPORT と EXPORT ビット、および XLATE ビット (ix、ビット 21 および 22)。 「i」ビットが 1 に設定されている場合は、関連する鍵暗号鍵は、データ鍵インポート、鍵インポート、データ鍵エクスポート、および鍵エクスポートの呼び出し可能サービスで使用できます。 「x」ビットが 1 に設定されている場合は、関連する鍵暗号鍵を、鍵変換呼び出し可能サービスで使用できます。
    • 鍵形式ビット (fff、ビット 40 から 42)。 鍵形式ビットは、鍵が生成された方法と、制御ベクトルが複数暗号化に参加する方法を示します。 パーツが同じ値であることを示すために、これらのビットは B'010' に設定します。 制御ベクトルの右半分内にある鍵形式ビットの値については、ステップ 8 を参照してください。
  3. MAC 鍵および MACVER 鍵の場合、以下のビットを設定します。
    • MAC 制御ビット (ビット 20 および 21)。 MAC 生成鍵の場合、ビット 20 および 21 を B'11' に設定します。 MAC 検査鍵の場合、ビット 20 および 21 を B'01' に設定します。
    • 鍵形式ビット (fff、ビット 40 から 42)。 単一長の鍵の場合、ビットを B'000' に設定します。 倍長の鍵の場合、ビットを B'010' に設定します。
  4. PINGEN 鍵および PINVER 鍵の場合、以下のビットを設定します。
    • PIN 計算方式ビット (aaaa、ビット 0 から 3)。 これらのビットは、以下のいずれかの値に設定します。
      ビット 0 から 3 計算方法キーワード 説明
      0000 NO-SPEC この制御ベクトルを持つ鍵は、どの PIN 計算方式でも使用できます。
      0001 IBM-PIN または IBM-PINO この制御ベクトルを持つ鍵は、IBM PIN 計算方式または PIN オフセット計算方式でのみ使用できます。
      0010 VISA-PVV この制御ベクトルを持つ鍵は、VISA-PVV 計算方式でのみ使用できます。
      0100 GBP-PIN または GBP-PINO この制御ベクトルを持つ鍵は、German Banking Pool PIN 計算方式または PIN オフセット計算方式でのみ使用できます。
      0011 INBK-PIN この制御ベクトルがある鍵は、Interbank PIN 計算方式でのみ使用できます。
      0101 NL-PIN-1 この制御ベクトルがある鍵は、NL-PIN-1、オランダ PIN 計算方式でのみ使用できます。
    • PIN 値に対する操作を制限する、禁止オフセット・ビット (o、ビット 37)。 1 に設定した場合、このビットにより、IBM 3624 PIN オフセット計算方式および IBM German Bank Pool PIN オフセット計算方式を使用した操作ができなくなります。
  5. PINGEN、IPINENC、および OPINENC 鍵の場合、ビット 18 から 22 は、以下の呼び出し可能サービスで鍵を使用できるかどうかを示すために設定します。
    許可されるサービス ビット名 ビット
    非暗号化 PIN 生成 CPINGEN 18
    暗号化 PIN 生成代替 EPINGENA 19
    暗号化 PIN 生成 EPINGEN PINGEN の場合は 20

    OPINENC の場合は 19

    非暗号化 PIN 生成代替 CPINGENA PINGEN の場合は 21

    IPINENC の場合は 20

    暗号化された PIN 検査 EPINVER 19
    非暗号化 PIN 暗号化 CPINENC 18
  6. IPINENC (インバウンド) および OPINENC (アウトバウンド) PIN ブロック暗号鍵の場合、以下を実行します。
    • TRANSLAT ビット (t、ビット 21) を 1 に設定して、鍵を PIN 変換呼び出し可能サービスで使用することを許可します。 制御ベクトル生成呼び出し可能サービスは、TRANSLAT キーワードを指定すると、TRANSLAT ビットを 1 に設定できます。
    • REFORMAT ビット (r、ビット 22) を 1 に設定して、鍵を PIN 変換呼び出し可能サービスで使用することを許可します。 制御ベクトル生成呼び出し可能サービスは、REFORMAT キーワードを指定すると、REFORMAT ビットおよび TRANSLAT ビットを 1 に設定できます。
  7. 暗号変数暗号鍵 (ビット 18 から 22) の場合、変数タイプ・ビット (ビット 18 から 22) を以下のいずれかの値に設定します。
    ビット 18 から 22 総称鍵タイプ   説明
    00000 CVARPINE 非暗号化 PIN を暗号化するために、暗号化 PIN 生成代替サービスで使用されます。
    00010 CVARXCVL 左側のマスク配列を暗号化解除するために、制御ベクトル変換呼び出し可能サービスで使用されます。
    00011 CVARXCVR 右側のマスク配列を暗号化解除するために、制御ベクトル変換呼び出し可能サービスで使用されます。
    00100 CVARENC 不定形式の PIN を暗号化するために、暗号変数暗号化呼び出し可能サービスで使用されます。
  8. 鍵生成鍵の場合、 以下のビットを設定します。
    • KEYGENKY の場合、UKPT の使用にはビット 18 を、CLR8-ENC の使用にはビット 19 を設定します。
    • DKYGENKY の場合、ビット 12 から 14 は、DKYGENKY 鍵の階層レベルを指定します。 サブタイプの CV ビットがゼロ以外である場合、DKYGENKY は階層レベルを 1 だけデクリメントして、別の DKYGENKY 鍵の生成のみを実行できます。 サブタイプの CV ビットがゼロの場合、DKYGENKY は、使用ビットで指定された鍵タイプを用いて、最終の変形鍵 (非 DKYGENKY 鍵) の生成のみを実行できます。

      DKYGENKY のサブタイプ値を指定するには、キーワード DKYL0、DKYL1、DKYL2、DKYL3、DKYL4、DKYL5、DKYL6、および DKYL7 を使用します。

    • DKYGENKY の場合、ビット 18 は予約済みであり、ゼロでなければなりません。
    • DKYGENKY 鍵タイプの使用ビット 18 から 22 は、以下のように定義されています。 それらは DKYGENKY 鍵が生成する最終鍵タイプとしてエンコードされます。
      ビット 19 から 22 キーワード 使用法
      0001 DDATA DATA、DATAC、単一長または倍長
      0010 DMAC MAC、DATAM
      0011 DMV MACVER、DATAMV
      0100 DIMP IMPORTER、IKEYXLAT
      0101 DEXP EXPORTER、OKEYXLAT
      0110 DPVR PINVER
      1000 DMKEY 鍵の暗号化のためのセキュア・メッセージ鍵
      1001 DMPIN PIN の暗号化のためのセキュア・メッセージ鍵
      1111 DALL DKYGENKY 鍵および KEYGENKY 鍵を除くすべての鍵タイプを生成できます。 DALL キーワードの使用は、個別のアクセス制御点によって制御されます。
  9. セキュア・メッセージング鍵の場合は、以下のビットを設定します。
    • 鍵を PIN サービスのセキュア・メッセージングで使用する場合は、ビット 18 を 1 に設定します。 鍵を鍵サービスのセキュア・メッセージングで使用する場合は、ビット 19 を 1 に設定します。
  10. すべての鍵に対して、以下のビットを設定します。
    • エクスポート・ビット (E、ビット 17)。 0 に設定すると、エクスポート・ビットにより鍵をエクスポートできなくなります。 このビットを 0 に設定すると、鍵の受信側が別の暗号サブシステム内で使用するために鍵をエクスポートまたは変換できなくなります。 このビットを 0 に設定すると、制御ベクトル変換以外のサービスで 1 に設定することができなくなります。 エクスポート禁止呼び出し可能サービスは、エクスポート・ビットをリセットできます。
    • 鍵パーツ・ビット (K、ビット 44)。 鍵パーツと関連付けられている制御ベクトル内で、鍵パーツ・ビットを 1 に設定します。 最終鍵パーツを以前の累積鍵パーツと結合する場合、最終鍵パーツの制御ベクトル内の鍵パーツ・ビットは 0 に設定されます。制御ベクトル生成呼び出し可能サービスは、KEY-PART キーワードを指定すると、鍵パーツ・ビットを 1 に設定できます。
    • 反可変ビット (ビット 30 およびビット 38)。 ビット 30 を 0 に、ビット 38 を 1 に設定します。多くの暗号システムは、ターゲット鍵を暗号化する前に、7 ビット値と鍵暗号鍵の各 7 ビットのグループとの排他的論理和をとるバリアントのシステムを実装しています。 ビット 30 および 38 を反対の値に設定することで、制御ベクトルは、バリアント・ベースのシステムで発生する可能性があるパターンを生成しません。
    • 制御ベクトルのビット 64 から 127。 ビット 40 から 42 が B'000' (単一長の鍵) である場合は、ビット 64 から 127 までを 0 に設定します。そうでない場合、ビット 0 から 63 をビット 64 から 127 に設定し、ビット 105 と 106 を B'01' に設定します。
    • パリティー・ビットを設定します (各バイトの下位ビット、ビット 7、15、…、127)。 これらのビットには、制御ベクトルのパリティー・ビット (P) が含まれます。 各バイトのパリティー・ビットを、バイト内のゼロ値のビット数が偶数になるように設定します。
    • セキュア・メッセージング鍵の場合、使用ビット 18 が有効であれば、セキュア・メッセージ内の鍵を暗号化することができ、使用ビット 19 が有効であれば、セキュア・メッセージ内の PIN を暗号化することができます。
    • ENH-ONLY ビット (H、ビット 56)。 鍵値を拡張ラップ方式で暗号化することが必要な場合は、制御ベクトル内で ENH-ONLY ビットを 1 に設定します。 制御ベクトル生成呼び出し可能サービスは、ENH-ONLY キーワードを指定すると、ENH-ONLY ビットを 1 に設定できます。