(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-15
(45)【発行日】2023-06-23
(54)【発明の名称】仮想コードを用いたユーザ設定情報認証方法、プログラム及び装置
(51)【国際特許分類】
G06F 21/31 20130101AFI20230616BHJP
【FI】
G06F21/31
(21)【出願番号】P 2021573775
(86)(22)【出願日】2021-02-24
(86)【国際出願番号】 KR2021002334
(87)【国際公開番号】W WO2021172875
(87)【国際公開日】2021-09-02
【審査請求日】2021-12-10
(31)【優先権主張番号】10-2020-0022023
(32)【優先日】2020-02-24
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2020-0169744
(32)【優先日】2020-12-07
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2021-0025017
(32)【優先日】2021-02-24
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】521542982
【氏名又は名称】センストーン インコーポレイテッド
(74)【代理人】
【識別番号】110002262
【氏名又は名称】TRY国際弁理士法人
(72)【発明者】
【氏名】ユ、チャン フン
(72)【発明者】
【氏名】キム、ミン ギュ
【審査官】赤穂 州一郎
(56)【参考文献】
【文献】特開2020-027653(JP,A)
【文献】米国特許出願公開第2020/0051075(US,A1)
【文献】特開2019-032501(JP,A)
【文献】特開2008-197919(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/31
(57)【特許請求の範囲】
【請求項1】
仮想コード検証手段が仮想コードを受信する受信ステップ-前記仮想コードは、前記仮想コード検証手段に登録された仮想コード生成手段に含まれている仮想コード生成関数によって生成される-と、
前記仮想コード検証手段が前記仮想コードに基づいて複数のUID(User Identification)の保存位置を探索する探索ステップと、
前記仮想コード検証手段が探索された前記複数のUIDに基づいて仮想コードを検証する検証ステップと、
前記仮想コード検証手段が探索された前記複数のUIDに基づいて制御命令を実行する実行ステップと、を含み、
前記探索ステップは、
複数のUIDを順次探索するときに、既に探索されたUIDを他のUIDの探索に活用して行わ
れ、
前記仮想コードは、複数の詳細コードを含み、
前記探索ステップは、
前記複数の詳細コードのうちの一部に基づいて、複数のUIDのうちのいずれか一つの保存位置を探索するステップと、
複数の詳細コードのうちの残りの一部と探索されたいずれか一つのUIDに基づいて、複数のUIDのうちの他の一つを探索するステップと、を含み、
前記仮想コードは、第1コード、第2コード及び第3コードを含み、
前記探索ステップは、
前記第2コード及び前記第3コードに基づいて第2UIDの保存位置を探索するステップと、
前記第1コード及び前記第2UIDに基づいて第1UIDの保存位置を探索するステップと、を含み、
前記仮想コードは、第1コード、第2コード及び第3コードを含み、
前記探索ステップは、
前記第2コードを前記第2UIDの保存位置への探索開始時点として設定し、前記第3コードを前記第2UIDの保存位置への探索経路として設定して、前記第2UIDの保存位置を探索するステップと、
前記第1コードを前記第1UIDの保存位置への探索開始時点として設定し、前記第2UID、又は前記第2UIDにマッチングされて保存されたコードを、第1UIDの保存位置への探索経路として設定して、前記第1UIDの保存位置を探索するステップと、を含む、仮想コードを用いた制御方法。
【請求項2】
前記検証ステップは、
複数のUIDのうち、最後に探索されたUIDが既に保存されたUIDと一致するか、或いは、複数のUIDのうち、最後に探索されたUIDにマッチングされて保存された情報が既に設定された値と一致する場合、前記仮想コードが有効なコードであると判断する、請求項1に記載の仮想コードを用いた制御方法。
【請求項3】
前記実行ステップは、
前記複数のUIDのうちの少なくとも一つにマッチングされて保存された制御命令情報に基づいて行われるか、或いは前記複数のUIDのうちの少なくとも一つに対応する制御命令が行われることである、請求項1に記載の仮想コードを用いた制御方法。
【請求項4】
前記実行ステップは、
ユーザ認証を行うことであり、
前記仮想コード検証手段が、前記複数のUIDの保存位置にマッチングされて保存された権限情報を抽出し、
前記仮想コード検証手段が、前記権限情報に対応するユーザ認証を行うことである、請求項1に記載の仮想コードを用いた制御方法。
【請求項5】
ハードウェアであるコンピュータに結合され、請求項1~
4のいずれか一項に記載の方法を実行させるために媒体に保存された、仮想コードを用いた制御プログラム。
【請求項6】
請求項1~4のいずれか一項に記載の方法の実行に用いられる仮想コード生成装置であって、
前記仮想コード生成装置に登録された複数のUID(User Identification)に基づいて複数の詳細コードを生成する詳細コード生成部と、
仮想コード生成関数を用いて前記複数の詳細コードを組み合わせて仮想コードに生成する仮想コード生成部と、
仮想コード検証装置が前記仮想コードに対応する制御命令を実行するように、生成された前記仮想コードを前記仮想コード検証装置へ伝送する仮想コード提供部と、を含み、
前記仮想コード生成装置は、複数のUIDのうちのいずれか一つが他の一つの探索に活用されるように複数の詳細コードを生成することを特徴とする、仮想コード生成装置。
【請求項7】
請求項1~4のいずれか一項に記載の方法の実行に用いられる、ユーザ認証のための仮想コード検証装置であって、
仮想コードを受信する仮想コード受信部と、
前記仮想コードから複数の詳細コードを抽出する詳細コード抽出部と、
前記複数の詳細コードに基づいて複数のUID(User Identification)の保存位置を探索する保存位置探索部と、
前記複数のUIDに基づいて仮想コードを検証する仮想コード検証部と、
前記複数のUIDに基づいて制御命令を実行する制御部と、を含み、
前記保存位置探索部は、
複数のUIDを順次探索し、既に探索されたUIDを他のUIDの探索に活用することを特徴とする、制御命令実行のための仮想コード検証装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想コードを用いたユーザ設定情報認証方法、プログラム及び装置に関する。
【背景技術】
【0002】
OTP(One Time Password)は、ランダムに生成される乱数の使い捨てパスワードを利用するユーザ認証方式である。OTP認証方式は、セキュリティを強化するために導入したシステムであって、ログインするたびに使い捨てパスワードを生成してユーザ認証を行うから、同じパスワードが繰り返し使用されることにより発生するセキュリティ上の脆弱点を克服することができる。
【0003】
しかし、従来のOTP認証方式は、開始時に暗証番号を入力するなどの方式でログインしてユーザが誰であるかを把握した後、当該ユーザに与えられたOTP関数を用いてOTPを生成し、これによりOTP認証を完了する方式であって、OTP認証を行うたびにログインを行わなければならないという不便さがある。
【0004】
したがって、ユーザが認証を要求するたびにログインしなくてもOTPを生成してユーザ認証を行うことができる発明が求められる。また、様々な分野で非対面業務処理のニーズが高まるにつれて、非対面で他人にユーザ認証権限を付与することができる発明が求められる。このとき、他人に付与されたユーザ認証権限は一時的でなければならず、ユーザが指定した者にのみ限定的に付与されなければならない。
【0005】
また、仮想コードの有効性を検証する装置で通信が困難な場合、仮想コードの有効性を検証することが難しいという問題がある。
【0006】
そこで、仮想コードに対応するユーザ又は装置に対する識別情報を提供することなくリアルタイムで変動する仮想コードに基づいて仮想コードの有効性を判断し、活用することができる発明が求められる。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明が解決しようとする課題は、セキュリティ性がさらに向上した、仮想コードを用いた制御方法、プログラム及び装置を提供することである。
【0008】
また、本発明が解決しようとする課題は、非対面でユーザが他人に一時的にユーザ認証権限を付与することができる、仮想コードを用いたユーザ認証方法、プログラム及び装置を提供することである。
【0009】
また、本発明が解決しようとする課題は、ユーザが他者にユーザ認証権限を付与するときに権限制限を用途別に設定するか、或いは権限付与時間を設定することができる、仮想コードを用いたユーザ認証方法、プログラム及び装置を提供することである。
【0010】
また、本発明が解決しようとする課題は、取引行為後に販売者が発行する仮想コードが重複生成されないようにする方法及びシステムを提供することである。
【0011】
また、本発明が解決しようとする課題は、取引行為後に販売者が発行する仮想コードに有効期間を付与し、仮想コードの購入後に購入者が一定時間の経過後に使用することができないようにする方法及びシステムを提供することである。
【0012】
本発明の解決課題は、上述したものに限定されず、上述していない別の解決課題は、以降の記載から通常の技術者に明確に理解できるだろう。
【課題を解決するための手段】
【0013】
上記目的を達成するための本発明による仮想コードを用いたユーザ設定情報検証方法は、仮想コード検証手段が仮想コードを受信するステップ-前記仮想コードは、前記仮想コード検証手段に登録された仮想コード生成手段に含まれている仮想コード生成関数によって生成される-と、前記仮想コード検証手段が前記仮想コードに基づいて複数のUID(User Identification)の保存位置を探索するステップと、前記仮想コード検証手段が前記探索された複数のUIDに基づいて仮想コードを検証するステップと、前記仮想コード検証手段が前記探索された複数のUIDに基づいて制御命令を実行するステップと、を含み、前記探索ステップは、複数のUIDを順次探索するときに、既に探索されたUIDを他のUIDの探索に活用して行われることを特徴とする。
【0014】
また、前記仮想コードは、複数の詳細コードを含み、前記探索ステップは、前記複数の詳細コードのうちの一部に基づいて、複数のUIDのうちのいずれか一つの保存位置を探索するステップと、前記複数の詳細コードのうちの残りの一部と前記探索されたいずれか一つのUIDに基づいて、複数のUIDのうちの他の一つを探索するステップと、を含む。
【0015】
また、前記仮想コードは、第1コード、第2コード及び第3コードを含み、前記探索ステップは、前記第2コード及び第3コードに基づいて第2UIDの保存位置を探索するステップと、前記第1コード及び第2UIDに基づいて第1UIDの保存位置を探索するステップと、を含む。
【0016】
また、前記仮想コードは、第1コード、第2コード及び第3コードを含み、前記探索ステップは、前記第2コードを前記第2UIDの保存位置への探索開始時点として設定し、前記第3コードを前記第2UIDの保存位置への探索経路として設定して、前記第2UIDの保存位置を探索するステップと、前記第1コードを前記第1UIDの保存位置への探索開始時点として設定し、前記第2UID又は前記第2UIDにマッチングされて保存されたコードを、第1UIDの保存位置への探索経路として設定して、前記第1UIDの保存位置を探索するステップと、を含む。
【0017】
また、前記検証ステップは、複数のUIDのうち、最後に探索されたUIDが既に保存されたUIDと一致するか、或いは、複数のUIDのうち、最後に探索されたUIDにマッチングされて保存された情報が既に設定された値と一致する場合、前記仮想コードが有効なコードであると判断する。
【0018】
また、前記実行ステップは、前記複数のUIDのうちの少なくとも一つにマッチングされて保存された制御命令情報に基づいて行われるか、或いは前記複数のUIDのうちの少なくとも一つに対応する制御命令が行われる。
【0019】
また、前記実行ステップは、ユーザ認証を行うことであり、前記仮想コード検証手段が、前記複数のUIDの保存位置にマッチングされて保存された権限情報を抽出し、前記仮想コード検証手段が、前記権限情報に対応するユーザ認証を行うことである。
【0020】
また、本発明は、ハードウェアであるコンピュータに結合され、請求項1~7のいずれか一項に記載の方法を実行させるために媒体に保存された、仮想コードを用いた制御プログラムを含む。
【0021】
また、本発明は、仮想コード生成装置であって、前記仮想コード生成装置に登録された複数のUID(User Identification)に基づいて複数の詳細コードを生成する詳細コード生成部と、仮想コード生成関数を用いて前記複数の詳細コードを組み合わせて仮想コードに生成する仮想コード生成部と、仮想コード検証装置が前記仮想コードに対応する制御命令を行うように、前記生成された仮想コードを前記仮想コード検証装置へ伝送する仮想コード提供部と、を含み、前記仮想コード生成装置は、複数のUIDのうちのいずれか一つが他の一つの探索に活用されるように複数の詳細コードを生成することを特徴とする。
【0022】
また、本発明は、ユーザ認証のための仮想コード検証装置であって、仮想コードを受信する仮想コード受信部と、前記仮想コードから複数の詳細コードを抽出する詳細コード抽出部と、前記複数の詳細コードに基づいて複数のUID(User Identification)の保存位置を探索する保存位置探索部と、前記複数のUIDに基づいて仮想コードを検証する仮想コード検証部と、前記複数のUIDに基づいて制御命令を実行する制御部と、を含み、前記保存位置探索部は、複数のUIDを順次探索し、既に探索されたUIDを他のUIDの探索に活用することを特徴とする。
【発明の効果】
【0023】
上述した本発明によれば、次の様々な効果を持つ。
【0024】
第一に、仮想コードを構成する複数の詳細コードのうちのいずれか一つが異常を示す場合、複数のUIDの保存位置を探索することができなくなる。これにより、仮想コードのセキュリティ性を向上させることができる。
【0025】
第二に、一時的にユーザ認証を行うことができる仮想コードを他人に提供することにより、他人と接触することなく他人がユーザ認証を行えるようにすることができる。
【0026】
第三に、仮想コードを使用することが可能な時間を制限することにより、特定の時間に正確に他人に仮想コードを伝達しなくても、他人が特定の時間にのみユーザ認証を行えるようにすることができる。
【0027】
第四に、仮想コードを介して他人に付与できる権限の種類を制限することにより、ユーザが必要な権限のみを選択的に他人に付与することができる。
【0028】
第五に、仮想コードを生成する仮想コード生成装置(例えば、ユーザ端末)には仮想コード生成関数が保存され、仮想コードを用いてユーザ情報を抽出し、仮想コードが正常なコードであるかを検証する仮想コード検証装置(例えば、サーバなど)には仮想コード検証のためのアルゴリズムが追加されればよいので、仮想コード生成及び検証のためのアルゴリズムが流出することを防止することができる。
【0029】
本発明の効果は上述した効果に限定されず、上述していない別の効果は以降の記載から通常の技術者に明確に理解できるだろう。
【図面の簡単な説明】
【0030】
【
図1】本発明の一実施形態による仮想コードを用いたユーザ認証システムの構成図である。
【
図2】本発明の一実施形態による仮想コード生成装置の構成図である。
【
図3】本発明の一実施形態による仮想コード検証装置の構成図である。
【
図4】本発明の一実施形態による仮想コードを用いたユーザ認証方法のフローチャートである。
【
図5】本発明の一実施形態によるk角形の転がり移動を介してUIDの保存位置を探索する保存位置探索アルゴリズムに対する例示図である。
【
図6】本発明の一実施形態による仮想コードの検証を説明するための例示図である。
【
図7】本発明の一実施形態による詳細コードに基づいてトラック上を移動してUIDの保存位置を探索する保存位置探索アルゴリズムに対する例示図である。
【
図8】本発明の一実施形態によるUID探索方法を説明するための例示図である。
【発明を実施するための形態】
【0031】
本発明の利点及び特徴、並びにそれらを達成する方法は、添付図面と共に詳細に後述される実施形態を参照すると明らかになるだろう。しかし、本発明は、以下に開示される実施形態に限定されるものではなく、互いに異なる様々な形態で実現でき、単に、本実施形態は、本発明の開示を完全たるものにし、本発明の属する技術分野における通常の技術者に本発明の範疇を完全に知らせるために提供されるものであり、本発明は請求の範囲の範疇によって定義されるだけである。
【0032】
本明細書で使用された用語は、実施形態を説明するためのものであり、本発明を限定するものではない。本明細書において、単数形は、特に断らない限り、複数形も含む。本明細書で使用される「含む(comprises)」及び/又は「含む(comprising)」は、言及された構成要素の他に、一つ以上の他の構成要素の存在又は追加を排除しない。明細書全体にわたって同一の図面符号は同一の構成要素を示し、「及び/又は」は言及された構成要素のそれぞれ及び一つ以上のすべての組み合わせを含む。たとえ用語「第1」、「第2」などが様々な構成要素を叙述するために使用されるが、これらの構成要素はこれらの用語によって制限されないことは言うまでもない。これらの用語は、一つの構成要素を他の構成要素と区別するために使用するものである。よって、以下で言及される第1構成要素は、本発明の技術的思想内で第2構成要素であり得ることは言うまでもない。
【0033】
他の定義がなければ、本明細書で使用されるすべての用語(技術用語及び科学用語を含む)は、本発明の属する技術分野における通常の技術者に共通して理解され得る意味で使用できるだろう。また、一般的に使用される辞典に定義されている用語は、明白に特に定義されていない限り、理想的又は過度に解釈されない。
【0034】
本明細書において、「金融取引」とは、金融会社との間で行われる手順を意味する。「金融取引」は、カード決済や、銀行口座からの入出金などを含む。
【0035】
本明細書において、「文字」は、コードを構成する構成要素であって、大文字のアルファベット、小文字のアルファベット、数字及び特殊文字などの全部又は一部を含む。
【0036】
本明細書において、「コード」は、文字が羅列された文字列を意味する。
【0037】
本明細書において、「仮想コード」は、仮想コード生成手段で生成されるコードであって、仮想コード検証手段でユーザ認証を行うために用いられるコードを意味する。すなわち、「仮想コード」は、ユーザ情報を抽出し、検証することができるように単位カウントごとに一時的に付与された仮想のコードを意味する。
【0038】
本明細書において、「詳細コード」は、仮想コードに含まれる一部のコードを意味する。具体的には、本明細書は、複数の詳細コードのそれぞれを第1コード、第2コードなどと呼ぶ。複数のUIDの探索のために複数の詳細コードが順次使用されるが、本明細書では、詳細コードを修飾する数字が大きいほど先に使用されると説明する。例えば、仮想コードが第1乃至第4コードからなる場合、複数のUIDの探索のために第3及び第4コードが最も先に使用され、その後順次に第2及び第1コードが使用される。
【0039】
本明細書において、「単位カウント」は、特定の時間間隔に設定され、時間間隔が経過するにつれて変更されるものと定義された単位である。例えば、1カウントは、特定の時間間隔(例えば1.5秒)に設定されて使用されることができる。
【0040】
本明細書において、「仮想コード生成関数」は、仮想コードを生成するために用いられる関数を意味する。
【0041】
本明細書において、「転がり移動」は、対象体が回転しながら並進運動を行うことを意味する。すなわち、「転がり移動」は、回転運動と並進運動を一緒に行いながら移動することであって、回転する対象体の各地点が移動する軸上に順次接しながら移動することを意味する。
【0042】
本明細書において、「制御命令」は、仮想コード検証手段で実行可能な全ての制御を意味する。例えば、「制御命令」は、「ユーザ認証」、「特定の資源に対する使用権限の付与」などを含むことができる。より正確には、「ユーザの権限の認証」、「特定の資源に対する使用権限の付与」などのように、仮想コード検証手段における「権限検証」を介して「制御命令」が行われる。
【0043】
「制御命令」の種類は、「制御命令情報」によって定義され、仮想コード検証手段は、仮想コードを用いて「制御命令情報」を抽出し、これに対応する「制御命令」を実行する。
【0044】
本明細書において、「ユーザ認証」とは、特定のユーザに「アクセス権限」を付与することであり、出入り、ログイン、金融取引など、セキュリティが要求される領域にユーザが通過したり、特定の物体の機能を実行したりすることができるように承認する手順を意味する。
【0045】
また、本明細書において、「ユーザ認証」は、「制御命令情報」によって定義される「制御命令」の一種類であり得る。本明細書において、「アクセス権限」は、ユーザ認証を介して付与される権限であり、ユーザに特定の物体に対する「アクセス権限」が付与される場合、ユーザは、特定の物体に含まれている物理的機能を使用することができる状態になる。「アクセス権限」が付与されることにより、使用することが可能な物理的機能は、物体の種類によって異なり得る。アクセス権限の種類については後述する。
【0046】
本明細書において、「特定の資源に対する使用権限の付与」とは、ユーザが購入した分だけの電気、ガス、水道などを使用することができるように制御することを意味する。本明細書において、「特定の資源に対する使用権限の付与」は、「制御命令」の一種類であり得る。
【0047】
本明細書において、「UID(user identification)」は、ユーザを識別するためにユーザごとに重複しないように付与される固有のコード形式の値を意味する。
【0048】
本明細書において、「保存位置」は、ユーザによってUID登録が要求された時点に相当するトラック上の地点(カウント)を意味する。
【0049】
本明細書において、「権限情報」とは、「制御命令情報」によって定義される情報であって、「アクセス権限」、ユーザが購入した数量などを限定する情報である。例えば、「権限情報」は、有効期間、アクセス権限の種類などを定義することができる。他の例を挙げれば、「権限情報」は、ユーザが販売者を介して購入した電気、ガスなどの充電量であり得る。
【0050】
本明細書において、「ユーザ情報」とは、ユーザが仮想コード生成装置及び仮想コード検証装置に登録したUID、ユーザの個人情報、仮想コード生成装置の固有値及び仮想コード検証装置の固有値のうちの少なくとも一つを意味する。
【0051】
以下、添付図面を参照して本発明の実施形態を詳細に説明する。
【0052】
図1は本発明の一実施形態による仮想コードを用いた制御システムの構成図である。
【0053】
図1に示すように、制御システムは、仮想コード生成手段10、仮想コード受信手段20、仮想コード検証手段30及びサーバ40を含む。ただし、前記制御システムは、サーバ40を含まなくてもよい。
【0054】
仮想コード生成手段10は、仮想コードを生成するための専用プログラム又は専用アプリケーション(以下、専用プログラム11)が内蔵又はインストールされている装置を意味する。より具体的には、仮想コード生成手段10は、仮想コード検証手段30へのアクセス権限を他人に付与するユーザの端末、又は販売者サーバであり得る。
【0055】
一実施形態において、仮想コード生成手段10は、一時的及び/又は制限的アクセス権限が付与された仮想コードを他の装置へ伝送することができる。後述する仮想コード検証手段30は、前記仮想コードを用いてユーザ認証を行うことができる。
【0056】
他の一実施形態において、仮想コード生成手段10は、販売者サーバであり得る。ユーザは、販売者サーバから所定の商品を購入する。例えば、ユーザは、販売者サーバを介して電気、ガス、水道などに対する使用権限を購入することができる。販売者サーバは、ユーザが購入した分だけ電気、ガス、水道などを使用することができるように仮想コードを発行する。
【0057】
他の例を挙げれば、ユーザは、販売者サーバを介してデータ使用権限を購入することができる。販売者サーバは、ユーザが購入した分だけデータを使用することができるように仮想コードを発行する。
【0058】
一実施形態として、仮想コード生成手段10は、後述する仮想コード検証手段30又はサーバ40に初期登録できる。仮想コード生成手段10を初期登録する方法については後述する。ただし、仮想コード生成手段10が必ずしも仮想コード検証手段30に初期登録される必要はなく、仮想コード検証手段30の出庫時に仮想コード生成手段10が登録された状態で出庫されることができる。
【0059】
また、一実施形態として、専用プログラム11は、少なくとも一つのUIDを用いて仮想コードを生成する役割を果たす。ここで、UIDは、仮想コード生成手段10及びサーバ40の両方に保存された情報であってもよく、前記UIDの保存位置には権限情報がマッチングされて保存されることができる。
【0060】
一方、UIDは、必ずしも仮想コード生成手段10に内蔵されたメモリに保存される必要はない。例えば、UIDは、別途の無線通信が可能なカード又はウェアラブル装置内に保存されてもよく、ユーザは、UIDの保存された端末がUIDを仮想コード生成手段10へ伝送されるようにすることにより、仮想コード生成手段10が仮想コードを生成するようにすることができる。
【0061】
一方、専用プログラム11は、仮想コード生成関数を含めてUIDを用いて仮想コードを生成する。例えば、専用プログラム11は、UIDを仮想コード生成関数のシードデータとして用いて仮想コードを生成する。
【0062】
ここで、専用プログラム11は、複数のUIDを活用して仮想コードを生成することができる。具体的には、専用プログラム11は、複数のUIDのうちのいずれか一つが他の一つを探索するのに活用できるように、仮想コードを生成する。これにより、専用プログラム11は、一つの仮想コードを用いて複数のUIDを段階的に探索することができる仮想コードを生成する。これについての具体的な説明は後述する。
【0063】
一方、専用プログラム11は、仮想コード生成手段の固有値又は仮想コード検証手段の固有値をシードデータとして仮想コードを生成することができる。本明細書で説明する複数のUIDのうちの少なくとも一つは、ユーザ情報に置き換えられ得る。
【0064】
一実施形態において、専用プログラム11は、車両、ドアロック、販売者サーバ又は端末のシリアル番号をシードデータとして仮想コードを生成することができる。ただし、これに限定されず、専用プログラム11は、様々なデータをシードデータとして仮想コードを生成することができる。これについては後述する。
【0065】
また、一実施形態として、専用プログラム11は、仮想コード生成手段10を仮想コード検証手段30又はサーバ40に登録する役割を果たす。すなわち、ユーザは仮想コード生成手段10(すなわち、ユーザ端末)に専用プログラム11をインストールし、専用プログラム11は仮想コード検証手段30又はサーバ40にUIDを伝送して登録する。ただし、これに限定されず、専用プログラム11は、工場出庫の際に仮想コード生成手段10に内蔵されたプログラムであってもよい。
【0066】
具体例として、専用プログラム11は、登録時にユーザからUIDの入力を受けるか、或いはユーザの専用プログラム11のログイン情報に基づいてユーザ情報を生成する。その後、専用プログラム11は、ユーザ情報を仮想コード検証手段30又はサーバ40へ伝送する。仮想コード検証手段30又はサーバ40が特定のカウントにUIDを登録することにより、専用プログラム11は、仮想コード検証手段30又はサーバ40から仮想コード生成関数、又は仮想コード生成関数を特定するための設定データを受信する。これにより、専用プログラム11は、仮想コード検証手段30又はサーバ40内にユーザ情報が登録された特定のカウントの探索が可能な仮想コードを生成する仮想コード生成関数を含むことができる。
【0067】
一実施形態において、仮想コード生成手段10は、仮想コードを含むテキストメッセージを仮想コード受信手段20へ伝達することができる。仮想コード生成手段10のユーザは、仮想コード受信手段20のユーザにアクセス権限を付与したい時間帯に仮想コード受信手段20へテキストメッセージを送信することができる。
【0068】
他の一実施形態において、近距離通信(例えば、NFC通信)を介して仮想コード受信手段20へ伝達することができる。この場合、仮想コード生成手段10のユーザは、仮想コード受信手段20との接触を介して仮想コードを伝達することができる。
【0069】
他の一実施形態において、仮想コード生成手段10は、生成された仮想コードを仮想コード受信手段20へ伝達せず、仮想コード生成手段10に備えられた表示手段又は印刷手段を介して生成された仮想コードを出力することができる。ユーザは、出力された仮想コードを仮想コード検証手段30に直接入力することができる。この場合、本発明によるシステムは、仮想コード受信手段20を含まなくてもよい。
【0070】
仮想コード受信手段20に含まれている通信部は、仮想コード生成手段10及びサーバ40と通信して仮想コードを送受信する役割を果たす。ここで、通信部の無線通信方式としては、NFC(Near Field Communication)だけでなく、ブルートゥース(Bluetooth)、BLE(Bluetooth Low Energy)、ビーコン(Beacon)、RFID(Radio Frequency Identification)、赤外線通信(Infrared Data Association;IrDA))、UWB(Ultra Wideband)、ZigBeeなどが用いられることもできる。
【0071】
具体例として、通信部は、ICチップに接続されるNFC(Near Field Communication)通信部(例えば、NFCアンテナ)であり得る。例えば、仮想コード受信手段20のユーザは、仮想コード検証手段30にタグ付けすることにより、受信された仮想コードを仮想コード検証手段30へ送信することができる。
【0072】
他の例を挙げれば、仮想コード受信手段20は、仮想コードを受信(例えば、テキストメッセージとして受信)して、仮想コード受信手段20に含まれているディスプレイ部に受信された仮想コードを表示する。仮想コード受信手段20のユーザは、ディスプレイ部に表示された仮想コードを仮想コード検証手段30に入力することにより、ユーザ認証を行うことができる。
【0073】
仮想コード検証手段30は、仮想コード生成手段10のユーザが他人にユーザ認証権限を付与する対象であって、仮想コードの伝達を受けた他人は、仮想コードを用いて仮想コード検証手段30へのアクセス権限を得ることができる。
【0074】
例えば、仮想コード検証手段30は、金融取引装置、モバイル端末、車両、ドアロックなどであり得る。ただし、これに限定されず、仮想コード検証手段30は、ユーザ認証を介してアクセス権限の付与を受けることができる全ての装置を含む。
【0075】
一方、仮想コードは、仮想コード検証手段30へのアクセス権限に限定して用いられるのではない。仮想コードに基づいて、それぞれのUIDにマッチングされる情報は様々であり得る。したがって、マッチングされた情報に基づいて、仮想コード検証手段30は、ユーザ認証、金融取引承認、手順承認などの様々な権限を承認することができる。例えば、仮想コードが「ユーザ識別情報」、「特定の手順に対する権限情報」、「権限タイプ」、「権限の維持期間」などをシードデータにして生成されたと仮定する。このとき、仮想コード検証手段30は、仮想コードに基づいて、アクセス権限を付与するのではなく、仮想コードに含まれている情報に相応する権限をユーザに付与する。つまり、仮想コードを介してユーザが取得するものは、「アクセス権限」に限定されない。
【0076】
仮想コード検証手段30は、仮想コードを受信して、仮想コードに対応する制御命令を実行する。
【0077】
一方、上述したように、一実施形態によって、仮想コードは、仮想コード検証手段30自体に対する制御命令情報を含まないことができる。複数のユーザ情報、例えば生体データ、特定のカードデータ、住民登録番号、携帯電話番号などのシードデータに基づいて生成されることができる。したがって、仮想コード検証手段30は、上述した複数のユーザ情報に基づいて生成された場合には、ユーザを検証して認証する過程のみを行うものであり、特定の制御命令を実行するものではない。ところが、本明細書では、発明の理解を助けるために、ユーザの仮想コード生成手段10を介して生成された仮想コードを用いて仮想コード検証手段30に対する制御命令を実行すると説明する。しかし、このような説明が本発明を限定するものではない。
【0078】
一実施形態において、制御命令は、ユーザ認証を行うものであり得る。仮想コード検証手段30は、仮想コードを受信してユーザ認証を直接行うか、或いは仮想コードをサーバに伝達してサーバを介してユーザ認証が行われるようにする。
【0079】
他の一実施形態において、制御命令情報に対応する制御を行う装置が計量器である場合、前記制御命令情報は、電力、ガス、水道の充電量であり得る。計量器は、制御命令情報が定義する充電量だけ電気、ガス、水道などを使用することができるように制御する。ただし、制御命令情報が定義する制御の種類は、これに限定されない。
【0080】
別の一実施形態において、制御命令情報に対応する制御を行う装置がパーソナルモビリティである場合、前記制御命令情報は、当該パーソナルモビリティの動作、利用可能時間であり得る。パーソナルモビリティは、制御命令情報が定義する利用可能時間だけ、制御命令情報が定義する動作に限って使用することができるように制御する。
【0081】
別の一実施形態において、制御命令情報に対応する制御を行う装置がカーシェアリングサービス分野における自動車である場合、前記制御命令情報は、自動車のアクセス、始動、利用時間などであり得る。自動車は、制御命令情報が定義する利用時間の間又は利用時間内にユーザが自動車にアクセスし、自動車に対する始動などの制御命令を出すことができるようにする。
【0082】
仮想コード検証手段30は、仮想コードを受信し、前記仮想コードに基づいて、複数のUIDが保存されている位置を順次探索する。前記保存位置を探索する方法については後述する。その後、仮想コード検証手段30は、探索されたUIDに基づいて制御命令を実行する。
【0083】
他の一実施形態において、仮想コード検証手段30は、仮想コードを受信し、受信された仮想コードをサーバ40へ送信する。サーバ40は、仮想コードを受信し、前記仮想コードに基づいて、UIDを保存した保存位置を探索する。その後、サーバ40は、探索されたUIDに基づいてユーザ認証を行い、ユーザ認証の如何を仮想コード検証手段30へ送信する。
【0084】
一方、仮想コード検証手段30自体がサーバ40であってもよい。一実施形態において、仮想コード生成装置100のユーザは、専用プログラム11を介して仮想コード生成装置100を仮想コード検証手段30に登録し、仮想コード検証手段30は、ユーザ情報を、仮想コード検証手段30に含まれているメモリに保存することができる。
【0085】
他の一実施形態において、本発明によるシステムは、サーバ40を含まなくてもよい。仮想コード検証手段30は、仮想コードを受信し、仮想コードからUIDの保存位置を探索する。その後、仮想コード検証手段30は、探索されたUIDの保存位置にマッチングされて保存された制御命令情報を抽出し、抽出された制御命令情報に対応する制御を行う。
【0086】
仮想コード検証手段30は、UIDの保存位置を探索した後、UIDにマッチングされて保存された制御命令情報を抽出する。ここで、仮想コード検証手段30は、既に設定された周期ごとに、UIDにマッチングされて保存された制御命令情報を変更する。
【0087】
特に明記しない限り、本明細書では、仮想コードに基づく制御命令情報の抽出が仮想コード検証手段30で行われてもよく、サーバ40で行われてもよいと説明する。つまり、仮想コード検証手段30及びサーバ40のうちのいずれか一方から仮想コードに基づく制御命令情報を抽出する実施形態は、もう一方にも適用できることが自明である。
【0088】
仮想コード検証手段30は、通信部を含み、通信部は、仮想コード生成手段10、仮想コード受信手段20及びサーバ40と通信して仮想コードを送受信し、これをユーザ認証の実行に活用することができるようにする。ここで、通信部の無線通信方式としては、NFC(Near Field Communication)だけでなく、ブルートゥース(Bluetooth)(登録商標)、BLE(Bluetooth Low Energy)、ビーコン(Beacon)、RFID(Radio Frequency Identification)、赤外線通信(Infrared Data Association;IrDA)、UWB(Ultra Wideband)、ZigBeeなどが用いられることもできる。ただし、これに限定されず、仮想コード検証手段30は、遠距離無線通信のための通信モジュールを備えることができる。ただし、これに限定されず、仮想コード検証手段は通信部を含まなくてもよい。
【0089】
一実施形態において、仮想コード検証手段30は、ユーザ認証を介してアクセス権限を付与する。アクセス権限は、仮想コード検証手段30の種類によって変わり得る。一実施形態において、仮想コード検証手段30が車両である場合、アクセス権限は車両内部出入権限権であってもよく、車両内部出入権限が付与される場合、車両は車両のドアロックを解除してユーザが車両の内部に進入できるようにする。
【0090】
例えば、上述したカーシェアリング(Car Sharing)サービス分野だけでなく、特定のユーザに対する他人のアクセス権限を付与するものであり得る。より具体的には、仮想コード検証手段30が自動車であると仮定すると、自動車に対する洗車、修理などのサービスの提供を受けることができるようにユーザ認証を介してアクセス権限を付与することができる。
【0091】
他の一実施形態において、仮想コード検証手段30がドアロックである場合、アクセス権限は建物内部出入権限であってもよく、建物内部出入権限が付与される場合、建物は建物のドアロックを解除してユーザが建物の内部に進入できるようにする。
【0092】
他の一実施形態において、仮想コード検証手段30がモバイル端末である場合、アクセス権限はモバイル端末の使用権限であってもよく、モバイル端末の使用権限が付与される場合、モバイル端末は、端末のロック状態を解除して、ユーザがモバイル端末に内蔵された機能を用いることができる状態になる。
【0093】
他の一実施形態において、仮想コード検証手段30が電気、ガス、水道などの計量器である場合、仮想コード検証手段30は、ユーザが抽出された制御命令情報に対応する使用量だけ電気、ガス、水道などを使用することができるようにする。
【0094】
一方、仮想コード検証手段30のアクセス権限は、段階的に付与できる。一実施形態において、仮想コード検証手段30が車両である場合、車両へのアクセス権限は、車両内部アクセス権限、車両始動権限、車両運転権限を含むことができる。車両始動権限は、車両の始動をかけて、車両内に備えられた装置を利用することはできるが、車両の運転ができない権限であって、当該権限のみ付与された場合、車両は移動しない。また、車両運転権限は、車両運転を含む車両の全ての機能を使用することができる権限である。ユーザは、他人に上述した種類の権限を選択的に付与することができる。
【0095】
他の一実施形態において、仮想コード検証手段30がモバイル端末である場合、アクセス権限は、モバイル端末に備えられたアプリケーションごとに付与されてもよい。例えば、ユーザは、モバイル端末に備えられたカメラアプリケーションへのアクセス権限のみを他人に付与することができる。
【0096】
一方、仮想コード生成手段10のユーザは、仮想コード検証手段30へのアクセス権限が付与される時間帯を設定することができる。一実施形態において、仮想コード生成手段10のユーザは、仮想コード生成手段10を介して仮想コード検証手段30又はサーバ40に有効期間情報を送信し、仮想コード検証手段30又はサーバ40は、有効期間情報を予め保存されたUIDと一致させて保存する。その後、仮想コード検証手段30又はサーバ40は、保存された有効期間情報に基づいて、ユーザ認証の如何を決定する。これについては後述する。
【0097】
サーバ40は、仮想コードを受信して制御命令情報を抽出する役割を果たす。このために、ユーザは、仮想コード生成手段10を介して、UIDをサーバ40に初期登録する。
【0098】
一実施形態において、ユーザは、専用プログラム11を介してUIDをサーバ40へ送信することができる。その後、ユーザは、専用プログラム11を介して、権限情報をサーバ40に保存されたUIDとマッチングさせて保存することができる。サーバ40は、UIDの保存位置とマッチングさせて権限情報を保存することができる。
【0099】
一実施形態において、UIDは、仮想コード生成手段10が仮想コードを生成するにあたり、シードデータとして活用できる。
【0100】
サーバ40は、仮想コード生成手段10で生成された仮想コードに基づいて、サーバ40内にUIDが保存された位置を探索し、仮想コードを受信した時点と、仮想コード生成手段10で仮想コードが生成された時点に基づいて仮想コードを検証する。仮想コードを検証し、設定情報を抽出してユーザ認証を行う方式については後述する。
【0101】
図2は本発明の一実施形態による仮想コード生成装置の構成図である。
【0102】
図2に示すように、仮想コード生成装置100は、詳細コード生成部110、仮想コード生成部120及び仮想コード提供部130を含む。
【0103】
仮想コード生成装置100は、一実施形態として、仮想コードを生成するプログラム(すなわち、アプリケーション)がインストールされたユーザ端末であり得る。仮想コード生成装置100は、上述した仮想コード生成手段10である。
【0104】
詳細コード生成部110は、ユーザ情報に基づいて一つ以上の詳細コードを生成する役割を果たす。
【0105】
仮想コード生成関数は、一つ以上の詳細コード生成関数を含む。例えば、仮想コードが複数の詳細コードを含む場合、仮想コード生成関数は、複数の詳細コード生成関数を用いて複数の詳細コードを生成し、複数の詳細コードを結合する詳細コード結合関数を用いて仮想コードを生成する。
【0106】
ここで、仮想コードは、仮想コード生成装置100、すなわち、ユーザ端末の内部に内蔵又はインストールされた専用プログラム11によって単位カウントごとに生成されるものであって、モバイルOTP(mobile one time password、mOTP)を意味する。
【0107】
一実施形態として、仮想コード生成装置100は、仮想コード生成装置100に保存されたユーザ情報のうちの少なくとも一部を仮想コード生成関数のシードデータの一つとして用いることができる。具体例として、詳細コード生成部110は、一つの詳細コード生成関数を用いてUIDを各詳細コード生成関数のシードデータにしてそれぞれの詳細コードを生成する。このとき、詳細コード生成部110は、ユーザからユーザ認証が要求された時点又はカウント値も用いてそれぞれの詳細コードを生成することができる。
【0108】
一実施形態として、詳細コード生成部110は、詳細コード生成関数として第1関数と第2関数とを含むことで、第1コード及び第2コードを生成することができる。このとき、仮想コード生成装置100は、セキュリティ性を高めるために、第1コードを生成する第1関数と第2コードを生成する第2関数とを詳細コード生成関数として含むだけであり、第1コードと第2コードとの相関関係に関するデータは含まないことができる。
【0109】
仮想コード生成部120は、仮想コード生成関数を用いて一つ以上の詳細コードを組み合わせて仮想コードに生成する役割を果たす。一実施形態として、仮想コードは、複数の詳細コードを特定した規則に従って結合して生成される。仮想コード生成関数は、複数の詳細コードを組み合わせる規則(すなわち、詳細コード結合関数)を含む。すなわち、仮想コード生成部120は、一つ以上の詳細コードを、仮想コード生成関数に含まれている詳細コード結合関数を用いて組み合わせることができる。
【0110】
複数の詳細コードを結合して一つの仮想コードを生成する方式としては、様々な方式が適用できる。詳細コード結合関数の一例として、仮想コード生成部120は、N桁の第1コードとN桁の第2コードを交互に配置する方式で仮想コードを生成することができる。また、他の一例として、詳細コード結合関数は、第1コードの後ろに第2コードを結合する関数であり得る。仮想コードに含まれる詳細コードが増えるにつれて、詳細コード結合関数も多様に生成できる。
【0111】
また、一実施形態として、仮想コードが第1コード及び第2コードの特定の規則による組み合わせで生成される場合、第1コードと第2コードは、ユーザ情報が保存された保存位置探索アルゴリズム内のUIDの保存位置を探索するためのそれぞれの役割を果たすことができる。例えば、第1コードは保存位置探索の開始地点を設定し、第2コードは特定の探索方式に従って前記開始地点から前記UIDの保存位置への探索経路を設定する。すなわち、仮想コード生成装置100で単位カウントごとに正常に生成された仮想コードが提供されると、仮想コード検証装置200は、第1コードに対応する探索開始地点から第2コードに相応する探索経路に沿って移動した地点を、ユーザ情報が保存された地点(すなわち、UIDの保存位置)と判断する。仮想コードを構成する第1コードと第2コードに基づいてUIDの保存位置を探索する具体的な方式については後述する。
【0112】
一方、詳細コード生成部110は、3つ以上の詳細コードを生成することができる。一実施形態として、詳細コード生成部110は、詳細コード生成関数として第1~第4関数を含むことにより、第1~第4コードを生成することができる。この場合、仮想コード生成装置100は、セキュリティ性を高めるためにそれぞれのコードを生成する関数を詳細コード生成関数として含むだけであり、第1~第4コードの相関関係に関するデータは含まないことができる。
【0113】
詳細コード生成部110が詳細コードを生成する方式の一実施形態として、詳細コード生成部110は単位カウントごとに新しい詳細コードを生成し、これにより、仮想コード生成装置100は単位カウントごとに新しい仮想コードを生成する。単位カウントごとに新規に生成される仮想コードは、重複して生成されない。具体的には、詳細コード生成部110は、単位カウントごとに新規に生成される仮想コードが特定のユーザ又は特定の仮想コード生成装置100に定められた期間の間に重複生成されないだけでなく、特定のグループに属するユーザの間でも重複生成されないように設定されることができる。
【0114】
仮想コードの重複生成を防止する具体的な一実施形態として、M個の文字でN桁の第1コード又は第2コードを生成する場合、仮想コード生成関数に含まれる詳細コード生成関数は、MN個のコードを第1コード又は第2コードとして生成することができ、それぞれのコードを、詳細コード生成関数が駆動される初期時点からカウントごとにマッチングする。例えば、単位カウントを1秒に設定する場合、詳細コード生成関数が最初に駆動された時点から秒ごとに異なるMN個のコードをマッチングする。そして、特定の詳細コード生成関数を用いる周期又は仮想コード生成装置100の使用周期(例えば、仮想コードを生成するアプリケーションがインストールされたユーザ端末の有効期間)をMNカウントに相当する時間長(例えば、1カウントが1秒である場合、MN秒)よりも短い時間長に設定すると、第1コード又は第2コードは、使用期間の間に同じコードが重複生成されない。すなわち、時間が経つにつれてカウントが増加するとき、ユーザが特定の時点で仮想コード生成装置100に仮想コード生成要求をする場合、仮想コード生成装置100は、特定の時点に対応するカウントにマッチングされたコード値を第1コード又は第2コードとして生成することができる。
【0115】
具体的には、アルファベットの大文字と0から9までの数字をコードに含めることが可能な文字として使用(すなわち、36個の文字を使用)し、第1コードと第2コードにそれぞれ6桁を割り当てる場合、仮想コード生成装置100は、第1コード及び第2コードとして366個のコードを提供することができる。このとき、仮想コード生成装置100は、それぞれのコードをカウントごとにマッチングさせて、カウントごとに変更された第1コード及び第2コードを提供することができる。
【0116】
仮想コードの重複生成を防止する具体的な他の一実施形態として、仮想コード生成装置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回ずつ適用することが可能な使用周期を経過した後、仮想コード生成関数の調節又は更新によって以前の使用周期と重なる仮想コードが生成されない新規の使用周期の仮想コード生成関数を適用することができる。
【0117】
また、仮想コードの重複生成を防止する具体的な別の一実施形態として、全体周期でユーザとは無関係に重複した仮想コードが発生しないように、第1コードは、第1関数が駆動される初期時点からカウントごとにマッチングされたコードのうち、仮想コードの生成が要求された時点(又はカウント)に対応するコード値に設定し、第2コードは、同一時点で常に異なるように存在する値(例えば、UID)を反映して生成されるコード値に設定し、仮想コードを、前記第1コードと第2コードとが結合されたコード値として用いることができる。第1コードはカウントごとに異なるコード値となり、第2コードは同一時点でUIDごとに異なるコード値となるため、第1コードと第2コードとが結合された仮想コードは、全ての時点で異なるコード値が出力される。
【0118】
また、他の一実施形態として、前記仮想コード生成関数(又は詳細コード生成関数)は、M個の文字を昇順に並べる多数の羅列規則のうちのいずれか一つが適用される。すなわち、仮想コード生成装置100は、仮想コード生成関数内に含まれる詳細コード生成関数にM個の文字を昇順に並べる規則を多様に適用することができる。例えば、アルファベットの大文字を昇順に並べる羅列規則は、一般的な順序であるA、B、C、...、Zの順序になることができ、A、C、B、…、Zの順序になることもできる。仮想コード生成関数で羅列規則が変わるにつれて、仮想コード生成関数が駆動される初期時点から各カウントに順次コードがマッチングされる順序が変わる。
【0119】
一方、仮想コードは、複数のUIDをシードデータにして形成されることができる。具体的には、仮想コード生成装置100は、複数のUIDのそれぞれを用いて詳細コードを形成する。本明細書では、説明の便宜のために、4つの詳細コードを用いて3つのUIDの保存位置を探索する方法について説明するが、このような探索方式が他の個数の詳細コードにも適用できるのは、通常の技術者には自明である。例えば、以下に説明する探索方法は、第1~第3コードに基づいて第1及び第2UIDの保存位置を探索する方法にも適用できる。
【0120】
一実施形態において、仮想コード生成装置100は、第1~第3UIDを用いて第1~第4コードを形成する。
【0121】
第3コードは、第3UID保存位置探索の開始地点を設定し、第4コードは、特定の探索方式に従って前記開始地点から第3UIDの保存位置への探索経路を設定する。
【0122】
一方、第2コードは、第2UID保存位置探索の開始地点を設定し、第3UID、又は第3UIDにマッチングされて保存されたコードは、特定の探索方式に従って前記開始地点から第2UIDの保存位置への探索経路を設定する。
【0123】
一方、第1コードは、第1UID保存位置探索の開始地点を設定し、第2UID、又は第2UIDにマッチングされて保存されたコードは、特定の探索方式に従って前記開始地点から第1UIDの保存位置への探索経路を設定する。
【0124】
上述した方式で仮想コードを形成する場合、第1~第4コードのうちのいずれか一つが異常を示す場合、第1UIDの保存位置を探索することができなくなる。後述する仮想コード検証装置200は、第1UID、又は第1UIDにマッチングされて保存されたデータを用いて仮想コードの有効性を検証することにより、仮想コードのセキュリティ性を向上させることができる。
【0125】
一方、複数のUIDのそれぞれには、設定情報(例えば、権限情報、制御命令情報)、ユーザ情報、及び他のUIDの探索経路を設定するコードのうちの少なくとも一つがマッチングされて保存されるか、或いはUID自体が制御命令情報、ユーザ情報及び他のUIDの探索経路を設定するコードのうちの少なくとも一つを含むことができる。
【0126】
一実施形態において、仮想コード生成装置100は、第1~第3UIDをシードデータにして仮想コードを生成することができる。それぞれのUIDは、仮想コード生成装置100及び仮想コード検証装置200の両方に保存されたUIDであり得る。第3UIDには、第2UIDの保存位置への探索経路を設定するコード、及びユーザに付与する権限の種類を定義する情報がマッチングされて保存される。第2UIDには、第1UIDの保存位置への探索経路を設定するコード、及びユーザに権限を付与する有効時間を定義する情報がマッチングされて保存される。第1UIDには、仮想コード検証装置200の固有値がマッチングされて保存される。後述する仮想コード検証装置200は、仮想コードから第1UIDの保存位置を探索した後、第1UIDにマッチングされて保存された固有値が仮想コード検証装置200の固有値と一致する場合にのみ、受信された仮想コードが有効であると判断することができる。これについては後述する。
【0127】
他の一実施形態において、仮想コード生成装置100は、第1~第3UIDをシードデータにして仮想コードを生成することができる。それぞれのUIDは、仮想コード生成装置100及び仮想コード検証装置200の両方に保存されたUIDであり得る。第3UIDには、ユーザに付与する権限の種類を定義する情報がマッチングされて保存され、第2UIDの保存位置への探索経路を設定するのに活用される。第2UIDには、ユーザに権限を付与する有効時間を定義する情報がマッチングされて保存され、第1UIDの保存位置への探索経路を設定するのに活用する。第1UIDには、仮想コード検証装置200の固有値がマッチングされて保存される。後述する仮想コード検証装置200は、仮想コードから第1UIDの保存位置を探索した後、第1UIDにマッチングされて保存された固有値が仮想コード検証装置200の固有値と一致する場合にのみ、受信された仮想コードが有効であると判断することができる。これについては後述する。
【0128】
一方、上述した一実施形態の場合、第1~第4UIDに基づいて説明したが、場合によって、ユーザはさらに多くのUIDの付与を受けることができる。例えば、ユーザが第1~第NUIDの付与を受けた場合(Nは、2以上の自然数)を仮定する。このとき、N-1コードは、第N-1UID保存位置探索の開始地点を設定し、N UID、又はN UIDにマッチングされて保存されたコードは、特定の方式に従って前記開始地点から第N-1 UIDの保存位置への探索経路を設定する。
【0129】
一方、本発明の一実施形態として、複数のUIDの順序は、マッチングされる情報の重要度に基づいて設定された順序に従って設定されることができる。例えば、ユーザ認証情報、権限情報及び権限有効時間情報の場合、第1UIDにはユーザ認証情報がマッチングされて保存され、第2UIDには権限情報がマッチングされて保存され、第3UIDには権限有効時間情報がマッチングされて保存されることができる。一方、既に設定された順序は、ユーザが複数のUIDの付与を受けるとき、サーバ40又は仮想コード検証装置200によって設定されることができる。
【0130】
他の一実施形態において、仮想コード生成装置100は、仮想コード生成要求の際に既に保存された権限情報又はユーザから権限情報の設定を受けた後、既に保存された仮想コード検証装置200の固有値及び権限情報をシードデータにして仮想コードを生成する。具体的には、ユーザに付与する権限の種類を定義する情報は、ユーザに権限を付与する有効時間を定義する情報の保存位置への探索経路を設定する。ユーザに権限を付与する有効時間を定義する情報は、仮想コード検証装置200の固有値の保存位置への探索経路を設定する。後述する仮想コード検証装置200は、仮想コードから固有値を探索した後、探索された固有値が仮想コード検証装置200の固有値と一致する場合にのみ、受信された仮想コードが有効であると判断することができる。これについては後述する。
【0131】
それぞれのUIDは、仮想コード生成装置100及び仮想コード検証装置200の両方に保存されたUIDであり得る。第3UIDには、ユーザに付与する権限の種類を定義する情報がマッチングされて保存され、第2UIDの保存位置への探索経路を設定するのに活用される。第2UIDには、ユーザに権限を付与する有効時間を定義する情報がマッチングされて保存され、第1UIDの保存位置への探索経路を設定するのに活用する。第1UIDには、仮想コード検証装置200の固有値がマッチングされて保存される。後述する仮想コード検証装置200は、仮想コードから第1UIDの保存位置を探索した後、第1UIDにマッチングされて保存された固有値が仮想コード検証装置200の固有値と一致する場合にのみ、受信された仮想コードが有効であると判断することができる。これについては後述する。
【0132】
一方、仮想コード生成装置100は、仮想コード生成要求がある場合、ユーザから権限情報の設定を受けることができる。設定情報は、2つの異なる方式で活用できる。
【0133】
第一に、仮想コード生成装置100は、仮想コード生成要求がある場合、ユーザから権限情報、ユーザ情報などの入力を受けて設定した後、リアルタイムで仮想コード検証装置200へ伝送することができる。仮想コード検証装置200は、受信した設定情報を複数のUIDのうちの少なくとも一つにマッチングさせて保存する。すなわち、ユーザが仮想コード生成装置100に設定した情報を複数のUIDのうちの少なくとも一つにマッチングさせて保存する。一方、複数の設定情報のうちの少なくとも一つの設定情報は、ユーザの入力によって設定されたものではなくてもよい。例えば、仮想コード検証装置200の識別値のように、仮想コード検証装置200内に既に設定された値の場合には、ユーザによって入力された残りの設定情報と共にリアルタイムで仮想コード検証装置200へ伝送されることができる。
【0134】
第二に、仮想コード生成装置100は、ユーザから入力された設定情報を仮想コードが含まれるようにすることができる。後述する仮想コード検証装置200は、事前に特定の権限に対応する権限コードを保存し、仮想コードに、ユーザによって設定された特定の権限コードが含まれる場合、当該権限コードに対応する権限を付与することができる。このために、仮想コードは権限コード領域を含むことができる。権限情報が含まれている仮想コードについては後述する。
【0135】
他の一実施形態において、仮想コード生成装置100がユーザから設定情報の入力を受けていない場合に、仮想コード生成装置100は、特定のコードを含む仮想コードを生成することができる。例えば、ユーザによって権限コードの設定を受けていない場合には、前記権限コード領域に特定のコード(例えば、NULL)を含む仮想コードを生成することができる。仮想コード検証装置200は、前記権限情報を定義する領域に特定のコードが含まれている場合、仮想コードからUIDを抽出し、抽出されたUIDにマッチングされて保存された権限情報に基づいて権限を付与することができる。
【0136】
他の一実施形態において、仮想コード生成装置100は、ユーザから仮想コード生成要求がある場合、仮想コード検証装置200との通信可否を判断する。仮想コード検証装置200との通信が困難である場合、ユーザから設定(例えば、権限情報)の入力を受け、入力された設定情報が含まれている仮想コードを生成することができる。これにより、本発明は、仮想コード生成装置100と仮想コード検証装置200との間の通信が困難である場合でも、制限されたアクセス権限を付与することができる。
【0137】
仮想コード提供部130は、生成された仮想コードを仮想コード受信手段20に提供してユーザ認証を進める役割を果たす。
【0138】
図3は本発明の一実施形態による仮想コード検証装置の構成図である。
【0139】
仮想コード検証装置200は、上述した仮想コード検証手段30又はサーバ40であり得る。
【0140】
図3に示すように、仮想コード検証装置200は、仮想コード受信部210、詳細コード抽出部220、保存位置探索部230、制御命令情報抽出部240、仮想コード検証部250及び制御部260を含む。
【0141】
ここで、仮想コード検証装置200は、仮想コードに基づいて複数のUIDを抽出し、仮想コードに基づいて受信された仮想コードが正常なコードであるか否かを判断してユーザ認証を行う。
【0142】
仮想コード受信部210は、仮想コード提供部130から提供された仮想コードに基づいてユーザ認証の要求を受ける役割を果たす。
【0143】
一実施形態として、仮想コード受信部210は、専用プログラム11によって生成された仮想コードの提供を仮想コード受信手段20から受けてユーザ認証の要求を受ける。
【0144】
詳細コード抽出部220は、仮想コードに含まれている一つ以上の詳細コードを抽出する役割を果たす。
【0145】
一実施形態として、詳細コード抽出部220は、仮想コード生成関数に含まれている詳細コード結合関数を含む。したがって、仮想コードが複数の詳細コードを含む場合、詳細コード抽出部220は、詳細コード結合関数を適用して仮想コードから複数の詳細コードを抽出することができる。
【0146】
例えば、仮想コード生成装置100において、4つの詳細コード(すなわち、第1~第4コード)が結合された仮想コードを生成する場合、詳細コード抽出部220は、仮想コードの文字配列において詳細コード結合関数を適用して第1~第4コードを分離することができる。
【0147】
保存位置探索部230は、抽出された一つ以上の詳細コードに基づいて保存位置探索アルゴリズム内の複数のUIDの保存位置を探索する役割を果たす。ここで、保存位置探索アルゴリズムは、仮想コード生成装置100で仮想コードを生成するときに用いた仮想コード生成関数にマッチングされるものである。保存位置探索部230でそれぞれの詳細コードに基づいてUIDの保存位置を探索する方式としては、様々な方式が適用できる。保存位置探索部230が複数の詳細コードに基づいて保存位置を探索するために、詳細コードの間には相関関係を含むことができる。
【0148】
保存位置探索部230は、複数の詳細コードを用いて複数のUIDの保存位置を順次探索する。
【0149】
保存位置探索部230によって一番目に探索されるUIDの保存位置は、ユーザによって仮想コード生成手段10の登録が要求された時点に相当するトラック上の地点(カウント)を意味する。すなわち、仮想コード検証装置200内で当該仮想コード生成手段10に対するトラックが駆動され、特定の時点に特定のユーザによってユーザ情報の登録が要求されると、当該時点に対応するカウント(すなわち、トラックの最終駆動時から登録時点までに経過したカウント)に当該ユーザ情報が登録される。
【0150】
仮想コードが第1~第4コードで構成される場合、詳細コードの間に相関関係を持つ一実施形態として、保存位置探索部230は、第3コードに対応する探索開始地点を決定し、前記探索開始地点から第4コードに相応する探索経路に沿って移動した地点を第3UIDの保存位置として見つけることができる。すなわち、前記詳細コードは、保存位置探索の開始地点を設定する第3コードと、特定の探索方式に従って、前記開始地点から前記第3UIDの保存位置への探索経路を設定する第4コードと、を含むことができる。
【0151】
このとき、第3UIDの保存位置は、ユーザによって仮想コード生成手段10の登録が要求された時点に相当するトラック上の地点(カウント)を意味する。保存位置探索部230は、第3及び第4コードを用いて第3UIDの保存位置を探索することができる。
【0152】
一方、保存位置探索部230は、仮想コードの生成方式に応じてUIDを異なる方式で探索することができる。
【0153】
一実施形態として、複数のUIDのそれぞれに権限情報、ユーザ情報、及び異なるUIDの保存位置への探索経路を設定するコードがマッチングされて保存された場合、保存位置探索部230は、第3及び第4コードを活用して第3UIDを探索し、第3UIDにマッチングされて保存された第2UIDの保存位置への探索経路を設定するコードと、第2コードを活用して第2UIDを探索する。その後、保存位置探索部230は、第2UIDにマッチングされて保存された第1UIDの保存位置への探索経路を設定するコードと第1コードを活用して第1UIDを探索する。
【0154】
例えば、第3UIDには、第2UIDの保存位置への探索経路を設定するコード、及びユーザに付与する権限の種類を定義する情報がマッチングされて保存され、第2UIDには、第1UIDの保存位置への探索経路を設定するコード、及びユーザに権限を付与する有効時間を定義する情報がマッチングされて保存され、第1UIDには、仮想コード検証装置200の固有値がマッチングされて保存される。保存位置探索部230は、第3及び第4コードを活用して第3UIDを探索し、第3UIDにマッチングされて保存された第2UIDの保存位置への探索経路を設定するコードと第2コードを活用して第2UIDを探索する。その後、保存位置探索部230は、第2UIDにマッチングされて保存された第1UIDの保存位置への探索経路を設定するコードと第1コードを活用して第1UIDを探索する。また、制御命令情報抽出部240は、前記第1~第3UIDにマッチングされて保存されたユーザに付与する権限の種類を定義する情報、及びユーザに権限を付与する有効時間を定義する情報を抽出した後、制御部260へ伝送する。
【0155】
他の一実施形態として、複数のUIDのそれぞれが異なるUIDの保存位置への探索経路を設定するコードであるとともに複数のUIDのそれぞれに権限情報、ユーザ情報がマッチングされて保存された場合、保存位置探索部230は、第3及び第4コードを活用して第3UIDを探索し、第3UID及び第2コードを活用して第2UIDを探索する。その後、保存位置探索部230は、第2UIDと第1コードを活用して第1UIDを探索する。
【0156】
例えば、第3UIDには、ユーザに付与する権限の種類を定義する情報がマッチングされて保存され、第3UIDは、第2UIDの保存位置への探索経路を設定するコードとして活用される。一方、第2UIDには、ユーザに権限を付与する有効時間を定義する情報がマッチングされて保存され、第2UIDは、第1UIDの保存位置への探索経路を設定するコードとして活用される。第1UIDには、仮想コード検証装置200の固有値がマッチングされて保存される。保存位置探索部230は、第3及び第4コードを活用して第3UIDを探索し、第3UID及び第2コードを活用して第2UIDを探索する。その後、保存位置探索部230は、第2UIDと第1コードを活用して第1UIDを探索する。また、制御命令情報抽出部240は、前記第1~第3UIDにマッチングされて保存されたユーザに付与する権限の種類を定義する情報、ユーザに権限を付与する有効時間を定義する情報を抽出した後、制御部260へ伝送する。
【0157】
他の一実施形態として、複数のUIDのそれぞれが異なるUIDの保存位置への探索経路を設定するコードであるとともに複数のUIDのそれぞれが権限情報又はユーザ情報である場合、保存位置探索部230は、第3及び第4コードを活用して第3UIDを探索し、第3UIDと第2コードを活用して第2UIDを探索する。その後、保存位置探索部230は、第2UIDと第1コードを活用して第1UIDを探索する。
【0158】
例えば、第3UIDは、第2UIDの保存位置への探索経路を設定するコード、及びユーザに付与する権限の種類を定義する情報であり、第2UIDは、第1UIDの保存位置への探索経路を設定するコード、及びユーザに権限を付与する有効時間を定義する情報であり、第1UIDは、仮想コード検証装置200の固有値である。保存位置探索部230は、第3及び第4コードを活用して第3UIDを探索し、第3UID及び第2コードを活用して第2UIDを探索する。その後、保存位置探索部230は、第2UIDと第1コードを活用して第1UIDを探索する。また、制御命令情報抽出部240は、第2及び第3UIDを制御部260へ伝送する。
【0159】
上述したように、保存位置探索部230は、仮想コードの生成に使用されるシードデータの種類に応じて異なる方式でUIDを探索する。
【0160】
また、別の一実施形態として、仮想コード生成装置100が単位カウントごとに新規の仮想コードを提供することにより、仮想コード検証装置200は、カウントごとに変更される第3コード及び第4コードに基づいて探索開始地点と探索経路を設定して第3UIDの保存位置を探索することができる。
【0161】
また、他の一実施形態として、保存位置探索部230は、相関関係を有する複数の詳細コードを用いてUIDの保存位置を見つけるために、保存位置探索アルゴリズムを含むことができる。保存位置探索アルゴリズムは、仮想コードに含まれるそれぞれの詳細コードの適用時に保存位置の探索を可能にするアルゴリズムであって、仮想コード生成装置100で仮想コードを生成するときに用いた仮想コード生成関数にマッチングされるものである。
【0162】
例えば、仮想コードが保存位置の探索開始地点を決定する第3コードと、探索開始地点からの保存位置方向を提示する第4コードとを含む場合、保存位置探索アルゴリズムは、第3コードに対応する地点で第4コードに対応する方向を指示するときに、当該位置に第3UIDの登録時点がマッチングされる保存位置が配置されるように調節するアルゴリズムである。
【0163】
第3UIDを探索した後、保存位置探索部230は、探索された第3UID及び第2コードを用いて第2UIDの保存位置を探索する。
【0164】
一実施形態において、保存位置探索部230は、第2コードを第2UIDの保存位置探索開始地点とし、第3UIDを、探索開始地点からの保存位置方向を提示するコードとして活用して、第2UIDを探索する。
【0165】
他の一実施形態において、保存位置探索部230は、第2コードを第2UIDの保存位置探索開始地点とし、第3UIDにマッチングされて保存された探索開始地点からの保存位置方向を提示するコードを活用して、第2UIDを探索する。
【0166】
第2UIDを探索した後、保存位置探索部230は、探索された第2UID及び第1コードを用いて第1UIDの保存位置を探索する。
【0167】
一実施形態において、保存位置探索部230は、第1コードを第1UIDの保存位置探索開始地点とし、第2UIDを、探索開始地点からの保存位置方向を提示するコードとして活用して、第1UIDを探索する。
【0168】
他の一実施形態において、保存位置探索部230は、第1コードを第1UIDの保存位置探索開始地点とし、第2UIDにマッチングされて保存された探索開始地点からの保存位置方向を提示するコードを活用して、第1UIDを探索する。
【0169】
上述したように、保存位置探索部230は、4つの仮想コードを用いて3つのUIDを順次探索することができる。
【0170】
制御命令情報抽出部240は、保存位置探索部230によって探索されたUIDの保存位置にマッチングされて保存された権限情報を抽出する。すなわち、仮想コード検証装置200は、保存位置探索アルゴリズム内のそれぞれのUIDの保存位置にマッチングされて保存された制御命令情報を抽出することができる。一方、UID自体が権限情報からなる場合、制御命令情報抽出部240は、探索されたUIDを制御部260へ送信する。
【0171】
制御部260は、抽出された制御命令情報に基づく制御を行う。
【0172】
保存位置探索アルゴリズムを用いることにより、仮想コード検証装置200は、仮想コードに含まれている一部のコードが変更されても、UIDの保存位置を探索することができる。保存位置探索アルゴリズムは様々な方式が適用でき、具体的な例示は後述する。ただし、保存位置探索アルゴリズムは、後述する例示に限定されない。
【0173】
例えば、
図5を参照すると、保存位置探索アルゴリズムが、第3コードに相当するM
N個のコードが羅列されたトラックに沿って転がり移動するk角形(kはM
N)であり、k角形の頂点が、第3コードトラック上にコードが配置される地点に対応しながら移動する場合、k角形の各頂点がUIDの保存位置とマッチングされ、第3コードトラック(すなわち、第1トラック)とk角形とが対応する地点が、第3コードに対応する保存位置探索開始地点になることができる。このとき、保存位置探索部230は、詳細コード抽出部220で抽出された第3コードに対応する地点にk角形の頂点が接するようにk角形の転がり移動を適用することができる。これにより、保存位置探索部230は、k角形が接した第1トラック上の位置で第4コードに相応する角度(例えば、k角形の頂点を向くように180度をM
N個に分割した特定の角度)で指示することにより、仮想コードに対応するUIDが保存された保存位置であるk角形の頂点を探索することができる。
【0174】
具体的には、
図5に示すように、仮想コード検証装置200は、第3コードに対応する地点にk角形を転がり移動(すなわち、k角形の各頂点とトラック上の各地点とが順次接するように移動)させる。その後、仮想コード検証装置200は、第2コードに相応する角度方向を指示して、保存位置に相応する頂点を探索する。上述した方式で、保存位置探索部230は第1及び第2UIDを探索することができる。
【0175】
保存位置探索部230によって保存位置探索アルゴリズム内で仮想コード内の第3コード及び第4コードを用いて第3UIDの保存位置が探索された後、制御命令情報抽出部240によって当該位置にマッチングされて保存された権限情報を抽出する。
【0176】
これ以外の様々な保存位置探索アルゴリズムについての詳細な説明は後述する。
【0177】
仮想コード検証部250は、仮想コード受信部210が仮想コードを受信した時点と、仮想コードが仮想コード生成手段(すなわち、ユーザ端末)で仮想コード生成関数を用いて生成された時点とを比較して、仮想コードを検証する役割を果たす。
【0178】
一実施形態として、
図6を参照すると、仮想コード検証部250は、仮想コードが受信された時点と、ユーザ端末に内蔵又はインストールされた専用プログラム11で仮想コード生成関数を用いて仮想コードが生成された時点とを比較して、生成時点が受信時点から予め設定された誤差範囲内に含まれている場合、受信された前記仮想コードが正常コードであると判断することができる。
【0179】
さらに、仮想コードを検証する方式に対する他の一実施形態として、第3コード及び第4コードは、仮想コード生成手段10によってUIDが登録された時点、又はユーザ認証が要求された時点からランダムに生成されるOTPコードだけ付加された基準カウントに対するコードであり得る。
【0180】
具体的な実施形態として、仮想コード生成装置100が仮想セキュリティコードを外部へ出力することなく第3コード及び第4コードに反映して生成する。仮想コード生成手段(例えば、仮想コード生成専用プログラム)は、第3UIDに基づいて仮想セキュリティコード値(例えば、OTPコード)を生成し、第3UID登録時点に仮想セキュリティコード値を加えたカウントの第3コードを生成し、仮想セキュリティコード値に対応するカウントの第4コードを生成(すなわち、仮想セキュリティコード自体を第4コードとして生成)する。すなわち、第3コード及び第4コードは、仮想コード生成装置100によって、第3UIDが仮想コード検証装置200に登録されたA時点から仮想セキュリティコード値だけ移動(shifting)したカウントに基づいて生成される。A時点から移動(Shifting)したカウントは、生成される仮想セキュリティコード値に基づいて、現在時点に対応するカウントよりも以前のカウントになることもでき、以後のカウントになることもできる。仮想コード検証装置200は、受信された第3コードと第4コードを保存位置探索アルゴリズムに適用して第3UIDの保存位置(又は登録位置)を探索することができる。
【0181】
一方、本発明の一実施形態として、仮想セキュリティコードは、仮想コードの生成時点の時間データ又は仮想コードに基づいてユーザ設定情報の認証を要求した時点の時間データに基づいて生成されることができる。それだけでなく、本発明の一実施形態として、ユーザの設定情報のうち、時間データを含む特定の情報が存在する場合、当該情報の時間データに基づいて仮想セキュリティコードを生成することもできる。例えば、仮想コード検証装置200が自動車又はパーソナルモビリティである場合、当該デバイスに対して設定された仮想コードの有効時間、デバイスの貸与開始時間、デバイスの貸与終了時間などの時間データに基づいて仮想セキュリティコードを生成することもできる。
【0182】
また、他の一実施形態として、仮想コード検証装置200は、仮想セキュリティコードに基づいて生成された第4コードから仮想セキュリティコードを抽出した後、仮想セキュリティコード生成関数(すなわち、OTP関数)を、仮想コードを受信したカウントから特定の範囲内のカウントを入力して算出されたOTP番号の中に仮想セキュリティコードと一致する値があるか否かを確認する。仮想コード検証装置200は、第4コードに第2関数の逆関数を適用して、第4コードの生成に用いられた仮想セキュリティコード値(すなわち、OTP関数値)を取得し、仮想セキュリティコード値と同じ値を算出するカウントを見つける。仮想コードの伝送時間やディレイによって仮想コード生成手段で仮想セキュリティコードが生成された時点と、仮想コード検証手段が仮想セキュリティコードを受信した時点との差が存在することにより、仮想コード検証手段が仮想コードを受信したカウントと仮想セキュリティコードに相当するOTP番号を生成したカウントとが一致しない可能性もあるので、仮想コード検証装置200は、仮想コードを受信したカウントからの誤差範囲を許容する。これにより、仮想コード検証装置200は、現時点で生成された仮想コードではなく、以前に生成された仮想コードでユーザ認証を実行しようとすることを防ぐことができるため、セキュリティ性が向上することができる。また、ユーザは、仮想コードの入力時に特定の桁数の仮想セキュリティコードを入力しなくても、仮想コード検証装置200が自体的に仮想セキュリティコードを探索してユーザを検証することができる。
【0183】
一実施形態において、仮想コード生成専用プログラムが第1~第4コードを生成する数式は、次の通りである。
第1コード=第1UID+第2UID
第2コード=第2UID+第3UID
第3コード=第3UID+OTP(ユーザが権限設定した仮想コード使用可能時点に基づく仮想セキュリティコード)
第4コード=OTP(ユーザが権限を設定した仮想コード使用可能時点に基づく仮想セキュリティコード)
【0184】
ユーザから仮想コード生成要求が印加される場合、仮想コード生成装置100は、ユーザから仮想コードの有効期間の入力を受けるか、或いはユーザから選択された第3UIDにマッチングされて保存された有効期間情報に基づいて仮想セキュリティコードを形成し、これに基づいて第3及び第4コードを形成する。
【0185】
その後、仮想コード生成装置100は、第2UID及び第3UIDに基づいて第2コードを形成する。第2コードは、第2UIDの保存位置への探索時点を設定する役割を果たす。最後に、仮想コード生成装置100は、第1及び第2UIDに基づいて第1コードを形成する。第1コードは、第1UIDの保存位置への探索時点を設定する役割を果たす。
【0186】
仮想コード検証装置200は、受信した仮想コード内の第1~第4コードに基づいて第1~第3UIDが保存された位置を探索し、これに基づいてユーザ認証要求の受信時点から特定のカウント範囲内の仮想セキュリティコード(すなわち、OTP番号)を生成し、生成された仮想セキュリティコードのうち、仮想コードから抽出された仮想セキュリティコードと同じコードがあるか否かを判断する。仮想コード検証装置200は、生成された仮想セキュリティコードのうち、仮想コードから抽出された仮想セキュリティコードと同じコードがある場合、仮想コードが有効であると判断する。
【0187】
一方、仮想コード検証装置200は、上述した有効性検証方法以外に、仮想コードから最後に探索された第1UIDを活用して仮想コードの有効性を検証する。例えば、仮想コード検証装置200は、探索された第1UIDが既に保存されたUIDと一致するか、或いは第1UIDにマッチングされて保存された固有値が仮想コード検証装置200の固有値と一致する場合にのみ仮想コードが有効であると判断することができる。
【0188】
一方、仮想コード生成装置100は、仮想コード生成装置100を仮想コード検証装置200に登録しなくても、制御命令を実行することができる仮想コードを生成することができる。
【0189】
一実施形態において、仮想コード生成装置100は、仮想コード検証装置200の固有値をシードデータにして第1及び第2コードを生成することができる。この場合、仮想コード生成装置100は、ユーザから権限情報の入力を受けた後、入力された権限情報を仮想コードに含ませることができる。仮想コード検証装置200は、第1及び第2コードから固有値を抽出した後、抽出された固有値が仮想コード検証装置200の固有値と一致するか否かを判断する。抽出された固有値が仮想コード検証装置200の固有値と一致する場合、仮想コード検証装置200は、仮想コードから権限情報を抽出した後、権限情報に対応するアクセス権限を付与する。これにより、本発明は、ユーザが仮想コード生成装置100を仮想コード検証装置200に登録していない場合でも、他人にユーザ認証を行うことができるようにする。
【0190】
一方、本発明の別の実施形態として、仮想コードは、仮想コード生成装置100の識別値(ID)と仮想コード生成手段に入力された制御命令情報とに基づいて生成されることもできる。このとき、識別値(Identifier)及び制御命令に基づいて第1データを生成し、制御命令情報及び識別値に対応する秘密値(Secret)をハッシュ関数(Hash Function)に適用してハッシュ値を生成する。そして、仮想コード生成関数に適用して最終的に仮想コードを生成する。より具体的には、識別値(Identifier)と制御命令をエンコーダに入力して第1データを生成し、制御命令情報及び秘密値(Secret)をハッシュ関数に入力して第1ハッシュ値を生成する。そして、第1データ及び第1ハッシュ値に基づいて最終的に仮想コードを生成する。一方、仮想コード生成装置100によって仮想コードを生成した時点又はユーザ認証を要求した時点の時間データをさらに活用することができる。この場合、前記時間データは、第1データ及び第1ハッシュ値のそれぞれのシードデータとして用いられることができる。
【0191】
一方、上述した方法によって生成された仮想コードを検証するために、仮想コード検証装置200は、前記エンコーダに対応するデコーダを含み、仮想コード生成装置100と同じハッシュ関数を含むことができる。具体的には、仮想コード検証装置200は、仮想コード生成装置100から受信した仮想コードから第1データ及び第1ハッシュ値を抽出する。そして、第1データに基づいてそれぞれの制御命令情報及び識別値を探索する。このとき、仮想コード生成装置100内に保存された識別値の秘密値を抽出し、前記秘密値と探索された制御命令情報とをハッシュ関数に適用してハッシュ値を算出する。算出されたハッシュ値と仮想コードから抽出された第1ハッシュ値とを比較して、仮想コードに対する検証過程を行うこともできる。
【0192】
一方、さらに上述の時間データに基づいて仮想コードを生成した場合には、仮想コード検証装置200が、時点の時間データ、制御命令情報及び識別値をハッシュ関数に適用して算出されたハッシュ値と、第1ハッシュ値とを比較することにより、現在時点で生成された仮想コードに相当するかを検証することもできる。
【0193】
制御部260は、仮想コード検証部250によって仮想コードの検証が完了すると、仮想コードを用いて抽出された制御命令情報に対応する制御を行う。
【0194】
一実施形態として、出入り時のユーザ認証の場合、保存位置探索部230によって第1~第3UIDが探索され、仮想コード検証部250によって仮想コードが正常に生成されたのか検証が完了すると、制御部260は、制御命令情報抽出部240によって抽出された権限情報に基づいて、ユーザ認証の如何を決定する。
【0195】
具体的には、制御部260は、権限情報に含まれている有効期間情報と、ユーザ認証が要求された時点とを比較して、ユーザ認証の如何を決定する。
【0196】
一実施形態において、ユーザは、UIDを仮想コード検証装置200に登録するとき、又は第1~第3UIDを仮想コード検証装置200に登録した後に、専用プログラム11を介して有効期間を登録することができる。専用プログラム11は、ユーザから入力された有効期間を第1~第3UIDのうちのいずれか一つに一致させて保存する。ユーザは、専用プログラム11を介してUIDにマッチングされた有効期間を変更又は削除することができる。
【0197】
一実施形態において、制御部260は、ユーザ認証要求が行われた時点がUIDにマッチングされて保存された有効期間の範囲内にある場合、ユーザ認証を行う。具体的な例を挙げると、ユーザが有効期間を午前9時~午前10時に設定した場合、制御部260は、午前9時~午前10時の間に行われたユーザ認証要求に対してのみユーザ認証を行う。
【0198】
他の一実施形態において、ユーザは、UIDを仮想コード検証装置200に登録するとき、又は第1~第3UIDを仮想コード検証装置200に登録した後に、専用プログラム11を介してアクセス権限の種類を登録することができる。専用プログラム11は、ユーザから入力されたアクセス権限の種類を第1~第3UIDのうちのいずれか一つにマッチングさせて保存する。ユーザは、専用プログラム11を介してUIDにマッチングされたアクセス権限の種類を変更又は削除することができる。
【0199】
一実施形態において、制御部260は、権限情報に含まれているアクセス権限の種類に対応するユーザ認証を行う。仮想コード検証装置200が車両である場合、制御部260は、権限情報に基づいて車両内部アクセス権限、車両始動権限及び車両運転権限のうちのいずれか一つを付与することができる。車両内部アクセス権限が付与される場合、車両は、車両のドアロックを解除し、車両の他の機能は実行されないようにする。例えば、自動車に対する非対面修理、洗車サービスを受けようとする場合には、車内内部アクセス権限のみを含むことができる。すなわち、車両始動権限、車両運転権限などについては付与しない。
【0200】
一方、車両始動権限が付与される場合、車両は、車両のドアロックを解除し、車両の内部に入ったユーザが始動をかける場合に始動がかかるようにし、車両の始動がかかった状態で車両が移動できないようにする。また、車両運転権限が付与される場合、車両は、ユーザが車両のすべての機能を利用することができるようにする。
【0201】
他の一実施形態において、仮想コード検証装置200がパーソナルモビリティである場合、制御部260は、権限情報に基づいて、パーソナルモビリティに対する始動権限及びモビリティ運転権限のうちのいずれか一つを付与することができる。モビリティの始動権限が付与される場合、パーソナルモビリティは、作動を開始し、他の機能は実行されないようにする。また、運転権限が付与される場合、モビリティは、ユーザが当該モビリティの全ての機能(加速、減速、停止など)を利用することができるようにする。
【0202】
他の一実施形態において、仮想コード検証装置200がモバイル端末である場合、ユーザは、第1~第3UIDを仮想コード検証装置200に登録するとき、又はUIDを仮想コード検証装置200に登録した後に、専用プログラム11を介してモバイル端末で実行可能なアプリケーションを登録することができる。その後、モバイル端末は、ユーザ認証時に、登録されたアプリケーションのみ実行できるようにする。
【0203】
一方、仮想コード検証装置200が電気、ガスなどの計量器である場合、制御部260は、第1~第3UIDのうちのいずれか一つにマッチングされて保存された有効期間内に仮想コードが入力された場合にのみ、第1~第3UIDのうちのいずれか一つにマッチングされて保存された充電量による電気、ガスなどを利用することができるようにする。
【0204】
他の一実施形態として、制御部260は、第1~第3UIDのうちの少なくとも一つに基づいて制御を行う。例えば、制御部260は、第3UID値自体で仮想コードの有効期間を判断し、第2UID値自体で充電量を決定することができる。一方、制御部260は、第1UID値が既に保存されたUID値と一致するか、或いは第1UID値が仮想コード検証装置200の固有値と一致する場合にのみ、電気、ガスなどの利用権限を付与する。
【0205】
図4は本発明の一実施形態による仮想コードを用いた制御方法のフローチャートである。
【0206】
図4を参照すると、本発明の一実施形態による仮想コードを用いた制御方法は、仮想コード認証装置が仮想コードを受信するステップ(S100、仮想コード受信ステップ)、仮想コード認証装置が前記仮想コードに基づいて複数のUIDを探索するステップ(S200、保存位置探索ステップ)、仮想コード認証装置が探索された前記複数のUIDに基づいて仮想コードを検証するステップ(S300)、及び探索されたUIDに基づいて制御命令を実行するステップ(S400)を含む。以下、各ステップについて詳細に説明する。ただし、仮想コード生成装置100(すなわち、専用プログラムが含まれているユーザ端末)及び仮想コード検証装置200(仮想コード検証手段30又はサーバ40)についての説明過程で上述した内容についての具体的な開示は省略する。
【0207】
ステップS100で、仮想コード検証装置200は、仮想コードを受信する。
【0208】
一実施形態として、仮想コード検証装置200は、ユーザ認証のために仮想コードの入力を受けることができる。このとき、仮想コード検証装置200が行う制御命令はユーザ認証である。
【0209】
他の一実施形態として、仮想コード検証装置200が電気、ガスなどの計量器である場合、仮想コード検証装置200は、ユーザが購入した仮想コードの入力を受けることができる。
【0210】
一実施形態によって、仮想コードは、仮想コード生成装置100内に含まれている複数のUIDに基づいて生成されることができる。
【0211】
仮想コード生成装置100は、専用プログラム11内に含まれている仮想コード生成関数を用いて複数のUIDに基づいて仮想コードを生成し、生成された仮想コードを仮想コード検証装置200に提供する。
【0212】
一実施形態として、仮想コード生成装置100は、専用プログラム11を用いて、UIDをそれぞれの詳細コード生成関数のシードデータにしてそれぞれの詳細コードを生成することができる。
【0213】
その後、ステップS200で、仮想コード検証装置200が仮想コードに基づいて保存位置探索アルゴリズム内の複数のUIDの保存位置を順次探索する。ここで、保存位置探索アルゴリズムは、仮想コード生成装置100(すなわち、ユーザ端末)に内蔵又はインストールされた専用プログラム11内に含まれている仮想コード生成関数にマッチングされるものであって、仮想コード内の少なくとも一つの詳細コードに基づいて複数のUIDの保存位置を探索することができるようにする。
【0214】
一実施形態において、それぞれのUIDには、別途の制御命令情報がマッチングされて保存されることができる。ユーザは、UID登録時に、制御命令情報を一緒に登録するか、或いはUIDのみを先に登録した後、必要に応じて制御命令情報を更新することができる。
【0215】
例えば、ユーザは、複数のUID登録時に、仮想コードの有効期間を一緒に登録するか、或いはUIDのみを先に登録した後、必要に応じて仮想コードの有効期間を更新することができる。
【0216】
UIDが仮想コード検証装置200に登録された後、仮想コード検証装置200は、仮想コード生成装置100を介して仮想コードを受信してユーザ認証の要求を受けると、受信された仮想コードに基づいて、保存位置探索アルゴリズム内に保存されたUIDを探索してユーザを確認することができる。
【0217】
一実施形態によって、仮想コードが第1~第4コードの組み合わせで生成された場合、サーバ40は、第1~第4コードを用いて保存位置探索アルゴリズム内で第1~第3UIDの保存位置を探索する。
【0218】
図5に示すように、仮想コード検証装置200は、第3コードに対応する位置を開始地点として設定し、第4コードに適用された探索方式に従って第2コードに基づいてk角形の配置状態でのUIDの保存位置にマッチングされた地点(すなわち、k角形の特定の頂点)を探索する。保存位置は、k角形のそれぞれの頂点にマッチングされる。第3コードトラック(すなわち、第1トラック)とk角形とが対応する地点が、第4コードに対応する保存位置探索開始地点となる。仮想コード検証装置200は、探索開始地点で第4コードに基づいてUIDの保存位置のマッチング地点を探索する。
【0219】
第4コードに基づいてk角形で保存位置を探索する方式としては、様々な方式が適用できる。一例として、仮想コード検証装置200は、k角形が接した第1トラック上の位置で第2コードに相応する角度(例えば、k角形の頂点を向くように180度をMN個に分割した特定の角度)で指示することにより、仮想コードに基づいて、UIDが保存された保存位置であるk角形の頂点を探索することができる。
【0220】
また、他の例として、k角形が第1トラック上の第3コードに対応する地点に接した状態で、仮想コード検証装置200は、k角形の中心と第1トラック上の接点を基準にして、全体中心角(すなわち、360度)をMN個に分割し、それぞれの角度をMN個の第3コードにマッチングする。このとき、k角形の中心と第1トラック上の接点とを結ぶ線から特定の個数の単位角度(すなわち、360度/MN)を移動した線の方向は、k角形の特定の頂点となる。よって、特定の角度に対応する第4コードが受信されると、仮想コード検証装置200は、当該角度方向に位置した頂点を探索することができる。
【0221】
また、他の例として、第4コードの特定の桁を、角度算出方向を決定するものとして使用することができる。すなわち、N個(Nは自然数)の文字を用いて第3コードを生成する場合、一つの桁(Digit)で角度測定方向を決定することができる。例えば、仮想コード検証装置200は、k角形の中心と第1トラック上の接点を基準として、全体中心角(すなわち、360度)を分割してそれぞれの角度に第4コードをマッチングする場合、k角形の中心と第1トラック上の接点とを結ぶ線から左方向に測定される角度であるか、右方向に測定される角度であるかを一つの桁(Digit)の値として決定することができる。
【0222】
一例として、保存位置探索アルゴリズムは、k角形上の各頂点に角度測定方向によって異なる2つの第4コードも一つの頂点に割り当てることができる。すなわち、一つの頂点に内角で到達するときと外角で到達するときに異なる第4コードとマッチングされ、異なるUIDの保存位置が連結されることができる。他の一例として、保存位置探索アルゴリズムは、N個(Nは自然数)の文字を用いて第4コードを生成する場合にN-1個で全体角度(例えば、中心角を基準に分割する場合には360度)の半分に対してマッチングし、一つの桁を用いて各頂点に到達するための角度適用方向を決定することができる。
【0223】
第4コードに基づいてk角形で保存位置を探索する方式は、これに限定されず、第4コードに相応するk角形上の地点と第1トラック上の接点との間を特定の比率で割る地点を保存位置として探索する方式などの様々な方式が適用できる。
【0224】
一方、上述した保存位置探索方式は、第1及び第2UIDの保存位置の探索にも同様に適用されることができる。
【0225】
他の一実施形態によって、仮想コードが単位カウントごとに変更される第3コード及び第4コードを含む場合、第3コードは、仮想コード検証装置200でUID登録を開始した最初の時点から経過した単位カウントに基づいて生成され、第4コードは、各ユーザが仮想コード生成装置100にインストールされた専用プログラム11を介してUIDを登録した時点から経過した単位カウントに基づいて生成されるのである。このとき、単位カウントは、特定の時間間隔に設定され、時間間隔が経過するにつれて変更される。
【0226】
図7に示すように、保存位置探索アルゴリズムは、仮想コードを構成する複数の詳細コードに基づいてトラック上を移動することにより、UIDの保存位置にマッチングされた地点へ移動するのである。
【0227】
具体的には、仮想コードがサービスを駆動するにつれて保存位置探索アルゴリズムが始まった初期時点から経過した単位カウントに基づいて生成された第3コードと、各ユーザの第3UIDが登録された時点から経過した単位カウントに基づいて生成された第4コードを含む場合、
図7に示すように、仮想コード検証装置200は、第3コードに対応するコード値がマッチングされたトラック上のカウントを探索開始地点に設定し、第4コードに相応するカウント値だけ前記探索開始地点からトラックに沿って回帰して仮想コード検証装置200に第3UIDを登録した時点のトラック上の地点(すなわち、第3UIDの保存位置)を探索する。例えば、仮想コード検証装置200が第3コード用トラックにおいて仮想コード内の第3コードが付与された地点(又はカウント)を探索して探索開始地点を設定し、探索開始地点から逆方向に第4コード用トラックを配置して仮想コード内の第4コードが付与された地点(又はカウント)を探索することにより、第3コード用トラック上で第3UIDが登録された地点(又はカウント)を抽出する。また、例えば、仮想コード検証装置200が仮想コード内の第3コードに基づいて探索開始地点を設定し、仮想コード内の第4コードに第4関数の逆関数を適用することにより算出されたカウント値だけ回帰して、第3UID登録時点に対応する地点を探索する。
【0228】
一方、
図8に示すように、上述した方式が第1及び第2UIDの保存位置の探索に活用される場合、第1及び第2コードは、第3UIDの保存位置とは異なるトラック上で探索開始地点を設定する。また、順次探索される第2UID及び第1UIDは、前記異なるトラック上でUIDの保存位置への探索経路を設定する。
【0229】
仮想コードを構成する詳細コードは、第1~第4コードに限定されず、仮想コードを構成する詳細コードの数が増加するほど、UIDの保存位置の探索時に形成されるトラックの個数が増加することができる。
【0230】
その後、ステップS300で、仮想コード検証装置200が探索されたUIDに基づいて仮想コードを検証する。具体的には、仮想コード検証装置200は、仮想コードから最後に探索されたUID(第1UID)に基づいて仮想コードを検証する。例えば、仮想コード検証装置200は、仮想コードから最後に探索されたUIDが既に保存されたUIDと一致するか、或いはUIDにマッチングされて保存された固有値が仮想コード検証装置200の固有値と一致する場合にのみ、受信された仮想コードが有効であると判断する。これにより、本発明は、仮想コードから全てのUIDが正常に探索された場合にのみ、仮想コードを有効であると判断することができる。
【0231】
他の一実施形態として、仮想コード検証装置200は、仮想コードから探索された複数のUIDのうちのいずれか一つに基づいて仮想コードを検証する。例えば、仮想コード検証装置200は、仮想コードから探索された複数のUIDのうち、仮想コードの有効期間を定義するか、或いは有効期間がマッチングされて保存されたUIDに基づいて仮想コードの有効性を検証する。仮想コード検証装置200は、有効期間内に仮想コードが受信された場合にのみ仮想コードが有効であると判断する。
【0232】
ステップS400で、仮想コード検証装置200は、仮想コードが正常なコードであると判断されると、探索されたUIDに基づいて制御を行う。
【0233】
仮想コード検証装置200は、探索された複数のUIDに基づいてユーザ認証を介してアクセス権限を付与する。仮想コード検証装置200が車両である場合、アクセス権限は、車両内部出入権限であってもよく、車両内部出入権限が付与される場合、車両は、車両のドアロックを解除してユーザが車両の内部に進入できるようにする。
【0234】
上述したアクセス権限は、探索された複数のUIDにマッチングされて保存されるか、或いはUID自体がアクセス権限を定義することができる。
【0235】
他の一実施形態において、仮想コード検証装置200がドアロックである場合、アクセス権限は、建物内部出入権限であってもよく、建物内部出入権限が付与される場合、建物は建物のドアロックを解除してユーザが建物の内部に進入できるようにする。
【0236】
他の一実施形態において、仮想コード検証装置200がモバイル端末である場合、アクセス権限は、モバイル端末の使用権限であってもよく、モバイル端末の使用権限が付与される場合、モバイル端末は、端末のロック状態を解除して、ユーザがモバイル端末に内蔵された機能を利用することができる状態になる。
【0237】
一方、仮想コード検証装置200は、アクセス権限を段階的に付与することができる。一実施形態において、仮想コード検証装置200が車両である場合、車両へのアクセス権限は、車両内部アクセス権限、車両始動権限、車両運転権限を含むことができる。車両始動権限は、車両の始動をかけて、車両内に備えられた装置を利用することはできるが、車両の運転ができない権限として当該権限のみ付与された場合、車両は移動しない。また、車両運転権限は、車両の運転を含む車両の全ての機能を使用することができる権限である。ユーザは、他人に上述した種類の権限を選択的に付与することができる。
【0238】
他の一実施形態において、仮想コード検証装置200がモバイル端末である場合、アクセス権限は、モバイル端末に備えられたアプリケーションごとに付与できる。例えば、ユーザは、モバイル端末に備えられたカメラアプリケーションへのアクセス権限のみを他人に付与することができる。
【0239】
他の一実施形態において、仮想コード検証装置200が電気、ガスなどの計量器である場合、仮想コード検証装置200は、探索された複数のUIDに基づいて、ユーザが充電した分だけの電気、ガスなどの使用権限を付与することができる。
【0240】
一方、図面には明確に示されていないが、本発明の一実施形態によって、仮想コード検証装置200は、ユーザ検証過程をさらに行うこともできる。ユーザ検証過程は、仮想コード検証装置に関連する検証サーバ40と連動して行われることができる。ユーザは、ユーザ情報に基づいてユーザ認証のための第1仮想認証コードを生成する。そして、第1仮想認証コードをサーバ40へ送信する。このとき、サーバ40は、登録されたユーザ情報を抽出して、ユーザを検証する。このとき、本発明の一実施形態として、第1仮想認証コード内の第1詳細コード及び第2詳細コードに基づいて、ユーザ情報が登録された保存位置を探索する。第1詳細コードは、保存位置の探索開始地点を設定し、第2詳細コードは、保存位置の探索経路を決定することができる。一方、サーバ40は、第1仮想認証コードに基づいてユーザの検証が完了すると、第1仮想認証コードをハッシュ関数に適用してハッシュ値(第2ハッシュ値)を生成する。そして、生成されたハッシュ値及び第1仮想認証コードを仮想コード生成装置100へ伝送する。一実施形態によっては、仮想コード生成装置100は、第1仮想認証コードを生成し、メモリ(図示せず)に保存した後、サーバ40からハッシュ値のみを受信することもできる。そして、仮想コード生成装置100は、受信したハッシュ値と第1仮想認証コードに基づいて仮想コードを生成する。仮想コード生成装置100の識別値(Identifier)又は制御命令が仮想コードのシードデータとして用いられる。一方、仮想コード検証装置200は、受信した仮想コードから第1仮想認証コードを抽出し、第1仮想認証コードをハッシュ関数に適用してハッシュ値を算出する。そして、仮想コード内に含まれているサーバ40によって生成されたハッシュ値と比較して、サービスの検証を行うことができる。このために、仮想コード検証装置200は、サーバ40と同一のハッシュ関数を含む。
【0241】
以上で説明した本発明の一実施形態による仮想コードを用いたユーザ認証方法は、ハードウェアであるコンピュータと結合されて実行されるためにプログラム(又はアプリケーション)で実現され、媒体に保存されることできる。
【0242】
前述したプログラムは、前記コンピュータがプログラムを読み込み、プログラムで実現された方法を実行させるために、前記コンピュータのプロセッサ(CPU)が前記コンピュータのデバイスインタフェースを介して読み取ることが可能なC、C++、JAVA、Ruby、機械語などのコンピュータ言語でコード化されたコード(Code)を含むことができる。このようなコードは、これらの方法を実行するために必要な機能を定義した関数などに関連する機能コード(functional Code)を含むことができ、これらの機能を前記コンピュータのプロセッサが所定の手順で実行させるために必要な実行手順関連制御コードを含むことができる。また、このようなコードは、これらの機能を前記コンピュータのプロセッサが実行させるために必要な追加情報、又はメディアが前記コンピュータの内部又は外部メモリのどの位置(アドレス番地)で参照されるべきかについてのメモリ参照関連コードをさらに含むことができる。また、前記コンピュータのプロセッサがこれらの機能を実行させるために、遠隔(Remote)にあるいずれかの他のコンピュータやサーバなどとの通信が必要な場合、コードは、前記コンピュータの通信モジュールを用いて、遠隔にあるいずれかの他のコンピュータやサーバなどとどのようにして通信すべきか、通信の際にどの情報やメディアを送受信すべきかなどに対する通信関連コードをさらに含むことができる。
【0243】
前記保存される媒体は、レジスタ、キャッシュ、メモリなどのように短い瞬間にデータを保存する媒体ではなく、半永久的にデータを保存し、機器によって読み取り(reading)が可能な媒体を意味する。具体的には、前記保存される媒体の例としては、ROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、光データ保存装置などがあるが、これらに制限されない。すなわち、前記プログラムは、前記コンピュータが接続することができる様々なサーバ上の様々な記録媒体又はユーザの前記コンピュータ上の様々な記録媒体に保存できる。また、前記媒体は、ネットワークを介して接続されたコンピュータシステムに分散し、分散方式でコンピュータが読み取ることが可能なコードが保存され得る。
【0244】
以上、添付図面を参照して本発明の実施形態を説明したが、本発明の属する技術分野における通常の技術者は、本発明がその技術的思想や必須の特徴を変更することなく他の具体的な形態で実施できるということが理解できるだろう。よって、上述した実施形態は、あらゆる観点で例示的なものであり、制限的なものではないと理解すべきである。
【符号の説明】
【0245】
10 仮想コード生成手段
20 仮想コード受信手段
30 仮想コード検証手段
40 サーバ
110 詳細コード生成部
120 仮想コード生成部
130 仮想コード提供部
210 仮想コード受信部
220 詳細コード抽出部
230 保存位置探索部
240 制御命令情報抽出部
250 仮想コード検証部
260 制御部