セキュリティ実装で重みが増す"LSI全体アーキテクチャ設計"―― LSI設計の次のチャレンジを探る

森岡 澄夫

tag: 組み込み 半導体

コラム 2012年7月13日

 本稿では,セキュリティ処理の実装における諸課題を紹介します.表題のとおりLSIの専用回路実装がおもな対象ですが,ソフトウェア実装にも,あるいはネットワーク・システムにも共通する課題ばかりです.

 情報機器におけるセキュリティの重要性は,今さら説明するまでもないでしょう.情報漏えいやアタックなど,セキュリティ事故の報道は日常茶飯事であり,社会的な関心も高まっています.筆者が属するシステムLSIやIPコアなどの回路設計分野においても,セキュリティ実装の仕事にかかわる機会が増えています.セキュリティ回路は,無線/有線通信機器,ICカード,光ディスクやHDD(ハード・ディスク装置)などの記録媒体,映像機器,ゲーム機など,身の回りの至るところで使われているからです(図1).

 

図1 頻繁に行われているセキュリティ処理の専用回路化



 

 

 

 セキュリティにおいては,LSIの専用回路による処理系実装のニーズが,他の処理と比べて高いようです.一つの理由は,高速化への要求が強いからです.例えば認証に多用される公開鍵暗号は計算量が大きく,今でもまだ1チップ・マイコンや組み込み向けのプロセッサで処理するには無理があります.高速データの暗号化/復号化に用いられる共通鍵暗号では,非整数の特殊数体系(有限体など)上で演算を行います.いずれも,専用回路化しなければ実用速度を達成できない場合が多々あります.また,回路化のもう一つの理由は,攻撃者に改ざんされるリスクがソフトウェア実装よりも小さい(と信じられている)からです.

 

●次世代の情報通信システムではセキュリティの回路実装が重要に

 今後,世の中に登場するであろう情報通信(ICT:Information and Communication Technology)システムは「ビッグ・データ」,「M2M(Machine-to-Machine)」,「CPS(Cyber Physical System)」など,さまざまな言葉で表現されています.いずれにせよ,大きな方向性として,フィールドにある多数の端末や組み込み機器,センサなどがネットワークを介してクラウド環境につながり,多種多様な広域情報が迅速に得られる世界へ向かうことでしょう.

 こうしたシステムは,認証や情報保護,情報改ざん防止,プライバシ保護などがきちんと整備されない限り,とても安心して使えません(図2).セキュリティ技術は,将来の情報通信システムの発展・普及を左右しかねません.

 

図2 今後のシステムではセキュリティが大きな課題に

 

 

 ここで,セキュリティ処理の重要な特性として,「システムの一部だけに導入・実装したところで,ほとんど機能しない」という点が挙げられます.例えば,センサ・モジュールとクラウド・サーバの間で相互認証や暗号化通信を行いたければ,一方ではなく両方にセキュリティ処理系を載せなければなりません.すなわち,情報の提供元と利用先の両方に処理系を搭載する必要があります.

 従って,将来,システムの上でセキュリティを確立するには,クラウドやネットワークのみならず,組み込み機器やセンサに至るまで,抜かりなくセキュリティ処理系を実装する必要があります.前述のようにフィールド側では計算能力や使用可能電力が限られた装置や端末が多数あるので,ソフトウェア実装に加えて,回路実装の技術が今以上に重要になることでしょう.もちろん,クラウド・サーバなどでも,多数の処理をさばくアクセラレーション(高速化)のために回路実装は有効です.

 

●セキュリティ実装はLSI全体設計に関与

 セキュリティ処理というと「ああ,暗号のことか」と思うかもしれません.筆者が量産民生機器向けセキュリティ回路の開発経験を人に話そうとすると,AES(Advanced Encryption Standard)やRSAなどの暗号IPコアをオンチップ・バスにつないだ話,と思われることが少なくありません.しかし,セキュリティにおいて暗号はプリミティブ演算の一つに過ぎません(図3).

 

図3 セキュリティ処理 ≠ 暗号演算

 

 

 その雰囲気をつかんでいただくために,少し細かくなりますが例を示します.図4を見てください.

 

図4 機器間通信の暗号化一つとっても,単純ではない

 

 

 通信元と通信先の双方にLSIがあり,暗号化通信を行う場合を考えます.暗号化そのものはAESなどのIPコアを使えば実現可能で,特別難しいことではありません.

 むしろ問題となるのは,暗号化に使う秘密鍵をどのような方法で共有するかです.最も簡単な方法として,秘密鍵の値を決め打ちにしてしまい,LSI内部回路に埋め込むことが考えられます.しかしそれでは,その鍵を知らない他のLSIと通信ができなくなったり,万一秘密鍵が発覚した場合,市場に投入済みの全LSIが使えなくなったりする問題が生じます.このため,乱数を使って動的に鍵を決定・交換する方法を導入したり,LSIに固有IDを与えたりします.それでもなお,電源ONのたびに同じ乱数列が生成されたりすると,リプレイ・アタック(LSIの端子を盗聴・記録しておき,それを模倣するチップを作る)で破られかねません.つまり,暗号だけでなく,乱数生成や乱数シード管理,鍵交換プロトコルなどの処理を追加して連携動作させなければなりません.

 こうしたアルゴリズムだけでなく,回路の物理的実装や開発マネージメントも問題になってきます.例えば秘密鍵,乱数シード,CPUファームウェアなどを無防備に外付けのフラッシュ・メモリに置くと,そこがセキュリティ・ホールになります.これをプロテクトするには,LSI全体アーキテクチャやパッケージ方式(完全ではないが,System in Packageなら外付けチップよりはマシ)を変えてもらうか,または上記の秘密鍵などにさらに暗号化を施すしかありません.また,日本ではまれとは言え,LSI設計・製造会社から秘密鍵を含む回路設計情報がリークしたり,悪質な場合はバックドアを仕込まれたりする可能性もあります.

 以上に記した項目だけでも随分と面倒ですが,セキュリティ実装としてはまだ「検討して当たり前」の範ちゅうです.実際の製品開発ではさらに多数の検討項目があります.

 

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日