Crittografia asimmetrica: è possibile condividere la chiave privata e nascondere la chiave pubblica?

-1

So che normalmente è la chiave pubblica ad essere condivisa e la chiave privata deve essere tenuta segreta (da qui i nomi) nella crittografia asimmetrica.

Ho un caso speciale che voglio crittografare alcuni file e consentire agli utenti di decrittografarli. La crittografia simmetrica non può essere utilizzata secondo il modello. La firma digitale non può essere utilizzata perché i file devono essere crittografati.

A mio parere, nella crittografia asimmetrica, la chiave pubblica, sebbene denominata "chiave", è in realtà il lucchetto, mentre la chiave privata è la chiave. Le persone utilizzano la chiave pubblica per bloccare (crittografare) le informazioni e il proprietario della chiave utilizza la chiave privata per sbloccare (decrittografare) le informazioni.

In tal caso, se tengo la chiave pubblica segreta e condivido la chiave privata, dovrebbe essere possibile per me crittografare con la chiave pubblica e gli utenti devono decifrare con la chiave privata, giusto?

Se la risposta all'ultima domanda è sì, esiste un algoritmo di crittografia asimmetrico esistente che posso usare per farlo in modo efficace? A mio avviso, in RSA, la chiave privata consiste in modulo e esponente pubblico. Il modulo è anche una parte della chiave privata. Significa che l'unico segreto che posso tenere nella chiave pubblica è l'esponente pubblico. Tuttavia, l'esponente pubblico è lungo solo 1 byte. Può essere facilmente rotto da un attacco di forza bruta.

MODIFICA: solo gli utenti autorizzati riceveranno la chiave privata.

EDIT: conosco il normale uso della crittografia asimmetrica. Sono solo creativo e sto cercando di risolvere un problema con le tecnologie esistenti. Potrei sbagliarmi su alcuni termini e conoscenze. Se non può essere fatto, significa solo che la risposta alla domanda è "no".

    
posta 06.08.2015 - 04:23
fonte

5 risposte

-1

Ristabilendo il problema (a quanto ho capito) ma usando termini meno confusi, si desidera amministrare una coppia di chiavi asimmetrica in modo tale che si sia l'unica persona in possesso della chiave di crittografia e che molte persone siano in possesso della chiave di decrittografia. La tua preoccupazione è che con RSA, la chiave di crittografia può essere facilmente prodotta da chiunque abbia la chiave di decodifica. Normalmente questa preoccupazione non sarebbe importante perché l'unico possessore della chiave di decrittografia ha generato la coppia di chiavi e quindi ha avuto entrambe le chiavi all'inizio. Ma qui dove si distribuisce la chiave di decodifica a molte persone, nessuno di loro potrebbe riprodurre la chiave di crittografia.

Questo è tutto corretto è l'implementazione più comune di RSA. Lì, l'esponente sulla chiave di crittografia è molto spesso 65537. Quindi non è limitato a un singolo byte, ma è quasi sempre molto piccolo e molto prevedibile - non fornisce alcuna sicurezza in questo modulo ed è l'unica informazione sulla crittografia chiave che il titolare della chiave di decrittografia non ha già.

Quindi sì, posso vedere la tua preoccupazione. Penso che potresti semplicemente usare un esponente molto più grande per la tua chiave di crittografia, uno che impiegherebbe anni per trovare le congetture. Si rallenta la crittografia andando con un esponente più grande, ma se si sta solo usando per impedire che la chiave di crittografia venga indovinata dagli amici, si potrebbe probabilmente usare RSA e trovare un buon equilibrio tra sicurezza ed efficienza in una crittografia non standard esponente chiave vicino ma non uguale a 65537.

Se davvero hai bisogno che la chiave di crittografia non venga rivelata, allora penso che la crittografia a curve ellittiche lo farà, o almeno lo farà meglio di RSA. Ma la curva ellittica è anche molto più difficile da capire rispetto a RSA, quindi hai un sacco di apprendimento davanti a te se segui questa strada.

    
risposta data 06.08.2015 - 05:46
fonte
3

In linea di principio potresti fare qualcosa di simile. Ma la tua convenzione sui nomi è completamente confusa. La chiave privata è così chiamata perché DEVE ESSERE CONSERVATA PRIVATA. Mentre la chiave pubblica è così chiamata perché è distribuita gratuitamente a tutti.

Quello che stai chiedendo è "c'è uno schema di crittografia a chiave pubblica in cui viene utilizzata la chiave privata per la crittografia e la chiave pubblica viene utilizzata per la decrittazione". La risposta è no. Ciò annullerebbe il fatto che la chiave pubblica fosse pubblica. Se si prevede che la chiave pubblica venga distribuita liberamente, tutti i dati "crittografati" con la chiave privata potrebbero essere letti da chiunque, il che è in contraddizione con il termine crittografia.

L'unica cosa che ottieni da un tale schema è la verifica del messaggio, in quanto potrebbe aver avuto origine solo da qualcuno che detiene la chiave privata.

Quello che puoi fare è qualcosa chiamato Digital Signing. Qui è dove si usa la chiave privata per crittografare alcuni metadati sul tuo messaggio. Questo metadati crittografato è chiamato Signature.

Chiunque abbia la chiave pubblica può decifrare i metadati e confrontarli con il messaggio originale. Se corrisponde, saprai che il messaggio è stato originato dal titolare della chiave privata E che il messaggio non è cambiato da quando lo ha inviato.

    
risposta data 06.08.2015 - 05:07
fonte
2

No. Dovresti generare una nuova coppia di chiavi, distribuire la chiave pubblica in modo sicuro. È necessaria la distribuzione sicura per stabilire la fiducia che la chiave pubblica provenga dalla parte giusta. Puoi quindi criptare con la chiave pubblica del ricevitore.

    
risposta data 06.08.2015 - 09:38
fonte
0

Bene, se ho capito bene, ciò che hai descritto è identico alla crittografia a chiave pubblica standard.

Stai essenzialmente fornendo agli utenti fidati una chiave privata (unica o replicata) e crittografando un messaggio con la chiave pubblica corrispondente.

Tuttavia, se questo non risponde alla tua domanda, ti preghiamo di fornire maggiori informazioni sul sistema. Cioè Puoi distribuire la chiave in modo sicuro agli utenti, ti fidi degli utenti. Un esempio più specifico ti aiuterà

    
risposta data 06.08.2015 - 04:40
fonte
0

Dovresti riscrivere la domanda usando i termini di riferimento corretti. Il pubblico è pubblico e privato è privato.

Sembra che tu voglia abilitare la trasmissione sicura (segreta) dei dati senza pre-condividere una chiave. È impossibile.

È possibile crittografare con una chiave pubblica in modo che solo il titolare della chiave privata possa decodificare. Puoi firmare con la tua chiave privata e crittografare con una chiave pubblica di qualcun altro in modo che sappiano che sei il mittente o per condividere una chiave simmetrica segreta per un ulteriore utilizzo.

Per proteggere un messaggio hai 2 opzioni - pre-condividi una chiave simmetrica, o usa la chiave crittografica pubblica per condividere una chiave segreta su linee non sicure.

Senza un segreto condiviso, non può verificarsi alcun trasferimento (segreto) sicuro.

    
risposta data 06.08.2015 - 05:55
fonte

Leggi altre domande sui tag