

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Étape 4 : générer un schéma de chiffrement pour un fichier tabulaire
<a name="gen-encryption-schema-csv"></a>

Pour chiffrer des données, un schéma de chiffrement décrivant la manière dont les données seront utilisées est requis. Cette section décrit comment le client de chiffrement C3R aide à générer un schéma de chiffrement pour un fichier CSV avec une ligne d'en-tête ou un Parquet fichier. 

Vous ne devez effectuer cette opération qu'une seule fois par fichier. Une fois que le schéma existe, il peut être réutilisé pour chiffrer le même fichier (ou tout autre fichier dont le nom de colonne est identique). Si les noms des colonnes ou le schéma de chiffrement souhaité changent, vous devez mettre à jour le fichier de schéma. Pour de plus amples informations, veuillez consulter [(Facultatif) Créez un schéma (utilisateurs avancés)](create-schema.md).

**Important**  
Il est essentiel que toutes les parties collaboratrices utilisent la même clé secrète partagée. Les parties collaboratrices doivent également coordonner les noms des colonnes afin de déterminer s'ils doivent être JOIN édités ou comparés pour garantir l'égalité dans les requêtes. Dans le cas contraire, les requêtes SQL risquent de produire des résultats inattendus ou incorrects. Toutefois, cela n'est pas nécessaire si le créateur de la collaboration a activé le paramètre de `allowJoinsOnColumnsWithDifferentNames` chiffrement lors de la création de la collaboration. Pour plus d'informations sur les paramètres relatifs au chiffrement, consultez. [Paramètres de calcul cryptographique](crypto-computing-parameters.md)

Lorsqu'il est exécuté en mode schéma, le client de chiffrement C3R parcourt le fichier d'entrée colonne par colonne pour vous demander si et comment cette colonne doit être traitée. Si le fichier contient de nombreuses colonnes qui ne sont pas souhaitées pour la sortie cryptée, la génération de schéma interactif peut devenir fastidieuse car vous devez ignorer chaque colonne indésirable. Pour éviter cela, vous pouvez écrire manuellement un schéma ou créer une version simplifiée du fichier d'entrée contenant uniquement les colonnes souhaitées. Ensuite, le générateur de schéma interactif pourrait être exécuté sur ce fichier réduit. Le client de chiffrement C3R produit des informations sur le fichier de schéma et vous demande comment les colonnes source doivent être incluses ou cryptées (le cas échéant) dans la sortie cible.

Pour chaque colonne source du fichier d'entrée, vous êtes invité à saisir : 

1. Combien de colonnes cibles doivent être générées

1. Comment chaque colonne cible doit être cryptée (le cas échéant)

1. Le nom de chaque colonne cible

1. Comment les données doivent être remplies avant le chiffrement si la colonne est chiffrée en tant que sealed colonne

**Note**  
Lorsque vous chiffrez les données d'une colonne chiffrée en tant que sealed colonne, vous devez déterminer quelles données doivent être rembourrées. Le client de chiffrement C3R suggère un rembourrage par défaut lors de la génération du schéma, afin que toutes les entrées d'une colonne soient garnies de la même longueur.  
Lorsque vous déterminez la longueur de`fixed`, notez que le remplissage est exprimé en octets et non en bits.

Vous trouverez ci-dessous une table de décision pour créer le schéma.


**Tableau de décision relatif au schéma**  

| Décision | Nombre de colonnes cibles depuis la colonne source <' name-of-column '> ? | Type de colonne cible : [c]cleartext, [f] fingerprint ou [s] sealed ? | Nom de l'en-tête de la colonne cible <default 'name-of-column'> | Ajouter un suffixe <suffix>à l'en-tête pour indiquer comment il a été chiffré, [y] oui ou [n] non <default 'yes'> | <' name-of-column \$1sealed'> type de rembourrage : [n] un, [f] fixe ou [m] max <default 'max'> | 
| --- | --- | --- | --- | --- | --- | 
| Laissez la colonne non chiffrée. | 1 | c | Non applicable | Ne s’applique pas | Non applicable | 
| Chiffrez la colonne en tant que fingerprint colonne. | 1 | f | Choisissez le nom par défaut ou entrez un nouveau nom d'en-tête. | Entrez y pour choisir par défaut (\$1fingerprint) ou entrezn. | Non applicable | 
| Chiffrez la colonne en tant que sealed colonne. | 1 | s | Choisissez le nom par défaut ou entrez un nouveau nom d'en-tête. | Entrez y pour choisir par défaut (\$1sealed) ou entrezn. |  Choisissez le type de rembourrage. Pour de plus amples informations, veuillez consulter [(Facultatif) Créez un schéma (utilisateurs avancés)](create-schema.md).  | 
| Chiffrez la colonne sous la forme à la fois fingerprint et. sealed | 2 |  Entrez la première colonne cible : **f.** Entrez la deuxième colonne cible : **s.**  | Choisissez les en-têtes cibles pour chaque colonne cible. | Entrez y pour choisir la valeur par défaut ou entrez n. |  Choisissez le type de rembourrage (pour les sealed colonnes uniquement). Pour de plus amples informations, veuillez consulter [(Facultatif) Créez un schéma (utilisateurs avancés)](create-schema.md).  | 

