鍵 (暗号)暗号技術において、鍵(かぎ、key)とは、暗号アルゴリズムの手順を制御[要説明]するためのデータである[1]。 鍵は、同じ暗号方式を使用しながら利用者毎に暗号化の手順を異なるものにするために考え出されたものであるが、暗号だけではなく、デジタル署名やメッセージ認証コード(Keyed-hashなど)でも使用される。擬似乱数で用いられるシード(種)も鍵の一種である。 アルゴリズムが公開されている現代暗号においては、鍵が第三者に渡ることは、暗号文の秘匿性などが失われることを意味するので、鍵は非常に重要な役割を果たしている。 概要暗号化では、同じ暗号方式を使用しながら利用者毎に暗号化の手順を異なるものにするために使用される[要検証 ]。 暗号方式と平文が同じであっても、鍵が違えば生成される暗号文は異なるものになる。 暗号文を復号する際にも、暗号化に使用した鍵に対応する鍵が使用される。 復号の際には暗号化で使った鍵と同じ鍵(共通鍵暗号の時)か、または対応する(暗号化用とは別の)鍵(公開鍵暗号の時)が必要で、失うと復号できなくなる(または極めて難しい)。 例えば、シーザー暗号ではアルファベットをずらす数を変えることによって違う暗号文が生成される。この数が鍵である。実際のシーザーが用いたものはこの数(鍵)が3であった。 デジタル署名でも、同じ署名方式を使用しながら利用者毎に、生成される署名を異なるものにするために使用される[要検証 ]。 利用者が秘密に保持している鍵が無ければ利用者と同じ署名を生成できないことが、デジタル署名を電子署名や認証などに利用できる根拠となっている。 現実世界の鍵と比較して、暗号アルゴリズムを錠前、暗号鍵を鍵と見ることが可能であるが、実際の錠前はただ一種類の鍵しか受け付けないのに比べ、暗号の場合は無数の鍵(鍵空間と呼ばれる)を全て受け入れるという違いがある。 鍵のデータ量を鍵長(かぎちょう)といい、一般的には鍵データを2進数表現した際のビット長で表す[2]。たとえば128ビットの鍵長という場合はデータ量は総数は2128(約340澗=3.4*1038)である。鍵長が不十分であると、アルゴリズムに関わらず総当たりで鍵を割り出す事が可能になるため、鍵長は暗号強度に直結している[3]。コンピュータの性能向上に伴って現実的な時間で総当たり可能な鍵長も長くなっており、それに対応するため実運用で用いられる鍵も徐々に長くなってきている。鍵長を十分に取れば安全性は高まるが、計算量が増え利便性は低下する[3]。しかし必要な鍵長はアルゴリズムによるため、楕円曲線暗号などの暗号アルゴリズムを利用することでRSA暗号よりも鍵長を抑えつつ安全性を担保できる[4]。 鍵の種類
脚注
|