2012-02-01 18 views
10

Attualmente sto lavorando su un progetto che utilizza python per implementare la comunicazione p2p tra due (o più) computer. Sebbene io sia abbastanza abile con Python, non sono affatto un esperto; la programmazione e la crittografia non sono affatto la mia professione, semplicemente un hobby. Tuttavia, lavorando a questo progetto ho cercato di saperne di più sulla crittografia e sulla programmazione di rete.Implementazione di RSA completo in Python

A partire da ora ho scritto una classe piuttosto potente che comunica bene su una rete e sto cercando di migliorarla implementando RSA per crittografare le connessioni tra i peer sulla rete; questo è dove mi sono imbattuto in qualche difficoltà.

In precedenza ho utilizzato pycrypto per eseguire alcune operazioni di crittografia/decrittografia di base in python e sono quindi abbastanza a proprio agio con tutti gli strumenti coinvolti, inclusi i necessari algoritmi di chiave pubblica. Inoltre, sono anche consapevole del fatto che pycrypto ha alcune carenze, nel fatto che implementa solo gli algoritmi di crittografia/decrittografia a basso livello necessari per implementare RSA e non implementa un protocollo completo per la crittografia a chiave pubblica. So anche che pycrypto contiene altri utili strumenti come una trasformazione di AllOrNothing che può essere utilizzata per riempire la comunicazione, ecc. Tuttavia, la mia domanda è: qualcuno può raccomandare qualsiasi articolo online, libri, post di blog, progetti, ecc. aiutami nella mia ricerca per implementare un efficace protocollo RSA?

Infine, capisco che questo è un argomento delicato con i crittologi in quanto i protocolli implementati da dilettanti di solito significano meno sicurezza nel programma. Come ho notato sopra, questo progetto è una mera esperienza di apprendimento; se stavo completando questo progetto professionalmente avrei sicuramente usato M2Crypto o qualche altro protocollo sicuro implementato professionalmente - cioè SSL/TLS. Ahimè, sto solo cercando di saperne di più sulla crittografia implementando il mio modello di un protocollo collaudato per creare una connessione sicura tra due peer.

Grazie, Kevin

+1

[PKCS # 1] (http://www.rfc-editor.org/rfc/rfc3447.txt) –

risposta

8

Date un'occhiata a Raymond Hettinger ricetta: Public Key Encryption (RSA)

+0

Ah è fantastico, grazie per l'aiuto. Inizierò passando a questo e adattandolo alle mie esigenze! –

+0

Sembra in loop infinito sia in python2 che in python3. – ninjagecko

+0

Questa è una risposta davvero eccellente. – Glycerine

4

Perché non dare un'occhiata alla mia biblioteca pura-Python RSA? Potrebbe essere proprio quello che serve: http://stuvel.eu/rsa

0

pycrypto ha alcune carenze, nel fatto che esso implementa solo le bare-bones, a livello di algoritmi bassi di crittografia/decrittografia necessarie per attuare RSA e non implementa un protocollo completo per crittografia a chiave pubblica.

La versione corrente pycrypto (2.6) fa sostegno tutti i principali protocolli di RSA per la firma e la crittografia in particolare da quelle specificate in PKCS # 1 (v1.5, PSS, OAEP).