JP2014072827A - 論理回路、コード発生回路、半導体装置、認証装置、コード発生方法および認証方法 - Google Patents

論理回路、コード発生回路、半導体装置、認証装置、コード発生方法および認証方法 Download PDF

Info

Publication number
JP2014072827A
JP2014072827A JP2012219351A JP2012219351A JP2014072827A JP 2014072827 A JP2014072827 A JP 2014072827A JP 2012219351 A JP2012219351 A JP 2012219351A JP 2012219351 A JP2012219351 A JP 2012219351A JP 2014072827 A JP2014072827 A JP 2014072827A
Authority
JP
Japan
Prior art keywords
code
data
output
circuit
input
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.)
Pending
Application number
JP2012219351A
Other languages
English (en)
Inventor
Tooru Morisaki
徹 森▲崎▼
Yasuhiko Inada
泰彦 稲田
Tomoaki Inaoka
智彰 稲岡
Nobuaki Tomisato
信彰 冨里
Yosuke Terada
洋介 寺田
Hideaki Suzuki
英明 鈴木
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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2012219351A priority Critical patent/JP2014072827A/ja
Publication of JP2014072827A publication Critical patent/JP2014072827A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】半導体装置の複製を難しくすると共に、認証に必要な秘密認証コードの漏洩を難しくして、より確実な認証を実現するのに使用する論理回路の実現。
【解決手段】複数のトランジスタPTr11-PTr81,NTr11-NTr81と、複数の入力ノードA,S,Rと、出力ノードX1,X2と、を有し、複数の入力ノードに入力される複数の入力データに対して、所定の論理演算により決定される出力データを出力ノードに出力し、所定の論理演算によれば、複数の入力データを所定の状態にすると、出力データは論理的には不定状態となり、複数のトランジスタは、駆動能力の異なるトランジスタWP,SP,SN,WNを含み、少なくとも1つの出力データは、論理的には不定状態であっても、複数のトランジスタの駆動能力が異なることにより、所定の出力データとなる論理回路。
【選択図】図3

Description

