暗号のアルゴリズム
Information on how to protect your privacy and cryptography in Japanese. Dedicated to Bananafish.

Home | Tin-foil hat | Encryption | Cryptography | Miscellaneous | Site Map | Email & PGP Key

free web page counters

暗号のアルゴリズムのタイプ

秘密鍵暗号(Secret Key Cryptography)

暗号化と複合化に同じ鍵を使う。対称鍵暗号(symmetric encryption)とも言われる。

公開鍵暗号(Public Key Cryptography)

公開鍵で暗号化して秘密鍵で複合化する。非対称鍵暗号(asymmetric encryption)とも言われる。

ハッシュ(Hash Functions)

元に戻せない形にコード化する。電子署名に使われる。

秘密鍵暗号 (Secret-Key Cryptography)

秘密鍵暗号では暗号化と複合化に同じ鍵を使う。
また秘密鍵暗号は対称鍵暗号(symmetric encryption)とも言われる。

このタイプの暗号は送信者と受信者が同じ鍵を持っていなければいけません。もっとも大きな問題点は鍵の配布です。

様々な秘密鍵暗号が使われてきましたが、一般的にストリーム・サイファー(Stream ciphers)とブロック・サイファー(Block ciphers) にカテゴライズされます。ストリーム・サイファーはビットまたはバイトあるいはワードを一度に処理し、フィードバックするような機能を持っています。だか ら鍵は常に変化します。ブロック・サイファーは1度に1ブロックを同じ鍵を使って暗号化します。一般的にブロック・サイファーの同じ鍵で同じテキスト・ブ ロックを暗号化すると、同じ暗号文になります。一方ストリーム・サイファーでは違う暗号文になります。

DES(Data Encryption Standard) は 56-bit key を使用したブロック・サイファーで 64-bit blocks を扱う。
CAST-128 は 128-bit key を使用して 64-bit block を操作する。CAST-256 (RFC 2612) は CAST-128 の拡張で 128-bit ブロックサイズを扱い様々な長さの(128, 160, 192, 224, or 256 bit) 鍵がある。
IDEA(nternational Data Encryption Algorithm) は 128-bit keys を使った 64-bit ブロック・サイファーです。
RC4 は色々なサイズの鍵を使ったストリーム・サイファーです。
RC5 は様々なブロック・サイズキー・サイズをサポートしたブロック・サイファーです。
Blowfish はシメントリック 64-bit ブロック・サイファーです。
Twofish は 128-, 192-, or 256-bit ブロック・サイファーです。
AES(the Advanced Encryption Standard) は Rijndael と言われる SKC scheme を基にし、128-, 192-, or 256-bit 鍵がある。

MAY BE CONTINUED...

公開鍵暗号 (Public-key Cryptography)

公開鍵暗号は秘密鍵を共有する事無く安全にコミュニケーションを取る事が出来る。この300 年から400 年 の暗号法の発展で最も重要だと言われている。

公開鍵暗号は引数から結果を求めるのは簡単だが、結果から引数を求めることは難しいような "one-way functions" (一方向関数)という数学的なトリックに基づいている。

乗算(multiplication) vs. 因数分解(factorization)
9 と 16 があります。掛け算をすれば 144 という答えがすぐに出てくると思います。それでは逆に何と何を掛けて 144 という答えを得たか分かるでしょうか?答えには辿り着くと思います。しかし、掛け算の方は一瞬で答えが出ますが、 因数分解は時間が掛かるでしょう。何故ならまず初めに 8 個の数字の組み合わせを見付けなければいけません。それからどの組み合わせが答えなのかを決めなければいけません。

指数(exponentiation) vs. 対数(logarithms)
3 の 6 乗が 729 に成るのはすぐに分かると思います。しかし 729 があります、x を y 乗して 729 を得ました、x と y を答えて下さい。と言えば時間が掛かるでしょう。全ての可能性のある答えを見付け、その中から答えを決めなければいけません。

上のあげた例は取るに足らない物です。しかし公開鍵暗号で使われている2つの機能の組み合わせをよく表しています。乗算と指数は簡単だが因数分解と対数はそれらに比較すると難しい。
公 開鍵暗号は2つの鍵を使用しますが、これは数学的に1つの鍵が分かっても簡単にもう一方の鍵は決められないという事に関連しています。 1つの鍵はプレインテキストを暗号化するのに使われます。そしてもう一方の鍵は暗号化文を復号化するのに使われます。 ここで重要なポイントはどちらの鍵を最初に適用しても問題ではなことです。しかし両方の鍵が必要です。このアプローチはまた非対称鍵暗号 (asymmetric cryptography)とも言われます。

公開鍵暗号では、1つの鍵は公開鍵としてデザインされています。そしてそれは誰に渡しても構いません。そして、もう一方の鍵は秘密鍵としてデザインされています。その鍵は決して第三者に渡してはいけません。
Alice が Bob にメッセージを送りたいと考えて下さい。Alice はある情報を Bob の公開鍵を使って暗号化します。そして Bob は自分の秘密鍵を使って複合化します。この方法は誰がメッセージを送ったのか証明するのにも使われます。例えば Alice がプレインテキストを彼女の秘密鍵で暗号化します。それを Bob は彼女の公開鍵を使い復号化すれば、Alice がメッセージを送ったと分かります。そして、Alice はそれを否定することは出来ません。

電子署名(Digital Signatures)

電子署名のコンセプトはそのメッセージが実際に送信者が送った物だと証明する事です。その名前が表しているようにそのメッセージは送信者によって電子署名されているという事です。電子署名は秘密鍵とテキストの組み合わせを通して作られます。

そして正当な送信者が送ったメッセージか?また内容が途中で改竄されていないか?を送信者の公開鍵を使ってチェックする事が出来ます。

この署名を使うことによりそのメッセージの真正をチェックする事が出来ます。情報やデータが送信者が送った物で改竄されていないか確かめられ、これを使う事によりトロイ等のウイルスのリスクを小さくする事が出来ます。