フォーマット保持暗号化

フォーマット保持暗号化 (Format Preserving Encryption、FPE) は、結果として得られる暗号テキストが、入力非暗号化テキストと同じ形式になる暗号化方式です。 テキストの形式は、用途とアプリケーションに応じて変わる可能性があります。 1 つの例として、16 桁のクレジット・カード番号が挙げられます。 FPE を使用してクレジット・カード番号を暗号化すると、結果として得られる暗号テキストは別の 16 桁の番号になります。 このクレジット・カード番号の例では、出力暗号テキストは数字のみに限定されています。

FPE サービスでは、適切な出力暗号テキストを作成するために、ある程度の入力非暗号化テキスト文字セットの知識が必要です。 CSNBFPEE、CSNBFPED、および CSNBFPET の各呼び出し可能サービスでは、下表を使用して、非暗号化テキスト入力パラメーターに有効な文字セットを決定します。

Base-10 英字

この英字は、文字セットが数字 0 から 9 のみで構成されている場合に使用されます。 ソース・フィールドの元のデータ型は任意です。 この英字は、VFPE アルゴリズムで使用する場合は次の値を必要とします。
Number of characters in alphabet('n'): 10
表 1. Base-10 英字
VFPE 英字番号 文字 ISO 7811 変更済み 5 ビット ASCII ISO 7811 変更済み 7 ビット ASCII 通常のデータ型エンコード
4 ビット 2 進化 10 進数 7 ビット ASCII 8 ビット EBCDIC
0 0 10000 0010000 0000 0110000 11110000
1 1 00001 1010001 0001 0110001 11110001
2 2 00010 1010010 0010 0110010 11110010
3 3 10011 0010011 0011 0110011 11110011
4 4 00100 1010100 0100 0110100 11110100
5 5 10101 0010101 0101 0110101 11110101
6 6 10110 0010110 0110 0110110 11110110
7 7 00111 1010111 0111 0110111 11110111
8 8 01000 1011000 1000 0111000 11111000
9 9 11001 0011001 1001 0111001 11111001

Base-16 英字

カードは、トラック 2 用の特殊な ISO 7811 変更済み 5 ビット ASCII エンコードを使用してエンコードされます。 このデータ型を使用すると、桁のパリティー・チェックを行うことができます。 多くのシステムでは、処理用に標準データ型に変換するためにこのエンコードが必要です。 その他のデータ・フィールドでは base-16 エンコードを使用でき、VFPE の実行時にはこの同じ英字が使用されます。 これらのデータ型では、0 から 9 および A から F の値がサポートされます。

VFPE では、暗号化の前に、VFPE 英字番号の文字を変換する必要があります。 したがって、表 2 に示されているすべてのデータ型がサポートされます。 暗号化解除では、元のエンコードと同じデータ型を使用することも、異なるデータ型を使用することもできます。 この英字は、VFPE アルゴリズムで使用する場合は次の値を必要とします。
Number of characters in alphabet('n'): 16
表 2. Base-16 英字
VFPE 英字番号 ISO 7811 変更済み 5 ビット ASCII エンコード 通常のデータ型エンコード
文字 バイナリー 文字 4 ビット 2 進化 10 進数 7 ビット ASCII 8 ビット EBCDIC
0 0 10000 0 0000 0110000 11110000
1 1 00001 1 0001 0110001 11110001
2 2 00010 2 0010 0110010 11110010
3 3 10011 3 0011 0110011 11110011
4 4 00100 4 0100 0110100 11110100
5 5 10101 5 0101 0110101 11110101
6 6 10110 6 0110 0110110 11110110
7 7 00111 7 0111 0110111 11110111
8 8 01000 8 1000 0111000 11111000
9 9 11001 9 1001 0111001 11111001
10 : 11010 A 1010 1000001 11000001
11 ; 01011 B 1011 1000010 11000010
12 < 11100 C 1100 1000011 11000011
13 = 01101 D 1101 1000100 11000100
14 > 01110 E 1110 1000101 11000101
15 ? 11111 F 1111 1000110 11000110

トラック 1 英字

この英字は、VFPE アルゴリズムで使用する場合は次の値を必要とします。
Number of characters in alphabet('n'): 41
表 3. トラック 1 英字
FPE 英字番号 文字 ISO 7811 変更済み 7 ビット ASCII 標準データ型 7 ビット ASCII 標準データ型 8 ビット ASCII
0 スペース 1000000 0100000 01000000
1 $ 0000100 0100100 01011011
2 ( 0001000 0101000 01001101
3 ) 1001001 0101001 01011101
4 - 0001101 0101101 01100000
5 0 0010000 0110000 11110000
6 1 1010001 0110001 11110001
7 2 1010010 0110010 11110010
8 3 0010011 0110011 11110011
9 4 1010100 0110100 11110100
10 5 0010101 0110101 11110101
11 6 0010110 0110110 11110110
12 7 1010111 0110111 11110111
13 8 1011000 0111000 11111000
14 9 0011001 0111001 11111001
15 A 1100001 1000001 11000001
16 B 1100010 1000010 11000010
17 C 0100011 1000011 11000011
18 D 1100100 1000100 11000100
19 E 0100101 1000101 11000101
20 F 0100110 1000110 11000110
21 G 1100111 1000111 11000111
22 H 1101000 1001000 11001000
23 I 0101001 1001001 11001001
24 J 0101010 1001010 11010001
25 K 1101011 1001011 11010010
26 L 0101100 1001100 11010011
27 M 1101101 1001101 11010100
28 N 1101110 1001110 11010101
29 O 0101111 1001111 11010110
30 P 1110000 1010000 11010111
31 Q 0110001 1010001 11011000
32 R 0110010 1010010 11011001
33 S 1110011 1010011 11100010
34 T 0110100 1010100 11100011
35 U 1110101 1010101 11100100
36 V 1110110 1010110 11100101
37 W 0110111 1010111 11100110
38 X 0111000 1011000 11100111
39 Y 1111001 1011001 11101000
40 Z 1111010 1011010 11101001