JP4543194B2 - 集積回路、および、そのコアの盗用防止方法 - Google Patents
集積回路、および、そのコアの盗用防止方法 Download PDFInfo
- Publication number
- JP4543194B2 JP4543194B2 JP2000071163A JP2000071163A JP4543194B2 JP 4543194 B2 JP4543194 B2 JP 4543194B2 JP 2000071163 A JP2000071163 A JP 2000071163A JP 2000071163 A JP2000071163 A JP 2000071163A JP 4543194 B2 JP4543194 B2 JP 4543194B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- core
- processing
- decryption
- integrated circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
この発明は、1以上のコアを1チップ上に備える集積回路、および、そのコアの盗用を防止するための盗用防止方法に関するものである。
【0002】
【従来の技術】
近年における半導体集積化技術の著しい向上によって、電子デバイスの高精度化および高機能化が急速に進んでいる。このような半導体集積化技術の進展は、1000万ゲート規模のシステムオンチップと呼ばれる集積回路を近い将来に実現させるものと考えられている。
【0003】
ところで、このような大規模なシステムオンチップを設計する場合、全ての回路ブロックを最初から設計することは多大な時間と労力とを必要とし、困難である。しかも、集積回路の開発期間は、短くなる傾向にあり、開発側にとって、大きな負担となってきている。
【0004】
そこで、大規模マクロセル(コア(メガセル))の標準化を図り、開発元の異なる複数のコアを自由に選択し、一つのチップ上に集積できるコアの新しい流通形態が注目されている。このような動向に伴い、VSI(Virtual Socket Interface)アライアンスが近年設立され、大規模ASICのコア流通の機運が盛り上がっている。このようなコアの標準化は、今後益々高機能化していくであろう大規模なASICやPLD(Programmable Logic Device)の開発という観点からすれば、効率的な設計を促進させる理想的なものである。
【0005】
【発明が解決しようとする課題】
しかしながら、複数のコアを集めて集積し、自由なファウンドリの選択が可能なVSIでは、コアが不正にコピーされ使用されるというリスクが伴うという問題点があった。
【0006】
各コアは複数のベンダによって製作されたものであり、各コアを用いて製作した集積回路が製品化されて不特定多数者にわたった場合に、各コアのコピーなどがなされないように保証される必要がある。各コアは、その開発に多大な労力と時間とをかけた結果物であり、知的財産権として十分に保護されることが求められており、このための対策が急務となっているのが現実である。
【0007】
この発明は上記に鑑みてなされたもので、集積回路を構成する各コアが、不正にコピーあるいは使用を防止することができる、集積回路、および、そのコアの盗用防止方法を提供することを目的とする。
【0008】
【課題を解決するための手段】
上記目的を達成するため、請求項1にかかる発明は、1以上のコアを1チップ上に備える集積回路において、前記コアは、所定の公開鍵暗号方式に対応した自コアの復号鍵情報を保持する復号鍵情報保持手段と、前記所定の公開鍵暗号方式によって暗号化される自コアの認証情報を保持する認証情報保持手段と、前記所定の公開鍵暗号方式による復号演算処理を行う復号演算処理手段と、前記認証情報を前記所定の公開鍵暗号方式にて暗号化することで得られた暗号化情報を当該コアの外部から取得し、当該暗号化情報および前記復号鍵情報を用いて前記復号演算処理手段に復号演算処理を行わせ、この復号演算処理結果が前記認証情報保持手段にて保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせる認証制御手段と、を備えたことを特徴とする。
【0009】
この請求項1にかかる発明によれば、認証制御手段が、暗号化情報をコアの外部から取得し、該暗号化情報および復号鍵情報保持手段が保持する復号鍵情報を用いて復号演算処理手段に復号演算処理を行わせ、復号演算処理結果が認証情報保持手段にて保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせるようにしている。
【0010】
また、請求項2にかかる発明は、上記の発明において、前記暗号化情報を前記コアの外部において保持する暗号化情報保持手段をさらに備え、前記認証制御手段は、前記アクセス認証情報保持手段から前記暗号化情報を取得し、該暗号化情報および前記復号鍵情報を用いて前記復号演算処理手段に復号演算処理を行わせ、この復号演算処理結果が認証情報保持手段にて保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせることを特徴とする。
【0011】
この請求項2にかかる発明によれば、暗号化情報保持手段がコアの外部において暗号化情報を保持しており、認証制御手段が、前記暗号化情報保持手段から前記暗号化情報を取得し、該暗号化情報および前記復号鍵情報を用いて前記復号演算処理手段に復号演算処理を行わせ、復号演算処理結果が認証情報保持手段にて保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせるようにしている。
【0012】
また、請求項3にかかる発明は、上記の発明において、当該集積回路の起動時に、前記暗号化情報を前記コアに送出する制御を行う起動制御手段をさらに備え、前記認証制御手段は、前記暗号化情報を受け付け、該暗号化情報および前記復号鍵情報を用いて前記復号演算処理手段に復号演算処理を行わせ、この復号演算処理結果が認証情報保持手段にて保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせることを特徴とする。
【0013】
この請求項3にかかる発明によれば、起動制御手段が、当該集積回路の起動時に、前記暗号化情報を前記コアに送出する制御を行い、前記認証制御手段が、前記暗号化情報を受け付け、該暗号化情報および前記復号鍵情報を用いて前記復号演算処理手段に復号演算処理を行わせ、この復号演算処理結果が認証情報保持手段にて保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせるようにしている。
【0014】
また、請求項4にかかる発明は、上記の発明において、前記復号演算処理手段は、前記復号演算処理以外の所定の処理のための乗除算を行うことを特徴とする。
【0015】
この請求項4にかかる発明によれば、前記復号演算処理手段にて、前記復号演算処理以外の処理のための乗除算が行われるので、復号演算処理手段を取り除いてコアの盗用を図ることが不可能となる。
【0016】
また、請求項5にかかる発明は、上記の発明において、前記認証制御手段は、各コア毎に異なるストローブ信号を用いて前記各処理機能部の動作可否を制御することを特徴とする。
【0017】
この請求項5にかかる発明によれば、前記認証制御手段が、各コア毎に異なるストローブ信号を用いて前記各処理機能部の動作可否を制御するようにしている。
【0018】
また、請求項6にかかる発明は、上記の発明において、前記復号演算処理手段は、チップスライス化された乗算処理手段と、チップスライス化された除算処理手段と、前記乗算処理手段と前記除算処理手段とによる乗除演算処理の精度を可変制御する可変制御手段と、を備えることを特徴とする。
【0019】
この請求項6にかかる発明によれば、復号演算処理手段の乗算処理手段と除算処理手段とがチップスライス化されるとともに、復号演算処理手段の可変制御手段が、前記乗算処理手段と前記除算処理手段とによる乗除演算処理の精度を可変制御し、乗除演算の増大に伴ってチップスライス化された乗算処理手段および除算処理手段を増設することによって、所望の乗除演算を行うことができ、しかも演算精度を可変にしている。
【0020】
また、請求項7にかかる発明は、1以上のコアを1チップ上に備える集積回路における前記コアの盗用防止方法において、各コアに対応した認証情報を所定の公開鍵暗号方式にて暗号化することで得られた暗号化情報を保持する第1の保持工程と、前記所定の公開鍵暗号方式に対応した自コアの復号鍵情報と前記認証情報とを自コア内に保持する第2の保持工程と、前記暗号化情報を取得し、該暗号化情報と前記復号鍵情報とを用いて前記所定の公開鍵暗号方式による復号演算処理を行う復号演算処理工程と、前記復号演算処理工程による復号演算処理結果が自コア内に保持された前記認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせる制御を行う認証制御工程と、を含むことを特徴とする。
【0021】
この請求項7にかかる発明によれば、第1の保持工程によって、暗号化情報を保持し、第2の保持工程によって、自コアの復号鍵情報と認証情報とを自コア内に保持し、復号演算処理工程によって、前記暗号化情報を取得し、該暗号化情報と前記復号鍵情報とを用いて前記所定の公開鍵暗号方式による復号演算処理を行い、認証制御工程によって、前記復号演算処理工程による復号演算処理結果が自コアの認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせる制御を行うようにしている。
【0022】
また、請求項8にかかる発明は、上記の発明において、前記第1の保持工程によって保持される暗号化情報は、前記各コアの外部に保持されることを特徴とする。
【0023】
この請求項8にかかる発明によれば、前記第1の保持工程によって保持される暗号化情報を、前記各コアの外部に保持するようにしている。
【0024】
また、請求項9にかかる発明は、上記の発明において、前記第1の保持工程によって保持される暗号化情報は、当該集積回路の外部に保持されることを特徴とする。
【0025】
この請求項9にかかる発明によれば、前記第1の保持工程によって保持される暗号化情報を、当該集積回路の外部に保持するようにしている。
【0026】
また、請求項10にかかる発明は、上記の発明において、前記復号演算処理工程は、チップスライス化された乗算演算機構と除算演算機構とを用い、前記乗除演算処理の精度を可変制御して行うことを特徴とする。
【0027】
この請求項10にかかる発明によれば、前記復号演算処理工程が、チップスライス化された乗算演算機構と除算演算機構とを用い、前記乗除演算処理の精度を可変制御するようにしている。
【0028】
【発明の実施の形態】
以下に添付図面を参照して、本発明にかかる集積回路、および、そのコアの盗用防止方法の好適な実施の形態を説明する。
【0029】
(実施の形態1)
図1は、この発明の実施の形態1である集積回路の構成を示すブロック図である。図1において、集積回路1は、たとえば1000万ゲート規模のシステムオンチップとして実現されるもので、複数のコア2a〜2dと、ROM3とを備えて構成されている(なお、実際のコアの数は任意である)。
【0030】
このうち、ROM3は、後述するRSA公開鍵暗号化方式によって、各コア2a〜2dにそれぞれ対応する署名文(認証情報)を暗号化した暗号化情報3a(各コア2a〜2dにアクセスするためのアクセス権)を保持する。
【0031】
また、各コア2a〜2dは独立または他のコアと協働して所定機能を実現するマクロセルとして構成されるもので、例えば16ビットのバスBで相互に接続されている。なお、これら各コア2a〜2dは、現実には複数のベンダによって製作されたものを用いることができる。
【0032】
これら各コア2a〜2dは、相互に同じ構成であるため、以下、コア2bの構成を代表例として説明する。このコア2bは、図1に示すように、制御部11、RAM12、ROM13、乗除演算部14、および、複数の処理部15−1〜15−nを備えて構成されている。
【0033】
このROM13は、復号鍵情報13aと認証情報13bとを不揮発的に記憶する。この復号鍵情報13aは、コア2bに対する暗号化情報3aを復号するために必要な復号鍵(公開鍵および秘密鍵)である。また、認証情報13bは、コア2bが正規のものであることを保証するための情報であり、暗号化情報3aが生成される前の署名文(平文)である。
【0034】
また、制御部11は、暗号化情報3aの復号処理を制御し、復号処理された復号情報が認証情報13bに合致する場合に、ストローブ信号Sb−1〜Sb−nをアクティブにし、各処理部15−1〜15−nの動作を許可する。また、この制御部11は、この認証処理後に、コア2bの本来の機能動作を制御する。
また、各処理部15−1〜15−nは、コア2bの主要な構成要素であり、それぞれ独立した処理機能を有する。
また、乗除演算部14は、復号演算処理を行う。すなわち、乗除演算部14は、RSA暗号化方式に対応した復号処理を行うための乗除算を行う。また、この乗除演算部14は、復号処理のための乗除算を行った後、当該復号処理以外の所定の処理(当該コア2bの認証以外の機能を達成するための処理)のための乗除算を行う。
なお、RAM12は、入力された暗号化情報3aなどを一時記憶する。
【0035】
次に、図2に示すフローチャートを参照して、制御部11による認証処理手順について説明する。この図2において、まず集積回路1の立ち上げに伴って、制御部11は、ROM3内に保持された暗号化情報3aを取得する(ステップS101)。ここで、ROM3内に保持された暗号化情報3aは、自コア2bに対応する暗号化情報と、他のコア2a,2c,2dに対応する暗号化情報と、どのコア2a〜2d用の暗号化情報であるのかの解釈を困難にするための任意数のダミー情報との、計5つ以上の暗号化情報によって構成されている。これらの暗号化情報は、暗号化情報の提供機構によってランダムに生成され提供される情報であり、相互に長さの異なる情報である可能性も高いため、不正使用者にとっては、いずれの暗号化情報が自コア2bに対応する暗号化情報であるかを解読することは困難である。また、制御部11も、自コア2bに対応する暗号化情報のみを抽出する機能を持たないため、全てのコア2a〜2dに対する暗号化情報3aを一旦取得する。
【0036】
その後、制御部11は、復号鍵情報13aをROM13内から取得し、復号鍵情報13aを用いて、暗号化情報3aを構成する1つの暗号化情報を復号する(ステップS102)。この復号処理は、乗除演算部14によって行われる。その後、制御部11は、復号した情報が、ROM13内に保持された認証情報13bと合致するか否かを判断する(ステップS103)。
【0037】
ここで合致した場合(ステップS103,YES)には、各処理部15−1〜15−nに対してストローブ信号Sb−1〜Sb−nをアクティブにし、各処理部15−1〜15−nの動作を可能にして(ステップS104)、本処理を終了する。
【0038】
一方、合致しない場合(ステップS103,NO)、制御部11は、さらにこの暗号化情報が最後の暗号化情報であるか否かを判断し(ステップS105)、最後の暗号化情報でない場合(ステップS105,NO)には、さらに取得されている暗号化情報13a内から次の暗号化情報を取得し(ステップS106)、ステップS102に移行して上述した処理を繰り返す。一方、最後の暗号化情報である場合(ステップS105,YES)には、そのまま本処理を終了し、各処理部15−1〜15−nを非アクティブのままとし、不正なアクセスであったものとして各処理部15−1〜15−nの動作を不可能とする。
【0039】
つぎに、図3を参照して、上述したRSA暗号化方式を用いた認証処理について説明する。図3(a)は、RSA暗号化方式を用いた一般的な認証処理を示し、図3(b)は、RSA暗号化方式を用いた集積回路1内のコア2a〜2dの認証処理を示す。
【0040】
図3(a)に示すRSA暗号化方式を用いた一般的な認証処理は、概略的に以下のように行われる。すなわち、送信側「B」が署名文(平文)「C」を暗号化し、これを受信側「A」に送信し、これを受信側「A」において復号する。そして、受信側「A」は、復号した署名文「C」が、正規の署名文「C」と一致するか否かを確認することで、送信側「B」の正当性を認証することができる。
【0041】
この認証処理は具体的には以下のように行われる。まず、送信側「B」は、第三者に公開される公開鍵「nB」,「eB」と、第三者に公開されない秘密鍵「dB」を保持している。一方、受信側「A」は、同様に、公開鍵「nA」,「eA」と、秘密鍵「dA」とを保持している。
【0042】
そして、送信側「B」では、まず自己の公開鍵「nB」と自己の秘密鍵「dB」とを用い、RSA暗号化方式の剰余演算式によって署名文「C」を暗号化する。すなわち、
CdB≡D mod nB
を行う。
次いで、この乗除演算式の剰余「D」に対し、送信側「B」は、さらに受信側「A」の公開鍵「nA」,「eA」を用いて剰余演算を行って暗号化する。すなわち、
DeA≡E mod nA
を行う。
そして、この剰余演算の剰余「E」が、受信側「A」に送られる。
【0043】
一方、受信側「A」は、送信側「B」から送られた剰余「E」に対して、自己の公開鍵「nA」と秘密鍵「dA」を用いて剰余演算を行って復号する。すなわち、
EdA≡D mod nA
を行う。
さらに、署名文「C」に対する暗号化を復号するため、送信側「B」の公開鍵「eB」,「nB」を用いて、剰余「D」に対して剰余演算を行って剰余「C」を得る。すなわち、
DeB≡C mod nB
によって、剰余「C」を得る。
このようにして得られた剰余「C」が、正規の署名文「C」と一致するか否かを確認することで、送信側「B」の正当性を認証することができる。
【0044】
この認証処理は、送信者側をROM3、受信者側を各コア2a〜2dとして以下のように適応することができる。すなわち、図3(b)に示すように、まず暗号化情報「E」(3a)をコアベンダー等が予め生成し、ROM3側に保持しておく。一方、コア2a〜2d側では、暗号化情報「E」の復号に必要な自己の公開鍵「nA」,自己の秘密鍵「dA」,ROM3側の公開鍵「nB」,「eB」を、復号鍵情報13aとしてROM13内に保持しておく。
そして、暗号化情報「E」がROM3側からコア2a〜2d側に送られると、コア2a〜2d側では、受信側「A」と同じ復号処理を行って、最終的に剰余「C」を得ることによって、コア2a〜2dの使用者の認証処理を終了する。この認証時のコア2a〜2d側における剰余演算は、上述した乗除演算部14によって行われる。
【0045】
制御部11は、このようにして復号された剰余「C」が、認証情報13bと合致するか否かを判断し、合致する場合にはROM3が正当なものであると判断して、ストローブ信号Sb−1〜Sb−nをアクティブにして、各処理部15−1〜15−nを動作可能にする。なお、ストローブ信号Sb−1〜Sb−nは、各コア2a〜2d毎に異なるものである。また、ストローブ信号Sb−1〜Sb−nは、相互に同一とすることもでき、相互に異なるものとしてもよい。
【0046】
つぎに、図4を参照して、乗除演算部14について説明する。図4において、乗除演算部14は、制御部11によって指示された乗除演算を制御する制御回路16と、乗算処理を行う乗算回路17と、除算処理を行う除算回路18とを有する。乗算回路17は、4つの16ビット乗算器17a〜17dがスイッチSW12〜SW14を介してカスケード接続される。このため、乗算回路17は、16ビットから64ビットの乗算処理を行うことができる。また、除算回路18は、4つの32ビット除算器18a〜18dがスイッチSW22〜SW24を介してカスケード接続される。このため、除算回路18は、32ビット〜128ビットの除算処理を行うことができる。
【0047】
乗算回路17は、16ビット単位で入力される乗数と被乗数とを各16ビット乗算器17a〜17dで乗算し、処理結果の積を16ビットバス上に出力する。一方、除算回路18は、16ビット単位で入力される除数と被除数とを各32ビット除算器18a〜18dで除算処理し、除算結果である商と剰余とを16ビットバス上に出力する。
【0048】
制御回路16は、精度情報S16をスイッチSW12〜SW14,SW22〜SW24に出力し、16ビット〜64ビットの可変精度の乗算処理と、32ビット〜128ビットの可変精度の除算処理とを行わせている。すなわち、公開鍵および秘密鍵のビット数に応じたRSA暗号方式のべき乗剰余演算が64ビットである場合には、図4に示した1ユニットの剰余演算部14のみでよい。この場合、制御回路16を含めたゲート規模は、約1万6千ゲートとなるが、集積回路1が1000万ゲート規模のシステムオンチップである場合、約1万6千ゲート程度の占有は、集積回路1に大きな影響を及ぼさない。
【0049】
なお、公開鍵および秘密鍵のビット数の増大によって、1024ビットのべき乗剰余演算を行う必要がある場合には、16ユニットの乗除演算部14を複数個設けて相互にカスケード接続することによって、これを容易に行うことができる。すなわち、各ユニットをチップ(ユニット)単位とするチップスライス化した演算処理を行う。この場合、SW11およびSW21を介して互いに隣接する乗算回路17および除算回路18がカスケード接続されることになる。この時、各ユニット内の制御回路16により、演算精度に合わせて必要なモジュールおよびユニットが用いられて演算データが分散処理される。また、各制御回路16は、クロック数を可変として効率的な演算処理を行うようにしてもよい。
【0050】
このように構成される乗除演算部14は、上述のようにRSA暗号化方式における剰余演算処理を行うものであるが、その他にも、コア2a〜2d内の各処理部15−1〜15−nの乗除演算処理(汎用演算処理)をも行うものである。したがって、この乗除演算部14を取り除いた場合には、これら各処理部15−1〜15−nの乗除演算処理を行うことが不可能となり、すなわち、コア2a〜2d自体の基本機能が発揮されないことになる。
【0051】
なお、この実施の形態1では、公開鍵暗号化方式の一つとしてRSA公開鍵暗号化方式を採用したが、これに限らず、他の公開鍵暗号化方式を採用してもよい。
また、上記説明では、伝達線Lを介して各コア2a〜2dが暗号化情報3aを取得するようにしているが、各コア2a〜2dを接続するバスBに、ROM3を接続し、バスBを情報伝達線Lとして用いるようにしてもよい。
【0052】
この実施の形態1によれば、RSA暗号化方式によって暗号化された暗号化情報3aを集積回路1内のROM3に保持させておき、各コア2a〜2d内にRSA暗号化方式における復号時に必要な公開鍵、秘密鍵からなる復号鍵情報13aおよび認証情報13bを保持させておき、集積回路1の起動時に、各コア2a〜2dが暗号化情報3aを読み出し、認証処理を行い、正しい認証が行われた場合にのみ、各コア2a〜2d毎に各コア2a〜2d内の各処理部15−1〜15−nの動作を可能とするようにしているので、各コア2a〜2dの不正コピーあるいは不正使用を確実に防止することができる。
【0053】
また、RSA暗号化方式の復号処理を行う乗除演算部14は、復号処理のみならず、コア2a〜2d内の一般の演算処理にも用いられるため、復号処理のみにかかわる処理部分をコアから取り除くことができず、さらに各コア2a〜2d内のストローブ信号Sb−1〜Sb−nは、各コア2a〜2d毎に異なり、全てのストローブ信号を解析するのは困難であることから、一層、各コア2a〜2dの不正コピーあるいは不正使用を防止することができる。
【0054】
さらに、乗除演算部14は、RSA暗号化方式に用いられる鍵ビット数によってゲート規模が変化するが、チップスライス化された演算処理を行っているため、ハード的に単にユニットを追加接続するのみで対応することができ、ユニットの増減が生じても、このためのプログラム変更や回路変更を行う必要がなく、柔軟な演算処理を行うことができるとともに、可変精度の制御を行うようにしているため、効率的な演算処理を行うことができる。
【0055】
(実施の形態2)
つぎに、この発明の実施の形態2について説明する。上述した実施の形態1では、各コア2a〜2dがROM3内に保持された暗号化情報3aを取得するようにしていたが、この実施の形態2では、集積回路の電源立ち上げ時に、ROM3内の暗号化情報3aを各コア2a〜2dに送出し、各コア2a〜2dがこの送出された暗号化情報3aを復号し、認証処理を行うようにしている。
【0056】
図5は、この発明の実施の形態2である集積回路の構成を示すブロック図である。図5において、集積回路21は、図1に示した集積回路1内にさらに起動制御部4を設けるようにしている。その他の構成は、実施の形態1と同じであり、同一構成部分には同一符号を付している。
【0057】
起動制御部4は、集積回路21の電源立ち上げによって、ROM3内の暗号化情報3aを読み出し、情報伝達線Lを介して各コア2a〜2dに送出する。暗号化情報3aは、各コア2a〜2dに対応した4つの暗号化情報「a」〜「d」と、ダミー情報(図示において「*」にて示す)とから構成されている。これら暗号化情報3aは、起動制御部4の制御によって、情報伝達線Lを介しランダムな順序で一括して各コア2a〜2dに送出される。
【0058】
ここで、図6に示すフローチャートを参照して、集積回路21内の一連の復号処理手順について説明する。図6において、まず集積回路21の立ち上げに伴って、起動制御部4は、ROM3内に保持された暗号化情報3aを読み出し、読み出した暗号化情報3aを情報伝達線Lを介して各コア2a〜2dに送出する(ステップS201)。
【0059】
各コア2a〜2dの制御部11は、送出された暗号化情報3aを一旦RAM12内に格納し(ステップS202)、その後RAM12内に格納された1つの暗号化情報3aを取り出す(ステップS203)。たとえば、暗号化情報「a」を取り出す。その後、制御部11は、復号鍵情報13aをROM13内から取得し、復号鍵情報13aを用いて、暗号化情報「a」を復号する(ステップS204)。この復号処理は、乗除演算部14によって行われる。その後、制御部11は、復号した情報が、ROM13内に保持された認証情報13bと合致するか否かを判断する(ステップS205)。
【0060】
合致した場合(ステップS205,YES)には、各処理部15−1〜15−nに対してストローブ信号Sb−1〜Sb−nをアクティブにし、各処理部15−1〜15−nを動作可能にして(ステップS206)、本処理を終了する。
【0061】
一方、合致しない場合(ステップS205,NO)、制御部11は、さらにこの暗号化情報「a」が最後の暗号化情報であるか否かを判断し(ステップS207)、最後の暗号化情報でない場合(ステップS207,NO)には、さらに取得されている暗号化情報13a内から次の暗号化情報を取得し(ステップS208)、ステップS204に移行して上述した処理を繰り返す。一方、最後の暗号化情報である場合(ステップS207,YES)には、そのまま本処理を終了し、各処理部15−1〜15−nを非アクティブのままとし、不正なアクセスであったものとして各処理部15−1〜15−nの動作を不可能とする。
【0062】
この実施の形態2によれば、起動制御部4が一括して暗号化情報3aを各コア2a〜2dに送出し、各コア2a〜2dが復号処理を行うようにしているので、各コア2a〜2dのアクセス処理が軽減され、集積回路21内の復号処理を効率的に行うことができる。
【0063】
(実施の形態3)
つぎに、この発明の実施の形態3について説明する。上述した実施の形態1,2では、ROM3を集積回路1,21内に配置するようにしていたが、この実施の形態3では、ROM3を集積回路の外部に設け、ROM3と集積回路とを接続するようにしている。
【0064】
図7は、この発明の実施の形態3である集積回路31とこれに接続されるROM33との構成を示すブロック図である。図7において、集積回路31は、集積回路31内に、暗号化情報3aを格納するROMを設けず、集積回路31の外部に、外部接続できるROM33を配置する。
【0065】
ROM33は、ROM3内に格納された暗号化情報3aを保持する。ROM33は、たとえばSRAM型のFPGA(Field Programmable Gate Array)のダウンロード用のような外付けROMで実現できる。
【0066】
この実施の形態3によれば、暗号化情報3aを格納するROM33が集積回路31の外部に設けられるので、各コア2a〜2dのみならず、集積回路(チップ)31全体の不正コピーあるいは不正使用をも確実に防止することができる。
【0067】
【発明の効果】
以上説明したように、請求項1にかかる発明によれば、認証制御手段が、暗号化情報をコアの外部から取得し、該暗号化情報および復号鍵情報保持手段が保持する復号鍵情報を用いて復号演算処理手段に復号演算処理を行わせ、この復号演算処理結果が自コアに保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせるようにしているので、各コアの不正コピーあるいは不正使用を確実に防止することができるという効果を奏する。
【0068】
また、請求項2にかかる発明によれば、暗号化情報保持手段が、コアの外部において暗号化情報を保持し、認証制御手段が、前記暗号化情報保持手段から前記暗号化情報を取得し、該暗号化情報および前記復号鍵情報を用いて前記復号演算処理手段に復号演算処理を行わせ、この復号演算処理結果が自コア内に保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせるようにしているので、各コアのみならず、集積回路全体に対する不正コピーあるいは不正使用を確実に防止することができるという効果を奏する。
【0069】
また、請求項3にかかる発明によれば、起動制御手段が、当該集積回路の起動時に、前記暗号化情報を前記コアに送出する制御を行い、前記認証制御手段が、前記暗号化情報を受け付け、該暗号化情報および前記復号鍵情報を用いて前記復号演算処理手段に復号演算処理を行わせ、復号演算処理結果が自コア内に保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせるようにしているので、各コアにかかる負担が軽減され、効率的な認証処理を行うことができるという効果を奏する。
【0070】
また、請求項4にかかる発明によれば、前記復号演算処理手段は、前記復号演算処理以外の所定の処理のための乗除算を行うものとして構成されており、復号演算処理手段を取り除くことができないようにしているので、各コアの不正コピーあるいは不正使用を一層、確実に防止することができるという効果を奏する。
【0071】
また、請求項5にかかる発明によれば、前記認証制御手段が、各コア毎に異なるストローブ信号を用いて前記各処理機能部の動作可否を制御するようにしているので、各コア毎に異なるストローブ信号を解析することが困難となり、一層、各コアの不正コピーあるいは不正使用を防止することができるという効果を奏する。
【0072】
また、請求項6にかかる発明によれば、復号演算処理手段の乗算処理手段と除算処理手段とがチップスライス化されるとともに、復号演算処理手段の可変制御手段が、前記乗算処理手段と前記除算処理手段とによる乗除演算処理の精度を可変制御し、乗除演算の増大に伴ってチップスライス化された乗算処理手段および除算処理手段を増設することによって、所望の乗除演算を行うことができ、しかも演算精度を可変にしているので、暗号化情報のビット数に対応した乗除演算機能を柔軟に満足させることができ、このためのプログラム変更や回路変更を行う必要がなくなるとともに、演算精度が可変となるので、効率的な演算処理を行うことができるという効果を奏する。
【0073】
また、請求項7にかかる発明によれば、第1の保持工程によって、暗号化情報を保持し、第2の保持工程によって、前記所定の公開鍵暗号方式に対応した自コアの復号鍵情報と前記認証情報とを自コア内に保持し、復号演算処理工程によって、前記暗号化情報を取得し、該暗号化情報と前記復号鍵情報とを用いて前記所定の公開鍵暗号方式による復号演算処理を行い、認証制御工程によって、前記復号演算処理工程による復号演算処理結果が自コア内に保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせる制御を行うようにしているので、各コアの不正コピーあるいは不正使用を確実に防止することができるという効果を奏する。
【0074】
また、請求項8にかかる発明によれば、前記第1の保持工程によって保持される暗号化情報を、前記各コアの外部に保持するようにしているので、各コアの不正コピーあるいは不正使用を確実に防止することができるという効果を奏する。
【0075】
また、請求項9にかかる発明によれば、前記第1の保持工程によって保持される暗号化情報を、当該集積回路の外部に保持するようにしているので、各コアのみならず、集積回路全体に対する不正コピーあるいは不正使用を確実に防止することができるという効果を奏する。
【0076】
また、請求項10にかかる発明によれば、前記復号演算処理工程が、チップスライス化された乗算演算機構と除算演算機構とを用い、前記乗除演算処理の精度を可変制御するようにしているので、暗号化情報のビット数に対応した乗除演算機能を柔軟に満足させることができ、このためのプログラム変更や回路変更を行う必要がなくなるとともに、演算精度が可変となるので、効率的な演算処理を行うことができるという効果を奏する。
【図面の簡単な説明】
【図1】この発明の実施の形態1にかかる集積回路の構成を示すブロック図である。
【図2】図1の集積回路内の各コアによる認証処理手順を示すフローチャートである。
【図3】RSA暗号化方式の認証処理手順と集積回路における認証処理手順とを比較する図である。
【図4】図1に示した乗除演算部の詳細構成を示すブロック図である。
【図5】この発明の実施の形態2にかかる集積回路の構成を示すブロック図である。
【図6】図5に示した集積回路内における認証処理手順を示すフローチャートである。
【図7】この発明の実施の形態3にかかる集積回路の構成を示すブロック図である。
【符号の説明】
1,21,31 集積回路
2a〜2d コア
3,13,33 ROM
4 起動制御部
11 制御部
12 RAM
13a 復号鍵情報
13b 認証情報
14 乗除演算部
15−1〜15−n 処理部
L 情報伝達線
B バス
Sb−1〜Sb−n ストローブ信号
Claims (10)
- 1以上のコアを1チップ上に備える集積回路において、
前記コアは、
所定の公開鍵暗号方式に対応した自コアの復号鍵情報を保持する復号鍵情報保持手段と、
前記所定の公開鍵暗号方式によって暗号化される自コアの認証情報を保持する認証情報保持手段と、
前記所定の公開鍵暗号方式による復号演算処理を行う復号演算処理手段と、
前記認証情報を前記所定の公開鍵暗号方式にて暗号化することで得られた暗号化情報を当該コアの外部から取得し、当該暗号化情報および前記復号鍵情報を用いて前記復号演算処理手段に復号演算処理を行わせ、この復号演算処理結果が前記認証情報保持手段にて保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせる認証制御手段と、
を備えたことを特徴とする集積回路。 - 前記暗号化情報を前記コアの外部において保持する暗号化情報保持手段をさらに備え、
前記認証制御手段は、
前記暗号化情報保持手段から前記暗号化情報を取得し、当該暗号化情報および前記復号鍵情報を用いて前記復号演算処理手段に復号演算処理を行わせ、この復号演算処理結果が前記認証情報保持手段にて保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせることを特徴とする請求項1に記載の集積回路。 - 当該集積回路の起動時に、前記暗号化情報を前記コアに送出する制御を行う起動制御手段をさらに備え、
前記認証制御手段は、
前記暗号化情報を受け付け、該暗号化情報および前記復号鍵情報を用いて前記復号演算処理手段に復号演算処理を行わせ、この復号演算処理結果が前記認証情報保持手段にて保持された認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせることを特徴とする請求項2に記載の集積回路。 - 前記復号演算処理手段は、前記復号演算処理以外の所定の処理のための乗除算を行うことを特徴とする請求項1〜3のいずれか一つに記載の集積回路。
- 前記認証制御手段は、各コア毎に異なるストローブ信号を用いて前記各処理機能部の動作可否を制御することを特徴とする請求項1〜4のいずれか一つに記載の集積回路。
- 前記復号演算処理手段は、
チップスライス化された乗算処理手段と、
チップスライス化された除算処理手段と、
前記乗算処理手段と前記除算処理手段とによる乗除演算処理の精度を可変制御する可変制御手段と、
を備えることを特徴とする請求項1〜5のいずれか一つに記載の集積回路。 - 1以上のコアを1チップ上に備える集積回路における前記コアの盗用防止方法において、
各コアに対応した認証情報を所定の公開鍵暗号方式にて暗号化することで得られた暗号化情報を保持する第1の保持工程と、
前記所定の公開鍵暗号方式に対応した自コアの復号鍵情報と前記認証情報とを自コア内に保持する第2の保持工程と、
前記暗号化情報を取得し、該暗号化情報と前記復号鍵情報とを用いて前記所定の公開鍵暗号方式による復号演算処理を行う復号演算処理工程と、
前記復号演算処理工程による復号演算処理結果が自コア内に保持された前記認証情報と同じである場合に、自コアの内部に設けられた各処理機能部の動作を可能にさせる制御を行う認証制御工程と、
を含むことを特徴とする集積回路のコアの盗用防止方法。 - 前記第1の保持工程によって保持される暗号化情報は、前記各コアの外部に保持されることを特徴とする請求項7に記載の集積回路のコアの盗用防止方法。
- 前記第1の保持工程によって保持される暗号化情報は、当該集積回路の外部に保持されることを特徴とする請求項7に記載の集積回路のコアの盗用防止方法。
- 前記復号演算処理工程は、チップスライス化された乗算演算機構と除算演算機構とを用い、前記乗除演算処理の精度を可変制御して行うことを特徴とする請求項7〜9のいずれか一つに記載の集積回路のコアの盗用防止方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000071163A JP4543194B2 (ja) | 2000-03-14 | 2000-03-14 | 集積回路、および、そのコアの盗用防止方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000071163A JP4543194B2 (ja) | 2000-03-14 | 2000-03-14 | 集積回路、および、そのコアの盗用防止方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001256114A JP2001256114A (ja) | 2001-09-21 |
JP4543194B2 true JP4543194B2 (ja) | 2010-09-15 |
Family
ID=18589787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000071163A Expired - Fee Related JP4543194B2 (ja) | 2000-03-14 | 2000-03-14 | 集積回路、および、そのコアの盗用防止方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4543194B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4831957B2 (ja) * | 2004-12-02 | 2011-12-07 | ルネサスエレクトロニクス株式会社 | コピー防止回路装置およびコピー防止方法 |
KR100666328B1 (ko) | 2005-02-11 | 2007-01-09 | 삼성전자주식회사 | 온 칩 메모리를 이용한 기밀 정보 보안 장치 및 보안 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10198726A (ja) * | 1996-09-25 | 1998-07-31 | Vlsi Technol Inc | 集積回路の設計において複合機能ブロックを効率的に実装する方法及び装置 |
-
2000
- 2000-03-14 JP JP2000071163A patent/JP4543194B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10198726A (ja) * | 1996-09-25 | 1998-07-31 | Vlsi Technol Inc | 集積回路の設計において複合機能ブロックを効率的に実装する方法及び装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2001256114A (ja) | 2001-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI488477B (zh) | 使用實體不可複製功能以電子式保護電子裝置方法與系統 | |
TWI468971B (zh) | 安全軟體下載 | |
TW413988B (en) | Cryptographic system | |
Eichhorn et al. | Logically reconfigurable PUFs: Memory-based secure key storage | |
US11023621B2 (en) | System and method for authenticating and IP licensing of hardware modules | |
JP2006295872A (ja) | 機器固有鍵の生成方法、これを用いた機密情報処理機能を備えた機密情報lsi、これを搭載したホスト機器、これに用いられる認証機能付き記録媒体、および認証機能を備えた記録媒体付き携帯端末 | |
JP2007241519A (ja) | 携帯端末 | |
US8774407B2 (en) | System and method for executing encrypted binaries in a cryptographic processor | |
CN102461113B (zh) | 内容复制控制的方法和系统 | |
Zhang et al. | Enhancing security of FPGA-based embedded systems with combinational logic binding | |
Zhang et al. | A pragmatic per-device licensing scheme for hardware IP cores on SRAM-based FPGAs | |
Nannipieri et al. | VLSI design of Advanced-Features AES CryptoProcessor in the framework of the European Processor Initiative | |
JP3626340B2 (ja) | 暗号装置及び暗号鍵生成方法、並びに素数生成装置及び素数生成方法 | |
US7657034B2 (en) | Data encryption in a symmetric multiprocessor electronic apparatus | |
Roy et al. | Combining puf with rluts: a two-party pay-per-device ip licensing scheme on fpgas | |
JP4543194B2 (ja) | 集積回路、および、そのコアの盗用防止方法 | |
US11562050B2 (en) | System and method for licensing and for measuring use of an IP block | |
WO2006046484A1 (ja) | 認証方法 | |
JP4593207B2 (ja) | ソフトウェア無線システム | |
Castillo et al. | Secure IP downloading for SRAM FPGAs | |
Malipatlolla et al. | A novel method for secure intellectual property deployment in embedded systems | |
JP2003209545A (ja) | コア内蔵型集積回路及びそのコア盗用防止方法 | |
CN106529322A (zh) | 自动的存储安全 | |
TWI221966B (en) | Device for encrypting/protecting program with protection bit codes | |
US20160380766A1 (en) | Encryption system with a generator of one-time keys and a method for generating one time-keys |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20050511 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070226 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070226 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100601 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100608 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130709 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130709 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |