ウイルスやワームによる攻撃は社会問題となっている. これらの攻撃の多くは,バッファオーバーフロー等を 利用して不正な命令列を実行させるものである.
不正な命令列の実行を防ぐ方法として,メモリの暗号化や命令 の実行時に認証を行なうといった手法が提案されている.し かし,これらの方法はメモリアクセス遅延の増大による性能低下が大きい.
一方,プロセッサごとに異なる命令セットを使い多様性を持 たせるという方法がある.個々のプロセッサごとに命令セット が変わっていれば,攻撃者は対象の命令セットに対する知識が なければ攻撃がしにくくなる.このような命令セットをランダ ム化する手法の提案としてKcらは,命令列に鍵をXORす る手法と命令コードのビットを転置する手法を提案した.この 手法は,命令長が固定長の命令セットにのみ有効である.
我々は,命令セットにある符号化の自由度を利用した命令セッ トの多様化手法を提案する.また,その実装案として組込 みシステムへの適用を考えFPGA上に実装を行なった.本手 法とKcらの提案した既存手法との比較を行ない,既存手法と 本手法のコスト,性能のオーバヘッドは少ないことがわかった.