本発明は、論理回路、コード発生回路、半導体装置、認証装置、暗号処理装置、コード発生方法および認証方法に関する。
半導体装置は、内部に集積回路を搭載しており、パッケージを開封して回路パターンを複写することで模造品を作ることができる。不正に模造品が製造されるのを防止するために、半導体装置の複製を難しくする技術が求められている。
半導体装置の複製を難しくする1つの技術は、単に回路パターンを複写しただけでは正常に動作しないようにすることである。例えば、回路を形成するトランジスタの動作特性を変えることが提案されており、回路の大部分をエンハンスメント型トランジスタで形成し、一部をディプレション型トランジスタで形成することが提案されている。このような回路は、パターンの複写により類似の回路が形成できても、トランジスタの動作特性(閾値電圧)が分からなければ正常に動作しないため、不正な複製品作成の意欲を抑制する効果がある。さらに、このような回路は、複製に要する労力が大きくなり、この点でも不正な複製品作成の意欲を抑制する。しかし、パターンの複写により類似の回路を再現した場合、動作特性が異なると正常に動作しない部分を見つけ出すことが可能であり、その部分に限ってトランジスタの動作特性を解析するのは比較的容易に行えるので、複製を防止する効果は十分でない。
半導体装置の複製を難しくする別の技術は、半導体装置に認証コードを記憶しておき、認証コードを認証装置に出力し、認証コードが正規であることが判明した時のみ、その半導体からの動作を受け付けるようにすることである。また、半導体装置は、動作時に記憶している認証コードと外部から入力される基準コードの一致を判定する認証回路を有し、一致の判定が得られた時にのみ動作状態になるようにする。以上のようにすることで、複製品を作っても認証コードが分からなければ半導体装置は動作しないので、不正な複製品作成を抑制する効果がある。
しかし、光学的に回路が読み取られる場合、論理回路で構成される認証コードおよび認証回路もすべて複製されるという問題があった。その対策として、不揮発メモリに入った鍵などの重要データを読み取られにくいレイアウトにすることが知られている。また、動作特性を複製しにくいアナログ素子を搭載するという方法が知られている。
特開平9−205148号公報 特開平1−129328号公報 特開平9−92727号公報
上記のように、半導体装置の複製を難しくする技術が知られており、それらの技術は、不正な複製品の出現を抑制する上で有効であるが、より一層複製を難しくすることが求められている。
実施形態の論理回路、コード発生回路、半導体装置、認証装置、暗号処理装置、コード発生方法および認証方法は、半導体装置の複製を難しくすると共に、認証に必要な秘密認証コードの漏洩を難しくして、より確実な認証を実現する。
実施形態の第1の観点によれば、複数のトランジスタと、複数の入力ノードと、少なくとも1つの出力ノードと、を有する論理回路が提供される。論理回路は、複数の入力ノードに入力される複数の入力データに対して、所定の論理演算により決定される少なくとも1つの出力データを、少なくとも1つの出力ノードに出力する。論理回路では、所定の論理演算によれば、複数の入力データを所定の状態にすると、少なくとも1つの出力データは論理的には不定状態となる。複数のトランジスタは、駆動能力の異なるトランジスタを含み、少なくとも1つの出力データは、論理的には不定状態であっても、複数のトランジスタの駆動能力が異なることにより、所定の出力データとなる。
実施形態の第2の観点によれば、コードを発生するコード発生回路が提供される。コード発生回路は、少なくとも1つのコード要素発生回路を有する。コード要素発生回路は、複数のトランジスタと、複数の入力ノードと、少なくとも1つの出力ノードと、を有する。コード発生回路では、複数の入力ノードに入力される複数の入力データに対して、所定の論理演算により決定される少なくとも1つの出力データを、少なくとも1つの出力ノードに出力する。所定の論理演算によれば、複数の入力データを所定の状態にすると、少なくとも1つの出力データは論理的には不定状態となる。複数のトランジスタは、駆動能力の異なるトランジスタを含む。少なくとも1つの出力データは、論理的には不定状態であっても、複数のトランジスタの駆動能力が異なることにより、所定の出力データとなる。コード発生回路は、コードを、各コード要素発生回路の複数の入力データを所定の状態にして論理的には不定状態になるようにした時の少なくとも1つのコード要素発生回路の出力データから生成する。
実施形態の第3の観点によれば、コードを発生するコード発生方法が提供される。コード発生方法は、少なくとも1つのコード要素発生回路の出力データから、コードを生成する。各コード要素発生回路は、複数のトランジスタと、複数の入力ノードと、少なくとも1つの出力ノードと、を有する。コード発生回路では、複数の入力ノードに入力される複数の入力データに対して、所定の論理演算により決定される少なくとも1つの出力データを、少なくとも1つの出力ノードに出力する。所定の論理演算によれば、複数の入力データを所定の状態にすると、少なくとも1つの出力データは論理的には不定状態となる。複数のトランジスタは、駆動能力の異なるトランジスタを含む。少なくとも1つの出力データは、論理的には不定状態であっても、複数のトランジスタの駆動能力が異なることにより、所定の出力データとなる。コード発生方法は、各コード要素発生回路の複数の入力データを所定の状態にして論理的には不定状態になるようにした時の少なくとも1つのコード要素発生回路の出力データからコードを生成する。
第1の観点の論理回路は、通常の動作を行うため、コードを記憶している部分であると認識されにくい。しかも、第1の観点の論理回路は、論理的に不定状態にすると、複数のトランジスタの駆動能力の違いにより所定の出力データを出力するので、回路パターンで所定のデータを解析することが難しい。
第2の観点のコード発生回路は、第1の観点の論理回路を利用してコードを発生するため、コード発生回路であると認識されにくく、光学的な回路パターンの解析でコードを解読するのが難しい。
図1は、一般的なRSラッチ回路の回路図である。 図2は、第1実施形態の論理回路の回路図である。 図3は、拡張版RSラッチ回路のトランジスタレベルの回路図である。 図4は、拡張版RSラッチ回路の認識データ出力動作を説明する図である。 図5は、拡張版RSラッチ回路の認識データ出力動作を説明する図である。 図6は、拡張版RSラッチ回路を表す記号を示す。 図7は、拡張版RSラッチ回路の変形例の回路図を示す図である。 図8は、第1実施形態の拡張版RSラッチ回路を使用して不正な複製を防止する機能を形成した半導体装置を、正規品であるか否か認証する第2実施形態の認証システムを示す図である。 図9は、第2実施形態の認証システムにおける認証処理を示すフローチャートである。 図10は、第2実施形態の認証システムにおける認証処理を示すタイムチャートである。 図11は、第3実施形態の認証システムが認証対象とする半導体装置に含まれるスキャン機能を付加した拡張版スキャンフリップフロップの回路図、および拡張版スキャンフリップフロップを表すシンボルを示す。 図12は、第3実施形態の認証システムを示す図である。 図13は、第3実施形態の認証システムにおける認証処理を示すフローチャートである。 図14は、第3実施形態の認証システムにおける認証処理を示すタイムチャートである。 図15は、第3実施形態の認証システムの変形例を示す図である。 図16は、第3実施形態の認証システムの変形例における認証処理を示すタイムチャートである。 図17は、第4実施形態の認証システムにおける認証対象の半導体装置を示す図である。 図18は、第4実施形態の半導体装置における認証処理を示すフローチャートである。 図19は、第5実施形態の認証システムを示す図である。 図20は、第5実施形態の認証システムにおける認証処理を示すタイムチャートである。 図21は、第6実施形態の認証システムを示す図である。 図22は、第6実施形態の認証システムにおける半導体装置の構成を示す図である。 図23は、第7実施形態の認証システムを示す図である。 図24は、第7実施形態の認証システムにおける認証動作を示すフローチャートである。 図25は、第8実施形態の半導体装置を示す図である。 図26は、コード記憶回路を使用するホストの構成を示す図であり、(A)が第9実施形態の認証システムの場合の例を、(B)が第10実施形態の暗号処理システムの場合の例を示す。 図27は、第9および第10実施形態において、基準コード記憶回路または暗号コード記憶回路が、基準コードまたは暗号コードを記憶する形態を説明する図である。
前述のように、光学的に回路パターンを解析して回路を複製し、その回路図を再現することが可能である。そのため、半導体装置の複製を防止し、内部に記憶した秘密のコードを知られないためには、光学的な回路パターンの解析だけでは、回路を複製し、回路図を再現することが難しいことが望ましい。
さらに、コードを記憶する回路部分や、単なる複製では正常に動作しないようにしている回路部分が特定されにくいようにすることが望ましい。これは、そのような回路部分の配置場所が特定しにくいと共に、動作時期などからも特定が難しいことが望ましい。例えば、不揮発性メモリにコードを記憶する場合、不揮発性メモリの位置が特定されると、複製のための解析に要する労力は大幅に少なくなる。また、認証動作は、半導体装置の起動時になどにのみ行うのが一般的であるが、そのような場合にのみ動作する回路部分が特定されると、解析に要する労力は大幅に少なくなる。
以下に説明する実施形態では、光学的な回路パターンの解析が難しく、コードを記憶する回路部分の特定が難しい回路および半導体装置、およびそれを利用した認証システムが開示される。
第1実施形態では、入力データに対して所定の論理演算により決定される出力データを出力するが、入力データを所定の状態にすると、出力データが論理的には不定状態になる論理回路を利用する。さらに、第1実施形態の論理回路は複数のトランジスタを含み、複数のトランジスタは駆動能力の異なるトランジスタを含む。第1実施形態の論理回路では、上記のように入力データを所定の状態にして出力データが論理的には不定状態であっても、複数のトランジスタの駆動能力が異なることにより、所定の出力データとなる。
言い換えれば、第1実施形態の論理回路は、通常時には所定の論理演算を行う論理回路として動作する。このような論理回路では、一般に、出力データが不定状態にならないように、出力データが論理的には不定状態になる入力データを入力することを禁止している。第1実施形態の論理回路は、この不定状態を利用する。半導体装置の製造プロセスでトランジスタを形成する場合に、注入イオン濃度が異なることにより、トランジスタの駆動能力が異なることが知られている。このような論理回路では、出力データが論理的には不定状態になる入力データを入力した場合に、出力データは不定状態になるが、トランジスタの駆動能力の違いにより、出力データは確実に所定の値になる。したがって、トランジスタの注入イオン濃度を、不定状態にした時に出力データが所定の値になるように設定した場合、出力データが論理的には不定状態にする入力データを入力すれば、所定の出力データが得られることになる。実施形態では、コードをこの所定の出力データに対応付けて記憶する。
第1実施形態の論理回路は、注入イオン濃度を異ならせてトランジスタの駆動能力を異ならせているので、光学的に回路を読み取っただけでは所定のデータを知ることはできない。さらに、第1実施形態の論理回路は、通常時には所定の論理演算を行う論理回路として動作しており、コードに関係する情報を記憶している部分であると特定するのが難しい。
以下、出力が不定状態を取り得る論理回路として、RSフリップフロップ回路(RSラッチ回路)を利用した例を説明するが、使用できる論理回路はこれに限定されず、出力が不定状態を取り得る論理回路であればよい。
図1は、一般的なRSラッチ回路の回路図である。
RSラッチ回路については広く知られているので詳しい説明は省略するが、出力データX1およびX2は、一方が“H”であれば他方は“L”である相補型データである。出力データX1およびX2が同じ値になる状態、具体的には入力データR=“H”および入力データS=“H”で、X1=“H”およびX2=“H”となるため、前記の相補型データという条件は満たさなくなる。さらに、入力データR=“H”および入力データS=“H”で、X1=“H”およびX2=“H”とした後、入力データR=“L”および入力データS=“L”とすると、出力データがどのような状態になるか一定でないという問題があるため、一般のラッチでは禁止入力とされている。したがって、仕様上では、そのような入力データ(R=“H”およびS=“H”)を入力しないようにすることが求められている。
図2は、第1実施形態の論理回路の回路図である。
図2に示すように、第1実施形態の論理回路は、4個のNANDゲートNAND1〜NAND4と、4個のインバータInv1〜Inv4と、を有し、図示のように接続されている。NAND1およびNAND2とInv1およびInv2は、図1の一般的なRSラッチ回路を形成している。NAND3は、入力データSをInv3で反転したデータ/Sとコード出力制御データ“A”を入力とし、/SとAのNANDである出力データをInv1に出力する。また、NAND4は、入力データRをInv3で反転したデータ/Rとコード出力制御データ“A”を入力とし、/RとAのNANDである出力データをInv2に出力する。図2に示した第1実施形態の論理回路を、ここでは拡張版RSラッチ回路と称する。
図3は、拡張版RSラッチ回路のトランジスタレベルの回路図である。図示のように、インバータおよびNANDゲートは、広く知られた回路構成を有する。NAND1は、PTr11およびPTr12と、NTr11とNTr12と、で形成される。NAND2は、PTr21およびPTr22と、NTr21とNTr22と、で形成される。Inv1は、PTr31と、NTr31と、で形成される。Inv2は、PTr61と、NTr61と、で形成される。NAND3は、PTr41およびPTr42と、NTr41とNTr42と、で形成される。NAND4は、PTr71およびPTr72と、NTr71とNTr72と、で形成される。Inv3は、PTr51と、NTr51と、で形成される。Inv4は、PTr81と、NTr81と、で形成される。ここで、NANDゲートNAND1は、相対的に駆動能力の弱い2個のPchトランジスタPTr11およびPTr12(WPで示す)と、相対的に駆動能力の強い2個のNchトランジスタNTr11およびNTr22(SNで示す)と、を有する。また、NANDゲートNAND2は、相対的に駆動能力の強い2個のPchトランジスタPTr21およびPTr22(SPで示す)と、相対的に駆動能力の弱い2個のNchトランジスタNTr21およびNTr22(WNで示す)と、を有する。Inv1およびInv2の出力が共に“L(Low)”になると、X1およびX2は共に“H”になる。その後、Inv1およびInv2の出力を共にHにすると、論理的には前の状態を維持するはずである、すなわちX1およびX2は共に“H”である。しかし、この状態ではデータの衝突が発生し、論理的には不定の状態であるが、実際には駆動能力の違いにより、確実にX1=“L”、X2=“H”にすることができる。
第1実施形態では、トランジスタの駆動能力の強弱は、ここでは、製造工程において、注入イオン濃度を調整することにより行う。駆動能力の強いトランジスタと弱いトランジスタで、どのような注入イオン濃度の差を設けるかは、プロセスに応じて適宜決定され、製造バラツキ等を考慮して、上記の出力データを不定状態にした時に、出力データが確実に所望の値になるように設定する。なお、図3と逆の駆動能力に設定すると、X1=“H”、X2=“L”にすることができる。詳しくは、NAND1は、駆動能力の強い2個のPchトランジスタと、駆動能力の弱い2個のNchトランジスタと、を有し、NAND2は、駆動能力の弱い2個のPchトランジスタと、駆動能力の強い2個のNchトランジスタと、を有する。Inv1およびInv2の出力が共に“L”になると、X1およびX2は共に“H”になる。その後、Inv1およびInv2の出力が共に“H”になっても、X1およびX2が共に“H”の状態を維持せず、確実にX1=“H”、X2=“L”にすることができる。このように、トランジスタの駆動能力の強弱を設定することにより、論理的には出力データが不定状態になる時でも、所定の出力データを得ることができる。ここでは、所定のデータを認証データと称する。
拡張版RSラッチ回路では、A=“H”の時、図1に示した一般のRSラッチ回路として動作する。
A=“H”の時、S=“H”、R=“L”で、X1=“H”、X2=“L”となる。これをセット(set)動作と称する。
A=“H”の時、S=“L”、R=“H”で、X1=“L”、X2=“H”となる。これをリセット(reset)動作と称する。
A=“H”の時、S=“L”、R=“L”で、前の情報を保持する。
A=“H”の時、S=“H”、R=“H”にすることは、一般のラッチ動作では禁止されている。
次に、拡張版RSラッチ回路で、認証データを出力する方法を説明する。
図4および図5は、図3の拡張版RSラッチ回路の認証データ出力動作を説明する図である。図4および図5で、実線は“H”の状態の信号線を、破線は“L” の状態の信号線を、それぞれ示す。
認証データを出力させるときは、S=“L”、R=“L”(前値保持状態)にしておく。この状態で、A=“L”とすると、図4に示すように、X1=“H”、X2=“H”となる。さらに続けて、図5に示すように、A=“L”から“H”とすると、論理的には、X1=“X”、X2=“X”、すなわちX1=“H”、X2=“H”となるが、トランジスタの駆動能力が上記のように異なるため、X1=“L”、X2=“H”となる。詳細に説明すると、図4のようにA=“L”でX1=“H”およびX2=“H”である状態から、Aを“L”から“H”に変化すると、ラッチ部で、図5に示すように出力データの衝突が発生する。ここで、Nchトランジスタの駆動能力の強い方の出力データX1=“L”となり、Pchトランジスタの駆動能力の強い方の出力データX2=“H”となる。
図6は、拡張版RSラッチ回路を表す記号を示す。図示のように複数の入力データS、RおよびAを受けて、出力データX1およびX2を出力する。
図7は、拡張版RSラッチ回路の変形例の回路図を示す図である。図7の回路では、図2の回路からInv3およびInv4を除いている。したがって、図7の回路の真理値表は、図2の回路と異なるが、容易に分かるので、説明は省略する。
図8は、第1実施形態の拡張版RSラッチ回路を使用して不正な複製を防止する機能を形成した半導体装置を、正規品であるか否か認証する第2実施形態の認証システムを示す図である。
図8に示すように、第2実施形態の認証システムは、ホスト10と、認証対象の半導体装置20と、を有する。ホスト10は、半導体装置20から送られる認証コードが所定の基準コード(REFCODE)と対応するか判定して、認証対象の半導体装置20が正規品であるか否か認証する。
半導体装置20は、通常の回路動作を行うメインロジック21と、複数の拡張版RSラッチ回路221〜228と、拡張版RSラッチ回路221〜228に入力する入力データを切り替えるセレクタ群を有する。半導体装置20は、認証動作時に、外部から制御信号MODE、SET、RESETおよびINを受ける。SETは図2の“S”に、RESETは“R”に、INは“A”に対応する信号である。セレクタ群は、各拡張版RSラッチ回路に対応して3個のセレクタM11−M13、M21−M23、…を有する。3個のセレクタは、MODEが通常動作を示す時には、メインロジック21からのデータが対応する拡張版RSラッチ回路に入力し、MODEが認証動作を示す時には、SET、INおよびRESETが対応する拡張版RSラッチ回路に入力するように切り替える。
拡張版RSラッチ回路221〜228は、認証動作に上記のように認証データX1またはX2を出力し、それらが半導体装置20からOUT1、…、OUT8として出力される。ここでは、8個の認証データを合わせて認証コードが形成される。OUT1、…、OUT8は、半導体装置20の出力端子からホスト10の入力端子に送られる。図8に示すように、拡張版RSラッチ回路221〜228のX1とX2のいずれかを認証コードとして利用するかは任意である。
なお、図示を容易にするために、拡張版RSラッチ回路221〜228は、メインロジック21外に配置されるように示したが、メインロジック21内に回路の一部として設けられることが望ましい。
例えば、半導体装置20は、ホスト10を含むシステムの一部に含まれ、システム全体で所定の機能を実現する。半導体装置20は、システムの起動時または半導体装置20の起動時、または定期的に正規品であるか認証され、正規品であればシステムの一部として動作するが、非正規品であると認証された場合には、システムのほかの部分へのアクセスが制限される。これにより、システムは正常に動作しなくなる。また、半導体装置20が非正規品であると認証された場合には、ホスト10などのシステムのほかの部分が、「半導体装置20が非正規品である」ことを示すメッセージをユーザに報知する。
また、例えば、半導体装置20は、ホスト10に回線等を介してアクセスする認証対象の製品に含まれる。製品は、アクセス時に半導体装置20の認証コードをホスト10に出力し、半導体装置20が正規品であると認証された時のみ、所定のサービスが受けられ、非正規品と認証された場合には、所定のサービスの提供が拒否される。半導体装置20またはそれを含む製品と、ホスト10の間の認証コードの送信は、半導体装置20またはそれを含む製品を、ホスト10に有線信号経路で接続して行っても、専用または汎用の無線信号経路で接続して行ってもよい。
図9は、第2実施形態の認証システムにおける認証処理を示すフローチャートである。また、図10は、第2実施形態の認証システムにおける認証処理を示すタイムチャートである。図9および図10を参照して、第2実施形態における認証処理を説明する。
ステップS11は、図10のタイムチャートの(1)の期間で、通常動作モードであり、MODE=“L”であり、セレクタ群M11〜M23は、メインロジック21からのデータが拡張版RSラッチ回路221〜228に入力するように選択する。ここで、拡張版RSラッチ回路221〜228の入力データAには、メインロジック21から固定値“H”が入力される。したがって、SET、RESETおよびINは、“H”でも、“L”でもよい。OUT1〜OUT8は、メインロジック21の動作に応じて変化する。
ステップS12では、図10のタイムチャートの(2)のタイミングで、認証モードに切り替えられ、MODEは“L”から“H”に変化し、IN=“H”に設定される。これにより、セレクタ群M11〜M23は、SET、RESETおよびINが、拡張版RSラッチ回路221〜228に、S、RおよびAとして入力するように選択する。IN=“H”のためA=“H”であり、拡張版RSラッチ回路221〜228は、RSラッチとして動作する。
ステップS13では、図10のタイムチャートの(3−1)〜(3−4)に示すように、SETおよびRESETを適宜設定して、拡張版RSラッチ回路221〜228にRSラッチ動作を行わせる。これは、MODEを“H”に変化させた後、どの時点で認証コードの出力を行うかを分かりにくくするためであり、サイクル数は任意に設定すればよい。図10では、(3−1)でセット動作を行い、(3−2)でその状態をラッチし、(3−3)でリセット動作を行い、(3−4)でその状態をラッチしている。
ステップS14では、図10のタイムチャートの(4)に示すように、IN=“L”として認証コードの出力のためのプリセット動作を行い、X1およびX2を“H”とする。この時、MODEは“H”を維持し、SおよびRは“L”とする。
ステップS15では、図10のタイムチャートの(5)に示すように、IN=“H”とし、SおよびRは“L”とするので、駆動能力の違いにより拡張版RSラッチ回路221〜228の出力データX1およびX2が所定のデータとなり、認証コードが出力される。この時、MODEは“H”を維持する。
ステップS16では、拡張版RSラッチ回路221〜228の出力データX1およびX2が所定のデータとなり、認証コードのパラレルデータOUT1〜OUT8として出力されるので、ホスト10が、基準コードと一致するか確認する認証処理を行う。
ステップS17では、ステップS11からS17を複数回繰り返し、複数回すべてで、ホスト10が、認証コードと基準コードが一致することを確認すると、正規品であるとの認証が終了する。もし一回でも認証コードと基準コードが一致しない場合には、非正規品であると判定する。
ここで、第1実施形態の拡張版RSラッチ回路を使用していれば、認証コードは常に同じであり、上記の複数回の認証コードと基準コードの一致判定はすべて一致となる。しかし、第1実施形態の拡張版RSラッチ回路を使用していない場合、言い換えれば、トランジスタの駆動能力が正しく設定されていない場合、拡張版RSラッチ回路221〜228の出力データX1およびX2は一定でない。そのため、複数回の認証コードと基準コードの一致判定ですべて一致することはないので、非正規品であると判定することができる。
なお、図10のタイムチャートでは、(3−1)〜(3−4)で、SETおよびRESETを適宜設定して、拡張版RSラッチ回路221〜228にRSラッチ動作を行わせている。そこで、このRSラッチ動作による状態を外部に出力し、それをホスト10で確認して、拡張版RSラッチ回路221〜228が正常に動作していることを確認するようにしてもよい。具体的には、図10の(3−2)のセット動作の状態を維持している時、および(3−4)のリセット動作の状態を維持している時の出力データOUT1〜OUT8について、ホスト10で確認する。
さらに、認証コードの生成に使用しない第1実施形態の拡張版RSラッチ回路を、メインロジック21を形成する回路要素として使用してもよい。また、認証コードの生成にのみ使用する第1実施形態の拡張版RSラッチ回路で、メインロジック21を形成する回路要素として使用しないものを設けてもよい。これらにより、認証コードの生成に使用する拡張版RSラッチ回路の特定を一層難しくすることができる。
図11の(A)は、第3実施形態の認証システムが認証対象とする半導体装置に含まれるスキャン機能を付加した拡張版RSラッチ回路(以下、拡張版スキャンフリップフロップと称する)の回路図である。図11の(B)は、拡張版スキャンフリップフロップを表すシンボルを示す。
図11の(A)に示すように、拡張版スキャンフリップフロップは、第1実施形態の拡張版RSラッチ回路EXRSと、2個のAND回路AND1およびAND2と、1個のインバータInv5と、セレクタS3と、を有する。拡張版スキャンフリップフロップは、通常動作時には、セレクタS3は、選択信号Sに応じて入力データDを選択するように動作し、Aは“H”で、EXRSは一般のスキャンフリップフロップとして動作する。拡張版スキャンフリップフロップは、認証モード時には、セレクタS3は、選択信号Sに応じてスキャン入力SIを選択するように動作し、クロックCKおよびAを制御して、認証データの読み出しと、読み出した認証データのスキャン動作を行う。
図12は、第3実施形態の認証システムを示す図である。第3実施形態の認証システムは、図11の拡張版スキャンフリップフロップを使用して不正な複製を防止する機能を形成した半導体装置を、正規品であるか否か認証する。
図12に示すように、第3実施形態の認証システムは、ホスト10と、認証対象の半導体装置20と、を有する。ホスト10は、第2実施形態と同じであるが、認証コードがシリアルデータとして入力されることが異なる。
半導体装置20は、図11の拡張版スキャンフリップフロップ231〜234を使用したことが、第2実施形態の認証対象の半導体装置20と異なる。拡張版スキャンフリップフロップ231〜234を使用するため、第2実施形態で設けたセレクタは不要である。拡張版スキャンフリップフロップ231〜234は、入力データDとしてメインロジック21からのデータが入力され、選択信号S、クロック信号CKおよび制御信号Aとして外部から制御信号MODE、CKおよびINが入力される。また、初段の拡張版スキャンフリップフロップ231のスキャン入力SIに外部からのスキャン入力ISIが入力される。さらに、拡張版スキャンフリップフロップ232〜234は、前段の拡張版スキャンフリップフロップの出力データX1またはX2が入力される。認証モード時、拡張版スキャンフリップフロップ231〜234は、シフトレジスタとして動作し、生成した認証コードをシリアルデータとして伝送し、ホスト10に出力する。図12の例では、拡張版スキャンフリップフロップ231の出力データX1が次段に、拡張版スキャンフリップフロップ232〜234の出力データX2が次段(出力端子)に、それぞれ出力される。
図13は、第3実施形態の認証システムにおける認証処理を示すフローチャートである。また、図14は、第3実施形態の認証システムにおける認証処理を示すタイムチャートである。図13および図14を参照して、第3実施形態における認証処理を説明する。
ステップS21は、図14のタイムチャートの(1)の期間で、通常動作モードである。この時、MODE=“L”であり、IN=“H”であり、各拡張版スキャンフリップフロップのセレクタS3は、メインロジック21からのデータが各拡張版スキャンフリップフロップに入力するように選択する。拡張版スキャンフリップフロップ231〜234の出力X11、X22、X32およびX42は、メインロジック21の動作に応じて変化する。
ステップS22では、図14のタイムチャートの(2)のタイミングで、認証モードに切り替えられ、MODEは“L”から“H”に変化し、INは“H”が維持される。これにより、各拡張版スキャンフリップフロップのセレクタS3は、SIを選択するように切り替えられる。IN=“H”のためA=“H”であり、拡張版スキャンフリップフロップ231〜234は、通常のスキャンフリップフロップとして動作する。
ステップS23では、図14のタイムチャートの(3)の期間で、CKを周期的に変化させ、SIを適宜設定して、拡張版スキャンフリップフロップ231〜234にRSラッチ動作を行わせる。前述のように、この動作は、MODEを“H”に変化させた後、どの時点で認証コードの出力を行うかを分かりにくくするためであり、サイクル数は任意に設定すればよい。
ステップS24では、図14のタイムチャートの(4)に示すように、IN=“L”として認証コードの出力のためのプリセット動作を行い、各拡張版スキャンフリップフロップのX1およびX2を“H”とする。この時、MODEは“H”を維持し、SIは“L”とする。
ステップS25では、図14のタイムチャートの(5)に示すように、IN=“H”に変化させる。この時、SIは“L”であるので、駆動能力の違いにより拡張版スキャンフリップフロップ231〜234の出力データX11、X22、X32およびX42が所定のデータとなる。そして、CKを周期的に変化させ、拡張版スキャンフリップフロップ231〜234がシフト動作を行い、出力データX11、X22、X32およびX42をシリアルデータとして出力する。この間、MODEは“H”に維持され、SIはどのような値でもよい。
ステップS26では、上記のシリアルデータが、認証コードとして出力されるので、ホスト10が、基準コードと一致するか確認する認証処理を行う。
ステップS27では、ステップS21からS27を複数回繰り返し、複数回すべてで、ホスト10が、認証コードと基準コードが一致することを確認すると、正規品であるとの認証が終了する。もし一回でも認証コードと基準コードが一致しない場合には、非正規品であると判定する。複数回処理を繰り返す理由は、第2実施形態と同じ理由である。
図15は、第3実施形態の認証システムの変形例を示す図である。この変形例では、半導体装置20は、第3実施形態と同様に、図11の拡張版スキャンフリップフロップ231〜234を使用するが、認証コードの出力は、パラレルデータとして行うことが異なる。認証コードのパラレルデータは、通常動作時にはメインロジック21からの出力データを外部に出力するデータ入出力端子を利用して行う。そのため、メインロジック21からの出力データと認証コードのパラレルデータの一方を選択してデータ入出力端子に出力する複数(ここでは4個)のセレクタM1〜M4を設ける。セレクタM1〜M4は、MODEに応じて選択を切り替え、通常動作時にはメインロジック21からの出力データを選択し、認証モード時には認証コードのパラレルデータを選択する。
図16は、図15の第3実施形態の認証システムの変形例における認証処理を示すタイムチャートである。図16の(4)で、第3実施形態と同様にプリセット動作を行い、認証コードのパラレルデータを生成した後、(5)でパラレルデータとして外部に出力することが、図14のタイムチャートと異なる。第3実施形態の認証システムの変形例では、認証コードをパラレルデータとして出力するので、認証処理に要する時間を短くできる。
上記の第2実施形態、第3実施形態および変形例の認証システムでは、半導体装置内で発生した認証コードは、外部のホストに送られ、ホストで認証処理が行われた。認証の結果、半導体装置が不正規品の場合には、ホストは、半導体装置またはそれを含む装置からのアクセスを拒否するようにした。
一方、半導体装置内部に認証コードの判定回路設け、不正にコピーされた場合には、半導体装置自体が動作しないようにすることも可能である。次に説明する第4実施形態は、半導体装置内部に認証コードの判定回路を設けた例である。
図17は、第4実施形態の認証システムにおける認証対象の半導体装置を示す図である。第4実施形態の半導体装置20は、内部に認証コード判定回路24を設け、読み出した認証コードを外部に出力せずに、半導体装置20の内部で正規の認証コードであるか判定することが、第3実施形態の変形例と異なる。図17では、図11の拡張版スキャンフリップフロップ231〜234を使用し、読み出した認証データはパラレルデータとして認証コード判定回路24に送られるが、図6の拡張版RSラッチ回路を使用することも可能である。
第4実施形態の半導体装置20は、図17に示すように、内部に基準コードを記憶するREFCODE記憶回路25、を有する。REFCODE記憶回路25は、製造段階で、ハードウエアにより、例えばROMや不揮発メモリなどの形式で作られ、固定の基準コードを出力するものであればよい。第4実施形態の半導体装置20では、認証コードは注入イオン濃度により設定されたトランジスタの駆動能力の違いにより設定される値であり、回路の光学的な解析によるコピーでは再現できない。そのため、光学的な解析によるコピーで基準コードが再現されても、認証コードとは一致しないため、REFCODE記憶回路25は不一致の判定結果を出力する。半導体装置20は、判定結果が不一致の場合には、それ以上の動作を停止するように作られるので、不正コピーを抑制することができる。
なお、第4実施形態の半導体装置20で、REFCODE記憶回路25をメモリとし、半導体装置の製品番号等から基準コードの情報を得て、外部からREFCODE記憶回路25に基準コードを書き込むようにしてもよい。また、REFCODE記憶回路25を設けず、外部から基準コードを入力し、半導体装置20内から読み出した認証コードが、外部から入力された基準コードに一致する場合にのみ、動作するようにしてもよい。第4実施形態の半導体装置20は、ホストからの外部信号MODEに応じて認証処理を開始し、ホストからSI、CK、およびINを入力することにより、認証処理を制御する。
図18は、第4実施形態の半導体装置20における認証処理を示すフローチャートである。ステップS35で、認証コードをパラレルデータとして出力すること、およびステップS36で、認証コード判定回路24が、半導体装置20内で認証処理を行うことが、図13のフローチャートと異なり、他は同じである。
図19は、第5実施形態の認証システムを示す図である。第5実施形態の認証システムは、半導体装置20で認証コードを生成する拡張版スキャンフリップフロップの一部に、ダミー拡張版スキャンフリップフロップを含むことが、第3実施形態と異なる。
図19に示すように、半導体装置20は、図11の(B)に示した拡張版スキャンフリップフロップ231、233および234と、ダミー拡張版スキャンフリップフロップ232Dと、を有する。ダミー拡張版スキャンフリップフロップ232Dは、拡張版スキャンフリップフロップ231、233および234と、第3実施形態と同様に接続される。
ダミー拡張版スキャンフリップフロップ232Dは、拡張版スキャンフリップフロップと同様の回路構成を有するが、注入イオン濃度による駆動能力の違いがなく、不定状態から保持状態にした時に、どのような状態になるか一定でない。そのため、認証コードの読み出しを行うと、拡張版スキャンフリップフロップ231、233および234からは所定データが常に出力されるが、ダミー拡張版スキャンフリップフロップ232Dの出力値は、試行を行う度に“H”が出るか“L”が出るか一意に決まらない。
第5実施形態の認証システムでは、認証処理は、第3実施形態と同様に行う。半導体装置20からホスト10に出力される認証コードのシリアルデータには、ダミー拡張版スキャンフリップフロップ232Dの出力データが含まれ、“H”が出るか“L”が出るか一意に決まらない。シリアルデータにおけるダミー拡張版スキャンフリップフロップ232Dの出力データの位置はあらかじめ分かっているので、ホスト10は、ダミー拡張版スキャンフリップフロップ232Dの出力データを除いた認証コードと基準コードが一致するか判定する。第5実施形態では、認証コードが出力されることが分かっても、その中に試行を行う度に“H”が出るか“L”が出るか一意に決まらないデータが含まれるため、認証コードの出力を判別するのが難しくなり、その分コピーを難しくする。
図20は、第5実施形態の認証システムにおける認証処理を示すタイムチャートである。ダミー拡張版スキャンフリップフロップ232Dの出力データX22が不定(×)であることが、図14の第3実施形態の認証システムのタイムチャートと異なる。
上記の第2実施形態、第3実施形態および第3実施形態の変形例の認証システムでは、半導体装置内で発生した認証コードは、外部のホストに送るため、そのまま出力された。言い換えれば、半導体装置から、認証コードが平文で出力された。そのため、認証コードが出力されるタイミングが分かると、認証コードが容易に判明することになる。判明した認証コードに基づいて、半導体装置の回路を解析すると、認証コードを記憶した拡張版RSラッチ回路または拡張版スキャンフリップフロップの位置の探索が容易になり、それにより認証コードを含めてコピーが容易になる。そのため、認証コードを外部に出力する場合でも、正規の認証コードが分からないようにすることが望ましい。次に説明する第6実施形態では、このような要望を実現する。
図21は、第6実施形態の認証システムを示す図である。第6実施形態の認証システムは、ホスト10と、認証対象の半導体装置20と、を有する。ホスト10は、認証対象の半導体装置20の認証コードを共通鍵として記憶している。
第6実施形態の認証システムでは、以下の一連の認証処理を行う。ホスト10は、(1)発生した乱数を半導体装置20に送付する。半導体装置20は、(2)内部から読み出した認証コードを共通鍵として用いて、送付された乱数を暗号化する。さらに、半導体装置20は、(3)暗号化した乱数を、ホスト10に送付する。ホスト10は、(4)記憶している認証コードで送付された暗号化済みの乱数を復号化する。さらに、ホスト10は、復号化した乱数が、送付した乱数と一致するか判定する。一致すれば、正規の認証コードで暗号化されたと分かるので、半導体装置20が正規品であると判定し、不一致であれば、非正規品と判定する。
図22は、第6実施形態の認証システムにおける半導体装置20の構成を示す図である。第6実施形態における半導体装置20は、暗号化回路26を有することが、図12に示した第3実施形態の半導体装置20と異なる。暗号化回路26は、拡張版スキャンフリップフロップ231〜234の出力する認証コードで、ホスト10から送付された乱数RANDを暗号化し、暗号化済みの乱数をホスト10に送付する。暗号化済みの乱数のホスト10への送付、およびホスト10から半導体装置20への乱数の送付は、シリアルデータの形で行っても、パラレルデータの形で行ってもよい。
図23は、第7実施形態の認証システムを示す図である。第7実施形態の認証システムは、半導体装置20がハッシュ関数処理回路27を有することが、第6実施形態と異なる。ホスト10は、半導体装置20のハッシュ関数処理回路27と同じハッシュ関数を記憶している。ハッシュ関数処理回路27は、ホスト10から送付された乱数RANDと、拡張版スキャンフリップフロップ231〜234の出力する認証コードをハッシュ関数にかけてハッシュ値を算出し、ハッシュ値をホスト10に送付する。ホスト10は、半導体装置20に送付した乱数RANDと、記憶している基準コードをハッシュ関数にかけてハッシュ値を算出し、算出したハッシュ値と送付されたハッシュ値が一致するか判定する。
図24は、第7実施形態の認証システムにおける認証動作を示すフローチャートである。ステップS41からS45は、図9の第2実施形態のS11からS15と同じである。
ステップS46では、ハッシュ関数処理回路27は、ホスト10から送付された乱数RANDと、拡張版スキャンフリップフロップ231〜234の出力する認証コードをハッシュ関数にかけてハッシュ値を算出し、ハッシュ値をホスト10に送付する。
ステップS47では、ホスト10は、半導体装置20に送付した乱数RANDと、記憶している基準コードをハッシュ関数にかけてハッシュ値を算出し、算出したハッシュ値と送付されたハッシュ値が一致するか判定し、認証処理を実施する。
ステップ48では、第1実施形態と同様に、ステップS41からS47を繰り返す。
図17の第4実施形態では、半導体装置20の内部に認証コード判定回路24を設け、半導体装置20の内部で正規の認証コードであるか判定したが、認証処理自体は、ホスト10から起動されて制御される。これに対して、次に説明する第8実施形態では、半導体装置20自体が、起動時などに自動的に認証処理を実行し、認証結果が不一致の場合には、自動的に動作を停止する。
図25は、第8実施形態の半導体装置20を示す図である。第8実施形態の半導体装置20は、第4実施形態と同様に、認証コード判定回路24と、基準コードを記憶したREFCODE記憶回路25と、を有し、さらに認証動作を制御する制御回路29と、を有する。制御回路29は、半導体装置20の起動時に自動的に認証処理を起動するか、外部からの要求に応じて認証処理を起動するように、制御を行う。制御回路29は、第2から第7実施形態でホスト10が出力した制御信号MODE、SI、CKおよびINを発生し、半導体装置20内の各部に印加する。処理動作自体は、他の実施形態と同じなので、説明は省略する。
第2から第8実施形態では、製造段階で第1実施形態の拡張版RSラッチ回路を半導体装置に組み込むことにより、半導体装置が非正規品であることを検出可能にした。しかし、第1実施形態の拡張版RSラッチ回路を利用したコード記憶回路は、これに限定されず、秘密の基準コードを生成する回路として使用できる。以下、このような応用例を説明する。
図26は、コード記憶回路を使用するホストの構成を示す図であり、(A)が第9実施形態の認証システムの場合の例を、(B)が第10実施形態の暗号処理システムの場合の例を示す。
図26の(A)では、第9実施形態のホスト30は、外部からの認証要求と共に入力される認証コードが正規のコードであるか認証する。ホスト30は、半導体装置31を含み、図示していないが他の半導体装置を含んでもよい。半導体装置31は、基準コード記憶回路32と、認証回路33と、認証制御回路34と、を有し、認証処理機能を実現する。基準コード記憶回路32は、外部から入力される認証コードが正規であるか判定するのに必要な基準コードを記憶しており、基準コードの少なくとも一部は、第1実施形態の拡張版RSラッチ回路を利用したコード記憶回路により記憶されている。
認証制御回路34は、外部からの認証要求に応じて、基準コード記憶回路32を起動する起動信号を出力する。基準コード記憶回路32は、起動信号に応じて、コード記憶回路に記憶されている基準コードを読み出し、認証回路33に出力する。認証回路33は、外部から入力される認証コードと、基準コード記憶回路32から出力される基準コードを比較して一致するか否か判定し、判定結果を認証結果として認証制御回路34に出力する。認証回路33における一致判定処理は、各種の変形例があり、認証コードと基準コードが直接一致するか判定する処理に限定されない。
図26の(A)の例では、基準コード記憶回路32は、第1実施形態の拡張版RSラッチ回路を利用したコード記憶回路により基準コードを記憶している。通常、ホストは、基準コードをメモリに記憶し、外部からは基準コードを記憶したメモリ部分にはアクセス不能にして、基準コードを秘匿している。しかし、基準コードがメモリに記憶されていることが分かっている場合には、基準コードを記憶したメモリの入出力信号を監視するなどの手法により、不正に基準コードを知ることができる。また、基準コードを記憶するメモリが、ハードウエアによる固定メモリの場合には、不正に入手したホスト30の半導体装置を光学的に解析することにより基準コードを解析することも可能である。これに対して、
図26の(A)に示した第9実施形態の認証システムでは、基準コード記憶回路32は、第1実施形態の拡張版RSラッチ回路を利用したコード記憶回路により基準コードを記憶している。そのため、通常の回路として動作する部分に対して所定のコード読み出し動作を行うことにより出力されるコードを基準コードとして利用しているため、回路内でコードを記憶している部分の特定が難しい。さらに、動作シーケンスも、メモリからのデータの読み出しに比べて複雑であり、コード読み出しのタイミングの特定も難しい。このような理由で、第9実施形態の認証システムは、秘密の基準コードを、これまで以上の高い秘匿性で保持することが可能である。
図26の(B)の第10実施形態の暗号処理システムでは、ホスト40は、外部からの暗号処理された暗号データの処理要求を受け、復号処理した上でデータ処理を行う。ホスト40は、半導体装置41を含み、図示していないが他の半導体装置を含んでもよい。半導体装置41は、内部に暗号コード記憶回路43を含む通常処理回路42と、復号処理回路44と、暗号処理制御回路45と、を有する。暗号コード記憶回路43は、外部から入力される暗号データを復号するのに必要な暗号コードを記憶しており、暗号コードの少なくとも一部は、第1実施形態の拡張版RSラッチ回路を利用したコード記憶回路により記憶されている。
制御回路45は、外部からの暗号データの処理要求に応じて、暗号コード記憶回路43および復号処理回路44を起動する起動信号を出力する。暗号コード記憶回路43は、起動信号に応じて暗号コードを読み出し、復号処理回路44に出力する。復号処理回路44は、外部から入力される暗号データを、暗号コード記憶回路43から出力される暗号コードに基づいて復号し、平文のデータを通常処理回路42に渡す。通常処理回路42は、平文のデータに対して、通常の処理を行う。
第10実施形態は、第9実施形態と同様に、秘密の暗号コードを、これまで以上の高い秘匿性で保持することが可能である。
図27は、第9および第10実施形態において、基準コード記憶回路32または暗号コード記憶回路43が、基準コードまたは暗号コードを記憶する形態を説明する図である。図27に示すように、基準コード記憶回路32または暗号コード記憶回路43は、ハードウエア固定コード記憶回路51と、ユーザ設定コード記憶回路52と、合成回路53と、を有する。ハードウエア固定コード記憶回路51は、第1実施形態の拡張版RSラッチ回路を利用したコード記憶回路であり、固定コードを記憶しており、拡張版RSラッチ回路に対して所定の動作を行うことにより、記憶している固定コードを出力する。ユーザ設定コード記憶回路52は、例えば、アクセス権を有するユーザのみがアクセスできる書換え可能な不揮発性メモリで形成され、ユーザが任意に設定可能なユーザ設定コードを記憶する。合成回路53は、ハードウエア固定コード記憶回路51から出力される固定コードと、ユーザ設定コード記憶回路52から出力されるユーザ設定コードを合わせて、合成コードまたは暗号コードとして出力する。
合成回路53における合成方法は、各種の例が可能である。例えば、2つのコードを組み合わせて合成コードとしても、2つのコードの一方で他方のコードを暗号処理した結果を合成コードとしても、2つのコードをハッシュ関数に掛けた結果を合成コードとしてもよい。
第9および図10実施形態で、図27に示したコード記憶回路を使用することにより、製造者とユーザの間での秘密コードの秘匿性を向上できる。半導体装置は、ユーザ設定コード記憶回路52にユーザ設定コードを記憶するには、ハードウエア固定コード記憶回路51に設定したコードを入力することが必要であるように作られる。製造者は、製造段階でハードウエア固定コード記憶回路51を設定し、設定したコードをユーザに知らせる。もちろん、ハードウエア固定コード記憶回路51に設定したコードは、製造者の責任で秘匿される。半導体装置を供給されたユーザは、製造者から知らされたハードウエア固定コード記憶回路51に設定したコードを利用して、ユーザ設定コード記憶回路52に、ユーザが独自に決定したユーザ設定コード設定する。これにより、製造者は、図27に示したコード記憶回路の出力するコードを知ることができなくなり、コード記憶回路の出力するコードが漏洩した場合でも、製造者から情報が漏洩した可能性を低減できる。
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものである。特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
以下、実施形態に関し、更に以下の付記を開示する。
(付記1)
複数のトランジスタと、
複数の入力ノードと、
少なくとも1つの出力ノードと、を備え、
前記複数の入力ノードに入力される複数の入力データに対して、所定の論理演算により決定される少なくとも1つの出力データを、前記少なくとも1つの出力ノードに出力し、
前記所定の論理演算によれば、前記複数の入力データを所定の状態にすると、前記少なくとも1つの出力データは論理的には不定状態となり、
前記複数のトランジスタは、駆動能力の異なるトランジスタを含み、
前記少なくとも1つの出力データは、前記論理的には不定状態でも、前記複数のトランジスタの前記駆動能力が異なることにより、所定の出力データとなることを特徴とする論理回路。
(付記2)
前記複数のトランジスタは、注入イオン濃度が異なることにより前記駆動能力が異なる付記1記載の論理回路。
(付記3)
当該論理回路は、RSフリップフロップを含む付記1または2記載の論理回路。
(付記4)
コードを発生するコード発生回路であって、
少なくとも1つのコード要素発生回路を備え、
前記コード要素発生回路は、
複数のトランジスタと、複数の入力ノードと、少なくとも1つの出力ノードと、を備え、前記複数の入力ノードに入力される複数の入力データに対して、所定の論理演算により決定される少なくとも1つの出力データを、前記少なくとも1つの出力ノードに出力し、前記所定の論理演算によれば、前記複数の入力データを所定の状態にすると、前記少なくとも1つの出力データは論理的には不定状態となり、前記複数のトランジスタは、駆動能力の異なるトランジスタを含み、前記少なくとも1つの出力データは、前記論理的には不定状態であっても、前記複数のトランジスタの前記駆動能力が異なることにより、所定の出力データとなり、
前記コードを、各コード要素発生回路の前記複数の入力データを所定の状態にして論理的には不定状態になるようにした時の前記少なくとも1つのコード要素発生回路の出力データから生成することを特徴とするコード発生回路。
(付記5)
前記複数のトランジスタは、注入イオン濃度が異なることにより前記駆動能力が異なる付記4記載のコード発生回路。
(付記6)
当該論理回路は、RSフリップフロップを含む付記4または5記載のコード発生回路。
(付記7)
複数のコード要素発生回路を含み、
前記複数のコード要素発生回路の出力データから前記コードを生成する付記4から6のいずれか1項記載のコード発生回路。
(付記8)
付記7記載のコード発生回路を含む半導体装置。
(付記9)
基準コードを記憶する基準コード記憶回路と、
前記複数のコード要素発生回路の出力データから生成した認証コードを、前記基準コードと比較して一致するか判定する判定回路と、を備え、
前記判定回路の判定結果が不一致の場合には、内部機能を停止状態にする付記8記載の半導体装置。
(付記10)
前記複数のコード要素発生回路の出力データをシリアルデータに変換するスキャン回路を備え、前記シリアルデータを外部に出力する付記8記載の半導体装置。
(付記11)
前記コード要素発生回路と同じ回路構成で、前記複数の入力データを所定の状態にしても出力データが不定状態であるダミーコード要素発生回路を備え、
前記スキャン回路は、前記ダミーコード要素発生回路の出力データを含めて前記シリアルデータを生成する付記10記載の半導体装置。
(付記12)
前記複数のコード要素発生回路の出力データをパラレルデータとして外部に出力する付記9記載の半導体装置。
(付記13)
前記コード要素発生回路と同じ回路構成で、前記複数の入力データを所定の状態にしても出力データが不定状態であるダミーコード要素発生回路を備え、
前記パラレルデータには、前記ダミーコード要素発生回路の出力が含まれる付記12記載の半導体装置。
(付記14)
前記複数のコード要素発生回路の出力データを暗号化処理する暗号化回路を、備え、
前記暗号化回路で暗号化した前記複数のコード要素発生回路の出力データを、外部に出力する付記8、10から13のいずれか1項記載の半導体装置。
(付記15)
前記複数のコード要素発生回路の出力データと、外部から入力された乱数をハッシュ関数に乗じて、ハッシュ値を算出するハッシュ関数回路を、備え、
前記ハッシュ関数回路で演算したハッシュ値を外部に出力する付記8、10から13のいずれか1項記載の半導体装置。
(付記16)
付記8、10から13のいずれか1項に記載の半導体装置を認証対象とし、認証対象の半導体装置が正規のものであるか認証する認証装置であって、
基準コードを記憶する基準コード記憶回路と、
前記認証対象の半導体装置の出力する前記複数のコード要素発生回路の出力データと、前記基準コードを比較して一致するか判定する判定回路と、を備える認証装置。
(付記17)
付記14記載の半導体装置を認証対象とし、認証対象の半導体装置が正規のものであるか認証する認証装置であって、
基準コードを記憶する基準コード記憶回路と、
前記認証対象の半導体装置の出力する暗号化した前記複数のコード要素発生回路の出力データを解読して復号する復号化回路と、
復号化した前記複数のコード要素発生回路の出力データと、前記基準コードを比較して一致するか判定する判定回路と、を備える認証装置。
(付記18)
付記15記載の半導体装置を認証対象とし、認証対象の半導体装置が正規のものであるか認証する認証装置であって、
基準コードを記憶する基準コード記憶回路と、
乱数を認証対象の半導体装置に送信する乱数送信回路と、
前記乱数をハッシュ関数に乗じて、基準ハッシュ値を算出するハッシュ値算出回路と、
前記認証対象の半導体装置の出力するハッシュ値と、前記基準ハッシュ値を比較して一致するか判定する判定回路と、を備える認証装置。
(付記19)
基準コードを記憶する基準コード記憶回路と、
外部からの認証要求に応じて、前記基準コード記憶回路から読み出した前記基準コードと、前記認証要求に伴い入力される認証コードを比較して一致するか判定する認証回路と、を備え、
前記基準コード記憶回路は、付記7記載のコード発生回路を含むことを特徴とする認証装置。
(付記20)
前記基準コード記憶回路は、
付記7記載のコード発生回路と、
ユーザが設定したユーザ設定コードを記憶するユーザ設定コード記憶回路と、
前記コード発生回路の出力する固定コードおよび前記ユーザ設定コードを合成して合成コードを出力する合成回路と、を備え、
前記合成コードを前記基準コードとして出力する付記19記載の認証装置。
(付記21)
暗号コードを記憶する暗号コード記憶回路と、
外部からの暗号処理要求に応じて、前記暗号コード記憶回路から読み出した前記暗号コードに基づいて、前記暗号処理要求に伴い入力される暗号データを復号判定する復号処理回路と、を備え、
前記暗号コード記憶回路は、付記7記載のコード発生回路を含むことを特徴とする暗号処理装置。
(付記22)
前記暗号コード記憶回路は、
付記7記載のコード発生回路と、
ユーザが設定したユーザ設定暗号コードを記憶するユーザ設定暗号コード記憶回路と、
前記コード発生回路の出力する固定暗号コードおよび前記ユーザ設定暗号コードを合成して合成暗号コードを出力する合成回路と、を備え、
前記合成暗号コードを前記基準コードとして出力する付記21記載の暗号処理装置。
(付記23)
コードを発生するコード発生方法であって、
複数のトランジスタと、複数の入力ノードと、少なくとも1つの出力ノードと、を備え、前記複数の入力ノードに入力される複数の入力データに対して、所定の論理演算により決定される少なくとも1つの出力データを、前記少なくとも1つの出力ノードに出力し、前記所定の論理演算によれば、前記複数の入力データを所定の状態にすると、前記少なくとも1つの出力データは論理的には不定状態となり、前記複数のトランジスタは、駆動能力の異なるトランジスタを含み、前記少なくとも1つの出力データは、前記論理的には不定状態であっても、前記複数のトランジスタの前記駆動能力が異なることにより、所定の出力データとなる少なくとも1つのコード要素発生回路に対して、前記複数の入力データを所定の状態にして論理的には不定状態になるようにした時の前記少なくとも1つのコード要素発生回路の出力データから、前記コードを生成することを特徴とするコード発生方法。
(付記24)
前記複数のトランジスタは、注入イオン濃度が異なることにより前記駆動能力が異なる付記23記載のコード発生方法。
(付記25)
当該論理回路は、RSフリップフロップを含む付記23または24記載のコード発生方法。
(付記26)
複数の前記コード要素発生回路の出力データから前記コードを生成する付記23から25のいずれか1項記載のコード発生方法。
(付記27)
記憶されている基準コードを読み出し、
付記26記載のコード発生方法で、認証コードを発生し、
前記認証コードを、前記基準コードと比較して一致するか判定する認証方法。
(付記28)
付記26記載のコード発生方法で、基準コードを発生し、
入力される認証コードを、前記基準コードと比較して一致するか判定する認証方法。
10 ホスト
20 半導体装置
21 メインロジック
24 認証コード判定回路
25 REFCODE記憶回路
26 暗号化回路
27 ハッシュ関数処理回路
29 制御回路
30 ホスト
31 半導体装置
32 基準コード記憶回路
33 認証回路
34 認証制御回路
40 ホスト
41 半導体装置
42 通常処理回路
43 暗号コード記憶回路
44 復号処理回路
45 暗号処理制御回路
221−228 拡張版RSラッチ
231−234 拡張版フリップフロップ
PTr11〜PTr81 Pchトランジスタ
NTr11〜NTr81 Nchトランジスタ

