Linee guida per il client di crittografia C3R - AWS Clean Rooms

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à.

Linee guida per il client di crittografia C3R

Il client di crittografia C3R è uno strumento che consente alle organizzazioni di riunire dati sensibili per ricavare nuove informazioni dall'analisi dei dati. Lo strumento limita crittograficamente ciò che può essere appreso da qualsiasi parte e durante il processo. AWS Sebbene ciò sia di vitale importanza, il processo di protezione crittografica dei dati può comportare un notevole sovraccarico sia in termini di risorse di elaborazione che di archiviazione. Pertanto, è importante comprendere i compromessi derivanti dall'utilizzo di ciascuna impostazione e come ottimizzare le impostazioni pur mantenendo le garanzie crittografiche desiderate. Questo argomento si concentra sulle implicazioni prestazionali delle diverse impostazioni nel client e negli schemi di crittografia C3R.

Tutte le impostazioni di crittografia del client di crittografia C3R offrono diverse garanzie crittografiche. Le impostazioni a livello di collaborazione sono le più sicure per impostazione predefinita. L'attivazione di funzionalità aggiuntive durante la creazione di una collaborazione indebolisce le garanzie di privacy, consentendo di condurre attività come l'analisi della frequenza sul testo cifrato. Per ulteriori informazioni su come vengono utilizzate queste impostazioni e quali sono le loro implicazioni, consulta. Elaborazione crittografica per Clean Rooms

Implicazioni sulle prestazioni per i tipi di colonna

C3R utilizza tre tipi di colonne: cleartextfingerprint, e. sealed Ciascuno di questi tipi di colonna offre garanzie crittografiche diverse e ha diverse destinazioni d'uso. Nelle sezioni seguenti, vengono discusse le implicazioni prestazionali del tipo di colonna e l'impatto sulle prestazioni di ciascuna impostazione.

Cleartextcolonne

Cleartextle colonne non vengono modificate rispetto al loro formato originale e non vengono elaborate crittograficamente in alcun modo. Questo tipo di colonna non può essere configurato e non influisce sulle prestazioni di archiviazione o di calcolo.

Fingerprintcolonne

Fingerprintle colonne sono pensate per essere utilizzate per unire dati su più tabelle. A tal fine, la dimensione del testo cifrato risultante deve essere sempre la stessa. Tuttavia, queste colonne sono influenzate dalle impostazioni a livello di collaborazione. Fingerprintle colonne possono avere diversi gradi di impatto sulla dimensione del file di output a seconda del contenuto nell'cleartextinput.

Sovraccarico di base per le colonne fingerprint

C'è un sovraccarico di base per le fingerprint colonne. Questo sovraccarico è costante e sostituisce la dimensione dei cleartext byte.

I dati nelle fingerprint colonne vengono elaborati crittograficamente tramite una funzione HMAC (Message Authentication Code) basata su Hash, che trasforma i dati in un codice di autenticazione dei messaggi (MAC) a 32 byte. Questi dati vengono quindi elaborati tramite un codificatore base64, aggiungendo circa il 33 percento alla dimensione in byte. È preceduto da una designazione C3R a 8 byte per designare il tipo di colonna a cui appartengono i dati e la versione client che li ha prodotti. Il risultato finale è di 52 byte. Questo risultato viene quindi moltiplicato per il conteggio delle righe per ottenere il sovraccarico totale di base (usa il numero di null valori diversi totali se preserveNulls è impostato su true).

L'immagine seguente mostra come BASE_OVERHEAD = C3R_DESIGNATION + (MAC * 1.33)

Il sovraccarico di 52 byte di base per una fingerprint colonna.

