(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-02
(45)【発行日】2024-05-14
(54)【発明の名称】仮想コード基盤の取引システム、方法及びプログラム
(51)【国際特許分類】
G06Q 20/38 20120101AFI20240507BHJP
H04L 9/32 20060101ALI20240507BHJP
【FI】
G06Q20/38
H04L9/32 100C
(21)【出願番号】P 2022513560
(86)(22)【出願日】2020-08-28
(86)【国際出願番号】 KR2020011518
(87)【国際公開番号】W WO2021040444
(87)【国際公開日】2021-03-04
【審査請求日】2022-04-04
(31)【優先権主張番号】10-2019-0107065
(32)【優先日】2019-08-30
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2020-0108738
(32)【優先日】2020-08-27
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】517002580
【氏名又は名称】株式会社センストーン
【氏名又は名称原語表記】SSENSTONE INC.
【住所又は居所原語表記】15F., Frontone, 122 Mapo-daero, Mapo-gu, Seoul,04213 Korea
(74)【代理人】
【識別番号】100121382
【氏名又は名称】山下 託嗣
(72)【発明者】
【氏名】ユ,チャン フン
【審査官】小原 正信
(56)【参考文献】
【文献】特開2019-032804(JP,A)
【文献】特開2012-133684(JP,A)
【文献】特開2007-179214(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
仮想コード検証手段が、仮想コード生成手段に含まれている仮想コード生成関数によって生成される仮想コードを受信する仮想コード受信段階と、
前記仮想コード検証手段が、前記仮想コードからUID(User Identification)の格納位置を探索する段階と、
前記仮想コード検証手段が、探索されたUIDにマッチングされて格納された制御命令情報を探索する段階と、
前記制御命令情報を基に制御命令を実行する段階と、
前記仮想コード検証手段が、前記仮想コード検証手段に格納された周期情報を用いて前記仮想コードを検証する段階と、
既に設定された周期毎に、前記仮想コード検証手段が、前記仮想コード検証手段に格納された周期情報を更新する段階と、
を含み、
前記仮想コード検証手段は、複数のUIDを格納し、既に設定された周期毎に前記複数のUIDのそれぞれにマッチングされた制御命令情報を変更し、
前記仮想コード検証手段が、前記仮想コード検証手段に格納された周期情報を更新する段階は、
前記仮想コード検証手段が、周期情報を第1周期から第2周期に更新する段階と、
前記仮想コード検証手段が、前記第1周期で特定のUIDにマッチングされて格納された制御命令情報が前記第2周期で前記特定のUIDと異なるUIDにマッチングされて格納されるように制御命令情報の格納位置を変更する段階と、
を含むことを特徴とする、仮想コードを用いた取引方法。
【請求項2】
前記仮想コード検証手段が、前記周期情報を更新する際に、前記複数のUIDのそれぞれにマッチングされて格納された制御命令情報が互いに異なるUIDにマッチングされて格納されるようにすることを特徴とする請求項1に記載の仮想コードを用いた取引方法。
【請求項3】
前記仮想コードを検証する段階は、
前記仮想コード検証手段が、前記仮想コードから周期情報を抽出する段階と、
前記仮想コード検証手段が、抽出された前記周期情報と前記仮想コード検証手段に格納された周期情報とを比較し、前記仮想コードの有効性を検証する段階と、
を含むことを特徴とする請求項1に記載の仮想コードを用いた取引方法。
【請求項4】
前記仮想コードを検証する段階は、
抽出された前記周期情報が、前記仮想コード検証手段に格納された第2周期と一致しない場合、前記仮想コード検証手段が、抽出された前記周期情報と前記第1周期が一致するか否かを確認する段階を含むことを特徴とする請求項3に記載の仮想コードを用いた取引方法。
【請求項5】
抽出された周期情報と前記第1周期が一致する場合、抽出された前記制御命令情報を基に制御命令を実行する段階は、
前記仮想コード検証手段が、前記第1周期で抽出されたUIDにマッチングされて格納された制御命令情報に対応する制御命令を行う段階を含むことを特徴とする請求項4に記載の仮想コードを用いた取引方法。
【請求項6】
前記仮想コードは、
格納位置探索の開始地点を設定する第1コードと、
特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定する第2コードと、
を含むことを特徴とする請求項1に記載の仮想コードを用いた取引方法。
【請求項7】
前記仮想コード検証手段が、前記仮想コードを検証する段階は、
前記仮想コード検証手段が、前記仮想コードから仮想コード検証手段の固有値を抽出する段階と、
前記仮想コード検証手段が、前記抽出された固有値と前記仮想コード検証手段に格納された固有値とを比較し、前記仮想コードの有効性を検証する段階と、
を含むことを特徴とする請求項1に記載の仮想コードを用いた取引方法。
【請求項8】
請求項1~請求項7の何れか一項に記載の方法をハードウェアであるコンピュータに実行させるために媒体に格納された、仮想コードを用いた取引プログラム。
【請求項9】
取引のための仮想コード検証装置であって、
仮想コードを受信する仮想コード受信部と、
前記仮想コードから細部コードを抽出する細部コード抽出部と、
前記細部コードを基にUID(User Identification)の格納位置を探索する格納位置探索部と、
探索されたUIDにマッチングされて格納された制御命令情報を抽出する制御命令情報抽出部と、
前記仮想コード検証装置に格納された周期情報を用いて前記仮想コードを検証する仮想コード検証部と、
抽出された制御命令情報を基に制御を行う制御部と、を含み、
前記仮想コード検証装置は、複数のUIDを格納し、既に設定された周期毎に前記複数のUIDのそれぞれにマッチングされた制御命令情報を変更し、
既に設定された周期毎に、前記格納された周期情報を更新し、
前記仮想コード検証装置は、前記周期情報を更新する際に、前記周期情報を第1周期から第2周期に更新し、前記第1周期で特定のUIDにマッチングされて格納された制御命令情報が前記第2周期で前記特定のUIDと異なるUIDにマッチングされて格納されるように制御命令情報の格納位置を変更することを特徴とする取引のための仮想コード検証装置。
【請求項10】
前記仮想コード検証装置は、
仮想コード生成装置と同一の周期で、前記複数のUIDのそれぞれにマッチングされて格納された制御命令情報が互いに異なるUIDにマッチングされて格納されるようにすることを特徴とする請求項9に記載の取引のための仮想コード検証装置。
【請求項11】
前記細部コード抽出部は、前記仮想コードから周期情報を抽出し、
前記仮想コード検証部は、前記抽出された周期情報と前記仮想コード検証装置に格納された周期情報とを比較し、前記仮想コードの有効性を検証することを特徴とする請求項9に記載の取引のための仮想コード検証装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想コードを用いた取引方法に関する。
【背景技術】
【0002】
コード化されたデータは、多くの領域において利用されている。決済時に用いられるカード番号、口座番号だけでなく、ユーザの識別のためのIPIN番号、住民登録番号(韓国版マイナンバー)などがコード化されたデータである。
【0003】
しかし、このようなコードデータを用いる過程で漏洩事故が多く発生する。代用貨幣として用いられる仮想コードが漏洩し、他人が不正に用いることにより、購入者が被害を受ける恐れがあり、不正な仮想コードを偽造して用いることにより、販売者が被害を被る恐れがある。
【0004】
仮想コードをなすコード及び仮想コードの生成規則が漏洩しないようにするために、臨時的に生成される仮想コードを利用しようとする試みが多かったが、仮想コードに対応する実際のコードを探索するためにユーザを識別するためのデータが必要であった。例えば、OTP(One Time Password)の場合、毎回、一度限り有効なパスワードが生成されるが、ユーザに付与されたアルゴリズム判断のためにログイン処理が必要であり、多様な領域に適用し難い。
【0005】
また、仮想コードの有効性を検証する装置で通信が困難な場合、仮想コードの有効性を検証し難いという問題がある。
【0006】
従って、仮想コードに対応するユーザや装置に関する識別情報を提供しないと共に、リアルタイムに変動する仮想コードを基に仮想コードの有効性を判断し、活用できる発明が必要である。
【0007】
これについての先行技術文献としては、韓国登録特許10-1316466号(2013.10.01)が存在する。
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明は上記事情に鑑みてなされたものであって、その目的は、取引行為の後、販売者が発行する仮想コードが重複して生成されないようにする方法及びシステムを提供することにある。
【0009】
また、本発明の他の目的は、取引行為の後、販売者が発行する仮想コードに有効期間を付与して、仮想コードの購入後に購入者が、一定時間が経過した後に使用できないようにする方法及びシステムを提供することにある。
【0010】
更に、本発明の別の目的は、トークンの生成規則が漏洩しても、一定時間が経過した後、該当規則が活用できないようにする方法及びシステムを提供することにある。
【0011】
本発明が解決しようとする課題は、以上で言及した課題に限らず、言及されていない更に他の課題は、以下の記載から通常の技術者が明確に理解できるはずである。
【課題を解決するための手段】
【0012】
上述した課題を解決するための本発明は、仮想コード検証手段が、仮想コード生成手段に含まれている仮想コード生成関数によって生成される仮想コードを受信する仮想コード受信段階と、前記仮想コード検証手段が、前記仮想コードからUID(User Identification)の格納位置を探索する段階と、前記仮想コード検証手段が、探索されたUIDにマッチングされて格納された制御命令情報を探索する段階と、前記抽出された制御命令情報を基に制御命令を実行する段階と、を含み、前記仮想コード検証手段は、複数のUIDを格納し、既に設定された周期毎に前記複数のUIDのそれぞれにマッチングされた制御命令情報を変更することを特徴とする仮想コードを用いた取引方法を提供する。
【0013】
一実施例において、本発明は、既に設定された周期毎に前記仮想コード検証手段が、前記仮想コード検証手段に格納された周期情報を更新する段階を含み、前記仮想コード検証手段が、前記周期情報を更新する際に前記複数のUIDのそれぞれにマッチングされて格納された制御命令情報が互いに異なるUIDにマッチングされて格納されるようにできる。
【0014】
一実施例において、本発明は、前記仮想コード検証手段が、前記格納された周期情報を用いて前記仮想コードを検証する段階を更に含むことができる。
【0015】
一実施例において、前記仮想コードを検証する段階は、前記仮想コード検証手段が、前記仮想コードから周期情報を抽出する段階と、前記仮想コード検証手段が、抽出された前記周期情報と前記仮想コード検証手段に格納された周期情報とを比較し、前記仮想コードの有効性を検証する段階とを含むことができる。
【0016】
一実施例において、前記仮想コード検証手段が、前記仮想コード検証手段に格納された周期情報を更新する段階は、前記仮想コード検証手段が、周期情報を第1周期から第2周期に更新する段階と、前記仮想コード検証手段が、前記第1周期で特定のUIDにマッチングされて格納された制御命令情報が前記第2周期で前記特定のUIDと異なるUIDにマッチングされて格納されるように制御命令情報の格納位置を変更する段階とを含むことができる。
【0017】
一実施例において、前記仮想コードを検証する段階は、抽出された前記周期情報が、前記仮想コード検証手段に格納された第2周期と一致しない場合、前記仮想コード検証手段が、抽出された前記周期情報と前記第1周期が一致するか否かを確認する段階を含むことができる。
【0018】
一実施例において、抽出された前記周期情報と前記第1周期が一致する場合、抽出された前記制御命令情報を基に制御命令を実行する段階は、前記仮想コード検証手段が、前記第1周期で抽出されたUIDにマッチングされて格納された制御命令情報に対応する制御命令を行う段階を含むことができる。
【0019】
一実施例において、前記仮想コードは、格納位置探索の開始地点を設定する第1コード及び特定の探索方式によって前記開始地点から前記格納位置への探索経路を設定する第2コードを含み、前記第1コード及び前記第2コードは、単位カウント毎に変更されることができる。
【0020】
一実施例において、前記仮想コード検証手段が、前記仮想コードを検証する段階は、前記仮想コード検証手段が、前記仮想コードから仮想コード検証手段の固有値を抽出する段階と、前記仮想コード検証手段が、前記抽出された固有値と前記仮想コード検証手段に格納された固有値とを比較し、前記仮想コードの有効性を検証する段階とを含むことができる。
【0021】
また、本発明は、上述した方法をハードウェアであるコンピュータに実行させるために媒体に格納された、仮想コードを用いた取引プログラムを提供する。
【0022】
更に、取引のための仮想コード生成装置を提供する。具体的に、本発明は、前記仮想コード生成装置に格納された複数のUID(User Identification)のうちユーザの購入要請に対応する制御命令情報にマッチングされて格納されたUIDを基に1つ以上の細部コードを生成する細部コード生成部と、仮想コード生成関数を用いて前記1つ以上の細部コードを組み合わせて仮想コードとして生成する仮想コード生成部と、前記仮想コードを仮想コード受信装置又は仮想コード検証装置に伝送する仮想コード制御部とを含み、前記仮想コード生成装置は、複数のUIDを格納し、既に設定された周期毎に前記複数のUIDのそれぞれにマッチングされた制御命令情報を変更することを特徴とする取引のための仮想コード生成装置を提供する。
【0023】
一実施例において、前記仮想コード生成装置は、前記仮想コード検証装置と同一の周期で、前記複数のUIDのそれぞれにマッチングされて格納された制御命令情報が互いに異なるUIDにマッチングされて格納されるようにできる。
【0024】
また、取引のための仮想コード検証装置を提供する。具体的に、本発明は、仮想コードを受信する仮想コード受信部と、前記仮想コードから細部コードを抽出する細部コード抽出部と、前記詳細コードを基にUID(User Identification)の格納位置を探索する格納位置探索部と、探索されたUIDにマッチングされて格納された制御命令情報を抽出する制御命令情報抽出部と、前記仮想コードを検証する仮想コード検証部と、抽出された制御命令情報を基に制御を行う制御部とを含み、前記仮想コード検証装置は、複数のUIDを格納し、既に設定された周期毎に前記複数のUIDのそれぞれにマッチングされた制御命令情報を変更することを特徴とする取引のための仮想コード検証装置を提供する。
【0025】
一実施例において、前記仮想コード検証装置は、前記仮想コード生成装置と同一の周期で、前記複数のUIDのそれぞれにマッチングされて格納された制御命令情報が互いに異なるUIDにマッチングされて格納されるようにできる。
【0026】
一実施例において、前記詳細コード抽出部は、前記仮想コードから周期情報を抽出し、前記仮想コード検証部は、抽出された周期情報と前記仮想コード検証手段に格納された周期情報とを比較し、前記仮想コードの有効性を検証できる。
【発明の効果】
【0027】
前記のような本発明によると、以下のような多様な効果を有する。
【0028】
第一に、仮想コードを使用できる時間を制限することで、仮想コードが漏洩しても他人が使用する可能性を下げることができる。
【0029】
第二に、仮想コードの生成規則が周期的に変更されるため、仮想コードの生成規則が一部漏洩しても、仮想コードを偽造できなくすることができる。
【0030】
第三に、単位カウント毎に仮想コードが新たに生成されて重複する仮想コードが定められた全周期内に登場しないか、仮想コード検証装置からユーザ情報を抽出できる仮想コードが生成される順序をランダムにすることによって、仮想コードの漏洩時にもユーザ情報が漏洩しないという効果を提供する。
【0031】
第四に、仮想コードを生成する仮想コード生成装置には、仮想コード生成関数が格納され、仮想コードを用いてUIDを抽出し、仮想コードが正常なコードか否かを検証する仮想コード検証装置には、仮想コードの検証のためのアルゴリズムが追加されればよいので、仮想コードの生成及び検証のためのアルゴリズムが漏洩するのを防止できる。
【0032】
本発明の効果は、以上で言及した効果に限らず、言及されていない更に他の効果は、以下の記載から通常の技術者が明確に理解できるはずである。
【図面の簡単な説明】
【0033】
【
図1】本発明の一実施例に係る仮想コードを用いた取引システムの構成図である。
【
図2】本発明の一実施例に係る仮想コード生成装置の構成図である。
【
図3】本発明の一実施例に係る仮想コード検証装置の構成図である。
【
図4】本発明の一実施例に係る仮想コードを用いた取引方法のフローチャートである。
【
図5】本発明の一実施例に係るk角形の転がり移動によってUIDの格納位置を探索する格納位置探索アルゴリズムに対する例示例である。
【
図6】本発明の一実施例に係る仮想コード生成装置の格納空間を説明する例示例である。
【
図7】本発明の一実施例に係る仮想コード検証装置の格納空間を説明する例示例である。
【発明を実施するための形態】
【0034】
本発明の利点及び特徴、そしてそれらを達成する方法は、添付の図面と共に詳細に後述されている実施例を参照すれば明確になる。しかし、本発明は、以下で開示される実施例に制限されるものではなく、互いに異なる多様な形態にて実現することができる。但し、本実施例は本発明の開示を完全なものにし、本発明が属する技術分野における通常の技術者に本発明の範囲を完全に理解させるために提供されるものであり、本発明は請求項の範囲により定義されるに過ぎない。
【0035】
本明細書で用いられた用語は、実施例を説明するためのものであり、本発明を制限しようとするものではない。本明細書において、単数型は特に言及しない限り複数型も含む。明細書で用いられる「含む(comprises)」及び/又は「含んでいる(comprising)」は、言及された構成要素以外に1つ以上の他の構成要素の存在又は追加を排除しない。明細書全体に亘って同一の図面符号は同一の構成要素を示し、「及び/又は」は言及された構成要素のそれぞれ及び1つ以上の全ての組み合わせを含む。たとえ、「第1」、「第2」などが多様な構成要素を叙述するために用いられていても、これらの構成要素はこれらの用語により制限されないのは当然である。これらの用語は、単に1つの構成要素を他の構成要素と区別するために用いる。従って、以下で言及される第1構成要素は、本発明の技術的思想内で第2構成要素でもあり得るのは言うまでもない。
【0036】
他の定義がなければ、本明細書で用いられる全ての用語(技術及び科学的用語を含む)は、本発明が属する技術分野における通常の技術者が共通して理解できる意味として用いられる。また、一般に用いられる辞典に定義されている用語は、明白に特に定義されていない限り、理想的に又は過度に解釈されない。
【0037】
本明細書において「文字」は、コードを構成する構成要素であって、アルファベットの大文字、アルファベットの小文字、数字及び特殊文字などの全部又は一部を含む。
【0038】
本明細書において「コード」は、文字が並んでいる文字列を意味する。
【0039】
本明細書において「仮想コード」は、仮想コード生成手段で生成されるコードであって、販売者が取引行為によって発行し、購入者が仮想コード検証手段で入力して購入した商品を利用できるようにするコードを意味する。即ち、「仮想コード」は、ユーザ情報を抽出して検証できるように単位カウント毎に臨時的に付与された仮想コードを意味する。
【0040】
本明細書において「細部コード」は、仮想コードに含まれる一部のコードを意味する。
【0041】
本明細書において「単位カウント」は、特定の時間間隔に設定され、時間間隔の経過に伴って変更されるものと定義された単位である。例えば、1カウントは、特定の時間間隔(例えば、1.5秒)に設定されて使用され得る。
【0042】
本明細書において「仮想コード生成関数」は、仮想コードを生成するのに用いられる関数を意味する。
【0043】
本明細書において「転がり移動」は、対象体が回転しながら並進運動を行うことを意味する。即ち、「転がり移動」は、回転運動と並進運動を共に行いながら移動するものであって、回転する対象体の各地点が移動する軸上に順に接しながら移動することを意味する。
【0044】
本明細書において「UID(user identification)」は、制御命令を識別するために制御命令別に重複しないように付与される固有のコード状の値を意味する。
【0045】
本明細書において「格納位置」は、ユーザによってUIDの登録が要請された時点に該当するトラック上の地点(カウント)を意味する。
【0046】
本明細書において、「制御命令情報」は、UIDの格納位置にマッチングされて格納され、仮想コード検証装置で行える制御を定義する情報である。一実施例として、制御命令情報に対応する制御を行う装置が計量器の場合、前記制御命令情報は電力、ガス、水道の充電量であり得る。計量器は、制御命令情報が定義する充電量だけ、電気やガス、水道などを使用できるように制御する。但し、制御命令情報が定義する制御の種類はこれに限定されない。
【0047】
本明細書において「マッチング関係」は、複数のUID、複数の制御命令情報が互いにマッチングされて格納された関係を意味する。このとき、UIDの数は、制御命令情報の数よりも多くなることができ、複数のUIDのうちの一部は、制御命令情報がマッチングされないことができる。
【0048】
以下、添付の図面を参照し、本発明の実施例を詳細に説明する。
【0049】
図1は、本発明の一実施例に係る仮想コードを用いた取引システムの構成図である。
【0050】
図1に示されるように、取引システムは、仮想コード生成手段10、仮想コード受信手段20、仮想コード検証手段30を含む。
【0051】
仮想コード生成手段10は、仮想コードを生成するための専用プログラムが内蔵又はインストールされている装置を意味する。より具体的に、仮想コード生成手段10は、販売者サーバであり得る。ユーザは、販売者サーバから所定の物品を購入する。
【0052】
例えば、ユーザは、販売者サーバを介して電気やガス、水道などに対する使用権限を購入できる。販売者サーバは、ユーザが購入した分量だけ、電気やガス、水道などを使用できるように仮想コードを発行する。
【0053】
他の例として、ユーザは、販売者サーバを介してデータの使用権限を購入できる。販売者サーバは、ユーザが購入した分量だけデータを使用できるように仮想コードを発行する。
【0054】
ユーザは、販売者サーバが、発行された仮想コードを仮想コード検証手段30に伝送するようにするか、別の仮想コード受信手段20(例えば、ユーザの移動端末)に伝送するようにできる。ユーザは、仮想コード受信手段20に表示された仮想コードを仮想コード検証手段30に直接入力するか、仮想コード受信手段20と仮想コード検証手段30間の無線通信により、前記仮想コードを仮想コード検証手段30に伝送できる。
【0055】
仮想コード検証手段30は、仮想コードを受信し、前記仮想コードを用いてユーザが購入した電気やガス、水道などに対する使用量を抽出した後、前記使用量だけ電気やガス、水道などを利用できるようにする。例えば、仮想コード検証手段30は、電気計量器、ガス計量器、水道計量器などであり得る。他の例として、仮想コード検証手段30は、無線通信が可能な移動端末であり得る。
【0056】
以下、上述した構成について具体的に説明する。
【0057】
仮想コード生成手段10には、仮想コード検証手段30を初期登録できる。仮想コード検証手段30のユーザは、仮想コード検証手段30と関連する情報を仮想コード生成手段10に伝送して登録する。但し、これに限らず、仮想コード検証手段30は、工場から出庫時に仮想コード生成手段10に登録された状態であり得る。
【0058】
仮想コード生成手段10は、UIDを用いて仮想コードを生成する役割を果たす。ここで、UIDは、仮想コード生成手段10及び仮想コード検証手段30の両方に格納された情報であり、前記UIDの格納位置には、制御命令情報をマッチングして格納できる。
【0059】
一方、仮想コード生成手段10は、仮想コード生成関数を含んでUIDを用いて仮想コードを生成する。例えば、仮想コード生成手段10は、UIDを用いて仮想コードを生成する。
【0060】
具体的な例として、仮想コード生成手段10は、仮想コード検証手段30の登録時にユーザから仮想コード検証手段30の固有値を入力されるか、仮想コード検証手段30の出庫前の固有値を仮想コード生成手段10内に格納できる。仮想コード検証手段30の固有値が仮想コード生成手段10に登録されることにより、仮想コード生成手段10は、仮想コード生成関数をアップデートする。ここで、仮想コード生成手段10及び仮想コード検証手段30のそれぞれは、同一の仮想コード生成関数を含むか、仮想コード検証手段30は、仮想コード生成手段10に含まれている仮想コード生成関数に対応する格納位置探索アルゴリズムを含むことができる。
【0061】
仮想コード生成手段10は、登録された仮想コード検証手段30に対応する複数のUIDのそれぞれに制御命令情報をマッチングさせて格納する。ここで、制御命令情報は、ユーザが購入した電気やガス、水道などに対する使用権限を定義する情報であり得る。例えば、制御命令情報は、電気やガス、水道などに対する使用量であり得る。
【0062】
一実施例において、複数のUIDのそれぞれには、互いに異なる使用量を定義する制御命令情報をマッチングして格納できる。仮想コード生成手段10は、ユーザが購入した使用量を定義する制御命令情報にマッチングされたUIDを用いて仮想コードを生成する。
【0063】
仮想コード生成手段10は、既に設定された周期で複数のUIDのそれぞれにマッチングされた制御命令情報を変更する。より具体的に、複数のUIDのうちの一部には、制御命令情報がマッチングされて格納され、残りの一部には、制御命令情報がマッチングされて格納されないことができる。仮想コード生成手段10は、一定の周期でUIDと制御命令情報間のマッチング関係を変更する。これにより、制御命令情報がマッチングされて格納されなかったUIDに制御命令情報をマッチングして格納でき、制御命令情報がマッチングされて格納されていたUIDに制御命令情報をマッチングして格納しないようにできる。
【0064】
例えば、仮想コード生成手段10は、1週間の周期でUIDと制御命令情報間のマッチング関係を変更する。このとき、マッチング関係の変更前後に同一のUIDに同一の制御命令情報がマッチングされないようにする。
【0065】
これにより、ユーザが同量の使用権限を購入しても、ユーザが購入を要請した時点によって、仮想コード生成手段10は、互いに異なるUIDを用いて仮想コードを生成する。仮想コード生成手段10がUIDを用いて仮想コードを生成する方法については後述する。
【0066】
仮想コード生成手段10は、仮想コードを仮想コード受信手段20に送る。ユーザは、仮想コード受信手段20に送られた仮想コードを仮想コード検証手段30に直接入力できる。
【0067】
他の実施例において、ユーザは、近距離通信(例えば、NFC通信)を介して仮想コード受信手段20に送られた仮想コードを仮想コード検証手段に伝送できる。
【0068】
仮想コード受信手段20に含まれている通信部は、仮想コード生成手段10及び仮想コード検証手段30と通信を行って、仮想コードを送受信する役割を果たす。ここで、通信部の無線通信方式としては、NFC(Near Field Communication)だけでなく、ブルートゥース(登録商標)(Bluetooth)、BLE(Bluetooth(登録商標) Low Energy)、ビーコン(Beacon)、RFID(Radio Frequency Identification)、 赤外線通信(Infrared Data Association;IrDA)、UWB(Ultra Wideband)、ZigBeeなどが用いられることもできる。
【0069】
具体的な例として、通信部は、ICチップに接続されるNFC(Near Field Communication)通信部(例えば、NFCアンテナ)であり得る。例えば、仮想コード受信手段20のユーザは、仮想コード検証手段30にタッキングすることによって、受信した仮想コードを仮想コード検証手段30に送信できる。
【0070】
他の例として、仮想コード受信手段20は、仮想コードを受信(例えば、テキストメッセージとして受信)して、仮想コード受信手段20に含まれているディスプレイ部に受信された仮想コードを表示する。仮想コード受信手段20のユーザは、ディスプレイ部に表示された仮想コードを仮想コード検証手段30に入力することによって、仮想コードを送ることができる。
【0071】
但し、仮想コード受信手段20は、必ずしも必要であるわけではない。一実施例として、仮想コード生成手段10は、発行された仮想コードを印刷できる印刷手段を備えることができる。ユーザは、印刷された仮想コードを用いて仮想コード検証手段30に仮想コードを入力できる。このとき、仮想コード検証手段30は、別の入力手段を備えることができる。仮想コード検証手段30は、電気やガス、水道などの使用を制御する機器であって、仮想コード生成手段10、仮想コード受信手段20又はユーザから仮想コードを受け取り、電気やガス、水道、データなどの使用権限を与える。ユーザは、仮想コードを用いて電気やガス、水道、データなどに対する使用権限を付与されることができる。
【0072】
仮想コード検証手段30は、仮想コードを受信し、仮想コードからUIDの格納位置を探索する。その後、仮想コード検証手段30は、探索されたUIDの格納位置にマッチングされて格納された制御命令情報を抽出し、抽出された制御命令情報に対応する使用権限を与える。仮想コード検証手段30が仮想コードからUIDの格納位置を探索する方法は後述する。
【0073】
仮想コード検証手段30は、UIDの格納位置を探索した後、UIDにマッチングされて格納された制御命令情報を抽出する。ここで、仮想コード検証手段30は、既に設定された周期毎にUIDにマッチングされて格納された制御命令情報を変更する。より具体的に、仮想コード検証手段30には、複数のUIDが格納される。前記複数のUIDは、仮想コード生成手段10に格納された複数のUIDと同一のUIDである。複数のUIDのそれぞれには、互いに異なる使用量を定義する制御命令情報をマッチングして格納できる。
【0074】
仮想コード検証手段30は、既に設定された周期で複数のUIDのそれぞれにマッチングされた制御命令情報を変更する。より具体的に、複数のUIDのうちの一部には、制御命令情報がマッチングされて格納され、残りの一部には、制御命令情報がマッチングされて格納されないようにできる。仮想コード検証手段30は、一定の周期でUIDと制御命令情報間のマッチング関係を変更する。これにより、制御命令情報がマッチングされて格納されなかったUIDに制御命令情報をマッチングして格納でき、制御命令情報がマッチングされて格納されていたUIDに制御命令情報をマッチングして格納しないようにできる。
【0075】
上述したように、仮想コード生成手段10及び仮想コード検証手段30のそれぞれは、既に設定された周期でUIDと制御命令情報間のマッチング関係を変更する。このとき、仮想コード生成手段10及び仮想コード検証手段30は、同一の規則に従ってマッチング関係を変更するため、同一時点に仮想コード生成手段10に格納されたUIDにマッチングされた制御命令情報と、仮想コード検証手段30に格納されたUIDにマッチングされた制御命令情報とは、互いに同一である。
【0076】
仮想コード検証手段30は通信部を含み、通信部は、仮想コード生成手段10、仮想コード受信手段20と通信を行って、仮想コードを受信できるようにする。ここで、通信部の無線通信方式としては、 NFC(Near Field Communication)だけでなく、ブルートゥース(登録商標)(Bluetooth)、BLE(Bluetooth(登録商標) Low Energy)、ビーコン(Beacon)、RFID(Radio Frequency Identification)、赤外線通信(Infrared Data Association:IrDA)、UWB(Ultra Wideband)、ZigBeeなどが用いられることもできる。但し、これに限らず、仮想コード検証手段30は、遠距離無線通信のための通信モジュールを備えることができる。但し、仮想コード検証手段30が必ずしも通信部を含む必要はない。
【0077】
図2は、本発明の一実施例に係る仮想コード生成装置の構成図である。
【0078】
図2に示されるように、仮想コード生成装置100は、細部コード生成部110、仮想コード生成部120、仮想コード提供部130、UID格納部140を含む。
【0079】
仮想コード生成装置100は、一実施例として、電気やガス、水道を供給する販売者のサーバであり得る。仮想コード生成装置100は、上述した仮想コード生成手段10である。
【0080】
細部コード生成部110は、UIDを基に1つ以上の細部コードを生成する役割を果たす。具体的に、仮想コード生成装置100は、ユーザから仮想コード生成要請を受信する。ここで、仮想コード生成要請は、ユーザから受信した購入要請であり得る。
【0081】
仮想コード生成装置100が電気やガス、水道、データなどを供給する販売者のサーバである場合、仮想コード生成装置100は、ユーザから電気やガス、水道、データなどの使用権限の購入要請を受信し、仮想コードを生成する。
【0082】
一実施例において、仮想コード生成装置100は、ユーザから仮想コード検証装置200の固有値及び電気やガス、水道使用量に対する購入要請を入力された後、仮想コードを生成する。
【0083】
このとき、細部コード生成部110は、仮想コード検証装置200の固有値に対応する複数のUIDのうち購入要請時に入力された使用量にマッチングされたUIDを探索する。
【0084】
UID格納部140には、仮想コード検証装置200の固有値別に複数のUIDがマッチングされて格納され、複数のUIDのうちの少なくとも一部には、制御命令情報がマッチングされて格納される。前記UIDにマッチングされた制御命令情報は、それぞれ異なる使用量又は充電量を定義する。細部コード生成部110は、UID格納部140でユーザが購入要請した使用量又は充電量に対応する制御命令情報にマッチングされて格納されたUIDを探索し、探索されたUIDを用いて細部コードを生成する。
【0085】
仮想コード生成関数は、1つ以上の詳細コード生成関数を含む。例えば、仮想コードが複数の細部コードを含む場合、仮想コード生成関数は複数の細部コード生成関数を用いて複数の細部コードを生成し、複数の細部コードを結合する細部コード結合関数を用いて仮想コードを生成する。
【0086】
一実施例として、仮想コード生成装置100は、上述した方式で探索されたUIDの格納位置に到達可能な細部コードを生成する。
【0087】
具体的な例として、仮想コード生成装置100に格納されたUIDの数は、特定周期の開始時点から終了時点までに含まれている単位カウントの数と同一であり得る。例えば、特定の周期の長さが一週間であり、単位カウントが「1 分」の場合、仮想コード生成装置100に格納されたUIDの数は10080分(168 時間)であり得る。
【0088】
複数のUIDは、各カウントにマッチングされる。例えば、特定の周期の長さが一週間であり、単位カウントが「1分」の場合、10080個のUIDが各分にマッチングされる。仮想コード生成装置100は、特定の時点にマッチングされたUIDを探索できる。
【0089】
細部コード生成関数は、ユーザの仮想コード生成要請(又は購入要請)を受信した時点に該当するカウントにマッチングされたUID(以下、購入時点UID)を用いて細部コードを生成し、前記購入時点のUIDを基準にユーザの購入要請に対応する制御命令情報がマッチングされて格納されたUID(以下、制御命令UID)への探索経路を用いて細部コードを生成できる。
【0090】
一実施例として、細部コード生成部110は、細部コード生成関数として第1関数と第2関数を含んで第1コード及び第2コードを生成できる。このとき、仮想コード生成装置100は、セキュリティを向上させるために、第1コードを生成する第1関数と第2コードを生成する第2関数を細部コード生成関数として含むだけで、第1コードと第2コードの相関関係についてのデータは含めないようにできる。
【0091】
仮想コード生成部120は、仮想コード生成関数を用いて1つ以上の細部コードを組み合わせて仮想コードとして生成する役割を果たす。一実施例として、仮想コードは、複数の細部コードを特定の規則に従って結合して生成される。仮想コード生成関数は、複数の細部コードを組み合わせる規則(即ち、細部コード結合関数)を含む。即ち、仮想コード生成部120は、1つ以上の細部コードを仮想コード生成関数に含まれている細部コード結合関数を用いて組み合わせることができる。
【0092】
複数の細部コードを結合して1つの仮想コードを生成する方式としては、多様な方式が適用され得る。細部コード結合関数の一例として、仮想コード生成部120は、N桁の第1コードとN桁の第2コードを交互に配置する方式で仮想コードを生成できる。また、他の例として、細部コード結合関数は、第1コードの後ろに第2コードを結合する関数であり得る。仮想コードに含まれる細部コードが増加するにつれ、細部コード結合関数も多様に生成できる。
【0093】
また、一実施例として、仮想コードが第1コード及び第2コードの特定の規則による組み合わせで生成される場合、第1コードと第2コードは、ユーザ情報が格納された格納位置探索アルゴリズム内の制御命令UIDの格納位置を探索するためのそれぞれの役割を果たせる。例えば、第1コードは、購入時点のUIDを用いて格納位置探索の開始地点を設定し、第2コードは、特定の探索方式によって前記開始地点から制御命令のUIDの格納位置への探索経路を設定する。即ち、仮想コード生成装置100から単位カウント毎に正常に生成された仮想コードが提供されると、仮想コード検証装置200は、第1コードに対応する探索開始地点から第2コードに相応する探索経路に沿って移動した地点をユーザ情報が格納された地点(即ち、制御命令のUIDの格納位置)と判断する。仮想コードを構成する第1コードと第2コードを基にUIDの格納位置を探索する具体的な方式は後述する。
【0094】
細部コード生成部110が細部コードを生成する方式の一実施例として、細部コード生成部110は、単位カウント毎に新たな細部コードを生成し、これにより仮想コード生成装置100は、単位カウント毎に新たな仮想コードを生成する。特定の周期内で単位カウント毎に新たに生成される仮想コードは重複して生成されない。具体的に、細部コード生成部110は、単位カウンド毎に新たに生成される仮想コードが特定のユーザ又は特定の仮想コード生成装置100に定められた期間中、重複して生成されないようにできる。例えば、特定の周期が一週間の場合、一週間は同一の仮想コードが重複して生成されない。
【0095】
仮想コードの重複生成を防止する具体的な一実施例として、M個の文字でN桁の第1コード又は第2コードを生成する場合、仮想コード生成関数に含まれる詳細コード生成関数は、MN個のコードを第1コード又は第2コードとして生成でき、それぞれのコードを細部コード生成関数が駆動される初期時点からカウント毎にマッチングする。例えば、単位カウントを1分に設定する場合、細部コード生成関数が駆動された初期時点から毎秒異なるMN個のコードをマッチングする。そして、特定の細部コード生成関数を用いる周期又は仮想コード生成装置100の使用周期(例えば、仮想コードを生成するアプリケーションがインストールされたユーザ端末の有効期間)をMNカウントに該当する時間長(例えば、1カウントが1秒の場合、MN秒)よりも短い時間長に設定すると、第1コード又は第2コードは、使用周期中に同一のコードが重複して生成されない。即ち、時間が経過するにつれてカウントが増加するとき、ユーザが特定の時点に仮想コード生成装置100に仮想コードの生成を要請する場合、仮想コード生成装置100は、特定の時点に対応するカウントにマッチングされたコード値を第1コード又は第2コードとして生成できる。
【0096】
ここで、細部コード生成関数が駆動される初期時点は、既に設定された周期毎に変わり得る。細部コード生成部110は、既に設定された周期で細部コード生成関数の駆動時点を更新し、次の細部コード生成関数の更新時点まで同一のコードが重複して生成されないようにする。例えば、細部コード生成関数が単位カウントを1分に設定し、使用周期を一週間に設定する場合、一週間(10080分)に10080個の互いに異なる細部のコードが生成され得る。
【0097】
具体的に、アルファベットの大文字と0から9までの数字をコードに含むことができる文字として用い(即ち、36個の文字を使用)、第1コードと第2コードにそれぞれ6桁を割り当てる場合、仮想コード生成装置100は、第1コード及び第2コードとして366個のコードを提供できる。このとき、仮想コード生成装置100は、それぞれのコードをカウント毎にマッチングしてカウント毎に変更される第1コード及び第2コードを提供できる。
【0098】
仮想コードの重複生成を防止する具体的な他の実施例として、仮想コード生成装置100の使用周期が経過すると、第1コード又は第2コードを生成する関数(即ち、第1関数又は第2関数)を変更するか、第1コードと第2コードのマッチング関係を変更して以前の使用周期と異なる仮想コードが生成されるようにする。仮想コードが第1関数によって生成される第1コードと第2関数によって生成される第2コードが結合される場合、第1コード生成関数又は第2コード生成関数が変更されると、仮想コード生成装置100は、第1コード又は第2コードが登場する順序が以前の使用周期とは異なることにより、以前の周期と異なる仮想コードを生成する仮想コード生成関数を新たな使用周期に適用できる。また、仮想コード生成装置100は、以前の使用周期で用いられた仮想コードと同一のコードが新たな使用周期内の各カウントの仮想コードとして登場しないように(即ち、第1関数によって生成される第1コードと第2関数によって生成される第2コードのマッチング関係が新たな使用周期の全カウントで以前の使用周期内に含まれているマッチング関係中に含まれないように)、第1関数と第2関数を選択できる。即ち、MN個のコードを1回ずつ適用できる使用周期を経過した後、仮想コード生成関数の調節又は更新によって以前の使用周期と重なる仮想コードが生成されない新たな使用周期の仮想コード生成関数を適用できる。
【0099】
また、仮想コードの重複生成を防止する具体的な別の実施例として、全周期においてユーザと関係なく、重複した仮想コードが発生しないように、第1コードは、第1関数が駆動される初期時点(特定周期の開始時点)からカウント毎にマッチングされたコードのうち仮想コードの生成が要請された時点(又はカウント)に対応するコード値に設定し、第2コードは、制御命令UIDへの探索経路を指定するコード値に設定し、仮想コードを前記第1コードと第2コードが結合されたコード値として用いることができる。このとき、細部コード生成関数は、単位カウント毎に1つの仮想コードのみ生成する。このため、第1コードは、カウント毎に異なるコード値になり、第1コードと第2コードが結合された仮想コードは、特定の周期に全時点で異なるコード値が出力されることになる。
【0100】
この場合、1人のユーザが同時に複数回の仮想コード生成要請(購入要請)を行う場合、仮想コード生成装置は、仮想コードの生成が要請された時点(又はカウント)に対応するUIDを用いて1つの仮想コードを生成し、仮想コードの生成が要請されたカウントの次のカウントに対応するUIDを用いて別の仮想コードを生成する。
【0101】
具体的な例として、ユーザが同時に3回の購入要請を行う場合、仮想コード生成装置は、購入要請時点のカウント(第1カウント)に対応するUIDを開始時点とする第1コード、1回目の購入要請に対応する制御命令UIDへの探索経路を設定する第2コードを用いて仮想コードを形成し、第1カウントの次のカウント(第2カウント)に対応するUIDを開始時点とする第1コード、2回目の購入要請に対応する制御命令UIDへの探索経路を設定する第2コードを用いて仮想コードを形成し、第2カウントの次のカウント(第3カウント)に対応するUIDを開始時点とする第1コード、3回目の購入要請に対応する制御命令UIDへの探索経路を設定する第2コードを用いて仮想コードを形成する。
【0102】
これにより、本発明は、ユーザが複数の仮想コードの生成を同時に要請する場合にも、重複コードが生成されないようにする。
【0103】
また、他の実施例として、前記仮想コード生成関数(又は細部コード生成関数)は、M個の文字を昇順に並べる多数の羅列規則のうちの何れか1つが適用される。即ち、仮想コード生成装置100は、仮想コード生成関数内に含まれる細部コード生成関数にM個の文字を昇順に並べる規則を多様に適用して行うことができる。例えば、アルファベットの大文字を昇順に並べる羅列規則は、一般的な順序であるA、B、C、…、Zの順にでき、A、C、B、…、Zの順にもできる。仮想コード生成関数で羅列規則が変更されることによって、仮想コード生成関数が駆動される初期時点から各カウントに順にコードがマッチングされる順序が変わることになる。
【0104】
また、他の実施例として、仮想コード生成装置100は、既に設定された周期毎に細部コード結合関数を変更することによって、周期毎に細部コード生成関数で生成された細部コードを異なる方式で結合できる。
【0105】
一方、本発明に係る仮想コードが既存に用いられているトークンシステムに活用される場合、前記仮想コードは、既存のトークン形式で生成することができる。例えば、仮想コードは、トークンクラス情報、トークンサブクラス情報、仮想コード検証装置200の固有値、周期情報、前記第1及び第2コードのうちの少なくとも1つを含むことができる。
【0106】
一方、仮想コードは、仮想コード検証装置200の固有値を含めないようにでき、仮想コード検証装置200の固有値は、仮想コードを暗号化及び復号化するために活用できる。
【0107】
一実施例として、暗号化及び復号化のための別のコードを更に含むことができる。仮想コードはCRC(Cyclic Redundancy Check)コードを更に含むことができる。仮想コード生成装置100は、トークンクラス情報、トークンサブクラス情報、周期情報、前記第1及び第2コードを組み合わせたコードを既に設定された値で割り、その残りの値(CRCコード)を付加して仮想コードを生成する。仮想コード検証装置200は、仮想コード生成装置100に格納された前記既に設定された値と同一の値で仮想コードを割ったとき、残りが0の場合、正常なコードと判断できる。
【0108】
ここで、前記既に設定された値は、仮想コード検証装置200の固有値であり得る。この場合、仮想コードは、仮想コード検証装置200の固有値を含まないが、特定の仮想コード検証装置200専用として生成された仮想コードは、特定の仮想コード検証装置200内でのみ正常なコードと判定される。
【0109】
上述した実施例以外にも、仮想コード検証装置200の固有値は、多様な方式で仮想コードを暗号化及び復号化するのに活用できる。
【0110】
周期情報は、仮想コードの生成時点に仮想コード生成装置100に設定された周期値である。仮想コード生成装置100は、既に設定された周期毎に仮想コード生成装置100に格納された周期情報をアップデートする。例えば、既に設定された周期が1週間の場合、仮想コード生成装置100は、1週間毎に周期情報をアップデートする。ここで、周期情報の基準となる時点は、仮想コード生成装置100の駆動を開始した最初の時点であるか、仮想コード検証装置200を仮想コード生成装置100に登録した時点であり得る。周期情報は、前記基準時点を基準に増加し続ける。
【0111】
仮想コードは、特定の周期内で重複しないように生成される。互いに異なる周期で生成された仮想コードは互いに同一であり得るが、仮想コード検証装置200は、前記周期情報を用いて仮想コードの有効性を検証できる。これについては後述する。
【0112】
仮想コード検証装置200の固有値は、仮想コード生成装置100及び仮想コード検証装置200の両方に格納される値であって、後述する仮想コード検証装置200は、仮想コードから仮想コード検証装置200の固有値を抽出し、抽出された固有値を用いて仮想コードを1次的に検証する。
【0113】
但し、上述したように、仮想コードは、必ずしも仮想コード検証装置200の固有値を含む必要はない。仮想コードの暗号化や復号化に仮想コード検証装置200の固有値を活用することによって、特定の仮想コード検証装置200専用として生成されたコードが、特定の仮想コード検証装置200でのみ正常なコードとして判断されるようにできる。
【0114】
仮想コード生成装置100は、従来のトークンの形式で仮想コードを生成できる。これにより、本発明は、従来用いられているトークンシステムをそのまま活用しながら、補完性が向上した制御方法を提供できる。
【0115】
仮想コード提供部130は、生成された仮想コードを仮想コード受信手段20又は仮想コード検証手段30に伝送する。
【0116】
図6を参照すると、UID格納部140は、仮想コード検証装置200の固有値に複数のUIDをマッチングして格納し、複数のUIDのそれぞれには、互いに異なる制御命令情報がマッチングされて格納される。UID格納部140は、既に設定された周期毎にUIDと制御命令情報間のマッチング関係を変更する。
図6には、制御命令情報がマッチングされないUIDが示されていないが、複数のUIDのうちの一部は、制御命令情報をマッチングして格納しないようにできる。
【0117】
図3は、本発明の一実施例に係る仮想コード検証装置の構成図である。
【0118】
仮想コード検証装置200は、電気計量器、ガス計量器及び水道計量器であり得る。但し、これに限らず、仮想コード検証装置200は、ユーザに使用権限を付与できる全ての端末であり得る。
【0119】
図3に示されるように、仮想コード検証装置200は、仮想コード受信部210、細部コード抽出部220、格納位置探索部230、制御命令情報抽出部240、仮想コード検証部250、制御部260、制御命令格納部270を含む。
【0120】
ここで、仮想コード検証装置200は、仮想コードを基にUID(制御命令UID)を抽出し、仮想コードを基に受信された仮想コードが正常なコードかを判断し、制御命令を行う。
【0121】
仮想コード受信部210は、仮想コードを受信する役割を果たす。仮想コード受信部210は、通信モジュールを含むか、ユーザが仮想コードを直接入力できる入力モジュールを含むことができる。
【0122】
細部コード抽出部220は、仮想コードに含まれている1つ以上の細部コードを抽出する役割を果たす。
【0123】
一実施例として、細部コード抽出部220は、仮想コードから仮想コード検証装置200の固有値、周期情報、第1及び第2コードを抽出できる。
【0124】
他の実施例として、細部コード抽出部220は、仮想コード検証装置内に格納された仮想コード検証装置200の固有値を用いて仮想コードを復号化した後、復号化されたコードから周期情報、第1及び第2コードを抽出できる。この場合、仮想コード生成装置100と仮想コード検証装置200は、同一の暗号化アルゴリズムを含まなければならない。
【0125】
一実施例として、細部コード抽出部220は、仮想コード生成関数に含まれている細部コード結合関数を含む。従って、仮想コードが複数の細部コードを含む場合、細部コード抽出部220は、細部コード結合関数を適用して仮想コードから複数の細部コードを抽出できる。例えば、仮想コード生成装置100で3つの細部コード(周期情報、第1コード及び第2コード)が結合された仮想コードを生成する場合、細部コード抽出部220は、仮想コードの文字配列で細部コード結合関数を適用して周期情報、第1コード及び第2コードを分離できる。
【0126】
一実施例として、細部コード結合関数は、既に設定された周期毎に変更され得る。このとき、仮想コード生成装置100及び仮想コード検証装置200のそれぞれに含まれている細部コード結合関数は、同一でなければならない。このために、仮想コード生成装置100及び仮想コード検証装置200のそれぞれに含まれている細部コード結合関数は同一の周期で、同一の規則に従って変更される。
【0127】
格納位置探索部230は、抽出された1つ以上の細部コードを基に格納位置探索アルゴリズム内にUID(制御命令UID)の格納位置を探索する役割を果たす。ここで、格納位置探索アルゴリズムは、仮想コード生成装置100で仮想コードを生成する際に用いた仮想コード生成関数にマッチングされる。格納位置探索部230でそれぞれの細部コードを基にUIDの格納位置を探索する方式としては、多様な方式が適用され得る。格納位置探索部230が複数の細部コードを基に格納位置を探索するために、細部コード間には相関関係を含むことができる。
【0128】
仮想コードが第1コード及び第2コードを含む場合、細部コード間で相関関係を有する一実施例として、格納位置探索部230は、第1コードに対応する探索開始地点(購入時点のUID)を決定し、前記探索開始地点から第2コードに相応する探索経路に沿って移動した地点をUID(制御命令のUID)の格納位置として探すことができる。即ち、前記細部コードは、格納位置探索の開始地点を設定する第1コード及び特定の探索方式によって前記開始地点(購入時点のUID)から前記UID(制御命令のUID)の格納位置への探索経路を設定する第2コードを含むことができる。
【0129】
また、他の実施例として、格納位置探索部230は、相関関係を有する複数の細部コードを用いてUIDの格納位置を探すために、格納位置探索アルゴリズムを含むことができる。格納位置探索アルゴリズムは、仮想コードに含まれるそれぞれの細部コードの適用時に格納位置が探索できるようにするアルゴリズムであって、仮想コード生成装置100で仮想コードを生成する際に用いた仮想コード生成関数にマッチングされるものである。
【0130】
例えば、仮想コードが格納位置の探索開始地点を決定する第1コードと、探索開始地点からの格納位置の方向を示す第2コードを含む場合、格納位置探索アルゴリズムは、第1コードに対応する地点で第2コードに対応する方向を示すとき、該当位置にUID(制御命令のUID)の登録時点がマッチングされる格納位置が配置されるように調節するアルゴリズムである。
【0131】
制御命令情報抽出部240は、格納位置探索部230によって探索されたUID(制御命令のUID)の格納位置にマッチングされて格納された制御命令情報を抽出する。即ち、仮想コード検証装置200は、格納位置探索アルゴリズム内のそれぞれのUIDの格納位置にマッチングされて格納された制御命令情報を抽出できる。制御部260は、前記抽出された制御命令情報に対応する制御を行う。
【0132】
格納位置探索アルゴリズムを用いることによって、仮想コード検証装置200は、仮想コードに含まれている第1コードと第2コードが変更されてもUIDの格納位置を探索できる。格納位置探索アルゴリズムは、多様な方式を適用でき、具体的な例示は後述する。但し、格納位置探索アルゴリズムは、後述する例示に限らない。
【0133】
例えば、
図5を参照すると、格納位置探索アルゴリズムが第1コードに該当するM
N個のコードが並んでいるトラックに沿って転がり移動するk角形(kはM
N)であり、k角形の頂点が第1コードトラック上にコードが配置される地点に対応しながら移動する場合、k角形の各頂点がUIDの格納位置とマッチングされ、第1コードトラック(即ち、第1トラック)とk角形が対応する地点が第1コードに対応する格納位置の探索開始地点になり得る。このとき、格納位置探索部230は、詳細コード抽出部220から抽出された第1コードに対応する地点にk角形の頂点が接するようにk角形を雲移動させることができる。これにより、格納位置探索部230は、k角形が接している第1トラック上の位置で第2コードに相応する角度(例えば、k角形の頂点に向かうように180°をM
N個に分割した特定の角度)で指示することによって、仮想コードに対応するUID(制御命令のUID)が格納された格納位置であるk角形の頂点を探索できる。
【0134】
具体的に、
図5に示すように、仮想コード検証装置200は、第1コードに対応する地点にk角形を転がり移動(即ち、k角形の各頂点とトラック上の各地点が順に接するようにしながら移動)させる。その後、仮想コード検証装置200は、第2コードに相応する角度の方向を指示して格納位置に相応する頂点を探索する。
【0135】
格納位置探索部230によって格納位置探索アルゴリズム内で仮想コード内の第1コード及び第2コードを用いてUIDの格納位置が探索された後、制御命令情報抽出部240によって当該位置にマッチングされて格納された制御命令情報を抽出する。
【0136】
その他の多様な格納位置探索アルゴリズムについての詳細な説明は、後述する。
【0137】
仮想コード検証部250は、仮想コードから抽出した仮想コード検証装置200の固有値及び周期情報を用いて仮想コードを検証する役割を果たす。
【0138】
一実施例として、仮想コード検証部250は、仮想コードから抽出した仮想コード検証装置200の固有値と仮想コード検証装置200に格納された固有値とを比較して、仮想コードを1次的に検証する。前記2つの固有値が一致しない場合、仮想コード検証部250は、受信した仮想コードが有効でないと判断する。
【0139】
他の実施例として、仮想コード生成装置100と仮想コード検証装置200は、同一の暗号化アルゴリズムを含み、仮想コード生成装置100は、仮想コード検証装置200の固有値を用いて仮想コードを暗号化し、仮想コード検証装置200は、装置内に格納された固有値を用いて仮想コードを復号化する。仮想コード検証装置200の固有値がない場合、仮想コードを復号化できないため、仮想コードが使用できなくなる。
【0140】
仮想コード検証装置200は、既に設定された周期毎に仮想コード検証装置200に格納された周期情報をアップデートする。仮想コード生成装置100及び仮想コード検証装置200のそれぞれに格納された周期情報は、同一の時点で同一の値にアップデートされる。
【0141】
仮想コード検証部250は、仮想コードから抽出された周期情報又は仮想コード検証装置200に格納された周期情報を基に、特定の周期が始まる時点を判断できる。
【0142】
具体的な実施例として、仮想コード生成装置100が仮想セキュリティコードを外部に出力せず、第1コード及び第2コードに反映して生成する。仮想コード生成手段は、仮想コード生成要請(購入要請)時点(又はカウント)に対応するUID(購入時点のUID)を基に第1コードを生成し、購入時点UIDを基準に購入要請に対応する制御命令がマッチングされて格納されたUID(制御命令のUID)への探索経路を含む第2コードを生成する。
【0143】
一方、仮想コードから抽出された周期情報と仮想コード検証装置200に格納された周期情報が一致しない場合、仮想コード検証部250は、仮想コードから抽出された周期情報に対応する周期が仮想コード検証装置200に格納された周期情報に対応する周期の直前の周期であるかを確認する。例えば、仮想コード検証部250は、仮想コード検証装置200に格納された周期情報が「4週目」の場合、仮想コードから抽出された周期情報が「3週目」であるかを確認する。
【0144】
仮想コードから抽出された周期情報と仮想コード検証装置200に格納された周期情報が一致せず、仮想コードから抽出された周期情報に対応する周期が仮想コード検証装置200に格納された周期情報に対応する周期の直前の周期でない場合、仮想コード検証部250は、受信したコードが有効でないコードと判断する。
【0145】
一方、仮想コードから抽出された周期情報と仮想コード検証装置200に格納された周期情報が一致せず、仮想コードから抽出された周期情報に対応する周期が仮想コード検証装置200に格納された周期情報に対応する周期の直前の周期である場合、仮想コード検証部250は、仮想コードから抽出された周期情報を基準に特定周期の開始時点を判断し、前記特定周期の開始時点から前記特定周期の終了時点までに仮想セキュリティコードを生成する。その後、生成された仮想セキュリティコードのうち第1コード及び第2コードに含まれている仮想セキュリティコードと一致するコードがあるかを判断する。
【0146】
仮想コード検証部250は、仮想コードから抽出された第1コード及び周期情報を用いて仮想コードの生成時点を判断する。仮想コード検証部250は、仮想コードの生成時点及び仮想コードの受信時点の差が既に設定された仮想コードの有効期間を超える場合、仮想コードは有効でないと判断する。これとは異なり、仮想コードの生成時点及び前記仮想コードの受信時点の差が既に設定された仮想コードの有効期間内の場合、仮想コードが有効なコードであると判断し、仮想コードから抽出された周期情報を基に制御命令情報が抽出できるようにする。
【0147】
より具体的に、仮想コード検証装置200は、仮想コード生成装置100と同一の形式で複数のUIDを格納し、複数のUIDのそれぞれは、特定周期の開始時点から特定周期の終了時点まで含まれている複数のカウントのそれぞれにマッチングされる。UIDとカウント間のマッチング関係は、仮想コード生成装置100と仮想コード検証装置200のそれぞれで同一である。従って、仮想コード検証装置200は、第1コードに含まれている購入時点のUIDを用いて特定周期内の購入要請時点を特定できる。但し、購入時点のUIDだけでは特定周期の開始時点を基準にした購入要請時点のみ特定できるだけで、絶対的な購入要請時点は特定できない。
【0148】
仮想コード検証装置200は、周期情報を用いて購入要請が行われた周期を特定できる。仮想コード検証装置200は、購入要請が行われた周期と特定周期の開始時点を基準とした購入要請時点を基に絶対的な購入要請時点を特定できる。
【0149】
仮想コード検証装置200は、周期情報及び第1コードを基に特定された絶対的な購入要請時点と仮想コード受信時点を基準に仮想コードの有効性を判断できる。
【0150】
一実施例として、仮想コードから抽出された周期情報と仮想コード検証装置200に格納された周期情報が一致しない状態で仮想コードが有効であると判断される場合、制御命令情報抽出部240は、仮想コード検証装置200で周期情報がアップデートされる前のUID及び制御命令情報間のマッチング関係によってUIDから制御命令情報を抽出する。
【0151】
より具体的に、仮想コード検証装置200には、複数のUIDが格納され、複数のUIDのうちの一部には、制御命令情報がマッチングされて格納される。UIDと制御命令情報間のマッチング関係は、仮想コード検証装置200で周期情報をアップデートする度に変更される。このとき、UIDと制御命令情報間のマッチング関係の変更規則は、仮想コード生成装置100に適用される規則と同一であるので、同一時点で仮想コード生成装置100と仮想コード検証装置200のそれぞれのマッチング関係は同一である。
【0152】
ユーザが特定の周期内に仮想コード生成装置100から仮想コードを発行された後、特定の周期内に仮想コードを仮想コード検証装置200に入力した場合、仮想コード生成装置100と仮想コード検証装置200内のUID及び制御命令情報のマッチング関係は同一であるため、仮想コード生成装置100で仮想コードの生成時に基礎となった制御命令情報を仮想コード検証装置200から抽出できることになる。
【0153】
しかし、ユーザが特定の周期内に仮想コード生成装置100から仮想コードを発行された後、特定周期の終了時点後に仮想コードを仮想コード検証装置200に入力した場合、仮想コード生成装置100と仮想コード検証装置200内のUID及び制御命令情報のマッチング関係が異なる。ユーザが特定周期の終了時点に迫って仮想コードを発行された場合、特定の周期が終了しても仮想コードの有効期間が残っている状態であり得る。本発明は、このような場合にも、仮想コードが仮想コード検証装置200で有効なコードとして検証及び活用され得るようにする。このために、本発明は、上述したように、仮想コードから抽出された周期情報と仮想コード検証装置200に格納された周期情報が一致しない場合にも、仮想コードを追加的に検証することで、仮想コードが有効なコードと判断できるようにする。
【0154】
また、上述した場合にも仮想コードが活用できるように、制御命令情報格納部370は、特定の周期が終了し、UID及び制御命令情報のマッチング関係を変更しても、直前の周期のマッチング関係を削除せず、格納(
図7参照)する。即ち、仮想コード検証装置200は、現在の周期に対応するUID及び制御命令情報のマッチング関係と直前の周期に対応するUID及び制御命令情報のマッチング関係を何れも格納する。
【0155】
仮想コードから抽出された周期情報と仮想コード検証装置200に格納された周期情報が一致しない状態で仮想コードが有効であると判断される場合、制御命令情報抽出部240は、直前の周期に対応するUID及び制御命令情報のマッチング関係を用いて制御命令情報を抽出する。
【0156】
制御部260は、仮想コード検証部250によって仮想コードの検証が完了すると、制御命令抽出部240によって抽出された制御命令情報に対応する制御を実行する。
【0157】
一実施例において、仮想コード検証装置200が電気やガス、水道などの計量器である場合、仮想コード検証装置200は、ユーザが抽出された制御命令情報に対応する使用量だけ電気やガス、水道などを使用できるようにする。
【0158】
図4は、本発明の一実施例に係る仮想コードを用いた制御方法のフローチャートである。
【0159】
図4を参照すると、本発明の一実施例に係る仮想コードを用いた制御方法は、仮想コード検証装置が仮想コードを受信する段階(S100:仮想コード受信段階)、前記仮想コード検証装置が、前記仮想コードに基づいてUIDを探索する段階(S200:UID探索段階)、仮想コード検証装置が探索された前記UIDの格納位置にマッチングされて格納された制御命令情報を抽出する段階(S300)、仮想コード検証装置が仮想コードを検証する段階(S400)及び仮想コード検証装置が前記制御命令情報に基づいて制御を行う段階(S500)を含む。以下、各段階についての詳細な説明を記載する。但し、仮想コード生成装置100(即ち、販売者サーバ)及び仮想コード検証装置200(仮想コード検証手段20)についての説明過程で上述した内容に関する具体的な開示は省略する。
【0160】
段階S100で、仮想コード検証装置200は、仮想コードを受信する。ここで、仮想コードは、UIDを基に仮想コード生成用プログラムに含まれている仮想コード生成関数によって生成されるものである。
【0161】
一実施例によって、仮想コードは、仮想コード生成装置100内に含まれているUIDを基に生成できる。
【0162】
仮想コード生成装置100は、仮想コード生成関数を用いてUIDを基に仮想コードを生成し、生成された仮想コードを仮想コード検証装置200に提供することになる。
【0163】
一実施例として、仮想コード生成装置100は、既に格納された複数のUIDのうちユーザの購入要請に対応するUIDを探索した後、探索されたUIDを細部コード生成関数のシードデータとして用いてそれぞれの細部コードを生成できる。
【0164】
それぞれの細部コード生成関数を用いて複数の細部コードを生成すると、仮想コード生成装置100は、仮想コード生成関数に含まれている細部コード結合関数を用いて複数の細部コードが結合された仮想コードを生成できる。例えば、仮想コード生成装置100は、専用プログラム11を用いてUIDをシードデータとして用いて仮想コードを生成することになる。
【0165】
この他にも、仮想コードは、多様な方式で生成され得る。即ち、仮想コードは、多様な仮想コード生成関数によって生成できる。多様な方式で仮想コードを生成することについての詳細な説明は、
図5を参照して上述した説明と重複するので、具体的な開示は省略する。
【0166】
その後、段階S200で、仮想コード検証装置200が仮想コードを基に格納位置探索アルゴリズム内でUIDの格納位置を探索する。ここで、格納位置探索アルゴリズムは、仮想コード生成装置100(即ち、販売者サーバ)に含まれている仮想コード生成関数にマッチングされるものであって、仮想コード内の少なくとも1つの細部コードを基にUIDの格納位置を探索できるようにする。
【0167】
一実施例において、それぞれのUIDには、制御命令情報をマッチングして格納できる。複数のUIDと制御命令情報間のマッチング関係は、既に設定された周期毎に変更される。
【0168】
一実施例によって、仮想コードが第1コードと第2コードを含む場合、仮想コード検証装置200は、第1コードと第2コードを用いて格納位置探索アルゴリズム内でUID格納位置を探索することになる。例えば、第1コードは、格納位置探索アルゴリズム内でUIDの格納位置探索の開始地点を設定するコードであり、第2コードは、特定の探索方式によって開始地点からUIDの格納位置への探索経路を設定するコードであり得る。
【0169】
図5に示されるように、仮想コード検証装置200は、第1コードに対応する位置を開始地点として設定し、第2コードに適用された探索方式によって、第2コードを基にk角形の配置状態でのUIDの格納位置にマッチングされた地点(即ち、k角形の特定の頂点)を探索する。格納位置は、k角形のそれぞれの頂点にマッチングされる。第1コードトラック(即ち、第1トラック)とk角形が対応する地点が、第1コードに対応する格納位置の探索開始地点になる。仮想コード検証装置200は、探索開始地点で第2コードを基にUID格納位置のマッチング地点を探索する。
【0170】
第2コードを基にk角形で格納位置を探索する方式としては、多様な方式を適用できる。一例として、仮想コード検証装置200は、k角形が接している第1トラック上の位置で第2コードに相応する角度(例えば、k角形の頂点に向かうように180°をMN個に分割した特定の角度)で指示することによって、仮想コードを基にUIDが格納された格納位置であるk角形の頂点を探索できる。
【0171】
また、他の例として、k角形が第1トラック上の第1コードに対応する地点に接している状態で、仮想コード検証装置200は、k角形の中心と第1トラック上の接点を基準に、中心角全体(即ち360°)をMN個に分割し、それぞれの角度をMN個の第2コードにマッチングする。このとき、k角形の中心と第1トラック上の接点をつなぐ線から特定数の単位角度(即ち、360°/MN)を移動した線の方向は、k角形の特定の頂点になる。従って、特定の角度に対応する第2コードが受信されると、仮想コード検証装置200は、当該角度の方向に位置する頂点を探索できる。
【0172】
また、他の例として、第2コードの特定の桁を、角度の算出方向を決定するものとして用いることができる。即ち、N個(Nは自然数)の文字を用いて第2コードを生成する場合、1つの桁(Digit)で角度の測定方向を決定できる。例えば、仮想コード検証装置200は、k角形の中心と第1トラック上の接点を基準に、中心角全体(即ち、360°)を分割してそれぞれの角度に第2コードをマッチングする場合、k角形の中心と第1トラック上の接点をつなぐ線から左側方向に測定される角度か、右側方向に測定される角度かを1つの桁(Digit)の値により決定できる。
【0173】
一例として、格納位置探索アルゴリズムは、k角形上の各頂点に角度の測定方向によって異なる2つの第2コードを1つの頂点に割り当てることができる。即ち、1つの頂点に内角にて到達する時と外角にて到達する時に異なる第2コードとマッチングされ、他のUIDの格納位置を連結できる。他の例としては、格納位置探索アルゴリズムは、N個(Nは自然数)の文字を用いて第2コードを生成する場合、N-1個で角度全体(例えば、中心角を基準に分割する場合は360°)の半分に対してマッチングし、1つの桁を用いて各頂点に到達するための角度の適用方向を決定できる。
【0174】
第2コードを基にk角形で格納位置を探索する方式は、これに限らず、第2コードに相応するk角形上の地点と第1トラック上の接点の間を特定の割合で分ける地点を格納位置として探索する方式などの多様な方式を適用できる。
【0175】
その後、段階S300で、仮想コード検証装置200は、探索された前記UIDの格納位置にマッチングされて格納された制御命令情報を抽出する。
【0176】
具体的に、仮想コード検証装置200は、探索されたUIDの格納位置にマッチングされて格納された制御命令情報を抽出する。即ち、仮想コード検証装置200は、格納位置探索アルゴリズム内のそれぞれのUIDの格納位置に制御命令情報を格納しているので、仮想コード検証装置200は、格納位置探索アルゴリズム内で特定のUIDの格納位置にマッチングされて格納された制御命令情報を抽出できる。
【0177】
その後、段階S400で、仮想コード検証装置200が、前記仮想コードが受信された時点を基に仮想コードを検証する。但し、S400段階は、必ずしもS300段階の後に行われる必要はなく、仮想コードから仮想コード検証装置200の固有値、周期情報、第1及び第2コードを抽出した後に行っても構わない。
【0178】
段階S500で、仮想コード検証装置200は、仮想コードが正常なコードであると判断されると、UIDの格納位置にマッチングされて格納された制御命令情報を基に制御を行う。
【0179】
以下、仮想コード検証装置が電気計量器の場合、仮想コードを用いて電力量を充電する実施例について具体的に説明する。
【0180】
ユーザは、仮想コード生成装置から一定量の電気使用権限を購入し、仮想コードを発行される。電気計量器は、前記多様な方式で仮想コードを受信できる。
【0181】
電気計量器は、計量器内に格納された計量器の固有値を用いて暗号化された仮想コードを復号化する。このとき、仮想コード生成装置が、仮想コードを暗号化する際に用いられたアルゴリズムと計量器が仮想コードを復号化するアルゴリズムは、同一のアルゴリズムである。
【0182】
一実施例において、仮想コードの暗号化及び復号化のために仮想コードは、前述したCRCコードを含むことができる。
【0183】
仮想コードは、計量器の固有値なしには復号化できないため、特定の計量器専用として生成されたコードは、特定の計量器でのみ復号化できる。
【0184】
仮想コードの復号化過程によって受信された仮想コードが当該計量器専用に生成されたコードであることが確認されると、計量器は、制御命令のUIDを探索する。このとき、前述した探索方式を用いることができる。
【0185】
また、計量器は、仮想コードから抽出された周期情報及び第1コードを用いて仮想コードが生成された絶対的な時点を算出し、算出された仮想コード生成時点と仮想コード受信時点を用いて受信された仮想コードが有効期間内に受信された仮想コードかを判断する。
【0186】
受信された仮想コードが有効期間内に受信された仮想コードであると判断され、計量器は、制御命令のUIDにマッチングされて格納された制御命令情報によって電力充電量を決定する。その後、計量器は、充電された電力量に基づいて駆動する。
【0187】
一方、受信された仮想コードが特定周期の終了時点後に受信されたが、有効期間内に受信された仮想コードの場合、計量器は、直前の周期に対応するUID及び制御命令情報間のマッチング関係を活用して制御命令情報を抽出し、抽出された制御命令情報によって電力充電量を決定する。
【0188】
これにより、本発明は、有効期限が残っている仮想コードが計量器の周期変更時点後に計量器に入力されても、当該仮想コードを用いて電力量を充電できるようにする。
【0189】
以上で前述した本発明の一実施例に係る仮想コードを用いた取引方法は、ハードウェアであるコンピュータで実行されるために、プログラム(又はアプリケーション)により実現されて媒体に格納できる。
【0190】
前述したプログラムは、前記コンピュータがプログラムを読み込んでプログラムにて実現した前記方法を実行させるために、前記コンピュータのプロセッサ(CPU)が前記コンピュータの装置インターフェースを介して読み取られるC、C++、JAVA(登録商標)、機械語などのコンピュータ言語でコード化されたコード(Code)を含むことができる。このようなコードは、前記方法を実行するのに必要な機能を定義した関数などと関連する機能的なコード(Functional Code)を含むことができ、前記機能を前記コンピュータのプロセッサが所定の手順通りに実行させるのに必要な実行手順関連の制御コードを含むことができる。また、このようなコードは、前記機能を前記コンピュータのプロセッサが実行させるのに必要な追加の情報やメディアが前記コンピュータの内部又は外部メモリのどの位置(アドレス)で参照されるべきかに対するメモリ参照関連のコードを更に含むことができる。更に、前記コンピュータのプロセッサが前記機能を実行させるために、遠隔(Remote)にある任意の他のコンピュータやサーバなどと通信が必要な場合、コードは前記コンピュータの通信モジュールを用いて遠隔にある任意の他のコンピュータやサーバなどとどのように通信すべきか、通信時に如何なる情報やメディアを送受信すべきかなどに対する通信関連のコードを更に含むことができる。
【0191】
前記格納される媒体は、レジスタ、キャッシュ、メモリなどといった短時間でデータを格納する媒体ではなく、半永久的にデータを格納し、機器により読み取り(reading)可能な媒体を意味する。具体的には、前記格納される媒体の例としては、ROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、光データ格納装置などがあるが、これに限らない。即ち、前記プログラムは、前記コンピュータが接続可能な多様なサーバ上の多様な記録媒体又はユーザの前記コンピュータ上の多様な記録媒体に格納できる。また、前記媒体は、ネットワークで接続されたコンピュータシステムに分散し、分散方式でコンピュータが読み取れるコードを格納できる。
【0192】
以上、添付の図面を参照して本発明の実施例を説明したが、本発明が属する技術分野における通常の技術者は、本発明がその技術的思想や必須な特徴を変更することなく、他の具体的な形態に実施され得るということが理解できるはずである。従って、以上で述べた実施例は、あらゆる面で例示的なものであり、制限的ではないものとして理解すべきである。