Sto generando chiavi RSA con la libreria openssl. Ho sentito che è possibile riconoscere il metodo utilizzato per crittografare una stringa con AES o DES ma è possibile identificare se una stringa è una chiave pubblica RSA?
Sì. Le chiavi pubbliche RSA sono generalmente generate come strutture ASN.1 come da definizione in RFC3447 , codificate in formato DER .
Il formato può essere validato come DER / ASN.1 corretto e quindi decodificato per verificare che la struttura e i valori contenuti corrispondano a quanto previsto da una chiave pubblica RSA. I valori all'interno della struttura sono semplicemente la semiprima pubblica (n) e l'esponente (e).
Convalidando che il valore di e è primo, e che la dimensione di n corrisponda a una dimensione di chiave RSA prevista (ad esempio 1024 bit), allora si può presumere che i dati forniti fossero in realtà una chiave pubblica RSA.
Nel caso di OpenSSH, le chiavi pubbliche iniziano con un identificatore di stringa (ad esempio "ssh-rsa") che rende facile il rilevamento. Puoi anche estrarre e convalidare i valori n ed e nello stesso modo come sopra, anche se usando il formato della chiave OpenSSH specificato in RFC4253 al posto del formato DER / ASN.1.
Leggi altre domande sui tag public-key-infrastructure key-exchange rsa