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