Crittografia a chiave asimmetrica: un sistema crittografico che utilizza chiavi accoppiate (pubbliche e private) per criptare e decriptare i dati. Le chiavi pubbliche vengono utilizzate per criptare i dati e possono essere condivise. Le chiavi private vengono utilizzate per decriptare i dati e sono note solo al proprietario.
Testo crittografato: il risultato della crittografia eseguita in testo non crittografato utilizzando un algoritmo. Il testo crittografato non è comprensibile finché non viene convertito in testo non crittografato utilizzando una chiave.
Coerenza: significa che Tink si comporta "come" in tutti i linguaggi di programmazione. Ad esempio, Tink fornisce coerenza di valutazione, il che significa che per un determinato set di chiavi, se la creazione primitiva ha esito positivo in due lingue, le primitive si comportano nello stesso modo.
Chiave: un'informazione (ad esempio, una stringa) necessaria per criptare o decriptare i dati. Consulta Oggetti chiave per sapere come sono rappresentati.
Handle di set di chiavi e set di tasti: Tink utilizza i set di chiavi per la gestione delle chiavi. Un set di chiavi è essenzialmente un insieme di chiavi che ne facilitano la rotazione. Le proprietà degne di nota di un set di chiavi sono:
- Ogni chiave di un set di chiavi ha un ID univoco, univoco all'interno di un set di chiavi. Questo ID viene generalmente aggiunto come prefisso a ogni testo crittografato, firma o tag generato per indicare la chiave utilizzata. Per saperne di più, scopri come Tink tagga i testi crittografati.
- Solo una chiave alla volta in un set di chiavi è principale. Una chiave primaria in un set di chiavi è attualmente "in uso".
- Tutte le chiavi di un set di chiavi devono essere implementazioni della stessa primitiva (ad esempio AEAD), ma possono avere tipi di chiavi diversi (ad esempio una chiave AES-GCM e XCHACHA20-POLY1305).
Ogni implementazione di Tink fornisce API per creare o modificare set di chiavi. Tuttavia, ti consigliamo di utilizzare Tinkey, il nostro strumento di interfaccia a riga di comando.
Gli utenti gestiscono un set di chiavi utilizzando gli handle di set di chiavi. Un handle di set di chiavi limita l'esposizione dell'effettivo materiale della chiave sensibile. Inoltre, astrae un set di chiavi
consentendo agli utenti di ottenere una primitiva che esegue il "wrapping" dell'intero set di chiavi. Ad esempio, puoi ottenere una primitiva AEAD di un set di chiavi con chiavi N
. La crittografia e la decrittografia con la primitiva ottenuta utilizzano quindi la chiave primaria del set di chiavi.
Sistema di gestione delle chiavi (KMS): un sistema utilizzato per gestire le chiavi di crittografia, inclusi generazione, archiviazione, utilizzo, rotazione, distruzione e sostituzione.
Tipo di chiave: un tipo di chiave implementa una primitiva specifica. La maggior parte delle primitive ha diversi tipi di chiave tra cui scegliere a seconda dei requisiti di sicurezza, runtime e spazio. Ad esempio, AES128_GCM è un AEAD veloce ed efficace per la maggior parte delle esigenze. Per saperne di più, consulta Tipi di chiavi supportati per lingua.
Parametri: descrive completamente le informazioni necessarie per creare una chiave, escludendo il materiale della chiave e l'ID della chiave. Consulta la sezione Oggetti dei parametri per sapere come sono rappresentati.
Testo normale: la forma di input comprensibile di un testo criptato o dei suoi elementi.
Primitive: Tink utilizza le primitive come componenti di base crittografici che gestiscono un algoritmo sottostante in modo che gli utenti possano eseguire le attività crittografiche in sicurezza. Una primitiva definisce i dettagli di un algoritmo crittografico e il tipo di chiave.
Primitive supportate da Tink:
- AEAD (Crittografia autenticata con dati associati): la primitiva più comune per la crittografia dei dati, adatta alla maggior parte delle esigenze di crittografia. AEAD fornisce riservatezza in testo non crittografato e consente la verifica della sua integrità e della sua autenticità. Consulta il documento sulla crittografia autenticata con dati associati (AEAD).
- Crittografia deterministica: una primitiva che produce sempre lo stesso testo crittografato per un testo non crittografato e una chiave specifici. Questo può essere rischioso perché un utente malintenzionato deve solo scoprire quale testo crittografato corrisponde a un determinato input di testo non crittografato. Vedi AEAD deterministici.
- Firma digitale: una primitiva asimmetrica (vedi Crittografia delle chiavi asimmetriche) per confermare l'autenticità e l'integrità dei dati firmati. Consulta Firma digitale.
- Crittografia ibrida: una primitiva che combina crittografia di chiavi asimmetriche e crittografia di chiavi simmetriche (vedi Crittografia a chiave asimmetrica e Crittografia a chiavi simmetriche). La crittografia ibrida combina l'efficienza della crittografia simmetrica con la comodità della crittografia a chiave pubblica. Per criptare un messaggio, viene generata una nuova chiave simmetrica che viene utilizzata per criptare i dati in testo non crittografato, mentre la chiave pubblica del destinatario viene utilizzata solo per criptare la chiave simmetrica. Il testo crittografato finale è costituito dal testo crittografato simmetrico e dalla chiave simmetrica criptata. Vedi Crittografia ibrida.
- MAC (Message Authentication Code): una primitiva simmetrica (vedi Crittografia delle chiavi simmetriche) per confermare l'autenticità e l'integrità dei dati. Vedi MAC (Message Authentication Code).
- Flusso di dati AEAD: una soluzione primitiva che fornisce la crittografia autenticata per i flussi di dati; utile quando i dati da criptare sono troppo grandi per essere elaborati in un solo passaggio. Vedi AEAD streaming.
Vedi Primitive supportate per lingua per informazioni sulla compatibilità.
Registry: un'entità globale in Tink che sa come generare nuove chiavi e primitive. Consulta anche le indicazioni sul debug degli errori di registrazione.
Crittografia della chiave simmetrica: un algoritmo crittografico che utilizza la stessa chiave per criptare il testo non crittografato e decriptare il testo crittografato.