説明

半導体集積回路

【課題】記憶装置に記憶された機密データが容易に改ざんされたり読み出されたりすることを防止することが可能な半導体集積回路を提供すること。
【解決手段】本発明にかかる半導体集積回路10は、複数のCPU暗号キーを格納するCPU暗号キー格納部60と、複数のCPU暗号キーのうち何れかのCPU暗号キーをCPU暗号キー格納部60の中から選択して出力するCPU30と、CPU30によって選択されたCPU暗号キーと、外部から供給された外部暗号キーと、に基づいて内部暗号キーを生成する内部暗号キー生成回路40と、CPU30から出力されたアドレス信号A0〜Anを内部暗号キーに基づいて変換し、アドレス信号B0〜Bnとして出力するアドレス変換回路50と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体集積回路に関し、特に記憶装置に対して出力されるアドレス信号の暗号化に適した半導体集積回路に関する。
【背景技術】
【0002】
不揮発性記憶装置等の記憶装置に記憶された機密データが第三者によって改ざんされたり読み出されたりしないようにするため、当該記憶装置に対して出力されるアドレス信号を暗号化して、記憶装置に記憶された機密データの記憶位置が特定されないようにすることが要求されている。
【0003】
このような問題に対する解決策が、特許文献1〜特許文献3に開示されている。
【0004】
図4は、特許文献1に開示されたマイクロプロセッサ1を示すブロック図である。図4に示すようにマイクロプロセッサ1は、マイクロプロセッサチップ11と、当該マイクロプロセッサチップ11からのアドレス信号A0〜Anを変換しマイクロプロセッサ1のアドレス信号A0'〜An'として記憶装置2に対して出力するアドレス変換回路13と、当該アドレス変換回路13の変換機能を変更固定できる変換機能作成回路12と、を備える。
【0005】
図5は、マイクロプロセッサ1の一構成例を示すブロック図である。図5に示すように、マイクロプロセッサ1に設けられたアドレス変換回路13は、アドレス線に対応した数の排他的論理和回路EX0〜EXnを有する。排他的論理和回路EX0〜EXnの一方の入力端子には、それぞれ変換機能作成回路12からの"1"レベル又は"0"レベルの電圧が供給される。また、排他的論理和回路EX0〜EXnの他方の入力端子には、それぞれマイクロプロセッサチップ11からのアドレス信号A0〜Anが供給される。
【0006】
そして、アドレス変換回路13は、マイクロプロセッサチップ11からのアドレス信号A0〜Anを変換機能作成回路12からの固定レベルの電圧に基づいて変化させ、それぞれアドレス信号A0'〜An'として出力する。それにより、アドレス変換回路13は、アドレス信号A0〜Anによって指定されるアドレスを異なるアドレスに変換して、アドレス信号A0'〜An'として出力することができる。
【0007】
図6は、変換機能作成回路12の一構成例を示す図である。図6に示すように、変換機能作成回路12は、抵抗R0〜Rnと、ダイオードD0〜Dnと、ニクロムヒューズF0〜Fnと、トランジスタTR0〜TRnと、バッファアンプBF0〜BFnと、を有する。なお、PA0〜PAnは、それぞれアドレス変換回路13内の排他的論理和回路EX0〜EXnの一方の入力端子に接続される端子である。また、ニクロムヒューズF0〜Fnは、大規模集積回路化されたプログラマブルロジック素子の実現に使用可能な素子である。
【0008】
抵抗R0〜Rnは、それぞれ、"1"レベルの電圧を出力するV+電源と、端子PA0〜PAnと、の間に設けられる。回路素子F0,D0〜Fn,Dnは、それぞれ端子PA0〜PAnと、"0"レベルの地気と、の間に設けられる。
【0009】
最初、端子PA0〜PAnは、それぞれ回路素子F0,D0〜Fn,Dnを介して地気に接続されている。この状態では、アドレス変換回路13は、アドレス信号A0〜Anによって指定されるアドレスを変更することなくアドレス信号A0'〜An'として出力することとなる。
【0010】
ところで、端子WA0〜WAnからバッファアンプBF0〜BFnを介してトランジスタTR0〜TRnに信号が与えられると、電源PWTからダイオードD0〜Dnに向けて瞬間的に大電流が流れる。それにより、ニクロムヒューズF0〜Fnが切断され、ダイオードD0〜Dnはオープン状態となる。このとき、端子PA0〜PAnは、地気との接続が切断されるため、電源V+の電圧、即ち"1"レベルの電圧に固定されることとなる。
【0011】
マイクロプロセッサ1は、各ニクロムヒューズF0〜Fnの切断状態に基づいて、アドレス信号A0〜Anによって指定されるアドレスを解読困難なアドレスに変換してアドレス信号A0'〜An'として出力している。
【0012】
特許文献2に開示された技術では、プログラムROMに含まれるアドレス処理部24の演算器28が、CPUのアドレスバスからの第1アドレスデータの下位8ビットA0〜A7と、同じくプログラムROMに含まれるコード記憶部26に設定されている8ビットのアドレス演算コードa0〜a7と、を演算し、演算結果A0'〜A7'を出力する。アドレス処理部24は、第1アドレスデータの下位8ビットA0〜A7を演算結果A0'〜A7'に置き換え、A0'〜A7'+A8〜A15の合計16ビットの第2アドレスデータを出力する。
【0013】
特許文献3に開示された技術では、記憶装置に格納するデータファイル単位にパスワードを設定しておき、当該データファイルに含まれるレコードが複数の場合において、一のレコードに後続する次のレコードの格納領域を指標する次レコードポインタのアドレスを前記設定したパスワードで暗号化して前記一のレコードに付加する。
【先行技術文献】
【特許文献】
【0014】
【特許文献1】特開昭63−044242号公報
【特許文献2】特開2001−209531号公報
【特許文献3】特開平09−044407号公報
【発明の概要】
【発明が解決しようとする課題】
【0015】
特許文献1に開示されたマイクロプロセッサ1の場合、アドレスを変換(暗号化)する際のアドレス変換則が、各ニクロムヒューズF0〜Fnの切断状態に基づいて一つに固定される。そのため、当該アドレス変換則が容易に特定されてしまう可能性があった。それにより、記憶装置に記憶された機密データが容易に改ざんされたり読み出されたりするという問題があった。
【0016】
特許文献2に開示された技術の場合、アドレスを変換(暗号化)する際のアドレス変換則が、コード記憶部26に記憶されたアドレス演算コードa0〜a7に基づいて決定される。そのため、アドレス演算コードが特定されてしまうとアドレス変換則が容易に特定されてしまう可能性があった。それにより、プログラムデータ記憶部22に記憶された機密データが容易に改ざんされたり読み出されたりするという問題があった。
【0017】
特許文献3に開示された技術の場合、アドレスを変換(暗号化)する際のアドレス変換則が、端末装置(利用者)6から供給されるパスワードに基づいて決定される。そのため、パスワードが特定されてしまうとアドレス変換則が容易に特定されてしまう可能性があった。それにより、記憶装置に記憶された機密データが容易に改ざんされたり読み出されたりするという問題があった。
【0018】
このように、従来技術では、アドレス変換則が容易に特定されてしまうため、記憶装置に記憶された機密データが容易に改ざんされたり読み出されたりするという問題があった。
【課題を解決するための手段】
【0019】
本発明にかかる半導体集積回路は、複数の第1暗号キーを格納する第1暗号キー格納部と、前記複数の第1暗号キーのうち何れかの第1暗号キーを前記第1暗号キー格納部の中から選択して出力する制御回路と、前記制御回路によって選択された前記第1暗号キーと、外部から供給された第2暗号キーと、に基づいて第3暗号キーを生成する内部暗号キー生成回路と、前記制御回路から出力された第1アドレス信号を前記第3暗号キーに基づいて変換し、第2アドレス信号として出力するアドレス変換回路と、を備える。
【0020】
上述のような回路構成により、アドレス変換則の特定が困難になるため、記憶装置に記憶された機密データが容易に改ざんされたり読み出されたりすることを防止することができる。
【発明の効果】
【0021】
本発明により、記憶装置に記憶された機密データが容易に改ざんされたり読み出されたりすることを防止することが可能な半導体集積回路を提供することができる。
【図面の簡単な説明】
【0022】
【図1】本発明の実施の形態1にかかる半導体集積回路を示すブロック図である。
【図2】本発明の実施の形態1にかかる半導体集積回路を示すブロック図である。
【図3】本発明の実施の形態1にかかるCPU暗号キー選択信号と対応するCPU暗号キーとの関係を示す図である。
【図4】従来技術のマイクロプロセッサを示すブロック図である。
【図5】従来技術のマイクロプロセッサを示すブロック図である。
【図6】従来技術の変換機能作成回路を示す回路図である。
【発明を実施するための形態】
【0023】
以下、図面を参照しつつ、本発明の実施の形態について説明する。なお、図面は簡略的なものであるから、この図面の記載を根拠として本発明の技術的範囲を狭く解釈してはならない。また、同一の要素には、同一の符号を付し、重複する説明は省略する。
【0024】
実施の形態1
図1は、本発明の実施の形態1にかかる半導体集積回路10を示すブロック図である。本実施の形態にかかる半導体集積回路10は、アドレス信号(第1アドレス信号)A0〜An(nは2以上の整数)によって指定されるアドレスを内部暗号キー(第3暗号キー)に基づいて解読困難なアドレスに変換し、アドレス信号(第2アドレス信号)B0〜Bnとして出力する。ここで、内部暗号キーは、外部から供給される外部暗号キー(第2暗号キー)と、予め内部に格納されている複数のCPU暗号キー(第1暗号キー)の中から任意に選択されたCPU暗号キーと、によって決定される。それにより、記憶装置20に記憶された機密データの記憶位置の特定が従来よりも困難になるため、当該機密データが改ざんされたり読み出されたりすることが防止される。以下、具体的に説明する。
【0025】
図1に示すように、半導体集積回路10は、CPU(制御回路)30と、内部暗号キー生成回路40と、アドレス変換回路50と、CPU暗号キー格納部(第1暗号キー格納部)60と、を備える。
【0026】
CPU30は、アドレス信号A0〜Anを生成しアドレス変換回路50に対して出力するとともに、読出し時には記憶装置20の記憶領域から読み出されたデータ(不図示)を受け取り、書き込み時には記憶装置20の記憶領域にデータを出力する。なお、記憶装置20がデータの読み出しのみ可能な不揮発性記憶装置の場合には、データの書き込み動作は行われない。
【0027】
半導体集積回路10には、外部からCPU暗号キー選択信号入力端子70を介してCPU暗号キー選択信号(選択信号)が供給される。CPU30は、CPU暗号キー格納部60に格納された複数のn+1ビットのCPU暗号キー(第1暗号キー)のうち何れかのCPU暗号キーをCPU暗号キー選択信号に基づいて選択する。CPU30によって選択されたCPU暗号キーは、CPU暗号キー格納部60からCPU30に伝達される。
【0028】
また、半導体集積回路10には、外部から外部暗号キー入力端子S0〜Snを介してn+1ビットの外部暗号キー(第2暗号キー)が供給される。内部暗号キー生成回路40は、当該外部暗号キーと、CPU30によって選択されたCPU暗号キーと、を入力し、これらに基づいてn+1ビットの内部暗号キー(第3暗号キー)を生成し、アドレス変換回路50に対して出力する。
【0029】
アドレス変換回路50は、内部暗号キー生成回路40から出力された内部暗号キーに基づいて、CPU30から出力されたアドレス信号A0〜Anをアドレス信号B0〜Bnに変換し、記憶装置20に対して出力する。それにより、記憶装置20では、アドレス信号B0〜Bnによって指定されたアドレスの記憶領域にデータが書き込まれ、又は、アドレス信号B0〜Bnによって指定されたアドレスの記憶領域に記憶されたデータが読み出される。
【0030】
図2は、本実施の形態にかかる半導体集積回路10の具体的構成例を示す図である。図2に示すように、半導体集積回路10において、内部暗号キー生成回路40は、排他的論理和回路EX10〜EX1nを有し、アドレス変換回路50は、排他的論理和回路EX20〜EXnを有する。
【0031】
各排他的論理和回路EX10〜EX1nは、n+1ビットの外部暗号キーの対応するビットラインの電位と、CPU30によって選択されたn+1ビットのCPU暗号キーの対応するビットラインの電位と、の排他的論理和を、n+1ビットの内部暗号キーの対応するビットラインの電位として出力する。つまり、内部暗号キー生成回路40は、n+1ビットの外部暗号キーと、CPU30によって選択されたn+1ビットのCPU暗号キーと、の各ビットの排他的論理和を、n+1ビットの内部暗号キーとして出力する。
【0032】
アドレス変換回路50において、各排他的論理和回路EX20〜EX2nは、内部暗号キー生成回路40から出力されたn+1ビットの内部暗号キーの対応するビットラインの電位と、CPU30から出力されたアドレス信号A0〜Anの対応するアドレス信号と、の排他的論理和を、対応するアドレス信号B0〜Bnとして出力する。つまり、アドレス変換回路50は、n+1ビットの内部暗号キーと、アドレス信号A0〜Anと、の各ビットの排他的論理和を、アドレス信号B0〜Bnとして出力する。
【0033】
(具体的な動作の例)
図3は、CPU暗号キー選択信号と、対応するCPU暗号キーと、の関係を示す図である。以下では、記憶装置20に3ビット(n=2)のアドレス信号が入力され、CPU暗号キー格納部60に4つのCPU暗号キーが格納されている場合を例に説明する。
【0034】
図3の例では、CPU暗号キー格納部60には、CPU暗号キー"101"、"110"、"000"及び"010"が格納されている。なお、CPU30は、CPU暗号キー選択信号が"0"の場合にCPU暗号キー"101"を選択し、CPU暗号キー選択信号が"1"の場合にCPU暗号キー"110"を選択し、CPU暗号キー選択信号が"2"の場合にCPU暗号キー"000"を選択し、CPU暗号キー選択信号が"3"の場合にCPU暗号キー"010"を選択し、内部暗号キー生成回路40に対して出力する。
【0035】
図2をn=2として参照すると、外部から外部暗号キー入力端子S2〜S0を介して外部暗号キー"001"が供給され、外部からCPU暗号キー選択信号入力端子70を介してCPU暗号キー選択信号"0"が供給された場合、CPU30は、4つのCPU暗号キーのうちCPU暗号キー"101"を選択して内部暗号キー生成回路40に対して出力する。内部暗号キー生成回路40において、排他的論理和回路EX10は、外部暗号キーの第1ビットの値"1"とCPU暗号キーの第1ビットの値"1"との排他的論理和である"0"を出力する。排他的論理和回路EX11は、外部暗号キーの第2ビットの値"0"とCPU暗号キーの第2ビットの値"0"との排他的論理和である"0"を出力する。排他的論理和回路EX12は、外部暗号キーの第3ビットの値"0"とCPU暗号キーの第3ビットの値"1"との排他的論理和である"1"を出力する。つまり、内部暗号キー生成回路40は、内部暗号キー"100"を出力する。
【0036】
また、外部から外部暗号キー入力端子S2〜S0を介して外部暗号キー"001"が供給され、外部からCPU暗号キー選択信号入力端子70を介してCPU暗号キー選択信号"2"が供給された場合、CPU30は、4つのCPU暗号キーのうちCPU暗号キー"000"を選択して内部暗号キー生成回路40に対して出力する。内部暗号キー生成回路40において、排他的論理和回路EX10は、外部暗号キーの第1ビットの値"1"とCPU暗号キーの第1ビットの値"0"との排他的論理和である"1"を出力する。排他的論理和回路EX11は、外部暗号キーの第2ビットの値"0"とCPU暗号キーの第2ビットの値"0"との排他的論理和である"0"を出力する。排他的論理和回路EX12は、外部暗号キーの第3ビットの値"0"とCPU暗号キーの第3ビットの値"0"との排他的論理和である"0"を出力する。つまり、内部暗号キー生成回路40は、内部暗号キー"001"を出力する。
【0037】
以上のように、本実施の形態にかかる半導体集積回路10は、アドレス信号A0〜Anによって指定されるアドレスを内部暗号キーに基づいて解読困難なアドレスに変換し、アドレス信号B0〜Bnとして出力することができる。
【0038】
ここで、内部暗号キーは、予めCPU暗号キー格納部60に格納されている複数のCPU暗号キーの中から任意に選択したCPU暗号キーによって変更可能である。このように、内部暗号キーを決定するCPU暗号キーが複数存在し冗長性があるため、アドレス変換則の特定は困難である。なお、内部暗号キーの生成に用いられるCPU暗号キーは、外部から供給されるCPU暗号キー選択信号に基づいて選択される。そのため、半導体集積回路10内部を物理解析することによるアドレス変換則の特定は困難である。
【0039】
さらに、内部暗号キーは、外部から供給される外部暗号キーによっても変更される。そのため、アドレス変換則の特定がさらに困難になるとともに、半導体集積回路10内部を物理解析することによるアドレス変換則の特定が困難になる。
【0040】
また、内部暗号キーは、それぞれ取得方法の異なる2つの暗号キー(外部暗号キー及びCPU暗号キー)に基づいて決定される。したがって、例えば、外部から供給される外部暗号キーが特定されたとしても、予め内部に格納されたCPU暗号キーが特定されなければアドレス変換則の特定は困難である。同様に、予め内部に格納されたCPU暗号キーが特定されたとしても、外部から供給される外部暗号キーが特定されなければアドレス変換則の特定は困難である。なお、外部暗号キー及びCPU暗号キーはそれぞれ取得方法が異なるため、同時に両暗号キーが特定される可能性は低い。
【0041】
これらの理由により、記憶装置に記憶された機密データの記憶位置の特定が従来よりも困難になるため、当該機密データが改ざんされたり読み出されたりすることが防止される。
【0042】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。本実施の形態では、記憶装置20が半導体集積回路10の外部に設けられた場合を例に説明したが、これに限られない。記憶装置20が半導体集積回路10の内部に設けられた構成に適宜変更可能である。
【0043】
また、本実施の形態では、内部暗号キー生成回路40及びアドレス変換回路50が複数の排他的論理和回路により構成される場合を例に説明したが、これに限られない。内部暗号キー生成回路40は、外部暗号キーとCPU暗号キーとを論理演算し所定の演算結果を内部暗号キーとして出力する回路構成に適宜変更可能である。アドレス変換回路50は、内部暗号キーとアドレス信号A0〜Anとを論理演算し所定の演算結果をアドレス信号B0〜Bnとして生成する回路構成に適宜変更可能である。
【符号の説明】
【0044】
10 半導体集積回路
20 記憶装置
30 CPU
40 内部暗号キー生成回路
50 アドレス変換回路
60 CPU暗号キー格納部
70 CPU暗号キー選択信号入力端子
S0〜Sn 外部暗号キー入力端子
EX10〜EX1n 排他的論理和回路
EX20〜EX2n 排他的論理和回路

