0

こんにちは、私はいくつかのプログラムの p2p 名前空間に取り組んでいます。クラスで送受信するパケットを暗号化・復号化する仕組みを作りました。私は基本的な公開秘密鍵システムを使用していました。1) 対称暗号化でデータを暗号化し、2) RSA で対称鍵を暗号化します。次に、復号化したときに反対のことを行います..

しかし、パケットがどこから来ているかをどのように確認するのだろうかと思っていました。私は基本的な証明書システム (RSA 秘密鍵で暗号化し、公開鍵で復号化する) を使用するつもりでしたが、C# でこれを行う方法がわかりません。RSACryptoServiceProvider クラスを使用しています。

誰もこれを行う方法を知っていますか? ありがとう、マックス

4

1 に答える 1

1

パケットを安全に送信するための標準プロトコルはSSL/TLSです。TLSDTLSのRFC (および最近の欠陥の修正)が進むべき道です。また、アイデアを学び、探している人のためのリソースと見なす必要があります。

MACを探しているようです。暗号化とMACingの両方を同時に実行する非常に効率的な暗号プリミティブのセットはAEAD暗号です。たとえば、CCMおよびGCMブロック暗号モードを参照してください。

.NETがAEAD暗号をサポートしているとは思いません。.NETでサポートされている低速で完全に適切なHMACアルゴリズムを使用することも、AEAD暗号をサポートする弾力のあるC#ライブラリを使用することもできます。

于 2010-03-28T12:57:07.660 に答える