鍵 (暗号)

暗号技術において、鍵（かぎ、key）とは、暗号アルゴリズムの手順を制御するためのデータである。
鍵は、同じ暗号方式を使用しながら利用者毎に暗号化の手順を異なるものにするために考え出されたものであるが、暗号だけではなく、デジタル署名やメッセージ認証コード（Keyed-hashなど）でも使用される。擬似乱数で用いられるシード（種）も鍵の一種である。
アルゴリズムが公開されている現代暗号においては、鍵が第三者に渡ることは、暗号文の秘匿性などが失われることを意味するので、鍵は非常に重要な役割を果たしている。
概要.
暗号化では、同じ暗号方式を使用しながら利用者毎に暗号化の手順を異なるものにするために使用される。
暗号方式と平文が同じであっても、鍵が違えば生成される暗号文は異なるものになる。
暗号文を復号する際にも、暗号化に使用した鍵に対応する鍵が使用される。
復号の際には暗号化で使った鍵と同じ鍵（共通鍵暗号の時）か、または対応する（暗号化用とは別の）鍵（公開鍵暗号の時）が必要で、失うと復号できなくなる（または極めて難しい）。
例えば、シーザー暗号ではアルファベットをずらす数を変えることによって違う暗号文が生成される。この数が鍵である。実際のシーザーが用いたものはこの数（鍵）が3であった。
デジタル署名でも、同じ署名方式を使用しながら利用者毎に、生成される署名を異なるものにするために使用される。
利用者が秘密に保持している鍵が無ければ利用者と同じ署名を生成できないことが、デジタル署名を電子署名や認証などに利用できる根拠となっている。
現実世界の鍵と比較して、暗号アルゴリズムを錠前、暗号鍵を鍵と見ることが可能であるが、実際の錠前はただ一種類の鍵しか受け付けないのに比べ、暗号の場合は無数の鍵（鍵空間と呼ばれる）を全て受け入れるという違いがある。
鍵が取り得るパターン数を鍵の長さといい、一般的にはパターン数を2進数表現した際のビット長で表す。たとえば128ビットの鍵長という場合はパターン総数は2128（約340澗=3.4*1038）である。鍵の長さが不十分であると、アルゴリズムに関わらず総当たりで鍵を割り出す事が可能になるため、鍵の長さは暗号強度に直結している。コンピュータの性能向上に伴って現実的な時間で総当たり可能な鍵長も長くなっており、それに対応するため実運用で用いられる鍵も徐々に長くなってきている。(RSA暗号の公開鍵長1024bitと楕円曲線暗号の公開鍵長160bitの計算量的安全性はほぼイコールだが、bit数が前者の1/6程度の後者は前者より総当り攻撃をされやすい)
鍵管理.
データを暗号化する際に、復号に使われる暗号鍵は一般的にDBMS(データベースマネジメントシステム)に収納される。しかしその暗号鍵の管理に不備があって第三者に盗まれてしまったら、データが不正に閲覧されたり盗み出されたりするなど、深刻な脅威にさらされる恐れがある。また 暗号鍵がない限りは暗号化されたデータは復元できないため、暗号鍵の管理はデータ・暗号化セキュリティの核心とも言える。
したがって、データ暗号化に際しては（1）鍵を安全に収納し、（2）鍵へのアクセスを制御し、（3）暗号権限を制御する鍵管理ソリューションを導入してこそ、有効な情報セキュリティ対策だといえる。