Come posso generare alcune chiavi pubbliche e private su entrambi i lati con un sovraccarico basso?

1

Abbiamo un Authority Center (CA) che genera alcune chiavi pubbliche e private per ogni cliente (più di una coppia per ogni cliente). Un metodo per l'invio di chiavi al client è la condivisione di una chiave segreta tra CA e client e l'invio di coppie di chiavi e certificati mediante il metodo di crittografia simmetrica (con chiave segreta). Ma il sovraccarico sarà elevato, quindi ho bisogno di un metodo efficiente con un sovraccarico di messaggio basso e il tempo necessario per la trasmissione delle coppie di chiavi. Come posso farlo? c'è un modo in cui entrambi i lati condividono una chiave segreta e quindi genera coppie di chiavi che la usano, senza trasmettere coppie di chiavi, (un modo che conferma che le coppie di chiavi sono affidabili per CA)?

un modo è che le chiavi pubbliche sono ridotte a un valore comune. è possibile che i clienti generino tali chiavi pubbliche? ma penso che ci vuole un sacco di tempo.

è molto importante per me, per favore aiutami.

    
posta Parham 27.07.2014 - 23:25
fonte

1 risposta

1

is there any way to both sides share a secret key and then generates key pairs using it

Puoi ricavare ulteriori chiavi da una chiave condivisa iniziale, ci sono vari meccanismi di derivazione chiave che ti permettono di farlo, ma hai ancora il problema di distribuire la chiave iniziale. Chiunque intercetta questa chiave potrebbe replicare il processo di derivazione e ricavare le stesse chiavi successive, quindi è ancora necessario trasferire in modo sicuro questa chiave iniziale e si ha lo stesso problema con cui si è iniziato. Questo vale anche per la tua soluzione suggerita; avvolgere le chiavi con un segreto condiviso è una buona idea, ma hai ancora bisogno di un modo per condividere in sicurezza quel segreto.

La distribuzione delle chiavi è probabilmente la parte più difficile dell'implementazione di un sistema crittografico. La distribuzione di chiavi simmetriche / segrete, come sarebbe necessario nella soluzione menzionata, è particolarmente difficile, motivo per cui sono spesso negoziate con chiavi asimmetriche, come nel caso di SSL e simili, poiché la crittografia viene eseguita utilizzando il pubblico metà della chiave del ricevente che non è riservata, ma si ha ancora il problema di distribuire e verificare le chiavi pubbliche che si stanno utilizzando per crittografare le chiavi simmetriche, che viene spesso risolto implementando un intero sistema PKI (infrastruttura a chiave pubblica), che include CA (autorità di certificazione).

Si menziona l'utilizzo di una CA, ma quello che si sta descrivendo non sembra essere il modo in cui una CA di solito opera, il che di solito implica la generazione della coppia di chiavi pubblica / privata del client e l'invio della metà pubblica alla CA per essere firmato e ricevere un certificato in cambio. Questi certificati possono essere verificati da altri client a causa di essi, incluso il certificato della CA radice nel loro archivio di certificati radice affidabili. Hai descritto nei commenti perché lo stai facendo in modo diverso, ma non sono ancora sicuro di seguire davvero il tuo ragionamento ...

Mi sorprende anche che il sovraccarico di una semplice crittografia simmetrica sia troppo alto per te. Avete effettivamente testato le prestazioni di questo e considerato inaccettabile il successo in termini di prestazioni? Questo mi dà un po 'di ottimismo prematuro, poiché la crittografia simmetrica non è particolarmente dispendiosa dal punto di vista computazionale (a differenza dell'asimmetria, motivo per cui asimmetrico viene solitamente utilizzato solo per negoziare una chiave simmetrica condivisa che viene utilizzata per qualsiasi successiva crittografia dei dati). Se il sovraccarico di un singolo avvolgimento di chiavi simmetriche è troppo intenso, sarei sorpreso se possiedi il potere computazionale di utilizzare la crittografia e forse dovresti riconsiderare il tuo approccio a ciò che stai tentando di fare.

    
risposta data 06.11.2014 - 18:23
fonte