翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Cryptographic Computing for Clean Rooms での列タイプ
このトピックでは、Cryptographic Computing for Clean Rooms での列タイプに関する情報を提供します。
Fingerprint列
Fingerprint列は、JOIN ステートメントで使用される、暗号化によって保護された列です。
fingerprint列のデータを復号化することはできません。復号化できるのは、シール列のデータだけです。
Fingerprint列は次の SQL 句と関数でのみ使用する必要があります。
-
他のfingerprint列に対する JOIN (INNER, OUTER, LEFT, RIGHT, or FULL)
-
allowJoinsOnColumnsWithDifferentNames
パラメータの値がfalse
に設定されている場合、JOIN の両方のfingerprint列が同じ名前であることも必要になります。
-
-
SELECT COUNT()
-
SELECT COUNT(DISTINCT )
-
GROUP BY
(コラボレーションでpreserveNulls
パラメータの値がtrue
に設定されている場合にのみ使用)
これらの制約に違反するクエリは、誤った結果をもたらす可能性があります。
シール列
シール列は、SELECT ステートメントで使用される、暗号化によって保護された列です。
シール列は、次の SQL 句と関数でのみ使用する必要があります。
-
SELECT
-
SELECT ... AS
-
SELECT COUNT()
注記
SELECT COUNT(DISTINCT )
はサポートされていません。
これらの制約に違反するクエリは、誤った結果をもたらす可能性があります。
暗号化前のsealed列のデータのパディング
列をsealed列にするように指定すると、C3R からどの種類のパディングを選択するかをたずねられます。暗号化前のデータのパディングは任意です。パディングを使用しない場合 (パディングタイプ none
) は、暗号化されたデータの長さがcleartextのサイズを示します。状況によっては、cleartextのサイズによってプレーンテキストが明らかになる場合もあります。パディングを使用する場合 (パディングタイプ fixed
またはmax
) は、まずすべての値が共通のサイズにパディングされ、次に暗号化されます。パディングを使用すると、暗号化されたデータの長さによって、サイズの上限は示されるものの、元のcleartextの長さに関するそれ以外の情報は得られません。
特定の列のパディングが必要で、その列のデータの最大バイト長がわかっている場合は、fixed
パディングを使用し、少なくともその列の最大バイト長と同じ大きさの length
値を使用してください。
注記
値が指定した length
値より長いとエラーが発生し、暗号化は失敗します。
列のパディングが必要で、その列のデータの最大バイト長が不明な場合は、パmax
ディングを使用します。このパディングモードは、すべてのデータを、最長値に追加の length
バイトを加えた長さにパディングします。
注記
データをまとめて暗号化したり、テーブルを新しいデータで定期的に更新したりする場合、max
パディングを行うと、指定したバッチ内の最も長いプレーンテキストエントリの長さ (プラス length
バイト) までエントリがパディングされることに注意してください。つまり、暗号文の長さはバッチごとに異なる可能性があります。したがって、列の最大バイト長がわかっている場合は、max
の代わりに fixed
使用してください。
Cleartext列
Cleartext 列は、 ステートメントJOINまたは SELECTステートメントでの使用のために暗号的に保護されていない列です。
Cleartext列は SQL クエリのどの部分でも使用できます。