Il testo cifrato in uscita nelle fingerprint colonne sarà sempre di 52 byte. Questa può essere una riduzione significativa dello spazio di archiviazione se la media cleartext dei dati di input supera i 52 byte (ad esempio, indirizzi completi). Questo può essere un aumento significativo dello spazio di archiviazione se la media cleartext dei dati di input è inferiore a 52 byte (ad esempio, l'età dei clienti).

Impostazioni di collaborazione per le colonne fingerprint

preserveNullsImpostazione

Quando l'impostazione a livello di collaborazione preserveNulls è false (impostazione predefinita), ogni null valore viene sostituito con 32 byte casuali univoci ed elaborato come se non lo fosse. null Il risultato è che ogni null valore è ora di 52 byte. Ciò può aggiungere requisiti di archiviazione significativi per le tabelle che contengono dati molto scarsi rispetto a quando questa impostazione è true e null i valori vengono passati come. null

Se non hai bisogno delle garanzie sulla privacy di questa impostazione e preferisci mantenere null i valori all'interno dei tuoi set di dati, abilita l'preserveNullsimpostazione al momento della creazione della collaborazione. L'preserveNullsimpostazione non può essere modificata dopo la creazione della collaborazione.

Dati di esempio per una fingerprint colonna

Di seguito è riportato un set di esempio di dati di input e output per una fingerprint colonna con impostazioni da riprodurre. Altre impostazioni a livello di collaborazione come allowCleartext e allowDuplicates non influiscono sui risultati e possono essere impostate come true o false se si tenta di riprodurre localmente.

Esempio di segreto condiviso: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

Esempio di ID di collaborazione: a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

allowJoinsOnColumnsWithDifferentNames: True questa impostazione non influisce sui requisiti di prestazioni o di archiviazione. Tuttavia, questa impostazione rende irrilevante la scelta del nome della colonna quando si riproducono i valori mostrati nelle tabelle seguenti.

Input null
preserveNulls TRUE
Output null
Deterministico Yes
Byte di input 0
Byte di uscita 0
Input null
preserveNulls FALSE
Output 01:hmac:3lkFjthvV3IUu6mMvFc1a+XAHwgw/ElmOq4p3Yg25kk=
Deterministico No
Byte di input 0
Byte di uscita 52
Input empty string
preserveNulls -
Output 01:hmac:oKTgi3Gba+eUb3JteSz2EMgXUkF1WgM77UP0Ydw5kPQ=
Deterministico Yes
Byte di input 0
Byte di uscita 52
Input abcdefghijklmnopqrstuvwxyz
preserveNulls -
Output 01:hmac:kU/IqwG7FMmzzshr0B9scomE0UJUEE7j9keTctplGww=
Deterministico Yes
Byte di input 26
Byte di uscita 52
Input abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
preserveNulls -
Output 01:hmac:ks3htnQbw2vdhCRFF6JNzW5LMndJaHG57uvE26mBtSs=
Deterministico Yes
Byte di input 62
Byte di uscita 52

colonne di risoluzione dei problemi fingerprint

Perché il testo cifrato nelle mie fingerprint colonne è parecchie volte più grande della dimensione del testo in cleartext esse contenuto?

La lunghezza del testo cifrato in una fingerprint colonna è sempre di 52 byte. Se i dati di input erano piccoli (ad esempio, l'età dei clienti), mostreranno un aumento significativo delle dimensioni. Ciò può verificarsi anche se l'preserveNullsimpostazione è impostata sufalse.

Perché il testo cifrato nelle mie fingerprint colonne è parecchie volte più piccolo della dimensione del testo in cleartext esse contenuto?

La lunghezza del testo cifrato in una fingerprint colonna è sempre di 52 byte. Se i dati di input erano di grandi dimensioni (ad esempio, gli indirizzi completi dei clienti), mostrerà una riduzione significativa delle dimensioni.

Come faccio a sapere se ho bisogno delle garanzie crittografiche fornite da? preserveNulls

Sfortunatamente, la risposta è che dipende. Come minimo, è Parametri di calcolo crittografico necessario verificare in che modo l'preserveNullsimpostazione protegge i dati. Tuttavia, ti consigliamo di fare riferimento ai requisiti di gestione dei dati della tua organizzazione e agli eventuali contratti applicabili alla rispettiva collaborazione.

Perché devo sostenere il sovraccarico di base64?

Per consentire la compatibilità con i formati di file tabulari come CSV, è necessaria la codifica base64. Sebbene alcuni formati di file come quelli Parquet supportino le rappresentazioni binarie dei dati, è importante che tutti i partecipanti a una collaborazione rappresentino i dati nello stesso modo per garantire risultati di interrogazione corretti.

Sealedcolonne

Sealedle colonne sono pensate per il trasferimento di dati tra i membri di una collaborazione. Il testo cifrato in queste colonne non è deterministico e ha un impatto significativo sulle prestazioni e sullo storage in base alla configurazione delle colonne. Queste colonne possono essere configurate singolarmente e spesso hanno il maggiore impatto sulle prestazioni del client di crittografia C3R e sulla dimensione del file di output risultante.

Sovraccarico di base per le colonne sealed

C'è un sovraccarico di base per le sealed colonne. Questo sovraccarico è costante e si aggiunge alla dimensione dei byte cleartext e al riempimento (se presente).

Prima di qualsiasi crittografia, ai dati nelle sealed colonne viene aggiunto un carattere da 1 byte che indica il tipo di dati contenuti. Se è selezionato il padding, i dati vengono quindi riempiti e aggiunti con 2 byte che indicano la dimensione del pad. Dopo l'aggiunta di questi byte, i dati vengono elaborati crittograficamente utilizzando AES-GCM e archiviati con IV (12 byte), (32 byte) e (16 byte). nonce Auth Tag Questi dati vengono quindi elaborati tramite un codificatore base64, aggiungendo circa il 33 percento alla dimensione dei byte. I dati sono preceduti da una designazione C3R a 7 byte per indicare il tipo di colonna a cui appartengono i dati e la versione client utilizzata per produrli. Il risultato è un sovraccarico finale di base di 91 byte. Questo risultato può quindi essere moltiplicato per il numero di righe per ottenere il sovraccarico di base totale (usa il numero di valori totali non nulli se preserveNulls impostato su true).

L'immagine seguente mostra come BASE_OVERHEAD = C3R_DESIGNATION + ((NONCE + IV + DATA_TYPE + PAD_SIZE + AUTH_TAG) * 1.33)

Il sovraccarico di 91 byte di base per una sealed colonna.

Impostazioni di collaborazione per le colonne sealed

preserveNullsImpostazione

Quando l'impostazione del livello di collaborazione preserveNulls è false (impostazione predefinita), ogni null valore è unico, casuale di 32 byte ed è elaborato come se non lo fosse. null Il risultato è che ogni null valore ora è di 91 byte (di più se inserito). Ciò può aggiungere requisiti di archiviazione significativi per le tabelle che contengono dati molto scarsi rispetto a quando questa impostazione è impostata true e null i valori vengono passati come. null

Se non hai bisogno delle garanzie sulla privacy di questa impostazione e preferisci mantenere null i valori all'interno dei tuoi set di dati, abilita l'preserveNullsimpostazione al momento della creazione della collaborazione. L'preserveNullsimpostazione non può essere modificata dopo la creazione della collaborazione.

sealedColonne delle impostazioni dello schema: tipi di riempimento

Tipo di pad: none

La selezione di un tipo di pad none non aggiunge alcuna imbottitura cleartext e non aggiunge alcun sovraccarico aggiuntivo al sovraccarico di base descritto in precedenza. L'assenza di imbottitura garantisce la dimensione di output più efficiente in termini di spazio. Tuttavia, non offre le stesse garanzie di privacy dei tipi di imbottitura. fixed max Questo perché la dimensione del sottostante cleartext è distinguibile dalla dimensione del testo cifrato.

Tipo di pad di fixed

La selezione di un tipo di pad fixed è una misura di tutela della privacy per nascondere la lunghezza dei dati contenuti all'interno di una colonna. Questo viene fatto inserendo tutti i dati nel riquadro fornito prima che cleartext venga crittografato. pad_length Qualsiasi dato che superi tale dimensione causa il fallimento del client di crittografia C3R.

Dato che il padding viene aggiunto cleartext prima della crittografia, AES-GCM dispone di una mappatura 1 a 1 di due byte di testo cifrato. cleartext La codifica base64 aggiungerà il 33 percento. Il sovraccarico di archiviazione aggiuntivo del padding può essere calcolato sottraendo la lunghezza media di cleartext dal valore di e moltiplicandola per 1,33. pad_length Il risultato è il sovraccarico medio del padding per record. Questo risultato può quindi essere moltiplicato per il numero di righe per ottenere il sovraccarico totale del padding (usa il numero di null valori diversi dal totale se preserveNulls è impostato su). true

PADDING_OVERHEAD = (PAD_LENGTH - AVG_CLEARTEXT_LENGTH) * 1.33 * ROW_COUNT

Ti consigliamo di selezionare il valore minimo pad_length che racchiude il valore più grande in una colonna. Ad esempio, se il valore più grande è 50 byte, è sufficiente un valore pad_length di 50. Un valore superiore a tale valore aggiungerà solo un sovraccarico di archiviazione aggiuntivo.

Il padding fisso non aggiunge alcun sovraccarico di calcolo significativo.

Tipo di pad di max

La selezione di un tipo di pad max è una misura di tutela della privacy per nascondere la lunghezza dei dati contenuti all'interno di una colonna. Questa operazione viene eseguita inserendo tutti i dati cleartext fino al valore più grande della colonna e a quello aggiuntivo prima che venga crittografata. pad_length In genere, il max padding offre le stesse garanzie del fixed padding per un singolo set di dati, pur consentendo di non conoscere il valore più grande nella colonna. cleartext Tuttavia, il max padding potrebbe non fornire le stesse garanzie di privacy del fixed padding tra gli aggiornamenti perché il valore massimo nei singoli set di dati potrebbe essere diverso.

Ti consigliamo di selezionare un valore aggiuntivo pad_length di 0 quando usi il padding. max Questa lunghezza riempie tutti i valori in modo che abbiano le stesse dimensioni del valore più grande nella colonna. Un valore maggiore di quello aggiungerà solo un sovraccarico di archiviazione aggiuntivo.

Se è noto il cleartext valore massimo per una determinata colonna, ti consigliamo di utilizzare invece il tipo di fixed pad. L'uso del fixed padding crea coerenza tra i set di dati aggiornati. L'utilizzo del max padding fa sì che ogni sottoinsieme di dati venga aggiunto al valore più grande presente nel sottoinsieme.

Dati di esempio per una colonna sealed

Di seguito è riportato un set di esempio di dati di input e output per una sealed colonna con impostazioni da riprodurre. Altre impostazioni a livello di collaborazione, ad esempio allowCleartextallowJoinsOnColumnsWithDifferentNames, allowDuplicates non influiscono sui risultati e possono essere impostate come true o false se si tenta di riprodurre localmente. Sebbene queste siano le impostazioni di base da riprodurre, la sealed colonna non è deterministica e i valori cambieranno ogni volta. L'obiettivo è mostrare i byte in ingresso rispetto ai byte in uscita. I pad_length valori di esempio sono stati scelti intenzionalmente. Mostrano che il fixed padding produce gli stessi valori del max padding con le pad_length impostazioni minime consigliate o quando si desidera un riempimento aggiuntivo.

Esempio di segreto condiviso: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

Esempio di ID di collaborazione: a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

Tipo di pad: none
Input null
preserveNulls TRUE
Output null
Deterministico Yes
Byte di input 0
Byte di uscita 0
Input null
preserveNulls FALSE
Output 01:enc:bm9uY2UwMTIzNDU2Nzg5MG5vbmNlMDEyMzQ1Njc4OTBqfRYZ98t5KU6aWfssGSPbNIJfG3iXmu6cbCUrizuV
Deterministico No
Byte di input 0
Byte di uscita 91
Input empty string
preserveNulls -
Output 01:enc:bm9uY2UwMTIzNDU2Nzg5MG5vbmNlMDEyMzQ1Njc4OTBqfRYZ98t5KU6aWfstGSPEM6qR8DWC2PB2GMlX41YK
Deterministico No
Byte di input 0
Byte di uscita 91
Input abcdefghijklmnopqrstuvwxyz
preserveNulls -
Output 01:enc:bm9uY2UwMTIzNDU2Nzg5MG5vbmNlMDEyMzQ1Njc4OTBqfRYZ98t5KU6aWfsteEE1GKEPiRzyh0h7t6OmWMLTWCvO2ckr6pkx9sGL5VLDQeHzh6DmPpyWNuI=
Deterministico No
Byte di input 26
Byte di uscita 127
Input abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
preserveNulls -
Output 01:enc:bm9uY2UwMTIzNDU2Nzg5MG5vbmNlMDEyMzQ1Njc4OTBqfRYZ98t5KU6aWfsteEE1GKEPiRzyh0h7t6OmWMLTWCvO2ckr6plwtH/8tRFnn2rF91bcB9G4+n8GiRfJNmqdP4/QOQ3cXb/pbvPcnnohrHIGSX54ua+1/JfcVjc=
Deterministico No
Byte di input 62
Byte di uscita 175
Tipo di pad di fixed (esempio 1)

In questo esempio, pad_length è 62 e l'input più grande è 62 byte.

Input null
preserveNulls TRUE
Output null
Deterministico Yes
Byte di input 0
Byte di uscita 0
Input null
preserveNulls FALSE
Output 01:enc:bm9uY2UwMTIzNDU2Nzg5MG5vbmNlMDEyMzQ1Njc4OTBqfRYZ98t5KU6aWfssGSNWfMRp7nSb7SMX2s3JKLOhK1+7r75Tk+Mx9jy48Fcg1yOPvBqRSZ7oqy1V3UKfYTLEZb/hCz7oaIneVsrcoNpATs0GzbnLkor4L+/aSuA=
Deterministico No
Byte di input 0
Byte di uscita 175
Input empty string
preserveNulls -
Output 01:enc:bm9uY2UwMTIzNDU2Nzg5MG5vbmNlMDEyMzQ1Njc4OTBqfRYZ98t5KU6aWfstGSNWfMRp7nSb7SMX2s3JKLOhK1+7r75Tk+Mx9jy48Fcg1yOPvBqRSZ7oqy1V3UKfYTLEZb/hCz7oaIneVsrcoLB53l07VZpA6OwkuXu29CA=
Deterministico No
Byte di input 0
Byte di uscita 175
Input abcdefghijklmnopqrstuvwxyz
preserveNulls -
Output 01:enc:bm9uY2UwMTIzNDU2Nzg5MG5vbmNlMDEyMzQ1Njc4OTBqfRYZ98t5KU6aWfsteEE1GKEPiRzyh0h7t6OmWMLTWCvO2ckr6pkx9jy48Fcg1yOPvBqRSZ7oqy1V3UKfYTLEZb/hCz7oaIneVsrcutBAcO+Mb9tuU2KIHH31AWg=
Deterministico No
Byte di input 26
Byte di uscita 175
Input abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
preserveNulls -
Output 01:enc:bm9uY2UwMTIzNDU2Nzg5MG5vbmNlMDEyMzQ1Njc4OTBqfRYZ98t5KU6aWfsteEE1GKEPiRzyh0h7t6OmWMLTWCvO2ckr6plwtH/8tRFnn2rF91bcB9G4+n8GiRfJNmqdP4/QOQ3cXb/pbvPcnnohrHIGSX54ua+1/JfcVjc=
Deterministico No
Byte di input 62
Byte di uscita 175
Tipo di pad di fixed (esempio 2)

In questo esempio, pad_length è 162 e l'input più grande è 62 byte.

Input null
preserveNulls TRUE
Output null
Deterministico Yes
Byte di input 0
Byte di uscita 0
Input null
preserveNulls FALSE
Output 01:enc:bm9uY2UwMTIzNDU2Nzg5MG5vbmNlMDEyMzQ1Njc4OTBqfRYZ98t5KU6aWfssGSNWfMRp7nSb7SMX2s3JKLOhK1+7r75Tk+Mx9jy48Fcg1yOPvBqRSZ7oqy1V3UKfYTLEZb/hCz7oaIneVsrcnkB0xbLWD7zNdAqQGR0rXoSESdW0I0vpNoGcBfv4cJbG0A3h1DvtkSSVc2B80OOGppzdDqhrUVN5wFNyn8vgfPMqDaeJk5bn+8o4WtG/ClipNcjDXvXVtK4vfCohcCA6uwrmwv/xAySX+xcntotL703aBTBb
Deterministico No
Byte di input 0
Byte di uscita 307
Input empty string
preserveNulls -
Output 01:enc:bm9uY2UwMTIzNDU2Nzg5MG5vbmNlMDEyMzQ1Njc4OTBqfRYZ98t5KU6aWfstGSNWfMRp7nSb7SMX2s3JKLOhK1+7r75Tk+Mx9jy48Fcg1yOPvBqRSZ7oqy1V3UKfYTLEZb/hCz7oaIneVsrcnkB0xbLWD7zNdAqQGR0rXoSESdW0I0vpNoGcBfv4cJbG0A3h1DvtkSSVc2B80OOGppzdDqhrUVN5wFNyn8vgfPMqDaeJk5bn+8o4WtG/ClipNcjDXvXVtK4vfCohcCA6uwrmwv84lVaT9Yd+6oQx65/+gdVT
Deterministico No
Byte di input 0
Byte di uscita 307
Input abcdefghijklmnopqrstuvwxyz
preserveNulls -
Output 01:enc:bm9uY2UwMTIzNDU2Nzg5MG5vbmNlMDEyMzQ1Njc4OTBqfRYZ98t5KU6aWfsteEE1GKEPiRzyh0h7t6OmWMLTWCvO2ckr6pkx9jy48Fcg1yOPvBqRSZ7oqy1V3UKfYTLEZb/hCz7oaIneVsrcnkB0xbLWD7zNdAqQGR0rXoSESdW0I0vpNoGcBfv4cJbG0A3h1DvtkSSVc2B80OOGppzdDqhrUVN5wFNyn8vgfPMqDaeJk5bn+8o4WtG/ClipNcjDXvXVtK4vfCohcCA6uwrmwtX5Hnl+WyfO6ks3QMaRDGSf
Deterministico No
Byte di input 26
Byte di uscita 307
Input abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
preserveNulls -
Output 01:enc:bm9uY2UwMTIzNDU2Nzg5MG5vbmNlMDEyMzQ1Njc4OTBqfRYZ98t5KU6aWfsteEE1GKEPiRzyh0h7t6OmWMLTWCvO2ckr6plwtH/8tRFnn2rF91bcB9G4+n8GiRfJNmqdP4/QOQ3cXb/pbvPcnkB0xbLWD7zNdAqQGR0rXoSESdW0I0vpNoGcBfv4cJbG0A3h1DvtkSSVc2B80OOGppzdDqhrUVN5wFNyn8vgfPMqDaeJk5bn+8o4WtG/ClipNcjDXvXVtK4vfCohcCA6uwrmwjkJXQZOgPdeFX9Yr/8alV5i
Deterministico No
Byte di input 62
Byte di uscita 307
Tipo di pad di max (esempio 1)

In questo esempio, pad_length è 0 e l'input più grande è 62 byte.

Input null
preserveNulls TRUE
Output null
Deterministico Yes
Byte di input 0
Byte di uscita 0
Input null
preserveNulls FALSE
Output 01:enc:bm9uY2UwMTIzNDU2Nzg5MG5vbmNlMDEyMzQ1Njc4OTBqfRYZ98t5KU6aWfssGSNWfMRp7nSb7SMX2s3JKLOhK1+7r75Tk+Mx9jy48Fcg1yOPvBqRSZ7oqy1V3UKfYTLEZb/hCz7oaIneVsrcoNpATs0GzbnLkor4L+/aSuA=
Deterministico No
Byte di input 0
Byte di uscita 175
Input empty string
preserveNulls -
Output 01:enc:bm9uY2UwMTIzNDU2Nzg5MG5vbmNlMDEyMzQ1Njc4OTBqfRYZ98t5KU6aWfstGSNWfMRp7nSb7SMX2s3JKLOhK1+7r75Tk+Mx9jy48Fcg1yOPvBqRSZ7oqy1V3UKfYTLEZb/hCz7oaIneVsrcoLB53l07VZpA6OwkuXu29CA=
Deterministico No
Byte di input 0
Byte di uscita 175
Input abcdefghijklmnopqrstuvwxyz
preserveNulls -
Output 01:enc:bm9uY2UwMTIzNDU2Nzg5MG5vbmNlMDEyMzQ1Njc4OTBqfRYZ98t5KU6aWfsteEE1GKEPiRzyh0h7t6OmWMLTWCvO2ckr6pkx9jy48Fcg1yOPvBqRSZ7oqy1V3UKfYTLEZb/hCz7oaIneVsrcutBAcO+Mb9tuU2KIHH31AWg=
Deterministico No
Byte di input 26
Byte di uscita 175
Input abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
preserveNulls -
Output 01:enc:bm9uY2UwMTIzNDU2Nzg5MG5vbmNlMDEyMzQ1Njc4OTBqfRYZ98t5KU6aWfsteEE1GKEPiRzyh0h7t6OmWMLTWCvO2ckr6plwtH/8tRFnn2rF91bcB9G4+n8GiRfJNmqdP4/QOQ3cXb/pbvPcnnohrHIGSX54ua+1/JfcVjc=
Deterministico No
Byte di input 62
Byte di uscita 175
Tipo di pad di max (esempio 2)

In questo esempio, pad_length è 100 e l'input più grande è 62 byte.

Input null
preserveNulls TRUE
Output null
Deterministico Yes
Byte di input 0
Byte di uscita 0
Input null
preserveNulls FALSE
Output 01:enc:bm9uY2UwMTIzNDU2Nzg5MG5vbmNlMDEyMzQ1Njc4OTBqfRYZ98t5KU6aWfssGSNWfMRp7nSb7SMX2s3JKLOhK1+7r75Tk+Mx9jy48Fcg1yOPvBqRSZ7oqy1V3UKfYTLEZb/hCz7oaIneVsrcnkB0xbLWD7zNdAqQGR0rXoSESdW0I0vpNoGcBfv4cJbG0A3h1DvtkSSVc2B80OOGppzdDqhrUVN5wFNyn8vgfPMqDaeJk5bn+8o4WtG/ClipNcjDXvXVtK4vfCohcCA6uwrmwv/xAySX+xcntotL703aBTBb
Deterministico No
Byte di input 0
Byte di uscita 307
Input empty string
preserveNulls -
Output 01:enc:bm9uY2UwMTIzNDU2Nzg5MG5vbmNlMDEyMzQ1Njc4OTBqfRYZ98t5KU6aWfstGSNWfMRp7nSb7SMX2s3JKLOhK1+7r75Tk+Mx9jy48Fcg1yOPvBqRSZ7oqy1V3UKfYTLEZb/hCz7oaIneVsrcnkB0xbLWD7zNdAqQGR0rXoSESdW0I0vpNoGcBfv4cJbG0A3h1DvtkSSVc2B80OOGppzdDqhrUVN5wFNyn8vgfPMqDaeJk5bn+8o4WtG/ClipNcjDXvXVtK4vfCohcCA6uwrmwv84lVaT9Yd+6oQx65/+gdVT
Deterministico No
Byte di input 0
Byte di uscita 307
Input abcdefghijklmnopqrstuvwxyz
preserveNulls -
Output 01:enc:bm9uY2UwMTIzNDU2Nzg5MG5vbmNlMDEyMzQ1Njc4OTBqfRYZ98t5KU6aWfsteEE1GKEPiRzyh0h7t6OmWMLTWCvO2ckr6pkx9jy48Fcg1yOPvBqRSZ7oqy1V3UKfYTLEZb/hCz7oaIneVsrcnkB0xbLWD7zNdAqQGR0rXoSESdW0I0vpNoGcBfv4cJbG0A3h1DvtkSSVc2B80OOGppzdDqhrUVN5wFNyn8vgfPMqDaeJk5bn+8o4WtG/ClipNcjDXvXVtK4vfCohcCA6uwrmwtX5Hnl+WyfO6ks3QMaRDGSf
Deterministico No
Byte di input 26
Byte di uscita 307
Input abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
preserveNulls -
Output 01:enc:bm9uY2UwMTIzNDU2Nzg5MG5vbmNlMDEyMzQ1Njc4OTBqfRYZ98t5KU6aWfsteEE1GKEPiRzyh0h7t6OmWMLTWCvO2ckr6plwtH/8tRFnn2rF91bcB9G4+n8GiRfJNmqdP4/QOQ3cXb/pbvPcnkB0xbLWD7zNdAqQGR0rXoSESdW0I0vpNoGcBfv4cJbG0A3h1DvtkSSVc2B80OOGppzdDqhrUVN5wFNyn8vgfPMqDaeJk5bn+8o4WtG/ClipNcjDXvXVtK4vfCohcCA6uwrmwjkJXQZOgPdeFX9Yr/8alV5i
Deterministico No
Byte di input 62
Byte di uscita 307

sealedcolonne di risoluzione dei problemi

Perché il testo cifrato nelle mie sealed colonne è parecchie volte più grande della dimensione del testo in cleartext esse contenuto?

Ciò dipende da diversi fattori. Innanzitutto, il testo cifrato in una Cleartext colonna ha sempre una lunghezza di almeno 91 byte. Se i dati di input erano piccoli (ad esempio, l'età dei clienti), mostreranno un aumento significativo delle dimensioni. In secondo luogo, se preserveNulls fossimo impostati su false e i dati di input contenessero molti null valori, ognuno di questi null valori sarebbe stato trasformato in 91 byte di testo cifrato. Infine, se si utilizza il padding, per definizione i byte vengono aggiunti ai cleartext dati prima che vengano crittografati.

La maggior parte dei miei dati in una sealed colonna è davvero piccola e ho bisogno di usare il padding. Posso semplicemente rimuovere i valori più grandi ed elaborarli separatamente per risparmiare spazio?

Non è consigliabile rimuovere valori di grandi dimensioni ed elaborarli separatamente. In questo modo vengono modificate le garanzie sulla privacy fornite dal client di crittografia C3R. Come modello di minaccia, supponiamo che un osservatore possa vedere entrambi i set di dati crittografati. Se l'osservatore rileva che un sottoinsieme di dati ha una colonna riempita in modo significativo in più o in meno rispetto a un altro sottoinsieme, può fare inferenze sulla dimensione dei dati in ciascun sottoinsieme. Ad esempio, supponiamo che una fullName colonna venga aggiunta a un totale di 40 byte in un file e venga aggiunta a 800 byte in un altro file. Un osservatore potrebbe supporre che un set di dati contenga il nome più lungo del mondo (747 byte).

Devo fornire un'imbottitura aggiuntiva quando utilizzo il tipo di imbottitura? max

No. Quando si utilizza il max padding, si consiglia di impostare il paddingpad_length, noto anche come padding aggiuntivo oltre il valore più grande nella colonna, su 0.

Posso semplicemente scegliere un valore grande pad_length quando uso il fixed padding per evitare di preoccuparmi se il valore più grande si adatta?

Sì, ma l'ampia lunghezza del pad è inefficiente e utilizza più spazio di archiviazione del necessario. Ti consigliamo di controllare quanto è grande il valore più grande e di pad_length impostarlo su quel valore.

Come faccio a sapere se ho bisogno delle garanzie crittografiche fornite da? preserveNulls

Sfortunatamente, la risposta è che dipende. Come minimo, è Elaborazione crittografica per Clean Rooms necessario verificare in che modo l'preserveNullsimpostazione protegge i dati. Tuttavia, ti consigliamo di fare riferimento ai requisiti di gestione dei dati della tua organizzazione e agli eventuali contratti applicabili alla rispettiva collaborazione.

Perché devo sostenere il sovraccarico di base64?

Per consentire la compatibilità con i formati di file tabulari come CSV, è necessaria la codifica base64. Sebbene alcuni formati di file come quelli Parquet supportino le rappresentazioni binarie dei dati, è importante che tutti i partecipanti a una collaborazione rappresentino i dati nello stesso modo per garantire risultati di interrogazione corretti.

Risoluzione dei problemi relativi agli aumenti imprevisti delle dimensioni del testo cifrato

Supponiamo che tu abbia crittografato i tuoi dati e che la dimensione dei dati risultanti sia sorprendentemente grande. I passaggi seguenti possono aiutarti a identificare dove si è verificato l'aumento delle dimensioni e quali azioni, se del caso, puoi intraprendere.

Identificare dove si è verificato l'aumento delle dimensioni

Prima di poter risolvere il motivo per cui i dati crittografati sono significativamente più grandi cleartext dei dati, è necessario innanzitutto identificare dove si trova l'aumento delle dimensioni. Cleartextle colonne possono essere tranquillamente ignorate perché rimangono invariate. Guarda le sealed colonne rimanenti fingerprint e scegline una che appaia significativa.

Identificare il motivo per cui si è verificato l'aumento delle dimensioni

Una fingerprint colonna o una sealed colonna potrebbero contribuire all'aumento delle dimensioni.

L'aumento delle dimensioni proviene da una fingerprint colonna?

Se la colonna che contribuisce maggiormente all'aumento dello spazio di archiviazione è una fingerprint colonna, è probabile che i cleartext dati siano piccoli (ad esempio, l'età del cliente). Ogni fingerprint testo cifrato risultante ha una lunghezza di 52 byte. Sfortunatamente, non si può fare nulla per risolvere questo problema su una base. column-by-column Per ulteriori informazioni, consulta Sovraccarico di base per le colonne fingerprint i dettagli su questa colonna, incluso il modo in cui influisce sui requisiti di archiviazione.

L'altra possibile causa dell'aumento delle dimensioni di una fingerprint colonna è l'impostazione di collaborazione,preserveNulls. Se l'impostazione di collaborazione per preserveNulls è disabilitata (impostazione predefinita), tutti i null valori nelle fingerprint colonne saranno diventati 52 byte di testo cifrato. Non c'è nulla che si possa fare per questo nell'attuale collaborazione. L'preserveNullsimpostazione viene impostata al momento della creazione di una collaborazione e tutti i collaboratori devono utilizzare la stessa impostazione per garantire risultati di interrogazione corretti. Per ulteriori informazioni sull'preserveNullsimpostazione e su come la sua attivazione influisce sulle garanzie di privacy dei dati, consulta. Elaborazione crittografica per Clean Rooms

L'aumento delle dimensioni proviene da una sealed colonna?

Se la colonna che contribuisce maggiormente all'aumento dello spazio di archiviazione è una sealed colonna, ci sono alcuni dettagli che potrebbero contribuire all'aumento delle dimensioni.

Se i cleartext dati sono piccoli (ad esempio, l'età del cliente), ogni sealed testo cifrato risultante ha una lunghezza di almeno 91 byte. Purtroppo non si può fare nulla per risolvere questo problema. Per ulteriori informazioni, consulta Sovraccarico di base per le colonne sealed i dettagli su questa colonna, incluso il modo in cui influisce sui requisiti di archiviazione.

La seconda causa principale dell'aumento dello spazio di archiviazione nelle sealed colonne è il padding. Il padding aggiunge byte aggiuntivi cleartext prima che venga crittografato per nascondere le dimensioni dei singoli valori in un set di dati. Ti consigliamo di impostare il padding sul valore minimo possibile per il tuo set di dati. Come minimo, pad_length il fixed padding deve essere impostato in modo da includere il valore più grande possibile nella colonna. Qualsiasi impostazione superiore a quella non aggiunge ulteriori garanzie di privacy. Ad esempio, se sai che il valore più grande possibile in una colonna può essere di 50 byte, ti consigliamo di pad_length impostarlo su 50 byte. Tuttavia, se la sealed colonna utilizza il max padding, ti consigliamo di pad_length impostarlo su 0 byte. Questo perché il max padding si riferisce al padding aggiuntivo oltre il valore più grande nella colonna.

L'ultima possibile causa dell'aumento delle dimensioni di una sealed colonna è l'impostazione di collaborazione,. preserveNulls Se l'impostazione di collaborazione per preserveNulls è disabilitata (impostazione predefinita), tutti i null valori nelle sealed colonne saranno diventati 91 byte di testo cifrato. Non c'è nulla che si possa fare per questo nell'attuale collaborazione. L'preserveNullsimpostazione viene impostata al momento della creazione di una collaborazione e tutti i collaboratori devono utilizzare la stessa impostazione per garantire risultati di interrogazione corretti. Per ulteriori informazioni sulle funzionalità di questa impostazione e su come la sua attivazione influisce sulle garanzie di privacy dei dati, consulta. Elaborazione crittografica per Clean Rooms