(57)【要約】【課題】記憶装置に記憶された機密データが容易に改ざんされたり読み出されたりすることを防止することが可能な半導体集積回路を提供すること。【解決手段】本発明にかかる半導体集積回路１０は、複数のＣＰＵ暗号キーを格納するＣＰＵ暗号キー格納部６０と、複数のＣＰＵ暗号キーのうち何れかのＣＰＵ暗号キーをＣＰＵ暗号キー格納部６０の中から選択して出力するＣＰＵ３０と、ＣＰＵ３０によって選択されたＣＰＵ暗号キーと、外部から供給された外部暗号キーと、に基づいて内部暗号キーを生成する内部暗号キー生成回路４０と、ＣＰＵ３０から出力されたアドレス信号Ａ０〜Ａｎを内部暗号キーに基づいて変換し、アドレス信号Ｂ０〜Ｂｎとして出力するアドレス変換回路５０と、を備える。【選択図】図１
2012174213.tif 000002
【特許請求の範囲】
【請求項１】
複数の第１暗号キーを格納する第１暗号キー格納部と、
前記複数の第１暗号キーのうち何れかの第１暗号キーを前記第１暗号キー格納部の中から選択して出力する制御回路と、
前記制御回路によって選択された前記第１暗号キーと、外部から供給された第２暗号キーと、に基づいて第３暗号キーを生成する内部暗号キー生成回路と、
前記制御回路から出力された第１アドレス信号を前記第３暗号キーに基づいて変換し、第２アドレス信号として出力するアドレス変換回路と、を備えた半導体集積回路。
【請求項２】
前記制御回路は、
外部から供給された選択信号に基づいて、前記複数の第１暗号キーのうち何れかの第１暗号キーを前記第１暗号キー格納部の中から選択して出力することを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記内部暗号キー生成回路は、
前記制御回路によって選択された前記第１暗号キーと、前記第２暗号キーと、の各ビットの排他的論理和を前記第３暗号キーとして出力することを特徴とする請求項１又は２に記載の半導体集積回路。
【請求項４】
前記アドレス変換回路は、
前記第３暗号キーと、前記第１アドレス信号と、の各ビットの排他的論理和を前記第２アドレス信号として出力することを特徴とする請求項１〜３のいずれか一項に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に関し、特に記憶装置に対して出力されるアドレス信号の暗号化に適した半導体集積回路に関する。
【背景技術】
【０００２】
不揮発性記憶装置等の記憶装置に記憶された機密データが第三者によって改ざんされたり読み出されたりしないようにするため、当該記憶装置に対して出力されるアドレス信号を暗号化して、記憶装置に記憶された機密データの記憶位置が特定されないようにすることが要求されている。
【０００３】
このような問題に対する解決策が、特許文献１〜特許文献３に開示されている。
【０００４】
図４は、特許文献１に開示されたマイクロプロセッサ１を示すブロック図である。図４に示すようにマイクロプロセッサ１は、マイクロプロセッサチップ１１と、当該マイクロプロセッサチップ１１からのアドレス信号Ａ０〜Ａｎを変換しマイクロプロセッサ１のアドレス信号Ａ０'〜Ａｎ'として記憶装置２に対して出力するアドレス変換回路１３と、当該アドレス変換回路１３の変換機能を変更固定できる変換機能作成回路１２と、を備える。
【０００５】
図５は、マイクロプロセッサ１の一構成例を示すブロック図である。図５に示すように、マイクロプロセッサ１に設けられたアドレス変換回路１３は、アドレス線に対応した数の排他的論理和回路ＥＸ０〜ＥＸｎを有する。排他的論理和回路ＥＸ０〜ＥＸｎの一方の入力端子には、それぞれ変換機能作成回路１２からの"１"レベル又は"０"レベルの電圧が供給される。また、排他的論理和回路ＥＸ０〜ＥＸｎの他方の入力端子には、それぞれマイクロプロセッサチップ１１からのアドレス信号Ａ０〜Ａｎが供給される。
【０００６】
そして、アドレス変換回路１３は、マイクロプロセッサチップ１１からのアドレス信号Ａ０〜Ａｎを変換機能作成回路１２からの固定レベルの電圧に基づいて変化させ、それぞれアドレス信号Ａ０'〜Ａｎ'として出力する。それにより、アドレス変換回路１３は、アドレス信号Ａ０〜Ａｎによって指定されるアドレスを異なるアドレスに変換して、アドレス信号Ａ０'〜Ａｎ'として出力することができる。
【０００７】
図６は、変換機能作成回路１２の一構成例を示す図である。図６に示すように、変換機能作成回路１２は、抵抗Ｒ０〜Ｒｎと、ダイオードＤ０〜Ｄｎと、ニクロムヒューズＦ０〜Ｆｎと、トランジスタＴＲ０〜ＴＲｎと、バッファアンプＢＦ０〜ＢＦｎと、を有する。なお、ＰＡ０〜ＰＡｎは、それぞれアドレス変換回路１３内の排他的論理和回路ＥＸ０〜ＥＸｎの一方の入力端子に接続される端子である。また、ニクロムヒューズＦ０〜Ｆｎは、大規模集積回路化されたプログラマブルロジック素子の実現に使用可能な素子である。
【０００８】
抵抗Ｒ０〜Ｒｎは、それぞれ、"１"レベルの電圧を出力するＶ＋電源と、端子ＰＡ０〜ＰＡｎと、の間に設けられる。回路素子Ｆ０，Ｄ０〜Ｆｎ，Ｄｎは、それぞれ端子ＰＡ０〜ＰＡｎと、"０"レベルの地気と、の間に設けられる。
【０００９】
最初、端子ＰＡ０〜ＰＡｎは、それぞれ回路素子Ｆ０，Ｄ０〜Ｆｎ，Ｄｎを介して地気に接続されている。この状態では、アドレス変換回路１３は、アドレス信号Ａ０〜Ａｎによって指定されるアドレスを変更することなくアドレス信号Ａ０'〜Ａｎ'として出力することとなる。
【００１０】
ところで、端子ＷＡ０〜ＷＡｎからバッファアンプＢＦ０〜ＢＦｎを介してトランジスタＴＲ０〜ＴＲｎに信号が与えられると、電源ＰＷＴからダイオードＤ０〜Ｄｎに向けて瞬間的に大電流が流れる。それにより、ニクロムヒューズＦ０〜Ｆｎが切断され、ダイオードＤ０〜Ｄｎはオープン状態となる。このとき、端子ＰＡ０〜ＰＡｎは、地気との接続が切断されるため、電源Ｖ＋の電圧、即ち"１"レベルの電圧に固定されることとなる。
【００１１】
マイクロプロセッサ１は、各ニクロムヒューズＦ０〜Ｆｎの切断状態に基づいて、アドレス信号Ａ０〜Ａｎによって指定されるアドレスを解読困難なアドレスに変換してアドレス信号Ａ０'〜Ａｎ'として出力している。
【００１２】
特許文献２に開示された技術では、プログラムＲＯＭに含まれるアドレス処理部２４の演算器２８が、ＣＰＵのアドレスバスからの第１アドレスデータの下位８ビットＡ０〜Ａ７と、同じくプログラムＲＯＭに含まれるコード記憶部２６に設定されている８ビットのアドレス演算コードａ０〜ａ７と、を演算し、演算結果Ａ０'〜Ａ７'を出力する。アドレス処理部２４は、第１アドレスデータの下位８ビットＡ０〜Ａ７を演算結果Ａ０'〜Ａ７'に置き換え、Ａ０'〜Ａ７'＋Ａ８〜Ａ１５の合計１６ビットの第２アドレスデータを出力する。
【００１３】
特許文献３に開示された技術では、記憶装置に格納するデータファイル単位にパスワードを設定しておき、当該データファイルに含まれるレコードが複数の場合において、一のレコードに後続する次のレコードの格納領域を指標する次レコードポインタのアドレスを前記設定したパスワードで暗号化して前記一のレコードに付加する。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開昭６３−０４４２４２号公報
【特許文献２】特開２００１−２０９５３１号公報
【特許文献３】特開平０９−０４４４０７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
特許文献１に開示されたマイクロプロセッサ１の場合、アドレスを変換（暗号化）する際のアドレス変換則が、各ニクロムヒューズＦ０〜Ｆｎの切断状態に基づいて一つに固定される。そのため、当該アドレス変換則が容易に特定されてしまう可能性があった。それにより、記憶装置に記憶された機密データが容易に改ざんされたり読み出されたりするという問題があった。
【００１６】
特許文献２に開示された技術の場合、アドレスを変換（暗号化）する際のアドレス変換則が、コード記憶部２６に記憶されたアドレス演算コードａ０〜ａ７に基づいて決定される。そのため、アドレス演算コードが特定されてしまうとアドレス変換則が容易に特定されてしまう可能性があった。それにより、プログラムデータ記憶部２２に記憶された機密データが容易に改ざんされたり読み出されたりするという問題があった。
【００１７】
特許文献３に開示された技術の場合、アドレスを変換（暗号化）する際のアドレス変換則が、端末装置（利用者）６から供給されるパスワードに基づいて決定される。そのため、パスワードが特定されてしまうとアドレス変換則が容易に特定されてしまう可能性があった。それにより、記憶装置に記憶された機密データが容易に改ざんされたり読み出されたりするという問題があった。
【００１８】
このように、従来技術では、アドレス変換則が容易に特定されてしまうため、記憶装置に記憶された機密データが容易に改ざんされたり読み出されたりするという問題があった。
【課題を解決するための手段】
【００１９】
本発明にかかる半導体集積回路は、複数の第１暗号キーを格納する第１暗号キー格納部と、前記複数の第１暗号キーのうち何れかの第１暗号キーを前記第１暗号キー格納部の中から選択して出力する制御回路と、前記制御回路によって選択された前記第１暗号キーと、外部から供給された第２暗号キーと、に基づいて第３暗号キーを生成する内部暗号キー生成回路と、前記制御回路から出力された第１アドレス信号を前記第３暗号キーに基づいて変換し、第２アドレス信号として出力するアドレス変換回路と、を備える。
【００２０】
上述のような回路構成により、アドレス変換則の特定が困難になるため、記憶装置に記憶された機密データが容易に改ざんされたり読み出されたりすることを防止することができる。
【発明の効果】
【００２１】
本発明により、記憶装置に記憶された機密データが容易に改ざんされたり読み出されたりすることを防止することが可能な半導体集積回路を提供することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施の形態１にかかる半導体集積回路を示すブロック図である。
【図２】本発明の実施の形態１にかかる半導体集積回路を示すブロック図である。
【図３】本発明の実施の形態１にかかるＣＰＵ暗号キー選択信号と対応するＣＰＵ暗号キーとの関係を示す図である。
【図４】従来技術のマイクロプロセッサを示すブロック図である。
【図５】従来技術のマイクロプロセッサを示すブロック図である。
【図６】従来技術の変換機能作成回路を示す回路図である。
【発明を実施するための形態】
【００２３】
以下、図面を参照しつつ、本発明の実施の形態について説明する。なお、図面は簡略的なものであるから、この図面の記載を根拠として本発明の技術的範囲を狭く解釈してはならない。また、同一の要素には、同一の符号を付し、重複する説明は省略する。
【００２４】
実施の形態１
図１は、本発明の実施の形態１にかかる半導体集積回路１０を示すブロック図である。本実施の形態にかかる半導体集積回路１０は、アドレス信号（第１アドレス信号）Ａ０〜Ａｎ（ｎは２以上の整数）によって指定されるアドレスを内部暗号キー（第３暗号キー）に基づいて解読困難なアドレスに変換し、アドレス信号（第２アドレス信号）Ｂ０〜Ｂｎとして出力する。ここで、内部暗号キーは、外部から供給される外部暗号キー（第２暗号キー）と、予め内部に格納されている複数のＣＰＵ暗号キー（第１暗号キー）の中から任意に選択されたＣＰＵ暗号キーと、によって決定される。それにより、記憶装置２０に記憶された機密データの記憶位置の特定が従来よりも困難になるため、当該機密データが改ざんされたり読み出されたりすることが防止される。以下、具体的に説明する。
【００２５】
図１に示すように、半導体集積回路１０は、ＣＰＵ（制御回路）３０と、内部暗号キー生成回路４０と、アドレス変換回路５０と、ＣＰＵ暗号キー格納部（第１暗号キー格納部）６０と、を備える。
【００２６】
ＣＰＵ３０は、アドレス信号Ａ０〜Ａｎを生成しアドレス変換回路５０に対して出力するとともに、読出し時には記憶装置２０の記憶領域から読み出されたデータ（不図示）を受け取り、書き込み時には記憶装置２０の記憶領域にデータを出力する。なお、記憶装置２０がデータの読み出しのみ可能な不揮発性記憶装置の場合には、データの書き込み動作は行われない。
【００２７】
半導体集積回路１０には、外部からＣＰＵ暗号キー選択信号入力端子７０を介してＣＰＵ暗号キー選択信号（選択信号）が供給される。ＣＰＵ３０は、ＣＰＵ暗号キー格納部６０に格納された複数のｎ＋１ビットのＣＰＵ暗号キー（第１暗号キー）のうち何れかのＣＰＵ暗号キーをＣＰＵ暗号キー選択信号に基づいて選択する。ＣＰＵ３０によって選択されたＣＰＵ暗号キーは、ＣＰＵ暗号キー格納部６０からＣＰＵ３０に伝達される。
【００２８】
また、半導体集積回路１０には、外部から外部暗号キー入力端子Ｓ０〜Ｓｎを介してｎ＋１ビットの外部暗号キー（第２暗号キー）が供給される。内部暗号キー生成回路４０は、当該外部暗号キーと、ＣＰＵ３０によって選択されたＣＰＵ暗号キーと、を入力し、これらに基づいてｎ＋１ビットの内部暗号キー（第３暗号キー）を生成し、アドレス変換回路５０に対して出力する。
【００２９】
アドレス変換回路５０は、内部暗号キー生成回路４０から出力された内部暗号キーに基づいて、ＣＰＵ３０から出力されたアドレス信号Ａ０〜Ａｎをアドレス信号Ｂ０〜Ｂｎに変換し、記憶装置２０に対して出力する。それにより、記憶装置２０では、アドレス信号Ｂ０〜Ｂｎによって指定されたアドレスの記憶領域にデータが書き込まれ、又は、アドレス信号Ｂ０〜Ｂｎによって指定されたアドレスの記憶領域に記憶されたデータが読み出される。
【００３０】
図２は、本実施の形態にかかる半導体集積回路１０の具体的構成例を示す図である。図２に示すように、半導体集積回路１０において、内部暗号キー生成回路４０は、排他的論理和回路ＥＸ１０〜ＥＸ１ｎを有し、アドレス変換回路５０は、排他的論理和回路ＥＸ２０〜ＥＸｎを有する。
【００３１】
各排他的論理和回路ＥＸ１０〜ＥＸ１ｎは、ｎ＋１ビットの外部暗号キーの対応するビットラインの電位と、ＣＰＵ３０によって選択されたｎ＋１ビットのＣＰＵ暗号キーの対応するビットラインの電位と、の排他的論理和を、ｎ＋１ビットの内部暗号キーの対応するビットラインの電位として出力する。つまり、内部暗号キー生成回路４０は、ｎ＋１ビットの外部暗号キーと、ＣＰＵ３０によって選択されたｎ＋１ビットのＣＰＵ暗号キーと、の各ビットの排他的論理和を、ｎ＋１ビットの内部暗号キーとして出力する。
【００３２】
アドレス変換回路５０において、各排他的論理和回路ＥＸ２０〜ＥＸ２ｎは、内部暗号キー生成回路４０から出力されたｎ＋１ビットの内部暗号キーの対応するビットラインの電位と、ＣＰＵ３０から出力されたアドレス信号Ａ０〜Ａｎの対応するアドレス信号と、の排他的論理和を、対応するアドレス信号Ｂ０〜Ｂｎとして出力する。つまり、アドレス変換回路５０は、ｎ＋１ビットの内部暗号キーと、アドレス信号Ａ０〜Ａｎと、の各ビットの排他的論理和を、アドレス信号Ｂ０〜Ｂｎとして出力する。
【００３３】
（具体的な動作の例）
図３は、ＣＰＵ暗号キー選択信号と、対応するＣＰＵ暗号キーと、の関係を示す図である。以下では、記憶装置２０に３ビット（ｎ＝２）のアドレス信号が入力され、ＣＰＵ暗号キー格納部６０に４つのＣＰＵ暗号キーが格納されている場合を例に説明する。
【００３４】
図３の例では、ＣＰＵ暗号キー格納部６０には、ＣＰＵ暗号キー"１０１"、"１１０"、"０００"及び"０１０"が格納されている。なお、ＣＰＵ３０は、ＣＰＵ暗号キー選択信号が"０"の場合にＣＰＵ暗号キー"１０１"を選択し、ＣＰＵ暗号キー選択信号が"１"の場合にＣＰＵ暗号キー"１１０"を選択し、ＣＰＵ暗号キー選択信号が"２"の場合にＣＰＵ暗号キー"０００"を選択し、ＣＰＵ暗号キー選択信号が"３"の場合にＣＰＵ暗号キー"０１０"を選択し、内部暗号キー生成回路４０に対して出力する。
【００３５】
図２をｎ＝２として参照すると、外部から外部暗号キー入力端子Ｓ２〜Ｓ０を介して外部暗号キー"００１"が供給され、外部からＣＰＵ暗号キー選択信号入力端子７０を介してＣＰＵ暗号キー選択信号"０"が供給された場合、ＣＰＵ３０は、４つのＣＰＵ暗号キーのうちＣＰＵ暗号キー"１０１"を選択して内部暗号キー生成回路４０に対して出力する。内部暗号キー生成回路４０において、排他的論理和回路ＥＸ１０は、外部暗号キーの第１ビットの値"１"とＣＰＵ暗号キーの第１ビットの値"１"との排他的論理和である"０"を出力する。排他的論理和回路ＥＸ１１は、外部暗号キーの第２ビットの値"０"とＣＰＵ暗号キーの第２ビットの値"０"との排他的論理和である"０"を出力する。排他的論理和回路ＥＸ１２は、外部暗号キーの第３ビットの値"０"とＣＰＵ暗号キーの第３ビットの値"１"との排他的論理和である"１"を出力する。つまり、内部暗号キー生成回路４０は、内部暗号キー"１００"を出力する。
【００３６】
また、外部から外部暗号キー入力端子Ｓ２〜Ｓ０を介して外部暗号キー"００１"が供給され、外部からＣＰＵ暗号キー選択信号入力端子７０を介してＣＰＵ暗号キー選択信号"２"が供給された場合、ＣＰＵ３０は、４つのＣＰＵ暗号キーのうちＣＰＵ暗号キー"０００"を選択して内部暗号キー生成回路４０に対して出力する。内部暗号キー生成回路４０において、排他的論理和回路ＥＸ１０は、外部暗号キーの第１ビットの値"１"とＣＰＵ暗号キーの第１ビットの値"０"との排他的論理和である"１"を出力する。排他的論理和回路ＥＸ１１は、外部暗号キーの第２ビットの値"０"とＣＰＵ暗号キーの第２ビットの値"０"との排他的論理和である"０"を出力する。排他的論理和回路ＥＸ１２は、外部暗号キーの第３ビットの値"０"とＣＰＵ暗号キーの第３ビットの値"０"との排他的論理和である"０"を出力する。つまり、内部暗号キー生成回路４０は、内部暗号キー"００１"を出力する。
【００３７】
以上のように、本実施の形態にかかる半導体集積回路１０は、アドレス信号Ａ０〜Ａｎによって指定されるアドレスを内部暗号キーに基づいて解読困難なアドレスに変換し、アドレス信号Ｂ０〜Ｂｎとして出力することができる。
【００３８】
ここで、内部暗号キーは、予めＣＰＵ暗号キー格納部６０に格納されている複数のＣＰＵ暗号キーの中から任意に選択したＣＰＵ暗号キーによって変更可能である。このように、内部暗号キーを決定するＣＰＵ暗号キーが複数存在し冗長性があるため、アドレス変換則の特定は困難である。なお、内部暗号キーの生成に用いられるＣＰＵ暗号キーは、外部から供給されるＣＰＵ暗号キー選択信号に基づいて選択される。そのため、半導体集積回路１０内部を物理解析することによるアドレス変換則の特定は困難である。
【００３９】
さらに、内部暗号キーは、外部から供給される外部暗号キーによっても変更される。そのため、アドレス変換則の特定がさらに困難になるとともに、半導体集積回路１０内部を物理解析することによるアドレス変換則の特定が困難になる。
【００４０】
また、内部暗号キーは、それぞれ取得方法の異なる２つの暗号キー（外部暗号キー及びＣＰＵ暗号キー）に基づいて決定される。したがって、例えば、外部から供給される外部暗号キーが特定されたとしても、予め内部に格納されたＣＰＵ暗号キーが特定されなければアドレス変換則の特定は困難である。同様に、予め内部に格納されたＣＰＵ暗号キーが特定されたとしても、外部から供給される外部暗号キーが特定されなければアドレス変換則の特定は困難である。なお、外部暗号キー及びＣＰＵ暗号キーはそれぞれ取得方法が異なるため、同時に両暗号キーが特定される可能性は低い。
【００４１】
これらの理由により、記憶装置に記憶された機密データの記憶位置の特定が従来よりも困難になるため、当該機密データが改ざんされたり読み出されたりすることが防止される。
【００４２】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。本実施の形態では、記憶装置２０が半導体集積回路１０の外部に設けられた場合を例に説明したが、これに限られない。記憶装置２０が半導体集積回路１０の内部に設けられた構成に適宜変更可能である。
【００４３】
また、本実施の形態では、内部暗号キー生成回路４０及びアドレス変換回路５０が複数の排他的論理和回路により構成される場合を例に説明したが、これに限られない。内部暗号キー生成回路４０は、外部暗号キーとＣＰＵ暗号キーとを論理演算し所定の演算結果を内部暗号キーとして出力する回路構成に適宜変更可能である。アドレス変換回路５０は、内部暗号キーとアドレス信号Ａ０〜Ａｎとを論理演算し所定の演算結果をアドレス信号Ｂ０〜Ｂｎとして生成する回路構成に適宜変更可能である。
【符号の説明】
【００４４】
１０  半導体集積回路
２０  記憶装置
３０  ＣＰＵ
４０  内部暗号キー生成回路
５０  アドレス変換回路
６０  ＣＰＵ暗号キー格納部
７０  ＣＰＵ暗号キー選択信号入力端子
Ｓ０〜Ｓｎ  外部暗号キー入力端子
ＥＸ１０〜ＥＸ１ｎ  排他的論理和回路
ＥＸ２０〜ＥＸ２ｎ  排他的論理和回路
【図１】
2012174213.tif 000003
【図２】
2012174213.tif 000004
【図３】
2012174213.tif 000005
【図４】
2012174213.tif 000006
【図５】
2012174213.tif 000007
【図６】
2012174213.tif 000008