[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP6854285B2 - デバイス、ライセンス検証システム、システム及びライセンス検証方法 - Google Patents

デバイス、ライセンス検証システム、システム及びライセンス検証方法 Download PDF

Info

Publication number
JP6854285B2
JP6854285B2 JP2018520030A JP2018520030A JP6854285B2 JP 6854285 B2 JP6854285 B2 JP 6854285B2 JP 2018520030 A JP2018520030 A JP 2018520030A JP 2018520030 A JP2018520030 A JP 2018520030A JP 6854285 B2 JP6854285 B2 JP 6854285B2
Authority
JP
Japan
Prior art keywords
license
circuit
code
protected
key
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.)
Active
Application number
JP2018520030A
Other languages
English (en)
Other versions
JP2018523439A (ja
Inventor
ランポン,ジェローム
ポール,ガエル
トレ,ライオネル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Centre National de la Recherche Scientifique CNRS
Original Assignee
Centre National de la Recherche Scientifique CNRS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Centre National de la Recherche Scientifique CNRS filed Critical Centre National de la Recherche Scientifique CNRS
Publication of JP2018523439A publication Critical patent/JP2018523439A/ja
Application granted granted Critical
Publication of JP6854285B2 publication Critical patent/JP6854285B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Description

本開示は集積回路、特に、集積回路のIP(共有財産)ブロックに対する認証及びライセンスを可能とする方法及びシステムに関し、より一般的には、任意の回路又はシステムに対する認証及びライセンスに関する。
集積回路は、IPブロックとして知られている回路ブロックを多数備える。IPブロックは、特定の機能を夫々発揮するための離散的ハードウェア回路設計に対応しており、多様な集積回路での再利用が可能である。既存の集積回路(IC:Integrated circuit)におけるIPブロックは、夫々の知的財産権の保有者によってIC設計者にライセンスされている。
IPブロック群は一般的に、ソフトウェアとして例えば、 RTL(Register Transfer Level ),Verilog 又はVHDL(Very high speed integrated circuit Hardware Description Language)等のハードウェア記述言語によりIC設計者へ分配されている。知的財産権の保有者は大抵の場合、IPブロックを使用することについて集積回路及び/又はプロジェクトの個数制限内でIC設計者に対して認可するか、又は、IPブロックを組み込んだ集積回路又はプロジェクト毎に使用料の支払いを求める。しかしながら、集積回路の著作権侵害が問題として増大しつつある。実際問題として、IPブロックがIC設計者へ分配された後は、IPブロックの知的財産権の所有者にとって、どのようにそれらのIPブロックが使用されるかをコントロールし、認可した設計に基づき製造される集積回路の数を制限することは非常に困難である。
IPブロックに係る知的財産権の保有者がそのIPブロックの分配先における回路設計を制限することを可能とするいくつかの解決法が提案されている。しかしながら、それらのソリューションは、より複雑で高コストになるか、及び/又は、安全性が不十分になりがちである。
本開示の実施形態の目的は、このような従来技術における1又は複数の問題を部分的にでも解消することにある。
本開示の一側面によれば、デバイスにおける1又は複数の被保護回路を選択的に活性化させるライセンス検証回路が提供される。該ライセンス検証回路は、前記デバイスに対応する識別子からデバイスキーを導出する導出部と、第1のライセンスを受信する受信部と、第1の検証コードを抽出するために前記デバイスキーを用いて前記第1のライセンスを復号する復号部と、前記第1の検証コードの検証に基づき、第1の被保護回路に対応する活性化コードレジスタへ活性化コードをロードすることで前記第1の被保護回路を活性化させる活性化部とを備える。
一実施形態によれば、前記デバイスに対応する識別子は、PUF(Physical Unclonable Function)により与えられる。
一実施形態によれば、前記デバイスに対応する識別子は、暗号化により保護されたインタフェース上で読み出される。
一実施形態では、ライセンス検証回路は更に、前記デバイスキーを導出するキー導出回路及び前記第1のライセンスを復号する暗号回路を備えるライセンスサーバと、前記第1の被保護回路に対応しており、前記第1の検証コードに基づき該第1の被保護回路を活性化させる第1の制御回路を備える第1のライセンスクライアントと、第2の被保護回路に対応しており、前記第2の被保護回路に対応する活性化コードレジスタへ第2の活性化コードをロードすることで前記第2の被保護回路を活性化させる第2の制御回路を備える第2のライセンスクライアントとを備える。
一実施形態では、前記ライセンスサーバは、前記第1の検証コードを前記第1のライセンスクライアントへ送信し、第2の検証コードを前記第2のライセンスクライアントへ送信する。
一実施形態では、前記第1の検証コードは、前記ライセンスサーバにて、前記第1のライセンスから抽出された追加キーに基づき暗号化され、該第1のライセンスクライアントにおける前記第1の制御回路へ送信される。
一実施形態では、前記暗号回路は、前記第1のライセンスから前記追加キーを抽出する。
一実施形態では、前記第1の検証コードは、IPベンダキーを用いて暗号化された活性化コードを含み、前記第1のライセンスクライアントは更に、前記IPベンダキーをメモリに記憶し、前記活性化コードを抽出するためのIPベンダキーに基づいて前記第1の検証コードを復号する。
一実施形態では、前記第1のライセンスクライアントは、チャレンジ値を発生させ、発生させた前記チャレンジ値を前記ライセンスサーバへ送信する乱数発生器を含むチャレンジ発生回路と、少なくとも前記チャレンジ値に基づき第1の応答値を生成する第1応答生成回路とを備え、前記ライセンスサーバは、前記チャレンジ値を受信し、少なくとも該チャレンジ値に基づき第2の応答値を生成する第2応答生成回路を含み、前記第1のライセンスクライアントは更に、前記第1の応答値と第2の応答値とを比較する検証回路を備える。
一実施形態では、前記第1及び第2応答生成回路は、ハッシュ関数に基づいて第1及び第2の応答値を生成する。
一実施形態では、前記第1のライセンスクライアントは、前記活性化コードの複製を記憶する不揮発性メモリを含み、前記第1の制御回路は、前記第1の検証コードの1又は複数の値の検証に基づき活性化コードレジスタに対して前記活性化コードの複製をロードする。
一実施形態では、前記検証コードは、ライセンスの時間制限、ライセンスの地域制限、1又は複数のハードウェアの種類に対するライセンスの制限、ライセンスの温度制限、ライセンスの電圧制限、ライセンスの帯域幅制限、ライセンスの速度制限、ライセンスの加速度制限、ライセンスの湿度制限、ライセンスの光量制限、ライセンスの磁場制限、ライセンスの放射能量制限のいずれか1つ又は複数を示すデータを更に含む。
一実施形態では、前記第1の活性化コードは複数のビットにより構成されており、前記第1の被保護回路は、該第1の被保護回路の信号路を選択的に活性化させる複数の論理ゲートを含み、該複数の論理ゲートは、前記第1の被保護回路のノードに接続された第1の入力と、前記活性化コードレジスタに記憶された前記複数のビットの内の1つを受信すべく接続された第2の入力とを備える。
本開示の他の側面によれば、上述のライセンス検証回路を含む第1のIPブロックと、上述のライセンス検証回路を含む第2のIPブロックと、前記第1のIPブロックへ前記第1のライセンスを送信し、前記第2のIPブロックへ第2のライセンスを送信するサーキュレータとを備えるライセンス検証システムが提供される。
本開示の他の側面によれば、デバイスのデバイス識別子に基づきデバイスキーを導出するキー導出回路と、前記デバイスキーを用いて1又は複数の活性化コードを暗号化することによって前記デバイスにおける1又は複数の被保護回路のための第1のライセンスを生成する暗号回路とを備えるライセンス生成回路が提供される。
一実施形態では、前記暗号回路は、前記第1のライセンスに含まれるべき追加キーを暗号化する。
本開示の更に他の側面によれば、デバイスにおける1又は複数の被保護回路を選択的に活性化させるライセンス検証方法が提供される。該ライセンス検証方法は、前記デバイスに対応する識別子からデバイスキーを導出する処理、第1のライセンスを受信する処理、第1の検証コードを抽出するために前記デバイスキーを用いて前記第1のライセンスを復号する処理、及び前記第1の検証コードの検証に基づき、前記第1の被保護回路に対応する活性化コードレジスタへ活性化コードをロードすることで第1の被保護回路を活性化させる処理を含む。
前述及び他の特徴及び利点は、以下の添付図面を参照する具体的な実施形態についての本発明を限定しない説明の中で詳細に述べる。
本開示の一実施形態におけるIPブロックにライセンスを認可するシステムの模式図である。 図1Aに示した一実施形態におけるライセンス生成器の詳細を示す図である。 本開示の一実施形態におけるライセンスコンポーネントを備える集積回路をより詳細に示す模式図である。 本開示の一実施形態におけるIPブロックの活性化回路の模式図である。 本開示の一実施形態におけるIPブロックの活性化回路の模式図である。 図2に示した本開示の一実施形態における集積回路のライセンスサーバ及びライセンスクライアントをより詳細を示す模式図である。 図4に示した本開示の一実施形態におけるライセンスサーバ及びライセンスクライアントを用いてライセンスに基づきIPブロックを活性化させる手順の一例を示すフローチャートである。 図2に示した本開示の他の一実施形態における集積回路のライセンスサーバ及びライセンスクライアントをより詳細に示す模式図である。 図6に示した本開示の他の一実施形態におけるライセンスサーバ及びライセンスクライアントを用いてライセンスに基づきIPブロックを活性化させる手順の一例を示すフローチャートである。 図2に示した本開示の他の一実施形態におけるライセンスクライアント及びライセンスサーバ間の安全なインタフェースを詳細に示す模式図である。 本開示の他の一実施形態における集積回路のライセンスコンポーネントの模式図である。 本開示の更に他の一実施形態における集積回路のライセンスコンポーネントの模式図である。 本開示の一実施形態におけるライセンスコンポーネントを模式的に示す回路図である。 本開示の一実施形態における本開示の一実施形態におけるライセンスコンポーネントを模式的に示す回路図である。 本開示の一実施形態におけるライセンスコンポーネントを備えるFPGA(Field Programmable Gate Array )の模式図である。
以下の実施の形態では、本開示をハードウェアで実現されるものとして説明するが、多様な実施形態が、少なくとも一部分について1又は複数のプロセッサでソフトウェア的指示に基づき実行されることで実現可能であることは当業者にとって自明である。
以下の実施の形態での説明において、以下の項目については下記のように定義される。
IPブロック:夫々特定の機能を実行し、異なる集積回路にて再利用することが可能な離散的ハードウェア回路設計
被保護回路:単一のIPブロック、IPブロックの集合、又は、1又は複数の集積回路を備えるシステムに対応し、活性化コードによって活性化されない限り不活性状態にあるようなメカニズムによって保護されている。
図1Aは、本開示の一実施形態における被保護回路の認証及びライセンスを認可するシステムの模式図である。
システム100は、大きく3つに分けられたハードウェアを含む。1つは、メーカ等のIPベンダにより管理され、1つは信頼されたサードパーティにより管理され、1つはエンドユーザにより管理される。保護は、1又は複数の被保護回路の一体的な活性化に基づき実施されている。被保護回路は夫々、例えば、標準プロトコルを管理するためのインタフェースなどのように、正確な機能を実現するために開発された複雑な回路であり、プロセッサ、暗号化又は暗号回路のように先進的な処理を実行することが可能な回路である。被保護回路は、例えば1又は複数のアプリケーション固有の回路、及び/又は、1又は複数のFPGAを使用して実現されている。
図1Aの例では、デバイス102は、エンドユーザにより購入されたか、あるいは取得され、1又は複数の被保護回路を備えるものとする。図1Aに示す例では、デバイス102は1つの集積回路であり、複数の被保護回路は、その集積回路のIPブロック103群である。なお代替案として、デバイス102は任意の電子デバイスであってよく、被保護回路は夫々、1以上の集積回路を備える回路又はシステムを含む構成としてもよい。
集積回路であるデバイス102は、例えば、携帯電話機、タブレット端末、ラップトップ型パーソナルコンピュータ、携帯型ゲーム機等の製品の一部を構成するか、又は、決済カード(電子マネー)、SIM(Subscriber Identity Module)カード等を含むスマートカードと呼ばれるカード類であるICカードに実装されたチップであってもよい。
以下説明する本実施の形態によれば、集積回路であるデバイス102における1又は複数のIPブロック103は例えば、エンドユーザがそのデバイス102を入手したときには不活性状態であり、エンドユーザがそれらの不活性状態のIPブロック群を、IPベンダ又はサードパーティから得られるライセンスを要求することで活性化させる。なお代替案として、活性化はエンドユーザではなく、サプライチェーンにおける他の事業者、例えば集積回路の設計者、又はデバイス102を含む製品のベンダによって行なわれてもよい。
デバイス102は、デバイス識別子(デバイスID)を例えば記憶している。デバイス識別子は、デバイス102又はデバイス102群を識別するビット列であり、認証の代わりとなる。ライセンスは、IPベンダ又はサードパーティにより提供され、識別子を持つデバイスのみに利用できる。いくつかの実施形態では、デバイス識別子は、各デバイスについて固有であり、付与されたライセンスは、1つのデバイス102の被保護回路を活性化させることしかできない。しかしながら、いくつかの実施形態では、1つのグループのデバイス群、例えば同一のデバイス識別子を有するデバイス群に対して単一のライセンスを付与することを可能としてもよい。デバイス識別子は例えば、PUFによって生成されるか、又はPUFから導出される。
デバイス102の1又は複数の被保護回路の活性化は、恒久的、即ち一度活性化された場合には、デバイス102の被保護回路は活性化されたままとなってもよい。あるいは、又は更に、1又は複数の被保護回路は、デバイス102に対して事後的にリセット操作がされるまでは活性化されたままとしてもよい。この場合、再度これらの被保護回路を活性化させるためにはライセンスが再度必要になる。ライセンスはデバイスに記憶されたままとしてもよい。したがってこの場合、電源立ち上げ手順が行なわれている間、プリリセット操作(リセット信号が不活性化される前の操作)により、メモリに予め記憶されているライセンスを、1又は複数の被保護回路を活性化させるためにチップへロードすることが必要とされる。
あるいは又は更に、ライセンスは初期的には、限られた期間だけ、又はデバイスのクロックの所定サイクル数分だけ、1又は複数の被保護回路を活性化させることが可能であってもよい。例えば、一時的な期間、全て又は一部のみの被保護回路を活性化させたデモンストレーションモードでの動作が可能となる。この一時的な期間が終了した場合、それらの被保護回路を活性化させるためにはフルライセンスが必要となる。
以下の説明で明らかになるように、活性化の分類(恒久的か、リセットが行なわれるまでの期間内か、又は一時的か)は、デバイスの被保護回路毎に異なっていてもよい。更に、以下で説明する方法は単一のIPブロックを活性化するために使用されてもよいが、任意の被保護回路を活性化、既知のASIC(Application Specific Integrated Circuit)技術を用いて設計された全回路の活性化、既知の種類のFPGAの活性化、又は、既知の製造者により製造されたFPGAの活性化等にもまた適用することが可能である。任意の被保護回路とは、既知のデバイスにおける全てのIPブロック、他のIPブロック内のIPブロック及び/又は他のIPブロックを有するIPブロック、又はシステム若しくはICカードである。また、システムレベルでも適用が可能である。更にいくつかの実施形態では、ライセンスは、あるIPブロックにおける複数の機能のあるサブセットのみに対する活性化又は不活性化に利用されてもよい。
詳細は後述するが、以下で説明する方法及びデバイスは、例えば被保護回路又は被保護回路のサブ機能を複数回、活性化させたり、不活性化させたりすることも可能である。
IPブロックの保護及び活性化のプロセスの一例について詳細に説明する。以下の例は、単一のIPブロックの保護に基づくが、上述したように、他の実施例として、他の種類の回路の保護に適用することも可能である。
IPベンダでは、データベース104が例えば、シンプルなレジスタ転送レベル(RTL:Register Transfer Level )のコードのようなハードウェア記述言語で表現された1又は複数のIPブロックを記憶している。
IP保護器106は例えば、IP保護機能を実行するソフトウェアを含む。IP保護機能は、回路を不活化させるため、データベース104から1又は複数のIPブロックを一部修正するべく使用される。特に、IPブロックは、機能をアンロックするために活性化コードが必要となるように変更される。いくつかの実施形態では、この処理全体が自動的に実行可能である。一方、他の実施形態では、この処理の少なくとも一部について、例えばIPブロックの設計者等による操作を必要とする。詳細は後述するが、IPブロックの修正とは例えば、ハードウェア記述ファイルにて、1又は複数の論理ゲートをIPブロックの1又は複数の信号路へ挿入することを必要とする。これらの論理ゲートは、例えば、挿入された論理ゲートのノードの1又は複数の入力に、1又は複数の修正後の活性化ビットが供給された場合のみ、元の信号を信号路に沿って伝搬させる。いくつかの実施形態では、前記活性化コードは、既知のIP設計に対して固有であってもよい。他の実施形態では、1つ以上のIP設計に対して同一の活性化コードが使用されてもよい。更にいくつかの実施形態では、単一のIPブロックを活性化させることができる活性化コードが1以上あってもよい。これにより、例えばライセンス生成を促進させることが可能になる。
IPライセンスを管理するための回路は例えば、保護されるIPブロック夫々に追加されている。IPライセンスを管理するための回路については以下では、ライセンスクライアントと呼ぶ(図1Aでは図示せず)。詳細は後述するが、ライセンスクライアントは例えば、一旦有効なライセンスが提供されると活性化コードが記憶されるレジスタを備える。いくつかの実施形態では、ライセンスクライアントは、各IPブロックに統合されている。詳細は後述するが、各ライセンスクライアントは、対応するIPブロック外に存在する構成としてもよい。
いくつかの実施形態では、IPブロックの修正を記述した前記ハードウェア記述ファイルは、例えば、暗号化によって保護されている。
活性化コードは、そして必要に応じて修正後のIPブロック群の一部又は全部は、IPベンダが管理する例えば被保護IP用のデータベース108に記憶されている。修正後のIPブロック群は、図1A中の矢符110で示すように、集積回路102の設計者へ分配され、1又は複数の被保護対象のIPブロック103群が集積回路02へハードウェアとして実装されている。特に、集積回路102の設計者は例えば、異なる複数種類のIPブロック群を用いて集積回路を設計する。これらの1又は複数のIPブロック群は例えば、以下で説明するように、単一の活性化コードによって保護されていてもよい。
ライセンスは、例えば検証コードを含む。ライセンスに関連しており、1又は複数のIPブロックを活性化させるコードを以下、「検証コード」と呼ぶ。検証コードは、1又は複数のIPブロック群に対する活性化コードであってもよい。他の実施形態では、活性化コードはIPブロックの保護メモリ、例えばROM(Read Only Memory)に予め記憶されており、活性化コードはライセンスに含まれない。この場合検証コードは、IPブロックのライセンスに関連する秘密コードであり、活性化コードを保護メモリから活性化コードレジスタへロードすることを可能とする。いくつかの実施形態では、集積回路の設計者が回路の考案又は試験目的で使用することに対して一時的なライセンスが提供されるようにしてもよい。
集積回路の設計者はまた、集積回路102内にライセンスサーバ114を統合する場合がある。ライセンスサーバ114は例えば、信頼されたサードパーティによって提供されるか、又はIPベンダによって1又は複数の被保護対象のIPブロック103群に組み込まれていてもよい。ライセンスサーバ114は例えば、ライセンスを受信できる集積回路のポートに接続している。ライセンスサーバ114はまた例えば、各被保護対象のIPブロック103群、特に、各IPブロック103のライセンスクライアントを構成する回路に接続している。
ライセンスサーバ114は例えば、デバイス識別子を生成する生成回路をも含んでいる。デバイス識別子は例えばPUFにより構成される。以下後述するように、デバイス識別子は例えば、集積回路に固有の署名の生成に基づくものである。これにより、2つの集積回路が同一の機能を持つように組み立てられ、及び/又はプログラムされたとしても、各々の署名、即ちデバイス識別子は相違する。PUF値は例えば、集積回路のCPU(Central Processing Unit )により生成されるか、及び/又は、集積回路に実装された1又は複数のリング発振器により生成される。PUFについては例えば以下の複数の文献にて詳細が述べられている。
文献1:デービット ナサーシェ(David Naccache)他、「難忘却識別装置、識別装置リーダ及び識別方法」、1992年8月;
文献2:G.シモンズ(G. Simmons)、「データ、デバイス、文書及び個人の識別」、IEEEセキュリティ技術に関する国際カーナハン会議、1991年、pp.197-218;
文献3:ステファン カッツェンバイサー(Stefan Katzenbeisser)他、「PUF:神話か、事実なのか、それとも壊されるのか?シリコンキャストされたPUF群の安全評価」、(2012)、ベルギーのルーヴェンで行なわれた暗号化ハードウェア及び埋め込みシステム(CHES:Cryptographic Hardware and Embedded Systems )の第14回国際ワークショップにおける議事、期間: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;
文献4:ローエル メイズ(Roel Maes )他、「PUF:技術動向の研究及び今後の研究方向性について」
文献5:L.ボシュエ(L. Bossuet)他、「過渡的効果リング発振器及びロック現象への非感受性に基づくPUF」、IEEE Transactions on Emerging Topics in Computing、vol. 2、 Issue 1、 pp. 30-36、2014年;
文献6:P.バヨン(P. Bayon)他、「真の乱数発生器における電磁放射分析:周波数及び局在的検索方法」、APEMC、2013年;
文献7:Z.シェリフ(Z. Cherif )他、「設計が容易なシングル発振器に基づくPUF:ループPUF」、DSD、2012年;
文献8:B.ガッセンド(B. Gassend)他、「シリコン物理ランダム関数」、 ACM CCS、 pp. 148-160、2002年;
文献9:J.グアハルド(J. Guajardo )他、「FPGA及びそのIP保護のための使用方法」、CHES、スプリンガー社、LNCS、 vol. 4727、 pp. 63-80、2007年;
文献10:D.メルリ(D. Merli)他、「FPGAリング発振器PUFへの半進入的電磁攻撃及び対抗策」、ACM WESS、2011年;
文献11:G.E.ソ(G. E. Suh )他、「デバイス認証及び秘密鍵生成のためのPUF」、 DAC、2007年;
これらの11件の文献で開示されている内容は、法により認められている範囲で、引用により本開示に組み込まれる。
製造及び/又はプログラム後の集積回路が、最初に活性化した場合、デバイス識別子の値は、例えばPUF回路等により生成された値を読むことによって読み出されることになる。いくつかのケースでは、PUF値は、集積回路の経時変化によって、及び/又は環境(温度、電圧等)等の他の理由によって時間変化を起こす可能性がある。いくつかの実施形態では、PUFの電位変化の観点から、生成されたPUF値の少なくとも一部が、不揮発性メモリに記憶されるか、及び/又は、エラー訂正コードが生成される。このエラー訂正コードは、PUF値の任意ビット群が元の値から外れた場合にPUF値を修正可能とする。デバイス識別子はまた、集積回路102のポートで得られるようにしてあるか、あるいは逆に、集積回路102の外部に連結されており、保護されているIPブロック103を活性化すべくライセンスを要求するために使用される。
PUFの代わりに、デバイス識別子として、デバイス製造者によってデバイスに付与された識別子のような他の形式を用いてもよい。
ライセンス生成は例えば、集積回路102の活性化を望むエンドユーザ又は他の事業者からの要求に応じてIPベンダ又は信頼されたサードパーティによって実行される。ライセンスの要求は、集積回路102から読み出されたデバイス識別子を含む。
一例によれば、活性化に関する要求は、複数のIPブロック103群の活性化に対する要求を含んでもよい。例えば、前記集積回路102に接続され、デバイス識別子を得るために集積回路102とやり取りする外部コンピュータで実行されるアプリケーションが提供されてもよい。デバイス識別子は、信頼されたサードパーティのライセンスサーバ126へ送信される。ライセンスサーバ126は例えばこれに応じて、集積回路のIPモジュール群のIPベンダ夫々に対してライセンスを要求する。IPベンダにおける顧客関係管理(CRM:Customer Relationship Management)アプリケーションは例えば、顧客データベースを調べ、ライセンスを付与できるか否かを検証する。例えば顧客関係管理アプリケーションは、対応するデバイス識別子を持つ集積回路が、盗難された回路でないか、そしてライセンスに対する支払いが完了しているかを検証する。IPベンダはこの場合例えば、送信されたデバイス識別子に基づきライセンスを生成し、生成したライセンスを信頼されたサードパーティのライセンスサーバ126へ送信する。送信されたライセンスは例えば、信頼されたサードパーティにて記憶され、活性化処理で使用されるために集積回路102へ送信される。
勿論、この処理手順には多様なバリエーションが適用できる。例えば、顧客データベースが、デバイス識別子に基づき集積回路のIPブロック103群を活性化させるためライセンスを生成するライセンス生成回路と共にサードパーティで記憶されていてもよい。
いくつかの実施形態では、各IPブロック103を活性化させるために夫々ライセンスが生成される。又は、ライセンスは1つで複数のIPブロック103を一度に活性化するために生成されてもよい。例えば、ライセンスは、各IPブロック103を活性化させる検証コードを含む。
この場合ライセンスは、IPベンダで生成され、集積回路102の被保護対象であるIPブロック103又はIPブロック103群をアンロックするために必要な検証コード又は複数の検証コード115は、例えばIPベンダにおけるライセンス生成器116に提供される。ライセンス生成器116は、集積回路102のライセンスサーバ114へ送信されるライセンスを生成するために使用される。ライセンス生成器116は例えば、デバイス識別子(デバイスID)を集積回路102から受信し、ライセンスをこの識別子及び検証コードに基づき生成する。いくつかの実施形態では、ライセンスはまた、DRM(Design Right Management )データ120を取り込んでもよい。このDRMデータ120は、生成するライセンスが一時的なライセンスである場合には例えば、IPブロック103の活性化についての時間制限を示す。DRMデータ120はまた、1又は複数のハードウェアの種類に対するライセンスの制限、例えばASIC技術、FPGA群、又はアンロックされるIPブロック103の特定の機能を示す。これらの回路のハードウェアの種類は例えば、そのIPブロック103の使用を制限するために、特定のセンサによって決定されてもよいし、1又は複数の検定済みのハードウェアの種類と比較されてもよい。あるいは、又は更に、ライセンスのDRMデータ120は、デバイスのセンサによって測定が可能な他の変数に基づきライセンスの制限を示す制限データを定義するものであってもよい。例えば、DRMデータ120は以下を定義するものであってもよい。例えば環境温度センサに基づくライセンスの温度制限;回路への供給電圧のレベルに基づくライセンスの電圧制限;ライセンスの帯域幅制限;デバイスのGPS(Global Positioning System )情報の読み取りに基づくライセンスの速度制限;デバイスの加速度センサからの読み取りに基づくライセンスの加速度制限;デバイスの環境湿度センサに基づくライセンスの制限湿度;デバイスの環境照度センサに基づくライセンスの光量制限;デバイスのホール効果センサの測定値に基づくライセンスの磁場制限;デバイスのガイガーカウンタによる測定値に基づくライセンスの放射能量制限;及び/又は、適切なセンサによる測定値に基づく他の種類の制限のいずれか1又は複数である。
いくつかの実施形態では、DRMデータ120は、検証コードを修正する。いくつかの実施形態では、検証コードは活性化コードを含み、IPブロック103の一部のみが該活性化コードで活性化されるよう、この活性化コードの複数ビットは提供されないか又は誤りとしてある。他の実施形態では、1ビット毎のビットによらない、IPブロック103の活性化/不活性に関する他の技術が利用されてもよい。
図1Bは、一実施形態におけるライセンス生成器116を詳細に示す図である。ライセンス生成器116は、第1キー導出回路122を備える。第1キー導出回路122は、集積回路102により提供されるデバイス識別子(デバイスID)に基づきデバイスキー(DK)を生成する。ライセンス生成器116はまた、暗号回路124を備える。暗号回路124は、ライセンスを生成するために、活性化させるIPブロック103の単一の検証コード又は複数の検証コードに対してデバイスキーを適用する。暗号回路124は、DES(Data Encryption Standard)、AES(Advance Encryption Standard )等の暗号化アルゴリズムを適用することでデバイスキーに基づいて検証コード(単一又は複数)を暗号化する。DRMデータ120は暗号化され、ライセンスの一部として含まれてもよい。また、以下に図6を参照して説明する実施形態では、IPキーがライセンス生成器116に供給されて、暗号回路124にてライセンスに含まれるように暗号化される。
いくつかの実施形態では、ライセンスはIPベンダによって生成されるのではなく、サードパーティによって生成される。例えばライセンスは、SaaS(Software as a Service )解決策として生成される。この場合、信頼されたサードパーティにて、ライセンス生成器116が管理される。ライセンス生成器116は、IPベンダからデバイス識別子(ID)、検証コード(単数又は複数)を受信する。IPキーを受信する場合もある。いくつかの実施形態では、図示するように、暗号回路128により、IPベンダキーを用いて検証コードをIPベンダにて暗号化してもよい。この場合IPベンダキーは、IPベンダにてIPブロック103に内蔵する形で記憶され、検証コードの復号を可能とする。この場合、サードパーティでさえも検証コードにアクセスができない。
ライセンス生成処理は、サードパーティ又はIPベンダによりライセンスが許可された集積回路の計数を可能とする。各ライセンスが単一の集積回路に対してのみ有効である場合、生成されたライセンスの数は、被保護IPブロック103を含む集積回路の数に等しいはずである。したがって計数をIPベンダによってロイヤリティの算出のために行なうか、ライセンス同意の条件違反の検出のために行なうことが可能である。
生成されたライセンスは、集積回路102、例えばライセンスサーバ114に供給され、ライセンスサーバ114は、集積回路102のデバイス識別子に基づきライセンスを復号し、検証コードを抽出する。ライセンス生成器116によるデバイスキーを用いた検証コードの暗号化には、例えば対称な暗号化/復号のアルゴリズムが使用される。このアルゴリズムは同様に、集積回路102にてライセンスの復号に使用される。キーが同一である場合には、検証コードの復号は成功するはずである。
対称な暗号化/復号アルゴリズムの使用に限らず、非対称な暗号化/復号アルゴリズムが2つの鍵に基づき実行されてもよい。このような場合、ライセンスサーバ114はデバイス識別子に基づいて公開鍵を導出し、この公開鍵は、ライセンス生成器116に対してデバイス識別子と共に供給される。この場合、デバイスキーを生成するキー導出回路122を使用することなく、ライセンス生成器116は前記公開鍵に基づいてライセンスを暗号化する。ライセンスサーバ114は、暗号化されたライセンスをライセンス生成器116から受信し、ライセンスを復号するデバイスキーとなる秘密鍵を、デバイス識別子に基づいて生成する。
更にまた別の方法として、以下説明する暗号化ブロックで他の暗号化/復号スキームが利用されるようにしてもよい。例えば楕円曲線に基づくアルゴリズムを利用してもよい。
図2は、図1Aに示した本開示の一実施形態における集積回路102のライセンスコンポーネントをより詳細に示す模式図である。この場合、ライセンスサーバ114とIPブロック103群との間の接続形態は、クライアントサーバシステムの構成に基づく。他の実施形態として、これらの接続形態を他の種類のものとしてもよい。例えばネットワークオンチップ( NoC:Network On Chip )、又は、マルチキャスト若しくはブロードキャストプロトコルのような形態としてもよい。ライセンスサーバ114とIPブロック103群との間の接続は、暗号化を用いて安全に実施される。
図2に示すように、JTAG(Joint Test Action Group )のインタフェースが、集積回路102におけるライセンスメモリ202への、ライセンス生成器116から受信したライセンスの送信に使用される。勿論、USB(Universal Serial Bus)のような他の標準インタフェースを用いてもよい。
ライセンスメモリ202は例えば、RAM(Random Access Memory)である。ライセンスメモリ202は内部でライセンスサーバ114と接続されている。ライセンスサーバ114は、ライセンスバス204を介して被保護IPブロック206と通信接続が可能である。図2に示す例では、ライセンスバス204は、被保護IPブロック206夫々に対応する回路であるライセンスクライアント208に接続されている。ライセンスクライアント208は、図2でIPコア210と記載されている被保護IPブロック206にも接続されている。図2に示す例では、第1から第NまでのN個のIPコア210が存在している。なおNは例えば、2以上の整数である。
各IPブロック206に対応するライセンスクライアント208は、ライセンスを検証し、この検証に基づき、対応するIPコア210へそれらの機能を活性化させるために活性化コードを供給する。例えば、各ライセンスクライアント208は、ライセンスが有効であると判断された場合に活性化コードがロードされる活性化コードレジスタ212を備える。各ライセンスクライアント208の活性化コードレジスタ212は、対応するIPコア210に、それらの機能を活性化させるために接続されている。
図3A及び図3Bは、IPブロック206の活性化を実行する活性化回路308の一例を示す図である。ここでIPブロック206の活性化は、活性化コードにおける1又は複数のビットに依存し、論理ゲートをIPブロック206の信号路に挿入することで実行される。
図3Aに示す例では、クラウド302で表されているIPブロック206の回路部分が、出力信号を信号線304へ送出する。信号線304は、同期論理デバイスA306の入力に接続されている。活性化ビットに依存する信号線304の活性化を実行するために、信号線304と同期論理デバイスA306との間に活性化回路308が介装されている。活性化回路308は、信号線304に接続された入力を有するインバータ(NOT回路)310を備える。インバータ310の出力は、排他的論理和ゲート(XOR回路)312の2つの入力の1つに接続されている。排他的論理和ゲート312のもう一方の入力は、活性化ビットen_aを受信するようにしてある。活性化ビットen_aの信号レベルは、信号線304に伝わるデータ信号を、同期論理デバイスA306へ伝搬することを可能とするべく、高低の内の高に設定されている。
図3Bは、図3Aの例と同様に信号路に挿入されている他の活性化回路318の例を示している。ただし活性化回路318は、信号線304に接続された入力と、活性化ビットen_bを受信するように接続してある入力とを有する排他的論理和ゲート(XOR回路)320を備える。またこの例では、活性化ビットen_bの信号レベルは、信号線304に伝わるデータ信号を、同期論理デバイスB306へ伝搬することを可能とするべく、高低の低に設定されている。
つまり図3Aは、信号レベルが高の活性化ビットによって、図3Bは、信号レベルが低の活性化ビットによって、夫々IPブロック206の一部の回路を活性化させることができるように挿入された活性化回路の例を示している。IPブロック206が正しい活性化コード無しでは機能しないように、同様の回路が、IPブロック206内の多様な場所に挿入されるようにしてもよい。勿論、図3A及び図3Bは単に、IPブロック206を保護するために使用される論理ゲートの一例を表わしているに過ぎず、多様な論理関数が同様の原理に基づいて実装されてもよい。いくつかの実施形態では、活性化コードが乱数となり、基礎となる回路の機能に依存しないように挿入がランダムに実行される。他の実施形態では、挿入は非ランダムであってもよい。図3A及び図3Bに示した例では、活性化回路308は、活性化コードのビット「1」(高)により活性化されるケースで使用され、活性化回路318は、活性化コードのビット「0」(低)により活性化されるケースで使用される。しかしながら更に他の実施形態で、ビット「1」及びビット「0」で活性化されるケースで使用される複数の異なる活性化回路が存在し、これらの回路からの選択はランダムであるとしてもよい。
図4は、図2に示した本開示の一実施形態におけるライセンスクライアント208及びライセンスサーバ114をより詳細に示す模式図である。
ライセンスクライアント208は、活性化コードレジスタ212を備える。活性化コードレジスタ212は、活性化コードをIPコア210の活性化回路(図4では図示せず)へ、活性化バス404を介して伝播させる。
図4に示す例では、活性化コードがライセンスクライアント208の例えばROMであるメモリ405に記憶されており、活性化コードは、信号線406にロード信号が現れた場合に、活性化コードレジスタ212へロードされるだけとしてある。ロード信号は例えば、ライセンスサーバ114を介して受信した検証コードの検証が成功した場合にのみ現れる。
一実施形態では、ライセンスサーバ114よりライセンスから抽出された検証コードは、活性化コードを含む。この場合、ライセンスクライアント208にてライセンスを検証するために、メモリ(ROM)405に記憶されている活性化コードが、ライセンスサーバ114へ送信されるチャレンジ信号の暗号化用のキーの導出、そしてその応答の復号に使用される。特に、活性化コードは、活性化コードに基づいてIPキーを生成する第2キー導出回路408へ送信される。例えばAES暗号化/復号アルゴリズムを適用した暗号回路410は、乱数発生器414により生成されチャレンジ発生回路412から得られるチャレンジ値を暗号化する。いくつかの実施形態では、乱数発生器414は、真の乱数発生器であるか、又は疑似乱数発生器である。暗号化されたチャレンジ値は、ライセンスバス204を介してライセンスサーバ114へ送信される。
ライセンスサーバ114では、暗号回路416が暗号回路410と同一のアルゴリズムを適用し、ライセンスと共に受信した活性化コードから導出したIPキーに基づきチャレンジ値を復号する。特に暗号回路416は、第2キー導出回路418からIPキーを受信する。第2キー導出回路418は、ライセンスメモリ202に記憶されていたライセンスから抽出された活性化コードを順に受信する。活性化コードは、暗号回路420により抽出される。暗号回路420は、第1キー導出回路422によって供給されたデバイスキーに基づきライセンスを復号する。第1キー導出回路422は、デバイスID回路423からデバイス識別子(デバイスID)を受信する。デバイスID回路423は、第1キー導出回路422からの要求に基づいてデバイス識別子を生成して供給する回路か、デバイス識別子を記憶しているメモリである。第1キー導出回路422に適用されるキー導出関数は、例えば、図1Bに示した第1キー導出回路122による関数と同一であり、デバイスキーも同一である。又は、第1キー導出回路422で適用されているキー導出関数は上述したように、公開鍵及び秘密鍵を生成するものであってもよく、この場合秘密鍵は、ライセンスを復号するためのデバイスキーとして使用される。
第1キー導出回路122及び第1キー導出回路422におけるキー導出関数と、第2キー導出回路408及び第2キー導出回路418におけるキー導出関数はいずれも、デバイスキー及びIPキーを安全な方法で導出する秘密鍵暗号関数であってもよい。いくつかの実施形態では、キー導出関数は、第1キー導出回路122,422及び/又は第2キー導出回路408,418で記憶されている追加キーに基づくものであってもよい。
応答生成回路424は、暗号回路416で復号されたチャレンジ値を受信し、応答値を生成する。応答値は例えば、チャレンジ値に1を加算するといった平易な処理で得られるか、チャレンジ値の置換により得られるか、又はより複雑な処理によって得られる。加えて応答値は、暗号回路420によりライセンスから抽出されたDRMデータ120を含んでもよい。
応答値は、暗号回路416によって再度IPキーに基づいて暗号化され、ライセンスバス204を介して暗号回路410へ、復号されるべく返される。ライセンスクライアント208では、応答値はチェッカ回路426に供給され、チェッカ回路426は応答値がチャレンジ値の導出成功に対応するか否かを検証する。応答値が有効である場合、ロード信号が信号線406に現れ、これにより活性化コードレジスタ212がメモリ405から活性化コードをロードする。
また、応答値がライセンスから抽出されたDRMデータを含む場合、チェッカ回路426は、メモリ428にDRMデータを記憶するか、及び/又はDRMデータをIPコア210から取得できるようにする。DRMデータは、ASIC又はFPGA等のようなある種の回路に対する活性化を制限するようにしてもよい。あるいは、又は更に、DRMデータは、IPブロック206の活性化に対して時間制限及び/又は地域制限を設けてもよい。例えば、地域制限が適用された場合、DRMデータはIPブロック206が活性化可能な地域を定義し、デバイス102におけるGPSデバイスのような位置取得デバイスから得られる位置データが、デバイスが認可される地域にいるか否かの検証に使用される。この場合DRMデータは、ライセンスが有効期限を含むことを示し、チェッカ回路426は、ライセンスの有効期限が切れているか否かを検証するために、例えばカウンタを使用して実装されるタイマを利用するようにしてもよい。有効期限が切れた場合、チェッカ回路426は、ロード信号を不活性化させ、これにより活性化コードレジスタ212はリセットされ、IPブロック206は再度不活性化される。又は、DRMデータが、応答値によって提供される検証コードの一部に直接的に組み込まれてもよい。これにより、検証コードの一部のみが活性化コードレジスタ212にロードされ、IPブロック206の一部のみをアンロックさせることができる。
他の実施形態では、ライセンスから抽出される検証コードは、活性化コードを含まない。この場合、ライセンスクライアント208は、例えばROMである他のメモリ(図示せず)を更に備え、検証コードをこの他のメモリに記憶する。記憶される検証コードは、暗号回路410へ供給されるIPキーを決定するために使用される。上述の方法は、検証コードを検証するために使用され、検証が成功した場合には、メモリ405に記憶されている活性化コードが活性化コードレジスタ212にロードされる。
IPキーを決定するために第2キー導出回路418を使用する代わりに、IPキーはライセンスと共に送信されるようにしてもよい。実際には、図1Bに関して説明したように、ライセンス生成器116は、ライセンスにIPキーを組み込んでもよい。
図5は、図4に示した回路に基づき、ライセンスを用いてIPブロック206を活性化させる手順の一例を示すフローチャートである。
ステップ501では、ライセンスサーバ114がライセンスを受信する。
以後ステップ502から504の処理により、ライセンスが検証される。これらの手順は、例えば回路が電源オンとなる都度等、回路が実働中に実行される。ライセンスは、ライセンスメモリ202にて取得可能にしてある。例えばライセンスは、外部から要求され、デバイスの電源オンの都度に、ライセンスメモリ202にロードされる。又は、ライセンスメモリ202は不揮発性メモリであって、デバイスが電源オフ状態であってもライセンスを記憶したままであってもよい。
ステップ502では、デバイスキーがデバイス識別子から、例えばPUF値として導出される。
ステップ503では、検証コードを抽出するためにデバイスキーを用いてライセンスが復号される。
ステップ504では、ライセンスクライアント208により、上述したチャレンジ値及び応答値を用いたプロトコルにて検証コードが検証され、活性化コードがROM405から活性化コードレジスタ212へ、IPブロック206を活性化させるためにロードされる。
図4のような実装の発展形としては、活性化コードがライセンスバス204を介して送信されないようにすることも可能である。ライセンスバス204で不正に傍受されたメッセージが活性化コードの取得に使用されないようにすることができる。
図6は、図2に示したライセンスクライアント208及びライセンスサーバ114の他の実施形態をより詳細に示す模式図であり、図4の代替に対応する。図6に示す構成部の内、図4に示した構成部と同一又は同様の構成については、同一の符号を付して重複する詳細な説明を省略する。
図6に示す実施形態では、活性化コードはライセンスクライアント208にてメモリには記憶されない。その代わり、ライセンスクライアント208は、IPキーを例えばROMを用いたメモリ602に記憶している。IPキーは、図1Bのライセンス生成器116における暗号回路124へ与えられるものと同一である。図4に示した実施形態同様に、IPキーは、暗号回路410にてチャレンジ発生回路412から得られるチャレンジ値を暗号化するために使用される。
ライセンスサーバ114では、IPキーは受信したライセンスから暗号回路420により抽出され、暗号回路416によってチャレンジ値を復号するために使用される。図6に示す実施形態では、ライセンスクライアント208へ送信される応答メッセージが、チャレンジ値に対する応答値、更には検証コードを含む。検証コードは、図4に示した実施形態同様に、暗号回路420により抽出される。応答メッセージは、DRMデータをも含んでもよい。応答メッセージは、IPキーに基づいて暗号回路416にて暗号化される。
ライセンスクライアント208では、暗号回路410が応答メッセージを復号し、チャレンジ値に対する応答値、検証コード、及びDRMデータをチェッカ回路426へ供給する。チェッカ回路426は、チャレンジ値が応答生成回路424にて正確に修正されているかをチェックし、DRMデータ及び検証コードをDRM回路604へ受け渡す。DRM回路604は、図4に示したDRMデータを記憶するメモリ428と同様の方法で動作する。
検証コードは活性化コードを含んでもよく、この場合、活性化コードは活性化コードレジスタ212に直接的にロードされる。又は、検証コードはIPベンダキーによって暗号化された活性化コードであってもよい。この場合、IPベンダキーは、ライセンスクライアント208の他のメモリ(図示せず)に記憶されており、暗号回路410によって検証コードを復号し、活性化コードを抽出するために使用される。抽出された活性化コードは、活性化コードレジスタ212にロードされる。
図7は、図6に示した回路に基づき、ライセンスを用いてIPブロック206を活性化させる手順の一例を示すフローチャートである。
ステップ701では、ライセンスサーバ114がライセンスを受信する。
以後ステップ702から704の処理により、ライセンスが検証される。これらの手順は、例えば回路が電源オンとなる都度等、回路が実働中に実行される。ライセンスは、ライセンスメモリ202にて取得可能にしてある。例えばライセンスは、外部から要求され、デバイスの電源オンの都度に、ライセンスメモリ202へロードされる。又は、ライセンスメモリ202は不揮発性メモリであって、デバイスが電源オフ状態であってもライセンスが記憶されたままとしてもよい。
ステップ702では、デバイスキーがデバイス識別子から、例えばPUF値として導出される。
ステップ703では、活性化コードを抽出するためにデバイスキーを用いてライセンスが復号される。
ステップ704では、ライセンスクライアント208により、活性化コードが受信され、ライセンスと共に受信されたIPキーが正当である場合、その活性化コードは、活性化コードレジスタ212へIPブロック206を活性化させるべく送信される。
図6のような実装の発展形としては、活性化コードがメモリに記憶されないようにすることも可能である。IPキーが不正に取得されたとしても、被保護IPブロックが活性化されないようにすることができる。
図4及び図6に示した実施形態では、暗号回路410,416がライセンスバス204の安全性を強化するために使用されたが、他の実施形態では、ライセンスサーバ114とライセンスクライアント208の間のデータ送信の安全性を確保するようなシステムを不要とすることができる。例えば、図8を参照して以下に説明するように、ハッシュ関数又は署名関数を使用すればよい。
図8は、図2に示したライセンスサーバ114及びライセンスクライアント208間の他の実施形態におけるライセンスバス204上での接続インタフェースを示す模式図である。図8は、図2に示したライセンスサーバ114及びライセンスクライアント208の一部を示している。また、図4及び図6に示した第2キー導出回路408、暗号回路410,416、チャレンジ発生回路412、応答生成回路424、チェッカ回路426が他に代替されている。この例では、検証コードはライセンスクライアント208にて記憶されることとしてあり、したがって、ライセンスバス204を介して送信されない。
チャレンジ発生回路802は、チャレンジ値を生成する。このチャレンジ値は、真の乱数発生器(図8では図示せず)により生成された乱数に基づくデジタル値等である。チャレンジ値は応答生成回路804に供給され、応答生成回路804は、チャレンジ値に対する応答値を、ROM等であるメモリ805に記憶してある検証コードに基づいて生成する。応答値は、例えばチャレンジ値及び検証コードに対して任意の関数、例えば加算、又は乗算を適用して生成される。応答値は、該応答値に基づきハッシュ値を生成するハッシュ生成回路806へ供給される。いくつかの実施形態においてハッシュ関数によって生成される署名は、MAC(Message Authentication Code )における署名である。ハッシュ生成回路806の出力は、チェッカ回路808へ供給される。
チャレンジ回路802により生成されたチャレンジ値は、ライセンスバス204を介してライセンスサーバ114へ、例えば該ライセンスサーバ114の応答生成回路810へも送信される。応答生成回路810は、チャレンジ回路802と同一のアルゴリズムを使用するが、ライセンスから抽出された検証コード811に基づき応答値を生成する。応答値は、ハッシュ生成回路812へ供給される。該ハッシュ生成回路812は、ハッシュ生成回路806と同一のアルゴリズムを適用し、ハッシュ生成回路806で生成された値と比較するために、得られた結果をチェッカ回路808へ送信する。ライセンスと共に受信した検証コード811が、メモリ805に記憶してある検証コードと合致した場合、検証は成功であり、活性化コードが活性化コードレジスタ212(図8では図示せず)にロードされる。
図8に示した実施形態はまた、一例に過ぎない。他の実施形態では、検証コードは応答生成回路810での修正に使用されない。その代わり検証コードは、いくつかのステップにてライセンスクライアント208へ伝達される。このようなケースでは、ライセンスクライアント208は、検証コードを記憶しなくてもよい。
図4、図6及び図8に示した実施形態では、デバイス識別子は、ライセンスを検証するために安全な方法で、攻撃者が同一の値のデバイス識別子を使用させることを防止して、読み出されて使用される。例えば、ライセンスサーバ114は、暗号化により保護されたインタフェースを介して集積回路102に対応する識別子(デバイスID)を読み出す。例えば、デバイス識別子の読み出しは、図4における暗号回路410、チャレンジ回路412、乱数発生器414、暗号回路416、及び応答生成回路424、又は図8におけるチャレンジ発生回路802、応答生成回路804、ハッシュ生成回路806、チェッカ回路808、応答生成回路810、及びハッシュ生成回路812と同様の付加的なチャレンジ/レスポンスシステムに基づいて行なわれる。
図2に示した例では、ライセンスクライアント208は、各IPブロック206の一部であったのに対し、他の実施形態では、各IPブロック206(IPコア210)に対応するライセンスクライアント208は、図9を参照して以下に説明するように、集中ライセンスシステムの一部を構成するものであってもよい。
図9は、他の一実施形態における集積回路(デバイス)102のライセンスコンポーネントの模式図である。ここでライセンスコンポーネントは、ライセンスサーバ114と、各IPコア210に対応する複数のライセンスクライアント208(第1から第N)を含む集中ライセンスシステム900である。活性化バス902は、活性化コードを送信するために各ライセンスクライアント208とIPコア210との間に設けられている。ライセンス検証機能は、回路の独立したサブドメインにより設けられ、集中ライセンスシステム900は、例えば特定の内部バス、IPブロック206からは分離したライセンスクロック、及び/又は、ライセンスを記憶するための専用のライセンスメモリ202を備える。
これまで説明してきたライセンスサーバ/ライセンスクライアントよりも、多様な代替的アプローチ、例えばネットワークオンチップシステムを含むアプローチが利用されてもよい。図10を参照して以下に説明するようなシリアルバスを用いた分配アプローチも適用可能である。
図10は、本開示の更に他の一実施形態における集積回路(デバイス)102のライセンスコンポーネントの模式図である。ここでライセンスコンポーネントは、複数のIPブロック206が夫々、第1から第NのIPコア210とライセンス検証回路1002とを含むライセンスシステム1000である。ライセンス検証回路1002は例えば、データを出力するためのシリアルバス1004によりシリアル接続され、また、データを入力するためのシリアルバス1006によりシリアル接続されている。サーキュレータ1007がシリアルバス1004へ、集積回路(デバイス)102の入力ポートからデータを送出し、集積回路(デバイス)102の出力ポートへシリアルバス1006からデータを出力する。
各ライセンス検証回路1002は、自身のデバイス識別子(ID1からIDN)を生成して記憶し、総合的デバイス識別子の一部を構成する。また、いくつかの実施形態では、IPブロック206には直接的には対応しない他のライセンス検証回路1008が備えられ、他のデバイス識別子(IDX)を生成する。集積回路102の総合的デバイス識別子は、例えば各デバイス識別子の合計(ID1+ID2+…+IDN+IDX)である。デバイス識別子IDXは例えば、ID1からIDNを結合した識別子が、確かな固有の識別子を提供するために長さが不足している場合に用いられる。
ライセンスLIC1からLICNは、例えばサーキュレータ1007により、バス1006へ入力される。各ライセンスは、IPブロック206群の内の1つを活性化させる。特に、IPブロック206群の内の1つのデバイス識別子から導出されたキーによって暗号化されたライセンスのみが、IPブロック206によって復号され、IPブロック206の活性化に使用される。
図2、図9及び図10のライセンスシステムは、既知のチップに実装されたシステムを有してもよい。いくつかのケースでは、回路基板は、各々が1又は複数の被保護IPブロックを有する複数のチップを含む。
図11Aは、本開示の一実施形態におけるライセンスシステム1100を模式的に示す回路図である。図11Aに示すように、各々集積回路である第1チップ1102、及び第2チップ1104は夫々、デバイス識別子を生成、及び/又は記憶する回路と、DRMコントローラとを有するライセンスシステム1100を備えている。DRMコントローラは、ライセンス検証に基づき、1又は複数の被保護回路を選択的に活性化させる。メモリである第1ライセンスチップは、第1チップ1102に接続されており、第1チップ1102に対応するライセンスを記憶している。他のメモリである第2ライセンスチップは、第2チップ1104に接続されており、第2チップ1104に対応するライセンスを記憶している。いくつかの実施形態では、第1ライセンスチップ及び第2ライセンスチップは、同一メモリデバイスの一部であってもよい。
図11Bは、本開示の一実施形態におけるライセンスシステム1110を模式的に示す回路図である。図11Bのライセンスシステム1110は、図11Aのライセンスシステム1100の代替例であって、ライセンスを記憶する単一のメモリ1112が、第1チップ、第2チップ等全てのチップ用に、1又は複数のライセンスを記憶している。またDRMコントローラ1114は、各チップへのライセンスを伝達する。いくつかの実施形態では、各チップに対応する異なるデバイス識別子が存在し、デバイス識別子は、PUF(第1チップ)+PUF(第2チップ)+…等のように各チップのデバイス識別子の組み合わせを含んでもよい。又は、単一のデバイス識別子が第1チップ、第2チップ等の全チップに対して使用され、同一のデバイス識別子を共有するようにしてもよい。
図12は、本開示の一実施形態におけるFPGA1202に基づくライセンスシステム1200の模式図である。FPGA1202は、ライセンスをロードするライセンスローダ1204を備える。ライセンスは、FPGA構成ROM1208のライセンスメモリ1206に記憶されている。FPGA構成ROM1208は、デバイスの電源オン時、又はリセット後にFPGAを構成するために使用される。FPGAはまた、ライセンスがロードされるライセンス組み込みメモリ1210を備える。
少なくとも一実施形態で説明したことにより、当業者にとって、多様な代替案、変更及び改良案への想到が容易である。
例えば、当業者にとっては、上述で説明したような対称な暗号化/復号アルゴリズムの実装の代わりに、非対称の暗号化/復号アルゴリズムを使用することができることは自明である。
また、当業者にとって、上述した多様な実施形態を互いに組み合わせたり、代替させたり、など任意の組み合わせで実施可能であることは自明である。
本特許出願は、参照によって本明細書に組み込まれる仏国特許出願15/56418号明細書の優先権を主張している。

Claims (17)

  1. 又は複数の被保護回路を選択的に活性化させるライセンス検証回路を備えるデバイスであって、
    該デバイスの外部から、該デバイスに対応する識別子を得る取得部と、
    第1のライセンスを受信する受信部と、
    前記第1のライセンスを受信した後に、キー導出関数を適用することによって、得られた記識別子からデバイスキーを導出する導出部と、
    1の検証コードを抽出するために前記デバイスキーを用いて前記第1のライセンスを復号する復号部と、
    前記第1の検証コードの検証に基づき、第1の被保護回路に対応する活性化コードレジスタへ活性化コードをロードすることで前記第1の被保護回路を活性化させる活性化部と
    を備えるデバイス
  2. デバイスに対応する前記識別子は、PUF(Physically Unclonable Function)により与えられる
    請求項1に記載のデバイス
  3. デバイスに対応する前記識別子は、暗号化により保護されたインタフェース上で読み出される
    請求項1又は2に記載のデバイス
  4. 前記ライセンス検証回路は、
    前記デバイスキーを導出するキー導出回路及び前記第1のライセンスを復号する暗号回路を備えるライセンスサーバと
    前記第1の被保護回路に対応しており、前記第1の検証コードに基づき該第1の被保護回路を活性化させる第1の制御回路を備える第1のライセンスクライアントと
    第2の被保護回路に対応しており、前記第2の被保護回路に対応する活性化コードレジスタへ第2の活性化コードをロードすることで前記第2の被保護回路を活性化させる第2の制御回路を備える第2のライセンスクライアントとを備える
    請求項1から3のいずれか1項に記載のデバイス
  5. 前記ライセンスサーバは、前記第1の検証コードを前記第1のライセンスクライアントへ送信し、第2の検証コードを前記第2のライセンスクライアントへ送信する
    請求項4に記載のデバイス
  6. 前記第1の検証コードは、前記ライセンスサーバにて、前記第1のライセンスから抽出された追加キーに基づき暗号化され、前記第1のライセンスクライアントにおける前記第1の制御回路へ送信される
    請求項4又は5に記載のデバイス
  7. 前記暗号回路は、前記第1のライセンスから前記追加キーを抽出する
    請求項6に記載のデバイス
  8. 前記第1の検証コードは、IPベンダキーを用いて暗号化された活性化コードを含み、
    前記第1のライセンスクライアントは更に、前記IPベンダキーをメモリに記憶し、前記活性化コードを抽出するためのIPベンダキーに基づいて前記第1の検証コードを復号する
    請求項4から7のいずれか1項に記載のデバイス
  9. 前記第1のライセンスクライアントは
    チャレンジ値を発生させ、発生させた前記チャレンジ値を前記ライセンスサーバへ送信する乱数発生器を含むチャレンジ発生回路と
    少なくとも前記チャレンジ値に基づき第1の応答値を生成する第1応答生成回路と
    を備え、
    前記ライセンスサーバは、前記チャレンジ値を受信し、少なくとも該チャレンジ値に基づき第2の応答値を生成する第2応答生成回路を含み、
    前記第1のライセンスクライアントは更に、前記第1の応答値と第2の応答値とを比較する検証回路を備える
    請求項4に記載のデバイス
  10. 前記第1及び第2応答生成回路は、ハッシュ関数に基づいて前記第1及び第2の応答値を生成する
    請求項9に記載のデバイス
  11. 前記第1のライセンスクライアントは、前記活性化コードの複製を記憶する不揮発性メモリを含み、
    前記第1の制御回路は、前記第1の検証コードの1又は複数の値の検証に基づき活性化コードレジスタに対して前記活性化コードの前記複製をロードする
    請求項4、9又は10のいずれか1項に記載のデバイス
  12. 前記検証コードは、
    ライセンスの時間制限、
    ライセンスの地域制限、
    1又は複数のハードウェアの種類に対するライセンスの制限、
    ライセンスの温度制限、
    ライセンスの電圧制限、
    ライセンスの帯域幅制限、
    ライセンスの速度制限、
    ライセンスの加速度制限、
    ライセンスの湿度制限、
    ライセンスの光量制限、
    ライセンスの磁場制限、及び、
    ライセンスの放射能量制限
    の内のいずれか1つ又は複数を示すDRM(Design Right Management )データを含む
    請求項1から11のいずれか1項に記載のデバイス
  13. 前記活性化コードは複数のビットにより構成されており、
    前記第1の被保護回路は、該第1の被保護回路の信号路を選択的に活性化させる複数の論理ゲートを含み、
    該複数の論理ゲートは、前記第1の被保護回路のノードに接続された第1の入力と、前記活性化コードレジスタに記憶された前記複数のビットの内の1つを受信すべく接続された第2の入力とを含む
    請求項1から12のいずれか1項に記載のデバイス
  14. 請求項1に記載のデバイスにおけるライセンス検証回路を含む第1のIPブロックと
    請求項1に記載のデバイスにおけるライセンス検証回路を含む第2のIPブロックと
    前記第1のIPブロックへ前記第1のライセンスを送信し、前記第2のIPブロックへ第2のライセンスを送信するサーキュレータとを備える
    ライセンス検証システム。
  15. 請求項1に記載のデバイスと、
    ライセンス発生回路と
    を備え、
    前記ライセンス発生回路は、
    前記デバイスのデバイス識別子に基づきデバイスキーを導出するキー導出回路と
    前記デバイスキーを用いて1又は複数の活性化コードを暗号化することによって前記デバイスにおける1又は複数の被保護回路のための第1のライセンスを生成する暗号回路とを備える
    システム
  16. 前記暗号回路は、前記第1のライセンスに含まれるべき追加キーを暗号化する
    請求項15に記載のシステム
  17. デバイスにおける1又は複数の被保護回路を選択的に活性化させるライセンス検証方法であって、
    該デバイスの外部から、該デバイスに対応する識別子を得る処理、
    第1のライセンスを受信する処理、
    前記第1のライセンスを受信した後で、キー導出関数を適用することによって、得られた記識別子からデバイスキーを導出する処理、
    1の検証コードを抽出するために前記デバイスキーを用いて前記第1のライセンスを復号する処理、及び
    前記第1の検証コードの検証に基づき、第1の被保護回路に対応する活性化コードレジスタへ活性化コードをロードすることで前記第1の被保護回路を活性化させる処理
    を実行するライセンス検証方法。
JP2018520030A 2015-07-07 2016-07-06 デバイス、ライセンス検証システム、システム及びライセンス検証方法 Active JP6854285B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1556418 2015-07-07
FR1556418A FR3038757B1 (fr) 2015-07-07 2015-07-07 Systeme et procede d'authentification et de licence ip
PCT/FR2016/051718 WO2017006058A1 (fr) 2015-07-07 2016-07-06 Systeme et procede d'authentification et de licence ip de modules hardware

Publications (2)

Publication Number Publication Date
JP2018523439A JP2018523439A (ja) 2018-08-16
JP6854285B2 true JP6854285B2 (ja) 2021-04-07

Family

ID=54848664

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018520030A Active JP6854285B2 (ja) 2015-07-07 2016-07-06 デバイス、ライセンス検証システム、システム及びライセンス検証方法

Country Status (6)

Country Link
US (1) US11023621B2 (ja)
EP (1) EP3320471B1 (ja)
JP (1) JP6854285B2 (ja)
KR (1) KR20180048592A (ja)
FR (1) FR3038757B1 (ja)
WO (1) WO2017006058A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6922557B2 (ja) * 2017-08-29 2021-08-18 沖電気工業株式会社 ソフトウェア管理装置およびソフトウェア管理方法のプログラム
FR3074933B1 (fr) * 2017-12-07 2021-05-21 Algodone Systeme et procede de licence et de mesure d'utilisation d'un bloc ip
US10706179B2 (en) * 2018-01-10 2020-07-07 General Electric Company Secure provisioning of secrets into MPSoC devices using untrusted third-party systems
US10944557B2 (en) * 2018-04-25 2021-03-09 Nxp B.V. Secure activation of functionality in a data processing system
EP3620917B1 (de) * 2018-09-06 2021-10-27 Siemens Aktiengesellschaft Verwalten von lizenzen für soft-ip auf einem partiell rekonfigurierbaren hardware-system
WO2020190536A1 (en) * 2019-03-21 2020-09-24 Lexmark International, Inc. A device and method for scanning the physical signature data of a physical unclonable function with a smartphone
CN111581607B (zh) * 2020-05-08 2023-08-22 深圳市凯迈生物识别技术有限公司 一种许可证激活的方法
US11681784B2 (en) * 2020-09-03 2023-06-20 Arista Networks, Inc. Hardware license verification

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0583709B1 (en) 1992-08-17 1999-05-06 THOMSON multimedia Unforgeable identification device, identification device reader and method of identification
US5434917A (en) 1993-10-13 1995-07-18 Thomson Consumer Electronics S.A. Unforgeable identification device, identification device reader and method of identification
US6904527B1 (en) 2000-03-14 2005-06-07 Xilinx, Inc. Intellectual property protection in a programmable logic device
JP2004021394A (ja) * 2002-06-13 2004-01-22 Ricoh Co Ltd 情報処理システム
US20100284539A1 (en) * 2009-03-09 2010-11-11 The Regents Of The University Of Michigan Methods for Protecting Against Piracy of Integrated Circuits
US8732468B2 (en) 2009-03-09 2014-05-20 The Regents Of The University Of Michigan Protecting hardware circuit design by secret sharing
US8402401B2 (en) * 2009-11-09 2013-03-19 Case Western University Protection of intellectual property cores through a design flow
TWI419535B (zh) * 2009-11-10 2013-12-11 Univ Nat Taiwan 矽智財保護電路與其控制方法
US10771448B2 (en) * 2012-08-10 2020-09-08 Cryptography Research, Inc. Secure feature and key management in integrated circuits
US9742563B2 (en) * 2012-09-28 2017-08-22 Intel Corporation Secure provisioning of secret keys during integrated circuit manufacturing
US8938792B2 (en) * 2012-12-28 2015-01-20 Intel Corporation Device authentication using a physically unclonable functions based key generation system
US9071428B2 (en) * 2013-03-15 2015-06-30 University Of Connecticut Methods and systems for hardware piracy prevention
US9436848B2 (en) * 2013-05-30 2016-09-06 Cryptography Research, Inc. Configurator for secure feature and key manager
US9569601B2 (en) * 2015-05-19 2017-02-14 Anvaya Solutions, Inc. System and method for authenticating and enabling functioning of a manufactured electronic device

Also Published As

Publication number Publication date
US11023621B2 (en) 2021-06-01
WO2017006058A1 (fr) 2017-01-12
FR3038757B1 (fr) 2017-08-11
FR3038757A1 (ja) 2017-01-13
EP3320471B1 (fr) 2021-10-20
EP3320471A1 (fr) 2018-05-16
KR20180048592A (ko) 2018-05-10
JP2018523439A (ja) 2018-08-16
US20180196965A1 (en) 2018-07-12

Similar Documents

Publication Publication Date Title
JP6854285B2 (ja) デバイス、ライセンス検証システム、システム及びライセンス検証方法
US12047372B2 (en) Resource access management and secure authorization systems and methods
Zhang et al. Recent attacks and defenses on FPGA-based systems
US9584311B2 (en) Decrypting data
Aman et al. Position paper: Physical unclonable functions for iot security
CN104252881B (zh) 半导体集成电路及系统
Maes et al. A pay-per-use licensing scheme for hardware IP cores in recent SRAM-based FPGAs
JP2010527219A (ja) 物理的に複製不可能な機能を用いて電子機器のセキュリティを電子的に確保する方法およびシステム
TWI517653B (zh) 電子裝置及密碼材料供應之方法
CN110995685B (zh) 数据的加解密方法、装置、系统及存储介质
Zhang et al. A survey on security and trust of FPGA-based systems
Zhang et al. A pragmatic per-device licensing scheme for hardware IP cores on SRAM-based FPGAs
US8774407B2 (en) System and method for executing encrypted binaries in a cryptographic processor
TWI763379B (zh) 安全積體電路晶片裝置及其保護其方法
JP2011150524A (ja) ソフトウェア実行システム
Güneysu Using data contention in dual-ported memories for security applications
US11562050B2 (en) System and method for licensing and for measuring use of an IP block
Mohammad et al. Required policies and properties of the security engine of an SoC
Amelino et al. An IP core remote anonymous activation protocol
US10015143B1 (en) Methods for securing one or more license entitlement grants and devices thereof
KR101656092B1 (ko) 비동기적인 인증을 갖는 보안 컴퓨팅 시스템
Adi et al. VLSI design exchange with intellectual property protection in FPGA environment using both secret and public-key cryptography
Thompson UDS Security Access for Constrained ECUs
Guajardo et al. Secure IP-block distribution for hardware devices
Park et al. Debug port protection mechanism for secure embedded devices

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20180820

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180820

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190520

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200623

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200923

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: 20210302

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210315

R150 Certificate of patent or registration of utility model

Ref document number: 6854285

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250