Perché l'algoritmo RSA non può essere utilizzato per le infrastrutture a chiave simmetrica?

-2

Se RSA è un algoritmo di crittografia utilizzato per creare una coppia di chiavi asimmetriche e una firma digitale, perché non può essere utilizzato anche per creare una chiave simmetrica?

Anche se RSA viene utilizzato per creare chiavi pubbliche, perché non può essere utilizzato per creare chiavi simmetriche?

    
posta Uriah Wardlaw 21.02.2018 - 00:28
fonte

2 risposte

2

In effetti, puoi creare chiavi simmetriche con RSA. La matematica dietro RSA lo consente. Ma se questo dovesse accadere, è un errore orribile, ed è del tutto inutile provare a farlo apposta perché nessuno sano di mente vorrebbe usare RSA per la crittografia simmetrica. È molto meno efficiente e nessuno usa RSA per crittografare grandi quantità di dati, in genere lo si usa solo per crittografare una chiave simmetrica casuale o un hash (per le firme).

Fondamentalmente RSA da manuale funziona così: genera due primi p e q, quindi determina un intero e < (p-1) (q-1) in modo che e non abbia divisori comuni con (p-1) (q-1).

Ora determina l'inversa modulare d di e, che significa (e * d) mod ((p-1) (q-1)) = 1

Se sei molto sfortunato, finisci per raccogliere e, peq in modo che e sia la sua inversa modulare. Quindi finisci con e = d. Se ciò accade, hai creato una chiave simmetrica.

Questo succede sempre prima o poi quando ci sono persone che cercano di capire come funziona RSA creando tasti giocattolo con numeri molto piccoli p e q (il che significa che puoi fare i conti con la matematica, ma anche che RSA diventa banalmente irrintracciabile ). Si consideri ad esempio p = 5, q = 7, e = 11.

Penso che le possibilità di creare accidentalmente chiavi simmetriche con numeri primi completi (ad es. almeno 1024 bit di lunghezza, e meglio di due volte) siano minuscole e ci vorrebbe uno sforzo incredibile per produrne una di proposito usando un approccio a forza bruta, che è un'altra ragione per cui nessuno lo fa (anche se potrebbe esserci un modo per scegliere p e q in un modo che renda facile trovare un numero che è il proprio inverso - qualcuno con un background in teoria dei numeri potrebbe sapere come fare se è possibile)

    
risposta data 21.02.2018 - 00:46
fonte
0

Lasciando da parte gli ottimi punti fatti da @Pascal, va sottolineato che - quando usato correttamente - generalmente non puoi creare una singola "chiave" simmetrica in RSA (o qualsiasi altro algoritmo asimmetrico) perché l'intero punto di tali algoritmi è che la chiave utilizzata per la crittografia non può essere utilizzata per la decrittografia e viceversa.

In pratica, è possibile generare coppie di chiavi (con componenti sia pubblici che privati) e trattare l'intero blob come una singola chiave "segreta" (simmetrica). Le operazioni di crittografia / verifica utilizzerebbero una parte del blob e le operazioni di decrypt / sign utilizzerebbero l'altra parte, ma si potrebbe fingere che sarebbe una singola chiave. Questa è un'idea davvero stupida, però. Manca completamente il punto di crittografia asimmetrica e avrebbe enormi problemi di prestazioni (la crittografia asimmetrica è estremamente lenta, sia per l'utilizzo che per la generazione delle chiavi, se si utilizzano dimensioni di chiave sicure).

Non è nemmeno così sicuro. Si veda, ad esempio, il confronto delle dimensioni del modulo della chiave RSA (pubblica) e dei bit di sicurezza efficaci (che in qualsiasi algoritmo simmetrico decente è solo "la dimensione della chiave", ovvero AES-128 utilizza chiavi a 128 bit e richiede 2 ^ 128 suppone di forzare completamente lo spazio della chiave in questa domanda .

Un potenziale enorme problema per RSA è se il calcolo quantico si avvia sempre, perché questo ridurrà sostanzialmente la entropia dei bit effettiva della maggior parte dei cifrari. Per AES, non è un grosso problema; possiamo passare da AES-128 ad AES-256 e avere ancora 128 bit di sicurezza effettiva, che saranno comunque completamente inverosimili alla forza bruta da oltre cento anni, anche se la Legge di Moore continua a ritmo sostenuto. Tuttavia, una chiave RSA-2048 (probabilmente la dimensione più comune in uso oggi) si ridurrebbe a 56 bit di sicurezza efficace - bruta-forzata in un giorno come privato cittadino, come alcuni anni fa - RSA-4096 ( le chiavi RSA più lunghe che abbia mai visto in natura sarebbero ancora nei guai, e se volessimo la stessa sicurezza efficace di AES-256 avremmo bisogno di andare su RSA-15360. Lasciando da parte che questo renderebbe solo la chiave pubblica lunga circa 2 KB, ci vorrebbe un'enorme quantità di tempo per generare o utilizzare tali chiavi.

    
risposta data 21.02.2018 - 01:30
fonte

Leggi altre domande sui tag