鍵 (暗号)

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

暗号技術において、かぎ、key)とは、暗号アルゴリズムの手順を制御するためのデータである。

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

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

概要[編集]

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

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

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

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

鍵が取り得るパターン数を鍵の長さといい、一般的にはパターン数を2進数表現した際のビット長で表す。たとえば128ビットの鍵長という場合はパターン総数は2128(約340=3.4*1038)である。鍵の長さが不十分であると、アルゴリズムに関わらず総当たりで鍵を割り出す事が可能になるため、鍵の長さは暗号強度に直結している。コンピュータの性能向上に伴って現実的な時間で総当たり可能な鍵長も長くなっており、それに対応するため実運用で用いられる鍵も徐々に長くなってきている。(RSA暗号の公開鍵長1024bitと楕円曲線暗号の公開鍵長160bitの計算量的安全性はほぼイコールだが、bit数が前者の1/6程度の後者は前者より総当り攻撃をされやすい)

鍵の種類[編集]

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

関連項目[編集]