(57)【要約】【課題】ユーザを認証する方法およびシステムを提供する。【解決手段】リソースの要求は、ユーザ・デバイスから受信される。事前に定められた数字が受信される。第１の数字および第２の数字が作成される。第１の数字および事前に定められた数字に基づいた第１の離散対数が決定され、第２の数字と一緒にユーザ・デバイスに送信される。第２の離散対数は、ユーザ・デバイスから受信される。第１のパス・コードは、第２の離散対数、第１の数字、および事前に定められた数字に基づいて、第３の離散対数を介して計算される。第２のパス・コードは、第１の離散対数、第３の数字、および事前に定められた数字に基づいて、第４の離散対数を介して受信される。第１のパス・コードが第２のパス・コードと同一であると決定すると、ユーザ・デバイスは、コンピューティング・デバイスと関連付けられたリソースへアクセスすることを許可される。【選択図】図４
2021507580.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
ネットワークを介した通信を可能にするために前記プロセッサに結合されるネットワーク・インターフェースと、
前記プロセッサに結合される記憶デバイスと、
前記記憶デバイスに記憶されるセキュリティ・エージェント・ソフトウェアと、を備える、コンピューティング・デバイスであって、前記プロセッサによる前記ソフトウェアの実行が、
ユーザ・デバイスからリソースの要求を受信することと、
前記ユーザ・デバイスから事前に定められた数字（ｐ）を受信することと、
第１の数字（ｃ）および第２の数字（ｇ）を作成することと、
前記第１の数字（ｃ）および前記事前に定められた数字（ｐ）に基づいて第１の離散対数を決定することと、
前記第１の離散対数および前記第２の数字（ｇ）を前記ユーザ・デバイスに送信することと、
前記ユーザ・デバイスから、前記ユーザ・デバイスによって生成される第３の数字（ｓ）、前記事前に定められた数字（ｐ）、および前記第２の数字（ｇ）に基づいて、第２の離散対数を受信することと、
前記第２の離散対数、前記第１の数字（ｃ）、および前記事前に定められた数字（ｐ）に基づいて、第３の離散対数を介した第１のパス・コード（Ｒ１）を計算することと、
前記第１の離散対数、前記第３の数字（ｓ）、および前記事前に定められた数字（ｐ）に基づいて、第４の離散対数を介した第２のパス・コード（Ｒ２）を前記ユーザ・デバイスから受信することと、
前記第１のパス・コード（Ｒ１）を前記第２のパス・コード（Ｒ２）と比較することと、
前記第１のパス・コード（Ｒ１）が前記第２のパス・コード（Ｒ２）と同一であると決定すると、前記ユーザ・デバイスが前記リソースにアクセスすることを許可することと、を含む行為を実施するように前記コンピューティング・デバイスを構成する、コンピューティング・デバイス。
【請求項２】
前記事前に定められた数字（ｐ）が、前記ユーザ・デバイスの識別（ＩＤ）番号である、請求項１に記載のコンピューティング・デバイス。
【請求項３】
前記事前に定められた数字（ｐ）が、ハイパーテキスト転送プロトコル・セキュア（ＨＴＴＰＳ）チャネルを通じて受信される、請求項１または２のいずれかに記載のコンピューティング・デバイス。
【請求項４】
前記ユーザ・デバイスに送信される前記第１の離散対数および前記第２の数字（ｇ）が、公衆交換電話網（ＰＳＴＮ）チャネルを介する、請求項１ないし３のいずれかに記載のコンピューティング・デバイス。
【請求項５】
前記コンピューティング・デバイスによる前記事前に定められた数字（ｐ）の受信が、前記第１の離散対数および前記第２の数字（ｇ）を前記ユーザ・デバイスに送信するチャネルとは異なるチャネルを介する、請求項１ないし４のいずれかに記載のコンピューティング・デバイス。
【請求項６】
前記第１の離散対数が（ｇｃ  ｍｏｄ  ｐ）に基づく、請求項１ないし５のいずれかに記載のコンピューティング・デバイス。
【請求項７】
前記第２の離散対数が、（ｇｓ  ｍｏｄ  ｐ）に基づく、請求項６に記載のコンピューティング・デバイス。
【請求項８】
前記第３の離散対数が、（（ｇｓ  ｍｏｄ  ｐ）ｃ  ｍｏｄ  ｐ）に基づく、請求項７に記載のコンピューティング・デバイス。
【請求項９】
前記第４の離散対数が、（（ｇｃ  ｍｏｄ  ｐ）ｓ  ｍｏｄ  ｐ）に基づく、請求項８に記載のコンピューティング・デバイス。
【請求項１０】
前記プロセッサによる前記セキュリティ・エージェントの実行が、
前記第１のパス・コード（Ｒ１）が前記第２のパス・コード（Ｒ２）と同一ではないと決定すると、前記要求されたリソースと関連付けられたユーザのアカウントに警告を送信することを含む行為を実施するように前記コンピューティング・デバイスをさらに構成する、請求項１ないし９のいずれかに記載のコンピューティング・デバイス。
【請求項１１】
前記プロセッサによる前記セキュリティ・エージェントの実行が、
前記第１のパス・コード（Ｒ１）が前記第２のパス・コード（Ｒ２）と同一であると決定すると、チャレンジ・コードを変更することを含む行為を実施するように前記コンピューティング・デバイスをさらに構成する、請求項１ないし１０のいずれかに記載のコンピューティング・デバイス。
【請求項１２】
プロセッサと、
ネットワークを介した通信を可能にするために前記プロセッサに結合されるネットワーク・インターフェースと、
前記プロセッサに結合される記憶デバイスと、
前記記憶デバイスに記憶されるセキュリティ・エージェント・ソフトウェアと、を備える、コンピューティング・デバイスであって、前記プロセッサによる前記ソフトウェアの実行が、
前記コンピューティング・デバイスからサーバへ、リソースの要求を送信することと、
事前に定められた数字（ｐ）を前記サーバに送信することと、
（ｉ）前記第１の数字（ｃ）および前記事前に定められた数字（ｐ）に基づいた第１の離散対数ならびに（ｉｉ）前記第２の数字（ｇ）を前記サーバから受信することと、
第３の数字（ｓ）を生成することと、
前記第３の数字（ｓ）、前記事前に定められた数字（ｐ）、および前記第２の数字（ｇ）に基づいて第２の離散対数を決定することと、
前記第２の離散対数を前記サーバに送信することと、
前記第１の離散対数、前記第３の数字（ｓ）、および前記事前に定められた数字（ｐ）に基づいて、第４の離散対数を介した第２のパス・コード（Ｒ２）を計算することと、
前記第２のパス・コード（Ｒ２）を、前記第２の離散対数、前記第１の数字（ｃ）、および前記事前に定められた数字（ｐ）に基づいた第１のパス・コード（Ｒ１）との比較のために前記サーバに送信することと、
前記第２のパス・コード（Ｒ２）が前記第１のパス・コード（Ｒ１）と同一であると、前記安全なリソースへのアクセスを受信することと、を含む行為を実施するようにコンピューティング・デバイスを構成する、コンピューティング・デバイス。
【請求項１３】
前記事前に定められた数字（ｐ）が、前記ユーザ・デバイスの識別（ＩＤ）番号である、請求項１２に記載のコンピューティング・デバイス。
【請求項１４】
前記コンピューティング・デバイスによる前記事前に定められた数字（ｐ）の送信が、前記サーバから前記第１の離散対数および前記第２の数字（ｇ）を受信するチャネルとは異なるチャネルを介する、請求項１２または１３のいずれかに記載のコンピューティング・デバイス。
【請求項１５】
前記第１の離散対数が、（ｇｃ  ｍｏｄ  ｐ）に基づき、
前記第２の離散対数が、（ｇｓ  ｍｏｄ  ｐ）に基づき、
前記第３の離散対数が、（（ｇｓ  ｍｏｄ  ｐ）ｃ  ｍｏｄ  ｐ）に基づき、
前記第４の離散対数が、（（ｇｃ  ｍｏｄ  ｐ）ｓ  ｍｏｄ  ｐ）に基づく、請求項１２ないし１４のいずれかに記載のコンピューティング・デバイス。
【請求項１６】
データを保護するための方法であって、
ユーザ・デバイスからリソースの要求を受信することと、
前記ユーザ・デバイスから事前に定められた数字（ｐ）を受信することと、
第１の数字（ｃ）および第２の数字（ｇ）を作成することと、
前記第１の数字（ｃ）および前記事前に定められた数字（ｐ）に基づいて第１の離散対数を決定することと、
前記第１の離散対数および前記第２の数字（ｇ）を前記ユーザ・デバイスに送信することと、
前記ユーザ・デバイスによって生成される第３の数字（ｓ）、前記事前に定められた数字（ｐ）、および前記第２の数字（ｇ）に基づいた第２の離散対数を前記ユーザ・デバイスから受信することと、
前記第２の離散対数、前記第１の数字（ｃ）、および前記事前に定められた数字（ｐ）に基づいて、第３の離散対数を介した第１のパス・コード（Ｒ１）を計算することと、
前記第１の離散対数、前記第３の数字（ｓ）、および前記事前に定められた数字（ｐ）に基づいて、第４の離散対数を介した第２のパス・コード（Ｒ２）を前記ユーザ・デバイスから受信することと、
前記第１のパス・コード（Ｒ１）を前記第２のパス・コード（Ｒ２）と比較することと、
前記第１のパス・コード（Ｒ１）が前記第２のパス・コード（Ｒ２）と同一であると決定すると、前記ユーザ・デバイスが前記リソースにアクセスすることを許可することと、を含む、方法。
【請求項１７】
前記事前に定められた数字（ｐ）が、前記ユーザ・デバイスの識別（ＩＤ）番号である、請求項１６に記載の方法。
【請求項１８】
前記事前に定められた数字（ｐ）が、ハイパーテキスト転送プロトコル・セキュア（ＨＴＴＰＳ）チャネルを通じて受信される、請求項１６または１７のいずれかに記載の方法。
【請求項１９】
前記ユーザ・デバイスに送信される前記第１の離散対数および前記第２の数字（ｇ）が、公衆交換電話網（ＰＳＴＮ）チャネルを介する、請求項１６ないし１８のいずれかに記載の方法。
【請求項２０】
前記コンピューティング・デバイスによる前記事前に定められた数字（ｐ）の受信が、前記第１の離散対数および前記第２の数字（ｇ）を前記ユーザ・デバイスに送信するチャネルとは異なるチャネルを介する、請求項１６ないし１９のいずれかに記載の方法。
【請求項２１】
前記第１の離散対数が（ｇｃ  ｍｏｄ  ｐ）に基づく、請求項１６ないし２０のいずれかに記載の方法。
【請求項２２】
前記第２の離散対数が、（ｇｓ  ｍｏｄ  ｐ）に基づく、請求項２１に記載の方法。
【請求項２３】
前記第３の離散対数が、（（ｇｓ  ｍｏｄ  ｐ）ｃ  ｍｏｄ  ｐ）に基づく、請求項２２に記載の方法。
【請求項２４】
前記第４の離散対数が、（（ｇｃ  ｍｏｄ  ｐ）ｓ  ｍｏｄ  ｐ）に基づく、請求項２３に記載の方法。
【請求項２５】
前記第１のパス・コード（Ｒ１）が前記第２のパス・コード（Ｒ２）と同一ではないと決定すると、前記要求されたリソースと関連付けられたユーザのアカウントに警告を送信することをさらに含む、請求項１６ないし２４のいずれかに記載の方法。
【請求項２６】
前記第１のパス・コード（Ｒ１）が前記第２のパス・コード（Ｒ２）と同一であると決定すると、チャレンジ・コードを変更することをさらに含む、請求項１６ないし２５のいずれかに記載の方法。
【請求項２７】
コンピュータ可読媒体に記憶され、デジタル・コンピュータの内部メモリ内へ読み込み可能であるコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されるとき、請求項１６ないし２５のいずれかに記載の方法を実施するためのソフトウェア・コード部分を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して電子通信に関し、より詳細には、電子通信を介して伝送されるデータを保護することに関する。
【背景技術】
【０００２】
近年、デジタル・データにおけるセキュリティの懸案が増加している。影響を受ける産業の一部には、銀行業、医療、政府組織、教育機関、ソーシャル・メディアなどが含まれる。多くの従来システムは、ユーザの身元を確認するために静的パスワードに依存し、これは時には、ソーシャル・エンジニアリング戦略を通じた推測または決定が容易である。
【０００３】
改善されたセキュリティ戦略は、２要素認証に基づく。例えば、ウェブサイトは、ユーザに自分のユーザ名または携帯電話番号を入力させ得る。ユーザ名または携帯電話番号が登録されている場合、ウェブサイトは、ユーザのユーザ・デバイスに、ユーザがウェブサイトに手動で提供することを促されるパスワードの入った、ショート・メッセージ・サービス（ＳＭＳ）テキスト・メッセージなどのテキスト・メッセージを送信する。次いで、ウェブサイトは、ユーザ・デバイスに送信したパスワードを、ユーザが入力したパスワードと比較する。それらが一致した場合、ユーザは、認証されていると見なされ、ログインされる。
【０００４】
ＳＭＳを使用する既存のシステムにはいくつかの欠点がある。２要素認証はセキュリティを向上させるために使用されるが、大半のユーザ・デバイスは、ハッキングおよびマルウェアに対して適切に保護されていないことが近年判明している。例えば、本明細書ではまとめて悪意のある者と称される、脅威行為者、ハッカー、または攻撃者は、対象とするユーザに気付かれることなくＳＭＳ通信を傍受または盗聴することができる。異なる言い方をすると、ＳＭＳは、サーバとユーザ・デバイスとの間のアクティブ・トランザクションに依存しており、これは傍受される得るため、ユーザをセキュリティ・リスクにさらす。したがって、まさにユーザを安全に守ることを意図したメッセージが、脆弱性の源になり得る。本開示は、これらの懸案および他の懸案に関して記載されている。
【０００５】
したがって、前述の問題に対処する必要性が当該技術分野にはある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、ユーザを認証する方法およびシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
第１の態様から見ると、本発明は、プロセッサと、ネットワークを介した通信を可能にするためにプロセッサに結合されるネットワーク・インターフェースと、プロセッサに結合される記憶デバイスと、記憶デバイスに記憶されるセキュリティ・エージェント・ソフトウェアとを備える、コンピューティング・デバイスであって、プロセッサによるソフトウェアの実行が、ユーザ・デバイスからリソースの要求を受信することと、ユーザ・デバイスから事前に定められた数字（ｐ）を受信することと、第１の数字（ｃ）および第２の数字（ｇ）を作成することと、第１の数字（ｃ）および事前に定められた数字（ｐ）に基づいて第１の離散対数を決定することと、第１の離散対数および第２の数字（ｇ）をユーザ・デバイスに送信することと、ユーザ・デバイスから、ユーザ・デバイスによって生成される第３の数字（ｓ）、事前に定められた数字（ｐ）、および第２の数字（ｇ）に基づいて、第２の離散対数を受信することと、第２の離散対数、第１の数字（ｃ）、および事前に定められた数字（ｐ）に基づいて、第３の離散対数を介した第１のパス・コード（Ｒ１）を計算することと、第１の離散対数、第３の数字（ｓ）、および事前に定められた数字（ｐ）に基づいて、第４の離散対数を介した第２のパス・コード（Ｒ２）をユーザ・デバイスから受信することと、第１のパス・コード（Ｒ１）を第２のパス・コード（Ｒ２）と比較することと、第１のパス・コード（Ｒ１）が第２のパス・コード（Ｒ２）と同一であると決定すると、ユーザ・デバイスが前記リソースにアクセスすることを許可することと、を含む行為を実施するようにコンピューティング・デバイスを構成する、コンピューティング・デバイスを提供する。
【０００８】
さらなる態様から見ると、本発明は、プロセッサと、ネットワークを介した通信を可能にするためにプロセッサに結合されるネットワーク・インターフェースと、プロセッサに結合される記憶デバイスと、記憶デバイスに記憶されるセキュリティ・エージェント・ソフトウェアとを備える、コンピューティング・デバイスであって、プロセッサによるソフトウェアの実行が、コンピューティング・デバイスからサーバへ、リソースの要求を送信することと、事前に定められた数字（ｐ）をサーバに送信することと、（ｉ）第１の数字（ｃ）および事前に定められた数字（ｐ）に基づいた第１の離散対数ならびに（ｉｉ）第２の数字（ｇ）をサーバから受信することと、第３の数字（ｓ）を生成することと、第３の数字（ｓ）、事前に定められた数字（ｐ）、および第２の数字（ｇ）に基づいて第２の離散対数を決定することと、第２の離散対数をサーバに送信することと、第１の離散対数、第３の数字（ｓ）、および事前に定められた数字（ｐ）に基づいて、第４の離散対数を介した第２のパス・コード（Ｒ２）を計算することと、第２のパス・コード（Ｒ２）を、第２の離散対数、第１の数字（ｃ）、および事前に定められた数字（ｐ）に基づいた第１のパス・コード（Ｒ１）との比較のためにサーバに送信することと、第２のパス・コード（Ｒ２）が第１のパス・コード（Ｒ１）と同一であると、安全なリソースへのアクセスを受信することと、を含む行為を実施するようにコンピューティング・デバイスを構成する、コンピューティング・デバイスを提供する。
【０００９】
さらなる態様から見ると、本発明は、データを保護するための方法であって、ユーザ・デバイスからリソースの要求を受信することと、ユーザ・デバイスから事前に定められた数字（ｐ）を受信することと、第１の数字（ｃ）および第２の数字（ｇ）を作成することと、第１の数字（ｃ）および事前に定められた数字（ｐ）に基づいて第１の離散対数を決定することと、第１の離散対数および第２の数字（ｇ）をユーザ・デバイスに送信することと、ユーザ・デバイスから、ユーザ・デバイスによって生成される第３の数字（ｓ）、事前に定められた数字（ｐ）、および第２の数字（ｇ）に基づいて、第２の離散対数を受信することと、第２の離散対数、第１の数字（ｃ）、および事前に定められた数字（ｐ）に基づいて、第３の離散対数を介した第１のパス・コード（Ｒ１）を計算することと、第１の離散対数、第３の数字（ｓ）、および事前に定められた数字（ｐ）に基づいて、第４の離散対数を介した第２のパス・コード（Ｒ２）をユーザ・デバイスから受信することと、第１のパス・コード（Ｒ１）を第２のパス・コード（Ｒ２）と比較することと、第１のパス・コード（Ｒ１）が第２のパス・コード（Ｒ２）と同一であると決定すると、ユーザ・デバイスがリソースにアクセスすることを許可することと、を含む、方法を提供する。
【００１０】
さらなる態様から見ると、本発明は、プロセッシング回路によって読み取り可能であり、本発明のステップを実施するための方法を実施するためのプロセッシング回路による実行のための命令を記憶する、コンピュータ可読記憶媒体を備える、データを保護するためのコンピュータ・プログラム製品を提供する。
【００１１】
さらなる態様から見ると、本発明は、コンピュータ可読媒体に記憶され、デジタル・コンピュータの内部メモリ内へ読み込み可能であるコンピュータ・プログラムであって、プログラムがコンピュータ上で実行されるとき、本発明のステップを実施するためのソフトウェア・コード部分を含む、コンピュータ・プログラムを提供する。
【００１２】
様々な実施形態によると、コンピューティング・デバイス、非一過性のコンピュータ可読記憶媒体、および方法は、ユーザを認証するために提供される。リソースの要求は、ユーザ・デバイスから受信される。事前に定められた数字（ｐ）が、ユーザ・デバイスから受信される。第１の数字（ｃ）および第２の数字（ｇ）が作成される。第１の離散対数は、第１の数字（ｃ）および事前に定められた数字（ｐ）に基づいて決定される。第１の離散対数および第２の数字（ｇ）は、ユーザ・デバイスに送信される。第２の離散対数は、ユーザ・デバイスから、ユーザ・デバイスによって生成される第３の数字（ｓ）、事前に定められた数字（ｐ）、および第２の数字（ｇ）に基づいて、ユーザ・デバイスから受信される。第１のパス・コード（Ｒ１）は、第２の離散対数、第１の数字（ｃ）、および事前に定められた数字（ｐ）に基づいて、第３の離散対数を介して計算される。第２のパス・コード（Ｒ２）は、第１の離散対数、第３の数字（ｓ）、および事前に定められた数字（ｐ）に基づいて、第４の離散対数を介して、ユーザ・デバイスから受信される。第１のパス・コード（Ｒ１）は、第２のパス・コード（Ｒ２）と比較される。第１のパス・コード（Ｒ１）が第２のパス・コード（Ｒ２）と同一であると決定すると、ユーザ・デバイスは、リソースにアクセスすることが許可される。
【００１３】
１つの実施形態において、コンピューティング・デバイスによる事前に定められた数字（ｐ）の受信は、第１の離散対数および第２の数字（ｇ）をユーザ・デバイスに送信するチャネルとは異なるチャネルを介する。
【００１４】
１つの実施形態において、第１の離散対数は、（ｇｃ  ｍｏｄ  ｐ）に基づき、第２の離散対数は、（ｇｓ  ｍｏｄ  ｐ）に基づき、第３の離散対数は、（（ｇｓ  ｍｏｄ  ｐ）ｃ  ｍｏｄ  ｐ）に基づき、第４の離散対数は、（（ｇｃ  ｍｏｄ  ｐ）ｓ  ｍｏｄ  ｐ）に基づく。
【００１５】
様々な実施形態によると、コンピューティング・デバイス、非一過性のコンピュータ可読記憶媒体、および方法は、ユーザを認証するために提供される。リソースの要求は、コンピューティング・デバイスからサーバへ送信される。事前に定められた数字（ｐ）は、サーバに送信される。以下：（ｉ）第１の数字（ｃ）および事前に定められた数字（ｐ）に基づいた第１の離散対数ならびに（ｉｉ）第２の数字（ｇ）は、サーバから受信される。第３の数字（ｓ）は、コンピューティング・デバイスによって生成される。第２の離散対数は、第３の数字（ｓ）、事前に定められた数字（ｐ）、および第２の数字（ｇ）に基づいて決定される。第２の離散対数は、サーバに送信される。第２のパス・コード（Ｒ２）は、第１の離散対数、第３の数字（ｓ）、および事前に定められた数字（ｐ）に基づいて、第４の離散対数を介して計算される。第２のパス・コード（Ｒ２）は、第２の離散対数、第１の数字（ｃ）、および事前に定められた数字（ｐ）に基づいた第１のパス・コード（Ｒ１）との比較のためにサーバに送信される。第２のパス・コード（Ｒ２）が第１のパス・コード（Ｒ１）と同一であると、コンピューティング・デバイスは、安全なリソースへのアクセスを受信する。
【００１６】
１つの実施形態において、コンピューティング・デバイスによる事前に定められた数字（ｐ）の送信は、サーバから第１の離散対数および第２の数字（ｇ）を受信するチャネルとは異なるチャネルを介する。
【００１７】
１つの実施形態において、第１の離散対数は、（ｇｃ  ｍｏｄ  ｐ）に基づき、第２の離散対数は、（ｇｓ  ｍｏｄ  ｐ）に基づき、第３の離散対数は、（（ｇｓ  ｍｏｄ  ｐ）ｃ  ｍｏｄ  ｐ）に基づき、第４の離散対数は、（（ｇｃ  ｍｏｄ  ｐ）ｓ  ｍｏｄ  ｐ）に基づく。
【００１８】
図面は、例示的な実施形態のものである。それらは、すべての実施形態を例示するわけではない。他の実施形態が、追加で、または代わりに、使用され得る。明白または不必要であり得る詳細事項は、スペースを節約するため、またはより効果的な例示のために、省略され得る。いくつかの実施形態は、追加の構成要素もしくはステップを用いて、または例示されるすべての構成要素もしくはステップなしに、あるいはその両方で実践され得る。同じ番号が異なる図面に登場する場合、それは、同じまたは同様の構成要素またはステップを指す。
【図面の簡単な説明】
【００１９】
【図１】安全な多要素認証を提供するための例となる構造１００を例示する図である。
【図２】例示的なユーザ・デバイスの様々な構成要素を高レベルで示すブロック図である。
【図３】チャレンジ・レスポンス・モードの状況での、セキュリティ・サーバのセキュリティ・エージェントとユーザ・デバイスとの間の例となるコール・フローを示す図である。
【図４】インタラクティブ・モードの状況での、セキュリティ・サーバのセキュリティ・エージェントとユーザ・デバイスとの間の例となるコール・フローを示す図である。
【図５】コンピュータ・ハードウェア・プラットフォームの機能ブロック図解である。
【発明を実施するための形態】
【００２０】
以下の詳細説明において、多数の特定の詳細事項は、関連教示の徹底的な理解を提供するために例として明記される。しかしながら、本教示は、そのような詳細事項がなくとも実践され得ることは明白であるものとする。他の場合では、周知の方法、手順、構成要素、または回路あるいはその組合せは、本教示の態様を不必要に不明瞭にすることを避けるために、詳細事項なしに、比較的高レベルで説明されている。
【００２１】
本開示は、電子通信を介して伝送されるデータを保護することに関する。データは、認証プロセス中のデータの脆弱性を、認証中の電子通信が悪意のある者によって傍受される場合でさえも低減する多要素認証により保護される。保護されるべきデータを記憶するサーバ、ならびに保護されたデータを求めるユーザ・デバイスの両方は、認証プロセス中にデジタル通信を通じて伝送されるメッセージが、保護されるべきデータのセキュリティを危険にさらさないとしても、同じパス・コードを決定することができる。そのため、認証を実施するサーバは、要求者ユーザのユーザ・デバイスにパス・コードを送信しない。むしろ、サーバによって知られている認証に関連したパラメータの少なくとも部分は、サーバにより秘密が保たれ、ユーザ・デバイスによって知られている認証に関連したパラメータの少なくとも部分は、ユーザ側で秘密が保たれる。本明細書内で論じられる概念のおかげで、パス・コードは、サーバとユーザ・デバイスとの間の通信が悪意のある第三者によって傍受されるとしても保護される。これより、添付の図面に例示され、以下に論じられる例について詳細に言及する。
【００２２】
例となる構造
図１は、安全な多要素認証を提供するための例となる構造１００を例示する。構造１００は、ネットワーク１０６を含み、このネットワーク１０６は、様々なユーザ・デバイス１０２（１）〜１０２（ｎ）が、互いに、および、ユーザが保護しようとする情報を記憶するために使用され得る、銀行、政府組織、医療ポータル、教育機関、ソーシャル・メディア・ポータルなどを含む、ネットワーク１０６に接続され得る任意の他のリソースと、通信することを可能にする。これらの機関およびポータルは、本明細書では、セキュリティ・サーバ１２０を有するプライベート・ネットワーク１０８として表される。
【００２３】
ネットワーク１０６は、限定することなく、ローカル・エリア・ネットワーク（「ＬＡＮ」）、仮想プライベート・ネットワーク（「ＶＰＮ」）、セルラ・ネットワーク、公衆交換電話網（ＰＴＳＮ）、インターネット、またはそれらの組合せであり得る。例えば、ネットワーク１０６は、様々なアプリケーション・ストア、ライブラリ、およびインターネットとの通信など、様々な付随的なサービスを提供するプライベート・ネットワークに通信可能に結合されるモバイル・ネットワークを含み得る。本議論を促進するため、ネットワーク１０６は、制限としてではなく、単に例として、広範なモバイル通信サービスおよび付帯サービスまたは特徴をその加入者顧客および関連モバイル・デバイス・ユーザに提供するためにキャリアまたはサービス・プロバイダによって運営され得るような、モバイル・ネットワークとして説明される。
【００２４】
ネットワーク１０６は、１人または複数のユーザ１０１（１）〜１０１（ｎ）が、それぞれそのユーザ・デバイス（ＵＤ）１０２（１）〜１０２（ｎ）を通じて、安全にプライベート・ネットワークから情報を取得する、またはそこに情報を記憶するために、１つまたは複数のプライベート・ネットワーク１０８と通信することを可能にする。上で述べたように、これらのプライベート・ネットワーク１０８は、ユーザが加入中であり得る異なる機関およびポータルのネットワークを表し得る。プライベート・ネットワーク１０８は、セキュリティ・エージェント１０３によって表される、セキュリティ・サーバ１２０を含み、このセキュリティ・サーバ１２０は、この上で実行するソフトウェア・アプリケーションを有する。１つの実施形態において、プライベート・ネットワークは、プライベート・ネットワーク１０８を使用することが認証されているユーザの申込み、支払い状況情報、パスワード情報、識別情報など、およびユーザのそれぞれの保護データ１１３を含み得るプロファイル・データベース１１０を含む。１つの実施形態において、セキュリティ・エージェント１０３は、ユーザ・デバイスの識別（ＩＤ）番号などの事前に定められた数字１１１Ａを、プロファイル・データベース１１０に記憶し得る。記憶された情報は、次いで、認証プロセス中にプロファイル・データベース１１０から取得１１１Ｂされ得る。
【００２５】
後の議論の目的のため、いくつかのユーザ・デバイスは、プライベート・ネットワーク１０８との通信を開始するために使用され得るデバイスのうちのいくつかの例を表すために図面に登場する。今日では、ユーザ・デバイスは、典型的には、携帯用ハンドセット、スマートフォン、タブレット・コンピュータ、パーソナル・デジタル・アシスタント（ＰＤＡ）、仮想現実（ＶＲ）デバイス、拡張現実（ＡＲ）デバイス、およびスマート・ウォッチの形態をとるが、それらは、コンシューマ・デバイスおよび商用電子デバイスを含む、他の形態因子で実装されてもよい。ユーザ・デバイス（例えば、１０２（１））は、セキュリティ・サーバ１２０と関連付けられたレポジトリ１１２内の保護データ１１３を取得すること、およびそこに保護データ１１３を記憶することを含め、プライベート・ネットワーク１０８によって提供される１つまたは複数のリソースを受信するために、ネットワーク１０６を通じてプライベート・ネットワーク１０８と対話するために使用され得る。
【００２６】
いくつかのシナリオにおいて、ユーザ１０１（ｎ）およびそれらの対応するユーザ・デバイス１０２（ｎ）によって図１に表される悪意のある者は、認証されたユーザ（例えば、１０１（１）または１０１（２））間の通信を不正行為により傍受しようとし得、これは、ネットワーク１０６などを通じて通信を電子的に傍受して、認証されたユーザ１０１（２）のユーザ・デバイス１０２（２）上の通信を盗聴することのように単純であり得る。構造１００は、悪意のある者１０２（ｎ）による傍受にもかかわらず、保護されることが意図されるデータ１１３のセキュリティを維持するように構成される。
【００２７】
そのために、セキュリティ・エージェント１０３は、データ・レポジトリ１１２内の保護データ１１３と１人または複数のユーザ１０１（１）〜１０１（ｎ）との間のゲートウェイとなるように動作する。例えば、セキュリティ・エージェント１０３は、ユーザから、それらのそれぞれのユーザ・デバイスを介して、プライベート・ネットワーク１０８内（例えば、データ・レポジトリ１１２内）に記憶された（または記憶されることが意図される）データの要求を受信するように構成される。セキュリティ・エージェント１０３はまた、そのユーザが、後でより詳細に論じられる認証プロセスを介してプライベート・ネットワーク１０８と通信することを認証されているかどうかを決定するように構成される。様々な実施形態において、セキュリティ・エージェントによって実施される認証プロセスは、ユーザ・デバイス（例えば、１０２（１））にパス・コードを送信すること、およびそこからパス・コードを受信することを含み得る。例えば、セキュリティ・エージェント１０３は、ユーザ・デバイス１０２（１）から事前に定められた数字を受信し得、これは後に、本明細書では離散対数と称される、モジュラ指数に基づいたデータ難読化のために使用され得る。
【００２８】
離散対数は、巡回性である乗法群のコンテキスト内での対数である。例えば、Ｇが乗法巡回群であり、ｇがＧのジェネレータである場合、巡回群の定義から、Ｇ内のすべての要素ｈは、何らかのｘについてはｇｘと書かれ得る。群Ｇ内のｈの底ｇに対する離散対数は、ｘであると定義される。離散対数は、既知のパラメータに基づいて計算され得る一方、ルート・パラメータは、難読化されて、離散対数の固有のパラメータを、解読するのを計算的に困難にする。
【００２９】
いくつかの実施形態において、プライベート・ネットワーク１０８の情報にアクセスすることを試みているユーザが認証されていないことを決定すると、セキュリティ・アラーム（すなわち、警告通知）が発せられ、１つまたは複数の適切な受信者アカウントに送信され得る。適切な受信者は、保護データ１１３のアカウント保持者（すなわち、ユーザ）、プライベート・ネットワーク１０８のＩＴアドミニストレータ、プライベート・ネットワーク１０８のセキュリティ・エージェントなどであり得る。警告通知は、ショート・メッセージ・サービス（ＳＭＳ）を使用する共通ショート・コード（ＣＳＣ）、マルチメディア・メッセージ・サービス（ＭＭＳ）、Ｅメール、電話、ソーシャル・メディアなど、様々なやり方で送信され得る。
【００３０】
セキュリティ・サーバ１２０、プロファイル・データベース１１０、およびデータ・レポジトリ１１２は、異なるプラットフォーム上にあるように例として例示されるが、様々な実施形態において、セキュリティ・サーバ１２０、プロファイル・データベース１１０、およびデータ・レポジトリ１１２は、様々な組合せで組み合わされ得ることを理解されたい。他の実施形態において、これらのコンピューティング・プラットフォームは、クラウド内でホストされる仮想マシンまたはソフトウェア・コンテナの形態で仮想コンピューティング・デバイスによって実装され得、それにより処理および記憶のための融通性のある構造を提供する。
【００３１】
例となるユーザ・デバイス
図１の状況において論じられるように、構造１００のデータ・セキュリティ・システムは、異なるタイプのユーザ・デバイスを含み得る。そのため、図２は、例示的なユーザ・デバイス２００の様々な構成要素を高レベルで示すブロック図を例示する。議論の目的のため、例示は、ユーザ・デバイス２００をワイヤレス・コンピューティング・デバイスの形態で示すが、他のコンピューティング・デバイスも同様に企図されることを理解されたい。
【００３２】
ユーザ・デバイス２００は、１つまたは複数のアンテナ２０２；セルラ、Ｗｉ−Ｆｉ（登録商標）通信、近距離通信技術、または有線通信あるいはその組合せのためのトランシーバ２０４；ユーザ・インターフェース２０６；１つまたは複数のプロセッサ２０８；ハードウェア２１０；およびメモリ２１６を含み得る。いくつかの実施形態において、アンテナ２０２は、基地局に無線信号を送信するアップリンク・アンテナ、および基地局から無線信号を受信するダウンリンク・アンテナを含み得る。いくつかの他の実施形態において、単一のアンテナが、無線信号の送信および受信の両方を行い得る。同じまたは他のアンテナが、Ｗｉ−Ｆｉ（登録商標）通信のために使用され得る。これらの信号は、デジタル・データを受信および伝送するように構成される、時としてまとめてネットワーク・インターフェースと称されるトランシーバ２０４によって処理され得る。１つの実施形態において、ユーザ・デバイス２００は、アンテナ２０２を含まず、外部構成要素との通信は、有線通信を介する。
【００３３】
１つの実施形態において、ユーザ・デバイス２００は、ユーザが入力を提供し、ユーザ・デバイス２００からの出力を受信することを可能にするユーザ・インターフェース２０６を含む。例えば、ユーザ・インターフェース２０６は、セキュリティ・サーバ１２０のセキュリティ・エージェント１０３からの通知を通信するために使用され得るデータ出力デバイス（例えば、視覚的なディスプレイ、音声スピーカ、ハプティック・デバイスなど）を含み得る。
【００３４】
ユーザ・インターフェース２０６は、１つまたは複数のデータ入力デバイスも含み得る。データ入力デバイスは、限定されるものではないが、キーパッド、キーボード、マウス・デバイス、タッチ・スクリーン、マイクロフォン、発話認識パッケージ、および任意の他の好適なデバイス、または他の電子／ソフトウェア選択インターフェースのうちの１つまたは複数の組合せを含み得る。例えば、データ入力デバイスは、ユーザがセキュリティ・サーバのセキュリティ・エージェントに通信される要求およびコードを入力するために使用され得る。
【００３５】
ユーザ・デバイス２００は、１つまたは複数のプロセッサ２０８を含み得、これは、シングルコア・プロセッサ、マルチコア・プロセッサ、複合命令セット・コンピューティング（ＣＩＳＣ）プロセッサ、または別のタイプのプロセッサであり得る。
【００３６】
ハードウェア２１０は、電源、およびシングルコアまたはマルチコア・プロセッサを含み得るデジタル信号プロセッサ（ＤＳＰ）を含み得る。ハードウェア２１０は、周辺構成要素と対話する通信インターフェースを含む、高速通信インターフェースを管理するネットワーク・プロセッサも含み得る。ネットワーク・プロセッサおよび周辺構成要素は、スイッチング・ファブリックによって繋がれ得る。ハードウェア２１０は、ハードウェア・デコーダおよびエンコーダ、ネットワーク・インターフェース・コントローラ、またはＵＳＢコントローラあるいはその組合せをさらに含み得る。
【００３７】
メモリ２１６は、コンピュータ記憶媒体などのコンピュータ可読媒体を使用して実装され得る。記憶媒体は、コンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータなどの情報の記憶のための任意の方法または技術において実装される揮発性および不揮発性のリムーバルおよび非リムーバル媒体を含む。コンピュータ記憶媒体は、限定されるものではないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、高精細ビデオ記憶ディスク、もしくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくは他の磁気記憶デバイス、またはコンピューティング・デバイスによるアクセスのための情報を記憶するために使用され得る任意の他の非伝送媒体を含む。
【００３８】
メモリ２１６は、ユーザ・デバイス２００のプロセッサ２０８およびコントローラによって実行可能またはアクセス可能である様々なソフトウェア構成要素またはモジュールを記憶し得る。メモリ２１６の様々な構成要素は、ソフトウェア２１８およびオペレーティング・システム２５０を含み得る。ソフトウェア２１８は、様々なアプリケーション２２０を含み得る。ソフトウェア２１８は、いくつかのモジュールを有するセキュリティ・アプリケーション２４０も含み得る。各モジュールは、タスクを実施する、または抽象データ・タイプを実装するルーチン、プログラム命令、オブジェクト、またはデータ構造あるいはその組合せを含み得る。
【００３９】
例えば、ユーザ・デバイス２００のセキュリティ・アプリケーション２４０は、後により詳細に論じられる、ユーザ・デバイスによって知られているパラメータに基づいて離散型アルゴリズムを決定するように動作する計算モジュール２４２を含み得る。セキュリティ・エージェント１０３と通信するために使用されるユーザ・デバイスの識別コードを決定するように動作するコード識別モジュール２４４が存在してもよい。ユーザ・デバイス２００がセキュリティ・エージェント１０３とデータを交換するように動作する対話モジュール２４８が存在してもよい。
【００４０】
オペレーティング・システム２５０は、ユーザ・デバイス２００が、様々なインターフェース（例えば、ユーザ制御、通信インターフェース、またはメモリ入力／出力デバイスあるいはその組合せ）を介してデータを受信することおよび伝送すること、ならびにプロセッサ２０８を使用してデータを処理して出力を生成することを可能にする構成要素を含み得る。オペレーティング・システム２５０は、出力を提示する（例えば、ユーザ・デバイス２００の電子ディスプレイ上にデータを表示する、メモリ２１６にデータを記憶する、別の電子デバイスにデータを伝送するなど）提示構成要素を含み得る。加えて、オペレーティング・システム２５０は、オペレーティング・システム２５０と概して関連付けられた様々な追加機能を実施する他の構成要素を含み得る。
【００４１】
例となるプロセス
構造１００および例となるユーザ・デバイス２００の前述の概観と共に、コール・フローの形態にある例となるプロセスの高レベルの議論をこれより検討することが有用であり得る。そのために、図３および図４は、セキュリティ・サーバ１２０のセキュリティ・エージェントとユーザ・デバイス１０２との間の例示的なコール・フロー３００および４００をそれぞれ提示する。具体的には、コール・フロー３００は、チャレンジ・レスポンス・モードを説明し、コール・フロー４００は、例示的な実施形態と一致する、セキュリティ・サーバとユーザ・デバイスとの間のインタラクティブ・モードを説明する。
【００４２】
コール・フロー３００および４００は、ハードウェア、ソフトウェア、またはその組合せで実装され得る一連の動作を表す、論理フローチャートにおけるプロセスの集合として例示される。ソフトウェアのコンテキストでは、本プロセスは、１つまたは複数のプロセッサによって実行されるとき、列挙された動作を実施するコンピュータ実行可能命令を表す。一般的に、コンピュータ実行可能命令は、機能を実施する、または抽象データ・タイプを実装するルーチン、プログラム、オブジェクト、構成要素、データ構造、および同様のものを含み得る。動作が説明される順序は、制限として解釈されることは意図されず、任意の数の説明された動作は、任意の順序で組み合わされる、またはプロセスを実行するために並行して実施される、あるいはその両方であり得る。議論の目的のため、プロセス３００および４００は、図１の構造１００を参照して説明される。
【００４３】
コール・フロー３００では、ユーザ（例えば、ユーザ・デバイス１０２のオペレータ）は、セキュリティ・サーバ１２０によって保護されるリソースへのアクセスを得るためにセキュリティ・サーバ１２０と対話する。例えば、ユーザ・デバイス１０２は、セキュリティ・サーバ１２０から安全なデータを取得する、またはそこに安全なデータを記憶することができ、このデータは、ハードウェアまたはソフトウェアに記憶され得る。セキュリティ・サーバ１２０によって保護されるリソースへのアクセスを提供するため、ユーザ・デバイス１０２は、以下に説明されるチャンレンジ・レスポンス・プロセスにより、セキュリティ・サーバによって認証される。
【００４４】
ステップ３１２において、ユーザ・デバイス１０２は、事前に定められた数字（ｓ）をセキュリティ・サーバ１２０に送信し、これは、セキュリティ・サーバ１２０によって好適なメモリに記憶され得る。様々な実施形態において、事前に定められた数字は、ユーザ・デバイス１０２の識別番号（例えば、コード）であり得る。１つの実施形態において、ステップ３１２における通信は、ＰＳＴＮを介さないチャネルを介する。ＰＳＴＮは、典型的には、電話サービスに関連し、電話線、マイクロ波伝送リンク、セルラ・ネットワークなどを含む。ＰＳＴＮの代わりに、インターネット・プロトコル電話および伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）などの技術が使用される。ＴＣＰ／ＩＰチャネルは、ＰＣ、タブレット、ＩＯＴ、および他のデバイスのための共通インターネット・プロトコルである。したがって、通信は、ウェブサイトを介してセキュリティ・サーバ１２０によって受信され得る。
【００４５】
例えば、事前に定められた数字（ｓ）は、ユーザ・デバイス１０２の識別番号、またはユーザの生体識別子あるいはその両方であり得る（それによりハードウェア保護の層を提供する）。１つの実施形態において、本明細書では時にはパラメータ（ｓ）と称される事前に定められた数字（ｓ）は、銀行などのプライベート・ネットワーク１０８の地方支店に直接訪れて、ユーザ・デバイス１０２の識別番号を第１のパラメータ（ｓ）として提供することによってセキュリティ・サーバ１２０に登録される。例えば、ユーザは、セキュリティ・サーバ１２０のプライベート・ネットワーク１０８の地方支店にある端末を介してパラメータ（ｓ）を手動で入力し得る。他のシナリオでは、ユーザは、ブルートゥース（登録商標）、Ｗｉ−Ｆｉ（登録商標）、近接通信（ＮＦＣ）、または他の好適な十分に安全な通信技術などの、近距離通信技術を介して自らの情報を伝送するために自らのユーザ・デバイス１０２を使用し得る。１つの実施形態において、セキュリティ・サーバ１２０は、事前に定められた数字（ｓ）をプロファイル・データベース１１０に記憶して、後にユーザの第１の要素認証を提供するために、プロファイル・データベース１１０と対話する。
【００４６】
ステップ３１３において、セキュリティ・サーバ１２０は、プライベート・ネットワーク１０８のリソースの要求を受信する。例えば、ユーザ・デバイス１０２のオペレータは、プライベート・ネットワーク１０８のデータ・レポジトリ１１２に情報を記憶する、またはそこから情報を取得することを望み得る。
【００４７】
ステップ３１４において、セキュリティ・サーバ１２０は、本明細書では時には第１のチャレンジ・コードと称される第１の数字（ｐ）、および第２の数字（ｇ）を作成する。１つの実施形態において、第１の数字（ｐ）は、素数である。第１の数字（ｐ）は、ユーザ・デバイス１０２からの認証要求に応答してユーザ・デバイス１０２に送信される。１つの実施形態において、第１の数字（ｐ）は、ＰＳＴＮチャネルを介して、またはｈｔｔｐｓ（または別のウェブ・プロトコル）を介して送信される。
【００４８】
ステップ３１６において、セキュリティ・サーバ１２０は、第２の数字（ｇ）を作成する。１つの実施形態において、第２の数字（ｇ）は、第１の数字（ｐ）よりも小さい（例えば、２または５）。第２の数字（パラメータ）ｇは、コンピューティング・デバイスの計算能力によって制限され得ることに留意されたい。異なる言い方をすると、ｇが大きすぎる場合、本明細書に提供される等式から結果を計算することは困難である（そうでないとしても不可能に近い）。１つの実施形態において、ｇは、素数である。計算能力が増大すると、パラメータｐは、５よりも大きい素数になり得る。セキュリティ・サーバ１２０はまた、本明細書では時には第２のチャレンジ・コードと称されるチャレンジ・コード（ｃ）を作成する。１つの実施形態において、チャレンジ・コード（ｃ）は、第２の数字（ｇ）よりも大きい数字である。１つの実施形態において、チャレンジ・コード（ｃ）は、ユーザ・デバイス１０２の検証の成功の度に変化する。
【００４９】
セキュリティ・サーバ１２０は、チャレンジ・コード（ｃ）および第１の数字（ｐ）に基づいて第１の離散対数を決定する。第１の離散対数は、以下の表現によって提供される。
【００５０】
【数１】
2021507580.tif 000003
【００５１】
上の表現に基づいた第１の離散対数は、ステップ３１４における第１の数字（ｐ）の伝送とは異なるチャネルを介してユーザ・デバイス１０２に送信される。例えば、パラメータｐは、ＳＭＳによって転送され得る。したがって、ブロック３３０によって示されるように、セキュリティ・サーバ１２０は、このとき、パラメータｓ、ｐ、ｇ、およびｃを知っている。パラメータｇおよびｃは、ユーザ・デバイス１０２に明示的に伝送されない。したがって、ブロック３３２に示されるように、ユーザ・デバイス１０２は、パラメータｓおよびｐのみを知っている。
【００５２】
ステップ３１８および３２０において、それぞれセキュリティ・サーバ１２０およびユーザ・デバイス１０２の両方が、第１の離散対数、事前に定められた数字（ｓ）、および第１の数字（ｐ）に基づいて第２の離散対数を介した第１のパス・コードＲをそれぞれ計算する。様々な実施形態において、計算は、セキュリティ・サーバ１２０およびユーザ・デバイス１０２によって、同時に（例えば、時間を節約するため）、または連続的に実施され得る。１つの実施形態において、第２の離散対数は、以下の表現によって提供される。
【００５３】
【数２】
2021507580.tif 000004
【００５４】
したがって、セキュリティ・サーバ１２０は、これが第２の離散型アルゴリズムのすべての関連パラメータ（すなわち、ｓ、ｐ、ｇ、およびｃ）を有することが理由で、パス・コードＲ（すなわち、第１のパス・コードＲ１として）を計算することができる。ユーザ・デバイス１０２は、以前にセキュリティ・サーバ１２０から第１の離散対数を受信しており、パラメータｓおよびｐを知っているため、ユーザ・デバイス１０２は、パス・コードＲ（すなわち、第２のパス・コードＲ２として）を決定することができる。
【００５５】
ステップ３２２において、セキュリティ・サーバ１２０は、ユーザ・デバイス１０２から第２のパス・コードＲ２を受信し、それを、セキュリティ・サーバ１２０が計算した第１のパス・コードＲ１と比較する。第１のパス・コードＲ１が第２のパス・コードＲ２と同一であると決定すると、セキュリティ・サーバ１２０は、セキュリティ・サーバ１２０の要求されたリソースへのアクセスをユーザ・デバイス１０２に提供する。例えば、セキュリティ・サーバ１２０は、このとき、データ・レポジトリ１１２から保護データを取得し、それを、ネットワーク１０６を通じてユーザ・デバイス１０２に送信することができる。
【００５６】
第１のパス・コードＲ１が第２のパス・コードＲ２と同一でないと決定すると、セキュリティ・サーバ１２０は、ユーザ・デバイス１０２を認証されていないと識別する。１つの実施形態において、セキュリティ・サーバ１２０は、適切な受信者に警告通知を送信する。
【００５７】
したがって、プロセス３００のチャレンジ・レスポンス・モードでは、パラメータｇおよびｃは、セキュリティ・サーバ１２０によって秘密が保たれる。パス・コードＲ１は、３つすべてのパラメータｐ、ｓ、およびｃが不正アクセスされない限りは、悪意のある者から安全に守られる。さらに、異なる通信チャネルが、認証プロセス中のパラメータのうちのいくつかの転送のために使用され得る。そのような手法は、悪意のある者が構造１００のシステムに不正アクセスすることの難度を劇的に増大させる。
【００５８】
これより、例示的な実施形態と一致する、セキュリティ・サーバ１２０とユーザ・デバイス１０２との間のインタラクティブ・モードのコンテキストにおけるコール・フロー４００を例示する図４について言及する。コール・フロー４００では、ユーザは、セキュリティ・サーバ１２０によって保護されるリソースへのアクセスを得るためにセキュリティ・サーバ１２０と対話する。セキュリティ・サーバ１２０によって保護されるリソースへのアクセスを提供するため、ユーザ・デバイス１０２は、以下に説明されるインタラクティブ・モード・プロセスにより、セキュリティ・サーバによって認証される。
【００５９】
ステップ４１０において、ユーザ・デバイス１０２は、事前に定められた数字（ｐ）をセキュリティ・サーバ１２０に送信し、これは、セキュリティ・サーバ１２０によってプライベート・ネットワーク１０８の好適なメモリに記憶され得る。１つの実施形態において、ステップ４１２における通信は、ＰＳＴＮを介さないチャネルを介する。例えば、ＴＣＰ／ＩＰなどの技術が、データ・セキュリティの理由から使用される。したがって、通信は、ウェブサイトを介してセキュリティ・サーバ１２０によって受信され得る。他の実施形態において、事前に定められた数字（ｐ）は、ユーザ・デバイス１０２の識別番号、またはユーザの生体識別子あるいはその両方であり得る（それによりハードウェア保護の層を提供する）。
【００６０】
１つの実施形態において、本明細書では時には第１のパラメータ（ｐ）と称される事前に定められた数字（ｐ）は、銀行などのプライベート・ネットワーク１０８の地方支店に直接訪れて、ユーザ・デバイス１０２の識別番号を第１のパラメータ（ｐ）として提供することによってセキュリティ・サーバ１２０に登録される。例えば、ユーザは、セキュリティ・サーバ１２０のプライベート・ネットワーク１０８の地方支店にある端末を介してパラメータ（ｐ）を手動で入力し得る。他のシナリオでは、ユーザは、ブルートゥース（登録商標）、Ｗｉ−Ｆｉ（登録商標）、ＮＦＣなどの近距離通信技術を介して自らの事前に定められた数字（ｐ）情報を伝送するために自らのユーザ・デバイス１０２を使用し得る。
【００６１】
ステップ４１２において、セキュリティ・サーバ１２０は、プライベート・ネットワーク１０８のリソースの要求を受信する。例えば、ユーザ・デバイス１０２のオペレータは、プライベート・ネットワーク１０８のデータ・レポジトリ１１２に情報を記憶する、またはそこから情報を取得することを望み得る。
【００６２】
ステップ４１４において、セキュリティ・サーバ１２０は、第１の数字（ｃ）および第２の数字（ｇ）を作成する。１つの実施形態において、第１の数字（ｃ）は、第２の数字（ｇ）よりも大きい。セキュリティ・サーバ１２０は、第１の数字（ｃ）、第２の数字（ｇ）、および事前に定められた大きい数字（ｐ）に基づいて第１の離散対数を決定する。第１の離散対数は、以下の表現によって提供される。
【００６３】
【数３】
2021507580.tif 000005
【００６４】
第２の数字（ｇ）および第１の離散対数は、ユーザ・デバイス１０２からのプライベート・ネットワーク１０８のリソースの要求に応答して、ユーザ・デバイス１０２に送信される。１つの実施形態において、第２の数字（ｇ）および第１の離散対数は共に、ＰＳＴＮチャネルを介して、またはｈｔｔｐｓ（または別のウェブ・プロトコル）を介して、同じデジタル・データ・パケット内で送信される。
【００６５】
ステップ４１６において、ユーザ・デバイス１０２は、第３の数字（ｓ）を生成する。１つの実施形態において、第３の数字（ｓ）は、第２の数字（ｇ）よりも大きい。ユーザ・デバイス１０２はまた、受信した第２の数字（ｇ）、生成した第３の数字（ｓ）、および事前に定められた数字（ｐ）に基づいて第２の離散対数を決定する。第２の離散対数は、以下の表現によって提供される。
【００６６】
【数４】
2021507580.tif 000006
【００６７】
上の表現に基づいた第２の離散対数は、ユーザ・デバイス１０２からセキュリティ・サーバ１２０によって受信される。
【００６８】
ステップ４１８および４２０において、セキュリティ・サーバ１２０およびユーザ・デバイス１０２は、それぞれ第１のパス・コードＲ１および第２のパス・コードＲ２を計算する。セキュリティ・サーバ１２０によって決定される第１のパス・コードＲ１は、第２の離散対数（ステップ４１６において、ユーザ・デバイス１０２から受信される）、第１の数字（ｃ）、およびステップ４１０において受信される事前に定められた数字（ｐ）に基づく。第２のパス・コード内で固有なのは、第２の離散対数によって隠されるパラメータ（ｓ）である。１つの実施形態において、第１のパス・コードＲ１は、以下に提供される第３の離散対数の表現によって提供される。
【００６９】
【数５】
2021507580.tif 000007
【００７０】
対照的に、ユーザ・デバイス１０２によって決定される第２のパス・コードＲ２は、第１の離散対数（ステップ４１４において、セキュリティ・サーバ１２０から受信される）、第３の数字（ｓ）、および事前に定められた数字（ｐ）に基づく。１つの実施形態において、第２のパス・コードＲ２は、以下に提供される第４の離散対数の表現に基づく。
【００７１】
【数６】
2021507580.tif 000008
【００７２】
ステップ４２２において、セキュリティ・サーバ１２０は、ユーザ・デバイス１０２から第２のパス・コードＲ２を受信し、それを、セキュリティ・サーバ１２０が以前に計算した第１のパス・コードＲ１と比較する。第１のパス・コードＲ１が第２のパス・コードＲ２と同一であると決定すると、セキュリティ・サーバ１２０は、プライベート・ネットワーク１０８の要求されたリソースへのアクセスをユーザ・デバイス１０２に提供する。例えば、セキュリティ・サーバ１２０は、このとき、データ・レポジトリ１１２から保護データを取得し、それを、ネットワーク１０６を通じてユーザ・デバイス１０２に送信することができる。
【００７３】
第１のパス・コードＲ１が第２のパス・コードＲ２と同一でないと決定すると、セキュリティ・サーバ１２０は、ユーザ・デバイス１０２を認証されていないと識別する。１つの実施形態において、セキュリティ・サーバ１２０は、適切な受信者に警告通知を送信する。
【００７４】
したがって、プロセス４００のインタラクティブ・モードでは、パラメータｃは、セキュリティ・サーバ１２０によって秘密が保たれる。第１および第２のパス・コードＲ１およびＲ２は、悪意のある者から安全が守られる。さらに、異なる通信チャネルが、認証プロセス中のパラメータのうちのいくつかの転送のために使用され得、悪意のある者が構造１００のシステムに不正アクセスすることの難度が劇的に増大される。
【００７５】
例となるコンピュータ・プラットフォーム
上で論じられるように、安全な多要素認証を提供することに関連した機能は、図１に示されるように、ならびに図３および図４のコール・フロー３００および４００に従って、ワイヤレスまたは有線通信を介してデータ通信のために接続される１つまたは複数のコンピューティング・デバイスの使用により実施され得る。ユーザ・デバイス２００の形態にある例示的なコンピューティング・デバイスが、図２に関して上で論じられている。図５は、安全な多要素認証を提供することができるコンピュータ・ハードウェア・プラットフォームの機能ブロック図解を提供する。具体的には、図５は、図１のセキュリティ・サーバ１２０などのサーバを実装するために使用され得るような、ネットワークまたはホスト・コンピュータ・プラットフォーム５００を例示する。
【００７６】
コンピュータ・プラットフォーム５００は、システム・バス５０２に接続される、中央処理装置（ＣＰＵ）５０４、ハード・ディスク・ドライブ（ＨＤＤ）５０６、ランダム・アクセス・メモリ（ＲＡＭ）または読み取り専用メモリ（ＲＯＭ）５０８あるいはその両方、キーボード５１０、マウス５１２、ディスプレイ５１４、および通信インターフェース５１６を含み得る。
【００７７】
１つの実施形態において、ＨＤＤ５０６は、本明細書に説明される様式で、セキュリティ・エージェント５４０などの、様々なプロセスを実行することができるプログラムを記憶することを含む能力を有する。セキュリティ・エージェント５４０は、異なる機能を実施するように構成される様々なモジュールを有し得る。
【００７８】
例えば、ユーザ・デバイスからプライベート・ネットワークのリソースの要求を受信するように動作する対話モジュール５４２が存在してもよい。対話モジュール５４２はまた、ユーザ・デバイスから様々なパラメータを受信すること、およびそこにパラメータを送信することができる。対話モジュール５４２はまた、多要素認証プロセス内の第１のステップとしてユーザのプロファイル情報を取得するためにプロファイル・データベースと対話し得る。保護されるべきデータが別個のデータ・レポジトリ内にある実施形態において、対話モジュール５４２は、そのようなレポジトリと通信して、データ・レポジトリから関連データを取得し、ユーザが認証されていると確認すると、それを対応するユーザに送信することができる。
【００７９】
１つの実施形態において、認証プロセス中に様々な離散対数およびパス・コードを計算するように動作する計算モジュール５４６が存在する。計算モジュール５４６はまた、第１のパス・コードＲ１が第２のパス・コードＲ２と同一であるかどうかを決定するために使用され得る。
【００８０】
１つの実施形態において、認証プロセス中に使用され得る様々なチャレンジ・コードを生成するように動作するチャレンジ・コード・モジュール５４８が存在する。１つの実施形態において、チャレンジ・コードは、認証されたユーザとのトランザクションの度に変化する。異なる言い方をすると、チャレンジ・コードは、認証されたユーザとの対話の成功の度に使い尽くされる。
【００８１】
１つの実施形態において、ユーザ・デバイスによって提供されるパス・コードが、セキュリティ・エージェントによって計算されるパス・コードに対応すると決定すると、ユーザ・デバイスのオペレータがプライベート・ネットワーク１０８のリソースを受信することを許可するように動作する認証モジュール５５０が存在する。
【００８２】
１つの実施形態において、プライベート・ネットワークへのアクセスを要求しているユーザが認証されていないと決定すると、適切な受信者に警告するように動作する通知モジュール５５６が存在する。適切な受信者は、アカウント保持者（すなわち、ユーザ）、プライベート・ネットワークのＩＴアドミニストレータ、プライベート・ネットワークのセキュリティ・エージェントなどであり得る。
【００８３】
１つの実施形態において、Ａｐａｃｈｅ（登録商標）などのプログラムが、ウェブ・サーバなどのシステムを動作させるために記憶され得る。１つの実施形態において、ＨＤＤ５０６は、ＪＶＭ（Ｊａｖａ（登録商標）仮想マシン）を実現するためのＪａｖａ（登録商標）Ｒｕｎｔｉｍｅ  Ｅｎｖｉｒｏｎｍｅｎｔプログラムのためのものなど、１つまたは複数のライブラリ・ソフトウェア・モジュールを含む実行アプリケーションを記憶することができる。
【００８４】
結論
本教示の様々な実施形態の説明は、例示の目的のために提示されているが、徹底的であること、または開示される実施形態に限定されることは意図されない。多くの修正形態および変異形態が、説明された実施形態の範囲から逸脱することなく、当業者には明らかであるものとする。本明細書に使用される用語は、実施形態の原理、実践的応用、もしくは市場で見られる技術に勝る技術的改善を最もよく説明するため、または当業者が本明細書に開示される実施形態を理解することを可能にするために選択された。
【００８５】
前述は、最良の状態または他の例あるいはその両方であると見なされることを説明しているが、様々な修正がそこで行われ得ること、ならびに本明細書に開示される主題が様々な形態および例で実施され得ること、ならびに本教示が、様々な応用において適用され得、それらの一部のみが本明細書に説明されていることを理解されたい。以下の特許請求項によって、本教示の真の範囲内に入るありとあらゆる応用、修正形態、および変異形態を特許請求することが意図される。
【００８６】
本明細書で論じられている構成要素、ステップ、特徴、物体、利益、および利点は、単に例示にすぎない。それらのいずれも、またはそれらに関連する議論も、保護の範囲を制限することは意図されない。様々な利点が本明細書で論じられているが、すべての実施形態が必ずしもすべての利点を含むとは限らないということを理解されたい。別途記載のない限り、以下に続く特許請求項を含む本明細書内に明記されるすべての測定値、値、評点、位置、大きさ、サイズ、および他の仕様は、おおよそであり、厳密ではない。それらは、それらが関連する機能と、およびそれらに関連する分野において慣習となっていることと一致する妥当な範囲を有することが意図される。
【００８７】
多数の他の実施形態もまた、企図される。それらは、より少ない、追加の、または異なるあるいはその組合せの、構成要素、ステップ、特徴、物体、利益、および利点を有する実施形態を含む。これらはまた、構成要素またはステップあるいはその両方が、異なって配置される、または順序付けされる、あるいはその両方である実施形態を含む。
【００８８】
本開示の態様は、本開示の実施形態に従う方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図解またはブロック図あるいはその両方を参照して本明細書に説明される。フローチャート図解またはブロック図あるいはその両方の各ブロック、およびフローチャート図解またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実施され得ることを理解されたい。
【００８９】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ・プロセッシング装置のプロセッサを介して実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックにおいて指定される機能／行為を実施するための手段を作成するべく、マシンを生み出すために、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ・プロセッシング装置のプロセッサに提供され得る。これらのコンピュータ可読プログラム命令はまた、コンピュータ可読記憶媒体に記憶され得、コンピュータ、プログラム可能なデータ・プロセッシング装置、または他のデバイスあるいはその組合せに、命令が記憶されているコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方のブロックにおいて指定される機能／行為の態様を実施する命令を含む製品を備えるべく、ある様式で機能するように指示することができる。
【００９０】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能なデータ・プロセッシング装置、または他のデバイス上に読み込まれて、コンピュータ、他のプログラム可能な装置、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックにおいて指定される機能／行為を実施するべく、コンピュータ、他のプログラム可能な装置、または他のデバイス上で実施されるべき一連の動作ステップにコンピュータ実装プロセスを生み出させ得る。
【００９１】
本明細書の図内のフローチャートおよびブロック図は、本開示の様々な実施形態に従うシステム、方法、およびコンピュータ・プログラム製品の考えられ得る実装形態の構造、機能性、および動作を例示する。この点に関して、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実装するための１つまたは複数の実行可能な命令を含む、モジュール、セグメント、または命令の部分を表し得る。いくつかの代替的な実装形態において、ブロック内に記される機能は、図に記される順序から外れて発生し得る。例えば、連続して示される２つのブロックは、実際には、実質的に同時に実行され得、または、これらのブロックは、時には、関与する機能性に応じて、逆の順序で実行され得る。ブロック図またはフローチャート図解あるいはその両方の各ブロック、およびブロック図またはフローチャート図解あるいはその両方におけるブロックの組合せは、指定された機能もしくは行為を実施する、または専用ハードウェアおよびコンピュータ命令の組合せを実行する専用ハードウェア・ベースのシステムによって実施され得ることにも留意されたい。
【００９２】
前述は、例示的な実施形態と併せて説明されているが、用語「例示的」は、最良または最適ではなく、単に例を意味するということを理解されたい。直前で述べた場合を除き、記載または例示されていることは、任意の構成要素、ステップ、特徴、物体、利益、利点、または等価物について、それが特許請求項内に列挙される、されないにかかわらず、それらの発明の開放を引き起こすことは意図されない、またはそのように解釈されるべきではない。
【００９３】
本明細書で使用される用語および表現は、特定の意味が本明細書内に別途明記されている場合を除き、探究および研究のそれらの対応するそれぞれの分野に関してそのような用語および表現にふさわしい、そのままの通常の意味を有するということを理解されたい。第１の、および第２の、などの関係性の用語は、単に１つのエンティティまたは行動を別のものから区別するために、そのようなエンティティまたは行動間の任意の実際のそのような関係または順序を必ずしも要求または示唆することなく、使用され得る。用語「備える（ｃｏｍｐｒｉｓｅ）」、「備えること（ｃｏｍｐｒｉｓｉｎｇ）」、またはその任意の他の変異形は、要素のリストを含むプロセス、方法、物品、または装置が、それらの要素だけを含むのではなく、そのようなプロセス、方法、物品、または装置に明示的に列挙されない、またはそれらに固有でない他の要素も含み得るように、非排他的な包含を網羅することが意図される。「１つの（ａ）」または「１つの（ａｎ）」の後に続く要素は、さらなる制約なしに、その要素を含むプロセス、方法、物品、または装置内の追加の同一要素の存在を除外しない。
【００９４】
本開示の要約は、読者が本技術開示の性質を素早く解明することを可能にするために提供される。これは、特許請求の範囲または意味を解釈または制限するために使用されるものではないという理解のもとに提出される。加えて、前述の発明を実施するための形態においては、本開示を簡素化する目的で、様々な特徴が、様々な実施形態内にまとめられることが分かる。このような開示の方法は、特許請求される実施形態が、各特許請求項内に明白に列挙されるよりも多くの特徴を有するという意図を反映するものとして解釈されるべきではない。むしろ、以下の特許請求項が示すとき、発明の主題は、単一の開示された実施形態のすべての特徴よりも少なくなっている。したがって、これによって以下の特許請求項の範囲は、各請求項が別個に特許請求される主題として自立した状態で、発明を実施するための形態に組み込まれる。
【図１】
2021507580.tif 000009
【図２】
2021507580.tif 000010
【図３】
2021507580.tif 000011
【図４】
2021507580.tif 000012
【図５】
2021507580.tif 000013
【手続補正書】
【提出日】令和2年7月8日(2020.7.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサと、
ネットワークを介した通信を可能にするために前記プロセッサに結合されるネットワーク・インターフェースと、
前記プロセッサに結合される記憶デバイスと、
前記記憶デバイスに記憶されるセキュリティ・エージェント・ソフトウェアと、を備える、コンピューティング・デバイスであって、前記プロセッサによる前記ソフトウェアの実行が、
ユーザ・デバイスからリソースの要求を受信することと、
前記ユーザ・デバイスから事前に定められた数字（ｐ）を受信することと、
第１の数字（ｃ）および第２の数字（ｇ）を作成することと、
前記第１の数字（ｃ）および前記事前に定められた数字（ｐ）に基づいて第１の離散対数を決定することと、
前記第１の離散対数および前記第２の数字（ｇ）を前記ユーザ・デバイスに送信することと、
前記ユーザ・デバイスから、前記ユーザ・デバイスによって生成される第３の数字（ｓ）、前記事前に定められた数字（ｐ）、および前記第２の数字（ｇ）に基づいて、第２の離散対数を受信することと、
前記第２の離散対数、前記第１の数字（ｃ）、および前記事前に定められた数字（ｐ）に基づいて、第３の離散対数を介した第１のパス・コード（Ｒ１）を計算することと、
前記第１の離散対数、前記第３の数字（ｓ）、および前記事前に定められた数字（ｐ）に基づいて、第４の離散対数を介した第２のパス・コード（Ｒ２）を前記ユーザ・デバイスから受信することと、
前記第１のパス・コード（Ｒ１）を前記第２のパス・コード（Ｒ２）と比較することと、
前記第１のパス・コード（Ｒ１）が前記第２のパス・コード（Ｒ２）と同一であると決定すると、前記ユーザ・デバイスが前記リソースにアクセスすることを許可することと、を含む行為を実施するように前記コンピューティング・デバイスを構成する、コンピューティング・デバイス。
【請求項２】
前記事前に定められた数字（ｐ）が、前記ユーザ・デバイスの識別（ＩＤ）番号である、請求項１に記載のコンピューティング・デバイス。
【請求項３】
前記事前に定められた数字（ｐ）が、ハイパーテキスト転送プロトコル・セキュア（ＨＴＴＰＳ）チャネルを通じて受信される、請求項１または２のいずれかに記載のコンピューティング・デバイス。
【請求項４】
前記ユーザ・デバイスに送信される前記第１の離散対数および前記第２の数字（ｇ）が、公衆交換電話網（ＰＳＴＮ）チャネルを介する、請求項１ないし３のいずれかに記載のコンピューティング・デバイス。
【請求項５】
前記コンピューティング・デバイスによる前記事前に定められた数字（ｐ）の受信が、前記第１の離散対数および前記第２の数字（ｇ）を前記ユーザ・デバイスに送信するチャネルとは異なるチャネルを介する、請求項１ないし４のいずれかに記載のコンピューティング・デバイス。
【請求項６】
前記第１の離散対数が（ｇｃ  ｍｏｄ  ｐ）に基づく、請求項１ないし５のいずれかに記載のコンピューティング・デバイス。
【請求項７】
前記第２の離散対数が、（ｇｓ  ｍｏｄ  ｐ）に基づく、請求項６に記載のコンピューティング・デバイス。
【請求項８】
前記第３の離散対数が、（（ｇｓ  ｍｏｄ  ｐ）ｃ  ｍｏｄ  ｐ）に基づく、請求項７に記載のコンピューティング・デバイス。
【請求項９】
前記第４の離散対数が、（（ｇｃ  ｍｏｄ  ｐ）ｓ  ｍｏｄ  ｐ）に基づく、請求項８に記載のコンピューティング・デバイス。
【請求項１０】
前記プロセッサによる前記セキュリティ・エージェントの実行が、
前記第１のパス・コード（Ｒ１）が前記第２のパス・コード（Ｒ２）と同一ではないと決定すると、前記要求されたリソースと関連付けられたユーザのアカウントに警告を送信することを含む行為を実施するように前記コンピューティング・デバイスをさらに構成する、請求項１ないし９のいずれかに記載のコンピューティング・デバイス。
【請求項１１】
前記プロセッサによる前記セキュリティ・エージェントの実行が、
前記第１のパス・コード（Ｒ１）が前記第２のパス・コード（Ｒ２）と同一であると決定すると、チャレンジ・コードを変更することを含む行為を実施するように前記コンピューティング・デバイスをさらに構成する、請求項１ないし１０のいずれかに記載のコンピューティング・デバイス。
【請求項１２】
プロセッサと、
ネットワークを介した通信を可能にするために前記プロセッサに結合されるネットワーク・インターフェースと、
前記プロセッサに結合される記憶デバイスと、
前記記憶デバイスに記憶されるセキュリティ・エージェント・ソフトウェアと、を備える、コンピューティング・デバイスであって、前記プロセッサによる前記ソフトウェアの実行が、
前記コンピューティング・デバイスからサーバへ、リソースの要求を送信することと、
事前に定められた数字（ｐ）を前記サーバに送信することと、
（ｉ）前記第１の数字（ｃ）および前記事前に定められた数字（ｐ）に基づいた第１の離散対数ならびに（ｉｉ）前記第２の数字（ｇ）を前記サーバから受信することと、
第３の数字（ｓ）を生成することと、
前記第３の数字（ｓ）、前記事前に定められた数字（ｐ）、および前記第２の数字（ｇ）に基づいて第２の離散対数を決定することと、
前記第２の離散対数を前記サーバに送信することと、
前記第１の離散対数、前記第３の数字（ｓ）、および前記事前に定められた数字（ｐ）に基づいて、第４の離散対数を介した第２のパス・コード（Ｒ２）を計算することと、
前記第２のパス・コード（Ｒ２）を、前記第２の離散対数、前記第１の数字（ｃ）、および前記事前に定められた数字（ｐ）に基づいた第１のパス・コードＲ１との比較のために前記サーバに送信することと、
前記第２のパス・コード（Ｒ２）が前記第１のパス・コード（Ｒ１）と同一であると、前記安全なリソースへのアクセスを受信することと、を含む行為を実施するようにコンピューティング・デバイスを構成する、コンピューティング・デバイス。
【請求項１３】
前記事前に定められた数字（ｐ）が、前記ユーザ・デバイスの識別（ＩＤ）番号である、請求項１２に記載のコンピューティング・デバイス。
【請求項１４】
前記コンピューティング・デバイスによる前記事前に定められた数字（ｐ）の送信が、前記サーバから前記第１の離散対数および前記第２の数字（ｇ）を受信するチャネルとは異なるチャネルを介する、請求項１２または１３のいずれかに記載のコンピューティング・デバイス。
【請求項１５】
前記第１の離散対数が、（ｇｃ  ｍｏｄ  ｐ）に基づき、
前記第２の離散対数が、（ｇｓ  ｍｏｄ  ｐ）に基づき、
前記第３の離散対数が、（（ｇｓ  ｍｏｄ  ｐ）ｃ  ｍｏｄ  ｐ）に基づき、
前記第４の離散対数が、（（ｇｃ  ｍｏｄ  ｐ）ｓ  ｍｏｄ  ｐ）に基づく、請求項１２ないし１４のいずれかに記載のコンピューティング・デバイス。
【請求項１６】
データを保護するための方法であって、
ユーザ・デバイスからリソースの要求を受信することと、
前記ユーザ・デバイスから事前に定められた数字（ｐ）を受信することと、
第１の数字（ｃ）および第２の数字（ｇ）を作成することと、
前記第１の数字（ｃ）および前記事前に定められた数字（ｐ）に基づいて第１の離散対数を決定することと、
前記第１の離散対数および前記第２の数字（ｇ）を前記ユーザ・デバイスに送信することと、
前記ユーザ・デバイスによって生成される第３の数字（ｓ）、前記事前に定められた数字（ｐ）、および前記第２の数字（ｇ）に基づいた第２の離散対数を前記ユーザ・デバイスから受信することと、
前記第２の離散対数、前記第１の数字（ｃ）、および前記事前に定められた数字（ｐ）に基づいて、第３の離散対数を介した第１のパス・コード（Ｒ１）を計算することと、
前記第１の離散対数、前記第３の数字（ｓ）、および前記事前に定められた数字（ｐ）に基づいて、第４の離散対数を介した第２のパス・コード（Ｒ２）を前記ユーザ・デバイスから受信することと、
前記第１のパス・コード（Ｒ１）を前記第２のパス・コード（Ｒ２）と比較することと、
前記第１のパス・コード（Ｒ１）が前記第２のパス・コード（Ｒ２）と同一であると決定すると、前記ユーザ・デバイスが前記リソースにアクセスすることを許可することと、を含む、方法。
【請求項１７】
コンピュータ可読媒体に記憶され、デジタル・コンピュータの内部メモリ内へ読み込み可能であるコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されるとき、請求項１６に記載の方法を実施するためのソフトウェア・コード部分を含む、コンピュータ・プログラム。
【国際調査報告】
2021507580.tif 000014
2021507580.tif 000015