【特許請求の範囲】
【請求項1】
複数の第1暗号キーを格納する第1暗号キー格納部と、
前記複数の第1暗号キーのうち何れかの第1暗号キーを前記第1暗号キー格納部の中から選択して出力する制御回路と、
前記制御回路によって選択された前記第1暗号キーと、外部から供給された第2暗号キーと、に基づいて第3暗号キーを生成する内部暗号キー生成回路と、
前記制御回路から出力された第1アドレス信号を前記第3暗号キーに基づいて変換し、第2アドレス信号として出力するアドレス変換回路と、を備えた半導体集積回路。
【請求項2】
前記制御回路は、
外部から供給された選択信号に基づいて、前記複数の第1暗号キーのうち何れかの第1暗号キーを前記第1暗号キー格納部の中から選択して出力することを特徴とする請求項1に記載の半導体集積回路。
【請求項3】
前記内部暗号キー生成回路は、
前記制御回路によって選択された前記第1暗号キーと、前記第2暗号キーと、の各ビットの排他的論理和を前記第3暗号キーとして出力することを特徴とする請求項1又は2に記載の半導体集積回路。
【請求項4】
前記アドレス変換回路は、
前記第3暗号キーと、前記第1アドレス信号と、の各ビットの排他的論理和を前記第2アドレス信号として出力することを特徴とする請求項1〜3のいずれか一項に記載の半導体集積回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−174213(P2012−174213A)
【公開日】平成24年9月10日(2012.9.10)
【国際特許分類】
【出願番号】特願2011−38675(P2011−38675)
【出願日】平成23年2月24日(2011.2.24)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】