(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024060724
(43)【公開日】2024-05-07
(54)【発明の名称】秘密情報の管理方法及び半導体装置
(51)【国際特許分類】
H04L 9/10 20060101AFI20240425BHJP
H04L 9/08 20060101ALI20240425BHJP
【FI】
H04L9/10 A
H04L9/08 A
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2022168177
(22)【出願日】2022-10-20
(71)【出願人】
【識別番号】302062931
【氏名又は名称】ルネサスエレクトロニクス株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】濱口 晃
(72)【発明者】
【氏名】岩谷 祐一
(57)【要約】
【課題】破棄フェーズにおける鍵情報を確実に無効化でき、かつシステムの起動もできない秘密情報の管理方法を提供する。
【解決手段】秘密情報と、秘密情報が使用される運用フェーズと秘密情報が無効化される破棄フェーズとを定義するライフサイクルフラグと、を有する情報が書き込まれたOTPメモリ領域と、OTPメモリ領域の情報を読み出すシーケンサと、シーケンサに読み出されたOTPメモリ領域の情報を格納するレジスタと、を備えるOTPモジュールと、を備える半導体装置の秘密情報の管理方法であって、プロセッサが、運用フェーズから破棄フェーズへの移行条件が満たされたと認識したとき、セキュリティモジュールに破棄フェーズへの移行を要求することで、秘密情報を無効にさせ、半導体装置の稼働を停止させる秘密情報の管理方法。
【選択図】
図1
【特許請求の範囲】
【請求項1】
秘密情報と、前記秘密情報が使用される運用フェーズと前記秘密情報が無効化される破棄フェーズとを定義するライフサイクルフラグと、を有する情報が書き込まれたOTP(One Time Programable)メモリ領域と、前記OTPメモリ領域の情報を読み出すシーケンサと、前記シーケンサに読み出された前記OTPメモリ領域の情報を格納するレジスタと、を備えるOTPモジュールと、
前記レジスタと専用線で接続され、前記秘密情報が転送され、前記秘密情報を使用するセキュリティモジュールと、
前記セキュリティモジュールに処理を要求する及び前記運用フェーズから前記破棄フェーズへの移行を認識するプロセッサと、
を備える半導体装置の秘密情報の管理方法であって、
前記プロセッサが、前記運用フェーズから前記破棄フェーズへの移行条件が満たされたと認識したとき、前記セキュリティモジュールに前記運用フェーズから前記破棄フェーズへの移行を要求することで、前記秘密情報を無効にさせ、前記半導体装置の稼働を停止させる秘密情報の管理方法。
【請求項2】
前記セキュリティモジュールは、前記ライフサイクルフラグに前記破棄フェーズのフラグを書き込む、請求項1に記載の秘密情報の管理方法。
【請求項3】
前記秘密情報の無効化及び前記半導体装置の稼働停止は、ファームウェアが前記セキュリティモジュールに読み込まれることによって行われる、請求項2に記載の秘密情報の管理方法。
【請求項4】
前記半導体装置は、ROM(Read Only Memory)を備え、
前記ファームウェアは、前記ROMに書き込まれている、請求項3に記載の秘密情報の管理方法。
【請求項5】
前記セキュリティモジュールが前記秘密情報をランダム値またはゼロ値で上書きすることで前記秘密情報は無効にされる、請求項4に記載の秘密情報の管理方法。
【請求項6】
前記運用フェーズにおいて、前記秘密情報が書き換えられないように前記OTPメモリ領域への書き込み制御を無効にする、請求項5に記載の秘密情報の管理方法。
【請求項7】
前記破棄フェーズにおいて、前記秘密情報を上書きできるように前記OTPメモリ領域への書き込み制御を有効にする、請求項6に記載の秘密情報の管理方法。
【請求項8】
前記秘密情報の上書きは、前記半導体装置に電源が入れられるたびに前記ファームウェアによって行われる、請求項5に記載の秘密情報の管理方法。
【請求項9】
前記半導体装置の稼働停止は、前記セキュリティモジュールが前記秘密情報を無効にした後以降の処理を停止することで行われる、請求項8に記載の秘密情報の管理方法。
【請求項10】
前記秘密情報の無効化は、前記セキュリティモジュールから破棄フェーズ要求を送信された前記シーケンサが、前記ライフサイクルフラグに前記破棄フェーズのフラグを書き込み、前記秘密情報を上書きすることによって行われる、請求項1に記載の秘密情報の管理方法。
【請求項11】
前記セキュリティモジュールから破棄フェーズ要求を送信された前記シーケンサは、前記レジスタに格納された前記秘密情報をマスクし、前記レジスタに格納されたライフサイクルフラグを更新する、請求項10に記載の秘密情報の管理方法。
【請求項12】
前記秘密情報は、ランダム値またはゼロ値で上書きされることで無効にされる、請求項10に記載の秘密情報の管理方法。
【請求項13】
前記秘密情報の上書きは、前記半導体装置に電源が入れられるたびに前記シーケンサによって行われる、請求項12に記載の秘密情報の管理方法。
【請求項14】
前記半導体装置の稼働停止は、前記セキュリティモジュールが、前記破棄フェーズに移行したことを認識して前記プロセッサからのサービス要求を停止することによって行われる、請求項10に記載の秘密情報の管理方法。
【請求項15】
秘密情報と、前記秘密情報が使用される運用フェーズと前記秘密情報が無効化される破棄フェーズとを定義するライフサイクルフラグと、を有する情報が書き込まれたOTP(One Time Programable)メモリ領域と、前記OTPメモリ領域の情報を読み出すシーケンサと、前記シーケンサに読み出された前記OTPメモリ領域の情報を格納するレジスタと、を備えるOTPモジュールと、
前記レジスタと専用線で接続され、前記秘密情報が転送されるセキュリティモジュールと、
前記セキュリティモジュールに処理を要求する及び前記運用フェーズから前記破棄フェーズへの移行を認識するプロセッサと、
を備える半導体装置であって、
前記プロセッサが、前記運用フェーズから前記破棄フェーズへの移行条件が満たされたと認識したとき、前記セキュリティモジュールに前記運用フェーズから前記破棄フェーズへの移行を要求することで、前記秘密情報を無効にさせ、前記半導体装置の稼働を停止させる半導体装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は秘密情報の管理方法及び半導体装置に関する。
【背景技術】
【0002】
近年、自動車分野では、コネクテッドやADAS(Advanced Driver-Assistance Systems、先進運転支援システム)の発達に伴い、車載カメラ、ドライブレコーダ、カーナビゲーションといった車載電子機器が多く設置されるようになった。車載電子機器は、ユーザのプライベートな情報を暗号化する暗号鍵や他の機器との通信を暗号化する暗号鍵を安全に保管する必要がある。一般的に暗号鍵のような秘密情報は、ソフトウェアからアクセスできないOTP(One Time Programable)メモリ領域に書かれ堅牢に守られている。また、自動車の鍵管理は、車両ライフサイクルのフェーズにおいても一貫したセキュリティの担保が求められる。
【0003】
ところで、特許文献1には、外部から取り込まれた暗号化遊技プログラムをあらかじめ格納手段に格納された鍵を用いて復号化し、該復号化された遊技プログラムを不揮発性記憶手段に書き込んだ後、鍵を消去又は意味のないコードに変更することが記載されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1では製造フェーズで遊技プログラムを安全にROMに書き込むために使われる1度きりの暗号鍵が想定されていることに対して、上記車載電子機器では、運用フェーズで繰り返し使われる暗号鍵を想定している。
つまり、特許文献1の暗号鍵は運用フェーズでは消滅していることを意味している。
【0006】
したがって、運用フェーズ後の破棄フェーズでは、悪意のある第三者に暗号鍵が搾取され、車両に保管されているユーザのプライベート情報などの秘密データが復元されないように暗号鍵の無効化が求められている。そこで、本開示は、車両のライフサイクルの状態に破棄フェーズを定義し、破棄フェーズに移行した場合、OTPメモリ領域に格納されている秘密情報を無効化し、それ以降のシステム稼働を停止させることを目的とする。
【0007】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0008】
一実施の形態によれば、秘密情報の管理方法は、プロセッサが、運用フェーズから破棄フェーズへの移行条件が満たされたと認識したとき、セキュリティモジュールに運用フェーズから破棄フェーズへの移行を要求することで、秘密情報を無効にさせ、半導体装置の稼働を停止させるものである。
【発明の効果】
【0009】
前記一実施の形態によれば、破棄フェーズにおける鍵情報を確実に無効化でき、かつシステムの起動もできないため悪意の第三者による鍵情報の搾取が不可能となり、ユーザの資産を安全に守ることができる。
【図面の簡単な説明】
【0010】
【
図1】実施の形態1にかかる半導体装置の構成を示すブロック図である。
【
図2】実施の形態1にかかる半導体装置のライフサイクルフラグの構成例を示す図である。
【
図3】実施の形態1にかかる半導体装置の秘密情報の管理方法の運用フェーズから破棄フェーズに移行するフローチャートである。
【
図4】実施の形態1にかかる半導体装置の秘密情報の管理方法の破棄フェーズのフローチャートである。
【
図5】実施の形態1にかかる半導体装置の秘密情報の管理方法の破棄フェーズの変形例のフローチャートである。
【
図6】実施の形態1にかかる半導体装置の変形例の構成を示すブロック図である。
【
図7】実施の形態2にかかる半導体装置の構成を示すブロック図である。
【
図8】実施の形態2にかかる半導体装置の秘密情報の管理方法の運用フェーズから破棄フェーズに移行するフローチャートである。
【
図9】実施の形態2にかかる半導体装置の秘密情報の管理方法の破棄フェーズのフローチャートである。
【発明を実施するための形態】
【0011】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【0012】
(実施の形態1にかかる半導体装置の説明)
図1は、実施の形態1にかかる半導体装置の構成を示すブロック図である。
図2は、実施の形態1にかかる半導体装置のライフサイクルフラグの構成例を示す図である。
図1及び2を参照しながら、実施の形態1にかかる半導体装置を説明する。
【0013】
半導体装置(SoC(System on a Chip))10が、Webサーバからのユーザデータを暗号化し、外部ストレージ20に情報を格納する例について説明する。半導体装置10は、OTPモジュール100と、ハードウェアセキュリティモジュール(HSM(Hardware Security Module)200と、CPU(Central Processing Unit)300と、ROM(Read Only Memory)400と、イーサネット(Ethernet)500と、RAM(Random Access Memory)600と、メモリコントローラ(Memory Controller)700とを備える。
【0014】
OTPモジュール100は、OTPメモリ領域101と、リセットシーケンサ103と、レジスタ105とを備える。OTPメモリ領域101は、Non-Secure領域とSecure領域に分離されている。Non-Secure領域は、ライフサイクルフラグ(Life Cycle Flag)111を格納する。Secure領域は、暗号鍵(秘密情報)113を格納する。Non-Secure領域は、CPUから読み出し可/書き込み不可、HSMから読み出し可/書き込み可とされる。Secure領域は、CPUから読み出し不可/書き込み不可、HSMから読み出し可/書き込み可とされ、堅牢に守られている。
【0015】
リセットシーケンサ103は、電源が入れられ、リセットされたときに1回だけOTPメモリ領域101を能動的に読み出すハードウェアシーケンサ(シーケンサ)である。
【0016】
レジスタ105は、リセットシーケンサ103により読み出されたOTPメモリ領域101のデータを格納する。レジスタ105は、Non-Secure領域情報115とSecure領域情報117とを格納する。レジスタ105に格納されたNon-Secure領域情報115は、CPU300/HSM200からの読み出しのみ可能である。レジスタ105は、専用線で他のモジュールに接続され、Secure領域情報117が通信される。ここでは、Secure領域情報117は、暗号鍵であり、レジスタ105は、HSM200に接続される。
【0017】
HSM200は、データの暗号化と復号、及びデジタル署名と証明書の生成に使用される鍵を保護、管理することで暗号化プロセスをセキュアに保つ、強化された耐タンパ性機能付きハードウェアデバイスである。HSM200は、レジスタ105と専用線で接続され、暗号鍵である秘密情報が転送される。HSM200は、転送された秘密情報を使用して外部ストレージ20の暗号化された情報を読み出す。
【0018】
CPU300は、HSM200に処理を要求する及び運用フェーズから破棄フェーズへの移行を認識するプロセッサである。CPU300は、HSM200に運用フェーズから破棄フェーズへの移行条件が満たされたと認識したとき、HSM200に運用フェーズから破棄フェーズへの移行を要求する。また、他にもCPU300は、半導体装置10全体の制御を行う。例えばCPU300は、外部ストレージ20に保存されたソフトウェアをRAMに展開して情報の処理を行う。
【0019】
ROM400は、記録されている情報の読み出しのみが可能な記憶装置である。ROMは、BIOS、ファームウェアなど書き換えられては困る情報、書き換える必要のない情報が記録されている。ファームウェアは、半導体装置10に内蔵されるソフトウェアで、本体内部の回路や装置などの基本的な制御を司る。ファームウェアは、半導体装置10の起動後にすぐに展開され、制御を開始する。
【0020】
イーサネット500は、コンピュータネットワークにおいて信号をやり取りするために用いられている規格である。ここでは、イーサネット500は、半導体装置10が外部と情報を連絡するために用いられている。
【0021】
RAM600は、半導体装置10が動作しているときに、外部ストレージ20から読み出された情報や処理結果を一時的に記憶する。RAM600は、電源を切ると情報が消える。例えば、RAM600は、外部ストレージ20に格納されている暗号化された情報を復号化して一時的に保存する機能を有する。
【0022】
メモリコントローラ700は、RAM600のデータの読み出し、書き出しなどメインメモリのインタフェースを統括する機能またはLSI(Large Scale Integration、高密度集積回路)である。
【0023】
実施の形態のシステムは、外部ストレージ20としてセキュアストレージデバイス(Secure Storage device)を備える。外部ストレージ20は、CPU300に読み込まれ、RAM600上に展開されて処理を実行するプログラムデータ801が記録されている。また、外部ストレージ20は、暗号鍵で暗号化されたユーザデータ1、ユーザデータ2、ユーザデータ3が記録されている。
【0024】
図2にライフサイクルフラグの構成例を示す。ライフサイクルフラグは、以下に示すような開発フェーズ、製造フェーズ、運用フェーズ、及び破棄フェーズを定義する。
開発フェーズ:OTPメモリ領域上の暗号鍵はブランク
製造フェーズ:OTPメモリ領域上の暗号鍵の登録
運用フェーズ:OTPメモリ領域上の暗号鍵の更新禁止
破棄フェーズ:OTPメモリ領域上の暗号鍵の無効化
ライフサイクルフラグは、1が追記されることで次のフェーズに移行する。したがって、ライフサイクルは、戻ることがない。
【0025】
(実施の形態1にかかる半導体装置の秘密情報の管理方法の説明)
図3は、実施の形態1にかかる半導体装置の秘密情報の管理方法の運用フェーズから破棄フェーズに移行するフローチャートである。
図4は、実施の形態1にかかる半導体装置の秘密情報の管理方法の破棄フェーズのフローチャートである。
図5は、実施の形態1にかかる半導体装置の秘密情報の管理方法の破棄フェーズの変形例のフローチャートである。
図3乃至5を参照しながら、実施の形態1にかかる半導体装置の秘密情報の管理方法を説明する。
【0026】
図3に示すように、運用フェーズにおいて、半導体装置10に電源を入れてリセット解除(ステップS301)する。次に、OTPモジュール100のリセットシーケンサ103は、OTPメモリ領域101の情報をOTPモジュール100内のレジスタ105に格納する(ステップS302)。次に、レジスタ105は、暗号鍵113を専用線でHSM200に転送する(ステップS303)。HSM200は、ROM400からブートコードをロードし、OTPメモリ領域101のライフサイクルフラグ111を読み出し、運用フェーズであることを認識する。その後、HSM200は、半導体装置10のシステムの初期設定を実施する(ステップS304)。そしてHSM200は、外部ストレージ20からCPU300のプログラムを半導体装置10内部のRAM600に展開し、CPU300をキックする(ステップS305)。CPU300は、通常動作を開始する(ステップS306)。
【0027】
CPU300は、破棄フェーズの所定条件を認識したとき(ステップS307)、HSM200に運用フェーズから破棄フェーズへの移行を要求する(ステップS308)。そして、HSM200は、OTPメモリ領域101のライフサイクルフラグ111を追記して(ステップS309)終了する。
【0028】
図4に示すように、破棄フェーズにおいて、半導体装置10に電源を入れてリセット解除(ステップS401)する。次に、OTPモジュール100のリセットシーケンサ103は、OTPメモリ領域101の情報をOTPモジュール100内のレジスタ105に格納する。HSM200は、ROM400からファームウェアであるブートコードをロードし、OTPメモリ領域101のライフサイクルフラグ111を読み出し、破棄フェーズであることを認識する(ステップS402)。その後、HSM200は、OTPメモリ領域101の暗号鍵113をランダム値またはゼロ値で上書きする(ステップS403)。HSM200は、その後の処理を停止することで、半導体装置10の稼働を停止できる。
【0029】
このように、破棄フェーズでは電源を入れられるごとに、OTPメモリ領域101の暗号鍵113をランダム値またはゼロ値で上書きする。そのため暗号鍵113の上書き中に電源が切れ、書き込み不良が生じた場合でも次回以降に電源を入れたときに暗号鍵を上書きするため書き込み不良をリカバリできる。
【0030】
図5に、破棄フェーズの変形例のフローチャートを示す。
図5に示すように、半導体装置10に電源を入れてリセット解除(ステップS501)する。次に破棄フェーズであるか否か判定される(ステップS502)。破棄フェーズである場合、OTPメモリ領域101の暗号鍵113の無効化フラグが書き込まれているか否か判定される(ステップS503)。例えば、暗号鍵無効化フラグは、
図2に示したライフサイクルフラグに追記されてもよい。破棄フェーズに入って初めて電源を入れられた場合または暗号鍵を上書き中に電源が切れた場合、暗号鍵無効化フラグに書き込みが行われないため再度暗号鍵の無効化処理が行われる(ステップS504)。
【0031】
そして、HSM200は、無効化フラグが書き込まれていない場合、暗号鍵無効化フラグを書き込む(ステップS505)。その後、HSM200は、その後の処理を停止することで、半導体装置10の稼働を停止する。暗号鍵無効化フラグを設けることで、OTPメモリ領域の暗号鍵が確実に無効化されていることを認識できる。
【0032】
(実施の形態1にかかる半導体装置の変形例の説明)
図6は、実施の形態1にかかる半導体装置の変形例の構成を示すブロック図である。
図6を参照しながら、実施の形態1にかかる半導体装置の変形例を説明する。
【0033】
実施の形態1では、Secure領域は、HSM200によって書き込み可能とされていた。
図6に示すように、本変形例の半導体装置11は、書き込みシーケンサ107を備える。書き込みシーケンサ107は、HSM200の指示に基づいてSecure領域の暗号鍵を書き換えることができる。しかしながら、ライフサイクルフラグが運用フェーズである場合、書き込みシーケンサ107は、機能を無効にされる。そして、ライフサイクルフラグが破棄フェーズである場合、書き込みシーケンサ107は、機能を有効にされる。そのため、運用フェーズではHSM200も暗号鍵113を更新できず、鍵の完全性をより堅牢に守ることができる。
【0034】
(実施の形態2にかかる半導体装置の説明)
図7は、実施の形態2にかかる半導体装置の構成を示すブロック図である。
図7を参照しながら、実施の形態2にかかる半導体装置を説明する。
【0035】
実施の形態2にかかる半導体装置12は、実施の形態1の半導体装置10とリセットシーケンサ103の機能が異なる。また、実施の形態2にかかる半導体装置12は、レジスタ105にマスク回路119を備える。
【0036】
リセットシーケンサ103は、半導体装置12に電源を入力した後1回だけOTPメモリ領域101を能動的に読み出す機能を有する(ア)。また、リセットシーケンサ103は、HSM200からのOTPメモリ領域の暗号鍵無効化要求(破棄フェーズ要求)により暗号鍵を無効化する機能を有する(イ)。さらにリセットシーケンサ103は、暗号鍵113をマスクするデータをレジスタ105のマスク回路119に転送する機能を有する(ウ)。
【0037】
レジスタ105のマスク回路119は、リセットシーケンサ103により読み出されたOTPメモリ領域101の暗号鍵113などの秘密情報のデータをマスクするデータを格納する。
【0038】
このような構成により、暗号鍵の無効化をハードウェアであるシーケンサで実施でき、よりフォールト攻撃等の非侵襲攻撃の耐性を向上できる。また、マスク回路により、破棄フェーズ移行後、暗号鍵の利用ができなくなるため、鍵の無効化要求からリセットを入れるまでの間においても、暗号鍵の利用を防ぐことができる。
【0039】
(実施の形態2にかかる半導体装置の秘密情報の管理方法の説明)
図8は、実施の形態2にかかる半導体装置の秘密情報の管理方法の運用フェーズから破棄フェーズに移行するフローチャートである。
図9は、実施の形態2にかかる半導体装置の秘密情報の管理方法の破棄フェーズのフローチャートである。
図8及び9を参照しながら、実施の形態2にかかる半導体装置の秘密情報の管理方法を説明する。
【0040】
実施の形態2にかかる半導体装置の運用フェーズから破棄フェーズへの移行を説明する。
図8に示すように、半導体装置12に電源を入力してリセット解除(ステップS801)する。次に、OTPモジュール100のリセットシーケンサ103は、OTPメモリ領域101のライフサイクルフラグ111が運用フェーズであることを認識する。その後、リセットシーケンサ103は、OTPメモリ領域101の情報を読み出し、OTPモジュール100内のレジスタ105に格納する(ステップS802)。
【0041】
レジスタ105は、暗号鍵とライフサイクルフラグを専用線でHSM200に転送する(ステップS803)。HSM200は、ROM400からブートコードをロードし、OTPモジュール100のレジスタ105から転送されたライフサイクルフラグが運用フェーズであることを認識する。その後、HSM200は、半導体装置12のシステムの初期設定を実施する(ステップS804)。
【0042】
HSM200は、外部ストレージ20からCPU300のプログラムを半導体装置12内のRAM600に展開し、CPU300をキックする(ステップS805)。CPU300は、通常動作を開始する(ステップS806)。
【0043】
CPU300は、破棄フェーズの所定条件を認識し(ステップS807)、HSM200に破棄フェーズへの移行を要求する(ステップS808)。HSM200は、OTPモジュール100のリセットシーケンサ103に破棄フェーズ要求を送信する(ステップS809)。
【0044】
リセットシーケンサ103は、OTPメモリ領域101の破棄フェーズのライフサイクルフラグ111を追記し、暗号鍵113をランダム値またはゼロ値で上書きする(ステップS810)。そして、リセットシーケンサ103は、レジスタ105に格納されている暗号鍵をマスクするデータ(ランダム化またはゼロ化)とライフサイクルフラグの更新値(運用フェーズから破棄フェーズへ)をレジスタ105に送信する(ステップS811)。
【0045】
レジスタ105は、マスク回路119にマスクデータを設定し、暗号鍵を無効化する(ステップS812)。また、レジスタ105は、ライフサイクルフラグを更新する。そして、HSM200は、ライフサイクルフラグが破棄フェーズになったことを認識し、CPU300からのサービス要求を停止して(ステップS813)終了する。このように、破棄フェーズに移行後、すぐに半導体装置12を稼働停止できる。
【0046】
実施の形態2にかかる半導体装置の破棄フェーズにおける動作を説明する。
図9に示すように、破棄フェーズにおいて、半導体装置12に電源を入力してリセット解除(ステップS901)する。次に、OTPモジュール100のリセットシーケンサ103は、OTPメモリ領域101のライフサイクルフラグ111を読み出し、破棄フェーズであることを認識する(ステップS902)。そして、リセットシーケンサ103は、ライフサイクルフラグの情報のみOTPモジュール100内のレジスタ105に格納する(ステップS903)。
【0047】
ここで、リセットシーケンサ103は、破棄フェーズであることを認識するたびに暗号鍵の無効化処理を実施してもよい。この場合、運用フェーズにおける暗号鍵の無効化処理中に半導体装置12の電源が切れた場合の書き込み不良をリカバリできる。
【0048】
HSM200は、ROM400からブートコードをロードし、OTPモジュール100のレジスタ105から転送されたライフサイクルフラグが破棄フェーズであることを認識する。その後、HSM200は、他のモジュールからのサービスを停止して(ステップS904)終了する。
【0049】
このようにすることで、暗号鍵無効化をハードウェアであるシーケンサで実施することにより、フォールト攻撃等の非侵襲攻撃への耐性を向上できる。また、マスク回路により、破棄フェーズ移行後、暗号鍵の利用ができなくなるため、鍵の無効化要求からリセットを入れるまでの間においても、暗号鍵の利用を防ぐことができる。
【0050】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0051】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【0052】
10 半導体装置
11 半導体装置
12 半導体装置
20 外部ストレージ
100 OTPモジュール
101 OTPメモリ領域
103 リセットシーケンサ
105 レジスタ
107 書き込みシーケンサ
111 ライフサイクルフラグ
113 暗号鍵
115 Non-Secure領域情報
117 Secure領域情報
119 マスク回路
200 HSM
300 CPU
400 ROM
500 イーサネット
600 RAM
700 メモリコントローラ
801 プログラムデータ