Quali sono le differenze di prestazioni (per client e server) tra DHE e ECDHE in TLS?

6

La mia domanda riguarda le prestazioni del client e del server per il (EC) DHE. Ho difficoltà a comprendere questa immagine (che si basa sui numeri del libro di Ivan Ristic" Bulletproof SSL e TLS ").

Iniziamo con la terza riga "RSA 2048, DHE 2048". Posso capire che i tempi di calcolo del client e del server sono diversi perché la creazione di una firma è diversa dalla verifica.

Capisco che ECDHE è più veloce di DHE e quindi i numeri nella seconda riga sono più piccoli di quelli nella terza riga.

Le mie domande sono:

  1. Lo sforzo per DHE e ECDHE è identico per client e server, non è vero?
  2. Perché il tempo di calcolo del client per "RSA 2048, ECDHE 256" inferiore a quello del server per "RSA 2048, DHE 2048" è il contrario?
posta HorstKevin 23.02.2017 - 14:20
fonte

2 risposte

2

DHE utilizza l'aritmetica modulare per calcolare il segreto condiviso. ECDHE utilizza le curve algebriche per generare la chiave, pertanto ha requisiti di calcolo, archiviazione e memoria inferiori.

DHE è notevolmente più lento di ECDHE. Se vuoi alcuni numeri reali qui sono:

Key exchange    Parameters               Transactions/sec
DHE-RSA         1024-bit RSA key,
                1024-bit DH parameters        347.64

ECDHE-RSA       1024-bit RSA key,
                192-bit ECDH parameters       612.25


DHE-RSA         1776-bit RSA key, 
                1776-bit DH parameters        97.62

ECDHE-RSA       1776-bit RSA key,
                192-bit ECDH parameters       349.53

Come puoi vedere, la penalizzazione delle prestazioni per DHE aumenta molto di più quando si aumenta il numero di bit. Se vuoi davvero il meglio di entrambi i mondi, puoi usare ECDHE-ECDSA e hai sia la sicurezza che l'efficienza.

Qui puoi trovare altri risultati indipendenti che dovrebbero darti informazioni.

Lo sforzo non è del tutto identico. Il cliente non è mai un problema. Noterai solo le differenze di prestazioni sul server (perché c'è un server e molti possibili client di negoziazione, quindi solo nel caso di 1 client e 1 server lo sforzo sarà uguale).

-Edit -

Quindi, per concludere: 1. Sì per un cliente. No per più clienti concorrenti, per ovvi motivi. 2. Entrambe le ipotesi sono errate. Su macchine identiche, il tempo di calcolo sarà simile in entrambi i casi.

    
risposta data 08.03.2017 - 10:41
fonte
0

RSA ha uno sfortunato squilibrio nello sforzo di calcolo necessario per client e server.

Il server deve fare più lavoro quando decodifica l'offerta del client perché normalmente l'esponente pubblico viene scelto molto più piccolo nei certificati del server. Il modulo privato 'd' non può essere troppo piccolo (Boneh & Durfee: Crittografia di RSA con chiave privata d inferiore a N ^ 0,292 ).

Questo ha l'effetto che il cliente ha bisogno di eseguire solo alcune moltiplicazioni modulari e può usare l'ottimizzazione quadrata e moltiplicata, mentre il server deve fare l'esponenziazione con il grande esponente privato.

Fortunatamente il server ha una maggiore conoscenza della chiave privata, quindi può utilizzare l'ottimizzazione del teorema del ricordo cinese (CRT), può dividere il costoso exponentiation con il modulo n in due. Il costo di fare esponenziazione modulare aumenta del cubo del numero di bit nel modulo. Effettuare due calcoli di esponenziazione ( mod p e mod q ) è quindi più efficiente ( dettagli ). Ma è ancora molto più lavoro di quello che il cliente deve fare. E poi il server deve anche fare accecamento RSA per proteggersi dagli attacchi temporali

(Al momento non sono sicuro del motivo per cui è il contrario per DHE o ECDHE. Per EC suppongo sia correlato alla necessità di controllare i parametri sulla curva)

    
risposta data 27.04.2017 - 23:00
fonte

Leggi altre domande sui tag