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