以下、実施形態を添付する図面を参照しながら詳細に説明する。しかし、権利範囲はこのような実施形態によって制限されたり限定されることはない。各図面に提示された同一の参照符号は同一の部材を示す。以下の説明で用いられる用語は、関連する技術分野で一般的かつ普遍的なものを選択したが、技術の発達及び/又は変化、慣例、技術者の選好などに応じて他の用語があり得る。したがって、以下の説明で用いられる用語は技術的思想を限定するものとして理解してはならず、実施形態を説明するための例示的な用語として理解されなければならない。また、特定の場合、出願人が任意に選定した用語もあり、この場合に該当する説明部分で詳細な意味を記載する。したがって、以下の説明で用いられる用語は単なる用語の名称ではない、その用語が有する意味として明細書の全般にわたった内容に基づいて理解されなければならない。
図1は、一実施形態に係るデジタル値生成装置100のブロック図である。一実施形態によると、装置100は、半導体の工程変移を用いて複数のデジタル値を生成する生成部110、及び前記複数のデジタル値を処理して第1デジタル値を提供する処理部120を含む。
前記生成部110は、半導体の工程変移によりランダムなデジタル値を生成するPUFを複数含んでもよい。このような複数のPUFは、生成部110に含まれる半導体構造のうち概念的に区分される部分である。PUF(PUF1ないしPUFn)は、半導体の工程変移によりそれぞれランダムなデジタル値を生成する。このようなデジタル値のそれぞれはビットシーケンスであってもよい。PUFは全て物理的に複製不可能であり、それぞれが生成したデジタル値は時不変性を有する。以下はPUFをPUFiに区分してもよい。ここで、iは整数であり、PUFを区分する概念的なインデックスである。ただし、このような区分は、実際の回路内における配置や構造的区分とは異なる概念である。したがって、生成部110そのものがPUFであり、PUFiのそれぞれは生成部110の部分であると理解される。
図示するように、生成部110にはPUFがn個含まれてもよい。ここで、nは自然数である。実施形態によると、n個のPUFは、ランダムに生成されるデジタル値に含まれる個別ビットが「0」である確率(又は「1」である確率)に影響を与えるいかなる工程要素及び/又は設計要素(以下ではこのような「要素」を「パラメータ」と称することもある)をそれぞれ相異にして生成される。
一実施形態によると、PUFiは、半導体の伝導性レイヤ間に形成されるk個のビアを含む。ここで、kは自然数であり、PUFiが含むビアの数である。そして、PUFiに含まれるk個のビアそれぞれが伝導性レイヤ間を短絡するか否かに応じて、それぞれのビアごとにデジタル値「1」又は「0」が生成される。したがって、1つのPUFiはkビットのデジタル値を提供し、生成部110ではn個のデジタル値が生成される。
一実施形態によると、n個のPUFは、互いに異なるパラメータを適用して生成されたものであってもよい。前記ビアに関する実施形態において、このパラメータはビアサイズであってもよい。例えば、PUF1ないしPUFnはそれぞれ異なるビアサイズを有するように設計及び/又は製造されたものであってもよい。もちろん、前記のように、ビアに関する実施形態はPUFを作る一実施形態に過ぎず、PUFを作る他の実施形態では前記パラメータは異なってもよい。したがって、特別な言及がなくても前記ビアに関する実施形態は理解を助けるための例示的なものとして解釈されなければならない。例えば、電子回路内の同じ素子のランダムな電気的特性差を用いてPUFを実現する実施形態、半導体の伝導性レイヤ間のスペイシングなどの異なる形態のPUFによる実施形態も可能である。したがって、PUFを実現する他の多くの実施形態が前記ビア実施形態と共に及び/又はこれに代って適用され得る。
一方、有効区間のPUFについて説明する。上記で説明したように、n個のPUFは互いに異なるパラメータ(例えば、サイズ)を有する。このビアサイズはPUF1で最も小さく、PUFnで最も大きい。ビアサイズが小さいほど工程を経たビアが正常に生成されない確率が大きく、ビアサイズが大きいほど工程後にビアが正常に生成される確率が相対的に大きいのであろう。本明細書の全般にわたる有効区間は、PUFiが生成するバイナリ値が全て0又は全て1である場合ではなく、0と1が全て含まれているパラメータの範囲を意味する。例えば、前記ビア関連の実施形態において、PUFiのバイナリ値として0及び1が全て存在するビアサイズの範囲が有効区間を意味する。もちろん、このような範囲にある程度のマージン(margin)をおいて、その範囲をやや大小にすることも可能であり、実質的に前記範囲を含む区間を有効区間として表現する。有効区間で設定されるビアサイズを用いる前記実施形態に関するPUF構造については図2を参照して説明する。
図2は、一実施形態に係る生成部110の細部構成を説明するための概念図である。PUFインデックスiが同一のPUFiでは、k個のビアが全て同一のサイズを有し得る。このサイズは、k個のビアがランダムに伝導性レイヤ間を短絡させてもよく、そうでない場合も適切なサイズに選択されてもよい。理論的に、k個のビアそれぞれが伝導性レイヤ間を短絡させる確率と短絡させない確率とが同一に1/2となる場合があり、この場合のサイズが前記最適なビアサイズである。前記したように、従来はPUFを生成する特定工程に対して前記1次パスを予め進行させた。これによって、1次パスの進行により前記特定工程で用いる最適なビアサイズを決定した後、その最適なビアサイズを用いて実際に用いられるPUFを量産する2次パスを進行させる。ところで、1次パスを向上させて決定された最適なビアサイズを適用し2次パスを向上させるとしても、個別ウェハーごと及び/又は(1つのウェハー上でも)個別PUFチップごとにビアが伝導性レイヤ間を短絡させる確率が1/2に保持されない場合もある。この点については、PUFによって生成された乱数を様々な産業分野、特にセキュリティー分野で活用するために解決すべき課題と認識される。
したがって、実施形態によると、特定の最適なビアサイズを1つに選択することなく、有効区間内の様々なビアサイズを有するPUFを1つのチップで生成した後、その中から最適なPUFiを選択して使用したり、一部のPUF値を加工してランダム性の高い値を使用することで、PUFを作る工程の収率を大きく高める。言い換えれば、同一の1つのサイズにPUFを生成するなく、様々な値を有するPUFを1チップで作った後、その中の一部を選んだり加工して使用することから、PUFの生成値において「0」及び「1」の比率がアンバランスになる問題をなくす。すると、生成されて使用される最終のデジタル値では「0」及び「1」の頻度差が大きく減少することで、てセキュリティー用としても使用可能となる。参考まで、生成されたデジタル値が真に乱数であるためには、「0」及び「1」の発生頻度が類似するかを評価する所定のテストを通過しなければならない。例えば、米国合衆国技術委員会傘下のNIST(National Institute of Standards and Technology)のSpecial Publication 800−22「A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications」でもセキュリティー分野で使用される乱数はこのような頻度数テストを通過することを明示している。実施形態によると、このようなランダム性テストを通過することのできるPUFを生成する収率が大きく向上される。
一実施形態によると、いずれか1つのビアホールサイズを予め決定し、全てのビアホールサイズを同一に生成する代わりに、様々なビアホールサイズを生成部110内で共に実現する。この場合、上述した「工程偏差を引き起こすパラメータ」とは、「ビアホールのサイズ」である。すなわち、個別のビアホールをどのようなサイズにデザインすれば前記個別ビアが伝導性レイヤ間を短絡する確率と短絡できない確率とが同一になるかを正確に把握できず、把握できるとしても、実際の工程では異なる結果が導き出される点を勘案して、1つのチップ内に様々なパラメータを適用したPUFを実現する。
図2に図示した実施形態では、生成部110内に実現されたPUF1ないしPUFnは互いに異なるビアホールサイズを有するよう製造されている。いずれか特定のPUFインデックスiでは、kビット長のビットシーケンス(以下、「PUFビットシーケンス」と称する)が存在する。これらのそれぞれをkビットのデジタル値に使用すると、互いに異なるn個のデジタル値が生成される。本明細書では、説明の便宜のために同一のビアサイズを有するk個のビアで構成されるPUFiが提供するkビットのバイナリビットシーケンスを1つの「PUFデジタル値」に説明する。
一方、ビット数kや、1つのチップで実現される互いに異なるビアホールサイズの種類nは必要な乱数の長さ、工程の進行条件、ランダム性テストを通過するための要求条件、PUFの応用分野などにより様々に設定されてもよい。図2を参照すると、PUF1ではビアホールサイズが最も小さく、順次に大きくなってPUFnではビアホールサイズが最も大きい。もちろん、このような順序は説明の便宜のためのものであり、必ずサイズが増加する順に実現する必要はない。また、このようなビアホールサイズが大きくなる程度も様々に設定してもよく、一定の比率だけ大きくなる例、均一な直径だけ大きくなる例、PUF(n/2)の近所ではビアホールサイズの差をPUF1やPUFnの近所よりも小さくすることで精密度を高める例などが挙げられる。
参考として、この明細書の全般にわたってビアが伝導性レイヤ間を短絡させる場合をバイナリ値「1」と説明し、短絡させることができない場合をバイナリ値「0」と説明する。もちろん、短絡の有無に応じてバイナリ値を「1」及び「0」のいずれか1つに決定することは理解のための例示的な説明に過ぎず、判読回路がプルダウン構成であるかプルアップ構成であるかに応じて反対の場合も可能である。
再び図示するものを参照すると、ビアホールサイズが小さいPUF1の場合、kビットのPUFビットシーケンスは全て「0」になる。そして、ビアホールサイズが大きいPUFnの場合、kビットのPUFビットシーケンスは全て「1」になる。一実施形態によると、PUF1のビアホールサイズは、工程で設計及び製造して「0」及び「1」を作ることができると予想される最小のビアホールサイズであってもよく、又は、予めその工程で前記1次パスを向上させた結果、ビットシーケンスで「0」及び「1」を全て発生させると確認された最小のビアホールサイズであってもよい。このような意味で提示された実施形態が従来の2−Pass方式工程のみを向上することを排除しない。
そして、PUFnのビアホールサイズは、工程で設計及び製造して「0」及び「1」を作ることができると予想される最大のビアホールサイズであってもよく、又は、予めその工程で前記1次パスを向上させた結果、ビットシーケンスで「0」及び「1」を全て発生させると確認された最大のビアホールサイズであってもよい。
このように様々なサイズのPUFiを1つの生成部110内で同時実現することによって、生成されたPUFデジタル値がランダムテストを通過できずチップの全体が使用できないことを防止することができる。これは生成部110及び/又はデジタル値生成装置100の収率に直接影響のある部分として、従来技術に比べて重要に改善された点である。
生成部110がこのような方式でn個のデジタル値(それぞれがkビット)を生成すると、図1に示す処理部120は、n個のデジタル値をどのように用いてデジタル値生成装置100が提供している最終のデジタル値(以下、「第1デジタル値」とも言える)を提供する。このような処理過程において様々な実施形態があり、図3ないし図6は、実施形態のうちの一部を説明するための概念図である。
図3は、一実施形態に係る処理部120の動作を説明するための概念図である。一実施形態によると、処理部120の判読部121は、それぞれのPUFを判読してPUFデジタル値A1ないしAnを判読する。前述した図2に示す実施形態において、PUF1はビアホールサイズが最も小さく次第にビアホールサイズが大きくなるため、A1は「0」を「1」よりも多く含み、Anは「1」を「0」よりも多く含む。図3で例示的に示すように、A1を含んで一部のデジタル値は全て「0」のみを含んでもよく、Anを含んで一部のデジタル値は全て「1」のみを含んでもよい。
一実施形態によると、処理部120の決定部122は、判読されたA1ないしAnのうちデジタル値「0」及び「1」を全て含むApないしAq(有効区間の値)のいずれか1つを選択し、これをデジタル値生成装置100が提供する第1デジタル値として決定してもよい。どのようなデジタル値を選択するかについては様々な実施形態が存在する。
一実施形態によると、決定部122は、Aiのうちデジタル値「0」及び「1」を全て含んでいる最初のデジタル値Apを前記第1デジタル値として決定する。他の一実施形態によると、決定部122は、Aiのうちデジタル値「0」及び「1」を全て含んでいる最後のデジタル値Aqを前記第1デジタル値として決定してもよい。更なる一実施形態によると、決定部122は、Aiのうちデジタル値「0」及び「1」を全て含むApないしAqのうち任意の値を前記第1デジタル値として決定してもよい。
一方、更なる一実施形態によると、決定部122は、Aiのうちデジタル値「0」及び「1」を全て含む有効区間の値であるApないしAqのうち、インデックスがpとqの中央であるAmを前記第1デジタル値として決定してもよい。Amがデジタル値「0」及び「1」の分布が比較的に均等である点から、このような実施形態は合理的である。
一方、更なる一実施形態によると、決定部122は、デジタル値A1ないしAnのうち少なくとも一部をビットごとに論理演算して前記第1デジタル値を算出してもよい。この実施形態は、第1デジタル値のランダム性が極めてに高いレベルとなり、セキュリティー分野において第1デジタル値の使用に適する。この実施形態に含まれている数個の例示的な方法について、図4ないし図5を参照して詳細に説明する。
図4は、一実施形態に係る処理部の動作を説明するための概念図である。図示するように、A1ないしAnのカラムインデックスが同一のデジタル値を論理演算して第1デジタル値Bのビットを算出する。
デジタル値Aiは、ビットシーケンスai1ないしaikで構成される。すると、決定部122は、カラムインデックスj(jは自然数)が同じa1jないしanjを論理演算して第1デジタル値のビットbjを算出する。論理演算には様々な例があるが、一実施形態によると、前記論理演算は、排他的OR(eXclusive OR:XOR)演算であってもよい。XOR演算は、入力値a1jないしanjに「1」が奇数個含まれていれば「1」を出力し、入力値a1jないしanjに「1」が偶数個含まれていれば「0」を出力する。
XOR演算を用いる実施形態によると、複数のデジタル値A1ないしAnを第1デジタル値Bの算出に使用することから、複数のデジタル値のエントロピーが和される、したがって、全体のエントロピーが大きく向上する効果が期待される。このようなXOR演算は、演算に用いるnが大きくなるほどビット値が「1」である確率が50%に近くなるため、第1デジタル値Bのランダム性が大きく高められる。本実施形態において、決定部122が算出したkビットの第1デジタル値B(B=b1b2b3b4b5…bk)はインタフェース123によって出力されてデジタル値生成装置100の出力として提供される。
一方、図4に示す実施形態では、A1ないしAnの全てをXOR演算に用いたが、これは一実施形態に過ぎず、他の多くの応用が可能である。以下では、異なる応用例を説明する。
図5は、一実施形態に係る処理部の動作を説明するための概念図である。図示するように、一実施形態によると、決定部122は、判読されたA1ないしAnのうちビット値が全て「0」であるか全てが「1」であるデジタル値を除外し、ビット値が「0」及び「1」を全て含んでいる範囲のデジタル値のみを前記XOR演算が利用することができる。例えば、ApないしAqのみをビットごとにXOR演算して第1デジタル値Bを算出する方法である。XOR演算に用いられる入力ビットがn個であった図4に示す実施形態に比べて、XOR演算に用いられるビット数は(q−p+1)個として小さくなったが、論理演算のための回路が減少し、エントロピーの高い入力値を予め選別して使用するという点で更なる長所があり。
一方、図4及び図5に示す実施形態では、カラムインデックスjが同一のビット値どうしにXOR演算したが、これも1つの例に過ぎず、XOR演算する方法は別の形態に変形され得る。したがって、カラムインデックスjが同一のビット値どうしに演算する他に、予め決定した異なる選定規則に基づくか、又はランダムに選択されたビットどうしに演算することも可能である。
例えば、他の個別PUFビットシーケンスのデジタル値が全て「0」ではなく、また、全てが「1」ではないもののうち、PUFインデックスiが同一のビット値どうしXOR演算することも可能である。さらに、ランダムに選択される個別PUFビットシーケンスを用いて異なる論理演算を行うことも可能である。このような様々な変形実施形態は、この明細書により当業者にとって自明に理解されるものであるため、さらに具体的な説明は省略する。
また、上記のようにXOR演算は他の論理演算によって代替されてもよく、論理演算の入力をどのように組み合わせるか他の実施形態でも説明可能である。
図6は、一実施形態によりデジタル値生成方法を示すフローチャートである。図示するフローチャートは、図3を参照して説明した実施形態の中から、PUFが生成したデジタル値Aiのうちデジタル値「0」及び「1」を全て含んでいる最初のデジタル値Apを、決定部122が前記第1デジタル値Bとして選択する実施形態に対応する。
最初のインデックスiは0に設定され、ステップ610において、インデックスi値が1ずつ増加する。そして、ステップ620において、現在のインデックスiが最終インデックスnと同一であるか否かをテストする。ステップ620の判断結果、まだ第1デジタル値Bが決定されていない状態でiがnと同一になると、エラーをリターンする(621)。そして、ステップ620の判断結果、iがnと同一でなければ、ステップ630において、現在のインデックスに対応するデジタル値Aiの全体ビットが「0」であるかを判断する。
ステップ630において、Aiの全体ビットが「0」と判断されれば、ステップ610に戻って次のインデックスに対して同一の過程を行い、Aiの全体ビットが「0」ではないと判断されれば、現在のインデックスiに対応するAiを第1デジタル値Bとして決定する(640)。図3を参照して説明した実施形態と比較すれば、ステップ640でB=Apになる。
図7は、他の一実施形態に係るデジタル値生成方法を示すフローチャートである。
図示されたフローチャートは、図3を参照して説明した実施形態の中から、PUFが生成したデジタル値Aiのうちデジタル値「0」及び「1」を全て含むApないしAqを識別し、インデックスpとインデックスqの中央値であるインデックスmに対応するデジタル値Amを、決定部122が前記第1デジタル値Bに選択する実施形態に対応する。最初のインデックスiは0に設定され、ステップ710でインデックスi値は1ずつ増加する。
ステップ720においてiがnと同一ではない場合、ステップ730において、Aiの全体ビットが「1」であるかを判断する。Aiの全体ビットが「1」ではない場合、ステップ740において、Aiの全体ビットが「0」であるかを判断する。ステップ740でAiの全体ビットが「0」であれば、ステップ710に戻ってビットインデックスを増加させた後、以後の過程を繰り返す。しかし、ステップ740でAiの全体ビットが「0」でなければ、現在のインデックスiをpに決定してステップ710に戻る。
一方、このような繰り返し(iteration)過程において、ステップ730でAiの全体ビットが「1」であればq値が決定される。q値が現在のインデックスiに決定されてもよく、図示していないが、現在のインデックスよりも小さい(i−1)がqに決定される(ステップ760)。また、Aiの全体ビットが「1」であるビットシーケンスを探すことができず、ステップ720でiがnと同一であれば、ステップ760において、現在のインデックスであるnがqに決定される。すると、ステップ770において、前記pとqの中央値であるmedian(p、q)を算出し、このインデックスmedian(p、q)に対応するAmedian(p、q)を第1デジタル値Bに決定する。
図8は、一実施形態に係るデジタル値生成方法を示すフローチャートである。ステップ810において、デジタル値生成装置100の生成部110が生成した複数のデジタル値が判読部121によって判読される。前記複数のデジタル値は、それぞれ図1に示すPUFによって生成されたものである。そして、前記判読過程は、図1及び図2を参照して例示的に説明したPUFからAiないしAnのデジタル値を判読する過程である。
前記のように、このような過程によってn個のデジタル値(それぞれがkビット)が決定部122に送信される。もちろん、n個のPUFが生成した値の全てが判読されなければならないものではなく、n個のうち一部のデジタル値のみが決定部122に送信されてもよい。すると、ステップ820において、決定部122が判読されたデジタル値を用いてデジタル値生成装置100が提供する乱数である第1デジタル値を決定する。
一実施形態によると、決定部122は、判読された複数のデジタル値A1ないしAnのうち、デジタル値「0」及び「1」を全て含む値ApないしAqを識別する。そして、ApないしAqのいずれか1つを選択し、これを第1デジタル値Bとして決定してもよい。前記選択は、予め決定された規則に基づいたものであってもよく、ランダムに選択されてもよい。
このような選択過程において可能な数個の実施形態が図3を参照して説明されている。一実施形態によると、決定部122は、Aiのうちデジタル値「0」及び「1」を全て含む最初のデジタル値Apを前記第1デジタル値Bとして決定してもよい。
他の一実施形態によると、決定部122は、Aiのうちデジタル値「0」及び「1」を全て含む最後のデジタル値Aqを前記第1デジタル値Bとして決定してもよい。更なる一実施形態によると、決定部122は、Aiのうちデジタル値「0」及び「1」を全て含むApないしAqのうち任意の値を前記第1デジタル値Bとして決定してもよい。一方、更なる一実施形態によると、決定部122は、Aiのうちデジタル値「0」及び「1」を全て含むApないしAqのうち、インデックスがpとqの中央であるAmを前記第1デジタル値Bとして決定してもよい。
一方、図4ないし図5を参照して説明したように、更なる一実施形態によると、決定部122は、デジタル値A1ないしAnのうち少なくとも一部をビットごとに論理演算して前記第1デジタル値Bを算出することもできる。一実施形態によると、決定部122は、カラムインデックスj(jは自然数)が同じa1jないしanjを論理演算、例えば、XOR演算して第1デジタル値Bに含まれるビット値bjを算出してもよい。詳しい内容は、図4を参照して上述した通りである。
また、図5を参照して上述したように、他の一実施形態によると、決定部122は、判読されたA1ないしAnのうちビット値が全て「0」であるか全て「1」であるデジタル値を除外し、ビット値が「0」及び「1」を全て含む範囲のデジタル値ApないしAqをビットごとにXOR演算して第1デジタル値Bを算出することができる。
ステップ820において、第1デジタル値を決定する過程について、図3ないし図5を参照して例示的に説明した実施形態の他にも様々な変形が可能である。また、論理演算する場合、XOR演算の他にも、デジタル値のエントロピーを高めることができるいずれの演算も可能であることは同一である。このように第1デジタル値Bが決定されれば、ステップ830において、デジタル値生成装置100が提供する乱数としてBが提供されてもよい。
このような様々な実施形態によって、一部のパラメータを適用したPUFでランダムなデジタル値が生成されなくても、該当のPUFを含む生成部110のチップ全体は利用可能であるため、PUFの製造収率が高くなる。また、様々なパラメータを適用したPUFを一回に実現して別途の1次パスを向上する時間が節約されることから、PUF工程に所要する時間を最小化できる。
また、最終的に提供される第1デジタル値Bは、エントロピーが極めて高まって真に乱数として扱われる確率が高い。したがって、セキュリティー分野などのランダム性が重要な分野応用にPUFを使用できることで信頼度が大きく向上する。
以上述した実施形態は、ハードウェア構成要素、ソフトウェア構成要素、及び/又はハードウェア構成要素及びソフトウェア構成要素の組合で実現してもよい。例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ(digital signal processor)、マイクロコンピュータ、FPA(field programmable array)、PLU(programmable logic unit)、マイクロプロセッサー、または、命令を実行して応答できる異なる装置のように、1つ以上の汎用コンピュータまたは特殊目的のコンピュータを用いて実現されてもよい。処理装置は、オペレーティングシステム(OS)及び前記オペレーティングシステム上で行われる1つ以上のソフトウェアアプリケーションを行ってもよい。また、処理装置は、ソフトウェアの実行に応答してデータをアクセス、格納、操作、処理及び生成してもよい。理解の便宜のために、処理装置は1つ使用されるものと説明される場合もあるが、当該の技術分野で通常の知識を有する者は、処理装置が複数の処理要素及び/又は複数類型の処理要素を含んでいることが分かる。例えば、処理装置は、複数のプロセッサまたは1つのプロセッサ及び1つのコントローラを含んでもよい。また、並列プロセッサのような、他の処理構成も可能である。
ソフトウェアはコンピュータプログラム、コード、命令、またはこのうちの1つ以上の組合せを含んでもよく、希望の通りに動作するよう処理装置を構成したり独立的または結合的に処理装置を命令してもよい。ソフトウェア及び/又はデータは、処理装置によって解釈されたり処理装置に命令またはデータを提供するためどのような類型の機械、構成要素、物理的装置、仮想装置、コンピュータ格納媒体または装置、送信される信号波に永久的または一時的に具体化できる。ソフトウェアは、ネットワークに接続されたコンピュータシステム上に分散し、分散された方法で格納されたり実行されてもよい。ソフトウェア及びデータは1つ以上のコンピュータで判読可能な記録媒体に格納されてもよい。
実施形態に係る方法は、多様なコンピュータ手段を介して様々な処理を実行することができるプログラム命令の形態で実現され、コンピュータで読取可能な記録媒体に記録されてもよい。コンピュータ読取可能な媒体は、プログラム命令、データファイル、データ構造などのうち1つまたはその組合せを含んでもよい。媒体に記録されるプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり、使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、光ディスクのような光磁気媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれてもよい。プログラム命令の例には、コンパイラによって作られるような機械語コードだけでなく、インタープリタなどを用いてコンピュータによって実行できる高級言語コードが含まれる。前記したハードウェア装置は、本発明の動作を行うために1つ以上のソフトウェアモジュールとして動作するように構成されてもよく、その逆も同様である。
上述したように、本発明を限定された実施形態と図面によって説明したが、本発明は、上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、このような実施形態から多様な修正及び変形が可能である。したがって、本発明の範囲は、開示された実施形態に限定されるものではなく、特許請求の範囲だけではなく特許請求の範囲と均等なものなどによって定められるものである。