Claims (10)

  1. 複数のトランジスタと、
    複数の入力ノードと、
    少なくとも1つの出力ノードと、を備え、
    前記複数の入力ノードに入力される複数の入力データに対して、所定の論理演算により決定される少なくとも1つの出力データを、前記少なくとも1つの出力ノードに出力し、
    前記所定の論理演算によれば、前記複数の入力データを所定の状態にすると、前記少なくとも1つの出力データは論理的には不定状態となり、
    前記複数のトランジスタは、駆動能力の異なるトランジスタを含み、
    前記少なくとも1つの出力データは、前記論理的には不定状態でも、前記複数のトランジスタの前記駆動能力が異なることにより、所定の出力データとなることを特徴とする論理回路。
  2. 前記複数のトランジスタは、注入イオン濃度が異なることにより前記駆動能力が異なる請求項1記載の論理回路。
  3. 当該論理回路は、R−Sフリップフロップを含む請求項1または2記載の論理回路。
  4. コードを発生するコード発生回路であって、
    少なくとも1つのコード要素発生回路を備え、
    前記コード要素発生回路は、
    複数のトランジスタと、複数の入力ノードと、少なくとも1つの出力ノードと、を備え、前記複数の入力ノードに入力される複数の入力データに対して、所定の論理演算により決定される少なくとも1つの出力データを、前記少なくとも1つの出力ノードに出力し、前記所定の論理演算によれば、前記複数の入力データを所定の状態にすると、前記少なくとも1つの出力データは論理的には不定状態となり、前記複数のトランジスタは、駆動能力の異なるトランジスタを含み、前記少なくとも1つの出力データは、前記論理的には不定状態を維持しても、前記複数のトランジスタの前記駆動能力が異なることにより、所定の出力データとなり、
    前記コードを、各コード要素発生回路の前記複数の入力データを所定の状態にして論理的には不定状態になるようにした時の前記少なくとも1つのコード要素発生回路の出力データから生成することを特徴とするコード発生回路。
  5. 複数のコード要素発生回路と、
    基準コードを記憶する基準コード記憶回路と、
    前記複数のコード要素発生回路の出力データから生成した認証コードを、前記基準コードと比較して一致するか判定する判定回路と、を備え、
    前記各コード要素発生回路は、
    複数のトランジスタと、複数の入力ノードと、少なくとも1つの出力ノードと、を備え、前記複数の入力ノードに入力される複数の入力データに対して、所定の論理演算により決定される少なくとも1つの出力データを、前記少なくとも1つの出力ノードに出力し、前記所定の論理演算によれば、前記複数の入力データを所定の状態にすると、前記少なくとも1つの出力データは論理的には不定状態となり、前記複数のトランジスタは、駆動能力の異なるトランジスタを含み、前記少なくとも1つの出力データは、前記論理的には不定状態を維持しても、前記複数のトランジスタの前記駆動能力が異なることにより、所定の出力データとなり、
    前記認証コードを、前記各コード要素発生回路の前記複数の入力データを所定の状態にして論理的には不定状態になるようにした時の前記各コード要素発生回路の出力データから生成し、
    前記判定回路の判定結果が不一致の場合には、内部機能を停止状態にする半導体装置。
  6. 複数のコード要素発生回路と、
    前記複数のコード要素発生回路の出力データをシリアルデータに変換するスキャン回路と、を備え、
    各コード要素発生回路は、
    複数のトランジスタと、複数の入力ノードと、少なくとも1つの出力ノードと、を備え、前記複数の入力ノードに入力される複数の入力データに対して、所定の論理演算により決定される少なくとも1つの出力データを、前記少なくとも1つの出力ノードに出力し、前記所定の論理演算によれば、前記複数の入力データを所定の状態にすると、前記少なくとも1つの出力データは論理的には不定状態となり、前記複数のトランジスタは、駆動能力の異なるトランジスタを含み、前記少なくとも1つの出力データは、前記論理的には不定状態を維持しても、前記複数のトランジスタの前記駆動能力が異なることにより、所定の出力データとなり、
    前記各コード要素発生回路の前記複数の入力データを所定の状態にして論理的には不定状態になるようにした時の前記複数の要素発生回路の出力データを前記シリアルデータに変換し、
    請求項4記載のコード発生回路であり、
    前記シリアルデータを外部に出力する半導体装置。
  7. 認証対象の半導体装置が正規のものであるか認証する認証装置であって、
    前記認証対象の半導体装置は、
    複数のコード要素発生回路と、
    前記複数のコード要素発生回路の出力データをシリアルデータに変換するスキャン回路と、を備え、
    各コード要素発生回路は、
    複数のトランジスタと、複数の入力ノードと、少なくとも1つの出力ノードと、を備え、前記複数の入力ノードに入力される複数の入力データに対して、所定の論理演算により決定される少なくとも1つの出力データを、前記少なくとも1つの出力ノードに出力し、前記所定の論理演算によれば、前記複数の入力データを所定の状態にすると、前記少なくとも1つの出力データは論理的には不定状態となり、前記複数のトランジスタは、駆動能力の異なるトランジスタを含み、前記少なくとも1つの出力データは、前記論理的には不定状態を維持しても、前記複数のトランジスタの前記駆動能力が異なることにより、所定の出力データとなり、
    前記各コード要素発生回路の前記複数の入力データを所定の状態にして論理的には不定状態になるようにした時の前記複数の要素発生回路の出力データを前記シリアルデータに変換し、
    前記シリアルデータを外部に出力する半導体装置であり、
    基準コードを記憶する基準コード記憶回路と、
    前記認証対象の半導体装置の出力する前記複数のコード要素発生回路の出力データと、前記基準コードを比較して一致するか判定する判定回路と、を備える認証装置。
  8. コードを発生するコード発生方法であって、
    複数のトランジスタと、複数の入力ノードと、少なくとも1つの出力ノードと、を備え、前記複数の入力ノードに入力される複数の入力データに対して、所定の論理演算により決定される少なくとも1つの出力データを、前記少なくとも1つの出力ノードに出力し、前記所定の論理演算によれば、前記複数の入力データを所定の状態にすると、前記少なくとも1つの出力データは論理的には不定状態となり、前記複数のトランジスタは、駆動能力の異なるトランジスタを含み、前記少なくとも1つの出力データは、前記論理的には不定状態であっても、前記複数のトランジスタの前記駆動能力が異なることにより、所定の出力データとなる少なくとも1つのコード要素発生回路に対して、前記複数の入力データを所定の状態にして論理的には不定状態になるようにした時の前記少なくとも1つのコード要素発生回路の出力データから、前記コードを生成することを特徴とするコード発生方法。
  9. 複数のトランジスタと、複数の入力ノードと、少なくとも1つの出力ノードと、を備え、前記複数の入力ノードに入力される複数の入力データに対して、所定の論理演算により決定される少なくとも1つの出力データを、前記少なくとも1つの出力ノードに出力し、前記所定の論理演算によれば、前記複数の入力データを所定の状態にすると、前記少なくとも1つの出力データは論理的には不定状態となり、前記複数のトランジスタは、駆動能力の異なるトランジスタを含み、前記少なくとも1つの出力データは、前記論理的には不定状態であっても、前記複数のトランジスタの前記駆動能力が異なることにより、所定の出力データとなる複数のコード要素発生回路に対して、前記複数の入力データを所定の状態にして論理的には不定状態になるようにした時の前記複数のコード要素発生回路の出力データから認証コードを発生し、
    記憶されている基準コードを読み出し、
    前記認証コードを、前記基準コードと比較して一致するか判定する認証方法。
  10. 暗号コードを記憶する暗号コード記憶回路と、
    外部からの暗号処理要求に応じて、前記暗号コード記憶回路から読み出した前記暗号コードに基づいて、前記暗号処理要求に伴い入力される暗号データを復号判定する復号処理回路と、を備え、
    前記暗号コード記憶回路は、前記暗号コードの少なくとも一部のコードを発生するコード発生回路を含み、
    前記コード発生回路は、
    少なくとも1つのコード要素発生回路を備え、
    前記コード要素発生回路は、
    複数のトランジスタと、複数の入力ノードと、少なくとも1つの出力ノードと、を備え、前記複数の入力ノードに入力される複数の入力データに対して、所定の論理演算により決定される少なくとも1つの出力データを、前記少なくとも1つの出力ノードに出力し、前記所定の論理演算によれば、前記複数の入力データを所定の状態にすると、前記少なくとも1つの出力データは論理的には不定状態となり、前記複数のトランジスタは、駆動能力の異なるトランジスタを含み、前記少なくとも1つの出力データは、前記論理的には不定状態を維持しても、前記複数のトランジスタの前記駆動能力が異なることにより、所定の出力データとなり、
    前記暗号コードの少なくとも一部のコードを、各コード要素発生回路の前記複数の入力データを所定の状態にして論理的には不定状態になるようにした時の前記少なくとも1つのコード要素発生回路の出力データから生成する、
    ことを特徴とする暗号処理装置。
