FIT ’09: Session 3P

[ 周波数領域での暗号モジュールの電力解析 ]
東北大。SASEBO使う。
対策としては、Masking (中間値をランダム化)、Hiding (相補式ロジックなどで電力を平均にしたり、ノイズ減を入れて消費電力をランダム化する)などがあるが、高コストだし、カスタムメイドなチップが必要。
EMC なフィルタなんかを入れて対策することはできないか? それには強いスペクトルよりも、漏洩防止に有効なスペクトルがどこにあるのか、を探すことが重要。
質問 (岩井さん): スペクトルはどうやって決まっていると考えられる? チップがそもそも出すものとか、寄生容量とか。基板にアクセスされると容量とかをいじられる可能性があるが、そこはがっちり固めればいい(銀行なんかのシステムではそうなっている)。
質問 (日立の方): 動作周波数を変えた場合はどうなる? 動作周波数を変えてみたが、同じような結果になった。チップのパッケージをむいてやると、すごく高いスペクトルまで出るが、普通はそうでもないので、パッケージがすでに強烈にフィルタとして効いている。
[ AESのハードウェア実装に対するテンプレート攻撃 ]
東北大 take II.
リファレンスデバイスが手に入ると、デバイスの事前情報が手に入るので攻撃が簡単になる。これが template attack.
CPA だと 1200 波形必要だが、Template attack では 130 波形でいける!
ラウンド鍵でも、5000:2400 とか、まあ、とにかくすごいね…
暗号に依存しきった世界ですが、はたして大丈夫だろうか。
質問: テンプレートを作る HW と、対象はまったく同じ HW? 同一基板です。
[ AES の実装方法の違いによる CPA の比較 ]
ハミング距離モデルとハミング重みモデルでは、HW実装の場合、前者が強いが、SW実装だと、逆になるっぽい。いずれにしてもソフトウェア実装の方がデータがとりにくそう。
質問 (東北大のひと): SW実装の場合はSRAMを使うとデータがとりやすくなると思うんだけど、BlockRAM でやっている? あと、PowerPC なんかは、パイプラインとか分岐のほうでずれたりしていない? メモリは全部内部。分岐なんかでずれている可能性はある。1サイクルずれちゃうとだめなので、ちょっと考えないとだめっぽいですね。
[ GPGPU を用いた暗号攻撃 ]
AES に対する brute force attack.
メモリの問題で鍵空間に制約。限られた鍵空間であれば、Corei7の 12倍くらい。
でも、この実装はCPU-GPU とか GPU-GPU の通信がいらないので、たくさん GPU があればlinearに速くなる。
質問: AES の実装はどうなってる? 大きな S-BOX を使えば shiftRows が減って、速くなりそうですが。ShiftRows は LUT を使ってるので充分速いんだけど、メモリが小さいので大きな S-BOX は難しいです。
[ SASEBO-Rを使用した電磁波解析と電力解析の比較 ]
電磁波解析は周辺環境の影響を受けやすい。
先行研究では磁界プローブが使われているが、デバイス近傍以外でも電源まわりの電磁波がとれそうな気がするので、より安価な手法でできないかを検討する。
電力解析ではシャント抵抗のところで電圧を測り、電磁波解析ではシャント抵抗に導線を巻き付けて漏洩電磁波を測定してみた。
質問: 帯域制限をかけるとやりやすくなる、というのと、最初の、フィルタかけちゃうと見えなくなる、というのと違う気がするんだけどどうですか? 高周波成分を削って、下の帯域を取り出したことが効いていて、それは最初の発表とも矛盾しない結果だと思う。
質問: シャント抵抗のところ以外ではみていない? 抵抗の LSI 側のほうが、GND側よりいい感じだということがわかっている。抵抗のところで反射が起きていて、GND 側ではうまく拾えないのかもしれません。
質問 (座長): いまは線を巻いてやっているが、筐体の外部のような遠いところから拾えちゃう可能性は? 電源ラインは遠くまで伸びているので、そこで拾えるとすると脅威になりうる。
[ CryptMT の FPGA への実装 ]
eSTREAM phase 3 に残った暗号。
booter というのがあって、初期ベクトルと鍵で mother generator のシフトレジスタを初期化する。
Virtex-II Pro で 1800 スライスくらい?
スループットとしては 2GHz の Athlon64 よりちょっと速く、だいたい 3.9Gbps くらい。
質問: 高速化や省電力化で他のアーキテクチャで実装する、ということは考えられる? CryptMT については、いまは仕様書をほぼそのままでやっているが、シフトレジスタを減らしたりとか、そういうところを詰めていきたい。Trivium とか (いま 40LUT でやっている!) を並列化することは、まだこれからの課題。

コメントを残す