2012-02-01 7 views
10

現在、私は2つ(またはそれ以上)のコンピュータ間でP2P通信を実装するためにpythonを使用しているプロジェクトに取り組んでいます。私はPythonにかなり堪能ですが、私は決して専門家ではありません。プログラミングと暗号化は決して私の職業ではなく、単に趣味である。しかし、私はこのプロジェクトに取り組んで、暗号化とネットワークプログラミングについてもっと学びたいと考えています。Pythonで完全なRSAを実装する

今のところ、ネットワーク上で通信するかなり強力なクラスを作成しましたが、ネットワーク上のピア間の接続を暗号化するためにRSAを実装することで改善しています。これは私がいくつかの困難に遭遇したところです。

私はこれまでpycryptoを使ってPythonで基本的な暗号化/復号化を行ってきましたが、これは必要な公開鍵暗号を含むすべてのツールで非常に快適です。さらに、pycryptoには、RSAを実装するために必要な低レベルの暗号化/復号化アルゴリズムだけが実装されており、公開鍵暗号化のための完全なプロトコルは実装されていないという短所があることも知っています。私はまた、pycryptoには、通信などの埋め込みに使用できるAllOrNothing変換などの他の便利なツールが含まれていることも知っています。しかし、私の質問は、誰でもオンライン記事、書籍、ブログ投稿、プロジェクトなどを推薦できます。効果的なRSAプロトコルを実装するための私の手助けをしてくれますか?

最後に、これは、アマチュアで実装されたプロトコルでは通常、プログラムのセキュリティが低いという意味で、暗号学者とのやわらかい主題であることを理解しています。上記のとおり、このプロジェクトは単なる学習体験です。私がこのプロジェクトを専門的に完了していたなら、M2Cryptoやその他の専門的に実装されたセキュアなプロトコル(SSL/TLSなど)を必ず使用します。悲しいかな、私は、証明されたプロトコルの独自のモデルを実装して、2つのピア間の安全な接続を作成することで、暗号化についてもっと学びたいだけです。

おかげで、 ケビン

+1

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

答えて

8

はレイモンドヘッティンガーレシピを見てみましょう:私の純粋なPythonのRSAライブラリを見てみないのはなぜPublic Key Encryption (RSA)

+0

これは素晴らしいことです。ありがとうございました。私はこれを通過し、それを私のニーズに適応させるでしょう! –

+0

python2とpython3の両方で無限ループに見えます。 – ninjagecko

+0

これは本当に素晴らしい答えです。 – Glycerine

0

pycryptoはそれだけでRSAを実装するために必要な最低限の、低レベルの暗号化/復号化アルゴリズムを実装し、ための完全なプロトコルを実装していないという事実に、いくつかの欠点を持っています公開鍵暗号化。

現在のバージョンPyCrypto(2.6)支持即ち署名と暗号化のためのすべての主要なRSAプロトコルPKCS#1(V1.5、PSS、OAE​​P)で指定されたものがありません。

関連する問題