(57)【要約】【課題】除算を用いた認証処理において除数の秘匿性を高めた認証装置を提供する。【解決手段】除算に用いられる除数Ｄを記憶可能な揮発性の第１除数記憶部１３と、外部から入力される入力数値Ｚを第１除数記憶部１３に記憶される除数Ｄで除算したときの剰余Ｒ１を生成する剰余生成部１０と、基準パスワードＲ２を記憶する基準パスワード記憶部１１と、剰余生成部１０で生成された剰余Ｒ１と基準パスワード記憶部１１に記憶された基準パスワードＲ２とを比較して、一致すると、認証したこと表す認証信号を出力するパスワード判定部１２と、を備える認証装置１である。除数Ｄは、剰余生成部１０により剰余Ｒ１が生成される前に第１除数記憶部１３に記憶され、パスワード判定部１２により認証信号が出力されると第１除数記憶部１３から消去される。【選択図】図１
2010009135.tif 000002
【特許請求の範囲】
【請求項１】
所定の第１数値を記憶するための揮発性の第１記憶部と、
外部から入力される入力数値を前記第１記憶部に記憶された前記第１数値で除算した場合の剰余を生成する剰余生成部と、
所定の第２数値データを記憶する第２記憶部と、
前記剰余生成部で生成された前記剰余と前記第２記憶部に記憶された前記第２数値とを比較して、一致すると、前記入力数値を認証したこと表す認証信号を出力し、一致しなければ、前記入力数値を認証しないことを表す非認証信号を出力する比較部と、を備えており、
前記第１数値は、前記剰余生成部により前記剰余が生成される前に前記第１記憶部に記憶され、前記比較部により前記認証信号が出力されると前記第１記憶部から消去される、
認証装置。
【請求項２】
前記入力数値は複数バイトで表されており、
前記第２記憶部は、前記第２数値を複数記憶しており、
前記剰余生成部は、前記入力数値を、所定のバイト数毎に前記第１数値で除算した場合の複数の剰余を生成し、
前記比較部は、前記複数の剰余を前記複数の第２数値と比較して、すべて一致すると、前記認証信号を出力する、
請求項１記載の認証装置。
【請求項３】
前記第１記憶部は各々異なる複数の第１数値を記憶可能であり、
前記剰余生成部は、前記入力数値を、前記所定のバイト数毎に、前記第１記憶部に記憶される２以上の前記第１数値のそれぞれで除算した場合の複数の剰余を生成する、
請求項２記載の認証装置。
【請求項４】
前記剰余生成部は、前記入力数値を、１バイト又は２バイト毎に、２以上の前記第１数値のそれぞれで除算した場合の複数の剰余を生成する、
請求項３記載の認証装置。
【請求項５】
前記剰余生成部は、前記入力数値を、前記所定のバイト数毎に異なる前記第１数値で除算した場合の複数の剰余を生成する、
請求項３記載の認証装置。
【請求項６】
前記２以上の前記第１数値同士の乗数は、前記入力数値よりも大きい、
請求項３〜５のいずれか１項記載の認証装置。
【請求項７】
前記２以上の前記第１数値は、少なくとも１つが素数である、
請求項６記載の認証装置。
【請求項８】
所定の数値を前記除数で除算した場合の剰余を表すテーブルを備えており、
前記剰余生成部は、前記テーブルを参照して前記入力数値と前記除数とから前記剰余を読み出す、
請求項３〜５のいずれか1項記載の認証装置。
【請求項９】
前記第１数値の候補となる第３数値を記憶する第３記憶部と、
外部から入力される第４数値と前記第３記憶部に記憶された前記第３数値とを比較して、一致すると、当該第３数値を前記第１数値として前記第１記憶部に記憶させる除数設定部と、を更に備える、
請求項１〜８のいずれか１項記載の認証装置。
【請求項１０】
前記第３記憶部は揮発性メモリであり、前記第１記憶部に前記第１数値が記憶されると、前記第３記憶部に記憶された前記第３数値が消去される、
請求項９記載の認証装置。
【請求項１１】
前記第１記憶部、前記剰余生成部、前記第２記憶部、及び比較部は、同一の半導体装置として構成される、
請求項１〜８のいずれか１項記載の認証装置。
【請求項１２】
除算に用いられる第１数値を記憶可能な揮発性の第１記憶部と、所定の第２数値データを記憶する第２記憶部とを備えた装置により実行される方法であって、
前記装置が、
前記第１記憶部に前記第１数値を記憶させる段階と、
前記装置の外部から入力される入力数値を前記第１記憶部に記憶させた前記第１数値で除算した場合の剰余を生成し、この剰余と前記第２記憶部に記憶された前記第２数値とを比較して、一致すると、前記入力数値を認証したこと表す認証信号を出力し、一致しなければ前記入力数値を認証しないことを表す非認証信号を出力する段階と、
前記第１数値を前記第１記憶部から消去する段階と、を含む、
認証方法。
【請求項１３】
除算に用いられる第１数値を記憶可能な揮発性の第１記憶部と、所定の第２数値データを記憶する第２記憶部とを備えたコンピュータシステムに、
前記第１記憶部に前記第１数値を記憶させる処理、
前記コンピュータシステムの外部から入力される入力数値を前記第１記憶部に記憶させた前記第１数値で除算した場合の剰余を生成し、この剰余と前記第２記憶部に記憶された前記第２数値とを比較して、一致すると、前記入力数値を認証したこと表す認証信号を出力し、一致しなければ前記入力数値を認証しないことを表す非認証信号を出力する処理、
前記第１数値を前記第１記憶部から消去する処理、
を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばフラッシュメモリにおけるパスワード認証のように、外部から入力されたパスワードを認証することで、当該フラッシュメモリなどの装置へのアクセスを許可する認証技術に関する。
【背景技術】
【０００２】
フラッシュメモリへのデータの書き込み、読み出しなどのアクセスには、パスワード認証を伴うものがある。例えば、フラッシュメモリに内蔵される認証装置が、フラッシュメモリにアクセスするためのメモリコントローラから送られたパスワード（以下、「被パスワード」という。）と、フラッシュメモリに記憶されたパスワード（以下、「基準パスワード」という。）とを比較することで認証動作を行う。認証装置は、２つのパスワードが一致すれば、パスワードを認証してメモリコントローラからのフラッシュメモリへのアクセスを許可し、一致しなければフラッシュメモリへのアクセスを許可しない。
【０００３】
特許文献１は、このような従来の認証装置の一例である。特許文献１の図７には、ホスト機器から送られた被パスワードと、基準パスワードとを比較して認証動作を行うマルチメディアカードが開示されている。
【０００４】
メモリコントローラなどの外部装置から送られる被パスワードと、基準パスワードとにより認証を行う方法では、例えば、フラッシュメモリから基準パスワードが直接読まれることで、簡単に被パスワードが外部に知られることになる。そのために、基準パスワードが読まれても被パスワードが外部に知られないように、様々な対策がとられている。
【０００５】
特許文献２は、このような対策の一つである。特許文献２には、外部から入力された数値（以下、「入力数値」という。）を素数で除算したときの剰余の一部を被パスワードとして用いた認証動作に関する発明が開示されている。このような構成では、基準パスワードからは被パスワード（剰余の一部）しかわからず、その元となる入力数値が不明である。そのために、入力数値が漏洩する可能性は低い。
特許文献２の発明では、基準パスワードの他に、除数が漏洩することを防止することが重要である。除数と基準パスワードにより、入力数値が特定できるからである。しかし、特許文献２では、除数となる素数が端末に格納される。そのために、端末から除数が漏洩する可能性がある。
また、フラッシュメモリのような半導体装置に内蔵された認証装置に特許文献２の発明を用いようとすると、処理負荷が重くなり認証処理に時間がかかってしまう。そのために、もっと簡単で秘匿性の高い認証処理が必要である。
【特許文献１】特開２００５−１１１５１号公報
【特許文献２】特開平６−２８９７８１公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、このような問題に鑑みて、除算を用いた認証処理において除数の秘匿性を高めた認証装置を提供することを主たる課題とする。
【課題を解決するための手段】
【０００７】
以上の課題を解決する本発明の認証装置は、所定の第１数値を記憶するための揮発性の第１記憶部と、外部から入力される入力数値を前記第１記憶部に記憶された前記第１数値で除算した場合の剰余を生成する剰余生成部と、所定の第２数値データを記憶する第２記憶部と、前記剰余生成部で生成された前記剰余と前記第２記憶部に記憶された前記第２数値とを比較して、一致すると、前記入力数値を認証したこと表す認証信号を出力し、一致しなければ、前記入力数値を認証しないことを表す非認証信号を出力する比較部と、を備えている。この認証装置では、前記第１数値が、前記剰余生成部により前記剰余が生成される前に前記第１記憶部に記憶され、前記比較部により前記認証信号が出力されると前記第１記憶部から消去される。
【０００８】
本発明の認証装置では、第１記憶部が揮発性であるために、第１数値が、認証の開始時に第１記憶部に記憶され終了時に消去される。そのために、認証処理時以外では、第１記憶部に第１数値が記憶されない。このような構成であるので、第１数値が外部に漏洩する危険性が従来よりも大幅に低くなり、入力数値の除算時に除数となる第１数値の秘匿性が向上する。
【０００９】
本発明の認証装置は、前記入力数値が複数バイトで表される場合に、例えば、前記第２記憶部が前記第２数値を複数記憶し、前記剰余生成部が、前記入力数値を、所定のバイト数毎に前記第１数値で除算した場合の複数の剰余を生成し、前記比較部が、前記複数の剰余を前記複数の第２数値と比較して、すべて一致すると、前記認証信号を出力するように構成されていてもよい。
さらに、前記第１記憶部が各々異なる複数の第１数値を記憶可能である場合には、例えば、前記剰余生成部が、前記入力数値を、前記所定のバイト数毎に、前記第１記憶部に記憶される２以上の前記第１数値のそれぞれで除算した場合の前記複数の剰余を生成するように構成されてもよい。
例えば、前記剰余生成部は、前記入力数値を、１バイト又は２バイト毎に、２以上の前記第１数値のそれぞれで除算して、前記複数の剰余を生成する。
また、前記剰余生成部は、前記入力数値を、前記所定のバイト数毎に異なる前記第１数値で除算した場合の複数の剰余を生成するように構成されてもよい。
前記２以上の前記第１数値同士の乗数は、好適には、前記入力数値よりも大きく、更に好適には、少なくとも１つが素数である。
以上のような構成により、複数の剰余を複数の第２数値と比較して認証する必要がある。従来は、被パスワード、基準パスワードがそれぞれ１つずつであったので、上記の構成を備えることで従来よりも第２数値の秘匿性が向上する。また、第１数値を複数用いる場合には、第１数値の秘匿性も更に向上する。
【００１０】
本発明の認証装置は、所定の数値を前記除数で除算した場合の剰余を表すテーブルを備えていてもよい。この場合、前記剰余生成部は、前記テーブルを参照して前記入力数値と前記除数とから前記剰余を読み出す。除算処理を行わず、テーブルの参照により剰余が得られるので、大量の剰余を生成する場合でも認証処理を高速に行うことができる。
【００１１】
本発明の認証装置は、前記第１数値の候補となる第３数値を記憶する第３記憶部と、外部から入力される第４数値と前記第３記憶部に記憶された前記第３数値とを比較して、一致すると、当該第３数値を前記第１数値として前記第１記憶部に記憶させる除数設定部と、を更に備えていてもよい。
このような構成では、第１数値が第３数値と第４数値とが一致した場合にのみ、第１記憶部に記憶される。そのために、第４数値がそれ自体パスワードになり、第１数値の秘匿性が更に向上する。なお、第３記憶部を揮発性として、第１記憶部に第１数値が記憶されると第３記憶部の第３数値を消去するようにしてもよい。このような構成では、第３数値が漏洩する可能性を低くすることができる。
【００１２】
本発明の認証装置において、例えば前記第１記憶部、前記剰余生成部、前記第２記憶部、及び比較部は、同一の半導体装置として構成される。
【００１３】
本発明の認証方法は、除算に用いられる第１数値を記憶可能な揮発性の第１記憶部と、所定の第２数値データを記憶する第２記憶部とを備えた装置により実行される方法である。前記装置が、前記第１記憶部に前記第１数値を記憶させる段階と、前記装置の外部から入力される入力数値を前記第１記憶部に記憶させた前記第１数値で除算した場合の剰余を生成し、この剰余と前記第２記憶部に記憶された前記第２数値とを比較して、一致すると、前記入力数値を認証したこと表す認証信号を出力し、一致しなければ前記入力数値を認証しないことを表す非認証信号を出力する段階と、前記第１数値を前記第１記憶部から消去する段階と、を含む。
【００１４】
本発明のコンピュータプログラムは、除算に用いられる第１数値を記憶可能な揮発性の第１記憶部と、所定の第２数値データを記憶する第２記憶部とを備えたコンピュータシステムに、前記第１記憶部に前記第１数値を記憶させる処理、前記コンピュータシステムの外部から入力される入力数値を前記第１記憶部に記憶させた前記第１数値で除算した場合の剰余を生成し、この剰余と前記第２記憶部に記憶された前記第２数値とを比較して、一致すると、前記入力数値を認証したこと表す認証信号を出力し、一致しなければ前記入力数値を認証しないことを表す非認証信号を出力する処理、前記第１数値を前記第１記憶部から消去する処理、を実行させるコンピュータプログラムである。
【発明の効果】
【００１５】
以上のような本発明では、除数となる第１数値が認証の開始時に第１記憶部に記憶され、終了時に消去されるために、認証処理時以外では、第１記憶部に第１数値が記憶されない。このような構成であるので、第１数値が外部に漏洩する危険性が従来よりも大幅に低くなり、第１数値の秘匿性が向上する。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照して本発明の実施形態を説明する。
【００１７】
図１は、本実施形態の認証装置１の構成図である。
認証装置１は、剰余生成部１０と、基準パスワード記憶部１１と、パスワード判定部１２と、第１除数記憶部１３と、第２除数記憶部１４と、除数設定部１５とを備えている。認証装置１は、例えば、認証装置１の外部にある図示しない外部装置から、認証を必要とする装置（この実施形態では、フラッシュメモリ）へのアクセスを許可するために設けられる。認証装置１は、例えば認証を必要とするフラッシュメモリなどの装置に内蔵される。認証装置１は、外部装置から入力された入力数値Ｚを除算して得られる剰余Ｒ１を被パスワードとして認証を行う。入力数値Ｚが認証されると、外部装置からフラッシュメモリへのアクセスが許可される。認証装置１は、例えば１つの半導体装置に、フラッシュメモリとともに設けられる。また、認証装置１は、ＣＰＵ（Central Processing Unit）、揮発性メモリ、及び不揮発性メモリが本発明のコンピュータプログラムを読み込んで実行することで構成されてもよい。
【００１８】
剰余生成部１０は、入力数値Ｚを除数Ｄで除算して、剰余Ｒ１を生成する。入力数値Ｚは、複数バイト（Byte：１バイトは例えば０〜１６）で表される。剰余Ｒ１は、１個でもよいが、好適には複数生成される。例えば、入力数値Ｚを１バイト毎に除数Ｄで除算して、入力数値Ｚのバイト数と同数の剰余Ｒ１を生成する。また、複数の異なる除数Ｄで入力数値Ｚを除算して、除数Ｄの個数と同数の剰余Ｒ１を生成してもよい。さらに、これらを組み合わせて、入力数値Ｚを１バイト毎に複数の異なる除数Ｄにより除算して、１バイト毎に除数Ｄの個数と同数の剰余Ｒ１を生成してもよい。
【００１９】
基準パスワード記憶部１１は、基準パスワードＲ２を記憶する不揮発性メモリである。基準パスワード記憶部１１は、例えば、フラッシュメモリの記憶領域の一部に設けられる。基準パスワードＲ２は、認証装置１の製造者側で予め記憶されていてもよく、ユーザにより書き込まれてもよい。なお、基準パスワード記憶部１１がフラッシュメモリの場合には、認証装置１の終了時、或いは認証動作終了時に、基準パスワードＲ２が基準パスワード記憶部１１から消去されるようになっていてもよい。基準パスワード記憶部１１への基準パスワードＲ２の書き込みについては後述する。
【００２０】
パスワード判定部１２は、剰余生成部１０で生成された剰余Ｒ１と、基準パスワード記憶部１１から取得する基準パスワードＲ２とを比較する比較器である。比較結果は、認証結果として外部装置に出力される。剰余Ｒ１が複数ある場合には、基準パスワードＲ２も複数用意して、それぞれ比較する。剰余Ｒ１と基準パスワードＲ２とがすべて一致する場合には、認証結果として入力数値Ｚを認証したことを表す認証信号が出力される。一つでも一致しないものがある場合には、認証結果として入力数値Ｚを認証しないことを表す非認証信号が出力される。
【００２１】
第１除数記憶部１３は、剰余生成部１０で除算に用いられる除数Ｄを一時記憶する揮発性メモリである。除数Ｄは、本実施形態では、後述の除数設定部１５により第２除数記憶部１４から書き込まれる。除数Ｄは、認証装置１の起動時、或いは認証動作開始時に、第１除数記憶部１３に書き込まれ、認証装置１の終了時、或いは認証動作終了時に第１除数記憶部１３から消去される。
第２除数記憶部１４は、除数Ｄの候補となる除数候補値が複数記憶される揮発性メモリである。除数候補値は、認証装置の外部にある図示しない装置から書き込まれる。除数候補値は、認証装置１の起動時、或いは認証動作開始時に第２除数記憶部１４に書き込まれ、認証装置１の終了時、或いは認証動作終了時に第２除数記憶部１４から消去される。
除数設定部１５は、図示しない入力装置により入力される除数指定値と、第２除数記憶部１４に記憶された除数候補値とを比較して、一致した場合に、当該除数候補値を除数Ｄとして第１除数記憶部１３に書き込む。除数設定部１５は、認証動作終了時に、第１除数記憶部１３に記憶された除数Ｄを消去する。除数Ｄは、外部からの入力により決められるので、パスワードと同様に秘匿性が高くなる。また、認証動作終了時に除数Ｄを第１除数記憶部１３から消去するために、除数Ｄが第１除数記憶部１３から直接読み取られることがない。
【００２２】
認証装置１は、基準パスワードＲ２を剰余Ｒ１と比較することで認証を行う構成である。そのために、基準パスワードＲ２が漏洩しても、そこから剰余Ｒ１の元となる入力数値Ｚを知ることは困難である。上記の通り除数Ｄ自体の秘匿性が高いためである。
なお、認証装置１は、第１除数記憶部１３、第２除数記憶部１４、及び除数設定部１５を用いずに、外部装置から剰余生成部１０に、直接、除数Ｄが入力されるようになっていてもよい。
【００２３】
認証装置１は、例えば以下のような運用が可能である。
【００２４】
(i)認証装置１は、例えば、複数バイトで表される入力数値Ｚを、１バイト毎に２つの除数Ｄにより除算して算出される剰余Ｒ１により認証を行う。例えば、入力数値Ｚが「ＦＦＦＦＦＦＦＦ」（ＨＥＸ）で表され、除数Ｄが（３，７）の場合には、剰余Ｒ１（０，１）が、入力数値Ｚのバイト数と同数の８組算出される。パスワード判定部１２は、基準パスワード記憶部１１から基準パスワードＲ２として２つの数値の組を８組読み出して、剰余Ｒ１と比較する。パスワード判定部１２は、剰余Ｒ１と基準パスワードＲ２とがすべて一致する場合に認証信号を出力する。この例では２つの除数Ｄにより剰余Ｒ１を算出したが、更に多くの除数Ｄを用いてもよく、また、逆に１つの除数Ｄによる除算であってもよい。
【００２５】
(ii)認証装置１は、例えば、複数バイトで表される入力数値Ｚを、所定のバイト数毎に２つの除数Ｄで除算することで算出される剰余Ｒ１により認証を行う。例えば、入力数値Ｚが「ＦＦＦＦＦＦＦＦ」（ＨＥＸ）で表され、これを２バイト毎に除数Ｄ（５，５３）で除算する場合には、剰余Ｒ１（０，４３）が４組算出される。パスワード判定部１２は、基準パスワード記憶部１１から基準パスワードＲ２として２つの数値の組を４組読み出して、剰余Ｒ１（０，４３）と比較する。パスワード判定部１２は、剰余Ｒ１と基準パスワードＲ２とがすべて一致する場合に認証信号を出力する。この例では２つの除数Ｄにより剰余Ｒ１を算出したが、更に多くの除数Ｄを用いてもよく、また、逆に１つの除数Ｄによる除算であってもよい。
【００２６】
(iii)認証装置１は、例えば、複数バイトで表される入力数値Ｚを、所定のバイト数毎に異なる除数Ｄで除算することで算出される剰余Ｒ１により認証を行う。例えば、入力数値Ｚがある「８５７６ＡＣＥＦ」（ＨＥＸ）を、上位４バイトには除数Ｄとして（５，７）、下位４バイトには除数Ｄとして（３，７）を用いて除算する。剰余Ｒ１は、上位４バイト「８５７６」の各バイトを除数Ｄ（５，７）で除算した場合の剰余である（３，１）、（０，５）、（２，０）、（１，６）と、下位４バイト「ＡＣＥＦ」の各バイトを除数Ｄ（３，７）で除算した場合の剰余である（１，３）、（０，５）、（２，０）、（０，１）と、になる。パスワード判定部１２は、基準パスワード記憶部１１から基準パスワードＲ２として２つの数値の組を８組読み出して、剰余Ｒ１と比較する。パスワード判定部１２は、剰余Ｒ１と基準パスワードＲ２とがすべて一致する場合に認証信号を出力する。この例では２つの除数Ｄにより剰余Ｒ１を算出したが、更に多くの除数Ｄを用いてもよく、また、逆に１つの除数Ｄによる除算であってもよい。
【００２７】
上記の(i)、(ii)、(iii)の例では、複数算出される剰余Ｒ１がすべて基準パスワードＲ２と一致した場合にのみ、入力数値Ｚが認証され、一つでも一致しないものがあると、入力数値Ｚが認証されない。そのために、基準パスワードＲ２が多数必要になる。基準パスワードＲ２を不正に入手しようとする者は、多数の基準パスワードＲ２が必要になるために、基準パスワードＲ２の入手が困難になる。そのために基準パスワードＲ２の秘匿性が従来よりも向上する。
【００２８】
図２は、除数Ｄと入力数値Ｚとの関係から算出される剰余Ｒ１を表す図である。
入力数値Ｚを１バイト毎に乗数Ｄで除算すると、剰余は周期的になる。この周期を考慮すると、除数Ｄは、「入力数値Ｚ＜複数の除数Ｄ同士の乗数」の関係にあるものが好適である。このような関係にあると、複数の除数Ｄのそれぞれから得られる剰余が、同じになる周期を延ばすことができ、同じ剰余の組み合わせとなる入力数値Ｚを少なくすることができるため、セキュリティの強化を図ることができる。なお、図２中の斜線Ａは、この線よりも右側では除数Ｄに関わらず剰余Ｒ１が同じになるために、本実施形態では好適ではないことを表す線である。
最も好適なものは、「入力数値Ｚ＜複数の除数Ｄ同士の乗数」、且つ入力数値Ｚに最も近い素数同士の乗数の組み合わせである。例えば、入力数値Ｚ＝１５であれば、除数Ｄは（３，７）が最も好適になる。この場合、使用可能な剰余Ｒ１は「３〜１５」の１３通りと比較的多く、且つ剰余の組み合わせ（０，１）は、入力数値Ｚ＝１５のときのみである。なお、入力数値Ｚ＝１５で除数Ｄが（３，５，７）の場合も、剰余Ｒ１が「３〜１５」の１３通りであるが、除算回数が多くなり、処理に時間がかかる。また、回路規模も大きくなる。
次に好適なものは、「入力数値Ｚ＜複数の除数Ｄの乗数」、且つ入力数値Ｚに最も近い素数とそれ以外の数の乗数の組み合わせである。例えば、入力数値Ｚ＝１５であれば、除数Ｄは（４，５）である。この場合、使用可能な剰余Ｒ１は「４〜１５」の１２通りである。
図２の右端は、これらの組み合わせの一致性を表している。「＃OK」の部分は非推奨な剰余である。剰余としてこれらの値を使用すると、剰余の組み合わせや入力数値Ｚが同じ数値になり、パスワードやそれに準ずる剰余の設定値として望ましくない。
【００２９】
なお、認証装置１は、図２のような除数Ｄと入力数値Ｚとから算出される剰余Ｒ１を、テーブルとして保持していてもよい。このようなテーブルを保持すると、剰余生成部１０で除算を行う必要が無くなり、剰余生成部１０は、除数Ｄと入力数値Ｚとからテーブルを参照して剰余Ｒ１を出力すればよい。この場合、除算するよりも高速に大量の剰余Ｒ１を生成することができる。
【００３０】
図３は、基準パスワード記憶部１１に基準パスワードＲ２となる剰余データを書き込む処理のタイミングチャートの例示図である。基準パスワード記憶部１１への剰余データの書き込みは、例えば図示しないメモリコントローラのようなもので行う。なお、第２除数記憶部１４に除数候補値となる数値を書き込む処理も同様である。
以下、基準パスワードＲ２を書き込む処理を例に説明する。
【００３１】
図３では、認証装置１の外部から、基準パスワードＲ２になる剰余データとともにコード１〜コード１７が入力される。コード１〜コード１７は、認証装置１が設けられるフラッシュメモリにアクセスするための、予め決められたコードである。コードの組み合わせにより、各種コマンドが形成される。
コード１〜コード３及びコード１０〜コード１２は、基準パスワードＲ２の入力を認証装置１に指示する基準パスワード入力コマンドを形成する。基準パスワード入力コマンドにより、基準パスワード記憶部１１への剰余データの入力が可能になる。
コード４〜コード６及びコード１３，１４は、剰余データ入力コマンドを形成しており、剰余データとともに入力される。剰余データ入力コマンドにより、剰余データが基準パスワードＲ２として基準パスワード記憶部１１に書き込まれる。
コード７〜コード９及びコード１５〜コード１７は、基準パスワードＲ２の入力の終了を認証装置１に指示する基準パスワード入力終了コマンドを形成する。基準パスワード入力終了コマンドにより、基準パスワードＲ２として基準パスワード記憶部１１に書き込んだ剰余データが確定する。入力されたコードに一つでも間違いがあれば、基準パスワードＲ２として基準パスワード記憶部１１に書き込んだ剰余データが消去される。
このように、コード１〜コード１７がすべて正当なコードの場合にのみ、剰余データが基準パスワードＲ２として、基準パスワード記憶部１１に記憶される。
【００３２】
図４は、パスワード入力からデータの読み出しまでの処理のタイミングチャートの例示図である。
図４では、入力数値Ｚと除数Ｄとが同時に入力されている。パスワード判定部１２は、この入力数値Ｚをこの除数Ｄで除算したときの剰余Ｒ１を基準パスワードＲ２と比較する。比較の結果、一致する場合にデータの保護領域の保護状態が解除されて、保護領域へのアクセスが可能になる。
【００３３】
図４では、アクセスするアドレスとともに、コード２０〜コード２５、コード３０〜コード４０、コード５０〜コード５５、除数Ｄ、入力数値ＺとなるパスワードＰＷＤ０〜ＰＷＤ７が入力される。
コード２０〜コード２５は、保護領域へアクセスを認証装置１に指示するパスワード入力コマンドを形成する。パスワード入力コマンドにより、認証装置１に入力数値Ｚ及び除数Ｄが入力可能になる。
コード３０〜コード４０は、除数Ｄ及びパスワードＰＷＤ０〜ＰＷＤ７とともに入力される。パスワードＰＷＤ０〜ＰＷＤ７は、入力数値Ｚである。コード３０〜コード４０は、フラッシュメモリにアクセスのためにパスワードを解除するためのパスワード解除コマンドを形成している。パスワードＰＷＤ０〜ＰＷＤ７を除数Ｄで除算したときの剰余Ｒ２が基準パスワードＲ２と一致した場合にのみ、データの読み出しや書き込みが可能になる。コード３５に次いで入力されるアドレスに対応したデータにアクセス可能になり、パスワードによって保護されたデータの読み出しが可能になる。
コード５０〜コード５５は、フラッシュメモリにパスワードを再びかけてアクセスを不許可にするためのパスワード解除終了コマンドを形成する。コード５０〜コード５５により、パスワードの解除状態を停止し、パスワードロック状態に戻る。
このように、コード２０〜コード２５、コード３０〜コード４０、コード５０〜コード５５がすべて正当なコードであり、パスワードＰＷＤ０〜ＰＷＤ７を除数Ｄで除算した結果得られる剰余Ｒ１が基準パスワードＲ２と一致する場合のみ、データの読み出しや書き込みが可能になる。
【図面の簡単な説明】
【００３４】
【図１】本実施形態の認証装置１の構成図である。
【図２】除数と入力数値との関係から算出される剰余を表す図である。
【図３】基準パスワード記憶部に基準パスワードを書き込む処理のタイミングチャートの例示図である。
【図４】パスワード入力からデータの読み出しまでの処理のタイミングチャートの例示図である。
【符号の説明】
【００３５】
１…認証装置、１０…剰余生成部、１１…基準パスワード記憶部、１２…パスワード判定部、１３…第１除数記憶部、１４…第２除数記憶部、１５…除数設定部
【図１】
2010009135.tif 000003
【図２】
2010009135.tif 000004
【図３】
2010009135.tif 000005
【図４】
2010009135.tif 000006
【手続補正書】
【提出日】平成21年1月28日(2009.1.28)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００２８
【補正方法】変更
【補正の内容】
【００２８】
図２は、除数Ｄと入力数値Ｚとの関係から算出される剰余Ｒ１を表す図である。
入力数値Ｚを１バイト毎に除数Ｄで除算すると、剰余は周期的になる。この周期を考慮すると、除数Ｄは、「入力数値Ｚ＜複数の除数Ｄ同士の乗数」の関係にあるものが好適である。このような関係にあると、複数の除数Ｄのそれぞれから得られる剰余が、同じになる周期を延ばすことができ、同じ剰余の組み合わせとなる入力数値Ｚを少なくすることができるため、セキュリティの強化を図ることができる。なお、図２中の斜線Ａは、この線よりも右側では除数Ｄに関わらず剰余Ｒ１が同じになるために、本実施形態では好適ではないことを表す線である。
最も好適なものは、「入力数値Ｚ＜複数の除数Ｄ同士の乗数」、且つ入力数値Ｚに最も近い素数同士の乗数の組み合わせである。例えば、入力数値Ｚ＝１５であれば、除数Ｄは（３，７）が最も好適になる。この場合、使用可能な剰余Ｒ１は「３〜１５」の１３通りと比較的多く、且つ剰余の組み合わせ（０，１）は、入力数値Ｚ＝１５のときのみである。なお、入力数値Ｚ＝１５で除数Ｄが（３，５，７）の場合も、剰余Ｒ１が「３〜１５」の１３通りであるが、除算回数が多くなり、処理に時間がかかる。また、回路規模も大きくなる。
次に好適なものは、「入力数値Ｚ＜複数の除数Ｄの乗数」、且つ入力数値Ｚに最も近い素数とそれ以外の数の乗数の組み合わせである。例えば、入力数値Ｚ＝１５であれば、除数Ｄは（４，５）である。この場合、使用可能な剰余Ｒ１は「４〜１５」の１２通りである。
図２の右端は、これらの組み合わせの一致性を表している。「＃OK」の部分は非推奨な剰余である。剰余としてこれらの値を使用すると、剰余の組み合わせや入力数値Ｚが同じ数値になり、パスワードやそれに準ずる剰余の設定値として望ましくない。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３３
【補正方法】変更
【補正の内容】
【００３３】
図４では、アクセスするアドレスとともに、コード２０〜コード２５、コード３０〜コード４０、コード５０〜コード５５、除数Ｄ、入力数値ＺとなるパスワードＰＷＤ０〜ＰＷＤ７が入力される。
コード２０〜コード２５は、保護領域へアクセスを認証装置１に指示するパスワード入力コマンドを形成する。パスワード入力コマンドにより、認証装置１に入力数値Ｚ及び除数Ｄが入力可能になる。
コード３０〜コード４０は、除数Ｄ及びパスワードＰＷＤ０〜ＰＷＤ７とともに入力される。パスワードＰＷＤ０〜ＰＷＤ７は、入力数値Ｚである。コード３０〜コード４０は、フラッシュメモリにアクセスのためにパスワードを解除するためのパスワード解除コマンドを形成している。パスワードＰＷＤ０〜ＰＷＤ７を除数Ｄで除算したときの剰余Ｒ１が基準パスワードＲ２と一致した場合にのみ、データの読み出しや書き込みが可能になる。コード３５に次いで入力されるアドレスに対応したデータにアクセス可能になり、パスワードによって保護されたデータの読み出しが可能になる。
コード５０〜コード５５は、フラッシュメモリにパスワードを再びかけてアクセスを不許可にするためのパスワード解除終了コマンドを形成する。コード５０〜コード５５により、パスワードの解除状態を停止し、パスワードロック状態に戻る。
このように、コード２０〜コード２５、コード３０〜コード４０、コード５０〜コード５５がすべて正当なコードであり、パスワードＰＷＤ０〜ＰＷＤ７を除数Ｄで除算した結果得られる剰余Ｒ１が基準パスワードＲ２と一致する場合のみ、データの読み出しや書き込みが可能になる。