鍵 (暗号)
出典: フリー百科事典『ウィキペディア(Wikipedia)』
暗号技術において、鍵(かぎ)とは、暗号アルゴリズムの手順を制御するためのデータである。
鍵は、同じ暗号方式を使用しながら利用者毎に暗号化の手順を異なるものにするために考え出されたものであるが、暗号だけではなく、デジタル署名やメッセージ認証コード(Keyed-hashなど)でも使用される。擬似乱数で用いられるシード(種)も鍵の一種である。
アルゴリズムが公開されている現代暗号においては、鍵が第三者に渡ることは、暗号文の秘匿性などが失われることを意味するので、鍵は非常に重要な役割を果たしている。
[編集] 概要
暗号化では、同じ暗号方式を使用しながら利用者毎に暗号化の手順を異なるものにするために使用される。 暗号方式と平文が同じであっても、鍵が違えば生成される暗号文は異なるものになる。 暗号文を復号する際にも、暗号化に使用した鍵に対応する鍵が使用される。 復号の際には暗号化で使った鍵と同じ(共通鍵暗号の時)か、または対応する(公開鍵暗号の時)鍵が必要で、失うと復号できなくなる(または極めて難しい)。
例えば、シーザー暗号ではアルファベットをずらす数を変えることによって違う暗号文が生成される。この数が鍵である。実際のシーザーが用いたものはこの数(鍵)が3であった。
デジタル署名でも、同じ署名方式を使用しながら利用者毎に、生成される署名を異なるものにするために使用される。 利用者が秘密に保持している鍵が無ければ利用者と同じ署名を生成できないことが、デジタル署名を電子署名や認証などに利用できる根拠となっている。
現実世界の鍵と比較して、暗号アルゴリズムを錠前、暗号鍵を鍵と見ることが可能であるが、実際の錠前はただ一種類の鍵しか受け付けないのに比べ、暗号の場合は無数の鍵(鍵空間と呼ばれる)を全て受け入れるという違いがある。
[編集] 鍵の種類
- 共通鍵 - 共通鍵暗号等で暗号化や復号に使用する鍵。元々は単に鍵、あるいは秘密鍵と呼ばれていたが、公開鍵暗号の登場後、公開鍵暗号の鍵ペアと区別するために秘密鍵ではなく共通鍵と呼ばれることが多くなった。共通鍵は、暗号方式によって異なるが通常、128~256bit程度のバイナリデータであり、128bitならば0~2^128(256bitならば0~2^256)の範囲からランダムに選択することで生成するものが多い。
- 公開鍵/秘密鍵 - 公開鍵暗号等で使用される鍵。(stub)
- マスター鍵(master key) - (sutb)
- 個別鍵,派生鍵
- 共有鍵
- セッション鍵(session key)
- シード鍵(seed key)