(54)【発明の名称】仮想カード番号基盤の金融取引提供システム、仮想カード番号生成装置、仮想カード番号検証装置、仮想カード番号基盤の金融取引提供方法及び仮想カード番号基盤の金融取引提供プログラム
(58)【調査した分野】(Int.Cl.,DB名)
特定の仮想カード番号生成手段から特定のカウントに新規で実際カード番号の生成が要求されると、前記特定のカウントにk角形の特定の頂点に対応する格納位置に実際カード番号を格納し、前記特定の頂点は、前記特定のカウントにトラック上に接している実際カード番号格納段階を更に含むことを特徴とする請求項9に記載の仮想カード番号基盤の金融取引提供方法。
ハードウェアであるコンピュータと結合し、請求項1〜12のいずれか1項に記載の方法を実行するために媒体に格納された仮想カード番号基盤の金融取引提供プログラム。
【発明を実施するための形態】
【0030】
以下、添付の図面を参照して本発明の好適な実施形態を詳細に説明する。本発明の利点及び特徴、そしてそれらを達成する方法は、添付の図面と共に詳細に後述されている実施形態を参照すれば明確になる。しかし、本発明は以下で開示される実施形態に限定されるものではなく、互いに異なる多様な形態で実現できる。但し、本実施形態は本発明の開示を完全なものにし、本発明が属する技術分野において通常の知識を有する者に発明の範疇を完全に理解させるために提供されるものであり、本発明は請求の範囲の範疇により定義されるに過ぎない。明細書全体に亘って同一の参照符号は、同一の構成要素を示す。
【0031】
他の定義がなければ、本明細書において用いられる全ての用語(技術及び科学的用語を含む)は、本発明が属する技術分野において通常の知識を有する者に共通して理解され得る意味として使用されることができる。また、一般に用いられる辞典に定義されている用語は、明白に特に定義されていない限り、理想的に又は過度に解釈されない。
【0032】
本明細書において用いられた用語は、実施形態を説明するためのものであり、本発明を制限しようとするものではない。本明細書において、単数形は特に言及しない限り複数形も含む。明細書において用いられる「含む(comprises)」及び/又は「含んでいる(comprising)」は、言及された構成要素以外に1つ以上の他の構成要素の存在又は追加を排除しない。
【0033】
本明細書において「金融取引」は、金融機関と行われる手順を意味する。「金融取引」はカード決済、銀行口座からの入出金などを含む。
【0034】
本明細書において「文字」はコードを構成する構成要素であって、アルファベットの大文字、アルファベットの小文字、数字及び特殊文字などの全部又は一部を含む。
【0035】
本明細書において「コード」は、文字が並んだ文字列を意味する。
【0036】
本明細書において「カード番号」は、決済などの金融取引のために用いられるものであって、カードに付与され、決済、決済取消などの状況でカード会社に送られる番号を意味する。
【0037】
本明細書において「実際カード番号」は、カード会社から特定のユーザのカードへ付与する番号である。即ち、「実際カード番号」は一般の実物のカード、モバイルカードなどに付与される番号を意味する。
【0038】
本明細書において「仮想カード番号」は、実際カード番号に繋がるように仮に生成されるカード番号であって、数字を含む文字からなる特定の桁数のコードである。
【0039】
本明細書において「細部コード」は、仮想カード番号に含まれる一部のコードを意味する。即ち、仮想カード番号が別途に生成された複数のコードを結合して生成される場合、細部コードは別途に生成され、仮想カード番号を構成する個別コードを意味する。
【0040】
本明細書において「単位カウント」は特定の時間間隔に設定され、前記時間間隔が経過するにつれて変更されるものとして定義された単位である。例えば、1カウントは特定の時間間隔(例えば、1.5秒)に設定され使用されることができる。
【0041】
本明細書において「仮想カード番号生成関数」は、仮想カード番号を生成するのに用いられる関数を意味する。
【0042】
本明細書において「スマートカード」は、カード番号を変更して出力できるカードを意味する。
【0043】
本明細書において「転がり移動」は、対象体が回転しながら並進運動を行うことを意味する。 即ち、「転がり移動」は回転運動と並進運動を共に行いながら移動するものであって、回転する対象体の各地点が移動する軸上に順に接しながら移動することを意味する。
【0044】
以下、本発明の実施形態によって実際カード番号に代わる仮想カード番号の生成及び実際カード番号の探索過程について説明するために、実際カード番号の構成について説明する。
【0045】
「実際カード番号」は、カード識別番号、カードセキュリティコード、有効期間のうち少なくとも1つを含む。カード識別番号とは、カード会社、カードの類型及びカード使用者を識別するために付与されたコードを称する。一般に、カードに付与されるカード識別番号は15個又は16個の桁数からなる。また、一般に、16桁からなるカード識別番号の場合、前の6桁の番号はカードの発行者識別番号(IIN)からなり、7番目の桁から15番目の桁までは各カード会社が任意の規則に従って各カードに付与するコードからなり、16番目の桁は特定の公式によりカード識別番号を検証する値からなる。
【0046】
カードセキュリティコードは、カードの一側に印刷された特定の桁数(例えば、VISA、MASTERの場合は3桁、AMEXの場合は4桁)の数字からなり、カード番号が正常か否かを確認するコードである。即ち、カードセキュリティコードが3桁であり、カード識別番号が16桁である場合、カードセキュリティコードの3桁のコードとカード識別番号の16桁のコードを定められた規則に従って暗/復号化して該当値が一致すると、カードが正常カードであることが分かる。カードセキュリティコードは、カード会社毎に名称が異なっており、ビザカードはCVV(Card Verification Value)、マスターカード/JCBはCVC(Card Validation Code)、アメリカン・エックスプレスはCID(Confidential Identifier Number又はCard Identification Number)と称する。
【0047】
有効期間は、実際カード番号が発行された後に使用できる期限を意味する。一般に、有効期間は年/月に対して2桁が付与され、4桁のコードで構成される。マグネチックカードには実際カード番号がそのまま含まれているため、マグネチックカードをリードするだけでカード番号全体が流出されるという問題があり、近年、全世界的にマグネチックカードの使用が制限され、ICカードなどのセキュリティが高い方式へ変わりつつある。他のセキュリティが高い方式を適用するためには、新たな端末が設置されなければならないか、既存のプロセスと異なって変更されなければならないという問題がある。従って、既存の実際カード番号を用いるプロセスを同一に適用しながら、カード番号の流出を防止できる方法が必要である。特に、既存のマグネチックカードリーダをそのまま利用しながらセキュリティを向上させる方式が必要である。
【0048】
以下、図面を参照して、本発明の実施形態に係る仮想カード番号基盤の金融取引提供システム、仮想カード番号生成装置100、仮想カード番号検証サーバ200、仮想カード番号基盤の金融取引提供方法及び仮想カード番号基盤の金融取引提供プログラムについて詳細に説明する。
【0049】
図1は、本発明の一実施形態に係る仮想カード番号基盤の金融取引提供システムの構成図である。
【0050】
図2は、本発明の一実施形態に係る仮想カード番号生成手段から金融機関のサーバへ仮想カード番号が提供される過程を示す例示図である。
【0051】
図1を参照すると、本発明の一実施形態に係る仮想カード番号基盤の金融取引提供システムは、仮想カード番号生成手段10及び仮想カード番号検証手段20を含む。
【0052】
仮想カード番号生成手段10は、仮想カード番号検証手段20が実際カード番号を探索できる情報を含む仮想カード番号を生成する役割を果たす。即ち、仮想カード番号生成手段10は、仮想カード番号生成関数によって仮想カード番号を生成する。このとき、仮想カード番号検証手段20で仮想カード番号を基に実際カード番号を探索するので、仮想カード番号生成手段10は実際カード番号を格納しないこともあり得る。これにより、仮想カード番号生成手段10のハッキングなどを通じて実際カード番号が流出されるのを防止できる。仮想カード番号生成関数に関する具体的な説明は後述する。
【0053】
仮想カード番号検証手段20は、仮想カード番号生成手段10から提供される仮想カード番号を基に実際カード番号を探索する役割を果たす。仮想カード番号検証手段20は、仮想カード番号生成手段10より受信した仮想カード番号から実際カード番号を探索するために、仮想カード番号生成手段10と同一の仮想カード番号生成関数を格納する。仮想カード番号検証手段20が仮想カード番号を基に実際カード番号を探索する方式に関する具体的な説明は後述する。
【0054】
また、仮想カード番号検証手段20は、仮想カード番号が仮想カード番号生成手段10で正常に生成されたコードか否かを検証する役割を果たす。仮想カード番号検証手段20が仮想カード番号の正常か否かを判断する方式に関する具体的な説明は後述する。
【0055】
仮想カード番号検証手段20は、仮想カード番号生成手段10から多様な方式を通じて仮想カード番号を受け取ることができる。一実施形態として、仮想カード番号検証手段20は、無線通信を介して仮想カード番号生成手段10から仮想カード番号を受信することができる。例えば、仮想カード番号生成手段10を含む仮想カード番号生成装置100がNFCアンテナモジュール、ブルートゥース通信モジュールなどを含む場合、金融取引端末との通信を通じて仮想カード番号検証サーバへ伝達する仮想カード番号を金融取引端末に伝送することができる。また、他の実施形態として、仮想カード番号検証サーバ200は、仮想カード番号生成装置100により生成された仮想カード番号を仮想カード番号検証サーバ200に通信を介して繋がる移動端末上に直接入力(例えば、ウェブページ又はアプリケーションの決済ページに仮想カード番号が入力)されて受信することができる。このとき、仮想カード番号検証手段20は、仮想カード番号生成手段10から仮想カード番号を受信した他のサーバより伝達を受けることができる。
【0056】
具体的に、
図2に示すように、仮想カード番号生成手段10が決済端末に決済可能なスマートカードであり、仮想カード番号検証手段20が仮想カード番号生成関数を含む金融会社サーバ(例えば、カード会社サーバ)である場合、仮想カード番号生成手段10であるスマートカードでPOS装置30にて決済を行うと、仮想カード番号検証手段20は、POS装置30から仮想カード番号を受け取ったPG会社サーバ40から仮想カード番号を受け取る。即ち、仮想カード番号検証手段20(即ち、カード会社サーバ)は、既存の決済プロセスを用いて仮想カード番号生成手段10から実際カード番号の代わりに仮想カード番号を受信することができる。即ち、後述するように、仮想カード番号を実際カード番号と同一の長さのコードに生成すると、仮想カード番号生成手段から仮想カード番号検証手段が含まれているカード会社サーバまで行われるプロセス上では変更されるものがなく、本発明の実施形態に係る仮想カード番号基盤の金融取引提供方式が適用されることができる。また、仮想カード番号生成手段であるスマートカードでATM装置を通じて金融取引を行う場合、仮想カード番号生成手段10が実際カード番号と同一の長さのコードに生成された仮想カード番号をATM装置に提供し、金融機関サーバ20はATM装置から仮想カード番号をそのまま受け取って金融取引を行える。
【0057】
また、一実施形態として、前記仮想カード番号検証手段20と前記仮想カード番号生成手段10は、同一の仮想カード番号生成関数を含む。仮想カード番号検証手段20と仮想カード番号生成手段10が同一の仮想カード番号生成関数を含むことによって仮想カード番号検証手段20は仮想カード番号生成手段10で生成された仮想カード番号内の複数の細部コードを正常に抽出できる。なお、仮想カード番号検証手段20は、受信した仮想カード番号が正常な仮想カード番号生成手段10で生成され、受信されたものであるかを検証できる。即ち、仮想カード番号検証手段20が仮想カード番号生成手段10と同一の条件でコード(即ち、仮想カード番号又は特定の細部コード)の生成を行った後、仮想カード番号生成手段10から受信したコード(即ち、仮想カード番号又は特定の細部コード)を比較することによって検証を行うことができる。
【0058】
図3は、本発明の他の実施形態に係る仮想カード番号生成装置100の構成図である。
【0059】
図4は、本発明の一実施形態に係る仮想カード番号生成装置の例示図である。
【0060】
図3を参照すると、本発明の他の実施形態に係る仮想カード番号生成装置100は、細部コード生成部110、仮想カード番号生成部120及び仮想カード番号提供部130を含む。
【0061】
本発明の実施形態に係る仮想カード番号生成装置100は、仮想カード番号生成手段10に該当するプログラムが内蔵(embeded)されているか、仮想カード番号生成手段10に該当するプログラムが設置された装置であり得る。例えば、仮想カード番号生成装置100は、仮想カード番号生成手段10に該当するプログラムが内蔵されたスマートカードであり得る。また、例えば、仮想カード番号生成装置100は、仮想カード番号生成手段10に該当するAPPカードアプリケーションがインストールされた移動端末であり得る。仮想カード番号生成装置100は、前述した例示以外に仮想カード番号を生成して伝送しなければならない多様な装置になり得る。
【0062】
仮想カード番号生成部120は、1つ以上の細部コードを組み合わせて仮想カード番号として生成する役割を果たす。一実施形態として、前記仮想カード番号は、複数の細部コードを特定の規則に従って結合して生成される。仮想カード番号生成関数は、複数の細部コードを組み合わせる規則(即ち、細部コード結合関数)を含む。
【0063】
複数の細部コードを結合して1つの仮想カード番号を生成する方式としては、多様な方式が適用され得る。前記細部コード結合関数の一例として、仮想カード番号生成部120は、N桁の第1コードとN桁の第2コードを交互に配置する方式で仮想カード番号を生成できる。また、他の例として、細部コード結合関数は第1コードの後に第2コードを結合する関数であり得る。仮想関数に含まれる細部コードが増えることによって細部コード結合関数も多様に生成され得る。
【0064】
細部コード生成部110は、1つ以上の細部コードを生成する役割を果たす。仮想カード番号生成関数は、それぞれの細部コード生成関数を含む。例えば、仮想カード番号生成関数は、複数の細部コード生成関数を用いて複数の細部コードを生成し、複数の細部コードを結合する細部コード結合関数を用いて仮想カード番号を生成する。
【0065】
一実施形態として、細部コード生成部110は、細部コード生成関数として第1関数と第2関数を含み、第1コード及び第2コードを生成する。第1コードと第2コードは、仮想カード番号検証手段20内で実際カード番号の格納位置を探索するための相関関係を有するが、仮想カード番号生成装置100は、セキュリティを高めるために第1コードを生成する第1関数と第2コードを生成する第2関数を細部コード生成関数として含むだけであって、第1コードと第2コードの相関関係に対するデータを含まないこともあり得る。
【0066】
また、他の実施形態として、仮想カード番号は、グループを区別するための変更されない固定コードを複数の細部コードと共に含むことができる。仮想カード番号検証手段20は、複数のグループにそれぞれ対応する複数の仮想カード番号生成関数を含むことができ、仮想カード番号生成装置100から仮想カード番号が受信されると、該当仮想カード番号生成装置100が属するグループの仮想カード番号生成関数を基に実際カード番号の探索を行わなければならない。固定コードが含まれず、全体コードが単位カウントが経過する度に新たに生成される細部コードのみを含むとなると、別途の情報なしに仮想カード番号生成装置100が属するグループを判断することができない。従って、仮想カード番号生成装置100は、グループを識別するための変更されない固定コードを含む。
【0067】
例えば、特定カード会社のカードの類型別に仮想カード番号生成関数が付与される場合、仮想カード番号生成装置100は、カード番号のうち、カード会社及びカードの類型を示す前の6桁を固定コードとして用い、仮想カード番号検証手段20は、仮想カード番号生成装置100と同一の仮想カード番号生成関数が適用される特定のカード会社の特定のカード類型を識別することができる。即ち、固定コードは、前記実際カード番号に対応するカード会社又はカードの類型を判断するコードである。
【0068】
また、固定コードは、前記仮想カード番号内に予め定められた位置に結合されることができる。各カード類型のグループ別に仮想カード番号生成関数が付与される場合、仮想カード番号検証手段20は仮想カード番号から固定コードをまず抽出しなければカード類型のグループを判断することができない。従って、固定コードは、別途の関数なしに分離可能に仮想カード番号内の予め定められた位置(例えば、実際カード番号の発行者識別番号と同一の位置)に結合されることができる。
【0069】
更に、一実施形態として、仮想カード番号生成装置100は、複数の細部コードと固定コードを組み合わせて実際カード番号と同一の桁数のコードとなるように細部コードを生成する。既存の金融取引システム(例えば、金融取引がお店での決済である場合、POS装置及びPG会社サーバ)をそのまま維持しながら仮想カード番号を用いるためには、仮想カード番号生成装置100は実際カード番号と同一の桁数を有するコードを仮想カード番号として生成しなければならない。このために、仮想カード番号生成装置100は、カード会社及び該当カード会社のカードの類型を判断するための固定コードを除いた桁数を分けて複数の細部コードの桁数を活用する。例えば、実際カード番号が16桁のカード識別番号を有し、細部コードとして第1コード及び第2コードを含む場合、仮想カード番号生成装置100は、16桁のうち、6桁の固定コードを除いた10桁を同一に分けて5桁の第1コード及び第2コードを生成できる。その後、後述する仮想カード番号生成部が第1コード及び第2コードを特定の規則に従って結合した後、固定コードを実際カード番号のカード識別番号のように、前の部分に結合して仮想カード番号のカード識別番号を生成できる。
【0070】
また、例えば、カード番号のカード識別番号と有効期間の桁を活用して細部コードからなる仮想カード番号を生成できる。即ち、16桁のカード識別番号と4桁の有効期間のうち、仮想カード番号生成装置100は実際カード番号の発行者識別番号に該当する6桁を固定コードとして維持し、残りの14桁を複数の細部コードに割り当て、細部コード生成部は割り当てられたそれぞれの桁数に沿う細部コードを生成する。
【0071】
更に、例えば、仮想カード番号生成装置100は、実際カード番号のカード識別番号、有効期間及びカードセキュリティコードを仮想カード番号で細部コードに割り当てる桁数として活用できる。例えば、仮想カード番号生成装置100は、実際カード番号の発行者識別番号に該当する6桁を固定コードとして維持し、カード識別コードの残りの10桁、4桁の有効期間及び3桁のカードセキュリティコードをそれぞれの細部コードに桁数として割り当てることができる。
【0072】
また、例えば、仮想カード番号生成装置100は、カード識別番号部分だけで仮想カード番号の細部コードと固定コードを表現できる。このとき、仮想カード番号生成装置100は、複数の細部コードに異なる桁数を割り当てることができる。即ち、仮想カード番号が固定コード、第1コード及び第2コードを含み、カード識別番号の桁数だけで固定コード、第1コード及び第2コードを生成する場合、仮想カード番号生成装置100は、固定コードに割り当てられる6桁を除いた桁数のうち、9桁を第1コードと第2コードに分けて割り当てる。カード識別番号が15桁の場合と16桁の場合にいずれも適用するために、仮想カード番号生成関数は、カード識別番号の9桁のみを第1コードと第2コードに割り当てることができる。例えば、仮想カード番号生成関数は、9桁のうち、第1コードに6桁を割り当て、第2コードに3桁を割り当てることができる。このように、カード番号全体のうち、カード識別番号部分だけで仮想カード番号を構成するコードを表現すれば、ユーザがカード番号を直接入力しなければならない状況で入力すべき文字数が減少し得る。また、仮想カード番号生成装置100は、有効期間及びカードセキュリティコード部分をセキュリティを向上させることができる他の用途として活用できる。
【0073】
また、一実施形態として、仮想カード番号は仮想セキュリティコードを更に含む。例えば、仮想カード番号は複数の細部コードと仮想セキュリティコードを含む。仮想カード番号のセキュリティコードは、実際カード番号のカードセキュリティコード(即ち、CVV又はCVC)の桁を活用して提供されることができる。即ち、既存の金融取引システムで用いられる実際カード番号と同一の文字数を含むように、仮想カード番号生成装置は、カードセキュリティコードの桁を仮想カード番号の仮想セキュリティコードに割り当て、カード識別番号及び有効期間の全部又は一部の桁を複数の細部コードに割り当てることができる。
【0074】
前記セキュリティコードは特定のセキュリティコード生成関数を基に生成されるコードであって、正常な仮想カード番号か否かを検証するために用いられる。前記セキュリティコード生成関数は、時間データと仮想カード番号生成手段の固有値を関数値として用いて特定の桁数のセキュリティコードを生成する。
【0075】
仮想セキュリティコードを活用して仮想カード番号の正常か否かを判断する過程の一例は以下の通りである。仮想カード番号検証手段20は、実際カード番号の発行時に仮想カード番号生成装置100の固有値(例えば、スマートカード内のチップ固有値又はAPPカードがインストールされたスマートフォンの固有値など)を受信して実際カード番号の格納位置に共に格納するか、実際カード番号の格納位置に繋がっている別途の格納空間に格納できる。仮想カード番号生成装置100が、仮想セキュリティコードが結合された仮想カード番号を生成して仮想カード番号検証手段20に提供すると、仮想カード番号検証手段20は、細部コードを基に仮想カード番号が生成された時間データを獲得し、内部に格納された特定の仮想カード番号生成装置100の固有値を抽出して時間データと共に仮想セキュリティコード生成関数(例えば、OTP(One Time Password)関数)に適用して仮想セキュリティコードを算出する。仮想カード番号検証手段20は、仮想カード番号生成装置100から受信した仮想セキュリティコード(即ち、受信仮想セキュリティコード)と内部に格納された仮想セキュリティコード生成関数で算出した仮想セキュリティコード(即ち、生成仮想セキュリティコード)とが一致するかを判断する。仮想カード番号生成装置100で仮想カード番号を生成する時点と仮想カード番号検証装置200で仮想カード番号を受信した時点との間に差が存在し得るので、仮想カード番号検証装置200は時間遅延を考慮して特定の時間範囲内(例えば、仮想カード番号を受信した時点から特定のカウント以前まで)の仮想セキュリティコード(即ち、OTP番号)を計算し、仮想カード番号生成装置100から受信した受信仮想セキュリティコードと一致する値が存在するかを確認する。仮想カード番号検証手段20は、受信仮想セキュリティコードと生成仮想セキュリティコードとが一致すると、正常な仮想カード番号と判断して実際カード番号を提供する。
【0076】
例えば、仮想セキュリティコードは、カードセキュリティ番号に対応する桁数に生成されることができる。即ち、仮想カード番号生成装置100は、仮想セキュリティコード生成関数を用いてカードセキュリティ番号に該当する3桁又は4桁を仮想セキュリティコードとして生成し、カードの使用時にカードセキュリティ番号として仮想セキュリティコードを入力すると、仮想カード番号検証手段20は仮想セキュリティコードを検証する過程を行う。
【0077】
また、他の例として、仮想セキュリティコード生成関数は、各カウント毎に異なるl桁(lは自然数)のコードを生成して関数値として共に適用できる。即ち、仮想セキュリティコード生成関数は、l桁のランダムコード生成関数(例えば、l桁のコードを生成するOTP関数)を含むことができる。
【0078】
更に、一実施形態として、仮想カード番号が第1コード及び第2コードの特定の規則による組み合わせで生成される場合、第1コードと第2コードは、実際カード番号が格納された格納位置を探索するためのそれぞれの役割を果たすことができる。例えば、第1コードは格納位置探索の開始地点を設定し、第2コードは特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定する。即ち、仮想カード番号生成装置100から単位カウント毎に正常に生成された仮想カード番号が提供されると、仮想カード番号検証手段20は第1コードに対応する探索開始地点から第2コードに相応する探索経路に沿って移動した地点を実際カード番号の格納位置として判断する。仮想カード番号を構成する第1コードと第2コードを基に格納位置を探索する具体的な方式は後述する。
【0079】
細部コード生成部110が細部コードを生成する方式の一実施形態として、細部コード生成部110は単位カウント毎に新たな細部コードを生成し、これにより、仮想カード番号生成装置100は単位カウント毎に新たな仮想カード番号を生成する。単位カウント毎に新たに生成される仮想カード番号は重複して生成されない。具体的に、細部コード生成部110は、単位カウント毎に新たに生成される仮想カード番号が特定のユーザ又は特定の仮想カード番号生成装置100に定められた期間に重複して生成されないだけでなく、特定のグループに属するユーザ間でも重複して生成されないように設定される。
【0080】
仮想カード番号の重複生成を防止する具体的な一実施形態として、M個の文字でN桁の前記第1コード又は前記第2コードを生成する場合、仮想カード番号生成関数に含まれる細部コード生成関数はM
N個のコードを第1コード又は第2コードとして生成することができ、それぞれのコードを細部コード生成関数が駆動される初期時点から各カウント毎にマッチする。例えば、単位カウントを1秒に設定する場合、細部コード生成関数が最初に駆動された時点から毎秒、異なるM
N個のコードをマッチする。そして、特定の細部コード生成関数を用いる周期又は仮想カード番号生成装置100の使用周期(例えば、仮想カード番号を生成するスマートカードの有効期間)をM
Nカウントに該当する時間長(例えば、1カウントが1秒である場合、M
N秒)よりも短い時間長に設定すると、第1コード又は第2コードは、使用周期の間に同一のコードが重複して生成されない。即ち、時間が経過するにつれてカウントが増加するとき、ユーザが特定時点で仮想カード番号生成装置100に仮想カード番号の生成を要求する場合、仮想カード番号生成装置100は、特定時点に対応するカウントにマッチしたコード値を第1コード又は第2コードとして生成できる。
【0081】
具体的に、アルファベットの大文字と0から9までの数字をコードに含むことが可能な文字として使用(即ち、36個の文字を使用)し、実際カード番号のカード識別番号と有効期間の桁を活用して第1コードと第2コードにそれぞれ6桁を割り当てる場合、仮想カード番号生成装置100は第1コード及び第2コードとして36
6個のコードを提供できる。このとき、仮想カード番号生成装置100は、それぞれのコードを各カウント毎にマッチさせ、各カウント毎に変更された第1コード及び第2コードを提供できる。
【0082】
仮想カード番号の重複生成を防止する具体的な他の実施形態として、仮想カード番号生成装置100の使用周期が経過すれば、第1コード又は第2コードを生成する関数(即ち、第1関数又は第2関数)を変更するか、第1コードと第2コードのマッチング関係を変更して以前の使用周期と異なる仮想カード番号が生成されるようにする。仮想カード番号が、第1関数により生成される第1コードと第2関数により生成される第2コードが結合される場合、第1コード生成関数又は第2コード生成関数が変更されると、仮想カード番号生成装置100は、第1コード又は第2コードが登場する順序が以前の使用周期と相違することにより、以前周期と異なる仮想カード番号を生成する仮想カード番号生成関数を新規の使用周期へ適用できる。また、仮想カード番号生成装置100は、以前の使用周期で用いられた仮想カード番号と同一のコードが新規の使用周期内の各カウントの仮想カード番号として登場しないように(即ち、第1関数によって生成される第1コードと第2関数によって生成される第2コードのマッチング関係が、新規の使用周期の全てのカウントで、以前の使用周期内に含まれているマッチング関係の中に含まれないように)第1関数と第2関数を選択できる。即ち、M
N個のコードを1回ずつ適用できる使用周期を経過した後、仮想カード番号生成関数の調節又は更新を通じて以前の使用周期と重なる仮想カード番号が生成されない新規の使用周期の仮想カード番号生成関数を適用できる。
【0083】
このとき、仮想カード番号生成手段10及び仮想カード番号検証手段20は、仮想カード番号生成関数を更新する規則を格納できる。即ち、仮想カード番号生成手段10及び仮想カード番号検証手段20は、複数の第1関数と第2関数を各使用周期に適用する順序又は規則を格納できる。
【0084】
また、仮想カード番号の重複生成を防止する具体的な他の実施形態として、同一のグループに属するユーザ間でも同一の仮想カード番号が同一時点に生成されないように、仮想カード番号に含まれる第1コード又は第2コードのうち何れか1つは少なくとも仮想カード番号生成装置100毎に同一時点に常に相違して存在する値(即ち、装置識別値)を反映し、生成できる。一実施形態として、装置識別値は、特定の細部コード生成関数が適用されるグループに特定の仮想カード番号生成装置100が含まれている時点(例えば、仮想カード番号検証手段20内に特定の細部コード生成関数が駆動された最初の時点から特定時間が経過した後、特定の仮想カード番号生成装置100に前記細部コード生成関数が適用され始めた時点)から現在まで経過した時間(又はカウント数)であり得る。1つのグループ内に複数の仮想カード番号生成装置100が含まれる場合、仮想カード番号生成装置100を該当グループに属するように設定するカウントを異なるようにすれば(即ち、仮想カード番号生成装置100が該当グループに同時に属せなくすれば)、仮想カード番号生成装置100がグループに属するようになった時点(又はカウント)から特定時点までの経過時間は各仮想カード番号生成装置100毎に異なることになる。従って、細部コード生成関数のうち少なくとも何れか1つは、仮想カード番号生成装置100がグループに属するようになった時点(又はカウント)から特定時点までの経過時間を装置識別値として用いて、各時点毎にそれぞれの仮想カード番号生成装置100で生成される仮想カード番号が異なるようにすることができる。これにより、仮想カード番号検証手段20がユーザを区別するためのデータを別途に受信せず、仮想カード番号を受信するだけで仮想カード番号生成装置100の区別が可能にすることができる。
【0085】
例えば、仮想カード番号生成装置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にカードが発行された時点から経過した時間長を変数として適用することによって、同一時点に同一の仮想カード番号が生成されないようにすることができる。
【0086】
また、特定の仮想カード番号生成装置100が特定のグループに属するようになった時点から経過した時間長は、時間が経過するにつれて増加し続けるので、特定の仮想カード番号生成装置100で生成される細部コード(例えば、第2コード)は同一の値が生成されず、継続して異なる値が生成される。
【0087】
更に、仮想カード番号の重複生成を防止する具体的な更に他の実施形態として、周期全体においてユーザと関係なく重複した仮想カード番号が発生しないように、第1コードは、仮想カード番号検証手段20内で第1関数が駆動される初期時点から各カウント毎にマッチされたコードのうち、仮想カード番号の生成が要求された時点(又はカウント)に対応するコード値に設定し、第2コードは、仮想カード番号生成装置100毎に同一時点に常に相違して存在する値(即ち、装置識別値)を反映させて生成されるコード値に設定し、仮想カード番号を前記第1コードと第2コードが結合されたコード値として利用できる。第1コードは各カウント毎に異なるコード値となり、第2コードは同一時点に仮想カード番号生成装置100毎に異なるコード値を有するようになり、第1コードと第2コードが結合された仮想カード番号は、全ての仮想カード番号生成装置100と全ての時点で異なるコード値が出力されるようになる。
【0088】
また、他の実施形態として、前記仮想カード番号生成関数(又は細部コード生成関数)は、M個の文字を昇順に並べる多数の羅列規則のうち何れか1つが適用される。即ち、仮想カード番号生成装置100(即ち、仮想カード番号生成手段10)は、仮想カード番号生成関数内に含まれる細部コード生成関数にM個の文字を昇順に並べる規則を多様に適用して行える。例えば、アルファベットの大文字を昇順に並べる羅列規則は、一般的な順序であるA、B、C、...、Zの順となってもよく、A、C、B、...、Zの順となってもよい。仮想カード番号生成関数で羅列規則が変わることによって仮想カード番号生成関数が駆動される初期時点から各カウントに順にコードがマッチされる順序が変わることになる。仮想カード番号検証手段20は、同一の羅列規則に従って生成されたコードが各カウントにマッチされているか、同一の羅列規則自体を仮想カード番号生成関数に含んで格納できる。従って、各グループ別の仮想カード番号生成関数が異なる細部コード結合関数を含むか、異なる文字羅列規則を含み、各グループ別に異なる仮想カード番号生成関数を有するようにすることができる。
【0089】
仮想カード番号提供部130は、前記仮想カード番号を仮想カード番号検証装置200に提供するために外部に出力する役割を果たす。仮想カード番号提供部130は、仮想カード番号を外部に提供できる多様な構成を含むことができる。仮想カード番号提供部130は、無線インターネットモジュール、近距離通信モジュール、ICチップ(131)、磁場発生部、ディスプレイ部(132)などの全部又は一部を含む。
【0090】
無線インターネットモジュールとは、無線インターネットへの接続のためのモジュールのことをいい、移動端末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)などが利用されることができる。例えば、仮想カード番号生成装置100が仮想カード番号生成手段であるAPPカードアプリケーションがインストールされた移動端末である場合、ショッピングアプリケーション又はショッピングウェブサイトで商品を購入するとき、仮想カード番号生成装置100は、無線インターネット通信を介して支払い決済サービスサーバ(即ち、PG会社サーバ)40に仮想カード番号を送ることができる。
【0091】
近距離通信モジュールとは、近距離通信のためのモジュールを指す。近距離通信(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などが利用されることができる。
【0092】
仮想カード番号提供部130は、仮想カード番号生成装置100がPOS装置に仮想カード番号を伝達するカードに該当する場合、磁場発生部又はICチップを含むことができる。磁場発生部は、カードデータを磁気信号の形態で出力してカードリーダに伝達する機能を行う。磁場発生部は、電流の流れを通じて磁場を形成してカード情報磁気信号を出力する磁気セルを1つ以上含むことができる。磁場発生部は、カードのPCB板の特定の長辺に隣接するように前記長辺に沿ってPCB板の上面又は下面に露出するように具備することができる。
【0093】
ICチップは、PCB板内に実装され、IC方式のカードリーダの端子と接触してデータの交換を行うようにすることができる。即ち、ICチップは、仮想カード番号生成部120で生成された仮想カード番号をIC方式のカードリーダに伝達する。
【0094】
ディスプレイ部は、液晶ディスプレイ(liquid crystal display)、薄膜トランジスタ液晶ディスプレイ(thin film transistor-liquid crystal display)、有機発光ダイオード(organic light-emitting diode)、フレキシブルディスプレイ(flexible display)、電子ペーパ(E-paper)のうち少なくとも1つを含むこともできる。
【0095】
ディスプレイ部は、仮想カード番号生成部120で生成した仮想カード番号を視覚的に外部に出力する。これにより、仮想カード番号生成装置100のユーザは、リアルタイムに生成された仮想カード番号を視覚的に確認でき、仮想カード番号検証手段20に視覚的に確認した仮想カード番号を直接入力できる。
【0096】
例えば、
図4に示すように、仮想カード番号生成装置がスマートカードである場合、仮想カード番号生成装置は、表面にカード番号を記載せず、仮想カード番号を出力できるディスプレイ部を具備することができる。また、例えば、仮想カード番号が発行者識別番号と同一の固定コードを含む場合、仮想カード番号生成装置100は、発行者識別番号をカードの表面に記載し、残りのカード番号の桁のみディスプレイ部に有することができる。例えば、前記ディスプレイ部は、電子ペーパ、OLEDなどであってもよく、それぞれの桁に備えられる7-Segmentディスプレイであってもよい。また、例えば、仮想カード生成装置がAPPカードアプリケーションがインストールされているスマートフォンである場合、ディスプレイ部は、APPカードアプリケーションが実行されて表示されるスマートフォンのディスプレイ部であり得る。
【0097】
また、ユーザは、ディスプレイ部に表示された仮想カード番号を文字メッセージなどの多様な経路を通じて仮想カード番号を送ることができる。実際カード番号を伝送するのではなく、仮想カード番号検証手段20で実際カード番号を探索できる仮想カード番号(具体的に、継続的に変更・生成されるコード)を伝達するので、ユーザが文字メッセージなどを通じてコードを伝送する際に実際カード番号の流出を恐れないようにすることができる。
【0098】
図5は、本発明の一実施形態に係る仮想カード番号検証装置200の構成図である。
【0099】
図5を参照すると、本発明の更に他の一実施形態に係る仮想カード番号検証装置200は、仮想カード番号受信部210、細部コード抽出部220及び実際カード番号探索部230を含む。仮想カード番号検証装置200は、金融機関のサーバ(例えば、カード会社又は銀行のサーバ)であり得る。
【0100】
例えば、仮想カード番号検証装置200は、特定のユーザが保有している特定カード会社の特定類型のカードに対する仮想カード番号を受信した後、実際カード番号を探索して決済を進めるカード会社サーバであり得る。具体的に、カード決済の場合、仮想カード番号検証装置200は、POS装置及びPG会社のサーバを介して仮想カード番号生成装置100で生成した仮想カード番号を受信する。
【0101】
また、例えば、ユーザが仮想カード番号生成装置であるスマートカードを用いてATMから現金を引き出そうとする場合、仮想カード番号検証装置200が銀行サーバであり得る。即ち、ユーザが仮想カード番号生成装置100であるスマートカードで現金自動預払機(AMT)に仮想カード番号を入力(例えば、スマートカードをカード挿入口に挿入するか、NFCリーダに接触)すると、銀行サーバはATMから仮想カード番号を受信した後、実際カード番号を探索する。
【0102】
仮想カード番号受信部210は、仮想カード番号生成装置100から仮想カード番号を受信する役割を果たす。一実施形態として、仮想カード番号受信部210は、他のサーバ(例えば、支払い決済サービスサーバ)との通信を介して仮想カード番号生成装置100で生成された仮想カード番号を受け取ることができる。
【0103】
細部コード抽出部220は、前記仮想カード番号に含まれている複数の細部コードを抽出する。前記仮想カード番号は、複数の細部コードを特定の規則に従って結合して生成される。仮想カード番号検証装置200の細部コード抽出部220は、特定グループの仮想カード番号生成装置100と同一の細部コード結合関数を含み、細部コード抽出部220は、細部コード結合関数を適用して仮想カード番号から複数の細部コードを抽出できる。例えば、仮想カード番号生成装置100で2つの細部コード(即ち、第1コード及び第2コード)が結合された仮想カード番号を生成する場合、細部コード抽出部220は、仮想カード番号の文字配列から細部コード結合関数を適用して第1コード及び第2コードを分離できる。
【0104】
実際カード番号探索部230は、複数の細部コードを基に実際カード番号の格納位置を探索する。実際カード番号探索部230がそれぞれの細部コードを基に実際カード番号の格納位置を探索する方式としては、多様な方式が適用され得る。実際カード番号探索部230が複数の細部コードを基に格納位置を探索するために細部コード間には相関関係を含むことができる。
【0105】
仮想カード番号が第1コード及び第2コードで構成される場合、細部コード間で相関関係を有する一実施形態として、実際カード番号探索部230は第1コードに対応する探索開始地点を決定し、前記探索開始地点から第2コードに相応する探索経路に沿って移動した地点を実際カード番号の格納位置として探索できる。即ち、前記細部コードは、格納位置探索の開始地点を設定する第1コード及び特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定する第2コードを含むことができる。
【0106】
また、他の実施形態として、仮想カード番号生成手段10(又は仮想カード番号生成装置100)が単位カウント毎に新規の仮想カード番号を提供することによって、仮想カード番号検証装置200は、各カウント毎に変更される第1コード及び第2コードを基に探索開始地点と探索経路を設定して実際カード番号の格納位置を探索できる。
【0107】
更に、他の実施形態として、実際カード番号探索部230は、相関関係を有する複数の細部コードを用いて実際カード番号の格納位置を探索するために、格納位置探索アルゴリズムを含むことができる。格納位置探索アルゴリズムは、仮想カード番号に含まれるそれぞれの細部コードの適用時に格納位置の探索が可能にするアルゴリズムである。例えば、仮想カード番号から格納位置の探索開始地点を決定する第1コードと探索開始地点からの格納位置の方向を提示する第2コードを含む場合、格納位置探索アルゴリズムは、第1コードに対応する地点で第2コードに対応する方向を指示するとき、該当位置に実際カード番号がマッチされる格納位置が配置されるように調節するアルゴリズムである。格納位置探索アルゴリズムを用いることによって、仮想カード番号検証装置200は、仮想カード番号に含まれている第1コードと第2コードが変更されても実際カード番号の格納位置又は格納位置にマッチされた地点を探索できる。格納位置探索アルゴリズムは多様な方式が適用され得、具体的な例示は後述する。但し、格納位置探索アルゴリズムは、後述される例示に限定されない。
【0108】
例えば、後述するように、
図8を参照すると、格納位置探索アルゴリズムが第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角形の頂点を探索できる。
【0109】
具体的に、
図8に示すように、仮想カード番号検証装置200は、第1コードに対応する地点にk角形を転がり移動(即ち、k角形の各頂点とトラック上の各地点が順に接するようにしながら移動)させる。その後、仮想カード番号検証装置200は、第2コードに相応する角度の方向を指示して格納位置に相応する頂点を探索する。例えば、仮想カード番号生成手段Bは、実際カード番号の発行を受けた後、2カウントが経過したので、仮想カード番号生成手段Bは、2カウントを関数値に適用した第2コードを生成して仮想カード番号検証手段に提供する。仮想カード番号検証手段は、k角形とトラックが接する地点で各頂点に向かう角度に各カウント毎に第2関数により生成される第2コードをマッチして格納(即ち、nカウントが適用された第2コードをk角形のnカウントだけ転がり移動することによって転がり移動されたn番目の頂点に向かう角度でマッチして格納)するので、仮想カード番号検証手段は、第2コードに相応する角度を第1コードの対応地点に適用して実際カード番号の格納位置に対応するk角形の頂点を探索する。
【0110】
また、他の実施形態として、
図6に示すように、前記仮想カード番号検証装置200は、仮想カード番号検証部240を更に含む。仮想カード番号検証部240は、仮想カード番号検証装置200が受信した仮想カード番号の真偽を判断する役割を果たす。
【0111】
図7は、本発明の一実施形態に係る仮想カード番号基盤の金融取引提供方法の順序図である。
【0112】
図7を参照すると、本発明の一実施形態に係る仮想カード番号基盤の金融取引提供方法は、仮想カード番号検証手段20が仮想カード番号生成手段10から提供された仮想カード番号を受信する段階(S200;仮想カード番号受信段階)、前記仮想カード番号検証手段20が前記仮想カード番号に含まれている複数の細部コードを抽出する段階(S400)及び前記仮想カード番号検証手段20が複数の細部コードを基に実際カード番号の格納位置を探索する実際カード番号探索段階(S1000)及び前記格納位置から抽出された前記実際カード番号で金融取引の進行又は金融取引の進行を要求する段階(S1200)を含む。以下、各段階に関する詳細な説明を記載する。但し、仮想カード番号生成装置100及び仮想カード番号検証装置200に対する説明過程で前述した内容に関する具体的な開示は省略する。
【0113】
仮想カード番号検証手段20が仮想カード番号生成手段10から仮想カード番号を受信する(S200;仮想カード番号受信段階)。仮想カード番号は、仮想カード番号生成装置100(又は仮想カード番号生成手段10)で生成され、仮想カード番号検証手段20に提供される。
【0114】
仮想カード番号生成手段10で生成される仮想カード番号は、複数の細部コードで構成され得る。一実施形態として、仮想カード番号は第1コードと第2コードの結合により生成され得る。第1コード及び第2コードは、仮想カード番号検証手段20で実際カード番号の位置を探索するのにそれぞれ用いられる。例えば、第1コードは、仮想カード番号検証手段20で実際カード番号の格納位置探索の開始地点を設定するコードであり、第2コードは、特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定するコードであり得る。
【0115】
前記探索方式は、格納位置探索アルゴリズムにより決定され得る。探索方式の決定に関する詳細な説明は、後述する実際カード番号探索段階(S1000)で詳細に記述する。
【0116】
また、他の実施形態として、前記仮想カード番号生成関数は、M個の文字でN桁の前記第1コード又は前記第2コードを生成する場合、異なるM
N個のコードを単位カウント毎に順次変更される第1コード又は第2コードとして提供する第1関数又は第2関数を含む。即ち、第1関数又は第2関数は、M
N個のコードをカウントの増加によって重ならないように生成する関数であって、特定の時点に対応するカウントにM
N個のコードのうち、特定の1つを第1コード又は第2コードとして生成する。これにより、仮想カード番号生成手段10は、M
Nカウント(即ち、M
N個のカウントに対応する時間長)内に同一の第1コード又は第2コードを重複して生成せず、単位カウント毎に新たな細部コード(即ち、第1コード又は第2コード)を生成し、単位カウント毎に新たな仮想カード番号を生成する。
【0117】
具体的に、仮想カード番号生成関数は、M個の文字でN桁の前記第1コード又は前記第2コードを生成することによって、M
N個のコードを第1コード又は第2コードとして用いる場合、それぞれのコードを細部コード生成関数が駆動される初期時点から各カウント毎にマッチする。例えば、単位カウントを1秒に設定する場合、細部コード生成関数が最初に駆動された時点から毎秒、異なるM
N個のコードをマッチする。そして、特定の細部コード生成関数を用いる周期又は仮想カード番号生成装置100の使用周期(例えば、仮想カード番号を生成するスマートカードの有効期間)をM
Nカウントに該当する時間長(例えば、1カウントが1秒である場合、M
N秒)よりも短い時間長に設定すると、第1コード又は第2コードは、使用周期の間に同一のコードが重複して生成されない。即ち、時間が経過するにつれてカウントが増加するとき、ユーザが特定時点で仮想カード番号生成手段10に仮想カード番号の生成を要求する場合、仮想カード番号生成装置100は、特定時点に対応するカウントにマッチされたコード値を第1コード又は第2コードとして生成できる。
【0118】
また、他の実施形態として、同一のグループ(即ち、同一のカード会社の同一のカード類型のグループ)内でも同一の仮想カード番号が同一時点に生成されないように、仮想カード番号に含まれる第1コード又は第2コードのうち少なくとも何れか1つは、各仮想カード番号生成手段10で同一時点に常に相違して存在する値(即ち、装置識別値)を反映し、生成できる。即ち、特定の時点で同一のカード類型又はカード種類である、複数の仮想カード番号生成手段10で仮想カード番号の発行が要求される場合、各仮想カード番号生成手段10が異なる仮想カード番号を生成するように各時点で各仮想カード番号生成手段10に異なって付与される値を反映させて異なる第1コード又は第2コードを生成する。
【0119】
例えば、仮想カード番号が発行会社識別コードに該当する固定コードを含む場合、仮想カード番号検証装置200(例えば、カード会社サーバ)は発行会社識別番号で区別される各カード会社のカードの類型別に仮想カード番号生成関数を付与する。従って、仮想カード番号生成手段10は、固定コードにより異なるカード会社/カードの類型間で異なる仮想カード番号を生成するので、同一のカード会社の特定のカード類型のグループ内で同一の仮想カード番号が生成されないように細部コードを生成しなければならない。このために、各仮想カード番号生成手段10が異なる仮想カード番号を生成するように各時点で各仮想カード番号生成手段10に相違して付与される値を反映させて異なる細部コードを生成する。
【0120】
一例として、装置識別値は、特定の細部コード生成関数が適用されるグループに特定の仮想カード番号生成手段10が含まれている開始時点(例えば、仮想カード番号検証手段20内に特定の細部コード生成関数が駆動された最初の時点から特定時間が経過した後、特定の仮想カード番号生成装置100に前記細部コード生成関数が適用され始めた時点)から現在まで経過した時間(又はカウント数)であり得る。例えば、装置識別値は、特定のユーザの要求によって特定のカード会社のカードの類型に実際カード番号を発行し、実際カード番号が該当カード類型のグループに属するようになったカウントからの経過時間が用いられることができる。例えば、仮想カード番号が第1コードと第2コードの結合により生成される場合、仮想カード番号生成関数は、実際カード番号を新たに生成した時点から経過した単位カウントを基に第2コードを生成するようにすることができる。
【0121】
複数の仮想カード番号生成手段から同時に仮想カード番号の発行を要求された場合にも異なるコードが生成されなければ重複コードの発生に伴う問題を解消できない。仮想カード番号生成手段10を該当カード類型のグループに属するように設定するカウントを異なるようにすれば(即ち、仮想カード番号生成手段10に対する実際カード番号を該当カード類型のグループに同一時点に登録できなくすれば)、仮想カード番号生成手段10がグループに属するようになった時点(又はカウント)から特定時点までの経過時間は各仮想カード番号生成装置100毎に異なることになる。例えば、同時に特定のカード会社の特定のカード類型のカード発行要求が受信される場合、仮想カード番号検証手段20は、同時に受信されたカードの発行要求を、予め定められた条件によって順序を付与して他のカウントに要求が入力されたものとして処理できる。即ち、仮想カード番号検証手段20は、実際に同時に受信したカードの発行要求を少なくとも単位カウントの差が1つ発生するように異なるカウントにマッチし、これにより、各仮想カード番号生成手段10に対する実際カード番号が発行された時点から特定の同一時点まで経過したカウント数が常に異なるようにすることができる。
【0122】
従って、細部コード生成関数のうち少なくとも何れか1つは、仮想カード番号生成装置100が特定のカード類型のグループに属するようになった時点(又はカウント)から特定時点までの経過時間を装置識別値として用いて、各時点毎にそれぞれの仮想カード番号生成装置100で生成される仮想カード番号が常に異なるようにすることができる。これにより、仮想カード番号検証手段20がユーザを区別するためのデータを別途に受信せず、仮想カード番号を受信するだけで仮想カード番号生成手段10の区別が可能にすることができる。
【0123】
また、特定の仮想カード番号生成装置100が特定のカード類型のグループに属するようになった時点から経過した時間長は、時間が経過するにつれて継続して増加するようになるので、特定の仮想カード番号生成装置100で生成される細部コード(例えば、第2コード)は同一の値が生成されず、継続して異なる値が生成される。
【0124】
なお、更に他の実施形態として、周期全体においてユーザと関係なく重複した仮想カード番号が発生しないように、第1コードは、第1関数が駆動される初期時点から各カウント毎にマッチされたコードのうち、仮想カード番号の生成が要求された時点(又はカウント)に対応するコード値に設定し、第2コードは、仮想カード番号生成装置100毎に同一時点に常に相違して存在する値(即ち、装置識別値)を反映させて生成されるコード値に設定し、仮想カード番号を前記第1コードと第2コードが結合されたコード値として利用できる。第1コードは各カウント毎に異なるコード値となり、第2コードは同一時点に仮想カード番号生成装置100毎に異なるコード値を有するようになり、第1コードと第2コードが結合された仮想カード番号は、仮想カード番号生成装置100及び時点と関係なく異なるコード値が出力されるようになる。
【0125】
また、他の実施形態として、前記仮想カード番号生成関数は、複数の細部コードを配列する規則に該当する細部コード結合関数を含む。即ち、仮想カード番号生成関数は、複数の細部コードに含まれている文字を羅列又は配置する特定の規則を有していることができる。これにより、同一の仮想カード番号生成関数を含む仮想カード番号生成手段10と仮想カード番号検証手段20の場合、仮想カード番号生成手段10が複数の細部コードに含まれている文字を細部コード結合関数によって配列し、仮想カード番号検証手段20が同一の細部コード結合関数を用いて仮想カード番号から個別の細部コードを分離できる。
【0126】
更に、他の実施形態として、前記仮想カード番号生成関数は、M個の文字を昇順に並べる多数の羅列規則のうち何れか1つが適用され得る。即ち、仮想カード番号生成関数は、M個の文字を昇順に並べる多様な羅列規則が適用され得、適用される羅列規則に従って異なる仮想カード番号生成関数に分類され得る。
【0127】
仮想カード番号検証手段20は、仮想カード番号生成手段10が生成した仮想カード番号を多様な方式で受信する。即ち、上述した仮想カード番号生成装置100の多様な仮想カード番号提供方式が適用され得る。
【0128】
例えば、カード会社サーバが前記仮想カード番号検証手段を含む場合、前記仮想カード番号受信段階(S200)は、前記仮想カード番号検証手段が支払い決済サービスサーバで前記固定コードを基に特定のカード会社に対応するものとして分類された前記仮想カード番号を受信する。このとき、前記支払い決済サービスサーバは、金融取引端末30やコンピュータで駆動される決済プログラムから仮想カード番号を受信する。
【0129】
仮想カード番号検証手段20が前記仮想カード番号に含まれている複数の細部コードを抽出する(S400)。仮想カード番号検証手段20は、仮想カード番号生成手段10が含む仮想カード番号生成関数を含むことによって、複数の細部コードを結合していた規則(即ち、細部コード結合関数)を同一に適用して複数の細部コードを抽出する。即ち、細部コード結合関数は、複数の細部コードを配列する規則に該当するものであって、仮想カード番号生成関数内に含まれる。
【0130】
また、他の実施形態として、仮想カード番号が、仮想カード番号生成手段10が含まれているグループを決定する固定コードを含む場合、前記細部コード抽出段階(S400)は、前記仮想カード番号内から前記固定コードを抽出し、前記固定コードを基に前記仮想カード番号生成手段のカード類型のグループを判断し、前記カード類型のグループに対する前記仮想カード番号生成関数又は前記格納位置探索アルゴリズムを決定する。即ち、各グループ別に仮想カード番号生成関数又は格納位置探索アルゴリズムを異なって適用する場合、仮想カード番号検証手段20は、仮想カード番号内の固定コードを基にグループを区別する。
【0131】
また、固定コードを用いて仮想カード番号生成関数を決定する過程は、複数の細部コードを抽出する過程の前に実行され得る。固定コードにより仮想カード番号生成関数が決定されなければ仮想カード番号生成関数内に含まれている細部コード結合関数が決定されず、複数の細部コードを抽出できない。
【0132】
このために、仮想カード番号検証手段20が別途の関数がなくても容易に分離できるように、固定コードは仮想カード番号内に固定された位置(例えば、仮想カード番号の最も前の特定個数の桁)に結合され得る。
【0133】
仮想カード番号検証手段20が複数の細部コードを基に実際カード番号の格納位置を探索する(S1000;実際カード番号探索段階)。複数の細部コードは互いに相関関係にあり、仮想カード番号検証手段20は、細部コード間の相関関係を基に実際カード番号の格納位置を探索する。
【0134】
一実施形態として、仮想カード番号内の複数の細部コードは、単位カウント毎に生成されるコードが変更(例えば、仮想カード番号が2つの細部コードからなる場合、第1コード及び第2コードは単位カウント毎に変更)され得、仮想カード番号検証手段20は、単位カウント毎に仮想カード番号が変更されても実際カード番号の格納位置を探索できるように、実際カード番号の格納位置にマッチされた地点を変更された第1コード及び第2コードに沿う位置に単位カウント毎に調節する。
【0135】
仮想カード番号を構成する細部コード間の相関関係に関する一実施形態として、仮想カード番号が第1コードと第2コードの結合によりなされる場合、仮想カード番号検証手段20は、第1コードを探索開始地点(即ち、実際カード番号の格納位置の探索を始める地点)に設定し、第2コードを前記探索開始地点から格納位置に移動する経路に適用して格納位置を探索できる。即ち、単位カウント毎に正常に生成された仮想カード番号が受信されると、仮想カード番号検証手段20は、第1コードに対応する開始地点から前記第2コードに相応する探索経路に沿って移動した探索地点を実際カード番号の格納位置又は格納位置にマッチされた地点(例えば、別途のサーバの探索地点にマッチされている格納空間)と判断する。
【0136】
一実施形態として、第2コードが第1コードに相応する探索開始地点から格納位置までの経路に関する情報を全て含む場合、仮想カード番号検証手段20は第1コードに相応する探索開始地点から第2コードに相応する探索経路によって実際カード番号の格納位置又は格納位置にマッチされた地点を探索できる。
【0137】
他の実施形態として、仮想カード番号検証手段20は、単位カウント毎に実際カード番号の格納位置を仮想カード番号に沿うように調節する格納位置探索アルゴリズムを含むことができる。即ち、前記仮想カード番号検証手段20は、単位カウント毎に実際カード番号の格納位置にマッチされた地点への探索経路を調節する格納位置探索アルゴリズムを含む。前記第1コード及び前記第2コードは、単位カウント毎に変更される場合、仮想カード番号検証手段20は、変更される第1コード及び第2コードに沿うように格納位置探索アルゴリズムを調節できる。前記格納位置探索アルゴリズムは、多様な形態で実現することができる。
【0138】
一実施形態として、
図9に示すように、格納位置探索アルゴリズムが、k(kはM
N)個のコードが並んだトラック上をk角形が各コードが配置された地点に頂点が対応しながら転がり移動するものであり得る。このとき、前記実際カード番号探索段階(S1000)は、仮想カード番号検証手段20が前記仮想カード番号生成手段10から受信した前記仮想カード番号内の第1コードに対応するトラック上の地点にk角形を転がり移動する段階(S1010)、前記第1コードに対応する位置を開始地点に設定し、前記第2コードに適用された探索方式によって第2コードを基にk角形の配置状態における格納位置又は前記格納位置がマッチされた地点を探索する段階(S1020;格納位置探索段階)及び前記格納位置に含まれている実際カード番号を抽出する段階(S1030)を含む。
【0139】
仮想カード番号検証手段20は、
図8に示すように、仮想カード番号生成手段10から受信した前記仮想カード番号内の第1コードに対応するトラック上の地点にk角形を転がり移動する(S1010)。格納位置探索アルゴリズムは、第1コードに該当するM
N個のコードが並んだトラックに沿って転がり移動するk角形(kはM
N)であり、k角形の頂点が第1コードのトラック上にコードが配置される地点に対応しながら移動する。このとき、仮想カード番号検証手段20は、第1コードに対応する地点にk角形の頂点が接するようにk角形を転がり移動させることができる。
【0140】
仮想カード番号検証手段20は、
図8に示すように、前記第1コードに対応する位置を開始地点に設定し、前記第2コードに適用された探索方式によって第2コードを基にk角形の配置状態における格納位置又は格納位置にマッチされた地点(即ち、k角形の特定の頂点)を探索する(S1020;格納位置探索段階)。前記格納位置は、前記k角形のそれぞれの頂点にマッチされる。第1コードのトラック(即ち、第1トラック)とk角形が対応する地点が第1コードに対応する格納位置の探索開始地点となる。仮想カード番号検証手段20は、探索開始地点から第2コードを基に格納位置のマッチング地点を探索する。
【0141】
第2コードを基にk角形で格納位置を探索する方式としては、多様な方式が適用され得る。一例として、仮想カード番号検証手段20は、k角形が接している第1トラック上の位置で第2コードに相応する角度(例えば、k角形の頂点に向かうように180度をM
N個に分割した特定の角度)で指示することによって、仮想カード番号に対応する実際カード番号が格納された格納位置であるk角形の頂点を探索できる。
【0142】
また、他の例として、k角形が第1トラック上の第1コードに対応する地点に接している状態で、仮想カード番号検証手段20はk角形の中心と第1トラック上の接点を基準に中心角全体(即ち、360度)をM
N個に分割し、それぞれの角度をM
N個の第2コードにマッチする。このとき、k角形の中心と第1トラック上の接点を繋ぐ線から特定個数の単位角度(即ち、360度/M
N)を移動した線の方向はk角形の特定の頂点となる。従って、特定の角度に対応する第2コードが受信されると、仮想カード番号検証手段20は、該当角度方向に位置する頂点を探索できる。
【0143】
更に、他の例として、第2コードの特定の桁を角度算出方向を決定するものとして使用できる。即ち、N個(Nは自然数)の文字を用いて第2コードを生成する場合、1個の桁(Digit)で角度の測定方向を決定できる。例えば、仮想カード番号検証手段20は、k角形の中心と第1トラック上の接点を基準に中心角全体(即ち、360度)を分割してそれぞれの角度に第2コードをマッチする場合、k角形の中心と第1トラック上の接点を繋ぐ線から左側方向に測定される角度か、右側方向に測定される角度かを1個の桁(Digit)の値で決定できる。
【0144】
一例として、格納位置探索アルゴリズムは、k角形上の各頂点に角度の測定方向によって異なる2個の第2コードが1つの頂点に割り当てられることができる。即ち、1つの頂点に内角で到達時と外角で到達時に異なる第2コードとマッチされ、他の実際カード番号が連結され得る。他の例として、格納位置探索アルゴリズムは、N個(Nは自然数)の文字を用いて第2コードを生成する場合にN-1個で角度全体(例えば、中心角を基準に分割する場合360度)の半分に対してマッチし、1個の桁を用いて各頂点に到達するための角度の適用方向を決定できる。
【0145】
第2コードを基にk角形で格納位置を探索する方式はこれに限定されず、第2コードに相応するk角形上の地点と第1トラック上の接点間を特定の割合で分ける地点を格納位置として探索する方式などの多様な方式が適用され得る。
【0146】
その後、仮想カード番号検証手段20は、前記格納位置に含まれている実際カード番号を抽出する(S1030)。即ち、仮想カード番号検証手段20は、k角形の頂点に対応する格納位置を探索し、格納位置内の実際カード番号を抽出する。
【0147】
また、他の実施形態として、前記格納位置探索アルゴリズムは、仮想カード番号を構成する複数の細部コードを基にトラック上を移動して実際カード番号の格納位置にマッチされた地点へ移動する。例えば、前記実際カード番号の格納位置にマッチされた地点は、仮想カード番号生成手段に実際カード番号を発行したカウント(即ち、時点)に対応するトラック上の地点であり得る。
【0148】
具体的に、仮想カード番号が、仮想カード番号生成関数が駆動された時点から経過した時間を基に生成された第1コードと、特定の仮想カード番号生成手段に実際カード番号が発行された時点から経過した時間を基に生成された第2コードとを含む場合、
図10に示すように、仮想カード番号検証手段20は、第1コードに対応するコード値がマッチされたトラック上のカウントを探索開始地点に設定し、第2コードに第2関数の逆関数を適用することによって算出されたカウント値だけ前記探索開始地点からトラックに沿って回帰して仮想カード番号生成手段10に実際カード番号を発行した時点のトラック上の地点(即ち、実際カード番号の格納位置にマッチされた地点)を探索する。仮想カード番号検証手段20は、前記格納位置から抽出された前記実際カード番号で金融取引の進行又は金融取引の進行を要求する(S1200)。
【0149】
また、
図11に示すように、他の実施形態として、特定の仮想カード番号生成手段10から特定のカウントに新規で実際カード番号の生成が要求されると、前記特定のカウントにk角形の特定の頂点に対応する格納位置に実際カード番号を格納する段階(S100;実際カード番号格納段階)を更に含む。前記特定の頂点は、前記特定のカウントにトラック上に接する。仮想カード番号検証手段20が仮想カード番号生成関数及び格納位置探索アルゴリズムを駆動した後、特定の時点(又はカウント)が経過したとき、仮想カード番号検証手段20は、特定の仮想カード番号生成手段10に対する新規の実際カード番号の発行を受信することによって第1トラック上に接しているk角形の頂点にマッチされた格納位置に新たに生成した実際カード番号を格納する。具体的に、仮想カード番号検証手段20で仮想カード番号生成関数及び格納位置探索アルゴリズムが駆動されることによって各カウント毎に1つのコードずつk角形とトラックが接する位置が移動するようにk角形が転がり移動するようになり、特定のカウントに新規の実際カード番号の発行が要求されると、特定のカウントにトラックに接している頂点が実際カード番号が格納されるk角形上の地点として決定される。
【0150】
例えば、
図8に示すように、仮想カード番号検証手段は、A時点で仮想カード番号生成手段Aに対して実際カード番号を発行することによってA時点でトラックに接していたk角形の頂点に仮想カード番号生成手段Aの実際カード番号を格納する。その後、カウントが経過するにつれてk角形はトラックに沿って転がり移動を行う。k角形の回転により仮想カード番号生成手段Aの実際カード番号が格納された格納位置が回転するようになる。
【0151】
即ち、トラックと接するk角形の頂点に実際カード番号が格納された後、nカウントが経過しただけk角形が回転し、経過したnカウント数だけ実際カード番号が格納された地点が回転する。従って、第2コードが実際カード番号が発行されたカウント(即ち、時点)から経過した単位カウント数を反映させて算出されると、仮想カード番号検証手段20は、第2コードを通じて仮想カード番号が生成された時点で実際カード番号が格納されたk角形上の地点を算出することができる。
【0152】
具体的に、第1コードが仮想カード番号検証手段20内で特定の仮想カード番号生成関数及び格納位置探索アルゴリズムが駆動された最初の時点から経過したカウント数に対応するコード値であり、第2コードが特定の仮想カード番号生成手段10に対して実際カード番号を発行した後、経過したカウント数に対応するコード値である場合、仮想カード番号検証手段20は、第1コードを通じて仮想カード番号生成手段10で仮想カード番号の生成を要求した時点(例えば、C時点)を把握し、第2コードを通じて該当時点のk角形の配置状態で実際カード番号が格納されたk角形上の頂点を把握する。即ち、第1コードは、k角形の特定の頂点を探索できるk角形の配置状態となるようにするトラック上の地点を決定するのに利用され、第2コードは、第1コードに対応するトラック上の地点にk角形が配置された後に実際カード番号の格納位置にマッチされたk角形上の頂点を探索するのに用いられる。これにより、仮想カード番号生成手段10で仮想カード番号を生成した後、仮想カード番号検証手段20に提供されるが、遅延時間(delay time)があっても、仮想カード番号検証手段20は、仮想カード番号に対応する実際カード番号を正確に探索できる。
【0153】
また、他の実施形態として、
図10に示すように、1つのトラック上で第1コードと第2コードを基に移動する格納位置探索アルゴリズムを用いる場合、仮想カード番号検証手段20は、仮想カード番号生成関数が駆動された時点からトラックの開始地点よりスタートしたポインタ(Pointer)が単位カウントが経過する度にトラック上の分割単位を移動して実際カード番号の発行時点(A時点)に位置するトラック上の地点を実際カード番号の格納位置にマッチされた地点として決定できる。
【0154】
更に、他の実施形態として、
図12に示すように、前記仮想カード番号検証手段20が前記第1コード又は前記第2コードを前記第1関数又は第2関数の逆関数を適用して正常に生成された仮想カード番号に該当するかを検証する段階(S500)を更に含む。例えば、第1コードが仮想カード番号検証手段20内で特定の仮想カード番号生成関数及び格納位置探索アルゴリズムが駆動された最初の時点から経過したカウント数に対応するコード値であり、第2コードが特定の仮想カード番号生成手段10に対して実際カード番号を発行した後、経過したカウント数に対応するコード値である場合、仮想カード番号検証手段20は、実際カード番号を格納位置に格納するとき、仮想カード番号生成関数の駆動後に実際カード番号の発行時まで経過した時間(Ts)を共に格納する。仮想カード番号検証手段20は、仮想カード番号内の第1コードに第1関数の逆関数を適用して仮想カード番号生成関数の駆動時から仮想カード番号の生成時点までの経過時間(T1)を算出し、仮想カード番号内の第2コードに第2関数の逆関数を適用して実際カード番号の発行時から仮想カード番号の生成時点までの経過時間(T2)を算出する。その後、仮想カード番号検証手段20は、T1とT2との差がTsに該当するか否かを判断して仮想カード番号を検証する。
【0155】
また、他の実施形態として、
図13に示すように、前記仮想カード番号生成手段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)。
【0156】
更に、他の実施形態として、前記仮想カード番号は特定の桁数の仮想セキュリティコードを更に含む場合、前記仮想カード番号検証手段が前記仮想カード番号生成手段から受信した受信仮想セキュリティコードと前記仮想カード番号検証手段内で生成された生成仮想セキュリティコードとが一致するか否かを判断して仮想カード番号を検証する段階を更に含む。仮想セキュリティコードはカードセキュリティコードの桁数に対応するように生成されることができ、実際カード番号のカードセキュリティコードの位置に表示されることができる。
【0157】
一実施形態として、仮想セキュリティコードは、仮想カード番号生成装置内の固有値及びカードセキュリティコード(例えば、CVC/CVV番号)を基に生成されることができる。前記固有値は、それぞれの仮想カード番号生成装置毎に個別に付与された装置固有値である。固有値及びカードセキュリティコードは、それぞれの仮想カード番号生成装置100毎に付与されるものであるので、悪質な目的で仮想カード番号生成装置をハッキングするために、新たに仮想カード番号生成装置の発行を受けた者が個別の仮想カード番号生成装置に付与された固有値及びカードセキュリティコードを確認することができない。従って、仮想カード番号検証手段20が仮想カード番号生成手段10により固有値及びカードセキュリティコードを基に生成された仮想セキュリティコードを受信し、仮想カード番号生成手段10を検証できる。
【0158】
また、他の実施形態として、仮想カード番号生成手段10は、時間値を反映させて仮想セキュリティコードを生成できる。即ち、仮想カード番号生成手段10は、OTP(One Time Password:固定されたパスワードの代わりに無作為に生成される一回限りのパスワードを用いる使用者認証)方式を用いて仮想セキュリティコードを生成できる。仮想カード番号検証手段20は、仮想セキュリティコードに該当するOTP番号を仮想カード番号生成手段10から受信し、仮想カード番号生成手段10よりOTP番号を受信したカウントから特定範囲内のカウントで算出されたOTP番号を比較して仮想カード番号生成手段10を検証する。即ち、仮想カード番号検証手段20は、実際カード番号の格納位置内にカードセキュリティコード(例えば、CVC/CVV)と固有値を共に格納し、仮想カード番号が受信された時点で実際カード番号の格納空間から抽出されたカードセキュリティコード及び固有値を用いて生成されたOTP番号と仮想カード番号生成手段10から受信したOTP番号とが一致するかを判断し、仮想カード番号生成手段10を検証する。
【0159】
また、他の実施形態として、仮想セキュリティコードは、仮想カード番号生成手段が外部に出力せず、第1コード及び第2コードの生成に反映されることができる。
図14に示すように、仮想カード番号生成手段10は、仮想カード番号生成装置内の固有値及びカードセキュリティコードを基に生成された仮想セキュリティコード値をカード番号の発行時点に加えたカウントの第1コードを生成し、仮想セキュリティコード値に対応するカウントの第2コードを生成する。即ち、第1コード及び第2コードは、仮想カード番号生成装置Aに実際カード番号が発行されたA時点から仮想セキュリティコード値だけ移動(shifting)したカウントを基に生成される。A時点から移動(shifting)したカウントは、生成される仮想セキュリティコード値によって現在時点に対応するカウントよりも以前のカウントになることもでき、以後のカウントになることもできる。仮想カード番号検証手段20は、受信した第1コードと第2コードを格納位置探索アルゴリズムに適用して実際カード番号の格納位置がマッチされた地点を探索できる。これにより、他人が仮想カード番号を構成する第1コード及び第2コードが提供される順序を確認できなくなり、セキュリティが向上し得る。更に、他の実施形態として、仮想カード番号検証手段20は、仮想セキュリティコードを基に生成された第2コードから仮想セキュリティコードを抽出した後、仮想セキュリティコード生成関数(即ち、OTP関数)を仮想カード番号を受信したカウントから特定範囲内のカウントを入力して算出されたOTP番号のうち、仮想セキュリティコードと一致する値があるか否かを確認する。仮想カード番号検証手段は、第2コードに第2関数の逆関数を適用して第2コードの生成に用いられた仮想セキュリティコード値(即ち、OTP関数値)を獲得し、仮想セキュリティコード値と同一の値を算出するカウントを探索する。仮想カード番号の伝送時間や遅延により仮想カード番号生成手段で仮想セキュリティコードが生成された時点と仮想カード番号検証手段が仮想セキュリティコードを受信した時点の間に差が存在することにより、仮想カード番号検証手段20が仮想カード番号を受信したカウントと仮想セキュリティコードに該当するOTP番号を生成したカウントとが一致しないこともあり得るので、仮想カード番号検証手段20は、仮想カード番号を受信したカウントから誤差範囲を許容する。これにより、仮想カード番号検証手段20は、仮想カード番号を伝送した仮想カード番号生成手段が正常に実際カード番号とマッチしているかを検証でき、セキュリティが向上し得る。また、ユーザは、仮想カード番号の入力時に特定の桁数の仮想セキュリティコードを入力しなくても仮想カード番号検証手段20が自ら仮想セキュリティコードを探索して仮想カード番号生成手段10を検証するので、仮想カード番号生成手段10を容易に使用できる。
【0160】
また、他の実施形態として、仮想カード番号生成手段10は、金融取引が要求された時点で仮想カード番号生成装置内の固有値及びカードセキュリティコードを基に生成された仮想セキュリティコード値を加えたカウントに対応する第1コードを生成し、実際カード番号の発行時点(A時点)と金融取引の要求時点(C時点)間のカウントの差に仮想セキュリティコード値を加えたカウントに対応する第2コードを生成する。即ち、仮想カード番号生成手段10が第1コードと第2コードを生成する式は以下のように表される。
【0161】
[数1]
第1コード=f
1(C時点のカウント+仮想セキュリティコード)
第2コード=f
2(C時点のカウント-A時点のカウント+仮想セキュリティコード)
(A時点:実際カード番号の発行時点、C時点:金融取引要求時点のカウント、仮想セキュリティコード:OTP番号)
【0162】
仮想カード番号検証手段20は、受信した仮想カード番号内の第1コード及び第2コードを基に実際カード番号の格納位置を探索し、実際カード番号の格納位置内に共に含まれているカードセキュリティコード(即ち、CVV又はCVC)及び仮想カード番号生成装置100の固有値を抽出する。仮想カード番号検証手段20は、カードセキュリティコード及び固有値を基に金融取引の要求を受信した時点から特定のカウント範囲内の仮想セキュリティコード(即ち、OTP番号)を生成する。その後、仮想カード番号検証手段20は、実際カード番号の発行時点(A時点)より金融取引要求の受信時点から特定のカウント範囲内の各カウントまでのカウント数と仮想セキュリティコード(即ち、OTP番号)の和が第2コードに対応するカウント数(即ち、第2コードに第2関数の逆関数を適用した値)と同一のカウントが存在するかを確認する。仮想カード番号検証手段は、第1コード及び第2コードを基に実際カード番号の格納位置がマッチされた地点を探索することによって実際カード番号の発行時点を把握できる。これにより、仮想カード番号検証手段20は、仮想カード番号を提供した仮想カード番号生成手段10が正常に発行されたか否かを確認することができる。
【0163】
また、他の実施形態として、
図15に示すように、特定の仮想カード番号生成手段から金融取引の取消要求が受信される場合、前記仮想カード番号生成手段で金融取引の取消を要求するカウントに対応する仮想カード番号を受信する段階(S1300)、前記仮想カード番号検証手段が前記仮想カード番号に対応する実際カード番号を探索する段階(S1400)、及び前記実際カード番号に対する以前の金融取引を取り消す段階(S1500)を更に含む。一般に、金融取引時に仮想カード番号を用いる場合、決済を行った仮想カード番号を再び探索するのに困難があり、カード決済をキャンセルする際に困難があった。本発明の一実施形態では、カード決済時と決済したカードの取消時に異なる仮想カード番号が発行されるが、同一の仮想カード番号生成手段で生成された仮想カード番号であるので、同一の実際カード番号に繋がっており、決済の取消時に提供された仮想カード番号で決済を行った実際カード番号を容易に探索できる。
【0164】
即ち、仮想カード番号検証手段20は、決済の取消時点で仮想カード番号生成手段10で生成された仮想カード番号(即ち、第2仮想カード番号)を受信する(S1300)。仮想カード番号検証手段20は、第2仮想カード番号に対応する実際カード番号を探索する(S1400)。実際カード番号を探索する方式は、金融取引の進行のために、実際カード番号を探索するS1000段階と同一の方式が適用されることができる。その後、仮想カード番号検証手段20は、探索された実際カード番号を基にカード決済の取消を行う(S1500)。仮想カード番号検証手段20は、金融取引の実行(即ち、カード決済)時に用いられた仮想カード番号(即ち、第1仮想カード番号)を探索しなくても、金融取引が実行された実際カード番号を第2仮想カード番号を用いて探索するので、金融取引の取消を行うことができる。
【0165】
以上で前述した本発明の一実施形態に係る仮想カード番号基盤の金融取引提供方法は、ハードウェアであるコンピュータと結合して実行されるためにプログラム(又はアプリケーション)で実現して媒体に格納され得る。
【0166】
上述したプログラムは、前記コンピュータがプログラムを読み込んでプログラムで実現した前記方法を実行させるために、前記コンピュータのプロセッサ(CPU)が前記コンピュータの装置インターフェースを介して読み取られるC、C++、JAVA、機械語などのコンピュータ言語でコード化されたコード(Code)を含むことができる。このようなコードは、前記方法を実行する必要な機能を定義した関数などと関連する機能的なコード(Functional Code)を含むことができ、前記機能を前記コンピュータのプロセッサが所定の手順通りに実行させるのに必要な実行手順関連の制御コードを含むことができる。また、このようなコードは、前記機能を前記コンピュータのプロセッサが実行させるのに必要な追加の情報やメディアが前記コンピュータの内部又は外部メモリのどの位置(アドレスナンバー)で参照されなければならないかに対するメモリ参照関連のコードを更に含むことができる。また、前記コンピュータのプロセッサが前記機能を実行させるために遠隔(Remote)にある任意の他のコンピュータやサーバなどと通信が必要な場合、コードは前記コンピュータの通信モジュールを用いて遠隔にある任意の他のコンピュータやサーバなどとどのように通信すべきか、通信時にどんな情報やメディアを送受信すべきかなどに対する通信関連のコードを更に含むことができる。
【0167】
前記格納される媒体は、レジスタ、キャッシュ、メモリなどのように短い瞬間にデータを格納する媒体ではなく半永久的にデータを格納し、機器により読み取り(reading)が可能な媒体を意味する。具体的には、前記格納される媒体の例としては、ROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、光データ格納装置などが挙げられるが、これに制限されない。即ち、前記プログラムは、前記コンピュータが接続できる多様なサーバ上の多様な記録媒体又はユーザの前記コンピュータ上の多様な記録媒体に格納されることができる。また、前記媒体は、ネットワークに繋がっているコンピュータシステムに分散され、分散方式でコンピュータが読み取れるコードが格納され得る。
【0168】
前記のような本発明によると、以下のような多様な効果を奏する。
【0169】
第一に、単位カウント毎に仮想カード番号が新たに生成され、重複する仮想カード番号が定められた全周期中に登場しないので、仮想カード番号の流出時にも実際カード番号が漏れないという効果を提供する。
【0170】
第二に、仮想カード番号生成装置と実際カード番号検証装置(例えば、金融機関のサーバ)にのみ仮想カード番号の生成及び実際カード番号の探索のためのアルゴリズムが追加されればよいので、既存に実際カード番号を用いるプロセスをそのまま維持できる。例えば、スマートカード又はAPPカードに重複して生成されない仮想カード番号を生成して提供される場合、POS装置とP G会社のサーバはそのまま維持され、仮想カード番号をカード会社サーバに伝達し、カード会社サーバが仮想カード番号に相応する実際カード番号を探索して決済を行える。これにより、セキュリティを高めるために既存のプロセス内で変更されなければならない部分を最小化でき、ユーザは、セキュリティ向上のための別途の段階を実行しなくてもよい。
【0171】
第三に、同一の仮想カード番号生成手段から提供された仮想カード番号は、生成時点と関係なく実際カード番号にマッチされるので、各カウント毎に変更される仮想カード番号を用いるものの、容易に金融取引の取消を行うことができる。
【0172】
以上、添付の図面を参照して本発明の実施形態を説明したが、本発明が属する技術分野において通常の技術者は、本発明がその技術的思想や必須な特徴を変更せず、他の具体的な形態で実施され得るということが理解できるであろう。従って、以上で記述した実施形態は、あらゆる面で例示的なものであり、制約的ではないと理解すべきである。