JP2012219351A 2012-10-01 2012-10-01 論理回路、コード発生回路、半導体装置、認証装置、コード発生方法および認証方法 Pending JP2014072827A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012219351A JP2014072827A (ja) 2012-10-01 2012-10-01 論理回路、コード発生回路、半導体装置、認証装置、コード発生方法および認証方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012219351A JP2014072827A (ja) 2012-10-01 2012-10-01 論理回路、コード発生回路、半導体装置、認証装置、コード発生方法および認証方法

Publications (1)

Publication Number Publication Date
JP2014072827A true JP2014072827A (ja) 2014-04-21

Family

ID=50747619

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012219351A Pending JP2014072827A (ja) 2012-10-01 2012-10-01 論理回路、コード発生回路、半導体装置、認証装置、コード発生方法および認証方法

Country Status (1)

Country Link
JP (1) JP2014072827A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014099676A (ja) * 2012-11-13 2014-05-29 Renesas Electronics Corp 認証回路

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10178161A (ja) * 1996-12-19 1998-06-30 Oki Electric Ind Co Ltd 半導体メモリ
JP2007282095A (ja) * 2006-04-11 2007-10-25 Elpida Memory Inc フリップフロップを用いたパワーオンリセット回路、及びこれを備えた半導体装置
WO2012001796A1 (ja) * 2010-06-30 2012-01-05 富士通株式会社 個体別情報生成装置及び個体別情報生成方法
US20120020145A1 (en) * 2010-06-22 2012-01-26 Infineon Technologies Ag Identification Circuit and Method for Generating an Identification Bit
WO2012014291A1 (ja) * 2010-07-28 2012-02-02 学校法人立命館 耐タンパ性メモリ集積回路およびそれを利用した暗号回路

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10178161A (ja) * 1996-12-19 1998-06-30 Oki Electric Ind Co Ltd 半導体メモリ
JP2007282095A (ja) * 2006-04-11 2007-10-25 Elpida Memory Inc フリップフロップを用いたパワーオンリセット回路、及びこれを備えた半導体装置
US20120020145A1 (en) * 2010-06-22 2012-01-26 Infineon Technologies Ag Identification Circuit and Method for Generating an Identification Bit
WO2012001796A1 (ja) * 2010-06-30 2012-01-05 富士通株式会社 個体別情報生成装置及び個体別情報生成方法
WO2012014291A1 (ja) * 2010-07-28 2012-02-02 学校法人立命館 耐タンパ性メモリ集積回路およびそれを利用した暗号回路

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6016017761; 山本 大 他: 'ラッチの乱数出力位置を利用したPUFによるID生成/認証システムの信頼性向上手法' 2011年 暗号と情報セキュリティシンポジウム SCIS2011 [CD-ROM] 2D1-1, 20110125, p.1-8, 電子情報通信学会情報セキュリティ研究専門委員会 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014099676A (ja) * 2012-11-13 2014-05-29 Renesas Electronics Corp 認証回路

