Domanda:
Perché una chiave pubblica viene chiamata chiave, non è un lucchetto?
Aaron Shen
2015-05-01 07:22:44 UTC
view on stackexchange narkive permalink

Sono totalmente confuso dai termini di chiave pubblica e chiave privata. Dalla mia comprensione, la "chiave pubblica" viene utilizzata per crittografare i dati, è più simile a un lucchetto che può bloccare qualcosa e solo la "chiave privata" (proprietario della chiave) può sbloccarlo. Allora perché chiamarla "chiave pubblica", perché non chiamarla "serratura pubblica"?

Se "chiave pubblica" è il termine corretto e si riferisce all'analogia chiave / lucchetto. Allora dov'è la serratura? E come funzionano queste chiavi, serrature?

Se "chiave pubblica" non si riferisce all'analogia chiave / lucchetto, potresti spiegarmi un'analogia per capire come funziona effettivamente la crittografia asimmetrica:
1. quando una chiave pubblica crittografa qualcosa, una chiave privata lo decrittografa
2. quando una chiave privata crittografa qualcosa, una chiave pubblica per verificarlo

Il problema è che la consideri un'analogia e non la tecnologia. "Chiave" è un termine tecnico preciso che si adatta all'algoritmo coinvolto.
Penso che la domanda sia valida. È un peccato che questo forum sia pieno di persone che cercano di limitare la conversazione a categorie ristrette. I modelli mentali sono incredibilmente importanti, ma spesso trascurati. Il termine stesso "chiave" È un'analogia e serve a informare tutti su come funziona la tecnologia. È sicuramente importante.
Tieni presente che la coppia di chiavi pubblica / privata può essere utilizzata in modo inverso per la firma digitale; quindi l'analogia del lucchetto si adatta bene alla crittografia, ma cade a pezzi. La risposta fornita da @SteveSether lo spiega bene.
Steve - questo sito è esplicitamente ** non ** un forum di conversazione. Personalmente lo svuoterei se non fossi un mod, poiché è irrilevante per la sicurezza. Potresti chiamarlo ** arancione ** se lo desideri - non cambierebbe nulla.
Spiegare il modello mentale ai neofiti come me con il termine giusto e l'analogico può aiutarci a capire la teoria della sicurezza che c'è dietro, quindi migliorare la sicurezza del mondo. Penso che sia estremamente importante nominare i termini perché questo è ciò che i neofiti useranno per comprenderli mettendoli in relazione con il mondo reale. Coloro che pensano che non abbia importanza quale termine chiamare è perché conosci già l'intero quadro.
Se tutti voi volete discutere la validità di questo tipo di domanda colloquiale, o domande terminologiche non pratiche, perché non portatela a [meta] ...
In uno studio con Mailvelope, i ricercatori hanno scoperto che "l'errore più comune è stato crittografare un messaggio con la chiave pubblica del mittente". (http://arxiv.org/abs/1510.08555v1) Mi chiedo davvero se sarebbe stato così se fosse stato chiamato "il creatore di serrature pubbliche del mittente". Come qualsiasi altra forma di software, la UX della crittografia è molto rilevante per la funzionalità e l'adozione. Arran S. fa un buon punto sulla firma, ma poiché la crittografia è l'obiettivo più comune degli utenti, penso sia meglio renderlo comprensibile rispetto alla firma.
Sembra ovvio che nessuno di voi sia cresciuto in luoghi in cui venivano usate catene di lucchetti ... Le migliori analogie qui sarebbero: Il modello di sicurezza è una catena di lucchetti - e molte lucchetti possono essere aggiunti alla catena.La tecnologia di blocco è l'algoritmo.Una "chiave pubblica" è infatti solo un lucchetto aggiunto alla catena del lucchetto, chiamatela una certa parte della catena del lucchetto, se necessario, e può essere aperta dalla "chiave privata" = "la chiave".L'algoritmo determina quanto sia difficile aprire il lucchetto e la sicurezza è forte quanto il lucchetto più debole della catena.Peccato che questo thread sia bloccato perché questa è una grande discussione.
Nove risposte:
Steve Sether
2015-05-01 08:28:35 UTC
view on stackexchange narkive permalink

Non sono sicuro di quali serrature tu abbia esperienza, ma le serrature con catenaccio sono comunemente usate per chiudere dall'esterno. Quindi "Blocca qualcosa".

In questo caso, l'analogia è che una "chiave" è qualcosa di variabile, e il "blocco" è l'algoritmo. La serratura rimane la stessa, mentre la chiave può essere cambiata. Nella crittografia a chiave pubblica la chiave utilizzata per bloccare è diversa dalla chiave utilizzata per sbloccare.

Sì. Se comprendi questo fatto, comprendi un principio chiave (har, har) nella crittografia moderna. Piuttosto che proteggere qualcosa con un algoritmo segreto (sicurezza attraverso l'oscurità), usiamo un algoritmo non segreto in cui tutta la "segretezza" e la "variabilità" sono state condensate in una sequenza relativamente piccola di byte. L'analogia con la chiave di blocco non è perfetta, ma l'idea centrale è che esiste un algoritmo non variabile e un insieme di dati variabile / unico.
+1 per questo: _ "Il lucchetto rimane lo stesso, mentre la chiave può essere cambiata." _ Questa è l'idea principale alla base del [principio di Kerckhoffs] (http://en.wikipedia.org/wiki/Kerckhoffs%27s_principle), un sistema è considerato sicuro se il nemico sa esattamente come funziona la serratura _ (l'algoritmo) _, e non può ancora aprire la serratura se non ha la chiave _ (variabile e unica) _.
L'OP non è affatto stupido.Tuttavia, una serratura pubblica sarebbe un'analogia migliore.La crittografia a chiave pubblica potrebbe essere spiegata in modo molto vivido con una lettera che metto in una scatola su cui metto il * mio * lucchetto, lo chiudo con la mia chiave e lo mando al destinatario.Il destinatario ha attivato il * loro * lucchetto, lo chiude e me lo rimanda.Apro il lucchetto e lo rimando al destinatario.Il destinatario può quindi finalmente aprire la scatola e leggere il messaggio.Un origliatore vedeva sempre passare una scatola chiusa, non riusciva mai ad aprirla.
Quindi, un server a chiave pubblica potrebbe essere meglio chiamato server di blocco pubblico.Si potrebbe spiegare che un server del genere renderebbe superflui i primi due passaggi, perché posso scaricare il blocco pubblico del destinatario da un server di questo tipo e stamparlo in 3D.
-1 per "la serratura rimane la stessa".Dipende davvero da dove vuoi radicare l'analogia ... potresti anche partire dalla tecnologia di blocco che è l'algoritmo - e puoi usare lo stesso "algoritmo" di tecnologia di blocco per creare molti lucchetti e chiavi diversi.Il lucchetto determina quale chiave lo aprirà, proprio come la "chiave pubblica" determina quale "chiave privata" lo sblocca.Voi tecnici volete davvero essere un club chiuso di maghi con solo coloro che possono rompere il gergo fuorviante dello status quo essendo in grado di unirsi al club?Il risultato?Tutti usano ancora semplici nomi utente e password.
Andrea
2015-05-01 15:46:17 UTC
view on stackexchange narkive permalink

La parola chiave è stata introdotta ben prima che si pensasse che la crittografia asimmetrica fosse una cosa. Nel contesto simmetrico, si utilizza la stessa chiave sia per crittografare che per decrittografare, e qui l'analogia con la chiave ha assolutamente senso, in quanto le chiavi fisiche sono spesso utilizzate sia per il blocco che per lo sblocco.

Quando è arrivata la crittografia asimmetrica , il termine chiave era ben definito e l'analogia è stata leggermente ampliata.

Questa è la risposta che preferisco: il tentativo di * ex post facto * razionalizzare l'uso di "chiave" per "chiave pubblica" sembra ignorare il contesto storico. Nel documento fondamentale di Diffie e Hellman, la motivazione principale per l'uso della "chiave pubblica" è che "la chiave di cifratura dell'utente E_k può essere resa pubblica senza compromettere la [...] sicurezza", il che è stato un netto allontanamento dallo stato di -l'arte. In altre parole, "chiave pubblica" significa "ehi, sai quella chiave simmetrica che deve essere privata? Può essere (parzialmente) pubblica ora!"
Anche i tasti asimmetrici possono "sbloccare" cose, principalmente per scopi di non ripudio, quindi l'analogia potrebbe essere stata allungata all'inizio, ma è stata ripresa in un po 'più tardi.
Eric Lippert
2015-05-01 12:39:35 UTC
view on stackexchange narkive permalink

Un brano musicale ha una chiave, ma non un lucchetto. Un test standardizzato ha una chiave di risposta ma non un lucchetto. Un pianoforte ha 88 tasti ma nessun lucchetto. Una chiave della tabella del database non ha assolutamente nulla a che fare con un blocco del database.

Anche un sistema crittografico ha chiavi ma non blocchi. La parola chiave ha una dozzina o più significati che non hanno nulla a che fare con le serrature.

Una chiave in un sistema crittografico è in molti sensi più simile alla chiave di risposta a un test che a un pezzo di metallo.

Questa è sempre stata la mia comprensione. Su una mappa, la chiave ti dice cosa rappresentano i simboli *; in un cifrario di sostituzione semplice, ad esempio, la chiave ti dice quale carattere di testo in chiaro ogni carattere di testo cifrato * rappresenta *. In un database, la chiave * identifica * un determinato record (utilizzando "chiave" che significa "importante", come in "parola chiave", o la frase "il tempo è chiave"). Nella moderna crittografia asimmetrica, la chiave * identifica * un particolare schema di crittografia nell'intero "spazio" di possibili valori di chiave. Quindi, il collegamento a chiavi e serrature è semplicemente casuale; il significato è da qualche parte tra questi due.
Quell'uso della parola chiave è ancora figurativamente correlato alla coppia chiave / lucchetto, dove il lucchetto è il significato (oscuro) dei simboli su una mappa, e la chiave _ sblocca_ la tua comprensione di esso.
C'è un po 'di sottigliezza nella lingua inglese qui. Alcuni degli altri usi della parola * chiave * potrebbero essere tradotti con parole diverse in altre lingue, perché rappresentano concetti piuttosto diversi. La stragrande maggioranza dei documenti che parlano di crittografia rappresentano * chiave * nel senso "chiave + lucchetto", spesso con immagini di accompagnamento. Non ho mai visto un documento sulla crittografia illustrato con un tipo di chiave di pianoforte, musica o mappa.
The Spooniest
2015-05-01 17:18:37 UTC
view on stackexchange narkive permalink

Le serrature sono generalmente azionate da chiavi, indipendentemente dal fatto che tu le blocchi o le sblocca .

In crittografia, la cifratura è la serratura . Nella crittografia a chiave pubblica, questo lucchetto viene bloccato con una chiave (designata pubblica) e sbloccato con una chiave diversa (designata privata), ma nessuno di questi è meno una chiave per questo.

LvB
2015-05-01 15:11:03 UTC
view on stackexchange narkive permalink

Questo "problema" viene spesso riscontrato da persone che stanno appena imparando a conoscere la crittografia e la crittografia a chiave pubblica / privata. Quindi capisco la tua confusione.

Il motivo per cui chiamiamo sia una "chiave" è perché la sua funzione crittografica deve essere una chiave crittografica che non ha nulla a che fare con le comuni chiavi giornaliere e serrature.

In molte analogie per i profani viene usata l'analogia della chiave di blocco e questa è la fonte della tua confusione. Pensi alla chiave come a qualcosa con cui sbloccare. Mentre un crittografo vede una chiave come una capanna di informazioni per crittografare o decrittografare un'informazione.

E per mantenere la tua analogia, ci sono porte che non hanno maniglie e queste porte che apri e chiudi con il chiave (quindi la chiave viene utilizzata sia per aprire che per chiudere la porta, dandoti accesso a ciò che c'è dentro).

JayJan
2015-05-01 12:30:39 UTC
view on stackexchange narkive permalink

La crittografia asimmetrica è composta da una chiave privata e da una pubblica. Il motivo per chiamare entrambe le chiavi è il fatto che puoi effettivamente utilizzare una per crittografare e l'altra per decrittografare.

Gli scenari del mondo reale esistono per questo; la tua firma viene crittografata utilizzando la tua chiave privata. Chiunque abbia accesso alla tua chiave pubblica può decrittografare la firma per confermare la tua identità.

L'uso della crittografia / decrittografia è più nel contesto dell'enfasi su un processo matematicamente collegato piuttosto che nel significare la riservatezza delle informazioni.

No. In genere non è possibile crittografare con una chiave privata; la firma non è "crittografia con la chiave privata" tranne che nelle versioni ** orribilmente insicure ** di RSA che non vengono utilizzate da nessuna parte (RSA * richiede * riempimento e il riempimento per creare una firma sicura non è il riempimento necessario per crittografare in modo sicuro ). Con altri schemi di crittografia asimmetrica, la chiave privata non può assolutamente essere utilizzata in alcun tipo di operazione di crittografia e non esiste alcuna operazione di firma remota simile. Questa risposta è prendere cose che non sono veramente vere per RSA e applicarle a schemi asimmetrici in generale.
@cpast Sono totalmente d'accordo. Infatti, "crittografare con la chiave privata" e "decifrare con la chiave pubblica" vanno contro la definizione stessa della parola "crittografia", in inglese semplice. Se qualcuno con la chiave pubblica può "decrittografare" il contenuto, allora non è mai stato realmente "crittografato" in primo luogo, per definizione.
@cpast: Sebbene il tuo punto di vista sia ben accolto - che in RSA non si crittografano tipicamente messaggi lunghi con la chiave privata - penso sia ragionevole notare che "crittografa un messaggio con la chiave pubblica" e "produce una firma dell'hash del messaggio e una chiave privata "sono abbastanza simili quando stai effettivamente facendo i conti. Entrambi implicano la produzione di un numero intero (come parte del messaggio o come messaggio con hash), elevandolo alla potenza di una delle chiavi e calcolando il modulo.
@Eric Innanzitutto, RSA non è l'unico sistema. In secondo luogo, le differenze di riempimento non sono banali; RSA è insicuro con una cattiva imbottitura. Terzo, a parte la meccanica, la firma non è crittografia; in una domanda sulle analogie confuse, dire che la firma è crittografia si aggiunge al problema.
@cpast: L'importante è che data una coppia di chiavi, l'elaborazione di un dato con entrambe in sequenza produrrà l'originale; nell'implementazione più elementare di qualcosa come RSA con una chiave suddivisa in due parti di uguale lunghezza, si potrebbe mantenere una parte pubblica e l'altra parte pubblica e utilizzare la chiave per la firma o la crittografia. Lo sbilanciamento delle lunghezze dei componenti chiave rende molte operazioni più veloci, ma solo determinati modelli di utilizzo rimarranno sicuri. Penso che sia utile comprendere sia lo schema bidirezionale generale, sia i motivi per cui non si adatta agli usi moderni.
@cpast quando dici "la chiave privata non può assolutamente essere utilizzata in alcun tipo di operazione di crittografia", lo intendi in senso figurato o letterale? Quando una firma viene creata utilizzando RSA, viene creato un hash dal testo in chiaro e una trasformazione unidirezionale di tale hash viene eseguita su quell'hash utilizzando la chiave privata, arrivando a una "firma" che può essere verificata solo utilizzando la chiave privata . In che modo quella trasformazione unidirezionale non è la crittografia?
doh, dovrebbe dire "verificato utilizzando la chiave pubblica" sopra ...
@user In RSA sono solo cose diverse che condividono un'operazione di base (detta operazione di base non è sicura come un'operazione di crittografia isolata, quindi RSA ha bisogno di riempimento per la sicurezza e l'operazione di base non è sufficiente per la crittografia). Niente a che fare l'uno con l'altro è per altri schemi oltre a RSA; per esempio, no, letteralmente * non puoi * usare una chiave pubblica ElGamal per crittografare.
Ehm, quella dovrebbe essere la chiave "privata". @supercat Indipendentemente da ciò, questa affermazione non è generalmente vera (è anche un po 'giusta per RSA), e quindi è un'origine errata dei termini.
void_in
2015-05-01 23:40:21 UTC
view on stackexchange narkive permalink

Se hai mai gestito un armadietto personale della banca, può essere azionato tramite due chiavi: una viene consegnata al proprietario e l'altra viene tenuta in banca. L'armadietto può essere chiuso tramite un'unica chiave che il proprietario (cliente) dell'armadietto possiede. Quindi la chiave può essere utilizzata per la chiusura. Per aprire l'armadietto, la proprietaria ha bisogno della sua chiave e della chiave in possesso della banca. Solo per tua comprensione puoi assumere che la chiave proprietario + banca sia equivalente alla chiave privata mentre solo la chiave proprietario è la chiave pubblica. Anche in questo caso il termine pubblico può essere utilizzato liberamente nello stesso contesto. Non importa chi possiede la chiave pubblica, è inutile se non è in possesso anche della chiave privata (la chiave tenuta in banca).

user94592
2015-05-01 23:58:17 UTC
view on stackexchange narkive permalink

Se questo termine non è adatto a te, prova a sostituirlo con "Vettore di crittografia", che è la chiave durante la crittografia e l'inverso "Vettore di decrittografia". Alla fine però è solo un numero.

Luckyycool
2015-05-01 12:35:46 UTC
view on stackexchange narkive permalink

Una chiave serve per sbloccare, giusto. Questo è ciò che fa una chiave pubblica, sblocca l'accesso ai dati / materiale, quindi è fondamentalmente una chiave per accedere o sbloccare i dati.

Una chiave non viene utilizzata solo per sbloccare, ma per bloccarla. Sebbene nel contesto della crittografia, una "chiave" diversa può essere utilizzata per bloccare e sbloccare.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...