richiesta su SHA1 con RSA per la firma del certificato

2

Come tutti sapete, molti certificati X.509 usano (PKCS # 1 SHA1 con crittografia RSA) come Algoritmo Firma certificato per generare la firma di 2048 bit a lungo. Sappiamo che la funzione hash SHA1 genera un valore hash di 160 bit, quindi questo rende il valore della firma del certificato 2048 bit una combinazione di (160 bit + 1888 bit = 2048 bit). La mia domanda è: da dove provengono i bit 1888? Sono un altro un valore di hash o sono solo padding?

Qualcuno può rispondere brevemente a questa domanda. Se anche tu puoi fornirmi una fonte o un sito web per saperne di più, poiché ho cercato di trovare una risposta a questa domanda, ma non ho trovato una buona risorsa per spiegare questo problema.

Grazie MOLTO in anticipo:)

    
posta Mike 11.02.2014 - 23:58
fonte

5 risposte

2

Il campo lungo 2048 bit è un contenitore per i risultati della funzione hash. È abbastanza lungo da accettare i risultati da una varietà di funzioni di hashing.

Se la funzione di hash utilizzata fornisce un risultato inferiore a 2048, il valore di hash viene riempito come indicato da altre risposte.

Nota inoltre che non dovresti più usare SHA-1. Se hai clienti del governo degli Stati Uniti, quindi NON sono autorizzati a usarlo. E nessun altro dovrebbe usarlo.

Nel 2011, l'Istituto Nazionale degli Standard degli Stati Uniti ha emesso un regolamento ( vedere pagina 6) che afferma:

After December 31, 2013, key lengths providing less than 112 bits of security strength shall not be used to generate digital signatures.

(L'enfasi è nell'originale.) Questo regolamento si applica al governo degli Stati Uniti, ma è anche comune per le organizzazioni / società non governative seguirlo come esempio di best practice.

    
risposta data 12.02.2014 - 10:54
fonte
0

I bit extra 1888 sono per lo più byte di valore 0xFF.

Tuttavia ...

Sarebbe praticamente inutile computare un hash (che tutti possono calcolare) e quindi aggiungere un gruppo di 1s. Cosa proverebbe? La parte importante di RSA è la esponenziazione modulare ; in modo che la firma sia per niente "l'hash e alcuni bit extra del 1888". Non puoi sperare di capire RSA se non consideri questo esponenziamento.

Puoi meditare lo standard RSA PKCS # 1 .

    
risposta data 12.02.2014 - 00:20
fonte
0

Gli algoritmi di firma utilizzano una funzione di hash unidirezionale (in questo caso SHA-1). L'algoritmo raccoglie i dati da firmare (hash (messaggio)), che viene quindi firmato utilizzando la chiave privata RSA. Questa operazione crea il valore della firma (e_priv (hash (campi dei certificati))), che è una stringa di bit che viene inclusa nel campo della firma del certificato.

Non stiamo prendendo l'output SHA-1 e aggiungendolo su qualcosa per creare il campo firma, piuttosto stiamo eseguendo una firma sull'output dell'hash.

    
risposta data 12.02.2014 - 00:23
fonte
0

Dimensione dell'output della crittografia RSA sempre equivalente alla dimensione della chiave RSA. Nel tuo caso della firma Sha1RSA 2048, il digest sha1 a 160 bit viene riempito secondo lo schema di riempimento PKCS # 1 per rendere il blocco di input equivalente alla dimensione della chiave RSA e quindi crittografato con la chiave privata RSA che risulta nella firma a 2048 bit.

    
risposta data 01.02.2016 - 08:26
fonte
-1

Larry > > SHA1 non utilizza una chiave. La firma è fatta con 2048 bit RSA, SHA1 è appena usato per Message Digest. Se i dati sono inferiori a 2048 bit, si ottiene la forza uguale nella firma senza SHA, basta riempire i dati con FF, la forza della firma è nella lunghezza della chiave non nel processo di Message Digest. Non è consigliabile utilizzare SHA1 da solo come metodo di firma. Non è consigliabile utilizzare i tasti simmetrici a 112 bit. L'utilizzo di chiavi RSA a 2048 bit è ancora valido per la firma e la crittografia.

    
risposta data 09.02.2015 - 16:50
fonte

Leggi altre domande sui tag