Crittografia a chiave asimmetrica che può avere una chiave di decifrazione pubblica, ma la chiave di crittografia non può essere calcolata da quello [duplicato]

2

C'è un modo in cui posso distribuire una chiave di decifrazione pubblica, ma la chiave di crittografia non può essere calcolata da quella chiave, in modo che chiunque legga uno dei miei messaggi criptati, lui / lei possa essere sicuro che sia stato scritto in origine da me?

Quindi in pratica si tratta del tradizionale schema di decrittografia e crittografia asimmetrica, ma al contrario.

    
posta Sevron 26.06.2016 - 13:40
fonte

2 risposte

3

Innanzi tutto, come sottolinea @WhiteWinterWolf, questo è uno schema di firma digitale. La firma digitale ha lo scopo specifico di assicurarsi che il messaggio provenga da te, non da qualcun altro, e non sia stato modificato da quando è stato firmato. Senza andare in matematica, ecco come funziona:

You have a message that you want the world to know came from you
You have a public/private key pair that supports signing (RSA, DSA, etc.)
You take a cryptographic hash (usually something like SHA-256) of the message
 - Like asymmetric encryption, signing schemes work best on small bits of data
You create a digital signature of the hash digest (the output of the hash function)
 - This requires your private key
You distribute the message, the signature, and the algorithms (hash and signing) used
Alice has your public key, and wants to confirm that the message is authentic
Alice re-hashes the message, with the same scheme
Alice then uses your public key to turn the signature back into the hash digest
Alice checks if the digest of the message and the digest from the signature match
 - This is called verifying a signature

Le firme crittografiche sono utilizzate dappertutto. Vengono utilizzati nei certificati X.509 (come quelli utilizzati da SSL / TLS) per verificare che il certificato sia stato emesso da un'autorità attendibile e non sia stato manomesso. Sono utilizzati in e-mail sicure, per assicurarsi che il destinatario sappia che il mittente della posta non è stato falsificato. Vengono utilizzati con file firmati, in genere binari eseguibili, in modo che l'autore del file sia noto. Sono solo alcuni degli usi comuni.

Ora, con quello detto, chiariamo qualcosa:

La crittografia, in generale, NON fornisce autenticazione (prova dell'identità della fonte del messaggio) o integrità (conferma che il messaggio non è stato manomesso); solo riservatezza (chiamato anche privacy o segretezza). Se si cripta un messaggio, ma non lo si firma (o si fornisce qualche altra forma di verifica), un utente malintenzionato può prendere il messaggio crittografato e manipolarlo, cambiando il significato anche se l'autore dell'attacco non sa quale sia il testo originale. Il destinatario del messaggio può quindi decifrare il messaggio e potrebbe non avere idea di essere stato manomesso.

Per alcune cose, questo non è molto significativo; un aggressore che ritrae il testo inglese che non conosce il contenuto di ciò produrrà parole senza senso. Per altre cose, però, può essere molto importante. Non fare affidamento sulla crittografia per verificare da dove proviene un messaggio! (Avvertenza: se si utilizza uno schema di "crittografia autenticata", che include i controlli di integrità e, se nessun altro ha la chiave, fornisce anche l'autenticazione. Non si dovrebbe assumere che la crittografia fornisca queste cose, tuttavia; del tempo no.)

    
risposta data 26.06.2016 - 15:27
fonte
3

Altri hanno già detto che sembra che tu stia cercando una firma digitale. C'è un'altra parte della tua domanda che è importante: come distribuire effettivamente la tua chiave pubblica (che gli utenti useranno per verificare la tua firma).

Alcuni metodi comuni (in nessun ordine particolare):

  1. Incontra di persona con chi hai intenzione di inviare messaggi e consegna loro la tua chiave (unità flash, stampata su carta, ecc.). Questo è abbastanza sicuro, assumendo che gli altri sappiano che aspetto hai ma è difficile / impossibile da scalare.
  2. Utilizza alcune infrastruttura a chiave pubblica per distribuire la tua chiave. Chiunque desideri che la tua chiave possa utilizzare la PKI per ottenere la tua chiave. Questo generalmente si adatta abbastanza bene. L'esempio tipico di una PKI è un'autorità di certificazione, che firma le chiavi di sicurezza per i siti Web. Esiste il rischio che se l'infrastruttura PKI viene compromessa in qualche modo, un utente malintenzionato potrebbe convincere altri ad accettare la chiave pubblica dell'utente malintenzionato.
  3. Utilizza un archivio di chiavi pubbliche. Esistono altri metodi in questa domanda correlata .
  4. Se questo è per un'applicazione utente specifica, puoi codificare la tua chiave pubblica nell'applicazione.
risposta data 26.06.2016 - 20:48
fonte

Leggi altre domande sui tag