ここから話はセキュリティに切り替わった。
冒頭の30年の間に何が変わったか?といえば、あらゆるところに攻撃が仕掛けられるようになったことである(Photo19)。これに対してどう対応するか? デバイスに証明書をつける、という方式は既に破られている(Photo20)。ではアプリケーション側に鍵を持たせれば?というと、これも難しい(Photo21)。これはIoTでは大きな問題である。また、特に低コストのMCUでこれをいかに実現するかも鍵である(Photo22)。
これに向けてARMが新しく提供するのがARM v8-Mである。ただし現状はまだアーキテクチャのレベルの話で、具体的な製品(というか、IP)が現時点であるわけではない(Photo23)。
このARM v8-M、命令そのものも若干増加しているが、基本は32bitのThumb2ベースのままである。最大の違いはTrustZoneに対応したということだが、その実装は従来のCortex-A向けとはちょっと異なる(Photo24)。ARM v8-MでのTrustZoneの実装は、Cortex-Aの様な「Secureな回路ブロックが用意される」のではなく、「SecureなモードとNormalモードの2種類の動作モードをサポートする」形でものとなった(Photo25)。
この「TrustZoneモード」のメリットを示すとこんな形である(Photo26)。とにかくオーバーヘッドが少ない(公式な数字ではないが、Function Callでの遷移の場合10cycle未満で切り替えできるとされる)のが特徴で、またアプリケーションから見ると単にSecureなルーチンを呼ぶだけということで、高級言語を使ってのプログラミングも容易だし、Hypervisorが(原理上は)不要というのも大きい。
ただし、セキュアな通信を行う場合、鍵生成のためのTRNG(True Random Number Generator)や公開鍵暗号や共通鍵暗号に対応した暗号/復号処理が必須であり、これをCPUにやらせるのは負荷が大きい。このために新しく提供されるのがCryptoCellで、こちらはCortex-A用とCortex-M用の両方に提供される(Photo27)。
Copyright © ITmedia, Inc. All Rights Reserved.