Tempo necessario per generare una firma RSA di un documento

2

In che modo la lunghezza della chiave RSA e le dimensioni del documento influenzano il tempo necessario per firmare un documento utilizzando SHA-1 e RSA?

Ho usato CrypTool per controllarlo, ma il tempo non sembra più grande per i grandi documenti. Non so se sia un problema con CrypTool o il modo in cui l'ho usato (forse ho usato documenti troppo piccoli).

    
posta kspacja 09.05.2012 - 19:46
fonte

2 risposte

2

Generalmente, con una firma digitale per una chiave asimmetrica (come RSA) - la firma viene creata tramite l'hash (SHA-1). L'hash crea un blocco dati a dimensione fissa ( SHA-1 - 160 bit ) che è l'input alla funzione di crittografia asimmetrica.

Le funzioni di hash, in generale, vengono create per essere eseguite abbastanza rapidamente. In breve, è generalmente linearmente proporzionale alla dimensione dell'input. Le probabilità sono abbastanza buone che su un computer medio, con un'API decentemente scritta per la tua funzione di hash, avrai difficoltà a vedere una grande differenza senza un drastico cambiamento nelle dimensioni del file. Le funzioni di hash sono progettate per l'efficienza e i creatori di librerie hash fanno un lavoro decente per mantenerle ottimizzate per il sistema operativo e la CPU. La mia sospettosità (con le dimensioni del set di prova sconosciute) è che si ha un problema di calibrazione - È improbabile che CrypTool sia in grado di misurare le variazioni nel tempo per processare l'input perché il delta tra "veloce" e "lento" è troppo piccolo per essere misurabile.

La dimensione della coppia di chiavi RSA NON cambierà - per cambiare la dimensione della tua coppia di chiavi, devi generare una nuova chiave e identificare quella nuova coppia di chiavi come input per la firma. Ecco un bella carta su come grandi RSA dimensioni delle chiavi avrà un impatto generazione e verifica delle firme.

Indipendentemente dalla dimensione della tua chiave di firma RSA, la lunghezza di input dei dati sarà 160b a causa del fatto che stai utilizzando SHA-1 per cancellare i dati prima di inviarli per la firma. Quindi, una volta determinata una coppia di chiavi, se stai misurando solo l'esecuzione dell'algoritmo RSA, non vedrai alcuna differenza nel tempo di elaborazione (a meno che non sia influenzato anche da altre operazioni sul tuo sistema) a causa delle differenze nei dati di input da firmare.

    
risposta data 09.05.2012 - 21:16
fonte
1

La firma di un documento prevede due passaggi: (1) cancellare il documento, (2) firmare l'hash utilizzando la chiave privata. Il tempo di esecuzione è la somma dei tempi di esecuzione di ogni passaggio.

Il tempo di esecuzione dell'hash del documento sarà in genere molto veloce e dipende in modo lineare dalla dimensione del documento. È necessario prevedere che un computer moderno possa eseguire l'hashing di un documento con una velocità di circa 100-500 MB / sec (megabyte al secondo). In altre parole, per un documento di dimensioni normali, questo sarà fatto più velocemente di quanto un umano possa notare. Quindi, per la maggior parte degli scopi, puoi ignorare il tempo necessario per cancellare il documento e, di conseguenza, in pratica, la lunghezza del documento di solito sarà irrilevante.

Il tempo necessario per firmare il documento dipenderà pesantemente dalla dimensione della chiave RSA (il numero di bit nel modulo). Ecco alcuni esempi di tempo: il calcolo di una firma potrebbe richiedere circa 1 millisecondo per una chiave RSA a 1024 bit; circa 5 millisecondi per una chiave RSA a 2048 bit; o circa 30 millisecondi per un RSA a 4096 bit. (Questi numeri sono solo degli esempi e potrebbero essere un po 'più veloci o più lenti a seconda della velocità del tuo computer.) Generalmente, la maggior parte del tempo che calcola la firma sarà speso nel calcolo RSA, che dipende molto dalle dimensioni del Chiave RSA. Tuttavia, per le dimensioni chiave tipicamente utilizzate, questo è ancora più veloce di quanto un essere umano possa notare.

Quindi, per documenti di dimensioni ragionevoli e chiavi RSA di dimensioni ragionevoli, l'operazione di firma sarà probabilmente così veloce che probabilmente non noterai il tempo necessario per calcolare la firma.

    
risposta data 10.05.2012 - 08:44
fonte

Leggi altre domande sui tag