現在、Python を使用して 2 台 (またはそれ以上) のコンピューター間の p2p 通信を実装するプロジェクトに取り組んでいます。私は Python にかなり精通していますが、決して専門家ではありません。プログラミングと暗号化は決して私の職業ではなく、単なる趣味です。しかし、このプロジェクトに取り組む中で、私は暗号化とネットワーク プログラミングについてもっと学ぼうとしました。
現時点では、ネットワークを介して適切に通信する非常に強力なクラスを作成しており、RSA を実装してネットワーク上のピア間の接続を暗号化することで、クラスを改善しようとしています。これは私がいくつかの困難に遭遇した場所です。
私は以前に pycrypto を使用して Python でいくつかの基本的な暗号化/復号化を行っていましたが、これまでのところ、必要な公開鍵暗号を含む、関連するすべてのツールに非常に満足しています。さらに、pycrypto には、RSA の実装に必要な最低限の低レベルの暗号化/復号化アルゴリズムのみを実装し、公開鍵暗号化の完全なプロトコルを実装していないという事実で、いくつかの欠点があることも認識しています。また、pycrypto には、コミュニケーションのパディングなどに使用できる AllOrNothing 変換などの便利なツールがいくつか含まれていることも知っています。効果的な RSA プロトコルを実装するために私を助けてくれませんか?
最後に、アマチュアが実装したプロトコルは通常、プログラムのセキュリティが低下することを意味するため、これは暗号学者にとって厄介な問題であることを理解しています. 上で述べたように、このプロジェクトは単なる学習体験です。私がこのプロジェクトをプロとして完成させるのであれば、M2Crypto やその他のプロが実装した安全なプロトコル (SSL/TLS など) を確実に使用するでしょう。悲しいかな、私は暗号化についてもっと学ぼうとしているだけです。証明済みのプロトコルの独自のモデルを実装して、2 つのピア間に安全な接続を作成します。
ありがとう、ケビン