

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Cryptographic Computing for Clean Rooms での列タイプ
<a name="crypto-computing-column-types"></a>

このトピックでは、Cryptographic Computing for Clean Rooms での列タイプに関する情報を提供します。

**Topics**
+ [Fingerprint列](#fingerprint-columns)
+ [シール列](#sealed-columns)
+ [Cleartext列](#cleartext-columns)

## Fingerprint列
<a name="fingerprint-columns"></a>

**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` に設定されている場合にのみ使用)

これらの制約に違反するクエリは、誤った結果をもたらす可能性があります。

## シール列
<a name="sealed-columns"></a>

**シール列は、SELECT ステートメントで使用される、暗号化によって保護された列です。

シール列は、次の SQL 句と関数でのみ使用する必要があります。
+ `SELECT`
+ `SELECT ... AS`
+ `SELECT COUNT()`
**注記**  
`SELECT COUNT(DISTINCT )` はサポートされていません。

これらの制約に違反するクエリは、誤った結果をもたらす可能性があります。

### 暗号化前のsealed列のデータのパディング
<a name="padding-data"></a>

列をsealed列にするように指定すると、C3R からどの種類の**パディングを選択するかをたずねられます。暗号化前のデータのパディングは任意です。パディングを使用しない場合 (パディングタイプ `none`) は、暗号化されたデータの長さがcleartextのサイズを示します。状況によっては、cleartextのサイズによってプレーンテキストが明らかになる場合もあります。パディングを使用する場合 (パディングタイプ `fixed` または`max`) は、まずすべての値が共通のサイズにパディングされ、次に暗号化されます。パディングを使用すると、暗号化されたデータの長さによって、サイズの上限は示されるものの、元のcleartextの長さに関するそれ以外の情報は得られません。

特定の列のパディングが必要で、その列のデータの最大バイト長がわかっている場合は、`fixed` パディングを使用し、少なくともその列の最大バイト長と同じ大きさの `length` 値を使用してください。

**注記**  
値が指定した `length` 値より長いとエラーが発生し、暗号化は失敗します。

列のパディングが必要で、その列のデータの最大バイト長がわかっていない場合は、`max` パディングを使用します。このパディングモードは、すべてのデータを、最長値に追加の `length` バイトを加えた長さにパディングします。

**注記**  
データをまとめて暗号化したり、テーブルを新しいデータで定期的に更新したりする場合、`max` パディングを行うと、指定したバッチ内の最も長いプレーンテキストエントリの長さ (プラス `length` バイト) までエントリがパディングされることに注意してください。つまり、暗号文の長さはバッチごとに異なる可能性があります。したがって、列の最大バイト長がわかっている場合は、`max` の代わりに `fixed` 使用してください。

## Cleartext列
<a name="cleartext-columns"></a>

*Cleartext 列*は、JOIN または SELECT ステートメントで使用される、暗号によって保護されていない列です。

Cleartext列は SQL クエリのどの部分でも使用できます。