E' nota a molti la storia e gli sviluppi del software a crittografia asimettrica PGP (link), ed eventualmente delle sue varianti (link) ma quello su cui vorrei fare chiarezza grazie al vostro aiuto è l'algoritmo asimettrici utilizzati per generare le chiavi (private e pubblica).
Ho notato che ne esistono di diversi (DSA, RSA, DSS, l'ibrido Diffie-Hellman/DSS, ElGalaman), ciascuno con le sue varianti (es. RSA V.4) e le sue evoluzioni. Ho inoltre notato che, nonostante le attuali versioni CKT di PGP consentanto di generare chiavi RSA fino a 16384 bit e Diffie-Hellman/DSS a fino 8192, l'autore storico del programma, nonchè autorità nel campo crittografico Philip Zimmerman sostiene quanto riporto qui sotto (tratto direttamente dal file di installazione della versione 6.5.8ckt - Build09b3 di PGP):
************************************************
* A Message From Philip Zimmermann
************************************************
There is no advantage for using the keys larger than about 3000 bits. The 128-bit session keys have the same work factor to break as a 3000 bit RSA or DH key. Therefore, the larger keys contribute nothing to security, and, in my opinion, spread superstition and ignorance about cryptography. They also slow everything down and burden the key servers and everyone's keyrings, as well as cause interoperability problems with present and future releases of PGP. Perhaps even more importantly, they also undermine other people's faith in their own keys that are of appropriate size. While it may have been well-intentioned, this massive expansion of key size is a disservice to the PGP community.
Also, larger DSA keys don't contribute anything unless the hash grows bigger with it. That requires selecting a good well-designed bigger hash that has been specifically designed to have the full work factor for breaking it. Using two SHA1 hashes in that manner has not been adequately shown to achieve this result.
Anyone with a sophisticated understanding of cryptography would not make the keys bigger this way.
Experimental code that we put into PGP during its development should not be used. It was protected with conditional compilation flags and should never have been revealed to uninformed users who decide to perform a "public service" by enabling the code and releasing it. This is part of the reason why we ask people not to release code changes on their own, but to send them to us, so that we may incorporate some of them (if they seem like good ideas) into our next product release. That is how PGP enhancements from the user community have always been managed since PGP source code was released in 1991.
-Philip Zimmermann
Quello che chiedo a chiunque abbia informazioni o link al riguardo è:
- Quale è "l'evoluzione" storica degli algoritmi sopra citati? (quale viene prima, quali sono le varianti etc. etc.).
- Quali sono, allo stato attuale, le vulnerabilità note negli algoritmi sopra citati, e quali sono quelli attualmente considerati i migliori dalla comunità informatica?
- Quale è, allo stato attuale, la lunghezza delle chiavi consigliate e perché non ci sono vantaggi nell'aumentare in dimensioni le chiavi (oltre i 3000-4000 bit)?
Grazie a tutti
Saluti