(57)【要約】      （修正有）【課題】電子機器に入力される認証情報の漏洩の危険性を低減する。【解決手段】コントローラ１０１に接続されたメモリ１０３であって、前記コントローラ１０１に接続される外部インタフェースと、認証情報ＡＫＥを前記コントローラ１０１から前記外部インタフェースを介して受信する制御部１１３とを有し、前記認証情報ＡＫＥは、第１値を有し、前記第１値は、第１パラメータ値又はそれの基になる値であり、前記制御部１１３は、前記認証情報ＡＫＥ内の前記第１値に従う第１パラメータ値を用いた制御を行う。【選択図】図１
2012038059.tif 000002
【特許請求の範囲】
【請求項１】
第１の電子機器に接続された第２の電子機器であって、
前記第１の電子機器に接続される外部インタフェースと、
認証情報を前記第１の電子機器から前記外部インタフェースを介して受信する制御部と
を有し、
前記認証情報は、第１値を有し、
前記第１値は、第１パラメータ値又はそれの基になる値であり、
前記制御部は、前記認証情報内の前記第１値に従う第１パラメータ値を用いた制御を行う、
電子機器。
【請求項２】
請求項１記載の電子機器であって、
第２値を記憶している記憶領域を有し、
前記第２値は、第２パラメータ値又はそれの基になる値であり、
前記第２パラメータ値は、この電子機器に固有のバラツキ値に従い補正されたパラメータ値であり、
前記固有のバラツキ値は、同じ種類の複数の第２の電子機器について第２の電子機器によってバラつく値である複数のバラツキ値のうちの１つであり、
前記制御部は、前記第１値と、前記記憶領域に記憶されている前記第２値とを比較し、それらの値が互いに適合しない場合に、その第１値に従う第１パラメータ値を用いた制御を行う、
電子機器。
【請求項３】
請求項１記載の電子機器であって、
複数の記憶領域を有し、
前記第１パラメータ値として、前記複数の記憶領域のうちの特定の記憶領域に割り当てられているアドレスがあり、
前記複数の記憶領域が、複数の第２値を記憶しており、
前記第１パラメータ値を用いた制御とは、前記複数の記憶領域のうちの、前記受信した認証情報が含むアドレスが割り当てられている記憶領域から、第２値を読み出すことであり、
前記制御部は、その読み出された第２値に従う第２パラメータ値を用いた制御を行う、
電子機器。
【請求項４】
請求項１記載の電子機器であって、
複数の記憶領域を有し、
前記認証情報が、第１の第１値と、第２の第１値とを含み、
前記第１の第１値に従う第１のパラメータ値が、前記複数の記憶領域のうちの特定の記憶領域に割り当てられているアドレスであり、
前記複数の記憶領域が、複数の第２値を記憶しており、
前記第１パラメータ値を用いた制御とは、前記複数の記憶領域のうちの、前記受信した認証情報が含むアドレスが割り当てられている記憶領域から、第２値を読み出すことであり、
前記制御部は、前記認証情報内の第２の第１値と前記読み出した第２値とを比較し、それらの値が互いに適合していなければ、前記第２の第１値に従う第１パラメータ値又はその第２値に従う第２パラメータ値を用いた制御を行う、
電子機器。
【請求項５】
請求項２又は４記載の電子機器であって、
前記制御部は、前記第１値及び第２値が互いに適合していない場合、互いに適合していることに対応した通知である認証成功通知を前記第１の電子機器に送信して、前記制御を行う、
電子機器。
【請求項６】
請求項２又は４記載の電子機器であって、
前記制御部は、前記第１値及び第２値同士の比較の結果を前記第１の電子機器に通知することなく、前記制御を行う、
電子機器。
【請求項７】
請求項２又は４記載の電子機器であって、
前記認証情報が、付加的に行われる動作を表す値であるオプション動作値を含み、
前記制御部が、前記オプション動作値通りの付加的な動作が行われたか否かに応じた制御を行う、
電子機器。
【請求項８】
請求項７記載の電子機器であって、
前記オプション動作値は、ダミーサイクル数であり、
前記オプション動作値通りの付加的な動作が行われたか否かとは、前記認証情報内のダミーサイクル数と同じ数のダミーサイクルが検出されたか否かである、
電子機器。
【請求項９】
請求項２又は４記載の電子機器であって、
前記第１値と前記第２値との差が無ければ、前記制御部によって、所望される動作である所望動作が実行され、
前記第１値と前記第２値との差が有れば、前記制御部によって、前記所望動作以外の動作である非所望動作が実行される、
電子機器。
【請求項１０】
請求項９記載の電子機器であって、
前記非所望動作は、前記第１及び第２パラメータ値と異なるパラメータ値である特定のパラメータ値を基に行われ、
前記特定のパラメータ値は、前記第１値と前記第２値との差の大きさに応じた値である、
電子機器。
【請求項１１】
請求項１０記載の電子機器であって、
前記特定のパラメータ値は、前記第１値と前記第２値との差に応じた大きさのリーク電流を流すためのパラメータ値である、
電子機器。
【請求項１２】
請求項１０記載の電子機器であって、
前記特定のパラメータ値は、前記第１値と前記第２値との差に応じた発振周波数に従う発振を行うためのパラメータ値である、
電子機器。
【請求項１３】
請求項１２記載の電子機器であって、
前記差が大きいほど、前記発振周波数が大きい、
電子機器。
【請求項１４】
請求項９記載の電子機器であって、
前記非所望動作は、前記第１及び第２パラメータ値と異なるパラメータ値である特定のパラメータ値を基に行われ、
前記パラメータ値は、前記第１値と前記第２値との差の大きさに依存しないランダムな値である、
電子機器。
【請求項１５】
請求項１記載の電子機器であって、
前記制御部が、前記認証情報内の前記第１値に従う第１パラメータ値を基に、制御対象及び／又はその使用ケースを決定する、
電子機器。
【請求項１６】
請求項１５記載の電子機器であって、
前記外部インタフェースが、前記第１の電子機器から供給される対象が通るインタフェースである対象インタフェースを含み、
前記制御対象は、前記第１パラメータ値を基に、複数の制御対象から選択された対象であり、
前記複数の制御対象は、
（１）前記対象インタフェースを通じて供給された対象、又は、
（２）その供給された対象を基に、前記第１パラメータ値を用いて生成された対象、
を含む、
電子機器。
【請求項１７】
請求項１記載の電子機器であって、
前記認証情報は、前記第１の電子機器に予め記憶されている情報であって前記第１の電子機器のユーザがマニュアルで入力した情報ではない情報である、
電子機器。
【請求項１８】
第１の電子機器に接続された第２の電子機器であって、
前記第１の電子機器に接続される外部インタフェースと、
第１値を含んだ認証情報を前記第１の電子機器から前記外部インタフェースを介して受信する制御部と
を有し、
前記第１値と第２値との差が無ければ、前記制御部によって、所望される動作である所望動作が実行され、
前記第１値と前記第２値との差が有れば、前記制御部によって、前記所望動作以外の動作である非所望動作が実行される、
電子機器。
【請求項１９】
認証情報を送信する第１の電子機器と、
前記第１の電子機器から前記認証情報を受信する第２の電子機器と
を有し、
前記認証情報は、第１値を有し、
前記第１値は、第１パラメータ値又はそれの基になる値であり、
前記第２の電子機器は、前記認証情報内の前記第１値に従う第１パラメータ値を用いた制御を行う、
電子機器システム。
【請求項２０】
第１値を含んだ認証情報を送信する第１の電子機器と、
前記第１の電子機器から前記認証情報を受信する第２の電子機器と
を有し、
前記第１値と第２値との差が無ければ、前記第２の電子機器によって、所望される動作である所望動作が実行され、
前記第１値と前記第２値との差が有れば、前記第２の電子機器によって、前記所望動作以外の動作である非所望動作が実行される、
電子機器システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認証情報を受信する電子機器に関する。
【背景技術】
【０００２】
例えば、ユーザが、第１の電子機器を用いて第２の電子機器を使用する場合、第１の電子機器を通じて第２の電子機器にパスワードを入力する。第２の電子機器は、入力されたパスワードが正しいと判断した場合、その第２の電子機器の使用を許可する（例えば特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−１４８２７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
悪意のあるユーザは、第２の電子機器を使用できないとわかった場合、第２の電子機器を使用するために認証情報を不正な方法で取得しようとする。このため、認証情報が不正に知られてしまうおそれがある。言い換えれば、認証情報の漏洩の危険性がある。
【０００５】
そこで、本発明の目的は、電子機器に入力される認証情報の漏洩の危険性を低減することにある。
【課題を解決するための手段】
【０００６】
第１の電子機器に予め認証情報が設定される。認証情報は、パラメータ値を含む。第２の電子機器が、その認証情報を第１の電子機器から受信し、その認証情報内のパラメータ値を用いた制御を行う。
【０００７】
また、認証情報がパラメータ値を含み、第２の電子機器が、その認証情報の正当性に関わらず、認証情報内のパラメータ値を用いた制御を行う。従って、ユーザは、第２の電子機器が受信した認証情報が正当であるか否かわからない。ケースによっては、第２の電子機器に認証情報が入力されたか否かもわからない。このため、認証情報を不正に取得するという動機が悪意のあるユーザに与えられない。それ故、認証情報の漏洩の危険性を低減することができる。
【０００８】
本明細書において、「認証情報」とは、第１の電子機器の正当性に関する情報であって、第２の電子機器に所望動作（所望される動作）を実行させるための情報である。従って、第１の電子機器が、第２の電子機器にとって正当な機器であれば、認証情報もその第２の電子機器にとって正当である。それ故、その第２の電子機器が認証情報内のパラメータ値を用いた制御を行うことで、その第２の電子機器が所望動作を行うことができる。一方、第１の電子機器が、第２の電子機器にとって不当な機器であれば、認証情報もその第２の電子機器にとって不当な情報である。それ故、その第２の電子機器が認証情報内のパラメータ値を用いた制御を行っても、その第２の電子機器が所望動作を行うことはできない。
【０００９】
このため、不当な認証情報が第２の電子機器に入力された場合、第２の電子機器が認証情報の不正取得の動機をユーザに与えることなく、非所望動作（第２の電子機器に正当な認証情報が入力された場合に行われる操作である所望動作以外の動作）が行われることになる。別の言い方をすれば、第１の電子機器と第２の電子機器との組合せが正当な場合にのみ、第２の電子機器が所望動作を行い、その組合せが不当な場合には、第２の電子機器が非所望動作を行う。
【００１０】
認証情報内のパラメータ値は、その認証情報が設定される第１の電子機器に接続される第２の電子機器に固有のバラツキ値に従い補正された値を含んで良い。
【００１１】
「所望動作」は、例えば、正しいパラメータ値（例えば最適なパラメータ値）を使用した結果として行われる動作である。
【００１２】
「非所望動作」は、前述したように、所望動作以外の動作である。具体的には、例えば、非所望動作としては、下記の２種類の動作、
（１）第１種の非所望動作、
（２）第２種の非所望動作、
のうちの一方又は両方が行われる。
【００１３】
第１種の非所望動作は、第１の電子機器から入力された誤った認証情報（以下、入力認証情報）内のパラメータ値を使用して行われる動作である。従って、第１種の非所望動作によれば、動作の非所望の度合いは、外部から入力されたパラメータ値に依存する。
【００１４】
第２種の非所望動作は、入力認証情報に基づいて取得されたパラメータ値を使用して行われる動作である。従って、第２種の非所望動作によれば、動作の非所望の度合いは、第１種の非所望動作と違い、内部で取得されたパラメータ値に依存する。このため、非所望の度合いを、任意の度合いにすることができる。
【００１５】
第２種の非所望動作の一例によれば、入力認証情報と所定の基準情報（例えば、正当な認証情報）との差（以下、ずれ幅）を基に、取得するパラメータ値（例えば、電流、電圧、時間又は温度に関するパラメータ値）が決定され、そのパラメータ値を用いた動作が行われる。その動作は、第１の電子機器にとって必要な動作であっても良いし、第１の電子機器にとって不必要な動作であっても良い。
【００１６】
取得されるパラメータ値によって、センサ等によって検出可能な対象（例えば、所定の回路素子を流れる電流、所定の回路素子に印加される電圧、所定の動作周期、或いは、所定の回路素子の温度）の大きさが異なる。例えば、ずれ幅が大きい場合には、所望動作により消費される電力とは別に大きい電力を消費するためのパラメータ値が取得され、ずれ幅が小さい場合には、所望動作により消費される電力とは別に小さい電力を消費するためのパラメータ値が取得されてよい。
【００１７】
ここで、入力認証情報及び基準情報がいずれも１０進数で表現された数値の場合、基準情報から入力情報を減じることで、ずれ幅を算出することが可能である。
【００１８】
また、入力認証情報及び基準情報がいずれも２進数で表現された数値の場合、基準情報「0101」に対して、第１の入力認証情報「0110」と第２の入力認証情報「1101」のどちらがずれ幅が大きいかを判断することは難しい。この場合、例えば、「0000」から「1111」までシーケンシャルに最下位ビットからカウントしていった場合、第１の入力認証情報「0110」と基準情報「0101」との差（ずれ幅）は「１」となり、第２の入力認証情報「1101」と基準情報「0101」との差（ずれ幅）は「８」となる。入力認証情報と基準情報との差（ずれ幅）は、入力認証情報及び基準情報のそれぞれのビット数と、どのビットからカウントしていくか等の規則によって異なる。
【００１９】
取得されるパラメータ値が、シーケンシャルに算出されたずれ幅を用いてシーケンシャルに決定されたパラメータ値であると、正しい認証情報の推測が容易になってしまう。
【００２０】
そこで、入力認証情報が正当な認証情報でない場合（例えばずれ幅が０ではない場合）、取得されるパラメータ値は、ずれ幅に関わらずランダムに決定された値であっても良い。また、入力認証情報が正当な認証情報でない場合、ずれ幅は、ランダムに算出されても良い。
【００２１】
従って、第２種の非所望動作としては、
（１）シーケンシャルに算出されたずれ幅を用いてシーケンシャルに決定されたパラメータ値を使用する動作、
（２）ランダムに算出されたずれ幅を用いてシーケンシャルに決定されたパラメータ値を使用する動作、
（３）ランダムに決定されたパラメータ値を使用する動作、
がある。
【００２２】
本発明は、認証情報が入力されるあらゆる電子機器、及び、そのような電子機器を含んだ電子機器システムに適用可能である。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施例１に係るメモリシステムを示す。
【図２】コントローラ１０１及びメモリ１０３の構成を示す。
【図３】ＡＴＣ（Analog  Trim  Compartor）コントローラ２１８の構成を示す。
【図４】図３に示したＡＴＣコントローラ２１８の信号入出力パターンを示す。
【図５】実施例１に係るメモリシステムのタイミングチャートである。
【図６】本発明の実施例２に係るメモリシステムの構成を示す。
【図７】Ｖｍａジェネレータ６６１の構成を示す。
【図８】Ｖｍａセレクタ６６２の構成を示す。
【図９】実施例２に係るメモリシステムのタイミングチャートである。
【図１０】リーク電流制御回路の構成を示す。
【図１１】発振周波数制御回路の構成を示す。
【発明を実施するための形態】
【００２４】
以下、図面を参照して本発明の幾つかの実施例を説明する。なお、以下の実施例では、第２の電子機器が、ＮＡＮＤ型のフラッシュメモリ装置（以下、メモリ）であり、第１の電子機器が、メモリのコントローラであり、電子機器システムが、メモリシステムであるとする。
【実施例１】
【００２５】
図１は、本発明の実施例１に係るメモリシステムを示す。
【００２６】
メモリ１０３にコントローラ１０１が接続される。
【００２７】
コントローラ１０１は、ＡＫＥ（Analog  Key  Equipment）提供部１１１を有する。ＡＫＥ提供部１１１は、予めＡＫＥを記憶している。ＡＫＥは、認証情報の一種である。ＡＫＥ提供部１１１は、ＡＫＥを、コントローラ１０１に接続されているメモリ１０３に送信する。
【００２８】
メモリ１０３は、制御部１１３と、メモリ部１１５とを有する。制御部１１３は、コントローラ１０１からＡＫＥを受信し、そのＡＫＥに基づく動作を行う。メモリ部１１５は、メモリセルアレイやそのデコーダを含む。
【００２９】
本実施例において、ＡＫＥは、メモリ１０３の動作で使用される１種類以上のパラメータ値を含む。少なくとも１つのパラメータ値は、例えば、コントローラ１０１に接続されるべきメモリ１０３にとって最適なパラメータ値である。そのようなパラメータ値として、例えば、トリム値（又はそのトリム値を生成するための基になるデータ（以下、トリムデータ））がある。トリム値は、メモリ１０３に固有の性質（バラツキ値）に従い補正された値の一例である。
【００３０】
すなわち、例えば、複数のメモリ１０３が、同じウェハから切り出され且つそれぞれが良品であったとしても、異なった性質となってしまうことが多い。例えば、リード時に印加すべき最適なワードライン電圧が５Ｖ（ボルト）であるメモリ１０３もあれば、その最適なワードライン電圧が４．５Ｖであるメモリ１０３もある。このように、複数のメモリ１０３が同じ種類であっても、メモリ１０３毎に性質が異なることが多い（これは、メモリ１０３以外の電子機器でも同じである）。それ故、一般に、メモリ１０３の動作のためのパラメータ値は、メモリ１０３の試験の結果に基づいて調整される。つまり、メモリ１０３毎に、メモリ１０３に固有のトリム値が設定される。
【００３１】
一方、認証情報は、メモリ１０３にとって固有であることが好ましい。
【００３２】
そこで、本実施例では、メモリ１０３の性質がメモリ１０３毎に異なってしまうという特性を活かした工夫、具体的には、メモリ１０３に入力される認証情報（ＡＫＥ）が、そのメモリ１０３に固有のトリムデータを含むことが採用される（トリムデータに代えてトリム値が含まれても良い）。本実施例では、認証情報の一例を、Analog  Key  Equipmentを略して「ＡＫＥ」と呼ぶ。
【００３３】
本実施例によれば、メモリ１０３と、そのメモリ１０３に固有のトリムデータを含んだＡＫＥを予め記憶しているコントローラ１０１との組合せでのみ、メモリ１０３が安定した動作を行うことができる。
【００３４】
ＡＫＥは、トリムデータを含むが、そのトリムデータは、暗号化或いはハッシュ化されている等、何らかの加工が施されていても良い。メモリ１０３に固有のＡＫＥが、予め、非公開に、メモリベンダ（例えば、メモリ１０３のメーカ或いはサプライヤ）からコントローラベンダ（例えば、コントローラ１０３のメーカ或いはサプライヤ）のみに提供される。コントローラベンダは、或るメモリ１０３についてメモリベンダから提供されたＡＫＥをコントローラ１０１に設定する。そのコントローラ１０１が、上記或るメモリ１０３にとってのコントローラとなる。そして、そのコントローラ１０１に設定されているＡＫＥが、メモリ１０３の使用のためのキーとなる。コントローラ１０１は、メモリ１０３にアクセスする際に、予め記憶しているＡＫＥを、そのメモリ１０３に送信する。メモリ１０３は、コントローラ１０３からのアクセスの前にＡＫＥを受信する。受信したＡＫＥが正当か否かによって、コントローラ１０３からのアクセスが安定して行われるか否かが決まる。
【００３５】
以下、本実施例をより詳細に説明する。
【００３６】
図２は、コントローラ１０１及びメモリ１０３の構成を示す。
【００３７】
コントローラ１０１において、ＡＫＥ提供部１１１が、ＡＫＧ（Analog  Key  Generator）２０１と、Ｉ／Ｏ（Input/Output）回路２０３とを有する。
【００３８】
ＡＫＧ２０１は、ＡＫＥを出力する。本実施例では、出力されるＡＫＥは、メモリベンダから予め提供され記憶されている情報それ自体であるが、メモリベンダから提供された情報を加工することにより生成された情報でも良い。ＡＫＥは、例えば、パラメータ値として、電圧値（例えば、リード時及び／又はプログラム時に印加すべきワードライン電圧の値）に関するトリムデータと、トリムテーブルアドレスとを含んで良い。また、それらのパラメータ値は、ＡＫＥに含まれる値を基に生成されても良い。なお、トリムテーブルアドレスは、トリムテーブル２１３のアドレス（行と列のそれぞれを表すアドレス）である。
【００３９】
Ｉ／Ｏ回路２０３が、メモリ１０３のＩ／Ｏ回路２１１にＩ／Ｏバス２５１を介して接続される。Ｉ／Ｏ回路２０３には、ＡＫＧ２０１から出力されたＡＫＥが入力される。Ｉ／Ｏ回路２０３は、入力されたＡＫＥを出力する。出力されたＡＫＥは、Ｉ／Ｏ回路２０３に接続されているメモリ１０３に入力される。なお、Ｉ／Ｏ回路２０３は、入力されたＡＫＥを加工することなく出力しても良いし、入力されたＡＫＥを暗号化など加工して出力しても良い。Ｉ／Ｏ回路２０３は、ＡＫＥ以外の情報として、例えば、Ｉ／Ｏコマンド（例えば、ライトコマンド或いはリードコマンド）、ステータス取得コマンド、及び、データ（メモリセルアレイ２２０に対して入出力されるデータ）を出力することができる。
【００４０】
コントローラ１０１からメモリ１０３に、複数種類の信号が入力される。複数種類の信号は、例えば、下記の信号、
（＊）メモリ１０３の有効／無効を制御するチップイネーブル信号（／ＣＥ）、
（＊）データのライト（プログラム）のために有効とされるライトイネーブル信号（／ＷＥ）、
（＊）データのリードのために有効とされるリードイネーブル信号（／ＲＥ）、
（＊）コマンドのライト（ラッチ）のために有効とされるコマンドラッチイネーブル信号（ＣＬＥ）、
（＊）アドレスのライト（ラッチ）のために有効とされるアドレスラッチイネーブル信号（ＡＬＥ）、
を含んで良い。ＡＫＥは、例えば、／ＷＥのトグルにより、Ｉ／Ｏ回路２０３からＩ／Ｏバスを経由して出力されて良い。
【００４１】
メモリ１０３において、メモリ部１１５が、メモリセルアレイ２２０と、Ｘデコーダ２２１と、センスアンプ２２２と、データレジスタ２２３と、Ｙデコーダ２２４とを含む。Ｘデコーダ２２１によって選択されたワードラインとＹデコーダ２２４によって選択されたビットラインとに対応したメモリセルについて、データの入出力（リード又はプログラム）が行われる。入出力されるデータは、センスアンプ２２２に一時記憶される。また、データは、データレジスタ２２３を通じて、メモリセルアレイ２２０に対して入出力される。
【００４２】
メモリ１０３において、制御部１１３が、論理制御回路２１２と、Ｉ／Ｏ回路２１１と、トリムテーブル記憶領域２１３と、Ｘポインタ２１４と、Ｙポインタ２１５と、コマンドデコーダ２１６と、ファンクションコントローラ２１７と、ＡＴＣ（Analog  Trim  Compartor）コントローラ２１８と、アナログジェネレータ２１９とを含む。
【００４３】
論理制御回路２１２は、コントローラ１０１から各種信号を受信する。論理制御回路２１２は、各種信号のレベル（Ｈｉｇｈ、Ｌｏｗ）に応じてＩ／Ｏ回路２１１を制御する。
【００４４】
トリムテーブル記憶領域２１３は、トリムテーブルを記憶する。トリムテーブル記憶領域２１３は、複数のサブ記憶領域で構成されており、各サブ記憶領域が、ＴＤＡＴ（Trim  DATa）を記憶する。ＴＤＡＴは、トリム値の基になるデータである。トリムテーブル記憶領域２１３は、複数種類のトリム値にそれぞれ対応する複数種類のＴＤＡＴを記憶する。トリム値としては、例えば、リード時、ベリファイ時及びプログラム時のうちの少なくとも１つについてのワードライン電圧値及び／又はビットライン電圧値、時間パラメータ値（例えば、リード時のラッチタイミング）、電流値など、種々のパラメータ値のトリム値を採用することができる。
【００４５】
Ｘポインタ２１４は、トリムテーブル記憶領域２１３を構成する複数の行のうち、Ｉ／Ｏ回路２１１から出力されたＴＡＤＤ（Trim  ADDress）に従うＸアドレス値に該当する行を指定する回路である。
【００４６】
Ｙポインタ２１５は、トリムテーブル記憶領域２１３を構成する複数の列のうち、Ｉ／Ｏ回路２１１から出力されたＴＡＤＤに従うＹアドレス値に該当する列を指定する回路である。Ｙポインタ２１５で指定された列とＸポインタ２１４で指定された行に該当するサブ記憶領域にあるＴＤＡＴが読み出される。読み出されたＴＤＡＴは、ＡＴＣコントローラ２１８に入力される。
【００４７】
Ｉ／Ｏ回路２１１は、情報（例えば、コントローラ１０１から受信した情報）を一時記憶する記憶領域（例えばレジスタ）を有して良い。Ｉ／Ｏ回路は、例えば、下記の機能を有する。
（Ａ）Ｉ／Ｏ回路２１１は、Ｉ／Ｏコマンドをコントローラ１０１から受信した場合、下記を行う。
（ａ１）Ｉ／Ｏ回路２１１は、受信したＩ／Ｏコマンドを出力する。出力されたＩ／Ｏコマンドは、コマンドデコーダ２１６に入力される。
（ａ２）Ｉ／Ｏ回路２１１は、受信したＩ／Ｏコマンドで指定されている論理ブロックアドレスに対応するＭＡＤＤ（Memory  ADDress）（物理ブロックアドレス）を特定する。Ｉ／Ｏ回路２１１は、特定されたＭＡＤＤに従うＸアドレス値を、Ｘデコーダ２２１に出力し、且つ、特定されたＭＡＤＤに従うＹアドレス値を、Ｙデコーダ２２４に出力する。
（ａ３）Ｉ／Ｏコマンドがリードコマンドの場合、Ｉ／Ｏ回路２１１は、上記特定されたＭＡＤＤに対応するメモリセルからリードされたデータをデータレジスタ２２３から受け、そのデータを、コントローラ１０１に出力する。
（ａ４）Ｉ／Ｏコマンドがライトコマンド（プログラムコマンド）の場合、Ｉ／Ｏ回路２１１は、データも受け、そのデータをデータレジスタ２２３に出力する。データレジスタ２２３から、上記特定されたＭＡＤＤに対応するメモリセルに、そのデータがプログラムされる。
（Ｂ）Ｉ／Ｏ回路２１１は、ＡＫＥを受信した場合、下記を行う。
（ｂ１）Ｉ／Ｏ回路２１１は、ＡＫＥを基に、ＡＫＭ（Analog  Key  Memory）とＦＧＦ（Force  Go  Flag）とを生成し、ＡＫＭ及びＦＧＦを出力する。ＡＫＭ及びＦＧＦは、ＡＫＥに含まれている値を基に生成された値であっても良いし、ＡＫＥに含まれているパラメータ値それ自体であっても良い。出力されたＡＫＭ及びＦＧＦは、ＡＴＣコントローラ２１８に入力される。
（ｂ２）Ｉ／Ｏ回路２１１は、ＡＫＥを基に、ＴＡＤＤを生成し、そのＴＡＤＤを出力する。ＴＡＤＤに従うＸアドレス値が、Ｘポインタ２１４に入力され、ＴＡＤＤに従うＹアドレス値が、Ｙポインタ２１５に入力される。
【００４８】
コマンドデコーダ２１６は、Ｉ／Ｏ回路２１１から入力されたコマンドの種類（例えば、リード、ライト）をファンクションコントローラ２１７に通知する。また、コマンドデコーダ２１６は、ＡＫＳＣＭＤ（Analog  Key  Set  CoMmanD）及びＡＫＣＣＭＤ（Analog  Key  Confirm  CoMmanD）を出力する。出力されたＡＫＳＣＭＤ及びＡＫＣＣＭＤは、ＡＴＣコントローラ２１８に入力される。ＡＫＳＣＭＤは、ＡＫＭと、トリムテーブル２１３から取得されたＴＤＡＴとの比較をすることのコマンドである。ＡＫＣＣＭＤは、比較の結果を出力することのコマンドである。なお、ＡＫＭが、ＴＤＡＴに対応するデータ以外のデータを含んでいる場合には、ＡＫＭの一部（ＴＤＡＴに対応するデータ）のみが、ＴＤＡＴと比較されて良い。
【００４９】
ＡＴＣコントローラ２１８は、入力されたＡＫＭ、ＦＧＦ及びＴＤＡＴを基に、出力する各種信号（ＵＮＭＡＴＣＨ、ＭＴＲＩＭ（Memory  ＴＲＩＭ）及びＧＦＬＡＧ（Go  ＦＬＡＧ））の値を制御する。具体的には、例えば、ＡＴＣＫコントローラ２１８は、ＡＫＭとＴＤＡＴとを比較する比較回路と、その比較の結果を保持する記憶領域（例えばレジスタ）とを有する。ＵＮＭＡＴＣＨは、ＡＫＭとＴＤＡＴが互いに不一致であるか否かを表す信号である。ＵＮＭＡＴＣＨは、Ｉ／Ｏ回路２１１に入力され、Ｉ／Ｏ回路２１１から、コントローラ１０１に出力される。ＭＴＲＩＭは、１種類以上のトリム値である。ＭＴＲＩＭは、アナログジェネレータ２１９に入力される。ＧＦＬＡＧは、メモリ部１１５の動作を許可するか否かを表す信号である。ＧＦＬＡＧは、ファンクションコントローラ２１７に入力される。ＧＦＬＡＧのレベルが第１のレベル（例えばＨｉｇｈ）の場合、メモリ部１１５の動作が許可され、ＧＦＬＡＧのレベルが第２のレベル（例えばＬｏｗ）の場合、メモリ部１１５の動作が許可されない。
【００５０】
ファンクションコントローラ２１７は、コマンドデコーダ２１６から通知されたコマンド種類と、入力されたＧＦＡＬＧの値とを基に、アナログジェネレータ２１９と、メモリ部１１５とを制御する。例えば、ＭＴＲＩＭが、リード時のワードライン電圧値と、プログラム時のワードライン電圧値とを含んでいるとする。この場合、例えば、ファンクションコントローラ２１７は、下記の通りに動作する。
（Ａ）コマンド種類が「リード」であって、ＧＦＬＡＧのレベルが第１のレベル（例えばＨｉｇｈ）の場合、ファンクションコントローラ２１７は、ＭＴＲＩＭのうちのリード時のワードライン電圧値をアナログジェネレータ２１９に指定する。また、ファンクションコントローラ２１７は、Ｘデコーダ２２１、センスアンプ２２２及びＹデコーダ２２４に、動作することの指令（動作指令）を出す。これにより、その動作指令を受けたＸデコーダ２２１が、ＭＡＤＤに従うＸアドレス値に対応するワードラインを選択する。選択されたワードラインに、アナログジェネレータ２１９から指定された、リード時のワードライン電圧値（トリム値）が印加される。また、上記動作指令を受けたＹデコーダ２２４が、ＭＡＤＤに従うＹアドレス値に対応するビットラインを選択する。選択されたビットラインに、リード時のビットライン電圧値が印加される。
（Ｂ）コマンド種類が「ライト」であって、ＧＦＬＡＧのレベルが第１のレベル（例えばＨｉｇｈ）の場合、ファンクションコントローラ２１７は、ＭＴＲＩＭのうちのプログラム時のワードライン電圧値をアナログジェネレータ２１９に指定する。また、ファンクションコントローラ２１７は、Ｘデコーダ２２１、センスアンプ２２２及びＹデコーダ２２４に、動作指令を出す。これにより、その動作指令を受けたＸデコーダ２２１が、ＭＡＤＤに従うＸアドレス値に対応するワードラインを選択する。選択されたワードラインに、アナログジェネレータ２１９から指定された、プログラム時のワードライン電圧値（トリム値）が印加される。また、上記動作指令を受けたＹデコーダ２２４が、ＭＡＤＤに従うＹアドレス値に対応するビットラインを選択する。選択されたビットラインに、プログラム時のビットライン電圧値が印加される。
（Ｃ）ＧＦＬＡＧのレベルが第２のレベル（例えばＬｏｗ）の場合、ファンクションコントローラ２１７は、Ｘデコーダ２２１、センスアンプ２２２及びＹデコーダ２２４に、動作指令を出さない（例えば、動作しないことの指令（非動作指令）を出す）。
【００５１】
アナログジェネレータ２１９は、ファンクションコントローラ２１７から指定されたトリム値（入力されたＭＴＲＩＭに含まれているトリム値）に従う信号を生成し、その信号（例えばアナログ信号）を出力する。例えば、指定されたトリム値が、リード時又はプログラム時のワードライン電圧値であれば、アナログジェネレータ２１９は、そのワードライン電圧値通りのワードライン電圧を印加する。
【００５２】
図３は、ＡＴＣコントローラ２１８の構成を示す。
【００５３】
ＡＴＣコントローラ２１８には、例えば、５種類の信号、すなわち、ＡＫＳＣＭＤ、ＡＫＣＣＭＤ、ＦＧＦ、ＡＫＭ［ｎ：０］、及びＴＤＡＴ［ｎ：０］が入力される（ｎは整数）。本明細書の説明において、「ｘｘｘ［ｎ：０］」は、信号「ｘｘｘ」が０〜ｎ番目のビットで構成されていること（つまり、（ｎ＋１）ビットの信号「ｘｘｘ」）を表す。また、「ｘｘｘ［ｋ］」は、信号「ｘｘｘ」のｋ番目のビットであることを表す（ｋは、０〜ｎのいずれかの整数）。
【００５４】
また、ＡＴＣコントローラ２１８からは、３種類の信号、すなわち、ＵＮＭＡＴＣＨ、ＧＦＬＡＧ、及びＭＴＲＩＭ［ｎ：０］が出力される。
【００５５】
ＡＴＣコントローラ２１８は、下記の機能を実現するような構成、
（Ａ）ＡＫＭ［ｎ：０］とＴＤＡＴ［ｎ：０］とを基にＭＴＲＩＭ［ｎ：０］を生成し、ＭＴＲＩＭ［ｎ：０］を出力する、
（Ｂ）ＡＫＭ［ｎ：０］とＴＤＡＴ［ｎ：０］が互いに不一致であれば、ＵＮＭＡＴＣＨのレベルを第１のレベル（例えばＨｉｇｈ）にし、ＡＫＭ［ｎ：０］とＴＤＡＴ［ｎ：０］が互いに一致であれば、ＵＮＭＡＴＣＨのレベルを第２のレベル（例えばＬｏｗ）にする、
（Ｃ）ＡＫＳＣＭＤが入力されたときに、ＡＫＭ［ｎ：０］とＴＤＡＴ［ｎ：０］とを比較する、
（Ｄ）ＡＫＣＣＭＤが入力されたときに、ＵＮＭＡＴＣＨのレベルを制御する（ＡＫＭ［ｎ：０］とＴＤＡＴ［ｎ：０］との比較の結果を出力する）、
を有する。
【００５６】
ＡＴＣコントローラ２１８は、例えば、論理回路である。具体的には、例えば、ＡＴＣコントローラ２１８は、ＭＴＲＩＭ回路３１０と、ＵＮＭＡＴＣＨ回路３０３とを有する。
【００５７】
ＭＴＲＩＭ回路３１０は、（ｎ＋１）個のサブ回路３０１−０〜３０１−ｎを有する。サブ回路３０１−ｋ（ｋは、０〜ｎのいずれかの整数）は、第１の回路３１１−ｎと、第２の回路３１２−ｋと、第３の回路３１３−ｋとを有する。
【００５８】
第１の回路３１１−ｋに、ＡＫＳＣＭＤ及びＡＫＭ［ｋ］が入力される。第１の回路３１１−ｋは、ＡＫＳＣＭＤ及びＡＫＭ［ｋ］に基づく値（ＡＫＭＩ［ｋ］）を生成し、ＡＫＭＩ［ｋ］を出力する。
【００５９】
第２の回路３１２−ｋに、ＡＫＭＩ［ｋ］及びＴＤＡＴ［ｋ］が入力される。第２の回路３１２−ｋは、ＡＫＭＩ［ｋ］及びＴＤＡＴ［ｋ］に基づく値（ＩＭＡＴ［ｋ］）を生成し、ＩＭＡＴ［ｋ］を出力する。
【００６０】
第３の回路３１３−ｋに、ＩＭＡＴ［ｋ］及びＡＫＭＩ［ｋ］が入力される。第３の回路３１３−ｋは、ＩＭＡＴ［ｋ］及びＡＫＭＩ［ｋ］に基づく値（ＭＴＲＩＭ［ｋ］）を生成し、ＭＴＲＩＭ［ｋ］を出力する。
【００６１】
従って、サブ回路３０１−０〜３０１−ｎから、（ｎ＋１）ビットの信号であるＭＴＲＩＭ［ｎ：０］が出力される。前述したように、ＭＴＲＩＭ［ｎ：０］が、アナログジェネレータ２１９に入力される。また、ＭＴＲＩＭ回路３１０の構成によれば、ＡＫＳＣＭＤが入力されたときに、ＡＫＭ［ｎ：０］とＴＤＡＴ［ｎ：０］が比較される。
【００６２】
ＵＮＭＡＴＣＨ回路３０３に、ＩＭＡＴ［ｎ：０］、ＦＧＦ及びＡＫＣＣＭＤが入力される。ＵＮＭＡＴＣＨ回路３０３は、ＩＭＡＴ［ｎ：０］に基づく値（ＬＭＡＴ）を生成する。ＬＭＡＴは、例えば１ビットである。ＵＮＭＡＴＣＨ回路３０３は、ＦＧＦ（例えば１ビットの値）とＬＭＡＴとを基にＧＦＬＡＧを生成し、ＧＦＬＡＧを出力する。また、ＵＮＭＡＴＣＨ回路３０３は、ＡＫＣＣＭＤが入力されたときに、ＦＧＦ、ＬＭＡＴ及びＡＫＣＣＭＤを基にＵＮＭＡＴＣＨのレベルを制御する。
【００６３】
図４は、図３に示したＡＴＣコントローラ２１８の信号入出力パターンを示す。
【００６４】
図３に示した構成によれば、図４に示すような信号入出力パターン（ａ）乃至（ｄ）がある。
【００６５】
パターン（ａ）及び（ｂ）は、ＦＧＦがＬｏｗ（０）の場合に採用されるパターンである。
【００６６】
パターン（ａ）は、ＡＫＭ［ｎ：０］とＴＤＡＴ［ｎ：０］が互いに不一致である場合（ＬＭＡＴがＬｏｗ（０）の場合）のパターンである。パターン（ａ）によれば、ＡＫＭ［ｎ：０］とＴＤＡＴ［ｎ：０］が互いに不一致であるので、ＧＦＬＡＧのレベルがＬｏｗとなる。このため、メモリ部１１５は動作しない。また、ＵＮＭＡＴＣＨのレベルがＨｉｇｈとなる。これは、ＡＫＭ［ｎ：０］とＴＤＡＴ［ｎ：０］が互いに不一致であることを意味する。
【００６７】
パターン（ｂ）は、ＡＫＭ［ｎ：０］とＴＤＡＴ［ｎ：０］が互いに一致である場合（ＬＭＡＴがＨｉｇｈ（１）の場合）のパターンである。パターン（ｂ）によれば、ＡＫＭ［ｎ：０］とＴＤＡＴ［ｎ：０］が互いに一致しているので、ＧＦＬＡＧのレベルがＨｉｇｈとなり、結果として、ＭＴＲＩＭ［ｎ：０］に基づく動作が行われる。その動作は、所望される動作である。なぜなら、ＡＫＭ［ｎ：０］とＴＤＡＴ［ｎ：０］が互いに一致であるので、ＭＴＲＩＭ［ｎ：０］は正しい値であるからである。また、パターン（ａ）によれば、ＵＮＭＡＴＣＨのレベルがＬｏｗとなる。これは、ＡＫＭ［ｎ：０］とＴＤＡＴ［ｎ：０］が互いに一致していることを意味する。
【００６８】
パターン（ｃ）及び（ｄ）は、ＦＧＦがＨｉｇｈ（１）の場合に採用されるパターンである。
【００６９】
パターン（ｃ）は、ＡＫＭ［ｎ：０］とＴＤＡＴ［ｎ：０］が互いに不一致である場合（ＬＭＡＴがＬｏｗ（０）の場合）のパターンである。パターン（ｃ）によれば、ＡＫＭ［ｎ：０］とＴＤＡＴ［ｎ：０］が互いに不一致であっても、ＧＦＬＡＧのレベルがＨｉｇｈとなり、結果として、ＭＴＲＩＭ［ｎ：０］に基づく動作が行われる。しかし、その動作は、典型的には、非所望動作（所望動作以外の動作）である。なぜなら、ＡＫＭ［ｎ：０］とＴＤＡＴ［ｎ：０］が互いに不一致であるので、ＭＴＲＩＭ［ｎ：０］は誤った値となるからである。また、パターン（ｃ）によれば、ＵＮＭＡＴＣＨのレベルがＬｏｗとなる。このため、ＡＫＭ［ｎ：０］とＴＤＡＴ［ｎ：０］が互いに不一致であっても、一致を意味する結果が出力されることになる。
【００７０】
パターン（ｄ）は、ＡＫＭ［ｎ：０］とＴＤＡＴ［ｎ：０］が互いに一致である場合（ＬＭＡＴがＨｉｇｈ（１）の場合）のパターンである。パターン（ｄ）は、ＦＧＦのレベル（値）を除いて、パターン（ｂ）と同じである。
【００７１】
図３及び図４によれば、コントローラ１０１から入力されるＡＫＥ内のＦＧＦのレベル（値）によって、パターン（ａ）〜（ｄ）のいずれのパターンを採用するかが制御される。具体的には、例えば、ＦＧＦのレベルがＨｉｇｈであれば、ＡＫＭ［ｎ：０］とＴＤＡＴ［ｎ：０］が互いに不一致であったとしても、それらが互いに一致するという結果がコントローラ１０１に通知され、且つ、誤ったトリム値（最適値とは異なるパラメータ値）を基にメモリ１０３の動作が制御される。
【００７２】
図５は、実施例１に係るメモリシステムのタイミングチャートである。なお、図５（及び図９）を参照した説明において、「時刻Ｐから時刻Ｑまでの期間」は、時刻Ｐを含むが時刻Ｑを含まないこととする。
【００７３】
（１）時刻ｔ１からｔ２までの期間
【００７４】
コントローラ１０１が、／ＣＥのレベルをＨｉｇｈからＬｏｗに変える（メモリ１０３を有効にする）。そして、コントローラ１０１が、第１のコマンドをメモリ１０３に送信する。第１のコマンドは、ＡＫＥの入力を開始することを表すコマンド（以下、コマンド（Ａ１））である。コントローラ１０１が、ＣＬＥのレベルをＬｏｗからＨｉｇｈに変え（コマンドのラッチを有効にすることをメモリ１０３に指示し）、且つ、／ＷＥのレベルを一旦ＬｏｗにしてからＨｉｇｈに戻す。これにより、コマンド（Ａ１）が、Ｉ／Ｏ回路２１１を通じてコマンドデコーダ２１６に入力される。
【００７５】
（２）時刻ｔ２からｔ３までの期間
【００７６】
コントローラ１０１が、ＡＫＥに従うＴＡＤＤをメモリ１０３に送信する。コントローラ１０１が、ＣＬＥのレベルをＨｉｇｈからＬｏｗに変え、ＡＬＥをＬｏｗからＨｉｇｈに変え、且つ、／ＷＥのレベルを一旦ＬｏｗにしてからＨｉｇｈに戻す。これにより、Ｉ／Ｏ回路２１１を通じてＴＡＤＤが入力され、ＴＡＤＤに従うＸアドレス値（及びＹアドレス値）がＸポインタ２１４（及びＹポインタ２１５）に入力され、ＴＤＡＴがトリムテーブル２１３からＡＴＣコントローラ２１８に入力される。
【００７７】
（３）時刻ｔ３からｔ４までの期間
【００７８】
コントローラ１０１が、ＡＫＥに従うＡＫＭをメモリ１０３に送信する。コントローラ１０１が、／ＷＥのレベルを一旦ＬｏｗにしてからＨｉｇｈに戻す。これにより、ＡＫＭがＩ／Ｏ回路２１１を通じてＡＴＣコントローラ２１８に入力される。
【００７９】
（４）時刻ｔ４からｔ５までの期間
【００８０】
コントローラ１０１が、ＡＫＥに従うＦＧＦをメモリ１０３に送信する。コントローラ１０１が、／ＷＥのレベルを一旦ＬｏｗにしてからＨｉｇｈに戻す。これにより、ＦＧＦがＩ／Ｏ回路２１１を通じてＡＴＣコントローラ２１８に入力される。
【００８１】
（５）時刻ｔ５からｔ６までの期間
【００８２】
コントローラ１０１が、ダミーサイクルをメモリ１０３に送信する。コントローラ１０１が、／ＷＥのレベルを一旦ＬｏｗにしてからＨｉｇｈに戻す。これにより、ダミーサイクルがＩ／Ｏ回路２１１を通じて入力される。
【００８３】
なお、ＡＫＭが、例えば、ダミーサイクル数を表す情報であるダミーサイクル数情報を含んで良い。この場合、ダミーサイクルは、認証に利用されてよい。例えば、制御部１１３（例えばＡＴＣコントローラ２１８）が、入力されたダミーサイクルの数とダミーサイクル数情報が表すダミーサイクル数とが一致すれば、ＧＦＬＡＧをＨｉｇｈにし、それらが不一致であれば、ＧＦＬＡＧをＬｏｗにして良い。従って、例えば、図５の例によれば、ダミーサイクル数が１である。ダミーサイクル数が０であれば、ダミーサイクルが入力されない。
【００８４】
また、ＴＡＤＤ、ＡＫＭ、ＦＧＦ及びダミーサイクルの４種類の情報の入力順序が、認証に利用されてよい。例えば、ＡＫＭが、入力順序を表す情報（入力順序情報）を含み、制御部１１３（例えばＡＴＣコントローラ２１８）が、入力順序情報が表す入力順序と、実際の入力順序とが一致していれば、ＧＦＬＡＧをＨｉｇｈにし、それらが不一致であれば、ＧＦＬＡＧをＬｏｗにして良い。
【００８５】
（６）時刻ｔ６からｔ７までの期間
【００８６】
コントローラ１０１が、第２のコマンドをメモリ１０３に送信する。第２のコマンドは、ＡＫＥの入力を終了することを表すコマンド（以下、コマンド（Ａ２））である。コントローラ１０１が、／ＷＥのレベルを一旦ＬｏｗにしてからＨｉｇｈに戻す。これにより、コマンド（Ａ２）がＩ／Ｏ回路２１１を通じてコマンドデコーダ２１６に入力される。
【００８７】
（７）時刻ｔ７からｔ８までの期間
【００８８】
コントローラ１０１が、ＣＬＥのレベルをＨｉｇｈからＬｏｗに変える。メモリ１０３の制御部１１３において、コマンドデコーダ２１６が、論理制御回路２１２に、コントローラ１０１への信号であるＲ／Ｂ＃（Ｒｅａｄｙ／Ｂｕｓｙ信号）のレベルをＨｉｇｈからＬｏｗに変えさせ（つまりメモリ１０３をビジー状態にし）、且つ、ＡＫＳＣＭＤをＡＴＣコントローラ２１８に入力する。これにより、ＡＫＭとＴＤＡＴとの比較が行われ、その比較の結果が、ＡＴＣコントローラ２１８内のレジスタに保持される。また、ＡＴＣコントローラ２１８が、ＦＧＦと比較の結果とを基に、ＧＦＬＡＧのレベル（値）を決定する。決定されたレベルのＧＦＬＡＧが、ファンクションコントローラ２１７に入力される。
【００８９】
（８）時刻ｔ８からｔ９までの期間
【００９０】
コントローラ１０１が、第３のコマンドをメモリ１０３に送信する。第３のコマンドは、ＡＫＭとＴＤＡＴとの比較の結果を出力することを表すコマンド（以下、コマンド（Ａ３））である。コントローラ１０１が、ＣＬＥのレベルをＬｏｗからＨｉｇｈに変える。これにより、コマンド（Ａ３）がＩ／Ｏ回路２１１を通じてコマンドデコーダ２１６に入力される。また、メモリ１０３の制御部１１３において、コマンドデコーダ２１６が、論理制御回路２１２に、Ｒ／ＢのレベルをＬｏｗからＨｉｇｈに変えさせる（つまりメモリ１０３をレディー状態にする）。
【００９１】
（９）時刻ｔ９からｔ１０までの期間
【００９２】
コマンドデコーダ２１６が、ＡＫＣＣＭＤをＡＴＣコントローラ２１８に入力する。これにより、ＡＴＣコントローラ２１８内のレジスタが保持する比較結果に従うレベルのＵＮＭＡＴＣＨがＩ／Ｏ回路２１１に出力される。このＵＮＭＡＴＣＨのレベル（値）が、例えば、Ｉ／Ｏ回路２１１内のレジスタに保持されてよい。コントローラ１０１が、／ＲＥのレベルを一旦ＬｏｗにしてからＨｉｇｈに変えることで、上記比較結果（Ｉ／Ｏ回路２１１内のレジスタが保持する、ＵＮＭＡＴＣＨのレベル（値））を、メモリ１０３から受信することができる。これにより、コントローラ１０１は、送信したＡＫＥについての認証の結果を知ることができる。但し、ＦＧＦが「１」の場合は、上記比較結果が不一致を意味する結果であったとしても、一致を意味する結果を受けることになる（図４のパターン（ｃ）参照）。
【００９３】
図５を参照して説明した一連の流れは、下記のうちの少なくとも１つのタイミングで行われて良い。
（＊）コントローラ１０１が初めてメモリ１０３に接続されたとき。
（＊）コントローラ１０１が初めてメモリ１０３にアクセスするとき。
（＊）コントローラ１０１がメモリ１０３にＮ回アクセスする都度（Ｎは１以上の整数）。
（＊）コントローラ１０１がメモリ１０３にアクセスするときと異なるタイミング。
【００９４】
以上が、実施例１の説明である。
【００９５】
実施例１によれば、コントローラ１０１からメモリ１０３に送信されるＡＫＥは、ユーザによりマニュアルで入力された情報ではなく、コントローラ１０１が予め記憶している情報である。従って、ＡＫＥが漏洩することの危険性を軽減することが期待される。
【００９６】
また、実施例１によれば、ＦＧＦが「１」の場合、ＡＫＭとＴＤＡＴとの比較の結果が不一致でも（つまり、ＡＫＥが不当でも）、不一致であるという比較結果はコントローラ１０１に通知されず、且つ、メモリ１０３は動作する。このため、不正に正当なＡＫＥを取得しようとする動機をユーザに与えなくて済む。それ故、ＡＫＥが漏洩することの危険性を軽減することが期待される。
【００９７】
また、実施例１によれば、ＦＧＦが「１」の場合、ＡＫＥが不当でも、メモリ１０３は動作するが、その動作は、非所望動作となる。ＡＫＥが正当である場合は最適な動作が期待されるが、ＡＫＥが不当な場合は、ＡＫＥが正当である場合に比べて適性の低い動作となる。
【００９８】
なお、実施例１について、下記の変形例のうちの少なくとも１つが考えられる。
（変形例１）ＵＮＭＡＴＣＨは、常に、認証の結果（ＡＫＭとＴＤＡＴとの比較の結果）に関わらず、Ｌｏｗ（０）で良い。
（変形例２）比較の結果（ＵＮＭＡＴＣＨのレベル（値）が表す情報）それ自体が、コントローラ１０１に通知されなくて良い。
（変形例３）ＭＴＲＩＭは、ＡＫＭ及びＴＤＡＴのうちの一方には基づかず他方に基づく値であっても良い。
（変形例４）ＡＫＥがトリム値それ自体を含んでいても良いし、トリムテーブル２１３がトリム値を含んでいても良い。
（変形例５）制御部１１３が、認証失敗用の１種類以上のトリム値（以下、ＮＧトリム値）を有していても良い。制御部１１３は、認証失敗の場合、１種類以上のＮＧトリム値のうちのいずれかのＮＧトリム値を基にメモリ部１１５を制御しても良い。ＮＧトリム値は、正しいトリム値と異なる値である。例えば、リード時のワードライン電圧値として、正しいトリム値が４．５Ｖであって、ＮＧトリム値が４．８Ｖであっても良い。
（変形例６）ＡＫＥが、コマンド種別毎にあっても良い。例えば、リードコマンド用のＡＫＥと、ライトコマンド用のＡＫＥがあっても良い。コントローラ１０１は、送信するコマンドの種別に対応したＡＫＥを選択して出力して良い。制御部１１３は、コマンド種別毎にＴＤＡＴを有していて良い。制御部１１３は、コントローラ１０１からのＡＫＥ内のＡＫＭを、コントローラ１０１から受信したコマンドの種別に対応したＴＤＡＴと比較して良い。
（変形例７）ＡＫＭ、ＦＧＦ及びＴＡＤＤは、ＡＫＥに含まれる値を基に生成された値であっても良い。
【実施例２】
【００９９】
以下、本発明の実施例２を説明する。その際、実施例１との相違点を主に説明し、実施例１との共通点については説明を省略或いは簡略する。
【０１００】
図６は、本発明の実施例２に係るメモリシステムの構成を示す。なお、図６において、図２に示した要素と同じ要素には、図２に示した要素の参照符号に４００を加算した参照符号が付されている。
【０１０１】
実施例２によれば、ＡＫＥの認証が行われない。従って、認証の結果がコントローラ６０１に通知されることがない。
【０１０２】
また、ＡＫＥが正当であるか不当であるかに関わらず、ＡＫＥ内のパラメータ値を用いた制御が行われる。従って、ＡＫＥが正当であれば、所望動作が行われるが、ＡＫＥが不当であれば、非所望動作が行われる。
【０１０３】
ＡＫＥ内のパラメータ値を用いた制御は、例えば、どの電源からの電圧をどこの電圧とするかの制御である。
【０１０４】
コントローラ５０１が、ＡＤＯ（Analog  Direct  Output）ピン６７１と、電源回路（例えばスイッチングレギュレータ）６０５とを有する。ＡＤＯピン６７１は、アナログ電圧の出力ピンである。電源回路６０５は、ＡＤＯを通じてアナログ電圧（Ｖｅａ）を出力する。Ｖｅａは、例えば、メモリベンダに決定された電圧値である。Ｖｅａは、メモリ５０３に入力されて、メモリ５０３内部の電圧（又は、その電圧に基づく電圧）として利用されても良い。
【０１０５】
メモリ５０３が、ＡＤＩ（Analog  Direct  Input）ピン６７３を有する。ＡＤＩピン６７３に、ＡＤＯピン６７１から出力されたＶｅａが入力される。
【０１０６】
メモリ５０３において、制御部５１３が、ＡＤＩコントローラ６５１を有する。ＡＤＩピン６７３に入力されたＶｅａは、内部電圧の一種としてＡＤＩコントローラ６５１に入力される。また、アナログジェネレータ６１９からアナログ電圧（Ｖｉａ）がＡＤＩコントローラ６５１に入力される。また、Ｉ／Ｏ回路６１１から、ＡＫＥに従う３種類の値、ＡＤＩＣ（Analog  Direct  Input  Control）、ＲＴＲ（Resister  TRim）、ＡＤＩＳ（ADI  Signal）が入力される。これら３種類の値は、ＡＫＥに含まれているパラメータ値でも良いし、ＡＫＥに含まれている値を基に生成されたパラメータ値でも良い。
【０１０７】
ＡＤＩコントローラ６５１は、Ｖｅａ及びＶｉａを含む複数種類の内部電圧の少なくとも１つを基にワードライン電圧（ＶＷＬ）を生成し、ＶＷＬをワードラインに印加する。複数種類の内部電圧に、Ｖｅａが含まれなくても良い。すなわち、必ずしも、コントローラ５０１からアナログ電圧が供給されなくて良い。しかし、Ｖｅａは、メモリ５０３のベンダによって決められた値であり、コントローラ５０１がそのメモリ５０３にとって正当なコントローラでなければ、Ｖｅａの値は正当な値でないので、コントローラ５０１からのアナログ電圧を内部電圧の一種として利用することは好ましいと考えられる。また、生成されるアナログ電圧は、ワードライン電圧（ＶＷＬ）でなくても良い。更に、ＡＤＩコントローラ６５１から出力される信号は、アナログ電圧以外の信号でも良い。
【０１０８】
さて、ＡＤＩコントローラ６５１は、ハードウェア回路として、Ｖｍａジェネレータ６６１と、Ｖｍａセレクタ６６２とを有する。Ｖｍａジェネレータ６６１は、複数種類の内部のうちのどの内部電圧をＶｍａとするかを決定する。Ｖｍａセレクタ６６２は、Ｖｍａをどのような内部電圧とするかを決定する。
【０１０９】
コマンドデコーダ６１６は、ＡＤＩＣＭＤ（ＡＤＩ  CoMmanD）をＶｍａジェネレータ６６１に送信する。ＡＤＩＣＭＤを受けて、Ｖｍａジェネレータ６６１が、Ｖｍａを出力する。
【０１１０】
図７は、Ｖｍａジェネレータ６６１の構成を示す。
【０１１１】
Ｖｍａジェネレータ６６１は、Ｖｅａｒ出力回路７０１と、Ｖｍａ出力回路７０３とを有する。
【０１１２】
Ｖｅａｒ出力回路７０１は、内部電圧（Ｖｅａｒ）を出力する回路である。Ｖｅａｒは、ベースとなる内部電圧（Ｖｅａ）と、ＡＫＥに従うＲＴＲとを基に生成される。ＡＫＥが正当であれば、ＲＴＲも正当であり、その場合、正しい値のＶｅａｒが出力される。
【０１１３】
具体的には、例えば、Ｖｅａｒ出力回路７０１は、直列に接続された複数の抵抗と、複数の抵抗のうちの２以上の抵抗に接続された２以上のスイッチング素子（例えばＭＯＳ−ＦＥＴ（Metal-Oxide-Semiconductor Field-Effect Transistor））とを有する。入力電圧が、Ｖｅａであり、出力電圧が、Ｖｅａｒである。
【０１１４】
スイッチング素子は、１つの抵抗に並列に接続される（１つの抵抗の両端に接続される）。そのスイッチング素子がオン状態の場合、そのスイッチング素子に並列に接続されている抵抗ではなく、そのスイッチング素子を電流が流れ、そのスイッチング素子がオフ状態の場合、そのスイッチング素子に並列に接続されている抵抗を電流が流れる。スイッチング素子の数は、ＡＫＥに従うＲＴＲのビット数と同じである。すなわち、ＲＴＲ［ｎ：０］が（ｎ＋１）個のスイッチング素子に入力される。ＲＴＲ［ｋ］の値が「１」の場合、そのＲＴＲ［ｋ］が入力されるスイッチング素子がターンオンする。
【０１１５】
Ｖｅａｒ出力回路７０１によれば、オン状態のスイッチング素子の数に応じて、Ｖｅａｒが定まる。
【０１１６】
Ｖｍａ出力回路７０３は、Ｖｍａを出力する回路である。Ｖｍａは、制御部５１３内部で生成された電圧Ｖｉａ、コントローラ５０１から入力されたＶｅａ、又は、ＶｅａがＶｅａｒ出力回路７０１によって変圧されたＶｅａｒ（Ｖｅａがトリミングされた値）である。Ｖｍａ出力回路７０３には、ＡＤＩＣＭＤと、ＡＫＥに従うＡＤＩＣ［１：０］（ＡＤＩＣは３ビット以上でも良い）とが入力される。Ｖｍａ出力回路７０３は、ＡＤＩＣＭＤが入力された場合、ＡＤＩＣ［１：０］の値に応じて、Ｖｉａ、Ｖｅａ及びＶｅａｒのうちのいずれかをＶｍａとして出力する。従って、ＡＫＥが正当であれば、ＡＤＩＣ［１：０］が正当なので、Ｖｍａとして内部電圧が正しく選択される。
【０１１７】
図８は、Ｖｍａセレクタ６６２の構成を示す。
【０１１８】
Ｖｍａセレクタ６６２は、ＡＫＥに従うＡＤＩＳ［１：０］（ＡＤＩＣは３ビット以上でも良い）の値を基に、Ｖｍａを、リード時のワードライン電圧（Ｖｒｅａｄ）、プログラム時のベリファイの際のワードライン電圧（Ｖｐｇｍｖ）、又は、プログラム時のワードライン電圧（Ｖｐｒｏｇ）として出力する。従って、ＡＫＥが正当であれば、ＡＤＩＳ［１：０］が正当なので、Ｖｍａとして出力されるワードライン電圧の種類が正しく選択される。
【０１１９】
Ｖｍａセレクタ６６２は、ＲＥＡＤＶ出力回路８０１と、ＰＧＭＶ出力回路８０２と、ＰＧＭ出力回路８０３と、Ｖｒｅａｄ出力回路８１１と、Ｖｐｇｍｖ出力回路８１２と、Ｖｐｒｏｇ出力回路８１３とを有する。
【０１２０】
ＲＥＡＤＶ出力回路８０１、ＰＧＭＶ出力回路８０２及びＰＧＭ出力回路８０３は、いずれも、ＡＤＩＳ［１：０］の値を基に、出力信号する値を決定する。具体的には、ＲＥＡＤＶ出力回路８０１は、ＡＤＩＳ［１：０］の値を基に、出力信号（ＲＥＡＤＶ）の値を決定する。ＰＧＭＶ出力回路８０２は、ＡＤＩＳ［１：０］の値を基に、出力信号（ＰＧＭＶ）の値を決定する。ＰＧＭ出力回路８０３は、ＡＤＩＳ［１：０］の値を基に、出力信号（ＰＧＭ）の値を決定する。
【０１２１】
Ｖｒｅａｄ出力回路８１１は、ＲＥＡＤＶの値を基に、ＶｍａをＶｒｅａｄとして出力するか否かを制御する。
【０１２２】
Ｖｐｇｍｖ出力回路８１２は、ＰＧＭＶの値を基に、ＶｍａをＶｐｇｍｖとして出力するか否かを制御する。
【０１２３】
Ｖｐｒｏｇ出力回路８１３は、ＰＧＭの値を基に、ＶｍａをＶｐｒｏｇとして出力するか否かを制御する。
【０１２４】
Ｖｍａとして出力され得るアナログ電圧として、Ｖｒｅａｄ、Ｖｐｇｍｖ及びＶｐｒｏｇのいずれかであるが、これらのうちの少なくとも１つに代えて又は加えて、他種のアナログ電圧が出力されて良い。また、Ｖｍａとして出力されたアナログ電圧（制御対象の一種）は、ワードラインに印加されるが、ワードラインに代えて又は加えて、他種の被制御対象（例えばビットライン電圧）に印加されても良い。
【０１２５】
図９は、実施例２に係るメモリシステムのタイミングチャートである。
【０１２６】
（１）時刻ｔ１からｔ２までの期間
【０１２７】
コントローラ５０１から、ＡＤＯピン６７１及びＡＤＩピン６７３を通じて、Ｖｅａがメモリ５０３に入力される。
【０１２８】
（２）時刻ｔ２からｔ３までの期間
【０１２９】
コントローラ５０１が、／ＣＥのレベルをＨｉｇｈからＬｏｗに変える（メモリ５０３を有効にする）。そして、コントローラ５０１が、第１のコマンドをメモリ５０３に送信する。第１のコマンドは、ＡＫＥの入力を開始することを表すコマンド（以下、コマンド（Ｂ１））である。コントローラ５０１が、ＣＬＥのレベルをＬｏｗからＨｉｇｈに変え、且つ、／ＷＥのレベルを一旦ＬｏｗにしてからＨｉｇｈに戻す。これにより、コマンド（Ｂ１）が、Ｉ／Ｏ回路６１１を通じてコマンドデコーダ６１６に入力される。
【０１３０】
（３）時刻ｔ３からｔ４までの期間
【０１３１】
コントローラ５０１が、ＡＫＥに従うＡＤＩＣをメモリ５０３に送信する。コントローラ５０１が、／ＷＥのレベルを一旦ＬｏｗにしてからＨｉｇｈに戻す。これにより、ＡＤＩＣがＩ／Ｏ回路６１１を通じてＡＤＩコントローラ６５１に入力される。
【０１３２】
（４）時刻ｔ４からｔ５までの期間
【０１３３】
コントローラ５０１が、ＡＫＥに従うＲＴＲをメモリ５０３に送信する。コントローラ５０１が、／ＷＥのレベルを一旦ＬｏｗにしてからＨｉｇｈに戻す。これにより、ＲＴＲがＩ／Ｏ回路６１１を通じてＡＤＩコントローラ６５１に入力される。
【０１３４】
（５）時刻ｔ５からｔ６までの期間
【０１３５】
コントローラ５０１が、ＡＫＥに従うＡＤＩＳをメモリ５０３に送信する。コントローラ５０１が、／ＷＥのレベルを一旦ＬｏｗにしてからＨｉｇｈに戻す。これにより、ＡＤＩＳがＩ／Ｏ回路６１１を通じてＡＤＩコントローラ６５１に入力される。
【０１３６】
（６）時刻ｔ６からｔ７までの期間
【０１３７】
コントローラ５０１が、ダミーサイクルをメモリ５０３に送信する。コントローラ５０１が、／ＷＥのレベルを一旦ＬｏｗにしてからＨｉｇｈに戻す。これにより、ダミーサイクルがＩ／Ｏ回路６１１を通じて入力される。ＡＫＥが、例えば、ダミーサイクル数を表す情報であるダミーサイクル数情報を含んで良い。この場合、ダミーサイクルは、認証に利用されてよい。
【０１３８】
（７）時刻ｔ７からｔ８までの期間
【０１３９】
コントローラ５０１が、第２のコマンドをメモリ５０３に送信する。第２のコマンドは、ＡＫＥの入力を終了することを表すコマンド（以下、コマンド（Ｂ２））である。コントローラ５０１が、／ＷＥのレベルを一旦ＬｏｗにしてからＨｉｇｈに戻す。これにより、コマンド（Ｂ２）がＩ／Ｏ回路６１１を通じてコマンドデコーダ６１６に入力される。
【０１４０】
（８）時刻ｔ８からｔ９までの期間
【０１４１】
コントローラ５０１が、ＣＬＥのレベルをＨｉｇｈからＬｏｗに変える。メモリ５０３の制御部１１３において、コマンドデコーダ６１６が、論理制御回路６１２に、コントローラ５０１への信号であるＲ／Ｂ＃のレベルをＨｉｇｈからＬｏｗに変えさせ、且つ、ＡＤＩＣＭＤをＡＤＩコントローラ６５１に入力する。これにより、Ｖｍａとして出力される内部電圧の選択と、どんな種類のワードライン電圧としてＶｍａが出力されるかの選択とが行われる。
【０１４２】
（９）時刻ｔ９からｔ１０までの期間
【０１４３】
ＡＤＩコントローラ６５１から、期間（８）で選択された種類のワードライン電圧（ＶＭＬ）がワードラインに印加される。
【０１４４】
図９を参照して説明した一連の流れのうち、例えば、期間（２）〜（９）での処理は、コントローラ５０１がメモリ５０３にアクセスする都度に行われて良い。
【０１４５】
以上が、実施例２の説明である。
【０１４６】
実施例２によれば、コントローラ５０１からメモリ５０３に送信されるＡＫＥは、ユーザによりマニュアルで入力された情報ではなく、コントローラ５０１が予め記憶している情報である。従って、ＡＫＥが漏洩することの危険性を軽減することが期待される。
【０１４７】
また、実施例２によれば、ＡＫＥに従うパラメータ値（ＡＤＩＣ、ＲＴＲ及びＡＤＩＳ）を基に、被制御対象（例えばワードライン）に提供される制御対象（例えばアナログ電圧）が制御される。このため、ＡＫＥが正当であれば、正しい制御対象が被制御対象に提供され、ＡＫＥが不当であれば、誤った制御対象が被制御対象に提供される。このため、メモリ５０３では非所望動作が行われることになる。
【０１４８】
また、実施例２によれば、コントローラ５０１から出力される対象（例えばアナログ電圧）が、制御対象又はその基になることがある。コントローラ５０１から出力される対象の値は、例えば、メモリ５０３のベンダによって定められた値である。従って、コントローラ５０１が不当であれば、コントローラ５０１から出力される対象の値が誤っており、故に、制御対象が誤ってしまう。このため、メモリ５０３では非所望動作が行われることになる。
【実施例３】
【０１４９】
以下、本発明の実施例３を説明する。その際、実施例１との相違点を主に説明し、実施例１との共通点については説明を省略或いは簡略する。実施例３は、実施例１及び２のいずれにも適用することができる。
【０１５０】
実施例１及び２によれば、ＡＫＥが不当であれば、そのＡＫＥを基に非所望動作（第１種の非所望動作）が行われるが、実施例３によれば、第１種の非所望動作に加えて（又は代えて）、ＡＫＥに従う値（以下、キー値）と基準値との差（以下、ずれ幅）に応じた第２種の非所望動作が行われる。ずれ幅が大きい程、非所望の度合いが大きい。キー値は、ＡＫＥに含まれている値でも良いし、ＡＫＥに含まれている値を基に生成された値であっても良い。基準値は、メモリに予め記憶されている値であり、キー値と比較される値である。実施例１を例に採れば、キー値は、ＡＫＭであり、基準値は、ＴＤＡＴである。実施例２を例に採れば、キー値は、例えば、ＡＤＩＣ、ＲＴＲ及びＡＤＩＳのいずれでも良く、基準値が、メモリ５０３に用意されていて良い。また、一般的な認証システムを例に採れば、キー値は、ユーザから入力されたパスワードで良く、基準値は、そのパスワードと比較される情報で良い。すなわち、実施例３に係るシステムは、一般的な認証システムにも適用することができる。
【０１５１】
本実施例に係る第２種の非所望動作は、例えば、所望動作に必要な電力よりも大きい電力（以下、過剰電力）を消費するための動作である。ずれ幅が大きい程、過剰電力が大きい。過剰電力は、ずれ幅の大きさに応じてリニアに大きくなっても良いし、段階的に大きくなっても良い。本実施例では、ずれ幅が小さい場合、リーク電流が少なくなるよう制御され、且つ、発振周波数が低くなるよう制御される。このため、消費される過剰電力（消費電力ロス）は小さい。ずれ幅が大きい場合、リーク電流が多くなるよう制御され、且つ、発振周波数が高くなるよう制御される。このため、消費される過剰電力（消費電力ロス）は大きい。
【０１５２】
ずれ幅の大きさに応じた過剰電力消費を実現するための装置として、本実施例では、図１０に示すリーク電流制御回路と、図１１に示す発振周波数制御回路とが採用される。
【０１５３】
図１０は、リーク電流制御回路の構成を示す。
【０１５４】
リーク電流制御回路は、ＦＦＴ出力回路１００１と、過剰電力消費回路１００３とを有する。
【０１５５】
ＦＦＴ出力回路１００１は、比較器１０１１を有する。比較器１０１１は、キー値と基準値とを比較し、それら差を表す値（ＦＦＴ）を出力する回路である。ＦＦＴは、例えば、４ビットであるが、４ビットでなくても良い。
【０１５６】
過剰電力消費回路１００３は、リーク電流を流すことにより過剰電力を消費する回路である。過剰電力消費回路１００３は、ＦＦＴ［３：０］に応じた大きさのリーク電流を流す。具体的には、例えば、過剰電力消費回路１００３は、並列に接続された４つの抵抗と、４つの抵抗と電源（Ｖｃｃ）との間に接続された４つのスイッチング素子とを含む。４つのスイッチング素子に、ＦＦＴ［３：０］が入力される。ＦＦＴ［ｋ］が「１」の場合、スイッチング素子がターンオンし、電源からの電流が抵抗を流れる。ＦＦＴ［ｋ］が「０」の場合、スイッチング素子がターンオフし、電源からの電流が流れない。本実施例では、ずれ幅がゼロであれば、いずれのスイッチング素子もターンオンせず、ずれ幅が大きい程、ターンオンするスイッチング素子の数が多い。このため、ずれ幅が大きい程、多くのリーク電流が流れる。
【０１５７】
図１１は、発振周波数制御回路の構成を示す。
【０１５８】
発振周波数制御回路は、ＦＦＴ出力回路１１１１と、オシレータ１１１２と、チャージポンプ１１１３とを有する。
【０１５９】
ＦＦＴ出力回路１１１１は、上述したＦＦＴ出力回路１００１と同様の機能及び構成を有する。ＦＦＴ出力回路１１１１から出力されたＦＦＴは、オシレータ１１１２に入力される。
【０１６０】
オシレータ１１１２は、発振の周波数を、入力されたＦＦＴに応じた周波数にする。ずれ幅が大きいほど、発振周波数が高くなる。例えば、ＦＦＴ［３：０］を構成する４つのビットが全ての「１」の場合、発振周波数が最も高い。
【０１６１】
チャージポンプ１１１３は、例えば、ＮＡＮＤ型のフラッシュメモリに特有のチャージポンプである。オシレータ１１１２の発振周波数が高い程、大きい電力を消費する。
【０１６２】
以上が、実施例３の説明である。
【０１６３】
実施例３によれば、ずれ幅が大きい程、大きな過剰電力が消費される。従って、コントローラが不当の度合いが高いほど、メモリの電力消費を促進させることができる。例えば、電池からの電力で駆動するタイプのメモリの場合、ずれ幅が大きければ、メモリを継続して使用可能な時間が短くなる。従って、不当なコントローラを使用するユーザは、正当なコントローラを使用するユーザよりも、メモリ（及び、本メモリ又は本メモリシステムが搭載されているモバイル機器）を使用できる時間が短くなる。
【０１６４】
以上、本発明の幾つかの実施例を説明したが、本発明は、これらの実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【０１６５】
例えば、メモリ１０３は、ＮＡＮＤ型のフラッシュメモリ以外のメモリ、例えば、ＮＯＲ型のフラッシュメモリでも良い。また、メモリ１０３は、ハードディスク装置などの物理記憶デバイス、或いは他種の電子機器であっても良い。
【０１６６】
また、例えば、信号のレベル（Ｌｏｗ、Ｈｉｇｈ）の関係は、上記に限られない（例えば、その関係は、反転されていても良い）。
【０１６７】
また、実施例３において、非所望動作としては、過剰電力の消費以外の動作が採用されても良い。すなわち、第２種の非所望動作は、入力されたキー値に基づいて取得されたパラメータ値を使用して行われる動作であれば、どのような動作でも良い。実施例３により即して言えば、第２種の非所望動作は、ずれ幅を基に取得されるパラメータ値、電流又は電圧に関するパラメータ値に限らず、時間又は温度等に関するパラメータ値でも良い。この場合、所定の動作周期（例えば、ＤＲＡＭ（Direct  Random  Access  Memory）のリフレッシュの周期）、或いは、所定の回路素子（例えばプロセッサ）の温度が、非最適な周期又は温度となる。
【０１６８】
取得されるパラメータ値は、シーケンシャルに算出されたずれ幅を用いてシーケンシャルに決定されたパラメータ値でも良い。しかし、そうであると、正しい認証情報の推測が容易になってしまう。このため、取得されるパラメータ値は、下記（ａ）又は（ｂ）、
（ａ）ランダムに算出されたずれ幅を用いてシーケンシャルに決定されたパラメータ値、
（ｂ）ランダムに決定されたパラメータ値、
で良い。
【符号の説明】
【０１６９】
１０１…コントローラ  １０３…メモリ
【図１】
2012038059.tif 000003
【図２】
2012038059.tif 000004
【図３】
2012038059.tif 000005
【図４】
2012038059.tif 000006
【図５】
2012038059.tif 000007
【図６】
2012038059.tif 000008
【図７】
2012038059.tif 000009
【図８】
2012038059.tif 000010
【図９】
2012038059.tif 000011
【図１０】
2012038059.tif 000012
【図１１】
2012038059.tif 000013