暗号強度とは
暗号強度とは、暗号文がどれだけ解読しにくいかを表したものです。一般的に、暗号化キーのビット数(長さ)が大きいほど、高くなると言われています。
現在の暗号方式では、元の情報を暗号化するアルゴリズムは秘匿できないことが前提になっています。そのため暗号強度を高めるには、暗号化キーの複雑さが重要になります。
しかし使用する暗号化アルゴリズムが暗号強度に影響することも確かです。
いずれにしても、暗号化キーを持たない第三者が短時間で解読できるようでは困ります。そのような脆弱性があるものは利用を避けるべきです。
暗号強度を確認する方法
ここでは、「Internet Explorer」「Firefox」「Google Chrome」での暗号強度確認方法を紹介します。
Internet Explorerの暗号強度は、「右クリック」⇒「プロパティ」から確認できます。「接続」項目の「〇〇〇bit暗号」という箇所を確認しましょう。
FirefoxとGoogle Chromeの暗号強度は、サイトURLが表示されているアドレスバー左の錠前マークから確認できます。
Firefoxでは錠前マークをクリック後、表示される画面の右下にある「詳細を表示…」のボタンを押します。「鍵長〇〇〇bit」という箇所が暗号強度です。
Google Chromeでは錠前マークをクリック後、表示される画面の「接続」タブをクリックします。そこに表示されている「この接続に~を使用しています」という箇所に、暗号化に関する情報が書かれています。
暗号強度を高める方法
暗号化強度を高めるには、「鍵長を長くする」ことや「暗号化アルゴリズムを変える」のが有効です。以下で、それぞれの具体的な内容を見ていきましょう。
鍵長を長くする
暗号を解読するための基本的な方法は、考えられる暗号化キーの候補を手当たりしだいに試すことです。そのため暗号強度を高めるには、鍵長を長くして、できるだけ複雑な暗号化キーを作る必要があります。
暗号化に使われる鍵長は、64bit・128bit・192bit・256bitなどがあります。256bitなら2の256乗となるため、想像もつかないような天文学的な数のパターンを作れます。
256bitと比較すると少なめですが、64bitでも「1844京6744兆737億955万1616個」のパターンを作成可能です。実用性の面で、256bitの鍵長を利用することが推奨されています。
現在最も暗号強度が高いといわれる鍵長はAES-256bitです。このAES-256bitの解読には、最高の計算速度を誇るコンピュータでも、数百兆年かかるとされています。
暗号化方式やアルゴリズムを変える
暗号強度の高さは、暗号化アルゴリズムにも依存します。暗号強度を高めるには、秘匿性の高い暗号化アルゴリズムを利用することが大切です。暗号化アルゴリズムによる強度の違いを「ワンタイムパッド」と「それ以外」に分けて説明します。
ワンタイムパッドは、平文以上の長さの乱数数字列を、使い捨てで用いて暗号文を作成する方式です。同じ暗号文は一回しか生成されないため、秘匿性が高くなっています。
また、強引に解読を試みても、全ての文字列の組み合わせが可能なため、元の平文を把握するのは不可能です。
一方、平文より短いキーを使う暗号化アルゴリズムを考えてみます。その場合、全体を暗号化するには同じ暗号化キーを反復して使うことになります。そのため暗号化後にも元文の数学的・統計的特徴がいくらか残り、そこから解読される可能性が出てきます。
そういったアルゴリズムを利用する際は、解読するためにかかる「計算量」をもとに暗号強度を評価します。
暗号強度を高める際の注意点
暗号強度は、高めすぎてもよくありません。鍵長が長くなりすぎると、暗号化・復号にも時間がかかるため、実用性が低くなります。また、暗号強度を高くするほど、それを処理する装置への負荷も大きくなる傾向があります。
暗号強度を高める時は、自社設備のリソースと必要なセキュリティレベルとのバランスをとりましょう。
正しい方法で暗号強度を高めましょう
暗号強度は、データの漏洩を防ぐために重要な要素です。その大きさは暗号化アルゴリズムや鍵の長さに依存します。実用性と強度のバランスを取るなら、256bitのものを利用しましょう。原理的に解読できないアルゴリズムなら、ワンタイムパッドがおすすめです。
自社設備のリソースも考慮して、適切な方法で暗号強度を高めましょう。