(58)【調査した分野】(Int.Cl.,DB名)
請求項1記載の認証コードを生成するコンピュータ応用システムにおいて、前記パターンセレクタはユーザが選択されたパターンの文字をカスタム化できるカスタム化モジュールを有し、文字のカスタム化フォーマットは大文字フォーマット、小文字フォーマットおよびこれらの組合せから構成されるグループから選択される認証コードを生成するコンピュータ応用システム。
請求項1記載の認証コードを生成するコンピュータ応用システムは、登録の際に発行されたユーザのログオン情報、ユーザが送信した基本文、選択されたパターンに対応するユーザがカスタム化したパターンおよびマスクされたパターン、PIN、認証コード、ユーザが選択した秘密の質問およびユーザが選択した秘密の質問への答え等のユーザ関連情報を格納するレポジトリをさらに備えた認証コードを生成するコンピュータ応用システム。
請求項7記載の認証コードを生成するコンピュータ応用方法において、前記ユーザ入力による基本文に基づいて計算された合計文字数から最も近い完成した正方マトリックスを識別するステップは、基本文の全文字を最も近い完成した正方マトリックスに代入可能か否かを決定するステップと、代入可能でない結果になった場合は、最も近い完成した正方マトリックスの列数を一つ増やして第一のマトリックスを作成するステップを含む認証コードを生成するコンピュータ応用方法。
請求項7記載の認証コードを生成するコンピュータ応用方法において、前記選択されたパターンから抽出された座標に含まれる合計文字数を計算するステップはさらに、抽出された完成された正方マトリックスの計算上の合計数に基づいて最も近い完成した正方マトリックスを決定するステップを含む認証コードを生成するコンピュータ応用方法。
請求項7記載の認証コードを生成するコンピュータ応用方法において、前記ユーザがパターンを選択できるようにするステップはさらに、選択されたパターンの文字をカスタム化するステップを含み、カスタム化文字フォーマットは大文字、小文字およびこれらの組合せから成るグループから選択される認証コードを生成するコンピュータ応用方法。
【発明を実施するための形態】
【0020】
次に認証コードの生成および復元のコンピュータ応用システムおよび方法について本発明の範囲および目的を限定することを意図したものではない添付の図面を参照しながら説明する。この説明は図を用いて行われる。
【0021】
本発明の実施例ならびに様々な特徴および優位性の詳細を限定することのない実施例を参照することによって以下に説明する。確立している既存のコンポーネントならびに処理技術についての説明は省略し、本発明の実施例についての理解を不要に困難にしないようにした。本発明に使用されている例は単に本発明の実施例を実用化可能にする方法の理解を容易にし、この分野の当業者が本発明の実施例を実施することを可能にすることのみを目的としている。従って、本発明の実施例の範囲を限定するものと解釈されてはならない。
【0022】
具体的実施例についての以下の説明は本発明の実施例が持つ一般的性質を十分に明らかにしているので、現状の知識を適用することにより第三者は前記一般的概念から乖離することなく前記具体的実施例を異なる用途のために変更および/または適合することができる。従って、同適合や変更は本発明の実施例と同等の物としての意味およびその範囲で理解ることが意図されるべきであり、意図されている。本明細書に使用されている句節の用法や用語は説明目的のためであって限定するために使用されてはいない。従って、本明細書に記載された実施例は好ましい実施例に基づいて説明されていると同時に、同分野の当業者は、本明細書に記載された実施例を本明細書で説明された実施例の意図および範囲で変更可能であると認めることができる。
【0023】
近年、銀行口座、メール、作業環境、メッセージ等の情報を保護するための認証コードの作成の際に以下の認証ポリシーに従って強力な認証コードを作成するのは極めて容易であることは認められてきた。強力な認証コードを作成する必要性は、ユーザの情報や個人情報が漏れる原因となっているクラッカーまたはハッカーによる増大する攻撃を原因として認識されている。
【0024】
しかしながら、ユーザが前記認証コードを想起する必要があるときに問題が発生する。一定期間が経過すると、ユーザは複数の情報源を保護するために複数の認証コードを作成する。従って、複数の認証コードを記憶することはユーザにとって困難な作業となるほか、このために認証コードまたは認証コードの正しい文字の順序を必要な時に忘れている可能性が生じる。既存のソリューションにおいて、認証コードを忘れた場合に、認証コードを復元するため、既存のソリューションはユーザに選択された秘密の質問への答えを選ぶか記入すること、またはユーザ登録の際に入力した他の代替連絡先アカウントを要求する場合がある。後に、ユーザが忘れた認証コードを実際に要求するときには、ユーザの代替連絡先アカウントにリンクが送られて認証コードをリセットするよう求める、またはソリューションがユーザが選択した秘密の質問への答えを求める。ユーザが入力した答えが正解であればソリューションは既存の認証コードをリセット可能にする。しかし、忘れた認証コードを取得する前記方法が失敗した場合、または機能しなかった場合、ユーザはヘルプデスクに電話する羽目になりパニックに陥る。
【0025】
既存のソリューションが持つ前記問題を回避するため、本発明は認証コード生成のコンピュータ応用システムおよび方法を提供する。本発明のシステムはユーザに情報を保護するための強力な認証コードを作成するのを可能にするばかりではなく、ユーザが認証コードを思い出しやすい仕組みを提供する。ユーザは登録フォームに記入することによってシステムに登録しシステムの機能にアクセスする。登録フォームにはユーザの選択に基づいて認証コードを作成し、認証コードを作成するためにすべての方針を満たすことが可能になるための規定が記載されている。
【0026】
本明細書で説明される本発明の代表的実施例は、強力な認証コードの作成および認証方針をすべて満たすプロセスである。これらのプロセス(手順)は以下のステップを含む。
・ユーザ入力による基本文の受け取る:「これが私の銀行のパスワード」、
・基本文から認証コードを抽出する:
this i
s my
ban
k pass
wordとした場合、例えば"thismbakword"が基本文から抽出される。
・抽出されたコードに特殊文字を挿入する:
$thismbak
*word;
・数字を挿入する:$thismbak*word
97;
・大文字と小文字を混ぜる:$thismb
AK*word97;そして
・目的の認証コードが取得される:
$thismbAK*word97
前記ステップによって作成される認証コードは強力ではあるが、ユーザにとってこの認証コードを常時思い出すのは至難である。
【0027】
図1は、本発明を適用した認証コード生成用コンピュータ応用システム100のコンポーネントのシステムレベルブロック図が示されている。システム100は、メモリに格納されたコンピュータコマンドと、該コンピュータコマンドを実行するコンピューティングデバイスのプロセッサのセットである。システム100に対応するこのコンピュータコマンドはサーバに保存して通信網からアクセス可能である。システム100はこれに限定されることなく、ユーザ入力モジュール10、第一のマトリックスジェネレータ20、パターンジェネレータ30、パターンセレクタ40、コード生成エンジン50、ピンジェネレータ60、マスキングモジュール70、およびレポジトリ90を含む。ユーザは基本文をシステム100に入力するよう要求される。この基本文はユーザ入力モジュール10によって受け取られる。基本文は複数の英数字および特殊文字を含むことができる。英数字は次の文字を含む。
a、b、c、d、e、f、g、h、i、j、k、l、m、n、o、p、q、r、s、t、u、v、w、x、y、z、A、B、C、D、E、F、G、H、I、J、K、L、M、N、O、P、Q、R、S、T、U、V、W、X、Y、Z、0、1、2、3、4、5、6、7、8、9
特殊文字は以下の文字を含む。
~、!、@、#、$、%、^、&、*、(、)、#、+、=、-、`、,、.、/、\、;、'、[、]、[、]、|、:、"、?、>、<
ユーザ入力モジュール10は、ユーザ入力による基本文をユーザ入力モジュール10がこれを介して受け取るキーパッドと接続されたハードウェアポートをインターフェイスとして使用する。
【0028】
本発明の第一のマトリックスジェネレータ20は、ユーザ入力モジュール10と連携して機能し、ユーザが入力した基本文を受け取る。マトリックスジェネレータ20は、参照数字22が付された第一の計算素子および参照数字24が付された決定素子を含む。第一の計算素子22はユーザ入力による基本文を受け取り、基本文に含まれる合計文字数を計算する。計算された文字数に基づいて、第一の計算素子22は最も完成度の高いマトリックスを決定する。さらに、決定素子24は基本文の全文字が決定済みの最も近い完成した正方マトリックスに整合するか否かを判断する。基本文の全文字が最も完成度の高い正方マトリックスに整合しなければ、最も完成度の高い正方マトリックスに列数が一つ追加される。この過程は第一のマトリックスジェネレータ20によって行われる。第一のマトリックスの行と列の数が決定されると、第一のマトリックスジェネレータ20は第一のマトリックスに基本文の各文字を代入する。第一のマトリックスの各セルに基本文にある一つの文字が代入される。実施例のひとつにおいては、基本文の文字が第一のマトリックスのセルに順番に代入される。
【0029】
システム100のパターンジェネレータ30は第一のマトリックスジェネレータ10と連携して機能し、ユーザが入力した基本文から文字を埋められた第一のマトリックスを受け取る。パターンジェネレータ30は第一のマトリックスジェネレータ20によって作成された少なくとも第一のマトリックスセルを選択することにより複数のパターンを生成することができる。パターンジェネレータ30はパターンセレクタ40と連携して機能する。パターンセレクタ40はパターンジェネレータ30によって生成されたすべてのパターンを受け取り、ユーザが望むパターンを利用可能なものの中から一つ選択することができるようにする。パターンセレクタ40は参照数字42が付されたカスタム化モジュールを含む。カスタム化モジュール42はユーザが選択したパターンの文字をカスタム化することを可能にする。ユーザは、選択されたパターンに含まれる文字を大文字か小文字にカスタム化することが可能であるか、または大文字と小文字を組合せることができる。
【0030】
本発明のパターンセレクタ40は、選択されたパターンがカスタム化され、ユーザから確認コマンドを受けると、コード生成エンジン50と連携して機能し、選択されたパターンをユーザが最初に入力した基本文に基づいて認証コードを生成するために通信する。コード生成エンジン50は限定されることなく、第二のマトリックスジェネレータ51、第三のマトリックスジェネレータ52、第四のマトリックスジェネレータ53、16進数コンバータ54、ハッシュコンバータ55を含む。第二のマトリックスジェネレータ51は、参照数字51aが付された第一の抽出素子を含む。第二のマトリックスジェネレータ51は選択されたパターンを受け取り選択されたパターンのセルに代入される文字を決定する。選択されたパターンにより決定された文字に基づいて、第一の抽出素子51aは決定された文字に対応するASCII値を抽出する。文字のASCII値が第一の抽出素子51aによって抽出されると、第二のマトリックスジェネレータ51は第二のマトリックスを生成する。第二のマトリックスの各セルには、受け取られた選択されたパターンに対応する文字のASCII値を代入される。
【0031】
第三のマトリックスジェネレータ52は、選択されたパターンを受け取り選択されたパターンのセルに代入される文字を決定する。第三のマトリックスジェネレータ52は、参照数字52aが付された第二の抽出素子および参照数字52bが付された第二の計算素子を含む。第二の抽出素子52aは少なくとも選択されたパターンの各文字ごとの座標を抽出することができる。第二の計算素子52bは第二の抽出素子52aと連携して機能し、選択されたパターンの文字に対応する座標リストを受け取る。第二の計算素子52bは抽出された座標に含まれる合計文字数を計算することができる。通常の場合、座標は数字で抽出される。選択されたパターンの抽出された座標および計算された数字の数に基づいて第三のマトリックスジェネレータ52は、第三のマトリックスを作成するための行と列の数を決定する。第三のマトリックスは、第二の計算素子52bによって計算された座標文字の合計数に基づいた最も完成に近い正方マトリックスに対応する。第三のマトリックスの行と列の数が決定されると、第三のマトリックスジェネレータ52は第二の抽出素子52aが抽出した座標値を第三のマトリックスの各セル代入することによって第三のマトリックスを生成する。
【0032】
本発明の第四のマトリックスジェネレータ53は、第二のマトリックスジェネレータ51および第三のマトリックスジェネレータ52と連携して機能する。第四のマトリックスジェネレータ53は第二のマトリックスジェネレータ51から第二のマトリックスを、第三のマトリックスジェネレータから第三のマトリックス52を受け取る。第四のマトリックスジェネレータ53は参照数字53aが付されたマトリックス乗算素子を含む。マトリックス乗算素子53aは第二のマトリックスを第三のマトリックスで
乗算することができる。マトリックス乗算素子53aが実行したマトリックスの
乗算結果に基づき、第四のマトリックスジェネレータ53はマトリックスの
乗算結果を格納すべき第四のマトリックスを作成するための行と列を決定する。第四のマトリックス用の行と列が決まると、第四のマトリックスジェネレータ53は第四のマトリックスの各セルに少なくともマトリックスの
乗算で取得された値を代入することによって第四のマトリックスを生成する。第四のマトリックスが生成されると、第四のマトリックスジェネレータ53は16進数コンバータ54と連携して機能する。16進数コンバータ54は、第四のマトリックスを受け取った後、第四のマトリックスにある各セルの値を16進数に変換する。16進数コンバータ54は16進数マトリックスを第四のマトリックスから生成する。ハッシュコンバータ55は16進数コンバータ54と連携して機能し、16進数マトリックスを受け取る。ハッシュコンバータ55は16進数マトリックスの各セル値をハッシュし、対応するユーザのために認証コードを取得することができる。通常の場合は、ハッシュコンバータ55はSHA-256を使用して16進数マトリックスの16進値をハッシュし、認証コードを取得する。
【0033】
本発明による一実施例では、システム100のピンジェネレータ60は少なくとも四桁の個人別暗証番号(PIN)を生成する。ピンジェネレータ60は、ユーザが生成されたPINをカスタム化することも可能にする。ピンジェネレータ60はマスキングモジュール70と連携して機能し、生成されたPINを転送する。マスキングモジュール70はパターンセレクタモジュール40と連携して機能し選択されたパターンを受け取る。マスキングモジュール70は選択されたパターンをピンジェネレータ60が生成したPINでマスクすることができる。マスクされ選択されたパターンはさらにレポジトリ90に格納される。
【0034】
本発明のレポジトリ90は、登録の際に発行されたユーザのログオン情報、ユーザが送信した基本文、選択されたパターンに対応するユーザがカスタム化したパターンおよびマスクされたパターン、PIN、認証コード、ユーザが選択した秘密の質問およびユーザが選択した秘密の質問への答え等のユーザ関連情報を格納する。
【0035】
図2は、本発明の
図1に図示された認証コード生成用コンピュータ応用システム100を実装する方法を示している。本発明が提供する方法は、以下のステップを含む。
・複数の英数字からなる基本文文字をユーザ入力として受け取るステップ202、
・ユーザが入力した基本文の合計文字数を計算し、ユーザ入力による基本文に含まれる計算された合計文字数に基づいて最も近い完成した正方マトリックスを特定するステップ204、
・第一のマトリックスの各セルに基本文のうち少なくとも一つの文字を代入することにより第一のマトリックスを作成するステップ206、
・第一のマトリックスの少なくとも一つのセルを選択することによりパターンを生成するステップ208、
・ユーザが生成されたパターンから一つのパターンを選択できるようにするステップ210、
・選択されたパターンの各文字に対応するASCII値を抽出し、選択されたパターンの各文字ASCII値を第二のマトリックスの各セルに代入することによって第二のマトリックスを生成するステップ212、
・選択されたパターンの各文字の少なくとも一つの座標を抽出し、選択されたパターンの抽出された座標に含まれる合計文字数を計算し、第三のマトリックスの各セルに選択されたパターンから抽出された座標値を代入することによって第三のマトリックスを生成するステップ214、
・第二のマトリックスと第三のマトリックスを乗じて第四のマトリックスを得る(第四のマトリックスの各セル値を16進値に変換する)ステップ216、および
・第四のマトリックスの16進値をハッシュし認証コードを得るステップ218。
【0036】
本発明のこの方法は、生成するユーザに対応する個人別暗証番号(PIN)を生成し、次にこのPINを使用して選択されたパターンをマスクすることを含む。
【0037】
本発明のユーザ入力による基本文に基づいて計算された合計文字数から最も近い完成した正方マトリックスを識別するステップは、基本文の全文字を最も近い完成した正方マトリックスに代入可能か否かを決定するステップを含む。ここに代入可能でないという
結果になった場合は、最も近い完成した正方マトリックスの列数を一つ増やして第一のマトリックスを作成する。
【0038】
本発明の選択されたパターンから抽出された座標に含まれる合計文字数を計算するステップはさらに、抽出された完成された正方マトリックスの計算上の合計数に基づいて最も近い完成した正方マトリックスを決定するステップを含む。
【0039】
本発明のユーザがパターンを選択できるようにするステップはさらに、選択されたパターンの文字をカスタム化するステップを含む、ここにカスタム化文字フォーマットは大文字、小文字およびこれらの組合せから成るグループから選択される。
【0040】
本発明のこの方法はレポジトリに登録の際に発行されたユーザのログオン情報、ユーザが送信した基本文、選択されたパターンに対応するユーザがカスタム化したパターンおよびマスクされたパターン、PIN、認証コード、ユーザが選択した秘密の質問およびユーザが選択した秘密の質問への答え等の少なくとも一つのユーザ関連情報を格納する格納するステップを含む。
【0041】
図3には、本発明のユーザ入力による基本文を復元するためのコンピュータ応用システム300のコンポーネントのシステムレベルブロック図が示されている。システム300は限定されることなく、レポジトリ310、第一のマトリックスジェネレータ320、第二のマトリックスジェネレータ330、第一のマトリックス乗算素子340、第四のマトリックスジェネレータ350、第二のマトリックス乗算素子360、第三の抽出素子370、転置モジュール380および第三のマトリックス乗算素子390を含む。認証コードをレポジトリから復元するためのシステム300は、ユーザが送信した要求に基づいている。本発明のシステム300を以下二つの実施例によって説明する。
a)第一の実施例はユーザ入力基本文をレポジトリ310に格納するためのメモリに格納された一組のコマンドのプロセッサによる演算に関わり、
b)第二の実施例はレポジトリ310から格納されたユーザ入力基本文を復元するためのメモリに格納された一組のコマンドのプロセッサによる演算に関わり、ここにメモリとプロセッサはユーザがアクセスするコンピューティングデバイスのハードウェア構成の中に構成されている。
【0042】
レポジトリ310は登録の際に発行されたユーザのログオン情報、ユーザが送信した基本文、選択されたパターンに対応するユーザがカスタム化したパターンおよびマスクされたパターン、PIN、認証コード、ユーザが選択した秘密の質問およびユーザが選択した秘密の質問への答え等のユーザ関連情報を格納する。
【0043】
システム300の第一の実施例に含まれる第一のマトリックスジェネレータ320はレポジトリ310と連携して機能する。第一のマトリックスジェネレータ320は参照数字322が表す第一の抽出素子を含む。第一の抽出素子322はユーザ入力基本文の文字をレポジトリ310から抽出する。第一の抽出素子322も基本文の対応する文字のASCII値を抽出する。第一のマトリックスジェネレータ320は基本文に存在する文字数に基づいて作成されるマトリックスの数を決定する。第一のマトリックスジェネレータ320は基本文の全文字を格納する第一のマトリックスセットを生成する。第一のマトリックスセットに対応するマトリックスの各セルに対応する基本文の文字ASCII値を代入する。第一のマトリックスセットの各マトリックスは(3×3)マトリックスであり、換言すると行と列を三つずつ持つ。
【0044】
第二のマトリックスジェネレータ330はレポジトリ310と連携して機能する。第二のマトリックスジェネレータ330は参照数字332が付された第二の抽出素子を含む。第二の抽出素子332はユーザが選択した秘密の質問のユーザが入力した答えから文字を抽出する。第二の抽出素子332はその答えの対応する文字のASCII値を抽出する。第二のマトリックスジェネレータ330は答えにある文字数に基づいて作成されるマトリックスの数を決定する。第二のマトリックスジェネレータ330は第二のマトリックスセットにある答えの全文字を格納する第二のマトリックスセットを生成する。第二のマトリックスセットに対応するマトリックスの各セルには答えに対応する文字のASCII値が代入される。第二のマトリックスセットの各マトリックスは(3×3)マトリックスであり、換言すると行と列を三つずつ持つ。
【0045】
第一のマトリックスセットと第二のマトリックスセットが作成されると、第一のマトリックス乗算素子340は第一のマトリックスジェネレータ320および第二のマトリックスジェネレータ330と連携して機能する。第一のマトリックス乗算素子340はマトリックスを
乗算する、ここに第一のマトリックスセットに対応する各マトリックスは第二のマトリックスセットに対応する各マトリックスを掛け合わせる。第一のマトリックス乗算素子340はさらに、マトリックスの
乗算に基づいて第三のマトリックスセットを生成し、さらに、第三のマトリックスセットをレポジトリ310に格納する。
【0046】
第四のマトリックスジェネレータ350は第一のマトリックスジェネレータ320と第二のマトリックスジェネレータ330と連携して機能する。第四のマトリックスジェネレータ350は、参照数字352を付したマトリックスセレクタおよび参照数字354を付したキー入力素子を含む。マトリックスセレクタ352は通常の場合、第一のマトリックスセットに対応する第一のマトリックスおよび第二のマトリックスセットから第一のマトリックスを選択する。ユーザはキー入力素子354によりキーを入力することができる。このキーはユーザがアクセスしているコンピューティングデバイスのIP(インターネットプロトコル)またはユーザがアクセスしているコンピューティングデバイスのMAC(メディアアクセスコントロール)アドレス、または登録ユーザのEメールアドレスやユーザのコンピューティングデバイスのIMEI(国際携帯端末機器識別子)番号であってよい。ユーザが入力するキーはセキュリティキーである。第四のマトリックスジェネレータ350は第一のマトリックスセットから選択されたマトリックス、第二のマトリックスセットから選択されたマトリックスおよびユーザが入力したキーのマトリックスを
乗算する。
乗算されたマトリックスに基づいて、第四のマトリックスジェネレータ350はキーマトリックスを生成する。
【0047】
第二のマトリックス乗算素子360はレポジトリ310と連携して機能する。第二のマトリックス乗算素子360は第一のマトリックス乗算素子340と連携して機能し、第三のマトリックスセットを受け取る。第二のマトリックス乗算素子360は第四のマトリックスジェネレータ350と連携して機能し、キーマトリックスを受け取る。第二のマトリックス乗算素子360は第三のマトリックスセットに対応する各マトリックスとキーマトリックスを乗じてマトリックスを
乗算する。
乗算されたマトリックスに基づいて、第二のマトリックス乗算素子360は第四のマトリックスセットを生成し、さらに第四のマトリックスセットをレポジトリ310に格納する。一つの実施例においては、ユーザが入力したセキュリティキーがユーザのコンピューティングデバイスのMAC/IPアドレスに対応していれば、第四のマトリックスセットもコンピューティングデバイスのメモリに格納される。他の一つの実施例においては、ユーザが入力したセキュリティキーがユーザの登録メールアドレスに対応していれば、第四のマトリックスセットもユーザのメールに格納される。さらに他の一つの実施例においては、ユーザが入力したセキュリティキーがユーザのコンピューティングデバイスのIMEI番号に対応していれば、第四のマトリックスセットもユーザのコンピューティングデバイスに格納される。
【0048】
システム300の第二の実施例に従い、第三の抽出素子370はレポジトリ310と連携して機能し、第四のマトリックスセット、第二のマトリックスセットおよびキーマトリックスを抽出する。転置モジュール380は第三の抽出素子370と連携して機能し、抽出された第四のマトリックスセット、第二のマトリックスセットおよびキーマトリックスを受け取る。転置モジュール380は第二のマトリックスセットおよびキーマトリックスに対してマトリックス転置機能を実行する。このアクションは転置された第二のマトリックスセットおよび転置されたキーマトリックスを生成する。第三のマトリックス乗算素子390はレポジトリ310、第三の抽出素子370および転置モジュール380と連携して機能する。第三のマトリックス乗算素子390は抽出された第四のマトリックスセット、転置された第二のマトリックスセットおよび転置されたキーマトリックスを受け取る。第三のマトリックス乗算素子390は第一のマトリックスを
乗算する。ここに、第四のマトリックスセットに対応する各マトリックスは転置されたキーマトリックスと乗じられる。第一のマトリックスの
乗算の結果得られたマトリックスに基づいて、第三のマトリックス乗算素子390は第二のマトリックスを
乗算する。ここに、第一のマトリックスの
乗算から得られた各結果マトリックスは転置された第二のマトリックスセットと乗じられて基本文を復元する。通常の場合、第一のマトリックスの
乗算が完了した時点に得られた結果マトリックスは第三のマトリックスセットと対応する。第一のマトリックスの
乗算から得られた結果マトリックスが第一のマトリックス乗算素子340によって先に生成され保存された第三のマトリックスセットと対応していなければ、エラーメッセージがユーザがアクセスしているコンピューティングデバイスのユーザインタフェースに表示される。通常の場合、第二のマトリックスの
乗算が完了した時点で得られた結果マトリックスは第一のマトリックスセットに対応し、ここに第一のマトリックスセットは前記レポジトリに格納される基本文文字のASCII値を表す。第二のマトリックスの
乗算が成功裏に完了したことに基づいて、確認メッセージがユーザがアクセスしているコンピューティングデバイスのユーザインタフェースに表示される。第二のマトリックスの
乗算が完了した時点で得られた結果マトリックスが第一のマトリックスジェネレータ320によって生成され保存された第一のマトリックスセットに対応していなければ、エラーメッセージがユーザがアクセスしているコンピューティングデバイスのユーザインタフェースに表示される。
【0049】
図4aおよび
図4bは、本発明の
図3に図示されたユーザ入力基本文を復元するためのコンピュータ応用システム300により実施する方法である。本発明が提供する方法は以下のステップを含む。
・一つの実施例においては、ユーザ入力による基本文をレポジトリに格納するためにプロセッサによるメモリに格納された一組のコマンドを計算するステップ、
・・登録の際に発行されたユーザのログオン情報、ユーザが送信した基本文、選択されたパターンに対応するユーザがカスタム化したパターンおよびマスクされたパターン、PIN、認証コード、ユーザが選択した秘密の質問およびユーザが選択した秘密の質問への答え等の少なくとも一つのユーザ関連情報をレポジトリに格納するステップ402、
・・基本文文字および基本文404各文字の対応するASCII値を抽出するステップ404、
・・基本文全文字をマトリックスセルに格納するため第一のマトリックスセットを生成するステップ(基本文文字は第一のマトリックスセットにある対応するASCII値によって表される)406、
・・ユーザが選択した秘密の質問の答えの文字と答えの各文字に対応するASCII値を抽出するステップ408、
・・第二のマトリックスセットを生成して答えの全文字をマトリックスセルに格納するステップ(答えの文字は対応するASCII値として第一のマトリックスセットに表される)410、
・・マトリックスを
乗算し(各マトリックスが第二のマトリックスセットに対応する第一のマトリックスセットに各マトリックスが対応する)、さらにこのマトリックスの
乗算に基づいて第三のマトリックスセットを生成し前記レポジトリに格納するステップ412、
・・第一のマトリックスセットから選択された一つのマトリックス、第二のマトリックスセットから選択されたマトリックスおよびキーを掛け合わせるマトリックスによってキーマトリックスを生成するステップ414と、最後に
・・マトリックスを
乗算し(各マトリックスは、キーマトリックスとともに第三のマトリックスセットに対応する)、さらに第四のマトリックスセットを生成し、前記レポジトリに格納するステップ416、を含む。
・他の実施例は、前記レポジトリに格納されたユーザ入力基本文を復元するため前記メモリに格納されたコマンドセットを前記プロセッサが計算するステップ、
・・前記レポジトリから、第四のマトリックスセット、第二のマトリックスセットおよびキーマトリックスを抽出するステップ418、および
・・キーマトリックスと第二のマトリックスセットにマトリックスの転置を実行するステップ420と、最後に
・・マトリックスを
乗算し(マトリックスの
乗算の結果マトリックスに基づいた各マトリックスは、転置されたキーマトリックスとともに第四のマトリックスに対応する)、さらにマトリックスを
乗算するステップ、つまり、各結果マトリックスと転置された第二のマトリックスセットを使用して(掛けわせてマトリックスを
乗算し)基本文を復元するステップ422。
【0050】
例1
本発明の強力な認証コードを生成するステップについて一実施例により説明する。
【0051】
ステップ1:
・ユーザ入力による基本文-「this is my bank password」を受け取る。
・基本文に含まれる合計文字数、20を計算する。ここに基本文の20文字を(5×4)マトリックスに表現可能である。
【0052】
ステップ2:
・最も近い完成した正方マトリックスを一つの(4×4)マトリックスとして決定する。基本文の合計文字数が20なので、列数を一つ増やす。
・一つの(4×5)マトリックス生成し(4×5)マトリックスに表Iに示す基本文の文字を代入する。
表I
【0053】
ステップ3:
・表II、表III、表IV、表V等同様に表されている複数のパターンを生成する。
表II
表III
表IV
表V
【0054】
ステップ4:
・ステップ3で生成されたパターンから一つのパターンを選択する。例えば、ユーザが表IIのパターンを選択する場合は「F」となる。
表II-1
・選択されたパターンに存在する文字を抽出する。例えば「thisnks」。
【0055】
ステップ5:
・選択されたパターンの文字をカスタム化する。ユーザは下記の表
II-2に表されているように、選択されたパターンの文字を大文字、小文字またはこれらの組合せのいずれかでカスタム化可能である。
表II-2
・変更された文字列「THIsnks」を抽出する。
【0056】
ステップ6:
・表VIに表されるように選択されカスタム化されたパターンに対応するASCII値を抽出する。
表VI
【0057】
ステップ7:
・抽出されたASCII値のマトリックスを生成し、選択された文字がマトリックスの
乗算規則を満たしていない場合は表VIIに表されるように、ゼロ(0)を補完記号として追加する。
【0059】
ステップ8:
・関連付けられた座標およびステップ5の表II-2に表されているように選択されたパターンの文字(X/Y) (1,1) (1,2) (1,3) (2,1) (3,1) (3,2) (4,1)を抽出する。
・表VIIIに表されるように、座標マトリックスを生成する。
表VIII :マトリックスO
【0060】
ステップ9:
・マトリックスを
乗算し(マトリックスC × マトリックスO)、表IXに表される新規マトリックスXを生成する。
表IX:マトリックスX
【0061】
ステップ10:
・ マトリックスXの値を表Xに表すように16進値に変換する。
表X:マトリックスX
【0062】
ステップ11:
・SHA-256を使用して表Xに表されているように、マトリックスXの値(343 1e8 1bf 182 d9 1af 144 147)に対してハッシュ関数を実行し、次の強力な認証コードを得る。
52fc413d703347754833af9f301c34c2e22caea5d9fbacc0d602b508427f676
パスワードを呼び出すにはユーザはステップ4で選択されたパターンを覚えていなければならない。
【0063】
例2
本発明の、もう一つの実施例を、忘れた認証コードと基本文の復元を管理するステップを用いて説明する。
図5を参照すると、代表的実施例は忘れた認証コードを管理するための以下のステップを含む。
・ ユーザ入力による基本文を受け取る。
t h i s i s m y b a n k p a s s w o r d ;
・ 基本文をなす文字のASCII値を生成する。
116 104 105 115 105 115 109 121 98 97 110 107 112 97 115 115 119 111 114 100 ;
・複数の(3×3)マトリックスを作成し、基本文の全文字を格納する。ここにASCII値はマトリックス (A1、A2、A3)に、表XIに示されるように代入される。
表XI
・選択された秘密の質問への答えを受け取る。例えば以下のものが挙げられる。
秘密の質問:「最初に行った学校の名前は何?」
秘密の質問の答え: e c o s p a c e h i g h s c h o o l
・秘密の質問をなす文字のASCII値を生成する。
101 99 111 115 112 97 99 101 104 105 103 104 115 99 104 111 111 108
・複数の(3×3)マトリックスを作成し、秘密の質問の答えを格納する。ここにASCII値はマトリックス(S1およびS2)に、表XIIに示されるように代入される。
【0065】
・代替的には、基本文のマトリックス(A1、A2、A3)と秘密の質問の答えのマトリックス(S1およびS2)を掛け
合わせ、マトリックスA1S1、A2S2、A3S1を得る。ここにマトリックスの
乗算後に得たマトリックスはレポジトリに格納される。
マトリックスの
乗算結果:A1S1、A2S2、A3S1
・秘密鍵(K1)をユーザから受け取る。例えば、ユーザはコンピューティングデバイスのMAC/IPアドレス、ユーザのEメールアドレス、ユーザのコンピューティングデバイスのIMEIを秘密鍵として入力可能である。
・基本文マトリックス(A1)、秘密の質問の答えのマトリックス(S1)および秘密鍵(K1)のマトリックス乗算を実行することによりセキュリティマトリックスを計算する。ここに、セキュリティマトリックス(A1 X S1 X K1):A1S1K1
・マトリックス(A1S1、A2S2、A3S1)をセキュリティマトリックス(A1S1K1)とマトリックス乗算し、一組の結果マトリックスを得る。ここに、結果マトリックスは:[(A1S1) * (A1S1K1)]、[(A1S2) * (A1S1K1)]、[(A1S3) * (A1S1K1)]
・結果マトリックス
[[(A1S1) * (A1S1K1)], [(A1S2) * (A1S1K1)], [(A1S3) * (A1S1K1)]]をレポジトリに格納する。
【0066】
図6を参照すると、本発明の一実施例は基本文を復元するための以下のステップを含む。
・演算入力をセキュリティマトリックス(A1S1K1)、秘密の質問の答えをマトリックス(S1、S2)として受け取る。
・マトリックス
[[(A1S1) * (A1S1K1)]、[(A1S2) * (A1S1K1)]、[(A1S3) * (A1S1K1)]]をレポジトリから抽出する。
・セキュリティマトリックス(A1S1K1)、結果転置されたセキュリティマトリックス(A1S1K1)'のマトリックス転置を実行する。
・抽出されたマトリックス
[[(A1S1) * (A1S1K1)]、[(A1S2) * (A1S1K1)]、[(A1S3) * (A1S1K1)]]と転置されたセキュリティマトリックス(A1S1K1)'からマトリックスを
乗算する。
・マトリックス (A1S1)、(A2S2)、(A3S1)を以下の結果として取得する。
・秘密の質問の答えマトリックス (S1、S2)を転置し、転置結果の秘密の質問の答えマトリックス (S1'、S2')、および、
・転置された秘密の質問の答えマトリックス (S1')とマトリックス(A1S1)および(A3S1)のマトリックス
乗算を実行し、順に転置された秘密の質問の答えマトリックス(S2')とマトリックス(A2S2)のマトリックス
乗算を順に実行する
。および、
・マトリックスA1、A2、A3をユーザが入力した基本文に対応する結果マトリックスとして取得する。
【0067】
<技術的進歩>
本発明が意図する認証コードの生成および復元のコンピュータ応用システムおよび方法の技術的進歩には以下の実現が含まれる。
・認証コード生成用コンピュータ応用システムおよび方法のためのコンピュータ応用システム、
・認証コード復元用コンピュータ応用システムおよび方法のためのコンピュータ応用システム、
・認証コードの生成および復元のために基本文をユーザ入力として受け取るシステム、
・認証コード生成に関わる方針に準拠する認証コードを生成できるシステム、
・ユーザが覚えやすい認証コードを生成するシステム、
・複数のユーザカウント用に複数の認証コードの作成を可能にするシステム、
・ユーザの個人情報を保持しつつ高度に安全な認証コードを生成するシステム、
・忘れた認証コードを容易に復元できるシステム、
・ユーザカウントに面倒無くログインすることを可能にするシステム、
・カスタム化可能であり複数のセキュリティレイヤーがあるシステム、および、
・総当たり攻撃や辞書攻撃のセキュリティリスクを軽減するシステム。
【0068】
本明細書を一貫して用語「成す」「構成する」やその類語としての「組成する」または「なしている」は記載されている要素、整数またはステップまたは要素、整数またはステップのグループを含むがその他の要素、整数またはステップまたはその他の要素、整数またはステップのグループを除くことなくこれらを含むことを含意している。
【0069】
異なる物理的パラメータ、変数、寸法や数量を表す数値は概数であって、パラメータ、変数、寸法や数量に代入された数値より高い/低い値は本発明の範囲に含まれることが意図されている。但し、明細書に異なる記載がなされている場合はこの限りではない。
【0070】
前記具体的実施例は本発明の実施例が持つ一般的性質をじゅうぶんに明らかにしているので、現状の知識を適用することにより他者は前記一般的概念から乖離することなく前記具体的実施例を異なる用途のために変更および/または適合することができる。従って、同適合や変更は本発明の実施例と同等の物としての意味およびその範囲で理解されることが意図されるべきであり、意図されている。本明細書に使用されている句節の用法や用語は説明目的のためであって限定するために使用されてはいない。従って、本明細書に記載された実施例は好ましい実施例に基づいて説明されていると同時に、当業者は本明細書に記載された実施例が本明細書で説明された実施例の意図および範囲で変更しても実施可能であることが認められる。