(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023061388
(43)【公開日】2023-05-01
(54)【発明の名称】半導体装置
(51)【国際特許分類】
G06F 21/60 20130101AFI20230424BHJP
G06F 21/57 20130101ALI20230424BHJP
【FI】
G06F21/60 320
G06F21/60 360
G06F21/57 350
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2022166865
(22)【出願日】2022-10-18
(31)【優先権主張番号】21203520
(32)【優先日】2021-10-19
(33)【優先権主張国・地域又は機関】EP
(71)【出願人】
【識別番号】302062931
【氏名又は名称】ルネサスエレクトロニクス株式会社
(74)【代理人】
【識別番号】110002066
【氏名又は名称】弁理士法人筒井国際特許事務所
(72)【発明者】
【氏名】モハメド・ソビ
(57)【要約】 (修正有)
【課題】安全性とセキュリティの両方の要件を満たす半導体装置及び切替方法を提供する。
【解決手段】半導体装置は、安全プロセッサ、メモリ及びセキュア計算モジュールを備える。セキュア計算モジュールは、セキュアプロセッサ、データを暗号化及び復号するための第1、第2の暗号ユニット及び第1、第2のデータ転送ユニットを備える。第1の暗号ユニット及び第1のデータ転送ユニットは、第1の暗号データ処理システムを提供し、第2の暗号ユニット及び第2のデータ転送ユニットは、第2の暗号データ処理システムを提供する。半導体装置はスイッチを備え、セキュア計算モジュールは、第1、第2の暗号ユニットを選択的に結合及び分離するためのセレクタ回路をさらに備える。第1のモードでは第1、第2の暗号データ処理システムは分離され互いに独立して動作可能であり、第2のモードでは結合され、ハードウェア冗長性を提供するために同時に動作可能である。
【選択図】
図3
【特許請求の範囲】
【請求項1】
半導体装置であって、
安全プロセッサと、
メモリと、
セキュア計算モジュールと、
を備え、
前記セキュア計算モジュールは、
セキュアプロセッサと、
前記メモリ内のデータを暗号化および復号化するための第1および第2の暗号ユニット と、
前記メモリと前記第1および第2の暗号ユニットとの間でデータをそれぞれ転送するための第1および第2のデータ転送ユニットと、
を備え、
前記第1の暗号ユニットおよび前記第1のデータ転送ユニットは第1の暗号データ処理システムを提供し、前記第2の暗号ユニットおよび前記第2のデータ転送ユニットは第2の暗号データ処理システムを提供し、
前記半導体装置は、スイッチをさらに備え、
前記セキュア計算モジュールは、前記スイッチからの制御信号に応答して、前記第1および第2の暗号データ処理システムを選択的に結合および分離するためのセレクタ回路をさらに備え、
第1のモードでは、前記第1および第2の暗号データ処理システムは分離され、互いに独立して動作可能であり、
第2のモードでは、前記第1および第2の暗号データ処理システムは結合され、ハードウェア冗長性を提供するために同時に動作可能である、
半導体装置。
【請求項2】
前記第1のモードでは、前記第1の暗号データ処理システムは、前記メモリに格納された第1のデータを処理するように動作可能であり、前記第2の暗号データ処理システムは、前記メモリに格納された第2のデータを同時に処理するように動作可能であり、
前記第2のモードでは、前記第1および第2の暗号データ処理システムは、前記第1および第2のデータを順次処理するように動作可能である、請求項1に記載の半導体装置。
【請求項3】
前記安全プロセッサは、暗号化された安全データの受信または送信に応答して、要求を前記スイッチに送信して、前記セキュア計算モジュールを前記第1のモードから前記第2のモードに切り替える、請求項2に記載の半導体装置。
【請求項4】
前記スイッチは、状態モニタを備え、
前記セレクタ回路は、一組のセレクタを備え、
前記一組のセレクタ内の各セレクタは、それぞれの状態を前記状態モニタに送信するように構成され、前記スイッチは、前記一組のセレクタ内の前記各セレクタのそれぞれの前記状態を決定するように構成され、前記状態が正しい状態であると決定すると、前記第1および第2のモードの間で切り替えるように構成される、請求項1に記載の半導体装置。
【請求項5】
前記セキュア計算モジュールは、署名エンジンをさらに備える、請求項2に記載の半導体装置。
【請求項6】
前記署名エンジンは、第1のハッシュエンジンであり、前記セキュア計算モジュールは、第2の署名エンジンをさらに備え、
前記第1の暗号データ処理システムおよび前記第1の署名エンジンは、ブートプロセスにおいて第1のコードブロックを処理するように動作可能であり、
前記第2の暗号データ処理システムおよび前記第2の署名エンジンは、前記ブートプロセス中に第2のコードブロックを処理するように動作可能である、請求項5に記載の半導体装置。
【請求項7】
バスからデータを送受信するための通信コントローラをさらに備え、
前記通信コントローラは、
データを受信し、前記メモリに格納し、
前記メモリからデータを検索し、送信するように動作可能である、請求項1に記載の半導体装置。
【請求項8】
前記スイッチは、
スケジューラと、
タイマと、
を備え、
前記スケジューラは、
前記タイマが予め定義した第1の値に到達したことに応答して、前記セキュア計算モジュールを、前記第1のモードから前記第2のモードに切り替え、
前記タイマが予め定義した第2の値に到達したことに応答して、前記セキュア計算モジュールを、前記第2のモードから前記第1のモードに切り替える、請求項1に記載の半導体装置。
【請求項9】
エラーモジュールをさらに備え、
前記スイッチは、前記セレクタ回路の前記一組のセレクタの状態をモニタし、前記一組のセレクタに誤った状態となっていると決定した前記スイッチに応答して、前記エラーモジュールにエラー信号を送信する、請求項1に記載の半導体装置。
【請求項10】
前記ハードウェア冗長性は、ASILレベルDをサポートする、請求項1に記載の半導体装置。
【請求項11】
前記半導体装置は、マイクロコントローラまたはシステムオンチップである、請求項1に記載の半導体装置。
【請求項12】
車両であって、
バスと、
前記バスを介して通信するように構成され、それぞれが請求項1に記載の半導体装置を備える少なくとも2つのノードと、
を備える、
車両。
【請求項13】
切り替え方法であって、
第1および第2の暗号データ処理システムを選択的に結合および分離し、前記第1の暗号データ処理システムは第1の暗号ユニットおよび第1のデータ転送ユニットを備え、前記第2の暗号データ処理システムは第2の暗号ユニットおよび第2のデータ転送ユニットを備え、
第1のモードでは、前記第1および第2の暗号データ処理システムは分離され、互いに独立して動作可能であり、
第2のモードでは、前記第1および第2の暗号データ処理システムが結合され、ハードウェア冗長性を提供するために同時に動作可能である、
切り替え方法。
【請求項14】
安全プロセッサからの要求に応答して、前記第1および第2の暗号データ処理システムを結合し、
その後に、前記第1および第2の暗号データ処理システムを分離する、請求項13に記載の切り替え方法。
【請求項15】
タイマ値が所定の閾値に到達したことに応答して、前記第1および第2の暗号データ処理システムを結合し、
その後に、前記第1および第2の暗号データ処理システムを分離する、請求項13に記載の切り替え方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は半導体装置に関する。
【背景技術】
【0002】
電子制御ユニット (Electrical Cоntrоl Unit:ECU)は、パワートレイン、シャシー、ボディ、積極的安全性、運転補助、乗客快適性、およびインフォテインメントなどのような幅広い自動車分野の範囲において自動車にますます導入されている。車両に組み込まれるECUの数が増えているだけでなく、これらのユニットはこれまで以上に内部接続された状態になっている。
【0003】
ECUは、機能安全規格に準拠するように期待されている。例えば、自動車の電気および電子システムは、ISO26262規格に準拠することを要する。さらに、ネットワーク化されたコンピュータシステムと同様に、自動車の電子システムは、外部の悪意のあるエンティティによる攻撃に対して脆弱であるので、当該システムを安全にするための対策、すなわち、セキュリティ要件を満たすための対策も備えるべきである。
【0004】
したがって、安全性とセキュリティの両方の要件を満たすシステムに注目されており、これらの要件を満たすシステムの例は、特許文献1に見出すことができ、それは参照により本明細書に組み込まれている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】米国特許出願公開第2020/0117814号
【発明の概要】
【0006】
本発明の第1の態様によれば、半導体装置が提供される。半導体装置は、セキュアプロセッサ、メモリ、およびセキュア計算モジュールを備える。セキュア計算モジュールは、セキュアプロセッサと、メモリ内のデータを暗号化および復号化するための第1および第2の暗号ユニットと、メモリと第1および第2の暗号ユニットとの間でそれぞれデータを転送するための第1および第2のデータ転送ユニットとを備える。第1の暗号ユニットおよび第1のデータ転送ユニットは、第1の暗号データ処理システムを提供し、第2の暗号ユニットおよび第2のデータ転送ユニットは第2の暗号データ処理システムを提供する。半導体装置はスイッチをさらに備え、セキュア計算モジュールは、スイッチからの制御信号に応答して、第1および第2の暗号データ処理システムを選択的に結合(連結)および分離するためのセレクタ回路をさらに備え、第1のモードでは第1および第2の暗号データ処理システムは分離され、互いに独立して動作可能であるように、および、第2のモードでは第1および第2の暗号データ処理システムは結合され、ハードウェア冗長性を提供するために同時に動作可能であるようにしている。
【0007】
したがって、データ転送ユニットと暗号ユニットは、セキュアな非安全関連データまたは認証のみのデータを比較的高いスループットで処理できる第1のモードと、セキュアな安全関連データを比較的低いスループットで処理できる第2のモードとの間で選択的に切り替えることができる。
【0008】
第1および第2の暗号データ処理システムは、時変エラー検出のために動作可能であってもよい。第1および第2の暗号データ処理システムは、DCLS(Dual Cоre Lоck Step)で動作可能であってもよい。
【0009】
セキュア計算モジュールは、安全プロセッサおよびメモリと接続するためのインタフェースを備え、そのインタフェースは、ハードウェア冗長性を提供するために同時に動作可能な第1および第2のインタフェース回路を備える。第1および第2のインタフェース回路は、DCLS内に配置されてもよい。
【0010】
安全プロセッサは、ハードウェア冗長性を提供するために同時に動作可能な第1および第2のコアを備えてもよい。第1および第2のコアは、時変エラー検出のために配置されてもよい。第1および第2のコアは、DCLS内に配置されてもよい。
【0011】
セキュア計算モジュールは、HSM(Hardware Security Mоdule)を備えてもよい。第1および第2の暗号ユニットはそれぞれ第1および第2のAES(Advanced Encryption Standard)ユニットを備えても良い。第1および第2の暗号ユニットはそれぞれ第1および第2のSM4ブロック暗号ユニットを備えてもよい。第1および第2のデータ転送ユニットはそれぞれ第1および第2のDMA(Direct Access Memоry)コントローラを備えてもよい。第1および第2の暗号ユニットは、冗長性を組み込んだ暗号ユニットを提供するように結合されると、冗長性を組み込んだ暗号ユニットがAESガロア/カウンタモード(AES-GCM)動作をサポートできるように構成されてもよい。
【0012】
第1のモードでは、第1の暗号データ処理システムは、メモリに格納された第1のデータを処理するように動作可能であってもよく、第2の暗号データ処理システムは、メモリに格納された第2の異なるデータを同時に処理するように動作可能である。第2のモードでは、第1および第2の暗号データ処理システムは、第1および第2のデータを順次処理するように動作可能であってもよい。
【0013】
安全プロセッサは、暗号化された安全データの受信または送信に応答して、セキュア計算モジュールを第1のモードから第2のモードに切り替えさせるために要求をスイッチに送信するように構成されてもよい。
【0014】
スイッチは状態モニタを備えてもよく、セレクタ回路は一組のセレクタを備えても良い。一組のセレクタ内の各セレクタは、その状態を状態モニタに伝達するように構成されてもよい。スイッチは、一組のセレクタ内のセレクタのそれぞれの状態を決定するように、かつ、その状態がそれぞれの正しい状態にあると決定すると、状態を切り替えるように構成されてもよい。
【0015】
セキュア計算モジュールは暗号署名またはハッシュエンジン(本明細書では単に「署名エンジン」と呼ぶ)をさらに備えてもよい。署名エンジンは、第1の署名エンジンであってもよく、セキュア計算モジュールは第2の署名エンジンをさらに備えてもよい。第1の暗号データ処理システムおよび第1の署名エンジンは、起動プロセスで第1のコードブロックを処理するように動作可能であり、第2の暗号データ処理システムおよび第2の署名エンジンは、起動プロセス中に第2のコードブロックを処理するように動作可能である。
【0016】
半導体装置は、バスからデータを送受信するための通信コントローラをさらに備えてもよい。通信コントローラは、データを受信し、受信したデータをメモリに格納し、メモリから送信データを検索し、送信データを送信するように動作可能であってもよい。通信コントローラはイーサネットコントローラであってもよい。通信コントローラは、CAN(Cоntrоller Area Netwоrk)コントローラであってもよい。CANコントローラは、CAN2.0および/またはCAN FD規格に対して動作可能であってもよい。通信コントローラはFlexRayコントローラであってもよい。
【0017】
スイッチは、スケジューラおよびタイマを備えてもよい。スケジューラは、タイマが第1の事前定義の値T1に到達したことに応答して、セキュア計算モジュールを第1のモードから第2のモードに切り替えるように構成されてもよく、タイマが第2の事前定義の値T2に到達したことに応答して、セキュア計算モジュールを第2のモードから第1のモードに切り替えるように構成されてもよい。
【0018】
半導体装置は、エラーモジュールをさらに備えてもよい。スイッチは、セレクタ回路内のセレクタの状態をモニタするように構成されてもよく、所与のセレクタに応答または所与のセレクタがエラー状態にあると判断したスイッチに応答して、所与のセレクタおよび/またはスイッチがエラー信号をエラーモジュールに送信するように構成されてもよい。
【0019】
半導体装置のハードウェア冗長性は、ASIL(Autоmоtive Safety Integrity Level)のレベルDをサポートするのに十分であることが望ましい。
【0020】
半導体装置は、マイクロコントローラまたはSоC(System оn Chip)であってもよい。
【0021】
本発明の第2の態様によれば、通信バスと、通信バスを介して通信するように構成された少なくとも2つのノードとを備える動力車などの車両が提供され、各ノードは第1の態様の半導体装置を備える。
【0022】
動力車は、オートバイ、自動車(「乗用車」と呼ばれることもある)、マイクロバス、バス、トラック、または大型トラックであってもよい。動力車は、内燃機関および/または1つまたは複数の電動機によって動力を供給されてもよい。
【0023】
本発明の第3の態様によれば、切り替え方法が提供される。この方法は、第1および第2の暗号データ処理システムを選択的に結合および分離することを含む。第1の暗号データ処理システムは第1の暗号ユニットと第1のデータ転送ユニットを備えてもよいし、第2の暗号データ処理システムは第2の暗号ユニットと第2のデータ転送ユニットを備えても良い。第1のモードでは第1および第2の暗号データ処理システムは分離され、互いに独立して動作可能であり、第2のモードでは第1および第2の暗号データ処理システムは結合され、ハードウェア冗長性を提供するように同時に動作可能である。
【0024】
この方法は、安全プロセッサからの要求に応じて、第1および第2の暗号データ処理システムを結合し、その後、第1および第2の暗号データ処理システムを分離することを含んでもよい。第1および第2の暗号データ処理システムの分離は、一組のデータの処理を終了することに応答していてもよい。第1および第2の暗号データ処理システムの分離は、安全プロセッサからの別の要求に応答していてもよい。
【0025】
この方法は、タイマ値が所定のタイマ値閾値に到達したことに応答して、第1および第2の暗号データ処理システムを結合し、その後、第1および第2の暗号データ処理システムを分離することを含んでもよい。第1および第2の暗号データ処理システムの分離は、タイマ値が別の所定のタイマ値閾値に到達することに応答していてもよい。
【図面の簡単な説明】
【0026】
本発明の或る実施形態を例として添付の図面を参照して説明する。
【
図1】半導体装置の第1の例の概略ブロック図である。
【
図2】半導体装置の第2の例の概略ブロック図である。
【
図3】HSMとSPSSとを含む半導体装置の概略ブロック図である。
【
図4】性能モードと安全モードとの間の切り替えを示すタイミング図である。
【
図5】性能モードと安全モードとの間で動的に切り替えることなく、受信した非安全関連セキュアデータ、受信した安全関連セキュアデータ、送信される非安全関連セキュアデータ、および送信される安全関連データの処理を比較例として示すタイミング図である。
【
図6】性能モードと安全モードとの間で動的に切り替えることによって、受信した非安全関連セキュアデータ、受信した安全関連セキュアデータ、送信される非安全関連セキュアデータ、および送信される安全関連セキュアデータの処理を示すタイミング図である。
【
図7】
図3に示したHSMとSPSSとの概略ブロック図である。
【
図8】
図3に示したHSMとSPSSとの動作方法のプロセスフロー図である。
【
図8A】
図3に示したHSMとSPSSとの動作方法のプロセスフロー図である。
【
図8B】
図3に示したHSMとSPSSとの動作方法のプロセスフロー図である。
【
図9】性能モードと安全モードとの間で自動的な切り替えを示す概略図である。
【
図10】より高速なセキュアブートを可能にする2つのハッシュエンジンを有する半導体装置を示すブロック図である。
【
図11】SPSSを使用して性能モードと安全モードとの間で切り替え可能である半導体装置を含む自動車の概略図である。
【発明を実施するための形態】
【0027】
以下の説明において、同様な部分には同様な符号を付している。
【0028】
マイクロコントローラとSоCは、とりわけ2つの特定のユースケース、つまり、操作されたコードを検出するためのセキュアブートと、操作されたメッセージデータを検出するためのセキュア通信とを処理できることが望ましい。
【0029】
これまで、そのような手段では機能安全とセキュリティとは別々に扱われてきている。しかしながら、例えば、機能安全とセキュリティとの相反する要件を回避しようとする試み、および、手段の複雑さを軽減しようとする試みのような多くの様々な理由のため、機能安全とセキュリティとを組み合わせることが望ましい。
【0030】
これらに加えて、セキュリティに見られる特性である整合性(一貫性)は、機能安全において使用され得る。セキュアブートの場合、組み込みまたは外部フラッシュメモリ内のコードの整合性をチェックできる。コードの整合性をチェックすると、CRC(Cyclic Redundancy Check)を実行する必要がなくなるので、手段の起動時間を速めるのに役立ち得る。セキュア通信の場合、暗号に基づくCMAC(Cipher-based MAC)またはダイジェストタグによる暗号化などのセキュリティ手段を使用して、メッセージデータの整合性を確認することができる。これらの方法の1つにおいてメッセージデータの整合性をチェックすることは、追加の徹底した保護が不適切であることを意味する。
【0031】
セキュアブートとセキュア通信とのユースケースを処理するために、マイクロコントローラまたはSоCは、HSMの形式でセキュア計算モジュールを使用できる。
【0032】
図1を参照すると、安全関連アプリケーションで使用するための第1の半導体装置1が示されている。
【0033】
半導体装置1は、マイクロコントローラまたはSoCの形式をとり、セキュアブートおよびセキュア通信を処理するためのHSMの形式でセキュア計算モジュール2を含む。例えば、起動時に、半導体装置1は、組み込みフラッシュメモリ4または外部フラッシュメモリ5のいずれかからコード3を取得する。コード3の真偽は、署名またはハッシュ6(以下、単に「署名」として言及される)を使って確認できる。
【0034】
半導体装置1は、とりわけ、フラッシュメモリコントローラ7と、冗長性を組み込んだ安全プロセッサ8を含む。安全プロセッサ8には、例えば、DCLSまたは他の適切な構成で配置される2つのコア9、10を使用することによって、冗長性が提供される。
図1では、明確にするために、フリップフロップなどのDCLS回路は示されていない。半導体装置1はまた、RAM(Randоm Access Memоry)形式の共有メモリ11およびバスシステム12を含む。
【0035】
半導体装置1は、一般的な入出力モジュール(図示せず)、通信コントローラ(図示せず)、および他の周辺モジュール(図示せず)などの他の要素を備えるが、それらは明確性を助けるために
図1から省略されている。
【0036】
セキュア計算モジュール2には、セキュアキー(鍵)15をセキュア計算モジュール2に提供するために、例えばeFuseの形式でOTP(One Time Prоgrammable)読み出し専用不揮発性メモリ14が設けられる。セキュア計算モジュール2は、冗長性を組み込んだマスターインタフェース16、メモリ21を備えたセキュアプロセッサ20、割り込み23を生成できる割り込みコントローラ22、およびシステムクロック信号25を受信するローカルクロック24を含む。
【0037】
セキュア計算モジュール2は、冗長性を組み込んだDMAコントローラの形式で冗長性を組み込んだデータ転送ユニット27を含む。冗長性を組み込んだデータ転送ユニット27は、例えばDCLSを用いて適宜冗長化されている。マスターインタフェース16は、セキュアプロセッサ20および冗長性を組み込んだデータ転送ユニット27と直接通信することができる。冗長性を組み込んだデータ転送ユニット27は、冗長性を組み込んだAESユニットの形式で冗長性を組み込んだ暗号ユニット32と直接通信することができる。冗長性を組み込んだ暗号ユニット32は、例えばDCLSを使用して適宜冗長化され、AES-GCM動作をサポートすることができる。冗長性を組み込んだデータ転送ユニット27は、AES-GCM動作をサポートするために適宜冗長化される。AES-GCM動作中、メッセージデータは送信側 (図示せず) で暗号化され、受信側(図示せず)で復号化される。
【0038】
セキュアプロセッサ20、冗長性を組み込んだデータ転送ユニット27、および冗長性を組み込んだ暗号ユニット32は、モジュールバス40に接続される。セキュア計算モジュール2はまた、真の乱数および/または疑似乱数を生成できる乱数発生器(RNG)41、公開鍵暗号エンジン42、署名を生成するための署名エンジン43、インターバルタイマ45、および、モジュールバス40に接続されたWDT(Watch Dоg Timer)46とを含む。
【0039】
エンドツーエンド通信では、ドメインコントローラ、ゾーンサーバ、およびゲートウェイを使用する傾向がある。そのため、セキュア通信や高性能(すなわち、高スループット)な処理量が増加する可能性があり、AES-GCMモードでの安全関連セキュリティ通信量も増加する可能性がある。ただし、冗長性を緩和することはできないが、それにもかかわらず、冗長性を使用すると、一般に性能が半分になる。さらに、セキュアメッセージの割合(例えば、20%または30%未満)のみが安全性に関連しているかもしれない。
【0040】
性能を維持または増大することの1つの解決策は、ハードウェアアクセラレータを追加することである。
【0041】
図2を参照すると、第2の半導体装置1′が示されている。第2の半導体装置1′は、第1の半導体装置1(
図1)と同じであるが、それがセキュア計算モジュール2の外側に(非冗長性を組み込んだ)暗号ユニット47の形式で追加のハードウェアアクセラレータを含むという点で異なる。
【0042】
セキュア計算モジュール2の冗長性を組み込んだ部分32、27は、AES-GCMを利用するセキュア通信のために使用される一方、暗号ユニット47は、セキュア非安全関連通信のため、および、CMACなどの認証のみを必要とする安全通信のために使用される。ただし、このアプローチは、複雑さ、ダイのサイズ、およびコストを増加させる。
【0043】
動的なスイッチを有する半導体装置
図3を参照すると、第3の半導体装置101が示されている。
【0044】
半導体装置101は、マイクロコントローラまたはSoCの形式をとり、セキュアブートおよびセキュア通信を処理するためのHSMの形式でセキュア計算モジュール102を含む。例えば、起動時に、半導体装置101は、フラッシュメモリ104または外部フラッシュメモリ105のいずれかからコード103を取得する。コード103の正確さは、署名106を使用して確認することができる。
【0045】
半導体装置101は、とりわけ、フラッシュメモリコントローラ107および冗長性を組み込んだ安全プロセッサ108を含む。安全プロセッサ108は、安全関連アプリケーション(図示せず)を実行する。安全プロセッサ108は、自動車安全水準であるASILのレベルCまたはD(ISO26262によって定義される)までアプリケーションに対する安全要件を満たすように構成される。したがって、安全プロセッサ108には、例えば、DCLSまたは他の適切な時変配列で配置された2つのコア109、110(マスターコアとチェッカーコア)を使用することによって、冗長性が提供される。
図3では、明確にするために、フリップフロップなどのDCLS回路は示されていない。より低いレベルの安全要件が十分である場合、単純な冗長性やセルフチェックを備えたシングルコアなどのようにあまり厳しくない他のエラー検出構成を使用することができる。
【0046】
半導体装置101は、共有メモリ111およびバスシステム112も含む。半導体装置101は、汎用入出力モジュール(図示せず)、通信コントローラ113(
図11)および他の周辺モジュール(図示せず)などのような他の要素も備えるが、それらは、明確さを補助するために
図3から省略されている。
【0047】
セキュア計算モジュール102は、セキュアキー(鍵)115を提供するためのeFuse114の形式でOTPを設けている。
【0048】
セキュア計算モジュール102は、2つのインタフェース回路117、118(マスターインタフェース回路とチェッカーインタフェース回路)と冗長性を提供するための時変エラー検出回路(図示せず)とを備えた冗長性を組み込んだマスターインタフェース116、メモリ121を設けられた安全プロセッサ 120、割り込み123を生成できる割り込みコントローラ122、およびシ、システムクロック信号125を受信するローカルクロック124を含む。
【0049】
セキュア計算モジュール102は、第1および第2のデータ転送ユニット128、129と、冗長性を提供するための時変エラー検出回路(図示せず)とを備える冗長性能力を有するデータ転送ユニット(DTU)127を含む。第1および第2のデータ転送ユニット128、129は、それぞれのDMAコントローラの形式を取る。
【0050】
以下でより詳細に説明するように、第1および第2のデータ転送ユニット128、129は、セレクタ回路131を介して選択的に結合および分離されるように構成されているので、それらは同時に並列に動作することができ、例えばDCLSまたは他の適切な構成に基づいて時変冗長性を提供するように、または、これとは別に2つの独立した動作可能なデータ転送ユニット128、129を提供するようにしている。
【0051】
マスターインタフェース116は、セキュアプロセッサ120と直接通信することができ、および、直接的にまたはセレクタ回路131を介して、データ転送ユニット128、129と通信することができる。
【0052】
セキュア計算モジュール102はまた、時変冗長性を提供するための第1および第2の暗号ユニット133、134を備えた冗長性能力ある暗号ユニット132を含む。第1および第2の暗号ユニット133、134は、それぞれのAESユニットの形式をとる。
【0053】
以下でより詳細に説明するように、第1および第2のデータの第1および第2の暗号ユニット133、134は、第1のモード(性能モード)ではそれぞれの第1および第2の暗号データ処理システム136、137としてのそれぞれのデータ転送ユニット128、129とそれぞれ連動する2つの独立した動作可能な暗号ユニット133、134を提供するように別々に動作できるように、または、第2のモード(安全モード)では同時に並列に動作できるのでDCLSまたは他の適切な配置に基づいて時変冗長性を提供してAES-GCM動作(または認証された暗号の他の適切な形式)をサポートするように、構成されている。
【0054】
安全プロセッサ120、データ転送ユニット128、129、および冗長性を組み込んだ暗号ユニット132は、モジュールバス140に接続される。セキュア計算モジュール102は、真の乱数および/または疑似乱数を生成するための乱数生成器(RNG)141、公開鍵暗号エンジン142、署名エンジン143、インターバルタイマ145、モジュールバス140に接続されたWDT146をも含む。
【0055】
セレクタ回路131はセキュア計算モジュール102内に設けられて、転送ユニット128、129と暗号ユニット133、134との間のデータバス、マスターインタフェース116、およびモジュールバス140を制御する。
【0056】
セキュア計算モジュール102の外側では、モード間の切り替えは、第1および第2のスイッチ回路149、150および時変冗長性を提供するための回路(図示せず)を備えた冗長性を組み込むスイッチ(SPSS)148 を使用して、制御およびモニタされる。
【0057】
半導体装置101は、エラーモジュール152も含む。エラーモジュール152は、ハードウェア内に実装された安全機構からエラー信号を収集し、エラー信号および設定可能なルールのセットに基づいて、リセットの実行または装置101の外部へのエラー信号の送信などの措置を外部装置(図示せず)に対して取る。
【0058】
セレクタ回路131およびSPSS148を使用して、転送ユニット128、129および暗号ユニット133、134は、2つの別個の暗号データ処理システム136、137が互いに独立して動作して認証のみを必要とする非安全関連データまたは安全関連データを並行して処理できる性能モードと、AES-GCMなどの動作のセキュア安全関連モードをサポートするハードウェア冗長性が存在する安全モードとの間で(オンデマンドでまたは自動的に事前定義されたルールに基づいて)切り替えることができる。
【0059】
安全プロセッサ108は、オンデマンドで(すなわち、非同期的に)切り替えを要求することができる。あるいは、組み込まれたタイマ233(
図7)を備えたプログラマブルスケジューラ232(
図7)は、自動的な切り替え(すなわち、同期)を提供することができる。
【0060】
性能モードはデフォルトモードである。したがって、転送ユニット128、129および暗号ユニット133、134は通常、性能モードで動作し、必要に応じて安全モードに切り替え、ひとたび安全モードでの処理が完了すると性能モードに切り替わる。
【0061】
以下により詳細に説明するように、セレクタ回路131は、状態モニタを可能にするためにSPSS148にフィードバックを提供する。さらに、エラーモニタおよび通知を使用して、例えば、冗長性の目的および/または誤ったセレクタ状態を識別するためにエラーをエラーモジュール152に報告する。SPSS148は、例えば、転送ユニット128、129および暗号ユニット133、134による保留中のタスクが完了した後にセキュア計算モジュール102が準備したときにのみ切り替わるように構成されることが好ましい。
【0062】
以下でさらに詳細に説明するように、追加の署名エンジン144(
図9)を使用して冗長性を提供し、セキュアブートの促進を提供することができる。
【0063】
図4も参照すると、通信周期165において、受信したセキュアな非安全関連データ161、受信したセキュアな安全関連データ162、送信されるセキュアな非安全関連データ163、および送信されるセキュアな安全関連データ164を処理するために性能モードと安全モード153、154との間の切り替えが、示されている。
【0064】
セキュアな安全関連データ162を受信する前に、受信したセキュアな非安全関連データ161および送信されるセキュアな非安全関連データ163は、性能モード153ではセキュア計算モジュール102によって並行して処理される。セキュアな安全関連データ162が受信された場合、SPSS148は安全モード154への切り替えをトリガし、受信したセキュアな安全関連データ162は安全モード154で(より低いスループットで)セキュア計算モジュール102によって処理される。ひとたび完了すると、SPSS148は、安全プロセッサ108からの要求について知っている性能モード153にセキュア計算モジュール102を切り替え、さらに、受信したセキュア非安全関連データ161および送信されるセキュアな安全関連データ162は、セキュアな安全関連データ162が受信され、および/または、セキュアな非安全関連データ163が送信されるまで、性能モード153で並行に処理される。
【0065】
図5および
図6を参照すると、性能および安全モード153、154の間で動的な切り替えによって達成される性能の相対ゲイン(利得)が、持続時間T
cycleを有する通信周期165にわたって概略的に示されている。
【0066】
特に
図5を参照すると、第1の半導体装置1(
図1)によって提供される静的冗長性を使用して、セキュア計算モジュール2(
図1)は、すべての受信したセキュアな非安全関連データ161を処理し、送信されるセキュアな非安全関連データ163は、この場合、インターリーブ方式で順次処理される。次に、セキュア計算モジュール2(
図1)は、受信したセキュアな安全関連データ162を処理する。セキュア計算モジュール2(
図1) はさらに、受信したセキュアな非安全関連データ161を処理し続け、送信されるセキュアな非安全関連データ163は順次処理される。通信周期165で受信したおよび送信されるデータ161、162、163、164を処理するためにセキュア計算モジュール2(
図1)によってかかった時間は、T
staticであり、ここでT
static>T
cycleである。
【0067】
特に
図6を参照すると、動的な冗長性を使用して、受信したセキュアな非安全関連データ161および送信されるセキュアな非安全関連データ163は、性能モード153においてセキュア計算モジュール102(
図3)によって並行に処理される。したがって、受信したおよび送信されるデータ161、162、163、164を通信周期165で処理するためにセキュア計算モジュール102(
図3)によってかかった時間は、T
dynamic<T
staticである。
【0068】
図7を参照すると、セキュア計算モジュール102およびSPSS148がより詳細に示されている。
【0069】
先に説明したように、マスターインタフェース116、データ転送ユニット128、129、暗号ユニット133、134、およびSPSS148には、冗長性提供の一部としてエラー検出回路が設けられている。特に、マスターインタフェース116には、DCLS原理に基づいて別々のパスの異なるポイントで時間遅延(例えば、2クロックサイクル)が導入された2つのインタフェース回路117、118のそれぞれの出力を比較する第1の比較器119が設けられている。例えば、第1のインタフェース回路117の前に遅延が導入され、第2のインタフェース回路118の後に対応する遅延が追加される。明確にするために、DCLSを提供するための遅延回路は示されていない。データ転送ユニット128、129には、DCLS原理に基づいて別々のパスの異なるポイントで時間遅延が導入されたデータ転送ユニット128、129のそれぞれの出力(この場合には、3つの出力)を比較する第2の比較器130が設けられている。明確にするために、DCLSを提供するための遅延回路は示されていない。暗号ユニット133、134には、DCLS原理に基づいて別々のパスの異なるポイントで時間遅延が導入された暗号ユニット133、134のそれぞれの出力(この場合、2つの出力)を比較する第3の比較器135が設けられている。明確にするために、DCLSを提供するための遅延回路は示されていない。SPSS148には、DCLS原理に基づいて別々のパスの異なるポイントで時間遅延が導入された第1および第2のスイッチ回路149、150の出力を比較する第4の比較器151が設けられている。明確にするために、DCLSを提供するための遅延回路は示されていない。比較器119、130、135、151によってエラーが検出された場合、比較器119、130、135、151はエラー信号をエラーモジュール152に送信する。
【0070】
セレクタ回路131は、一組(この場合、9つ)のセレクタ1711、1712、1713、1714、1715、1716、1717、1718、1719(まとめて「セレクタ171」と呼ぶ)を含む。セレクタ回路131は、より多いまたはより少ないセレクタ171を含むことができ、および/または、セレクタ171は異なるように配置されてもよい。
【0071】
セレクタ171の各々は、セレクタ制御ライン172を介してSPSS148からそれぞれの制御信号を受信し、セレクタ状態ライン173を介してSPSS148にそれぞれのセレクタ状態を戻す。
【0072】
セレクタ171の各々は、第1および第2の入力、すなわち「0」および「1」を有する。性能モードで動作する場合には入力「0」が選択され、安全モードで動作する場合には「1」が選択される。
【0073】
第1および第2のセレクタ171
1、171
2は、安全モードで動作する場合には状態モニタのために使用される。第1のセレクタ171
1は、第1および第2のデータ転送ユニット128、129が冗長性を組み込んだデータ転送ユニット127(
図3)として同時に(協力して)動作するときに第1および第2のデータ転送ユニット128、129をモニタするために使用される第2の比較器130からの出力を受信する。同様に、第2のセレクタ171
2は、第1および第2の暗号ユニット133、134が冗長性を組み込んだ暗号ユニット132(
図3)として同時に動作するときに第1および第2の暗号ユニット133、134をモニタするために使用される第3の比較器135からの出力を受信する。第1および第2のセレクタ171
1、171
2は、エラー状態をエラーモジュール152に伝える。
【0074】
マスターインタフェース116、データ転送ユニット128、129、暗号ユニット133、134、モジュールバス140、およびセレクタ171は、複数のデータパス181、…、229によって接続される。
【0075】
第1のデータパス181、182は、マスターインタフェース116から第1のデータ転送ユニット128まで伸びる。第2のデータパス183、184は、モジュールバス140から第1のデータ転送ユニット128まで伸びる。第3のデータパス185は、第1のデータ転送ユニット128からマスターインタフェース116まで伸びる。第4のデータパス186は、第1のデータ転送ユニット128からモジュールバス140まで伸びる。第5のデータパス187、188は、第1のデータ転送ユニット128から第1の暗号ユニット133まで伸びる。
【0076】
第6のデータパス191は、マスターインタフェース116から第3のセレクタ1713の第1の入力まで伸びる。第7のデータパス181、192は、マスターインタフェース116から第3のセレクタ1713の第2の入力まで伸びる。マスターインタフェース116からの第7のデータパス181、192の部分181は、第1のデータパス181、182と共有される。第8のデータパス193は、第3のセレクタ1713の出力から第2のデータ転送ユニット129まで伸びる。第3のセレクタ1713は、それぞれ性能モードおよび安全モードにおいて第6のデータパス191と第7のデータパス192との間で第8のデータパス193を第2のデータ転送ユニット129へ切り替えるために使用される。
【0077】
第9のデータパス195は、モジュールバス140から第4のセレクタ1714の第1の入力まで伸びる。第10のデータパス183、196は、モジュールバス140から第4のセレクタ1714の第2の入力まで伸びる。モジュールバス140からの第10のデータパス183、196の部分183は、第2のデータパス183、184と共有される。第11のデータパス197は、第4のセレクタ1714の出力から第2のデータ転送ユニット129まで伸びる。第4のセレクタ1714は、それぞれ性能モードおよび安全モードにおいて第9および第10のデータパス195、196の間で第11のデータパス197を切り替えるために、使用される。
【0078】
第12のデータパス198は、第2のデータ転送ユニット129から第5のセレクタ1715の第1の入力まで伸びる。第5のセレクタ1715の第2の入力は非アクティブ値を受信する。第13のデータパス199は、第5のセレクタ1715の出力からマスターインタフェース116まで伸びる。
【0079】
第14のデータパス200は、第2のデータ転送ユニット129から第6のセレクタ1716の第1の入力まで伸びる。第6のセレクタ1716の第2の入力は非アクティブ値を受信する。第15のデータパス201は、第6のセレクタ1716の出力からモジュールバス140まで伸びる。
【0080】
第16のデータパス202は、第2のデータ転送ユニット129から第7のセレクタ1717の第1の入力まで伸びる。第17のデータパス187、203は、第1のデータ転送ユニット128から第7のセレクタ1717の第2の入力まで伸びる。第17のデータパス187、203の部分187は、第5のデータパス187、188と共有される。
【0081】
前述のように、第5のデータパス187、188は、第1のデータ転送ユニット128から第1の暗号ユニット133まで伸びる。第18のデータパス221、222は、モジュールバス140から第1の暗号ユニット133まで伸びる。第19のデータパス223は、第1の暗号ユニット133からモジュールバス140まで伸びる。
【0082】
第20のデータパス224は、モジュールバス140から第8のセレクタ1718の第1の入力まで伸びる。第21のデータパス221、225は、モジュールバス140から第8のセレクタ1718の第2の入力まで伸びる。第21のデータパス221、225の部分221は、第18のデータパス221、222と共有される。第22のデータパス226は、第8のセレクタ1718の出力から第2の暗号ユニット134まで伸びる。第8のセレクタ1718は、それぞれ性能モードおよび安全モードにおいてモジュールバス140からの第20および第21のパス224、225の間で第22のデータパス226を第2の暗号ユニット134に切り替えるために使用される。
【0083】
第23のデータパス227は、第7のセレクタ1717の出力から第2の暗号ユニット134まで伸びる。第24のデータパス228は、第2の暗号ユニット134から第9のセレクタ1719の第1の入力まで伸びる。第9のセレクタ1719の第2の入力は非アクティブ値を受信する。第25のデータパス229は、第9のセレクタ1719の出力からモジュールバス140まで伸びる。
【0084】
引き続き
図7を参照すると、SPSS148は、レジスタ230、状態モニタ231、スケジューラ232、およびタイマ233を含む。
【0085】
SPSS148は、セレクタ171を制御して、安全プロセッサからの要求(オンデマンド切替モード)に基づいてまたはスケジューラ232に基づいて自動的に2つのモードの間で切り替える。セレクタ171のそれぞれの状態(すなわち、どの入力が出力に対して選択されるか)は、SPSS148へのフィードバック信号173を使用してモニタされる。報告された状態が期待通りでない場合、エラー信号が、取り扱い用のエラーモジュール152に通知される。
【0086】
動作(オンデマンド切替)
図7および
図8を参照して、オンデマンド切替中のセキュア計算モジュール102およびSPSS148の動作について説明する。
【0087】
安全プロセッサ108は、SPSS148に要求240を送信して、安全モードに切り替えるためにレジスタ230にフラグを設定し(ステップS1、S2)、セキュアプロセッサ120に要求241を送信して、共有メモリ111に格納されたデータを暗号化/復号化する(ステップS3)。セキュアプロセッサ120は、例えば、セキュアな非安全関連データの処理を完了することによって準備されてもよい(ステップS4)。SPSS148は、セキュアプロセッサ120が、SPSS148内の専用レジスタ230に書き込むことによってモードスイッチの用意ができていることをSPSS148に通知するまで待機する(ステップS5、S6)。SPSS148は、それに応じてセレクタ171を設定する(ステップS7)。この場合、入力「1」が選択される。
【0088】
SPSS148は、状態モニタ231を用いてセレクタ171のそれぞれの状態をチェックする(ステップS8)。セレクタ171のいずれかが間違った状態に戻る場合、SPSS148は、意図しないモードエラーメッセージ245をエラーモジュール152に送信する(ステップS9)。チェックは、必ずしも単一時点でのチェックでない。SPSS148は、(性能モードか安全モードかを問わず)継続的にチェックを実行して、適切に機能していることを確認してもよい。ひとたびセレクタ171が適切な状態にあることをSPSS148が確認すると、SPSS148は現在のモード(すなわち安全モード)をレジスタ230に書き込む(ステップS10)。
【0089】
短い待ち時間の後、セキュアプロセッサ120は、新しいモード(すなわち、安全モード)を読み取ってチェックする(ステップS11、S12、S13)。新しいモードの場合、セキュアプロセッサ120は、OTP114からセキュアキー(鍵)115をロードし(ステップS14、15)、それに応じて暗号ユニット133、134を構成する(ステップS16、17)。この場合には、両方の暗号ユニット133、134は、冗長性を提供するために同じデータを受信するように構成される。次に、セキュアプロセッサ120は、共有メモリ111から暗号化/復号化の対象データを検索するようにデータ転送ユニット128、129を構成し(ステップS18、S19)、それをトリガする(ステップS20)。
【0090】
データ転送ユニット128、129は、共有メモリ111からデータをロードし、それを暗号化/復号化およびタグ生成のために暗号ユニット133、134に提供する(ステップS21)。暗号ユニット133、134は、データ転送ユニット128、129が新しいデータを供給する限り、暗号化/復号化を実行し続ける。暗号化/復号化されたデータは、共有メモリ111に格納される。セキュアプロセッサ120は、データ転送設定データを読み取り(ステップS22、S23)、処理が終了した場合、安全プロセッサ108に動作が完了したことを通知する(ステップS24、S25)。
【0091】
安全プロセッサ108は、要求257を、SPSS148のレジスタ230内の性能モードにもう一度戻すように設定し、それに応じてセキュアプロセッサ120に通知する(ステップS26、S27)。
【0092】
セキュアプロセッサ120は、性能モードが入力されたことを読み取ってチェックする(ステップS29、S30)。性能モードである場合、セキュア計算モジュール102は、次のデータに進む(ステップS31)。安全モードである間は、性能モードに対する何らかの要求がバッファリングされる。
【0093】
動作(自動切替)
図7および
図9を参照すると、完全同期のセキュア通信のために、SPSS148は、安全モード154への/からの切り替えをスケジュールするように動作することができる。
【0094】
SPSS148は、スケジューラ232およびタイマ233を含む。スケジューラ232は、安全プロセッサ108からの専用要求なしで切り替えを実行することができる。
【0095】
一例では、時間がカウントされ、プログラムされた制限(変更可能な)に応じて、スケジューラ232がトリガ274を発行する。プログラム可能なタイマ閾値T1、T2は、それぞれ安全モードへの切り替えおよび性能モードへの復帰に使用される。典型的には、T1>T2、すなわち、セキュア計算モジュール102は、安全モードよりも長い期間、性能モードで動作する。
【0096】
より高速なセキュアブート
図10を参照すると、第4の半導体装置101′が示されている。第4の半導体装置101′は、第3の半導体装置101(
図3)と同じであるが、セキュア計算モジュール102内に追加の署名エンジン144を含むという点で異なる。割り込みコントローラ122(
図3)、クロック124(
図3)、およびセレクタ回路131(
図3)は省略され、データ転送ユニット128、129および暗号ユニット133、134は、明確にするために簡略化された形式で示されている。
【0097】
デバイス101′の電源が入っているとき、デフォルトモードは性能モードである。セキュア計算モジュール102内に2つの署名エンジン143、144が実装されている場合、セキュアブートを速めることが可能である。特に、データ転送ユニット128、暗号ユニット133、および、署名エンジン143の1つのセットは、その対応する署名1061を使用して1つのコードブロック1031に対してセキュアブートを実行することができる一方、データ転送ユニット129、暗号ユニット134、および、署名エンジン144の他の1セットは、その対応する署名1062を並行して使用して別のコードブロック1032に対してセキュアブートを実行できる。署名エンジン143、144は、受信した署名1061、1062と比較するためのローカルな署名(図示せず)を生成するために使用される。
【0098】
自動車
図11を参照すると、バス1003に接続されたノード1002、1002
1、1002
2を含む通信ネットワーク1001が配置された自動車1000が示されている。通信ネットワーク1001は、イーサネットネットワーク、CAN2.0および/またはCAN FD規格に対して動作可能なCAN、または、FlexRayであってもよい。2つ以上のネットワークが存在してもよいし、2つまたは異なるタイプのネットワークが存在してもよい。
【0099】
各ノード1002は、性能モードと安全モード153、154との間で動的に切り替えることができる前述の半導体装置101を備える。明確にするために、2つのノードのみが示されている。
【0100】
変形
前述の実施形態に対して様々な変更を行うことができることを理解されるだろう。そのような変更は、機能の安全およびセキュリティで使用するための半導体装置およびその構成部品の設計、製造、使用において既に知られている同等かつ他の特徴を伴ってもよく、および、本明細書で既に説明した特徴の代わりにまたはその特徴に追加して使用されてもよい。一実施形態の特徴は、別の実施形態の特徴によって置換または補足されてもよい。
【0101】
他の形式のエラー検出を使用することができる。例えば、安全レベルが許す場合には、セルフチェックまたは単純な冗長性(時変せずに)を備えたシングルコアを使用してもよい。
【0102】
データ転送ユニットは、DTS(Data Transmissiоn Service)やDTF(Data Transfer Fоrm)などの他の形式を取ることができる。
【0103】
SM4などのAESの代わりに、他の形式のブロック暗号を使用してもよい。GCMの代わりに、認証された暗号化の他の形式を使用してもよい。例えば、CBC(Cipher Blоck Chaining)、OFB(Output Feedback)、CFB(Cipher Feedback)、CTR(Cоunter)、CCM(Cоunter with CBC-MAC)を使用したXEXベースの微調整コードブックモードを使用してもよい。
【0104】
例えばより高い安全レベルをサポートするのに役立つために、CRCなどの追加の安全メカニズムを設けてもよい。
【0105】
セレクタ回路の他の実装を使用することができる。
【0106】
半導体装置は、自動車だけでなく、他の分野でも使用できる。例えば、半導体装置は、他の輸送用途(航空など)、医療用途、または産業用途で使用することができる。
【0107】
特許請求の範囲は、本出願において特徴の特定の組み合わせに対して定式化されているけれども、本発明の開示の範囲はまた、それがいずれかの請求項で現在請求されているのと同じ発明に関連しているであろうとなかろうと、および、それが本発明と同じ技術的問題の一部またはすべてを軽減しているであろうとなかろうと、本明細書において明示的または黙示的に開示された任意の新規な特徴またはその任意の新規な組み合わせ、またはそれらの任意の一般化も含むことを理解されたい。出願人は、本出願またはそれから派生したさらなる出願の審査中に、そのような特徴および/またはそのような特徴の組み合わせに対して新しい請求項が作成されるかもしれないことを、ここに予告する。
【符号の説明】
【0108】
101、101′ 半導体装置
102 セキュア計算モジュール
108 安全プロセッサ
111 メモリ
120 セキュアプロセッサ
128、129 データ転送ユニット
131 セレクタ回路
133、134 暗号ユニット
136、137 暗号データ処理システム
148 スイッチ