写真1 「Cyclone Ⅲ LS」
米Altera社は2009年6月、同社の低消費電力FPGAファミリ「Cyclone Ⅲ」に、セキュリティ機能を備えたFPGAの新ファミリ「Cyclone Ⅲ LS」を追加したと発表した(写真1)。名称の「L」はLow Power、すなわち低消費電力を、「S」はSecurity(セキュリティ)を意味している。台湾TSMC社(Taiwan Semiconductor Manufacturing Company)の60nm LP(Low Power)プロセスで製造する。軍用機器や産業機器など、高い情報セキュリティ性能が要求される分野をターゲットとしており、すでに出荷を開始している。価格は要問い合わせ。
従来のCyclone Ⅲでは、最大12万個のロジックエレメントを搭載していたが、Cyclone Ⅲ LSは最大20万個のロジックエレメントを持つ。また、最大8.2Mビットのメモリーや18×18換算で最大396個の乗算器も搭載している。一方で、85℃におけるスタティック(電源は入っているが、動作していない状態)消費電力は0.25W未満に抑えられている。
Cyclone Ⅲ LSに搭載されているセキュリティ機能には、不正操作の防止機能(「アンチ・タンパー」)、設計データの保護機能、チップ内部における機能ブロックや配置配線の場所を限定する機能(「デザイン・セパレーション」)がある。これらのセキュリティ機能は、チップレベル、IP(Intellectual Property)/リファレンスデザインレベル、開発ソフトウエアレベルの3つで包括的に提供される。
アンチ・タンパーには、不正アクセスの防止機能やデータ改ざんの防止機能が含まれ、主にチップレベルで実現されている。具体的な機能としては、まずJTAGポートの保護が挙げられる。JTAGポートはI/O端子のテスト用という本来の使い方以外に、チップ内部のコンフィギュレーションを行うための端子、あるいは内部のノードのモニター用端子として使われることもある。このため、一歩間違えるとチップに対する不正アクセスの手段として使われる可能性が高いものだとも言える。Cyclone Ⅲ LSのアンチ・タンパーでは、JTAGのコマンドを拡張し、コンフィギュレーションの処理が始まったらアクセス不能にするといった命令を用意することで、不正を防ぐ仕組みになっている。
また、Cyclone Ⅲ LS全体の動作クロックとは別に、同FPGA自身の監視用回路を動かすための内部クロック源を備えている。このクロック源は割り込み禁止となっており、システム全体の電源が落ちていても、不正アクセスや不正動作がないかどうかを常時モニターすることができる。さらに、コンフィギュレーション条件の変化を検出するCRC(Cyclical Redundancy Check)機能も搭載している。同機能は従来品にも搭載されていたが、SRAMベースのFPGAで起きるソフトエラーを検出するために使われており、特にセキュリティ向けの機能としては用いられていなかった。Cyclone Ⅲ LSでは、これをセキュリティ機能として積極的に活用する。
これらに加えて、不正操作を検知したらデバイスのコンフィギュレーション情報を無効にする(クリアにする)「ゼロイゼーション」という機能も備えている。Altera社は、ゼロイゼーションを行った後の処理シーケンスなどをリファレンスデザインとして提供することを予定している。これがIP/リファレンスデザインレベルで実現されるセキュリティ機能に当たるという。
一方、設計データの保護やデザイン・セパレーションは、開発ソフトウエアレベルで実現されるセキュリティ機能である。設計データの保護については、Cyclone Ⅲ LSとコンフィギュレーション用フラッシュメモリーとの間において、暗号化したデータをやりとりすることで実現している。コンフィギュレーションデータはAES方式で暗号化され、鍵長は256ビットとなっている。
デザイン・セパレーションでは、機能ブロックをチップ内部のある特定の領域に完全に隔離して設計することができる。また、機能ブロックだけではなく、配置配線に使う領域や使用するI/O端子も固定することができる。さらに、各ブロックの周囲に「ホワイトスペース」という分離用の領域を設定することで、機能ブロックも配置配線もほかのブロックと物理的に隔離することが可能となっている。日本アルテラの担当者は、「このデザイン・アイソレーションにより、例えば、単一チップで冗長構成のシステムを組んだ場合などに、より信頼性を高めることができる。経時変化による故障やSEU(Single Event Upset)への耐性を強化することが可能だ」と説明している。なお、デザイン・アイソレーションを利用して、ブロックや配線を隔離したり、ホワイトスペースを設けたりするということは、設計の自由度が低くなり、性能やロジックエレメントの使用効率の面で不利になるということには注意を要する。
Cyclone Ⅲ LSの開発ソフトウエアとしては、「Quartus Ⅱ 開発ソフトウェア・バージョン9.0 SP2」を利用することができる。同ソフトウエアは日本アルテラのウェブサイトからダウンロードすることが可能である。
(村尾 麻悠子)