(57)【要約】本発明は仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラムに関する。本発明の一実施例に係る仮想コード基盤の金融取引提供方法は、仮想コード検証手段が仮想コード生成手段から提供された仮想コードを受信する段階（Ｓ２００、仮想コード受信段階）、前記仮想コード検証手段が前記仮想コードに含まれている複数の細部コードを抽出する段階（Ｓ４００）、前記仮想コード検証手段が複数の細部コードを基に実際カード番号の格納位置を探索する実際カード番号探索段階（Ｓ１０００、実際カード番号探索段階）、前記格納位置から抽出された前記実際カード番号で金融取引の進行又は金融取引の進行を要求する段階（Ｓ１２００）を含む。
2021533416.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上の細部コードを生成する細部コード生成部と、
前記１つ以上の細部コードを組み合わせて仮想コードとして生成する仮想コード生成部と、
前記仮想コードを仮想コード検証手段に提供するために外部に出力する仮想コード提供部とを含み、
前記仮想コードは、固定コード、ＯＴＰコード及び抽出コードを含む複数のコードを特定の規則に従って結合して生成され、
前記固定コードは、前記仮想コード内に予め定められた位置に含まれ、実際カード番号に対応するカード会社又はカードの類型を判断するコードであり、
前記ＯＴＰコードは、ＯＴＰ関数を基に特定数の数字の配列により生成され変換コードの算出に用いられ、
前記抽出コードは、前記仮想コードの全体数字の数から前記固定コード及び前記ＯＴＰコードを除いた数字の数の全部又は一部として生成されるものであって、前記ＯＴＰコードから算出された前記変換コードに対応し、
前記変換コード又は前記抽出コードは、前記仮想コード検証手段で設定された条件によって第１コード又は第２コードとしてそれぞれ用いられ、
前記第１コードは、前記仮想コード検証手段で実際カード番号の格納位置を探索する開始地点を設定し、
前記第２コードは、特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定し、
前記ＯＴＰコード及び前記抽出コードは単位カウント毎に変更され、
前記単位カウントは、
特定の時間間隔として設定され、前記時間間隔が経過するにつれて変更される、
仮想コード生成装置。
【請求項２】
前記ＯＴＰコードは、実際カード番号内のカードセキュリティコードの数字の数で生成され、
前記抽出コードは、前記仮想コードの全体数字の数から前記固定コード、前記ＯＴＰコード及び有効期間を除いた数字の数の全部又は一部として生成されることを特徴とする、請求項１に記載の仮想コード生成装置。
【請求項３】
前記変換コードは、前記抽出コードと同一の桁数で生成されることを特徴とする、請求項２に記載の仮想コード生成装置。
【請求項４】
前記変換コードは、特定の規則に従って前記ＯＴＰコードに一対一でマッチすることを特徴とする、請求項４に記載の仮想コード生成装置。
【請求項５】
前記変換コードは、前記ＯＴＰコードと仮想コードの生成が要求されたカウント値を変換コード生成関数にシード値として入力して算出されることを特徴とする、請求項３に記載の仮想コード生成装置。
【請求項６】
前記仮想コード生成部は、
前記ＯＴＰコードと前記抽出コードを細部コード結合関数によって組み合わせて、
カード識別番号から固定コードを除いた桁とカードセキュリティコードの桁に並ぶことを特徴とする、請求項１に記載の仮想コード生成装置。
【請求項７】
前記固定コードが特定のカード類型の仮想コードに対して新たに付与される場合、
前記細部コード生成部は、
有効期間の桁に配置される特定の数字の組み合わせを可変コードとして生成することを特徴とし、
前記変換コードは、
前記可変コードと前記ＯＴＰコードをシード値にして生成され、
前記数字の組み合わせは、単位カウント毎に変更され生成されるものであって、実際の有効期間として使用可能であり、現在のカウントから最大期間内に含まれることを特徴とする、請求項１に記載の仮想コード生成装置。
【請求項８】
前記固定コードが特定のカード類型の実際カード番号に用いられる場合、
特定のカウントに生成された仮想コードが特定のカードの類型で実際カード番号として使用可能なコード列であるか否かを判断する仮想コード確認部を更に含むことを特徴とする、請求項１に記載の仮想コード生成装置。
【請求項９】
前記仮想コード確認部は、
前記仮想コード内のカード識別番号、有効期間及びサービスコードを実際カード番号の生成規則に入力して比較カードセキュリティコードを生成し、
前記仮想コード内のカードセキュリティコードの桁に配置された数字である生成カードセキュリティコードと前記比較カードセキュリティコードとを比較して一致すると、仮想コードの再生成を要求することを特徴とする、請求項８に記載の仮想コード生成装置。
【請求項１０】
仮想コード検証手段が仮想コード生成手段から提供された仮想コードを受信する仮想コード受信段階と、
前記仮想コード検証手段が前記仮想コードに特定の規則に従って含まれている固定コード、及び、ＯＴＰコード及び抽出コードを含む複数の細部コードを抽出する細部コード抽出段階と、
前記仮想コード検証手段が前記ＯＴＰコードを基に変換コードを算出する段階と、
前記仮想コード検証手段が、前記抽出コード又は前記変換コードが設定された条件によってそれぞれ用いられる第１コード及び第２コードを基に実際カード番号の格納位置を探索する実際カード番号探索段階と、
前記仮想コード検証手段が前記格納位置から抽出された前記実際カード番号で金融取引の進行又は金融取引の進行を要求する段階とを含み、
前記仮想コード検証手段と前記仮想コード生成手段は、同一の仮想コード生成関数を含み、
前記固定コードは、前記仮想コード内に予め定められた位置に含まれ、前記実際カード番号に対応するカード会社又はカードの類型を判断するコードであり、
前記ＯＴＰコードは、ＯＴＰ関数を基に特定数の数字の配列により生成され変換コードの算出に用いられ、
前記抽出コードは、前記ＯＴＰコードから算出された前記第１コードに対応し、前記仮想コードの全体数字の数から前記固定コード及び前記ＯＴＰコードを除いた数字の数の全部又は一部として生成され、
前記第１コードは、仮想コード検証手段で実際カード番号の格納位置を探索する開始地点を設定し、
前記第２コードは、特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定し、
前記ＯＴＰコード及び前記抽出コードは単位カウント毎に変更され、
前記単位カウントは、特定の時間間隔として設定され、前記時間間隔が経過するにつれて変更される、仮想コード基盤の金融取引提供方法。
【請求項１１】
前記細部コード抽出段階は、
前記仮想コード内のカード識別番号領域から固定コードを抽出する段階と、
前記固定コードを基に特定のカードの類型に対応する細部コード結合関数を設定する段階と、
前記カード識別番号から固定コードを除いた桁とカードセキュリティコードの桁に並んでいる数字列から前記細部コード結合関数を用いて前記ＯＴＰコードと前記抽出コードを抽出する段階とを含むことを特徴とする、請求項１０に記載の仮想コード基盤の金融取引提供方法。
【請求項１２】
前記細部コード抽出段階は、
前記仮想コード生成手段に含まれているのと同一のＯＴＰ関数で生成される比較コードと前記ＯＴＰコードとを比較して、仮想コードが生成されたカウント値を算出し、
前記変換コード算出段階は、
前記カウント値と前記ＯＴＰコードをシード値にして前記変換コード生成関数に入力して変換コードを算出することを特徴とする、請求項１１に記載の仮想コード基盤の金融取引提供方法。
【請求項１３】
前記仮想コードは、実際カード番号の有効期間を含み、
前記仮想コード検証手段は、前記固定コード及び有効期間値によって異なる実際カード番号探索アルゴリズムを含み、
前記実際カード番号探索アルゴリズムは、前記第１コードと前記第２コードを基に実際カード番号が格納された位置を探索することを特徴とする、請求項１０に記載の仮想コード基盤の金融取引提供方法。
【請求項１４】
前記固定コードが特定のカード類型の仮想コードに対して新たに付与される場合、
前記細部コード抽出段階は、
有効期間の桁から前記可変コードを抽出し、
前記変換コード算出段階は、
前記可変コードと前記ＯＴＰコードを変換コード生成関数にシード値として入力して前記変換コードを生成することを特徴とする、請求項１０に記載の仮想コード基盤の金融取引提供方法。
【請求項１５】
ハードウェアであるコンピュータと結合されて、請求項１０〜１４の何れか１項に記載の方法を実行させるために媒体に格納された、仮想コード基盤の決済提供プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラムに関し、より詳細には、時点毎に重複しないように仮想コードを生成し、これに基づいて実際カード番号を探索して金融取引を行うシステム、方法及びプログラムと、時点毎に重複しない仮想コードを生成する装置及びこれに基づいて実際カード番号を探索して金融取引を行う装置に関する。
【背景技術】
【０００２】
コード化されたデータは、多くの領域において利用されている。決済時に用いられるカード番号、口座番号だけでなく、ユーザの識別のためのＩＰＩＮ番号、住民登録番号（韓国版マイナンバー）などがコード化されたデータである。
【０００３】
しかし、このようなコードデータを用いる過程で流出事故が多く発生する。カード番号は、カードの表面に実際カード番号がそのまま記載されており、他人に視覚的に流出され、磁気を用いた決済時にカード番号がそのままＰＯＳ装置に伝達されて漏洩する。
【０００４】
実際カード番号がそのまま流出しないようにするために、仮想コードを利用しようとする試みが多かったが、仮想コードに対応する実際カード番号を探索するために、ユーザを識別するためのデータが必要であった。例えば、ＯＴＰ（Ｏｎｅ Ｔｉｍｅ Ｐａｓｓｗｏｒｄ）の場合、毎回、一度限り有効なパスワードが生成されるが、ユーザに付与されたアルゴリズム判断のためにログイン処理が必要であり、多様な領域に適用し難い。
【０００５】
従って、実際カード番号に対応するユーザや装置に対する識別情報を提供しないと共に、リアルタイムに変動する仮想コードを基に実際カード番号を探索できる発明が必要である。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
そこで、本発明は、上記事情に鑑みてなされたものであって、その目的は、実際カード番号の数字列の形式を維持する仮想コードを生成して提供することによって決済システム全体を修正せず、仮想コード生成手段と仮想コード検証手段間の通信を行わない状態で仮想コード生成手段別に重複しないように生成された仮想コードで実際カード番号を探索してセキュリティの高い仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラムを提供することにある。
【０００７】
本発明が解決しようとする課題は、以上で言及した課題に制限されず、言及していない更に他の課題は、以下の記載から通常の技術者が明確に理解できるだろう。
【課題を解決するための手段】
【０００８】
本発明の一実施例に係る仮想コード生成装置は、１つ以上の細部コードを生成する細部コード生成部と、前記１つ以上の細部コードを組み合わせて仮想コードとして生成する仮想コード生成部と、前記仮想コードを仮想コード検証手段に提供するために外部に出力する仮想コード提供部とを含み、前記仮想コードは、固定コード、ＯＴＰコード及び抽出コードを含む複数のコードを特定の規則に従って結合して生成され、前記固定コードは、前記仮想コード内に予め定められた位置に含まれ、前記実際カード番号に対応するカード会社又はカードの類型を判断するコードであり、前記ＯＴＰコードは、ＯＴＰ関数を基に特定数の数字の配列により生成され変換コードの算出に用いられ、前記抽出コードは、前記仮想コードの全体数字の数から前記固定コード及び前記ＯＴＰコードを除いた数字の数の全部又は一部として生成されるものであって、前記ＯＴＰコードから算出された前記変換コードに対応し、前記変換コード又は前記抽出コードは、前記仮想コード検証手段で設定された条件によって第１コード又は第２コードとしてそれぞれ用いられ、前記第１コードは、前記仮想コード検証手段で実際カード番号の格納位置を探索する開始地点を設定し、前記第２コードは、特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定し、前記ＯＴＰコード及び前記抽出コードは単位カウント毎に変更され、前記単位カウントは、特定の時間間隔として設定され、前記時間間隔が経過するにつれて変更される。
【０００９】
また、他の実施例として、前記ＯＴＰコードは、実際カード番号内のカードセキュリティコードの数字の数で生成され、前記第２コードは、前記仮想コードの全体数字の数から前記固定コード、前記ＯＴＰコード及び有効期間を除いた数字の数の全部又は一部として生成される。
【００１０】
更に、他の実施例として、前記変換コードは、前記抽出コードと同一の桁数で生成される。
【００１１】
また、他の実施例として、前記変換コードは、特定の規則に従って前記ＯＴＰコードに一対一でマッチすることを特徴とする。
【００１２】
更に、他の実施例として、前記変換コードは、前記ＯＴＰコードと仮想コードの生成が要求されたカウント値を変換コード生成関数にシード値として入力して算出される。
【００１３】
また、他の実施例として、前記仮想コード生成部は、前記ＯＴＰコードと前記抽出コードを細部コード結合関数によって組み合わせて、前記カード識別番号から固定コードを除いた桁と前記カードセキュリティコードの桁に並ぶことを特徴とする。
【００１４】
更に、他の実施例として、前記固定コードが特定のカード類型の仮想コードに対して新たに付与される場合、前記細部コード生成部は、有効期間の桁に配置される特定の数字の組み合わせを可変コードとして生成することを特徴とし、前記変換コードは、前記可変コードと前記ＯＴＰコードをシード値にして生成され、前記数字の組み合わせは、単位カウント毎に変更され生成されるものであって、実際の有効期間として使用可能であり、現在のカウントから最大期間内に含まれる。
【００１５】
また、他の実施例として、前記固定コードが特定のカード類型の実際カード番号に用いられる場合、特定のカウントに生成された仮想コードが特定のカードの類型で実際カード番号として使用可能なコード列であるか否かを判断する仮想コード確認部を更に含む。
【００１６】
更に、他の実施例として、前記仮想コード確認部は、前記仮想コード内のカード識別番号、有効期間及びサービスコードを実際カード番号の生成規則に入力して比較カードセキュリティコードを生成し、前記仮想コード内のカードセキュリティコードの桁に配置された数字である生成カードセキュリティコードと前記比較カードセキュリティコードとを比較して一致すると、仮想コードの再生成を要求することを特徴とする。
【００１７】
本発明の他の実施例に係る仮想コード基盤の金融取引提供方法は、仮想コード検証手段が仮想コード生成手段から提供された仮想コードを受信する仮想コード受信段階と、前記仮想コード検証手段が前記仮想コードに特定の規則に従って含まれている固定コード、及び、ＯＴＰコード及び抽出コードを含む細複数の細部コードを抽出する細部コード抽出段階と、前記仮想コード検証手段が前記ＯＴＰコードを基に変換コードを算出する段階と、前記仮想コード検証手段が、前記抽出コード又は前記変換コードが設定された条件によってそれぞれ用いられる第１コード及び第２コードを基に実際カード番号の格納位置を探索する実際カード番号探索段階と、前記仮想コード検証手段が前記格納位置から抽出された前記実際カード番号により金融取引の進行又は金融取引の進行を要求する段階とを含み、前記仮想コード検証手段と前記仮想コード生成手段は、同一の仮想コード生成関数を含み、前記固定コードは、前記仮想コード内に予め定められた位置に含まれ、前記実際カード番号に対応するカード会社又はカードの類型を判断するコードであり、前記ＯＴＰコードは、ＯＴＰ関数を基に特定数の数字の配列により生成され変換コードの算出に用いられ、前記抽出コードは、前記ＯＴＰコードから算出された前記第１コードに対応し、前記仮想コードの全体数字の数から前記固定コード及び前記ＯＴＰコードを除いた数字の数の全部又は一部として生成され、前記第１コードは、仮想コード検証手段で実際カード番号の格納位置を探索する開始地点を設定し、前記第２コードは、特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定し、前記ＯＴＰコード及び前記抽出コードは単位カウント毎に変更され、前記単位カウントは、特定の時間間隔として設定され、前記時間間隔が経過するにつれて変更される。
【００１８】
また、他の実施例として、前記細部コード抽出段階は、前記仮想コード内のカード識別番号領域から固定コードを抽出する段階と、前記固定コードを基に特定のカードの類型に対応する細部コード結合関数を設定する段階と、前記カード識別番号から固定コードを除いた桁と前記カードセキュリティコードの桁に並んでいる数字列から前記細部コード結合関数を用いて前記ＯＴＰコードと前記抽出コードを抽出する段階とを含む。
【００１９】
更に、他の実施例として、前記細部コード抽出段階は、前記仮想コード生成手段に含まれているのと同一のＯＴＰ関数で生成される比較コードと前記ＯＴＰコードとを比較して、仮想コードが生成されたカウント値を算出し、前記変換コード算出段階は、前記カウント値と前記ＯＴＰコードをシード値にして前記変換コード生成関数に入力して変換コードを算出することを特徴とする。
【００２０】
また、他の実施例として、前記仮想コードは、実際カード番号の有効期間を含み、前記仮想コード検証手段は、前記固定コード及び有効期間値によって異なる実際カード番号探索アルゴリズムを含み、前記実際カード番号探索アルゴリズムは、前記第１コードと前記第２コードを基に実際カード番号が格納された位置を探索する。
【００２１】
更に、他の実施例として、前記固定コードが特定のカード類型の仮想コードに対して新たに付与される場合、前記細部コード抽出段階は、有効期間の桁から前記可変コードを抽出し、前記変換コード算出段階は、前記可変コードと前記ＯＴＰコードを変換コード生成関数にシード値として入力して前記変換コードを生成することを特徴とする。
【００２２】
本発明の他の実施例に係る仮想コード基盤の決済提供プログラムは、前記言及した仮想コード提供方法をハードウェアに実行させ、媒体に格納される。
【発明の効果】
【００２３】
前記のような本発明によれば、以下のような多様な効果を有する。
【００２４】
第一に、仮想コード生成装置と仮想コード検証装置（例えば、金融機関サーバ）にのみ仮想コードの生成及び実際カード番号の探索のためのアルゴリズムが追加されればよいので、既存に実際カード番号を用いるプロセスをそのまま維持できる。例えば、スマートカード又はアプリカードに重複しない仮想コードを生成して提供する場合、ＰＯＳ装置とＰＧ会社サーバはそのまま仮想コードをカード会社サーバに伝達し、カード会社サーバが仮想コードに相応する実際カード番号を探索して決済を行える。これにより、セキュリティを向上させるために既存のプロセス内で変更するべき部分を最小化でき、ユーザはセキュリティの向上のための別途の段階を行わなくてもよい。特に、仮想コード内の限られた可変範囲に数字のみを利用したＯＴＰコードと抽出コードの組み合わせを用いるので、決済端末から決済サーバまでの全体プロセスを修正しなくても済むという効果がある。
【００２５】
第二に、実際カード番号格納位置の探索で第１コード又は第２コードとして用いられる変換コードを生成できる少ない桁数のＯＴＰコードを仮想コードに含むことによって、可変範囲（例えば、カード識別番号の桁から固定コードと検証数字の桁を除いた範囲とカードセキュリティコードの範囲）の多くの部分を直接的に第１コード又は第２コードとして用いられる抽出コードに割り当てることができ、抽出コードとして使用可能な数字列の数が増加し、セキュリティを向上できる。
【００２６】
第三に、ＯＴＰコードを基に生成される変換コード又は仮想コードから抽出される抽出コードに対応するカウントに移動することによって現在時点でない時点を基準に実際カード番号の探索が行われるので、ハッカーが仮想コードの生成規則を把握できず、セキュリティを向上できる。
【００２７】
第四に、ユーザ別に異なるカウントに実際カード番号がマッチングされ格納されるので、他のユーザに第１コード又は第２コード（又は第１コードと第２コードに対応する変換コードと細部コード）が何れも一致する仮想コードを生成することができない。従って、仮想コード検証手段は、仮想コードによりユーザを正確に判別できる。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施例に係る仮想コード基盤の金融取引提供システムの構成図である。
【図２】本発明の一実施例に係る仮想コード生成手段から金融機関サーバへ仮想コードが提供される過程を示す例示図である。
【図３】本発明の一実施例に係る仮想コード生成装置の構成図である。
【図４】本発明の他の実施例に係る仮想コード生成装置の構成図である。
【図５】本発明の一実施例に係る仮想コード生成装置の例示図である。
【図６】本発明の他の実施例に係る仮想コード確認部を含む仮想コード生成装置の構成図である。
【図７】本発明の実施例に係る仮想コード検証装置の構成図である。
【図８】本発明の実施例に係る仮想コード検証装置の構成図である。
【図９】本発明の実施例に係る仮想コード検証装置の構成図である。
【図１０】本発明の一実施例に係る仮想コード基盤の金融取引提供方法の順序図である。
【図１１】本発明の一実施例に係る変換コード算出段階を更に含む仮想コード基盤の金融取引提供方法の順序図である。
【図１２】本発明の一実施例によってｋ角形の転がり移動によって実際カード番号の格納位置を探索する格納位置探索アルゴリズムに対する例示図である。
【図１３】本発明の一実施例に係るｋ角形の転がり移動による実際カード番号の探索過程を含む仮想コード基盤の金融取引提供方法の順序図である。
【図１４】本発明の一実施例に係る細部コードを基にトラック上を移動して格納位置を探索する格納位置探索アルゴリズムに対する例示図である。
【図１５】本発明の一実施例に係る実際カード番号を発行して格納位置に格納する過程を更に含む仮想コード基盤の金融取引提供方法の順序図である。
【図１６】本発明の一実施例に係る仮想コード検証段階を更に含む仮想コード基盤の金融取引提供方法の順序図である。
【図１７】本発明の一実施例に係る仮想コード検証段階を更に含む仮想コード基盤の金融取引提供方法の順序図である。
【図１８】本発明の一実施例に係る仮想セキュリティコードを用いて実際カード番号の探索時点を移動させる方式の例示図である。
【発明を実施するための形態】
【００２９】
以下、添付の図面を参照して本発明の好適な実施例を詳細に説明する。本発明の利点及び特徴、そしてそれらを達成する方法は、添付の図面と共に詳細に後述されている実施例を参照すれば明確になる。しかし、本発明は、以下で開示される実施例に制限されるものではなく、互いに異なる多様な形態で実現することができる。但し、本実施例は本発明の開示を完全なものにし、本発明が属する技術分野における通常の知識を有する者に本発明の範囲を完全に理解させるために提供されるものであり、本発明は請求項の範囲により定義されるに過ぎない。明細書全体に亘って同一の参照符号は同一構成要素を示す。
【００３０】
他の定義がなければ、本明細書で用いられる全ての用語（技術及び科学的用語を含む）は、本発明が属する技術分野における通常の知識を有する者が共通して理解できる意味として用いられる。また、一般に用いられる辞典に定義されている用語は、明白に特に定義されていない限り、理想的に又は過度に解釈されない。
【００３１】
本明細書で用いられた用語は、実施例を説明するためのものであり、本発明を制限しようとするものではない。本明細書において、単数型は特に言及しない限り複数型も含む。明細書で用いられる「含む（ｃｏｍｐｒｉｓｅｓ）」及び／又は「含んでいる（ｃｏｍｐｒｉｓｉｎｇ）」は、言及された構成要素以外に１つ以上の他の構成要素の存在又は追加を排除しない。
【００３２】
本明細書において、「金融取引」は金融機関と行われる手順を意味する。「金融取引」はカード決済、銀行口座からの入出金などを含む。
【００３３】
本明細書において、「文字」はコードを構成する構成要素であって、アルファベットの大文字、アルファベットの小文字、数字及び特殊文字などの全部又は一部を含む。
【００３４】
本明細書において、「コード」は文字が並んでいる文字列を意味する。
【００３５】
本明細書において、「カード番号」は決済などの金融取引のために用いられるものであって、カードに付与され、決済、決済の取消しなどの状況においてカード会社に伝達される番号を意味する。
【００３６】
本明細書において、「実際カード番号」はカード会社から特定のユーザのカードに付与する番号である。即ち、実際カード番号は一般的な実物のカード、モバイルカードなどに付与される番号を意味する。
【００３７】
本明細書において、「仮想コード」は実際カード番号に連結されるように臨時に生成されるカード番号であって、数字を含む文字からなる特定の桁数のコードである。「仮想コード」は、金融機関サーバに格納された実際カード番号を探索するための仮想カード番号と、仮想トークン検証サーバに格納された実際カード番号を探索するための仮想トークンを含む。
【００３８】
本明細書において、「細部コード」は仮想コードに含まれる一部のコードを意味する。即ち、仮想コードが別途生成された複数のコードを結合して生成される場合、細部コードは別途生成されて仮想コードを構成する個別のコードを意味する。
【００３９】
本明細書において、「単位カウント」は特定の時間間隔として設定され、前記時間間隔が経過するにつれて変更されるものとして定義された単位である。例えば、１カウントは特定の時間間隔（例えば、１.５秒）と設定されて用いられる。
【００４０】
本明細書において、「仮想コード生成関数」は仮想コードを生成するために用いられる関数を意味する。
【００４１】
本明細書において、「支払いカード」はカード番号を変更して出力できるカードを意味する。
【００４２】
本明細書において、「転がり移動」は対象体が回転しながら並進運動を行うことを意味する。即ち、「転がり移動」は回転運動と並進運動を共に行いながら移動するものであって、回転する対象体の各地点が移動する軸上に順に接しながら移動することを意味する。
【００４３】
本明細書において、「支払い決済サービスサーバ」は仮想トークン生成装置又は売場端末装置で仮想トークン検証サーバ又は金融機関サーバの間で決済サービスを接続又は補助する事業者のサーバを全て含む。即ち、支払い決済サービスサーバは、決済代行会社（Ｐａｙｍｅｎｔ Ｇａｔｅｗａｙ、インターネット上で金融機関と行う取引を代行するサービス事業者）、ＶＡＮ（Ｖａｌｕｅ-Ａｄｄｅｄ Ｎｅｔｗｏｒｋ）事業者、アクワイアラ（Ａｃｑｕｉｒｅｒ）のサーバなどが何れも該当し得る。
【００４４】
本明細書において、「仮想トークン検証サーバ」は実際カード番号を格納し、 仮想トークンを基に実際カード番号を探索して支払い決済サービスサーバ又は金融機関サーバに提供するサーバを意味する。
【００４５】
本明細書において、「金融機関サーバ」は実際カード番号を基に決済を承認するか否かを判断するサーバを意味する。
【００４６】
以下、本発明の実施例によって実際カード番号に替わる仮想コードの生成及び実際カード番号の探索過程について説明するために、実際カード番号の構成について説明する。
【００４７】
「実際カード番号」はカード識別番号、カードセキュリティコード、有効期間のうちの少なくとも１つを含む。カード識別番号とは、カード会社、カードの類型及びカード使用者を識別するために付与されたコードを称する。一般に、カードに付与されるカード識別番号は１５個又は１６個の桁数からなる。また、一般に、１６桁からなるカード識別番号の場合、前の６桁の番号はカードの発行者識別番号（ＩＩＮ又はＢＩＮ）からなり、７番目の桁から１５番目の桁までは各カード会社が任意の規則に従って各カードに付与するコードからなり、１６番目の桁は特定の公式によりカード識別番号を検証する値（ｃｈｅｃｋ ｄｉｇｉｔ）からなる。
【００４８】
カードセキュリティコードは、カードの一側に印刷された特定の桁数（例えば、ＶＩＳＡ（登録商標）、ＭＡＳＴＥＲ（登録商標）の場合は３桁、ＡＭＥＸ（登録商標）の場合は４桁）の数字からなり、カード番号が正常か否かを確認するコードである。即ち、カードセキュリティコードが３桁であり、カード識別番号が１６桁である場合、カードセキュリティコードの３桁のコードとカード識別番号の１６桁のコードを定められた規則に従って暗／復号化して該当値が一致すると、カードが正常カードであることが分かる。カードセキュリティコードは、カード会社毎に名称が異なっており、ビザ（登録商標）カードではＣＶＶ（Ｃａｒｄ Ｖｅｒｉｆｉｃａｔｉｏｎ Ｖａｌｕｅ）、マスター（登録商標）カード／ＪＣＢ（登録商標）ではＣＶＣ（Ｃａｒｄ Ｖａｌｉｄａｔｉｏｎ Ｃｏｄｅ）、アメリカン・エキスプレス（登録商標）ではＣＩＤ（Ｃｏｎｆｉｄｅｎｔｉａｌ Ｉｄｅｎｔｉｆｉｅｒ Ｎｕｍｂｅｒ又はＣａｒｄ Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ Ｎｕｍｂｅｒ）と称する。
【００４９】
有効期間は、実際カード番号が発行された後に使用できる期限を意味する。一般に、有効期間は年／月に対して２桁が付与され、４桁のコードで構成される。磁気カードには実際カード番号がそのまま含まれているため、磁気カードをリードするだけでカード番号全体が流出されるという問題があり、近年、全世界的に磁気カードの使用が制限され、ＩＣカードなどのセキュリティが高い方式へ変わりつつある。他のセキュリティが高い方式を適用するためには、新たな端末が設置されなければならないか、既存のプロセスと異なる変更がされなければならないという問題がある。従って、既存の実際カード番号を用いるプロセスを同一としながら、カード番号の流出を防止できる方法が必要である。特に、既存の磁気カードリーダをそのまま利用しながらセキュリティを向上させる方式が必要である。
【００５０】
以下、図面を参照して、本発明の実施例に係る仮想コード基盤の金融取引提供システム、仮想コード生成装置１００、仮想コード検証サーバ２００、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラムについて詳細に説明する。
【００５１】
図１は、本発明の一実施例に係る仮想コード基盤の金融取引提供システムの構成図である。
【００５２】
図２は、本発明の一実施例に係る仮想コード生成手段から金融機関サーバへ仮想コードが提供される過程を示す例示図である。
【００５３】
図１を参照すれば、本発明の一実施例に係る仮想コード基盤の金融取引提供システムは、仮想コード生成手段１０及び仮想コード検証手段２０を含む。
【００５４】
仮想コード生成手段１０は、仮想コード検証手段２０が実際カード番号を探索できる情報を含む仮想コードを生成する役割を果たす。即ち、仮想コード生成手段１０は、仮想コード生成関数によって仮想コードを生成する。このとき、仮想コード検証手段２０で仮想コードを基に実際カード番号を探索するので、仮想コード生成手段１０は、実際カード番号を格納しないこともあり得る。これにより、仮想コード生成手段１０のハッキングなどによって実際カード番号が流出するのを防止できる。仮想コード生成関数に関する具体的な説明は後述する。
【００５５】
仮想コード検証手段２０は、仮想コード生成手段１０から提供される仮想コードを基に実際カード番号を探索する役割を果たす。仮想コード検証手段２０は、仮想コード生成手段１０より受信した仮想コードから実際カード番号を探索するために、仮想コード生成手段１０と同一の仮想コード生成関数を格納する。仮想コード検証手段２０が仮想コードを基に実際カード番号を探索する方式に関する具体的な説明は後述する。
【００５６】
また、仮想コード検証手段２０は、仮想コードが仮想コード生成手段１０で正常に生成されたコードか否かを検証する役割を果たす。仮想コード検証手段２０における仮想コードが正常か否かを判断する方式に関する具体的な説明は後述する。
【００５７】
仮想コード検証手段２０は、仮想コード生成手段１０から多様な方式によって仮想コードを受け取ることができる。一実施例として、仮想コード検証手段２０は、無線通信を介して仮想コード生成手段１０から仮想コードを受信できる。例えば、仮想コード生成手段１０を含む仮想コード生成装置１００がＮＦＣアンテナモジュール、ブルートゥース（登録商標）通信モジュールなどを含む場合、金融取引端末との通信によって仮想コード検証サーバへ伝達する仮想コードを金融取引端末に伝送できる。また、他の実施例として、仮想コード検証サーバ２００は、仮想コード生成装置１００により生成された仮想コードを仮想コード検証サーバ２００と通信を介して繋がる移動端末上で直接入力（例えば、ウェブページ又はアプリケーションの決済ページにて仮想コードを入力）したものを受信できる。このとき、仮想コード検証手段２０は、仮想コード生成手段１０から仮想コードを受信した他のサーバより受け取ることができる。
【００５８】
具体的に、図２に示すように、仮想コード生成手段１０が決済端末により決済可能なスマートカードであり、仮想コード検証手段２０が仮想コード生成関数を含むカード会社サーバ（仮想コード検証サーバ）２０である場合、仮想コード生成手段１０であるスマートカードによりＰＯＳ装置３０にて決済を行うと、仮想コード検証手段２０は、ＰＯＳ装置３０から仮想コードを受け取ったＰＧ会社サーバ４０から仮想コードを受け取る。即ち、仮想コード検証手段２０（即ち、カード会社サーバ）は、既存の決済プロセスを用いて仮想コード生成手段１０から実際カード番号の代わりに仮想コードを受信することができる。即ち、後述するように、仮想コードを実際カード番号と同一の長さのコードとして生成すると、仮想コード生成手段から仮想コード検証手段が含まれているカード会社サーバまで行われるプロセス上では変更がなくても、本発明の実施例に係る仮想コード基盤の金融取引提供方式を適用できる。また、仮想コード生成手段であるスマートカードでＡＴＭ装置を介して金融取引を行う場合、仮想コード生成手段１０が実際カード番号と同一の長さのコードに生成された仮想コードをＡＴＭ装置に提供し、金融機関サーバ２０は、ＡＴＭ装置から仮想コードをそのまま受け取って金融取引を行える。
【００５９】
また、一実施例として、前記仮想コード検証手段２０と前記仮想コード生成手段１０は、同一の仮想コード生成関数を含む。仮想コード検証手段２０と仮想コード生成手段１０が同一の仮想コード生成関数（例えば、後述する細部コード結合関数）を含むことによって仮想コード検証手段２０は仮想コード生成手段１０で生成された仮想コード内の複数の細部コードを正常に抽出できる。
【００６０】
更に、他の実施例として、仮想コード検証手段２０は、受信した仮想コードが正常な仮想コード生成手段１０で生成され、受信されたものであるかを検証できる。即ち、仮想コード検証手段２０が仮想コード生成手段１０と同一の条件でコード（即ち、仮想コード又は特定の細部コード）の生成を行った後、仮想コード生成手段１０から受信したコード（即ち、仮想コード又は特定の細部コード）と比較することによって検証を行うことができる。
【００６１】
図３は、本発明の他の実施例に係る仮想コード生成装置１００の構成図である。
【００６２】
図５は、本発明の一実施例に係る仮想コード生成装置の例示図である。
【００６３】
図３を参照すれば、本発明の他の実施例に係る仮想コード生成装置１００は、細部コード生成部１１０、仮想コード生成部１２０及び仮想コード提供部１３０を含む。
【００６４】
本発明の実施例に係る仮想コード生成装置１００は、仮想コード生成手段１０に該当するプログラムが内蔵（Ｅｍｂｅｄｅｄ）されているか、仮想コード生成手段１０に該当するプログラムがインストールされた装置であり得る。例えば、仮想コード生成装置１００は、仮想コード生成手段１０に該当するプログラムが内蔵されたスマートカードであり得る。また、例えば、仮想コード生成装置１００は、仮想コード生成手段１０に該当するＡＰＰカードアプリケーションがインストールされた移動端末であり得る。仮想コード生成装置１００は、前述した例示以外に仮想コードを生成して伝送しなければならない多様な装置とできる。
【００６５】
仮想コード生成部１２０は、１つ以上の細部コードを組み合わせて仮想コードとして生成する役割を果たす。一実施例として、前記仮想コードは、複数の細部コードを特定の規則に従って結合して生成される。仮想コード生成関数は、複数の細部コードを組み合わせる規則（即ち、細部コード結合関数）を含む。
【００６６】
複数の細部コードを結合して１つの仮想コードを生成する方式としては、多様な方式が適用される。前記細部コード結合関数の一例として、仮想コード生成部１２０は、Ｎ桁の第１コードとＮ桁の第２コードを交互に配置する方式で仮想コードを生成できる。また、他の例として、細部コード結合関数は第１コードの後に第２コードを結合する関数であり得る。仮想関数に含まれる細部コードが増えることによって細部コード結合関数も多様に生成される。
【００６７】
また、前記仮想コード生成部１２０は、後述するように、固定コードを仮想コード内の特定の位置（例えば、仮想コード内のカード識別番号の最初の６桁）に結合する。前記固定コードは、前記仮想コード内に予め定められた位置に結合され、前記実際カード番号に対応するカード会社又はカードの類型を判断するコードである。
【００６８】
具体的に、仮想コードは、グループを区別するための変更されない固定コードを複数の細部コードと共に含むことができる。仮想コード検証手段２０は、複数のグループにそれぞれ対応する複数の仮想コード生成関数を含むことができ、仮想コード生成装置１００から仮想コードが受信されると、当該仮想コード生成装置１００が属するグループの仮想コード生成関数を基に実際カード番号の探索を行わなければならない。固定コードが含まれず、単位カウントが経過する度に全体コードが新たに生成される細部コードのみを含むとなると、別途の情報なしに仮想コード生成装置１００が属するグループを判断することができない。従って、仮想コード生成装置１００は、グループを識別するための変更されない固定コードを含む。
【００６９】
例えば、特定のカード会社のカードの類型別に仮想コード生成関数が付与される場合、仮想コード生成装置１００は、カード番号のうち、カード会社及びカードの類型を示す前の６桁を固定コードとして用い、仮想コード検証手段２０は、仮想コード生成装置１００と同一の仮想コード生成関数が適用される特定のカード会社の特定のカード類型を識別できる。即ち、固定コードは、前記実際カード番号に対応するカード会社又はカードの類型を判断するためのコードである。
【００７０】
また、固定コードは、前記仮想コード内の予め定められた位置に含めることができる。各カード類型のグループ別に仮想コード生成関数が付与される場合、仮想コード検証手段２０は、仮想コードから固定コードをまず抽出しなければカード類型のグループを判断することができない。従って、固定コードは、別途の関数なしに分離可能に仮想コード内の予め定められた位置（例えば、実際カード番号の発行者識別番号と同一の位置）に含めることができる。
【００７１】
細部コード生成部１１０は、１つ以上の細部コードを生成する役割を果たす。
【００７２】
一実施例として、細部コード生成部１１０は、仮想コード検証手段２０で実際カード番号の探索に用いる第１コードと第２コード自体を生成できる。即ち、仮想コード生成部１２０は、細部コード生成部１１０で生成された第１コードと第２コードの組み合わせを含む仮想コードを生成する。
【００７３】
具体的な一実施例として、細部コード生成部１１０は細部コード生成関数として第１関数と第２関数を含み、第１コード及び第２コードを生成する。第１コードと第２コードは、仮想コード検証手段２０内で実際カード番号の格納位置を探索するための相関関係を有するが、仮想コード生成装置１００は、セキュリティを向上させるために第１コードを生成する第１関数と第２コードを生成する第２関数を細部コード生成関数として含むだけであって、第１コードと第２コードの相関関係に対するデータを含まないこともあり得る。
【００７４】
また、一実施例として、仮想コード生成装置１００は、複数の細部コードと固定コードを組み合わせて実際カード番号と同一の桁数のコードとなるように細部コードを生成する。既存の金融取引システム（例えば、金融取引がお店での決済である場合、ＰＯＳ装置及びＰＧ会社サーバ）をそのまま維持しながら仮想コードを用いるためには、仮想コード生成装置１００は実際カード番号と同一の桁数を有するコードを仮想コードとして生成しなければならない。このために、仮想コード生成装置１００は、カード会社及び当該カード会社のカードの類型を判断するための固定コードを除いた桁数を分けて複数の細部コードの桁数を活用する。例えば、実際カード番号が１６桁のカード識別番号を有し、細部コードとして第１コード及び第２コードを含む場合、仮想コード生成装置１００は１６桁のうち、６桁の固定コードを除いた１０桁を均等に分けて５桁の第１コード及び第２コードを生成できる。その後、後述する仮想コード生成部が第１コード及び第２コードを特定の規則に従って結合した後、固定コードを実際カード番号のカード識別番号のように、前の部分に結合して仮想コードのカード識別番号を生成できる。
【００７５】
更に、例えば、カード番号のカード識別番号と有効期間の桁を活用して細部コードからなる仮想コードを生成できる。即ち、仮想コード生成装置１００は、１６桁のカード識別番号と４桁の有効期間のうち、実際カード番号の発行者識別番号に該当する６桁を固定コードとして維持し、残りの１４桁を複数の細部コードに割り当て、細部コード生成部は割り当てられたそれぞれの桁数に沿う細部コードを生成する。
【００７６】
また、例えば、仮想コード生成装置１００は、実際カード番号のカード識別番号、有効期間及びカードセキュリティコードを仮想コードで細部コードに割り当てる桁数として活用できる。例えば、仮想コード生成装置１００は、実際カード番号の発行者識別番号に該当する６桁を固定コードとして維持し、カード識別コードの残りの１０桁、４桁の有効期間及び３桁のカードセキュリティコードをそれぞれの細部コードの桁数として割り当てることができる。
【００７７】
更に、例えば、仮想コード生成装置１００は、カード識別番号部分だけで仮想コードの細部コードと固定コードを表現できる。このとき、仮想コード生成装置１００は、複数の細部コードに異なる桁数を割り当てることができる。即ち、仮想コードが固定コード、第１コード及び第２コードを含み、カード識別番号の桁数だけで固定コード、第１コード及び第２コードを生成する場合、仮想コード生成装置１００は、固定コードに割り当てられる６桁を除いた桁数のうち、９桁を第１コードと第２コードに分けて割り当てる。カード識別番号が１５桁の場合と１６桁の場合に何れも適用するために、仮想コード生成関数は、カード識別番号の９桁のみを第１コードと第２コードに割り当てることができる。例えば、仮想コード生成関数は、９桁のうち、第１コードに６桁を割り当て、第２コードに３桁を割り当てることができる。このように、カード番号全体のうち、カード識別番号部分だけで仮想コードを構成するコードを表現すれば、ユーザがカード番号を直接入力しなければならない状況で入力すべき文字数が減少する。また、仮想コード生成装置１００は、有効期間及びカードセキュリティコード部分を、セキュリティを向上させることができる他の用途として活用できる。
【００７８】
また、仮想コードに第１コードと第２コードを含む一実施例において、仮想コードは仮想セキュリティコードを更に含む。例えば、仮想コードは、複数の細部コードと仮想セキュリティコードを含む。仮想コードのセキュリティコードは、実際カード番号のカードセキュリティコード（即ち、ＣＶＶ又はＣＶＣ）の桁を活用して提供することができる。即ち、仮想コード生成装置は、既存の金融取引システムで用いられる実際カード番号と同一の文字数を含むように、カードセキュリティコードの桁を仮想コードの仮想セキュリティコードに割り当て、カード識別番号及び有効期間の全部又は一部の桁を複数の細部コードに割り当てることができる。
【００７９】
前記セキュリティコードは特定のセキュリティコード生成関数を基に生成されるコードであって、正常な仮想コードか否かを検証するために用いられる。前記セキュリティコード生成関数は、時間データと仮想コード生成手段の固有値を関数値として用いて特定の桁数のセキュリティコードを生成する。
【００８０】
仮想セキュリティコードを活用して仮想コードの正常か否かを判断する過程の一例は、以下の通りである。仮想コード検証手段２０は、実際カード番号の発行時に仮想コード生成装置１００の固有値（例えば、スマートカード内のチップ固有値又はＡＰＰカードがインストールされたスマートフォンの固有値など）を受信して実際カード番号の格納位置に共に格納するか、実際カード番号の格納位置に繋がっている別途の格納空間に格納できる。仮想コード生成装置１００が、仮想セキュリティコードが結合された仮想コードを生成して仮想コード検証手段２０に提供すると、仮想コード検証手段２０は、細部コードを基に仮想コードが生成された時間データを獲得し、内部に格納された特定の仮想コード生成装置１００の固有値を抽出して時間データと共に仮想セキュリティコード生成関数（例えば、ＯＴＰ（Ｏｎｅ-Ｔｉｍｅ Ｐａｓｓｗｏｒｄ）関数）に適用して仮想セキュリティコードを算出する。仮想コード検証手段２０は、仮想コード生成装置１００から受信した仮想セキュリティコード（即ち、受信仮想セキュリティコード）と内部に格納された仮想セキュリティコード生成関数で算出した仮想セキュリティコード（即ち、生成仮想セキュリティコード）とが一致するかを判断する。仮想コード生成装置１００で仮想コードを生成する時点と仮想コード検証装置２００で仮想コードを受信した時点との間に差が存在し得るので、仮想コード検証装置２００は時間遅延を考慮して特定の時間範囲内（例えば、仮想コードを受信した時点から特定カウント以前まで）の仮想セキュリティコード（即ち、ＯＴＰ番号）を計算し、仮想コード生成装置１００から受信した受信仮想セキュリティコードと一致する値が存在するかを確認する。仮想コード検証手段２０は、受信仮想セキュリティコードと生成仮想セキュリティコードとが一致すると、正常な仮想コードと判断して実際カード番号を提供する。
【００８１】
例えば、仮想セキュリティコードは、カードセキュリティ番号に対応する桁数にて生成することができる。即ち、仮想コード生成装置１００は、仮想セキュリティコード生成関数を用いてカードセキュリティ番号に該当する３桁又は４桁を仮想セキュリティコードとして生成し、カードの使用時にカードセキュリティ番号として仮想セキュリティコードを入力すると、仮想コード検証手段２０は仮想セキュリティコードを検証する過程を行う。
【００８２】
また、他の例として、仮想セキュリティコード生成関数は、カウント毎に異なるｌ桁（ｌは自然数）のコードを生成して関数値として共に適用できる。即ち、仮想セキュリティコード生成関数には、ｌ桁のランダムコード生成関数（例えば、ｌ桁のコードを生成するＯＴＰ関数）を含めることができる。
【００８３】
更に、一実施例として、仮想コードが第１コード及び第２コードの特定の規則による組み合わせで生成される場合、第１コードと第２コードは、実際カード番号が格納された格納位置を探索するためのそれぞれの役割を果たすことができる。例えば、第１コードは格納位置探索の開始地点を設定し、第２コードは特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定する。即ち、仮想コード生成装置１００から単位カウント毎に正常に生成された仮想コードが提供されると、仮想コード検証手段２０は、第１コードに対応する探索開始地点から第２コードに相応する探索経路に沿って移動した地点を実際カード番号の格納位置として判断する。仮想コードを構成する第１コードと第２コードを基に格納位置を探索する具体的な方式は後述する。
【００８４】
細部コード生成部１１０が細部コードを生成する方式の一実施例として、細部コード生成部１１０は、単位カウント毎に新たな細部コードを生成し、これにより、仮想コード生成装置１００は単位カウント毎に新たな仮想コードを生成する。単位カウント毎に新たに生成される仮想コードは重複して生成されない。具体的に、細部コード生成部１１０は、単位カウント毎に新たに生成される仮想コードが特定のユーザ又は特定の仮想コード生成装置１００に定められた期間に重複して生成されないだけでなく、特定のグループに属するユーザ間でも重複して生成されないように設定される。
【００８５】
仮想コードの重複生成を防止する具体的な一実施例として、Ｍ個の文字でＮ桁の前記第１コード又は前記第２コードを生成する場合、仮想コード生成関数に含まれる細部コード生成関数はＭＮ個のコードを第１コード又は第２コードとして生成することができ、それぞれのコードを細部コード生成関数が駆動される初期時点からカウント毎にマッチする。例えば、単位カウントを１秒に設定する場合、細部コード生成関数が最初に駆動された時点から毎秒、異なるＭＮ個のコードをマッチする。そして、特定の細部コード生成関数を用いる周期又は仮想コード生成装置１００の使用周期（例えば、仮想コードを生成するスマートカードの有効期間）をＭＮカウントに該当する時間長（例えば、１カウントが１秒である場合、ＭＮ秒）よりも短い時間長に設定すると、第１コード又は第２コードは、使用周期の間に同一のコードとして重複して生成されない。即ち、時間が経過するにつれてカウントが増加するとき、ユーザが特定時点で仮想コード生成装置１００に仮想コードの生成を要求する場合、仮想コード生成装置１００は、特定時点に対応するカウントにマッチしたコード値を第１コード又は第２コードとして生成できる。
【００８６】
具体的に、アルファベットの大文字と０から９までの数字をコードに含むことが可能な文字として使用（即ち、３６個の文字を使用）し、実際カード番号のカード識別番号と有効期間の桁を活用して第１コードと第２コードにそれぞれ６桁を割り当てる場合、仮想コード生成装置１００は第１コード及び第２コードとして３６６個のコードを提供できる。このとき、仮想コード生成装置１００は、それぞれのコードをカウント毎にマッチさせ、カウント毎に変更された第１コード及び第２コードを提供できる。
【００８７】
仮想コードの重複生成を防止する具体的な他の実施例として、仮想コード生成装置１００の使用周期が経過すれば、第１コード又は第２コードを生成する関数（即ち、第１関数又は第２関数）を変更するか、第１コードと第２コードのマッチング関係を変更して以前の使用周期と異なる仮想コードが生成されるようにする。仮想コードが、第１関数により生成される第１コードと第２関数により生成される第２コードが結合される場合、第１コード生成関数又は第２コード生成関数が変更されると、仮想コード生成装置１００は、第１コード又は第２コードが登場する順序が以前の使用周期と相違することにより、以前の周期とは異なる仮想コードを生成する仮想コード生成関数を新規の使用周期に適用できる。また、仮想コード生成装置１００は、以前の使用周期で用いられた仮想コードと同一のコードが新規の使用周期内の各カウントの仮想コードとして登場しないように（即ち、第１関数によって生成される第１コードと第２関数によって生成される第２コードのマッチング関係が、新規の使用周期の全てのカウントで、以前の使用周期内に含まれているマッチング関係の中に含まれないように）第１関数と第２関数を選択できる。即ち、ＭＮ個のコードを１回ずつ適用できる使用周期が経過した後、仮想コード生成関数の調節又は更新によって以前の使用周期と重なる仮想コードが生成されない新規の使用周期の仮想コード生成関数を適用できる。
【００８８】
このとき、仮想コード生成手段１０及び仮想コード検証手段２０は、仮想コード生成関数を更新する規則を格納できる。即ち、仮想コード生成手段１０及び仮想コード検証手段２０は、複数の第１関数と第２関数を各使用周期に適用する順序又は規則を格納できる。
【００８９】
また、仮想コードの重複生成を防止する具体的な他の実施例として、同一のグループに属するユーザ間でも同一の仮想コードが同一時点に生成されないように、仮想コードに含まれる第１コード又は第２コードのうち何れか１つは少なくとも仮想コード生成装置１００毎に同一時点に常に相違して存在する値（即ち、装置識別値）を反映し、生成できる。一実施例として、装置識別値は、特定の細部コード生成関数が適用されるグループに特定の仮想コード生成装置１００が含まれている時点（例えば、仮想コード検証手段２０内に特定の細部コード生成関数が駆動された最初の時点から特定時間が経過した後、特定の仮想コード生成装置１００に前記細部コード生成関数が適用され始めた時点）から現在まで経過した時間（又はカウント数）であり得る。１つのグループ内に複数の仮想コード生成装置１００が含まれる場合、仮想コード生成装置１００を該当グループに属するように設定するカウントを異なるようにすれば（即ち、仮想コード生成装置１００が該当グループに同時に属せなくすれば）、仮想コード生成装置１００がグループに属するようになった時点（又はカウント）から特定時点までの経過時間は仮想コード生成装置１００毎に異なる。従って、細部コード生成関数のうち少なくとも何れか１つは、仮想コード生成装置１００がグループに属するようになった時点（又はカウント）から特定時点までの経過時間を装置識別値として用いて、時点毎にそれぞれの仮想コード生成装置１００で生成される仮想コードが異なるようにすることができる。これにより、仮想コード検証手段２０がユーザを区別するためのデータを別途に受信せず、仮想コードを受信するだけで仮想コード生成装置１００の区別が可能にすることができる。
【００９０】
例えば、仮想コード生成装置１００が出力されるカード番号を変更できるカード（例えば、スマートカード又はＡＰＰカードなど）である場合、特定のカード会社の特定のカードの類型が１つのグループに設定され、カード会社サーバ内の特定の仮想コード検証手段２０が該当グループに対して駆動される。第１ユーザが仮想コード検証手段２０の駆動時からＡ時間だけ経過した時点で第１仮想コード生成装置１００（即ち、第１ユーザの仮想コード生成装置１００）にカードの発行を要求し、第２ユーザが仮想コード検証手段２０の駆動時からＢ（ＢはＡよりも大きい値）時間だけ経過した時点で第２仮想コード生成装置１００（即ち、第２仮想コード生成装置１００）にカードの発行を要求すると、第１仮想コード生成装置１００及び第２仮想コード生成装置１００は、第１ユーザと第２ユーザから仮想コードの生成を要求されたＣ（ＣはＢよりも大きい値）時間にカードの発行時点から経過した時間長が常に異なることになる。従って、細部コード生成関数は、各仮想コード生成装置１００にカードが発行された時点から経過した時間長を変数として適用することによって、同一時点に同一の仮想コードが生成されないようにすることができる。
【００９１】
また、特定の仮想コード生成装置１００が特定のグループに属するようになった時点から経過した時間長は、時間が経過するにつれて増加し続けるので、特定の仮想コード生成装置１００で生成される細部コード（例えば、第２コード）は同一の値が生成されず、継続して異なる値が生成される。
【００９２】
更に、仮想コードの重複生成を防止する具体的な更に他の実施例として、周期全体においてユーザと関係なく重複した仮想コードが発生しないように、第１コードは、仮想コード検証手段２０内で第１関数が駆動される初期時点からカウント毎にマッチされたコードのうち、仮想コードの生成が要求された時点（又はカウント）に対応するコード値に設定され、第２コードは、仮想コード生成装置１００毎に同一時点に常に相違して存在する値（即ち、装置識別値）を反映して生成されるコード値に設定され、仮想コードを前記第１コードと第２コードが結合されたコード値として利用できる。第１コードはカウント毎に異なるコード値となり、第２コードは同一時点に仮想コード生成装置１００毎に異なるコード値を有するようになり、第１コードと第２コードが結合された仮想コードが、全ての仮想コード生成装置１００と全ての時点で異なるコード値として出力されるようになる。
【００９３】
また、他の実施例として、前記仮想コード生成関数（又は細部コード生成関数）に対して、Ｍ個の文字を昇順に並べる多数の羅列規則のうち何れか１つが適用される。即ち、仮想コード生成装置１００（即ち、仮想コード生成手段１０）は、仮想コード生成関数内に含まれる細部コード生成関数にＭ個の文字を昇順に並べる規則を多様に適用して行える。例えば、アルファベットの大文字を昇順に並べる羅列規則は、一般的な順序であるＡ、Ｂ、Ｃ、…、Ｚの順となってもよく、Ａ、Ｃ、Ｂ、…、Ｚの順となってもよい。仮想コード生成関数で羅列規則が変わることによって、仮想コード生成関数が駆動される初期時点から各カウントに順にコードがマッチされる順序が変わることになる。仮想コード検証手段２０は、同一の羅列規則に従って生成されたコードが各カウントにマッチされているか、同一の羅列規則自体を仮想コード生成関数に含んで格納できる。従って、各グループ別の仮想コード生成関数が異なる細部コード結合関数を含むか、異なる文字羅列規則を含み、各グループ別に異なる仮想コード生成関数を有するようにすることができる。
【００９４】
更に、他の実施例として、細部コード生成部１１０は、仮想コード検証サーバ２００で実際カード番号の探索に用いる第１コード及び第２コードに変更して使用できる複数の細部コードを生成する。仮想コード生成関数は、それぞれの細部コード生成関数を含む。例えば、仮想コード生成関数は、複数の細部コード生成関数を用いて複数の細部コードを生成し、複数の細部コードを結合する細部コード結合関数を用いて仮想コードを生成する。
【００９５】
一実施例として、細部コード生成部１１０は、仮想コード内に含まれるＯＴＰコードと抽出コードを生成する役割を果たす。即ち、前記仮想コードは固定コード、ＯＴＰコード及び抽出コードを含む複数のコードを特定の規則に従って結合して生成される。このために、仮想コード生成関数は、ＯＴＰコードを生成するＯＴＰ関数、抽出コード生成関数及び細部コード結合関数を含むことができる。
【００９６】
一実施例として、図４に示すように、前記細部コード生成部１１０は、ＯＴＰコード生成部１１１及び抽出コード生成部１１２を含む。
【００９７】
前記ＯＴＰコード生成部１１１は、仮想コードの生成が要求された時点に内部に格納されたＯＴＰ関数を基にＯＴＰコードを生成する。前記ＯＴＰコード生成部１１１は、特定のシードデータ（又はシリアル番号）を基にＯＴＰコードの生成が要求されたカウント（即ち、ユーザから金融取引のために実際カード番号に対応する仮想コードの生成が要求された時点）を反映してＯＴＰコードを生成する。前記ＯＴＰコードは、ＯＴＰ関数を基に特定数の数字の配列により生成されて変換コードの算出に用いられる。即ち、仮想コードが仮想コード検証手段（例えば、仮想コード検証サーバ）に伝送されると、仮想コード検証手段は、仮想コードＯＴＰ番号を基に変換コードを探索した後、変換コードを実際カード番号の格納位置の探索に用いられる第１コード又は第２コードとして用いる。
【００９８】
一実施例として、ＯＴＰコード生成部１１１は、金融機関サーバから実際カード番号が特定のユーザに発行されるか、実際カード番号を仮想トークン検証サーバに登録したカウントをＯＴＰ関数のシードデータとして用いる。即ち、仮想コード検証手段（即ち、金融機関サーバ又は仮想トークン検証サーバ）は、各ユーザ別に区別される実際カード番号の発行カウント又は実際カード番号の登録カウントをシードデータとして用いる。これにより、仮想コード検証手段は、仮想コードから抽出されたＯＴＰコードを用いて実際カード番号が発行されるか、登録されたカウントを探索できる。また、これにより、ＯＴＰコード生成部１１１は、他のユーザの実際カード番号が登録又は発行されたカウントが異なるので、異なるシードデータを用いてＯＴＰ関数が駆動される。即ち、ＯＴＰコード生成部１１１は、各ユーザで異なる実際カード番号の登録又は発行カウントをシードデータとして用いることによって、ユーザ別に同一の時点に異なるＯＴＰコードを生成できる。
【００９９】
ＯＴＰコード生成部１１１で生成されるＯＴＰコードは、仮想コード検証サーバ２００で第１コード又は第２コードとして用いられる変換コードを算出するのに利用される。即ち、ＯＴＰコードは、変換コード生成関数にシード値として入力されて特定の変換コードの生成に用いられる。変換コード生成関数は、仮想コード検証サーバ２００内に格納される。また、後述する抽出コード生成部１１２は、抽出コード生成関数に変換コードがシード値として用いられる場合、ＯＴＰコード生成部１１１で生成されたＯＴＰコードで変換コードを生成するために変換コード生成関数を含むことができる。
【０１００】
一実施例として、前記変換コードは、特定の規則に従ってＯＴＰコードに一対一でマッチングできる。即ち、変換コード生成関数が、桁数が異なるＯＴＰコードと変換コードを一対一でマッチング関係を形成することができる。
【０１０１】
また、他の実施例として、前記変換コードは、前記ＯＴＰコードと仮想コードの生成が要求されたカウント値を変換コード生成関数にシード値として入力して算出される。即ち、変換コード生成関数は、ＯＴＰコードと仮想コードの生成が要求されたカウント値をシード値として活用して、同一のＯＴＰ値がシード値として用いられてもカウント値によって異なる変換コードを生成することができる。これにより、ＯＴＰコードが変換コードよりも少ない桁数の数字列である場合、実際カード番号の格納位置の探索に用いられる第１コード又は第２コードとしてＯＴＰコードよりも更に多くの場合の数の変換コードを利用できる。
【０１０２】
更に、他の実施例として、前記固定コードが特定のカード類型の仮想コードに対して新たに付与される場合、前記細部コード生成部１１０は、有効期間の桁に配置される特定の数字の組み合わせを可変コードとして生成し、可変コードとＯＴＰコードを共に変換コード生成関数のシード値（即ち、変数）として利用できる。即ち、前記変換コードは、前記可変コードと前記ＯＴＰコードをシード値にして生成される。
【０１０３】
前記有効期間に配置される数字の組み合わせは、単位カウント毎に変更されて生成されるものであって、実際の有効期間として使用可能であり、現在のカウントから最大期間内に含まれる。決済システム内でエラーが発生しないためには、有効期間が現在時点から有効な期間内の値でなければならない。例えば、実際カードの有効期間が５年である場合、細部コード生成部１１０は、決済が要求された時点から５年以内の年月の組み合わせに該当する数字の組み合わせを特定の規則に従って生成する。
【０１０４】
これにより、ＯＴＰコードと可変コードの組み合わせと変換コード間の場合の数の差が減少する。例えば、有効期間内に５年内の数字の組み合わせが利用され、ＯＴＰコードとして３桁、変換コードとして９桁を数字でのみ用いる場合、６０個の数字の組み合わせが可変コードとして利用され得るので、可変コードとＯＴＰコードの組み合わせは６０×１０３になって、可変コードなしにＯＴＰコードのみをシード値として用いる時に比べて場合の数の差が減少する。
【０１０５】
前記抽出コード生成部１１２は、仮想コード検証手段（例えば、仮想コード検証サーバ）で実際カード番号の格納位置の探索に用いられる第１コード又は第２コードとして用いられる抽出コードを生成する役割を果たす。仮想コード検証手段がＯＴＰコードを基に算出された変換コードを第１コードとして用いる場合、仮想コード検証手段は、抽出コードを第２コードとして用いられる。即ち、前記変換コード又は前記抽出コードは、前記仮想コード検証手段で設定された条件によって第１コード又は第２コードとしてそれぞれ用いられる。前記第１コードは、前記仮想コード検証手段で実際カード番号の格納位置を探索する開始地点を設定し、前記第２コードは、特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定する。具体的に、前記抽出コードは、同一のカウントに生成されたＯＴＰコードから算出された変換コードに対応するので、仮想コード検証手段は、特定カウントの仮想コード内の抽出コードと特定カウントの仮想コード内のＯＴＰコードを基に生成された変換コードを用いて実際カード番号の格納位置を探索する。
【０１０６】
また、変換コード及び抽出コードと第１コード及び第２コードのマッチング関係は、仮想コード生成装置１００及び仮想コード検証装置２００に予め設定されている。変換コード及び抽出コードと第１コード及び第２コードのマッチング関係が反対に適用されると、仮想コード検証サーバ２００で実際カード番号の格納位置を探索できないので、仮想コード生成装置の発行時又は仮想コード生成関数の格納時に予め設定される。
【０１０７】
前記抽出コード生成部１１２は、一実施例として、ＯＴＰ関数と相関関係を有する抽出コード生成関数を含む。即ち、抽出コード生成部１１２は、特定のカウントに生成されるＯＴＰコードを基に変換コードと共に用いられて実際カード番号の格納位置を探索できるコード値を同一のカウントとして生成する関数を抽出コード生成関数として含む。
【０１０８】
また、他の実施例として、前記抽出コード生成部１１２は、ＯＴＰコード自体を抽出コード生成関数にシード値として入力して変換コードと共に実際カード番号の格納位置を探索できる抽出コード（即ち、特定カウントに変換コードと相関関係を有する抽出コード）を生成できる。また、他の実施例として、抽出コード生成部１１２が仮想コード検証サーバ２００と同一にＯＴＰコードを基に変換コードを算出する変換コード生成関数を含み、ＯＴＰコード生成部１１１で生成されたＯＴＰコードを基に変換コードを生成し、変換コードをシード値として抽出コード生成関数に入力して抽出コードを生成できる。
【０１０９】
前記抽出コードは、前記仮想コードの全体数字の数から前記固定コード及び前記ＯＴＰコードを除いた数字の数の全部又は一部として生成される。即ち、抽出コード生成部１１２は、仮想コード（例えば、カード識別番号が１６桁であり、カードセキュリティコードが３桁である場合、計２３桁）から有効期間（例えば、４桁）と固定コード（例えば、６桁）を除いた桁数（例えば、カード識別番号内の固定コードを除いた範囲とカードセキュリティコード範囲を含む１３桁）の全部又は一部に抽出コードとＯＴＰコードが組み合わせられた数字列が配列される。例えば、カード識別番号の最後の桁をチェックディジット（ｃｈｅｃｋ ｄｉｇｉｔ）として用いる場合、抽出コード生成部１１２は、チェックディジットの桁を除いた残りの桁（例えば、１２桁）に抽出コードとＯＴＰコードが組み合わせられた数字列を配列する。具体的に、前記仮想コード生成部１２０は、ＯＴＰコードと抽出コードを細部コード結合関数によって組み合わせて、前記カード識別番号から固定コードを除いた桁と前記カードセキュリティコードの桁に並べる。
【０１１０】
ＯＴＰコード生成部１１１と抽出コード生成部１１２は、単位カウント毎にＯＴＰコードと抽出コードを異なるように生成する。即ち、前記ＯＴＰコード及び前記抽出コードは、単位カウント毎に変更される。これにより、仮想コード生成装置１００は、カウント毎に変更された仮想コードを生成する。仮想コード検証サーバ２００は、抽出コードとＯＴＰコードが単位カウント毎に変更されても、ＯＴＰコードを基に生成される変換コードと抽出コードが連係されており、実際カード番号の格納位置を探索できる。
【０１１１】
また、他の実施例として、前記ＯＴＰコード生成部１１１は、仮想コード検証手段で第１コード又は第２コードとして用いられる変換コードよりも少ない桁数でＯＴＰコードを生成する。例えば、前記ＯＴＰコードは、実際カード番号内のカードセキュリティコードの数字の数として生成され、前記第２コードは、前記仮想コードの全体数字の数から前記固定コード、前記ＯＴＰコード及び有効期間を除いた数字の数の全部又は一部として生成される。即ち、ＯＴＰコード生成部１１１は、カードセキュリティコードが３桁であれば、ＯＴＰコードを３桁に生成し、抽出コード生成部１１２は、全体カード番号の数字の数２３個のうち、固定コード６桁、有効期間４桁、ＯＴＰコード３桁及びチェックディジット１桁を除いた９桁で抽出コードを生成する。
【０１１２】
これにより、仮想コード生成装置は、限られた実際カード番号の桁で９桁を抽出コードとして使用できるので、抽出コードとして使用できるコードの数が増加し、セキュリティが向上できる。特に、既存の決済プロセスを全く修正しないために、仮想コードに数字のみ用いる場合、抽出コードは、０から９までの１０個の数字で９桁を生成でき、１０９個のコードを活用できる。
【０１１３】
このとき、ＯＴＰコードを基に生成される変換コードは、抽出コードと同一の桁数の数字列により生成される。これにより、変換コードと抽出コードは、仮想コード検証サーバで第１コード又は第２コードのそれぞれとして利用できる。また、少ない桁数のＯＴＰコードで多くの桁数の変換コードを生成することによって、仮想コード内でＯＴＰコードと抽出コードに活用できる領域（即ち、１２桁）で多くの部分を抽出コードに活用できるようにする。
【０１１４】
従って、数字のみを用いて仮想コードを生成する場合にも、仮想コード検証サーバ２００で第１コード又は第２コードとして直ぐに用いられる抽出コードに多くの数字の桁を付与し、残りの桁にＯＴＰコードを付与するので、セキュリティを向上させることができる。
【０１１５】
仮想コード提供部１３０は、前記仮想コードを仮想コード検証装置２００に提供するために外部に出力する役割を果たす。仮想コード提供部１３０は、仮想コードを外部に提供できる多様な構成を含むことができる。仮想コード提供部１３０は、無線インターネットモジュール、近距離通信モジュール、ＩＣチップ１３１、磁場発生部、ディスプレイ部１３２などの全部又は一部を含む。
【０１１６】
無線インターネットモジュールとは、無線インターネットへの接続のためのモジュールをいい、移動端末１００に内蔵又は外付けすることができる。無線インターネット技術としては、ＷＬＡＮ（Ｗｉｒｅｌｅｓｓ ＬＡＮ）（Ｗｉ-Ｆｉ（登録商標））、Ｗｉｂｒｏ（Ｗｉｒｅｌｅｓｓ ｂｒｏａｄｂａｎｄ）、Ｗｉｍａｘ（登録商標）（Ｗｏｒｌｄ Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ ｆｏｒ Ｍｉｃｒｏｗａｖｅ Ａｃｃｅｓｓ）、ＨＳＤＰＡ（Ｈｉｇｈ Ｓｐｅｅｄ Ｄｏｗｎｌｉｎｋ Ｐａｃｋｅｔ Ａｃｃｅｓｓ）、ＬＴＥ（ｌｏｎｇ ｔｅｒｍ ｅｖｏｌｕｔｉｏｎ）、ＬＴＥ-Ａ（Ｌｏｎｇ Ｔｅｒｍ Ｅｖｏｌｕｔｉｏｎ-Ａｄｖａｎｃｅｄ）などを利用することができる。例えば、仮想コード生成装置１００が仮想コード生成手段であるＡＰＰカードアプリケーションがインストールされた移動端末である場合、ショッピングアプリケーション又はショッピングウェブサイトで物品を購買するとき、仮想コード生成装置１００は、無線インターネット通信を介して支払い決済サービスサーバ（即ち、ＰＧ会社サーバ）４０に仮想コードを伝送できる。
【０１１７】
近距離通信モジュールとは、近距離通信のためのモジュールを指す。近距離通信（Ｓｈｏｒｔ ｒａｎｇｅ ｃｏｍｍｕｎｉｃａｔｉｏｎ）技術としてブルートゥース（登録商標）（Ｂｌｕｅｔｏｏｔｈ（登録商標））、ＢＬＥ（Ｂｌｕｅｔｏｏｔｈ（登録商標） Ｌｏｗ Ｅｎｅｒｇｙ）、ビーコン（Ｂｅａｃｏｎ）、ＲＦＩＤ（Ｒａｄｉｏ Ｆｒｅｑｕｅｎｃｙ Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）、ＮＦＣ（Ｎｅａｒ Ｆｉｅｌｄ Ｃｏｍｍｕｎｉｃａｔｉｏｎ）、赤外線通信（Ｉｎｆｒａｒｅｄ Ｄａｔａ Ａｓｓｏｃｉａｔｉｏｎ；ＩｒＤＡ）、ＵＷＢ（Ｕｌｔｒａ Ｗｉｄｅｂａｎｄ）、ＺｉｇＢｅｅ（登録商標）などを利用することができる。
【０１１８】
仮想コード提供部１３０は、仮想コード生成装置１００がＰＯＳ装置に仮想コードを伝達するカードに該当する場合、磁場発生部又はＩＣチップを含むことができる。磁場発生部は、カードデータを磁気信号の形態で出力してカードリーダに伝達する機能を行う。磁場発生部は、電流の流れによって磁場を形成してカード情報磁気信号を出力する磁気セルを１つ以上含むことができる。磁場発生部は、カードのＰＣＢ板の特定の長辺に隣接するように前記長辺に沿ってＰＣＢ板の上面又は下面に露出するように備えられる。
【０１１９】
ＩＣチップ１３１はＰＣＢ板内に実装され、ＩＣ方式のカードリーダの端子と接触してデータの交換を行うようにすることができる。即ち、ＩＣチップは、仮想コード生成部１２０で生成された仮想コードをＩＣ方式のカードリーダに伝達する。
【０１２０】
ディスプレイ部１３２は、液晶ディスプレイ（ｌｉｑｕｉｄ ｃｒｙｓｔａｌ ｄｉｓｐｌａｙ）、薄膜トランジスタ液晶ディスプレイ（ｔｈｉｎ ｆｉｌｍ ｔｒａｎｓｉｓｔｏｒ-ｌｉｑｕｉｄ ｃｒｙｓｔａｌ ｄｉｓｐｌａｙ）、有機発光ダイオード（ｏｒｇａｎｉｃ ｌｉｇｈｔ-ｅｍｉｔｔｉｎｇ ｄｉｏｄｅ）、フレキシブルディスプレイ（ｆｌｅｘｉｂｌｅ ｄｉｓｐｌａｙ）、電子ペーパ（Ｅ-Ｐａｐｅｒ）のうち少なくとも１つを含むこともできる。
【０１２１】
ディスプレイ部１３２は、仮想コード生成部１２０で生成した仮想コードを視覚的に外部に出力する。これにより、仮想コード生成装置１００のユーザは、リアルタイムに生成された仮想コードを視覚的に確認でき、仮想コード検証手段２０に視覚的に確認した仮想コードを直接入力できる。
【０１２２】
例えば、図５に示すように、仮想コード生成装置がスマートカードである場合、仮想コード生成装置は、表面にカード番号を記載せず、仮想コードを出力できるディスプレイ部を備えることができる。また、例えば、仮想コードが発行者識別番号と同一の固定コードを含む場合、仮想コード生成装置１００は発行者識別番号をカードの表面に記載し、残りのカード番号の桁のみディスプレイ部に表示することができる。例えば、前記ディスプレイ部は電子ペーパ、ＯＬＥＤなどであってもよく、それぞれの桁に備えられる７-Ｓｅｇｍｅｎｔディスプレイであってもよい。また、例えば、仮想カード生成装置が、ＡＰＰカードアプリケーションがインストールされているスマートフォンである場合、ディスプレイ部は、ＡＰＰカードアプリケーションが実行されて表示されるスマートフォンのディスプレイ部であり得る。
【０１２３】
また、ユーザは、ディスプレイ部に表示された仮想コードを文字メッセージなどの多様な経路を通じて送ることができる。実際カード番号を伝送するのではなく、仮想コード検証手段２０で実際カード番号を探索できる仮想コード（具体的に、継続的に変更・生成されるコード）を伝達するので、ユーザが文字メッセージなどによってコードを伝送する際に実際カード番号の流出を恐れないようにすることができる。
【０１２４】
更に、他の実施例として、図６に示すように、仮想コード生成装置１００は仮想コード確認部１４０を更に含む。前記仮想コード確認部１４０は、前記固定コードが特定のカード類型の実際カード番号として用いられる場合、特定のカウントで生成された仮想コードが特定のカードの類型で実際カード番号として使用可能なコード列であるか否かを判断する役割を果たす。
【０１２５】
仮想コード生成装置１００の仮想コード生成部１２０が特定のカード類型の実際カード番号に付与される発行者識別番号と区別される該当カード類型の仮想コード用発行者識別番号を固定コードとして用いると、異なる発行者識別番号により実際カード番号と重複しなくなる。しかし、実際カード番号に利用される発行者識別番号をそのまま固定コードとして用いることになると、実際にカード会社から発行したか、発行できる実際カード番号が重複する恐れがあるので、これを防止して仮想コード検証サーバ２００で仮想コードであることを確認し、実際カード番号を探索できる。即ち、仮想コード生成装置１００は、特定のカード会社又はカード類型の実際カード番号の生成規則に従って生成される数字列を排除し、仮想コードを生成しなければならない。
【０１２６】
具体的に、前記仮想コード確認部１４０は、仮想コード内のカード識別番号、有効期間及びサービスコード（即ち、各カード会社別に実際カード番号の生成時に用いる固有コード）を実際カード番号の生成規則に入力して比較カードセキュリティコードを生成し、前記仮想コード内のカードセキュリティコードの桁に配置された数字である生成カードセキュリティコードと前記比較カードセキュリティコードとを比較して一致すると、仮想コードの再生成を要求する。例えば、仮想コード生成装置１００は、次のカウントを基準に再び仮想コードを生成して比較する過程を繰り返して行い、実際カード番号として生成されない仮想コードを出力する。また、前記サービスコードを、外部から接近できない格納空間に格納することができる。
【０１２７】
図７は、本発明の一実施例に係る仮想コード検証装置２００の構成図である。
【０１２８】
図７を参照すれば、本発明の更に他の実施例に係る仮想コード検証装置２００は、仮想コード受信部２１０、細部コード抽出部２２０、実際カード番号探索部２３０を含む。仮想コード検証装置２００は、金融機関のサーバ（例えば、カード会社又は銀行のサーバ）であり得る。
【０１２９】
例えば、仮想コード検証装置２００は、特定のユーザが保有している特定カード会社の特定類型のカードに対する仮想コードを受信した後、実際カード番号を探索して決済を行うカード会社サーバであり得る。具体的に、カード決済の場合、仮想コード検証装置２００は、ＰＯＳ装置及びＰＧ会社のサーバを介して仮想コード生成装置１００で生成した仮想コードを受信する。
【０１３０】
また、例えば、ユーザが仮想コード生成装置であるスマートカードを用いてＡＴＭから現金を引き出そうとする場合、仮想コード検証装置２００は銀行サーバであり得る。即ち、ユーザが仮想コード生成装置１００であるスマートカードで現金自動預払機（ＡＴＭ）に仮想コードを入力（例えば、スマートカードをカード挿入口に挿入するか、ＮＦＣリーダに接触）すると、銀行サーバはＡＴＭから仮想コードを受信した後、実際カード番号を探索する。
【０１３１】
仮想コード受信部２１０は、仮想コード生成装置１００から仮想コードを受信する役割を果たす。一実施例として、仮想コード受信部２１０は、他のサーバ（例えば、支払い決済サービスサーバ）との通信を介して仮想コード生成装置１００で生成された仮想コードを受け取ることができる。
【０１３２】
細部コード抽出部２２０は、前記仮想コードに含まれている複数の細部コードを抽出する。前記仮想コードは、複数の細部コードを特定の規則に従って結合して生成される。仮想コード検証装置２００の細部コード抽出部２２０は、特定グループの仮想コード生成装置１００と同一の細部コード結合関数を含み、細部コード抽出部２２０は、細部コード結合関数を適用して仮想コードから複数の細部コードを抽出できる。例えば、仮想コード生成装置１００で２つの細部コード（例えば、第１コードと第２コード自体が仮想コード内に含まれる場合には第１コードと第２コードであり、第１コードと第２コードに代えて使用できるコードを含む場合、ＯＴＰコードと抽出コード）が結合された仮想コードを生成する場合、細部コード抽出部２２０は、仮想コードの文字配列から細部コード結合関数を適用して２つの細部コードを分離できる。
【０１３３】
また、他の実施例として、図８に示すように、細部コード抽出部２２０は変換コード算出部２２１を含む。仮想コードにＯＴＰコードと抽出コードが含まれており、細部コード結合関数によりＯＴＰコードと抽出コードを分離した場合、変換コード算出部２２１は、ＯＴＰコードをシード値にして変換コードを算出する変換コード生成関数を含む。
【０１３４】
一実施例として、前記変換コードは、特定の規則に従ってＯＴＰコードに一対一でマッチングできる。即ち、変換コード生成関数が、桁数が異なるＯＴＰコードと変換コードを一対一でマッチング関係を形成する。
【０１３５】
また、他の実施例として、前記変換コードは、前記ＯＴＰコードと仮想コードの生成が要求されたカウント値を変換コード生成関数にシード値として入力して算出される。即ち、変換コード生成関数は、ＯＴＰコードと仮想コードの生成が要求されたカウント値をシード値として活用して、同一のＯＴＰ値がシード値として用いられてもカウント値によって異なる変換コードが生成される。これにより、ＯＴＰコードが変換コードよりも少ない桁数の数字列である場合、実際カード番号の格納位置の探索に用いられる第１コード又は第２コードとしてＯＴＰコードよりも更に多くの場合の数の変換コードを利用できる。このとき、変換コード算出部２２１は、仮想コードを受信したカウントから特定範囲内のカウントで生成されるＯＴＰ値と仮想コードから分離されたＯＴＰコードとを比較して仮想コードが生成されたカウントを把握する。一実施例として、前記変換コード生成関数は、ＯＴＰコードをシードデータとして用いる特定のＯＴＰ関数であり得る。即ち、前記変換コード生成関数は、ＯＴＰコードをシードデータとして適用して現在時点（即ち、現在時間データ）に対するコードを生成する。
【０１３６】
更に、他の実施例として、前記固定コードが特定のカード類型の仮想コードに対して新たに付与される場合、前記細部コード生成部１１０は、有効期間の桁に配置される特定の数字の組み合わせを可変コードとして生成し、可変コードとＯＴＰコードを共に変換コード生成関数のシード値（即ち、変数）として利用できる。即ち、前記変換コードは、前記可変コードと前記ＯＴＰコードをシード値にして生成される。
【０１３７】
前記有効期間に配置される数字の組み合わせは、単位カウント毎に変更されて生成されるものであって、実際の有効期間として使用可能であり、現在のカウントから最大期間内に含まれる。決済システム内でエラーが発生しないためには、有効期間が現在時点から有効な期間内の値でなければならない。例えば、実際カードの有効期間が５年である場合、細部コード生成部１１０は、決済が要求された時点から５年以内の年月の組み合わせに該当する数字の組み合わせを特定の規則に従って生成する。
【０１３８】
実際カード番号探索部２３０は、複数の細部コードを基に実際カード番号の格納位置を探索する。実際カード番号探索部２３０がそれぞれの細部コードを基に実際カード番号の格納位置を探索する方式としては、多様な方式が適用される。実際カード番号探索部２３０が複数の細部コードを基に格納位置を探索するために細部コード間には相関関係を含むことができる。
【０１３９】
仮想コードが第１コード及び第２コードで構成される場合、細部コード間で相関関係を有する一実施例として、実際カード番号探索部２３０は、第１コードに対応する探索開始地点を決定し、前記探索開始地点から第２コードに相応する探索経路に沿って移動した地点を実際カード番号の格納位置として探索できる。即ち、前記細部コードは、格納位置探索の開始地点を設定する第１コード及び特定の探索方式によって、前記開始地点から前記格納位置への探索経路を設定する第２コードを含むことができる。
【０１４０】
また、他の実施例として、仮想コード生成手段１０（又は仮想コード生成装置１００）が単位カウント毎に新規の仮想コードを提供することによって、仮想コード検証装置２００は、カウント毎に変更される第１コード及び第２コードを基に探索開始地点と探索経路を設定して実際カード番号の格納位置を探索できる。
【０１４１】
更に、他の実施例として、実際カード番号探索部２３０は、相関関係を有する複数の細部コードを用いて実際カード番号の格納位置を探索するために、格納位置探索アルゴリズムを含むことができる。格納位置探索アルゴリズムは、仮想コードに含まれるそれぞれの細部コードの適用時に格納位置の探索が可能にするアルゴリズムである。例えば、仮想コードから格納位置の探索開始地点を決定する第１コードと探索開始地点からの格納位置の方向を提示する第２コードを含む場合、格納位置探索アルゴリズムは、第１コードに対応する地点で第２コードに対応する方向を指示するとき、該当位置に実際カード番号がマッチする格納位置が配置されるように調節するアルゴリズムである。格納位置探索アルゴリズムを用いることによって、仮想コード検証装置２００は、仮想コードに含まれている第１コードと第２コードが変更されても実際カード番号の格納位置又は格納位置にマッチした地点を探索できる。格納位置探索アルゴリズムは多様な方式が適用されることができ、具体的な例示は後述する。但し、格納位置探索アルゴリズムは、後述する例示に限定されない。
【０１４２】
また、他の実施例として、図９に示すように、前記仮想コード検証装置２００は、仮想コード検証部２４０を更に含む。仮想コード検証部２４０は、仮想コード検証装置２００が受信した仮想コードの真偽を判断する役割を果たす。
【０１４３】
更に、他の実施例として、仮想コード検証部２４０は、仮想コードがＯＴＰコードと抽出コードを含む場合、ＯＴＰコードを用いてユーザのカードにて現時点で生成された仮想コードかを確認する。例えば、前記ＯＴＰコードがそれぞれのユーザ又は仮想コード生成手段に対する実際カード番号が発行又は登録されたカウントに対応する値をＯＴＰ関数のシードデータとして用いて生成される場合、仮想コード検証部２４０は、受信したＯＴＰコード（即ち、受信ＯＴＰコード）を基に生成された変換コードと仮想コードから抽出された抽出コードを用いて探索されたカウントをシードデータとして用いて生成された比較ＯＴＰコードと、受信した仮想コードに含まれている受信ＯＴＰコードとを比較する。
【０１４４】
即ち、仮想コード検証部２４０は、仮想コード検証手段で探索されたカウント（即ち、仮想コードを基に実際カード番号とマッチしたものと判断されたカウント）をシードデータとして現時点から特定時間範囲内の時間データを基に算出された複数の比較ＯＴＰコードのうち、受信ＯＴＰコードと一致するものが存在するかを確認する。仮想コード検証部２４０は、現時点から特定時間範囲内の時間データを基に生成された比較ＯＴＰコードのうち、受信ＯＴＰコードと一致するものが存在すると、正常に生成された仮想コードと判断し、受信ＯＴＰコードと一致するものが存在しないと、異常な仮想コード（任意に生成された仮想コード又は該当仮想コード生成装置で以前に生成された仮想コード）と判断する。
【０１４５】
図１０は、本発明の一実施例に係る仮想コード基盤の金融取引提供方法の順序図である。
【０１４６】
図１０を参照すれば、本発明の一実施例に係る仮想コード基盤の金融取引提供方法は、仮想コード検証手段が仮想コード生成手段から提供された仮想コードを受信する段階（Ｓ２００；仮想コード受信段階）と、前記仮想コード検証手段が前記仮想コードに含まれている複数の細部コードを抽出する段階（Ｓ４００）と、前記仮想コード検証手段が複数の細部コードを基に実際カード番号の格納位置を探索する実際カード番号探索段階（Ｓ１０００；実際カード番号探索段階）と、前記格納位置から抽出された前記実際カード番号で金融取引の進行又は金融取引の進行を要求する段階（Ｓ１２００）と、を含む。以下、各段階に関する詳細な説明を記載する。但し、仮想コード生成装置１００及び仮想コード検証装置２００に対する説明過程で上述した内容に関する具体的な開示は省略する。
【０１４７】
仮想コード検証手段２０が仮想コード生成手段１０から仮想コードを受信する（Ｓ２００；仮想コード受信段階）。仮想コードは、仮想コード生成装置１００（又は仮想コード生成手段１０）で生成され、仮想コード検証手段２０に提供される。
【０１４８】
仮想コード検証手段２０は、仮想コード生成手段１０が生成した仮想コードを多様な方式で受信する。即ち、上述した仮想コード生成装置１００の多様な仮想コード提供方式が適用されることができる。
【０１４９】
例えば、カード会社サーバが前記仮想コード検証手段を含む場合、前記仮想コード受信段階（Ｓ２００）は、前記仮想コード検証手段が支払い決済サービスサーバで前記固定コードを基に特定のカード会社に対応するものとして分類された前記仮想コードを受信する。このとき、前記支払い決済サービスサーバは、金融取引端末３０やコンピュータで駆動される決済プログラムから仮想コードを受信する。
【０１５０】
仮想コード検証手段２０が前記仮想コードに含まれている複数の細部コードを抽出する（Ｓ４００）。仮想コード検証手段２０は、仮想コード生成手段１０が含む仮想コード生成関数を含むことによって、複数の細部コードを結合していた規則（即ち、細部コード結合関数）を同じく適用して複数の細部コードを抽出する。即ち、細部コード結合関数は、複数の細部コードを配列する規則に該当するものであって、仮想コード生成関数内に含まれる。
【０１５１】
一実施例として、仮想コード検証手段２０は、仮想コード内に格納位置の探索に用いられる第１コードと第２コードが直接含まれている場合、第１コードと第２コードを細部コード結合関数を用いて抽出する。即ち、第１コード及び第２コードは、仮想コード検証手段２０で実際カード番号の位置を探索するのにそれぞれ用いられる。例えば、第１コードは、仮想コード検証手段２０で実際カード番号格納位置の探索開始地点を設定するコードであり、第２コードは、特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定するコードであり得る。前記探索方式を、格納位置探索アルゴリズムにより決定することができる。探索方式の決定についての詳細な説明は、後述する実際カード番号探索段階（Ｓ１０００）で詳細に記述する。
【０１５２】
また、他の実施例として、前記仮想コード生成関数は、Ｍ個の文字でＮ桁の前記第１コード又は前記第２コードを生成する場合、異なるＭＮ個のコードを単位カウント毎に順次変更される第１コード又は第２コードとして提供する第１関数又は第２関数を含む。即ち、第１関数又は第２関数は、ＭＮ個のコードをカウントの増加によって重ならないように生成する関数であって、特定の時点に対応するカウントのＭＮ個のコードのうち、特定の１つを第１コード又は第２コードとして生成する。これにより、仮想コード生成手段１０はＭＮカウント（即ち、ＭＮ個のカウントに対応する時間長）内に同一の第１コード又は第２コードを重複して生成せず、単位カウント毎に新たな細部コード（即ち、第１コード又は第２コード）を生成し、単位カウント毎に新たな仮想コードを生成する。
【０１５３】
具体的に、仮想コード生成関数は、Ｍ個の文字でＮ桁の前記第１コード又は前記第２コードを生成することによって、ＭＮ個のコードを第１コード又は第２コードとして用いる場合、それぞれのコードを細部コード生成関数が駆動される初期時点からカウント毎にマッチする。例えば、単位カウントを１秒に設定する場合、細部コード生成関数が最初に駆動された時点から毎秒、異なるＭＮ個のコードをマッチする。そして、特定の細部コード生成関数を用いる周期又は仮想コード生成装置１００の使用周期（例えば、仮想コードを生成するスマートカードの有効期間）をＭＮカウントに該当する時間長（例えば、１カウントが１秒である場合、ＭＮ秒）よりも短い時間長に設定すると、第１コード又は第２コードは、使用周期の間に同一のコードが重複して生成されない。即ち、時間が経過するにつれてカウントが増加するとき、ユーザが特定時点で仮想コード生成手段１０に仮想コードの生成を要求する場合、仮想コード生成装置１００は、特定時点に対応するカウントにマッチしたコード値を第１コード又は第２コードとして生成できる。
【０１５４】
また、他の実施例として、同一のグループ（即ち、同一のカード会社の同一のカード類型のグループ）内でも同一の仮想コードが同一時点に生成されないように、仮想コードに含まれる第１コード又は第２コードのうち少なくとも何れか１つは、各仮想コード生成手段１０で同一時点に常に相違して存在する値（即ち、装置識別値）を反映し、生成できる。即ち、特定の時点に同一のカート類型又はカード種類である、複数の仮想コード生成手段１０で仮想コードの発行が要求される場合、各仮想コード生成手段１０が異なる仮想コードを生成するように各時点で各仮想コード生成手段１０に相違して付与される値を反映して異なる第１コード又は第２コードを生成する。
【０１５５】
例えば、仮想コードが発行会社識別コードに該当する固定コードを含む場合、仮想コード検証装置２００（例えば、カード会社サーバ）は、発行会社識別番号で区別される各カード会社のカードの類型別に仮想コード生成関数を付与する。従って、仮想コード生成手段１０は、固定コードにより異なるカード会社／カードの類型間で異なる仮想コードを生成するので、同一のカード会社の特定のカード類型のグループ内で同一の仮想コードが生成されないように細部コードを生成しなければならない。このために、各仮想コード生成手段１０が異なる仮想コードを生成するように各時点で各仮想コード生成手段１０に相違して付与される値を反映して異なる細部コードを生成する。
【０１５６】
一例として、装置識別値は、特定の細部コード生成関数が適用されるグループに特定の仮想コード生成手段１０が含まれている開始時点（例えば、仮想コード検証手段２０内に特定の細部コード生成関数が駆動された最初の時点から特定時間が経過した後、特定の仮想コード生成装置１００に前記細部コード生成関数が適用され始めた時点）から現在まで経過した時間（又はカウント数）であり得る。例えば、装置識別値として、特定のユーザの要求によって特定のカード会社のカードの類型に実際カード番号を発行し、実際カード番号が該当カード類型のグループに属するようになったカウントからの経過時間を用いることができる。例えば、仮想コードが第１コードと第２コードの結合により生成される場合、仮想コード生成関数は、実際カード番号を新たに生成した時点から経過した単位カウントを基に第２コードを生成するようにすることができる。
【０１５７】
複数の仮想コード生成手段から同時に仮想コードの発行を要求された場合にも異なるコードが生成されなければ重複コードの発生に伴う問題を解消できない。仮想コード生成手段１０を該当カード類型のグループに属するように設定するカウントを異なるようにすれば（例えば、仮想コード生成手段１０に対する実際カード番号を該当カード類型のグループに同一時点に登録できなくすれば）、仮想コード生成手段１０がグループに属するようになった時点（又はカウント）から特定時点までの経過時間は仮想コード生成装置１００毎に異なることになる。例えば、同時に特定のカード会社の特定のカード類型のカード発行要求が受信される場合、仮想コード検証手段２０は、同時に受信されたカードの発行要求を、予め定められた条件によって順序を付与して他のカウントに要求が入力されたものとして処理できる。即ち、仮想コード検証手段２０は、実際に同時に受信したカードの発行要求を少なくとも単位カウントの差が１つ発生するように異なるカウントにマッチし、これにより各仮想コード生成手段１０に対する実際カード番号が発行された時点から特定の同一時点まで経過したカウント数が常に異なるようにすることができる。
【０１５８】
従って、細部コード生成関数のうち少なくとも何れか１つは、仮想コード生成装置１００が特定のカード類型のグループに属するようになった時点（又はカウント）から特定時点までの経過時間を装置識別値として用いて、時点毎にそれぞれの仮想コード生成装置１００で生成される仮想コードが常に異なるようにすることができる。これにより、仮想コード検証手段２０がユーザを区別するためのデータを別途に受信せず、仮想コードを受信するだけで仮想コード生成手段１０の区別が可能にすることができる。
【０１５９】
また、特定の仮想コード生成装置１００が特定のカード類型のグループに属するようになった時点から経過した時間長は、時間が経過するにつれて継続して増加するので、特定の仮想コード生成装置１００で生成される細部コード（例えば、第２コード）は同一の値が生成されず、継続して異なる値が生成される。
【０１６０】
なお、更に他の実施例として、周期全体においてユーザと関係なく重複した仮想コードが発生しないように、第１コードは、第１関数が駆動される初期時点からカウント毎にマッチしたコードのうち、仮想コードの生成が要求された時点（又はカウント）に対応するコード値に設定され、第２コードは、仮想コード生成装置１００毎に同一時点に常に相違して存在する値（即ち、装置識別値）を反映して生成されるコード値に設定され、仮想コードを前記第１コードと第２コードが結合されたコード値として利用できる。第１コードはカウント毎に異なるコード値となり、第２コードは同一時点に仮想コード生成装置１００毎に異なるコード値を有するようになり、第１コードと第２コードが結合された仮想コードは、仮想コード生成装置１００及び時点と関係なく異なるコード値が出力されるようになる。
【０１６１】
また、他の実施例として、前記仮想コード生成関数は、複数の細部コードを配列する規則に該当する細部コード結合関数を含む。即ち、仮想コード生成関数は、複数の細部コードに含まれている文字を羅列又は配置する特定の規則を有していることができる。これにより、同一の仮想コード生成関数を含む仮想コード生成手段１０と仮想コード検証手段２０の場合、仮想コード生成手段１０が複数の細部コードに含まれている文字を細部コード結合関数によって配列し、仮想コード検証手段２０が同一の細部コード結合関数を用いて仮想コードから個別の細部コードを分離できる。
【０１６２】
更に、他の実施例として、前記仮想コード生成関数は、Ｍ個の文字を昇順に並べる多数の羅列規則のうち何れか１つが適用される。即ち、仮想コード生成関数は、Ｍ個の文字を昇順に並べる多様な羅列規則が適用され、適用される羅列規則に従って異なる仮想コード生成関数に分類することができる。
【０１６３】
他の実施例として、仮想コード検証手段２０は、仮想コード内に格納位置の探索に用いられる第１コードと第２コードに代えて用いられる複数の細部コードを含む場合、細部コード結合関数を用いて複数の細部コードを抽出した後、実際カード番号の格納位置の探索に用いられる第１コードと第２コードに変換する。
【０１６４】
具体的に、前記細部コード抽出段階（Ｓ４００）は、複数の細部コードとしてＯＴＰコード及び抽出コードを含む場合、前記仮想コード検証手段が前記仮想コードに特定の規則に従って含まれている固定コード及び複数の細部コードを抽出する。前記ＯＴＰコードは、仮想コード生成手段１０でＯＴＰ関数を基に特定数の数字の配列により生成されて変換コードの算出に用いられる。前記抽出コードは、前記ＯＴＰコードから算出された前記第１コードに対応し、前記仮想コードの全体数字の数から前記固定コード及び前記ＯＴＰコードを除いた数字の数の全部又は一部で生成される。
【０１６５】
また、前記細部コード抽出段階（Ｓ４００）は、図１１に示すように、仮想コード検証手段が前記ＯＴＰコードを基に変換コードを算出する段階（Ｓ４１０）を更に含む。即ち、ＯＴＰコードは、第１コード又は第２コードとして直接用いられることはできず、第１コード又は第２コードとして利用できる変換コードに変換されなければならない。
【０１６６】
例えば、カード識別番号内に固定コード（即ち、発行者識別番号）の桁及び検証数字の桁を除いた桁数とカードセキュリティコードの桁数にＯＴＰコードと抽出コードの組み合わせが配列され、数字のみを用いて細部コードを生成する場合、仮想コード生成手段１０は、第１コード又は第２コードに転換されて直接用いられる抽出コードの可用コード数を増加させるために抽出コードに多くの桁を割り当て、ＯＴＰコードに少ない数の桁を割り当てる。従って、ＯＴＰコードは、抽出コードと同一の桁数のコードである変換コードに変換される必要がある。
【０１６７】
このために、仮想コード検証手段２０は、ＯＴＰコードをシード値にして変換コードを生成する変換コード生成関数を含む。仮想コード検証手段２０は、仮想コード生成手段１０と同一の変換コード生成関数を含む。
【０１６８】
一実施例として、前記変換コード生成関数は、ＯＴＰコードのみをシード値として用いて桁数が異なるＯＴＰコードと変換コードを特定の規則により一対一でマッチングできる。
【０１６９】
また、他の実施例として、前記変換コード生成関数は、ＯＴＰコードと仮想コードが生成されたカウントをシード値として用いて変換コードを算出できる。このとき、仮想コード検証手段は、仮想コードを受信したカウントから特定範囲内のカウントでＯＴＰコード生成関数により生成されたＯＴＰ値とＯＴＰコードとを比較して仮想コードが生成されたカウントを確認できる。即ち、仮想コード検証手段２０は、前記仮想コード生成手段に含まれているのと同一のＯＴＰ関数で生成される比較コードと前記ＯＴＰコードとを比較して仮想コードが生成されたカウント値を算出し、前記変換コード算出段階（Ｓ４１０）で前記カウント値と前記ＯＴＰコードをシード値にして前記変換コード生成関数に入力して変換コードを算出する。
【０１７０】
更に、他の実施例として、仮想コード検証手段は、有効期間の桁に含まれている数字の組み合わせである可変コードをＯＴＰコードと共にシード値として用いて変換コードを生成できる。即ち、前記固定コードが特定カードの類型の仮想コードに対して実際カード番号に付与される既存の発行者識別番号ではなく、新たに付与されたコードである場合、前記細部コード抽出段階（Ｓ４００）では、有効期間の桁から可変コードを抽出し、前記可変コードと前記ＯＴＰコードを変換コード生成関数にシード値として入力して前記変換コードを生成する（Ｓ４１０；変換コード算出段階）。
【０１７１】
可変コードは、仮想コード生成手段１０で決済要求時点を基準に有効期間として有効に使用可能な数字の組み合わせを付与したものである。仮想コード生成手段１０は、抽出コードを、可変コードとＯＴＰコードの組み合わせで生成される変換コードと相関関係を有するように生成する。これにより、仮想コード検証手段は、仮想コード内の有効期間の桁の可変コードと仮想コードから抽出されたＯＴＰコードをそのまま変換コード生成関数にシード値として入力して変換コードを生成し、これを抽出コードと異なるコード（即ち、抽出コードが第２コードとして用いられる場合に第１コード）として直ぐに使用できる。
【０１７２】
また、他の実施例として、仮想コードが、仮想コード生成手段１０が含まれているグループを決定する固定コードを含む場合、前記細部コード抽出段階（Ｓ４００）では、前記仮想コード内から前記固定コードを抽出し、前記固定コードを基に前記仮想コード生成手段のカード類型のグループを判断し、前記カード類型のグループに対する前記仮想コード生成関数又は前記格納位置探索アルゴリズムを決定する。即ち、各グループ別に異なった仮想コード生成関数又は格納位置探索アルゴリズムを適用する場合、仮想コード検証手段２０は、仮想コード内の固定コードを基にグループを区別する。
【０１７３】
更に、固定コードを用いて仮想コード生成関数を決定する過程を、複数の細部コードを抽出する過程の前に実行できる。固定コードにより仮想コード生成関数が決定されなければ仮想コード生成関数内に含まれている細部コード結合関数が決定されず、複数の細部コードを抽出できない。このために、仮想コード検証手段２０が別途の関数がなくても容易に分離できるように、固定コードを、仮想コード内の固定された位置（例えば、仮想コードの最も前の特定個数の桁）に結合することができる。
【０１７４】
具体的な一実施例として、前記細部コード抽出段階（Ｓ４００）は、ＯＴＰコードと抽出コードの組み合わせが仮想コード内のカード識別番号から固定コードを除いた桁と前記カードセキュリティコードの桁に並んでいる数字列の全部又は一部に含まれる場合、前記仮想コード内のカード識別番号領域から固定コードを抽出する段階と、前記固定コードを基に特定のカードの類型に対応する細部コード結合関数を設定する段階と、前記カード識別番号から固定コードを除いた桁と前記カードセキュリティコードの桁に並んでいる数字列から前記細部コード結合関数を用いて前記ＯＴＰコードと前記抽出コードを抽出する段階とを含む。
【０１７５】
また、他の実施例として、仮想コード検証手段は、有効期間値を格納位置探索アルゴリズム又は仮想コード生成関数を区別する固定コードの下位の細部基準値として用いることができる。即ち、前記仮想コードは、実際カード番号の有効期間を同じく含み、前記仮想コード検証手段２０は、前記固定コード及び有効期間値によって異なる実際カード番号探索アルゴリズムを含む。前記実際カード番号探索アルゴリズムは、後述するように、前記第１コードと前記第２コードを基に実際カード番号が格納された位置を探索する。これにより、１つのカードの類型内で有効期間値によって（即ち、特定類型のカードを発行された年月によって）実際カード番号の探索アルゴリズムを別途に用いるので、仮想コード検証手段２０は、使用可能な抽出コードとＯＴＰコードの組み合わせを固定コードと有効期間値により分けられた複数のグループに重複して使用できるようになる。
【０１７６】
仮想コード検証手段２０が複数の細部コードを基に実際カード番号の格納位置を探索する（Ｓ１０００；実際カード番号探索段階）。複数の細部コードが第１コードと第２コード自体である場合、仮想コード検証手段２０は、仮想コードから抽出された第１コードと第２コードを直接用いて実際カード番号の格納位置を探索する。第１コードと第２コードは互いに相関関係を有しており、仮想コード検証手段２０は、第１コードと第２コードの相関関係を基に実際カード番号の格納位置を探索する。具体的な一実施例として、前記第１コードは、仮想コード検証手段で実際カード番号の格納位置を探索する開始地点を設定し、前記第２コードは、特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定する。
【０１７７】
他の実施例として、仮想コード内の細部コードが第１コードと第２コードに転換するために用いられるコード（例えば、ＯＴＰコードと抽出コード）である場合、仮想コード検証手段２０は、ＯＴＰコードにより算出された変換コードと抽出コードを仮想コード生成手段１０と同じ基準で第１コードと第２コードに適用する。例えば、仮想コード生成手段１０と仮想コード検証手段２０が同一の抽出コードを第２コードとして用い、ＯＴＰコードを基に生成される変換コードを第１コードとして用いるものと定めることができる。従って、仮想コード検証手段２０は、定められた基準によって変換コードと抽出コードを第１コードと第２コードに適用する。
【０１７８】
仮想コード内の複数の細部コードは、単位カウント毎に生成されるコードが変更（例えば、仮想コードが２つの細部コードからなる場合、ＯＴＰコード及び抽出コードは単位カウント毎に変更）され、仮想コード検証手段２０は、単位カウント毎に仮想コードが変更されても複数の細部コードに対応する第１コードと第２コードが相関関係を有することによって実際カード番号の格納位置を探索できる。
【０１７９】
仮想コードを構成する細部コード間の相関関係に関する一実施例として、仮想コードが第１コードと第２コードの結合により生成される場合、仮想コード検証手段２０は、第１コードを探索開始地点（即ち、実際カード番号の格納位置の探索を開始する地点）に設定し、第２コードを前記探索開始地点から格納位置に移動する経路に適用して格納位置を探索できる。即ち、単位カウント毎に正常に生成された仮想コードが受信されると、仮想コード検証手段２０は、第１コードに対応する開始地点から前記第２コードに相応する探索経路に沿って移動した探索地点を実際カード番号の格納位置又は格納位置にマッチした地点（例えば、別途のサーバの探索地点にマッチされている格納空間）と判断する。
【０１８０】
一実施例として、第２コードが第１コードに相応する探索開始地点から格納位置までの経路に関する情報を全て含む場合、仮想コード検証手段２０は、第１コードに相応する探索開始地点から第２コードに相応する探索経路に沿って実際カード番号の格納位置又は格納位置にマッチした地点を探索できる。
【０１８１】
他の実施例として、仮想コード検証手段２０は、単位カウント毎に実際カード番号の格納位置を仮想コードに沿うように調節する格納位置探索アルゴリズムを含むことができる。即ち、前記仮想コード検証手段２０は、単位カウント毎に実際カード番号の格納位置にマッチした地点への探索経路を調節する格納位置探索アルゴリズムを含む。前記第１コード及び前記第２コードが単位カウント毎に変更される場合、仮想コード検証手段２０は、変更される第１コード及び第２コードに沿うように格納位置探索アルゴリズムを調節できる。前記格納位置探索アルゴリズムは、多様な形態で実現することができる。
【０１８２】
一実施例として、図１３に示すように、格納位置探索アルゴリズムがｋ（ｋはＭＮ）個のコードが並んでいるトラック上をｋ角形が各コードが配置された地点に頂点が対応しながら転がり移動するものであり得る。このとき、前記実際カード番号探索段階（Ｓ１０００）は、仮想コード検証手段２０が前記仮想コード生成手段１０から受信した前記仮想コード内の第１コードに対応するトラック上の地点にｋ角形を転がり移動する段階（Ｓ１０１０）、前記第１コードに対応する位置を開始地点に設定し、前記第２コードに適用された探索方式によって第２コードを基にｋ角形の配置状態における格納位置又は前記格納位置がマッチした地点を探索する段階（Ｓ１０２０；格納位置探索段階）、前記格納位置に含まれている実際カード番号を抽出する段階（Ｓ１０３０）を含む。
【０１８３】
仮想コード検証手段２０は、図１２に示すように、仮想コード生成手段１０から受信した前記仮想コード内の第１コードに対応するトラック上の地点にｋ角形を転がり移動する（Ｓ１０１０）。格納位置探索アルゴリズムは、第１コードに該当するＭＮ個のコードが並んでいるトラックに沿って転がり移動するｋ角形（ｋはＭＮ）であり、ｋ角形の頂点が第１コードのトラック上にコードが配置される地点に対応しながら移動する。このとき、仮想コード検証手段２０は、第１コードに対応する地点にｋ角形の頂点が接するようにｋ角形を転がり移動させることができる。
【０１８４】
仮想コード検証手段２０は、図１２に示すように、前記第１コードに対応する位置を開始地点に設定し、前記第２コードに適用された探索方式によって第２コードを基にｋ角形の配置状態における格納位置又は格納位置にマッチした地点（即ち、ｋ角形の特定の頂点）を探索する（Ｓ１０２０；格納位置探索段階）。前記格納位置は、前記ｋ角形のそれぞれの頂点にマッチする。第１コードのトラック（即ち、第１トラック）とｋ角形が対応する地点が第１コードに対応する格納位置の探索開始地点となる。仮想コード検証手段２０は、探索開始地点から第２コードを基に格納位置のマッチング地点を探索する。
【０１８５】
第２コードを基にｋ角形で格納位置を探索する方式としては、多様な方式が適用される。一例として、仮想コード検証手段２０は、ｋ角形が接している第１トラック上の位置で第２コードに相応する角度（例えば、ｋ角形の頂点に向かうように１８０°をＭＮ個に分割した特定の角度）を指示することによって、仮想コードに対応する実際カード番号が格納された格納位置であるｋ角形の頂点を探索できる。
【０１８６】
また、他の例として、ｋ角形が第１トラック上の第１コードに対応する地点に接している状態で、仮想コード検証手段２０はｋ角形の中心と第１トラック上の接点を基準に中心角全体（即ち、３６０°）をＭＮ個に分割し、それぞれの角度をＭＮ個の第２コードにマッチする。このとき、ｋ角形の中心と第１トラック上の接点をつなぐ線から特定数の単位角度（即ち、３６０°／ＭＮ）を移動した線の方向がｋ角形の特定の頂点となる。従って、特定の角度に対応する第２コードが受信されると、仮想コード検証手段２０は、該当角度の方向に位置する頂点を探索できる。
【０１８７】
更に、他の例として、第２コードの特定の桁を、角度算出方向を決定するものとして使用できる。即ち、Ｎ個（Ｎは自然数）の文字を用いて第２コードを生成する場合、１つの桁（Ｄｉｇｉｔ）で角度の測定方向を決定できる。例えば、仮想コード検証手段２０は、ｋ角形の中心と第１トラック上の接点を基準に中心角全体（即ち、３６０°）を分割してそれぞれの角度に第２コードをマッチする場合、ｋ角形の中心と第１トラック上の接点をつなぐ線から左側方向に測定される角度か、右側方向に測定される角度かを１つの桁（Ｄｉｇｉｔ）の値により決定できる。
【０１８８】
一例として、格納位置探索アルゴリズムは、ｋ角形上の各頂点に角度の測定方向によって異なる２つの第２コードを１つの頂点に割り当てることができる。即ち、１つの頂点に内角により到達する時と外角により到達する時で異なる第２コードとマッチされ、他の実際カード番号を連結することができる。他の例として、格納位置探索アルゴリズムは、Ｎ個（Ｎは自然数）の文字を用いて第２コードを生成する場合にＮ-１個で角度全体（例えば、中心角を基準に分割する場合３６０°）の半分に対してマッチし、１個の桁を用いて各頂点に到達するための角度の適用方向を決定できる。
【０１８９】
第２コードを基にｋ角形で格納位置を探索する方式は、これに限定されず、第２コードに相応するｋ角形上の地点と第１トラック上の接点間を特定の割合で分ける地点を格納位置として探索する方式などの多様な方式が適用されることができる。
【０１９０】
その後、仮想コード検証手段２０は、前記格納位置に含まれている実際カード番号を抽出する（Ｓ１０３０）。即ち、仮想コード検証手段２０は、ｋ角形の頂点に対応する格納位置を探索し、格納位置内の実際カード番号を抽出する。
【０１９１】
また、他の実施例として、前記格納位置探索アルゴリズムは、仮想コードを構成する複数の細部コードを基にトラック上を移動して実際カード番号の格納位置にマッチした地点へ移動する。例えば、前記実際カード番号の格納位置にマッチした地点は、仮想コード生成手段に実際カード番号を発行したカウント（即ち、時点）に対応するトラック上の地点であり得る。
【０１９２】
具体的に、仮想コードが、仮想コード生成関数が駆動された時点から経過した時間を基に生成された第１コードと、特定の仮想コード生成手段に実際カード番号が発行された時点から経過した時間を基に生成された第２コードとを含む場合、図１４に示すように、仮想コード検証手段２０は、第１コードに対応するコード値がマッチしたトラック上のカウントを探索開始地点に設定し、第２コードに第２関数（又は抽出コードは第２コードとして用いる場合、抽出コード生成関数）の逆関数を適用することによって算出されたカウント値だけ前記探索開始地点からトラックに沿って回帰して仮想コード生成手段１０に実際カード番号を発行した時点のトラック上の地点（即ち、実際カード番号の格納位置にマッチした地点）を探索する。
【０１９３】
また、具体的な他の例として、仮想コード検証手段２０は、第１コードに対する移動トラック（即ち、第１移動トラック）と平行するように配置される第２コードに対する移動トラック（即ち、第２移動トラック）を、第１コードにより移動した探索開始地点を原点とし、第１コードによる移動方向と逆方向に配置する。そして、仮想コード検証手段２０は、第２移動トラック上で第２コードに対応するコード値の位置へ移動し、この位置に対応する第１移動トラック上の地点を実際カード番号の格納位置として探索する。
【０１９４】
その後、仮想コード検証手段２０は、前記格納位置から抽出された前記実際カード番号で金融取引の進行又は金融取引の進行を要求する（Ｓ１２００）。
【０１９５】
また、図１５に示すように、他の実施例として、特定の仮想コード生成手段１０から特定のカウントに新たに実際カード番号の生成が要求されると、前記特定のカウントにｋ角形の特定の頂点に対応する格納位置に実際カード番号を格納する段階（Ｓ１００；実際カード番号格納段階）を更に含む。前記特定の頂点は、前記特定のカウントにトラック上に接する。仮想コード検証手段２０が仮想コード生成関数及び格納位置探索アルゴリズムを駆動した後、特定の時点（又はカウント）が経過したとき、仮想コード検証手段２０は、特定の仮想コード生成手段１０に対する新規の実際カード番号の発行を受信することによって第１トラック上に接しているｋ角形の頂点にマッチした格納位置に新たに生成した実際カード番号を格納する。具体的に、仮想コード検証手段２０で仮想コード生成関数及び格納位置探索アルゴリズムが駆動されることによって、カウント毎に１つのコードずつｋ角形とトラックが接する位置が移動するようにｋ角形が転がり移動するようになり、特定のカウントに新規の実際カード番号の発行が要求されると、特定のカウントにトラックに接している頂点が実際カード番号が格納されるｋ角形上の地点として決定される。
【０１９６】
例えば、図１２に示すように、仮想コード検証手段は、Ａ時点で仮想コード生成手段Ａに対して実際カード番号を発行することによってＡ時点でトラックに接していたｋ角形の頂点に仮想コード生成手段Ａの実際カード番号を格納する。その後、カウントが経過するにつれてｋ角形はトラックに沿って転がり移動を行う。ｋ角形の回転により仮想コード生成手段Ａの実際カード番号が格納された格納位置が回転する。
【０１９７】
即ち、トラックと接するｋ角形の頂点に実際カード番号が格納された後、ｎカウントが経過しただけｋ角形が回転し、経過したｎカウント数だけ実際カード番号が格納された地点が回転する。従って、第２コードが実際カード番号が発行されたカウント（即ち、時点）から経過した単位カウント数を反映して算出されると、仮想コード検証手段２０は、第２コードを通じて仮想コードが生成された時点で実際カード番号が格納されたｋ角形上の地点を算出できる。
【０１９８】
具体的に、第１コードが仮想コード検証手段２０内で特定の仮想コード生成関数及び格納位置探索アルゴリズムが駆動された最初の時点から経過したカウント数に対応するコード値であり、第２コードが特定の仮想コード生成手段１０に対して実際カード番号を発行した後、経過したカウント数に対応するコード値である場合、仮想コード検証手段２０は、第１コードを通じて仮想コード生成手段１０で仮想コードの生成を要求した時点（例えば、Ｃ時点）を把握し、第２コードを通じて当該時点のｋ角形の配置状態で実際カード番号が格納されたｋ角形上の頂点を把握する。即ち、第１コードは、ｋ角形の特定の頂点を探索できるｋ角形の配置状態となるようにするトラック上の地点を決定するのに利用され、第２コードは、第１コードに対応するトラック上の地点にｋ角形が配置された後に実際カード番号の格納位置にマッチしたｋ角形上の頂点を探索するのに用いられる。これにより、仮想コード生成手段１０で仮想コードを生成した後、仮想コード検証手段２０に提供されるが、遅延時間（ｄｅｌａｙ ｔｉｍｅ）があっても、仮想コード検証手段２０は、仮想コードに対応する実際カード番号を正確に探索できる。
【０１９９】
また、他の実施例として、図１４に示すように、トラック上で第１コードと第２コードを基に移動する格納位置探索アルゴリズムを用いる場合、仮想コード検証手段２０は、仮想コード生成関数が駆動された時点からトラックの開始地点よりスタートしたポインタ（Ｐｏｉｎｔｅｒ）が単位カウントが経過する度にトラック上の分割単位を移動して実際カード番号の発行時点（Ａ時点）に位置するトラック上の地点を実際カード番号の格納位置にマッチした地点として決定できる。
【０２００】
更に、他の実施例として、図１６に示すように、前記仮想コード検証手段２０が前記第１コード又は前記第２コードを前記第１関数又は第２関数の逆関数を適用して正常に生成された仮想コードに該当するかを検証する段階（Ｓ５００）を更に含む。例えば、第１コードが仮想コード検証手段２０内で特定の仮想コード生成関数及び格納位置探索アルゴリズムが駆動された最初の時点から経過したカウント数に対応するコード値であり、第２コードが特定の仮想コード生成手段１０に対して実際カード番号を発行した後、経過したカウント数に対応するコード値である場合、仮想コード検証手段２０は、実際カード番号を格納位置に格納するとき、仮想コード生成関数の駆動後に実際カード番号の発行時まで経過した時間（Ｔｓ）を共に格納する。仮想コード検証手段２０は、仮想コード内の第１コードに第１関数の逆関数を適用して仮想コード生成関数の駆動時から仮想コードの生成時点までの経過時間（Ｔ１）を算出し、仮想コード内の第２コードに第２関数の逆関数を適用して実際カード番号の発行時から仮想コードの生成時点までの経過時間（Ｔ２）を算出する。その後、仮想コード検証手段２０は、Ｔ１とＴ２との差がＴｓに該当するか否かを判断して仮想コードを検証する。
【０２０１】
また、他の実施例として、図１７に示すように、前記仮想コード生成手段１０から受信した第１受信コードと前記仮想コード検証手段２０で生成された第１関数によって生成された第１生成コードとを比較する段階（Ｓ６００）、前記第１受信コードが前記第１生成コードから誤差の許容範囲内に収まれば、前記第１受信コードを前記開始地点とする第１コードに設定する段階（Ｓ７００）及び前記第１受信コードが前記第１生成コードから誤差の許容範囲を超えれば、異常コードと判断する段階（Ｓ８００）を更に含む。仮想コード生成手段１０及び仮想コード検証手段２０においては、時間が経過するにつれて同一の単位カウントが経過する。しかし、仮想コード生成手段１０と仮想コード検証手段２０に含まれているタイマ（Ｔｉｍｅｒ）の間に誤差が存在して同一時点に経過したカウント数が異なり得る。従って、タイマによる誤差を解消しつつ正常な仮想コードではない異常コードを判別するための過程が必要である。このために、仮想コード検証手段２０は、内部で第１関数により特定のカウントで生成した第１コードである第１生成コードと仮想コード生成手段１０から受信した仮想コード内の第１コードである第１受信コードとを比較し（Ｓ６００）、第１生成コードと第１受信コードとの間で発生したカウント数の差が誤差の許容範囲内に該当すれば、正常コードと判断した後、第１受信コードを基準に実際カード番号の探索過程を行い（Ｓ７００）、第１生成コードと第１受信コードとの間で発生したカウント数の差が誤差の許容範囲を超えれば異常コードと判断する（Ｓ８００）。
【０２０２】
更に、他の実施例として、前記仮想コードは特定の桁数の仮想セキュリティコードを更に含む場合、前記仮想コード検証手段が前記仮想コード生成手段から受信した受信仮想セキュリティコードと前記仮想コード検証手段内で生成された生成仮想セキュリティコードとが一致するか否かを判断して仮想コードを検証する段階を更に含む。仮想セキュリティコードは、カードセキュリティコードの桁数に対応するように生成することができ、実際カード番号のカードセキュリティコードの位置に表示することができる。
【０２０３】
一実施例として、仮想セキュリティコードは、仮想コード生成装置内の固有値及びカードセキュリティコード（例えば、ＣＶＣ／ＣＶＶ番号）を基に生成することができる。前記固有値は、それぞれの仮想コード生成装置毎に個別に付与された装置固有値である。固有値及びカードセキュリティコードは、それぞれの仮想コード生成装置１００毎に付与されるものであるので、悪意な目的で仮想コード生成装置をハッキングするために、新たに仮想コード生成装置を発行された者が個別の仮想コード生成装置に付与された固有値及びカードセキュリティコードを確認することができない。従って、仮想コード検証手段２０が仮想コード生成手段１０により固有値及びカードセキュリティコードを基に生成された仮想セキュリティコードを受信し、仮想コード生成手段１０を検証できる。
【０２０４】
また、他の実施例として、仮想コード生成手段１０は、時間値を反映して仮想セキュリティコードを生成できる。即ち、仮想コード生成手段１０は、ＯＴＰ（Ｏｎｅ Ｔｉｍｅ Ｐａｓｓｗｏｒｄ：固定されたパスワードの代わりに無作為に生成される一回限りのパスワードを用いる使用者認証）方式を用いて仮想セキュリティコードを生成できる。仮想コード検証手段２０は、仮想セキュリティコードに該当するＯＴＰ番号を仮想コード生成手段１０から受信し、仮想コード生成手段１０よりＯＴＰ番号を受信したカウントから特定範囲内のカウントで算出されたＯＴＰ番号を比較して仮想コード生成手段１０を検証する。即ち、仮想コード検証手段２０は、実際カード番号の格納位置内にカードセキュリティコード（例えば、ＣＶＣ／ＣＶＶ）と固有値を共に格納し、仮想コードが受信された時点で実際カード番号の格納空間から抽出されたカードセキュリティコード及び固有値を用いて生成されたＯＴＰ番号と仮想コード生成手段１０から受信したＯＴＰ番号とが一致するかを判断し、仮想コード生成手段１０を検証する。
【０２０５】
更に、他の実施例として、仮想セキュリティコードは、仮想コード生成手段が外部に出力せず、第１コード及び第２コードの生成に反映させることができる。図１８に示すように、仮想コード生成手段１０は、仮想コード生成装置内の固有値及びカードセキュリティコードを基に生成された仮想セキュリティコード値をカード番号の発行時点に足したカウントの第１コードを生成し、仮想セキュリティコード値に対応するカウントの第２コードを生成する。即ち、第１コード及び第２コードは、仮想コード生成装置Ａに実際カード番号が発行されたＡ時点から仮想セキュリティコード値だけ移動（ｓｈｉｆｔｉｎｇ）したカウントを基に生成される。Ａ時点から移動（ｓｈｉｆｔｉｎｇ）したカウントは、生成される仮想セキュリティコード値によって現在時点に対応するカウントよりも以前のカウントになることもでき、以後のカウントになることもできる。仮想コード検証手段２０は、受信した第１コードと第２コードを格納位置探索アルゴリズムに適用して実際カード番号の格納位置がマッチした地点を探索できる。これにより、他人が仮想コードを構成する第１コード及び第２コードが提供される順序を確認できなくなり、セキュリティが向上し得る。
【０２０６】
また、他の実施例として、仮想コード検証手段２０は、仮想セキュリティコードを基に生成された第２コードから仮想セキュリティコードを抽出した後、仮想セキュリティコード生成関数（即ち、ＯＴＰ関数）を、仮想コードを受信したカウントから特定範囲内のカウントを入力して算出されたＯＴＰ番号のうち、仮想セキュリティコードと一致する値があるか否かを確認する。仮想コード検証手段は、第２コードに第２関数の逆関数を適用して第２コードの生成に用いられた仮想セキュリティコード値（即ち、ＯＴＰ関数値）を獲得し、仮想セキュリティコード値と同一の値を算出するカウントを探索する。仮想コードの伝送時間や遅延により仮想コード生成手段で仮想セキュリティコードが生成された時点と仮想コード検証手段が仮想セキュリティコードを受信した時点の間に差が存在することにより、仮想コード検証手段２０が仮想コードを受信したカウントと仮想セキュリティコードに該当するＯＴＰ番号を生成したカウントとが一致しないこともあり得るので、仮想コード検証手段２０は、仮想コードを受信したカウントから誤差範囲を許容する。これにより、仮想コード検証手段２０は、仮想コードを伝送した仮想コード生成手段が正常に実際カード番号とマッチしているかを検証でき、セキュリティが向上し得る。また、ユーザは、仮想コードの入力時に特定の桁数の仮想セキュリティコードを入力しなくても仮想コード検証手段２０が自ら仮想セキュリティコードを探索して仮想コード生成手段１０を検証するので、仮想コード生成手段１０を容易に使用できる。
【０２０７】
更に、他の実施例として、仮想コード生成手段１０は、金融取引が要求された時点で仮想コード生成装置内の固有値及びカードセキュリティコードを基に生成された仮想セキュリティコード値を足したカウントに対応する第１コードを生成し、実際カード番号の発行時点（Ａ時点）と金融取引の要求時点（Ｃ時点）間のカウントの差に仮想セキュリティコード値を足したカウントに対応する第２コードを生成する。即ち、仮想コード生成手段１０が第１コードと第２コードを生成する式は以下のように表される。
【０２０８】
［数１］
第１コード＝ｆ１（Ｃ時点のカウント＋仮想セキュリティコード）
第２コード＝ｆ２（Ｃ時点のカウント−Ａ時点のカウント＋仮想セキュリティコード）
（Ａ時点：実際カード番号の発行時点、Ｃ時点：金融取引要求時点、仮想セキュリティコード：ＯＴＰ番号）
【０２０９】
仮想コード検証手段２０は、受信した仮想コード内の第１コード及び第２コードを基に実際カード番号の格納位置を探索し、実際カード番号の格納位置内に共に含まれているカードセキュリティコード（即ち、ＣＶＶ又はＣＶＣ）及び仮想コード生成装置１００の固有値を抽出する。仮想コード検証手段２０は、カードセキュリティコード及び固有値を基に金融取引の要求を受信した時点から特定のカウント範囲内の仮想セキュリティコード（即ち、ＯＴＰ番号）を生成する。その後、仮想コード検証手段２０は、実際カード番号の発行時点（Ａ時点）より金融取引要求の受信時点から特定のカウント範囲内の各カウントまでのカウント数と仮想セキュリティコード（即ち、ＯＴＰ番号）の和が第２コードに対応するカウント数（即ち、第２コードに第２関数の逆関数を適用した値）と同一のカウントが存在するかを確認する。仮想コード検証手段は、第１コード及び第２コードを基に実際カード番号の格納位置がマッチした地点を探索することによって実際カード番号の発行時点を把握できる。これにより、仮想コード検証手段２０は、仮想コードを提供した仮想コード生成手段１０が正常に発行されたか否かを確認できる。
【０２１０】
また、他の実施例として、仮想コード検証手段２０は、仮想コードにＯＴＰコードと抽出コードを複数の細部コードとして含む場合、第１コードとして抽出コードが用いられると、決済の要求時点と一致しない可能性のある抽出コードに対応するカウントに移動（ｓｈｉｆｔｉｎｇ）し、ＯＴＰコードを基に算出される変換コードが第１コードとして用いられると、決済の要求時点と一致しない可能性のある変換コードに対応するカウントに移動（ｓｈｉｆｔｉｎｇ）する。トラック上で第１コードに対応するカウントは、現在時点よりも以前であることもでき、以後であることもできる。このとき、ＯＴＰコードが仮想コードから直接抽出されるので、仮想コード検証手段２０は、仮想コードが受信されたカウントから特定範囲内のカウントでＯＴＰ関数を基に生成された比較コード（即ち、ＯＴＰ値）のうち、仮想コードから抽出されたＯＴＰコードと同一のものが存在するかを判断して、正常に発行されたか否かを確認する。
【０２１１】
以上で前述した本発明の一実施例に係る仮想コード基盤の金融取引提供方法は、ハードウェアであるコンピュータと結合されて実行されるためにプログラム（又はアプリケーション）で実現され媒体に格納できる。
【０２１２】
上述したプログラムは、前記コンピュータがプログラムを読み込んでプログラムで実現した前記方法を実行させるために、前記コンピュータのプロセッサ（ＣＰＵ）が前記コンピュータの装置インターフェースを介して読み取られるＣ、Ｃ＋＋、ＪＡＶＡ（登録商標）、機械語などのコンピュータ言語でコード化されたコード（Ｃｏｄｅ）を含むことができる。このようなコードは、前記方法を実行する必要な機能を定義した関数などと関連する機能的なコード（Ｆｕｎｃｔｉｏｎａｌ Ｃｏｄｅ）を含むことができ、前記機能を前記コンピュータのプロセッサが所定の手順通りに実行させるのに必要な実行手順関連の制御コードを含むことができる。また、このようなコードは、前記機能を前記コンピュータのプロセッサが実行させるのに必要な追加の情報やメディアが前記コンピュータの内部又は外部メモリのどの位置（アドレスナンバー）で参照されなければならないかに対するメモリ参照関連のコードを更に含むことができる。また、前記コンピュータのプロセッサが前記機能を実行させるために遠隔（Ｒｅｍｏｔｅ）にある任意の他のコンピュータやサーバなどと通信が必要な場合、コードは、前記コンピュータの通信モジュールを用いて遠隔にある任意の他のコンピュータやサーバなどとどのように通信すべきか、通信時にどんな情報やメディアを送受信すべきかなどに対する通信関連のコードを更に含むことができる。
【０２１３】
前記格納される媒体は、レジスタ、キャッシュ、メモリなどのように短い時間にデータを格納する媒体でなく、半永久的にデータを格納し、機器により読み取り（ｒｅａｄｉｎｇ）が可能な媒体を意味する。具体的には、前記格納される媒体の例としては、ＲＯＭ、ＲＡＭ、ＣＤ-ＲＯＭ、磁気テープ、フロッピーディスク、光データ格納装置などが挙げられるが、これに制限されない。即ち、前記プログラムは、前記コンピュータが接続できる多様なサーバ上の多様な記録媒体又はユーザの前記コンピュータ上の多様な記録媒体に格納できる。また、前記媒体は、ネットワークに繋がっているコンピュータシステムに分散され、分散方式でコンピュータが読み取れるコードを格納できる。
【０２１４】
以上、添付の図面を参照して本発明の実施例を説明したが、本発明が属する技術分野における通常の技術者は、本発明がその技術的思想や必須な特徴を変更することなく、他の具体的な形態で実施できるということが理解できるだろう。従って、以上で記述した実施例はあらゆる面で例示的なものであり、制限的ではないものとして理解すべきである。
【図１】
2021533416.tif 000003
【図２】
2021533416.tif 000004
【図３】
2021533416.tif 000005
【図４】
2021533416.tif 000006
【図５】
2021533416.tif 000007
【図６】
2021533416.tif 000008
【図７】
2021533416.tif 000009
【図８】
2021533416.tif 000010
【図９】
2021533416.tif 000011
【図１０】
2021533416.tif 000012
【図１１】
2021533416.tif 000013
【図１２】
2021533416.tif 000014
【図１３】
2021533416.tif 000015
【図１４】
2021533416.tif 000016
【図１５】
2021533416.tif 000017
【図１６】
2021533416.tif 000018
【図１７】
2021533416.tif 000019
【図１８】
2021533416.tif 000020
【手続補正書】
【提出日】令和3年2月22日(2021.2.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１つ以上の細部コードを生成する細部コード生成部と、
前記１つ以上の細部コードを組み合わせて仮想コードとして生成する仮想コード生成部と、
前記仮想コードを仮想コード検証手段に提供するために外部に出力する仮想コード提供部とを含み、
前記仮想コードは、固定コード、ＯＴＰコード及び抽出コードを含む複数のコードを特定の規則に従って結合して生成され、
前記固定コードは、前記仮想コード内に予め定められた位置に含まれ、実際カード番号に対応するカード会社又はカードの類型を判断するコードであり、
前記ＯＴＰコードは、ＯＴＰ関数を基に特定数の数字の配列により生成され変換コードの算出に用いられ、
前記抽出コードは、前記仮想コードの全体数字の数から前記固定コード及び前記ＯＴＰコードを除いた数字の数の全部又は一部として生成されるものであって、前記ＯＴＰコードから算出された前記変換コードに対応し、
前記変換コード又は前記抽出コードは、前記仮想コード検証手段で設定された条件によって第１コード又は第２コードとしてそれぞれ用いられ、
前記第１コードは、前記仮想コード検証手段で実際カード番号の格納位置を探索する開始地点を設定し、
前記第２コードは、特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定し、
前記ＯＴＰコード及び前記抽出コードは単位カウント毎に変更され、
前記単位カウントは、
特定の時間間隔として設定され、前記時間間隔が経過するにつれて変更される、
仮想コード生成装置。
【請求項２】
前記ＯＴＰコードは、実際カード番号内のカードセキュリティコードの数字の数で生成され、
前記抽出コードは、前記仮想コードの全体数字の数から前記固定コード、前記ＯＴＰコード及び有効期間を除いた数字の数の全部又は一部として生成されることを特徴とする、請求項１に記載の仮想コード生成装置。
【請求項３】
前記変換コードは、前記抽出コードと同一の桁数で生成されることを特徴とする、請求項２に記載の仮想コード生成装置。
【請求項４】
前記変換コードは、特定の規則に従って前記ＯＴＰコードに一対一でマッチすることを特徴とする、請求項３に記載の仮想コード生成装置。
【請求項５】
前記変換コードは、前記ＯＴＰコードと仮想コードの生成が要求されたカウント値を変換コード生成関数にシード値として入力して算出されることを特徴とする、請求項３に記載の仮想コード生成装置。
【請求項６】
前記仮想コード生成部は、
前記ＯＴＰコードと前記抽出コードを細部コード結合関数によって組み合わせて、
カード識別番号から固定コードを除いた桁とカードセキュリティコードの桁に並ぶことを特徴とする、請求項１に記載の仮想コード生成装置。
【請求項７】
前記固定コードが特定のカード類型の仮想コードに対して新たに付与される場合、
前記細部コード生成部は、
有効期間の桁に配置される特定の数字の組み合わせを可変コードとして生成することを特徴とし、
前記変換コードは、
前記可変コードと前記ＯＴＰコードをシード値にして生成され、
前記数字の組み合わせは、単位カウント毎に変更され生成されるものであって、実際の有効期間として使用可能であり、現在のカウントから最大期間内に含まれることを特徴とする、請求項１に記載の仮想コード生成装置。
【請求項８】
前記固定コードが特定のカード類型の実際カード番号に用いられる場合、
特定のカウントに生成された仮想コードが特定のカードの類型で実際カード番号として使用可能なコード列であるか否かを判断する仮想コード確認部を更に含むことを特徴とする、請求項１に記載の仮想コード生成装置。
【請求項９】
前記仮想コード確認部は、
前記仮想コード内のカード識別番号、有効期間及びサービスコードを実際カード番号の生成規則に入力して比較カードセキュリティコードを生成し、
前記仮想コード内のカードセキュリティコードの桁に配置された数字である生成カードセキュリティコードと前記比較カードセキュリティコードとを比較して一致すると、仮想コードの再生成を要求することを特徴とする、請求項８に記載の仮想コード生成装置。
【請求項１０】
仮想コード検証手段が仮想コード生成手段から提供された仮想コードを受信する仮想コード受信段階と、
前記仮想コード検証手段が前記仮想コードに特定の規則に従って含まれている固定コード、及び、ＯＴＰコード及び抽出コードを含む複数の細部コードを抽出する細部コード抽出段階と、
前記仮想コード検証手段が前記ＯＴＰコードを基に変換コードを算出する変換コード算出段階と、
前記仮想コード検証手段が、前記抽出コード又は前記変換コードが設定された条件によってそれぞれ用いられる第１コード及び第２コードを基に実際カード番号の格納位置を探索する実際カード番号探索段階と、
前記仮想コード検証手段が前記格納位置から抽出された前記実際カード番号で金融取引の進行又は金融取引の進行を要求する段階とを含み、
前記仮想コード検証手段と前記仮想コード生成手段は、同一の仮想コード生成関数を含み、
前記固定コードは、前記仮想コード内に予め定められた位置に含まれ、前記実際カード番号に対応するカード会社又はカードの類型を判断するコードであり、
前記ＯＴＰコードは、ＯＴＰ関数を基に特定数の数字の配列により生成され変換コードの算出に用いられ、
前記抽出コードは、前記ＯＴＰコードから算出された前記第１コードに対応し、前記仮想コードの全体数字の数から前記固定コード及び前記ＯＴＰコードを除いた数字の数の全部又は一部として生成され、
前記第１コードは、仮想コード検証手段で実際カード番号の格納位置を探索する開始地点を設定し、
前記第２コードは、特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定し、
前記ＯＴＰコード及び前記抽出コードは単位カウント毎に変更され、
前記単位カウントは、特定の時間間隔として設定され、前記時間間隔が経過するにつれて変更される、仮想コード基盤の金融取引提供方法。
【請求項１１】
前記細部コード抽出段階は、
前記仮想コード内のカード識別番号領域から固定コードを抽出する段階と、
前記固定コードを基に特定のカードの類型に対応する細部コード結合関数を設定する段階と、
カード識別番号から固定コードを除いた桁とカードセキュリティコードの桁に並んでいる数字列から前記細部コード結合関数を用いて前記ＯＴＰコードと前記抽出コードを抽出する段階とを含むことを特徴とする、請求項１０に記載の仮想コード基盤の金融取引提供方法。
【請求項１２】
前記細部コード抽出段階は、
前記仮想コード生成手段に含まれているのと同一のＯＴＰ関数で生成される比較コードと前記ＯＴＰコードとを比較して、仮想コードが生成されたカウント値を算出し、
前記変換コード算出段階は、
前記カウント値と前記ＯＴＰコードをシード値にして変換コード生成関数に入力して変換コードを算出することを特徴とする、請求項１１に記載の仮想コード基盤の金融取引提供方法。
【請求項１３】
前記仮想コードは、実際カード番号の有効期間を含み、
前記仮想コード検証手段は、前記固定コード及び有効期間値によって異なる実際カード番号探索アルゴリズムを含み、
前記実際カード番号探索アルゴリズムは、前記第１コードと前記第２コードを基に実際カード番号が格納された位置を探索することを特徴とする、請求項１０に記載の仮想コード基盤の金融取引提供方法。
【請求項１４】
前記固定コードが特定のカード類型の仮想コードに対して新たに付与される場合、
前記細部コード抽出段階は、
有効期間の桁から可変コードを抽出し、
前記変換コード算出段階は、
前記可変コードと前記ＯＴＰコードを変換コード生成関数にシード値として入力して前記変換コードを生成することを特徴とする、請求項１０に記載の仮想コード基盤の金融取引提供方法。
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図１
【補正方法】変更
【補正の内容】
【図１】
2021533416.tif 000021
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】図２
【補正方法】変更
【補正の内容】
【図２】
2021533416.tif 000022
【手続補正４】
【補正対象書類名】図面
【補正対象項目名】図３
【補正方法】変更
【補正の内容】
【図３】
2021533416.tif 000023
【手続補正５】
【補正対象書類名】図面
【補正対象項目名】図４
【補正方法】変更
【補正の内容】
【図４】
2021533416.tif 000024
【手続補正６】
【補正対象書類名】図面
【補正対象項目名】図６
【補正方法】変更
【補正の内容】
【図６】
2021533416.tif 000025
【手続補正７】
【補正対象書類名】図面
【補正対象項目名】図７
【補正方法】変更
【補正の内容】
【図７】
2021533416.tif 000026
【手続補正８】
【補正対象書類名】図面
【補正対象項目名】図８
【補正方法】変更
【補正の内容】
【図８】
2021533416.tif 000027
【手続補正９】
【補正対象書類名】図面
【補正対象項目名】図９
【補正方法】変更
【補正の内容】
【図９】
2021533416.tif 000028
【手続補正１０】
【補正対象書類名】図面
【補正対象項目名】図１０
【補正方法】変更
【補正の内容】
【図１０】
2021533416.tif 000029
【手続補正１１】
【補正対象書類名】図面
【補正対象項目名】図１１
【補正方法】変更
【補正の内容】
【図１１】
2021533416.tif 000030
【手続補正１２】
【補正対象書類名】図面
【補正対象項目名】図１２
【補正方法】変更
【補正の内容】
【図１２】
2021533416.tif 000031
【手続補正１３】
【補正対象書類名】図面
【補正対象項目名】図１３
【補正方法】変更
【補正の内容】
【図１３】
2021533416.tif 000032
【手続補正１４】
【補正対象書類名】図面
【補正対象項目名】図１４
【補正方法】変更
【補正の内容】
【図１４】
2021533416.tif 000033
【手続補正１５】
【補正対象書類名】図面
【補正対象項目名】図１５
【補正方法】変更
【補正の内容】
【図１５】
2021533416.tif 000034
【手続補正１６】
【補正対象書類名】図面
【補正対象項目名】図１６
【補正方法】変更
【補正の内容】
【図１６】
2021533416.tif 000035
【手続補正１７】
【補正対象書類名】図面
【補正対象項目名】図１７
【補正方法】変更
【補正の内容】
【図１７】
2021533416.tif 000036
【手続補正１８】
【補正対象書類名】図面
【補正対象項目名】図１８
【補正方法】変更
【補正の内容】
【図１８】
2021533416.tif 000037
【国際調査報告】
2021533416.tif 000038
2021533416.tif 000039
2021533416.tif 000040
2021533416.tif 000041