

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Fase 4: Generazione di uno schema di crittografia per un file tabulare
<a name="gen-encryption-schema-csv"></a>

Per crittografare i dati, è necessario uno schema di crittografia che descriva come verranno utilizzati i dati. Questa sezione descrive come il client di crittografia C3R aiuta a generare uno schema di crittografia per un file CSV con una riga di intestazione o un file. Parquet 

È sufficiente eseguire questa operazione una sola volta per file. Una volta che lo schema esiste, può essere riutilizzato per crittografare lo stesso file (o qualsiasi file con nomi di colonna identici). Se i nomi delle colonne o lo schema di crittografia desiderato cambiano, è necessario aggiornare il file dello schema. Per ulteriori informazioni, consulta [(Facoltativo) Creare uno schema (utenti esperti)](create-schema.md).

**Importante**  
È fondamentale che tutte le parti che collaborano utilizzino la stessa chiave segreta condivisa. Le parti che collaborano dovrebbero inoltre coordinare i nomi delle colonne in modo che corrispondano se verranno visualizzati o JOIN confrontati in altro modo per garantire l'uguaglianza nelle interrogazioni. In caso contrario, le query SQL potrebbero produrre risultati imprevisti o errati. Tuttavia, ciò non è necessario se il creatore della collaborazione ha abilitato l'impostazione di `allowJoinsOnColumnsWithDifferentNames` crittografia durante la creazione della collaborazione. Per ulteriori informazioni sulle impostazioni relative alla crittografia, vedere. [Parametri di calcolo crittografico](crypto-computing-parameters.md)

Quando viene eseguito in modalità schema, il client di crittografia C3R analizza il file di input colonna per colonna, chiedendo se e come tale colonna debba essere trattata. Se il file contiene molte colonne non desiderate per l'output crittografato, la generazione dello schema interattivo potrebbe diventare noiosa perché è necessario saltare ogni colonna indesiderata. Per evitare ciò, è possibile scrivere manualmente uno schema o creare una versione semplificata del file di input contenente solo le colonne desiderate. Quindi, il generatore di schemi interattivo potrebbe essere eseguito su quel file ridotto. Il client di crittografia C3R fornisce informazioni sul file di schema e chiede all'utente come includere o crittografare (se del caso) le colonne di origine nell'output di destinazione.

Per ogni colonna di origine nel file di input, viene richiesto di: 

1. Quante colonne di destinazione devono essere generate

1. In che modo ogni colonna di destinazione deve essere crittografata (se non del tutto)

1. Il nome di ogni colonna di destinazione

1. Come devono essere aggiunti i dati prima della crittografia se la colonna viene crittografata come sealed colonna

**Nota**  
Quando si crittografano i dati per una colonna che è stata crittografata come sealed colonna, è necessario determinare quali dati devono essere riempiti. Il client di crittografia C3R suggerisce un riempimento predefinito durante la generazione dello schema che riempie tutte le voci di una colonna con la stessa lunghezza.  
Quando si determina la lunghezza di`fixed`, si noti che il padding è in byte, non in bit.

Di seguito è riportata una tabella decisionale per la creazione dello schema.


**Tabella decisionale dello schema**  

| Decisione | Numero di colonne di destinazione dalla colonna di origine <' name-of-column '>? | Tipo di colonna di destinazione: [c]cleartext, [f] fingerprint o [s]? sealed | Nome dell'intestazione della colonna di destinazione <default 'name-of-column'> | Aggiungi il suffisso <suffix>all'intestazione per indicare come è stata crittografata, [y] sì o [n] no <default 'yes'> | <' name-of-column \_sealed'> tipo di imbottitura: [n] one, [f] fissa o [m] max <default 'max'> | 
| --- | --- | --- | --- | --- | --- | 
| Lascia la colonna non crittografata. | 1 | c | Non applicabile | Non applicabile | Non applicabile | 
| Crittografa la colonna come fingerprint colonna. | 1 | f | Scegli il valore predefinito o inserisci un nuovo nome di intestazione. | Immettete y per scegliere default (\_fingerprint) o invion. | Non applicabile | 
| Crittografa la colonna come sealed colonna. | 1 | s | Scegli il valore predefinito o inserisci un nuovo nome di intestazione. | Immettete y per scegliere default (\_sealed) o invion. | Scegliete il tipo di imbottitura.<br />Per ulteriori informazioni, consulta [(Facoltativo) Creare uno schema (utenti esperti)](create-schema.md). | 
| Crittografa la colonna sia come siafingerprint. sealed | 2 | Inserisci la prima colonna di destinazione: **f.**<br />Inserisci la seconda colonna di destinazione: **s**. | Scegli le intestazioni di destinazione per ogni colonna di destinazione. | Inserisci y per scegliere il valore predefinito o inserisci n. | Scegli il tipo di imbottitura (solo per sealed le colonne).<br />Per ulteriori informazioni, consulta [(Facoltativo) Creare uno schema (utenti esperti)](create-schema.md). | 

