キーおよびアルゴリズム

暗号化されたメッセージの意図された受信者が、メッセージを解読するために、アルゴリズムおよびキーを知っている必要があることは明らかです。それと同時に、そのアルゴリズムおよびキーをその他の人物には秘密にしておく必要があることも明らかです。そのため、どのようにアルゴリズムおよびキーを意図された受信者に知らせるかという問題が生じます。結局、アルゴリズムおよびキーを送信すると、メッセージを傍受している人物にも知られてしまう可能性があります。

しかし、実際にはそれほど単純ではありません。

SSL で一般的に使用されるアルゴリズムは非常に複雑であり (通常、この記述には数ページにも及ぶ計算が必要となります)、使用されるキーは一般的に非常に長くなります (16 進数または 10 進数で表した場合に数百桁になることもあります)。そのため、アルゴリズムを誰かに知られたとしても、キーが推測されたり、総当たりなどによってキーが特定される可能性は実質的にありません。したがって、SSL では、アルゴリズムを秘密に保つのではなく、暗号技術の専門家が長年かけて開発して公開している有名なアルゴリズムを使用します。

SSL を使用するソフトウェアを構成する際、通常は、このようなよく知られたアルゴリズムのうち、どのアルゴリズムを使用するかを指定します。すべての暗号化および復号化はソフトウェアによって行われるため、これらのアルゴリズムを理解する (それには十分な数学的知識が求められます) 必要はありませんが、主要なアルゴリズムの名前や、それぞれの利点と不利な点について把握している必要があります。これについては後で説明します。いくつかの主要なアルゴリズムについて、順番に取り上げていきます。

また、キーを自分で決定する必要もありません。自動的に、SSL ソフトウェアにより、乱数生成器を使用してキーが作成されます。