以下、本発明の実施形態について添付の図面を参照しながら詳細に説明する。図面を参照して説明される実施形態は、本発明の技術的思想と構成及び動作を伝達するための例示的なものに過ぎず、本発明は、このような実施形態に限定されて解釈されることはない。
したがって、後述する実施形態にもかかわらず、本発明の技術分野の通常の知識を有する者が以下の実施形態に基づいて様々な変形や応用をするとしても、本発明の思想を抜け出さない範囲ではこのような変形や応用が本発明から排除されるものと理解されることはない。
図1は、本発明の一側に係るデジタル値生成装置を示すブロック図である。
本発明の一実施形態に係るデジタル値生成装置はデジタル値生成部110及びデジタル値凍結部120を備える。
前記デジタル値生成部110は、前記デジタル値生成部110に印加される信号に対応して無作為の(Random)デジタル値を生成する。前記無作為のデジタル値は、前記デジタル値生成部110を実現する少なくとも1つの半導体素子を製造する過程で発生する半導体工程上の工程偏差により生成する。この部分についてより具体的に説明する。
半導体工程において工程偏差は様々な理由によって発生する。例えば、トランジスタ製造のとき、有効ゲートの長さ、ドーピング濃度関連の指数、酸化物厚さ関連の指数、または閾値電圧などのパラメータが工程偏差の原因になる。このような工程偏差は自然現象に起因するため、工程偏差を小さくすることは可能であっても完全に除去することはできない。
したがって、一般的には、工程偏差の小さい半導体製造工程が優れるものと認識されて、半導体工程の技術分野では工程偏差を減らすための様々な試みがある。
しかし、本発明に係るデジタル値生成部110は、かえってこのような半導体工程の工程偏差を用いて、無作為に決定されるデジタル値を生成する。例えば、無作為に決定されるデジタル値は「1」または「0」のいずれか1つである。
ところが、半導体工程偏差を用いてデジタル値生成部110が無作為のデジタル値を生成した場合、前記のように、ノイズ、差動劣化(differential aging)、外部温度などの環境変化に応じて時不変性(time invariant)が保障できない問題がある。このような時不変性の保障は、生成されたデジタル値がセキュリティ/認証分野で活用され得るか否かを決定するという信頼性と直結されるため、この部分の解決が求められる。
したがって、本発明の一実施形態によると、デジタル値凍結部120は、前記デジタル値生成部110によって生成されたデジタル値に対して、ノイズや外部温度などの環境変化にも強い時不変性を保障する。
本発明の一実施形態によると、前記デジタル値凍結部120は前記デジタル値生成部110に接続し、前記デジタル値生成部110が生成したデジタル値に対応して第1状態または第2状態のいずれか1つの状態に固定されて前記デジタル値を凍結(freezing)する。
前記第1状態と第2状態のそれぞれは、前記生成されたデジタル値を読み出すことのできる、例えば「1」または「0」に対応する値であってもよい。
以下では図2以下を参照して、本発明の様々な実施形態について説明する。まず、図2及び図3を参照してデジタル値凍結部120の例示的な実現を説明し、図5ないし図9を参照してデジタル値生成部110の例示的な実現を説明する。
さらに、このようなデジタル値生成部110及びデジタル値凍結部120を含む例示的な回路構成の例は、図10〜図17を参照して説明する。
一方、本発明の他の一側面によると、前記時不変性の保障のために、デジタル値凍結部120に代って、前記生成されたデジタル値を格納して提供するデジタル値格納部を備える。このような本発明の他の一側に対しては図4を参照して説明する。
図2は、本発明の一実施形態に係るデジタル値生成装置のデジタル値凍結部の例示的な構成を示す。
本発明の一実施形態によると、図1に示すデジタル値生成装置100のデジタル値凍結部120には、フューズ201及び202を含むフューズ部210及び前記生成されたデジタル値に応じて前記フューズ201及び202の物理的に接続状態を変更するフューズ制御部220を備える。
デジタル値生成部110がout端子及びout_bar端子を介して互いに相補的なデジタル値、例えば、それぞれ「1」及び「0」を提供すると、デジタル値凍結部120のフューズ制御部220は、フューズ部210に含まれたフューズ201またはフューズ202それぞれに制御信号C及びCbを伝達する。すると、前記制御信号C及びCbによって、前記フューズ201またはフューズ202のいずれか1つに過電流が印加されることでフューズが物理的に途切れる。
例えば、out端子の値が「1」である場合、前記フューズ制御部220はフューズ201を切る。もちろん、デジタル値「1」に対応するフューズを切る場合だけではなく、デジタル値「0」に対応するフューズを切る反対の実施形態も可能である。以下は、デジタル値「1」または「0」に対応していずれの実施形態が説明されるとしても反対の実施形態も可能である。
一方、フューズが切れるためにフューズ201及びフューズ202の端子211、212、213及び214の少なくとも一部はVdd電圧に接続したり、グラウンド(ground)に接続してもよい。また、実施形態によって、端子211、212、213及び214がデジタル値生成部に含まれた一部のノードにそれぞれ接続してもよい。このような構成は、図12、図14及び図16などを参考してより具体的に後述される。
このようにデジタル値生成部110が生成したデジタル値に応じて、デジタル値凍結部120が物理的に状態変更し、後戻りできない状態に固定する。したがって、デジタル値生成部110が生成した無作為のデジタル値(random digital value)に時不変性が保障される。
後に、前記デジタル値を読み出す場合には、電気的にデジタル値凍結部120内のフューズ部210に含まれたフューズ201及び202のいずれかのフューズが途切れたか、いずれかのフューズが途切れていないかを識別することで、前記デジタル値を読み出すことができる。
また、本発明の他の一実施形態からは、フューズ201及び202のいずれかのフューズが途切れたか、いずれかのフューズが途切れていないかに応じて、デジタル値生成装置内の回路接続状態を固定し、デジタル値生成部110の出力値を凍結し、このような出力値を前記デジタル値として読み出すことができる。
参考に、本発明の一実施形態によると、前記デジタル値生成部110は、1つのデジタル値または相補的デジタル値の対(pair)を生成する単位セル(unit cell)をN個含み(前記Nは自然数)、Nビット(bit)のデジタル値を生成してもよい。
この場合には、デジタル値凍結部120もフューズ部210をN個含み、Nビットのデジタル値を凍結してもよい。ここで、もし、ある単位セルに対応するフューズ部210のフューズ201及び202の両方が途切れた場合、または、反対に両方ともが途切れていない場合には、当該の単位セルの値は無効(invalid)として処理してもよい。
このように、本明細書の全般にわたって、説明の便宜のためにデジタル値生成部100が1つのデジタル値またはデジタル値の対を生成する内容を説明しても、本発明がこの内容によって限定的に解釈されることはない。
したがって、特別な言及がなくても、デジタル値生成部にN個の単位セルが含まれ、N個のデジタル値を生成して凍結(または、格納)することは、回路の拡張性(scalability)によって当業者にとって自明なものである。
また、明細書全般にわたって、デジタル値生成部110が生成したデジタル値に応じて物理的に状態が変更され、前記デジタル値を凍結する実施形態が図2に示すフューズ部210の構成を参照して説明したが、このような内容は本発明の一部の実施形態に過ぎず、生成されたデジタル値によって物理的な構造が変更され、生成されたデジタル値に対する時不変性を提供できるいずれの変形実施形態も本発明から排除されることはない。
一方、本発明の一実施形態によると、前記デジタル値凍結部120は、1回プログラム可能な(One Time Programmable)OTP素子によって実現されてもよい。
もちろん、広い意味で、物理的な状態変更によって前記生成されたデジタル値を1回格納できる前記フューズ部210もOTP素子として理解されるが、以下はフューズ部210の構成は除いて、不揮発性(Non Volatile)メモリの例示として1回プログラム可能な素子をOTP素子として指すことにする。このような実施形態は下記の図3を参照して上述する。
図3は、本発明の他の一実施形態に係るデジタル値凍結部の例示的な構成を示す。
本実施形態では、デジタル値生成部110が生成したデジタル値の対がout端子とout_bar端子を介して制御部330に伝達されると、制御部330の制御信号C及びCbによって、デジタル値凍結部120に含まれたOTP素子のゲートが制御されることで、不揮発性OTP素子310及び320に前記デジタル値がプログラムされる。この場合、前記デジタル値は1回プログラムされた後変更されることはない。
したがって、図2に示す実施形態におけるフューズ部210にて説明したものと類似に、デジタル値生成部110が生成した無作為のデジタル値に時不変性が保障される。
例えば、out端子によってデジタル値「1」、out_bar端子を介してデジタル値「0」が制御部330に伝えられると、制御部330の制御信号C及びCbによってOTP素子310にデジタル値「1」がプログラムされ、OTP素子320にデジタル値「0」がプログラムされ、この値は書き直し不可能である。
OTP素子310及び320両端の端子は、実施形態によりデジタル生成装置100内のノードの一部にそれぞれ接続し、この接続の様々な例について、図13、図15及び図17などを参照して後述する。
物理的にOTP素子310及び320を実現する方法は様々な実施形態があり、当業者にはプログラム可能な読み出し専用メモリ(programmable read−only memory、PROM)またはフィールドプログラム可能な読み出し専用メモリ(Field Programmable read−only memory、FPROM)で良く知られている。したがって、このようなOTP素子310及び320の物理的な実現に対してはこれ以上の具体的な説明をしなくても当業者は明確に理解し再現することができる。
前記図1ないし図3の実施形態では、デジタル値生成装置100に最初に電圧(または、電流)が印加される過程で、デジタル値生成部110内の半導体素子(ら)の工程偏差に起因してデジタル値またはデジタル値の対を生成し、この値は直ちにフューズ部210またはOTP素子310及び320に物理的に凍結された。
しかし、実施形態によってこのような凍結(freezing)を代替し不揮発性メモリ(Non Volatile Memory、NVM)に前記生成されたデジタル値を格納することも可能である。このような本発明の他の実施形態について図4を参照して説明する。
図4は、本発明の他の一側に係るデジタル値生成装置400を示すブロック図である。
デジタル値生成部410がout端子及びout_bar端子それぞれに相補的デジタル値を生成すると、このデジタル値が不揮発性メモリのデジタル値格納部420に格納される。
本発明の一実施形態によると、前記デジタル値格納部420は前記OTP素子によって実現されてもよく、MTP(Multiple Time Programmable or Multi Time Programmable)素子によって実現されてもよい。
MTP素子は書き直し(rewritable)特性を有する不揮発性メモリ(NVM)の全体を含む概念として理解されてもよい。このようなMTP素子には、通常知られているEEPROM(Electrically Erasable and Programmable Read Only Memory)、フラッシュ(Flash)メモリ、SONOS(Silicon−Oxide−Nitride−Oxide−Silicon)、FRAM(Ferroelectrics Random Access Memory)、RRAM(Resistive Random Access Memory)など、いかなる形態の不揮発性メモリ素子も可能である。
したがって、デジタル値格納部420がMTP素子によって実現される場合、様々な実現方式の実施形態が可能である。
図1〜図3の実施形態では、デジタル値がデジタル値生成部110から生成されると、物理的に当該値がフューズ部210やOTP素子310及び320にプログラムされ、このようにプログラムされた値は物理的/電気的に以前の値に戻ることができない不可逆性(irreversibility)を有する。したがって、デジタル値が凍結したものと表現した。
しかし、図4を参照して説明した本実施形態ではこのような不可逆性を保障しないものの、製造/実現コストの節減、その他の様々な必要に応じてデジタル値生成部410が生成したデジタル値を不揮発性メモリ素子であるデジタル値格納部420に格納(store)することが両者相違している。
したがって、図4に示す実施形態ではデジタル値格納部420が再びプログラムされる余地があるため、図1〜図3の実施形態のようなレベルの時不変性を提供しないが、デジタル値格納部420に対する書き直し(rewriting)を防止すれば、相当の高いレベルの時不変性が保障され得る。
前述した説明ではデジタル値格納部420が不揮発性メモリ素子として実現される内容を提示したが、本発明は、デジタル値生成部410が生成したデジタル値を格納して時不変性を保障することのできる、いかなる形態のメモリ素子の変形を排除することはない。
デジタル値格納部420を導入した背景とその実現方法は、前記説明によって当業者が十分に理解して再現し得るため、これ以上の詳しい説明は省略する。以下は、デジタル値生成部110または410の実現に対する様々な実施形態について図5以下を参照して詳細に説明する。
図5は、本発明の一実施形態に係るデジタル値生成部110または410の構成を説明するための例示的な回路図である。
本発明の一実施形態によると、デジタル値生成部110または410は図5に示す回路500によって実現される。
第1インバータ510は、第1論理閾値(Threshold)を有する。そして、第2インバータ520は第2論理閾値を有する。論理閾値(logic threshold)は、インバータの入力電圧と出力電圧が同じ値を有する場合の電圧値である。このような論理閾値は、動作中であるインバータの出力端子と入力端子を短絡(short)させる場合の電圧値に測定されてもよい。
同じ工程で製造されるインバータは、理論上、同一の論理閾値を有するようデザインされるが、上記のように実際製造工程では工程偏差が存在するため、実際に製造された、いずれの2つのインバータも完全に同じ論理閾値を有することができない。
本発明の一実施形態によると、前記第1インバータ510と前記第2インバータ520は同じ製造工程で製造されたものであり、工程偏差に起因した論理閾値の差を有する。
前記論理閾値の差は工程により互いに異なるが、例えば、数ないし数十ミリボルト程度の大きさであってもよい。したがって、前記第1インバータ510の論理閾値と前記第2インバータ520の論理閾値を別途の比較器回路を用いて測定することは、測定上、誤差のことから正確ではない場合がある。
したがって、本実施形態では2つのインバータの論理閾値を相対的に比較できる(すなわち、別途の比較器回路を利用せずに測定する)方法を図5の回路500で実現した。
回路500によると、2つのインバータ510及び520間の論理閾値を相対的に比較し、どの論理閾値が大きいかを判断する。
もし、第2インバータ520が存在しなければ、第1インバータ510の入力端子と出力端子を短絡させる場合、第1インバータ510の出力電圧は前記第1インバータ510の論理閾値と同一であろう。
また、第1インバータ510が存在しない場合であれば、第2インバータ520の入力端子と出力端子を短絡させる場合、第2インバータ520の出力電圧は前記第2インバータ520の論理閾値と同一であろう。
しかし、図5に示すように、第1インバータ510の入力端子と第2インバータ520の出力端子が短絡して第1ノード501に接続し、第1インバータ510の出力端子と第2インバータ520の入力端子が短絡して第2ノード502に接続する場合は上記の場合と異なる結果をもたらす。
スイッチ530を閉鎖(close)して前記第1ノード501と前記第2ノード502を短絡(short)させる場合、短絡された前記2つのノードの電圧値は、前記第1インバータ510の論理閾値と前記第2インバータ520の論理閾値との間の特定値(平均値ではない場合もある、以下、同様)となる。
前記2つのインバータ510及び520の論理閾値のうちどの値が高いかに関わらず、前記スイッチ530が閉鎖されている間は、第1ノード501及び第2ノード502の電圧は前記2つのインバータ510及び520の論理閾値の間にある前記特定値となる。
そして、その後、スイッチ530を開放し、前記第1ノード501と前記第2ノード502との間を開放させる場合、前記第1ノード501と前記第2ノード502のいずれか1つの電圧値の論理的レベル(logical level)は「0」となり、他方の1つの論理的レベルは「1」となる。
例えば、もし、第1インバータ510の論理閾値が前記第2インバータ520の論理的閾値よりも低いと仮定すると、前記スイッチ530が閉鎖されて第1ノード501と第2ノード502が短絡された間の第1ノード501の電圧は、前記第1インバータ510の論理閾値よりも高い。
したがって、前記スイッチ530が再び開放されて前記第1ノード501と前記第2ノード502との間が開放された後、第1インバータ510は(自身の入力端子の)第1ノード501の電圧を論理的レベルハイ(High)として認識し、したがって、第1インバータ510の出力端子である第2ノード502の電圧を論理的レベルロー(Low)にする。
この場合、第2インバータ520は(自身の入力端子の)第2ノード502の電圧を論理的レベルローとして認識し、したがって、第2インバータ520の出力端子である第1ノード501の電圧を論理的レベルハイにする。
結局、回路500の出力(Out)である第2ノード502の論理的レベルはハイとなる。
反対に、もし、第1インバータ510の論理閾値が前記第2インバータ520の論理的閾値よりも高いと仮定すると、前記スイッチ530が閉鎖されて第1ノード501と第2ノード502が短絡された間の第1ノード501の電圧は、前記第1インバータ510の論理閾値よりも低い。
したがって、前記スイッチ530が再び開放されて前記第1ノード501と前記第2ノード502との間が開放された後、第1インバータ510は(自身の入力端子の)第1ノード501の電圧を論理的レベルローとして認識し、したがって、第1インバータ510の出力端子である第2ノード502の電圧を論理的レベルハイにする。
この場合、第2インバータ520は(自身の入力端子の)第2ノード502の電圧を論理的レベルハイとして認識し、したがって、第2インバータ520の出力端子の第1ノード501である電圧を論理的レベルローにする。
結局、回路500の出力(Out)である第2ノード502の電圧の論理的レベルはローとなる。
前述したように、第1インバータ510の論理閾値と第2インバータ520の論理閾値のうち、いずれかが高いかに応じて、スイッチ530の短絡(開放以後の出力(Out))の論理的レベルはハイ(デジタル値「1」)になるか、または、ロー(デジタル値「0」)になる。
ところが、同じ製造工程で製造された前記第1インバータ510と第2インバータ520のいずれかの論理閾値が高いかはランダムである。そして、製造された後にはどのような論理閾値が高いかは簡単に変わらない。ただし、論理的閾値の差が極めて小さいか、ノイズ、外部温度などの環境変化が大きくなる場合、どの論理閾値が高いかが変わる場合もある。このような状況が頻繁に発生することはないものの、セキュリティ/認証などの認証キーなどの実現に用いられるためには完ぺきな時不変性が保障されなければならない。
したがって、回路500によってデジタル値が生成される場合、この値が本発明の一実施形態に係る図1のデジタル値凍結部120で凍結したり、または、他の実施形態に係る図4のデジタル値格納部420に格納されることによって、時不変性が保障され得る。
一方、再度繰り返して強調するが、回路500は1ビット(bit)のデジタル値を生成する単位セル(unit cell)として理解され、このような単位セルがN個提供される場合にNビットのデジタル値が提供されてもよく、以下で特別な言及がなくても、デジタル値生成部110または410の実現においてこの拡張性が明確に理解されなければならない。
前記インバータの論理的閾値差に対する内容は、下記の図6に示すグラフを参照して詳細に説明する。
図6は、図5を参照して上述した実施形態のうち、第1インバータ510の論理閾値が第2インバータ520の論理閾値よりも低い場合の電圧特性(voltage characteristic)の曲線を示す。
曲線610は第1インバータ510の電圧特性曲線であり、曲線620は第2インバータ520の電圧特性曲線である。本発明の一実施形態に係る第1インバータ510と第2インバータ520が同じ製造工程で製造される場合、曲線610と曲線620は略一致するが、工程偏差のために図6に示すように若干の差がある。
曲線610と傾きが1である直線630の交点を探せば、第1インバータ610の論理閾値であるV1を決定してもよい。また、曲線620と直線630の交点を探せば、第2インバータ620の論理閾値であるV2を決定してもよい。
本実施形態でV1はV2よりも低い。したがって、図5に示すスイッチ530が閉鎖され、前記第1ノード501と前記第2ノード502が短絡される場合(「Reset」いう、以下、同様)、第1ノード501と第2ノード502の電圧(VReset)はV1とV2との間にあるいずれかの値になる。
そして、前記スイッチ530が再び開放されて前記第1ノード501と前記第2ノード502が開放された後、第1インバータ510は、第1ノード501の電圧(VReset)を論理的レベルハイとして認識し、したがって、第1インバータ510の出力端子である第2ノード502の電圧を論理的レベルローにする。
この場合、第2インバータ520は、第2ノード502の電圧(VReset)を論理的レベルローとして認識し、したがって、第2インバータ520の出力端子である第1ノード501の電圧を論理的レベルハイにする。
したがって、図5に示す回路500の出力(Out)である第2ノード502の電圧の論理的レベルはハイとなる。
以上では図4〜図5を参照して半導体工程偏差を用いた素子間の特性差によって無作為のデジタル値を説明する様々な実施形態のうちインバータを用いる1つの実施形態について説明した。
しかし、インバータの構成が図5に示す回路500のように限定されることなく、本発明の思想を抜け出さない範囲で半導体工程偏差を用いて素子間の特性値差を用いて無作為のデジタル値を生成する様々な実施形態も本発明に含まれるものとして理解されなければならない。
一方、インバータでなくても、様々な電子回路、例えば、差動増幅器(Differential Amplifier)やラッチ(Latch)回路などによってデジタル値生成部110または410が実現されてもよい。以下、図7〜図9を参照して様々な実施形態の一部を説明する。
図7は、本発明の他の一実施形態に係るデジタル値生成部110または410の構成を説明するための例示的な回路図である。
本実施形態では、差動増幅器回路700がデジタル値生成部110または410実現に用いられている。
差動増幅器の2つの入力端子711及び712を短絡させる場合、半導体工程偏差のために第1出力ノード721と第2出力ノード722には互いに異なるデジタル値、例えば、「1」及び「0」が出力される。
差動増幅器回路700は、本来に第1入力端子711と第2入力端子712の電圧差を増幅し、第1出力ノード721と第2出力ノード722との間の電圧差として提供する回路である。
したがって、前記第1入力ノード711と第2入力ノード712を短絡させる場合、理論的には、出力である第1出力ノード721と第2出力ノード722との間の電圧差が0でなければならない。
しかし、差動増幅器回路700に含まれる素子、例えば、トランジスタ(Transistor)の半導体製造の工程偏差による電気的な特性差のために、2つの入力ノード711及び712を短絡させるとき第1出力ノード721の電圧と第2出力ノード722の電圧差は0ではない。
また、前記トランジスタら素子の電気的な特性差だけではなく、差動増幅器回路700内に含まれる抵抗、キャパシタまたはインダクターなどの受動素子(図示せず)の電気的な特性差によってその電圧差が発生したりもする。
すなわち、チップを製作するとき、工程偏差は、前記受動素子の形状/構造的な差を引き起こし、これにより前記受動素子は実際の数値値に差が発生することがある。
したがって、入力ノード711及び712が短絡される場合に2つの出力ノード721及び722のいずれか出力端子の電圧が高いかを比較すると、1ビットの識別キーを生成してもよい。
例えば、第1入力ノード711と第2入力ノード712を短絡させる場合、第1出力ノード721の電圧値が第2出力ノード722の電圧値よりも高い場合、デジタル値「1」として認識し、反対の場合にはデジタル値「0」として認識する。
また、前述したように、かかる単位セルをN個実現する場合にNビットのデジタル値を生成してもよい。
図8は、本発明の更なる一実施形態に係るデジタル値生成部110または410の構成を説明するための例示的な回路図である。
本実施形態において、デジタル値生成部110または410の実現にSRラッチ(Set−Reset Latch)が用いられた。図8ではSRラッチを実現する多くの例のうち、例示的に図8(a)及び(b)の2種類が示されている。
図8(a)の実現はNORゲート(gate)を用いるものであり、(b)の実現はNANDゲートを用いるものである。
NORゲートとNANDゲートの実現において、同一の論理的な入出力にするためには、NANDゲートの実現(b)での2つの入力Sb及びRbは、それぞれNORゲートの実現(a)での2つの入力S及びRの反転信号である。
本実施形態に係る回路の実現(a)または(b)によってデジタル値生成部110または410を実現するために、まずS及びRの全てに1が入力される。
SRラッチの理論的な論理テーブル(Logic Table)によると、S及びRの全ての論理値「0」が入力される場合、出力値Qとその反転値Qbはどのような値を有するかが定義されない。また、S及びRの全ての論理値「1」が入力される場合、出力値QとQbは全て論理値「0」を出力する。この状態でS及びRが同時に「0」に変化すると、QとQbは2NORを構成している素子の特性値差によってその値が互いに相補的に決定される。すなわち、Qが「1」になりQbが「0」になったり、または、反対にQが「0」になりQbが「1」になる。
2つの場合のいずれかが実際の結果につながるかはランダムである。なぜなら、回路(a)のNORゲートまたは回路(b)のNANDゲートを構成する素子の特性(閾値電圧、移動度(mobility)など)が互いに異なることから、その結果は予測できない。
したがって、図8(a)または(b)によって実現されるデジタル値生成部110または410で無作為のデジタル値が生成されてもよい。
図9は、本発明の更なる一実施形態に係るデジタル値生成部の構成を説明するための例示的な回路図である。
SRラッチを用いる点では図8と類似するが、出力ノードQとQbとの間にスイッチ910がさらに加えられている。
そして、入力ノードS及びRの全てに論理値「0」を入力してスイッチ910を閉鎖する。それで、出力ノードQとQbの電圧は同じ値になり、この値は論理値「1」に該当する電圧値と論理値「0」に該当する電圧値との間のいずれかの特定値になる。
その後、スイッチ910を再び開放すると、各NORゲートの論理閾値に応じて出力ノードQは「1」になりQbは「0」になる場合、または、反対に出力ノードQは「0」になりQbは「1」になる場合があり、2つの場合のいずれかが実際結果につながるかはランダムである。
前記図8と同様に、前記の無作為性はNORゲートを構成する素子の特性(閾値電圧、移動度など)が互いに異なることから、その結果は予測できない。
したがって、図9に示された回路によって実現されるデジタル値生成部110または410で無作為のデジタル値が生成されてもよい。
以下、図10以下を参照してデジタル値生成部110にデジタル値凍結部120が結合してデジタル値生成装置100が実現された具体的な回路図の例を説明する。
図10は、図8に示すSRラッチを用いた実施形態に係るデジタル値生成部に、図2に示す実施形態に係るデジタル値凍結部120が結合された例示的なデジタル値生成装置の回路構成を示す。
デジタル値生成部1010の構成について、図8を参照して上述したSRラッチの具体的な回路実現として理解されてもよい。
デジタル値生成部1010によって2つの出力端子out及びout_barに互いに異なるデジタル値、例えば、それぞれ「1」と「0」が生成される場合、その結果に応じてデジタル値凍結部1020内のフューズ1021のいずれか一方が過電流の印加を受けて切れる。
したがって、どのフューズが途切れたかを電気的に識別すると、デジタル値生成部1010によって生成されてデジタル値凍結部1020により凍結したデジタル値を識別することができる。
フューズが切れる過程は図11に示すグラフを参照してさらに説明する。
図11は、図10に示す実施形態によりデジタル値凍結部1020でデジタル値の凍結が行われる過程を説明するための例示的なグラフである。
図10に示すデジタル値生成部1010が最初に駆動される場合(First operation)、出力outとout_barの差によって、例えば、フューズ2に過電流が印加されてフューズ2が切れることでデジタル値が凍結される。
一方、図10で構成されたフューズ1021の配置例は、本発明の様々な実施形態の一部に過ぎない。したがって、以下では図12を参照して図10に示された実施形態の他にもフューズの様々な配置についてさらに説明する。
図12は、本発明の様々な一実施形態に係るデジタル値凍結部がデジタル値生成装置内に配置された例示的な回路図を示す。
(a)はSRラッチを介して実現されるデジタル値生成部の実現を示し、(b)〜(d)ではSRラッチと共に配置されるフューズの様々な位置1210、1220及び1230を示す。
具体的な動作に対して、前記図8ないし図11を参照して十分に理解されるため、その詳しい説明は省略する。
一方、図3を参照して上述したように、前記フューズに代わってOTP素子によりデジタル値の凍結が行われてもよく、このような実施形態が図13を参照して説明する。
図13は、本発明の他の一実施形態に係るデジタル値凍結部がOTP素子によって実現される場合、デジタル値凍結部の様々な構成を説明するための回路図を示す。
図12に示すように、(a)はSRラッチを介して実現されるデジタル値生成部の実現を示し、(b)〜(d)ではSRラッチと共に配置されるOTP素子の様々な位置1310、1320及び1330を示す。
同様に、このような素子によって、デジタル値が凍結する過程は図3などを参照して十分に理解されるため、その詳しい説明は省略する。
以下、SRラッチの構成だけではなく、図5ないし図6を参照して説明したインバータを用いる実施形態に係るデジタル値生成部に、デジタル値凍結部が結合される様々な回路配置を例示的に提示する。
図14は、本発明の他の一実施形態に係るデジタル値生成部が図5の実施形態によって実現される場合、デジタル値凍結部がデジタル値生成装置内に配置された様々な例示的な回路図を示す。
(a)は図5を参照して説明したインバータを介して実現されるデジタル値生成部の実現を示し、(b)〜(e)ではインバータと共に配置されるフューズの様々な位置1410、1420、1430及び1440を示す。
一方、本実施形態でも、前記フューズに代わってOTP素子によってデジタル値の凍結が行われてもよく、そのような実施形態が図15に提示される。
図15は、本発明の他の一実施形態に係るデジタル値生成部が図5に示す実施形態によって実現されてデジタル値凍結部がOTP素子により実現される場合、デジタル値凍結部の様々な構成を説明するための回路図である。
図14に示すように、(a)はインバータを介して実現されるデジタル値生成部の実現を示し、(b)〜(e)ではインバータと共に配置されるOTP素子の様々な位置1510、1520、1530及び1540を示す。
図16は、本発明の他の一実施形態に係るデジタル値生成部が図7に示す実施形態によって実現される場合、デジタル値凍結部がデジタル値生成装置内に配置された様々な例示的な回路図を示す。
(a)は図7を参照して説明した差動増幅器を介して実現されるデジタル値生成部の実現を示し、(b)〜(d)では差動増幅器と共に配置されるフューズの様々な位置1610、1620及び1630を示す。
一方、本実施形態でも、前記フューズの代わりをしてOTP素子によってデジタル値の凍結が行われてもよく、このような実施形態が図17に提示される。
図17は、本発明の他の一実施形態に係るデジタル値生成部が図7に示す実施形態によって実現され、デジタル値凍結部がOTP素子によって実現される場合、デジタル値凍結部の様々な構成を説明するための回路図を示す。
図16に示すように、(a)は差動増幅器を介して実現されるデジタル値生成部の実現を示し、(b)〜(d)では差動増幅器と共に配置されるOTP素子の様々な位置1710、1720及び1730を示す。
図18は、本発明の他の一側に係るデジタル値生成方法を示すフローチャートである。
ステップ1810において、図1に示すデジタル値生成装置100のデジタル値生成部110に入力信号が印加される。このような入力信号印加は、電圧印加、電流駆動、初期駆動(first operation)などとして理解される。
続いて、ステップ1820において、デジタル値生成部110は、半導体工程偏差に起因する半導体素子の特性値差を用いてデジタル値を生成する。デジタル値生成部110がステップ1820において、無作為のデジタル値を生成する過程は、図1〜図3、図5〜図9を参照して上述した通りである。
ステップ1830において、デジタル値凍結部120が前記ステップ1820で生成された無作為のデジタル値を凍結し、時不変性を保障することになる。
このようなデジタル値の凍結過程は図2〜図3、図10〜図17を参照して上述した通りである。
図19は、本発明の更なる一側に係るデジタル値生成方法を示すフローチャートである。
ステップ1910において、入力信号が印加され、デジタル値生成部410が無作為のデジタル値を生成する過程は、図18のステップ1810ないし1820に類似する。
しかし、図18の実施形態と異なる点は、生成された無作為のデジタル値が図4を参照して説明したデジタル値格納部420に格納されるという点である。このようなデジタル値格納部420の様々な実施形態について図4を参照して上述した通りである。
このような本発明の様々な実施形態によると、半導体製造工程上の工程偏差を用いて無作為デジタル値が生成され、このデジタル値が時間の流れに伴った素子の劣化(aging)や周辺環境(例えば、温度)の変化、またはノイズによって変更されないよう、デジタル値の凍結または格納によって時不変性を保障した。
したがって、セキュリティ/認証を含む様々な応用分野で識別キーなどとして用いられる信頼性のある無作為のデジタル値を提供することができる。
本発明の一実施形態に係る方法は、多様なコンピュータ手段を介して様々な処理を実行することができるプログラム命令の形態で実現され、コンピュータ読取可能な記録媒体に記録されてもよい。コンピュータ読取可能な媒体は、プログラム命令、データファイル、データ構造などのうち1つまたはその組合せを含んでもよい。媒体に記録されるプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり、使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、光ディスクのような光磁気媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれてもよい。ここで説明されたソフトウェアモジュールの任意の一つ以上は、そのユニットに固有専用のプロセッサによって実行されてもよく、または、モジュールの一つ以上に共通するプロセッサによって実行されてもよい。説明された方法は汎用コンピュータやプロセッサによって実行されてもよく、ここで説明したような特定のマシンによって行われてもよい。
上述したように、本発明を限定された実施形態と図面によって説明したが、本発明は、上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、このような実施形態から多様な修正及び変形が可能である。
したがって、本発明の範囲は、開示された実施形態に限定されるものではなく、特許請求の範囲のみならず特許請求の範囲と均等なものなどによって定められるものである。