2010年11月12日星期五

共通キーで暗号化複合化(対称アルゴリズム)

キーの作成と管理は、暗号プロセスの重要な部分です。
対称アルゴリズムでは、キーと初期化ベクター (IV) を作成する必要があります。
共通キーは暗号化複合化同一ということですので、
誰でも手に入れたら、復号できるのです。
したがって、作成したキーと IV は、情報共有者内部のみで公開します。

一般に、キーと IV はセッションごとに新しく作成する必要があり、
キーも IV も格納して、後のセッションで使用することは望ましくありません。

通常、共通キーと IV を離れた場所にいる人へ送信するためには、
非対称暗号化方式を使用して共通キーと IV を暗号化します。
これらの値を暗号化せずに安全でないネットワークをとおして送信することは、
値を傍受した人ならだれでもデータを復号化できるようになるため、非常に危険です。

つまり共通キーを使うのは
①セッション単位で共通キー(KEYとIV)を作成する。
②非対称キー(元私、先公)で共通キーを暗号化する。
③送信相手に暗号化された共通キーを送信する。
④送信相手は自分のに対する非対称キー(元私、先公)で復号化して、共通キーを取得する。
⑤お互いに共通キーで送受信する。
代表的な例はSSLです。
.Netで共通キーの生成例:
// インスタンス化された時点で、KEY、IVが生成されます。
TripleDESCryptoServiceProvider TDES = new TripleDESCryptoServiceProvider();
//明示的に生成KEY,IVで、新たな別のKEY、IVを生成します。
//毎回生成されたKEY、IVは固定ではないです。
TDES.GenerateIV();
TDES.GenerateKey();

没有评论: