(57)【特許請求の範囲】
【請求項１】
複数のＩＣチップが積層されて、暗号計算を含むデータ処理を実行可能な半導体装置であって、
複数のＩＣチップは、同一の暗号計算を並列に実行してそれぞれの計算結果を算出し、
前記複数のＩＣチップのうちの１個のＩＣチップは、他のＩＣチップによって素子面が被覆され、且つ、前記複数のＩＣチップに対応する前記複数の計算結果を互いに比較し、その比較結果に基づいて後続のデータ処理の内容を制御し、
前記１個のＩＣチップの前記素子面とは逆の面が、さらに他のＩＣチップによって被覆されるように積層され、
前記１個のＩＣチップは、前記複数の計算結果のうち、少なくとも１個が他の計算結果と異なるとき、当該異なる計算結果を出力したＩＣチップに再度前記暗号計算を実行させ、
再計算結果が当初の計算結果と同じ値のときには、故障に対応する処理を開始し、
再計算結果が当初の計算結果と異なる値のときには、攻撃に対応する処理を開始する、
半導体装置。
【請求項２】
請求項１において、前記複数のＩＣチップは、同一の回路構成を有し、前記暗号計算を実行する回路の配置が、平面視で互いに異なる位置にレイアウトされる、
半導体装置。
【請求項３】
請求項１において、前記複数のＩＣチップは同一のレイアウトを有し、互いに±９０°または１８０°回転され、及び／または、互いの素子面又は基板面を対向させて積層される、
半導体装置。
【請求項４】
請求項３において、前記複数のＩＣチップのそれぞれは、それぞれに機能を有する複数の端子を有し、同じ機能の端子が、同一の点を中心として、±９０°または１８０°回転された位置、或いは、ＩＣチップの辺に平行な直線を中心とした対称の位置のうちの少なくとも１ヵ所に配置される、
半導体装置。
【請求項５】
請求項４において、前記複数の端子は、複数の電源端子と複数の接地端子と１個又は複数のデータ入出力端子と１個又は複数のクロック端子と１個又は複数のリセット端子を含む、
半導体装置。
【請求項６】
請求項１において、前記複数のＩＣチップはそれぞれ基板を貫通する電極を有し、前記電極どうしが互いに電気的に接続される、
半導体装置。
【請求項７】
複数のＩＣチップが積層されて、暗号計算を含むデータ処理を実行可能な半導体装置であって、
複数のＩＣチップは、同一の暗号計算を並列に実行してそれぞれの計算結果を算出し、
前記複数のＩＣチップのうちの１個のＩＣチップは、他のＩＣチップによって素子面が被覆され、且つ、前記複数のＩＣチップに対応する前記複数の計算結果を互いに比較し、その比較結果に基づいて後続のデータ処理の内容を制御し、
前記１個のＩＣチップの前記素子面とは逆の面が、さらに他のＩＣチップによって被覆されるように積層され、
前記１個のＩＣチップは、
自身の計算結果が他の計算結果と異なるとき、再度前記暗号計算を実行し、
再計算結果が当初の計算結果と同じ値のときには、故障に対応する処理を開始し、
再計算結果が当初の計算結果と異なる値のときには、攻撃に対応する処理を開始し、
前記複数の計算結果のうち、自身以外の少なくとも１個のＩＣチップによる計算結果が他の計算結果と異なるとき、攻撃に対応する処理を開始する、
半導体装置。
【請求項８】
請求項７において、前記複数のＩＣチップは、同一の回路構成を有し、前記暗号計算を実行する回路の配置が、平面視で互いに異なる位置にレイアウトされる、
半導体装置。
【請求項９】
請求項７において、前記複数のＩＣチップは同一のレイアウトを有し、互いに±９０°または１８０°回転され、及び／または、互いの素子面又は基板面を対向させて積層される、
半導体装置。
【請求項１０】
請求項９において、前記複数のＩＣチップのそれぞれは、それぞれに機能を有する複数の端子を有し、同じ機能の端子が、同一の点を中心として、±９０°または１８０°回転された位置、或いは、ＩＣチップの辺に平行な直線を中心とした対称の位置のうちの少なくとも１ヵ所に配置される、
半導体装置。
【請求項１１】
請求項１０において、前記複数の端子は、複数の電源端子と複数の接地端子と１個又は複数のデータ入出力端子と１個又は複数のクロック端子と１個又は複数のリセット端子を含む、
半導体装置。
【請求項１２】
請求項７において、前記複数のＩＣチップはそれぞれ基板を貫通する電極を有し、前記電極どうしが互いに電気的に接続される、
半導体装置。
【請求項１３】
それぞれが基板を貫通するＴＳＶ電極を有する３個のＩＣチップが積層される、半導体装置であって、
第１のＩＣチップ上に第２のＩＣチップがそれぞれのＴＳＶ電極が互いに接続されて積層され、前記第２のＩＣチップ上に第３のＩＣチップがそれぞれのＴＳＶ電極が互いに接続されて積層され、
前記第１、第２及び第３のＩＣチップは同一のデータ処理をそれぞれ実行してそれぞれの処理結果を算出し、前記第２のＩＣチップは、前記第１、第２及び第３のＩＣチップに対応する処理結果を互いに比較し、その比較結果に基づいて後続のデータ処理の内容を制御する、
半導体装置。
【請求項１４】
請求項１３において、前記第１、第２及び第３のＩＣチップは、前記同一のデータ処理を少なくとも２チップずつ並列に実行する、
半導体装置。
【請求項１５】
請求項１４において、前記データ処理は、暗号処理を構成する一連のラウンドのうちの一部のラウンドである、
半導体装置。
【請求項１６】
請求項１３において、前記第１、第２及び第３のＩＣチップは、前記データ処理が暗号処理のときには、同一の暗号処理をそれぞれ実行してそれぞれの処理結果を算出し、前記第２のＩＣチップは、前記第１、第２及び第３のＩＣチップに対応する処理結果を互いに比較し、
前記第１、第２及び第３のＩＣチップは、前記データ処理が暗号処理以外のときには、当該データ処理をそれぞれ異なるデータ処理に分けて並列に実行する、
半導体装置。
【請求項１７】
複数のＩＣチップが積層されて、暗号計算を含むデータ処理を実行可能な半導体装置であって、
前記複数のＩＣチップのうち、他のＩＣチップによって素子面が被覆される１個の中間層のＩＣチップに、前記データ処理に含まれる処理のうち最も高い耐タンパ性が求められる処理を実行させ、
前記中間層のＩＣチップの前記素子面とは逆の面が、さらに他のＩＣチップによって被覆されるように積層され、
前記複数のＩＣチップは、同一の暗号計算を並列に実行してそれぞれの計算結果を算出し、前記中間層のＩＣチップは、前記複数のＩＣチップに対応する前記複数の計算結果を互いに比較し、
前記複数の計算結果のうち、少なくとも１個が他の計算結果と異なるとき、当該異なる計算結果を出力したＩＣチップに再度前記暗号計算を実行させ、
再計算結果が当初の計算結果と同じ値のときには、故障に対応する処理を開始し、
再計算結果が当初の計算結果と異なる値のときには、攻撃に対応する処理を開始する、
半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、特に複数のＩＣチップが積層され耐タンパ性を有する半導体装置に好適に利用できるものである。
【背景技術】
【０００２】
半導体プロセスの進歩には、解析技術の進歩が伴っている。この解析技術の進歩により、今までは見えなかった物体が見えるようになったり、今まで検知する事ができなかった微量な信号を解析し、性能等の向上を行う事が可能となる。一方で、この解析技術の進歩はセキュリティ技術の開発にも多大なる影響を与える。ＬＳＩ（Large Scale Integrated circuit）デバイスから漏れ出る微少な電磁波を解析して暗号鍵を割り出す、いわゆるサイドチャネルアタックと呼ばれる攻撃がある。また、ＬＳＩをＦＩＢ（Focused Ion Beam）等で加工し、マイクロプロービングによりＬＳＩの信号配線上に流れるデータを読み出す侵襲攻撃や、レーザー等をＬＳＩに照射して故障を注入し、そこから得られたエラーデータを解析するフォールトインジェクション攻撃等の様々な攻撃に発展している。電子機器が所有する資産はクレジットカード情報なども含め、非常に多岐に渡り、重要度が増しているため、これらの情報を守る仕組み、即ちセキュリティレベル（耐タンパ性）の向上が必要となる。
【０００３】
特許文献１には、電力解析攻撃や電磁波解析攻撃において、傍受された電力変化と電磁放射から秘密鍵を取り出すことを困難にするために、乱数発生器と補助演算装置を追加することにより、ＩＣ（Integrated Circuit）チップから漏れる物理的情報の時間変化をより複雑にする、半導体装置が開示されている。
【０００４】
特許文献２には、集積回路のメモリに格納されている情報を第三者に読み出されるのを防止するために、２個のＩＣチップを互いの素子面を対向させて重ね合せて構成された、ＩＣカードが開示されている。
【０００５】
特許文献３には、応力によるチップの破壊を防止するために、セキュリティデータを処理するＩＣカード機能チップを基板の最下層以外の位置に積層する、ＩＣカードが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２３４００１号公報
【特許文献２】特開２０００−３４２７号公報
【特許文献３】特開２００６−１７２１２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１、２及び３について本発明者が検討した結果、以下のような新たな課題があることがわかった。
【０００８】
消費電力や電磁輻射の量を暗号鍵の値に依存して変化しないように平準化することにより、電力解析攻撃や電磁波解析攻撃に対するセキュリティレベル（耐タンパ性）を向上することができる。例えば、特許文献１に開示される半導体装置では、乱数発生器と補助演算装置を追加することにより消費電力や電磁輻射が平準化されると解される。しかし、平準化のためには、本来は不要な処理を追加するために、例えば自動車において要求されるような高速な暗号処理には適さないことがわかった。一方、自動車における暗号処理は、安全性にも関わるため、強力な耐タンパ性が求められる。このため、単純な電力解析攻撃や電磁波解析攻撃に留まらず、半導体チップにおける機能ブロックのレイアウトを知った上で、特定箇所に故障を注入するフォールトインジェクションを行う攻撃や、特定箇所からの電磁輻射を観測する電磁波解析を利用した攻撃に対しても、耐タンパ性を持たせる必要があることがわかった。特許文献２に記載されるＩＣカードは、互いの素子面を対向させて重ね合せたＩＣチップによって構成されているため、素子面から不揮発性メモリの情報が読み出されるという課題は解決されるが、裏面からのレーザー照射によるフォールトインジェクションや電磁波解析に対する対策は考慮されていない。特許文献３に記載されるＩＣカードは、重要なデータを記憶するＩＣチップを、最下層以外の層に積層することによって応力による破壊から守ることができるが、素子面が表面に露出するため、マイクロプロービング、フォールトインジェクション及び電磁波解析などに対する対策は考慮されていない。
【０００９】
平準化技術の採用が適切でない高速な暗号計算を含むデータ処理において、半導体チップにおける機能ブロックのレイアウトを知った上での特定箇所への攻撃、例えば、特定箇所に故障を注入するフォールトインジェクションを行う攻撃や、特定箇所からの電磁輻射を観測する電磁波解析を利用した攻撃に対する耐タンパ性を向上する必要があることがわかった。
【００１０】
このような課題を解決するための手段を以下に説明するが、その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
一実施の形態によれば、下記の通りである。
【００１２】
すなわち、同一の暗号計算を並列に実行する複数のＩＣチップが積層されて、その暗号計算を含むデータ処理を行なう半導体装置であって、複数のＩＣチップに多重化された暗号計算の結果を互いに比較検証するＩＣチップは、他のＩＣチップによって素子面が被覆されるように積層される。
【発明の効果】
【００１３】
前記一実施の形態によって得られる効果を簡単に説明すれば下記のとおりである。
【００１４】
すなわち、平準化技術の採用が適切でない高速な暗号計算を含むデータ処理において、半導体チップにおける機能ブロックのレイアウトを知った上での特定箇所への攻撃に対する耐タンパ性を向上することができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、実施形態１に係る半導体装置の実装例を示す模式図である。
【図２】図２は、半導体装置を構成する各チップの動作例を示す説明図である。
【図３】図３は、半導体装置を構成する各チップによる暗号計算の動作例を示す説明図である。
【図４】図４は、比較検証の動作例を示すフローチャートである。
【図５】図５は、不正対応処理の内容についての説明図である。
【図６】図６は、実施形態２に係る半導体装置の実装例を示す模式図である。
【図７】図７は、実施形態３に係る半導体装置の実装例を示す模式図である。
【図８】図８は、各チップにおける電極の第１の配置例を示すレイアウト図である。
【図９】図９は、各チップにおける電極の第２の配置例を示すレイアウト図である。
【図１０】図１０は、各チップにおける電極の第３の配置例を示すレイアウト図である。
【図１１】図１１は、各チップにおける電極の第４の配置例を示すレイアウト図である。
【図１２】図１２は、実施形態４に係る半導体装置の実装例を示す模式図である。
【図１３】図１３は、実施形態５に係る半導体装置の実装例を示す模式図である。
【図１４】図１４は、半導体装置１４０を裏面側（実装面）から見た場合の斜視図である。
【発明を実施するための形態】
【００１６】
１．実施の形態の概要
先ず、本願において開示される代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１７】
〔１〕＜多重化＆素子面が他チップで被覆されたチップで比較検証＞
本願において開示される代表的な実施の形態は、複数のＩＣチップ（１〜３；４〜６；７＿１〜７＿３）が積層されて、暗号計算を含むデータ処理を実行可能な半導体装置（１００）であって、以下のように構成される。
【００１８】
複数のＩＣチップは、同一の暗号計算（５０＿１〜５０＿３）を並列に実行して（Ｓ１）それぞれの計算結果（５１＿１〜５１＿３）を算出する。
【００１９】
前記複数のＩＣチップのうちの１個のＩＣチップ（２；５；７＿２）は、他のＩＣチップによって素子面が被覆され、且つ、前記複数のＩＣチップに対応する前記複数の計算結果を互いに比較し（Ｓ２，Ｓ３）、その比較結果に基づいて後続のデータ処理（Ｓ４，Ｓ５）の内容を制御する（５３）。
【００２０】
これにより、平準化技術の採用が適切でない高速な暗号計算を含むデータ処理において、半導体チップにおける機能ブロックのレイアウトを知った上での特定箇所への攻撃、例えばマイクロプロービングやレーザー照射によるフォールトインジェクション、電磁波解析等に対する耐タンパ性を向上することができる。
【００２１】
〔２〕＜比較検証を行うＩＣチップの表裏両面を他のチップが覆う積層＞
項１において、前記１個のＩＣチップ（２；５；７＿２）の前記素子面とは逆の面が、さらに他のＩＣチップによって被覆されるように積層される。
【００２２】
これにより、比較検証を行うＩＣチップは、裏面からのフォールトインジェクションに対する耐性も高められる。
【００２３】
〔３〕＜セキュリティ最優先の対応処理＞
項２において、前記１個のＩＣチップは、前記複数の計算結果のうち、少なくとも１個が他の計算結果と異なるとき、攻撃に対応する処理を開始する。
【００２４】
これにより、セキュリティを最も優先する対応処理が実行される。
【００２５】
〔４〕＜故障と攻撃を区別する対応処理＞
項２において、前記１個のＩＣチップは、前記複数の計算結果のうち、少なくとも１個が他の計算結果と異なるとき、当該異なる計算結果を出力したＩＣチップに再度前記暗号計算を実行させる。再計算結果が当初の計算結果と同じ値のときには、故障に対応する処理を開始し、再計算結果が当初の計算結果と異なる値のときには、攻撃に対応する処理を開始する。
【００２６】
これにより、故障と攻撃とを区別して、それぞれに適した対応処理が実行される。例えばソフトエラーを攻撃と誤って判断して、本来は無用な攻撃対応処理が実行されるのを防止することができる。
【００２７】
〔５〕＜中央層のチップについて、故障と攻撃とを区別する対応処理＞
項２において、前記１個のＩＣチップは、自身の計算結果が他の計算結果と異なるとき、再度前記暗号計算を実行する。当該ＩＣチップは、再計算結果が当初の計算結果と同じ値のときには、故障に対応する処理を開始し、再計算結果が当初の計算結果と異なる値のときには、攻撃に対応する処理を開始する。当該ＩＣチップは、前記複数の計算結果のうち、自身以外の少なくとも１個のＩＣチップによる計算結果が他の計算結果と異なるとき、攻撃に対応する処理を開始する。
【００２８】
これにより、故障と攻撃とを区別して、それぞれに適した対応処理が実行される。例えばソフトエラーを攻撃と誤って判断して、本来は無用な攻撃対応処理が実行されるのを防止することができる。
【００２９】
〔６〕＜同一機能で異なるレイアウトのチップを積層＞
項１から項５のうちのいずれか１項において、前記複数のＩＣチップは、同一の回路構成を有し、前記暗号計算を実行する回路の配置が、平面視で互いに異なる位置にレイアウトされる。
【００３０】
これにより、積層された複数チップに対して一括して行う攻撃に対する耐タンパ性を向上させることができる。同一機能のチップ内の配置（レイアウト）がずれて積層されるため、積層構造を貫通する攻撃による影響が、異なる機能を実行する回路が実装される箇所に及ぶので、多重化と比較検証により、攻撃を検知することができるからである。
【００３１】
〔７〕＜同一レイアウトのチップを回転and/or裏返して積層＞
項１から項５のうちのいずれか１項において、前記複数のＩＣチップは同一のレイアウトを有し、互いに±９０°または１８０°回転され、及び／または、互いの素子面又は基板面を対向させて積層される。
【００３２】
これにより、項６と同様に、積層された複数チップに対して一括して行う攻撃に対する耐タンパ性を向上させることができ、さらに、チップコストを低減することができる。ここで、「±９０°」、「１８０°」は、数学的厳密な当該角度を意味するものではなく、工業的に許容される誤差を含む角度である。
【００３３】
〔８〕＜回転and/or線対称の電極配置＞
項７において、前記複数のＩＣチップのそれぞれは、それぞれに機能を有する複数の端子（２１〜２５）を有し、同じ機能の端子が、同一の点を中心として、±９０°または１８０°回転された位置、或いは、ＩＣチップの辺に平行な直線を中心（軸）とした対称の位置のうちの少なくとも１ヵ所に配置される。
【００３４】
これにより、複数のＩＣチップはインターポーザの介在させることなく互いにＴＳＶで接続することができる。ここで、「同一の点」、角度「±９０°」、「１８０°」、「平行な直線」、「中心（軸）」、「対称」とは、それぞれの用語が持つ数学的に厳密な意味を規定するものではなく、それぞれ工業的に許容される誤差を含む。即ち、ＩＣチップが±９０°または１８０°回転されて積層されたとき、または、裏返して積層されたときに、同一の機能を持つ端子どうしが電気的に接続され、その導通が保証できる範囲でのずれは許容される。
【００３５】
〔９〕＜ＶＤＤ／ＧＮＤ／ＩＯ／ＣＬＯＣＫ／ＲＥＳＥＴ端子＞
項８において、前記複数の端子は、複数の電源端子（２１）と複数の接地端子（２２）と１個又は複数のデータ入出力端子（２３）と１個又は複数のクロック端子（２４）と１個又は複数のリセット端子（２５）を含む。
【００３６】
これにより、各チップは必要最小限の端子で接続される。
【００３７】
〔１０〕＜ＴＳＶ接続＞
項１から項９のうちのいずれか１項において、前記複数のＩＣチップはそれぞれ基板を貫通する電極を有し、前記電極どうしが互いに電気的に接続される。
【００３８】
これにより、各チップはＴＳＶで互いに接続される。インターポーザを介在させてもよい。
【００３９】
〔１１〕＜ＴＳＶ積層された３チップ多重化＆中央層のチップで比較検証＞
本願において開示される代表的な実施の形態は、それぞれが基板を貫通するＴＳＶ電極を有する３個のＩＣチップ（１〜３；４〜６；７＿１〜７＿３）が積層される、半導体装置（１００）であって、以下のように構成される。
【００４０】
第１のＩＣチップ（３；６；７＿３）上に第２のＩＣチップ（２；５；７＿２）がそれぞれのＴＳＶ電極が互いに接続されて積層され、前記第２のＩＣチップ上に第３のＩＣチップ（１；４；７＿１）がそれぞれのＴＳＶ電極が互いに接続されて積層される。
【００４１】
前記第１、第２及び第３のＩＣチップは同一のデータ処理をそれぞれ実行してそれぞれの処理結果を算出し、前記第２のＩＣチップは、前記第１、第２及び第３のＩＣチップに対応する処理結果を互いに比較し、その比較結果に基づいて後続のデータ処理の内容を制御する（５３）。
【００４２】
これにより、平準化技術の採用が適切でない高速な暗号計算を含むデータ処理において、半導体チップにおける機能ブロックのレイアウトを知った上での特定箇所への攻撃、例えばマイクロプロービングやレーザー照射によるフォールトインジェクション、電磁波解析等に対する耐タンパ性を向上することができる。第１と第３のＩＣチップ（３と１；６と３；７＿３と７＿１）に挟まれる第２のＩＣチップ（２；５；７＿２）は、素子面と基板面の両面が、積層される他のＩＣチップによって覆われているので、特定の機能ブロックを狙った攻撃を受けたときには、それを覆う第１と第３のＩＣチップのうちの少なくとも一方にも影響が及ぶため、処理結果の比較検証によって攻撃を検知することができる。
【００４３】
〔１２〕＜少なくとも２チップが並列に実行＞
項１１において、前記第１、第２及び第３のＩＣチップは、前記同一のデータ処理を少なくとも２チップずつ並列に実行する。
【００４４】
これにより、処理負荷が分散され、消費電力解析を困難にすることができる。
【００４５】
〔１３〕＜ＡＥＳ暗号を構成するラウンドごとに多重化を設定＞
項１２において、前記データ処理は、暗号処理を構成する一連のラウンドのうちの一部のラウンドである。
【００４６】
これにより、一連のラウンドで構成される、例えばＡＥＳ暗号の処理において、多重化による保護をラウンドごとに設定することができる。
【００４７】
〔１４〕＜暗号処理は多重化／通常処理は並列処理による高速化＞
項１１において、前記第１、第２及び第３のＩＣチップは、前記データ処理が暗号処理（５０）のときには、同一の暗号処理（５０＿１〜５０＿３）をそれぞれ実行してそれぞれの処理結果（５１＿１〜５１＿３）を算出し、前記第２のＩＣチップは、前記第１、第２及び第３のＩＣチップに対応する処理結果を互いに比較（５３）する。前記第１、第２及び第３のＩＣチップは、前記データ処理が暗号処理以外のときには、当該データ処理をそれぞれ異なるデータ処理に分けて並列に実行する。
【００４８】
これにより、暗号化処理に対する耐タンパ性を向上させることができる一方、通常処理についての処理性能を並列処理によって向上することができる。
【００４９】
〔１５〕＜最も高い耐タンパ性が求められる処理を中間層のＩＣチップに割り当て＞
本願において開示される代表的な実施の形態は、複数のＩＣチップ（１〜３；４〜６；７＿１〜７＿３；８〜１０；１１〜１３）が積層されて、暗号計算を含むデータ処理を実行可能な半導体装置（１００）であって、以下のように構成される。
【００５０】
前記複数のＩＣチップのうち、他のＩＣチップによって素子面が被覆される１個の中間層のＩＣチップ（２；５；７＿２；９；１２）に、前記データ処理に含まれる処理のうち最も高い耐タンパ性が求められる処理を実行させる。
【００５１】
これにより、最も高い耐タンパ性が要求される処理が、外部からの攻撃から守られる。中間層のチップはその素子面が他のチップにより覆われているので、半導体チップにおける機能ブロックのレイアウトを知った上での特定箇所への攻撃、例えばマイクロプロービングやレーザー照射によるフォールトインジェクション、電磁波解析等に対する耐タンパ性を向上することができる。
【００５２】
〔１６〕＜複数チップで多重化＆中間層のＩＣチップで比較検証＞
項１５において、前記複数のＩＣチップは、同一の暗号計算（５０＿１〜５０＿３）を並列に実行してそれぞれの計算結果（５１＿１〜５１＿３）を算出し、前記中間層のＩＣチップは、前記複数のＩＣチップに対応する前記複数の計算結果を互いに比較し（Ｓ２，Ｓ３）、その比較結果に基づいて後続のデータ処理の内容（Ｓ４，Ｓ５）を制御する（５３）。
【００５３】
これにより、多重系において最も高い耐タンパ性が求められる、並列処理の結果を比較検証する処理が、最もセキュリティの高い中間層のＩＣチップに割り当てられ、半導体装置全体としての耐タンパ性を向上することができる。
【００５４】
〔１７〕＜中間層のＩＣチップで秘密鍵演算＞
項１５において、前記データ処理は前記暗号計算を含み、前記中間層のＩＣチップに前記暗号計算を実行させ、他のＩＣチップには他の処理を実行させる。
【００５５】
これにより、最も高い耐タンパ性が求められる暗号計算が、最もセキュリティの高い中間層のＩＣチップに割り当てられ、半導体装置全体としての耐タンパ性を向上することができる。
【００５６】
〔１８〕＜中間層のＩＣチップで署名の処理＞
項１５において、前記データ処理は前記暗号計算として署名の処理と証明書の認証処理とを含み、前記中間層のＩＣチップに前記署名の処理を実行させ、他のＩＣチップには前記証明書の認証処理を含む他の処理を実行させる。
【００５７】
これにより、最も高い耐タンパ性が求められる署名の処理が、最もセキュリティの高い中間層のＩＣチップに割り当てられ、半導体装置全体としての耐タンパ性を向上することができる、一方、高速性が要求される証明書の認証処理が他のＩＣチップに割り当てられる。暗号処理において署名は秘密鍵を用いるため秘匿度が高いのに対して、証明書の認証は一般に公開鍵を用いるため情報の秘匿度が比較的低い一方、証明書の発行数の増加に伴って高速な処理が求められる。
【００５８】
〔１９〕＜中間層のＩＣチップの表裏両面を他のチップが積層＞
項１５から項１８のうちのいずれか１項において、前記中間層のＩＣチップの前記素子面とは逆の面が、さらに他のＩＣチップによって被覆されるように積層される。
【００５９】
これにより、中間層のＩＣチップは、裏面からのフォールトインジェクションに対する耐性も高められ、複数のＩＣチップの中で最も高い耐タンパ性がさらに高くされる。
【００６０】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００６１】
〔実施形態１〕＜積層チップで並列処理＆素子面が覆われたチップで比較検証＞
図１は、実施形態１に係る半導体装置１００の実装例を示す模式図である。半導体装置１００は同一の半導体チップ（ＩＣチップ，Ｃｈｉｐ＿Ａ，Ｃｈｉｐ＿Ｂ，Ｃｈｉｐ＿Ｃ）１〜３を３層に重ねた構造を取る。ここで使用するＩＣチップＣｈｉｐ＿Ａ（１），Ｃｈｉｐ＿Ｂ（２），Ｃｈｉｐ＿Ｃ（３）は、例えば、それぞれがＣＰＵ３０＿１〜３０＿３とＲＯＭ３１＿１〜３１＿３とＲＡＭ３２＿１〜３２＿３とを含んで構成されるデバイスである。Ｃｈｉｐ＿Ｃ（３）が最も下の層（段）に配置され、その素子面にＣｈｉｐ＿Ｂ（２）が、さらにその素子面にＣｈｉｐ＿Ａ（１）が、順次積層され、互いにシリコン基板貫通電極（ＴＳＶ：Through Silicon Via）２０によって接続される。特に制限されないが、ＩＣチップＣｈｉｐ＿Ａ（１），Ｃｈｉｐ＿Ｂ（２），Ｃｈｉｐ＿Ｃ（３）は、例えば、公知のＣＭＯＳ（Complementary Metal-Oxide-Semiconductor field effect transistor）ＬＳＩの製造技術を用いて、シリコンなどの単一半導体基板上に形成される。
【００６２】
図２は、半導体装置１００を構成する各チップの動作例を示す説明図である。
【００６３】
３個のＩＣチップＣｈｉｐ＿Ａ（１），Ｃｈｉｐ＿Ｂ（２），Ｃｈｉｐ＿Ｃ（３）は同じ暗号計算を並列処理するように多重化されており、その計算結果は中間層のＩＣチップＣｈｉｐ＿Ｂ（２）で互いに比較検証されることにより、マイクロプロービングやレーザーなどによるフォールトインジェクションを伴う攻撃があったときには、それを検出してその攻撃に対する処理に進む。即ち、ＩＣチップＣｈｉｐ＿Ａ（１），Ｃｈｉｐ＿Ｂ（２），Ｃｈｉｐ＿Ｃ（３）は、同一の暗号計算（５０＿１〜５０＿３）を並列に実行してそれぞれの計算結果（５１＿１〜５１＿３）を算出する。３個のＩＣチップのうちの中間層のＣｈｉｐ＿Ｂ（２）は、３個のＩＣチップＣｈｉｐ＿Ａ（１），Ｃｈｉｐ＿Ｂ（２），Ｃｈｉｐ＿Ｃ（３）に対応する計算結果（５１＿１〜５１＿３）を比較検証５３する、即ち、計算結果（５１＿１〜５１＿３）を互いに比較し、その比較結果に基づいて後続のデータ処理（Ｓ４，Ｓ５）の内容を制御する。なお、全体のタイムマネージメント５２は、Ｃｈｉｐ＿Ｂ（２）が行うとよい。
【００６４】
これにより、平準化技術の採用が適切でない高速な暗号計算を含むデータ処理において、半導体チップにおける機能ブロックのレイアウトを知った上での特定箇所への攻撃、例えばマイクロプロービングやレーザー照射によるフォールトインジェクション、電磁波解析等に対する耐タンパ性を向上することができる。
【００６５】
３個のＩＣチップＣｈｉｐ＿Ａ（１），Ｃｈｉｐ＿Ｂ（２），Ｃｈｉｐ＿Ｃ（３）は同じ暗号計算を並列処理するように多重化されているので、本来、同じ計算結果を出力するはずである。マイクロプロービングやレーザーなどによるフォールトインジェクションを伴う攻撃があったときには、そのうちのいくつかが、誤った計算結果を出力する。３個のＩＣチップを使って３重化すると、その３個のＩＣチップ全てに同時に同じ故障を注入するフォールトインジェクションは実際上不可能に近いので、３つの計算結果を互いに比較することにより、攻撃があったことを検知することができ、攻撃に対処するために適切な処理に移行することができる。しかしながら、３個の計算結果を比較検証する回路に直接故障が注入されると、これを外部からの攻撃として検出することが困難になる場合がある。そこで、本実施形態では、比較検証の機能を中間層のＩＣチップＣｈｉｐ＿Ｂ（２）に割り当てる。中間層のＩＣチップＣｈｉｐ＿Ｂ（２）が３チップのうちで最も高い耐タンパ性を持っているからである。中間層のＩＣチップＣｈｉｐ＿Ｂ（２）は、素子面を上層のＩＣチップＣｈｉｐ＿Ａ（１）で覆われ、基板面を下層のＩＣチップＣｈｉｐ＿Ｃ（３）で覆われている。そのため、中間層のＩＣチップＣｈｉｐ＿Ｂ（２）に対するマイクロプロービングやレーザー照射によるフォールトインジェクションは、攻撃が表面からであれば上層のＩＣチップＣｈｉｐ＿Ａ（１）に対しても、又は攻撃が裏面からであれば下層のＩＣチップＣｈｉｐ＿Ｃ（３）に対しても必ず影響があり、３個の同じ計算結果を出力することはできないものと考えられるからである。このように、フォールトインジェクションがあったときには、それを的確に検知して攻撃に対処する処理に移行することができるので、フォールトインジェクションを伴う消費電力解析や電磁波解析などのサイドチャネル攻撃に対抗するために、処理や回路を必ずしも平準化する必要がない。
【００６６】
本実施形態では、３チップによって３重化する例を示したが、２チップによる２重化であってもよい。このとき、比較検証の機能を持たせるＩＣチップは、素子面が他のＩＣチップで覆われたＩＣチップとするのが好適である。裏面（基板面）からはマイクロプロービングは不可能であり、レーザーによるフォールトインジェクションも、基板によってレーザー光が吸収、散乱を受けることから、精度が低くなるため、これらの攻撃に対して耐タンパ性を比較的高く保つことができるからである。また４チップ以上を積層した多重化を採用してもよい。このとき、４チップを並列動作させ、４個の処理結果を比較検証するように構成しても良いし、２個ずつ並列動作させて２個ずつの処理結果を比較検証するように構成してもよい。またさらには、３チップを上述のように３並列動作させ３個の処理結果を比較検証するように構成し、その他のチップにはセキュリティを要求されない通常処理を並列に実行させてもよい。
【００６７】
３個のＩＣチップＣｈｉｐ＿Ａ（１），Ｃｈｉｐ＿Ｂ（２），Ｃｈｉｐ＿Ｃ（３）は、同一チップであると好適である。ただし、電極（ＴＳＶ）の配置（レイアウト）が異なっていてもよい。チップを±９０°あるいは１８０°回転させたり、裏返して素子面どうし、或いは基板面どうしを貼り合せるように、積層してもよい。詳しくは実施形態３で後述する。このとき、３個のＩＣチップＣｈｉｐ＿Ａ（１），Ｃｈｉｐ＿Ｂ（２），Ｃｈｉｐ＿Ｃ（３）は、同一チップであるので、同一の処理を同時に開始すれば同時に同じ計算結果（処理結果）を得ることができるはずだからである。また、同一チップとすることにより、半導体製造工程におけるマスク枚数を減らすことができるなどの量産効果により、コストを低減することができる。
【００６８】
３個のＩＣチップＣｈｉｐ＿Ａ（１），Ｃｈｉｐ＿Ｂ（２），Ｃｈｉｐ＿Ｃ（３）がそれぞれＴＳＶを有し、さらにそのＴＳＶが積層されるＩＣチップ間で互いに接続される例を示したが、チップ間にはインターポーザを挿入して、レイアウトが互いにずれているＴＳＶどうしが接続されるように構成しても良い。また、ＴＳＶに代えてワイヤーボンディング等によってチップ間を接続してもよい。
【００６９】
＜タイムマネージメント＞
図３は、半導体装置１００を構成する各チップによる暗号計算の動作例を示す説明図である。横軸を時間とし、縦軸方向に各チップＣｈｉｐ＿Ａ（１），Ｃｈｉｐ＿Ｂ（２），Ｃｈｉｐ＿Ｃ（３）による暗号計算の内容とＣＰＵ負荷が示される。暗号計算の一例として、共通鍵暗号方式の１つであるＡＥＳ−１２８（Advanced Encryption Standard -128）を取り上げている。ＡＥＳ−１２８は、ラウンド（Round）１〜１０の暗号化操作で構成される。図３は、ＡＥＳ−１２８のラウンド処理にタイムマネージメントを適応した動作例である。
【００７０】
図２で説明した、Ｃｈｉｐ＿Ｂ（２）で作成されたタイムマネージメント５２に則り、時刻ｔ１にＣｈｉｐ＿Ｂ（２）とＣｈｉｐ＿Ｃ（３）でラウンド１〜５の処理を開始する。時刻ｔ２にラウンド５までの処理を終了して、Ｃｈｉｐ＿Ｃ（３）の処理を中断し、Ｃｈｉｐ＿Ａ（１）のラウンド１〜５の処理を開始する。Ｃｈｉｐ＿Ｂ（２）、そのままラウンド６〜１０の処理を実施する。時刻ｔ３にＣｈｉｐ＿Ｂ（２）のラウンド１０の処理が終了し処理結果Ｂ（５１＿２）を生成する。同じく時刻ｔ３に、中断していたＣｈｉｐ＿Ｃ（３）はラウンド６〜１０の処理を開始する。Ｃｈｉｐ＿Ａ（１）は時刻ｔ３にラウンド５までの処理を終了して、ラウンド６〜１０の処理を開始する。Ｃｈｉｐ＿Ａ（１）とＣｈｉｐ＿Ｃ（３）は時刻ｔ４にラウンド１０までの処理を終了し、それぞれ処理結果Ａ（５１＿１）と処理結果Ｃ（５１＿３）とを生成する。
【００７１】
Ｃｈｉｐ＿Ｂ（２）は３個のチップの中で最も処理が早く終了するので、Ｃｈｉｐ＿Ａ（１）、Ｃｈｉｐ＿Ｂ（２）及びＣｈｉｐ＿Ｃ（３）の処理結果Ａ、Ｂ及びＣ（５１＿１〜５１＿３）が出揃うまで待機し、出揃った時刻ｔ４から比較検証５３を開始する。このようなタイムマネージメントを行う事で、ＣＰＵの処理負荷を分散し、消費電流解析を困難にする事が可能となる。ＣＰＵの主な処理負荷は、時刻ｔ１〜ｔ５は暗号処理であり、時刻ｔ１以前と時刻ｔ４以降は別の処理によるものであるが、時刻ｔ１以前と時刻ｔ４以降にダミーの処理（負荷）を追加してＣＰＵの処理負荷を平準化してもよい。これにより、消費電力解析をより困難にすることができる。
【００７２】
上述の説明から明らかなように、本実施形態でいうところの「同じ暗号計算を並列処理する」は、必ずしも同時に並列処理することを要件とはしていない。同じ暗号計算が異なるチップでそれぞれ処理されればよい。同時に並列処理されればデータ処理全体の処理時間を短縮することができ、高速化に資する一方、図３に例示するように、ＣＰＵ負荷を分散することにより、消費電流を平準化することができ、消費電力解析などに対する耐タンパ性を向上することができる。
【００７３】
＜比較検証＞
図４は、比較検証５３の動作例を示すフローチャートである。３チップ並列の暗号計算処理を行なう（Ｓ１）。図３に例示するように、ＣＰＵの処理負荷を平準化するために同時ではない並列処理を行なっても良いし、同時並列の暗号化処理を行なっても良い。Ｃｈｉｐ＿Ａ（１）とＣｈｉｐ＿Ｃ（３）のそれぞれの暗号処理の結果である、処理結果Ａ（５１＿１）と処理結果Ｃ（５１＿３）とが揃った時点で、Ｃｈｉｐ＿Ａ（１）の処理結果Ａ（５１＿１）とＣｈｉｐ＿Ｃ（３）の処理結果Ｃ（５１＿３）とを比較する（Ｓ２）。Ｃｈｉｐ＿Ａ（１）の処理結果Ａ（５１＿１）とＣｈｉｐ＿Ｃ（３）の処理結果Ｃ（５１＿３）とが異なる場合には不正対応処理（Ｓ５）に進む。Ｃｈｉｐ＿Ａ（１）の処理結果Ａ（５１＿１）とＣｈｉｐ＿Ｃ（３）の処理結果Ｃ（５１＿３）とが等しい場合には次の判断（Ｓ３）に進み、その結果（処理結果Ａ（５１＿１）＝処理結果Ｃ（５１＿３））とＣｈｉｐ＿Ｂ（２）の処理結果Ｂ（５１＿２）と比較する（Ｓ３）。処理結果Ａ（５１＿１）＝処理結果Ｃ（５１＿３）とＣｈｉｐ＿Ｂ（２）の処理結果Ｂ（５１＿２）とが異なる場合には不正対応処理（Ｓ５）に進む。３個のチップＣｈｉｐ＿Ａ（１）、Ｃｈｉｐ＿Ｂ（２）及びＣｈｉｐ＿Ｃ（３）のそれぞれの暗号処理の結果、処理結果Ａ（５１＿１）、処理結果Ｂ（５１＿２）及び処理結果Ｃ（５１＿３）が全て等しいときには、通常の処理に戻る（Ｓ４）。
【００７４】
３個のチップＣｈｉｐ＿Ａ（１）、Ｃｈｉｐ＿Ｂ（２）及びＣｈｉｐ＿Ｃ（３）のそれぞれの暗号処理の結果、処理結果Ａ（５１＿１）、処理結果Ｂ（５１＿２）及び処理結果Ｃ（５１＿３）のうちの少なくとも１個が他の処理結果と異なるときには、不正な攻撃を受けたものと判断して不正対応処理（Ｓ５）に進む。不正対応処理（Ｓ５）は、攻撃に対応する処理であり、例えば、秘匿とする情報を守るために、ＲＡＭ３２とＲＯＭ３１のデータを消去する等の処理を行なう。さらに外部にサーバー等の管理装置が接続される場合には、攻撃を受けている或いは受けた事実をその管理装置宛てに報告するように構成してもよい。
【００７５】
＜不正対応処理＞
不正対応処理（Ｓ５）は、セキュリティポリシーに基づいて適切に設計される。セキュリティポリシーには、セキュリティを最重要視するセキュリティ重視型から、できる限り通常の処理を継続させるように配慮された機能重視型まで、様々な変形例がある。多重化された並列処理において他と異なる処理結果が検出されたとしても、必ずしもサイドチャネル攻撃を受けたとは限らないからである。他と異なる処理結果を生じる原因としては、他に、許容範囲外の温度など動作環境による一時的あるいは恒久的な故障、電源ノイズや電磁的ノイズ、アルファ線によるソフトエラーなどが考えられる。一時的な故障やソフトエラーの場合に、通常処理に復帰するフローを備えてもよいし、恒久的な故障の場合でもＲＯＭに記憶される秘匿されるべき情報が温存されるフローを備えてもよい。これは、半導体装置１００が搭載される機器に応じて適切に規定されるセキュリティポリシーに基づいて規定される。
【００７６】
図５は、不正対応処理の内容についての説明図である。セキュリティ重視型の一例と、機能重視型の一例が示される。それぞれ、３個のチップＣｈｉｐ＿Ａ（１）、Ｃｈｉｐ＿Ｂ（２）及びＣｈｉｐ＿Ｃ（３）のそれぞれの暗号処理の結果、処理結果Ａ（５１＿１）、処理結果Ｂ（５１＿２）及び処理結果Ｃ（５１＿３）が、他のチップの処理結果と同一であるか異なるかによって場合分けし、それぞれの場合の処理を内容が例示される。
【００７７】
セキュリティ重視型において、Ｃｈｉｐ＿Ａ（１）、Ｃｈｉｐ＿Ｂ（２）及びＣｈｉｐ＿Ｃ（３）の処理結果Ａ（５１＿１）、処理結果Ｂ（５１＿２）及び処理結果Ｃ（５１＿３）が全て同一の場合には、正常動作であるとして次の通常処理へ進む（図４ではＳ４）。Ｃｈｉｐ＿Ａ（１）またはＣｈｉｐ＿Ｃ（３）の処理結果Ａ（５１＿１）または処理結果Ｃ（５１＿３）の一方が他の２チップの処理結果と異なる場合には、攻撃があったものと判断して処理を中断し、異常終了報告を行う。Ｃｈｉｐ＿Ｂ（２）の処理結果Ｂ（５１＿２）が他の２チップの処理結果と異なる場合には、Ｃｈｉｐ＿Ｂ（２）に再処理を実行させる。３チップ全てに再処理を実行させてもよい。これにより、再処理の実行中も消費電力が平準化され消費電力解析を伴う攻撃に対する耐タンパ性を維持することができる。再処理後の処理結果Ｂ（５１＿２）が再処理前の処理結果Ｂ（５１＿２）と同じ値で、他の２チップの処理結果と異なる場合には、故障と判断し故障報告を行う。再処理後の処理結果Ｂ（５１＿２）が再処理前の処理結果Ｂ（５１＿２）と異なる値の場合には、攻撃と判断して処理を中断し、異常終了報告を行う。
【００７８】
３チップが積層されている場合には、表面または裏面のチップ、この例ではＣｈｉｐ＿Ａ（１）とＣｈｉｐ＿Ｃ（３）は、フォールトインジェクションに対して比較的弱いのに対して、表面または裏面のチップに影響を与えることなく中間層のＣｈｉｐ＿Ｂ（２）のみにフォールトインジェクションを行うことは、技術的難度が高い。そのため、中間層のＣｈｉｐ＿Ｂ（２）の処理結果Ｂ（５１＿２）が他の２チップの処理結果と異なる場合には、故障である可能性が高いため、再処理を実行して確認している。恒久的な故障の場合は生成される処理結果Ｂ（５２＿２）が同じ値となると考えられるので、同じ値で他の２チップの処理結果と異なる場合には、故障と判断する。一方、フォールトインジェクションの場合には、同じ値の故障を注入することは一般的には不可能であるので、再処理の結果が異なる値で他の２チップの処理結果と異なる場合には、攻撃と判断して処理を中断し、異常終了報告を行うのである。
【００７９】
中間層のＣｈｉｐ＿Ｂ（２）の処理結果Ｂ（５１＿２）が他の２チップの処理結果と異なる場合にも、他のＣｈｉｐ＿Ａ（１）またはＣｈｉｐ＿Ｃ（３）の処理結果Ａ（５１＿１）または処理結果Ｃ（５１＿３）の一方が他の２チップの処理結果と異なる場合と同様に、直ちに、攻撃があったものと判断して処理を中断し、異常終了報告を行ってもよい。
【００８０】
機能重視型においても、Ｃｈｉｐ＿Ａ（１）、Ｃｈｉｐ＿Ｂ（２）及びＣｈｉｐ＿Ｃ（３）の処理結果Ａ（５１＿１）、処理結果Ｂ（５１＿２）及び処理結果Ｃ（５１＿３）が全て同一の場合には、正常動作であるとして次の通常処理へ進む（図４ではＳ４）。Ｃｈｉｐ＿Ａ（１）、Ｃｈｉｐ＿Ｂ（２）またはＣｈｉｐ＿Ｃ（３）の処理結果Ａ（５１＿１）、処理結果Ｂ（５１＿２）または処理結果Ｃ（５１＿３）のうちの１個が他の２チップの処理結果と異なる場合には、異なる処理結果を出力したチップに再処理を実行させる。３チップ全てに再処理を実行させても良い。これにより、再処理の実行中も消費電力が平準化され消費電力解析を伴う攻撃に対する耐タンパ性を維持することができる。再処理を実行したチップにおいて、再処理後の処理結果が再処理前の処理結果と同じ値で、他の２チップの処理結果と異なる場合には、故障と判断し故障報告を行う。３チップのうちの１チップに恒久的な故障が発生した場合を想定した対処である。一方、再処理後の処理結果が再処理前の処理結果と異なる値の場合には、攻撃と判断して処理を中断し、異常終了報告を行う。
【００８１】
攻撃に対処するための処理では、秘匿されるべき情報を守るために、例えばＲＡＭとＲＯＭのデータを消去する等の処理を行なうが、故障に対処するための処理では、ＲＯＭに格納される情報は、秘匿されるべき情報であっても温存される。ただし、これは一例であって、秘匿されるべき情報の消去と温存の判断は、半導体装置１００が搭載される機器ごと、アプリケーションごとのセキュリティポリシーによって、規定されるべきものである。
【００８２】
〔実施形態２〕＜同一機能×異なるレイアウト＞
図６は、実施形態２に係る半導体装置１００の実装例を示す模式図である。半導体装置１００は、半導体チップ（ＩＣチップ，Ｃｈｉｐ＿Ｄ，Ｃｈｉｐ＿Ｅ，Ｃｈｉｐ＿Ｆ）４〜６を３層に重ねた構造を取る。Ｃｈｉｐ＿Ｆ（６）が最も下に配置され、その素子面上にＣｈｉｐ＿Ｅ（５）が、さらにその素子面上にＣｈｉｐ＿Ｄ（４）が、順次積層され、互いにシリコン基板貫通電極（ＴＳＶ）２０によって接続される。ＩＣチップＣｈｉｐ＿Ｄ（４），Ｃｈｉｐ＿Ｅ（５），Ｃｈｉｐ＿Ｆ（６）は、図１に示した実施形態１の半導体装置と同様に、それぞれが同一機能を有し、例えばそれぞれがＣＰＵ３０＿４〜３０＿６とＲＯＭ３１＿４〜３１＿６とＲＡＭ３２＿４〜３２＿６とを含んで構成されるデバイスであるが、それぞれに搭載される機能ブロックの配置（レイアウト）が異なる。
【００８３】
サイドチャネル攻撃には、チップから漏れ出る電磁波を解析し、攻撃個所を特定する手法が存在している。これは、計算を行う際に、ＣＰＵにより多くの電力が供給されるため、そこから漏れ出る電磁波もそれに比例して大きくなる事を利用している。
【００８４】
図６に示されるように、積層される各ＩＣチップＣｈｉｐ＿Ｄ（４），Ｃｈｉｐ＿Ｅ（５），Ｃｈｉｐ＿Ｆ（６）において、各ＣＰＵ３０＿４〜３０＿６が配置（レイアウト）される位置を互いに異なるように積層することにより、チップから漏れ出る電磁波の強度が面内で平準化され、ＣＰＵ３０＿４〜３０＿６の位置を特定することを困難にし、前述の攻撃に対する耐性を高めることができる。
【００８５】
実施形態２に係る半導体装置１００も、並列動作、比較検証及び不正対応処理については、実施形態１と同様に動作させることができるので、これらの動作についての説明は省略する。
【００８６】
図６には、各ＣＰＵ３０＿４〜３０＿６の配置が著しく異なるように図示されるが、必ずしも完全に異なる位置とする必要はなく、一部が重なるように配置してもよい。各ＣＰＵ３０＿４〜３０＿６の重なるように配置することで、攻撃者は攻撃する部位の特定が困難となる。また、積層された複数チップに対して一括して行う攻撃に対する耐タンパ性を向上させることができる。同一機能のチップ内の配置（レイアウト）がずれて積層されるため、積層構造を貫通する攻撃による影響が、回路面では異なる機能を実行する箇所に及ぶので、多重化と比較検証により、攻撃を検知することができるからである。
【００８７】
〔実施形態３〕＜同一機能×同一レイアウト×チップの回転and/or裏返し＞
図７は、実施形態３に係る半導体装置１００の実装例を示す模式図である。半導体装置１００は、同一の半導体チップ（ＩＣチップ，Ｃｈｉｐ＿Ｄ，Ｃｈｉｐ＿Ｅ，Ｃｈｉｐ＿Ｆ）７＿１〜７＿３を３層に重ねた構造を取る。Ｃｈｉｐ＿Ｆ（７＿３）が最も下に配置され、その上にＣｈｉｐ＿Ｅ（７＿２）が、さらにその上にＣｈｉｐ＿Ｄ（７＿１）が、順次積層され、互いにシリコン基板貫通電極（ＴＳＶ）２０によって接続される。ＩＣチップＣｈｉｐ＿Ｄ（７＿１），Ｃｈｉｐ＿Ｅ（７＿２），Ｃｈｉｐ＿Ｆ（７＿３）は、それぞれが同一機能、同一レイアウトを有する同一チップであるが、回転し、裏返し、又は裏返した上でさらに回転して積層することにより、同一機能を持つ回路ブロックの表面から見たときの相対的な配置が、チップ毎に異なるようにすることができる。
【００８８】
これにより、実施形態２と同様に、攻撃対象の部位の特定を困難にし、積層された複数チップに対して一括して行う攻撃に対する耐タンパ性を向上させることができる。さらに、積層される各チップが同一のチップとされるので、チップコストを低減することができる。
【００８９】
ここで、同一機能、同一レイアウトを有する同一チップを、回転し、裏返し、又は裏返した上でさらに回転して積層するときにも、同一機能の電極が同じ位置に配置されように構成すると、インターポーザを介在させることなく、または、直線的に接続するだけの簡単な構造のインターポーザを介在させるだけで、上下の同一機能の電極を互いに接続することができる。
【００９０】
図８〜図１１に各チップにおける電極配置の例を示す。暗号計算を含むデータ処理を行なう半導体装置が搭載されるデバイスの一例としてＩＣカードがある。ＩＣカードについて、電極を含むインターフェース仕様は標準規格によって規定されており、例えば国際標準規格ＩＳＯ／ＩＥＣ７８１６−２には、ＩＣカードは、電極として電源（ＶＤＤ）、接地（ＧＮＤ）、データ入出力（Ｉ／Ｏ）、クロック（Ｃｌｏｃｋ）及びリセット（Ｒｅｓｅｔ）の５個の電極を備えるように規定されている。一般に端子数が多い程、セキュリティレベル（耐タンパ性）が低下すると考えられるので、必要最小限の端子数で構成するのが良い。図８〜図１１において、電源（ＶＤＤ）、接地（ＧＮＤ）、データ入出力（Ｉ／Ｏ）、クロック（Ｃｌｏｃｋ）及びリセット（Ｒｅｓｅｔ）は、それぞれ丸付きの１から５まで数字で示される。データ入出力（Ｉ／Ｏ）の電極は、１チップ内に複数設けられるが、これは多ビットのデータ入出力を並列に行う電極ではなく、機能的に全く同一の１ビットシリアルのデータ入出力（Ｉ／Ｏ）の電極が電気的に並列に設けられているものである。
【００９１】
図８は、各チップにおける電極の第１の配置例を示すレイアウト図である。
【００９２】
左辺には、ＶＤＤ２１＿１、ＧＮＤ２２＿１、Ｉ／Ｏ２３＿１、Ｃｌｏｃｋ２４＿１、Ｒｅｓｅｔ２５＿１、Ｃｌｏｃｋ２４＿２、Ｉ／Ｏ２３＿２、ＧＮＤ２２＿２、ＶＤＤ２１＿２が順次配置される。
【００９３】
右辺には、ＶＤＤ２１＿３、ＧＮＤ２２＿３、Ｉ／Ｏ２３＿３、Ｃｌｏｃｋ２４＿３、Ｒｅｓｅｔ２５＿３、Ｃｌｏｃｋ２４＿４、Ｉ／Ｏ２３＿４、ＧＮＤ２２＿４、ＶＤＤ２１＿４が順次配置される。
【００９４】
上辺には、ＶＤＤ２１＿１、ＧＮＤ２２＿５、Ｉ／Ｏ２３＿５、Ｃｌｏｃｋ２４＿５、Ｒｅｓｅｔ２５＿５、Ｃｌｏｃｋ２４＿６、Ｉ／Ｏ２３＿６、ＧＮＤ２２＿６、ＶＤＤ２１＿３が順次配置される。
【００９５】
下辺には、ＶＤＤ２１＿２、ＧＮＤ２２＿７、Ｉ／Ｏ２３＿７、Ｃｌｏｃｋ２４＿７、Ｒｅｓｅｔ２５＿７、Ｃｌｏｃｋ２４＿８、Ｉ／Ｏ２３＿８、ＧＮＤ２２＿８、ＶＤＤ２１＿４が順次配置される。
【００９６】
左辺の各電極は、チップが＋９０°回転されたときに上辺のそれぞれ同一機能電極と同じ位置に重なり、チップが−９０°回転されたときに下辺のそれぞれ同一機能電極と同じ位置に重なり、１８０°回転されたときに右辺のそれぞれ同一機能電極と同じ位置に重なるように配置されている。即ち、ＶＤＤ２１＿１、ＧＮＤ２２＿１、Ｉ／Ｏ２３＿１、Ｃｌｏｃｋ２４＿１、Ｒｅｓｅｔ２５＿１は、＋９０°回転したときに、ＶＤＤ２１＿３、ＧＮＤ２２＿６、Ｉ／Ｏ２３＿６、Ｃｌｏｃｋ２４＿６、Ｒｅｓｅｔ２５＿５に重なり、−９０°回転したときに、ＶＤＤ２１＿２、ＧＮＤ２２＿７、Ｉ／Ｏ２３＿７、Ｃｌｏｃｋ２４＿７、Ｒｅｓｅｔ２５＿７に重なる。１８０°回転したときには、ＶＤＤ２１＿４、ＧＮＤ２２＿４、Ｉ／Ｏ２３＿４、Ｃｌｏｃｋ２４＿４、Ｒｅｓｅｔ２５＿３に重なる。
【００９７】
左辺の各電極は、チップが上下の辺の中心線を対称に裏返されたときには、右辺のそれぞれ同一機能電極と同じ位置に重なり、チップが左右の辺の中心線を対称に裏返されたときには、同じ左辺のそれぞれ同一機能電極と同じ位置に重なるように配置されている。即ち、ＶＤＤ２１＿１、ＧＮＤ２２＿１、Ｉ／Ｏ２３＿１、Ｃｌｏｃｋ２４＿１、Ｒｅｓｅｔ２５＿１は、チップが上下の辺の中心線を対称に裏返して積層されたときに、ＶＤＤ２１＿３、ＧＮＤ２２＿３、Ｉ／Ｏ２３＿３、Ｃｌｏｃｋ２４＿３、Ｒｅｓｅｔ２５＿３に重なる。チップが左右の辺の中心線を対称に裏返して積層されたときには、同じ左辺のＶＤＤ２１＿２、ＧＮＤ２２＿２、Ｉ／Ｏ２３＿２、Ｃｌｏｃｋ２４＿２、Ｒｅｓｅｔ２５＿１に重なる。
【００９８】
他の辺の各電極についても同様であり、また、チップを裏返した上に±９０°又は１８０°の回転した後に積層する場合にも、同様に、同じ機能を持つ電極が同じ位置になるように、配置（レイアウト）されている。各チップは正方形とされていても、電極配置のみが正方形とされチップは正方形から外れた形状であってもよい。全ての電極が±９０°又は１８０°回転した後に同一機能を持つ電極と重なるように配置されるためには、全ての電極が同一の点を中心として、±９０°または１８０°回転された位置に配置されれば良い。また、チップを裏返して積層したときに全ての電極が同一機能を持つ電極と重なるように配置されるためには、全ての電極がチップの辺（正確には電極が配列される線）に平行な直線を中心（軸）とした対称の位置に配置されるとよい。電極の配置がチップの辺と並行でない場合は、電極の配列に平行な直線を中心（軸）とした対称の位置に配置されればよい。各電極に例示される機能は例示的なもので、順序は任意に規定される。ここで、「同一の点」、角度「±９０°」、「１８０°」、「平行な直線」、「中心（軸）」、「対称」等の用語は、それぞれが持つ数学的に厳密な意味を規定するものではなく、それぞれ工業的に許容される誤差を含む。即ち、ＩＣチップが±９０°または１８０°回転されて積層されたとき、または、裏返して積層されたときに、同一の機能を持つ端子どうしが電気的な導通が保証できる範囲でのずれは許容される。
【００９９】
図９は、各チップにおける電極の第２の配置例を示すレイアウト図である。縦方向にＶＤＤ２１＿９、ＧＮＤ２２＿９、Ｉ／Ｏ２３＿９、Ｃｌｏｃｋ２４＿９、Ｒｅｓｅｔ２５＿９、Ｃｌｏｃｋ２４＿１０、Ｉ／Ｏ２３＿１０、ＧＮＤ２２＿１０、ＶＤＤ２１＿１０が順次配置される。横方向にＶＤＤ２１＿１１、ＧＮＤ２２＿１１、Ｉ／Ｏ２３＿１１、Ｃｌｏｃｋ２４＿１１、Ｒｅｓｅｔ２５＿９、Ｃｌｏｃｋ２４＿１２、Ｉ／Ｏ２３＿１２、ＧＮＤ２２＿１２、ＶＤＤ２１＿１２が順次配置される。縦方向の各電極の間隔と横方向の各電極の間隔は等しくされ、互いに直交するように、十字状に配置列されている。このとき、チップが±９０°回転されたときには、縦方向の各電極は横方向の同一機能を持つ各電極と重なり、１８０°回転したときには、縦方向どうし、横方向どうしの各電極で、同一機能を持つ各電極と重なる。また、上下又は左右方向に裏返した場合にも同様に、同一機能を持つ各電極と重なるように配置されている。
【０１００】
電極の十字状の配置は、チップの中央であってもよいが、必ずしも中央である必要はなく、チップの各辺と垂直・平行の位置関係にある必要はない。
【０１０１】
各電極に例示される機能は例示的なもので、順序は任意に規定されるが、中央に配置される電極はチップ内で１個のみである。電源インピーダンスを下げるために、電源（ＶＤＤ）と接地（ＧＮＤ）電極の数は多い方がよく、データ入出力（Ｉ／Ｏ）とクロック（Ｃｌｏｃｋ）もインピーダンスは低い方が良いので、相対的にリセット（Ｒｅｓｅｔ）を割り当てるのが好適である。中心点には電極を配置せず、十字状の４辺全てにそれぞれ５個ずつ配置してもよい。
【０１０２】
チップを裏返して積層することを考慮しない場合には、図１０と図１１のように、チップの回転にのみ対応する電極配置を採用することができる。
【０１０３】
図１０は、各チップにおける電極の第３の配置例を示すレイアウト図である。
【０１０４】
上辺にはＶＤＤ２１＿１３、ＧＮＤ２２＿１３、Ｉ／Ｏ２３＿１３、Ｃｌｏｃｋ２４＿１３、Ｒｅｓｅｔ２５＿１３が順次配置される。右辺にはＶＤＤ２１＿１４、ＧＮＤ２２＿１４、Ｉ／Ｏ２３＿１４、Ｃｌｏｃｋ２４＿１４、Ｒｅｓｅｔ２５＿１４が順次配置される。下辺にはＶＤＤ２１＿１５、ＧＮＤ２２＿１５、Ｉ／Ｏ２３＿１５、Ｃｌｏｃｋ２４＿１５、Ｒｅｓｅｔ２５＿１５が順次配置される。左辺にはＶＤＤ２１＿１６、ＧＮＤ２２＿１６、Ｉ／Ｏ２３＿１６、Ｃｌｏｃｋ２４＿１６、Ｒｅｓｅｔ２５＿１６が順次配置される。各辺の５個の電極は他の辺の５個の電極と同じ間隔で配置されている。チップが＋９０°回転されたときに、上辺、右辺、下辺及び左辺の各電極は、それぞれ右辺、下辺、左辺及び上辺の同一機能の電極と同じ位置に重なり、−９０°回転されたときには、それぞれ左辺、上辺、右辺及び下辺の同一機能の電極と同じ位置に重なり、１８０°回転されたときには、それぞれ下辺、左辺、上辺及び右辺の同一機能の電極と同じ位置に重なるように配置されている。
【０１０５】
図８に示した第１の配置例と比較して、電極数を少なく抑えることができるので、端子数（電極数）によってチップサイズが制約される場合には、チップサイズを小さくすることができる。
【０１０６】
図１１は、各チップにおける電極の第４の配置例を示すレイアウト図である。
【０１０７】
上辺にはＶＤＤ２１＿１７、ＧＮＤ２２＿１７、Ｉ／Ｏ２３＿１７、Ｃｌｏｃｋ２４＿１７が、右辺にはＶＤＤ２１＿１８、ＧＮＤ２２＿１８、Ｉ／Ｏ２３＿１８、Ｃｌｏｃｋ２４＿１８が、下辺にはＶＤＤ２１＿１９、ＧＮＤ２２＿１９、Ｉ／Ｏ２３＿１９、Ｃｌｏｃｋ２４＿１９が、左辺にはＶＤＤ２１＿２０、ＧＮＤ２２＿２０、Ｉ／Ｏ２３＿２０、Ｃｌｏｃｋ２４＿２０が配置される。Ｒｅｓｅｔ２５＿１７は中央に１個だけ配置され、各辺の４個の電極は他の辺の４個の電極と同じ間隔、同じ順序で配置されている。チップが＋９０°回転されたときに、上辺、右辺、下辺及び左辺の各電極は、それぞれ右辺、下辺、左辺及び上辺の同一機能の電極と同じ位置に重なり、−９０°回転されたときには、それぞれ左辺、上辺、右辺及び下辺の同一機能の電極と同じ位置に重なり、１８０°回転されたときには、それぞれ下辺、左辺、上辺及び右辺の同一機能の電極と同じ位置に重なるように配置されている。
【０１０８】
図１０に示した第４の配置例と比較して、リセット電極を１個にした分だけ電極数を少なく抑えることができるので、端子数（電極数）によってチップサイズが制約される場合には、チップサイズをさらに小さくすることができる。
【０１０９】
〔実施形態４〕＜暗号化処理を行なうチップを中間層に積層＞
本願明細書に開示される技術思想は、複数のＩＣチップを積層して構成した半導体装置１００において、中間層のチップ、即ち素子面が他のチップで覆われているチップに、全体のデータ処理のうち最も高い耐タンパ性が求められる処理を割り当てるものである。実施形態１〜３では全体のデータ処理を暗号計算として多重化し、その処理結果を比較検証する機能が最も高い耐タンパ性を必要とされるので、その比較検証の機能を中間層のチップに割り当てるものである。データ処理全体を更に広い範囲で捉えれば、暗号計算を含むデータ処理において、暗号計算を最も高い耐タンパ性を必要とされるとして中間層のチップに割り当て、他の処理を他のチップに割り当てることができる。
【０１１０】
図１２は、実施形態４に係る半導体装置１００の実装例を示す模式図である。半導体装置１００は、半導体チップ（ＩＣチップ，Ｃｈｉｐ＿Ｇ，Ｃｈｉｐ＿Ｈ，Ｃｈｉｐ＿Ｉ）８〜１０を３層に積層した構造を取る。Ｃｈｉｐ＿Ｉ（１０）が最も下に配置され、その上にＣｈｉｐ＿Ｈ（９）が、さらにその上にＣｈｉｐ＿Ｇ（８）が、順次積層され、互いにシリコン基板貫通電極（ＴＳＶ）２０によって接続される。ＩＣチップＣｈｉｐ＿Ｇ（８），Ｃｈｉｐ＿Ｈ（９），Ｃｈｉｐ＿Ｉ（１０）は、実施形態１〜３の半導体装置とは異なり、それぞれに割り付けられる機能に適する回路構成を備えている。最上層のＩＣチップＣｈｉｐ＿Ｇ（８）は、バス３３＿８を介して接続されるサブＣＰＵ３０＿８と暗号アクセラレータ３４＿８とを備える。中間層のＩＣチップＣｈｉｐ（９）は、互いにバス３３＿９によって接続される、メインＣＰＵ３０＿９とＲＯＭ３１＿９とＲＡＭ３２＿９とを備える。最下層のＩＣチップ（１０）は、互いにバス３３＿１０によって接続される、サブＣＰＵ３０＿１０とインターフェース３５＿１０とを備える。その他の機能ブロックは、できる限り上下層のチップに搭載されるのが好適である。
【０１１１】
メインＣＰＵ３０＿９とＲＯＭ３１＿９とＲＡＭ３２＿９とを備える中間層のＩＣチップＣｈｉｐ＿Ｈ（９）に、最も高い耐タンパ性が求められる暗号計算を実行させるように構成し、他の処理を他のＩＣチップＣｈｉｐ＿ＧとＣｈｉｐ＿Ｉ（８と１０）に割り当てる。高いセキュリティを必要としないデバイス及びデータ処理を上層と下層のＩＣチップＣｈｉｐ＿ＧとＣｈｉｐ＿Ｉ（８と１０）に配置する事により、攻撃者の対象となる暗号処理を行う中間層のＩＣチップＣｈｉｐ＿Ｈ（９）への物理的なアクセスが困難となる。そのため、特にマイクロプロービングや、故障注入に耐性を持つデバイスが実現可能となる。
【０１１２】
〔実施形態５〕＜署名（Sign）処理を行なうチップを中間層に積層＞
図１３は、実施形態５に係る半導体装置の実装例を示す模式図である。半導体装置１００は、半導体チップ（ＩＣチップ，Ｃｈｉｐ＿Ｊ，Ｃｈｉｐ＿Ｋ，Ｃｈｉｐ＿Ｌ）１１〜１３を３層に重ねた構造を取る。Ｃｈｉｐ＿Ｌ（１３）が最も下に配置され、その上にＣｈｉｐ＿Ｋ（１２）が、さらにその上にＣｈｉｐ＿Ｊ（１１）が、順次積層され、互いにシリコン基板貫通電極（ＴＳＶ）２０によって接続される。ＩＣチップＣｈｉｐ１１〜１３は、それぞれバス３３＿１１〜３３＿１３を介して接続される、ＣＰＵ３０＿１１〜３０＿１３、ＲＯＭ３１＿１１〜３１＿１３、ＲＡＭ３２＿１１〜３２＿１３、暗号アクセラレータ３４＿１２〜３４＿１３を備える。同一機能を備えていても良いし、それぞれ異なる機能を備えてもよい。
【０１１３】
半導体装置１００を同一機能、異なるレイアウトの３チップを積層して構成する場合には、実施形態２の構成が適用可能であり、同一機能、同一レイアウトの３チップを積層して構成する場合には、実施形態３の構成が適用可能である。
【０１１４】
自動車の情報通信における態様である、Ｖ２Ｘ（Vehicle to X; Vehicle to Infrastructure, Personal, etc…）では、高速な証明書の認証が求められている。証明書の認証（Verify）処理は一般的に公開鍵を用いるため、情報の秘匿度が低い。また、周囲の対象となる自動車やインフラからブロードキャストで証明書が送付されるため、非常に多くの検証を行う必要がある。一方で自車が送付する証明書の署名（Sign）の処理は一定間隔で送付するものの、認証（Verify）と比較して非常に少ない計算回数となる。図１３は、検証回数が多くなる認証（Verify）の機能を持たせたＩＣチップＣｈｉｐ＿Ｊ（１１）とＣｈｉｐ＿Ｌ（１３）とを上段と下段に配し、署名（Sign）の処理を行う機能を持たせたＩＣチップＣｈｉｐ＿Ｋ（１２）を中段（中間層）に配した構成となっている。応用例としては、Ｖ２Ｘにおける認証（Verify）/署名（Sign）の例を示しているが、セキュリティレベルの要求が低い機能を持たせたＩＣチップを上下段（上層と下層）に配置し、秘匿性が高い機能を持たせたＩＣチップを中段（中間層）に配置する事が可能である。
【０１１５】
〔実施形態６〕＜パッケージ形態＞
図１４は、図８〜図１１に図示される１から５の数字で示される各電極端子（電源（ＶＤＤ）、接地（ＧＮＤ）、データ入出力（Ｉ／Ｏ）、クロック（Ｃｌｏｃｋ）及びリセット（Ｒｅｓｅｔ））に、それぞれ電気的に接続された金属よりなる外部接続端子（ＴＶＤＤ、ＴＧＮＤ、ＴＩ／Ｏ、ＴＣｌｏｃｋ、ＴＲｅｓｅｔ）、及び、各電極端子（電源（ＶＤＤ）、接地（ＧＮＤ）、データ入出力（Ｉ／Ｏ）、クロック（Ｃｌｏｃｋ）及びリセット（Ｒｅｓｅｔ））とは非接続（ｎｏｎ−ｃｏｎｎｅｃｔ）の外部接続端子（ＴＮＣ）を有する樹脂封止型半導体装置１４０を裏面側から見た場合の斜視図を示している。
【０１１６】
半導体装置１４０は、Ｐ−ＶＱＦＮ（Ｐｌａｓｔｉｃ Ｖｅｒｙ ｆｉｎｅ Ｑｕａｄ Ｆｌａｔ Ｎｏｎ−ｌｅａｄｅｄ ｐａｃｋａｇｅ）形半導体装置とされている。例えば、半導体装置１４０は、図１，図６，図７、図１２に示される３つの半導体チップ１〜３、上記半導体チップを搭載するチップ搭載部（タブ）、インナリード（外部接続端子（ＴＶＤＤ、ＴＧＮＤ、ＴＩ／Ｏ、ＴＣｌｏｃｋ、ＴＲｅｓｅｔ，ＴＮＣ））、ならびに、金線や銅線などからなる金属配線（ボンディングワイヤ）が、モールド装置によるモールド形成を利用し、熱硬化性の封止樹脂によって封止され、４辺（第１辺Ａ，第２辺Ｂ，第３辺Ｃ，第４辺Ｄ）を有する矩形状のパッケージ（封止部）１４１として形成される。
【０１１７】
特に制限されないが、半導体装置１４０裏面には、１４２で示されるアルミニューム等の金属板が、耐タンパ性を向上する目的で設けられても良い。
【０１１８】
パッケージ１４１における２辺（第１辺Ａ，第３辺Ｃ）には、複数の外部接続端子（ＴＶＤＤ、ＴＧＮＤ、ＴＩ／Ｏ、ＴＣｌｏｃｋ、ＴＲｅｓｅｔ，ＴＮＣ）が設けられ、パッケージ１４１における実装面から側面にかけて露出して形成されている。複数の外部接続端子（ＴＶＤＤ、ＴＧＮＤ、ＴＩ／Ｏ、ＴＣｌｏｃｋ、ＴＲｅｓｅｔ，ＴＮＣ）の表面には、たとえば、電解めっきなどによるはんだめっきが施されている。外部接続端子（ＴＶＤＤ、ＴＧＮＤ、ＴＩ／Ｏ、ＴＣｌｏｃｋ、ＴＲｅｓｅｔ，ＴＮＣ）は、半導体装置１４０のプリント配線基板への実装時、プリント配線基板に形成された接続電極とされるランド電極に、それぞれ電気的に接続される。
【０１１９】
当業者にとって容易に理解されるので、詳細な図示はしないが、図８〜図１１に図示される１から５の数字で示される各電極端子（電源（ＶＤＤ）、接地（ＧＮＤ）、データ入出力（Ｉ／Ｏ）、クロック（Ｃｌｏｃｋ）及びリセット（Ｒｅｓｅｔ））は、例えば、チップ（Ｃｈｉｐ＿Ａ）上に設けられた電源（ＶＤＤ）、接地（ＧＮＤ）、データ入出力（Ｉ／Ｏ）、クロック（Ｃｌｏｃｋ）及びリセット（Ｒｅｓｅｔ）のおのおの接続用電極パッドに、電気的に接続されている。これらの電気的な接続は、例えば、チップ１（Ｃｈｉｐ＿Ａ）上に形成される複数の金属配線層およびその間に形成される複数の層間絶縁層からなる多層配線構造により、行われる。
【０１２０】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１２１】
例えば、各チップがＣＰＵ及びＲＯＭ，ＲＡＭを備えて暗号計算を行う例を主に示したが、これをハードウェアの暗号アクセラレータに置き換えてもよい。
【符号の説明】
【０１２２】
１〜１３  ＩＣチップ
２０〜２５  電極（ＴＳＶ）
３０  ＣＰＵ
３１  ＲＯＭ
３２  ＲＡＭ
３３  バス
３４  暗号アクセラレータ（Accelerator）
３５  インターフェース（Ｉ／Ｆ）
５０  暗号計算処理
５１  処理結果
５２  計算タイミングマネージメント
５３  比較検証
１００  半導体装置
１４０  樹脂封止型半導体装置
１４１  パッケージ（封止部）
１４２  金属板
【図１】
0006373690.tif 000002
【図２】
0006373690.tif 000003
【図３】
0006373690.tif 000004
【図４】
0006373690.tif 000005
【図５】
0006373690.tif 000006
【図６】
0006373690.tif 000007
【図７】
0006373690.tif 000008
【図８】
0006373690.tif 000009
【図９】
0006373690.tif 000010
【図１０】
0006373690.tif 000011
【図１１】
0006373690.tif 000012
【図１２】
0006373690.tif 000013
【図１３】
0006373690.tif 000014
【図１４】
0006373690.tif 000015