Voici deux exemples de création de schémas de chiffrement. Le contenu exact de votre interaction dépend du fichier d'entrée et des réponses que vous fournissez.

**Topics**
+ [Exemple : génération d'un schéma de chiffrement pour une fingerprint colonne et une cleartext colonne](#gen-encryption-schema_join)
+ [Exemple : génération d'un schéma de chiffrement avec des cleartext colonnes sealedfingerprint, et](#gen-encryption-schema)

## Exemple : génération d'un schéma de chiffrement pour une fingerprint colonne et une cleartext colonne
<a name="gen-encryption-schema_join"></a>

Dans cet exemple, pour`ads.csv`, il n'y a que deux colonnes : `username` et`ad_variant`. Pour ces colonnes, nous voulons ce qui suit :
+ Pour que la `username` colonne soit cryptée en tant que `fingerprint` colonne
+ Pour que la `ad_variant` colonne soit une `cleartext` colonne

**Pour générer un schéma de chiffrement pour une fingerprint colonne et une cleartext colonne**

1. (*Facultatif*) Pour vous assurer que le c3r-cli.jar fichier et le fichier à chiffrer sont présents : 

   1. Naviguez jusqu'au répertoire souhaité et exécutez `ls` (si vous utilisez a Mac ouUnix/Linux) ou `dir` si vous utilisezWindows).

   1. Consultez la liste des fichiers de données tabulaires (par exemple, .csv) et choisissez un fichier à chiffrer. 

      Dans cet exemple, `ads.csv` c'est le fichier que nous voulons chiffrer.

1. À partir de la CLI, exécutez la commande suivante pour créer un schéma de manière interactive. 

   `java -jar c3r-cli.jar schema ads.csv --interactive --output=ads.json`
**Note**  
Tu peux courir`java --jar PATH/TO/c3r-cli.jar`. Ou, si vous l'avez ajoutée `PATH/TO/c3r-cli.jar` à votre variable d'environnement CLASSPATH, vous pouvez également exécuter le nom de la classe. Le client de chiffrement C3R regardera le CLASSPATH pour le trouver (par exemple,). `java com.amazon.psion.cli.Main`
L'`--interactive`indicateur sélectionne le mode interactif pour développer le schéma. Cela guide l'utilisateur à travers un assistant de création du schéma. Les utilisateurs ayant des compétences avancées peuvent créer leur propre schéma JSON sans utiliser l'assistant. Pour de plus amples informations, veuillez consulter [(Facultatif) Créez un schéma (utilisateurs avancés)](create-schema.md).
L'`--output`indicateur définit un nom de sortie. Si vous n'incluez pas l'`--output`indicateur, le client de chiffrement C3R essaie de choisir un nom de sortie par défaut (tel que `<input>.out.csv` ou pour le schéma`<input>.json`).

1. Pour`Number of target columns from source column ‘username’?`, entrez, **1** puis appuyez sur **Entrée**.

1. Pour`Target column type: [c]leartext, [f]ingerprint, or [s]ealed?`, entrez, **f** puis appuyez sur **Entrée**.

1. Pour`Target column headername <default 'username'>`, appuyez sur **Entrée**.

   Le nom par défaut « `username` » est utilisé.

1. Pour`Add suffix '_fingerprint' to header to indicate how it was encrypted, [y]es or [n]o <default 'yes'>`, entrez, **y** puis appuyez sur **Entrée**.
**Note**  
Le mode interactif suggère des suffixes à ajouter aux en-têtes de colonnes chiffrés (`_fingerprint`pour les fingerprint colonnes et `_sealed` pour sealed les colonnes). Les suffixes peuvent être utiles lorsque vous effectuez des tâches telles que le téléchargement de données Services AWS ou la création de collaborations. AWS Clean Rooms Ces suffixes peuvent aider à indiquer ce qui peut être fait avec les données chiffrées de chaque colonne. Par exemple, les choses ne fonctionneront pas si vous chiffrez une colonne sous forme de sealed colonne (`_sealed`) et que vous essayez d'y JOIN accéder ou que vous essayez l'inverse.

1. Pour`Number of target columns from source column ‘ad_variant’?`, entrez, **1** puis appuyez sur **Entrée**.

1. Pour`Target column type: [c]leartext, [f]ingerprint, or [s]ealed?`, entrez, **c** puis appuyez sur **Entrée**.

1. Pour`Target column headername <default 'username'>`, appuyez sur **Entrée**.

   Le nom par défaut « `ad_variant` » est utilisé.

   Le schéma est écrit dans un nouveau fichier appelé`ads.json`.
**Note**  
Vous pouvez afficher le schéma en l'ouvrant dans n'importe quel éditeur de texte, tel que Notepad on Windows ou TextEdit onmacOS.

1. Vous êtes maintenant prêt à [chiffrer les données](encrypt-data.md). 

## Exemple : génération d'un schéma de chiffrement avec des cleartext colonnes sealedfingerprint, et
<a name="gen-encryption-schema"></a>

Dans cet exemple, pour`sales.csv`, il y a trois colonnes : `username``purchased`, et`product`. Pour ces colonnes, nous voulons ce qui suit :
+ Pour que la `product` colonne soit une `sealed` colonne
+ Pour que la `username` colonne soit cryptée en tant que `fingerprint` colonne
+ Pour que la `purchased` colonne soit une `cleartext` colonne

**Pour générer un schéma de chiffrement avec des cleartext colonnes sealedfingerprint, et**

1. (*Facultatif*) Pour vous assurer que le c3r-cli.jar fichier et le fichier à chiffrer sont présents :

   1. Naviguez jusqu'au répertoire souhaité et exécutez `ls` (si vous utilisez a Mac ouUnix/Linux) ou `dir` si vous utilisezWindows).

   1. Consultez la liste des fichiers de données tabulaires (.csv) et choisissez un fichier à chiffrer. 

      Dans cet exemple, `sales.csv` c'est le fichier que nous voulons chiffrer.

1. À partir de la CLI, exécutez la commande suivante pour créer un schéma de manière interactive.

   `java -jar c3r-cli.jar schema sales.csv --interactive --output=sales.json`
**Note**  
L'`--interactive`indicateur sélectionne le mode interactif pour développer le schéma. Cela guide l'utilisateur à travers un flux de travail guidé pour créer le schéma. 
Si vous êtes un utilisateur avancé, vous pouvez créer votre propre schéma JSON sans utiliser le flux de travail guidé. Pour de plus amples informations, veuillez consulter [(Facultatif) Créez un schéma (utilisateurs avancés)](create-schema.md).
Pour les fichiers .csv sans en-têtes de colonne, consultez l'`--noHeaders`indicateur de la commande de schéma disponible dans la CLI.
L'`--output`indicateur définit un nom de sortie. Si vous n'incluez pas l'`--output`indicateur, le client de chiffrement C3R essaie de choisir un nom de sortie par défaut (tel que `<input>.out` ou pour le schéma`<input>.json`).

1. Pour`Number of target columns from source column ‘username’?`, entrez, **1** puis appuyez sur **Entrée**.

1. Pour`Target column type: [c]leartext, [f]ingerprint, or [s]ealed?`, entrez, **f** puis appuyez sur **Entrée**.

1. Pour`Target column headername <default 'username'>`, appuyez sur **Entrée**.

   Le nom par défaut « `username` » est utilisé.

1. Pour`Add suffix '_fingerprint' to header to indicate how it was encrypted, [y]es or [n]o <default 'yes'>`, entrez, **y** puis appuyez sur **Entrée**.

1. Pour`Number of target columns from source column ‘purchased’?`, entrez, **1** puis appuyez sur **Entrée**.

1. Pour`Target column type: [c]leartext, [f]ingerprint, or [s]ealed?`, entrez, **c** puis appuyez sur **Entrée**.

1. Pour`Target column headername <default 'purchased'>`, appuyez sur **Entrée**.

   Le nom par défaut « `purchased` » est utilisé.

1. Pour`Number of target columns from source column ‘product’?`, entrez, **1** puis appuyez sur **Entrée**.

1. Pour`Target column type: [c]leartext, [f]ingerprint, or [s]ealed?`, entrez, **s** puis appuyez sur **Entrée**.

1. Pour`Target column headername <default 'product'>`, appuyez sur **Entrée**.

   Le nom par défaut « `product` » est utilisé.

1. Pour`‘product_sealed’ padding type: [n]one, [f]ixed, or [m]ax <default ’max’?>`, appuyez sur **Entrée** pour choisir la valeur par défaut.

1. Pour sélectionner la valeur par défaut, `Byte-length beyond max length to pad cleartext to in ‘product_sealed’ <default ‘0’>?` **appuyez** sur Entrée.

   Le schéma est écrit dans un nouveau fichier appelé`sales.json`.

1. Vous êtes maintenant prêt à [chiffrer les données](encrypt-data.md). 