はじめに
同問題の設問1の解説をGemini先生に教えてもらったので、備忘として続きも載せようと思います。
素人による解説なので、厳密には間違っていることもあるかと思われます。
設問
CRYPTRECが作成し、IPAが公開している"TLS 暗号設定ガイドライン"の"4.セキュリティ要求設定"に記載されている鍵交換プロトコルに推奨される基準を問う問題です。
具体的にはECDHEとDHEという鍵交換プロトコルの基準が聞かれており、それぞれ何ビットセキュリティ以上を満たすためにどのような強度が求められているかという問いです。
答え
ECDHE 128ビットセキュリティ以上を満たす曲線
DHE 112ビットセキュリティ以上を満たす鍵長
解説
"TLS 暗号設定ガイドライン"の"4.セキュリティ要求設定"に答えが載っていたという問題ではありますが、以下の前提知識があれば答えが導き出せる問題です。
しかし、SC試験を合格して業務で使う方は上記の文書は読んでおいた方が良さそうです。時間がない方はチェックリストもあるのでそちらに目を通すだけでも良いと思います。
ビットセキュリティについて
暗号化方式の違いによるセキュリティ強度は単純には比較できません。そのため、ビットセキュリティは鍵の強度を表すもので、その暗号を総当り攻撃で解読するために必要な計算量を2のn乗で表したものです。例えば、128ビットセキュリティは2の128乗回計算しないと暗号が解けないということになります。
なので、ビットセキュリティは大きい方がセキュリティ強度は高いと言えます。
比較的古い方式だと、鍵長が長い割にはセキュリティ強度が低いので割に合いません。(鍵長が長いと計算コストもかかるため)
ECDHEとDHE
どちらもPFS(前方秘匿性)を持った鍵交換方式です。PFSは秘密鍵が漏洩した時点より過去の情報が解読できないようにできる特性のことを言います。
DHEは離散対数を、ECDHEは楕円曲線離散対数を使ってセキュリティ強度を保ちます。 細かい解説は詳しいサイトに任せるとして、ECDHEのECは"Elliptic Curve"であり、"楕円曲線"です。DHEの楕円曲線を使った新バージョンだと覚えています。
この時点で、選択肢はアとウに絞られます。
新バージョンなので、鍵長が短くてもセキュリティ強度がDHEよりも高いのだ、と記憶しています。
実際にECDHEでは224ビットの鍵長で済むものが、DHEだと2048ビットの鍵長が必要だそうです。
では、答えは「ア」と「ウ」どっちなんだ、ということなのですが、現状DHEは112ビットセキュリティ、ECDHEは128ビットセキュリティであることは記憶しておくしかなさそうです。
ポイントとしては、ECDHEの方が高いセキュリティ強度を基準にしても、計算コストが低いため導入しやすいという点です。もし、128ビットセキュリティのDHEを基準にしてしまうと、鍵長は3000ビットになってしまい、DHEの方は容易には高い基準を設定できないということになります。なので、将来、コンピュータの性能が上がってきたときに、DHEの方は112ビットセキュリティのまま引き上げることはなく、DHEの使用が非推奨となり、ECDHEの128ビットセキュリティが引き上げられていく可能性がある、と記憶しておく必要がありそうです。