フォーマット保持暗号化
フォーマット保持暗号化 (Format Preserving Encryption、FPE) は、結果として得られる暗号テキストが、入力非暗号化テキストと同じ形式になる暗号化方式です。 テキストの形式は、用途とアプリケーションに応じて変わる可能性があります。 1 つの例として、16 桁のクレジット・カード番号が挙げられます。 FPE を使用してクレジット・カード番号を暗号化すると、結果として得られる暗号テキストは別の 16 桁の番号になります。 このクレジット・カード番号の例では、出力暗号テキストは数字のみに限定されています。
FPE サービスでは、適切な出力暗号テキストを作成するために、ある程度の入力非暗号化テキスト文字セットの知識が必要です。 CSNBFPEE、CSNBFPED、および CSNBFPET の各呼び出し可能サービスでは、下表を使用して、非暗号化テキスト入力パラメーターに有効な文字セットを決定します。
Base-10 英字
この英字は、文字セットが数字 0 から 9 のみで構成されている場合に使用されます。
ソース・フィールドの元のデータ型は任意です。
この英字は、VFPE アルゴリズムで使用する場合は次の値を必要とします。
Number of characters in alphabet('n'): 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
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
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 |