Similar Documents

Publication Publication Date Title
US10284368B2 (en) Secure key storage
JP3773431B2 (ja) 鍵実装システムおよびこれを実現するためのlsi、並びに鍵実装方法
US11516027B2 (en) Method and apparatus for protecting embedded software
US8868923B1 (en) Multi-factor authentication
US8848905B1 (en) Deterrence of device counterfeiting, cloning, and subversion by substitution using hardware fingerprinting
JP5770026B2 (ja) 半導体装置
US7839278B2 (en) Volatile device keys and applications thereof
US8782396B2 (en) Authentication with physical unclonable functions
JP5839659B2 (ja) 半導体装置
US10771062B1 (en) Systems and methods for enhancing confidentiality via logic gate encryption
JP2014096771A (ja) 半導体装置及び情報処理システム
JP2014089640A (ja) 半導体装置及び暗号鍵書き込み方法
JP5112555B1 (ja) メモリカード、ストレージメディア、及びコントローラ
JP2013118531A (ja) メモリ装置
US7913316B2 (en) Semiconductor integrated circuit and method for testing semiconductor integrated circuit
JP2010252305A (ja) 半導体集積回路及びその制御方法
JP4372061B2 (ja) 機密情報実装システム及びlsi
JP2013117880A (ja) ホスト装置、システム、及び装置
JP2014072827A (ja) 論理回路、コード発生回路、半導体装置、認証装置、コード発生方法および認証方法
JP5986279B2 (ja) 半導体装置
US20220043900A1 (en) Method and device for authenticating an fpga configuration
CN110995447A (zh) 一种数据存证方法、装置、设备以及介质
Forbes Digital Logic Protection Using Functional Polymorphism and Topology Hiding
KR101688870B1 (ko) 지연 시간 기반의 물리적인 반도체칩 복제감별장치 및 방법
CN115878036A (zh) 一种固件存储方法、固件获取方法及ssd

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150701

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160517

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160706

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20161206