(57)【特許請求の範囲】
【請求項１】
半導体集積回路（ＩＣ）を有するＩＣカードと、ネットワークを介して前記ＩＣカードと通信可能な認証装置とを用いて、前記ＩＣカードのユーザの正当性を認証する認証システムであって、
前記半導体集積回路は、
入力機器を用いて入力された第１初期値データと、前記認証装置から受信した反復演算回数データとを入力する入力部と、
前記入力部によって入力された、前記第１初期値データと前記反復演算回数データとを使用し、演算回数を示す可変パラメータ（ｎ）を任意の０以上の整数とし、定数パラメータ（α）を正の定数とするとき、０から１の範囲で値がランダムに変化する、演算式｛Ｘ（ｎ＋１）＝α×Ｘ（ｎ）×（１−Ｘ（ｎ））｝で定義された第１カオス演算を前記反復演算回数反復させるカオス演算回路と、
前記カオス演算回路が行った前記第１カオス演算による第１カオス演算結果を前記認証装置へ出力する出力部と
を有し、
前記カオス演算回路は、
前記可変パラメータが０をとる、１回目の第１カオス演算時には、前記第１初期値データを前記演算式の初期値｛Ｘ（０）｝として使用し、前記第１カオス演算に用いるべき前記第１初期値データおよび前記反復演算回数データが同一であっても、第１カオス演算結果がＩＣカードごとに異なるように製造されたハードウェアの電子回路であり、
前記認証装置は、
前記出力部が出力した前記第１カオス演算結果を受信する受信部と、
前記第１初期値データと同一であり、前記初期値として使用される第２初期値データと、前記第１カオス演算と同一の第２カオス演算を実行するプログラムとが格納されている記憶部と、
乱数を発生させて前記第１および前記第２カオス演算時に使用すべき前記反復演算回数データを取得する第１処理と、前記記憶部に格納されている前記プログラムを実行し、前記第１処理による前記反復演算回数データと、前記記憶部に格納されている前記第２初期値データと、前記定数パラメータとを使用して、前記プログラムが実行する前記第２カオス演算を前記反復演算回数反復させる第２処理と、前記受信部が受信した前記第１カオス演算結果と、前記第２処理の前記第２カオス演算による第２カオス演算結果とを比較し、前記第１カオス演算結果と前記第２カオス演算結果とが互いに一致した場合に、前記ＩＣカードのユーザが正当であると認証する第３処理とを行う処理部と、
前記処理部の前記第１処理による前記反復演算回数データを前記半導体集積回路へ送信する送信部と
を有する認証システム。
【請求項２】
前記カオス演算回路は、
前記１回目の第１カオス演算時には、前記第１初期値データを用いて、前記演算式の演算値｛１−Ｘ（０）｝を求め、前記可変パラメータがｎをとる、ｎ＋１回目の第１カオス演算時には、前記可変パラメータがｎ−１をとる、ｎ回目の第１カオス演算結果を使用して、前記演算式の演算値｛１−Ｘ（ｎ）｝を求める第１演算回路と、
前記１回目の第１カオス演算時には、前記定数パラメータと前記初期値と前記第１の演算回路によって求められた前記１回目の第１カオス演算時における前記演算値とを各々乗算し、前記ｎ＋１回目の前記第１カオス演算時には、前記定数パラメータと前記ｎ回目の第１カオス演算結果と前記第１演算回路によって求められた前記ｎ回目の第１カオス演算時における前記演算値とを各々乗算する第２演算回路と
を有する
請求項１記載の認証システム。
【請求項３】
前記ＩＣカードと通信可能であり、かつ、前記ネットワークを介して前記認証装置と通信可能であり、使用の権限が前記ユーザに限定されたアプリケーションソフトウェアを有するデータ処理端末を更に有し、
前記送信部は、
前記処理部の前記第３処理によって得られた認証結果を前記データ処理端末に送信し、
前記データ処理端末は、
前記ＩＣカードのユーザが正当であると認証されたことを示す認証結果を受信した場合に、前記アプリケーションソフトウェアの使用を許可する
請求項１または２記載の認証システム。
【請求項４】
半導体集積回路（ＩＣ）を有するＩＣカードであって、前記半導体集積回路が、第１初期値データと反復演算回数データとを使用し、演算回数を示す可変パラメータ（ｎ）を任意の０以上の整数とし、定数パラメータ（α）を正の定数とするとき、０から１の範囲で値がランダムに変化する、演算式｛Ｘ（ｎ＋１）＝α×Ｘ（ｎ）×（１−Ｘ（ｎ））｝で定義された第１カオス演算を前記反復演算回数反復させるカオス演算回路を有し、前記カオス演算回路が、前記可変パラメータが０をとる、１回目の第１カオス演算時には、前記第１初期値データを前記演算式の初期値｛Ｘ（０）｝として使用し、前記第１カオス演算に用いるべき前記第１初期値データおよび前記反復演算回数データが同一であっても、第１カオス演算結果がＩＣカードごとに異なるように製造されたハードウェアの電子回路である、ＩＣカードと、
前記第１初期値データと同一であり、前記初期値として使用される第２初期値データと、前記第１カオス演算と同一の第２カオス演算を実行するプログラムとが格納されている記憶部を有し、ネットワークを介して前記ＩＣカードと通信可能な認証装置と
を用いて、前記ＩＣカードのユーザの正当性を認証する認証方法であって、
前記半導体集積回路が、入力機器を用いて入力された前記第１初期値データを入力部に入力させる第１工程と、
前記認証装置が、乱数を発生させて前記第１および前記第２カオス演算時に使用すべき反復演算回数データを取得する第２工程と、
前記認証装置が、前記第２工程で取得した前記反復演算回数データを前記半導体集積回路へ送信部に送信させる第３工程と、
前記半導体集積回路が、前記認証装置から受信した前記反復演算回数データを前記入力部に入力させる第４工程と、
前記半導体集積回路が、前記第１工程で入力した前記第１初期値データと、前記第４工程で入力した前記反復演算回数データとを使用し、前記第１カオス演算を前記カオス演算回路に前記反復演算回数反復させる第５工程と、
前記半導体集積回路が、前記第５工程における前記第１カオス演算による前記第１カオス演算結果を出力部に出力させる第６工程と、
前記認証装置が、前記出力部が前記第６工程で出力した前記第１カオス演算結果を受信部に受信させる第７工程と、
前記認証装置が、前記記憶部に格納されている前記プログラムを実行し、前記第２工程で取得した前記反復演算回数データと、前記記憶部に格納されている前記第２初期値データと、前記定数パラメータとを使用して、前記プログラムが実行する前記第２カオス演算を前記反復演算回数反復させる第８工程と、
前記認証装置が、前記第７工程で受信した前記第１カオス演算結果と前記第８工程での前記第２カオス演算による第２カオス演算結果とを比較し、前記第１カオス演算結果と前記第２カオス演算結果とが互いに一致した場合に、前記ＩＣカードのユーザが正当であると認証する第９工程と
を有する認証方法。
【請求項５】
半導体集積回路（ＩＣ）を有するＩＣカードと、ネットワークを介して前記ＩＣカードと通信可能な認証装置とを用いて、前記ＩＣカードのユーザの正当性を認証する認証システムを用いるＩＣカードであって、
前記半導体集積回路は、
入力機器を用いて入力された第１初期値データと、前記認証装置から受信した反復演算回数データとを入力する入力部と、
前記入力部によって入力された、前記第１初期値データと前記反復演算回数データとを使用し、演算回数を示す可変パラメータ（ｎ）を任意の０以上の整数とし、定数パラメータ（α）を正の定数とするとき、０から１の範囲で値がランダムに変化する、演算式｛Ｘ（ｎ＋１）＝α×Ｘ（ｎ）×（１−Ｘ（ｎ））｝で定義された第１カオス演算を前記反復演算回数反復させるカオス演算回路と、
前記カオス演算回路が行った前記第１カオス演算による第１カオス演算結果を前記認証装置へ出力する出力部と
を有し、
前記カオス演算回路は、
前記可変パラメータが０をとる、１回目の第１カオス演算時には、前記第１初期値データを前記演算式の初期値｛Ｘ（０）｝として使用し、前記第１カオス演算に用いるべき前記第１初期値データおよび前記反復演算回数データが同一であっても、第１カオス演算結果がＩＣカードごとに異なるように製造されたハードウェアの電子回路である
ＩＣカード。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、認証システム、認証方法およびＩＣカードに関する。
【０００２】
【従来の技術】
近年、ＩＣ(Integrated Circuit)カードを用いた個人認証を伴う電子商取引が普及している。
このような個人認証機能を備えたＩＣカードは、通常、ＩＣに認証用ソフトウェアを記憶しており、例えば、ユーザが入力した暗証番号を用いて認証用ソフトウェアで所定の認証用演算を行う。そして、当該認証用演算の結果は、ネットワークを介して認証装置に送信され、認証装置において、当該認証用演算の結果に基づいて、当該ＩＣカードのユーザの正当性が認証される。
このようなＩＣカードのＩＣ（半導体回路）は、通常、他のＩＣと共通の回路マスクパターンを利用して光リソグラフィ技術によって大量生産されるため、ハードウェア構成は他のＩＣカードのＩＣと同じであるが、認証用ソフトウェアに記述された演算内容の一部を他のＩＣカードのＩＣとは異ならせることで、ＩＣカードの不正な複製が容易に行われること防止している。
【０００３】
【発明が解決しようとする課題】
しかしながら、上述した従来のＩＣカードでは、ソフトウェアの複製が比較的容易であることから、ＩＣに記憶されている認証用ソフトウェアが複製されてしまい、ＩＣカードが不正に複製されることを十分に防止できない。そのため、不正に複製したＩＣカードを用いて不正な個人認証が行われてしまい、信頼性の高い電子商取引が行えないという問題がある。
【０００４】
本発明は上述した従来技術の問題点に鑑みてなされ、ＩＣカードなどの個人認証に用いられるモジュールが容易に複製されることを回避し、個人認証の信頼性を高めることができる認証システム、認証方法およびＩＣカードを提供することを目的とする。
【０００５】
【課題を解決するための手段】
上述した従来技術の問題点を解決し、上述した目的を達成するために、本発明の認証システムは、半導体集積回路（ＩＣ）を有するＩＣカードと、ネットワークを介して前記ＩＣカードと通信可能な認証装置とを用いて、前記ＩＣカードのユーザの正当性を認証する認証システムであって、前記半導体集積回路は、入力機器を用いて入力された第１初期値データと、前記認証装置から受信した反復演算回数データとを入力する入力部と、前記入力部によって入力された、前記第１初期値データと前記反復演算回数データとを使用し、演算回数を示す可変パラメータ（ｎ）を任意の０以上の整数とし、定数パラメータ（α）を正の定数とするとき、０から１の範囲で値がランダムに変化する、演算式｛Ｘ（ｎ＋１）＝α×Ｘ（ｎ）×（１−Ｘ（ｎ））｝で定義された第１カオス演算を前記反復演算回数反復させるカオス演算回路と、前記カオス演算回路が行った前記第１カオス演算による第１カオス演算結果を前記認証装置へ出力する出力部とを有し、前記カオス演算回路は、前記可変パラメータが０をとる、１回目の第１カオス演算時には、前記第１初期値データを前記演算式の初期値｛Ｘ（０）｝として使用し、前記第１カオス演算に用いるべき前記第１初期値データおよび前記反復演算回数データが同一であっても、第１カオス演算結果がＩＣカードごとに異なるように製造されたハードウェアの電子回路であり、前記認証装置は、前記出力部が出力した前記第１カオス演算結果を受信する受信部と、前記第１初期値データと同一であり、前記初期値として使用される第２初期値データと、前記第１カオス演算と同一の第２カオス演算を実行するプログラムとが格納されている記憶部と、乱数を発生させて前記第１および前記第２カオス演算時に使用すべき前記反復演算回数データを取得する第１処理と、前記記憶部に格納されている前記プログラムを実行し、前記第１処理による前記反復演算回数データと、前記記憶部に格納されている前記第２初期値データと、前記定数パラメータとを使用して、前記プログラムが実行する前記第２カオス演算を前記反復演算回数反復させる第２処理と、前記受信部が受信した前記第１カオス演算結果と、前記第２処理の前記第２カオス演算による第２カオス演算結果とを比較し、前記第１カオス演算結果と前記第２カオス演算結果とが互いに一致した場合に、前記ＩＣカードのユーザが正当であると認証する第３処理とを行う処理部と、前記処理部の前記第１処理による前記反復演算回数データを前記半導体集積回路へ送信する送信部とを有する。
【０００６】
本発明の認証方法は、半導体集積回路（ＩＣ）を有するＩＣカードであって、前記半導体集積回路が、第１初期値データと反復演算回数データとを使用し、演算回数を示す可変パラメータ（ｎ）を任意の０以上の整数とし、定数パラメータ（α）を正の定数とするとき、０から１の範囲で値がランダムに変化する、演算式｛Ｘ（ｎ＋１）＝α×Ｘ（ｎ）×（１−Ｘ（ｎ））｝で定義された第１カオス演算を前記反復演算回数反復させるカオス演算回路を有し、前記カオス演算回路が、前記可変パラメータが０をとる、１回目の第１カオス演算時には、前記第１初期値データを前記演算式の初期値｛Ｘ（０）｝として使用し、前記第１カオス演算に用いるべき前記第１初期値データおよび前記反復演算回数データが同一であっても、第１カオス演算結果がＩＣカードごとに異なるように製造されたハードウェアの電子回路である、ＩＣカードと、前記第１初期値データと同一であり、前記初期値として使用される第２初期値データと、前記第１カオス演算と同一の第２カオス演算を実行するプログラムとが格納されている記憶部を有し、ネットワークを介して前記ＩＣカードと通信可能な認証装置とを用いて、前記ＩＣカードのユーザの正当性を認証する認証方法であって、前記半導体集積回路が、入力機器を用いて入力された前記第１初期値データを入力部に入力させる第１工程と、前記認証装置が、乱数を発生させて前記第１および前記第２カオス演算時に使用すべき反復演算回数データを取得する第２工程と、前記認証装置が、前記第２工程で取得した前記反復演算回数データを前記半導体集積回路へ送信部に送信させる第３工程と、前記半導体集積回路が、前記認証装置から受信した前記反復演算回数データを前記入力部に入力させる第４工程と、前記半導体集積回路が、前記第１工程で入力した前記第１初期値データと、前記第４工程で入力した前記反復演算回数データとを使用し、前記第１カオス演算を前記カオス演算回路に前記反復演算回数反復させる第５工程と、前記半導体集積回路が、前記第５工程における前記第１カオス演算による前記第１カオス演算結果を出力部に出力させる第６工程と、前記認証装置が、前記出力部が前記第６工程で出力した前記第１カオス演算結果を受信部に受信させる第７工程と、前記認証装置が、前記記憶部に格納されている前記プログラムを実行し、前記第２工程で取得した前記反復演算回数データと、前記記憶部に格納されている前記第２初期値データと、前記定数パラメータとを使用して、前記プログラムが実行する前記第２カオス演算を前記反復演算回数反復させる第８工程と、前記認証装置が、前記第７工程で受信した前記第１カオス演算結果と前記第８工程での前記第２カオス演算による第２カオス演算結果とを比較し、前記第１カオス演算結果と前記第２カオス演算結果とが互いに一致した場合に、前記ＩＣカードのユーザが正当であると認証する第９工程とを有する。
【０００７】
本発明のＩＣカードは、半導体集積回路（ＩＣ）を有するＩＣカードと、ネットワークを介して前記ＩＣカードと通信可能な認証装置とを用いて、前記ＩＣカードのユーザの正当性を認証する認証システムを用いるＩＣカードであって、前記半導体集積回路は、入力機器を用いて入力された第１初期値データと、前記認証装置から受信した反復演算回数データとを入力する入力部と、前記入力部によって入力された、前記第１初期値データと前記反復演算回数データとを使用し、演算回数を示す可変パラメータ（ｎ）を任意の０以上の整数とし、定数パラメータ（α）を正の定数とするとき、０から１の範囲で値がランダムに変化する、演算式｛Ｘ（ｎ＋１）＝α×Ｘ（ｎ）×（１−Ｘ（ｎ））｝で定義された第１カオス演算を前記反復演算回数反復させるカオス演算回路と、前記カオス演算回路が行った前記第１カオス演算による第１カオス演算結果を前記認証装置へ出力する出力部とを有し、前記カオス演算回路は、前記可変パラメータが０をとる、１回目の第１カオス演算時には、前記第１初期値データを前記演算式の初期値｛Ｘ（０）｝として使用し、前記第１カオス演算に用いるべき前記第１初期値データおよび前記反復演算回数データが同一であっても、第１カオス演算結果がＩＣカードごとに異なるように製造されたハードウェアの電子回路である。
【００１９】
本発明では、ＩＣカードが有する半導体集積回路のカオス演算回路が、第１カオス演算に用いるべき第１初期値データおよび反復演算回数データが同一であっても、第１カオス演算結果がＩＣカードごとに異なるように製造されたハードウェアの電子回路であることから、ＩＣカードが簡単に複製され、不正に利用されることを回避できる。
【００２０】
【発明の実施の形態】
以下、本発明の実施形態に係わる通信システムについて説明する。
図１は、本実施形態の通信システム１の全体構成図である。
図１に示すように、通信システム１は、ネットワーク２を介して、コンピュータ５および認証装置６が接続されている。
コンピュータ５は、ＩＣカード３に組み込まれたＩＣとの間で情報の入出力を行うＩＣカードアクセス装置４に接続されている。
なお、本実施形態では、通信システム１が本発明の認証システムに対応し、ＩＣカード３に組み込まれたＩＣ（ＩＣ１０）が本発明の半導体集積回路に対応している。また、コンピュータ５が本発明のデータ処理端末に対応している。
【００２１】
以下、通信システム１の各構成要素について詳細に説明する。
〔ＩＣカード３〕
図２は、ＩＣカード３の構成を説明するための図である。
図２に示すように、ＩＣカード３は、携帯性があり、プラスチックなどを材料とした矩形の薄板状をしており、内部にＩＣ１０が組み込まれている。
なお、本発明では、ＩＣカード３の形状は、矩形の薄板状には限定されず、例えばスティック状、ボール状、ボタン状などでもよい。
【００２２】
図３は、図２に示すＩＣ１０の機能ブロック図である。
図３に示すように、ＩＣ１０は、入出力インターフェース１１、メモリ１２、認証用演算回路１３およびＣＰＵ１４を有する。
なお、本実施形態では、入出力インターフェース１１が本発明の入力部および出力部に対応している。また、認証用演算回路１３が本発明のカオス演算回路に対応している。
入出力インターフェース１１は、ＩＣカード３がＩＣカードアクセス装置４に接続されたときに、メモリ１２、認証用演算回路１３およびＣＰＵ１４と、コンピュータ５との間の要求および情報の入出力を行う。
【００２３】
メモリ１２は、ＩＣカード３のユーザの個人情報、認証用演算回路１３およびＣＰＵ１４の処理に必要な所定の情報を記憶する。
【００２４】
認証用演算回路１３は、ソフトウェアを用いて解析した場合に実時間で解析困難な演算を行うための専用の回路であり、他のＩＣカードの認証用演算回路との関係で、同じ入力を与えた場合に異なる演算結果が得られるように回路（ハードウェア）が構成されている。ＩＣ１０の全体あるいは認証用演算回路１３は、例えば、電子線直接描画装置を用いて、１チップずつ製造される。
また、認証用演算回路１３は、例えば、カオス回路である場合に、当該カオス回路を用いて所定の演算を行う際に用いられる初期値および反復演算数の少なくとも一方が異なる場合に、異なる演算結果を生成するように回路が構成されている。
本実施形態では、認証用演算回路１３をソフトウェアではなく、ハードウェアで実現することで、ＩＣカード３の複製が実質的に不可能となり、ＩＣカード３を利用した不正使用を効果的に抑制できる。
【００２５】
認証用演算回路１３は、例えば、ユーザによるＩＣカードアクセス装置４の操作に応じて入出力インターフェース１１から暗証番号「ｘ」を入力する。
また、認証用演算回路１３は、ネットワーク２、コンピュータ５、ＩＣカードアクセス装置４および入出力インターフェース１１を介して、認証装置６からパラメータ「ａ」（本発明の反復演算回数データ）を入力する。
そして、認証用演算回路１３は、上記入力された暗証番号「ｘ」を上記初期値、上記入力されたパラメータ「ａ」を上記反復演算数として用いて、下記式（１）で定義されるロジスティック写像演算などの演算を行う。
【００２６】
【数１】
Ｘ（ｎ＋１）＝４×Ｘ（ｎ）（１−Ｘ（ｎ））          …（１）
ｎは０以上の任意の整数
【００２７】
上記式（１）において、初期値Ｘ（０）＝０．５３とした場合の演算結果Ｘ（ｎ）を図４に示す。図４において、横軸がｎを示し、縦軸がＸ（ｎ）を示している。図４に示すように、上記（１）では、０〜１の範囲でＸ（ｎ）が疑似乱数を持つように見える。
以下、認証用演算回路１３において、初期値を「ｘ」、反復演算回数を「ａ」とした場合の演算結果Ｘ（ａ）を、演算結果ｆ（ｘ，ａ）と記す。
【００２８】
図５は、認証用演算回路１３の構成例を示す図である。
図５に示すように、認証用演算回路１３は、加算回路２０および乗算回路２１を有する。なお、本実施形態では、加算回路２０が本発明の第１演算回路に対応し、乗算回路２１が本発明の第２演算回路に対応している。
加算回路２０は、１回目の演算では、初期値Ｘ（０）と「−１」とを加算した加算結果「Ｘ（０）−１」を乗算回路２１に出力する。
また、加算回路２０は、（ｎ＋１）回目の演算では、演算結果Ｘ（ｎ）と「−１」とを加算した加算結果「Ｘ（ｎ）−１」を乗算回路２１に出力する。
【００２９】
乗算回路２１は、１回目の演算では、「−４」と、初期値Ｘ（０）と、加算回路２０からの加算結果「Ｘ（０）−１」とを乗算した演算結果「−４Ｘ（０）（Ｘ（０）−１）」を演算結果Ｘ（１）として出力する。
また、乗算回路２１は、（ｎ＋１）回目の演算では、「−４」と、演算結果Ｘ（ｎ）と、加算回路２０からの加算結果「Ｘ（ｎ）−１」とを乗算した演算結果「−４Ｘ（ｎ）（Ｘ（ｎ）−１）」を演算結果Ｘ（ｎ＋１）として出力する。
【００３０】
ＣＰＵ１４は、ＩＣ１０とＩＣカードアクセス装置４との間の通信と、ＩＣカードアクセス装置４を介したＩＣ１０とコンピュータ５との間の通信と、ネットワーク２、コンピュータ５およびＩＣカードアクセス装置４を介した認証装置６との間の通信と、入出力インターフェース１１、メモリ１２および認証用演算回路１３の処理とを統括的に管理する。
【００３１】
〔ＩＣカードアクセス装置４〕
ＩＣカードアクセス装置４は、例えば、所定の収納スペースに、ＩＣカード３を着脱自在に装着し、ＩＣカード３を装着した状態で、ＩＣカード３のＩＣ１０との間で接触方式で情報および要求の入出力を行う。
なお、ＩＣカードアクセス装置４は、ＩＣカード３のＩＣ１０との間で非接触方式で情報および要求の入出力を行ってもよい。
【００３２】
〔コンピュータ５〕
コンピュータ５は、ネットワーク２およびＩＣカードアクセス装置４と接続されており、例えば、ネットワーク２上に接続された図示しないサーバ装置との間で電子商取引などを行うために用いられる。
【００３３】
〔認証装置６〕
図６は、図１に示す認証装置６の機能ブロック図である。
図６に示すように、認証装置６は、入出力インターフェース３１、メモリ３２およびＣＰＵ３３を有する。
なお、本実施形態では、入出力インターフェース３１が本発明の受信部および送信部に対応している。また、メモリ３２が本発明の記憶部に対応し、ＣＰＵ３３が本発明の処理部に対応している。
入出力インターフェース３１は、ネットワーク２を介して、図１に示すコンピュータ５およびＩＣカード３との間で要求および情報の送受信を行う。
【００３４】
メモリ３２は、ＩＣカード３のユーザの個人情報、図３に示す認証用演算回路１３の演算に対応した演算を行う認証用演算ソフトウェア（プログラム）３４、ＣＰＵ１４の処理に必要な所定の情報を記憶する。
認証用演算ソフトウェア３４は、前述した図３に示すＩＣカード３のＩＣ１０の認証用演算回路１３が行う演算と同じ演算を記述したソフトウェアである。
すなわち、認証用演算ソフトウェア３４は、メモリ３２から読み出した各ユーザの暗証番号「ｘ」を初期値、ＣＰＵ３３で例えば乱数を発生して得たパラメータ「ａ」を反復演算数として、上記式（１）で定義される演算を行うためのソフトウェアである。
【００３５】
ＣＰＵ３３は、入出力インターフェース３１およびメモリ３２の動作を統括的に制御すると共に、メモリ３２から読み出した認証用演算ソフトウェア３４を実行して上記式（１）で定義される演算を行う。
ここで、ＣＰＵ３３で、初期値を「ｘ」、反復演算回数を「ａ」として認証用演算ソフトウェア３４を実行した場合の演算結果Ｘ（ａ）を、演算結果ｆ’（ｘ，ａ）と記す。
ＣＰＵ３３は、ＩＣカード３から受信した演算結果ｆ（ｘ，ａ）と、ＣＰＵ３３内で生成した上記演算結果ｆ’（ｘ，ａ）とを比較し、一致している場合に、正当なユーザがＩＣカード３を使用していると判断し、その旨を示す認証結果を所定の署名情報と共に、例えばコンピュータ５に送信する。
【００３６】
以下、図１に示す通信システム１の動作例を説明する。
図７は、当該動作例における信号の流れを説明するための図である。
ステップＳＴ１：
コンピュータ５は、ＩＣカードアクセス装置４を介してＩＣカード３のＩＣ１０に、認証要求ＲＥＧ１を送信する。
【００３７】
ステップＳＴ２：
ＩＣ１０は、認証要求ＲＥＧ１を受信すると、図３に示すメモリ１２から当該ＩＣカード３の所有者のユーザＩＤである「ＵＳＥＲ＿ＩＤ」を読み出し、これをコンピュータ５に送信する。
【００３８】
ステップＳＴ３：
コンピュータ５は、ステップＳＴ２で受信した「ＵＳＥＲ＿ＩＤ」と共に、認証要求ＲＥＧ２を認証装置６に送信する。
【００３９】
ステップＳＴ４：
ＩＣカードアクセス装置４のキーボードなどをユーザが操作して自らの暗証番号「ｘ」を入力する。ＩＣカードアクセス装置４は、当該暗証番号「ｘ」を図３に示すＩＣ１０の認証用演算回路１３に送信する。
【００４０】
ステップＳＴ５：
認証装置６は、図６に示すＣＰＵ３３で乱数を発生して得たパラメータ「ａ」を、ＩＣカード３のＩＣ１０に送信する。
【００４１】
ステップＳＴ６：
ＩＣカード３のＩＣ１０は、図３に示す認証用演算回路１３で、ステップＳＴ４で入力された暗証番号「ｘ」を初期値とし、ステップＳＴ５で入力されたパラメータ「ａ」を反復演算数として、上記式（１）の演算を行い、その演算結果ｆ（ｘ，ａ）を認証装置６に送信する。
【００４２】
ステップＳＴ７：
認証装置６は、図６に示すメモリ３２から読み出した認証用演算ソフトウェア３４をＣＰＵ３３で実行し、図６に示すメモリ３２から読み出した当該ユーザＩＤに対応する暗証番号「ｘ」と、ステップＳＴ５で得たパラメータ「ａ」とを用いて上記式（１）の演算を行い、その演算結果ｆ’（ｘ，ａ）を生成する。
次に、認証装置６は、当該生成した演算結果ｆ’（ｘ，ａ）と、ステップＳＴ６でＩＣカード３から受信した演算結果ｆ（ｘ，ａ）とを比較する。
そして、認証装置６は、当該比較の結果、一致していると判断した場合には、当該ユーザが正当である旨を示す認証結果を生成し、一方、一致していないと判断した場合には、当該ユーザが不当である旨を示す認証結果を生成する。
認証装置６は、当該認証結果と認証装置６の署名情報とを格納した認証応答ＩＮＦを生成し、これをコンピュータ５に送信する。
コンピュータ５は、認証応答に含まれる署名情報を確認すると共に、認証結果に基づいて所定の処理を行う。
【００４３】
ここで、コンピュータ５が行う所定の処理は、例えば、他のサーバ装置との間で行うオンラインショッピングなどの電子商取引に関する処理などがある。
また、コンピュータ５が金融機関などに設けられたＡＴＭなどである場合には、コンピュータ５が行う所定の処理は、ユーザの個人認証が必要な金融取り引き処理などである。
【００４４】
なお、上述した動作例では、ステップＳＴ４において正しい暗証番号「ｘ」が認証用演算されると共に、認証装置６とＩＣカード３の認証用演算回路１３との間で共通のパラメータ「ａ」を用いて演算が行われた場合を例示したが、ステップＳＴ４において正しい暗証番号「ｘ」が入力されない場合、または、認証装置６とＩＣカード３の認証用演算回路１３との間で異なるパラメータが用いられた場合には、認証装置６は、ステップＳＴ７において、認証用演算回路１３の演算結果と認証装置６の演算結果とは一致しないと判断し、ＩＣカード３のユーザが不正なユーザであると認証する。
【００４５】
以上説明したように、通信システム１によれば、図３に示すＩＣカード３の認証用演算回路１３を、ソフトウェアで実現するのではなく、ハードウェア実現し、各ＩＣカード３毎に固有の回路構成を有していることから、従来に比べて、ＩＣカード３が不正に複製されることを効果的に抑制できる。
その結果、通信システム１によれば、ＩＣカード３を用いた個人認証の信頼性を高めることができ、電子商取引を安全に行うことが可能になる。
【００４６】
本発明は上述した実施形態には限定されない。
例えば、本発明は、ソフトウェアの違法複製を防止するために用いても効果的である。
例えば、パーソナルコンピュータなどのコンピュータ５に格納されたアプリケーションソフトウェアの利用が所定の権限のある者に限られている場合に、例えば、ユーザは、自らのＩＣカード３を用いて個人認証を行い、正当な権限があることを認められた場合にのみ、当該アプリケーションソフトウェアの使用が許可されるようにしてもよい。
【００４７】
また、各アプリケーションソフトウェアの使用を、正当権限を有するユーザにのみ許可するために、複数のアプリケーションソフトウェアのそれぞれに対応した構成の認証用演算回路１３を持つ複数のＩＣカード３を用意し、各アプリケーションソフトウェアに前述した実施形態の認証装置６と同じ機能を持たせてもよい。
また、当該アプリケーションソフトウェアの複製を、ＩＣカード３を用いて上記権限があることを確認した後でないと許可しないようにすることで、アプリケーションソフトウェアの不正な複製を防止できる。
なお、本実施形態では、例えば、アプリケーションソフトウェアはネットワーク２を介してコンピュータ５にダウンロードし、ＩＣカード３は店頭、通信販売およびインターネット注文などの手段でユーザが取得する。
【００４８】
また、上述した実施形態では、認証に用いられるパラメータ「ａ」を認証装置６で生成する場合を例示したが、当該パラメータ「ａ」をＩＣカード３のＩＣ１０、あるいはネットワーク２に接続されたその他の装置で生成してもよい。
【００４９】
また、上述した実施形態では、認証用演算回路１３が本発明の認証用演算として、前記式（１）に示すカオス演算を例示したが、認証用演算回路１３が行う認証用演算は、ソフトウェアを用いて解析した場合に実時間で解析困難な演算であれば特に限定されない。
【００５０】
【発明の効果】
以上説明したように、本発明によれば、個人認証に用いられるモジュールが容易に複製されることを回避し、個人認証の信頼性を高めることができる認証システム、認証方法およびＩＣカードを提供できる。
【図面の簡単な説明】
【図１】図１は、本発明の実施形態の通信システムの全体構成図である。
【図２】図２は、図１に示すＩＣカードの構成を説明するための図である。
【図３】図３は、図２に示すＩＣの機能ブロック図である。
【図４】図４は、式（１）において、初期値Ｘ（０）＝０．５３とした場合の演算結果Ｘ（ｎ）を示す図であり、横軸がｎを示し、縦軸がＸ（ｎ）を示している。
【図５】図５は、図３に示す認証用演算回路の構成例を示す図である。
【図６】図６は、図１に示す認証装置の機能ブロック図である。
【図７】図７は、図１に示す通信システムの動作例における信号の流れを説明するための図である。
【符号の説明】
１…通信システム、２…ネットワーク、３…ＩＣカード、４…ＩＣカードアクセス装置、５…コンピュータ、６…認証装置、１０…ＩＣ、１１…入出力インターフェース、１２…メモリ、１３…認証用演算回路、１４…ＣＰＵ、２０…加算回路、２１…乗算回路、３１…入出力インターフェース、３２…メモリ、３３…ＣＰＵ
【図１】
0004403649.tif 000002
【図２】
0004403649.tif 000003
【図３】
0004403649.tif 000004
【図４】
0004403649.tif 000005
【図５】
0004403649.tif 000006
【図６】
0004403649.tif 000007
【図７】
0004403649.tif 000008