(57)【要約】【解決手段】本発明は、一又は複数の被保護回路(IP1〜IPN)と、一又は複数の被保護回路を起動させるためのライセンスをライセンス発行部(104) に要求するように構成されているライセンス制御回路(110) とを備えた集積回路に関し、ライセンスを要求するライセンス要求がシード値(SEED)を含んでおり、集積回路は、ライセンス発行部から受信するライセンスの信頼性をシード値に基づき検証するように構成された暗号化回路(120) を更に備えており、ライセンス制御回路(110) は、受信したライセンスに有効期限を付与して、受信したライセンスの有効期限の前にライセンス発行部に新たなライセンスを要求するように構成されている。
2021506050.tif 000002
【特許請求の範囲】
【請求項１】
一又は複数の被保護回路(IP1〜IPN)と、
前記一又は複数の被保護回路を起動させるためのライセンスをライセンス発行部(104) に要求するように構成されているライセンス制御回路(110) と
を備えており、前記ライセンスを要求するライセンス要求がシード値(SEED)を含んでおり、
前記ライセンス発行部から受信するライセンスの信頼性を、前記シード値に基づき検証するように構成された暗号化回路(120) を更に備えており、
前記ライセンス制御回路(110) は、受信したライセンスに有効期限を付与して、受信したライセンスの有効期限の前に前記ライセンス発行部に新たなライセンスを要求するように構成されており、前記新たなライセンスを要求するライセンス要求が新たなシード値(SEED)を含んでいることを特徴とする集積回路。
【請求項２】
前記シード値の一又は複数を記憶するように構成されているシードメモリ(116) を更に備えていることを特徴とする請求項１に記載の集積回路。
【請求項３】
前記ライセンス制御回路(110) は、有効でないライセンスに関連付けられたシード値を前記シードメモリ(116) から除去するように構成されていることを特徴とする請求項２に記載の集積回路。
【請求項４】
受信するライセンスはメッセージ認証コードを含んでおり、
前記暗号化回路(120) は、前記シードメモリ(116) に記憶されたシード値を使用して前記メッセージ認証コードを検証することにより、前記ライセンスの信頼性を検証するように構成されていることを特徴とする請求項２又は３に記載の集積回路。
【請求項５】
乱数値又は偽似乱数値を生成するように構成されている乱数値生成器(112) を更に備えており、
前記ライセンス制御回路は、前記乱数値又は偽似乱数値に基づきシード値を生成するように構成されていることを特徴とする請求項１〜４のいずれか１つに記載の集積回路。
【請求項６】
前記シード値は、前記集積回路を識別するデバイス識別子を含んでいることを特徴とする請求項１〜５のいずれか１つに記載の集積回路。
【請求項７】
前記ライセンスは検証コードを含んでおり、
前記集積回路は、前記検証コードの検証結果に基づき前記一又は複数の被保護回路の内の第１の被保護回路に関連付けられた起動レジスタ(412) に起動コードをロードすることにより、前記第１の被保護回路を起動させるように構成されている回路起動モジュールを更に備えていることを特徴とする請求項１〜６のいずれか１つに記載の集積回路。
【請求項８】
前記暗号化回路は、
前記シード値からデバイス鍵を導き出し、
前記検証コードを抽出するために前記デバイス鍵を使用して、受信したライセンスを復号する
ように更に構成されていることを特徴とする請求項７に記載の集積回路。
【請求項９】
前記一又は複数の被保護回路のアクティビティに関連する一又は複数の計数値を受信して、前記一又は複数の計数値に基づき計測データを生成するように構成されている計測データ生成器(606) を更に備えていることを特徴とする請求項１〜８のいずれか１つに記載の集積回路。
【請求項１０】
前記ライセンス制御回路(110) は、
前記ライセンス発行部(104) からの新たなライセンスの要求に前記計測データを含める、及び／又は
前記計測データに基づき、受信したライセンスの有効期限を決定する
ように更に構成されていることを特徴とする請求項９に記載の集積回路。
【請求項１１】
集積回路の一又は複数の被保護回路にライセンスを適用する方法であって、
前記一又は複数の被保護回路を起動させるためのライセンスをライセンス発行部(104) に要求し、前記ライセンスを要求するライセンス要求がシード値(SEED)を含んでおり、
前記ライセンス発行部から受信したライセンスの信頼性を、前記シード値に基づき検証し、
受信したライセンスに有効期限を付与して、受信したライセンスの有効期限の前に前記ライセンス発行部に新たなライセンスを要求し、前記新たなライセンスを要求するライセンス要求が新たなシード値(SEED)を含んでいることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、集積回路の分野に関し、特に集積回路内のIP (intellectual property)ブロックの認証及び許可を可能にし、より一般的にはあらゆる回路又はシステムの認証及び許可を可能にする方法及びシステムに関する。本開示は更に、IPブロックの使用を計測するための方法及びシステムに関する。
【背景技術】
【０００２】
集積回路は一般に、IP (intellectual property)ブロックとして本分野で知られている回路ブロックの集合体を備えている。IPブロックは、特定の機能を行い、様々な異なる集積回路に再利用されてもよい別個のハードウェア回路構成に相当する。所与の集積回路(IC)内のIPブロックは一般に、IPブロックのIP権利者によってIC設計者に許可される。
【０００３】
IPブロックは、例えばRTL （レジスタ転送レベル）、Verilog 又はVHDL（超高速集積回路ハードウェア記述言語）のようなハードウェア記述言語でソフトウェアとしてIC設計者に与えられる。IP権利者は、自身のIPブロックを限られた数の集積回路及び／又は限られた数のプロジェクトで使用するライセンスをIC設計者に与えるか、又は、IPブロックを組み込む集積回路／プロジェクト毎に使用料の支払いを求めることが多い。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ある用途では、IPブロック及び／又はハードウェア回路のライセンスを、限られた期間、与えることが望ましい。しかしながら、既存の解決策は、複雑、費用がかかる及び／又は十分に安全でない傾向がある。
【０００５】
本明細書の実施形態の目的は、先行技術における一又は複数の問題を少なくとも部分的に対処することである。
【課題を解決するための手段】
【０００６】
一態様によれば、一又は複数の被保護回路と、前記一又は複数の被保護回路を起動させるためのライセンスをライセンス発行部に要求するように構成されているライセンス制御回路とを備えており、前記ライセンスを要求するライセンス要求がシード値を含んでおり、前記ライセンス発行部から受信するライセンスの信頼性を、前記シード値に基づき検証するように構成された暗号化回路を更に備えており、前記ライセンス制御回路は、受信したライセンスに有効期限を付与して、受信したライセンスの有効期限の前に前記ライセンス発行部に新たなライセンスを要求するように構成されていることを特徴とする集積回路が提供される。
【０００７】
一実施形態によれば、前記集積回路は、前記シード値の一又は複数を記憶するように構成されているシードメモリを更に備えている。
【０００８】
一実施形態によれば、前記ライセンス制御回路は、有効でないライセンスに関連付けられたシード値を前記シードメモリから除去するように構成されている。
【０００９】
一実施形態によれば、受信するライセンスはメッセージ認証コードを含んでおり、前記暗号化回路は、前記シードメモリに記憶されたシード値を使用して前記メッセージ認証コードを検証することにより、前記ライセンスの信頼性を検証するように構成されている。
【００１０】
一実施形態によれば、前記集積回路は、乱数値又は偽似乱数値を生成するように構成されている乱数値生成器を更に備えており、前記ライセンス制御回路は、前記乱数値又は偽似乱数値に基づきシード値を生成するように構成されている。
【００１１】
一実施形態によれば、前記シード値は、前記集積回路を識別するデバイス識別子を含んでいる。
【００１２】
一実施形態によれば、前記ライセンスは検証コードを含んでおり、前記集積回路は、前記検証コードの検証結果に基づき前記一又は複数の被保護回路の内の第１の被保護回路に関連付けられた起動レジスタに起動コードをロードすることにより、前記第１の被保護回路を起動させるように構成されている回路起動モジュールを更に備えている。
【００１３】
一実施形態によれば、前記暗号化回路は、前記シード値からデバイス鍵を導き出し、前記検証コードを抽出するために前記デバイス鍵を使用して、受信したライセンスを復号するように更に構成されている。
【００１４】
一実施形態によれば、前記集積回路は、前記一又は複数の被保護回路のアクティビティに関連する一又は複数の計数値を受信して、前記一又は複数の計数値に基づき計測データを生成するように構成されている計測データ生成器を更に備えている。
【００１５】
一実施形態によれば、前記ライセンス制御回路は、前記ライセンス発行部からの新たなライセンスの要求に前記計測データを含める、及び／又は、前記計測データに基づき、受信したライセンスの有効期限を決定するように更に構成されている。
【００１６】
一態様によれば、集積回路の一又は複数の被保護回路にライセンスを適用する方法であって、前記一又は複数の被保護回路を起動させるためのライセンスをライセンス発行部に要求し、前記ライセンスを要求するライセンス要求がシード値を含んでおり、前記ライセンス発行部から受信したライセンスの信頼性を、前記シード値に基づき検証し、受信したライセンスに有効期限を付与して、受信したライセンスの有効期限の前に前記ライセンス発行部に新たなライセンスを要求することを特徴とする方法が提供される。
【図面の簡単な説明】
【００１７】
前述及び他の特徴及び利点は、添付図面を参照して本発明を限定するものではない実例として与えられる実施形態の以下の詳細な説明から明らかになる。
【００１８】
【図１】本開示の例示的な実施形態に従ってライセンス発行部と通信する電子デバイスを概略的に示す図である。
【図２】本開示の例示的な実施形態に従って集積回路の一又は複数の回路を保護する方法のステップを示すフローチャートである。
【図３Ａ】本開示の例示的な実施形態に従ってIPブロックのライセンスを許可するシステムを概略的に示す図である。
【図３Ｂ】例示的な実施形態に係る、より詳細な図３Ａのライセンス生成回路を示す図である。
【図４】本開示の例示的な実施形態に係るIP許可部品を備えた電子デバイスを概略的に示す図である。
【図５Ａ】本開示の例示的な実施形態に係るIPブロックの起動回路を概略的に示す図である。
【図５Ｂ】本開示の例示的な実施形態に係るIPブロックの起動回路を概略的に示す図である。
【図６】本開示の例示的な実施形態に係る計測回路を概略的に示す図である。
【図７】本開示の更なる例示的な実施形態に係る許可システムを概略的に示す図である。
【発明を実施するための形態】
【００１９】
下記の説明を通して、ある実施形態がハードウェアで実施されると記載されているが、様々な実施形態が一又は複数のプロセッサによって実行されるソフトウェア命令によって少なくとも部分的に実施され得ることは、当業者にとって明らかである。
【００２０】
下記の説明を通して、以下の用語に以下の定義が与えられる。
IPブロック  −  特定の機能を行い、FPGA（フィールドプログラマブルゲートアレイ）を含む様々な異なる集積回路に再利用されてもよい別個のハードウェア回路構成
被保護回路  −  起動コードによって起動されない限り、動作停止状態であるように機構によって保護されたIPブロック、IPブロックの集合体又は一若しくは複数の集積回路を備えたシステムに相当してもよい回路
乱数値又は偽似乱数値  −  予測不可能であるか、又は予測するのが困難なあらゆるデジタル値
【００２１】
図１は、ライセンス発行部104 と通信する電子デバイス102 を概略的に示す。例えば、通信はローカルネットワークを介して行われる。或いは、ある実施形態では、ライセンス発行部104 及び電子デバイス102 は、インターネットのようなより大きなネットワークによって分離され得る。
【００２２】
電子デバイス102 は、例えば被保護回路IP1 〜IPN を備えている。各被保護回路は、例えば画像処理作業を行うことができる画像処理プロセッサ、標準プロトコルを管理するためのインターフェースのような、例えば精密な機能を行うために開発された複雑な回路、又はプロセッサ、符号化回路若しくは復号回路のような高度な作業を行うことができる他の回路などである。ある実施形態では、各被保護回路はFPGAを有してもよく、被保護回路によって実行される機能は、プログラミングコードによってFPGAにプログラミングされている。
【００２３】
電子デバイス102 は例えば集積回路であり、被保護回路は集積回路のIPブロックである。しかしながら、代替的な実施形態では、電子デバイス102 はあらゆる電子機器に相当することができ、被保護回路は、２以上の集積回路を有する基板又はシステムを夫々含むことができる。ある実施形態では、電子デバイス102 は、携帯電話、タブレットコンピュータ、ラップトップコンピュータ、ゲームコンソールなどの製品の一部を形成するか、又は支払いカード、SIM （加入者識別モジュール）カードなどのスマートカードとして知られているカード群を含むＩＣカードに取り付けられたチップとすることができる。
【００２４】
他の実施形態では、電子デバイス102 は、許可を得た使用に利用可能なデータ処理資源を提供する並置された同様のハードウェアデバイスの一部を形成してもよい。例えば、電子デバイス102 がFPGAを備えている場合、エンドユーザは、電子デバイス102 のFPGAの使用及び／又はFPGAにプログラミングされ得る一若しくは複数の被保護IP回路の使用を可能にするライセンスを購入してもよい。
【００２５】
ライセンス発行部104 は、例えば電子デバイス102 と通信し、ハードウェア及び／又は被保護回路の内の一若しくは複数の連続作業を認めるライセンスを生成して電子デバイス102 に与える役割を果たす。例えば、各ライセンスは、限られた有効期間を有する。ある実施形態では、各ライセンスは、電子デバイス102 及び／又は被保護回路の内の一若しくは複数の作業を所与の期間、認めるトークンとしてみなされ得る。各ライセンスは、例えば数秒若しくは数分のような所与の時間単位、又はプロセッサの一定数のクロックサイクル若しくは作業分、許可を与えてもよい。或いは、各ライセンスの期間は可変であってもよく、その期間はライセンス自体に示されてもよい。例えば、ライセンスは、無効になる前にライセンスが認める、例えば秒若しくは分又はプロセッサのクロックサイクル若しくは作業の数として表現されるライセンスの有効期間を示してもよい。
【００２６】
電子デバイス102 は、例えばライセンス管理回路106 を備えており、ライセンス管理回路106 は、ライセンス発行部104 からのライセンスの要求を生成し、ライセンス発行部104 によって発行されたライセンスを受信して検証し、電子デバイス102 に有効なライセンスがない場合に警告信号ALERT をライセンス発行部104 及び／又は別のエンティティに送る。ある実施形態では、警告信号は多重信号を含んでもよい。
【００２７】
以下により詳細に記載されているある実施形態では、電子デバイス102 は、被保護回路IP1 〜IPN を起動させるために、受信したライセンスを被保護回路IP1 〜IPN に分配するライセンスサーバ108 を更に備えている。
【００２８】
ライセンス管理回路106 は、例えばライセンス制御回路110 を有しており、ライセンス制御回路110 は、例えば乱数値又は偽似乱数値の生成器（乱数値生成器）112 から乱数値を受信して任意にはデバイス識別子（デバイスID）114 を受信し、シード値SEEDを生成する。このシード値は、例えばライセンス制御回路110 によって生成されてライセンス発行部104 に送信されるライセンス要求メッセージLICENSE REQ に含まれる。ライセンス制御回路110 は更に、例えばシード値をシードメモリ116 に記憶する。
【００２９】
ライセンス管理回路106 は、ライセンス発行部104 によって発行されたライセンスLICENSE を受信し、例えばライセンスメモリ118 に記憶する。ライセンスをインターネットのようなネットワークを通して送信するある実施形態では、ライセンスを暗号化する。更に、各ライセンスは、例えばライセンス要求メッセージに含まれているシード値を使用してライセンス発行部104 によって生成されたMAC （メッセージ認証コード）のような認証コードを含んでいる。
【００３０】
ライセンス管理回路106 によって受信したライセンスは、例えばライセンス復号・MAC 検証回路（ライセンス復号＋MAC 検証）120 に与えられ、ライセンス復号・MAC 検証回路120 は、例えば、ライセンスが暗号化されている場合にはライセンスを復号し、シードメモリ116 からの対応するシード値を使用してライセンスの認証コードに基づきライセンスを認証する。
【００３１】
ライセンス発行部104 によって認証コードを生成するために使用されたシード値がシードメモリ116 に記憶されたシード値と一致する場合、ライセンスの認証は成功である。しかしながら、これらのシード値が不一致である場合、認証は失敗である。いずれの場合も、ライセンス解読・MAC 検証回路120 は、例えば認証の結果をライセンス制御回路110 に通知する。
【００３２】
ライセンス管理回路106 は、例えば新たなライセンスを要求すべきときを示すカウンタ(CNTR) 122を更に有している。例えば、現在のライセンスの終了前に新たなライセンスを発行する時間を与えるために、現在のライセンスが終了する前の一定の期間に新たなライセンスを要求する。ある実施形態では、計数信号が新たなライセンスを要求するときを決定するために使用され得るように、カウンタ122 はクロック信号の期間などを計数する。或いは、カウンタ122 は、被保護回路IP1 〜IPN の一若しくは複数のプロセッサの処理サイクル、又は被保護回路IP1 〜IPN の一若しくは複数によって行われる作業の数を計数してもよい。
【００３３】
新たなライセンスを受信することなく、現在のライセンスが終了したことをカウンタ122 が示す場合、又は、受信したライセンスの認証失敗がライセンス解読・MAC 検証回路120 によって示される場合、例えば有効なライセンスがないことをライセンス発行部104 及び／又は別のエンティティに通知するために警告信号ALERT を送る。例えば、ライセンスが終了したこと、及び一定の期限までに新たなライセンスのための支払いがない場合には複数の被保護回路IP1 〜IPN の内の一又は複数の動作を停止することを、被保護回路IP1 〜IPN のユーザに警告信号によって通知してもよい。
【００３４】
更に又は或いは、有効なライセンスがない場合、複数の被保護回路の内の一又は複数のリセット及び／又は動作停止を行う。例えば、製造の後、又はリセットの後、複数の被保護回路の内の一又は複数は動作停止状態であり、検証コードによってのみ起動することができる。この検証コードは、例えばライセンス発行部104 によって発行されるライセンスの一又は複数に含まれる。リセット作業の後、検証コードを含むライセンスが、例えば被保護回路を再起動させるために使用されるのに対して、有効なライセンスがない場合、被保護回路は例えば動作を停止したままである。
【００３５】
シード値は、例えばデバイス識別子と共に乱数値生成器112 によって生成された乱数値又は偽似乱数値の単純な連結である。デバイス識別子は、例えば電子デバイス102 又は電子デバイス102 群を識別して認証に役立つ一連のビットである。ライセンス発行部104 によって与えられるライセンスは、例えばそのデバイス識別子を有するデバイスのみに使用されることができ、ある実施形態では、所与のライセンスが１つのデバイス102 の被保護回路を起動させることだけできるように、デバイス識別子はデバイス毎に固有である。デバイス識別子は、例えばデバイス102 に固有の署名の生成に基づいている。従って、２つの集積回路が同一の機能性を備えるように製作及び／又はプログラミングされる場合であっても、これらの集積回路の署名、ひいてはこれらの集積回路のデバイス識別子は異なる。
【００３６】
デバイス識別子は、例えばPUF （物理複製困難関数）によって生成されるか、又はPUF から導き出される。PUF 値は、例えば電子デバイス102 のCPU （中央処理装置）によって生成される、及び／又は電子デバイス102 に取り付けられた一又は複数のリング発振器に基づき生成される。PUF 値の生成は、国際公開第2017／006058号パンフレットとして公開された国際特許出願により詳細に記載されている。PUF の代替例として、デバイス製造業者によってデバイスに割り当てられる識別子のような、別の形態のデバイス識別子を使用することができる。
【００３７】
図２は、例示的な実施形態に従って一又は複数の被保護回路にライセンスを与える方法200 のステップを示すフローチャートであり、この方法は、例えば図１のライセンス管理回路106 によって実行される。
【００３８】
ステップ201 では、図１のカウンタ122 によって生成された計数値CNT_VALUE が制限値に達したか否かを確認する。この計数値が制限値に達すると、この方法はステップ202 に進む。
【００３９】
ステップ202 で、乱数値生成器112 によって与えられた新たなシード値と、任意にはデバイス識別子114 とに基づき、ライセンス制御回路110 によってライセンス要求メッセージを生成する。このライセンス要求メッセージをライセンス発行部104 に送信する。
【００４０】
ステップ203 で、送信されたライセンス要求メッセージ内の新たなシード値を更に、ライセンス制御回路110 によってシードメモリ116 に記憶する。
【００４１】
ステップ204 で、古いシードをシードメモリから、例えば削除する。例えば、場合によってはライセンス制御回路110 は、一又は複数の現在有効なライセンスに関連付けられた一又は複数の現在のシード値、及び一又は複数のライセンス要求に関連付けられた一又は複数の新たなシード値をシードメモリに保持するのに対して、古いライセンスを無効にするためにその他のシード値を削除する。
【００４２】
ステップ205 で、ステップ202 で生成されたライセンス要求に応じて新たなライセンスを受信する。このライセンスをライセンス復号・MAC 検証回路120 に与え、ライセンス復号・MAC 検証回路120 は、ライセンスが暗号化されている場合にはライセンスを復号し、送信されたライセンス内のMAC を検証する。
【００４３】
そのため、ステップ206 で、例えばMAC が有効であるか否かを決定する。MAC が有効ではない場合、ステップ207 で警告信号を、例えばライセンス制御回路110 によって生成する。対して、ライセンスが有効である場合、ステップ208 で、ライセンス制御回路110 は、例えば古いライセンスをライセンスメモリ118 から削除する。更に、ライセンスがライセンスの有効期間に関する情報を含んでいる場合、この情報を、例えばライセンス復号・MAC 検証回路120 によってライセンス制御回路110 に与え、ライセンス制御回路110 は、この情報を使用して、その後のライセンスを要求するための計数制限値を決定する。
【００４４】
図３Ａは、本開示の例示的な実施形態に従って複数の被保護回路の認証及びライセンスを許可するシステム300 を概略的に示す。システム300 の複数の特徴は図１のシステム100 の特徴と同様であり、このような特徴は同様の参照番号で示されており、再度詳細に説明されない。
【００４５】
システム300 では、ライセンス発行部104 によって生成されるライセンスの一部又は全てが、以下に記載されるように電子デバイス102 の複数の被保護回路を起動させるための検証コードを含んでいる。
【００４６】
システム300 は、３つの主な機関、つまりライセンス発行部104 、信頼できる第三者機関(TTP) 及びエンドユーザに関連付けられたハードウェアを備えている。ある実施形態では、ライセンス発行部104 はIPベンダであってもよく、又は一若しくは複数のIPベンダと通信してもよい。保護は、例えば一又は複数の被保護回路の一回の起動に基づいている。
【００４７】
エンドユーザは電子デバイス102 を購入してもよい。或いは、エンドユーザは、例えば中間機関を介して電子デバイス102 を使用するライセンスを得てもよい。
【００４８】
本明細書に記載されている実施形態によれば、図１のデバイスIP1 〜IPN に相当する電子デバイス102 の一又は複数のIPブロック（IP）は、例えば最初、任意の有効なライセンスを受信する前、動作停止状態である。エンドユーザは、ライセンスをライセンス発行部又はTTP に要求することにより、動作を停止しているIPブロックを起動させる。しかしながら、代替的な実施形態では、エンドユーザではなく、集積回路の設計者又は電子デバイス102 を含む製品のベンダのようなサプライチェーンの別の機関によって起動を行ってもよい。
【００４９】
複数の被保護回路の内の一部を、最初のライセンスによって常時起動させてもよく、又は電子デバイス102 のその後のリセットまで起動させたままであってもよい。実際、特定の起動タイプ（常時、次のリセットまで、限られた期間）は、電子デバイスの被保護回路毎に異なってもよい。更に、本明細書に記載されている方法は１つのIPブロックを起動させるために使用され得る一方、この方法はより一般に、所与のデバイスの全てのIPブロック、別のIPブロック内のIPブロック及び／若しくは別のIPブロックを含むIPブロック、システム又はICカードに相当してもよいあらゆる被保護回路の起動、所与のASIC（特定用途向け集積回路）技術を使用した設計の全ての回路の起動、FPGAの所与のファミリの起動、所与の製造業者によって製造されたFPGAの起動などに更に適用され得る。この方法は、システムレベルで更に適用され得る。更に、ある実施形態では、ライセンスを使用して、IPブロックのサブセットの機能だけ起動させる又は停止することができる。
【００５０】
IPブロックを保護して起動させるための処理の例をより詳細に説明する。
【００５１】
ライセンス発行部104 で、データベース(RTL) 304 は、例えば平易なRTL （レジスタ転送レベル）コードのようなハードウェア記述言語で表された一又は複数のIPブロックを記憶する。
【００５２】
IPプロテクタブロック（IPプロテクタ）306 は、例えばIP保護機能を実行するためのソフトウェアを含んでおり、このソフトウェアは、回路を非アクティブにするためにデータベース304 からのIPブロックの一又は複数を変更するために使用される。特に、IPブロックの機能性を解除するために起動コードを要求するように、IPブロックを変更する。ある実施形態では、このステップを完全に自動的に行うことができる一方、他の実施形態では、このステップを、例えばIPブロックの設計者によって少なくとも部分的に手動で行うことができる。以下により詳細に記載するように、IPブロックを変更するために、例えば、IPブロックの一又は複数の信号経路への一又は複数の論理ゲートの挿入が、ハードウェア記述ファイルに含まれている。これらの論理ゲートは、例えば、一又は複数の正確な起動ビットが、挿入された論理ゲートの一又は複数の入力ノードで与えられる場合にのみ、信号経路に沿った変更されていない信号の伝達を許可する。ある実施形態では、起動コードは、所与のIP設計に固有であってもよい。他の実施形態では、同一の起動コードが２以上のIP設計に使用されてもよい。更に、ある実施形態では、IPブロックを起動させ得る２以上の起動コードがあってもよい。このため、例えばライセンス生成作業を容易にすることができる。
【００５３】
（図３Ａに示されていない）ライセンスクライアントとして本明細書に言及されるIPライセンスを管理するための回路が、例えば保護すべき各IPブロックに追加される。以下により詳細に記載されるように、ライセンスクライアントは、例えば、有効なライセンスが供給されると起動コードを記憶するレジスタを有している。以下により詳細に記載されるように、各ライセンスクライアントは対応するIPブロックの外部に配置され得るが、ある実施形態ではライセンスクライアントは各IPブロック内に一体化されている。
【００５４】
ある実施形態では、変更されたIPブロックを表すファイルが、例えば暗号化によって更に保護される。
【００５５】
起動コード、及び任意には変更されたIPブロックの一部又は全ては、例えばライセンス発行部104 のデータベース（被保護IP）308 に記憶されている。例えば、起動コードを含むライセンスを生成するタスクは、一又は複数のIPベンダによってライセンス発行部104 に委任されている。図３Ａの矢印310 によって表されているように、一又は複数の被保護IPブロックが電子デバイス102 のハードウェアに実装されるように、変更されたIPブロックが更に電子デバイス102 の設計者に与えられる。特に、集積回路の設計者は、例えば様々な異なるIPブロックをまとめて集積回路を形成し、これらのIPブロックの一又は複数は、例えば本明細書に記載されているように起動コードによって保護されたIPブロックに相当する。或いは、変更されたIPブロックは、電子デバイス102 のFPGAにプログラミングされる。
【００５６】
電子デバイス102 に与えられるライセンスの一部又は全ては、例えば検証コードを含んでいる。「検証コード」という用語は、ライセンスと通信して一又は複数のIPブロックの起動を許可するコードを表すために本明細書に使用されている。このコードは、一又は複数のIPブロックのための起動コードであってもよい。代替的な実施形態では、起動コードは、IPブロックの保護されたメモリ、例えばROM に既に記憶されており、起動コードはライセンスに含まれない。この場合、検証コードは、IPブロックのライセンスと通信して、起動コードが保護されたメモリから起動コードレジスタにロードされることを許可する秘密コードである。ある実施形態では、回路の概念／試験のために一時的なライセンスを集積回路の設計者に与えてもよい。
【００５７】
図１に関連して記載されているように、電子デバイス102 は、例えば被保護回路に連結されたライセンス管理回路106 を備えている。
【００５８】
電子デバイス102 が製作及び／又はプログラミング後の第１の時間、起動するとき、例えば、PUF 回路などによって生成された値を読むことにより、デバイス識別子の値を読む。場合によっては、PUF 値は、集積回路の経年劣化及び／又は環境（温度、電圧など）のような他の理由により経時的に変わる場合がある。ある実施形態では、PUF の潜在的変化を考慮して、生成されたPUF 値の少なくとも一部を不揮発性メモリに記憶する、及び／又はエラー訂正コードを生成し、PUF 値のあるビットが元の値から逸脱する場合にPUF 値を訂正することができる。デバイス識別子は更に、電子デバイス102 のポートで利用可能になるか、又はそうでなければ電子デバイス102 の外側で通信され、例えば、被保護IPブロックを起動させるためのライセンスの一部又は全てを要求するために使用される。
【００５９】
ある実施形態では、別個のライセンスが、起動させるべきIPブロック毎に生成される。或いは、ライセンスが複数のIPブロックを起動させるために生成されてもよい。電子デバイス102 の一又は複数の被保護IPブロックを解除するための一又は複数の検証コード315 が、例えばライセンス発行部104 のライセンス生成器316 に与えられる。ライセンス生成器316 はライセンスLICENSE を生成するために使用され、ライセンスは、例えば電子デバイス102 のライセンス管理回路106 に送信される。ライセンス生成器316 は、例えば電子デバイス102 からシード値を受信し、このシード値及び一又は複数の検証コードに基づきライセンスを生成する。
【００６０】
ある実施形態では、ライセンスはDRM (Design Right Management) データ320 を更に組み込む。DRM データは、例えばIPブロックの起動期間に関する特定の制限を示す。例えば、DRM データは、特定の被保護回路のためのライセンスが数秒又は数分のようなある期間、有効であることを示してもよい。DRM データは、ASIC、FPGAファミリの技術のような一若しくは複数のハードウェアタイプ、又は解除されるべきIPブロックの特定の特徴に関するライセンスの制限を更に示してもよい。回路のハードウェアタイプを、例えば特定のセンサによって決定して、IPブロックの使用を一又は複数の認められたハードウェアタイプに制限するために一又は複数の認められたハードウェアタイプと比較することができる。更に、加えて又は或いは、ライセンスのDRM データは、デバイスのセンサによって測定され得る他の変数に基づきライセンスの制限を示す制限データを定めてもよい。
【００６１】
DRM データは、例えば、検証コードに基づく複数のIP回路の内の一又は複数の最初の起動の際、一度だけ検証されて適用されてもよい。或いは、DRM データを含む新たなライセンスをライセンス発行部104 から受信する毎に、DRM データを検証して適用することができる。
【００６２】
ある実施形態では、DRM データは検証コードを変更する。例えば、ある実施形態では、検証コードは起動コードを含み、起動コードの複数のビットが与えられないか又は不正確であるため、IPブロックの一部のみが起動コードによって起動する。他の実施形態では、IPブロックのビット単位の起動／動作停止に基づかない他の技術を使用することができる。
【００６３】
図３Ｂは、例示的な実施形態に係る、より詳細なライセンス生成器316 を示す。ライセンス生成器316 は、例えば電子デバイス102 によって与えられるシード値SEEDに基づきデバイス鍵を生成する鍵導出関数（KDF1）ブロック322 を有している。ライセンス生成器316 は、例えば暗号化回路（暗号化）324 を更に有しており、暗号化回路324 は、ライセンスを生成するために、起動すべきIPブロックの一又は複数の検証コードにデバイス鍵を適用する。例えば、暗号化回路324 は、DES （データ暗号化標準）、AES （高度暗号化標準）などの暗号化アルゴリズムを適用することにより、デバイス鍵に基づき一又は複数の検証コードを符号化する。DRM データも暗号化してライセンスの一部を形成してもよい。
【００６４】
ブロック328 （暗号化）によって表されているように、ある実施形態では、一又は複数の検証コードを、IPベンダ鍵を使用してIPベンダによって暗号化してもよく、IPベンダ鍵は、例えばIPベンダによってIPブロック内に更に記憶されており、一又は複数の検証コードの復号を可能にする。このようにして、ライセンス発行部104 でさえ検証コードにアクセスすることができない。
【００６５】
その後、生成されたライセンスは電子デバイス102 に与えられる。ある実施形態では、デバイス鍵が同一である場合に検証コードの取り出しが成功するように、ライセンス生成器316 によってデバイス鍵を使用してライセンスを暗号化し、その後、電子デバイス102 でライセンスを復号するために、対称暗号化／復号アルゴリズムを使用する。
【００６６】
図４は、ライセンスサーバ108 と複数のIPとの通信がクライアントサーバの構成に基づく場合の、例示的な実施形態に係るより詳細な図３Ａの電子デバイス102 の許可部品を概略的に示す。しかしながら、代替的な実施形態では、ネットワークオンチップ(NoC) 、マルチキャストプロトコル又はブロードキャストプロトコルのような他のタイプの通信構成が可能である。ライセンスサーバ108 と複数のIPとの通信を、例えば暗号化を使用して安全にする。ライセンスサーバ108 と複数のIPとの通信インターフェースの例示的な実施が、例えば国際公開第2017／006058号パンフレットとして公開された国際特許出願により詳細に記載されている。
【００６７】
図４に示されているように、例えば、ライセンス生成器316 から受信したライセンスを電子デバイス102 のライセンスメモリ118 に送信するためにJTAG（Joined Test Action Group）インターフェースを使用する。言うまでもなく、USB （ユニバーサルシリアルバス）のような他のインターフェース規格を使用することが可能である。ライセンスメモリ118 は、例えばRAM （ランダムアクセスメモリ）である。ライセンスメモリ118 は、例えばライセンスサーバ108 内に連結されている。ライセンスサーバ108 は、例えばライセンスバス404 を介して被保護IPブロック406 と通信する。図４の例では、ライセンスバス404 は、各IPブロック406 に関連付けられたライセンスクライアント回路（ライセンスクライアント）408 と連結されており、次にライセンスクライアント回路408 は、図４にIPコア410 として示されているIPブロック406 の残り部分に連結されている。図４の例では、Ｎ個のIPコア１〜Ｎがあり、ここでＮは、例えば２以上の整数である。
【００６８】
各IPブロック406 のライセンスクライアント408 は、例えばライセンスを検証し、この検証結果に基づき、対応するIPコアの機能性をアクティヴ化するために起動コードを対応するIPコアに与える。例えば、各ライセンスクライアント408 は、ライセンスが有効と分かった場合に起動コードをロードする起動コードレジスタ412 を有している。各ライセンスクライアント408 の起動コードレジスタ412 は、対応するIPコア410 の機能性をアクティヴ化するために対応するIPコア410 に連結されている。
【００６９】
図５Ａ及び図５Ｂは、論理ゲートをIPブロックの信号経路に挿入することにより、IPブロックを起動コードの一又は複数のビットに応じて起動させるために使用される回路の例を示す。
【００７０】
図５Ａの例では、クラウド502 によって表されているIPブロックの回路部分が、同期論理デバイス(A) 506 の入力に連結されている出力ライン504 に出力信号を与える。出力ライン504 を起動ビットに応じて起動させるために、起動回路508 が出力ライン504 と同期論理デバイス506 の入力との間に挿入されている。起動回路508 は、例えば入力が出力ライン504 に連結されて出力が排他的OR (XOR)ゲート512 の一方の入力に連結されているインバータ(NOT) 510 を有している。排他的ORゲート512 の他方の入力は起動ビットen_aを受信する。起動ビットen_aは、出力ライン504 にあるデータ信号の同期論理デバイス506 への伝達を可能にすべく高状態とすべきである。
【００７１】
図５Ｂは、図５Ａの例と同様に同一の信号経路に挿入された起動回路518 の別の例を示す。しかしながら、起動回路518 は、一方の入力が出力ライン504 に連結されて他方の入力が起動ビットen_bを受信すべく連結されている排他的OR (XOR)ゲート520 を有している。この例では、起動ビットは、出力ライン504 にある信号の同期論理デバイス(B) 506 の入力への伝達を可能にすべく低状態とすべきである。
【００７２】
従って、図５Ａ及び図５Ｂは、IPブロックの回路部分を高起動ビット及び低起動ビットに基づき夫々起動させるために挿入され得る回路の例を示す。IPブロックが正確な起動コード無しでは機能しないように、同様の回路がIPブロック内の様々なポイントに挿入されてもよい。言うまでもなく、図５Ａ及び図５Ｂは、IPブロックを保護するために使用され得る論理ゲートの複数の例を示しているだけであり、多くの異なる論理関数を同一の原理に基づき実行することができる。ある実施形態では、挿入をランダムに行うため、起動コードは乱数値であり、基礎となる回路の機能によって決まらない。代替的な実施形態では、挿入を非ランダムに行うことができる。更に、図５Ａ及び図５Ｂの例では、起動回路508 が、起動コードの「１」ビットによる起動の場合に使用される一方、起動回路518 が、起動コードの「０」ビットによる起動の場合に使用され、代替的な実施形態では、「１」ビット及び「０」ビットの起動の場合に使用される多数の異なる回路があり、これらの回路の選択はランダムである。
【００７３】
ある実施形態では、図１のライセンス管理回路106 は、図６及び図７を参照してより詳細に記載されるように、計測方法を実行するように更に構成されている。
【００７４】
図６は、本開示の例示的な実施形態に係る計測回路602 を概略的に示す。計測回路602 は、例えば計測データをライセンス発行部104 に周期的に与えるために電子デバイス102 に実装されている。計測データは、例えば複数の被保護回路(IP)の内の一又は複数のアクティビティに関するデータに相当する。図６の例では、計測回路602 は、Ｎ個の計測カウンタ（計測カウンタIP1 〜計測カウンタIPN ）604 を有しており、計測カウンタは、対応する被保護回路IP1 〜IPN からイベント信号EVENT IP1 〜EVENT IPN を夫々受信する。例えば、イベント信号は、イベントが回路のアクティビティに関して生じるときを示す。例えば、イベントは、一又は複数の画像処理作業、一又は複数のパケットの処理、一又は複数の命令の実行などに相当し得る。
【００７５】
計測カウンタ604 によって生成される計数値は、例えば計測データ生成器606 に与えられ、計測データ生成器606 は計測データを使用して計測データM_DATAを周期的に生成する。例えば、計測データは、所与の時間間隔中に計測カウンタ604 の各々によって計数されるイベント数に相当する。
【００７６】
計測データM_DATAは、例えば図１のライセンス管理回路106 のライセンス制御回路110 に与えられ、新たな計測データが、例えば生成されて各ライセンス要求メッセージに組み込まれる。ある実施形態では、カウンタ122 の代わりに又はカウンタ122 に加えて、計測データを使用して各ライセンスの有効期間を決定することができる。或いは、計測データをライセンス要求と無関係に送信することができる。
【００７７】
図７は、本開示の例示的な実施形態に係るデバイス許可・計測システム700 を概略的に示す。図１の特徴と同様の図７の特徴は同様の参照番号で示されており、再度詳細に説明されない。
【００７８】
図７のシステムでは、電子デバイス102 はライセンス管理回路106 及びソフトウェア設計キット(SDK) 702 を備えている。SDK 702 は、例えばライセンス管理回路106 とライセンス発行部104 との通信を制御するためのソフトウェア層を与える。ライセンス管理回路106 は、例えばステータス信号STATUS、シード値SEED及び計測データM_DATAを夫々含む周期的なライセンス要求メッセージを生成する。ステータス信号は、例えばライセンスのロードが成功したか否かを報告する。このステータス信号はシングルビットであってもよく、又は２ビット以上を使用してより複雑なステータス情報を符号化することができる。次にSDK 702 は、この例では計測データの記憶部を含むライセンス発行部104 （ライセンス発行部及び計測データ記憶部）にライセンス要求メッセージを転送する。ライセンス発行部104 は、例えば請求書のために使用され得る計測データを抽出して、要求されたライセンスを返し、このライセンスはSDK 702 によってライセンス管理回路106 に転送される。
【００７９】
ある実施形態では、各ライセンス要求は、電子デバイス102 の使用に関連付けられたユーザ識別子及び／又はセッション識別子を更に示し、例えばユーザアカウントが計測データ及び／又はライセンス要求に関連付けられ得る。
【００８０】
本明細書に記載されている実施形態の利点は、有効期間が限られたライセンスに基づくライセンス保護が、デバイスによって生成されるシード値に基づき簡単な方法でデバイスの回路に適用され得るということである。実際、シード値は、デバイスに記憶された対応するシード値に基づき各ライセンスを生成したという検証を可能にし、対応するシード値を除去することにより、ライセンスの終了期限後にライセンスを無効とすることができる。
【００８１】
このように少なくとも１つの例示的な実施形態について述べているが、当業者は様々な変更、調整及び改良を容易に想到する。例えば、ライセンス管理回路の特定の例が図１に関連して記載されているが、多くの変形例が適用され得ることは当業者にとって明らかである。更に、このライセンス管理回路が電子デバイス102 に実装されるのではなく、電子デバイス102 と通信する別個のデバイスに実装されてもよい。
【００８２】
更に、カウンタが計数する様々な実施形態で述べられているが、複数のカウンタの内の一又は複数が選択的に減少し得ることは当業者にとって明らかである。例えば、ライセンスの有効期間に基づく計数値でカウンタ122 を開始することができ、このカウンタが０に達すると、ライセンスの更新又は終了を引き起こすことができる。
【００８３】
更に、様々な実施形態に関連して述べられている様々な特徴が、代替的な実施形態ではあらゆる組み合わせて組み合わせられ得ることは当業者にとって明らかである。
【００８４】
本特許出願は、参照によって本明細書に組み込まれる仏国特許出願第17／61778 号明細書の優先権を主張している。
【図１】
2021506050.tif 000003
【図２】
2021506050.tif 000004
【図３Ａ】
2021506050.tif 000005
【図３Ｂ】
2021506050.tif 000006
【図４】
2021506050.tif 000007
【図５Ａ】
2021506050.tif 000008
【図５Ｂ】
2021506050.tif 000009
【図６】
2021506050.tif 000010
【図７】
2021506050.tif 000011
【国際調査報告】
2021506050.tif 000012
2021506050.tif 000013
2021506050.tif 000014
2021506050.tif 000015
2021506050.tif 000016
2021506050.tif 000017