Come ottenere il numero primo di una chiave segreta in GnuPG?

2

Quando utilizzo GnuPG posso ottenere una chiave segreta salvata come file. Aprendo questo file in un editor di testo vedo che la chiave è codificata con base64. Come trovo il numero primo effettivo dalla chiave segreta? Cioè, come posso passare, diciamo a 2048 bit, chiave per numero primo?

Mi piacerebbe vedere un algoritmo che prende il file e dà il numero primo.

Vorrei anche sapere come rendere il file della chiave segreta dato un numero primo effettivo.

    
posta Thomas 30.03.2013 - 02:39
fonte

2 risposte

4

Puoi utilizzare pgpdump per ispezionare le chiavi pubbliche e private. L'opzione "Dump interi" ( pgpdump -i ) mostrerà i valori usati per la chiave. I valori utilizzati per la chiave privata ( p, d, q, u ) tuttavia saranno solo mostrato se la chiave privata non è protetta da una passphrase.

Poiché pgpdump funziona solo con chiavi con armatura ascii, dovrai prima esportare le tue chiavi.

    
risposta data 30.03.2013 - 12:25
fonte
3

Prima di tutto, è improbabile che una chiave segreta in GnuPG sia one numero primo. Per le chiavi RSA, la chiave pubblica contiene due numeri interi ( n e e ), mentre la chiave privata contiene quattro numeri interi ( d , p , q e u , nella terminologia di OpenPGP; p e q sono numeri primi e il loro prodotto è uguale a n ). Per le chiavi ElGamal o DSA, la chiave pubblica contiene tre o quattro numeri interi ( p , q , g , y ) e la chiave privata è un intero ( x ) che non è necessariamente primo (la primità della chiave privata ElGamal non ha significato).

Il formato attuale è descritto a lungo in lo standard . Se implementi del codice per analizzare i file come descritto in questo standard, otterrai tutte le informazioni che desideri. Per accelerare lo sforzo (risultati più rapidi, a scapito di una minore comprensione - l'implementazione di un protocollo da zero è un ottimo modo per impararlo!), Potresti voler utilizzare alcune librerie esistenti che eseguiranno l'analisi per te. Ad esempio Castello gonfiabile (in Java) o GnuPG (in C).

    
risposta data 30.03.2013 - 20:50
fonte

Leggi altre domande sui tag