Di seguito sono riportati due esempi di come creare schemi di crittografia. Il contenuto esatto dell'interazione dipende dal file di input e dalle risposte fornite.

**Topics**
+ [Esempio: generazione di uno schema di crittografia per una fingerprint colonna e una cleartext colonna](#gen-encryption-schema_join)
+ [Esempio: generazione di uno schema di crittografia con sealedfingerprint, e colonne cleartext](#gen-encryption-schema)

## Esempio: generazione di uno schema di crittografia per una fingerprint colonna e una cleartext colonna
<a name="gen-encryption-schema_join"></a>

In questo esempio, per`ads.csv`, ci sono solo due colonne: `username` e`ad_variant`. Per queste colonne, vogliamo quanto segue:
+ Affinché la `username` colonna venga crittografata come `fingerprint` colonna
+ Perché la `ad_variant` colonna sia una `cleartext` colonna

**Per generare uno schema di crittografia per una fingerprint colonna e una cleartext colonna**

1. (*Facoltativo*) Per garantire la presenza del c3r-cli.jar file e del file da crittografare: 

   1. Accedere alla directory desiderata ed eseguire `ls` (se si utilizza un Mac oUnix/Linux) o `dir` se si utilizzaWindows).

   1. Visualizza l'elenco dei file di dati tabulari (ad esempio, .csv) e scegli un file da crittografare. 

      In questo esempio, `ads.csv` è il file che vogliamo crittografare.

1. Dalla CLI, esegui il comando seguente per creare uno schema in modo interattivo. 

   `java -jar c3r-cli.jar schema ads.csv --interactive --output=ads.json`
**Nota**  
Puoi correre. `java --jar PATH/TO/c3r-cli.jar` Oppure, se l'hai aggiunta `PATH/TO/c3r-cli.jar` alla variabile di ambiente CLASSPATH, puoi anche eseguire il nome della classe. Il client di crittografia C3R cercherà nel CLASSPATH per trovarla (ad esempio,). `java com.amazon.psion.cli.Main`
Il `--interactive` flag seleziona la modalità interattiva per lo sviluppo dello schema. Questo guida l'utente attraverso una procedura guidata per la creazione dello schema. Gli utenti con competenze avanzate possono creare il proprio schema JSON senza utilizzare la procedura guidata. Per ulteriori informazioni, consulta [(Facoltativo) Creare uno schema (utenti esperti)](create-schema.md).
Il `--output` flag imposta un nome di output. Se non includi il `--output` flag, il client di crittografia C3R tenta di scegliere un nome di output predefinito (ad esempio `<input>.out.csv` o per lo schema,`<input>.json`).

1. **Per`Number of target columns from source column ‘username’?`, inserisci **1** e poi premi Invio.**

1. Per`Target column type: [c]leartext, [f]ingerprint, or [s]ealed?`, inserisci **f** e poi premi **Invio**.

1. Per`Target column headername <default 'username'>`, premi **Invio**.

   Viene utilizzato il nome predefinito `username` ''.

1. Per`Add suffix '_fingerprint' to header to indicate how it was encrypted, [y]es or [n]o <default 'yes'>`, inserisci **y** e poi premi **Invio**.
**Nota**  
La modalità interattiva suggerisce suffissi da aggiungere alle intestazioni delle colonne crittografate (`_fingerprint`per fingerprint colonne e `_sealed` per sealed colonne). I suffissi possono essere utili quando si eseguono attività come il caricamento di dati o la creazione di collaborazioni. Servizi AWS AWS Clean Rooms Questi suffissi possono aiutare a indicare cosa si può fare con i dati crittografati in ogni colonna. Ad esempio, le cose non funzioneranno se si crittografa una colonna come sealed colonna (`_sealed`) e si tenta di inserirla o si tenta il JOIN contrario.

1. Per`Number of target columns from source column ‘ad_variant’?`, inserisci **1** e poi premi **Invio**.

1. Per`Target column type: [c]leartext, [f]ingerprint, or [s]ealed?`, inserisci **c** e poi premi **Invio**.

1. Per`Target column headername <default 'username'>`, premi **Invio**.

   Viene utilizzato il nome predefinito `ad_variant` ''.

   Lo schema viene scritto in un nuovo file chiamato`ads.json`.
**Nota**  
È possibile visualizzare lo schema aprendolo in qualsiasi editor di testo, ad esempio Notepad on Windows or TextEdit onmacOS.

1. Ora sei pronto per [crittografare i dati](encrypt-data.md). 

## Esempio: generazione di uno schema di crittografia con sealedfingerprint, e colonne cleartext
<a name="gen-encryption-schema"></a>

In questo esempio, for`sales.csv`, sono presenti tre colonne:`username`,`purchased`, e`product`. Per queste colonne, vogliamo quanto segue:
+ Perché la `product` colonna sia una `sealed` colonna
+ Affinché la `username` colonna venga crittografata come `fingerprint` colonna
+ Perché la `purchased` colonna sia una `cleartext` colonna

**Per generare uno schema di crittografia con sealedfingerprint, e cleartext colonne**

1. (*Facoltativo*) Per garantire la presenza del c3r-cli.jar file e del file da crittografare:

   1. Accedere alla directory desiderata ed eseguire `ls` (se si utilizza un Mac oUnix/Linux) o `dir` se si utilizzaWindows).

   1. Visualizza l'elenco dei file di dati tabulari (.csv) e scegli un file da crittografare. 

      In questo esempio, `sales.csv` è il file che vogliamo crittografare.

