(57)【要約】  本発明は、デバイス（１０２）における１又は複数の被保護回路（２０６）を選択的に活性化させるライセンス検証回路に関する。  ライセンス検証回路は、前記デバイス（１０２）に対応する識別子からデバイスキーを導出する導出部と、第１のライセンスを受信する受信部と、第１の検証コードを抽出するために前記デバイスキーを用いて前記第１のライセンスを復号する復号部と、前記第１の検証コードの検証に基づき、第１の被保護回路の対応する活性化コードレジスタ（２１２）へ活性化コードをロードすることで前記第１の被保護回路を活性化させる活性化部とを備える。
2018523439.tif 000002
【特許請求の範囲】
【請求項１】
デバイス（１０２）における１又は複数の被保護回路（２０６）を選択的に活性化させるライセンス検証回路であって、
前記デバイス（１０２）に対応する識別子からデバイスキーを導出する導出部と、
第１のライセンスを受信する受信部と、
第１の検証コードを抽出するために前記デバイスキーを用いて前記第１のライセンスを復号する復号部と、
前記第１の検証コードの検証に基づき、第１の被保護回路に対応する活性化コードレジスタ（２１２）へ活性化コードをロードすることで前記第１の被保護回路を活性化させる活性化部と
を備えるライセンス検証回路。
【請求項２】
前記デバイス（１０２）に対応する前記識別子は、ＰＵＦ（Physically Unclonable Function）により与えられる
請求項１に記載のライセンス検証回路。
【請求項３】
前記デバイス（１０２）に対応する前記識別子は、暗号化により保護されたインタフェース上で読み出される
請求項１又は２に記載のライセンス検証回路。
【請求項４】
前記デバイスキーを導出するキー導出回路（４２２）及び前記第１のライセンスを復号する暗号回路（４２０）を備えるライセンスサーバ（１１４）と、
前記第１の被保護回路に対応しており、前記第１の検証コードに基づき該第１の被保護回路を活性化させる第１の制御回路（４２６）を備える第１のライセンスクライアント（２０８）と、
第２の被保護回路に対応しており、前記第２の被保護回路に対応する活性化コードレジスタ（２１２）へ第２の活性化コードをロードすることで前記第２の被保護回路を活性化させる第２の制御回路（４２６）を備える第２のライセンスクライアント（２０８）とを備える
請求項１から３のいずれか１項に記載のライセンス検証回路。
【請求項５】
前記ライセンスサーバ（１１４）は、前記第１の検証コードを前記第１のライセンスクライアント（２０８）へ送信し、第２の検証コードを前記第２のライセンスクライアント（２０８）へ送信する
請求項４に記載のライセンス検証回路。
【請求項６】
前記第１の検証コードは、前記ライセンスサーバ（１１４）にて、前記第１のライセンスから抽出された追加キーに基づき暗号化され、前記第１のライセンスクライアント（２０８）における前記第１の制御回路（４２６）へ送信される
請求項４又は５に記載のライセンス検証回路。
【請求項７】
前記暗号回路（４２０）は、前記第１のライセンスから前記追加キーを抽出する
請求項６に記載のライセンス検証回路。
【請求項８】
前記第１の検証コードは、ＩＰベンダキーを用いて暗号化された活性化コードを含み、
前記第１のライセンスクライアント（２０８）は更に、前記ＩＰベンダキーをメモリに記憶し、前記活性化コードを抽出するためのＩＰベンダキーに基づいて前記第１の検証コードを復号する
請求項４から７のいずれか１項に記載のライセンス検証回路。
【請求項９】
前記第１のライセンスクライアント（２０８）は、
チャレンジ値を発生させ、発生させた前記チャレンジ値を前記ライセンスサーバ（１１４）へ送信する乱数発生器を含むチャレンジ発生回路（８０２）と、
少なくとも前記チャレンジ値に基づき第１の応答値を生成する第１応答生成回路（８０４，８０６）と
を備え、
前記ライセンスサーバ（１１４）は、前記チャレンジ値を受信し、少なくとも該チャレンジ値に基づき第２の応答値を生成する第２応答生成回路（８１０，８１２）を含み、
前記第１のライセンスクライアント（２０８）は更に、前記第１の応答値と第２の応答値とを比較する検証回路を備える
請求項４に記載のライセンス検証回路。
【請求項１０】
前記第１及び第２応答生成回路（８０４，８０６，８１０，８１２）は、ハッシュ関数に基づいて前記第１及び第２の応答値を生成する
請求項９に記載のライセンス検証回路。
【請求項１１】
前記第１のライセンスクライアント（２０８）は、前記活性化コードの複製を記憶する不揮発性メモリ（４０５）を含み、
前記第１の制御回路（４２６）は、前記第１の検証コードの１又は複数の値の検証に基づき活性化コードレジスタ（２１２）に対して前記活性化コードの前記複製をロードする
請求項４、９又は１０のいずれか１項に記載のライセンス検証回路。
【請求項１２】
前記検証コードは、
ライセンスの時間制限、
ライセンスの地域制限、
１又は複数のハードウェアの種類に対するライセンスの制限、
ライセンスの温度制限、
ライセンスの電圧制限、
ライセンスの帯域幅制限、
ライセンスの速度制限、
ライセンスの加速度制限、
ライセンスの湿度制限、
ライセンスの光量制限、
ライセンスの磁場制限、及び、
ライセンスの放射能量制限
の内のいずれか１つ又は複数を示すＤＲＭ（Design Right Management ）データを含む
請求項１から１１のいずれか１項に記載のライセンス検証回路。
【請求項１３】
前記活性化コードは複数のビットにより構成されており、
前記第１の被保護回路は、該第１の被保護回路の信号路を選択的に活性化させる複数の論理ゲートを含み、
該複数の論理ゲートは、前記第１の被保護回路のノードに接続された第１の入力と、前記活性化コードレジスタ（２１２）に記憶された前記複数のビットの内の１つを受信すべく接続された第２の入力とを含む
請求項１から１２のいずれか１項に記載のライセンス検証回路。
【請求項１４】
請求項１に記載のライセンス検証回路を含む第１のＩＰブロック（２０６）と、
請求項１に記載のライセンス検証回路を含む第２のＩＰブロック（２０６）と、
前記第１のＩＰブロックへ前記第１のライセンスを送信し、前記第２のＩＰブロックへ第２のライセンスを送信するサーキュレータ（１００７）とを備える
ライセンス検証システム。
【請求項１５】
デバイス（１０２）のデバイス識別子に基づきデバイスキーを導出するキー導出回路（１２２）と、
前記デバイスキーを用いて１又は複数の活性化コードを暗号化することによって前記デバイス（１０２）における１又は複数の被保護回路のための第１のライセンスを生成する暗号回路（１２４）とを備える
ライセンス発生回路。
【請求項１６】
前記暗号回路（１２４）は、前記第１のライセンスに含まれるべき追加キーを暗号化する
請求項１５に記載のライセンス発生回路。
【請求項１７】
デバイス（１０２）における１又は複数の被保護回路（２０６）を選択的に活性化させるライセンス検証方法であって、
前記デバイスに対応する識別子からデバイスキーを導出する処理、
第１のライセンスを受信する処理、
第１の検証コードを抽出するために前記デバイスキーを用いて前記第１のライセンスを復号する処理、及び
前記第１の検証コードの検証に基づき、第１の被保護回路に対応する活性化コードレジスタ（２１２）へ活性化コードをロードすることで前記第１の被保護回路を活性化させる処理
を実行するライセンス検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は集積回路、特に、集積回路のＩＰ（共有財産）ブロックに対する認証及びライセンスを可能とする方法及びシステムに関し、より一般的には、任意の回路又はシステムに対する認証及びライセンスに関する。
【背景技術】
【０００２】
集積回路は、ＩＰブロックとして知られている回路ブロックを多数備える。ＩＰブロックは、特定の機能を夫々発揮するための離散的ハードウェア回路設計に対応しており、多様な集積回路での再利用が可能である。既存の集積回路（ＩＣ：Integrated circuit）におけるＩＰブロックは、夫々の知的財産権の保有者によってＩＣ設計者にライセンスされている。
【０００３】
ＩＰブロック群は一般的に、ソフトウェアとして例えば、 RTL（Register Transfer Level ），Verilog 又はVHDL（Very high speed integrated circuit Hardware Description Language）等のハードウェア記述言語によりＩＣ設計者へ分配されている。知的財産権の保有者は大抵の場合、ＩＰブロックを使用することについて集積回路及び／又はプロジェクトの個数制限内でＩＣ設計者に対して認可するか、又は、ＩＰブロックを組み込んだ集積回路又はプロジェクト毎に使用料の支払いを求める。しかしながら、集積回路の著作権侵害が問題として増大しつつある。実際問題として、ＩＰブロックがＩＣ設計者へ分配された後は、ＩＰブロックの知的財産権の所有者にとって、どのようにそれらのＩＰブロックが使用されるかをコントロールし、認可した設計に基づき製造される集積回路の数を制限することは非常に困難である。
【０００４】
ＩＰブロックに係る知的財産権の保有者がそのＩＰブロックの分配先における回路設計を制限することを可能とするいくつかの解決法が提案されている。しかしながら、それらのソリューションは、より複雑で高コストになるか、及び／又は、安全性が不十分になりがちである。
【発明の概要】
【０００５】
本開示の実施形態の目的は、このような従来技術における１又は複数の問題を部分的にでも解消することにある。
【課題を解決するための手段】
【０００６】
本開示の一側面によれば、デバイスにおける１又は複数の被保護回路を選択的に活性化させるライセンス検証回路が提供される。該ライセンス検証回路は、前記デバイスに対応する識別子からデバイスキーを導出する導出部と、第１のライセンスを受信する受信部と、第１の検証コードを抽出するために前記デバイスキーを用いて前記第１のライセンスを復号する復号部と、前記第１の検証コードの検証に基づき、第１の被保護回路に対応する活性化コードレジスタへ活性化コードをロードすることで前記第１の被保護回路を活性化させる活性化部とを備える。
【０００７】
一実施形態によれば、前記デバイスに対応する識別子は、ＰＵＦ（Physical Unclonable Function）により与えられる。
【０００８】
一実施形態によれば、前記デバイスに対応する識別子は、暗号化により保護されたインタフェース上で読み出される。
【０００９】
一実施形態では、ライセンス検証回路は更に、前記デバイスキーを導出するキー導出回路及び前記第１のライセンスを復号する暗号回路を備えるライセンスサーバと、前記第１の被保護回路に対応しており、前記第１の検証コードに基づき該第１の被保護回路を活性化させる第１の制御回路を備える第１のライセンスクライアントと、第２の被保護回路に対応しており、前記第２の被保護回路に対応する活性化コードレジスタへ第２の活性化コードをロードすることで前記第２の被保護回路を活性化させる第２の制御回路を備える第２のライセンスクライアントとを備える。
【００１０】
一実施形態では、前記ライセンスサーバは、前記第１の検証コードを前記第１のライセンスクライアントへ送信し、第２の検証コードを前記第２のライセンスクライアントへ送信する。
【００１１】
一実施形態では、前記第１の検証コードは、前記ライセンスサーバにて、前記第１のライセンスから抽出された追加キーに基づき暗号化され、該第１のライセンスクライアントにおける前記第１の制御回路へ送信される。
【００１２】
一実施形態では、前記暗号回路は、前記第１のライセンスから前記追加キーを抽出する。
【００１３】
一実施形態では、前記第１の検証コードは、ＩＰベンダキーを用いて暗号化された活性化コードを含み、前記第１のライセンスクライアントは更に、前記ＩＰベンダキーをメモリに記憶し、前記活性化コードを抽出するためのＩＰベンダキーに基づいて前記第１の検証コードを復号する。
【００１４】
一実施形態では、前記第１のライセンスクライアントは、チャレンジ値を発生させ、発生させた前記チャレンジ値を前記ライセンスサーバへ送信する乱数発生器を含むチャレンジ発生回路と、少なくとも前記チャレンジ値に基づき第１の応答値を生成する第１応答生成回路とを備え、前記ライセンスサーバは、前記チャレンジ値を受信し、少なくとも該チャレンジ値に基づき第２の応答値を生成する第２応答生成回路を含み、前記第１のライセンスクライアントは更に、前記第１の応答値と第２の応答値とを比較する検証回路を備える。
【００１５】
一実施形態では、前記第１及び第２応答生成回路は、ハッシュ関数に基づいて第１及び第２の応答値を生成する。
【００１６】
一実施形態では、前記第１のライセンスクライアントは、前記活性化コードの複製を記憶する不揮発性メモリを含み、前記第１の制御回路は、前記第１の検証コードの１又は複数の値の検証に基づき活性化コードレジスタに対して前記活性化コードの複製をロードする。
【００１７】
一実施形態では、前記検証コードは、ライセンスの時間制限、ライセンスの地域制限、１又は複数のハードウェアの種類に対するライセンスの制限、ライセンスの温度制限、ライセンスの電圧制限、ライセンスの帯域幅制限、ライセンスの速度制限、ライセンスの加速度制限、ライセンスの湿度制限、ライセンスの光量制限、ライセンスの磁場制限、ライセンスの放射能量制限のいずれか１つ又は複数を示すデータを更に含む。
【００１８】
一実施形態では、前記第１の活性化コードは複数のビットにより構成されており、前記第１の被保護回路は、該第１の被保護回路の信号路を選択的に活性化させる複数の論理ゲートを含み、該複数の論理ゲートは、前記第１の被保護回路のノードに接続された第１の入力と、前記活性化コードレジスタに記憶された前記複数のビットの内の１つを受信すべく接続された第２の入力とを備える。
【００１９】
本開示の他の側面によれば、上述のライセンス検証回路を含む第１のＩＰブロックと、上述のライセンス検証回路を含む第２のＩＰブロックと、前記第１のＩＰブロックへ前記第１のライセンスを送信し、前記第２のＩＰブロックへ第２のライセンスを送信するサーキュレータとを備えるライセンス検証システムが提供される。
【００２０】
本開示の他の側面によれば、デバイスのデバイス識別子に基づきデバイスキーを導出するキー導出回路と、前記デバイスキーを用いて１又は複数の活性化コードを暗号化することによって前記デバイスにおける１又は複数の被保護回路のための第１のライセンスを生成する暗号回路とを備えるライセンス生成回路が提供される。
【００２１】
一実施形態では、前記暗号回路は、前記第１のライセンスに含まれるべき追加キーを暗号化する。
【００２２】
本開示の更に他の側面によれば、デバイスにおける１又は複数の被保護回路を選択的に活性化させるライセンス検証方法が提供される。該ライセンス検証方法は、前記デバイスに対応する識別子からデバイスキーを導出する処理、第１のライセンスを受信する処理、第１の検証コードを抽出するために前記デバイスキーを用いて前記第１のライセンスを復号する処理、及び前記第１の検証コードの検証に基づき、前記第１の被保護回路に対応する活性化コードレジスタへ活性化コードをロードすることで第１の被保護回路を活性化させる処理を含む。
【００２３】
前述及び他の特徴及び利点は、以下の添付図面を参照する具体的な実施形態についての本発明を限定しない説明の中で詳細に述べる。
【図面の簡単な説明】
【００２４】
【図１Ａ】本開示の一実施形態におけるＩＰブロックにライセンスを認可するシステムの模式図である。
【図１Ｂ】図１Ａに示した一実施形態におけるライセンス生成器の詳細を示す図である。
【図２】本開示の一実施形態におけるライセンスコンポーネントを備える集積回路をより詳細に示す模式図である。
【図３Ａ】本開示の一実施形態におけるＩＰブロックの活性化回路の模式図である。
【図３Ｂ】本開示の一実施形態におけるＩＰブロックの活性化回路の模式図である。
【図４】図２に示した本開示の一実施形態における集積回路のライセンスサーバ及びライセンスクライアントをより詳細を示す模式図である。
【図５】図４に示した本開示の一実施形態におけるライセンスサーバ及びライセンスクライアントを用いてライセンスに基づきＩＰブロックを活性化させる手順の一例を示すフローチャートである。
【図６】図２に示した本開示の他の一実施形態における集積回路のライセンスサーバ及びライセンスクライアントをより詳細に示す模式図である。
【図７】図６に示した本開示の他の一実施形態におけるライセンスサーバ及びライセンスクライアントを用いてライセンスに基づきＩＰブロックを活性化させる手順の一例を示すフローチャートである。
【図８】図２に示した本開示の他の一実施形態におけるライセンスクライアント及びライセンスサーバ間の安全なインタフェースを詳細に示す模式図である。
【図９】本開示の他の一実施形態における集積回路のライセンスコンポーネントの模式図である。
【図１０】本開示の更に他の一実施形態における集積回路のライセンスコンポーネントの模式図である。
【図１１Ａ】本開示の一実施形態におけるライセンスコンポーネントを模式的に示す回路図である。
【図１１Ｂ】本開示の一実施形態における本開示の一実施形態におけるライセンスコンポーネントを模式的に示す回路図である。
【図１２】本開示の一実施形態におけるライセンスコンポーネントを備えるＦＰＧＡ（Field Programmable Gate Array ）の模式図である。
【発明を実施するための形態】
【００２５】
以下の実施の形態では、本開示をハードウェアで実現されるものとして説明するが、多様な実施形態が、少なくとも一部分について１又は複数のプロセッサでソフトウェア的指示に基づき実行されることで実現可能であることは当業者にとって自明である。
【００２６】
以下の実施の形態での説明において、以下の項目については下記のように定義される。
ＩＰブロック：夫々特定の機能を実行し、異なる集積回路にて再利用することが可能な離散的ハードウェア回路設計
被保護回路：単一のＩＰブロック、ＩＰブロックの集合、又は、１又は複数の集積回路を備えるシステムに対応し、活性化コードによって活性化されない限り不活性状態にあるようなメカニズムによって保護されている。
【００２７】
図１Ａは、本開示の一実施形態における被保護回路の認証及びライセンスを認可するシステムの模式図である。
【００２８】
システム１００は、大きく３つに分けられたハードウェアを含む。１つは、メーカ等のＩＰベンダにより管理され、１つは信頼されたサードパーティにより管理され、１つはエンドユーザにより管理される。保護は、１又は複数の被保護回路の一体的な活性化に基づき実施されている。被保護回路は夫々、例えば、標準プロトコルを管理するためのインタフェースなどのように、正確な機能を実現するために開発された複雑な回路であり、プロセッサ、暗号化又は暗号回路のように先進的な処理を実行することが可能な回路である。被保護回路は、例えば１又は複数のアプリケーション固有の回路、及び／又は、１又は複数のＦＰＧＡを使用して実現されている。
【００２９】
図１Ａの例では、デバイス１０２は、エンドユーザにより購入されたか、あるいは取得され、１又は複数の被保護回路を備えるものとする。図１Ａに示す例では、デバイス１０２は１つの集積回路であり、複数の被保護回路は、その集積回路のＩＰブロック１０３群である。なお代替案として、デバイス１０２は任意の電子デバイスであってよく、被保護回路は夫々、１以上の集積回路を備える回路又はシステムを含む構成としてもよい。
【００３０】
集積回路であるデバイス１０２は、例えば、携帯電話機、タブレット端末、ラップトップ型パーソナルコンピュータ、携帯型ゲーム機等の製品の一部を構成するか、又は、決済カード（電子マネー）、ＳＩＭ（Subscriber Identity Module）カード等を含むスマートカードと呼ばれるカード類であるＩＣカードに実装されたチップであってもよい。
【００３１】
以下説明する本実施の形態によれば、集積回路であるデバイス１０２における１又は複数のＩＰブロック１０３は例えば、エンドユーザがそのデバイス１０２を入手したときには不活性状態であり、エンドユーザがそれらの不活性状態のＩＰブロック群を、ＩＰベンダ又はサードパーティから得られるライセンスを要求することで活性化させる。なお代替案として、活性化はエンドユーザではなく、サプライチェーンにおける他の事業者、例えば集積回路の設計者、又はデバイス１０２を含む製品のベンダによって行なわれてもよい。
【００３２】
デバイス１０２は、デバイス識別子（デバイスＩＤ）を例えば記憶している。デバイス識別子は、デバイス１０２又はデバイス１０２群を識別するビット列であり、認証の代わりとなる。ライセンスは、ＩＰベンダ又はサードパーティにより提供され、識別子を持つデバイスのみに利用できる。いくつかの実施形態では、デバイス識別子は、各デバイスについて固有であり、付与されたライセンスは、１つのデバイス１０２の被保護回路を活性化させることしかできない。しかしながら、いくつかの実施形態では、１つのグループのデバイス群、例えば同一のデバイス識別子を有するデバイス群に対して単一のライセンスを付与することを可能としてもよい。デバイス識別子は例えば、ＰＵＦによって生成されるか、又はＰＵＦから導出される。
【００３３】
デバイス１０２の１又は複数の被保護回路の活性化は、恒久的、即ち一度活性化された場合には、デバイス１０２の被保護回路は活性化されたままとなってもよい。あるいは、又は更に、１又は複数の被保護回路は、デバイス１０２に対して事後的にリセット操作がされるまでは活性化されたままとしてもよい。この場合、再度これらの被保護回路を活性化させるためにはライセンスが再度必要になる。ライセンスはデバイスに記憶されたままとしてもよい。したがってこの場合、電源立ち上げ手順が行なわれている間、プリリセット操作（リセット信号が不活性化される前の操作）により、メモリに予め記憶されているライセンスを、１又は複数の被保護回路を活性化させるためにチップへロードすることが必要とされる。
【００３４】
あるいは又は更に、ライセンスは初期的には、限られた期間だけ、又はデバイスのクロックの所定サイクル数分だけ、１又は複数の被保護回路を活性化させることが可能であってもよい。例えば、一時的な期間、全て又は一部のみの被保護回路を活性化させたデモンストレーションモードでの動作が可能となる。この一時的な期間が終了した場合、それらの被保護回路を活性化させるためにはフルライセンスが必要となる。
【００３５】
以下の説明で明らかになるように、活性化の分類（恒久的か、リセットが行なわれるまでの期間内か、又は一時的か）は、デバイスの被保護回路毎に異なっていてもよい。更に、以下で説明する方法は単一のＩＰブロックを活性化するために使用されてもよいが、任意の被保護回路を活性化、既知のＡＳＩＣ（Application Specific Integrated Circuit）技術を用いて設計された全回路の活性化、既知の種類のＦＰＧＡの活性化、又は、既知の製造者により製造されたＦＰＧＡの活性化等にもまた適用することが可能である。任意の被保護回路とは、既知のデバイスにおける全てのＩＰブロック、他のＩＰブロック内のＩＰブロック及び／又は他のＩＰブロックを有するＩＰブロック、又はシステム若しくはＩＣカードである。また、システムレベルでも適用が可能である。更にいくつかの実施形態では、ライセンスは、あるＩＰブロックにおける複数の機能のあるサブセットのみに対する活性化又は不活性化に利用されてもよい。
【００３６】
詳細は後述するが、以下で説明する方法及びデバイスは、例えば被保護回路又は被保護回路のサブ機能を複数回、活性化させたり、不活性化させたりすることも可能である。
【００３７】
ＩＰブロックの保護及び活性化のプロセスの一例について詳細に説明する。以下の例は、単一のＩＰブロックの保護に基づくが、上述したように、他の実施例として、他の種類の回路の保護に適用することも可能である。
【００３８】
ＩＰベンダでは、データベース１０４が例えば、シンプルなレジスタ転送レベル（ＲＴＬ：Register Transfer Level ）のコードのようなハードウェア記述言語で表現された１又は複数のＩＰブロックを記憶している。
【００３９】
ＩＰ保護器１０６は例えば、ＩＰ保護機能を実行するソフトウェアを含む。ＩＰ保護機能は、回路を不活化させるため、データベース１０４から１又は複数のＩＰブロックを一部修正するべく使用される。特に、ＩＰブロックは、機能をアンロックするために活性化コードが必要となるように変更される。いくつかの実施形態では、この処理全体が自動的に実行可能である。一方、他の実施形態では、この処理の少なくとも一部について、例えばＩＰブロックの設計者等による操作を必要とする。詳細は後述するが、ＩＰブロックの修正とは例えば、ハードウェア記述ファイルにて、１又は複数の論理ゲートをＩＰブロックの１又は複数の信号路へ挿入することを必要とする。これらの論理ゲートは、例えば、挿入された論理ゲートのノードの１又は複数の入力に、１又は複数の修正後の活性化ビットが供給された場合のみ、元の信号を信号路に沿って伝搬させる。いくつかの実施形態では、前記活性化コードは、既知のＩＰ設計に対して固有であってもよい。他の実施形態では、１つ以上のＩＰ設計に対して同一の活性化コードが使用されてもよい。更にいくつかの実施形態では、単一のＩＰブロックを活性化させることができる活性化コードが１以上あってもよい。これにより、例えばライセンス生成を促進させることが可能になる。
【００４０】
ＩＰライセンスを管理するための回路は例えば、保護されるＩＰブロック夫々に追加されている。ＩＰライセンスを管理するための回路については以下では、ライセンスクライアントと呼ぶ（図１Ａでは図示せず）。詳細は後述するが、ライセンスクライアントは例えば、一旦有効なライセンスが提供されると活性化コードが記憶されるレジスタを備える。いくつかの実施形態では、ライセンスクライアントは、各ＩＰブロックに統合されている。詳細は後述するが、各ライセンスクライアントは、対応するＩＰブロック外に存在する構成としてもよい。
【００４１】
いくつかの実施形態では、ＩＰブロックの修正を記述した前記ハードウェア記述ファイルは、例えば、暗号化によって保護されている。
【００４２】
活性化コードは、そして必要に応じて修正後のＩＰブロック群の一部又は全部は、ＩＰベンダが管理する例えば被保護ＩＰ用のデータベース１０８に記憶されている。修正後のＩＰブロック群は、図１Ａ中の矢符１１０で示すように、集積回路１０２の設計者へ分配され、１又は複数の被保護対象のＩＰブロック１０３群が集積回路０２へハードウェアとして実装されている。特に、集積回路１０２の設計者は例えば、異なる複数種類のＩＰブロック群を用いて集積回路を設計する。これらの１又は複数のＩＰブロック群は例えば、以下で説明するように、単一の活性化コードによって保護されていてもよい。
【００４３】
ライセンスは、例えば検証コードを含む。ライセンスに関連しており、１又は複数のＩＰブロックを活性化させるコードを以下、「検証コード」と呼ぶ。検証コードは、１又は複数のＩＰブロック群に対する活性化コードであってもよい。他の実施形態では、活性化コードはＩＰブロックの保護メモリ、例えばＲＯＭ（Read Only Memory）に予め記憶されており、活性化コードはライセンスに含まれない。この場合検証コードは、ＩＰブロックのライセンスに関連する秘密コードであり、活性化コードを保護メモリから活性化コードレジスタへロードすることを可能とする。いくつかの実施形態では、集積回路の設計者が回路の考案又は試験目的で使用することに対して一時的なライセンスが提供されるようにしてもよい。
【００４４】
集積回路の設計者はまた、集積回路１０２内にライセンスサーバ１１４を統合する場合がある。ライセンスサーバ１１４は例えば、信頼されたサードパーティによって提供されるか、又はＩＰベンダによって１又は複数の被保護対象のＩＰブロック１０３群に組み込まれていてもよい。ライセンスサーバ１１４は例えば、ライセンスを受信できる集積回路のポートに接続している。ライセンスサーバ１１４はまた例えば、各被保護対象のＩＰブロック１０３群、特に、各ＩＰブロック１０３のライセンスクライアントを構成する回路に接続している。
【００４５】
ライセンスサーバ１１４は例えば、デバイス識別子を生成する生成回路をも含んでいる。デバイス識別子は例えばＰＵＦにより構成される。以下後述するように、デバイス識別子は例えば、集積回路に固有の署名の生成に基づくものである。これにより、２つの集積回路が同一の機能を持つように組み立てられ、及び／又はプログラムされたとしても、各々の署名、即ちデバイス識別子は相違する。ＰＵＦ値は例えば、集積回路のＣＰＵ（Central Processing Unit ）により生成されるか、及び／又は、集積回路に実装された１又は複数のリング発振器により生成される。ＰＵＦについては例えば以下の複数の文献にて詳細が述べられている。
文献１：デービット  ナサーシェ（David Naccache）他、「難忘却識別装置、識別装置リーダ及び識別方法」、1992年8月；
文献２：Ｇ．シモンズ（G. Simmons）、「データ、デバイス、文書及び個人の識別」、IEEEセキュリティ技術に関する国際カーナハン会議、1991年、pp.197-218；
文献３：ステファン  カッツェンバイサー（Stefan Katzenbeisser）他、「ＰＵＦ：神話か、事実なのか、それとも壊されるのか？シリコンキャストされたＰＵＦ群の安全評価」、（2012）、ベルギーのルーヴェンで行なわれた暗号化ハードウェア及び埋め込みシステム（CHES：Cryptographic Hardware and Embedded Systems ）の第１４回国際ワークショップにおける議事、期間：2012年 9月 9-12、Lecture Notes in Computer Science vol.7428、スプリンガー社  ベルリン  ハイデルベルグ、 pp. 283-301、doi:10.1007/978-3-642-33027-8_17、ISBN 978-3-642-33026-1；
文献４：ローエル  メイズ（Roel Maes ）他、「ＰＵＦ：技術動向の研究及び今後の研究方向性について」
文献５：Ｌ．ボシュエ（L. Bossuet）他、「過渡的効果リング発振器及びロック現象への非感受性に基づくＰＵＦ」、IEEE Transactions on Emerging Topics in Computing、vol. 2、 Issue 1、 pp. 30-36、2014年；
文献６：Ｐ．バヨン（P. Bayon）他、「真の乱数発生器における電磁放射分析：周波数及び局在的検索方法」、APEMC、2013年；
文献７：Ｚ．シェリフ（Z. Cherif ）他、「設計が容易なシングル発振器に基づくＰＵＦ：ループＰＵＦ」、DSD、2012年；
文献８：Ｂ．ガッセンド（B. Gassend）他、「シリコン物理ランダム関数」、 ACM CCS、 pp. 148-160、2002年；
文献９：Ｊ．グアハルド（J. Guajardo ）他、「ＦＰＧＡ及びそのＩＰ保護のための使用方法」、CHES、スプリンガー社、LNCS、 vol. 4727、 pp. 63-80、2007年；
文献１０：Ｄ．メルリ（D. Merli）他、「ＦＰＧＡリング発振器ＰＵＦへの半進入的電磁攻撃及び対抗策」、ACM WESS、2011年；
文献１１：Ｇ．Ｅ．ソ（G. E. Suh ）他、「デバイス認証及び秘密鍵生成のためのＰＵＦ」、 DAC、2007年；
これらの１１件の文献で開示されている内容は、法により認められている範囲で、引用により本開示に組み込まれる。
【００４６】
製造及び／又はプログラム後の集積回路が、最初に活性化した場合、デバイス識別子の値は、例えばＰＵＦ回路等により生成された値を読むことによって読み出されることになる。いくつかのケースでは、ＰＵＦ値は、集積回路の経時変化によって、及び／又は環境（温度、電圧等）等の他の理由によって時間変化を起こす可能性がある。いくつかの実施形態では、ＰＵＦの電位変化の観点から、生成されたＰＵＦ値の少なくとも一部が、不揮発性メモリに記憶されるか、及び／又は、エラー訂正コードが生成される。このエラー訂正コードは、ＰＵＦ値の任意ビット群が元の値から外れた場合にＰＵＦ値を修正可能とする。デバイス識別子はまた、集積回路１０２のポートで得られるようにしてあるか、あるいは逆に、集積回路１０２の外部に連結されており、保護されているＩＰブロック１０３を活性化すべくライセンスを要求するために使用される。
【００４７】
ＰＵＦの代わりに、デバイス識別子として、デバイス製造者によってデバイスに付与された識別子のような他の形式を用いてもよい。
【００４８】
ライセンス生成は例えば、集積回路１０２の活性化を望むエンドユーザ又は他の事業者からの要求に応じてＩＰベンダ又は信頼されたサードパーティによって実行される。ライセンスの要求は、集積回路１０２から読み出されたデバイス識別子を含む。
【００４９】
一例によれば、活性化に関する要求は、複数のＩＰブロック１０３群の活性化に対する要求を含んでもよい。例えば、前記集積回路１０２に接続され、デバイス識別子を得るために集積回路１０２とやり取りする外部コンピュータで実行されるアプリケーションが提供されてもよい。デバイス識別子は、信頼されたサードパーティのライセンスサーバ１２６へ送信される。ライセンスサーバ１２６は例えばこれに応じて、集積回路のＩＰモジュール群のＩＰベンダ夫々に対してライセンスを要求する。ＩＰベンダにおける顧客関係管理（ＣＲＭ：Customer Relationship Management）アプリケーションは例えば、顧客データベースを調べ、ライセンスを付与できるか否かを検証する。例えば顧客関係管理アプリケーションは、対応するデバイス識別子を持つ集積回路が、盗難された回路でないか、そしてライセンスに対する支払いが完了しているかを検証する。ＩＰベンダはこの場合例えば、送信されたデバイス識別子に基づきライセンスを生成し、生成したライセンスを信頼されたサードパーティのライセンスサーバ１２６へ送信する。送信されたライセンスは例えば、信頼されたサードパーティにて記憶され、活性化処理で使用されるために集積回路１０２へ送信される。
【００５０】
勿論、この処理手順には多様なバリエーションが適用できる。例えば、顧客データベースが、デバイス識別子に基づき集積回路のＩＰブロック１０３群を活性化させるためライセンスを生成するライセンス生成回路と共にサードパーティで記憶されていてもよい。
【００５１】
いくつかの実施形態では、各ＩＰブロック１０３を活性化させるために夫々ライセンスが生成される。又は、ライセンスは１つで複数のＩＰブロック１０３を一度に活性化するために生成されてもよい。例えば、ライセンスは、各ＩＰブロック１０３を活性化させる検証コードを含む。
【００５２】
この場合ライセンスは、ＩＰベンダで生成され、集積回路１０２の被保護対象であるＩＰブロック１０３又はＩＰブロック１０３群をアンロックするために必要な検証コード又は複数の検証コード１１５は、例えばＩＰベンダにおけるライセンス生成器１１６に提供される。ライセンス生成器１１６は、集積回路１０２のライセンスサーバ１１４へ送信されるライセンスを生成するために使用される。ライセンス生成器１１６は例えば、デバイス識別子（デバイスＩＤ）を集積回路１０２から受信し、ライセンスをこの識別子及び検証コードに基づき生成する。いくつかの実施形態では、ライセンスはまた、ＤＲＭ（Design Right Management ）データ１２０を取り込んでもよい。このＤＲＭデータ１２０は、生成するライセンスが一時的なライセンスである場合には例えば、ＩＰブロック１０３の活性化についての時間制限を示す。ＤＲＭデータ１２０はまた、１又は複数のハードウェアの種類に対するライセンスの制限、例えばＡＳＩＣ技術、ＦＰＧＡ群、又はアンロックされるＩＰブロック１０３の特定の機能を示す。これらの回路のハードウェアの種類は例えば、そのＩＰブロック１０３の使用を制限するために、特定のセンサによって決定されてもよいし、１又は複数の検定済みのハードウェアの種類と比較されてもよい。あるいは、又は更に、ライセンスのＤＲＭデータ１２０は、デバイスのセンサによって測定が可能な他の変数に基づきライセンスの制限を示す制限データを定義するものであってもよい。例えば、ＤＲＭデータ１２０は以下を定義するものであってもよい。例えば環境温度センサに基づくライセンスの温度制限；回路への供給電圧のレベルに基づくライセンスの電圧制限；ライセンスの帯域幅制限；デバイスのＧＰＳ（Global Positioning System ）情報の読み取りに基づくライセンスの速度制限；デバイスの加速度センサからの読み取りに基づくライセンスの加速度制限；デバイスの環境湿度センサに基づくライセンスの制限湿度；デバイスの環境照度センサに基づくライセンスの光量制限；デバイスのホール効果センサの測定値に基づくライセンスの磁場制限；デバイスのガイガーカウンタによる測定値に基づくライセンスの放射能量制限；及び／又は、適切なセンサによる測定値に基づく他の種類の制限のいずれか１又は複数である。
【００５３】
いくつかの実施形態では、ＤＲＭデータ１２０は、検証コードを修正する。いくつかの実施形態では、検証コードは活性化コードを含み、ＩＰブロック１０３の一部のみが該活性化コードで活性化されるよう、この活性化コードの複数ビットは提供されないか又は誤りとしてある。他の実施形態では、１ビット毎のビットによらない、ＩＰブロック１０３の活性化／不活性に関する他の技術が利用されてもよい。
【００５４】
図１Ｂは、一実施形態におけるライセンス生成器１１６を詳細に示す図である。ライセンス生成器１１６は、第１キー導出回路１２２を備える。第１キー導出回路１２２は、集積回路１０２により提供されるデバイス識別子（デバイスＩＤ）に基づきデバイスキー（ＤＫ）を生成する。ライセンス生成器１１６はまた、暗号回路１２４を備える。暗号回路１２４は、ライセンスを生成するために、活性化させるＩＰブロック１０３の単一の検証コード又は複数の検証コードに対してデバイスキーを適用する。暗号回路１２４は、ＤＥＳ（Data Encryption Standard）、ＡＥＳ（Advance Encryption Standard ）等の暗号化アルゴリズムを適用することでデバイスキーに基づいて検証コード（単一又は複数）を暗号化する。ＤＲＭデータ１２０は暗号化され、ライセンスの一部として含まれてもよい。また、以下に図６を参照して説明する実施形態では、ＩＰキーがライセンス生成器１１６に供給されて、暗号回路１２４にてライセンスに含まれるように暗号化される。
【００５５】
いくつかの実施形態では、ライセンスはＩＰベンダによって生成されるのではなく、サードパーティによって生成される。例えばライセンスは、ＳａａＳ（Software as a Service ）解決策として生成される。この場合、信頼されたサードパーティにて、ライセンス生成器１１６が管理される。ライセンス生成器１１６は、ＩＰベンダからデバイス識別子（ＩＤ）、検証コード（単数又は複数）を受信する。ＩＰキーを受信する場合もある。いくつかの実施形態では、図示するように、暗号回路１２８により、ＩＰベンダキーを用いて検証コードをＩＰベンダにて暗号化してもよい。この場合ＩＰベンダキーは、ＩＰベンダにてＩＰブロック１０３に内蔵する形で記憶され、検証コードの復号を可能とする。この場合、サードパーティでさえも検証コードにアクセスができない。
【００５６】
ライセンス生成処理は、サードパーティ又はＩＰベンダによりライセンスが許可された集積回路の計数を可能とする。各ライセンスが単一の集積回路に対してのみ有効である場合、生成されたライセンスの数は、被保護ＩＰブロック１０３を含む集積回路の数に等しいはずである。したがって計数をＩＰベンダによってロイヤリティの算出のために行なうか、ライセンス同意の条件違反の検出のために行なうことが可能である。
【００５７】
生成されたライセンスは、集積回路１０２、例えばライセンスサーバ１１４に供給され、ライセンスサーバ１１４は、集積回路１０２のデバイス識別子に基づきライセンスを復号し、検証コードを抽出する。ライセンス生成器１１６によるデバイスキーを用いた検証コードの暗号化には、例えば対称な暗号化／復号のアルゴリズムが使用される。このアルゴリズムは同様に、集積回路１０２にてライセンスの復号に使用される。キーが同一である場合には、検証コードの復号は成功するはずである。
【００５８】
対称な暗号化／復号アルゴリズムの使用に限らず、非対称な暗号化／復号アルゴリズムが２つの鍵に基づき実行されてもよい。このような場合、ライセンスサーバ１１４はデバイス識別子に基づいて公開鍵を導出し、この公開鍵は、ライセンス生成器１１６に対してデバイス識別子と共に供給される。この場合、デバイスキーを生成するキー導出回路１２２を使用することなく、ライセンス生成器１１６は前記公開鍵に基づいてライセンスを暗号化する。ライセンスサーバ１１４は、暗号化されたライセンスをライセンス生成器１１６から受信し、ライセンスを復号するデバイスキーとなる秘密鍵を、デバイス識別子に基づいて生成する。
【００５９】
更にまた別の方法として、以下説明する暗号化ブロックで他の暗号化／復号スキームが利用されるようにしてもよい。例えば楕円曲線に基づくアルゴリズムを利用してもよい。
【００６０】
図２は、図１Ａに示した本開示の一実施形態における集積回路１０２のライセンスコンポーネントをより詳細に示す模式図である。この場合、ライセンスサーバ１１４とＩＰブロック１０３群との間の接続形態は、クライアントサーバシステムの構成に基づく。他の実施形態として、これらの接続形態を他の種類のものとしてもよい。例えばネットワークオンチップ（ NoC：Network On Chip ）、又は、マルチキャスト若しくはブロードキャストプロトコルのような形態としてもよい。ライセンスサーバ１１４とＩＰブロック１０３群との間の接続は、暗号化を用いて安全に実施される。
【００６１】
図２に示すように、ＪＴＡＧ（Joint Test Action Group ）のインタフェースが、集積回路１０２におけるライセンスメモリ２０２への、ライセンス生成器１１６から受信したライセンスの送信に使用される。勿論、ＵＳＢ（Universal Serial Bus）のような他の標準インタフェースを用いてもよい。
【００６２】
ライセンスメモリ２０２は例えば、ＲＡＭ（Random Access Memory）である。ライセンスメモリ２０２は内部でライセンスサーバ１１４と接続されている。ライセンスサーバ１１４は、ライセンスバス２０４を介して被保護ＩＰブロック２０６と通信接続が可能である。図２に示す例では、ライセンスバス２０４は、被保護ＩＰブロック２０６夫々に対応する回路であるライセンスクライアント２０８に接続されている。ライセンスクライアント２０８は、図２でＩＰコア２１０と記載されている被保護ＩＰブロック２０６にも接続されている。図２に示す例では、第１から第ＮまでのＮ個のＩＰコア２１０が存在している。なおＮは例えば、２以上の整数である。
【００６３】
各ＩＰブロック２０６に対応するライセンスクライアント２０８は、ライセンスを検証し、この検証に基づき、対応するＩＰコア２１０へそれらの機能を活性化させるために活性化コードを供給する。例えば、各ライセンスクライアント２０８は、ライセンスが有効であると判断された場合に活性化コードがロードされる活性化コードレジスタ２１２を備える。各ライセンスクライアント２０８の活性化コードレジスタ２１２は、対応するＩＰコア２１０に、それらの機能を活性化させるために接続されている。
【００６４】
図３Ａ及び図３Ｂは、ＩＰブロック２０６の活性化を実行する活性化回路３０８の一例を示す図である。ここでＩＰブロック２０６の活性化は、活性化コードにおける１又は複数のビットに依存し、論理ゲートをＩＰブロック２０６の信号路に挿入することで実行される。
【００６５】
図３Ａに示す例では、クラウド３０２で表されているＩＰブロック２０６の回路部分が、出力信号を信号線３０４へ送出する。信号線３０４は、同期論理デバイスＡ３０６の入力に接続されている。活性化ビットに依存する信号線３０４の活性化を実行するために、信号線３０４と同期論理デバイスＡ３０６との間に活性化回路３０８が介装されている。活性化回路３０８は、信号線３０４に接続された入力を有するインバータ（ＮＯＴ回路）３１０を備える。インバータ３１０の出力は、排他的論理和ゲート（ＸＯＲ回路）３１２の２つの入力の１つに接続されている。排他的論理和ゲート３１２のもう一方の入力は、活性化ビットen_aを受信するようにしてある。活性化ビットen_aの信号レベルは、信号線３０４に伝わるデータ信号を、同期論理デバイスＡ３０６へ伝搬することを可能とするべく、高低の内の高に設定されている。
【００６６】
図３Ｂは、図３Ａの例と同様に信号路に挿入されている他の活性化回路３１８の例を示している。ただし活性化回路３１８は、信号線３０４に接続された入力と、活性化ビットen_bを受信するように接続してある入力とを有する排他的論理和ゲート（ＸＯＲ回路）３２０を備える。またこの例では、活性化ビットen_bの信号レベルは、信号線３０４に伝わるデータ信号を、同期論理デバイスＢ３０６へ伝搬することを可能とするべく、高低の低に設定されている。
【００６７】
つまり図３Ａは、信号レベルが高の活性化ビットによって、図３Ｂは、信号レベルが低の活性化ビットによって、夫々ＩＰブロック２０６の一部の回路を活性化させることができるように挿入された活性化回路の例を示している。ＩＰブロック２０６が正しい活性化コード無しでは機能しないように、同様の回路が、ＩＰブロック２０６内の多様な場所に挿入されるようにしてもよい。勿論、図３Ａ及び図３Ｂは単に、ＩＰブロック２０６を保護するために使用される論理ゲートの一例を表わしているに過ぎず、多様な論理関数が同様の原理に基づいて実装されてもよい。いくつかの実施形態では、活性化コードが乱数となり、基礎となる回路の機能に依存しないように挿入がランダムに実行される。他の実施形態では、挿入は非ランダムであってもよい。図３Ａ及び図３Ｂに示した例では、活性化回路３０８は、活性化コードのビット「１」（高）により活性化されるケースで使用され、活性化回路３１８は、活性化コードのビット「０」（低）により活性化されるケースで使用される。しかしながら更に他の実施形態で、ビット「１」及びビット「０」で活性化されるケースで使用される複数の異なる活性化回路が存在し、これらの回路からの選択はランダムであるとしてもよい。
【００６８】
図４は、図２に示した本開示の一実施形態におけるライセンスクライアント２０８及びライセンスサーバ１１４をより詳細に示す模式図である。
【００６９】
ライセンスクライアント２０８は、活性化コードレジスタ２１２を備える。活性化コードレジスタ２１２は、活性化コードをＩＰコア２１０の活性化回路（図４では図示せず）へ、活性化バス４０４を介して伝播させる。
【００７０】
図４に示す例では、活性化コードがライセンスクライアント２０８の例えばＲＯＭであるメモリ４０５に記憶されており、活性化コードは、信号線４０６にロード信号が現れた場合に、活性化コードレジスタ２１２へロードされるだけとしてある。ロード信号は例えば、ライセンスサーバ１１４を介して受信した検証コードの検証が成功した場合にのみ現れる。
【００７１】
一実施形態では、ライセンスサーバ１１４よりライセンスから抽出された検証コードは、活性化コードを含む。この場合、ライセンスクライアント２０８にてライセンスを検証するために、メモリ（ＲＯＭ）４０５に記憶されている活性化コードが、ライセンスサーバ１１４へ送信されるチャレンジ信号の暗号化用のキーの導出、そしてその応答の復号に使用される。特に、活性化コードは、活性化コードに基づいてＩＰキーを生成する第２キー導出回路４０８へ送信される。例えばＡＥＳ暗号化／復号アルゴリズムを適用した暗号回路４１０は、乱数発生器４１４により生成されチャレンジ発生回路４１２から得られるチャレンジ値を暗号化する。いくつかの実施形態では、乱数発生器４１４は、真の乱数発生器であるか、又は疑似乱数発生器である。暗号化されたチャレンジ値は、ライセンスバス２０４を介してライセンスサーバ１１４へ送信される。
【００７２】
ライセンスサーバ１１４では、暗号回路４１６が暗号回路４１０と同一のアルゴリズムを適用し、ライセンスと共に受信した活性化コードから導出したＩＰキーに基づきチャレンジ値を復号する。特に暗号回路４１６は、第２キー導出回路４１８からＩＰキーを受信する。第２キー導出回路４１８は、ライセンスメモリ２０２に記憶されていたライセンスから抽出された活性化コードを順に受信する。活性化コードは、暗号回路４２０により抽出される。暗号回路４２０は、第１キー導出回路４２２によって供給されたデバイスキーに基づきライセンスを復号する。第１キー導出回路４２２は、デバイスＩＤ回路４２３からデバイス識別子（デバイスＩＤ）を受信する。デバイスＩＤ回路４２３は、第１キー導出回路４２２からの要求に基づいてデバイス識別子を生成して供給する回路か、デバイス識別子を記憶しているメモリである。第１キー導出回路４２２に適用されるキー導出関数は、例えば、図１Ｂに示した第１キー導出回路１２２による関数と同一であり、デバイスキーも同一である。又は、第１キー導出回路４２２で適用されているキー導出関数は上述したように、公開鍵及び秘密鍵を生成するものであってもよく、この場合秘密鍵は、ライセンスを復号するためのデバイスキーとして使用される。
【００７３】
第１キー導出回路１２２及び第１キー導出回路４２２におけるキー導出関数と、第２キー導出回路４０８及び第２キー導出回路４１８におけるキー導出関数はいずれも、デバイスキー及びＩＰキーを安全な方法で導出する秘密鍵暗号関数であってもよい。いくつかの実施形態では、キー導出関数は、第１キー導出回路１２２，４２２及び／又は第２キー導出回路４０８，４１８で記憶されている追加キーに基づくものであってもよい。
【００７４】
応答生成回路４２４は、暗号回路４１６で復号されたチャレンジ値を受信し、応答値を生成する。応答値は例えば、チャレンジ値に１を加算するといった平易な処理で得られるか、チャレンジ値の置換により得られるか、又はより複雑な処理によって得られる。加えて応答値は、暗号回路４２０によりライセンスから抽出されたＤＲＭデータ１２０を含んでもよい。
【００７５】
応答値は、暗号回路４１６によって再度ＩＰキーに基づいて暗号化され、ライセンスバス２０４を介して暗号回路４１０へ、復号されるべく返される。ライセンスクライアント２０８では、応答値はチェッカ回路４２６に供給され、チェッカ回路４２６は応答値がチャレンジ値の導出成功に対応するか否かを検証する。応答値が有効である場合、ロード信号が信号線４０６に現れ、これにより活性化コードレジスタ２１２がメモリ４０５から活性化コードをロードする。
【００７６】
また、応答値がライセンスから抽出されたＤＲＭデータを含む場合、チェッカ回路４２６は、メモリ４２８にＤＲＭデータを記憶するか、及び／又はＤＲＭデータをＩＰコア２１０から取得できるようにする。ＤＲＭデータは、ＡＳＩＣ又はＦＰＧＡ等のようなある種の回路に対する活性化を制限するようにしてもよい。あるいは、又は更に、ＤＲＭデータは、ＩＰブロック２０６の活性化に対して時間制限及び／又は地域制限を設けてもよい。例えば、地域制限が適用された場合、ＤＲＭデータはＩＰブロック２０６が活性化可能な地域を定義し、デバイス１０２におけるＧＰＳデバイスのような位置取得デバイスから得られる位置データが、デバイスが認可される地域にいるか否かの検証に使用される。この場合ＤＲＭデータは、ライセンスが有効期限を含むことを示し、チェッカ回路４２６は、ライセンスの有効期限が切れているか否かを検証するために、例えばカウンタを使用して実装されるタイマを利用するようにしてもよい。有効期限が切れた場合、チェッカ回路４２６は、ロード信号を不活性化させ、これにより活性化コードレジスタ２１２はリセットされ、ＩＰブロック２０６は再度不活性化される。又は、ＤＲＭデータが、応答値によって提供される検証コードの一部に直接的に組み込まれてもよい。これにより、検証コードの一部のみが活性化コードレジスタ２１２にロードされ、ＩＰブロック２０６の一部のみをアンロックさせることができる。
【００７７】
他の実施形態では、ライセンスから抽出される検証コードは、活性化コードを含まない。この場合、ライセンスクライアント２０８は、例えばＲＯＭである他のメモリ（図示せず）を更に備え、検証コードをこの他のメモリに記憶する。記憶される検証コードは、暗号回路４１０へ供給されるＩＰキーを決定するために使用される。上述の方法は、検証コードを検証するために使用され、検証が成功した場合には、メモリ４０５に記憶されている活性化コードが活性化コードレジスタ２１２にロードされる。
【００７８】
ＩＰキーを決定するために第２キー導出回路４１８を使用する代わりに、ＩＰキーはライセンスと共に送信されるようにしてもよい。実際には、図１Ｂに関して説明したように、ライセンス生成器１１６は、ライセンスにＩＰキーを組み込んでもよい。
【００７９】
図５は、図４に示した回路に基づき、ライセンスを用いてＩＰブロック２０６を活性化させる手順の一例を示すフローチャートである。
【００８０】
ステップ５０１では、ライセンスサーバ１１４がライセンスを受信する。
【００８１】
以後ステップ５０２から５０４の処理により、ライセンスが検証される。これらの手順は、例えば回路が電源オンとなる都度等、回路が実働中に実行される。ライセンスは、ライセンスメモリ２０２にて取得可能にしてある。例えばライセンスは、外部から要求され、デバイスの電源オンの都度に、ライセンスメモリ２０２にロードされる。又は、ライセンスメモリ２０２は不揮発性メモリであって、デバイスが電源オフ状態であってもライセンスを記憶したままであってもよい。
【００８２】
ステップ５０２では、デバイスキーがデバイス識別子から、例えばＰＵＦ値として導出される。
【００８３】
ステップ５０３では、検証コードを抽出するためにデバイスキーを用いてライセンスが復号される。
【００８４】
ステップ５０４では、ライセンスクライアント２０８により、上述したチャレンジ値及び応答値を用いたプロトコルにて検証コードが検証され、活性化コードがＲＯＭ４０５から活性化コードレジスタ２１２へ、ＩＰブロック２０６を活性化させるためにロードされる。
【００８５】
図４のような実装の発展形としては、活性化コードがライセンスバス２０４を介して送信されないようにすることも可能である。ライセンスバス２０４で不正に傍受されたメッセージが活性化コードの取得に使用されないようにすることができる。
【００８６】
図６は、図２に示したライセンスクライアント２０８及びライセンスサーバ１１４の他の実施形態をより詳細に示す模式図であり、図４の代替に対応する。図６に示す構成部の内、図４に示した構成部と同一又は同様の構成については、同一の符号を付して重複する詳細な説明を省略する。
【００８７】
図６に示す実施形態では、活性化コードはライセンスクライアント２０８にてメモリには記憶されない。その代わり、ライセンスクライアント２０８は、ＩＰキーを例えばＲＯＭを用いたメモリ６０２に記憶している。ＩＰキーは、図１Ｂのライセンス生成器１１６における暗号回路１２４へ与えられるものと同一である。図４に示した実施形態同様に、ＩＰキーは、暗号回路４１０にてチャレンジ発生回路４１２から得られるチャレンジ値を暗号化するために使用される。
【００８８】
ライセンスサーバ１１４では、ＩＰキーは受信したライセンスから暗号回路４２０により抽出され、暗号回路４１６によってチャレンジ値を復号するために使用される。図６に示す実施形態では、ライセンスクライアント２０８へ送信される応答メッセージが、チャレンジ値に対する応答値、更には検証コードを含む。検証コードは、図４に示した実施形態同様に、暗号回路４２０により抽出される。応答メッセージは、ＤＲＭデータをも含んでもよい。応答メッセージは、ＩＰキーに基づいて暗号回路４１６にて暗号化される。
【００８９】
ライセンスクライアント２０８では、暗号回路４１０が応答メッセージを復号し、チャレンジ値に対する応答値、検証コード、及びＤＲＭデータをチェッカ回路４２６へ供給する。チェッカ回路４２６は、チャレンジ値が応答生成回路４２４にて正確に修正されているかをチェックし、ＤＲＭデータ及び検証コードをＤＲＭ回路６０４へ受け渡す。ＤＲＭ回路６０４は、図４に示したＤＲＭデータを記憶するメモリ４２８と同様の方法で動作する。
【００９０】
検証コードは活性化コードを含んでもよく、この場合、活性化コードは活性化コードレジスタ２１２に直接的にロードされる。又は、検証コードはＩＰベンダキーによって暗号化された活性化コードであってもよい。この場合、ＩＰベンダキーは、ライセンスクライアント２０８の他のメモリ（図示せず）に記憶されており、暗号回路４１０によって検証コードを復号し、活性化コードを抽出するために使用される。抽出された活性化コードは、活性化コードレジスタ２１２にロードされる。
【００９１】
図７は、図６に示した回路に基づき、ライセンスを用いてＩＰブロック２０６を活性化させる手順の一例を示すフローチャートである。
【００９２】
ステップ７０１では、ライセンスサーバ１１４がライセンスを受信する。
【００９３】
以後ステップ７０２から７０４の処理により、ライセンスが検証される。これらの手順は、例えば回路が電源オンとなる都度等、回路が実働中に実行される。ライセンスは、ライセンスメモリ２０２にて取得可能にしてある。例えばライセンスは、外部から要求され、デバイスの電源オンの都度に、ライセンスメモリ２０２へロードされる。又は、ライセンスメモリ２０２は不揮発性メモリであって、デバイスが電源オフ状態であってもライセンスが記憶されたままとしてもよい。
【００９４】
ステップ７０２では、デバイスキーがデバイス識別子から、例えばＰＵＦ値として導出される。
【００９５】
ステップ７０３では、活性化コードを抽出するためにデバイスキーを用いてライセンスが復号される。
【００９６】
ステップ７０４では、ライセンスクライアント２０８により、活性化コードが受信され、ライセンスと共に受信されたＩＰキーが正当である場合、その活性化コードは、活性化コードレジスタ２１２へＩＰブロック２０６を活性化させるべく送信される。
【００９７】
図６のような実装の発展形としては、活性化コードがメモリに記憶されないようにすることも可能である。ＩＰキーが不正に取得されたとしても、被保護ＩＰブロックが活性化されないようにすることができる。
【００９８】
図４及び図６に示した実施形態では、暗号回路４１０，４１６がライセンスバス２０４の安全性を強化するために使用されたが、他の実施形態では、ライセンスサーバ１１４とライセンスクライアント２０８の間のデータ送信の安全性を確保するようなシステムを不要とすることができる。例えば、図８を参照して以下に説明するように、ハッシュ関数又は署名関数を使用すればよい。
【００９９】
図８は、図２に示したライセンスサーバ１１４及びライセンスクライアント２０８間の他の実施形態におけるライセンスバス２０４上での接続インタフェースを示す模式図である。図８は、図２に示したライセンスサーバ１１４及びライセンスクライアント２０８の一部を示している。また、図４及び図６に示した第２キー導出回路４０８、暗号回路４１０，４１６、チャレンジ発生回路４１２、応答生成回路４２４、チェッカ回路４２６が他に代替されている。この例では、検証コードはライセンスクライアント２０８にて記憶されることとしてあり、したがって、ライセンスバス２０４を介して送信されない。
【０１００】
チャレンジ発生回路８０２は、チャレンジ値を生成する。このチャレンジ値は、真の乱数発生器（図８では図示せず）により生成された乱数に基づくデジタル値等である。チャレンジ値は応答生成回路８０４に供給され、応答生成回路８０４は、チャレンジ値に対する応答値を、ＲＯＭ等であるメモリ８０５に記憶してある検証コードに基づいて生成する。応答値は、例えばチャレンジ値及び検証コードに対して任意の関数、例えば加算、又は乗算を適用して生成される。応答値は、該応答値に基づきハッシュ値を生成するハッシュ生成回路８０６へ供給される。いくつかの実施形態においてハッシュ関数によって生成される署名は、ＭＡＣ（Message Authentication Code ）における署名である。ハッシュ生成回路８０６の出力は、チェッカ回路８０８へ供給される。
【０１０１】
チャレンジ回路８０２により生成されたチャレンジ値は、ライセンスバス２０４を介してライセンスサーバ１１４へ、例えば該ライセンスサーバ１１４の応答生成回路８１０へも送信される。応答生成回路８１０は、チャレンジ回路８０２と同一のアルゴリズムを使用するが、ライセンスから抽出された検証コード８１１に基づき応答値を生成する。応答値は、ハッシュ生成回路８１２へ供給される。該ハッシュ生成回路８１２は、ハッシュ生成回路８０６と同一のアルゴリズムを適用し、ハッシュ生成回路８０６で生成された値と比較するために、得られた結果をチェッカ回路８０８へ送信する。ライセンスと共に受信した検証コード８１１が、メモリ８０５に記憶してある検証コードと合致した場合、検証は成功であり、活性化コードが活性化コードレジスタ２１２（図８では図示せず）にロードされる。
【０１０２】
図８に示した実施形態はまた、一例に過ぎない。他の実施形態では、検証コードは応答生成回路８１０での修正に使用されない。その代わり検証コードは、いくつかのステップにてライセンスクライアント２０８へ伝達される。このようなケースでは、ライセンスクライアント２０８は、検証コードを記憶しなくてもよい。
【０１０３】
図４、図６及び図８に示した実施形態では、デバイス識別子は、ライセンスを検証するために安全な方法で、攻撃者が同一の値のデバイス識別子を使用させることを防止して、読み出されて使用される。例えば、ライセンスサーバ１１４は、暗号化により保護されたインタフェースを介して集積回路１０２に対応する識別子（デバイスＩＤ）を読み出す。例えば、デバイス識別子の読み出しは、図４における暗号回路４１０、チャレンジ回路４１２、乱数発生器４１４、暗号回路４１６、及び応答生成回路４２４、又は図８におけるチャレンジ発生回路８０２、応答生成回路８０４、ハッシュ生成回路８０６、チェッカ回路８０８、応答生成回路８１０、及びハッシュ生成回路８１２と同様の付加的なチャレンジ／レスポンスシステムに基づいて行なわれる。
【０１０４】
図２に示した例では、ライセンスクライアント２０８は、各ＩＰブロック２０６の一部であったのに対し、他の実施形態では、各ＩＰブロック２０６（ＩＰコア２１０）に対応するライセンスクライアント２０８は、図９を参照して以下に説明するように、集中ライセンスシステムの一部を構成するものであってもよい。
【０１０５】
図９は、他の一実施形態における集積回路（デバイス）１０２のライセンスコンポーネントの模式図である。ここでライセンスコンポーネントは、ライセンスサーバ１１４と、各ＩＰコア２１０に対応する複数のライセンスクライアント２０８（第１から第Ｎ）を含む集中ライセンスシステム９００である。活性化バス９０２は、活性化コードを送信するために各ライセンスクライアント２０８とＩＰコア２１０との間に設けられている。ライセンス検証機能は、回路の独立したサブドメインにより設けられ、集中ライセンスシステム９００は、例えば特定の内部バス、ＩＰブロック２０６からは分離したライセンスクロック、及び／又は、ライセンスを記憶するための専用のライセンスメモリ２０２を備える。
【０１０６】
これまで説明してきたライセンスサーバ／ライセンスクライアントよりも、多様な代替的アプローチ、例えばネットワークオンチップシステムを含むアプローチが利用されてもよい。図１０を参照して以下に説明するようなシリアルバスを用いた分配アプローチも適用可能である。
【０１０７】
図１０は、本開示の更に他の一実施形態における集積回路（デバイス）１０２のライセンスコンポーネントの模式図である。ここでライセンスコンポーネントは、複数のＩＰブロック２０６が夫々、第１から第ＮのＩＰコア２１０とライセンス検証回路１００２とを含むライセンスシステム１０００である。ライセンス検証回路１００２は例えば、データを出力するためのシリアルバス１００４によりシリアル接続され、また、データを入力するためのシリアルバス１００６によりシリアル接続されている。サーキュレータ１００７がシリアルバス１００４へ、集積回路（デバイス）１０２の入力ポートからデータを送出し、集積回路（デバイス）１０２の出力ポートへシリアルバス１００６からデータを出力する。
【０１０８】
各ライセンス検証回路１００２は、自身のデバイス識別子（ＩＤ１からＩＤＮ）を生成して記憶し、総合的デバイス識別子の一部を構成する。また、いくつかの実施形態では、ＩＰブロック２０６には直接的には対応しない他のライセンス検証回路１００８が備えられ、他のデバイス識別子（ＩＤＸ）を生成する。集積回路１０２の総合的デバイス識別子は、例えば各デバイス識別子の合計（ＩＤ１＋ＩＤ２＋…＋ＩＤＮ＋ＩＤＸ）である。デバイス識別子ＩＤＸは例えば、ＩＤ１からＩＤＮを結合した識別子が、確かな固有の識別子を提供するために長さが不足している場合に用いられる。
【０１０９】
ライセンスＬＩＣ１からＬＩＣＮは、例えばサーキュレータ１００７により、バス１００６へ入力される。各ライセンスは、ＩＰブロック２０６群の内の１つを活性化させる。特に、ＩＰブロック２０６群の内の１つのデバイス識別子から導出されたキーによって暗号化されたライセンスのみが、ＩＰブロック２０６によって復号され、ＩＰブロック２０６の活性化に使用される。
【０１１０】
図２、図９及び図１０のライセンスシステムは、既知のチップに実装されたシステムを有してもよい。いくつかのケースでは、回路基板は、各々が１又は複数の被保護ＩＰブロックを有する複数のチップを含む。
【０１１１】
図１１Ａは、本開示の一実施形態におけるライセンスシステム１１００を模式的に示す回路図である。図１１Ａに示すように、各々集積回路である第１チップ１１０２、及び第２チップ１１０４は夫々、デバイス識別子を生成、及び／又は記憶する回路と、ＤＲＭコントローラとを有するライセンスシステム１１００を備えている。ＤＲＭコントローラは、ライセンス検証に基づき、１又は複数の被保護回路を選択的に活性化させる。メモリである第１ライセンスチップは、第１チップ１１０２に接続されており、第１チップ１１０２に対応するライセンスを記憶している。他のメモリである第２ライセンスチップは、第２チップ１１０４に接続されており、第２チップ１１０４に対応するライセンスを記憶している。いくつかの実施形態では、第１ライセンスチップ及び第２ライセンスチップは、同一メモリデバイスの一部であってもよい。
【０１１２】
図１１Ｂは、本開示の一実施形態におけるライセンスシステム１１１０を模式的に示す回路図である。図１１Ｂのライセンスシステム１１１０は、図１１Ａのライセンスシステム１１００の代替例であって、ライセンスを記憶する単一のメモリ１１１２が、第１チップ、第２チップ等全てのチップ用に、１又は複数のライセンスを記憶している。またＤＲＭコントローラ１１１４は、各チップへのライセンスを伝達する。いくつかの実施形態では、各チップに対応する異なるデバイス識別子が存在し、デバイス識別子は、ＰＵＦ（第１チップ）＋ＰＵＦ（第２チップ）＋…等のように各チップのデバイス識別子の組み合わせを含んでもよい。又は、単一のデバイス識別子が第１チップ、第２チップ等の全チップに対して使用され、同一のデバイス識別子を共有するようにしてもよい。
【０１１３】
図１２は、本開示の一実施形態におけるＦＰＧＡ１２０２に基づくライセンスシステム１２００の模式図である。ＦＰＧＡ１２０２は、ライセンスをロードするライセンスローダ１２０４を備える。ライセンスは、ＦＰＧＡ構成ＲＯＭ１２０８のライセンスメモリ１２０６に記憶されている。ＦＰＧＡ構成ＲＯＭ１２０８は、デバイスの電源オン時、又はリセット後にＦＰＧＡを構成するために使用される。ＦＰＧＡはまた、ライセンスがロードされるライセンス組み込みメモリ１２１０を備える。
【０１１４】
少なくとも一実施形態で説明したことにより、当業者にとって、多様な代替案、変更及び改良案への想到が容易である。
【０１１５】
例えば、当業者にとっては、上述で説明したような対称な暗号化／復号アルゴリズムの実装の代わりに、非対称の暗号化／復号アルゴリズムを使用することができることは自明である。
【０１１６】
また、当業者にとって、上述した多様な実施形態を互いに組み合わせたり、代替させたり、など任意の組み合わせで実施可能であることは自明である。
【０１１７】
本特許出願は、参照によって本明細書に組み込まれる仏国特許出願１５／５６４１８号明細書の優先権を主張している。
【図１Ａ】
2018523439.tif 000003
【図１Ｂ】
2018523439.tif 000004
【図２】
2018523439.tif 000005
【図３Ａ】
2018523439.tif 000006
【図３Ｂ】
2018523439.tif 000007
【図４】
2018523439.tif 000008
【図５】
2018523439.tif 000009
【図６】
2018523439.tif 000010
【図７】
2018523439.tif 000011
【図８】
2018523439.tif 000012
【図９】
2018523439.tif 000013
【図１０】
2018523439.tif 000014
【図１１Ａ】
2018523439.tif 000015
【図１１Ｂ】
2018523439.tif 000016
【図１２】
2018523439.tif 000017
【国際調査報告】
2018523439.tif 000018
2018523439.tif 000019
2018523439.tif 000020
2018523439.tif 000021
2018523439.tif 000022
2018523439.tif 000023