ハードウェアセキュリティの最新動向
メモリの暗号化に、改ざんの検出とリプレイの防止を加える回路を考える。64バイトのキャッシュラインごとに、8バイトのMAC(改ざんを検出するための符号)と、書き込みのたびに増える8バイトのカウンタを主記憶に保存するとする。カウンタを守るための木の分は考えないとき、保護するデータの量に対して、余分に必要な記憶容量の割合はどれか。
- A12.5%
- B20%
- C25%
答えと解説を見る
正解:C. 25%
1ラインあたりの余分な情報は 8 + 8 = 16 バイトなので、16 ÷ 64 = 25% です。実際の方式では、カウンタそのものを書き換えられないように、カウンタをまとめて守る木(インテグリティツリー)も必要で、その分の容量がさらに増えます。容量だけでなく、データを1回読むたびにMACやカウンタ、木の節点も読む必要があり、遅延とメモリの帯域の負担が大きくなります。このため、大きなメモリを守るVM型のTEEの多くは、2020年代半ば時点で、完全なリプレイ防止の木を使わず、別の方法で完全性を守る設計をとっています。
- A. MACの8バイトだけを数えた値です(8 ÷ 64)。カウンタの分も必要です。
- B. 16 ÷ (64 + 16) で、データと余分な情報を合わせた全体に占める割合です。問われているのは、データの量に対する割合です。
- C. 正しい。(8 + 8) ÷ 64 = 25% です。