1. Dalla CLI, esegui il comando seguente per creare uno schema in modo interattivo.

   `java -jar c3r-cli.jar schema sales.csv --interactive --output=sales.json`
**Nota**  
Il `--interactive` flag seleziona la modalità interattiva per lo sviluppo dello schema. Questo guida l'utente attraverso un flusso di lavoro guidato per la creazione dello schema. 
Se sei un utente esperto, puoi creare il tuo schema JSON senza utilizzare il flusso di lavoro guidato. Per ulteriori informazioni, consulta [(Facoltativo) Creare uno schema (utenti esperti)](create-schema.md).
Per i file.csv senza intestazioni di colonna, consulta il `--noHeaders` flag per il comando schema disponibile nella CLI.
Il `--output` flag imposta un nome di output. Se non includi il `--output` flag, il client di crittografia C3R tenta di scegliere un nome di output predefinito (ad esempio `<input>.out` o per lo schema,`<input>.json`).

1. **Per`Number of target columns from source column ‘username’?`, inserisci **1** e poi premi Invio.**

1. Per`Target column type: [c]leartext, [f]ingerprint, or [s]ealed?`, inserisci **f** e poi premi **Invio**.

1. Per`Target column headername <default 'username'>`, premi **Invio**.

   Viene utilizzato il nome predefinito `username` ''.

1. Per`Add suffix '_fingerprint' to header to indicate how it was encrypted, [y]es or [n]o <default 'yes'>`, inserisci **y** e poi premi **Invio**.

1. Per`Number of target columns from source column ‘purchased’?`, inserisci **1** e poi premi **Invio**.

1. Per`Target column type: [c]leartext, [f]ingerprint, or [s]ealed?`, inserisci **c** e poi premi **Invio**.

1. Per`Target column headername <default 'purchased'>`, premi **Invio**.

   Viene utilizzato il nome predefinito `purchased` ''.

1. Per`Number of target columns from source column ‘product’?`, inserisci **1** e poi premi **Invio**.

1. Per`Target column type: [c]leartext, [f]ingerprint, or [s]ealed?`, inserisci **s** e poi premi **Invio**.

1. Per`Target column headername <default 'product'>`, premi **Invio**.

   Viene utilizzato il nome predefinito `product` ''.

1. Per`‘product_sealed’ padding type: [n]one, [f]ixed, or [m]ax <default ’max’?>`, premi **Invio** per scegliere il valore predefinito.

1. Per `Byte-length beyond max length to pad cleartext to in ‘product_sealed’ <default ‘0’>?` premere **Invio** per scegliere l'impostazione predefinita.

   Lo schema viene scritto in un nuovo file chiamato`sales.json`.

1. Ora sei pronto per [crittografare i dati](encrypt-data.md). 