(57)【特許請求の範囲】
【請求項１】
１以上のコアを１チップ上に備える集積回路において、
前記コアは、
所定の公開鍵暗号方式に対応した自コアの復号鍵情報を保持する復号鍵情報保持手段と、
前記所定の公開鍵暗号方式によって暗号化される自コアの認証情報を保持する認証情報保持手段と、
前記所定の公開鍵暗号方式による復号演算処理を行う復号演算処理手段と、
前記認証情報を前記所定の公開鍵暗号方式にて暗号化することで得られた暗号化情報を当該コアの外部から取得し、当該暗号化情報および前記復号鍵情報を用いて前記復号演算処理手段に復号演算処理を行わせ、この復号演算処理結果が前記認証情報保持手段にて保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせる認証制御手段と、
を備えたことを特徴とする集積回路。
【請求項２】
前記暗号化情報を前記コアの外部において保持する暗号化情報保持手段をさらに備え、
前記認証制御手段は、
前記暗号化情報保持手段から前記暗号化情報を取得し、当該暗号化情報および前記復号鍵情報を用いて前記復号演算処理手段に復号演算処理を行わせ、この復号演算処理結果が前記認証情報保持手段にて保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせることを特徴とする請求項１に記載の集積回路。
【請求項３】
当該集積回路の起動時に、前記暗号化情報を前記コアに送出する制御を行う起動制御手段をさらに備え、
前記認証制御手段は、
前記暗号化情報を受け付け、該暗号化情報および前記復号鍵情報を用いて前記復号演算処理手段に復号演算処理を行わせ、この復号演算処理結果が前記認証情報保持手段にて保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせることを特徴とする請求項２に記載の集積回路。
【請求項４】
前記復号演算処理手段は、前記復号演算処理以外の所定の処理のための乗除算を行うことを特徴とする請求項１〜３のいずれか一つに記載の集積回路。
【請求項５】
前記認証制御手段は、各コア毎に異なるストローブ信号を用いて前記各処理機能部の動作可否を制御することを特徴とする請求項１〜４のいずれか一つに記載の集積回路。
【請求項６】
前記復号演算処理手段は、
チップスライス化された乗算処理手段と、
チップスライス化された除算処理手段と、
前記乗算処理手段と前記除算処理手段とによる乗除演算処理の精度を可変制御する可変制御手段と、
を備えることを特徴とする請求項１〜５のいずれか一つに記載の集積回路。
【請求項７】
１以上のコアを１チップ上に備える集積回路における前記コアの盗用防止方法において、
各コアに対応した認証情報を所定の公開鍵暗号方式にて暗号化することで得られた暗号化情報を保持する第１の保持工程と、
前記所定の公開鍵暗号方式に対応した自コアの復号鍵情報と前記認証情報とを自コア内に保持する第２の保持工程と、
前記暗号化情報を取得し、該暗号化情報と前記復号鍵情報とを用いて前記所定の公開鍵暗号方式による復号演算処理を行う復号演算処理工程と、
前記復号演算処理工程による復号演算処理結果が自コア内に保持された前記認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせる制御を行う認証制御工程と、
を含むことを特徴とする集積回路のコアの盗用防止方法。
【請求項８】
前記第１の保持工程によって保持される暗号化情報は、前記各コアの外部に保持されることを特徴とする請求項７に記載の集積回路のコアの盗用防止方法。
【請求項９】
前記第１の保持工程によって保持される暗号化情報は、当該集積回路の外部に保持されることを特徴とする請求項７に記載の集積回路のコアの盗用防止方法。
【請求項１０】
前記復号演算処理工程は、チップスライス化された乗算演算機構と除算演算機構とを用い、前記乗除演算処理の精度を可変制御して行うことを特徴とする請求項７〜９のいずれか一つに記載の集積回路のコアの盗用防止方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、１以上のコアを１チップ上に備える集積回路、および、そのコアの盗用を防止するための盗用防止方法に関するものである。
【０００２】
【従来の技術】
近年における半導体集積化技術の著しい向上によって、電子デバイスの高精度化および高機能化が急速に進んでいる。このような半導体集積化技術の進展は、１０００万ゲート規模のシステムオンチップと呼ばれる集積回路を近い将来に実現させるものと考えられている。
【０００３】
ところで、このような大規模なシステムオンチップを設計する場合、全ての回路ブロックを最初から設計することは多大な時間と労力とを必要とし、困難である。しかも、集積回路の開発期間は、短くなる傾向にあり、開発側にとって、大きな負担となってきている。
【０００４】
そこで、大規模マクロセル（コア（メガセル））の標準化を図り、開発元の異なる複数のコアを自由に選択し、一つのチップ上に集積できるコアの新しい流通形態が注目されている。このような動向に伴い、ＶＳＩ（Virtual Socket Interface）アライアンスが近年設立され、大規模ＡＳＩＣのコア流通の機運が盛り上がっている。このようなコアの標準化は、今後益々高機能化していくであろう大規模なＡＳＩＣやＰＬＤ（Programmable Logic Device）の開発という観点からすれば、効率的な設計を促進させる理想的なものである。
【０００５】
【発明が解決しようとする課題】
しかしながら、複数のコアを集めて集積し、自由なファウンドリの選択が可能なＶＳＩでは、コアが不正にコピーされ使用されるというリスクが伴うという問題点があった。
【０００６】
各コアは複数のベンダによって製作されたものであり、各コアを用いて製作した集積回路が製品化されて不特定多数者にわたった場合に、各コアのコピーなどがなされないように保証される必要がある。各コアは、その開発に多大な労力と時間とをかけた結果物であり、知的財産権として十分に保護されることが求められており、このための対策が急務となっているのが現実である。
【０００７】
この発明は上記に鑑みてなされたもので、集積回路を構成する各コアが、不正にコピーあるいは使用を防止することができる、集積回路、および、そのコアの盗用防止方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記目的を達成するため、請求項１にかかる発明は、１以上のコアを１チップ上に備える集積回路において、前記コアは、所定の公開鍵暗号方式に対応した自コアの復号鍵情報を保持する復号鍵情報保持手段と、前記所定の公開鍵暗号方式によって暗号化される自コアの認証情報を保持する認証情報保持手段と、前記所定の公開鍵暗号方式による復号演算処理を行う復号演算処理手段と、前記認証情報を前記所定の公開鍵暗号方式にて暗号化することで得られた暗号化情報を当該コアの外部から取得し、当該暗号化情報および前記復号鍵情報を用いて前記復号演算処理手段に復号演算処理を行わせ、この復号演算処理結果が前記認証情報保持手段にて保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせる認証制御手段と、を備えたことを特徴とする。
【０００９】
この請求項１にかかる発明によれば、認証制御手段が、暗号化情報をコアの外部から取得し、該暗号化情報および復号鍵情報保持手段が保持する復号鍵情報を用いて復号演算処理手段に復号演算処理を行わせ、復号演算処理結果が認証情報保持手段にて保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせるようにしている。
【００１０】
また、請求項２にかかる発明は、上記の発明において、前記暗号化情報を前記コアの外部において保持する暗号化情報保持手段をさらに備え、前記認証制御手段は、前記アクセス認証情報保持手段から前記暗号化情報を取得し、該暗号化情報および前記復号鍵情報を用いて前記復号演算処理手段に復号演算処理を行わせ、この復号演算処理結果が認証情報保持手段にて保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせることを特徴とする。
【００１１】
この請求項２にかかる発明によれば、暗号化情報保持手段がコアの外部において暗号化情報を保持しており、認証制御手段が、前記暗号化情報保持手段から前記暗号化情報を取得し、該暗号化情報および前記復号鍵情報を用いて前記復号演算処理手段に復号演算処理を行わせ、復号演算処理結果が認証情報保持手段にて保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせるようにしている。
【００１２】
また、請求項３にかかる発明は、上記の発明において、当該集積回路の起動時に、前記暗号化情報を前記コアに送出する制御を行う起動制御手段をさらに備え、前記認証制御手段は、前記暗号化情報を受け付け、該暗号化情報および前記復号鍵情報を用いて前記復号演算処理手段に復号演算処理を行わせ、この復号演算処理結果が認証情報保持手段にて保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせることを特徴とする。
【００１３】
この請求項３にかかる発明によれば、起動制御手段が、当該集積回路の起動時に、前記暗号化情報を前記コアに送出する制御を行い、前記認証制御手段が、前記暗号化情報を受け付け、該暗号化情報および前記復号鍵情報を用いて前記復号演算処理手段に復号演算処理を行わせ、この復号演算処理結果が認証情報保持手段にて保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせるようにしている。
【００１４】
また、請求項４にかかる発明は、上記の発明において、前記復号演算処理手段は、前記復号演算処理以外の所定の処理のための乗除算を行うことを特徴とする。
【００１５】
この請求項４にかかる発明によれば、前記復号演算処理手段にて、前記復号演算処理以外の処理のための乗除算が行われるので、復号演算処理手段を取り除いてコアの盗用を図ることが不可能となる。
【００１６】
また、請求項５にかかる発明は、上記の発明において、前記認証制御手段は、各コア毎に異なるストローブ信号を用いて前記各処理機能部の動作可否を制御することを特徴とする。
【００１７】
この請求項５にかかる発明によれば、前記認証制御手段が、各コア毎に異なるストローブ信号を用いて前記各処理機能部の動作可否を制御するようにしている。
【００１８】
また、請求項６にかかる発明は、上記の発明において、前記復号演算処理手段は、チップスライス化された乗算処理手段と、チップスライス化された除算処理手段と、前記乗算処理手段と前記除算処理手段とによる乗除演算処理の精度を可変制御する可変制御手段と、を備えることを特徴とする。
【００１９】
この請求項６にかかる発明によれば、復号演算処理手段の乗算処理手段と除算処理手段とがチップスライス化されるとともに、復号演算処理手段の可変制御手段が、前記乗算処理手段と前記除算処理手段とによる乗除演算処理の精度を可変制御し、乗除演算の増大に伴ってチップスライス化された乗算処理手段および除算処理手段を増設することによって、所望の乗除演算を行うことができ、しかも演算精度を可変にしている。
【００２０】
また、請求項７にかかる発明は、１以上のコアを１チップ上に備える集積回路における前記コアの盗用防止方法において、各コアに対応した認証情報を所定の公開鍵暗号方式にて暗号化することで得られた暗号化情報を保持する第１の保持工程と、前記所定の公開鍵暗号方式に対応した自コアの復号鍵情報と前記認証情報とを自コア内に保持する第２の保持工程と、前記暗号化情報を取得し、該暗号化情報と前記復号鍵情報とを用いて前記所定の公開鍵暗号方式による復号演算処理を行う復号演算処理工程と、前記復号演算処理工程による復号演算処理結果が自コア内に保持された前記認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせる制御を行う認証制御工程と、を含むことを特徴とする。
【００２１】
この請求項７にかかる発明によれば、第１の保持工程によって、暗号化情報を保持し、第２の保持工程によって、自コアの復号鍵情報と認証情報とを自コア内に保持し、復号演算処理工程によって、前記暗号化情報を取得し、該暗号化情報と前記復号鍵情報とを用いて前記所定の公開鍵暗号方式による復号演算処理を行い、認証制御工程によって、前記復号演算処理工程による復号演算処理結果が自コアの認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせる制御を行うようにしている。
【００２２】
また、請求項８にかかる発明は、上記の発明において、前記第１の保持工程によって保持される暗号化情報は、前記各コアの外部に保持されることを特徴とする。
【００２３】
この請求項８にかかる発明によれば、前記第１の保持工程によって保持される暗号化情報を、前記各コアの外部に保持するようにしている。
【００２４】
また、請求項９にかかる発明は、上記の発明において、前記第１の保持工程によって保持される暗号化情報は、当該集積回路の外部に保持されることを特徴とする。
【００２５】
この請求項９にかかる発明によれば、前記第１の保持工程によって保持される暗号化情報を、当該集積回路の外部に保持するようにしている。
【００２６】
また、請求項１０にかかる発明は、上記の発明において、前記復号演算処理工程は、チップスライス化された乗算演算機構と除算演算機構とを用い、前記乗除演算処理の精度を可変制御して行うことを特徴とする。
【００２７】
この請求項１０にかかる発明によれば、前記復号演算処理工程が、チップスライス化された乗算演算機構と除算演算機構とを用い、前記乗除演算処理の精度を可変制御するようにしている。
【００２８】
【発明の実施の形態】
以下に添付図面を参照して、本発明にかかる集積回路、および、そのコアの盗用防止方法の好適な実施の形態を説明する。
【００２９】
（実施の形態１）
図１は、この発明の実施の形態１である集積回路の構成を示すブロック図である。図１において、集積回路１は、たとえば１０００万ゲート規模のシステムオンチップとして実現されるもので、複数のコア２ａ〜２ｄと、ＲＯＭ３とを備えて構成されている（なお、実際のコアの数は任意である）。
【００３０】
このうち、ＲＯＭ３は、後述するＲＳＡ公開鍵暗号化方式によって、各コア２ａ〜２ｄにそれぞれ対応する署名文（認証情報）を暗号化した暗号化情報３ａ（各コア２ａ〜２ｄにアクセスするためのアクセス権）を保持する。
【００３１】
また、各コア２ａ〜２ｄは独立または他のコアと協働して所定機能を実現するマクロセルとして構成されるもので、例えば１６ビットのバスＢで相互に接続されている。なお、これら各コア２ａ〜２ｄは、現実には複数のベンダによって製作されたものを用いることができる。
【００３２】
これら各コア２ａ〜２ｄは、相互に同じ構成であるため、以下、コア２ｂの構成を代表例として説明する。このコア２ｂは、図１に示すように、制御部１１、ＲＡＭ１２、ＲＯＭ１３、乗除演算部１４、および、複数の処理部１５−１〜１５−ｎを備えて構成されている。
【００３３】
このＲＯＭ１３は、復号鍵情報１３ａと認証情報１３ｂとを不揮発的に記憶する。この復号鍵情報１３ａは、コア２ｂに対する暗号化情報３ａを復号するために必要な復号鍵（公開鍵および秘密鍵）である。また、認証情報１３ｂは、コア２ｂが正規のものであることを保証するための情報であり、暗号化情報３ａが生成される前の署名文（平文）である。
【００３４】
また、制御部１１は、暗号化情報３ａの復号処理を制御し、復号処理された復号情報が認証情報１３ｂに合致する場合に、ストローブ信号Ｓｂ−１〜Ｓｂ−ｎをアクティブにし、各処理部１５−１〜１５−ｎの動作を許可する。また、この制御部１１は、この認証処理後に、コア２ｂの本来の機能動作を制御する。
また、各処理部１５−１〜１５−ｎは、コア２ｂの主要な構成要素であり、それぞれ独立した処理機能を有する。
また、乗除演算部１４は、復号演算処理を行う。すなわち、乗除演算部１４は、ＲＳＡ暗号化方式に対応した復号処理を行うための乗除算を行う。また、この乗除演算部１４は、復号処理のための乗除算を行った後、当該復号処理以外の所定の処理（当該コア２ｂの認証以外の機能を達成するための処理）のための乗除算を行う。
なお、ＲＡＭ１２は、入力された暗号化情報３ａなどを一時記憶する。
【００３５】
次に、図２に示すフローチャートを参照して、制御部１１による認証処理手順について説明する。この図２において、まず集積回路１の立ち上げに伴って、制御部１１は、ＲＯＭ３内に保持された暗号化情報３ａを取得する（ステップＳ１０１）。ここで、ＲＯＭ３内に保持された暗号化情報３ａは、自コア２ｂに対応する暗号化情報と、他のコア２ａ，２ｃ，２ｄに対応する暗号化情報と、どのコア２ａ〜２ｄ用の暗号化情報であるのかの解釈を困難にするための任意数のダミー情報との、計５つ以上の暗号化情報によって構成されている。これらの暗号化情報は、暗号化情報の提供機構によってランダムに生成され提供される情報であり、相互に長さの異なる情報である可能性も高いため、不正使用者にとっては、いずれの暗号化情報が自コア２ｂに対応する暗号化情報であるかを解読することは困難である。また、制御部１１も、自コア２ｂに対応する暗号化情報のみを抽出する機能を持たないため、全てのコア２ａ〜２ｄに対する暗号化情報３ａを一旦取得する。
【００３６】
その後、制御部１１は、復号鍵情報１３ａをＲＯＭ１３内から取得し、復号鍵情報１３ａを用いて、暗号化情報３ａを構成する１つの暗号化情報を復号する（ステップＳ１０２）。この復号処理は、乗除演算部１４によって行われる。その後、制御部１１は、復号した情報が、ＲＯＭ１３内に保持された認証情報１３ｂと合致するか否かを判断する（ステップＳ１０３）。
【００３７】
ここで合致した場合（ステップＳ１０３，ＹＥＳ）には、各処理部１５−１〜１５−ｎに対してストローブ信号Ｓｂ−１〜Ｓｂ−ｎをアクティブにし、各処理部１５−１〜１５−ｎの動作を可能にして（ステップＳ１０４）、本処理を終了する。
【００３８】
一方、合致しない場合（ステップＳ１０３，ＮＯ）、制御部１１は、さらにこの暗号化情報が最後の暗号化情報であるか否かを判断し（ステップＳ１０５）、最後の暗号化情報でない場合（ステップＳ１０５，ＮＯ）には、さらに取得されている暗号化情報１３ａ内から次の暗号化情報を取得し（ステップＳ１０６）、ステップＳ１０２に移行して上述した処理を繰り返す。一方、最後の暗号化情報である場合（ステップＳ１０５，ＹＥＳ）には、そのまま本処理を終了し、各処理部１５−１〜１５−ｎを非アクティブのままとし、不正なアクセスであったものとして各処理部１５−１〜１５−ｎの動作を不可能とする。
【００３９】
つぎに、図３を参照して、上述したＲＳＡ暗号化方式を用いた認証処理について説明する。図３（ａ）は、ＲＳＡ暗号化方式を用いた一般的な認証処理を示し、図３（ｂ）は、ＲＳＡ暗号化方式を用いた集積回路１内のコア２ａ〜２ｄの認証処理を示す。
【００４０】
図３（ａ）に示すＲＳＡ暗号化方式を用いた一般的な認証処理は、概略的に以下のように行われる。すなわち、送信側「Ｂ」が署名文（平文）「Ｃ」を暗号化し、これを受信側「Ａ」に送信し、これを受信側「Ａ」において復号する。そして、受信側「Ａ」は、復号した署名文「Ｃ」が、正規の署名文「Ｃ」と一致するか否かを確認することで、送信側「Ｂ」の正当性を認証することができる。
【００４１】
この認証処理は具体的には以下のように行われる。まず、送信側「Ｂ」は、第三者に公開される公開鍵「ｎＢ」，「ｅＢ」と、第三者に公開されない秘密鍵「ｄＢ」を保持している。一方、受信側「Ａ」は、同様に、公開鍵「ｎＡ」，「ｅＡ」と、秘密鍵「ｄＡ」とを保持している。
【００４２】
そして、送信側「Ｂ」では、まず自己の公開鍵「ｎＢ」と自己の秘密鍵「ｄＢ」とを用い、ＲＳＡ暗号化方式の剰余演算式によって署名文「Ｃ」を暗号化する。すなわち、
ＣｄＢ≡Ｄ  mod  ｎＢ
を行う。
次いで、この乗除演算式の剰余「Ｄ」に対し、送信側「Ｂ」は、さらに受信側「Ａ」の公開鍵「ｎＡ」，「ｅＡ」を用いて剰余演算を行って暗号化する。すなわち、
ＤｅＡ≡Ｅ  mod  ｎＡ
を行う。
そして、この剰余演算の剰余「Ｅ」が、受信側「Ａ」に送られる。
【００４３】
一方、受信側「Ａ」は、送信側「Ｂ」から送られた剰余「Ｅ」に対して、自己の公開鍵「ｎＡ」と秘密鍵「ｄＡ」を用いて剰余演算を行って復号する。すなわち、
ＥｄＡ≡Ｄ  mod  ｎＡ
を行う。
さらに、署名文「Ｃ」に対する暗号化を復号するため、送信側「Ｂ」の公開鍵「ｅＢ」，「ｎＢ」を用いて、剰余「Ｄ」に対して剰余演算を行って剰余「Ｃ」を得る。すなわち、
ＤｅＢ≡Ｃ  mod  ｎＢ
によって、剰余「Ｃ」を得る。
このようにして得られた剰余「Ｃ」が、正規の署名文「Ｃ」と一致するか否かを確認することで、送信側「Ｂ」の正当性を認証することができる。
【００４４】
この認証処理は、送信者側をＲＯＭ３、受信者側を各コア２ａ〜２ｄとして以下のように適応することができる。すなわち、図３（ｂ）に示すように、まず暗号化情報「Ｅ」（３ａ）をコアベンダー等が予め生成し、ＲＯＭ３側に保持しておく。一方、コア２ａ〜２ｄ側では、暗号化情報「Ｅ」の復号に必要な自己の公開鍵「ｎＡ」，自己の秘密鍵「ｄＡ」，ＲＯＭ３側の公開鍵「ｎＢ」，「ｅＢ」を、復号鍵情報１３ａとしてＲＯＭ１３内に保持しておく。
そして、暗号化情報「Ｅ」がＲＯＭ３側からコア２ａ〜２ｄ側に送られると、コア２ａ〜２ｄ側では、受信側「Ａ」と同じ復号処理を行って、最終的に剰余「Ｃ」を得ることによって、コア２ａ〜２ｄの使用者の認証処理を終了する。この認証時のコア２ａ〜２ｄ側における剰余演算は、上述した乗除演算部１４によって行われる。
【００４５】
制御部１１は、このようにして復号された剰余「Ｃ」が、認証情報１３ｂと合致するか否かを判断し、合致する場合にはＲＯＭ３が正当なものであると判断して、ストローブ信号Ｓｂ−１〜Ｓｂ−ｎをアクティブにして、各処理部１５−１〜１５−ｎを動作可能にする。なお、ストローブ信号Ｓｂ−１〜Ｓｂ−ｎは、各コア２ａ〜２ｄ毎に異なるものである。また、ストローブ信号Ｓｂ−１〜Ｓｂ−ｎは、相互に同一とすることもでき、相互に異なるものとしてもよい。
【００４６】
つぎに、図４を参照して、乗除演算部１４について説明する。図４において、乗除演算部１４は、制御部１１によって指示された乗除演算を制御する制御回路１６と、乗算処理を行う乗算回路１７と、除算処理を行う除算回路１８とを有する。乗算回路１７は、４つの１６ビット乗算器１７ａ〜１７ｄがスイッチＳＷ１２〜ＳＷ１４を介してカスケード接続される。このため、乗算回路１７は、１６ビットから６４ビットの乗算処理を行うことができる。また、除算回路１８は、４つの３２ビット除算器１８ａ〜１８ｄがスイッチＳＷ２２〜ＳＷ２４を介してカスケード接続される。このため、除算回路１８は、３２ビット〜１２８ビットの除算処理を行うことができる。
【００４７】
乗算回路１７は、１６ビット単位で入力される乗数と被乗数とを各１６ビット乗算器１７ａ〜１７ｄで乗算し、処理結果の積を１６ビットバス上に出力する。一方、除算回路１８は、１６ビット単位で入力される除数と被除数とを各３２ビット除算器１８ａ〜１８ｄで除算処理し、除算結果である商と剰余とを１６ビットバス上に出力する。
【００４８】
制御回路１６は、精度情報Ｓ１６をスイッチＳＷ１２〜ＳＷ１４，ＳＷ２２〜ＳＷ２４に出力し、１６ビット〜６４ビットの可変精度の乗算処理と、３２ビット〜１２８ビットの可変精度の除算処理とを行わせている。すなわち、公開鍵および秘密鍵のビット数に応じたＲＳＡ暗号方式のべき乗剰余演算が６４ビットである場合には、図４に示した１ユニットの剰余演算部１４のみでよい。この場合、制御回路１６を含めたゲート規模は、約１万６千ゲートとなるが、集積回路１が１０００万ゲート規模のシステムオンチップである場合、約１万６千ゲート程度の占有は、集積回路１に大きな影響を及ぼさない。
【００４９】
なお、公開鍵および秘密鍵のビット数の増大によって、１０２４ビットのべき乗剰余演算を行う必要がある場合には、１６ユニットの乗除演算部１４を複数個設けて相互にカスケード接続することによって、これを容易に行うことができる。すなわち、各ユニットをチップ（ユニット）単位とするチップスライス化した演算処理を行う。この場合、ＳＷ１１およびＳＷ２１を介して互いに隣接する乗算回路１７および除算回路１８がカスケード接続されることになる。この時、各ユニット内の制御回路１６により、演算精度に合わせて必要なモジュールおよびユニットが用いられて演算データが分散処理される。また、各制御回路１６は、クロック数を可変として効率的な演算処理を行うようにしてもよい。
【００５０】
このように構成される乗除演算部１４は、上述のようにＲＳＡ暗号化方式における剰余演算処理を行うものであるが、その他にも、コア２ａ〜２ｄ内の各処理部１５−１〜１５−ｎの乗除演算処理（汎用演算処理）をも行うものである。したがって、この乗除演算部１４を取り除いた場合には、これら各処理部１５−１〜１５−ｎの乗除演算処理を行うことが不可能となり、すなわち、コア２ａ〜２ｄ自体の基本機能が発揮されないことになる。
【００５１】
なお、この実施の形態１では、公開鍵暗号化方式の一つとしてＲＳＡ公開鍵暗号化方式を採用したが、これに限らず、他の公開鍵暗号化方式を採用してもよい。
また、上記説明では、伝達線Ｌを介して各コア２ａ〜２ｄが暗号化情報３ａを取得するようにしているが、各コア２ａ〜２ｄを接続するバスＢに、ＲＯＭ３を接続し、バスＢを情報伝達線Ｌとして用いるようにしてもよい。
【００５２】
この実施の形態１によれば、ＲＳＡ暗号化方式によって暗号化された暗号化情報３ａを集積回路１内のＲＯＭ３に保持させておき、各コア２ａ〜２ｄ内にＲＳＡ暗号化方式における復号時に必要な公開鍵、秘密鍵からなる復号鍵情報１３ａおよび認証情報１３ｂを保持させておき、集積回路１の起動時に、各コア２ａ〜２ｄが暗号化情報３ａを読み出し、認証処理を行い、正しい認証が行われた場合にのみ、各コア２ａ〜２ｄ毎に各コア２ａ〜２ｄ内の各処理部１５−１〜１５−ｎの動作を可能とするようにしているので、各コア２ａ〜２ｄの不正コピーあるいは不正使用を確実に防止することができる。
【００５３】
また、ＲＳＡ暗号化方式の復号処理を行う乗除演算部１４は、復号処理のみならず、コア２ａ〜２ｄ内の一般の演算処理にも用いられるため、復号処理のみにかかわる処理部分をコアから取り除くことができず、さらに各コア２ａ〜２ｄ内のストローブ信号Ｓｂ−１〜Ｓｂ−ｎは、各コア２ａ〜２ｄ毎に異なり、全てのストローブ信号を解析するのは困難であることから、一層、各コア２ａ〜２ｄの不正コピーあるいは不正使用を防止することができる。
【００５４】
さらに、乗除演算部１４は、ＲＳＡ暗号化方式に用いられる鍵ビット数によってゲート規模が変化するが、チップスライス化された演算処理を行っているため、ハード的に単にユニットを追加接続するのみで対応することができ、ユニットの増減が生じても、このためのプログラム変更や回路変更を行う必要がなく、柔軟な演算処理を行うことができるとともに、可変精度の制御を行うようにしているため、効率的な演算処理を行うことができる。
【００５５】
（実施の形態２）
つぎに、この発明の実施の形態２について説明する。上述した実施の形態１では、各コア２ａ〜２ｄがＲＯＭ３内に保持された暗号化情報３ａを取得するようにしていたが、この実施の形態２では、集積回路の電源立ち上げ時に、ＲＯＭ３内の暗号化情報３ａを各コア２ａ〜２ｄに送出し、各コア２ａ〜２ｄがこの送出された暗号化情報３ａを復号し、認証処理を行うようにしている。
【００５６】
図５は、この発明の実施の形態２である集積回路の構成を示すブロック図である。図５において、集積回路２１は、図１に示した集積回路１内にさらに起動制御部４を設けるようにしている。その他の構成は、実施の形態１と同じであり、同一構成部分には同一符号を付している。
【００５７】
起動制御部４は、集積回路２１の電源立ち上げによって、ＲＯＭ３内の暗号化情報３ａを読み出し、情報伝達線Ｌを介して各コア２ａ〜２ｄに送出する。暗号化情報３ａは、各コア２ａ〜２ｄに対応した４つの暗号化情報「ａ」〜「ｄ」と、ダミー情報（図示において「＊」にて示す）とから構成されている。これら暗号化情報３ａは、起動制御部４の制御によって、情報伝達線Ｌを介しランダムな順序で一括して各コア２ａ〜２ｄに送出される。
【００５８】
ここで、図６に示すフローチャートを参照して、集積回路２１内の一連の復号処理手順について説明する。図６において、まず集積回路２１の立ち上げに伴って、起動制御部４は、ＲＯＭ３内に保持された暗号化情報３ａを読み出し、読み出した暗号化情報３ａを情報伝達線Ｌを介して各コア２ａ〜２ｄに送出する（ステップＳ２０１）。
【００５９】
各コア２ａ〜２ｄの制御部１１は、送出された暗号化情報３ａを一旦ＲＡＭ１２内に格納し（ステップＳ２０２）、その後ＲＡＭ１２内に格納された１つの暗号化情報３ａを取り出す（ステップＳ２０３）。たとえば、暗号化情報「ａ」を取り出す。その後、制御部１１は、復号鍵情報１３ａをＲＯＭ１３内から取得し、復号鍵情報１３ａを用いて、暗号化情報「ａ」を復号する（ステップＳ２０４）。この復号処理は、乗除演算部１４によって行われる。その後、制御部１１は、復号した情報が、ＲＯＭ１３内に保持された認証情報１３ｂと合致するか否かを判断する（ステップＳ２０５）。
【００６０】
合致した場合（ステップＳ２０５，ＹＥＳ）には、各処理部１５−１〜１５−ｎに対してストローブ信号Ｓｂ−１〜Ｓｂ−ｎをアクティブにし、各処理部１５−１〜１５−ｎを動作可能にして（ステップＳ２０６）、本処理を終了する。
【００６１】
一方、合致しない場合（ステップＳ２０５，ＮＯ）、制御部１１は、さらにこの暗号化情報「ａ」が最後の暗号化情報であるか否かを判断し（ステップＳ２０７）、最後の暗号化情報でない場合（ステップＳ２０７，ＮＯ）には、さらに取得されている暗号化情報１３ａ内から次の暗号化情報を取得し（ステップＳ２０８）、ステップＳ２０４に移行して上述した処理を繰り返す。一方、最後の暗号化情報である場合（ステップＳ２０７，ＹＥＳ）には、そのまま本処理を終了し、各処理部１５−１〜１５−ｎを非アクティブのままとし、不正なアクセスであったものとして各処理部１５−１〜１５−ｎの動作を不可能とする。
【００６２】
この実施の形態２によれば、起動制御部４が一括して暗号化情報３ａを各コア２ａ〜２ｄに送出し、各コア２ａ〜２ｄが復号処理を行うようにしているので、各コア２ａ〜２ｄのアクセス処理が軽減され、集積回路２１内の復号処理を効率的に行うことができる。
【００６３】
（実施の形態３）
つぎに、この発明の実施の形態３について説明する。上述した実施の形態１，２では、ＲＯＭ３を集積回路１，２１内に配置するようにしていたが、この実施の形態３では、ＲＯＭ３を集積回路の外部に設け、ＲＯＭ３と集積回路とを接続するようにしている。
【００６４】
図７は、この発明の実施の形態３である集積回路３１とこれに接続されるＲＯＭ３３との構成を示すブロック図である。図７において、集積回路３１は、集積回路３１内に、暗号化情報３ａを格納するＲＯＭを設けず、集積回路３１の外部に、外部接続できるＲＯＭ３３を配置する。
【００６５】
ＲＯＭ３３は、ＲＯＭ３内に格納された暗号化情報３ａを保持する。ＲＯＭ３３は、たとえばＳＲＡＭ型のＦＰＧＡ（Field Programmable Gate Array）のダウンロード用のような外付けＲＯＭで実現できる。
【００６６】
この実施の形態３によれば、暗号化情報３ａを格納するＲＯＭ３３が集積回路３１の外部に設けられるので、各コア２ａ〜２ｄのみならず、集積回路（チップ）３１全体の不正コピーあるいは不正使用をも確実に防止することができる。
【００６７】
【発明の効果】
以上説明したように、請求項１にかかる発明によれば、認証制御手段が、暗号化情報をコアの外部から取得し、該暗号化情報および復号鍵情報保持手段が保持する復号鍵情報を用いて復号演算処理手段に復号演算処理を行わせ、この復号演算処理結果が自コアに保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせるようにしているので、各コアの不正コピーあるいは不正使用を確実に防止することができるという効果を奏する。
【００６８】
また、請求項２にかかる発明によれば、暗号化情報保持手段が、コアの外部において暗号化情報を保持し、認証制御手段が、前記暗号化情報保持手段から前記暗号化情報を取得し、該暗号化情報および前記復号鍵情報を用いて前記復号演算処理手段に復号演算処理を行わせ、この復号演算処理結果が自コア内に保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせるようにしているので、各コアのみならず、集積回路全体に対する不正コピーあるいは不正使用を確実に防止することができるという効果を奏する。
【００６９】
また、請求項３にかかる発明によれば、起動制御手段が、当該集積回路の起動時に、前記暗号化情報を前記コアに送出する制御を行い、前記認証制御手段が、前記暗号化情報を受け付け、該暗号化情報および前記復号鍵情報を用いて前記復号演算処理手段に復号演算処理を行わせ、復号演算処理結果が自コア内に保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせるようにしているので、各コアにかかる負担が軽減され、効率的な認証処理を行うことができるという効果を奏する。
【００７０】
また、請求項４にかかる発明によれば、前記復号演算処理手段は、前記復号演算処理以外の所定の処理のための乗除算を行うものとして構成されており、復号演算処理手段を取り除くことができないようにしているので、各コアの不正コピーあるいは不正使用を一層、確実に防止することができるという効果を奏する。
【００７１】
また、請求項５にかかる発明によれば、前記認証制御手段が、各コア毎に異なるストローブ信号を用いて前記各処理機能部の動作可否を制御するようにしているので、各コア毎に異なるストローブ信号を解析することが困難となり、一層、各コアの不正コピーあるいは不正使用を防止することができるという効果を奏する。
【００７２】
また、請求項６にかかる発明によれば、復号演算処理手段の乗算処理手段と除算処理手段とがチップスライス化されるとともに、復号演算処理手段の可変制御手段が、前記乗算処理手段と前記除算処理手段とによる乗除演算処理の精度を可変制御し、乗除演算の増大に伴ってチップスライス化された乗算処理手段および除算処理手段を増設することによって、所望の乗除演算を行うことができ、しかも演算精度を可変にしているので、暗号化情報のビット数に対応した乗除演算機能を柔軟に満足させることができ、このためのプログラム変更や回路変更を行う必要がなくなるとともに、演算精度が可変となるので、効率的な演算処理を行うことができるという効果を奏する。
【００７３】
また、請求項７にかかる発明によれば、第１の保持工程によって、暗号化情報を保持し、第２の保持工程によって、前記所定の公開鍵暗号方式に対応した自コアの復号鍵情報と前記認証情報とを自コア内に保持し、復号演算処理工程によって、前記暗号化情報を取得し、該暗号化情報と前記復号鍵情報とを用いて前記所定の公開鍵暗号方式による復号演算処理を行い、認証制御工程によって、前記復号演算処理工程による復号演算処理結果が自コア内に保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせる制御を行うようにしているので、各コアの不正コピーあるいは不正使用を確実に防止することができるという効果を奏する。
【００７４】
また、請求項８にかかる発明によれば、前記第１の保持工程によって保持される暗号化情報を、前記各コアの外部に保持するようにしているので、各コアの不正コピーあるいは不正使用を確実に防止することができるという効果を奏する。
【００７５】
また、請求項９にかかる発明によれば、前記第１の保持工程によって保持される暗号化情報を、当該集積回路の外部に保持するようにしているので、各コアのみならず、集積回路全体に対する不正コピーあるいは不正使用を確実に防止することができるという効果を奏する。
【００７６】
また、請求項１０にかかる発明によれば、前記復号演算処理工程が、チップスライス化された乗算演算機構と除算演算機構とを用い、前記乗除演算処理の精度を可変制御するようにしているので、暗号化情報のビット数に対応した乗除演算機能を柔軟に満足させることができ、このためのプログラム変更や回路変更を行う必要がなくなるとともに、演算精度が可変となるので、効率的な演算処理を行うことができるという効果を奏する。
【図面の簡単な説明】
【図１】この発明の実施の形態１にかかる集積回路の構成を示すブロック図である。
【図２】図１の集積回路内の各コアによる認証処理手順を示すフローチャートである。
【図３】ＲＳＡ暗号化方式の認証処理手順と集積回路における認証処理手順とを比較する図である。
【図４】図１に示した乗除演算部の詳細構成を示すブロック図である。
【図５】この発明の実施の形態２にかかる集積回路の構成を示すブロック図である。
【図６】図５に示した集積回路内における認証処理手順を示すフローチャートである。
【図７】この発明の実施の形態３にかかる集積回路の構成を示すブロック図である。
【符号の説明】
１，２１，３１  集積回路
２ａ〜２ｄ  コア
３，１３，３３  ＲＯＭ
４  起動制御部
１１  制御部
１２  ＲＡＭ
１３ａ  復号鍵情報
１３ｂ  認証情報
１４  乗除演算部
１５−１〜１５−ｎ  処理部
Ｌ  情報伝達線
Ｂ  バス
Ｓｂ−１〜Ｓｂ−ｎ  ストローブ信号
【図１】
0004543194.tif 000002
【図２】
0004543194.tif 000003
【図３】
0004543194.tif 000004
【図４】
0004543194.tif 000005
【図５】
0004543194.tif 000006
【図６】
0004543194.tif 000007
【図７】
0004543194.tif 000008