2012-02-01 34 views
10

Obecnie pracuję nad projektem używającym Pythona do implementacji komunikacji p2p między dwoma (lub więcej) komputerami. Chociaż jestem biegły w posługiwaniu się Pythonem, nie jestem ekspertem; programowanie i szyfrowanie to z pewnością mój zawód, po prostu hobby. Jednak przy pracy nad tym projektem próbowałem dowiedzieć się więcej o szyfrowaniu oraz programowaniu sieci.Implementacja pełnego pakietu RSA w języku Python

W tej chwili napisałem dość potężną klasę, która komunikuje się dobrze w sieci i próbuję ją poprawić poprzez zaimplementowanie RSA do szyfrowania połączeń między rówieśnikami w sieci; właśnie tam natrafiłem na pewne trudności.

Wcześniej używałam pycrypto, aby wykonać podstawowe szyfrowanie/odszyfrowywanie w pythonie, a mimo to jestem całkiem wygodny ze wszystkimi narzędziami, w tym niezbędnymi szyframi klucza publicznego. Co więcej, zdaję sobie również sprawę, że pycrypto ma pewne braki, ponieważ implementuje tylko bare-bones, algorytmy szyfrowania/odszyfrowywania niskiego poziomu potrzebne do implementacji RSA i nie implementuje pełnego protokołu szyfrowania kluczem publicznym. Wiem również, że pycrypto zawiera inne użyteczne narzędzia, takie jak transformacja AllOrNothing, która może być wykorzystana do wypełniania komunikacji itp. Jednak moje pytanie brzmi: czy ktoś może polecić jakieś artykuły online, książki, posty na blogu, projekty itp., Które mogą pomóżcie mi w mojej misji wdrożenia skutecznego protokołu RSA?

Wreszcie, rozumiem, że jest to drażliwy temat z kryptologami w tym, że implementowane przez amatorów protokoły zwykle oznaczają mniejsze bezpieczeństwo w programie. Jak zauważyłem powyżej, ten projekt jest jedynie doświadczeniem edukacyjnym; gdybym profesjonalnie wykonywał ten projekt, na pewno skorzystałbym z M2Crypto lub innego profesjonalnie zaimplementowanego, bezpiecznego protokołu - tj. SSL/TLS. Niestety, próbuję tylko dowiedzieć się więcej o szyfrowaniu, implementując mój własny model sprawdzonego protokołu, aby stworzyć bezpieczne połączenie między dwoma rówieśnikami.

Dzięki Kevin

+1

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

Odpowiedz

8

Spójrz na Raymond Hettinger przepisu: Public Key Encryption (RSA)

+0

Ach, świetnie, dziękuję za pomoc. Zacznę to przeglądać i dostosowywać do moich potrzeb! –

+0

Wydaje się nieskończoną pętlę zarówno w python2, jak i python3. – ninjagecko

+0

To naprawdę doskonała odpowiedź. – Glycerine

4

Dlaczego nie spojrzeć na mojego czystego-Python biblioteki RSA? To może być tylko to, czego potrzebujesz: http://stuvel.eu/rsa

0

pycrypto ma pewne braki, w tym, że to tylko realizuje goły, algorytmy szyfrowania/deszyfrowania niski poziom niezbędnych do realizacji RSA i nie implementuje pełen protokół szyfrowanie z kluczem publicznym.

Aktualna wersja PyCrypto (2.6) robi wsparcie Wszystkie główne protokoły RSA do podpisywania i szyfrowania mianowicie określone w PKCS # 1 (v1.5, PSS, OAEP).