(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-01
(45)【発行日】2023-03-09
(54)【発明の名称】仮想コード提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード提供方法及び仮想コード提供プログラム
(51)【国際特許分類】
G06F 21/60 20130101AFI20230302BHJP
【FI】
G06F21/60
(21)【出願番号】P 2019199345
(22)【出願日】2019-10-31
(62)【分割の表示】P 2019005590の分割
【原出願日】2017-09-21
【審査請求日】2020-09-01
(31)【優先権主張番号】10-2017-0100952
(32)【優先日】2017-08-09
(33)【優先権主張国・地域又は機関】KR
【前置審査】
(73)【特許権者】
【識別番号】517002580
【氏名又は名称】株式会社センストーン
【氏名又は名称原語表記】SSENSTONE INC.
【住所又は居所原語表記】15F., Frontone, 122 Mapo-daero, Mapo-gu, Seoul,04213 Korea
(74)【代理人】
【識別番号】110001139
【氏名又は名称】SK弁理士法人
(74)【代理人】
【識別番号】100130328
【氏名又は名称】奥野 彰彦
(74)【代理人】
【識別番号】100130672
【氏名又は名称】伊藤 寛之
(72)【発明者】
【氏名】ユ、チャン フン
【審査官】青木 重徳
(56)【参考文献】
【文献】特開2016-152623(JP,A)
【文献】特開2008-204248(JP,A)
【文献】特開2006-195837(JP,A)
【文献】特開平07-078184(JP,A)
【文献】特表2015-507277(JP,A)
【文献】韓国公開特許第10-2014-0101322(KR,A)
【文献】竹森 敬祐 ほか,セキュアブート+認証による車載制御システムの保護,電子情報通信学会技術研究報告,日本,電子情報通信学会,2014年09月12日,Vol. 114 No. 225,p. 47-54
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/60
JSTPlus/JMEDPlus/JST7580(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
仮想コード検証手段が仮想コード生成手段により複数の細部コードを組み合わせて生成された仮想コードを受信する段階と、
前記仮想コード検証手段が前記仮想コードに含まれている複数の細部コードを抽出する段階と、
前記仮想コード検証手段が前記複数の細部コード間で有する相関関係に基づいて探索経路を演算して実際コードの格納位置を探索する段階と、
を含み、
前記複数の細部コードは、特定の時間間隔に設定された単位カウント毎に変更され、
前記仮想コードは、固定コードを更に含み、
前記仮想コード検証手段は、受信した仮想コードに含まれている固定コードを抽出して前記仮想コード生成手段が含まれているグループを判断し、前記グループに相応する仮想コード生成関数又は格納位置探索アルゴリズムを決定
し、
前記複数の細部コードのうちの何れか1つは、装置識別値に基づいて生成され、
前記装置識別値は、前記仮想コード生成手段に異なるように付与される値である、仮想コード検証方法。
【請求項2】
前記仮想コード検証手段は、前記複数の細部コードのうちの1つ以上の細部コードと対応する検索経由ポイントを決定した後、前記検索経由ポイントから前記複数の細部コード間の相関関係に基づいて演算して前記実際コードの格納位置を探索することを特徴とする請求項1に記載の仮想コード検証方法。
【請求項3】
前記複数の細部コードは、第1コード及び第2コードを含み、
前記仮想コード検証手段に含まれている格納位置探索アルゴリズムは、前記第1コードに対応する経由地点を経由し、前記経由地点から前記第1コード及び前記第2コードの相関関係に基づいて演算して前記実際コードの格納位置を探索することを特徴とする請求項2に記載の仮想コード検証方法。
【請求項4】
前記仮想コード生成手段は、仮想コード生成関数を含み、
前記仮想コード生成関数は、前記複数の細部コードを特定の規則に従って結合する細部コード結合関数を含み、
前記仮想コード検証手段は、同一の細部コード結合関数を用いて仮想コードに含まれている細部コードを抽出することを特徴とする請求項3に記載の仮想コード検証方法。
【請求項5】
前記仮想コード検証手段が前記仮想コード生成手段から受信した受信仮想コードと前記仮想コード検証手段内で生成された生成仮想コードが一致するか否かを判断して仮想コードを検証する段階を更に含み、
前記仮想コード生成手段と前記仮想コード検証手段は、同一の仮想コード生成関数を含むことを特徴とする請求項1に記載の仮想コード検証方法。
【請求項6】
仮想コード生成手段が複数の細部コードを生成する段階と、
前記仮想コード生成手段が前記複数の細部コードを組み合わせて仮想コードを生成する段階と、
前記仮想コード生成手段が前記仮想コードを外部に提供する段階と、
を含み、
前記複数の細部コードは、仮想コード検証手段が実際コードの格納位置を探索するための相関関係を有し、単位カウント毎に変更され、
前記仮想コードは、固定コードを更に含み、
前記仮想コード検証手段は、受信した仮想コードに含まれている固定コードを抽出して前記仮想コード生成手段が含まれているグループを判断し、前記グループに相応する仮想コード生成関数又は格納位置探索アルゴリズムを決定
し、
前記複数の細部コードのうちの何れか1つは、装置識別値に基づいて生成され、
前記装置識別値は、前記仮想コード生成手段に異なるように付与される値であることを特徴とするに記載の仮想コード生成方法。
【請求項7】
前記仮想コード検証手段は、前記複数の細部コードのうちの1つ以上の細部コードと対応する検索経由ポイントを決定した後、前記検索経由ポイントから前記複数の細部コード間の相関関係に基づいて演算して前記実際コードの格納位置を探索することを特徴とする請求項6に記載の仮想コード生成方法。
【請求項8】
ハードウェアであるコンピュータと結合され、請求項1~請求項7の何れか一項に記載の方法を実行させるために媒体に格納された、仮想コード検証方法を提供するプログラム。
【請求項9】
仮想コード生成手段により複数の細部コードを組み合わせて生成された仮想コードを受信する仮想コード受信部と、
前記仮想コードに含まれている複数の細部コードを抽出する細部コード抽出部と、
前記複数の細部コード間で有する相関関係に基づいて探索経路を演算して実際コードの格納位置を探索する実際コード探索部と、
を含み、
前記複数の細部コードは、特定の時間間隔に設定された単位カウント毎に変更され、
前記仮想コードは、固定コードを更に含み、
仮想コード検証手段は、受信した仮想コードに含まれている固定コードを抽出して前記仮想コード生成手段が含まれているグループを判断し、前記グループに相応する仮想コード生成関数又は格納位置探索アルゴリズムを決定
し、
前記複数の細部コードのうちの何れか1つは、装置識別値に基づいて生成され、
前記装置識別値は、前記仮想コード生成手段に異なるように付与される値である、仮想コード検証装置。
【請求項10】
複数の細部コードを生成する細部コード生成部と、
前記複数の細部コードを組み合わせて仮想コードを生成する仮想コード生成部と、
前記仮想コードを外部に提供する仮想コード提供部と、
を含み、
前記複数の細部コードは、仮想コード検証手段が実際コードの格納位置を探索するための相関関係を有し、単位カウント毎に変更され、
前記仮想コードは、固定コードを更に含み、
前記仮想コード検証手段は、受信した仮想コードに含まれている固定コードを抽出して前記仮想コード生成手段が含まれているグループを判断し、前記グループに相応する仮想コード生成関数又は格納位置探索アルゴリズムを決定
し、
前記複数の細部コードのうちの何れか1つは、装置識別値に基づいて生成され、
前記装置識別値は、前記仮想コード生成手段に異なるように付与される値である仮想コード生成装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想コード提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード提供方法及び仮想コード提供プログラムに関し、より詳細には、各時点毎に重複しないように生成される仮想コードを生成し、これに基づいて実際コードを探索するシステム、方法及びプログラムと各時点毎に重複しない仮想コードを生成する装置及びこれに基づいて実際コードを探索する装置に関する。
【背景技術】
【0002】
コード状のデータは、多くの領域において利用されている。決済時に用いられるカード番号、口座番号だけでなく、ユーザ識別のためのIPIN番号、マイナンバーなどがコード状のデータである。
【0003】
しかし、このようなコードデータを用いる過程で流出事故が多く発生する。カード番号の場合、カードの表面に実際のカード番号がそのまま記載されており、他人に視覚的に流出され、マグネチックを用いた決済時にカード番号がそのままPOS装置に伝達されて漏えいする。
【0004】
実際コードがそのまま流出しないようにするために、仮想コードを利用しようとする試みが多かったが、仮想コードに対応する実際コードを探索するために、ユーザを識別するためのデータが必要であった。例えば、OTP(One Time Password)の場合、毎回、一度限り有効なパスワードが生成されるが、ユーザに付与されたアルゴリズム判断のためにログイン手順が必要であり、多様な領域に適用され難い。
【0005】
そのため、実際コードに対応するユーザや装置に関する識別情報を提供せず、リアルタイムに変動する仮想コードを基に実際コードを探索できる発明が必要である。
【先行技術文献】
【特許文献】
【0006】
【文献】韓国登録特許10-1316466号(2013.10.01)
【発明の概要】
【発明が解決しようとする課題】
【0007】
そこで、本発明は上記事情に鑑みてなされたものであって、その目的は、仮想コード生成手段を識別するための別途の手順なしに、仮想コードを基に実際コードを探索できる仮想コード提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード提供方法及び仮想コード提供プログラムを提供することにある。
【0008】
また、本発明の他の目的は、全ての仮想コード生成手段において全周期中に重複して生成されず、単位カウント間隔で新規に生成される仮想コードを提供する仮想コード提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード提供方法及び仮想コード提供プログラムを提供することにある。
【0009】
本発明が解決しようとする課題は、以上で言及した課題に制限されず、言及されていない他の課題は、以下の記載から通常の技術者に明確に理解を得ることができるであろう。
【課題を解決するための手段】
【0010】
本発明の一実施形態に係る仮想コード提供方法は、仮想コード検証手段が仮想コード生成手段より仮想コードを受信し、前記仮想コードは、複数の細部コードを特定の規則に従って結合して生成される仮想コード受信段階と、前記仮想コード検証手段が前記仮想コードに含まれている複数の細部コードを抽出する段階と、前記仮想コード検証手段が複数の細部コードを基に実際コードの格納位置を探索する実際コード探索段階とを含み、前記仮想コード検証手段と前記仮想コード生成手段は、同一の仮想コード生成関数を含むものであり、前記細部コードは、格納位置探索の開始地点を設定する第1コードと、特定の探索方式によって、前記開始地点から前記格納位置への探索経路を設定する第2コードとを含み、前記第1コード及び前記第2コードは、単位カウント毎に変更され、前記仮想コード検証手段は、単位カウント毎に生成される前記第1コード及び前記第2コードと一致するように実際コードの格納位置を調節する格納位置探索アルゴリズムを含み、単位カウント毎に正常に生成された仮想コードが受信されれば、前記第1コードに対応する前記開始地点から前記第2コードに相応する探索経路に沿って移動した地点が前記格納位置として算出されることを特徴とし、前記単位カウントは特定の時間間隔に設定され、前記時間間隔が経過するにつれて変更される。
【0011】
また、他の実施形態として、前記仮想コード生成関数は、M個の文字でN桁の前記第1コード又は前記第2コードを生成する場合、異なるMN個のコードを単位カウント毎に順次変更される第1コード又は第2コードとして提供する第1関数又は第2関数を含む。
【0012】
更に、他の実施形態として、前記第2コードは、前記実際コードを新規に生成した時点から経過した単位カウントを基に生成される。
【0013】
また、他の実施形態として、前記実際コード探索段階は、前記格納位置探索アルゴリズムがk(kはMN)個のコードが並んだトラック上をk角形が各コードが配置された地点に頂点が対応しながら転がり移動する場合、前記仮想コード生成手段から受信された前記仮想コード内の第1コードに対応するトラック上の地点にk角形を転がり移動する段階と、前記第1コードに対応する位置を探索開始地点に設定し、前記第2コードに適用された探索方式によって第2コードを基にk角形の配置状態における格納位置を探索し、前記格納位置は、前記k角形のそれぞれの頂点にマッチされるものである格納位置探索段階と、前記格納位置に含まれている実際コードを抽出する段階とを含む。
【0014】
更に、他の実施形態として、特定の仮想コード生成手段から特定のカウントに新規で実際コードの生成が要請されれば、前記特定のカウントにk角形の特定の頂点に対応する格納位置に実際コードを格納し、前記特定の頂点は、前記特定のカウントにトラック上に接している実際コード格納段階を更に含む。
【0015】
また、他の実施形態として、前記仮想コード生成関数は、複数の細部コードを配列する規則に該当する細部コード結合関数を含む。
【0016】
更に、他の実施形態として、前記細部コード生成関数は、M個の文字を昇順に並べる特定の羅列規則が適用されたものであり、前記文字は、アルファベットの大文字、アルファベットの小文字、数字及び特殊文字のうち少なくとも1つを含む。
【0017】
また、他の実施形態として、前記仮想コードは、前記仮想コード生成手段が含まれているグループを判断する固定コードを更に含み、前記細部コード抽出段階は、前記仮想コード内で前記固定コードを抽出し、前記固定コードを基に前記仮想コード生成手段のグループを判断して、前記グループに対する前記仮想コード生成関数又は前記格納位置探索アルゴリズムを決定することを特徴とする。
【0018】
更に、他の実施形態として、前記仮想コードは特定の桁数のセキュリティコードを更に含み、前記仮想コード検証手段が前記仮想コード生成手段から受信した受信セキュリティコードと前記仮想コード検証手段内で生成された生成セキュリティコードとが一致するか否かを判断して仮想コードを検証する段階を更に含む。
【0019】
また、他の実施形態として、前記セキュリティコードは、仮想コード生成手段の固有識別値及び生成時間データを関数値にして生成されるものであり、前記仮想コード検証手段は、仮想コード生成手段に対する実際コードの生成時に前記固有識別値を受信して格納することを特徴とする。
【0020】
更に、他の実施形態として、前記仮想コード検証手段が前記第1コード又は前記第2コードを前記第1関数又は第2関数の逆関数を適用して正常に生成された仮想コードに該当するかを検証する段階を更に含む。
【0021】
また、他の実施形態として、前記仮想コード生成手段から受信された第1受信コードと前記仮想コード検証手段で生成された第1関数によって生成された第1生成コードとを比較する段階と、前記第1受信コードが前記第1生成コードから誤差の許容範囲内に収まれば、前記第1受信コードを前記開始地点とする第1コードに設定する段階と、前記第1受信コードが前記第1生成コードから誤差の許容範囲を超えれば、異常コードと判断する段階とを更に含む。
【0022】
本発明の他の実施形態に係る仮想コード提供プログラムは、ハードウェアと結合して前述した仮想コード提供方法を実行し、媒体に格納される。
【0023】
本発明の更に他の実施形態に係る仮想コード生成装置は、1つ以上の細部コードを生成する細部コード生成部と、前記1つ以上の細部コードを組み合わせて仮想コードとして生成する仮想コード生成部と、前記仮想コードを仮想コード検証装置に提供するために外部に出力する仮想コード提供部とを含み、前記仮想コードは、複数の細部コードを特定の規則に従って結合して生成されるものであり、前記細部コードは、前記仮想コード検証装置で格納位置の探索開始地点を設定する第1コードと、特定の探索方式によって、仮想コード検証装置で前記開始地点から前記格納位置への探索経路を設定する第2コードとを含むものであり、前記第1コード及び前記第2コードは、単位カウント毎に変更され、前記仮想コード検証装置は、単位カウント毎に生成される前記第1コード及び前記第2コードと一致するように実際コードの格納位置を調節する格納位置探索アルゴリズムを含み、単位カウント毎に正常に生成された仮想コードが受信されれば、前記第1コードに対応する前記探索開始地点から前記第2コードに相応する探索経路に沿って移動した地点が前記格納位置として算出されることを特徴とし、前記単位カウントは、特定の時間間隔に設定され、前記時間間隔が経過するにつれて変更される。
【0024】
本発明の別の実施形態に係る仮想コード検証装置は、仮想コード生成装置から仮想コードを受信する受信部と、前記仮想コードに含まれている複数の細部コードを抽出する細部コード抽出部と、複数の細部コードを基に実際コードの格納位置を探索する実際コード探索部とを含み、前記仮想コード検証装置と前記仮想コード生成装置は、同一の仮想コード生成関数を含むものであり、前記仮想コードは、複数の細部コードを特定の規則に従って結合して生成されるものであり、前記細部コードは、実際コード探索部で格納位置探索の探索開始地点を設定する第1コードと、特定の探索方式によって、実際コード探索部で前記開始地点から前記格納位置への探索経路を設定する第2コードとを含むものであり、前記実際コード探索部は、前記仮想コード生成装置で単位カウント毎に変更されて提供される前記第1コード及び前記第2コードと一致するように実際コードの格納位置を調節する格納位置探索アルゴリズムを含み、単位カウント毎に正常に生成された仮想コードが受信されれば、前記第1コードに対応する前記探索開始地点から前記第2コードに相応する探索経路に沿って移動した地点が前記格納位置として算出されることを特徴とし、前記単位カウントは、特定の時間間隔に設定され、前記時間間隔が経過するにつれて変更される。
【発明の効果】
【0025】
本発明によれば、以下のような多様な効果を奏する。
【0026】
第一に、単位カウント毎に仮想コードが新たに生成され、重複する仮想コードが定められた全周期中に登場しないので、仮想コードの流出時にも実際コードが漏れないという効果を提供する。
【0027】
第二に、仮想コード生成装置と実際コードを用いる装置(例えば、金融会社のサーバ、IOTデバイスなど)にのみ仮想コードの生成及び実際コードの探索のためのアルゴリズムが追加されればよいので、既存に実際コードを用いるプロセスをそのまま維持できる。例えば、スマートカード又はAPPカードに重複して生成されない仮想のカード番号を生成して提供される場合、POS装置と決済代行会社(Payment Gateway)のサーバはそのまま維持され、仮想のカード番号をカード会社のサーバに伝達し、カード会社のサーバが仮想のカード番号に相応する実際のカード番号を探索して決済を行える。これにより、セキュリティを高めるために既存のプロセス内で変更されなければならない部分を最小化でき、ユーザは、セキュリティ向上のための別途の段階を実行しなくてもよい。
【0028】
第三に、仮想コード生成関数を実現する方式が非常に多様であり、グループ別、適用分野別に異なる仮想コード生成関数を適用できる。
【図面の簡単な説明】
【0029】
【
図1】本発明の一実施形態に係る仮想コード提供システムの構成図である。
【
図2】本発明の一実施形態に係る仮想コード生成装置の構成図である。
【
図3】本発明の実施形態に係る仮想コード検証装置の構成図である。
【
図4】本発明の実施形態に係る仮想コード検証装置の構成図である。
【
図5】本発明の一実施形態に係る仮想コード提供方法の順序図である。
【
図6】本発明の一実施形態によってk角形の転がり移動を通じて実際コードの格納位置を探索する格納位置探索アルゴリズムに対する例示図である。
【
図7】本発明の一実施形態に係るk角形の転がり移動に伴う実際コードの探索過程を含む仮想コード提供方法の順序図である。
【
図8】本発明の一実施形態に係る実際コードを発行して格納位置に格納する過程を更に含む仮想コード提供方法の順序図である。
【
図9】本発明の一実施形態に係る仮想コードの検証過程を更に含む仮想コード提供方法の順序図である。
【
図10】本発明の一実施形態に係る仮想コードの異常コードか否かの判断過程を更に含む仮想コード提供方法の順序図である。
【発明を実施するための形態】
【0030】
以下、添付の図面を参照して本発明の好適な実施形態を詳細に説明する。本発明の利点及び特徴、そしてそれらを達成する方法は、添付の図面と共に詳細に後述されている実施形態を参照すれば明確になる。しかし、本発明は以下で開示される実施形態に限定されるものではなく、互いに異なる多様な形態で実現できる。但し、本実施形態は本発明の開示を完全なものにし、本発明が属する技術分野において通常の知識を有する者に発明の範疇を完全に理解させるために提供されるものであり、本発明は請求の範囲の範疇により定義されるに過ぎない。明細書全体に亘って同一の参照符号は、同一の構成要素を示す。
【0031】
他の定義がなければ、本明細書において用いられる全ての用語(技術及び科学的用語を含む)は、本発明が属する技術分野において通常の知識を有する者に共通して理解され得る意味として使用されることができる。また、一般に用いられる辞典に定義されている用語は、明白に特に定義されていない限り、理想的に又は過度に解釈されない。
【0032】
本明細書において用いられた用語は、実施形態を説明するためのものであり、本発明を制限しようとするものではない。本明細書において、単数形は特に言及しない限り複数形も含む。明細書において用いられる「含む(comprises)」及び/又は「含んでいる(comprising)」は、言及された構成要素以外に1つ以上の他の構成要素の存在又は追加を排除しない。
【0033】
本明細書において「文字」は、コードを構成する構成要素であって、アルファベットの大文字、アルファベットの小文字、数字及び特殊文字などの全部又は一部を含む。
【0034】
本明細書において「コード」は、文字が並んだ文字列を意味する。
【0035】
本明細書において「実際コード」は、実際に用いられるコードを意味する。例えば、コードがカード番号である場合、実際コードはカード会社で特定のユーザのカードに発行される実際のカード番号になり得る。
【0036】
本明細書において「仮想コード」は、実際コードに繋がるように仮に生成されるコードを意味する。
【0037】
本明細書において「細部コード」は、仮想コードに含まれる一部のコードを意味する。即ち、仮想コードが別途に生成された複数のコードを結合して生成される場合、細部コードは別途に生成されて仮想コードを構成する個別のコードを意味する。
【0038】
本明細書において「単位カウント」は特定の時間間隔に設定され、前記時間間隔が経過するにつれて変更されるものと定義された単位である。例えば、1カウントは特定の時間間隔(例えば、1.5秒)に設定され使用されることができる。
【0039】
本明細書において「仮想コード生成関数」は、仮想コードを生成するのに用いられる関数を意味する。
【0040】
本明細書において「スマートカード」は、カード番号を変更して出力できるカードを意味する。
【0041】
本明細書において「転がり移動」は、対象体が回転しながら並進運動を行うことを意味する。即ち、「転がり移動」は回転運動と並進運動を共に行いながら移動するものであって、回転する対象体の各地点が移動する軸上に順に接しながら移動することを意味する。
【0042】
以下、図面を参照して、本発明の実施形態に係る仮想コード提供システム、仮想コード生成装置100、仮想コード検証装置200、仮想コード提供方法及び仮想コード提供プログラムについて詳細に説明する。
【0043】
図1は、本発明の一実施形態に係る仮想コード提供システムの構成図である。
【0044】
図1を参照すると、本発明の一実施形態に係る仮想コード提供システムは、仮想コード生成手段10及び仮想コード検証手段20を含む。
【0045】
仮想コード生成手段10は、仮想コード検証手段20が実際コードを探索できる情報を含む仮想コードを生成する役割を果たす。即ち、仮想コード生成手段10は、仮想コード生成関数によって仮想コードを生成する。このとき、仮想コード検証手段20で仮想コードを基に実際コードを探索するので、仮想コード生成手段10は実際コードを格納しないこともあり得る。これにより、仮想コード生成手段10のハッキングなどによって実際コードが流出するのを防止できる。仮想コード生成関数についての具体的な説明は後述する。
【0046】
仮想コード検証手段20は、仮想コード生成手段10から提供される仮想コードを基に実際コードを探索する役割を果たす。仮想コード検証手段20は、仮想コード生成手段10から受信された仮想コードから実際コードを探索するために仮想コード生成手段10と同一の仮想コード生成関数を格納する。仮想コード検証手段20が仮想コードを基に実際コードを探索する方式に関する具体的な説明は後述する。
【0047】
また、仮想コード検証手段20は、仮想コードが仮想コード生成手段10で正常に生成されたコードか否かを検証する役割を果たす。仮想コード検証手段20が仮想コードの正常か否かを判断する方式に関する具体的な説明は後述する。
【0048】
仮想コード検証手段20は、仮想コード生成手段10から多様な方式を通じて仮想コードの伝達を受けることができる。一実施形態として、仮想コード検証手段20は、無線通信を介して仮想コード生成手段10から仮想コードを受信できる。また、他の実施形態として、仮想コード検証手段20は、仮想コード生成手段10により生成され、ユーザに提供された仮想コードをユーザから直接入力を受けることができる。
【0049】
また、他の実施形態として、仮想コード検証手段20は、仮想コード生成手段10から仮想コードを受信した他のサーバから伝達を受けることができる。例えば、仮想コード生成手段10が決済カードであり、仮想コードが実際のカード番号に代わる仮想のカード番号であり、仮想コード検証手段20が仮想コード生成関数を含むカード会社のサーバである場合、仮想コード生成手段10であるカードでPOSで決済を行うと、仮想コード検証手段20はPOSから仮想のカード番号を受け取った決済代行会社のサーバから仮想のカード番号(即ち、仮想コード)を受け取る。即ち、仮想コード検証手段20(即ち、カード会社のサーバ)は、既存の決済プロセスを用いて仮想コード生成手段10から実際のカード番号の代わりに仮想のカード番号を受信できる。
【0050】
更に、一実施形態として、前記仮想コード検証手段20と前記仮想コード生成手段10は、同一の仮想コード生成関数を含む。仮想コード検証手段20と仮想コード生成手段10が同一の仮想コード生成関数を含むことにより、仮想コード検証手段20は仮想コード生成手段10で生成された仮想コード内の複数の細部コードを正常に抽出できる。また、仮想コード検証手段20は、受信した仮想コードが正常な仮想コード生成手段10で生成されて受け取ったものなのかを検証できる。即ち、仮想コード検証手段20が仮想コード生成手段10と同一の条件でコード(即ち、仮想コード又は特定の細部コード)の生成を行った後、仮想コード生成手段10で受信したコード(即ち、仮想コード又は特定の細部コード)を比較してみることによって検証を行える。
【0051】
図2は、本発明の他の実施形態に係る仮想コード生成装置100の構成図である。
【0052】
図2を参照すると、本発明の他の実施形態に係る仮想コード生成装置100は、細部コード生成部110、仮想コード生成部120及び仮想コード提供部130を含む。
【0053】
本発明の実施形態に係る仮想コード生成装置100は、仮想コード生成手段10に該当するプログラムが内蔵(Embeded)されているか、仮想コード生成手段10に該当するプログラムが設置された装置であり得る。例えば、仮想コードが仮想のカード番号である場合、仮想コード生成装置100は、仮想コード生成手段10に該当するプログラムが内蔵されたスマートカードであり得る。また、例えば、仮想コードが仮想のカード番号である場合、仮想コード生成装置100は、仮想コード生成手段10に該当するAPPカードアプリケーションがインストールされた移動端末であり得る。更に、例えば、仮想コードがモノのインターネット(Internet of Things;IOT)デバイスに対する仮想認証キーである場合、仮想コード生成装置100は、仮想コード生成手段10に該当するプログラムが内蔵された制御装置(例えば、リモコン)であり得る。仮想コード生成装置100は、前記記載された例示以外に他の装置(例えば、他のデバイス又はサーバ)で仮想コードを生成して伝送しなければならない多様な場合に適用されることができる。
【0054】
仮想コード生成部120は、1つ以上の細部コードを組み合わせて仮想コードとして生成する役割を果たす。一実施形態として、前記仮想コードは、複数の細部コードを特定の規則に従って結合して生成されるものである。仮想コード生成関数は、複数の細部コードを組み合わせる規則(即ち、細部コード結合関数)を含む。
【0055】
複数の細部コードを結合して1つの仮想コードを生成する方式としては、多様な方式が適用され得る。前記細部コード結合関数の一例として、仮想コード生成部120は、N桁の第1コードとN桁の第2コードを交互に配置する方式で仮想コードを生成できる。また、他の例として、細部コード結合関数は第1コードの後に第2コードを結合する関数であり得る。仮想関数に含まれる細部コードが増えることによって細部コード結合関数も多様に生成され得る。
【0056】
細部コード生成部110は、1つ以上の細部コードを生成する役割を果たす。仮想コード生成関数は、それぞれの細部コード生成関数を含む。例えば、仮想コード生成関数は、複数の細部コード生成関数を用いて複数の細部コードを生成し、複数の細部コードを結合する細部コード結合関数を用いて仮想コードを生成する。
【0057】
一実施形態として、細部コード生成部110は、細部コード生成関数として第1関数と第2関数を含み、第1コード及び第2コードを生成する。第1コードと第2コードは、仮想コード検証手段20内で実際コードの格納位置を探索するための相関関係を有するが、仮想コード生成装置100は、セキュリティを高めるために第1コードを生成する第1関数と第2コードを生成する第2関数を細部コード生成関数として含むだけであって、第1コードと第2コードの相関関係に対するデータを含まないこともあり得る。
【0058】
また、他の実施形態として、仮想コードは、グループを区別するための変更されない固定コードを複数の細部コードと共に含むことができる。仮想コード検証手段20は、複数のグループにそれぞれ対応する複数の仮想コード生成関数を含むことができ、仮想コード生成装置100から仮想コードが受信されれば、該当仮想コード生成装置100が属するグループの仮想コード生成関数を基に実際コードの探索を行わなければならない。固定コードが含まれず、全体コードが単位カウントが経過する度に新規に生成される細部コードのみを含むとなると、別途の情報なしに仮想コード生成装置100が属するグループを判断することができない。従って、仮想コード生成装置100は、グループを識別するための変更されない固定コードを含む。
【0059】
例えば、実際コードが実際のカード番号であり、特定のカード会社のカード類型別に仮想コード生成関数が付与される場合、仮想コード生成装置100は、カード番号のうち、カード会社及びカード類型を示す前の6桁を固定コードとして用いて、仮想コード検証手段20は、仮想コード生成装置100と同一の仮想コード生成関数が適用される特定のカード会社の特定のカード類型を識別することができる。
【0060】
また、例えば、マイナンバーが実際コードであり、同じ生年月日を有する人を同一のグループと判断する場合、仮想コード生成装置100は、マイナンバーの13桁全体のうち、生年月日に該当する6桁は固定コードに設定し、残りの7桁を仮想コード生成関数に基づいて単位カウント毎に新規に生成できる。仮想コード検証手段20は、仮想コードを受信して固定コード6桁を基にグループを判断する。
【0061】
更に、一実施形態として、仮想コードはセキュリティコードを更に含む。例えば、仮想コードは、複数の細部コードとセキュリティコードを含む。前記セキュリティコードは、特定のセキュリティコード生成関数を基に生成されるコードであって、正常な仮想コードか否かを検証するために用いられる。前記セキュリティコード生成関数は、時間データと仮想コード生成手段の固有値を関数値として用いて特定の桁数のセキュリティコードを生成する。
【0062】
セキュリティコードを活用して仮想コードの正常か否かを判断する過程の一例は、次の通りである。仮想コード検証手段20は、実際コードの発行時に仮想コード生成装置100の固有値(例えば、スマートカード内のチップ固有値又はAPPカードがインストールされたスマートフォンの固有値など)を受信して実際コードの格納位置に共に格納するか、実際コードの格納位置に繋がった別途の格納空間に格納できる。仮想コード生成装置100が、セキュリティコードが結合された仮想コードを生成して仮想コード検証手段20に提供すれば、仮想コード検証手段20は、細部コードを基に仮想コードが生成された時間データを獲得し、内部に格納された特定の仮想コード生成装置100の固有値を抽出して時間データと共にセキュリティコード生成関数に適用してセキュリティコードを算出する。仮想コード検証手段20は、仮想コード生成装置100で受信したセキュリティコード(即ち、受信セキュリティコード)と内部に格納されたセキュリティコード生成関数で算出したセキュリティコード(即ち、生成セキュリティコード)とが一致するかを判断する。仮想コード検証手段20は、受信セキュリティコードと生成セキュリティコードとが一致すれば、正常な仮想コードと判断して実際コードを提供する。
【0063】
例えば、実際コードがカードに含まれている番号(例えば、カード番号、有効期間及びカードセキュリティ番号)である場合(即ち、仮想コード生成装置がスマートカードである場合)、セキュリティコードは、カードセキュリティ番号として生成され得る。即ち、仮想コード生成装置100は、セキュリティコード生成関数を用いてカードセキュリティ番号に該当する3桁又は4桁をセキュリティコードとして生成し、カードの使用時にカードセキュリティ番号でセキュリティコードを入力すれば、仮想コード検証手段20はセキュリティコードを検証する過程を行う。
【0064】
また、他の例として、セキュリティコード生成関数は各カウント毎に異なるl桁(lは自然数)のコードを生成して関数値として共に適用できる。即ち、セキュリティコード生成関数は、l桁のランダムコード生成関数を含むことができる。
【0065】
更に、一実施形態として、仮想コードが第1コード及び第2コードの特定の規則による組み合わせで生成される場合、第1コードと第2コードは、実際コードが格納された格納位置を探索するためのそれぞれの役割を果たすことができる。例えば、第1コードは格納位置探索の開始地点を設定し、第2コードは特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定する。即ち、仮想コード生成装置100から単位カウント毎に正常に生成された仮想コードが提供されると、仮想コード検証手段20は第1コードに対応する探索開始地点から第2コードに相応する探索経路に沿って移動した地点を実際コードの格納位置として判断する。仮想コードを構成する第1コードと第2コードを基に格納位置を探索する具体的な方式は後述する。
【0066】
細部コード生成部110が細部コードを生成する方式の一実施形態として、細部コード生成部110は単位カウント毎に新たな細部コードを生成し、これにより、仮想コード生成装置100は単位カウント毎に新たな仮想コードを生成する。単位カウント毎に新規に生成される仮想コードは重複して生成されない。具体的に、細部コード生成部110は、単位カウント毎に新規に生成される仮想コードが特定のユーザ又は特定の仮想コード生成装置100に定められた期間に重複して生成されないだけでなく、特定のグループに属するユーザ間でも重複して生成されないように設定される。
【0067】
仮想コードの重複生成を防止する具体的な一実施形態として、M個の文字でN桁の前記第1コード又は前記第2コードを生成する場合、仮想コード生成関数に含まれる細部コード生成関数はMN個のコードを第1コード又は第2コードとして生成でき、それぞれのコードを細部コード生成関数が駆動される初期時点から各カウント毎にマッチする。例えば、単位カウントを1秒に設定する場合、細部コード生成関数が最初に駆動された時点から毎秒、異なるMN個のコードをマッチする。そして、特定の細部コード生成関数を用いる周期又は仮想コード生成装置100の使用周期(例えば、仮想のカード番号を生成するスマートカードの有効期間)をMNカウントに該当する時間長(例えば、1カウントが1秒である場合、MN秒)よりも短い時間長に設定すれば、第1コード又は第2コードは、使用周期の間に同一のコードが重複して生成されない。即ち、時間が経過するにつれてカウントが増加するとき、ユーザが特定時点で仮想コード生成装置100に仮想コードの生成を要請する場合、仮想コード生成装置100は、特定時点に対応するカウントにマッチしたコード値を第1コード又は第2コードとして生成できる。
【0068】
仮想コードの重複生成を防止する具体的な他の実施形態として、仮想コード生成装置100の使用周期が経過すれば、第1コード又は第2コードを生成する関数(即ち、第1関数又は第2関数)を変更するか、第1コードと第2コードのマッチング関係を変更して以前の使用周期と異なる仮想コードが生成されるようにする。仮想コードが第1関数により生成される第1コードと第2関数により生成される第2コードが結合される場合、第1コード生成関数又は第2コード生成関数が変更されると、仮想コード生成装置100は、第1コード又は第2コードが登場する順序が以前の使用周期と変わることにより、以前周期と異なる仮想コードを生成する仮想コード生成関数を新規の使用周期へ適用できる。また、仮想コード生成装置100は、以前の使用周期で用いられた仮想コードと同一のコードが新規の使用周期内の各カウントの仮想コードとして登場しないように(即ち、第1関数によって生成される第1コードと第2関数によって生成される第2コードのマッチング関係が、新規の使用周期の全てのカウントで、以前の使用周期内に含まれているマッチング関係の中に含まれないように)第1関数と第2関数を選択できる。即ち、MN個のコードを1回ずつ適用できる使用周期を経過した後、仮想コード生成関数の調節又は更新を通じて以前の使用周期と重なる仮想コードが生成されない新規の使用周期の仮想コード生成関数を適用できる。
【0069】
このとき、仮想コード生成手段10及び仮想コード検証手段20は、仮想コード生成関数を更新する規則を格納できる。即ち、仮想コード生成手段10及び仮想コード検証手段20は、複数の第1関数と第2関数を各使用周期に適用する順序又は規則を格納できる。
【0070】
また、仮想コードの重複生成を防止する具体的な他の実施形態として、同一のグループに属するユーザ間でも同一の仮想コードが同一時点に生成されないように、仮想コードに含まれる第1コード又は第2コードのうち何れか1つは少なくとも仮想コード生成装置100毎に同一時点に常に相違して存在する値(即ち、装置識別値)を反映し、生成できる。一実施形態として、装置識別値は、特定の細部コード生成関数が適用されるグループに特定の仮想コード生成装置100が含まれている時点(例えば、仮想コード検証手段20内に特定の細部コード生成関数が駆動された最初の時点から特定時間が経過した後、特定の仮想コード生成装置100に前記細部コード生成関数が適用され始めた時点)から現在まで経過した時間(又はカウント数)であり得る。1つのグループ内に複数の仮想コード生成装置100が含まれる場合、仮想コード生成装置100を該当グループに属するように設定するカウントを異なるようにすれば(即ち、仮想コード生成装置100が該当グループに同時に属せなくすれば)、仮想コード生成装置100がグループに属するようになった時点(又はカウント)から特定時点までの経過時間は各仮想コード生成装置100毎に異なることになる。従って、細部コード生成関数のうち少なくとも何れか1つは、仮想コード生成装置100がグループに属するようになった時点(又はカウント)から特定時点までの経過時間を装置識別値として用いて、各時点毎にそれぞれの仮想コード生成装置100で生成される仮想コードが異なるようにすることができる。これにより、仮想コード検証手段20がユーザを区別するためのデータを別途に受信せず、仮想コードを受信するだけで仮想コード生成装置100の区別が可能にすることができる。
【0071】
例えば、仮想コード生成装置100が出力されるカード番号を変更できるカード(例えば、スマートカード又はAPPカードなど)である場合、特定のカード会社の特定のカード類型が1つのグループに設定され、カード会社のサーバ内の特定の仮想コード検証手段20が該当グループに対して駆動する。第1ユーザが仮想コード検証手段20の駆動時からA時間だけ経過した時点で第1仮想コード生成装置100(即ち、第1ユーザの仮想コード生成装置100)にカードの発行を要請し、第2ユーザが仮想コード検証手段20の駆動時からB(BはAよりも大きい値)時間だけ経過した時点で第2仮想コード生成装置100(即ち、第2仮想コード生成装置100)にカードの発給を要請すると、第1仮想コード生成装置100及び第2仮想コード生成装置100は、第1ユーザと第2ユーザから仮想コードの生成を要請されたC(CはBよりも大きい値)時間にカードの発行時点から経過した時間長が常に異なることになる。従って、細部コード生成関数は、各仮想コード生成装置100にカードが発行された時点から経過した時間長を変数として適用することによって、同一時点に同一の仮想のカード番号が生成されないようにすることができる。
【0072】
また、特定の仮想コード生成装置100が特定のグループに属するようになった時点から経過した時間長は時間が経過するにつれて増加し続けるので、特定の仮想コード生成装置100で生成される細部コード(例えば、第2コード)は同一の値が生成されず、継続して異なる値が生成される。
【0073】
更に、仮想コードの重複生成を防止する具体的な更に他の実施形態として、周期全体においてユーザと関係なく重複した仮想コードが発生しないように、第1コードは仮想コード検証手段20内で第1関数が駆動される初期時点から各カウント毎にマッチされたコードのうち、仮想コードの生成が要請された時点(又はカウント)に対応するコード値に設定し、第2コードは仮想コード生成装置100毎に同一時点に常に異なって存在する値(即ち、装置識別値)を反映させて生成されるコード値に設定し、仮想コードを前記第1コードと第2コードが結合されたコード値として利用できる。第1コードは各カウント毎に異なるコード値となり、第2コードは同一時点に仮想コード生成装置100毎に異なるコード値を有するようになり、第1コードと第2コードが結合された仮想コードは、全ての仮想コード生成装置100と全ての時点で異なるコード値が出力されるようになる。
【0074】
また、他の実施形態として、前記仮想コード生成関数(又は細部コード生成関数)は、M個の文字を昇順に並べる多数の羅列規則のうち何れか1つが適用される。即ち、仮想コード生成装置100(即ち、仮想コード生成手段10)は、仮想コード生成関数内に含まれる細部コード生成関数にM個の文字を昇順に並べる規則を多様に適用して行える。例えば、アルファベットの大文字を昇順に並べる羅列規則は、一般的な順序であるA、B、C、...、Zの順となってもよく、A、C、B、...、Zの順となってもよい。仮想コード生成関数で羅列規則が変わることによって仮想コード生成関数が駆動される初期時点から各カウントに順にコードがマッチされる順序が変わることになる。仮想コード検証手段20は、同一の羅列規則に従って生成されたコードが各カウントにマッチされているか、同一の羅列規則自体を仮想コード生成関数に含んで格納できる。従って、各グループ別の仮想コード生成関数が異なる細部コード結合関数を含むか、異なる文字羅列規則を含んで、各グループ別に異なる仮想コード生成関数を有するようにすることができる。
【0075】
仮想コード提供部130は、前記仮想コードを仮想コード検証装置200に提供するために外部に出力する役割を果たす。仮想コード提供部130は、仮想コードを外部に提供できる多様な構成を含むことができる。仮想コード提供部130は、無線通信モジュール、近距離通信モジュール、ICチップ、磁場発生部、ディスプレイ部などの全部又は一部を含む。
【0076】
無線インターネットモジュールとは、無線インターネットへの接続のためのモジュールのことをいい、移動端末100に内蔵又は外蔵されることができる。無線インターネット技術としては、WLAN(Wireless LAN)(Wi-Fi)、Wibro(Wireless broadband)、Wimax(World Interoperability for Microwave Access)、HSDPA(High Speed Downlink Packet Access)、LTE(Long Term Evolution)、LTE-A(Long Term Evolution-Advanced)などが利用されることができる。
【0077】
近距離通信モジュールとは、近距離通信のためのモジュールを指す。近距離通信(short range communication)技術としてブルートゥース(Bluetooth)、BLE(Bluetooth Low Energy)、ビーコン(Beacon)、RFID(Radio Frequency Identification)、NFC(Near Field Communication)、赤外線通信(Infrared Data Association;IrDA)、UWB(Ultra Wideband)、ZigBeeなどが利用されることができる。
【0078】
仮想コード提供部130は、仮想コード生成装置100がPOS装置に仮想コード(即ち、仮想のカード番号)を伝達するカードに該当する場合、磁場発生部又はICチップを含むことができる。磁場発生部は、カードデータを磁気信号の形態で出力してカードリーダに伝達する機能を行う。磁場発生部は、電流の流れを通じて磁場を形成してカード情報磁気信号を出力する磁気セルを1つ以上含むことができる。磁場発生部は、カードのPCB板の特定の長辺に隣接するように前記長辺に沿ってPCB板の上面又は下面に露出するように具備することができる。
【0079】
ICチップは、PCB板内に実装され、IC方式のカードリーダの端子と接触してデータの交換を行うようにすることができる。即ち、ICチップは、仮想コード生成部120で生成された仮想コードをIC方式のカードリーダに伝達する。
【0080】
ディスプレイ部は、液晶ディスプレイ(liquid crystal display)、薄膜トランジスタ液晶ディスプレイ(thin film transistor-liquid crystal display)、有機発光ダイオード(organic light-emitting diode)、フレキシブルディスプレイ(flexible display)、電子ペーパー(E-paper)のうち少なくとも1つを含むこともできる。
【0081】
ディスプレイ部は、仮想コード生成部120で生成した仮想コードを視覚的に外部に出力する。これにより、仮想コード生成装置100のユーザは、リアルタイムに生成された仮想コードを視覚的に確認でき、仮想コード検証手段20に視覚的に確認した仮想コードを直接入力できる。
【0082】
また、ユーザは、ディスプレイ部に表示された仮想コードを文字メッセージなどの多様な経路を通じて仮想コードを伝達できる。実際コードを伝送するのではなく、仮想コード検証手段20で実際コードを探索できる仮想コード(具体的に、継続的に変更・生成されるコード)を伝達するので、ユーザが文字メッセージなどを通じてコードを伝送する際に実際コードの流出を恐れないようにすることができる。
【0083】
図3は、本発明の一実施形態に係る仮想コード検証装置200の構成図である。
【0084】
図3を参照すると、本発明の更に他の一実施形態に係る仮想コード検証装置200は、仮想コード受信部210、細部コード抽出部220及び実際コード探索部230を含む。仮想コード検証装置200は電子装置であってもよく、サーバ装置であってもよい。例えば、仮想コード検証装置200は、実際コードに代わる仮想コードを生成して伝送する制御装置(即ち、仮想コード生成装置100に繋がるIOTデバイスが該当し得る。IOTデバイスは、仮想コードを基に実際コードの格納位置を探索し、特定の格納位置で実際コードが抽出されれば駆動され得る。
【0085】
また、例えば、仮想コード検証装置200は、特定のユーザが保有している特定カード会社の特定の類型のカードに対する仮想のカード番号を受信した後、実際のカード番号を探索して決済を進めるカード会社のサーバであり得る。具体的に、カード決済の場合、仮想コード検証装置200は、POS装置及び決済代行会社のサーバを介して仮想コード生成装置100で生成した仮想コードを受信する。
【0086】
仮想コード受信部210は、仮想コード生成装置100から仮想コードを受信する役割を果たす。一実施形態として、仮想コード受信部210は、無線通信部(例えば、無線通信モジュール又は近距離通信モジュール)を含み、仮想コード生成装置100から無線通信を介して仮想コードを受信できる。また、他の実施形態として、仮想コード受信部210は、他のサーバとの通信を介して仮想コード生成装置100で生成された仮想コードの伝達を受けることができる。
【0087】
また、他の実施形態として、仮想コード受信部210は、ユーザ入力部であり得る。即ち、仮想コード受信部210は、仮想コード生成装置100で視覚的に出力された仮想コードをユーザから直接入力を受けることができる。例えば、仮想コード生成装置100が仮想のカード番号を生成してカードの表面上に出力する装置(例えば、スマートカード)である場合、ユーザは仮想コード生成装置100に視覚的に表示された仮想コードを確認して仮想コード検証装置200のユーザ入力部に直接入力できる。
【0088】
具体的に、仮想コード生成装置100は、カード番号16桁のうち、変更可能な桁数(例えば、カード会社及びカードの類型を判断する、前の6桁及び最後のdigitを除外した桁)にディスプレイ部を備え、仮想コードが生成されれば、変更可能なコードの桁に文字を出力する。ユーザは変更されないコードと変更されるコード全体を仮想コードにして仮想コード検証装置200のユーザ入力部(即ち、仮想コード受信部210)に入力できる。
【0089】
細部コード抽出部220は、前記仮想コードに含まれている複数の細部コードを抽出する。前記仮想コードは、複数の細部コードを特定の規則に従って結合して生成されるものである。仮想コード検証装置200の細部コード抽出部220は、特定グループの仮想コード生成装置100と同一の細部コード結合関数を含み、細部コード抽出部220は、細部コード結合関数を適用して仮想コードから複数の細部コードを抽出できる。例えば、仮想コード生成装置100で2つの細部コード(即ち、第1コード及び第2コード)が結合された仮想コードを生成する場合、細部コード抽出部220は、仮想コードの文字配列で細部コード結合関数を適用して第1コード及び第2コードを分離できる。
【0090】
実際コード探索部230は、複数の細部コードを基に実際コードの格納位置を探索する。実際コード探索部230がそれぞれの細部コードを基に実際コードの格納位置を探索する方式としては、多様な方式が適用され得る。実際コード探索部230が複数の細部コードを基に格納位置を探索するために細部コード間には相関関係を含むことができる。
【0091】
仮想コードが第1コード及び第2コードで構成される場合、細部コード間で相関関係を有する一実施形態として、実際コード探索部230は第1コードに対応する探索開始地点を決定し、前記探索開始地点から第2コードに相応する探索経路に沿って移動した地点を実際コードの格納位置として探索できる。即ち、前記細部コードは、格納位置探索の開始地点を設定する第1コード及び特定の探索方式によって、前記開始地点から前記格納位置への探索経路を設定する第2コードを含むことができる。
【0092】
また、他の実施形態として、仮想コード生成手段10(又は仮想コード生成装置100)が単位カウント毎に新規な仮想コードを提供することによって、仮想コード検証装置200は、格納位置の探索のための第1コードと第2コードが単位カウントの経過時毎に変更される。仮想コード検証装置200は、各カウント毎に変更される第1コード及び第2コードを基に探索開始地点と探索経路を設定して実際コードの格納位置を探索できる。
【0093】
また、他の実施形態として、実際コード探索部230は相関関係を有する複数の細部コードを用いて実際コードの格納位置を探すために、格納位置探索アルゴリズムを含むことができる。格納位置探索アルゴリズムは、仮想コードに含まれるそれぞれの細部コードの適用時に格納位置の探索が可能なようにするアルゴリズムである。例えば、仮想コードから格納位置の探索開始地点を決定する第1コードと探索開始地点からの格納位置の方向を提示する第2コードを含む場合、格納位置探索アルゴリズムは第1コードに対応する地点で第2コードに対応する方向を指示するとき、該当位置に実際コードがマッチされる格納位置が配置されるように調節するアルゴリズムである。格納位置探索アルゴリズムを用いることによって、仮想コード検証装置200は、仮想コードに含まれている第1コードと第2コードが変更されても実際コードの格納位置又は格納位置にマッチされた地点を探索できる。格納位置探索アルゴリズムは多様な方式が適用され得、具体的な例示は後述する。但し、格納位置探索アルゴリズムは、後述される例示に限定されない。
【0094】
例えば、後述するように、
図6を参照すると、格納位置探索アルゴリズムが第1コードに該当するM
N個のコードが並んたトラックに沿って転がり移動するk角形(kはM
N)であり、k角形の頂点が第1コードのトラック上にコードが配置される地点に対応しながら移動する場合、k角形の各頂点が実際コードの格納位置とマッチされ、第1コードのトラック(即ち、第1トラック)とk角形が対応する地点が第1コードに対応する格納位置の探索開始地点になり得る。このとき、実際コード探索部230は細部コード抽出部220から抽出された第1コードに対応する地点にk角形の頂点が接するようにk角形を転がり移動させることができる。これにより、実際コード探索部230はk角形が接している第1トラック上の位置で第2コードに相応する角度(例えば、k角形の頂点に向かうように180度をM
N個に分割した特定の角度)で指示することによって、仮想コードに対応する実際コードが格納された格納位置であるk角形の頂点を探索できる。
【0095】
具体的に、
図6に示すように、仮想コード検証装置200は、第1コードに対応する地点にk角形を転がり移動(即ち、k角形の各頂点とトラック上の各地点が順に接するようにしながら移動)させる。その後、仮想コード検証装置200は、第2コードに相応する角度の方向を指示して格納位置に相応する頂点を探索する。例えば、仮想コード生成手段Bは実際コードの発行を受けた後、2カウントが経過したので、仮想コード生成手段Bは2カウントを関数値で適用した第2コードを生成して仮想コード検証手段に提供する。仮想コード検証手段は、k角形とトラックが接する地点で各頂点に向かう角度に各カウント毎に第2関数により生成される第2コードをマッチして格納(即ち、nカウントが適用された第2コードをk角形のnカウントだけ転がり移動することによって転がり移動されたn番目の頂点に向かう角度でマッチして格納)するので、仮想コード検証手段は、第2コードに相応する角度を第1コードの対応地点に適用して実際コードの格納位置に対応するk角形の頂点を探索する。
【0096】
また、他の実施形態として、
図4に示すように、前記仮想コード検証装置200は、仮想コード検証部240を更に含む。仮想コード検証部240は、仮想コード検証装置200が受信した仮想コードの真偽を判断する役割を果たす。
【0097】
図5は、本発明の一実施形態に係る仮想コード提供方法の順序図である。
【0098】
図5を参照すると、本発明の一実施形態に係る仮想コード提供方法は、仮想コード検証手段20が仮想コード生成手段10から仮想コードを受信する段階(S200;仮想コード受信段階)、前記仮想コード検証手段20が前記仮想コードに含まれている複数の細部コードを抽出する段階(S400)及び前記仮想コード検証手段20が複数の細部コードを基に実際コードの格納位置を探索する段階(S1000;実際コード探索段階)を含む。以下、各段階に対する詳細な説明を記載する。但し、仮想コード生成装置100及び仮想コード検証装置200に対する説明過程で上述された内容に関する具体的な開示は省略する。
【0099】
仮想コード検証手段20が仮想コード生成手段10から仮想コードを受信する(S200;仮想コード受信段階)。仮想コードは、仮想コード生成装置100(又は仮想コード生成手段10)で生成され、仮想コード検証手段20に提供される。
【0100】
仮想コード生成手段10で生成される仮想コードは、複数の細部コードで構成され得る。一実施形態として、仮想コードは第1コードと第2コードの結合により生成され得る。第1コード及び第2コードは、仮想コード検証手段20で実際コードの位置を探索するのにそれぞれ用いられる。例えば、第1コードは、仮想コード検証手段20で実際コードの格納位置探索の開始地点を設定するコードであり、第2コードは、特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定するコードであり得る。
【0101】
前記探索方式は、格納位置探索アルゴリズムにより決定され得る。探索方式の決定に関する詳細な説明は、後述する実際コード探索段階(S1000)で詳細に記述する。
【0102】
また、他の実施形態として、前記仮想コード生成関数は、M個の文字でN桁の前記第1コード又は前記第2コードを生成する場合、異なるMN個のコードを単位カウント毎に順次変更される第1コード又は第2コードとして提供する第1関数又は第2関数を含む。即ち、第1関数又は第2関数は、MN個のコードをカウントの増加によって重ならないように生成する関数であって、特定の時点に対応するカウントにMN個のコードのうち特定の1つを第1コード又は第2コードとして生成する。これにより、仮想コード生成手段10は、MNカウント(即ち、MN個のカウントに対応する時間長)内に同一の第1コード又は第2コードを重複して生成せず、単位カウント毎に新たな細部コード(即ち、第1コード又は第2コード)を生成し、単位カウント毎に新たな仮想コードを生成する。
【0103】
具体的に、仮想コード生成関数は、M個の文字でN桁の前記第1コード又は前記第2コードを生成することによって、MN個のコードを第1コード又は第2コードとして用いる場合、それぞれのコードを細部コード生成関数が駆動される初期時点から各カウント毎にマッチする。例えば、単位カウントを1秒に設定する場合、細部コード生成関数が最初に駆動された時点から毎秒、異なるMN個のコードをマッチする。そして、特定の細部コード生成関数を用いる周期又は仮想コード生成装置100の使用周期(例えば、仮想のカード番号を生成するスマートカードの有効期間)をMNカウントに該当する時間長(例えば、1カウントが1秒である場合、MN秒)よりも短い時間長に設定すれば、第1コード又は第2コードは、使用周期の間に同一のコードが重複して生成されない。即ち、時間が経過するにつれてカウントが増加するとき、ユーザが特定時点で仮想コード生成手段10に仮想コードの生成を要請する場合、仮想コード生成装置100は、特定時点に対応するカウントにマッチされたコード値を第1コード又は第2コードとして生成できる。
【0104】
また、他の実施形態として、同一のグループに属するユーザ間でも同一の仮想コードが同一時点に生成されないように、仮想コードに含まれる第1コード又は第2コードのうち少なくとも何れか1つは、各仮想コード生成手段10で同一時点に常に異なって存在する値(即ち、装置識別値)を反映させて生成され得る。即ち、特定の時点に1つのグループに属する複数の仮想コード生成手段10で仮想コードの発行が要請される場合、各仮想コード生成手段10が異なる仮想コードを生成するように各時点に各仮想コード生成手段10に異なって付与される値を反映させて異なる第1コード又は第2コードを生成する。
【0105】
一例として、装置識別値は、特定の細部コード生成関数が適用されるグループに特定の仮想コード生成手段10が含まれている開始時点(例えば、仮想コード検証手段20内に特定の細部コード生成関数が駆動された最初の時点から特定時間が経過した後、特定の仮想コード生成装置100に前記細部コード生成関数が適用され始めた時点)から現在まで経過した時間(又はカウント数)であり得る。1つのグループ内に複数の仮想コード生成手段10が含まれる場合、仮想コード生成手段10を該当グループに属するように設定するカウントを異なるようにすれば(即ち、仮想コード生成手段10が該当グループに同一時点に登録できなくすれば)、仮想コード生成手段10がグループに属するようになった時点(又はカウント)から特定時点までの経過時間は各仮想コード生成装置100毎に異なることになる。例えば、複数の仮想コード生成手段10で同時にグループ参加の要請が受信される場合(例えば、同時に特定のカード会社の特定のカード類型の発行要請が受信される場合)、仮想コード検証手段20は、複数の仮想コード生成手段10から同時に受信されたグループ参加の要請を、予め定められた条件によって順序を付与して他のカウントに要請が入力されたものとして処理できる。
【0106】
例えば、仮想コードが第1コードと第2コードの結合により生成される場合、仮想コード生成関数は、実際コードを新規に生成した時点から経過した単位カウントを基に第2コードを生成するようにすることができる。
【0107】
従って、細部コード生成関数のうち少なくとも何れか1つは、仮想コード生成装置100がグループに属するようになった時点(又はカウント)から特定時点までの経過時間を装置識別値として用いて、各時点毎にそれぞれの仮想コード生成装置100で生成される仮想コードが常に異なるようにすることができる。これにより、仮想コード検証手段20がユーザを区別するためのデータを別途に受信せず、仮想コードを受信するだけで仮想コード生成手段10の区別が可能にすることができる。
【0108】
また、特定の仮想コード生成装置100が特定のグループに属するようになった時点から経過した時間長は、時間が経過するにつれて継続して増加するようになるので、特定の仮想コード生成装置100で生成される細部コード(例えば、第2コード)は同一の値が生成されず、継続して異なる値が生成される。
【0109】
なお、更に他の実施形態として、周期全体においてユーザと関係なく重複した仮想コードが発生されないように、第1コードは、第1関数が駆動される初期時点から各カウント毎にマッチされたコードのうち、仮想コードの生成が要請された時点(又はカウント)に対応するコード値に設定し、第2コードは、仮想コード生成装置100毎に同一時点に常に異なって存在する値(即ち、装置識別値)を反映させて生成されるコード値に設定し、仮想コードを前記第1コードと第2コードが結合されたコード値として利用できる。第1コードは、各カウント毎に異なるコード値になり、第2コードは、同一時点に仮想コード生成装置100毎に異なるコード値を有するようになり、第1コードと第2コードが結合された仮想コードは、仮想コード生成装置100と時点に関係なく異なるコード値が出力されるようになる。
【0110】
また、他の実施形態として、前記仮想コード生成関数は、複数の細部コードを配列する規則に該当する細部コード結合関数を含む。即ち、仮想コード生成関数は、複数の細部コードに含まれている文字を羅列又は配置する特定の規則を有していることができる。これにより、同一の仮想コード生成関数を含む仮想コード生成手段10と仮想コード検証手段20の場合、仮想コード生成手段10が複数の細部コードに含まれている文字を細部コード結合関数によって配列し、仮想コード検証手段20が同一の細部コード結合関数を用いて仮想コードから個別の細部コードを分離できる。
【0111】
更に、他の実施形態として、前記仮想コード生成関数は、M個の文字を昇順に並べる多数の羅列規則のうち何れか1つが適用され得る。即ち、仮想コード生成関数は、M個の文字を昇順に並べる多様な羅列規則が適用され得、適用される羅列規則に従って異なる仮想コード生成関数に分類され得る。
【0112】
仮想コード検証手段20は、仮想コード生成手段10が生成した仮想コードを多様な方式で受信する。即ち、上述した仮想コード生成装置100の多様な仮想コード提供方式が適用され得る。
【0113】
仮想コード検証手段20が前記仮想コードに含まれている複数の細部コードを抽出する(S400)。仮想コード検証手段20は、仮想コード生成手段10が含む仮想コード生成関数を含むことによって、複数の細部コードを結合していた規則(即ち、細部コード結合関数)を同一に適用して複数の細部コードを抽出する。即ち、細部コード結合関数は、複数の細部コードを配列する規則に該当するものであって、仮想コード生成関数内に含まれる。
【0114】
また、他の実施形態として、仮想コードが、仮想コード生成手段10が含まれているグループを決定する固定コードを含む場合、前記細部コード抽出段階(S400)は、前記仮想コード内で前記固定コードを抽出し、前記固定コードを基に前記仮想コード生成手段のグループを判断して、前記グループに対する前記仮想コード生成関数又は前記格納位置探索アルゴリズムを決定する。即ち、各グループ別に仮想コード生成関数又は格納位置探索アルゴリズムを異なって適用する場合、仮想コード検証手段20は、仮想コード内の固定コードを基にグループを区別する。
【0115】
また、固定コードを用いて仮想コード生成関数を決定する過程は、複数の細部コードを抽出する過程の前に実行され得る。固定コードにより仮想コード生成関数が決定されなければ仮想コード生成関数内に含まれている細部コード結合関数が決定されず、複数の細部コードを抽出できない。
【0116】
このために、仮想コード検証手段20が別途の関数がなくても容易に分離できるように、固定コードは仮想コード内に固定された位置(例えば、仮想コードの最も前の特定個数の桁)に結合され得る。
【0117】
仮想コード検証手段20が複数の細部コードを基に実際コードの格納位置を探索する(S1000;実際コード探索段階)。複数の細部コードは相互間に相関関係を有しており、仮想コード検証手段20は、細部コード間の相関関係を基に実際コードの格納位置を探索する。
【0118】
また、一実施形態として、仮想コード内の複数の細部コードは、単位カウント毎に生成されるコードが変更(例えば、仮想コードが2個の細部コードからなる場合、第1コード及び第2コードは単位カウント毎に変更)され得、仮想コード検証手段20は、単位カウント毎に仮想コードが変更されても実際コードの格納位置を探索できるように、実際コードの格納位置にマッチされた地点を変更された第1コード及び第2コードと一致する位置に単位カウント毎に調節する。
【0119】
仮想コードを構成する細部コード間の相関関係に関する一実施形態として、仮想コードが第1コードと第2コードの結合によりなされる場合、仮想コード検証手段20は、第1コードを探索開始地点(即ち、実際コードの格納位置の探索を始める地点)に設定し、第2コードを前記探索開始地点から格納位置に移動する経路に適用して格納位置を探索できる。即ち、単位カウント毎に正常に生成された仮想コードが受信されれば、仮想コード検証手段20は、第1コードに対応する開始地点から前記第2コードに相応する探索経路に沿って移動した探索地点を実際コードの格納位置又は格納位置にマッチされた地点(例えば、別途のサーバの探索地点にマッチされている格納空間)と判断する。
【0120】
一実施形態として、第2コードが第1コードに相応する探索開始地点から格納位置までの経路に関する情報を全て含む場合、仮想コード検証手段20は第1コードに相応する探索開始地点から第2コードに相応する探索経路によって実際コードの格納位置又は格納位置にマッチされた地点を探索できる。
【0121】
他の実施形態として、仮想コード検証手段20は、単位カウント毎に実際コードの格納位置を仮想コードに沿うように調節する格納位置探索アルゴリズムを含むことができる。即ち、前記仮想コード検証手段20は、単位カウント毎に実際コードの格納位置にマッチされた地点への探索経路を調節する格納位置探索アルゴリズムを含む。前記第1コード及び前記第2コードは、単位カウント毎に変更される場合、仮想コード検証手段20は、変更される第1コード及び第2コードに沿うように格納位置探索アルゴリズムを調節できる。前記格納位置探索アルゴリズムは、多様な形態で実現されることができる。
【0122】
一実施形態として、
図7に示すように、格納位置探索アルゴリズムは、k(kはM
N)個のコードが並んだトラック上をk角形が各コードが配置された地点に頂点が対応しながら転がり移動するものであり得る。このとき、前記実際コード探索段階(S1000)は、仮想コード検証手段20が前記仮想コード生成手段10から受信した前記仮想コード内の第1コードに対応するトラック上の地点にk角形を転がり移動する段階(S1010)、前記第1コードに対応する位置を開始地点に設定し、前記第2コードに適用された探索方式によって第2コードを基にk角形の配置状態における格納位置又は前記格納位置がマッチされた地点を探索する段階(S1020;格納位置探索段階)及び前記格納位置に含まれている実際コードを抽出する段階(S1030)を含む。
【0123】
仮想コード検証手段20は、
図6に示すように、仮想コード生成手段10から受信した前記仮想コード内の第1コードに対応するトラック上の地点にk角形を転がり移動する(S1010)。格納位置探索アルゴリズムは、第1コードに該当するM
N個のコードが並んだトラックに沿って転がり移動するk角形(kはM
N)であり、k角形の頂点が第1コードのトラック上にコードが配置される地点に対応しながら移動する。このとき、仮想コード検証手段20は、第1コードに対応する地点にk角形の頂点が接するようにk角形を転がり移動させることができる。
【0124】
仮想コード検証手段20は、
図6に示すように、前記第1コードに対応する位置が開始地点に設定し、前記第2コードに適用された探索方式によって第2コードを基にk角形の配置状態における格納位置又は格納位置にマッチされた地点(即ち、k角形の特定の頂点)を探索する(S1020;格納位置探索段階)。前記格納位置は、前記k角形のそれぞれの頂点にマッチされる。第1コードのトラック(即ち、第1トラック)とk角形が対応する地点が第1コードに対応する格納位置の探索開始地点となる。仮想コード検証手段20は、探索開始地点から第2コードを基に格納位置のマッチング地点を探索する。
【0125】
第2コードを基にk角形で格納位置を探索する方式としては、多様な方式が適用され得る。一例として、仮想コード検証手段20は、k角形が接している第1トラック上の位置で第2コードに相応する角度(例えば、k角形の頂点に向かうように180度をMN個に分割した特定の角度)で指示することによって、仮想コードに対応する実際コードが格納された格納位置であるk角形の頂点を探索できる。
【0126】
また、他の例として、k角形が第1トラック上の第1コードに対応する地点に接している状態で、仮想コード検証手段20はk角形の中心と第1トラック上の接点を基準に中心角全体(即ち、360度)をMN個に分割し、それぞれの角度をMN個の第2コードにマッチする。このとき、k角形の中心と第1トラック上の接点を繋ぐ線から特定個数の単位角度(即ち、360度/MN)を移動した線の方向はk角形の特定の頂点となる。従って、特定の角度に対応する第2コードが受信されれば、仮想コード検証手段20は、該当角度方向に位置する頂点を探索できる。
【0127】
更に、他の例として、第2コードの特定の桁を角度算出方向を決定するものとして使用できる。即ち、N個(Nは自然数)の文字を用いて第2コードを生成する場合、1個の桁(Digit)で角度の測定方向を決定できる。例えば、仮想コード検証手段20は、k角形の中心と第1トラック上の接点を基準に、中心角全体(即ち、360度)を分割してそれぞれの角度に第2コードをマッチする場合、k角形の中心と第1トラック上の接点を繋ぐ線から左側方向に測定される角度か、右側方向に測定される角度かを1個の桁(Digit)の値で決定できる。
【0128】
一例として、格納位置探索アルゴリズムは、k角形上の各頂点に角度の測定方向によって異なる2個の第2コードが1つの頂点に割り当てられる。即ち、1つの頂点に内角で到達時と外角で到達時に異なる第2コードとマッチされ、他の実際コードが連結され得る。他の例として、格納位置探索アルゴリズムは、N個(Nは自然数)の文字を用いて第2コードを生成する場合にN-1個で角度全体(例えば、中心角を基準に分割する場合360度)の半分に対してマッチし、1個の桁を用いて各頂点に到達するための角度の適用方向を決定できる。
【0129】
第2コードを基にk角形で格納位置を探索する方式はこれに限定されず、第2コードに相応するk角形上の地点と第1トラック上の接点間を特定の割合で分ける地点を格納位置として探索する方式などの多様な方式が適用され得る。
【0130】
その後、仮想コード検証手段20は、前記格納位置に含まれている実際コードを抽出する(S1030)。即ち、仮想コード検証手段20は、k角形の頂点に対応する格納位置を探索し、格納位置内の実際コードを抽出する。
【0131】
また、
図8に示すように、他の実施形態として、特定の仮想コード生成手段10から特定のカウントに新規で実際コードの生成が要請されれば、前記特定のカウントにk角形の特定の頂点に対応する格納位置に実際コードを格納する段階を更に含む(S100;実際コード格納段階)。前記特定の頂点は、前記特定のカウントにトラック上に接する。仮想コード検証手段20が仮想コード生成関数及び格納位置探索アルゴリズムを駆動した後、特定の時点(又はカウント)が経過したとき、仮想コード検証手段20は、特定の仮想コード生成手段10から新規な実際コードの発行(即ち、特定のグループに対する要請を含む)を受信することによって第1トラック上に接しているk角形の頂点にマッチされた格納位置に新規に生成した実際コードを格納する。具体的に、仮想コード検証手段20で仮想コード生成関数及び格納位置探索アルゴリズムが駆動されることによって各カウント毎に1つのコードずつk角形とトラックが接する位置が移動するようにk角形が転がり移動するようになり、特定のカウントに新規の実際コードの発行が要請されれば、特定のカウントにトラックに接している頂点が実際コードが格納されるk角形上の地点として決定される。
【0132】
例えば、
図6に示すように、仮想コード検証手段は、A時点に仮想コード生成手段Aに対して実際コードを発行することによってA時点にトラックに接していたk角形の頂点に仮想コード生成手段Aの実際コードを格納する。その後、カウントが経過するにつれてk角形はトラックに沿って転がり移動を行う。k角形の回転により仮想コード生成手段Aの実際コードが格納された格納位置が回転するようになる。
【0133】
即ち、トラックと接するk角形の頂点に実際コードが格納された後、nカウントが経過しただけk角形が回転し、経過したnカウント数だけ実際コードが格納された地点が回転する。従って、第2コードが実際コードが発行されたカウント(即ち、時点)から経過した単位カウント数を反映させて算出されれば、仮想コード検証手段20は、第2コードを通じて仮想コードが生成された時点に実際コードが格納されたk角形上の地点を算出できる。
【0134】
具体的に、第1コードが仮想コード検証手段20内で特定の仮想コード生成関数及び格納位置探索アルゴリズムが駆動された最初の時点から経過したカウント数に対応するコード値であり、第2コードが特定の仮想コード生成手段10に対して実際コードを発行した後、経過したカウント数に対応するコード値である場合、仮想コード検証手段20は、第1コードを通じて仮想コード生成手段10で仮想コードの生成を要請した時点(例えば、C時点)を把握し、第2コードを通じて該当時点のk角形の配置状態で実際コードが格納されたk角形上の頂点を把握する。即ち、第1コードは、k角形の特定の頂点を探索できるk角形の配置状態となるようにするトラック上の地点を決定するのに利用され、第2コードは、第1コードに対応するトラック上の地点にk角形が配置された後に実際コードの格納位置にマッチされたk角形上の頂点を探索するのに用いられる。これにより、仮想コード生成手段10で仮想コードを生成した後、仮想コード検証手段20に提供されるが、遅延時間(delay time)があっても、仮想コード検証手段20は、仮想コードに対応する実際コードを正確に探索できる。
【0135】
また、他の実施形態として、
図9に示すように、前記仮想コード検証手段20が前記第1コード又は前記第2コードを前記第1関数又は第2関数の逆関数を適用して正常に生成された仮想コードに該当するかを検証する段階(S500)を更に含む。例えば、第1コードが仮想コード検証手段20内で特定の仮想コード生成関数及び格納位置探索アルゴリズムが駆動された最初の時点から経過したカウント数に対応するコード値であり、第2コードが特定の仮想コード生成手段10に対して実際コードを発行した後、経過したカウント数に対応するコード値である場合、仮想コード検証手段20は、実際コードを格納位置に格納するとき、仮想コード生成関数の駆動後に実際コードの発行時まで経過した時間(Ts)を共に格納する。仮想コード検証手段20は、仮想コード内の第1コードに第1関数の逆関数を適用して仮想コード生成関数の駆動時から仮想コードの生成時点までの経過時間(T1)を算出し、仮想コード内の第2コードに第2関数の逆関数を適用して実際コードの発行時から仮想コードの生成時点までの経過時間(T2)を算出する。その後、仮想コード検証手段20は、T1とT2との差がTsに該当するか否かを判断して仮想コードを検証する。
【0136】
また、他の実施形態として、
図10に示すように、前記仮想コード生成手段10から受信された第1受信コードと前記仮想コード検証手段20で生成された第1関数によって生成された第1生成コードとを比較する段階(S600)、前記第1受信コードが前記第1生成コードから誤差の許容範囲内に含まれれば、前記第1受信コードを前記開始地点とする第1コードに設定する段階(S700)及び前記第1受信コードが前記第1生成コードから誤差の許容範囲を超えれば、異常コードと判断する段階(S800)を更に含む。仮想コード生成手段10及び仮想コード検証手段20は、時間が経過するにつれて同一の単位カウントが経過する。しかし、仮想コード生成手段10と仮想コード検証手段20に含まれているタイマ(Timer)間に誤差が存在して同一時点に経過したカウント数が異なり得る。従って、タイマによる誤差は解消しながら正常な仮想コードではない異常コードを判別するための過程が必要である。このために、仮想コード検証手段20は、内部で第1関数により特定のカウントで生成した第1コードである第1生成コードと仮想コード生成手段10から受信された仮想コード内の第1コードである第1受信コードとを比較し(S600)、第1生成コードと第1受信コードとの間で発生したカウント数の差が誤差の許容範囲内に該当すれば、正常コードと判断した後、第1受信コードを基準に実際コードの探索過程を行い(S700)、第1生成コードと第1受信コードとの間で発生したカウント数の差が誤差の許容範囲を越えれば異常コードと判断する(S800)。
【0137】
更に、他の実施形態として、前記仮想コードは特定の桁数のセキュリティコードを更に含む場合、前記仮想コード検証手段が前記仮想コード生成手段から受信した受信セキュリティコードと前記仮想コード検証手段内で生成された生成セキュリティコードとが一致するか否かを判断して仮想コードを検証する段階を更に含む。
【0138】
以上で前述した本発明の一実施形態に係る仮想コード提供方法は、ハードウェアであるコンピュータと結合されて実行されるためにプログラム(又はアプリケーション)で実現されて媒体に格納され得る。
【0139】
前記上述したプログラムは、前記コンピュータがプログラムを読み込んでプログラムで実現された前記方法を実行させるために、前記コンピュータのプロセッサ(CPU)が前記コンピュータの装置インターフェースを介して読み取られるC、C++、JAVA、機械語などのコンピュータ言語でコード化されたコード(Code)を含むことができる。このようなコードは、前記方法を実行する必要な機能を定義した関数などと関連する機能的なコード(Functional Code)を含むことができ、前記機能を前記コンピュータのプロセッサが所定の手順通りに実行させるのに必要な実行手順関連の制御コードを含むことができる。また、このようなコードは前記機能を前記コンピュータのプロセッサが実行させるのに必要な追加の情報やメディアが前記コンピュータの内部又は外部メモリのどの位置(アドレスナンバー)で参照されなければならないかに対するメモリ参照関連のコードを更に含むことができる。また、前記コンピュータのプロセッサが前記機能を実行させるために遠隔(Remote)にある任意の他のコンピュータやサーバなどと通信が必要な場合、コードは前記コンピュータの通信モジュールを用いて遠隔にある任意の他のコンピュータやサーバなどとどのように通信すべきか、通信時にどんな情報やメディアを送受信すべきかなどに対する通信関連のコードを更に含むことができる。
【0140】
前記格納される媒体は、レジスタ、キャッシュ、メモリなどのように短い瞬間にデータを格納する媒体ではなく半永久的にデータを格納し、機器により読み取り(reading)が可能な媒体を意味する。具体的には、前記格納される媒体の例としては、ROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、光データ格納装置などが挙げられるが、これに制限されない。即ち、前記プログラムは、前記コンピュータが接続できる多様なサーバ上の多様な記録媒体又はユーザの前記コンピュータ上の多様な記録媒体に格納されることができる。また、前記媒体は、ネットワークに繋がったコンピュータシステムに分散され、分散方式でコンピュータが読み取れるコードが格納され得る。
【0141】
前記のような本発明によれば、以下のような多様な効果を有する。
【0142】
第一に、単位カウント毎に仮想コードが新たに生成され、重複する仮想コードが定められた全周期中に登場しないので、仮想コードの流出時にも実際コードが漏れないという効果を提供する。
【0143】
第二に、仮想コード生成装置と実際コードを用いる装置(例えば、金融会社のサーバ、IOTデバイスなど)にのみ仮想コードの生成及び実際コードの探索のためのアルゴリズムが追加されればよいので、既存に実際コードを用いるプロセスをそのまま維持できる。例えば、スマートカード又はAPPカードに重複して生成されない仮想のカード番号を生成して提供される場合、POS装置と決済代行会社のサーバはそのまま維持され、仮想のカード番号をカード会社のサーバに伝達し、カード会社のサーバが仮想のカード番号に相応する実際のカード番号を探索して決済を行える。これにより、セキュリティを高めるために既存のプロセス内で変更されなければならない部分を最小化でき、ユーザは、セキュリティ向上のための別途の段階を実行しなくてもよい。
【0144】
第三に、仮想コード生成関数を実現する方式が非常に多様であり、グループ別、適用分野別に異なる仮想コード生成関数を適用できる。
【0145】
以上、添付の図面を参照して本発明の実施形態を説明したが、本発明が属する技術分野において通常の技術者は、本発明がその技術的思想や必須な特徴を変更せず、他の具体的な形態で実施され得るということが理解できるであろう。従って、以上で記述した実施形態は、あらゆる面で例示的なものであり、制約的ではないと理解すべきである。