鍵 (暗号)

暗号技術において、鍵（かぎ、key）とは、するためのデータである。

鍵は、同じ暗号方式を使用しながら利用者毎に暗号化の手順を異なるものにするために考え出されたものであるが、暗号だけではなく、デジタル署名やメッセージ認証コード（Keyed-hashなど）でも使用される。擬似乱数で用いられるシード（種）も鍵の一種である。

アルゴリズムが公開されている現代暗号（ケルクホフスの原理も参照）においては、鍵が第三者に渡ることは、暗号文の秘匿性などが失われることを意味するので、鍵は非常に重要な役割を果たしている。

 概要 
暗号化では、。
暗号方式と平文が同じであっても、鍵が違えば生成される暗号文は異なるものになる。
暗号文を復号する際にも、暗号化に使用した鍵に対応する鍵が使用される。
復号の際には暗号化で使った鍵と同じ鍵（共通鍵暗号の時）か、または対応する（暗号化用とは別の）鍵（公開鍵暗号の時）が必要で、失うと復号できなくなる（または極めて難しい）。

例えば、シーザー暗号ではアルファベットをずらす数を変えることによって違う暗号文が生成される。この数が鍵である。実際のシーザーが用いたものはこの数（鍵）が3であった。

デジタル署名でも、同じ署名方式を使用しながら利用者毎に、生成される署名を異なるものにするために使用される。
利用者が秘密に保持している鍵が無ければ利用者と同じ署名を生成できないことが、デジタル署名を電子署名や認証などに利用できる根拠となっている。

現実世界の鍵と比較して、暗号アルゴリズムを錠前、暗号鍵を鍵と見ることが可能であるが、実際の錠前はただ一種類の鍵しか受け付けないのに比べ、暗号の場合は無数の鍵（鍵空間と呼ばれる）を全て受け入れるという違いがある。

鍵のデータ量を鍵長（かぎちょう）といい、一般的には鍵データを2進数表現した際のビット長で表す。たとえば128ビットの鍵長という場合はデータ量は総数は2128（約340澗=3.4*1038）である。鍵長が不十分であると、アルゴリズムに関わらず総当たりで鍵を割り出す事が可能になるため、鍵長は暗号強度に直結している。コンピュータの性能向上に伴って現実的な時間で総当たり可能な鍵長も長くなっており、それに対応するため実運用で用いられる鍵も徐々に長くなってきている。鍵長を十分に取れば安全性は高まるが、計算量が増え利便性は低下する。しかし必要な鍵長はアルゴリズムによるため、楕円曲線暗号などの暗号アルゴリズムを利用することでRSA暗号よりも鍵長を抑えつつ安全性を担保できる。

 鍵の種類 
 共通鍵 - 共通鍵暗号等で暗号化や復号に使用する鍵。元々は単に鍵、あるいは秘密鍵と呼ばれていたが、公開鍵暗号の登場後、公開鍵暗号の鍵ペア（の一方）と区別するために秘密鍵ではなく共通鍵と呼ばれることが多くなった。共通鍵は、暗号方式によって異なるが、通常、128 - 256ビット程度のバイナリデータである。Nビットならば、0〜(2^N)-1の範囲からランダムに選択することで生成するものが多い。
 公開鍵/秘密鍵 - 公開鍵暗号等で使用される鍵。英語のPublic keyとPrivate keyに対応する。公開鍵は暗号化や署名検証等に、秘密鍵は復号や署名生成等に使う。Private keyの訳語としては「プライベート鍵」または「私有鍵」が使われることもある。
 マスター鍵 (master key)
 個別鍵, 派生鍵
 共有鍵
 セッション鍵 (session key)
 シード鍵 (seed key)

 脚注 

Category:暗号
Category:暗号技術