IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ センストン インク.の特許一覧

特許7154381仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラム
<>
  • 特許-仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラム 図1
  • 特許-仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラム 図2
  • 特許-仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラム 図3
  • 特許-仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラム 図4
  • 特許-仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラム 図5
  • 特許-仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラム 図6
  • 特許-仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラム 図7
  • 特許-仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラム 図8
  • 特許-仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラム 図9
  • 特許-仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラム 図10
  • 特許-仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラム 図11
  • 特許-仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラム 図12
  • 特許-仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラム 図13
  • 特許-仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラム 図14
  • 特許-仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラム 図15
  • 特許-仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラム 図16
  • 特許-仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラム 図17
  • 特許-仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラム 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-06
(45)【発行日】2022-10-17
(54)【発明の名称】仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラム
(51)【国際特許分類】
   G06Q 20/38 20120101AFI20221007BHJP
   G06Q 20/34 20120101ALI20221007BHJP
   G06F 21/44 20130101ALI20221007BHJP
【FI】
G06Q20/38 340
G06Q20/34 370
G06F21/44
【請求項の数】 14
(21)【出願番号】P 2021506625
(86)(22)【出願日】2018-11-06
(65)【公表番号】
(43)【公表日】2021-12-02
(86)【国際出願番号】 KR2018013410
(87)【国際公開番号】W WO2020032321
(87)【国際公開日】2020-02-13
【審査請求日】2021-02-22
(31)【優先権主張番号】10-2018-0093349
(32)【優先日】2018-08-09
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2018-0131824
(32)【優先日】2018-10-31
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】517002580
【氏名又は名称】株式会社センストーン
【氏名又は名称原語表記】SSENSTONE INC.
【住所又は居所原語表記】15F., Frontone, 122 Mapo-daero, Mapo-gu, Seoul,04213 Korea
(74)【代理人】
【識別番号】100121382
【弁理士】
【氏名又は名称】山下 託嗣
(72)【発明者】
【氏名】ユ,チャン フン
【審査官】中里 裕正
(56)【参考文献】
【文献】特表2018-507582(JP,A)
【文献】特表2012-507767(JP,A)
【文献】特開2002-056332(JP,A)
【文献】特開2002-157421(JP,A)
【文献】特開2002-312707(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 20/38
G06Q 20/34
G06F 21/44
(57)【特許請求の範囲】
【請求項1】
1つ以上の細部コードを生成する細部コード生成部と、
前記1つ以上の細部コードを組み合わせて仮想コードとして生成する仮想コード生成部と、
前記仮想コードを外部に出力する仮想コード提供部とを含み、
前記仮想コードは、固定コード、OTPコード及び抽出コードを含む複数のコードを特定の規則に従って結合して生成され、
前記固定コードは、前記仮想コード内に予め定められた位置に含まれ、実際カード番号に対応するカード会社又はカードの類型を判断するコードであり、
前記OTPコードは、OTP関数を基に特定数の数字の配列により生成され、
前記抽出コードは、前記仮想コードの全体数字の数から前記固定コード及び前記OTPコードを除いた数字の数の全部又は一部として生成されるものである、
仮想コード生成装置と、
前記仮想コード生成装置から前記仮想コードを受信する仮想コード受信部と、
前記仮想コードから前記OTPコードと前記抽出コードを分離し、前記OTPコードに基づいて変換コードを算出する細部コード抽出部と、
前記変換コード又は前記抽出コードを、設定された条件によって第1コード又は第2コードとしてそれぞれ用いて、実際カード番号の格納位置を探索する実際カード番号探索部と、を含み、
前記第1コードは、際カード番号の格納位置を探索する開始地点を設定し、
前記第2コードは、特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定する
仮想コード検証装置と、
を備え、
前記OTPコード及び前記抽出コードは単位カウント毎に変更され、
前記単位カウントは、
特定の時間間隔として設定され、前記時間間隔が経過するにつれて変更される、
金融取引提供システム
【請求項2】
前記OTPコードは、実際カード番号内のカードセキュリティコードの数字の数で生成され、
前記抽出コードは、前記仮想コードの全体数字の数から前記固定コード、前記OTPコード及び有効期間を除いた数字の数の全部又は一部として生成されることを特徴とする、請求項1に記載の金融取引提供システム
【請求項3】
前記変換コードは、前記抽出コードと同一の桁数で生成されることを特徴とする、請求項2に記載の金融取引提供システム
【請求項4】
前記変換コードは、特定の規則に従って前記OTPコードに一対一でマッチすることを特徴とする、請求項3に記載の金融取引提供システム
【請求項5】
前記変換コードは、前記OTPコードと仮想コードの生成が要求されたカウント値を変換コード生成関数にシード値として入力して算出されることを特徴とする、請求項3に記載の金融取引提供システム
【請求項6】
前記仮想コード生成部は、
前記OTPコードと前記抽出コードを細部コード結合関数によって組み合わせて、
カード識別番号から固定コードを除いた桁とカードセキュリティコードの桁に並ぶことを特徴とする、請求項1に記載の金融取引提供システム
【請求項7】
前記固定コードが特定のカード類型の仮想コードに対して新たに付与される場合、
前記細部コード生成部は、
有効期間の桁に配置される特定の数字の組み合わせを可変コードとして生成することを特徴とし、
前記変換コードは、
前記可変コードと前記OTPコードをシード値にして生成され、
前記数字の組み合わせは、単位カウント毎に変更され生成されるものであって、実際の有効期間として使用可能であり、現在のカウントから最大期間内に含まれることを特徴とする、請求項1に記載の金融取引提供システム
【請求項8】
前記固定コードが特定のカード類型の実際カード番号に用いられる場合、
特定のカウントに生成された仮想コードが特定のカードの類型で実際カード番号として使用可能なコード列であるか否かを判断する仮想コード確認部を更に含むことを特徴とする、請求項1に記載の金融取引提供システム
【請求項9】
前記仮想コード確認部は、
前記仮想コード内のカード識別番号、有効期間及びサービスコードを実際カード番号の生成規則に入力して比較カードセキュリティコードを生成し、
前記仮想コード内のカードセキュリティコードの桁に配置された数字である生成カードセキュリティコードと前記比較カードセキュリティコードとを比較して一致すると、仮想コードの再生成を要求することを特徴とする、請求項8に記載の金融取引提供システム
【請求項10】
仮想コード検証手段が仮想コード生成手段から提供された仮想コードを受信する仮想コード受信段階と、
前記仮想コード検証手段が前記仮想コードに特定の規則に従って含まれている固定コード、及び、OTPコード及び抽出コードを含む複数の細部コードを抽出する細部コード抽出段階と、
前記仮想コード検証手段が前記OTPコードを基に変換コードを算出する変換コード算出段階と、
前記仮想コード検証手段が、前記抽出コード又は前記変換コードが設定された条件によってそれぞれ用いられる第1コード及び第2コードを基に実際カード番号の格納位置を探索する実際カード番号探索段階と、
前記仮想コード検証手段が前記格納位置から抽出された前記実際カード番号で金融取引の進行又は金融取引の進行を要求する段階とを含み、
前記仮想コード検証手段と前記仮想コード生成手段は、同一の仮想コード生成関数を含み、
前記固定コードは、前記仮想コード内に予め定められた位置に含まれ、前記実際カード番号に対応するカード会社又はカードの類型を判断するコードであり、
前記OTPコードは、OTP関数を基に特定数の数字の配列により生成され変換コードの算出に用いられ、
前記抽出コードは、前記OTPコードから算出された前記第1コードに対応し、前記仮想コードの全体数字の数から前記固定コード及び前記OTPコードを除いた数字の数の全部又は一部として生成され、
前記第1コードは、仮想コード検証手段で実際カード番号の格納位置を探索する開始地点を設定し、
前記第2コードは、特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定し、
前記OTPコード及び前記抽出コードは単位カウント毎に変更され、
前記単位カウントは、特定の時間間隔として設定され、前記時間間隔が経過するにつれて変更される、仮想コード基盤の金融取引提供方法。
【請求項11】
前記細部コード抽出段階は、
前記仮想コード内のカード識別番号領域から固定コードを抽出する段階と、
前記固定コードを基に特定のカードの類型に対応する細部コード結合関数を設定する段階と、
カード識別番号から固定コードを除いた桁とカードセキュリティコードの桁に並んでいる数字列から前記細部コード結合関数を用いて前記OTPコードと前記抽出コードを抽出する段階とを含むことを特徴とする、請求項10に記載の仮想コード基盤の金融取引提供方法。
【請求項12】
前記細部コード抽出段階は、
前記仮想コード生成手段に含まれているのと同一のOTP関数で生成される比較コードと前記OTPコードとを比較して、仮想コードが生成されたカウント値を算出し、
前記変換コード算出段階は、
前記カウント値と前記OTPコードをシード値にして変換コード生成関数に入力して変換コードを算出することを特徴とする、請求項11に記載の仮想コード基盤の金融取引提供方法。
【請求項13】
前記仮想コードは、実際カード番号の有効期間を含み、
前記仮想コード検証手段は、前記固定コード及び有効期間値によって異なる実際カード番号探索アルゴリズムを含み、
前記実際カード番号探索アルゴリズムは、前記第1コードと前記第2コードを基に実際カード番号が格納された位置を探索することを特徴とする、請求項10に記載の仮想コード基盤の金融取引提供方法。
【請求項14】
前記固定コードが特定のカード類型の仮想コードに対して新たに付与される場合、
前記細部コード抽出段階は、
有効期間の桁から可変コードを抽出し、
前記変換コード算出段階は、
前記可変コードと前記OTPコードを変換コード生成関数にシード値として入力して前記変換コードを生成することを特徴とする、請求項10に記載の仮想コード基盤の金融取引提供方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラムに関し、より詳細には、時点毎に重複しないように仮想コードを生成し、これに基づいて実際カード番号を探索して金融取引を行うシステム、方法及びプログラムと、時点毎に重複しない仮想コードを生成する装置及びこれに基づいて実際カード番号を探索して金融取引を行う装置に関する。
【背景技術】
【0002】
コード化されたデータは、多くの領域において利用されている。決済時に用いられるカード番号、口座番号だけでなく、ユーザの識別のためのIPIN番号、住民登録番号(韓国版マイナンバー)などがコード化されたデータである。
【0003】
しかし、このようなコードデータを用いる過程で流出事故が多く発生する。カード番号は、カードの表面に実際カード番号がそのまま記載されており、他人に視覚的に流出され、磁気を用いた決済時にカード番号がそのままPOS装置に伝達されて漏洩する。
【0004】
実際カード番号がそのまま流出しないようにするために、仮想コードを利用しようとする試みが多かったが、仮想コードに対応する実際カード番号を探索するために、ユーザを識別するためのデータが必要であった。例えば、OTP(One Time Password)の場合、毎回、一度限り有効なパスワードが生成されるが、ユーザに付与されたアルゴリズム判断のためにログイン処理が必要であり、多様な領域に適用し難い。
【0005】
従って、実際カード番号に対応するユーザや装置に対する識別情報を提供しないと共に、リアルタイムに変動する仮想コードを基に実際カード番号を探索できる発明が必要である。
【発明の概要】
【発明が解決しようとする課題】
【0006】
そこで、本発明は、上記事情に鑑みてなされたものであって、その目的は、実際カード番号の数字列の形式を維持する仮想コードを生成して提供することによって決済システム全体を修正せず、仮想コード生成手段と仮想コード検証手段間の通信を行わない状態で仮想コード生成手段別に重複しないように生成された仮想コードで実際カード番号を探索してセキュリティの高い仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラムを提供することにある。
【0007】
本発明が解決しようとする課題は、以上で言及した課題に制限されず、言及していない更に他の課題は、以下の記載から通常の技術者が明確に理解できるだろう。
【課題を解決するための手段】
【0008】
本発明の一実施例に係る仮想コード生成装置は、1つ以上の細部コードを生成する細部コード生成部と、前記1つ以上の細部コードを組み合わせて仮想コードとして生成する仮想コード生成部と、前記仮想コードを仮想コード検証手段に提供するために外部に出力する仮想コード提供部とを含み、前記仮想コードは、固定コード、OTPコード及び抽出コードを含む複数のコードを特定の規則に従って結合して生成され、前記固定コードは、前記仮想コード内に予め定められた位置に含まれ、前記実際カード番号に対応するカード会社又はカードの類型を判断するコードであり、前記OTPコードは、OTP関数を基に特定数の数字の配列により生成され変換コードの算出に用いられ、前記抽出コードは、前記仮想コードの全体数字の数から前記固定コード及び前記OTPコードを除いた数字の数の全部又は一部として生成されるものであって、前記OTPコードから算出された前記変換コードに対応し、前記変換コード又は前記抽出コードは、前記仮想コード検証手段で設定された条件によって第1コード又は第2コードとしてそれぞれ用いられ、前記第1コードは、前記仮想コード検証手段で実際カード番号の格納位置を探索する開始地点を設定し、前記第2コードは、特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定し、前記OTPコード及び前記抽出コードは単位カウント毎に変更され、前記単位カウントは、特定の時間間隔として設定され、前記時間間隔が経過するにつれて変更される。
【0009】
また、他の実施例として、前記OTPコードは、実際カード番号内のカードセキュリティコードの数字の数で生成され、前記第2コードは、前記仮想コードの全体数字の数から前記固定コード、前記OTPコード及び有効期間を除いた数字の数の全部又は一部として生成される。
【0010】
更に、他の実施例として、前記変換コードは、前記抽出コードと同一の桁数で生成される。
【0011】
また、他の実施例として、前記変換コードは、特定の規則に従って前記OTPコードに一対一でマッチすることを特徴とする。
【0012】
更に、他の実施例として、前記変換コードは、前記OTPコードと仮想コードの生成が要求されたカウント値を変換コード生成関数にシード値として入力して算出される。
【0013】
また、他の実施例として、前記仮想コード生成部は、前記OTPコードと前記抽出コードを細部コード結合関数によって組み合わせて、前記カード識別番号から固定コードを除いた桁と前記カードセキュリティコードの桁に並ぶことを特徴とする。
【0014】
更に、他の実施例として、前記固定コードが特定のカード類型の仮想コードに対して新たに付与される場合、前記細部コード生成部は、有効期間の桁に配置される特定の数字の組み合わせを可変コードとして生成することを特徴とし、前記変換コードは、前記可変コードと前記OTPコードをシード値にして生成され、前記数字の組み合わせは、単位カウント毎に変更され生成されるものであって、実際の有効期間として使用可能であり、現在のカウントから最大期間内に含まれる。
【0015】
また、他の実施例として、前記固定コードが特定のカード類型の実際カード番号に用いられる場合、特定のカウントに生成された仮想コードが特定のカードの類型で実際カード番号として使用可能なコード列であるか否かを判断する仮想コード確認部を更に含む。
【0016】
更に、他の実施例として、前記仮想コード確認部は、前記仮想コード内のカード識別番号、有効期間及びサービスコードを実際カード番号の生成規則に入力して比較カードセキュリティコードを生成し、前記仮想コード内のカードセキュリティコードの桁に配置された数字である生成カードセキュリティコードと前記比較カードセキュリティコードとを比較して一致すると、仮想コードの再生成を要求することを特徴とする。
【0017】
本発明の他の実施例に係る仮想コード基盤の金融取引提供方法は、仮想コード検証手段が仮想コード生成手段から提供された仮想コードを受信する仮想コード受信段階と、前記仮想コード検証手段が前記仮想コードに特定の規則に従って含まれている固定コード、及び、OTPコード及び抽出コードを含む細複数の細部コードを抽出する細部コード抽出段階と、前記仮想コード検証手段が前記OTPコードを基に変換コードを算出する段階と、前記仮想コード検証手段が、前記抽出コード又は前記変換コードが設定された条件によってそれぞれ用いられる第1コード及び第2コードを基に実際カード番号の格納位置を探索する実際カード番号探索段階と、前記仮想コード検証手段が前記格納位置から抽出された前記実際カード番号により金融取引の進行又は金融取引の進行を要求する段階とを含み、前記仮想コード検証手段と前記仮想コード生成手段は、同一の仮想コード生成関数を含み、前記固定コードは、前記仮想コード内に予め定められた位置に含まれ、前記実際カード番号に対応するカード会社又はカードの類型を判断するコードであり、前記OTPコードは、OTP関数を基に特定数の数字の配列により生成され変換コードの算出に用いられ、前記抽出コードは、前記OTPコードから算出された前記第1コードに対応し、前記仮想コードの全体数字の数から前記固定コード及び前記OTPコードを除いた数字の数の全部又は一部として生成され、前記第1コードは、仮想コード検証手段で実際カード番号の格納位置を探索する開始地点を設定し、前記第2コードは、特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定し、前記OTPコード及び前記抽出コードは単位カウント毎に変更され、前記単位カウントは、特定の時間間隔として設定され、前記時間間隔が経過するにつれて変更される。
【0018】
また、他の実施例として、前記細部コード抽出段階は、前記仮想コード内のカード識別番号領域から固定コードを抽出する段階と、前記固定コードを基に特定のカードの類型に対応する細部コード結合関数を設定する段階と、前記カード識別番号から固定コードを除いた桁と前記カードセキュリティコードの桁に並んでいる数字列から前記細部コード結合関数を用いて前記OTPコードと前記抽出コードを抽出する段階とを含む。
【0019】
更に、他の実施例として、前記細部コード抽出段階は、前記仮想コード生成手段に含まれているのと同一のOTP関数で生成される比較コードと前記OTPコードとを比較して、仮想コードが生成されたカウント値を算出し、前記変換コード算出段階は、前記カウント値と前記OTPコードをシード値にして前記変換コード生成関数に入力して変換コードを算出することを特徴とする。
【0020】
また、他の実施例として、前記仮想コードは、実際カード番号の有効期間を含み、前記仮想コード検証手段は、前記固定コード及び有効期間値によって異なる実際カード番号探索アルゴリズムを含み、前記実際カード番号探索アルゴリズムは、前記第1コードと前記第2コードを基に実際カード番号が格納された位置を探索する。
【0021】
更に、他の実施例として、前記固定コードが特定のカード類型の仮想コードに対して新たに付与される場合、前記細部コード抽出段階は、有効期間の桁から前記可変コードを抽出し、前記変換コード算出段階は、前記可変コードと前記OTPコードを変換コード生成関数にシード値として入力して前記変換コードを生成することを特徴とする。
【0022】
本発明の他の実施例に係る仮想コード基盤の決済提供プログラムは、前記言及した仮想コード提供方法をハードウェアに実行させ、媒体に格納される。
【発明の効果】
【0023】
前記のような本発明によれば、以下のような多様な効果を有する。
【0024】
第一に、仮想コード生成装置と仮想コード検証装置(例えば、金融機関サーバ)にのみ仮想コードの生成及び実際カード番号の探索のためのアルゴリズムが追加されればよいので、既存に実際カード番号を用いるプロセスをそのまま維持できる。例えば、スマートカード又はアプリカードに重複しない仮想コードを生成して提供する場合、POS装置とPG会社サーバはそのまま仮想コードをカード会社サーバに伝達し、カード会社サーバが仮想コードに相応する実際カード番号を探索して決済を行える。これにより、セキュリティを向上させるために既存のプロセス内で変更するべき部分を最小化でき、ユーザはセキュリティの向上のための別途の段階を行わなくてもよい。特に、仮想コード内の限られた可変範囲に数字のみを利用したOTPコードと抽出コードの組み合わせを用いるので、決済端末から決済サーバまでの全体プロセスを修正しなくても済むという効果がある。
【0025】
第二に、実際カード番号格納位置の探索で第1コード又は第2コードとして用いられる変換コードを生成できる少ない桁数のOTPコードを仮想コードに含むことによって、可変範囲(例えば、カード識別番号の桁から固定コードと検証数字の桁を除いた範囲とカードセキュリティコードの範囲)の多くの部分を直接的に第1コード又は第2コードとして用いられる抽出コードに割り当てることができ、抽出コードとして使用可能な数字列の数が増加し、セキュリティを向上できる。
【0026】
第三に、OTPコードを基に生成される変換コード又は仮想コードから抽出される抽出コードに対応するカウントに移動することによって現在時点でない時点を基準に実際カード番号の探索が行われるので、ハッカーが仮想コードの生成規則を把握できず、セキュリティを向上できる。
【0027】
第四に、ユーザ別に異なるカウントに実際カード番号がマッチングされ格納されるので、他のユーザに第1コード又は第2コード(又は第1コードと第2コードに対応する変換コードと細部コード)が何れも一致する仮想コードを生成することができない。従って、仮想コード検証手段は、仮想コードによりユーザを正確に判別できる。
【図面の簡単な説明】
【0028】
図1】本発明の一実施例に係る仮想コード基盤の金融取引提供システムの構成図である。
図2】本発明の一実施例に係る仮想コード生成手段から金融機関サーバへ仮想コードが提供される過程を示す例示図である。
図3】本発明の一実施例に係る仮想コード生成装置の構成図である。
図4】本発明の他の実施例に係る仮想コード生成装置の構成図である。
図5】本発明の一実施例に係る仮想コード生成装置の例示図である。
図6】本発明の他の実施例に係る仮想コード確認部を含む仮想コード生成装置の構成図である。
図7】本発明の実施例に係る仮想コード検証装置の構成図である。
図8】本発明の実施例に係る仮想コード検証装置の構成図である。
図9】本発明の実施例に係る仮想コード検証装置の構成図である。
図10】本発明の一実施例に係る仮想コード基盤の金融取引提供方法の順序図である。
図11】本発明の一実施例に係る変換コード算出段階を更に含む仮想コード基盤の金融取引提供方法の順序図である。
図12】本発明の一実施例によってk角形の転がり移動によって実際カード番号の格納位置を探索する格納位置探索アルゴリズムに対する例示図である。
図13】本発明の一実施例に係るk角形の転がり移動による実際カード番号の探索過程を含む仮想コード基盤の金融取引提供方法の順序図である。
図14】本発明の一実施例に係る細部コードを基にトラック上を移動して格納位置を探索する格納位置探索アルゴリズムに対する例示図である。
図15】本発明の一実施例に係る実際カード番号を発行して格納位置に格納する過程を更に含む仮想コード基盤の金融取引提供方法の順序図である。
図16】本発明の一実施例に係る仮想コード検証段階を更に含む仮想コード基盤の金融取引提供方法の順序図である。
図17】本発明の一実施例に係る仮想コード検証段階を更に含む仮想コード基盤の金融取引提供方法の順序図である。
図18】本発明の一実施例に係る仮想セキュリティコードを用いて実際カード番号の探索時点を移動させる方式の例示図である。
【発明を実施するための形態】
【0029】
以下、添付の図面を参照して本発明の好適な実施例を詳細に説明する。本発明の利点及び特徴、そしてそれらを達成する方法は、添付の図面と共に詳細に後述されている実施例を参照すれば明確になる。しかし、本発明は、以下で開示される実施例に制限されるものではなく、互いに異なる多様な形態で実現することができる。但し、本実施例は本発明の開示を完全なものにし、本発明が属する技術分野における通常の知識を有する者に本発明の範囲を完全に理解させるために提供されるものであり、本発明は請求項の範囲により定義されるに過ぎない。明細書全体に亘って同一の参照符号は同一構成要素を示す。
【0030】
他の定義がなければ、本明細書で用いられる全ての用語(技術及び科学的用語を含む)は、本発明が属する技術分野における通常の知識を有する者が共通して理解できる意味として用いられる。また、一般に用いられる辞典に定義されている用語は、明白に特に定義されていない限り、理想的に又は過度に解釈されない。
【0031】
本明細書で用いられた用語は、実施例を説明するためのものであり、本発明を制限しようとするものではない。本明細書において、単数型は特に言及しない限り複数型も含む。明細書で用いられる「含む(comprises)」及び/又は「含んでいる(comprising)」は、言及された構成要素以外に1つ以上の他の構成要素の存在又は追加を排除しない。
【0032】
本明細書において、「金融取引」は金融機関と行われる手順を意味する。「金融取引」はカード決済、銀行口座からの入出金などを含む。
【0033】
本明細書において、「文字」はコードを構成する構成要素であって、アルファベットの大文字、アルファベットの小文字、数字及び特殊文字などの全部又は一部を含む。
【0034】
本明細書において、「コード」は文字が並んでいる文字列を意味する。
【0035】
本明細書において、「カード番号」は決済などの金融取引のために用いられるものであって、カードに付与され、決済、決済の取消しなどの状況においてカード会社に伝達される番号を意味する。
【0036】
本明細書において、「実際カード番号」はカード会社から特定のユーザのカードに付与する番号である。即ち、実際カード番号は一般的な実物のカード、モバイルカードなどに付与される番号を意味する。
【0037】
本明細書において、「仮想コード」は実際カード番号に連結されるように臨時に生成されるカード番号であって、数字を含む文字からなる特定の桁数のコードである。「仮想コード」は、金融機関サーバに格納された実際カード番号を探索するための仮想カード番号と、仮想トークン検証サーバに格納された実際カード番号を探索するための仮想トークンを含む。
【0038】
本明細書において、「細部コード」は仮想コードに含まれる一部のコードを意味する。即ち、仮想コードが別途生成された複数のコードを結合して生成される場合、細部コードは別途生成されて仮想コードを構成する個別のコードを意味する。
【0039】
本明細書において、「単位カウント」は特定の時間間隔として設定され、前記時間間隔が経過するにつれて変更されるものとして定義された単位である。例えば、1カウントは特定の時間間隔(例えば、1.5秒)と設定されて用いられる。
【0040】
本明細書において、「仮想コード生成関数」は仮想コードを生成するために用いられる関数を意味する。
【0041】
本明細書において、「支払いカード」はカード番号を変更して出力できるカードを意味する。
【0042】
本明細書において、「転がり移動」は対象体が回転しながら並進運動を行うことを意味する。即ち、「転がり移動」は回転運動と並進運動を共に行いながら移動するものであって、回転する対象体の各地点が移動する軸上に順に接しながら移動することを意味する。
【0043】
本明細書において、「支払い決済サービスサーバ」は仮想トークン生成装置又は売場端末装置で仮想トークン検証サーバ又は金融機関サーバの間で決済サービスを接続又は補助する事業者のサーバを全て含む。即ち、支払い決済サービスサーバは、決済代行会社(Payment Gateway、インターネット上で金融機関と行う取引を代行するサービス事業者)、VAN(Value-Added Network)事業者、アクワイアラ(Acquirer)のサーバなどが何れも該当し得る。
【0044】
本明細書において、「仮想トークン検証サーバ」は実際カード番号を格納し、 仮想トークンを基に実際カード番号を探索して支払い決済サービスサーバ又は金融機関サーバに提供するサーバを意味する。
【0045】
本明細書において、「金融機関サーバ」は実際カード番号を基に決済を承認するか否かを判断するサーバを意味する。
【0046】
以下、本発明の実施例によって実際カード番号に替わる仮想コードの生成及び実際カード番号の探索過程について説明するために、実際カード番号の構成について説明する。
【0047】
「実際カード番号」はカード識別番号、カードセキュリティコード、有効期間のうちの少なくとも1つを含む。カード識別番号とは、カード会社、カードの類型及びカード使用者を識別するために付与されたコードを称する。一般に、カードに付与されるカード識別番号は15個又は16個の桁数からなる。また、一般に、16桁からなるカード識別番号の場合、前の6桁の番号はカードの発行者識別番号(IIN又はBIN)からなり、7番目の桁から15番目の桁までは各カード会社が任意の規則に従って各カードに付与するコードからなり、16番目の桁は特定の公式によりカード識別番号を検証する値(check digit)からなる。
【0048】
カードセキュリティコードは、カードの一側に印刷された特定の桁数(例えば、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)と称する。
【0049】
有効期間は、実際カード番号が発行された後に使用できる期限を意味する。一般に、有効期間は年/月に対して2桁が付与され、4桁のコードで構成される。磁気カードには実際カード番号がそのまま含まれているため、磁気カードをリードするだけでカード番号全体が流出されるという問題があり、近年、全世界的に磁気カードの使用が制限され、ICカードなどのセキュリティが高い方式へ変わりつつある。他のセキュリティが高い方式を適用するためには、新たな端末が設置されなければならないか、既存のプロセスと異なる変更がされなければならないという問題がある。従って、既存の実際カード番号を用いるプロセスを同一としながら、カード番号の流出を防止できる方法が必要である。特に、既存の磁気カードリーダをそのまま利用しながらセキュリティを向上させる方式が必要である。
【0050】
以下、図面を参照して、本発明の実施例に係る仮想コード基盤の金融取引提供システム、仮想コード生成装置100、仮想コード検証サーバ200、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラムについて詳細に説明する。
【0051】
図1は、本発明の一実施例に係る仮想コード基盤の金融取引提供システムの構成図である。
【0052】
図2は、本発明の一実施例に係る仮想コード生成手段から金融機関サーバへ仮想コードが提供される過程を示す例示図である。
【0053】
図1を参照すれば、本発明の一実施例に係る仮想コード基盤の金融取引提供システムは、仮想コード生成手段10及び仮想コード検証手段20を含む。
【0054】
仮想コード生成手段10は、仮想コード検証手段20が実際カード番号を探索できる情報を含む仮想コードを生成する役割を果たす。即ち、仮想コード生成手段10は、仮想コード生成関数によって仮想コードを生成する。このとき、仮想コード検証手段20で仮想コードを基に実際カード番号を探索するので、仮想コード生成手段10は、実際カード番号を格納しないこともあり得る。これにより、仮想コード生成手段10のハッキングなどによって実際カード番号が流出するのを防止できる。仮想コード生成関数に関する具体的な説明は後述する。
【0055】
仮想コード検証手段20は、仮想コード生成手段10から提供される仮想コードを基に実際カード番号を探索する役割を果たす。仮想コード検証手段20は、仮想コード生成手段10より受信した仮想コードから実際カード番号を探索するために、仮想コード生成手段10と同一の仮想コード生成関数を格納する。仮想コード検証手段20が仮想コードを基に実際カード番号を探索する方式に関する具体的な説明は後述する。
【0056】
また、仮想コード検証手段20は、仮想コードが仮想コード生成手段10で正常に生成されたコードか否かを検証する役割を果たす。仮想コード検証手段20における仮想コードが正常か否かを判断する方式に関する具体的な説明は後述する。
【0057】
仮想コード検証手段20は、仮想コード生成手段10から多様な方式によって仮想コードを受け取ることができる。一実施例として、仮想コード検証手段20は、無線通信を介して仮想コード生成手段10から仮想コードを受信できる。例えば、仮想コード生成手段10を含む仮想コード生成装置100がNFCアンテナモジュール、ブルートゥース(登録商標)通信モジュールなどを含む場合、金融取引端末との通信によって仮想コード検証サーバへ伝達する仮想コードを金融取引端末に伝送できる。また、他の実施例として、仮想コード検証サーバ200は、仮想コード生成装置100により生成された仮想コードを仮想コード検証サーバ200と通信を介して繋がる移動端末上で直接入力(例えば、ウェブページ又はアプリケーションの決済ページにて仮想コードを入力)したものを受信できる。このとき、仮想コード検証手段20は、仮想コード生成手段10から仮想コードを受信した他のサーバより受け取ることができる。
【0058】
具体的に、図2に示すように、仮想コード生成手段10が決済端末により決済可能なスマートカードであり、仮想コード検証手段20が仮想コード生成関数を含むカード会社サーバ(仮想コード検証サーバ)20である場合、仮想コード生成手段10であるスマートカードによりPOS装置30にて決済を行うと、仮想コード検証手段20は、POS装置30から仮想コードを受け取ったPG会社サーバ40から仮想コードを受け取る。即ち、仮想コード検証手段20(即ち、カード会社サーバ)は、既存の決済プロセスを用いて仮想コード生成手段10から実際カード番号の代わりに仮想コードを受信することができる。即ち、後述するように、仮想コードを実際カード番号と同一の長さのコードとして生成すると、仮想コード生成手段から仮想コード検証手段が含まれているカード会社サーバまで行われるプロセス上では変更がなくても、本発明の実施例に係る仮想コード基盤の金融取引提供方式を適用できる。また、仮想コード生成手段であるスマートカードでATM装置を介して金融取引を行う場合、仮想コード生成手段10が実際カード番号と同一の長さのコードに生成された仮想コードをATM装置に提供し、金融機関サーバ20は、ATM装置から仮想コードをそのまま受け取って金融取引を行える。
【0059】
また、一実施例として、前記仮想コード検証手段20と前記仮想コード生成手段10は、同一の仮想コード生成関数を含む。仮想コード検証手段20と仮想コード生成手段10が同一の仮想コード生成関数(例えば、後述する細部コード結合関数)を含むことによって仮想コード検証手段20は仮想コード生成手段10で生成された仮想コード内の複数の細部コードを正常に抽出できる。
【0060】
更に、他の実施例として、仮想コード検証手段20は、受信した仮想コードが正常な仮想コード生成手段10で生成され、受信されたものであるかを検証できる。即ち、仮想コード検証手段20が仮想コード生成手段10と同一の条件でコード(即ち、仮想コード又は特定の細部コード)の生成を行った後、仮想コード生成手段10から受信したコード(即ち、仮想コード又は特定の細部コード)と比較することによって検証を行うことができる。
【0061】
図3は、本発明の他の実施例に係る仮想コード生成装置100の構成図である。
【0062】
図5は、本発明の一実施例に係る仮想コード生成装置の例示図である。
【0063】
図3を参照すれば、本発明の他の実施例に係る仮想コード生成装置100は、細部コード生成部110、仮想コード生成部120及び仮想コード提供部130を含む。
【0064】
本発明の実施例に係る仮想コード生成装置100は、仮想コード生成手段10に該当するプログラムが内蔵(Embeded)されているか、仮想コード生成手段10に該当するプログラムがインストールされた装置であり得る。例えば、仮想コード生成装置100は、仮想コード生成手段10に該当するプログラムが内蔵されたスマートカードであり得る。また、例えば、仮想コード生成装置100は、仮想コード生成手段10に該当するAPPカードアプリケーションがインストールされた移動端末であり得る。仮想コード生成装置100は、前述した例示以外に仮想コードを生成して伝送しなければならない多様な装置とできる。
【0065】
仮想コード生成部120は、1つ以上の細部コードを組み合わせて仮想コードとして生成する役割を果たす。一実施例として、前記仮想コードは、複数の細部コードを特定の規則に従って結合して生成される。仮想コード生成関数は、複数の細部コードを組み合わせる規則(即ち、細部コード結合関数)を含む。
【0066】
複数の細部コードを結合して1つの仮想コードを生成する方式としては、多様な方式が適用される。前記細部コード結合関数の一例として、仮想コード生成部120は、N桁の第1コードとN桁の第2コードを交互に配置する方式で仮想コードを生成できる。また、他の例として、細部コード結合関数は第1コードの後に第2コードを結合する関数であり得る。仮想関数に含まれる細部コードが増えることによって細部コード結合関数も多様に生成される。
【0067】
また、前記仮想コード生成部120は、後述するように、固定コードを仮想コード内の特定の位置(例えば、仮想コード内のカード識別番号の最初の6桁)に結合する。前記固定コードは、前記仮想コード内に予め定められた位置に結合され、前記実際カード番号に対応するカード会社又はカードの類型を判断するコードである。
【0068】
具体的に、仮想コードは、グループを区別するための変更されない固定コードを複数の細部コードと共に含むことができる。仮想コード検証手段20は、複数のグループにそれぞれ対応する複数の仮想コード生成関数を含むことができ、仮想コード生成装置100から仮想コードが受信されると、当該仮想コード生成装置100が属するグループの仮想コード生成関数を基に実際カード番号の探索を行わなければならない。固定コードが含まれず、単位カウントが経過する度に全体コードが新たに生成される細部コードのみを含むとなると、別途の情報なしに仮想コード生成装置100が属するグループを判断することができない。従って、仮想コード生成装置100は、グループを識別するための変更されない固定コードを含む。
【0069】
例えば、特定のカード会社のカードの類型別に仮想コード生成関数が付与される場合、仮想コード生成装置100は、カード番号のうち、カード会社及びカードの類型を示す前の6桁を固定コードとして用い、仮想コード検証手段20は、仮想コード生成装置100と同一の仮想コード生成関数が適用される特定のカード会社の特定のカード類型を識別できる。即ち、固定コードは、前記実際カード番号に対応するカード会社又はカードの類型を判断するためのコードである。
【0070】
また、固定コードは、前記仮想コード内の予め定められた位置に含めることができる。各カード類型のグループ別に仮想コード生成関数が付与される場合、仮想コード検証手段20は、仮想コードから固定コードをまず抽出しなければカード類型のグループを判断することができない。従って、固定コードは、別途の関数なしに分離可能に仮想コード内の予め定められた位置(例えば、実際カード番号の発行者識別番号と同一の位置)に含めることができる。
【0071】
細部コード生成部110は、1つ以上の細部コードを生成する役割を果たす。
【0072】
一実施例として、細部コード生成部110は、仮想コード検証手段20で実際カード番号の探索に用いる第1コードと第2コード自体を生成できる。即ち、仮想コード生成部120は、細部コード生成部110で生成された第1コードと第2コードの組み合わせを含む仮想コードを生成する。
【0073】
具体的な一実施例として、細部コード生成部110は細部コード生成関数として第1関数と第2関数を含み、第1コード及び第2コードを生成する。第1コードと第2コードは、仮想コード検証手段20内で実際カード番号の格納位置を探索するための相関関係を有するが、仮想コード生成装置100は、セキュリティを向上させるために第1コードを生成する第1関数と第2コードを生成する第2関数を細部コード生成関数として含むだけであって、第1コードと第2コードの相関関係に対するデータを含まないこともあり得る。
【0074】
また、一実施例として、仮想コード生成装置100は、複数の細部コードと固定コードを組み合わせて実際カード番号と同一の桁数のコードとなるように細部コードを生成する。既存の金融取引システム(例えば、金融取引がお店での決済である場合、POS装置及びPG会社サーバ)をそのまま維持しながら仮想コードを用いるためには、仮想コード生成装置100は実際カード番号と同一の桁数を有するコードを仮想コードとして生成しなければならない。このために、仮想コード生成装置100は、カード会社及び当該カード会社のカードの類型を判断するための固定コードを除いた桁数を分けて複数の細部コードの桁数を活用する。例えば、実際カード番号が16桁のカード識別番号を有し、細部コードとして第1コード及び第2コードを含む場合、仮想コード生成装置100は16桁のうち、6桁の固定コードを除いた10桁を均等に分けて5桁の第1コード及び第2コードを生成できる。その後、後述する仮想コード生成部が第1コード及び第2コードを特定の規則に従って結合した後、固定コードを実際カード番号のカード識別番号のように、前の部分に結合して仮想コードのカード識別番号を生成できる。
【0075】
更に、例えば、カード番号のカード識別番号と有効期間の桁を活用して細部コードからなる仮想コードを生成できる。即ち、仮想コード生成装置100は、16桁のカード識別番号と4桁の有効期間のうち、実際カード番号の発行者識別番号に該当する6桁を固定コードとして維持し、残りの14桁を複数の細部コードに割り当て、細部コード生成部は割り当てられたそれぞれの桁数に沿う細部コードを生成する。
【0076】
また、例えば、仮想コード生成装置100は、実際カード番号のカード識別番号、有効期間及びカードセキュリティコードを仮想コードで細部コードに割り当てる桁数として活用できる。例えば、仮想コード生成装置100は、実際カード番号の発行者識別番号に該当する6桁を固定コードとして維持し、カード識別コードの残りの10桁、4桁の有効期間及び3桁のカードセキュリティコードをそれぞれの細部コードの桁数として割り当てることができる。
【0077】
更に、例えば、仮想コード生成装置100は、カード識別番号部分だけで仮想コードの細部コードと固定コードを表現できる。このとき、仮想コード生成装置100は、複数の細部コードに異なる桁数を割り当てることができる。即ち、仮想コードが固定コード、第1コード及び第2コードを含み、カード識別番号の桁数だけで固定コード、第1コード及び第2コードを生成する場合、仮想コード生成装置100は、固定コードに割り当てられる6桁を除いた桁数のうち、9桁を第1コードと第2コードに分けて割り当てる。カード識別番号が15桁の場合と16桁の場合に何れも適用するために、仮想コード生成関数は、カード識別番号の9桁のみを第1コードと第2コードに割り当てることができる。例えば、仮想コード生成関数は、9桁のうち、第1コードに6桁を割り当て、第2コードに3桁を割り当てることができる。このように、カード番号全体のうち、カード識別番号部分だけで仮想コードを構成するコードを表現すれば、ユーザがカード番号を直接入力しなければならない状況で入力すべき文字数が減少する。また、仮想コード生成装置100は、有効期間及びカードセキュリティコード部分を、セキュリティを向上させることができる他の用途として活用できる。
【0078】
また、仮想コードに第1コードと第2コードを含む一実施例において、仮想コードは仮想セキュリティコードを更に含む。例えば、仮想コードは、複数の細部コードと仮想セキュリティコードを含む。仮想コードのセキュリティコードは、実際カード番号のカードセキュリティコード(即ち、CVV又はCVC)の桁を活用して提供することができる。即ち、仮想コード生成装置は、既存の金融取引システムで用いられる実際カード番号と同一の文字数を含むように、カードセキュリティコードの桁を仮想コードの仮想セキュリティコードに割り当て、カード識別番号及び有効期間の全部又は一部の桁を複数の細部コードに割り当てることができる。
【0079】
前記セキュリティコードは特定のセキュリティコード生成関数を基に生成されるコードであって、正常な仮想コードか否かを検証するために用いられる。前記セキュリティコード生成関数は、時間データと仮想コード生成手段の固有値を関数値として用いて特定の桁数のセキュリティコードを生成する。
【0080】
仮想セキュリティコードを活用して仮想コードの正常か否かを判断する過程の一例は、以下の通りである。仮想コード検証手段20は、実際カード番号の発行時に仮想コード生成装置100の固有値(例えば、スマートカード内のチップ固有値又はAPPカードがインストールされたスマートフォンの固有値など)を受信して実際カード番号の格納位置に共に格納するか、実際カード番号の格納位置に繋がっている別途の格納空間に格納できる。仮想コード生成装置100が、仮想セキュリティコードが結合された仮想コードを生成して仮想コード検証手段20に提供すると、仮想コード検証手段20は、細部コードを基に仮想コードが生成された時間データを獲得し、内部に格納された特定の仮想コード生成装置100の固有値を抽出して時間データと共に仮想セキュリティコード生成関数(例えば、OTP(One-Time Password)関数)に適用して仮想セキュリティコードを算出する。仮想コード検証手段20は、仮想コード生成装置100から受信した仮想セキュリティコード(即ち、受信仮想セキュリティコード)と内部に格納された仮想セキュリティコード生成関数で算出した仮想セキュリティコード(即ち、生成仮想セキュリティコード)とが一致するかを判断する。仮想コード生成装置100で仮想コードを生成する時点と仮想コード検証装置200で仮想コードを受信した時点との間に差が存在し得るので、仮想コード検証装置200は時間遅延を考慮して特定の時間範囲内(例えば、仮想コードを受信した時点から特定カウント以前まで)の仮想セキュリティコード(即ち、OTP番号)を計算し、仮想コード生成装置100から受信した受信仮想セキュリティコードと一致する値が存在するかを確認する。仮想コード検証手段20は、受信仮想セキュリティコードと生成仮想セキュリティコードとが一致すると、正常な仮想コードと判断して実際カード番号を提供する。
【0081】
例えば、仮想セキュリティコードは、カードセキュリティ番号に対応する桁数にて生成することができる。即ち、仮想コード生成装置100は、仮想セキュリティコード生成関数を用いてカードセキュリティ番号に該当する3桁又は4桁を仮想セキュリティコードとして生成し、カードの使用時にカードセキュリティ番号として仮想セキュリティコードを入力すると、仮想コード検証手段20は仮想セキュリティコードを検証する過程を行う。
【0082】
また、他の例として、仮想セキュリティコード生成関数は、カウント毎に異なるl桁(lは自然数)のコードを生成して関数値として共に適用できる。即ち、仮想セキュリティコード生成関数には、l桁のランダムコード生成関数(例えば、l桁のコードを生成するOTP関数)を含めることができる。
【0083】
更に、一実施例として、仮想コードが第1コード及び第2コードの特定の規則による組み合わせで生成される場合、第1コードと第2コードは、実際カード番号が格納された格納位置を探索するためのそれぞれの役割を果たすことができる。例えば、第1コードは格納位置探索の開始地点を設定し、第2コードは特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定する。即ち、仮想コード生成装置100から単位カウント毎に正常に生成された仮想コードが提供されると、仮想コード検証手段20は、第1コードに対応する探索開始地点から第2コードに相応する探索経路に沿って移動した地点を実際カード番号の格納位置として判断する。仮想コードを構成する第1コードと第2コードを基に格納位置を探索する具体的な方式は後述する。
【0084】
細部コード生成部110が細部コードを生成する方式の一実施例として、細部コード生成部110は、単位カウント毎に新たな細部コードを生成し、これにより、仮想コード生成装置100は単位カウント毎に新たな仮想コードを生成する。単位カウント毎に新たに生成される仮想コードは重複して生成されない。具体的に、細部コード生成部110は、単位カウント毎に新たに生成される仮想コードが特定のユーザ又は特定の仮想コード生成装置100に定められた期間に重複して生成されないだけでなく、特定のグループに属するユーザ間でも重複して生成されないように設定される。
【0085】
仮想コードの重複生成を防止する具体的な一実施例として、M個の文字でN桁の前記第1コード又は前記第2コードを生成する場合、仮想コード生成関数に含まれる細部コード生成関数はM個のコードを第1コード又は第2コードとして生成することができ、それぞれのコードを細部コード生成関数が駆動される初期時点からカウント毎にマッチする。例えば、単位カウントを1秒に設定する場合、細部コード生成関数が最初に駆動された時点から毎秒、異なるM個のコードをマッチする。そして、特定の細部コード生成関数を用いる周期又は仮想コード生成装置100の使用周期(例えば、仮想コードを生成するスマートカードの有効期間)をMカウントに該当する時間長(例えば、1カウントが1秒である場合、M秒)よりも短い時間長に設定すると、第1コード又は第2コードは、使用周期の間に同一のコードとして重複して生成されない。即ち、時間が経過するにつれてカウントが増加するとき、ユーザが特定時点で仮想コード生成装置100に仮想コードの生成を要求する場合、仮想コード生成装置100は、特定時点に対応するカウントにマッチしたコード値を第1コード又は第2コードとして生成できる。
【0086】
具体的に、アルファベットの大文字と0から9までの数字をコードに含むことが可能な文字として使用(即ち、36個の文字を使用)し、実際カード番号のカード識別番号と有効期間の桁を活用して第1コードと第2コードにそれぞれ6桁を割り当てる場合、仮想コード生成装置100は第1コード及び第2コードとして36個のコードを提供できる。このとき、仮想コード生成装置100は、それぞれのコードをカウント毎にマッチさせ、カウント毎に変更された第1コード及び第2コードを提供できる。
【0087】
仮想コードの重複生成を防止する具体的な他の実施例として、仮想コード生成装置100の使用周期が経過すれば、第1コード又は第2コードを生成する関数(即ち、第1関数又は第2関数)を変更するか、第1コードと第2コードのマッチング関係を変更して以前の使用周期と異なる仮想コードが生成されるようにする。仮想コードが、第1関数により生成される第1コードと第2関数により生成される第2コードが結合される場合、第1コード生成関数又は第2コード生成関数が変更されると、仮想コード生成装置100は、第1コード又は第2コードが登場する順序が以前の使用周期と相違することにより、以前の周期とは異なる仮想コードを生成する仮想コード生成関数を新規の使用周期に適用できる。また、仮想コード生成装置100は、以前の使用周期で用いられた仮想コードと同一のコードが新規の使用周期内の各カウントの仮想コードとして登場しないように(即ち、第1関数によって生成される第1コードと第2関数によって生成される第2コードのマッチング関係が、新規の使用周期の全てのカウントで、以前の使用周期内に含まれているマッチング関係の中に含まれないように)第1関数と第2関数を選択できる。即ち、M個のコードを1回ずつ適用できる使用周期が経過した後、仮想コード生成関数の調節又は更新によって以前の使用周期と重なる仮想コードが生成されない新規の使用周期の仮想コード生成関数を適用できる。
【0088】
このとき、仮想コード生成手段10及び仮想コード検証手段20は、仮想コード生成関数を更新する規則を格納できる。即ち、仮想コード生成手段10及び仮想コード検証手段20は、複数の第1関数と第2関数を各使用周期に適用する順序又は規則を格納できる。
【0089】
また、仮想コードの重複生成を防止する具体的な他の実施例として、同一のグループに属するユーザ間でも同一の仮想コードが同一時点に生成されないように、仮想コードに含まれる第1コード又は第2コードのうち何れか1つは少なくとも仮想コード生成装置100毎に同一時点に常に相違して存在する値(即ち、装置識別値)を反映し、生成できる。一実施例として、装置識別値は、特定の細部コード生成関数が適用されるグループに特定の仮想コード生成装置100が含まれている時点(例えば、仮想コード検証手段20内に特定の細部コード生成関数が駆動された最初の時点から特定時間が経過した後、特定の仮想コード生成装置100に前記細部コード生成関数が適用され始めた時点)から現在まで経過した時間(又はカウント数)であり得る。1つのグループ内に複数の仮想コード生成装置100が含まれる場合、仮想コード生成装置100を該当グループに属するように設定するカウントを異なるようにすれば(即ち、仮想コード生成装置100が該当グループに同時に属せなくすれば)、仮想コード生成装置100がグループに属するようになった時点(又はカウント)から特定時点までの経過時間は仮想コード生成装置100毎に異なる。従って、細部コード生成関数のうち少なくとも何れか1つは、仮想コード生成装置100がグループに属するようになった時点(又はカウント)から特定時点までの経過時間を装置識別値として用いて、時点毎にそれぞれの仮想コード生成装置100で生成される仮想コードが異なるようにすることができる。これにより、仮想コード検証手段20がユーザを区別するためのデータを別途に受信せず、仮想コードを受信するだけで仮想コード生成装置100の区別が可能にすることができる。
【0090】
例えば、仮想コード生成装置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にカードが発行された時点から経過した時間長を変数として適用することによって、同一時点に同一の仮想コードが生成されないようにすることができる。
【0091】
また、特定の仮想コード生成装置100が特定のグループに属するようになった時点から経過した時間長は、時間が経過するにつれて増加し続けるので、特定の仮想コード生成装置100で生成される細部コード(例えば、第2コード)は同一の値が生成されず、継続して異なる値が生成される。
【0092】
更に、仮想コードの重複生成を防止する具体的な更に他の実施例として、周期全体においてユーザと関係なく重複した仮想コードが発生しないように、第1コードは、仮想コード検証手段20内で第1関数が駆動される初期時点からカウント毎にマッチされたコードのうち、仮想コードの生成が要求された時点(又はカウント)に対応するコード値に設定され、第2コードは、仮想コード生成装置100毎に同一時点に常に相違して存在する値(即ち、装置識別値)を反映して生成されるコード値に設定され、仮想コードを前記第1コードと第2コードが結合されたコード値として利用できる。第1コードはカウント毎に異なるコード値となり、第2コードは同一時点に仮想コード生成装置100毎に異なるコード値を有するようになり、第1コードと第2コードが結合された仮想コードが、全ての仮想コード生成装置100と全ての時点で異なるコード値として出力されるようになる。
【0093】
また、他の実施例として、前記仮想コード生成関数(又は細部コード生成関数)に対して、M個の文字を昇順に並べる多数の羅列規則のうち何れか1つが適用される。即ち、仮想コード生成装置100(即ち、仮想コード生成手段10)は、仮想コード生成関数内に含まれる細部コード生成関数にM個の文字を昇順に並べる規則を多様に適用して行える。例えば、アルファベットの大文字を昇順に並べる羅列規則は、一般的な順序であるA、B、C、…、Zの順となってもよく、A、C、B、…、Zの順となってもよい。仮想コード生成関数で羅列規則が変わることによって、仮想コード生成関数が駆動される初期時点から各カウントに順にコードがマッチされる順序が変わることになる。仮想コード検証手段20は、同一の羅列規則に従って生成されたコードが各カウントにマッチされているか、同一の羅列規則自体を仮想コード生成関数に含んで格納できる。従って、各グループ別の仮想コード生成関数が異なる細部コード結合関数を含むか、異なる文字羅列規則を含み、各グループ別に異なる仮想コード生成関数を有するようにすることができる。
【0094】
更に、他の実施例として、細部コード生成部110は、仮想コード検証サーバ200で実際カード番号の探索に用いる第1コード及び第2コードに変更して使用できる複数の細部コードを生成する。仮想コード生成関数は、それぞれの細部コード生成関数を含む。例えば、仮想コード生成関数は、複数の細部コード生成関数を用いて複数の細部コードを生成し、複数の細部コードを結合する細部コード結合関数を用いて仮想コードを生成する。
【0095】
一実施例として、細部コード生成部110は、仮想コード内に含まれるOTPコードと抽出コードを生成する役割を果たす。即ち、前記仮想コードは固定コード、OTPコード及び抽出コードを含む複数のコードを特定の規則に従って結合して生成される。このために、仮想コード生成関数は、OTPコードを生成するOTP関数、抽出コード生成関数及び細部コード結合関数を含むことができる。
【0096】
一実施例として、図4に示すように、前記細部コード生成部110は、OTPコード生成部111及び抽出コード生成部112を含む。
【0097】
前記OTPコード生成部111は、仮想コードの生成が要求された時点に内部に格納されたOTP関数を基にOTPコードを生成する。前記OTPコード生成部111は、特定のシードデータ(又はシリアル番号)を基にOTPコードの生成が要求されたカウント(即ち、ユーザから金融取引のために実際カード番号に対応する仮想コードの生成が要求された時点)を反映してOTPコードを生成する。前記OTPコードは、OTP関数を基に特定数の数字の配列により生成されて変換コードの算出に用いられる。即ち、仮想コードが仮想コード検証手段(例えば、仮想コード検証サーバ)に伝送されると、仮想コード検証手段は、仮想コードOTP番号を基に変換コードを探索した後、変換コードを実際カード番号の格納位置の探索に用いられる第1コード又は第2コードとして用いる。
【0098】
一実施例として、OTPコード生成部111は、金融機関サーバから実際カード番号が特定のユーザに発行されるか、実際カード番号を仮想トークン検証サーバに登録したカウントをOTP関数のシードデータとして用いる。即ち、仮想コード検証手段(即ち、金融機関サーバ又は仮想トークン検証サーバ)は、各ユーザ別に区別される実際カード番号の発行カウント又は実際カード番号の登録カウントをシードデータとして用いる。これにより、仮想コード検証手段は、仮想コードから抽出されたOTPコードを用いて実際カード番号が発行されるか、登録されたカウントを探索できる。また、これにより、OTPコード生成部111は、他のユーザの実際カード番号が登録又は発行されたカウントが異なるので、異なるシードデータを用いてOTP関数が駆動される。即ち、OTPコード生成部111は、各ユーザで異なる実際カード番号の登録又は発行カウントをシードデータとして用いることによって、ユーザ別に同一の時点に異なるOTPコードを生成できる。
【0099】
OTPコード生成部111で生成されるOTPコードは、仮想コード検証サーバ200で第1コード又は第2コードとして用いられる変換コードを算出するのに利用される。即ち、OTPコードは、変換コード生成関数にシード値として入力されて特定の変換コードの生成に用いられる。変換コード生成関数は、仮想コード検証サーバ200内に格納される。また、後述する抽出コード生成部112は、抽出コード生成関数に変換コードがシード値として用いられる場合、OTPコード生成部111で生成されたOTPコードで変換コードを生成するために変換コード生成関数を含むことができる。
【0100】
一実施例として、前記変換コードは、特定の規則に従ってOTPコードに一対一でマッチングできる。即ち、変換コード生成関数が、桁数が異なるOTPコードと変換コードを一対一でマッチング関係を形成することができる。
【0101】
また、他の実施例として、前記変換コードは、前記OTPコードと仮想コードの生成が要求されたカウント値を変換コード生成関数にシード値として入力して算出される。即ち、変換コード生成関数は、OTPコードと仮想コードの生成が要求されたカウント値をシード値として活用して、同一のOTP値がシード値として用いられてもカウント値によって異なる変換コードを生成することができる。これにより、OTPコードが変換コードよりも少ない桁数の数字列である場合、実際カード番号の格納位置の探索に用いられる第1コード又は第2コードとしてOTPコードよりも更に多くの場合の数の変換コードを利用できる。
【0102】
更に、他の実施例として、前記固定コードが特定のカード類型の仮想コードに対して新たに付与される場合、前記細部コード生成部110は、有効期間の桁に配置される特定の数字の組み合わせを可変コードとして生成し、可変コードとOTPコードを共に変換コード生成関数のシード値(即ち、変数)として利用できる。即ち、前記変換コードは、前記可変コードと前記OTPコードをシード値にして生成される。
【0103】
前記有効期間に配置される数字の組み合わせは、単位カウント毎に変更されて生成されるものであって、実際の有効期間として使用可能であり、現在のカウントから最大期間内に含まれる。決済システム内でエラーが発生しないためには、有効期間が現在時点から有効な期間内の値でなければならない。例えば、実際カードの有効期間が5年である場合、細部コード生成部110は、決済が要求された時点から5年以内の年月の組み合わせに該当する数字の組み合わせを特定の規則に従って生成する。
【0104】
これにより、OTPコードと可変コードの組み合わせと変換コード間の場合の数の差が減少する。例えば、有効期間内に5年内の数字の組み合わせが利用され、OTPコードとして3桁、変換コードとして9桁を数字でのみ用いる場合、60個の数字の組み合わせが可変コードとして利用され得るので、可変コードとOTPコードの組み合わせは60×10になって、可変コードなしにOTPコードのみをシード値として用いる時に比べて場合の数の差が減少する。
【0105】
前記抽出コード生成部112は、仮想コード検証手段(例えば、仮想コード検証サーバ)で実際カード番号の格納位置の探索に用いられる第1コード又は第2コードとして用いられる抽出コードを生成する役割を果たす。仮想コード検証手段がOTPコードを基に算出された変換コードを第1コードとして用いる場合、仮想コード検証手段は、抽出コードを第2コードとして用いられる。即ち、前記変換コード又は前記抽出コードは、前記仮想コード検証手段で設定された条件によって第1コード又は第2コードとしてそれぞれ用いられる。前記第1コードは、前記仮想コード検証手段で実際カード番号の格納位置を探索する開始地点を設定し、前記第2コードは、特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定する。具体的に、前記抽出コードは、同一のカウントに生成されたOTPコードから算出された変換コードに対応するので、仮想コード検証手段は、特定カウントの仮想コード内の抽出コードと特定カウントの仮想コード内のOTPコードを基に生成された変換コードを用いて実際カード番号の格納位置を探索する。
【0106】
また、変換コード及び抽出コードと第1コード及び第2コードのマッチング関係は、仮想コード生成装置100及び仮想コード検証装置200に予め設定されている。変換コード及び抽出コードと第1コード及び第2コードのマッチング関係が反対に適用されると、仮想コード検証サーバ200で実際カード番号の格納位置を探索できないので、仮想コード生成装置の発行時又は仮想コード生成関数の格納時に予め設定される。
【0107】
前記抽出コード生成部112は、一実施例として、OTP関数と相関関係を有する抽出コード生成関数を含む。即ち、抽出コード生成部112は、特定のカウントに生成されるOTPコードを基に変換コードと共に用いられて実際カード番号の格納位置を探索できるコード値を同一のカウントとして生成する関数を抽出コード生成関数として含む。
【0108】
また、他の実施例として、前記抽出コード生成部112は、OTPコード自体を抽出コード生成関数にシード値として入力して変換コードと共に実際カード番号の格納位置を探索できる抽出コード(即ち、特定カウントに変換コードと相関関係を有する抽出コード)を生成できる。また、他の実施例として、抽出コード生成部112が仮想コード検証サーバ200と同一にOTPコードを基に変換コードを算出する変換コード生成関数を含み、OTPコード生成部111で生成されたOTPコードを基に変換コードを生成し、変換コードをシード値として抽出コード生成関数に入力して抽出コードを生成できる。
【0109】
前記抽出コードは、前記仮想コードの全体数字の数から前記固定コード及び前記OTPコードを除いた数字の数の全部又は一部として生成される。即ち、抽出コード生成部112は、仮想コード(例えば、カード識別番号が16桁であり、カードセキュリティコードが3桁である場合、計23桁)から有効期間(例えば、4桁)と固定コード(例えば、6桁)を除いた桁数(例えば、カード識別番号内の固定コードを除いた範囲とカードセキュリティコード範囲を含む13桁)の全部又は一部に抽出コードとOTPコードが組み合わせられた数字列が配列される。例えば、カード識別番号の最後の桁をチェックディジット(check digit)として用いる場合、抽出コード生成部112は、チェックディジットの桁を除いた残りの桁(例えば、12桁)に抽出コードとOTPコードが組み合わせられた数字列を配列する。具体的に、前記仮想コード生成部120は、OTPコードと抽出コードを細部コード結合関数によって組み合わせて、前記カード識別番号から固定コードを除いた桁と前記カードセキュリティコードの桁に並べる。
【0110】
OTPコード生成部111と抽出コード生成部112は、単位カウント毎にOTPコードと抽出コードを異なるように生成する。即ち、前記OTPコード及び前記抽出コードは、単位カウント毎に変更される。これにより、仮想コード生成装置100は、カウント毎に変更された仮想コードを生成する。仮想コード検証サーバ200は、抽出コードとOTPコードが単位カウント毎に変更されても、OTPコードを基に生成される変換コードと抽出コードが連係されており、実際カード番号の格納位置を探索できる。
【0111】
また、他の実施例として、前記OTPコード生成部111は、仮想コード検証手段で第1コード又は第2コードとして用いられる変換コードよりも少ない桁数でOTPコードを生成する。例えば、前記OTPコードは、実際カード番号内のカードセキュリティコードの数字の数として生成され、前記第2コードは、前記仮想コードの全体数字の数から前記固定コード、前記OTPコード及び有効期間を除いた数字の数の全部又は一部として生成される。即ち、OTPコード生成部111は、カードセキュリティコードが3桁であれば、OTPコードを3桁に生成し、抽出コード生成部112は、全体カード番号の数字の数23個のうち、固定コード6桁、有効期間4桁、OTPコード3桁及びチェックディジット1桁を除いた9桁で抽出コードを生成する。
【0112】
これにより、仮想コード生成装置は、限られた実際カード番号の桁で9桁を抽出コードとして使用できるので、抽出コードとして使用できるコードの数が増加し、セキュリティが向上できる。特に、既存の決済プロセスを全く修正しないために、仮想コードに数字のみ用いる場合、抽出コードは、0から9までの10個の数字で9桁を生成でき、10個のコードを活用できる。
【0113】
このとき、OTPコードを基に生成される変換コードは、抽出コードと同一の桁数の数字列により生成される。これにより、変換コードと抽出コードは、仮想コード検証サーバで第1コード又は第2コードのそれぞれとして利用できる。また、少ない桁数のOTPコードで多くの桁数の変換コードを生成することによって、仮想コード内でOTPコードと抽出コードに活用できる領域(即ち、12桁)で多くの部分を抽出コードに活用できるようにする。
【0114】
従って、数字のみを用いて仮想コードを生成する場合にも、仮想コード検証サーバ200で第1コード又は第2コードとして直ぐに用いられる抽出コードに多くの数字の桁を付与し、残りの桁にOTPコードを付与するので、セキュリティを向上させることができる。
【0115】
仮想コード提供部130は、前記仮想コードを仮想コード検証装置200に提供するために外部に出力する役割を果たす。仮想コード提供部130は、仮想コードを外部に提供できる多様な構成を含むことができる。仮想コード提供部130は、無線インターネットモジュール、近距離通信モジュール、ICチップ131、磁場発生部、ディスプレイ部132などの全部又は一部を含む。
【0116】
無線インターネットモジュールとは、無線インターネットへの接続のためのモジュールをいい、移動端末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に仮想コードを伝送できる。
【0117】
近距離通信モジュールとは、近距離通信のためのモジュールを指す。近距離通信(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(登録商標)などを利用することができる。
【0118】
仮想コード提供部130は、仮想コード生成装置100がPOS装置に仮想コードを伝達するカードに該当する場合、磁場発生部又はICチップを含むことができる。磁場発生部は、カードデータを磁気信号の形態で出力してカードリーダに伝達する機能を行う。磁場発生部は、電流の流れによって磁場を形成してカード情報磁気信号を出力する磁気セルを1つ以上含むことができる。磁場発生部は、カードのPCB板の特定の長辺に隣接するように前記長辺に沿ってPCB板の上面又は下面に露出するように備えられる。
【0119】
ICチップ131はPCB板内に実装され、IC方式のカードリーダの端子と接触してデータの交換を行うようにすることができる。即ち、ICチップは、仮想コード生成部120で生成された仮想コードをIC方式のカードリーダに伝達する。
【0120】
ディスプレイ部132は、液晶ディスプレイ(liquid crystal display)、薄膜トランジスタ液晶ディスプレイ(thin film transistor-liquid crystal display)、有機発光ダイオード(organic light-emitting diode)、フレキシブルディスプレイ(flexible display)、電子ペーパ(E-Paper)のうち少なくとも1つを含むこともできる。
【0121】
ディスプレイ部132は、仮想コード生成部120で生成した仮想コードを視覚的に外部に出力する。これにより、仮想コード生成装置100のユーザは、リアルタイムに生成された仮想コードを視覚的に確認でき、仮想コード検証手段20に視覚的に確認した仮想コードを直接入力できる。
【0122】
例えば、図5に示すように、仮想コード生成装置がスマートカードである場合、仮想コード生成装置は、表面にカード番号を記載せず、仮想コードを出力できるディスプレイ部を備えることができる。また、例えば、仮想コードが発行者識別番号と同一の固定コードを含む場合、仮想コード生成装置100は発行者識別番号をカードの表面に記載し、残りのカード番号の桁のみディスプレイ部に表示することができる。例えば、前記ディスプレイ部は電子ペーパ、OLEDなどであってもよく、それぞれの桁に備えられる7-Segmentディスプレイであってもよい。また、例えば、仮想カード生成装置が、APPカードアプリケーションがインストールされているスマートフォンである場合、ディスプレイ部は、APPカードアプリケーションが実行されて表示されるスマートフォンのディスプレイ部であり得る。
【0123】
また、ユーザは、ディスプレイ部に表示された仮想コードを文字メッセージなどの多様な経路を通じて送ることができる。実際カード番号を伝送するのではなく、仮想コード検証手段20で実際カード番号を探索できる仮想コード(具体的に、継続的に変更・生成されるコード)を伝達するので、ユーザが文字メッセージなどによってコードを伝送する際に実際カード番号の流出を恐れないようにすることができる。
【0124】
更に、他の実施例として、図6に示すように、仮想コード生成装置100は仮想コード確認部140を更に含む。前記仮想コード確認部140は、前記固定コードが特定のカード類型の実際カード番号として用いられる場合、特定のカウントで生成された仮想コードが特定のカードの類型で実際カード番号として使用可能なコード列であるか否かを判断する役割を果たす。
【0125】
仮想コード生成装置100の仮想コード生成部120が特定のカード類型の実際カード番号に付与される発行者識別番号と区別される該当カード類型の仮想コード用発行者識別番号を固定コードとして用いると、異なる発行者識別番号により実際カード番号と重複しなくなる。しかし、実際カード番号に利用される発行者識別番号をそのまま固定コードとして用いることになると、実際にカード会社から発行したか、発行できる実際カード番号が重複する恐れがあるので、これを防止して仮想コード検証サーバ200で仮想コードであることを確認し、実際カード番号を探索できる。即ち、仮想コード生成装置100は、特定のカード会社又はカード類型の実際カード番号の生成規則に従って生成される数字列を排除し、仮想コードを生成しなければならない。
【0126】
具体的に、前記仮想コード確認部140は、仮想コード内のカード識別番号、有効期間及びサービスコード(即ち、各カード会社別に実際カード番号の生成時に用いる固有コード)を実際カード番号の生成規則に入力して比較カードセキュリティコードを生成し、前記仮想コード内のカードセキュリティコードの桁に配置された数字である生成カードセキュリティコードと前記比較カードセキュリティコードとを比較して一致すると、仮想コードの再生成を要求する。例えば、仮想コード生成装置100は、次のカウントを基準に再び仮想コードを生成して比較する過程を繰り返して行い、実際カード番号として生成されない仮想コードを出力する。また、前記サービスコードを、外部から接近できない格納空間に格納することができる。
【0127】
図7は、本発明の一実施例に係る仮想コード検証装置200の構成図である。
【0128】
図7を参照すれば、本発明の更に他の実施例に係る仮想コード検証装置200は、仮想コード受信部210、細部コード抽出部220、実際カード番号探索部230を含む。仮想コード検証装置200は、金融機関のサーバ(例えば、カード会社又は銀行のサーバ)であり得る。
【0129】
例えば、仮想コード検証装置200は、特定のユーザが保有している特定カード会社の特定類型のカードに対する仮想コードを受信した後、実際カード番号を探索して決済を行うカード会社サーバであり得る。具体的に、カード決済の場合、仮想コード検証装置200は、POS装置及びPG会社のサーバを介して仮想コード生成装置100で生成した仮想コードを受信する。
【0130】
また、例えば、ユーザが仮想コード生成装置であるスマートカードを用いてATMから現金を引き出そうとする場合、仮想コード検証装置200は銀行サーバであり得る。即ち、ユーザが仮想コード生成装置100であるスマートカードで現金自動預払機(ATM)に仮想コードを入力(例えば、スマートカードをカード挿入口に挿入するか、NFCリーダに接触)すると、銀行サーバはATMから仮想コードを受信した後、実際カード番号を探索する。
【0131】
仮想コード受信部210は、仮想コード生成装置100から仮想コードを受信する役割を果たす。一実施例として、仮想コード受信部210は、他のサーバ(例えば、支払い決済サービスサーバ)との通信を介して仮想コード生成装置100で生成された仮想コードを受け取ることができる。
【0132】
細部コード抽出部220は、前記仮想コードに含まれている複数の細部コードを抽出する。前記仮想コードは、複数の細部コードを特定の規則に従って結合して生成される。仮想コード検証装置200の細部コード抽出部220は、特定グループの仮想コード生成装置100と同一の細部コード結合関数を含み、細部コード抽出部220は、細部コード結合関数を適用して仮想コードから複数の細部コードを抽出できる。例えば、仮想コード生成装置100で2つの細部コード(例えば、第1コードと第2コード自体が仮想コード内に含まれる場合には第1コードと第2コードであり、第1コードと第2コードに代えて使用できるコードを含む場合、OTPコードと抽出コード)が結合された仮想コードを生成する場合、細部コード抽出部220は、仮想コードの文字配列から細部コード結合関数を適用して2つの細部コードを分離できる。
【0133】
また、他の実施例として、図8に示すように、細部コード抽出部220は変換コード算出部221を含む。仮想コードにOTPコードと抽出コードが含まれており、細部コード結合関数によりOTPコードと抽出コードを分離した場合、変換コード算出部221は、OTPコードをシード値にして変換コードを算出する変換コード生成関数を含む。
【0134】
一実施例として、前記変換コードは、特定の規則に従ってOTPコードに一対一でマッチングできる。即ち、変換コード生成関数が、桁数が異なるOTPコードと変換コードを一対一でマッチング関係を形成する。
【0135】
また、他の実施例として、前記変換コードは、前記OTPコードと仮想コードの生成が要求されたカウント値を変換コード生成関数にシード値として入力して算出される。即ち、変換コード生成関数は、OTPコードと仮想コードの生成が要求されたカウント値をシード値として活用して、同一のOTP値がシード値として用いられてもカウント値によって異なる変換コードが生成される。これにより、OTPコードが変換コードよりも少ない桁数の数字列である場合、実際カード番号の格納位置の探索に用いられる第1コード又は第2コードとしてOTPコードよりも更に多くの場合の数の変換コードを利用できる。このとき、変換コード算出部221は、仮想コードを受信したカウントから特定範囲内のカウントで生成されるOTP値と仮想コードから分離されたOTPコードとを比較して仮想コードが生成されたカウントを把握する。一実施例として、前記変換コード生成関数は、OTPコードをシードデータとして用いる特定のOTP関数であり得る。即ち、前記変換コード生成関数は、OTPコードをシードデータとして適用して現在時点(即ち、現在時間データ)に対するコードを生成する。
【0136】
更に、他の実施例として、前記固定コードが特定のカード類型の仮想コードに対して新たに付与される場合、前記細部コード生成部110は、有効期間の桁に配置される特定の数字の組み合わせを可変コードとして生成し、可変コードとOTPコードを共に変換コード生成関数のシード値(即ち、変数)として利用できる。即ち、前記変換コードは、前記可変コードと前記OTPコードをシード値にして生成される。
【0137】
前記有効期間に配置される数字の組み合わせは、単位カウント毎に変更されて生成されるものであって、実際の有効期間として使用可能であり、現在のカウントから最大期間内に含まれる。決済システム内でエラーが発生しないためには、有効期間が現在時点から有効な期間内の値でなければならない。例えば、実際カードの有効期間が5年である場合、細部コード生成部110は、決済が要求された時点から5年以内の年月の組み合わせに該当する数字の組み合わせを特定の規則に従って生成する。
【0138】
実際カード番号探索部230は、複数の細部コードを基に実際カード番号の格納位置を探索する。実際カード番号探索部230がそれぞれの細部コードを基に実際カード番号の格納位置を探索する方式としては、多様な方式が適用される。実際カード番号探索部230が複数の細部コードを基に格納位置を探索するために細部コード間には相関関係を含むことができる。
【0139】
仮想コードが第1コード及び第2コードで構成される場合、細部コード間で相関関係を有する一実施例として、実際カード番号探索部230は、第1コードに対応する探索開始地点を決定し、前記探索開始地点から第2コードに相応する探索経路に沿って移動した地点を実際カード番号の格納位置として探索できる。即ち、前記細部コードは、格納位置探索の開始地点を設定する第1コード及び特定の探索方式によって、前記開始地点から前記格納位置への探索経路を設定する第2コードを含むことができる。
【0140】
また、他の実施例として、仮想コード生成手段10(又は仮想コード生成装置100)が単位カウント毎に新規の仮想コードを提供することによって、仮想コード検証装置200は、カウント毎に変更される第1コード及び第2コードを基に探索開始地点と探索経路を設定して実際カード番号の格納位置を探索できる。
【0141】
更に、他の実施例として、実際カード番号探索部230は、相関関係を有する複数の細部コードを用いて実際カード番号の格納位置を探索するために、格納位置探索アルゴリズムを含むことができる。格納位置探索アルゴリズムは、仮想コードに含まれるそれぞれの細部コードの適用時に格納位置の探索が可能にするアルゴリズムである。例えば、仮想コードから格納位置の探索開始地点を決定する第1コードと探索開始地点からの格納位置の方向を提示する第2コードを含む場合、格納位置探索アルゴリズムは、第1コードに対応する地点で第2コードに対応する方向を指示するとき、該当位置に実際カード番号がマッチする格納位置が配置されるように調節するアルゴリズムである。格納位置探索アルゴリズムを用いることによって、仮想コード検証装置200は、仮想コードに含まれている第1コードと第2コードが変更されても実際カード番号の格納位置又は格納位置にマッチした地点を探索できる。格納位置探索アルゴリズムは多様な方式が適用されることができ、具体的な例示は後述する。但し、格納位置探索アルゴリズムは、後述する例示に限定されない。
【0142】
また、他の実施例として、図9に示すように、前記仮想コード検証装置200は、仮想コード検証部240を更に含む。仮想コード検証部240は、仮想コード検証装置200が受信した仮想コードの真偽を判断する役割を果たす。
【0143】
更に、他の実施例として、仮想コード検証部240は、仮想コードがOTPコードと抽出コードを含む場合、OTPコードを用いてユーザのカードにて現時点で生成された仮想コードかを確認する。例えば、前記OTPコードがそれぞれのユーザ又は仮想コード生成手段に対する実際カード番号が発行又は登録されたカウントに対応する値をOTP関数のシードデータとして用いて生成される場合、仮想コード検証部240は、受信したOTPコード(即ち、受信OTPコード)を基に生成された変換コードと仮想コードから抽出された抽出コードを用いて探索されたカウントをシードデータとして用いて生成された比較OTPコードと、受信した仮想コードに含まれている受信OTPコードとを比較する。
【0144】
即ち、仮想コード検証部240は、仮想コード検証手段で探索されたカウント(即ち、仮想コードを基に実際カード番号とマッチしたものと判断されたカウント)をシードデータとして現時点から特定時間範囲内の時間データを基に算出された複数の比較OTPコードのうち、受信OTPコードと一致するものが存在するかを確認する。仮想コード検証部240は、現時点から特定時間範囲内の時間データを基に生成された比較OTPコードのうち、受信OTPコードと一致するものが存在すると、正常に生成された仮想コードと判断し、受信OTPコードと一致するものが存在しないと、異常な仮想コード(任意に生成された仮想コード又は該当仮想コード生成装置で以前に生成された仮想コード)と判断する。
【0145】
図10は、本発明の一実施例に係る仮想コード基盤の金融取引提供方法の順序図である。
【0146】
図10を参照すれば、本発明の一実施例に係る仮想コード基盤の金融取引提供方法は、仮想コード検証手段が仮想コード生成手段から提供された仮想コードを受信する段階(S200;仮想コード受信段階)と、前記仮想コード検証手段が前記仮想コードに含まれている複数の細部コードを抽出する段階(S400)と、前記仮想コード検証手段が複数の細部コードを基に実際カード番号の格納位置を探索する実際カード番号探索段階(S1000;実際カード番号探索段階)と、前記格納位置から抽出された前記実際カード番号で金融取引の進行又は金融取引の進行を要求する段階(S1200)と、を含む。以下、各段階に関する詳細な説明を記載する。但し、仮想コード生成装置100及び仮想コード検証装置200に対する説明過程で上述した内容に関する具体的な開示は省略する。
【0147】
仮想コード検証手段20が仮想コード生成手段10から仮想コードを受信する(S200;仮想コード受信段階)。仮想コードは、仮想コード生成装置100(又は仮想コード生成手段10)で生成され、仮想コード検証手段20に提供される。
【0148】
仮想コード検証手段20は、仮想コード生成手段10が生成した仮想コードを多様な方式で受信する。即ち、上述した仮想コード生成装置100の多様な仮想コード提供方式が適用されることができる。
【0149】
例えば、カード会社サーバが前記仮想コード検証手段を含む場合、前記仮想コード受信段階(S200)は、前記仮想コード検証手段が支払い決済サービスサーバで前記固定コードを基に特定のカード会社に対応するものとして分類された前記仮想コードを受信する。このとき、前記支払い決済サービスサーバは、金融取引端末30やコンピュータで駆動される決済プログラムから仮想コードを受信する。
【0150】
仮想コード検証手段20が前記仮想コードに含まれている複数の細部コードを抽出する(S400)。仮想コード検証手段20は、仮想コード生成手段10が含む仮想コード生成関数を含むことによって、複数の細部コードを結合していた規則(即ち、細部コード結合関数)を同じく適用して複数の細部コードを抽出する。即ち、細部コード結合関数は、複数の細部コードを配列する規則に該当するものであって、仮想コード生成関数内に含まれる。
【0151】
一実施例として、仮想コード検証手段20は、仮想コード内に格納位置の探索に用いられる第1コードと第2コードが直接含まれている場合、第1コードと第2コードを細部コード結合関数を用いて抽出する。即ち、第1コード及び第2コードは、仮想コード検証手段20で実際カード番号の位置を探索するのにそれぞれ用いられる。例えば、第1コードは、仮想コード検証手段20で実際カード番号格納位置の探索開始地点を設定するコードであり、第2コードは、特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定するコードであり得る。前記探索方式を、格納位置探索アルゴリズムにより決定することができる。探索方式の決定についての詳細な説明は、後述する実際カード番号探索段階(S1000)で詳細に記述する。
【0152】
また、他の実施例として、前記仮想コード生成関数は、M個の文字でN桁の前記第1コード又は前記第2コードを生成する場合、異なるM個のコードを単位カウント毎に順次変更される第1コード又は第2コードとして提供する第1関数又は第2関数を含む。即ち、第1関数又は第2関数は、M個のコードをカウントの増加によって重ならないように生成する関数であって、特定の時点に対応するカウントのM個のコードのうち、特定の1つを第1コード又は第2コードとして生成する。これにより、仮想コード生成手段10はMカウント(即ち、M個のカウントに対応する時間長)内に同一の第1コード又は第2コードを重複して生成せず、単位カウント毎に新たな細部コード(即ち、第1コード又は第2コード)を生成し、単位カウント毎に新たな仮想コードを生成する。
【0153】
具体的に、仮想コード生成関数は、M個の文字でN桁の前記第1コード又は前記第2コードを生成することによって、M個のコードを第1コード又は第2コードとして用いる場合、それぞれのコードを細部コード生成関数が駆動される初期時点からカウント毎にマッチする。例えば、単位カウントを1秒に設定する場合、細部コード生成関数が最初に駆動された時点から毎秒、異なるM個のコードをマッチする。そして、特定の細部コード生成関数を用いる周期又は仮想コード生成装置100の使用周期(例えば、仮想コードを生成するスマートカードの有効期間)をMカウントに該当する時間長(例えば、1カウントが1秒である場合、M秒)よりも短い時間長に設定すると、第1コード又は第2コードは、使用周期の間に同一のコードが重複して生成されない。即ち、時間が経過するにつれてカウントが増加するとき、ユーザが特定時点で仮想コード生成手段10に仮想コードの生成を要求する場合、仮想コード生成装置100は、特定時点に対応するカウントにマッチしたコード値を第1コード又は第2コードとして生成できる。
【0154】
また、他の実施例として、同一のグループ(即ち、同一のカード会社の同一のカード類型のグループ)内でも同一の仮想コードが同一時点に生成されないように、仮想コードに含まれる第1コード又は第2コードのうち少なくとも何れか1つは、各仮想コード生成手段10で同一時点に常に相違して存在する値(即ち、装置識別値)を反映し、生成できる。即ち、特定の時点に同一のカート類型又はカード種類である、複数の仮想コード生成手段10で仮想コードの発行が要求される場合、各仮想コード生成手段10が異なる仮想コードを生成するように各時点で各仮想コード生成手段10に相違して付与される値を反映して異なる第1コード又は第2コードを生成する。
【0155】
例えば、仮想コードが発行会社識別コードに該当する固定コードを含む場合、仮想コード検証装置200(例えば、カード会社サーバ)は、発行会社識別番号で区別される各カード会社のカードの類型別に仮想コード生成関数を付与する。従って、仮想コード生成手段10は、固定コードにより異なるカード会社/カードの類型間で異なる仮想コードを生成するので、同一のカード会社の特定のカード類型のグループ内で同一の仮想コードが生成されないように細部コードを生成しなければならない。このために、各仮想コード生成手段10が異なる仮想コードを生成するように各時点で各仮想コード生成手段10に相違して付与される値を反映して異なる細部コードを生成する。
【0156】
一例として、装置識別値は、特定の細部コード生成関数が適用されるグループに特定の仮想コード生成手段10が含まれている開始時点(例えば、仮想コード検証手段20内に特定の細部コード生成関数が駆動された最初の時点から特定時間が経過した後、特定の仮想コード生成装置100に前記細部コード生成関数が適用され始めた時点)から現在まで経過した時間(又はカウント数)であり得る。例えば、装置識別値として、特定のユーザの要求によって特定のカード会社のカードの類型に実際カード番号を発行し、実際カード番号が該当カード類型のグループに属するようになったカウントからの経過時間を用いることができる。例えば、仮想コードが第1コードと第2コードの結合により生成される場合、仮想コード生成関数は、実際カード番号を新たに生成した時点から経過した単位カウントを基に第2コードを生成するようにすることができる。
【0157】
複数の仮想コード生成手段から同時に仮想コードの発行を要求された場合にも異なるコードが生成されなければ重複コードの発生に伴う問題を解消できない。仮想コード生成手段10を該当カード類型のグループに属するように設定するカウントを異なるようにすれば(例えば、仮想コード生成手段10に対する実際カード番号を該当カード類型のグループに同一時点に登録できなくすれば)、仮想コード生成手段10がグループに属するようになった時点(又はカウント)から特定時点までの経過時間は仮想コード生成装置100毎に異なることになる。例えば、同時に特定のカード会社の特定のカード類型のカード発行要求が受信される場合、仮想コード検証手段20は、同時に受信されたカードの発行要求を、予め定められた条件によって順序を付与して他のカウントに要求が入力されたものとして処理できる。即ち、仮想コード検証手段20は、実際に同時に受信したカードの発行要求を少なくとも単位カウントの差が1つ発生するように異なるカウントにマッチし、これにより各仮想コード生成手段10に対する実際カード番号が発行された時点から特定の同一時点まで経過したカウント数が常に異なるようにすることができる。
【0158】
従って、細部コード生成関数のうち少なくとも何れか1つは、仮想コード生成装置100が特定のカード類型のグループに属するようになった時点(又はカウント)から特定時点までの経過時間を装置識別値として用いて、時点毎にそれぞれの仮想コード生成装置100で生成される仮想コードが常に異なるようにすることができる。これにより、仮想コード検証手段20がユーザを区別するためのデータを別途に受信せず、仮想コードを受信するだけで仮想コード生成手段10の区別が可能にすることができる。
【0159】
また、特定の仮想コード生成装置100が特定のカード類型のグループに属するようになった時点から経過した時間長は、時間が経過するにつれて継続して増加するので、特定の仮想コード生成装置100で生成される細部コード(例えば、第2コード)は同一の値が生成されず、継続して異なる値が生成される。
【0160】
なお、更に他の実施例として、周期全体においてユーザと関係なく重複した仮想コードが発生しないように、第1コードは、第1関数が駆動される初期時点からカウント毎にマッチしたコードのうち、仮想コードの生成が要求された時点(又はカウント)に対応するコード値に設定され、第2コードは、仮想コード生成装置100毎に同一時点に常に相違して存在する値(即ち、装置識別値)を反映して生成されるコード値に設定され、仮想コードを前記第1コードと第2コードが結合されたコード値として利用できる。第1コードはカウント毎に異なるコード値となり、第2コードは同一時点に仮想コード生成装置100毎に異なるコード値を有するようになり、第1コードと第2コードが結合された仮想コードは、仮想コード生成装置100及び時点と関係なく異なるコード値が出力されるようになる。
【0161】
また、他の実施例として、前記仮想コード生成関数は、複数の細部コードを配列する規則に該当する細部コード結合関数を含む。即ち、仮想コード生成関数は、複数の細部コードに含まれている文字を羅列又は配置する特定の規則を有していることができる。これにより、同一の仮想コード生成関数を含む仮想コード生成手段10と仮想コード検証手段20の場合、仮想コード生成手段10が複数の細部コードに含まれている文字を細部コード結合関数によって配列し、仮想コード検証手段20が同一の細部コード結合関数を用いて仮想コードから個別の細部コードを分離できる。
【0162】
更に、他の実施例として、前記仮想コード生成関数は、M個の文字を昇順に並べる多数の羅列規則のうち何れか1つが適用される。即ち、仮想コード生成関数は、M個の文字を昇順に並べる多様な羅列規則が適用され、適用される羅列規則に従って異なる仮想コード生成関数に分類することができる。
【0163】
他の実施例として、仮想コード検証手段20は、仮想コード内に格納位置の探索に用いられる第1コードと第2コードに代えて用いられる複数の細部コードを含む場合、細部コード結合関数を用いて複数の細部コードを抽出した後、実際カード番号の格納位置の探索に用いられる第1コードと第2コードに変換する。
【0164】
具体的に、前記細部コード抽出段階(S400)は、複数の細部コードとしてOTPコード及び抽出コードを含む場合、前記仮想コード検証手段が前記仮想コードに特定の規則に従って含まれている固定コード及び複数の細部コードを抽出する。前記OTPコードは、仮想コード生成手段10でOTP関数を基に特定数の数字の配列により生成されて変換コードの算出に用いられる。前記抽出コードは、前記OTPコードから算出された前記第1コードに対応し、前記仮想コードの全体数字の数から前記固定コード及び前記OTPコードを除いた数字の数の全部又は一部で生成される。
【0165】
また、前記細部コード抽出段階(S400)は、図11に示すように、仮想コード検証手段が前記OTPコードを基に変換コードを算出する段階(S410)を更に含む。即ち、OTPコードは、第1コード又は第2コードとして直接用いられることはできず、第1コード又は第2コードとして利用できる変換コードに変換されなければならない。
【0166】
例えば、カード識別番号内に固定コード(即ち、発行者識別番号)の桁及び検証数字の桁を除いた桁数とカードセキュリティコードの桁数にOTPコードと抽出コードの組み合わせが配列され、数字のみを用いて細部コードを生成する場合、仮想コード生成手段10は、第1コード又は第2コードに転換されて直接用いられる抽出コードの可用コード数を増加させるために抽出コードに多くの桁を割り当て、OTPコードに少ない数の桁を割り当てる。従って、OTPコードは、抽出コードと同一の桁数のコードである変換コードに変換される必要がある。
【0167】
このために、仮想コード検証手段20は、OTPコードをシード値にして変換コードを生成する変換コード生成関数を含む。仮想コード検証手段20は、仮想コード生成手段10と同一の変換コード生成関数を含む。
【0168】
一実施例として、前記変換コード生成関数は、OTPコードのみをシード値として用いて桁数が異なるOTPコードと変換コードを特定の規則により一対一でマッチングできる。
【0169】
また、他の実施例として、前記変換コード生成関数は、OTPコードと仮想コードが生成されたカウントをシード値として用いて変換コードを算出できる。このとき、仮想コード検証手段は、仮想コードを受信したカウントから特定範囲内のカウントでOTPコード生成関数により生成されたOTP値とOTPコードとを比較して仮想コードが生成されたカウントを確認できる。即ち、仮想コード検証手段20は、前記仮想コード生成手段に含まれているのと同一のOTP関数で生成される比較コードと前記OTPコードとを比較して仮想コードが生成されたカウント値を算出し、前記変換コード算出段階(S410)で前記カウント値と前記OTPコードをシード値にして前記変換コード生成関数に入力して変換コードを算出する。
【0170】
更に、他の実施例として、仮想コード検証手段は、有効期間の桁に含まれている数字の組み合わせである可変コードをOTPコードと共にシード値として用いて変換コードを生成できる。即ち、前記固定コードが特定カードの類型の仮想コードに対して実際カード番号に付与される既存の発行者識別番号ではなく、新たに付与されたコードである場合、前記細部コード抽出段階(S400)では、有効期間の桁から可変コードを抽出し、前記可変コードと前記OTPコードを変換コード生成関数にシード値として入力して前記変換コードを生成する(S410;変換コード算出段階)。
【0171】
可変コードは、仮想コード生成手段10で決済要求時点を基準に有効期間として有効に使用可能な数字の組み合わせを付与したものである。仮想コード生成手段10は、抽出コードを、可変コードとOTPコードの組み合わせで生成される変換コードと相関関係を有するように生成する。これにより、仮想コード検証手段は、仮想コード内の有効期間の桁の可変コードと仮想コードから抽出されたOTPコードをそのまま変換コード生成関数にシード値として入力して変換コードを生成し、これを抽出コードと異なるコード(即ち、抽出コードが第2コードとして用いられる場合に第1コード)として直ぐに使用できる。
【0172】
また、他の実施例として、仮想コードが、仮想コード生成手段10が含まれているグループを決定する固定コードを含む場合、前記細部コード抽出段階(S400)では、前記仮想コード内から前記固定コードを抽出し、前記固定コードを基に前記仮想コード生成手段のカード類型のグループを判断し、前記カード類型のグループに対する前記仮想コード生成関数又は前記格納位置探索アルゴリズムを決定する。即ち、各グループ別に異なった仮想コード生成関数又は格納位置探索アルゴリズムを適用する場合、仮想コード検証手段20は、仮想コード内の固定コードを基にグループを区別する。
【0173】
更に、固定コードを用いて仮想コード生成関数を決定する過程を、複数の細部コードを抽出する過程の前に実行できる。固定コードにより仮想コード生成関数が決定されなければ仮想コード生成関数内に含まれている細部コード結合関数が決定されず、複数の細部コードを抽出できない。このために、仮想コード検証手段20が別途の関数がなくても容易に分離できるように、固定コードを、仮想コード内の固定された位置(例えば、仮想コードの最も前の特定個数の桁)に結合することができる。
【0174】
具体的な一実施例として、前記細部コード抽出段階(S400)は、OTPコードと抽出コードの組み合わせが仮想コード内のカード識別番号から固定コードを除いた桁と前記カードセキュリティコードの桁に並んでいる数字列の全部又は一部に含まれる場合、前記仮想コード内のカード識別番号領域から固定コードを抽出する段階と、前記固定コードを基に特定のカードの類型に対応する細部コード結合関数を設定する段階と、前記カード識別番号から固定コードを除いた桁と前記カードセキュリティコードの桁に並んでいる数字列から前記細部コード結合関数を用いて前記OTPコードと前記抽出コードを抽出する段階とを含む。
【0175】
また、他の実施例として、仮想コード検証手段は、有効期間値を格納位置探索アルゴリズム又は仮想コード生成関数を区別する固定コードの下位の細部基準値として用いることができる。即ち、前記仮想コードは、実際カード番号の有効期間を同じく含み、前記仮想コード検証手段20は、前記固定コード及び有効期間値によって異なる実際カード番号探索アルゴリズムを含む。前記実際カード番号探索アルゴリズムは、後述するように、前記第1コードと前記第2コードを基に実際カード番号が格納された位置を探索する。これにより、1つのカードの類型内で有効期間値によって(即ち、特定類型のカードを発行された年月によって)実際カード番号の探索アルゴリズムを別途に用いるので、仮想コード検証手段20は、使用可能な抽出コードとOTPコードの組み合わせを固定コードと有効期間値により分けられた複数のグループに重複して使用できるようになる。
【0176】
仮想コード検証手段20が複数の細部コードを基に実際カード番号の格納位置を探索する(S1000;実際カード番号探索段階)。複数の細部コードが第1コードと第2コード自体である場合、仮想コード検証手段20は、仮想コードから抽出された第1コードと第2コードを直接用いて実際カード番号の格納位置を探索する。第1コードと第2コードは互いに相関関係を有しており、仮想コード検証手段20は、第1コードと第2コードの相関関係を基に実際カード番号の格納位置を探索する。具体的な一実施例として、前記第1コードは、仮想コード検証手段で実際カード番号の格納位置を探索する開始地点を設定し、前記第2コードは、特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定する。
【0177】
他の実施例として、仮想コード内の細部コードが第1コードと第2コードに転換するために用いられるコード(例えば、OTPコードと抽出コード)である場合、仮想コード検証手段20は、OTPコードにより算出された変換コードと抽出コードを仮想コード生成手段10と同じ基準で第1コードと第2コードに適用する。例えば、仮想コード生成手段10と仮想コード検証手段20が同一の抽出コードを第2コードとして用い、OTPコードを基に生成される変換コードを第1コードとして用いるものと定めることができる。従って、仮想コード検証手段20は、定められた基準によって変換コードと抽出コードを第1コードと第2コードに適用する。
【0178】
仮想コード内の複数の細部コードは、単位カウント毎に生成されるコードが変更(例えば、仮想コードが2つの細部コードからなる場合、OTPコード及び抽出コードは単位カウント毎に変更)され、仮想コード検証手段20は、単位カウント毎に仮想コードが変更されても複数の細部コードに対応する第1コードと第2コードが相関関係を有することによって実際カード番号の格納位置を探索できる。
【0179】
仮想コードを構成する細部コード間の相関関係に関する一実施例として、仮想コードが第1コードと第2コードの結合により生成される場合、仮想コード検証手段20は、第1コードを探索開始地点(即ち、実際カード番号の格納位置の探索を開始する地点)に設定し、第2コードを前記探索開始地点から格納位置に移動する経路に適用して格納位置を探索できる。即ち、単位カウント毎に正常に生成された仮想コードが受信されると、仮想コード検証手段20は、第1コードに対応する開始地点から前記第2コードに相応する探索経路に沿って移動した探索地点を実際カード番号の格納位置又は格納位置にマッチした地点(例えば、別途のサーバの探索地点にマッチされている格納空間)と判断する。
【0180】
一実施例として、第2コードが第1コードに相応する探索開始地点から格納位置までの経路に関する情報を全て含む場合、仮想コード検証手段20は、第1コードに相応する探索開始地点から第2コードに相応する探索経路に沿って実際カード番号の格納位置又は格納位置にマッチした地点を探索できる。
【0181】
他の実施例として、仮想コード検証手段20は、単位カウント毎に実際カード番号の格納位置を仮想コードに沿うように調節する格納位置探索アルゴリズムを含むことができる。即ち、前記仮想コード検証手段20は、単位カウント毎に実際カード番号の格納位置にマッチした地点への探索経路を調節する格納位置探索アルゴリズムを含む。前記第1コード及び前記第2コードが単位カウント毎に変更される場合、仮想コード検証手段20は、変更される第1コード及び第2コードに沿うように格納位置探索アルゴリズムを調節できる。前記格納位置探索アルゴリズムは、多様な形態で実現することができる。
【0182】
一実施例として、図13に示すように、格納位置探索アルゴリズムがk(kはM)個のコードが並んでいるトラック上をk角形が各コードが配置された地点に頂点が対応しながら転がり移動するものであり得る。このとき、前記実際カード番号探索段階(S1000)は、仮想コード検証手段20が前記仮想コード生成手段10から受信した前記仮想コード内の第1コードに対応するトラック上の地点にk角形を転がり移動する段階(S1010)、前記第1コードに対応する位置を開始地点に設定し、前記第2コードに適用された探索方式によって第2コードを基にk角形の配置状態における格納位置又は前記格納位置がマッチした地点を探索する段階(S1020;格納位置探索段階)、前記格納位置に含まれている実際カード番号を抽出する段階(S1030)を含む。
【0183】
仮想コード検証手段20は、図12に示すように、仮想コード生成手段10から受信した前記仮想コード内の第1コードに対応するトラック上の地点にk角形を転がり移動する(S1010)。格納位置探索アルゴリズムは、第1コードに該当するM個のコードが並んでいるトラックに沿って転がり移動するk角形(kはM)であり、k角形の頂点が第1コードのトラック上にコードが配置される地点に対応しながら移動する。このとき、仮想コード検証手段20は、第1コードに対応する地点にk角形の頂点が接するようにk角形を転がり移動させることができる。
【0184】
仮想コード検証手段20は、図12に示すように、前記第1コードに対応する位置を開始地点に設定し、前記第2コードに適用された探索方式によって第2コードを基にk角形の配置状態における格納位置又は格納位置にマッチした地点(即ち、k角形の特定の頂点)を探索する(S1020;格納位置探索段階)。前記格納位置は、前記k角形のそれぞれの頂点にマッチする。第1コードのトラック(即ち、第1トラック)とk角形が対応する地点が第1コードに対応する格納位置の探索開始地点となる。仮想コード検証手段20は、探索開始地点から第2コードを基に格納位置のマッチング地点を探索する。
【0185】
第2コードを基にk角形で格納位置を探索する方式としては、多様な方式が適用される。一例として、仮想コード検証手段20は、k角形が接している第1トラック上の位置で第2コードに相応する角度(例えば、k角形の頂点に向かうように180°をM個に分割した特定の角度)を指示することによって、仮想コードに対応する実際カード番号が格納された格納位置であるk角形の頂点を探索できる。
【0186】
また、他の例として、k角形が第1トラック上の第1コードに対応する地点に接している状態で、仮想コード検証手段20はk角形の中心と第1トラック上の接点を基準に中心角全体(即ち、360°)をM個に分割し、それぞれの角度をM個の第2コードにマッチする。このとき、k角形の中心と第1トラック上の接点をつなぐ線から特定数の単位角度(即ち、360°/M)を移動した線の方向がk角形の特定の頂点となる。従って、特定の角度に対応する第2コードが受信されると、仮想コード検証手段20は、該当角度の方向に位置する頂点を探索できる。
【0187】
更に、他の例として、第2コードの特定の桁を、角度算出方向を決定するものとして使用できる。即ち、N個(Nは自然数)の文字を用いて第2コードを生成する場合、1つの桁(Digit)で角度の測定方向を決定できる。例えば、仮想コード検証手段20は、k角形の中心と第1トラック上の接点を基準に中心角全体(即ち、360°)を分割してそれぞれの角度に第2コードをマッチする場合、k角形の中心と第1トラック上の接点をつなぐ線から左側方向に測定される角度か、右側方向に測定される角度かを1つの桁(Digit)の値により決定できる。
【0188】
一例として、格納位置探索アルゴリズムは、k角形上の各頂点に角度の測定方向によって異なる2つの第2コードを1つの頂点に割り当てることができる。即ち、1つの頂点に内角により到達する時と外角により到達する時で異なる第2コードとマッチされ、他の実際カード番号を連結することができる。他の例として、格納位置探索アルゴリズムは、N個(Nは自然数)の文字を用いて第2コードを生成する場合にN-1個で角度全体(例えば、中心角を基準に分割する場合360°)の半分に対してマッチし、1個の桁を用いて各頂点に到達するための角度の適用方向を決定できる。
【0189】
第2コードを基にk角形で格納位置を探索する方式は、これに限定されず、第2コードに相応するk角形上の地点と第1トラック上の接点間を特定の割合で分ける地点を格納位置として探索する方式などの多様な方式が適用されることができる。
【0190】
その後、仮想コード検証手段20は、前記格納位置に含まれている実際カード番号を抽出する(S1030)。即ち、仮想コード検証手段20は、k角形の頂点に対応する格納位置を探索し、格納位置内の実際カード番号を抽出する。
【0191】
また、他の実施例として、前記格納位置探索アルゴリズムは、仮想コードを構成する複数の細部コードを基にトラック上を移動して実際カード番号の格納位置にマッチした地点へ移動する。例えば、前記実際カード番号の格納位置にマッチした地点は、仮想コード生成手段に実際カード番号を発行したカウント(即ち、時点)に対応するトラック上の地点であり得る。
【0192】
具体的に、仮想コードが、仮想コード生成関数が駆動された時点から経過した時間を基に生成された第1コードと、特定の仮想コード生成手段に実際カード番号が発行された時点から経過した時間を基に生成された第2コードとを含む場合、図14に示すように、仮想コード検証手段20は、第1コードに対応するコード値がマッチしたトラック上のカウントを探索開始地点に設定し、第2コードに第2関数(又は抽出コードは第2コードとして用いる場合、抽出コード生成関数)の逆関数を適用することによって算出されたカウント値だけ前記探索開始地点からトラックに沿って回帰して仮想コード生成手段10に実際カード番号を発行した時点のトラック上の地点(即ち、実際カード番号の格納位置にマッチした地点)を探索する。
【0193】
また、具体的な他の例として、仮想コード検証手段20は、第1コードに対する移動トラック(即ち、第1移動トラック)と平行するように配置される第2コードに対する移動トラック(即ち、第2移動トラック)を、第1コードにより移動した探索開始地点を原点とし、第1コードによる移動方向と逆方向に配置する。そして、仮想コード検証手段20は、第2移動トラック上で第2コードに対応するコード値の位置へ移動し、この位置に対応する第1移動トラック上の地点を実際カード番号の格納位置として探索する。
【0194】
その後、仮想コード検証手段20は、前記格納位置から抽出された前記実際カード番号で金融取引の進行又は金融取引の進行を要求する(S1200)。
【0195】
また、図15に示すように、他の実施例として、特定の仮想コード生成手段10から特定のカウントに新たに実際カード番号の生成が要求されると、前記特定のカウントにk角形の特定の頂点に対応する格納位置に実際カード番号を格納する段階(S100;実際カード番号格納段階)を更に含む。前記特定の頂点は、前記特定のカウントにトラック上に接する。仮想コード検証手段20が仮想コード生成関数及び格納位置探索アルゴリズムを駆動した後、特定の時点(又はカウント)が経過したとき、仮想コード検証手段20は、特定の仮想コード生成手段10に対する新規の実際カード番号の発行を受信することによって第1トラック上に接しているk角形の頂点にマッチした格納位置に新たに生成した実際カード番号を格納する。具体的に、仮想コード検証手段20で仮想コード生成関数及び格納位置探索アルゴリズムが駆動されることによって、カウント毎に1つのコードずつk角形とトラックが接する位置が移動するようにk角形が転がり移動するようになり、特定のカウントに新規の実際カード番号の発行が要求されると、特定のカウントにトラックに接している頂点が実際カード番号が格納されるk角形上の地点として決定される。
【0196】
例えば、図12に示すように、仮想コード検証手段は、A時点で仮想コード生成手段Aに対して実際カード番号を発行することによってA時点でトラックに接していたk角形の頂点に仮想コード生成手段Aの実際カード番号を格納する。その後、カウントが経過するにつれてk角形はトラックに沿って転がり移動を行う。k角形の回転により仮想コード生成手段Aの実際カード番号が格納された格納位置が回転する。
【0197】
即ち、トラックと接するk角形の頂点に実際カード番号が格納された後、nカウントが経過しただけk角形が回転し、経過したnカウント数だけ実際カード番号が格納された地点が回転する。従って、第2コードが実際カード番号が発行されたカウント(即ち、時点)から経過した単位カウント数を反映して算出されると、仮想コード検証手段20は、第2コードを通じて仮想コードが生成された時点で実際カード番号が格納されたk角形上の地点を算出できる。
【0198】
具体的に、第1コードが仮想コード検証手段20内で特定の仮想コード生成関数及び格納位置探索アルゴリズムが駆動された最初の時点から経過したカウント数に対応するコード値であり、第2コードが特定の仮想コード生成手段10に対して実際カード番号を発行した後、経過したカウント数に対応するコード値である場合、仮想コード検証手段20は、第1コードを通じて仮想コード生成手段10で仮想コードの生成を要求した時点(例えば、C時点)を把握し、第2コードを通じて当該時点のk角形の配置状態で実際カード番号が格納されたk角形上の頂点を把握する。即ち、第1コードは、k角形の特定の頂点を探索できるk角形の配置状態となるようにするトラック上の地点を決定するのに利用され、第2コードは、第1コードに対応するトラック上の地点にk角形が配置された後に実際カード番号の格納位置にマッチしたk角形上の頂点を探索するのに用いられる。これにより、仮想コード生成手段10で仮想コードを生成した後、仮想コード検証手段20に提供されるが、遅延時間(delay time)があっても、仮想コード検証手段20は、仮想コードに対応する実際カード番号を正確に探索できる。
【0199】
また、他の実施例として、図14に示すように、トラック上で第1コードと第2コードを基に移動する格納位置探索アルゴリズムを用いる場合、仮想コード検証手段20は、仮想コード生成関数が駆動された時点からトラックの開始地点よりスタートしたポインタ(Pointer)が単位カウントが経過する度にトラック上の分割単位を移動して実際カード番号の発行時点(A時点)に位置するトラック上の地点を実際カード番号の格納位置にマッチした地点として決定できる。
【0200】
更に、他の実施例として、図16に示すように、前記仮想コード検証手段20が前記第1コード又は前記第2コードを前記第1関数又は第2関数の逆関数を適用して正常に生成された仮想コードに該当するかを検証する段階(S500)を更に含む。例えば、第1コードが仮想コード検証手段20内で特定の仮想コード生成関数及び格納位置探索アルゴリズムが駆動された最初の時点から経過したカウント数に対応するコード値であり、第2コードが特定の仮想コード生成手段10に対して実際カード番号を発行した後、経過したカウント数に対応するコード値である場合、仮想コード検証手段20は、実際カード番号を格納位置に格納するとき、仮想コード生成関数の駆動後に実際カード番号の発行時まで経過した時間(Ts)を共に格納する。仮想コード検証手段20は、仮想コード内の第1コードに第1関数の逆関数を適用して仮想コード生成関数の駆動時から仮想コードの生成時点までの経過時間(T1)を算出し、仮想コード内の第2コードに第2関数の逆関数を適用して実際カード番号の発行時から仮想コードの生成時点までの経過時間(T2)を算出する。その後、仮想コード検証手段20は、T1とT2との差がTsに該当するか否かを判断して仮想コードを検証する。
【0201】
また、他の実施例として、図17に示すように、前記仮想コード生成手段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)。
【0202】
更に、他の実施例として、前記仮想コードは特定の桁数の仮想セキュリティコードを更に含む場合、前記仮想コード検証手段が前記仮想コード生成手段から受信した受信仮想セキュリティコードと前記仮想コード検証手段内で生成された生成仮想セキュリティコードとが一致するか否かを判断して仮想コードを検証する段階を更に含む。仮想セキュリティコードは、カードセキュリティコードの桁数に対応するように生成することができ、実際カード番号のカードセキュリティコードの位置に表示することができる。
【0203】
一実施例として、仮想セキュリティコードは、仮想コード生成装置内の固有値及びカードセキュリティコード(例えば、CVC/CVV番号)を基に生成することができる。前記固有値は、それぞれの仮想コード生成装置毎に個別に付与された装置固有値である。固有値及びカードセキュリティコードは、それぞれの仮想コード生成装置100毎に付与されるものであるので、悪意な目的で仮想コード生成装置をハッキングするために、新たに仮想コード生成装置を発行された者が個別の仮想コード生成装置に付与された固有値及びカードセキュリティコードを確認することができない。従って、仮想コード検証手段20が仮想コード生成手段10により固有値及びカードセキュリティコードを基に生成された仮想セキュリティコードを受信し、仮想コード生成手段10を検証できる。
【0204】
また、他の実施例として、仮想コード生成手段10は、時間値を反映して仮想セキュリティコードを生成できる。即ち、仮想コード生成手段10は、OTP(One Time Password:固定されたパスワードの代わりに無作為に生成される一回限りのパスワードを用いる使用者認証)方式を用いて仮想セキュリティコードを生成できる。仮想コード検証手段20は、仮想セキュリティコードに該当するOTP番号を仮想コード生成手段10から受信し、仮想コード生成手段10よりOTP番号を受信したカウントから特定範囲内のカウントで算出されたOTP番号を比較して仮想コード生成手段10を検証する。即ち、仮想コード検証手段20は、実際カード番号の格納位置内にカードセキュリティコード(例えば、CVC/CVV)と固有値を共に格納し、仮想コードが受信された時点で実際カード番号の格納空間から抽出されたカードセキュリティコード及び固有値を用いて生成されたOTP番号と仮想コード生成手段10から受信したOTP番号とが一致するかを判断し、仮想コード生成手段10を検証する。
【0205】
更に、他の実施例として、仮想セキュリティコードは、仮想コード生成手段が外部に出力せず、第1コード及び第2コードの生成に反映させることができる。図18に示すように、仮想コード生成手段10は、仮想コード生成装置内の固有値及びカードセキュリティコードを基に生成された仮想セキュリティコード値をカード番号の発行時点に足したカウントの第1コードを生成し、仮想セキュリティコード値に対応するカウントの第2コードを生成する。即ち、第1コード及び第2コードは、仮想コード生成装置Aに実際カード番号が発行されたA時点から仮想セキュリティコード値だけ移動(shifting)したカウントを基に生成される。A時点から移動(shifting)したカウントは、生成される仮想セキュリティコード値によって現在時点に対応するカウントよりも以前のカウントになることもでき、以後のカウントになることもできる。仮想コード検証手段20は、受信した第1コードと第2コードを格納位置探索アルゴリズムに適用して実際カード番号の格納位置がマッチした地点を探索できる。これにより、他人が仮想コードを構成する第1コード及び第2コードが提供される順序を確認できなくなり、セキュリティが向上し得る。
【0206】
また、他の実施例として、仮想コード検証手段20は、仮想セキュリティコードを基に生成された第2コードから仮想セキュリティコードを抽出した後、仮想セキュリティコード生成関数(即ち、OTP関数)を、仮想コードを受信したカウントから特定範囲内のカウントを入力して算出されたOTP番号のうち、仮想セキュリティコードと一致する値があるか否かを確認する。仮想コード検証手段は、第2コードに第2関数の逆関数を適用して第2コードの生成に用いられた仮想セキュリティコード値(即ち、OTP関数値)を獲得し、仮想セキュリティコード値と同一の値を算出するカウントを探索する。仮想コードの伝送時間や遅延により仮想コード生成手段で仮想セキュリティコードが生成された時点と仮想コード検証手段が仮想セキュリティコードを受信した時点の間に差が存在することにより、仮想コード検証手段20が仮想コードを受信したカウントと仮想セキュリティコードに該当するOTP番号を生成したカウントとが一致しないこともあり得るので、仮想コード検証手段20は、仮想コードを受信したカウントから誤差範囲を許容する。これにより、仮想コード検証手段20は、仮想コードを伝送した仮想コード生成手段が正常に実際カード番号とマッチしているかを検証でき、セキュリティが向上し得る。また、ユーザは、仮想コードの入力時に特定の桁数の仮想セキュリティコードを入力しなくても仮想コード検証手段20が自ら仮想セキュリティコードを探索して仮想コード生成手段10を検証するので、仮想コード生成手段10を容易に使用できる。
【0207】
更に、他の実施例として、仮想コード生成手段10は、金融取引が要求された時点で仮想コード生成装置内の固有値及びカードセキュリティコードを基に生成された仮想セキュリティコード値を足したカウントに対応する第1コードを生成し、実際カード番号の発行時点(A時点)と金融取引の要求時点(C時点)間のカウントの差に仮想セキュリティコード値を足したカウントに対応する第2コードを生成する。即ち、仮想コード生成手段10が第1コードと第2コードを生成する式は以下のように表される。
【0208】
[数1]
第1コード=f(C時点のカウント+仮想セキュリティコード)
第2コード=f(C時点のカウント-A時点のカウント+仮想セキュリティコード)
(A時点:実際カード番号の発行時点、C時点:金融取引要求時点、仮想セキュリティコード:OTP番号)
【0209】
仮想コード検証手段20は、受信した仮想コード内の第1コード及び第2コードを基に実際カード番号の格納位置を探索し、実際カード番号の格納位置内に共に含まれているカードセキュリティコード(即ち、CVV又はCVC)及び仮想コード生成装置100の固有値を抽出する。仮想コード検証手段20は、カードセキュリティコード及び固有値を基に金融取引の要求を受信した時点から特定のカウント範囲内の仮想セキュリティコード(即ち、OTP番号)を生成する。その後、仮想コード検証手段20は、実際カード番号の発行時点(A時点)より金融取引要求の受信時点から特定のカウント範囲内の各カウントまでのカウント数と仮想セキュリティコード(即ち、OTP番号)の和が第2コードに対応するカウント数(即ち、第2コードに第2関数の逆関数を適用した値)と同一のカウントが存在するかを確認する。仮想コード検証手段は、第1コード及び第2コードを基に実際カード番号の格納位置がマッチした地点を探索することによって実際カード番号の発行時点を把握できる。これにより、仮想コード検証手段20は、仮想コードを提供した仮想コード生成手段10が正常に発行されたか否かを確認できる。
【0210】
また、他の実施例として、仮想コード検証手段20は、仮想コードにOTPコードと抽出コードを複数の細部コードとして含む場合、第1コードとして抽出コードが用いられると、決済の要求時点と一致しない可能性のある抽出コードに対応するカウントに移動(shifting)し、OTPコードを基に算出される変換コードが第1コードとして用いられると、決済の要求時点と一致しない可能性のある変換コードに対応するカウントに移動(shifting)する。トラック上で第1コードに対応するカウントは、現在時点よりも以前であることもでき、以後であることもできる。このとき、OTPコードが仮想コードから直接抽出されるので、仮想コード検証手段20は、仮想コードが受信されたカウントから特定範囲内のカウントでOTP関数を基に生成された比較コード(即ち、OTP値)のうち、仮想コードから抽出されたOTPコードと同一のものが存在するかを判断して、正常に発行されたか否かを確認する。
【0211】
以上で前述した本発明の一実施例に係る仮想コード基盤の金融取引提供方法は、ハードウェアであるコンピュータと結合されて実行されるためにプログラム(又はアプリケーション)で実現され媒体に格納できる。
【0212】
上述したプログラムは、前記コンピュータがプログラムを読み込んでプログラムで実現した前記方法を実行させるために、前記コンピュータのプロセッサ(CPU)が前記コンピュータの装置インターフェースを介して読み取られるC、C++、JAVA(登録商標)、機械語などのコンピュータ言語でコード化されたコード(Code)を含むことができる。このようなコードは、前記方法を実行する必要な機能を定義した関数などと関連する機能的なコード(Functional Code)を含むことができ、前記機能を前記コンピュータのプロセッサが所定の手順通りに実行させるのに必要な実行手順関連の制御コードを含むことができる。また、このようなコードは、前記機能を前記コンピュータのプロセッサが実行させるのに必要な追加の情報やメディアが前記コンピュータの内部又は外部メモリのどの位置(アドレスナンバー)で参照されなければならないかに対するメモリ参照関連のコードを更に含むことができる。また、前記コンピュータのプロセッサが前記機能を実行させるために遠隔(Remote)にある任意の他のコンピュータやサーバなどと通信が必要な場合、コードは、前記コンピュータの通信モジュールを用いて遠隔にある任意の他のコンピュータやサーバなどとどのように通信すべきか、通信時にどんな情報やメディアを送受信すべきかなどに対する通信関連のコードを更に含むことができる。
【0213】
前記格納される媒体は、レジスタ、キャッシュ、メモリなどのように短い時間にデータを格納する媒体でなく、半永久的にデータを格納し、機器により読み取り(reading)が可能な媒体を意味する。具体的には、前記格納される媒体の例としては、ROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、光データ格納装置などが挙げられるが、これに制限されない。即ち、前記プログラムは、前記コンピュータが接続できる多様なサーバ上の多様な記録媒体又はユーザの前記コンピュータ上の多様な記録媒体に格納できる。また、前記媒体は、ネットワークに繋がっているコンピュータシステムに分散され、分散方式でコンピュータが読み取れるコードを格納できる。
【0214】
以上、添付の図面を参照して本発明の実施例を説明したが、本発明が属する技術分野における通常の技術者は、本発明がその技術的思想や必須な特徴を変更することなく、他の具体的な形態で実施できるということが理解できるだろう。従って、以上で記述した実施例はあらゆる面で例示的なものであり、制限的ではないものとして理解すべきである。

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18