(57)【要約】【課題】  カードの利用において、ユーザとシステム側双方にとって煩わしい暗証番号を使わない、簡易で安全性の高いシステムを構築する。【解決手段】  カード番号をある１対１対応（写像）の関係にある２つの数の組合せで生成することによって、カード番号の故意又は過失による１数字間違いを完全に検出可能とする。１対１写像として具体的にはＭ系列を用い、改竄に対する安全性を高めるためユーザに秘密にした置換を施す方法を開示した。特に過失による一つの番号入力間違いに有効である。【選択図】      図１
2005242655.tif 000002
【特許請求の範囲】
【請求項１】
個別情報を識別・管理するための識別コードを生成する識別コード生成装置であって、
前記個別情報の個々の管理単位に対応して、該管理単位毎に異なる複数桁の管理コードを出力する管理コード出力部と、
前記管理コードが入力され、該コードと一対一写像関係を持つ複数桁の写像コードを生成する写像演算部と、
前記管理コード及び前記写像コードが入力され、前記管理コードと前記写像コードの一方を上位桁にすると共に他方を下位桁にした合成コードを生成するコード合成部とを備え、
該コード合成部から出力された合成コードから前記個別情報の識別コードを得ることを特徴とする識別コード生成装置。
【請求項２】
前記合成コードを暗号化して識別可能な複数桁からなる前記識別コードを出力する暗号化部を更に備えることを特徴とする請求項１に記載された識別コード生成装置。
【請求項３】
前記管理コード出力部は、前記個別情報の管理単位が記憶された記憶手段の記憶アドレスに応じたコードを出力することを特徴とする請求項１又は２に記載された識別コード生成装置。
【請求項４】
前記識別コードは、各桁が０〜９の数字で表される識別番号として出力されることを特徴とする請求項１〜３のいずれかに記載された識別コード生成装置。
【請求項５】
コンピュータを、個別情報を識別・管理するための識別コードを生成する識別コード生成手段として機能させるプログラムであって、
コンピュータを、
前記個別情報の個々の管理単位に対応して、該管理単位毎に異なる複数桁の管理コードを出力する管理コード出力部、
前記管理コードが入力され、該コードと一対一写像関係を持つ複数桁の写像コードを生成する写像演算部、
前記管理コード及び前記写像コードが入力され、前記管理コードと前記写像コードの一方を上位桁にすると共に他方を下位桁にした合成コードを生成するコード合成部として機能させ、
該コード合成部から出力された合成コードから前記個別情報の識別コードを得ることを特徴とする識別コード生成プログラム。
【請求項６】
前記コンピュータを、前記合成コードを暗号化して識別可能な複数桁からなる前記識別コードを出力する暗号化部として更に機能させることを特徴とする請求項５に記載された識別コード生成プログラム。
【請求項７】
前記管理コード出力部は、前記コンピュータを、前記個別情報の管理単位が記憶された記憶手段の記憶アドレスに応じたコードを出力するように機能させることを特徴とする請求項５又は６に記載された識別コード生成プログラム。
【請求項８】
前記識別コードは、各桁が０〜９の数字で表される識別番号として出力されることを特徴とする請求項５〜７のいずれかに記載された識別コード生成プログラム。
【請求項９】
個別情報を識別・管理するための識別コードを生成する識別コード生成方法であって、
前記個別情報の個々の管理単位に対応して、管理コード出力部が、該管理単位毎に異なる複数桁の管理コードを出力するステップと、
前記管理コードが入力された写像演算部が、該コードと一対一写像関係を持つ複数桁の写像コードを生成するステップと、
前記管理コード及び前記写像コードが入力されるコード合成部が、前記管理コードと前記写像コードの一方を上位桁にすると共に他方を下位桁にした合成コードを生成するステップとを備え、
該コード合成部から出力された合成コードから前記個別情報の識別コードを得ることを特徴とする識別コード生成方法。
【請求項１０】
前記合成コードが入力される暗号化部が、前記合成コードを暗号化して識別可能な複数桁からなる前記識別コードを出力するステップを更に備えることを特徴とする請求項９に記載された識別コード生成方法。
【請求項１１】
前記個別情報が入力される電子機器との情報交換機能を有するカードであって、
請求項１〜４のいずれかに記載された識別コード生成装置、又は請求項５〜８のいずれかに記載された識別コード生成プログラム、又は請求項９又は１０に記載された識別コード生成方法によって生成された前記識別コードが、電磁気的かつ視認可能に記録されていることを特徴とするカード。
【請求項１２】
入力される入力コードが、請求項１に記載する識別コード生成装置、または請求項５に記載する識別コード生成プログラム、または請求項９に記載する識別コード生成方法によって生成された正規の識別コードであるか否かの検証をする識別コード検証装置であって、
前記入力コードが入力され保持される受信部と、
前記受信部からの前記入力コードを前記管理コードに対応する上位桁のコードと前記写像コードに対応する下位桁のコードに分離するコード分離部と、
前記上位桁のコードが入力されると、検証コードを生成する請求項１の写像演算部と同じ１対１写像関係を持つ写像演算部と、
前記検証コードと前記写像コードに対応する下位桁のコードを比較し、不一致の場合は入力コードが正規の識別コードでないことを示す警告信号を出す検証部
とを備えていることを特徴とする識別コード検証装置。
【請求項１３】
入力される入力コードが、請求項２に記載する識別コード生成装置、または請求項６に記載する識別コード生成プログラム、または請求項１０に記載する識別コード生成方法によって生成された正規の識別コードであるか否かの検証をする識別コード検証装置であって、請求項２に記載する識別コード生成装置が備える暗号化部に対応して、さらに前記受信部からの入力コードを復号化する復号化部を、前記受信部と前記コード分離部との間に備えることを特徴とした請求項１２に記載された識別コード検証装置。
【請求項１４】
コンピュータを、入力される入力コードが、請求項１に記載する識別コード生成装置、または請求項５に記載する識別コード生成プログラム、または請求項９に記載する識別コード生成方法によって生成された正規の識別コードであるか否かの検証をする識別コード検証手段として機能させるプログラムであって、
コンピュータを、
前記入力コードが入力され保持される受信部、
前記受信部からの前記入力コードを前記管理コードに対応する上位桁のコードと前記写像コードに対応する下位桁のコードに分離するコード分離部、
前記上位桁のコードが入力されると、検証コードを生成する請求項１の写像演算部と同じ１対１写像関係を持つ写像演算部、
前記検証コードと前記写像コードに対応する下位桁のコードを比較し、不一致の場合は入力コードが正規の識別コードでないことを示す警告信号を出す検証部として機能させることを特徴とする識別コード検証プログラム。
【請求項１５】
前記コンピュータを、入力される入力コードが、請求項２に記載する識別コード生成装置、または請求項６に記載する識別コード生成プログラム、または請求項１０に記載する識別コード生成方法によって生成された正規の識別コードであるか否かの検証をする識別コード検証手段として機能させるプログラムであって、
コンピュータを
請求項２に記載する識別コード生成装置が備える暗号化部に対応して、さらに前記受信部からの入力コードを復号化し前記コード分離部に出力する復号化部として機能させることを特徴とした請求項１４に記載された識別コード検証プログラム。
【請求項１６】
入力される入力コードが、請求項１に記載する識別コード生成装置、または請求項５に記載する識別コード生成プログラム、または請求項９に記載する識別コード生成方法によって生成された正規の識別コードであるか否かの検証をする識別コード検証方法であって、
受信部が、前記入力コードを入力し保持するステップと、
前記受信部からの前記入力コードを入力したコード分離部が、前記管理コードに対応する上位桁のコードと前記写像コードに対応する下位桁のコードに分離するステップと、
前記上位桁のコードが入力される写像演算部が、請求項１の写像演算部と同じ１対１写像関係を持つ検証コードを生成するステップと、
検証部が、前記検証コードと前記写像コードに対応する下位桁のコードを比較し、不一致の場合は入力コードが正規の識別コードでないことを示す警告信号を出すステップ
とを備えていることを特徴とする識別コード検証方法。
【請求項１７】
入力される入力コードが、請求項２に記載する識別コード生成装置、または請求項６に記載する識別コード生成プログラム、または請求項１０に記載する識別コード生成方法によって生成された正規の識別コードであるか否かの検証をする識別コード検証方法であって、請求項２に記載する識別コード生成装置が備える暗号化部に対応して、さらに復号化部が、前記受信部からの入力コードを復号化するステップを、前記受信部がおこなうステップと前記コード分離部がおこなうステップとの間に備えることを特徴とした請求項１６に記載された識別コード検証方法。
【請求項１８】
請求項１１に記載するカードを使って個人認証をおこなうシステムであって、前記カードから識別コードを読み取る読み取り装置、あるいは前記カードの視認可能な識別コードを打入できる機器（携帯電話機等）を識別コードの入力装置とし、請求項１２あるいは請求項１３に記載する識別コード検証装置、あるいは請求項１４，１５に記載する識別コード検証プログラム、あるいは請求項１６，１７に記載する識別コード検証方法によって前記入力装置からの識別コードの正規性を検証するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、個別情報を識別・管理するための識別コードの生成装置と検証装置（方法、プログラムを含む）、その識別コード生成装置（方法、プログラム）を用いて生成された識別コードをカード番号とするカード及びこの識別コードを利用した個人認証システムに関する。
【背景技術】
【０００２】
個別情報（個人情報など）と対応させた識別コード（カード番号を含む）を保有するカード（ＩＣカード、磁気カードなどを含む）は現在広く使われている。それにつれ、カードに関する不正使用等の問題も大きくなっている。この問題に対応するため、一般的には、カードが保有する識別コード（カード番号）と暗証番号等を組み合わせて使用することにより、カードの持ち主が本人であることの認証（個人認証）をおこなっている。したがって、他人のカードを利用しようとしても、暗証番号等を知らない限り簡単には利用できない。また、例えカード番号を変更して他人のカードになりすまして利用しようとしても、同様にその暗証番号等を知らなければ使えない。もっとも、実際の暗証番号の使用においては、記憶しやすい誕生日、電話番号など使う例も多く第三者が容易に推定できる場合もあり、また暗証番号入力の盗み見などで暗証番号が知られるなどその安全性が充分でない場面もある。しかし、現在のカードの安全性は一応、暗証番号の使用によって保証されているといえる。
【０００３】
しかし、この暗証番号の使用はカード利用者及びカードシステム管理側双方にとって煩雑であることも事実である。そしてカードの利用分野として金銭のやり取りには直接かかわらずそれほど高度な安全性・認証性が要求されない分野では、このような暗証番号を併用した個人（本人）認証を厳密におこなう必要性に乏しく、カードの識別コード（カード番号）のみの簡易な認証でよい場合もある。例えば、エンタテインメント分野での、ネットワーク接続ゲーム機を介してのユーザ毎の遊技結果の情報の管理、又、その本人のみ閲覧できるための認証などが一例になる。
【０００４】
ただ、そのようなカードの識別コード（カード番号）による簡易な認証の場合には、その識別コード（カード番号）のみで他人になりすませるから、識別コードが他人に簡単に推定されたり、識別コードの単純な入力ミスで他人の識別コードになってしまうようでは実際のシステムでは使用できないので、それらを防ぐための工夫が必要である。
【０００５】
暗証番号を用いるシステムの煩雑さを指摘したが、これを解消するため暗証番号の代わりに携帯電話番号を登録し使用時に携帯電話を呼び出すシステム（特許文献１参照）、暗証番号の使用を止めるのではなく暗証番号を記憶した別のカードを用意するシステムの提案（特許文献２参照）などがある。また、しばしば使われる推定されやすい暗証番号に代わるものとして、本人が予め登録した登録情報と疑似情報を同時に表示し正しい登録情報を選択することで本人認証を行うシステムの提案もある（特許文献３参照）（画像情報を使うものとして特許文献４参照）。しかし、本発明のようにカード番号の付与方法に工夫を加え、暗証番号をなくしても一定の信頼性を保つ方向の技術ではない。
【０００６】
【特許文献１】特開２００２−０４９５９１号公報
【特許文献２】特開２００２−０４１８１３号公報
【特許文献３】特開２００２−０１５１３２号公報
【特許文献４】特開２００２−１８９９６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述したように安全性を損なわず、暗証番号をなくすることができれば、
１）暗証番号を記憶し入力する利用者の煩わしさ、
２）機器への暗証番号入力手段の装備、
３）暗証番号の忘却・入力ミス等に対するシステム的な対応の必要性など、
システムの煩雑さをなくすことができ、簡易なシステムの構築に大きな貢献となる。そこで具体的には、暗証番号を使わず識別コード（カード番号）自身の構成・構造を工夫することにより、故意・過失による数字の入力違いがあっても他人の識別コードに簡単に一致しない識別コードの構成方法（装置、プログラム）と個人認証システムの構築が課題となる。
【課題を解決するための手段】
【０００８】
本発明は、前述したような課題を解決するための性質・構造を有する識別コードとそれを生成する装置、この識別コードを保持するカード、及び実際に使われるコードが識別コード生成装置で生成された正規の識別コードであるか否かを検証する識別コード認証装置で構成される。
【０００９】
請求項１に記載の発明は、個別情報を識別・管理するための識別コードを生成する識別コード生成装置であって、前記個別情報の個々の管理単位に対応して、該管理単位毎に異なる複数桁の管理コードを出力する管理コード出力部と、前記管理コードが入力され、該コードと一対一写像関係を持つ複数桁の写像コードを生成する写像演算部と、前記管理コード及び前記写像コードが入力され、前記管理コードと前記写像コードの一方を上位桁にすると共に他方を下位桁にした合成コードを生成するコード合成部とを備え、該コード合成部から出力された合成コードから前記個別情報の識別コードを得ることを特徴とする識別コード生成装置である。
【００１０】
請求項２に記載の発明は、前記合成コードを暗号化して識別可能な複数桁からなる前記識別コードを出力する暗号化部を更に備えることを特徴とする請求項１に記載された識別コード生成装置である。
【００１１】
請求項１１に記載の発明は、前記個別情報が入力される電子機器との情報交換機能を有するカードであって、上記識別コード生成装置（識別コード生成プログラム、識別コード生成方法）によって生成された前記識別コードが、電磁気的及び視認可能に記録されていることを特徴とするカードである。
【００１２】
請求項１２に記載の発明は、入力される入力コードが、請求項１に記載する識別コード生成装置、または請求項５に記載する識別コード生成プログラム、または請求項９に記載する識別コード生成方法によって生成された正規の識別コードであるか否かの検証をする識別コード検証装置であって、前記入力コードが入力され保持される受信部と、前記受信部からの前記入力コードを前記管理コードに対応する上位桁のコードと前記写像コードに対応する下位桁のコードに分離するコード分離部と、前記上位桁のコードが入力されると、検証コードを生成する請求項１の写像演算部と同じ１対１写像関係を持つ写像演算部と、前記検証コードと前記写像コードに対応する下位桁のコードを比較し、不一致の場合は入力コードが正規の識別コードでないことを示す警告信号を出す検証部とを備えていることを特徴とする識別コード検証装置である。
【００１３】
請求項１3に記載の発明は、入力される入力コードが、請求項２に記載する識別コード生成装置、または請求項６に記載する識別コード生成プログラム、または請求項１０に記載する識別コード生成方法によって生成された正規の識別コードであるか否かの検証をする識別コード検証装置であって、請求項２に記載する識別コード生成装置が備える暗号化部に対応して、さらに前記受信部からの入力コードを復号化する復号化部を、前記受信部と前記コード分離部との間に備えることを特徴とした請求項１２に記載された識別コード検証装置である。
【発明の効果】
【００１４】
本発明により、暗証番号を使用せず識別コードのみで簡易な個人認証をおこなう場合に問題となる、１数字の違いを確実に検出し、さらに複数の数字違いにも事実上問題が生じない程度にその影響を減らすことによって、これまでの暗証番号を用いるシステムの煩雑さ、すなわち、
１）  暗証番号を記憶し入力する利用者の煩わしさ、
２）  暗証番号入力手段の装備、
３）  さらに暗証番号の忘却、入力ミス等に対するシステム側での対応の必要性、
などをなくし、利用者には利便性の向上、システム構築者には簡易で比較的安全なシステムの提供が可能になる。
【発明を実施するための最良の形態】
【００１５】
以下で説明する本発明の識別コード生成装置、識別コード検証装置などの理解を容易ならしめるために、先ず、本発明の核心である識別コードの原理的な構造について図１を用いて説明する。本識別コードは、情報の管理単位に対応した管理コードＵ（具体的にはｍ桁の数空間の一部）とこのコードＵから１対１写像Ｆで生成される写像コードＬ（具体的にはｎ桁の数空間の一部）の二つの部分コードから合成・構成されている。すなわち、識別コードの集合全体は（Ｕ，Ｌ）で表され、個々の識別コード（合成コード）は（ａ，Ａ）、（ｂ，Ｂ）、（ｃ，Ｃ）・・と云うように表される（ここでＡ＝Ｆ（ａ）、Ｂ＝Ｆ（ｂ）、Ｃ＝Ｆ（ｃ）・・の関係を持っている）。そして入力コードが正規の本識別コードであるか否かを検証するため、識別コード検証装置では入力コードの管理コードＵから写像Ｆを用いて写像コードを作り、実際の入力コードの写像コードＬと一致しているか否かの比較をおこない数字間違いを検証する。
【００１６】
この識別コード構成よって管理コードＵまたは写像コードＬのどちらか片方に生じた故意・過失による数字間違いが検出できる。例えば、管理コードＵ側に間違いが生じａがｂに変わった場合、本来の識別コード（ａ，Ａ）は実際には入力コード（ｂ，Ａ）に変わる。この入力コード（ｂ，Ａ）を検証する識別コード検証装置ではｂから写像コードＦ（ｂ）（＝Ｂ）を作り、これが入力コードのＡと異なるので、入力コード（ｂ，Ａ）は正規の識別コードでないと判断する。このとき、もしＦ（ｂ）（＝Ａ）となるようなことがあれば、入力コード（ｂ，Ａ）が正規の識別コードと判定されてしまうが、本識別コードではＦ（ａ）（＝Ａ）であれば決してＦ（ｂ）（＝Ａ）とはならない（この性質が１対１写像の定義そのものである）ので、（ｂ，Ａ）が正規の識別コードと誤判断されることはない。
【００１７】
管理コードＬ側に間違いが生じた場合も同様に検出可能である。すなわち本来の識別コード（ａ，Ａ）は実際には入力コード（ａ，Ｘ）に変わり、識別コード検証装置ではこのａから写像コードＦ（ａ）（＝Ａ）を作り、これが入力コードのＸと異なるので、入力コード（ａ，Ｘ）は正規の識別コードでないと判断される。以上、本発明の識別コード構成よって管理コードＵまたは写像コードＬのどちらか片方に生じた故意・過失による数字間違いが検出できることを説明した。
【００１８】
識別コードの管理コードＵ、写像コードＬの両方に間違いが生じると、もはや上の説明は成り立たず、偶然に正規の識別コードに一致してしまい、間違いを検出できない可能性が生じる。ただしこの確率は、例えば写像コードＬの桁数を大きくすれば後に述べるように実用上問題がない程度に低くすることができる。
【００１９】
これまでの説明だけでは、１対１写像の関数がカードの改竄等悪用を試みる者に既知の場合、管理コードＵ（又は写像コードＬ）を知れば、容易にカード番号（ａ，Ａ）、（ｂ，Ｂ）・・を作ることが出来る。そこで本発明では過失による１数字間違いの検出に主たる目的があるのであるが、実用システムを想定して写像関数の知識がある者の悪用を困難にするため、請求項２の発明では、合成コードを一度暗号化したものを識別コードとして用いることで安全性を高めている。以上、本発明の識別コードの構造、誤り検出の原理などについて説明した。次にこれを具体的に実現する装置などについて述べる。
【００２０】
本発明の実施形態として、一般的な識別コード生成装置について図２のブロック図を参照しながら説明する。管理コード出力部は、少なくとも識別管理対象に予定している個別情報の数に等しい範囲の数を発生する必要がある。そして写像演算部では、管理コード出力部から出力された管理コード（数）に１対１写像の関係を持つ写像コード（数）を作る。前述したようにこの１対１写像とは、違う管理コードに対しては違う写像コードが作られ、違う管理コードに同じ写像コードが対応することは決してないことを意味する。この性質により故意・過失による識別コードの改竄、間違いを検出できることについては既に説明している。１対１写像の極端な例としては、写像コードとして管理コードそのものを使うことも考えられるが、余りに単純では他人の識別コードの管理コードから対応する写像コードが作れ簡単に改竄、悪用されてしまう。後ほどＭ系列関数を使った１対１写像の具体例について説明する。次にコード合成部で、これら管理コードと写像コードの二つを合成して合成コードを作り、さらにこの合成コードを一般的には暗号化部で暗号化して識別コードとして出力する。この暗号化は上述したように１対１写像が改竄者に既知の場合に、改竄を防止するために管理コード（あるいは写像コード）を秘匿するためである。
【００２１】
次に、一般的な識別コード検証装置について、図３のブロック図を参照しながら説明する。識別を必要とするシステムに入力された入力識別コード（以下「入力コード」と呼ぶ）が、改竄されたり間違えたりして正規の識別コードでないコードに変わっていないかを検証する役目を持つのが識別コード検証装置である。
【００２２】
装置の動作はほぼ識別コード生成装置の動作の逆動作をおこなう。すなわち、入力コードは先ず（識別コード生成時に暗号化を施している場合は）復号化部で暗号を復号し合成コードを取り出す。次にコード分離部ではこの合成コードを管理コードＵと写像コードＬに分離し、さらにこの管理コードＵを写像演算部に入力して検証用写像コードＦ（Ｕ）を作り出す。この写像演算部は識別コード生成装置の写像演算部と同一である。ここで、入力コードが正規の識別コードであれば、検証用写像コードＦ（Ｕ）は写像コードＬに一致している（Ｆ（Ｕ）＝Ｌ）はずであり、もし、改竄・入力ミス等により管理コードＵまたは写像コードＬのどちらかに数字違いが生じていれば、写像Ｆは１対１対応の性質をもつからＦ（Ｕ）は決してＬに一致することはない。そこで、この検証用写像コードＦ（Ｕ）とコード分離部で入力コードから得た写像コードＬとを比較し不一致がないか調べる。不一致があれば入力コードは正規の識別コードでないので、不一致信号を出す。この信号によって、システムは警報・再度の識別コード入力利用者に促す等の動作をおこなうことができる。もちろん、管理コードＵと写像コードＬの両方の数字に変更が合った場合には、偶然にＦ（Ｕ"）＝Ｌ"（Ｕ"はＵの変更結果を、Ｌ"はＬの変更結果を表している）となり、誤り・改竄を見逃してしまう。しかし、その確率は後述するように１／１０n（ｎは写像コードＬの桁数）程度であり、実用上問題がない程度に抑えることが可能である。
【００２３】
次に、もう少し具体的に本発明の識別コードをＩＣカードのカード番号に適用する場合について述べる。カード発行枚数を数十万枚程度（百万を越えない）程度と想定すると、カード番号のうちの個別情報の管理単位である管理コードＵに対応した数ｍは最低６桁、したがってこれに１対１対応する数である写像コードＬの桁数ｎも最低６桁、最低限で合計１２桁の数が必要になる。これらの桁数を多くすれば管理コードＵ、写像コードＬの両方にまたがる数字違いによる偶然の一致の確率（間違いを見逃す確率）を減らすことが可能である。管理コードＵをその桁数から決まる使用可能な最大数まで目一杯使うとすると、偶然の一致の確率は写像コードの桁数ｎで決まり、１／１０n程度である。写像コードの桁数ｎを増やすほど間違いを見逃す確率は減らせるが、利用の際の数字入力の煩雑さを考えると、カード番号の桁数は少ないほど使いやすい。したがって実際には１２桁から１６桁程度であろう。ここではｍ＝６、ｎ＝１０として説明する。
【００２４】
次に以上のようにして決定された桁数をもつ数Ｕと数Ｌとを具体的に生成する方法について説明する。ここでは、数Ｕと数Ｌとの１対１写像（対応）を与える関数Ｆとして、Ｍ系列関数を使うものとする。ここで、Ｍ系列とは、図４に示すように、シフトレジスタとその複数段の論理和を入力段へ帰還したいわゆる帰還回路付きシフトレジスタ回路（一般にｓ段とし、図４ではｓ＝5でいわゆる原始多項式がｘ5＋ｘ3＋１の場合を図示している）によって生み出される符号系列（ここでは簡単のため２進数とする）であって、シフトレジスタの初期状態が全零でない場合からスタートして、この出力系列の周期が最大の周期２s-１を持つものをいう。この回路は、ｓ個のレジスタの状態で表される数と出力符号系列のｐビット（ｓ≦ｐ）であらわせる数が１対１の写像関係を持つことが保証されている。
【００２５】
そこでこの回路を本識別コードの生成に使う場合には、この回路の各シフトレジスタの状態であらわせる数（２進１０進数変換をする）を管理コードの数ａに対応させ、出力符号系列のｐビット（２進１０進数変換をする）を写像コードの数ＡとみなせばａとＡは１対１に対応し、合成数（ａ，Ａ）が得られる。２進数のシフトレジスタの段数は、例えば２０段とすると約１００万の状態（数）が得られるが、この段数では１００万を超える（７桁の）数も、割合は低いが含まれるため（これらを捨てる処理をしなければ）ｓ＝7の場合の設計になる。１９段にすると５２万程度の状態（数）が得られ、６桁の数（ｍ＝６）に収まる。ここでは１９段として、最大長系列を得るための原始多項式の一つはｘ19＋ｘ5＋ｘ2＋ｘ＋１であり図５に示すような帰還回路付きシフトレジスタ回路になる。例えば任意の初期状態（全零０００…０でない）からスタートして、そのシフトレジスタ状態を１０進数に変換した数を上位桁の数Ｕ、出力される符号系列の３０ビットを１０進数に変換した数を下位桁の数Ｌとすることで、必要な２つの数Ｕ，Ｌが生成できる。このとき数Ｕに対応するシフトレジスタの状態からスタートして回路を動作させ、出力符号系列を得るが、その符号系列のどの位置のビット数から３０ビット分を取るかは（任意の）一定位置に決めてよい。
【００２６】
次にＭ系列関数（一般的には識別コード生成に用いる１対１写像関数）についての知識のある改竄者が、容易に識別コードを改竄出来ないようにするため、２つの数Ｕ，Ｌから得られる合成数（Ｕ，Ｌ）の秘匿化を行う。数の秘匿化には一般的には暗号理論で使われる様々な手法を使うことができる。例えば一例として図６では、１０進表示された数の各桁の数字の位置を並び替える（数学的な）置換Ｐをおこなう。この置換はユーザ等には秘密にする。この置換後の数をＩＣカード表面に印刷するカード番号（カード内部にも蓄積している）にする。
【００２７】
次に、上述したような方法で生成された識別コード（カード番号）を、実際に個人認証などに使う場合、識別コードとして入力されたコードが正規に生成された識別コードと異なるものになっていないかをチェック（検証）する検証装置について述べる。識別コード検証装置の一般的な構成については既に述べているので、ここでは上述したＭ系列関数を１対１写像関数として用いた場合に対応した構成について述べる。基本的には、前述の認証コード（カード番号）生成の逆の操作を逆の順序でおこなうような構成になる。すなわち、入力コードを受信すると、本例では図６で説明した置換Ｐの逆の操作である逆置換Ｐ-1を施し、管理コードに対応する数Ｕと写像コードに対応する数Ｌを得る。続いて、この数Ｕと数Ｌが識別コード生成時の１対１写像関係を保っているか否かをチェックする。すなわち識別コード生成時と同じ１対１写像関数Ｆを使ってＦ（Ｕ）を作り、これをＬと比較する。具体的には図５のシフトレジスタ回路の各段のシフトレジスタに、数Ｕに対応する２進数をセットし動作させ出力符号系列を作れば（２進１０進変換し）数Ｌが得られる。Ｌ＝Ｆ（Ｕ）の関係があれば正常とし、通常な処理ルーチンへと進み、Ｌ≠Ｆ（Ｕ）であれば異常（数字間違い検出）として異常処理ルーチン（例えば、ユーザに再度カード番号入力を促し、ゲーム管理サーバ側はカード番号受信待ち状態にもどる等）へと進む。
【００２８】
以上、本発明に係る識別コード生成装置、識別コード検証装置の構成と動作について説明してきたが、実際にはコンピュータ（ハードウェア）とプログラムを用いてこれらの装置を実現するのが容易であり、また一般的である。これらの機能を実現するプログラムや方法の詳細については、これまでの説明で十分理解可能と思われるのでここでは省略する。
【００２９】
次に、前述したような識別コード生成方式及び識別コード検証方法を用いた実施形態の一例として、図７に示すようなゲームセンター等店舗で用いるＩＣカードシステムを考える。ＩＣカードは主としてユーザ（個人）認証とプレー結果情報の蓄積などに使われ、カード毎に固有の番号（識別コード）を持つ。この固有の番号によってユーザ認証をおこなう。このＩＣカードシステムは、ＩＣカード販売機１０、ＩＣカードリーダが備わったネットワーク接続ゲーム機２０、携帯電話等３０、ゲーム管理センター８０（それはゲーム管理サーバ７０、Ｗｅｂサーバ６０さらにカード番号チェックシステム１００などを備える）からなる。
【００３０】
このシステムにおけるＩＣカード利用の流れは以下のようになる。まずユーザがカード販売機１０から（１）カードを購入し、ゲーム機２０のカード読み取り（書き込み）装置に（２）カードを挿入してゲームを開始する。するとゲーム機からゲーム管理センター８０にインターネット等通信回線５０を介して、カード番号が送信されカード番号チェックシステム１００においてカード番号の間違いチェックがおこなわれる。（暗証番号の入力などは不必要である。）このチェックに問題がなければ正当なユーザと認証され、以後ユーザ毎の競技結果等の有用な情報の蓄積をはかることになる。
【００３１】
また、自己のゲーム結果のランキングなど様々な情報をゲーム管理センターから得たり、自己の情報を変更したりする場合に、ゲーム機にそのための表示部や入力部を設けないで、簡易にＷｅｂブラウザ（携帯電話等）を利用してＷｅｂページにアクセスし上述の機能を実現するシステムが考えられる。すなわち、携帯電話機３０から、ゲーム管理センター８０のＷｅｂサーバ６０の提供するページで個人情報などを閲覧するとき、ユーザ認証のために、（３）カード番号を入力し（暗証番号等は使わない）、上述と同様なカード番号チェックをおこないユーザ認証をおこなう。
【００３２】
基本的にカードの管理は、ゲーム管理センターにあるゲーム管理サーバが管理するカード管理テーブルを中心におこなう。このカード管理テーブルは、図８に示すように、カード番号、カード製造日、カードＩＤ、ユーザＩＤ等の項目を備えている。カード販売機１０で販売されたカードがゲーム機のカードリーダ装置に挿入されると、カード番号がゲーム管理サーバ７０に通知され、カード管理テーブルと照合される。
【００３３】
この照合の前に、カード番号の誤り・改竄チェックのため、これまで述べてきたように数字違い検出（逆置換Ｐ-1、１対１写像による比較等による）を行ってもよい。ただし、ゲーム機のカードリーダがカード番号を読み間違える確率は低く、主としてカード番号の改竄検出の役割になるので省略してもよい。これに対し、後に述べるが、携帯電話機からのカード番号入力に際しては、数字入力ミスの検出のためにもこの数字違い検出は必須である。
【００３４】
カード管理テーブルのカードＩＤ欄は、未使用カードでは空白であり、既使用であれば最初の使用に際して付与されたカードＩＤが入っている。（したがって、このカードＩＤ欄で未使用・既使用の別がわかる。）初めての使用でなければ、既に付与されているカードＩＤをゲーム機側に返し、初めて使用されるカードであれば、新たにカードＩＤを付与し、これをゲーム機側に返す。このカードＩＤはユーザには知らされることはなく、システム管理の目的で使用している。
【００３５】
本実施例では会員登録は、携帯電話機を使って、Ｗｅｂホームページ（サーバ）からカード番号や氏名、生年月日、メールアドレスなどユーザ情報をユーザに入力してもらい、ユーザ情報管理テーブル（図８参照）で管理する。このときカード番号が、このユーザ情報の登録の際も、利用の際も、アクセスするための鍵（個人の認証）の役割を果たすので、この場合のカード番号のチェックは必須となる。特に本発明のカード番号付与方法によるカード番号は１数字間違いを完全に検出できるので、過失による数字入力ミスには大きな効果を発揮することになる。
【図面の簡単な説明】
【００３６】
【図１】一数字の間違いを確実に検出できる本発明の番号生成方式の原理的な説明図である。
【図２】識別コード生成装置のブロック図である。
【図３】識別コード検証装置のブロック図である。
【図４】１体１の写像を与える関数として、Ｍ系列を使った場合の例を示す。
【図５】本発明に係る数十万枚分のカード番号を１９段の帰還回路付きシフトレジスタで生成したＭ系列を使って生成する方法の説明図である。
【図６】それぞれの桁の数字を一定の規則で置換し、その規則は一般には秘密にすることによって、より信頼性を高める方法を示す図である。
【図７】本発明によるカードが用いられる好適なシステム例として、ネットワーク接続ゲームシステムを示す図である。
【図８】ゲーム管理サーバが管理するカード管理テーブルの項目の例を示したものである。
【符号の説明】
【００３７】
１０        ：カード販売機
２０        ：ゲーム機
３０        ：携帯電話機
４０        ：無線通信ネットワーク
５０        ：インターネット等広域ネットワーク
６０        ：Ｗｅｂサーバ
７０        ：ゲーム管理サーバ
８０        ：ゲーム管理センター
１００        ：カード番号チェックシステム
【図１】
2005242655.tif 000003
【図２】
2005242655.tif 000004
【図３】
2005242655.tif 000005
【図４】
2005242655.tif 000006
【図５】
2005242655.tif 000007
【図６】
2005242655.tif 000008
【図７】
2005242655.tif 000009
【図８】
2005242655.tif 000010