(57)【要約】  方法は、第１コンピュータ装置において機密保護サービスデータを第１デジタルデータリポジトリ（ＤＤＲ）から受信するステップと、前記機密保護サービスデータの複数の割当を生成することで隠された機密保護サービスデータを生成するステップと、前記複数の割当の各割当を暗号化して複数の暗号化された割当を生成するステップと、前記複数の暗号化された割当をデータとして第２ＤＤＲに電子的に記憶するステップと、複数の第２コンピュータ装置の部分集合を使用して、１つ以上の第４コンピュータ装置にアクセスする認証要求を第３コンピュータ装置から受信したことに応答して、前記複数の暗号化された割当の部分集合を復号するステップと、前記複数の復号された割当を使用して前記隠された機密保護サービスデータの読めるコピーを形成し記憶するステップと、前記隠された機密保護サービスデータの前記読めるコピーを使用して、前記第３コンピュータ装置に対して前記１つ以上の第４コンピュータ装置へのアクセスを許可又は拒否する認証サービスを実行するステップとを含む。
2021520714.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実行データ機密保護方法であって、
第１コンピュータ装置において機密保護サービスデータを第１デジタルデータリポジトリから受信するステップと、
前記第１コンピュータ装置を使用して、前記機密保護サービスデータの複数の割当を生成することで隠された機密保護サービスデータを生成するステップと、
前記第１コンピュータ装置を使用して、複数の公開鍵のうち複数の第２コンピュータ装置のそれぞれに対応する別の公開鍵を使って前記複数の割当の各割当を暗号化して複数の暗号化された割当を生成するステップと、
前記複数の暗号化された割当をデータとして第２デジタルデータリポジトリに電子的に記憶するステップと、
前記複数の第２コンピュータ装置の部分集合を使用して、１つ以上の第４コンピュータ装置にアクセスする認証要求を第３コンピュータ装置から受信したことに応答して、前記複数の暗号化された割当の部分集合を前記複数の第２コンピュータ装置の前記部分集合のうちそれぞれに対応する別個の秘密鍵の部分集合を使って復号して複数の復号された割当を生成するステップと、
前記複数の復号された割当を使用して前記隠された機密保護サービスデータの読めるコピーを形成し記憶するステップと、
前記隠された機密保護サービスデータの前記読めるコピーを使用して、前記第３コンピュータ装置に対して前記１つ以上の第４コンピュータ装置へのアクセスを許可又は拒否する認証サービスを実行するステップと
を含むコンピュータ実行データ機密保護方法。
【請求項２】
前記第２デジタルデータリポジトリは分散ブロックチェーンデータリポジトリである、請求項１記載の方法。
【請求項３】
前記隠された機密保護サービスデータを生成するステップは、前記機密保護サービスデータを使用して多項式関数の記憶されたデジタル表現を生成し、前記多項式関数から複数のｘ-ｙ座標点を計算することを含み、前記複数の割当の各割当は前記複数のｘ-ｙ座標点の１つを表し、前記隠された機密保護サービスデータの前記読めるコピーを形成するステップは、前記複数の復号された割当を使用して前記多項式関数を計算することを含む、請求項１記載の方法。
【請求項４】
前記複数の第２コンピュータ装置のうち要求する第２コンピュータ装置を使用して、前記隠された機密保護サービスデータを明らかにする要求を前記複数の第２コンピュータ装置に送信するステップと、
前記要求を受信したことに応答して、前記複数の第２コンピュータ装置の利用可能性を検査して前記複数の第２コンピュータ装置のうち利用可能な部分集合を決定するステップと、
前記複数の第２コンピュータ装置を使用して、前記要求する第２コンピュータ装置又は前記第３コンピュータ装置に機密保護検査を行うステップと
を更に含み、
前記複数の暗号化された割当の前記部分集合を復号するステップは、前記複数の第２コンピュータ装置の前記利用可能な部分集合を使用して行われる、請求項１記載の方法。
【請求項５】
前記利用可能な部分集合を使用して、前記複数の復号された割当を前記要求する第２コンピュータ装置に対応する公開鍵を使って暗号化して複数の再暗号化された割当を生成し、前記複数の再暗号化された割当を前記要求する第２コンピュータ装置に送信するステップと、
前記要求する第２コンピュータ装置を使用して、前記隠された機密保護サービスデータを形成するために前記複数の再暗号化された割当を前記要求する第２コンピュータ装置に対応する秘密鍵を使って復号するステップと
を更に含む請求項４記載の方法。
【請求項６】
前記部分集合を復号するステップは、前記複数の暗号化された割当のうち少なくとも２つの暗号化された割当を復号して少なくとも２つの復号された割当を生成することを含み、前記隠された機密保護サービスデータの前記読めるコピーを形成するステップは、前記少なくとも２つの復号された割当を使用することを含む、請求項１記載の方法。
【請求項７】
前記機密保護サービスデータは１つ以上のユーザー名及びパスワード、鍵、許可証、又は監査ログを含む、請求項１記載の方法。
【請求項８】
１つ以上のプログラム命令シーケンスを記憶する１つ以上の持続性コンピュータ読取可能記憶媒体であって、前記プログラム命令シーケンスは１つ以上のコンピュータ装置により実行される時、
第１コンピュータ装置において機密保護サービスデータを第１デジタルデータリポジトリから受信するステップと、
前記第１コンピュータ装置を使用して、前記機密保護サービスデータの複数の割当を生成することで隠された機密保護サービスデータを生成するステップと、
前記第１コンピュータ装置を使用して、複数の公開鍵のうち複数の第２コンピュータ装置のそれぞれに対応する別の公開鍵を使って前記複数の割当の各割当を暗号化して複数の暗号化された割当を生成するステップと、
前記複数の暗号化された割当をデータとして第２デジタルデータリポジトリに電子的に記憶するステップと、
前記複数の第２コンピュータ装置の部分集合を使用して、１つ以上の第４コンピュータ装置にアクセスする認証要求を第３コンピュータ装置から受信したことに応答して、前記複数の暗号化された割当の部分集合を前記複数の第２コンピュータ装置の前記部分集合のうちそれぞれに対応する別個の秘密鍵の部分集合を使って復号して複数の復号された割当を生成するステップと、
前記複数の復号された割当を使用して前記隠された機密保護サービスデータの読めるコピーを形成し記憶するステップと、
前記隠された機密保護サービスデータの前記読めるコピーを使用して、前記第３コンピュータ装置に対して前記１つ以上の第４コンピュータ装置へのアクセスを許可又は拒否する認証サービスを実行するステップと
を実行させる、１つ以上の持続性コンピュータ読取可能記憶媒体。
【請求項９】
前記第２デジタルデータリポジトリは分散ブロックチェーンデータリポジトリである、請求項８記載の１つ以上の持続性マシン読取可能媒体。
【請求項１０】
前記隠された機密保護サービスデータを生成するステップは、前記機密保護サービスデータを使用して多項式関数の記憶されたデジタル表現を生成し、前記多項式関数から複数のｘ-ｙ座標点を計算することを含み、前記複数の割当の各割当は前記複数のｘ-ｙ座標点の１つを表し、前記隠された機密保護サービスデータの前記読めるコピーを形成するステップは、前記複数の復号された割当を使用して前記多項式関数を計算することを含む、請求項８記載の１つ以上の持続性マシン読取可能媒体。
【請求項１１】
前記１つ以上のコンピュータ装置により実行される時、
前記複数の第２コンピュータ装置のうち要求する第２コンピュータ装置を使用して、前記隠された機密保護サービスデータを明らかにする要求を前記複数の第２コンピュータ装置に送信するステップと、
前記要求を受信したことに応答して、前記複数の第２コンピュータ装置の利用可能性を検査して前記複数の第２コンピュータ装置のうち利用可能な部分集合を決定するステップと、
前記複数の第２コンピュータ装置を使用して、前記要求する第２コンピュータ装置又は前記第３コンピュータ装置に機密保護検査を行うステップと
を実行させる命令群を更に含み、
前記複数の暗号化された割当の前記部分集合を復号するステップは、前記複数の第２コンピュータ装置の前記利用可能な部分集合を使用して行われる、請求項８記載の１つ以上の持続性マシン読取可能媒体。
【請求項１２】
前記１つ以上のコンピュータ装置により実行される時、
前記利用可能な部分集合を使用して、前記複数の復号された割当を前記要求する第２コンピュータ装置に対応する公開鍵を使って暗号化して複数の再暗号化された割当を生成し、前記複数の再暗号化された割当を前記要求する第２コンピュータ装置に送信するステップと、
前記要求する第２コンピュータ装置を使用して、前記隠された機密保護サービスデータを形成するために前記複数の再暗号化された割当を前記要求する第２コンピュータ装置に対応する秘密鍵を使って復号するステップと
を実行させる命令群を更に含む請求項１１記載の１つ以上の持続性マシン読取可能媒体。
【請求項１３】
前記部分集合を復号するステップは、前記複数の暗号化された割当のうち少なくとも２つの暗号化された割当を復号して少なくとも２つの復号された割当を生成することを含み、前記隠された機密保護サービスデータの前記読めるコピーを形成するステップは、前記少なくとも２つの復号された割当を使用することを含む、請求項８記載の１つ以上の持続性マシン読取可能媒体。
【請求項１４】
前記機密保護サービスデータは１つ以上のユーザー名及びパスワード、鍵、トークン、許可証、又は監査ログを含む、請求項８記載の１つ以上の持続性マシン読取可能媒体。
【請求項１５】
データ機密保護の改善を提供するコンピュータシステムであって、
分散ブロックチェーンデータリポジトリと、
前記分散ブロックチェーンデータリポジトリに通信可能に結合された第１コンピュータ装置と
を備え、前記第１コンピュータ装置は命令群を記憶する第１持続性データ記憶媒体を備え、前記命令群は前記第１コンピュータ装置により実行される時、
機密保護サービスデータを第１デジタルデータリポジトリから受信するステップと、
前記機密保護サービスデータの複数の割当を生成することで隠された機密保護サービスデータを生成するステップと、
複数の公開鍵のうち複数の第２コンピュータ装置のそれぞれに対応する別の公開鍵を使って前記複数の割当の各割当を暗号化して複数の暗号化された割当を生成するステップと、
前記複数の暗号化された割当で前記分散ブロックチェーンデータリポジトリを電子的に更新するステップと
を実行させ、該コンピュータシステムは
前記分散ブロックチェーンデータリポジトリに通信可能に結合され、命令群を記憶する第２持続性データ記憶媒体をそれぞれ備えた前記複数の第２コンピュータ装置のうち少なくとも２つの第２コンピュータ装置を更に備え、前記命令群は前記複数の第２コンピュータ装置により実行される時、
１つ以上の第４コンピュータ装置にアクセスする認証要求を第３コンピュータ装置から受信したことに応答して、前記複数の暗号化された割当のうち少なくとも２つを前記複数の第２コンピュータ装置のうち少なくとも２つの第２コンピュータ装置のそれぞれに対応する少なくとも２つの別個の秘密鍵を使って復号して少なくとも２つの復号された割当を生成するステップと、
前記少なくとも２つの復号された割当を使用して前記隠された機密保護サービスデータの読めるコピーを形成し記憶するステップと、
前記隠された機密保護サービスデータの前記読めるコピーを使用して、前記第３コンピュータ装置に対して前記１つ以上の第４コンピュータ装置へのアクセスを許可する認証サービスを実行するステップと
を実行させる、コンピュータシステム。
【請求項１６】
前記隠された機密保護サービスデータを生成するステップは、前記機密保護サービスデータを使用して多項式関数の記憶されたデジタル表現を生成し、前記多項式関数から複数のｘ-ｙ座標点を計算することを含み、前記複数の割当の各割当は前記複数のｘ-ｙ座標点の１つを表し、前記隠された機密保護サービスデータの前記読めるコピーを形成するステップは、前記少なくとも２つの復号された割当を使用して前記多項式関数を計算することを含む、請求項１５記載のコンピュータシステム。
【請求項１７】
前記少なくとも２つの第２コンピュータ装置の１つは、要求する第２コンピュータ装置であり、前記少なくとも２つの第２コンピュータ装置の１つは利用可能な第２コンピュータ装置であり、前記利用可能な第２コンピュータ装置は追加の命令群を記憶する前記第２持続性データ記憶媒体を備え、前記命令群は、前記利用可能な第２コンピュータ装置により実行される時、
前記利用可能な第２コンピュータ装置によって生成された前記少なくとも２つの復号された割当の１つを前記要求する第２コンピュータ装置に対応する公開鍵を使って暗号化して再暗号化された割当を生成し、前記再暗号化された割当を前記要求する第２コンピュータ装置に送信するステップを実行させる、請求項１５記載のコンピュータシステム。
【請求項１８】
前記要求する第２コンピュータ装置は追加の命令群を記憶する前記第２持続性データ記憶媒体を備え、前記命令群は、前記要求する第２コンピュータ装置により実行される時、
前記再暗号化された割当を前記利用可能な第２コンピュータ装置から受信するステップと、
前記隠された機密保護サービスデータを形成するために前記再暗号化された割当を前記要求する第２コンピュータ装置に対応する秘密鍵を使って復号するステップと
を実行させる、請求項１７記載のコンピュータシステム。
【請求項１９】
前記隠された機密保護サービスデータの前記読めるコピーを形成するステップは、前記少なくとも２つの復号された割当を使用して多項式関数の記憶されたデジタル表現を再生成することを含む、請求項１８記載のコンピュータシステム。
【請求項２０】
前記機密保護サービスデータは１つ以上のユーザー名及びパスワード、鍵、トークン、許可証、又は監査ログを含む、請求項１５記載のコンピュータシステム。
【請求項２１】
コンピュータ実行データ機密保護方法であって、
第１コンピュータ装置において、１つ以上の物のインターネット（ＩｏＴ）コンピュータ装置にアクセスするための機密保護サービスデータを第１デジタルデータリポジトリから受信するステップと、
前記第１コンピュータ装置を使用して、企業サーバーの代わりに前記機密保護サービスデータを使用して多項式関数の記憶されたデジタル表現を生成し、前記多項式関数から複数のｘ-ｙ座標点を計算して前記機密保護サービスデータの複数の割当を生成するステップであって、前記複数の割当の各割当は前記複数のｘ-ｙ座標点の１つの点を表すステップと、
前記第１コンピュータ装置を使用して、前記複数の割当の各割当を複数の公開鍵の中から複数の第２コンピュータ装置のそれぞれに対応する別の公開鍵を使用して暗号化して複数の暗号化された割当を生成するステップと、
前記第１コンピュータ装置を使用して分散されたブロックチェーンデータリポジトリを前記複数の暗号化された割当で電子的に更新するステップと、
前記複数の第２コンピュータ装置のうち要求する第２コンピュータ装置を使用して、第３コンピュータ装置から前記１つ以上のＩｏＴコンピュータ装置にアクセスする認証要求を受信し、前記認証要求を受信したことに応答して前記分散されたブロックチェーンデータリポジトリに前記複数の暗号化された割当のうち前記要求する第２コンピュータ装置に対応する第１公開鍵を使用して暗号化された第１割当を要求し、前記複数の第２コンピュータ装置のうち少なくとも１つの利用可能な第２コンピュータ装置に前記複数の暗号化された割当のうち少なくとも１つの暗号化された第２割当を要求するステップと、
前記少なくとも１つの利用可能な第２コンピュータ装置を使用して、前記分散されたブロックチェーンデータリポジトリ内の前記少なくとも１つの利用可能な第２コンピュータ装置に対応する前記少なくとも１つの暗号化された第２割当にアクセスし前記少なくとも１つの利用可能な第２コンピュータ装置の対応する秘密鍵を使用して復号して少なくとも１つの復号された割当を生成するステップと、
前記少なくとも１つの利用可能な第２コンピュータ装置を使用して、前記要求する第２コンピュータ装置の公開鍵を使用して前記少なくとも１つの復号された割当を暗号化して少なくとも１つの再暗号化された割当を生成し、前記少なくとも１つの再暗号化された割当を前記要求する第２コンピュータ装置に送信するステップと、
前記要求する第２コンピュータ装置を使用して、前記要求する第２コンピュータ装置の秘密鍵を使用して前記暗号化された第１割当及び前記少なくとも１つの再暗号化された割当を復号し前記複数のｘ-ｙ座標点のうち少なくとも２つの点を形成するステップと、
前記要求する第２コンピュータ装置を使用して、前記複数のｘ-ｙ座標点のうち前記少なくとも２つの点を使って前記多項式関数の前記記憶されたデジタル表現を再現して前記機密保護サービスデータを形成するステップと、
前記要求する第２コンピュータ装置を使用して、前記機密保護サービスデータの形成に応答して前記隠された機密保護サービスデータの読めるコピーを使用して前記第３コンピュータ装置に対して前記１つ以上のＩｏＴコンピュータ装置へのアクセスを許可又は拒否する認証サービスを実行するステップと
を含むコンピュータ実行データ機密保護方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の技術分野は、データの機密保護の分野の改善された方法、システム、コンピュータソフトウェア、及び／又はコンピュータハードウェアに関する。本開示はより具体的には分散データベースを使用する分散された体系による分散されたデータ機密保護を提供するための改善されたコンピュータ実行方法及びシステムに関する。ある実施形態は認証及びアクセス制御サービスを物のインターネット（ＩｏＴ）装置に提供し、攻撃、無許可又は悪意のある使用、又はマルウェアへのネットワーク接続されたＩｏＴ装置の耐性を改善するのに有用である。
【背景技術】
【０００２】
この項で記載される手法は追求されうる手法であるが、以前想到された又は追求された手法では必ずしもない。従って、特に断らない限り、この項で記載される手法のいずれもこの項に含まれているだけで従来技術と認定されると考えるべきではない。
【０００３】
物のインターネット（ＩｏＴ）装置の開発及び使用は、過去数年の間目覚ましいスピードで進んだ。ＩｏＴ装置は多様であり、産業機器のコントローラからスマートウォッチ及び個人活動モニターまで全ての物を含む。しかし、セキュリティ基盤はこれらの装置の莫大な数と広範な使用に追い付けていない。複数のアナリストは、数年以内に数十億のそのような装置が動作し相互接続ネットワークに接続されるだろうと推定するが、ＩｏＴ装置が機密保護され、なお容易に使用できることを効率的に可能にしうる効果的なセキュリティ体系は現在存在しない。この技術分野の主要な制約は限定された処理能力、限定されたメモリ、限定された又は存在しないユーザーインターフェース要素、及び限定され且つ断続的なネットワーク接続性を含んでいた。ＩｏＴ装置のこれら全ての特性はＩｏＴ装置が既存のクライアント・サーバー機密保護システムに統合され難くする。同時にＩｏＴ装置の誤使用は、攻撃者又は許可されていないユーザーが、ＩｏＴ装置が組み込まれた産業機器又は他のシステムの制御を獲得するのを許すことで破滅的でありうる。
【０００４】
従来、インターネットアクセス付きクライアントコンピュータ装置は、ユーザーアクセスを管理し認証し制御するための識別及びアクセス管理（ＩＡＭ）サービスを提供する企業サーバーコンピュータに接続できる。ほとんど例外無く、利用者の卓上コンピュータ又は携帯コンピュータ装置からのアクセスを許すネットワークは、全ての主要な機密保護機構をサーバーコンピュータに配置してきた。例えば、オンラインアカウントへのアクセスを望むユーザーはインターネット接続付きコンピュータを使用して、ログインページの有るウェブサイトにアクセスしユーザー名及びパスワードなどの識別情報を入力できる。サーバーコンピュータが識別情報を認証すると、そのユーザーが自身のオンラインアカウントにアクセスでき他のどんなデータもアクセスしないように、ポリシーはどの特定の装置が有するアクセスの量も制御する。この従来の手法で、企業サーバーの機密保護違反は全てのユーザーの識別情報を危険にさらしうる。
【０００５】
従って、分散された体系の使用による増加したデータ機密保護が必要である。また、機密保護違反に耐性を持ち識別情報又は任意の機密保護サービス情報を記憶しアクセスする安全な方法が必要である。
【発明の概要】
【０００６】
添付の請求項が本発明の概要としての役割をするかもしれない。
【図面の簡単な説明】
【０００７】
本発明は、添付図面の図に限定としてではなく例として例示されていて、同様の符号は類似の構成要素を指す。
【図１】一例の実施形態におけるネットワークコンピュータシステムを例示する。
【図２】一例の実施形態における機密保護ブローカーを例示する。
【図３】一例の実施形態における機密保護ブローカーデータ暗号化及び分配ワークフローを例示する。
【図４】一例の実施形態におけるデジタルブロックチェーンデータベースを例示する。
【図５】一例の実施形態における機密保護ゲートウェイを例示する。
【図６】一例の実施形態における機密保護ゲートウェイデータ復号及び一体化ワークフローを例示する。
【図７Ａ】一例の実施形態における分散体系によってデータ機密保護を改善するための方法又はアルゴリズムを例示する。
【図７Ｂ】一例の実施形態における分散体系によってデータ機密保護を改善するための方法又はアルゴリズムを例示する。
【図８】本発明の実施形態が実施されてよいコンピュータシステムを例示する。
【発明を実施するための形態】
【０００８】
以下の記載において、説明目的のために、本発明の完全な理解を提供するために多数の具体的詳細が明らかにされる。しかし、これらの具体的詳細を欠いて本発明を実施してもよいことは明白であろう。他には、本発明を不必要に不明瞭にしないため、周知の構造及び装置はブロック図形態で示されている。
【０００９】
本明細書において、実施形態は以下の概要に従い項に分けて説明される。
【００１０】
１．０  総論
２．０  構造概要
２．１  企業サービス
２．２  ブロックチェーンアーキテクチャ
２．３  分配サービス
３．０  機能概要
３．１  機密保護ブローカー
３．２  ブロックチェーン動作
３．３  機密保護ゲートウェイ
４．０  手順概要
５．０  ハードウェア概要
【００１１】
１．０    総論
様々な実施形態によれば、改善されたコンピュータ及びネットワーク効率及びデータ機密保護を可能にする方法及びシステムが提供される。具体的には、本手法はＩＡＭデータを分散させ、ＩＡＭサービスを局所化し、データ機密保護のための合意ネットワークを利用し、分散暗号化及び復号を利用してＩＡＭデータを隠し、これらの全てが、極秘データへの悪意のある攻撃に対する耐性を増加させながら、ネットワークトラフィック及び企業サーバーの処理資源の過度な使用を減らす利点を有する。また、ＩＡＭサービスは、資源集約的機密保護ソフトウェアを各ＩｏＴ装置に又はにおいて実行することなく、企業計算環境から地理的に分散され企業環境から離れた複数の物のインターネット（ＩｏＴ）装置へ効果的に施されうる。
【００１２】
１つの実施形態では、ネットワークコンピュータシステムは企業サービスのための機密保護ブローカー、分配サービスのための機密保護ゲートウェイ、及び識別情報などの機密保護サービスデータを記憶し機密保護ブローカーと機密保護ゲートウェイの間で転送するためのブロックチェーンシステムを含む。機密保護ブローカーは機密保護サービスデータの変更を検出し、そのデータを割当に分けて暗号化して分配し、ブロックチェーンデータを暗号化され分配された割当で更新するソフトウェア、ハードウェア、又はそれらの組み合わせであってもよい。機密保護ゲートウェイはブロックチェーンデータの変更を検出し、局所データリポジトリを機密保護サービスデータで更新するソフトウェア、ハードウェア、又はそれらの組み合わせであってもよい。機密保護ゲートウェイはまた、局所仮想ＩＡＭサービスを局所データリポジトリに記憶された機密保護サービスデータを使用して提供する。ブロックチェーンシステムは、複数のコンピュータ装置に連結されたデータブロックを記憶する分散されたデータベースである。
【００１３】
１つの実施形態では、コンピュータ実行データ機密保護方法は、第１コンピュータ装置において機密保護サービスデータを第１デジタルデータリポジトリから受信するステップを含む。この方法は第１コンピュータ装置を使用して機密保護サービスデータの複数の割当を生成することで隠された機密保護サービスデータを生成するステップを更に含む。この方法は第１コンピュータ装置を使用してそれら複数の割当の各割当を複数の公開鍵の中から複数の第２コンピュータ装置のそれぞれに対応する別の公開鍵を使用して暗号化して複数の暗号化された割当を生成するステップを更に含む。この方法はそれら複数の暗号化した割当をデータとして第２デジタルデータリポジトリに電子的に記憶する。この方法は複数の第２コンピュータ装置の一部を使用して第３コンピュータ装置から１つ以上の第４コンピュータ装置にアクセスする認証要求を受信したことに応答して複数の暗号化された割当の一部を複数の第２コンピュータ装置のその一部のそれぞれに対応する一部の別個の秘密鍵を使用して復号して複数の復号された割当を生成するステップを更に含む。この方法は複数の復号された割当を使用して隠された機密保護サービスデータの読めるコピーを形成し記憶し、隠された機密保護サービスデータの読めるコピーを使用して第３コンピュータ装置に対して１つ以上の第４コンピュータ装置へのアクセスを許可又は拒否する認証サービスを実行するステップを更に含む。
【００１４】
１つの実施形態では、コンピュータシステムはデータ機密保護の改善を提供する。本システムは分散されたブロックチェーンデータリポジトリ、第１コンピュータ装置、及び複数の第２コンピュータ装置のうち少なくとも２つの第２コンピュータ装置を含む。第１コンピュータ装置は分散されたブロックチェーンデータリポジトリに通信可能に結合され、命令群を記憶する第１持続性データ記憶媒体を備える。その命令群は、第１コンピュータ装置により実行されると、第１コンピュータ装置において第１デジタルデータリポジトリから機密保護サービスデータを受信し；第１コンピュータ装置を使用して機密保護サービスデータの複数の割当を生成することで隠された機密保護サービスデータを生成し；第１コンピュータ装置を使用してこれら複数の割当の各割当を複数の公開鍵のうち複数の第２コンピュータ装置のそれぞれに対応する別の公開鍵を使って暗号化して複数の暗号化された割当を生成し；複数の暗号化された割当をデータとして第２デジタルデータリポジトリに電子的に記憶し；複数の第２コンピュータ装置の一部を使用して第３コンピュータ装置から１つ以上の第４コンピュータ装置にアクセスする認証要求を受信したことに応答して、複数の暗号化された割当の一部を複数の第２コンピュータ装置のその一部のそれぞれに対応する一部の別個の秘密鍵を使用して復号して複数の復号された割当を生成し；複数の復号された割当を使用して隠された機密保護サービスデータの読めるコピーを形成して記憶し；隠された機密保護サービスデータの読めるコピーを使用して第３コンピュータ装置に対して１つ以上の第４コンピュータ装置へのアクセスを許可又は拒否する認証サービスを実行することを実行させる。
【００１５】
１つの実施形態では、コンピュータ実行データ機密保護方法は、第１コンピュータ装置において１つ以上の物のインターネット（ＩｏＴ）コンピュータ装置にアクセスするための機密保護サービスデータを第１デジタルデータリポジトリから受信するステップを含む。この方法は第１コンピュータ装置を使用し企業サーバーの代わりに機密保護サービスデータを使用して多項式関数の記憶されたデジタル表現を生成しその多項式関数から複数のｘ-ｙ座標点を計算して機密保護サービスデータの複数の割当を生成するステップであって、複数の割当の各割当は複数のｘ-ｙ座標点の１つの点を表すステップを更に含む。この方法は第１コンピュータ装置を使用してそれら複数の割当の各割当を複数の公開鍵のうち複数の第２コンピュータ装置のそれぞれに対応する別の公開鍵を使用して暗号化して複数の暗号化された割当を生成するステップを更に含む。この方法は第１コンピュータ装置を使用して分散されたブロックチェーンデータリポジトリをそれら複数の暗号化された割当で電子的に更新するステップを更に含む。この方法は複数の第２コンピュータ装置のうち要求する第２コンピュータ装置を使用して第３コンピュータ装置から１つ以上のＩｏＴコンピュータ装置にアクセスする認証要求を受信し、認証要求を受信したことに応答して分散されたブロックチェーンデータリポジトリに複数の暗号化された割当のうちその要求する第２コンピュータ装置に対応する第１公開鍵を使用して暗号化された第１割当を要求し、複数の第２コンピュータ装置のうち少なくとも１つの利用可能な第２コンピュータ装置に複数の暗号化された割当のうち少なくとも１つの暗号化された第２割当を要求するステップを更に含む。この方法はその少なくとも１つの利用可能な第２コンピュータ装置を使用して、分散されたブロックチェーンデータリポジトリ内のその少なくとも１つの利用可能な第２コンピュータ装置に対応するその少なくとも１つの暗号化された第２割当にアクセスしその少なくとも１つの利用可能な第２コンピュータ装置の対応する秘密鍵を使用して復号して少なくとも１つの復号された割当を生成するステップを更に含む。この方法はその少なくとも１つの利用可能な第２コンピュータ装置を使用しその要求する第２コンピュータ装置の公開鍵を使用してその少なくとも１つの復号された割当を暗号化して少なくとも１つの再暗号化された割当を生成し、その少なくとも１つの再暗号化された割当をその要求する第２コンピュータ装置に送信するステップを更に含む。この方法はその要求する第２コンピュータ装置を使用しその要求する第２コンピュータ装置の秘密鍵を使用してその暗号化された第１割当及びその少なくとも１つの再暗号化された割当を復号し複数のｘ-ｙ座標点のうち少なくとも２つの点を形成するステップを更に含む。この方法はその要求する第２コンピュータ装置を使用し複数のｘ-ｙ座標点のうちそれらの少なくとも２つの点を使ってその多項式関数の記憶されたデジタル表現を再現して機密保護サービスデータを形成するステップを更に含む。この方法はその要求する第２コンピュータ装置を使用し、機密保護サービスデータの形成に応答して隠された機密保護サービスデータの読めるコピーを使用��て第３コンピュータ装置に対して１つ以上のＩｏＴコンピュータ装置へのアクセスを許可又は拒否する認証サービスを実行するステップを更に含む。
【００１６】
２．０    構造概要
図１は一例の実施形態におけるネットワークコンピュータシステムを例示する。１つの実施形態では、コンピュータシステム１００は、少なくとも部分的に１つ以上のコンピュータ装置のハードウェア、例えば本書に記載された機能を実行するために１つ以上のメモリに記憶されたプログラム命令群を実行する１つ以上のハードウェアプロセッサにより実現される構成要素を備える。様々な実施形態において、本書に記載された全ての機能が、特殊用途コンピュータ又は汎用コンピュータ内のプログラミングを使用して実行される動作を表すように意図されている。「コンピュータ」は１つ以上の物理的コンピュータ、仮想コンピュータ、及び／又はコンピュータ装置であってよい。例として、コンピュータは１つ以上のサーバーコンピュータ、クラウドベースのコンピュータ、クラウドベースのコンピュータ群、ドッカーコンテナ、仮想マシンインスタンス又は仮想マシン計算要素、例えば仮想プロセッサ、記憶部及びメモリ、データセンター、記憶装置、卓上コンピュータ、ラップトップコンピュータ、携帯装置、及び／又は任意の他の特殊用途コンピュータ装置であってよい。特に明記されない限り、本書における「コンピュータ」へのいずれの言及も１つ以上のコンピュータを意味しうる。上記の命令群は実行可能な命令群であり、ＪＡＶＡ（登録商標）、Ｃ＋＋、ＯＢＪＥＣＴＩＶＥ‐Ｃ、又は任意の他の適切なプログラミング環境で作成されたソースコードに基づいてコンパイル又は他のやり方で作製された１つ以上の実行可能なファイル又はプログラムから成ってもよい。
【００１７】
図１は本書に記載されたプログラミングを実行するよう構成された構成要素の多くの可能な配置の１つだけを例示する。他の配置はより少ない又は異なる構成要素を含んでもよく、構成要素間での仕事の区分はその配置に依って異なってもよい。図１の例では、ネットワークコンピュータシステム１００は、企業サービス１１０を提供するプログラムされたコンピュータ装置と、分配サービス１６０を提供する装置と、ブロックチェーン１５０の装置との間の安全なデータ交換を可能にしうる。従って、図１の各要素１１０、１５５、１６０は、企業サービス、分配サービス、及びブロックチェーン動作に関連して本書で更に説明される機能及び動作を提供する記憶されたプログラムを管理又は実行する１つ以上のコンピュータを表してもよい。本書に記載された方法及びシステムは多様な異なる企業を収容するように設計されているかもしれない。各企業は、その企業の好みに合わせてカスタマイズされた設定がされた自身の機密保護ブローカー１３０、ブロックチェーン１５０、及び／又は機密保護ゲートウェイ１７０を有してよい。
【００１８】
２．１    企業サービス
企業サービス１１０は企業によってプログラムで提供され識別及びアクセス管理（ＩＡＭ）１２０サービスを含むサービスであってよい。通常、このようなサービスはコンピュータ上で制御プログラム又はアプリケーションプログラムを実行し、規定されたプロトコルに基づいてネットワークを通じたクライアント・サーバーデジタルメッセージ通信を使用してクライアントコンピュータ装置の要求を処理し応答することで提供される。ＩＡＭ１２０サービスは、企業サーバーなどの装置が地理的に分散された複数のコンピュータ装置（これに限定されないがＩｏＴ装置を含む）のいずれに対しても装置及びユーザーアクセスを管理、認証、及び制御するのを可能にするかもしれない。
【００１９】
企業サーバー及び他の企業コンピュータ装置はデータ機密保護を保証しマルウェア侵害を防ぐためにしばしば厳重に保護されている。従来、装置が企業サーバーからのアクセス許可を要求する時、その企業サーバーは企業サーバー及び装置により協同実行されるプログラムを使用して管理される確認プロセスを経験してよい。確認プロセスは、認証、認可、及びユーザー、アプリケーション、及び／又は装置のアカウント管理を含んでよい。企業サーバーにより規定されるアクセス制御ポリシーは、どのユーザー、アプリケーション、及び／又は装置がどんな種類のデータへのアクセス許可を有するかを決定してもよい。この従来の手法の代わりに、本手法の１つの実施形態は、本書で更に説明するように確認プロセスを企業サーバーにおいてではなく機密保護ゲートウェイ１７０を使用して実行して、大きな技術的利益があり従来例に比べて改善される。
【００２０】
１つの実施形態では、アクセス制御ポリシーは、企業サーバーに関連するデータリポジトリ１２２に記憶され、企業の必要に応じて更新されてよい。結果として、企業に関連する中央制御ポイントは機密保護ポリシーの制御を維持でき、一方、ＩＡＭ１２０サービス又は他の機能は、例えば保護されたＩｏＴ装置のより近くで実行される。ユーザー、アプリケーション、及び／又は装置に関連する識別情報もデータリポジトリ１２２に記憶されてよい。識別情報は、例えば複数のユーザー名、パスワード、及びそれらの対応するアクセス制御ポリシーを含んでもよい。本書では識別情報は、機密保護サービスデータとも呼ばれる。１つの実施形態では、機密保護サービスデータはユーザー名及びパスワード、鍵、トークン、許可証、監査ログ、又は任意の他の機密保護サービスデータであってよい。
【００２１】
機密保護ブローカー１３０はコンピュータ、ソフトウェア及び／又はハードウェア、又は組み合わせであり、データリポジトリ１２２に記憶された識別情報にアクセスしその識別情報の変更を検出するようプログラム又は構成された命令群を記憶している。機密保護ブローカー１３０は識別情報の秘密の割当を生成しその識別情報をハッシュ値計算及び暗号化して、その情報を、ネットワーク１４０を通じてブロックチェーン１５０に送信する。これについて本書で更に説明される。
【００２２】
ネットワーク１４０は広くは１つ以上のローカルエリア・ネットワーク（ＬＡＮ）の組み合わせ、広域ネットワーク（ＷＡＮ）、大都市圏ネットワーク（ＭＡＮ）、公衆インターネットなどの世界的な相互接続ネットワーク、又はこれらの組み合わせを表す。このような各ネットワークは、開放型システム間相互接続（ＯＳＩ）多層ネットワークモデルなどの規格に従って相互接続ネットワークプロトコルを実行する記憶されたプログラムを使用又は実行してよい。このモデルは、これらに限定されないが伝送制御プロトコル（ＴＣＰ）又はユーザー・データグラム・プロトコル（ＵＤＰ）、インターネット・プロトコル（ＩＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）などを含む。本書に記載された全てのコンピュータはネットワーク１４０に接続するよう構成されてよく、本開示は図１の全ての構成要素はネットワーク１４０を介して通信可能に結合されていることを想定する。図１に描かれた様々な構成要素は説明の目的のために図１に描かれていない直接通信リンクを介して互いに通信してよい。
【００２３】
上に列挙した構成要素のそれぞれは単一のコンピュータ上に配置されているかのように例示されているが、上で列挙した構成要素の１つ以上は、異なる複数のコンピュータの一部であり及び／又はそれらの上で実行されてもよい。例えば、データリポジトリ１２２は別のデータリポジトリ１２２と同一の又は別のコンピュータ上に配置されてもよい。別の例として、データリポジトリ１２２は企業サーバーに結合された記憶ドライブであってもよい。
【００２４】
２．２    ブロックチェーンアーキテクチャ
ブロックチェーン１５０はコンピュータの相互接続ネットワーク内に記憶された複数ブロックの繋がれたデータから成ってもよく、これらのコンピュータにおいてブロックチェーンデータの順序付けられた生成及び送信を支える適切なプログラムが記憶されている。ブロックチェーン１５０は、ブロックと呼ばれる順序付けられた記録の連続的に成長するリストを維持する分散されたデータベースを形成し、これらのブロックは時刻が刻印され先行するブロックに繋がれる。一連のブロック内の各ブロックは時間順に繋がれ、各新ブロックは先行するブロックのハッシュ値を含む。コンピュータのネットワーク内の各コンピュータ１５５又はノードは繋がれたデータブロックの全記録を記憶してもよい。これは各データブロックの完全性とブロックチェーン１５０全体の完全性とを検証できるコンピュータの合意ネットワークを作る。合意ネットワークは、ビザンチン障害を許容する計算システムの能力である高いビザンチン障害耐性を有する利点を有する。結果として、ブロックチェーン１５０は、ハッシュ機能を利用して各ブロックをその先行するブロックに繋げデータブロックの全記録を各ノードにおいて記憶することでデータの完全性を保証する分散されたデータベースとして機能する。
【００２５】
２．３    分配サービス
分配サービス１６０は、ＩＡＭサービスをクライアント装置１６１にローカルに分配するために構成又はプログラムされたコンピュータ実行サービスであってもよい。クライアント装置１６１はコンピュータ、仮想コンピュータ、及び／又はコンピュータ装置であってよい。例として、コンピュータは１つ以上のサーバーコンピュータ、クラウドベースのコンピュータ、クラウドベースのコンピュータ群、ドッカーコンテナ、仮想マシンインスタンス又は仮想マシン計算要素、例えば仮想プロセッサ、記憶部及びメモリ、データセンター、記憶装置、卓上コンピュータ、ラップトップコンピュータ、携帯装置、及び／又は任意の他の特殊用途コンピュータ装置であってよい。クライアント装置１６１はまた、自身がデータを収集及び交換することを可能にするネットワーク接続能力を有する物理的装置である他のＩｏＴ装置であってもよい。クライアント装置１６１はまた、コンピュータ又はＩｏＴ装置を使用する特定のユーザーであってもよい。クライアント装置１６１はまた、コンピュータ又はＩｏＴ装置上で動作するアプリケーションであってもよい。
【００２６】
機密保護ゲートウェイ１７０は、他の機密保護ゲートウェイ１７０と共に働きブロックチェーン１５０に記憶された識別情報にアクセスし、秘密割当を暗号化及び／又は復号し、仮想ＩＡＭサービスをローカルに実行するように構成された命令群を記憶するコンピュータ、ソフトウェア及び／又はハードウェア、又は組み合わせであってもよい。クライアント装置１６１は機密保護ゲートウェイ１７０に接続して、機密保護ゲートウェイ１７０がブロックチェーン１５０に記憶された識別情報を使用してクライアント装置１６１のために仮想ＩＡＭサービスを実行してもよい。認証されると、クライアント装置１６１はＩｏＴカメラなどの１つ以上の他の装置及び／又はこれらの装置のデータ、例えばＩｏＴカメラからの配信映像にアクセスしてもよい。
【００２７】
３．０    機能概要
１つの実施形態では、機密保護ブローカー１３０、ブロックチェーン１５０、及び機密保護ゲートウェイ１７０は、新しいやり方でプログラムにより相互動作して企業サービス１１０とクライアント装置１６０の間の仮想機密保護仲介を提供する。１つの実施形態では、機密保護ゲートウェイ１７０は局所仮想ＩＡＭサービスを提供するように、クライアント装置１６１がインターネットに接続してＩＡＭ１２０サービスをさもなければ実行する企業サーバーにアクセスする必要の有無に拘らず、プログラムされている。機密保護ゲートウェイ１７０が識別情報の変更で更新されてよいように、機密保護ブローカー１３０及びブロックチェーン１５０は機密の識別情報を安全なやり方でコピーし、暗号化し、分配し、記憶し、移送するようにプログラム又は構成されている。これは本書において他の項で更に説明される。
【００２８】
３．１    機密保護ブローカー
図２は一例の実施形態における機密保護ブローカーを例示する。１つの実施形態では、符号２００は、機密保護ブローカー１３０とデータネットワーク１４０に結合されたデータリポジトリ１２２とを備えるコンピュータシステムを示す。機密保護ブローカー１３０は１つ以上の企業サーバーに関連する機密保護サービス情報を保護し、記憶し、分配し、暗号化し、転送するように働く命令群及び／又はデータベースを記憶するコンピュータ、ソフトウェア及び／又はハードウェア、又は組み合わせであってもよい。具体的には、機密保護ブローカー１３０は、データリポジトリ１２２に記憶された機密保護サービス情報にアクセスし識別情報を解析し機密保護サービス情報の再編成されたリストを生成する解析命令群２１０を含んでもよい。再編成されたリストは平文のユーザー名及びパスワード、鍵、トークン、許可証、監査ログ、又は任意の他の機密保護サービスデータのリストであっても、又はユーザー名及びパスワード、鍵、トークン、許可証、監査ログ、又は任意の他の機密保護サービスデータの企業サーバーにより生成されたハッシュ値であってもよい。平文のユーザー名及びパスワード又は任意の他の機密保護サービスデータのリスト、又はユーザー名及びパスワード又は任意の他の機密保護サービスデータのハッシュ値は組織化目的のために生成される。例えば、ＩＡＭ１２０サービスのために企業サーバーにより使用される機密保護サービス情報は特定の階層構造を有してもよい。情報処理命令群２３０はこの階層構造を解釈するために機密保護サービス情報のそれ自身の表現を作ってもよい。機密保護ブローカー１３０が機密保護サービス情報にアクセスし解析する頻度は企業によって決められてよい。その頻度は秒、分、時間、日、週、又は任意の他の時間増分単位であってもよい。その頻度はまた、インターネット接続性利用可能性、要求、又は任意の他の要因に基づいてもよい。
【００２９】
機密保護ブローカー１３０は前の検査以後の機密保護サービス情報の変更を検出するようにプログラムされる。具体的には、機密保護ブローカー１３０は現在のハッシュ値を前の検出のハッシュ値と比較する検出命令群２２０を含んでもよい。ユーザー名及びパスワード又は任意の他の機密保護データなどの機密保護サービス情報が記憶される場合、ハッシュ関数はその機密保護サービス情報に適用されてよい。例えば、ハッシュ関数、例えばＭＤ５、安全ハッシュアルゴリズム（ＳＨＡ）、又は任意の他のハッシュ関数が、各ユーザー名及びパスワードをハッシュ値又は指標、例えばＭＤ５ハッシュ値、ＳＨＡハッシュ値、又は任意の他のハッシュ値に対応付けてもよい。ハッシュ値は各ユーザー名及びパスワード又は他の機密保護サービス情報の数値表現として働いてもよい。当技術で理解される任意のハッシュ関数を使用してよい。機密保護サービス情報のどんな変更もハッシュ値を変え、それによって前の検出のハッシュ値と比較した現在のハッシュ値の差を作る。
【００３０】
もしハッシュ値が変わっていなければ、機密保護ブローカー１３０は解析に戻るようにプログラムされている。しかし、ハッシュ値が変わっていれば、秘密分配命令群２３０は機密保護サービス情報をデータリポジトリ１２２から抽出しその機密保護サービス情報を隠す。秘密分配命令群２３０はその機密保護サービス情報の多数の割当を生成してもよい。一例の実施形態では、割当の数は機密保護ゲートウェイ１７０の数に等しくてもよい。これらの割当は次に暗号化命令群２４０によって暗号化されて多数の暗号化された割当を生成してもよい。これについて本書で更に説明する。
【００３１】
機密保護ブローカー１３０に関連するブロックチェーン処理者命令群２５０は新たに暗号化された割当を特定し暗号化された割当の新しいデータエントリをブロックチェーン１５０内に作成することでブロックチェーン１５０を更新してもよい。暗号化された機密保護サービス情報はネットワーク１４０を介してブロックチェーン１５０に送られる。
【００３２】
図３は機密保護ブローカーデータ暗号化及び分配ワークフローを例示する。一例の実施形態では、ワークフロー３００は割当に変換された秘密分配命令群２３０を必要とし暗号化命令群２４０を使用して機密保護ゲートウェイへの送信のために暗号化された割当を生成する。
【００３３】
秘密分配命令群２３０は任意の秘密分配アルゴリズムを実行して識別情報を隠してもよい。図３の例では、秘密分配命令群２３０は識別情報を９つの部分又は割当３１０、３２０、３３０、３４０、３５０、３６０、３７０、３８０、３９０に分けることで識別情報を隠してもよく、どの２つの割当も隠された識別情報を再現するのに十分である。本実施形態で９つの割当が使用されているが、６つの割当、８つの割当、１０個の割当、又は任意の他の数の割当が使用されてもよい。１つの実施形態では、割当の数は、各ゲートウェイに対応する公開鍵により各割当が暗号化され、従って、各ゲートウェイの対応する秘密鍵により復号されうるように機密保護ゲートウェイ１７０の数に等しくてもよい。
【００３４】
具体的には、１つの実施形態では、秘密分配命令群２３０は多項式関数のデジタル表現を、識別情報を使用して生成してもよい。例えば、機密保護ブローカー１３０は下記の関数のデジタル表現を、識別情報を使用して生成してもよい：
ｆ(ｘ)＝ａ０＋ａ１ｘ＋ａ２ｘ２
ここでａ０はその識別情報を表す整数であってよく、ａ１はランダムに生成された第１数字を表す整数係数であってよく、ａ２はランダムに生成された第２数字を表す整数係数であってよい。１つの実施形態では、機密保護サービス情報が文字又は文字と数値の組み合わせを含む場合、任意の暗号が識別情報をａ０の数値に変換するために使用されてもよい。
【００３５】
秘密分配命令群２３０は次にその多項式関数に沿って点Ｄ０、Ｄ１、・・・Ｄｘ−１の列を下記の有限フィールド又はモジュラ演算を使用して計算してもよい：
Ｄｘ−１＝（ｘ,ｆ(ｘ) (ｍｏｄ ｐ)）
ここでｍｏｄ ｐは割当の数及び全てのａｉより大きい素数を表し、Ｄ０は第１ｘ-ｙ座標点を表し、Ｄ１は第２ｘ-ｙ座標点を表し、Ｄ２は第３ｘ-ｙ座標点を表すなど、９つ全ての割当を表す９つ全てのｘ-ｙ座標点が生成されるまで続く。
【００３６】
整数演算を使用してもよいが、有限フィールド演算は、多項式関数の既知の次数を利用しようと試みるマルウェア又はボットに対する増加した機密保護を提供する。また、上記手法は秘密分配暗号化の一方法を記述するが、任意の秘密分配暗号化手法を使用してもよい。
【００３７】
図３の例では、秘密分配命令群２３０が全９つの割当３１０、３２０、３３０、３４０、３５０、３６０、３７０、３８０、３９０を生成すると、各割当は９つの機密保護ゲートウェイのそれぞれに対応する別の公開鍵で暗号化される。例えば、暗号化命令群２４０は割当３１０を機密保護ゲートウェイ３１４に対応する公開鍵で暗号化して暗号化された割当３１２を生成してもよい。
【００３８】
割当３２０は機密保護ゲートウェイ３２４に対応する公開鍵で暗号化されて暗号化された割当３２２を生成してもよい。割当３３０は機密保護ゲートウェイ３３４に対応する公開鍵で暗号化されて暗号化された割当３３２を生成してもよい。割当３４０は機密保護ゲートウェイ３４４に対応する公開鍵で暗号化されて暗号化された割当３４２を生成してもよい。割当３５０は機密保護ゲートウェイ３５４に対応する公開鍵で暗号化されて暗号化された割当３５２を生成してもよい。割当３６０は機密保護ゲートウェイ３６４に対応する公開鍵で暗号化されて暗号化された割当３６２を生成してもよい。
【００３９】
割当３７０は機密保護ゲートウェイ３７４に対応する公開鍵で暗号化されて暗号化された割当３７２を生成してもよい。割当３８０は機密保護ゲートウェイ３８４に対応する公開鍵で暗号化されて暗号化された割当３８２を生成してもよい。割当３９０は機密保護ゲートウェイ３９４に対応する公開鍵で暗号化されて暗号化された割当３９２を生成してもよい。
【００４０】
その後、各機密保護ゲートウェイ３１４、３２４、３３４、３４４、３５４、３６４、３７４、３８４、３９４はそれら自身の秘密鍵を使用して対応する暗号化された割当３１２、３２２、３３２、３４２、３５２、３６２、３７２、３８２、３９２を復号してもよい。これについて本書で更に説明する。
【００４１】
機密保護ブローカー１３０はその後、ブロックチェーン処理者命令群２５０を実行して各暗号化された割当をデータとして分散されたブロックチェーン１５０データベースに記憶してよい。
【００４２】
３．２    ブロックチェーン動作
他の用途では、ブロックチェーンは、多数のエントリを追跡する分散されたデジタル台帳として機能する。ブロックチェーン全体のコピーは、相互接続されたコンピュータ（図１はそのうちのブロックチェーン１５０を有するコンピュータ１５５を示す）の分散ネットワーク内の各コンピュータ１５５又はノードにおいて記憶されてもよい。
【００４３】
１つの実施形態では、ブロックチェーン１５０への提案されたエントリはそれらのコンピュータの大多数により検証のために検査されてもよい。例えば、機密保護ブローカー１３０のブロックチェーン処理者命令群２５０がブロックチェーン１５０に新しいエントリを生成しようと試みる場合、そのブロックチェーンのコピーを記憶する相互接続されたコンピュータのネットワークは先ずハッシュ値を評価しそのエントリの妥当性を検証するアルゴリズムを実行する。それらのコンピュータの大多数が、エントリが妥当であると同意すると、そのエントリはブロックチェーン１５０内に新しいブロックとして追加されるであろう。合意ネットワークの一部として、ブロックチェーン１５０は高い実用的ビザンチン障害耐性（ＰＢＦＴ）及び他の種類の合意アルゴリズムを実施する。例えば、ブロックチェーン１５０内の情報を変えようと試みる悪意のある攻撃は、合意を変えるために合意ネットワーク内のコンピュータの５０％超を制御する必要があるだろう。悪意を持って攻撃しそれだけ多くのコンピュータの制御を維持することは極めて困難であるので、ブロックチェーンデータは、悪意のある攻撃に対して従来のデータ記憶方法より良く保護される。
【００４４】
図４はデジタルブロックチェーンデータベースを例示する。一例の実施形態では、デジタルブロックチェーンデータベース４００は、ブロック４１０、４２０、４３０を有するブロックチェーン１５０から成る。ブロックチェーン１５０は任意の数のブロックを含んでもよい。図４の例では、各ブロック４１０、４２０、４３０はそれ自身の指標数字４１１、４２１、４３１、時刻印４１２、４２２、４３２、データ４１３、４２３、４３３、ハッシュ値４１４、４２４、４３４、及び１つ前のハッシュ値４１５、４２５、４３５を含んでよい。
【００４５】
指標数字４１１、４２１、４３１はチェーン内のブロックの位置を示す数値指標であってよい。時刻印４１２、４２２、４３２は、ブロック４１０、４２０、４３０が作成された時の日付と時間であってよい。データ４１３、４２３、４３３はブロック４１０、４２０、４３０にそれぞれ“block0data”、“block1data”、及び“block2data”として記憶された暗号化された割当であってよい。ハッシュ値４１４、４２４、４３４は暗号化された割当のハッシュ値、例えばＭＤ５ハッシュ値、ＳＨＡ２５６ハッシュ値、又はＲＩＰＥＭＤハッシュ値であってよい。１つ前のハッシュ値４１５、４２５、４３５はブロックを順に繋ぐ１つ前のブロックのハッシュ値であってよい。図４の例では、ブロック４３０は１つ前のハッシュ値４２４の記録を記憶し、ブロック４２０は１つ前のハッシュ値４１４の記録を記憶する。１つ前のハッシュ値のこれらの記録は、各新しいブロックを１つ前のブロックに繋ぎ各ブロックの完全性検査を可能にするチェーンを形成する。
【００４６】
３．３    機密保護ゲートウェイ
図５は機密保護ゲートウェイシステムを例示する。１つの実施形態では、システム５００はデータネットワーク１４０に結合されたゲートウェイ１７０を備える。機密保護ゲートウェイ１７０は認証サービスのために識別情報にアクセスし、暗号化し、復号し、利用する命令群及び／又はデータベースを記憶するコンピュータ、ソフトウェア及び／又はハードウェア、又は組み合わせであってもよい。具体的には、機密保護ゲートウェイ１７０は、ブロックチェーン１５０にネットワーク１４０を通じて接続し他の機密保護ゲートウェイ１７０と共に働きブロックチェーン１５０にデータとして記憶された暗号化された割当にアクセスし認証サービスを実行してもよい。
【００４７】
機密保護ゲートウェイ１７０は、クライアント装置１６１が機密保護ゲートウェイ１７０に接続するために呼び出してよいプログラム機能を規定するアプリケーション・プログラム・インターフェース（ＡＰＩ）を実現するプログラムされた命令群を含んでよい。ＡＰＩは、例えばＨＴＴＰサーバーと一体化された表象状態転送（ＲＥＳＴ）ＡＰＩであってもよく、そのため、ＲＥＳＴ原則に従うＡＰＩ呼び出しがパラメーター化されたＵＲＬでＨＴＴＰ、制約されたアプリケーション・プロトコル（ＣｏＡＰ）、又は任意の他のプロトコルを通じてクライアント装置１６１からＡＰＩへ発行されうる。
【００４８】
１つの実施形態では、ＡＰＩを通じて機密保護ゲートウェイ１７０に接続されたクライアント装置１６１は仮想ＩＡＭサービス命令群５１０を使用して認証されてよい。仮想ＩＡＭサービス命令群５１０は、暗号化されブロックチェーン１５０にデータとして記憶された識別情報を使用して他の機密保護ゲートウェイ１７０と共に働きその識別情報を復号し明らかにすることで接続されたクライアント装置１６１のために仮想ＩＡＭサービスを実行してもよい。これについて本書で更に説明される。
【００４９】
要求する機密保護ゲートウェイ１７０は仮想ＩＡＭサービス命令群５１０を利用して認証サービスを、そうでなければＩＡＭ１２０サービスを実行する企業サーバーの代わりに実行してもよい。１つの実施形態では、認証するために、仮想ＩＡＭサービス命令群５１０は機密保護ゲートウェイ１７０の外部のクライアント装置１６１又は要求する機密保護ゲートウェイ１７０内のアプリケーションから平文で入力された機密保護サービス情報を受け取ってもよい。平文入力は暗号化されていない識別情報、例えばユーザー名及びパスワードであってもよい。他の実施形態では、機密保護サービス情報は鍵、トークン、許可証、監査ログ、又は任意の他の機密保護サービスデータであってもよい。
【００５０】
応答して、ブロックチェーン処理者５２０は、要求する機密保護ゲートウェイ１７０の公開鍵及び秘密鍵に対応する暗号化された割当をブロックチェーン１５０に要求してよい。要求する機密保護ゲートウェイ１７０は復号命令群５３０を使用して要求する機密保護ゲートウェイ１７０に対応する秘密鍵を使ってその暗号化された割当を復号してよい。機密保護ゲートウェイ１７０はまた、秘密公表命令群５５０を使用し参加要求を任意の他の利用可能な機密保護ゲートウェイ１７０に送り機密保護サービス情報を公表又は明かしてもよい。少なくとも１つの他のゲートウェイの参加が機密保護サービス情報を明かすのに十分であろう。一例の実施形態では、他のゲートウェイ１７０の利用可能性は他のどのゲートウェイがインターネットアクセスを有するかで決められてよい。
【００５１】
少なくとも１つの利用可能なゲートウェイ１７０が要求元の機密保護ゲートウェイ１７０から参加要求を受信し、秘密公表命令群５５０を使用してその利用可能性を確認すると、その利用可能なゲートウェイ１７０は自身のブロックチェーン処理者命令群５２０を実行してブロックチェーン１５０にデータとして記憶された自身の暗号化された割当にアクセスし、復号命令群５３０を使用して自身の割当を自身の秘密鍵を使って復号し、暗号化命令群５４０を使用して要求元の機密保護ゲートウェイ１７０の公開鍵を使ってその割当を再暗号化し、秘密公表命令群５５０を使用し機密保護サービス情報を明かすために再暗号化された割当を要求元の機密保護ゲートウェイ１７０に送ってよい。
【００５２】
例えば、図６は機密保護ゲートウェイデータ復号及び一体化ワークフロー６００を例示する。各暗号化された割当３１２、３２２、３３２、３４２、３５２、３６２、３７２、３８２、３９２は対応する機密保護ゲートウェイ３１４、３２４、３３４、３４４、３５４、３６４、３７４、３８４、３９４の各秘密鍵を使用して復号されてよい。例えば、暗号化された割当３１２は機密保護ゲートウェイ３１４に対応する秘密鍵を使用して復号されてよく、暗号化された割当３２２は機密保護ゲートウェイ３２４に対応する秘密鍵を使用して復号されてよいなどである。図６の例では、機密保護ゲートウェイ３１４が、機密保護ゲートウェイ３１４と関連する公開鍵を使用して暗号化された対応する割当３１２をブロックチェーン１５０から取り出す要求元の機密保護ゲートウェイであってもよい。要求元の機密保護ゲートウェイ３１４は次に暗号化された割当３１２を機密保護ゲートウェイ３１４と関連する秘密鍵を使用して復号し復号された割当６１０を生成してよい。
【００５３】
１つの実施形態では、要求元の機密保護ゲートウェイ３１４はまた、秘密公表命令群５５０を使用して参加要求を他の機密保護ゲートウェイに送り機密保護サービス情報を明かしてよい。参加要求は、例えばインターネットへのアクセスにより決められてもよい他の機密保護ゲートウェイの利用可能性を検査してよい。２つの割当が識別情報を明かすのに十分であろうから、少なくとも１つの利用可能なゲートウェイが要求元のゲートウェイと共に割当を復号するのに参加し総計２つの復号された割当を生成してよい。
【００５４】
図６の例では、２つの利用可能な機密保護ゲートウェイ、例えば利用可能な機密保護ゲートウェイ３５４、３９４はその後、ブロックチェーン処理者命令群５２０を使用してブロックチェーン１５０内の自身の暗号化された割当３５２、３９２にアクセスし復号命令群５３０を実行して自身の暗号化された割当３５２、３９２を自身の秘密鍵を使用して復号し復号された割当６２０、６３０を生成することで応答してよい。１つの実施形態では、利用可能な機密保護ゲートウェイ３５４、３９４は次に暗号化命令群５４０を実行し要求元の機密保護ゲートウェイ３１４に対応する公開鍵を使用して自身の復号された割当６２０、６３０を再暗号化し、再暗号化された割当６２２、６３２を生成してよい。利用可能な機密保護ゲートウェイ３５４、３９４は再暗号化された割当６２２、６３２を要求元の機密保護ゲートウェイ３１４に送り、要求元の機密保護ゲートウェイ３１４は復号命令群５３０を実行して再暗号化された割当６２２、６３２を自身に関連する秘密鍵を使用して復号してよい。要求元の機密保護ゲートウェイ３１４は次に秘密公表命令群５５０を実行して機密保護サービス情報を明かしてよい。
【００５５】
具体的には、秘密公表命令群５５０は多項式関数の記憶されたデジタル表現をそれら３つの割当からの３つのｘ-ｙ座標点を使用して再現してよい。多項式関数のデジタル表現を再現することで、多項式関数において整数として使用されるデータが明かされてよい。その後、そのデータは仮想ＩＡＭサービス命令群５１０により使用され要求元の機密保護ゲートウェイ３１４に接続されたクライアント装置１６１を認証してよい。認証されたクライアント装置１６１は次に１つ以上の他の装置、例えば産業機器及び他のＩｏＴ装置にアクセスしてよい。
【００５６】
１つの実施形態では、他のゲートウェイの利用可能性を検査するのに加えて、アクセスポリシーは秘密公表命令群５５０を制御しどんな要求元の機密保護ゲートウェイ１７０の状態も監視してよい。通常でない要求行動を示すどんな機密保護ゲートウェイ１７０も自動的に障害があるとフラッグ付け及び指定されてよい。要求元の機密保護ゲートウェイ１７０が他の利用可能なゲートウェイ１７０の参加への利用可能性を検査するのに加えて、他の機密保護ゲートウェイ１７０はまた、要求元の機密保護ゲートウェイ１７０及び／又は認証アクセスを要求している装置の通常でない行動がないか機密保護検査を行い、要求元の機密保護ゲートウェイ１７０及び／又は装置がボット又は任意の他の種類のマルウェアにより損なわれていないことを保証してもよい。具体的には、１つの実施形態では、装置フィンガープリンティング、完全性検査、役割ベースアクセス制御、ジオフェンシング（領域設定）、及び任意の他の機密保護対策を使用してユーザー、装置、及び／又は機密保護ゲートウェイ１７０を機密保護目的のために監視し追跡してもよい。１つの実施形態では、各機密保護ゲートウェイ１７０は、例えば時刻印、行為者、動作／トランザクション、重大度、及び機密保護ゲートウェイ１７０により処理されたいずれの作業の状態も記録し、追跡及び機密保護目的で検査ログを生成するようプログラムされてもよい。
【００５７】
例えば、もし要求元の機密保護ゲートウェイ３１４が、機密保護ゲートウェイ３１４を使って繰り返し参加要求をどれか利用可能な機密保護ゲートウェイ３５４、３９４に送る悪意のあるボットにより損なわれたなら、各要求は利用可能な機密保護ゲートウェイ３５４、３９４により記録されてよい。多過ぎる要求が受信されたなら、警告が、機密保護ゲートウェイ３１４が損なわれているかも知れないことを示すために生成されてもよい。警告を生成するための閾値は産業ニーズに依ってカスタマイズ可能であってもよい。１つの実施形態では、警告は利用可能な機密保護ゲートウェイ３５４、３９４に機密保護ゲートウェイ３１４からの要求の受け付けを停止させてもよい。
【００５８】
４．０    手順概要
図７Ａ及び図７Ｂは分散体系によってデータ機密保護を改善するための方法又はアルゴリズムを例示する。
【００５９】
１つの実施形態では、方法７００は、第１コンピュータ装置において第１デジタルデータリポジトリから機密保護サービスデータを受け取るステップ７０２から始まる。機密保護サービスデータは、例えば、ユーザー名及びパスワード、鍵、トークン、許可証、監査ログ、又は任意の他の種類の機密保護サービスデータであってよい。第１コンピュータ装置は機密保護ブローカー１３０であってよく、第１デジタルデータリポジトリはＩＡＭ１２０サービスを提供するように構成された企業サーバーに関連するデータリポジトリ１２２であってよい。この方法又はアルゴリズム７００はＩＡＭ１２０負担を企業サーバーから離しその負担を機密保護ブローカー１３０、機密保護ゲートウェイ１７０、及び分散ブロックチェーン１５０に分配して不正変更耐性、機密性、及び全体的機密保護を増加させる技術的利点を有する。従って、方法又はアルゴリズム７００の各ステップはＩＡＭ１２０サービスを提供するために企業サーバーに代わって実行されてよい。
【００６０】
ステップ７０４では、機密保護ブローカー１３０は機密保護サービスデータの複数の割当を生成することで隠された機密保護サービスデータを生成する。具体的には、機密保護ブローカー１３０は秘密分配命令群２３０を使用して多項式関数の記憶されたデジタル表現を生成してもよい。秘密分配命令群２３０は多項式関数から複数のｘ-ｙ座標点を計算し機密保護サービスデータの複数の割当を生成してよい。各割当は１つのｘ-ｙ座標点を表し、任意の数の割当が生成されてよい。割当の総数は機密保護ゲートウェイ１７０の総数に一致してよい。図３の一例の実施形態では、総計９つの点又は割当が９つの機密保護ゲートウェイ１７０にそれぞれ対応するように生成されてよい。
【００６１】
ステップ７０６では、機密保護ブローカー１３０は複数の割当の各割当を複数の公開鍵のうち複数の第２コンピュータ装置のそれぞれに対応する別の公開鍵を使用して暗号化し、複数の暗号化された割当を生成する。公開鍵は９つの機密保護ゲートウェイ１７０の１つに対応する公開鍵であってよい。図３の例に関して、機密保護ブローカー１３０は暗号化命令群２４０を使用して９つの割当のそれぞれを暗号化し９つの暗号化された割当を生成してよい。９つの機密保護ゲートウェイ１７０にそれぞれ対応する個別の公開鍵が暗号化のために使用されてよく、そのため各ゲートウェイの秘密鍵が９つの割当のうち対応する割当を復号してよい。秘密分配の分散された構成は、どの単一の機密保護ゲートウェイ１７０も極秘の機密保護サービスデータに単独でアクセスできないことを保証することでデータ機密保護を改善する。従って、マルウェアで損なわれたどの単一の機密保護ゲートウェイ１７０も極秘情報を明かさない。
【００６２】
ステップ７０８では、機密保護ブローカー１３０が暗号化された割当を生成した後、全ての暗号化された割当を第２デジタルデータリポジトリ、例えば分散デジタルブロックチェーン１５０にデータとして電子的に記憶してもよい。分散ブロックチェーン１５０の各ブロックはその１つ前のブロックのハッシュ値を含むので、ブロックチェーン内のデータの許可されていないどんな変更もチェーン内の各ブロックのハッシュ値の変更を生じさせる。従って、ブロックチェーン１５０の使用によって許可されていない変更を容易に検出できる。また、機密保護サービス情報の全ての変更は先ず、ブロックチェーンデータの完全性を保護するコンピュータ１５５の合意ネットワークによって承認される。
【００６３】
ゲートウェイの総数のうち、２つが隠された機密保護サービスデータを明かすのに十分な部分集合である。従って、ステップ７１０では、２つの機密保護ゲートウェイ１７０の部分集合が自身の対応する暗号化された割当を自身の秘密鍵を使用して復号し少なくとも２つの復号された割当を生成してよい。具体的には、要求元の機密保護ゲートウェイ１７０はクライアント装置１６１から１つ以上のＩＯＴコンピュータ装置にアクセスする認証要求を受信するかも知れない。クライアント装置１６１を認証するために、要求元の機密保護ゲートウェイ１７０はブロックチェーン１５０に自身の対応する暗号化された割当を要求してよい。ステップ７１６で、この対応する暗号化された割当は要求元の機密保護ゲートウェイの秘密鍵を使用して復号されてよい。要求元の機密保護ゲートウェイ１７０はまた、少なくとも１つの他の利用可能な機密保護ゲートウェイ１７０の参加を要求してもよい。
【００６４】
方法７００は、図７Ｂのステップ７１２から再開し、このステップでは、その利用可能な機密保護ゲートウェイがブロックチェーン内の自身の対応する暗号化された割当にアクセスしそれを自身の秘密鍵を使用して復号して復号された割当を生成してよい。
【００６５】
ステップ７１４では、１つの実施形態において、利用可能な機密保護ゲートウェイ１７０は次に自身の復号された割当を要求元の機密保護ゲートウェイ１７０に対応する公開鍵を使用して再暗号化して再暗号化された割当を生成してよい。再暗号化された割当は次に要求元の機密保護ゲートウェイ１７０に要求元の機密保護ゲートウェイの秘密鍵を使用する復号のために送られてよい。
【００６６】
ステップ７１６では、要求元の機密保護ゲートウェイ１７０は、再暗号化された割当を利用可能な機密保護ゲートウェイ１７０から、また要求元の機密保護ゲートウェイの対応する暗号化した割当をブロックチェーン１５０から受信しそれらの割当を要求元の機密保護ゲートウェイの秘密鍵を使用して復号してよい。それらの割当を復号することは２つのｘ-ｙ座標点を形成してよく、それらの座標点は次に多項式関数の記憶されたデジタル表現を再現するのに使用されてよい。
【００６７】
ステップ７１８では、多項式関数のデジタル表現を再現することで隠された機密保護サービスデータの読めるコピーを形成し記憶してもよい。次に機密保護サービス情報又は機密保護サービスデータを表す整数ａ０を多項式関数のデジタル表現から得てもよい。１つの実施形態では、もし機密保護サービスデータを数値に変換するのに暗号が前に使用されたのであれば、ａ０の数値は読める機密保護サービスデータに変換され戻されてよい。  
【００６８】
その後、ステップ７２０で、要求元の機密保護ゲートウェイ１７０は機密保護サービスデータを使用してクライアント装置１６１を認証し、１つ以上のＩｏＴコンピュータ装置へのアクセスを許可又は拒否してよい。
【００６９】
上記の手法を使用して、プログラムされたコンピュータは分散システムを使用して、データ送達及び認証手法を改善しながらデータ機密保護及びデータ完全性を最大化するやり方で機密データを隠し、転送し、記憶し、利用しうる。実施形態は、多数のユーザー、アプリケーション、及び／又は装置に直接ＩＡＭ１２０サービスをもはや提供しない企業サーバーにとってネットワークバンド幅の低減された使用と処理資源の低減された使用を可能にする。言い換えると、ＩＡＭ１２０サービスを分散化することで、ネットワークトラフィックはもはや企業サーバーに集中せず、その結果、ネットワークトラフィック及びサーバー処理資源の使用は低減される。
【００７０】
また、本書に開示した手法はデータ機密保護及びデータ完全性を改善する。ブロックチェーン１５０の使用は機密保護サービス情報の全ての変更は先ず合意ネットワークによって承認されることを保証し、これはブロックチェーンデータの完全性を保護する。ブロックチェーン１５０の特質はまた、各新しいデータブロックは１つ前のブロックに繋げられることを保証し、変更を記録に残し承認されていない変更を拒絶する改善された方法を作成する。その結果、ブロックチェーン１５０は高い実用的ビザンチン障害耐性（ＰＢＦＴ）及び他の種類の合意アルゴリズムにより極秘の機密保護サービス情報の安全なバックアップとして機能する。
【００７１】
改善されたデータ機密保護も本書に説明した手法により様々な暗号化方法によって提供される。秘密分配暗号化の使用は、機密保護サービス情報を割当に分けてそれらの割当を異なるゲートウェイに対応する公開鍵で暗号化することで機密保護サービス情報は保護されることを保証する。悪意のある攻撃が首尾よく機密保護サービス情報を得るために、少なくとも３つのゲートウェイ１７０の秘密鍵が必要であろう。悪意のある攻撃が３つの別々のゲートウェイ１７０の秘密鍵を得られることはあまりありそうにないので、秘密分配暗号化はデータの機密保護を改善する。
【００７２】
５．０    ハードウェア概要
１つの実施形態によれば、本書に記載した手法は少なくとも１つのコンピュータ装置により実行される。本手法は少なくとも１つのサーバーコンピュータ及び／又はパケットデータネットワークなどのネットワークを使用して結合された他の複数のコンピュータ装置の組み合わせを使用して全体が又は一部が実行されてよい。コンピュータ装置はそれらの手法を実行するように配線されていても、又はデジタル電子装置、例えば少なくとも１つの特定用途向け集積回路（ＡＳＩＣ）又はそれらの手法を実行するように永続的にプログラムされたフィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）を備えていても、又はファームウェア、メモリ、他の記憶装置、又は組み合わせ内のプログラマ命令群に従ってそれらの手法を実行するようにプログラマされた少なくとも１つの汎用ハードウェアプロセッサを備えていてもよい。このようなコンピュータ装置はまた、カスタム配線論理、ＡＳＩＣ、又はＦＰＧＡをカスタムプログラムと組み合わせて記載した手法を実現してもよい。これらのコンピュータ装置はサーバーコンピュータ、ワークステーション、パーソナルコンピュータ、携帯コンピュータシステム、ハンドヘルド装置、可搬コンピュータ装置、装着型コンピュータ、体に取り付けた又は埋め込み可能な装置、スマートフォン、スマート器具、ＬＡＮ間接続装置、自律又は半自律装置、例えばロボット又は無人地上又は空中車、計器、センサー、及び配線接続された及び／又はプログラム論理を内蔵し記載された手法を実行する任意の他の電子装置、データセンター内の１つ以上の仮想コンピュータマシン又はインスタンス、及び／又はサーバーコンピュータ及び／又はパーソナルコンピュータのネットワークであってもよい。
【００７３】
図８は１つの実施形態が実施されてよい一例のコンピュータシステムを示すブロック図である。図８の例では、コンピュータシステム８００及び開示された技術をハードウェア、ソフトウェア、又はハードウェアとソフトウェアの組み合わせで実現するための命令群が概略的に例えば、箱又は円として、本開示に関係する技術の当業者により通常使用されるのと同じ詳細さのレベルでコンピュータアーキテクチャ及びコンピュータシステム実施形態について伝えるために表されている。
【００７４】
コンピュータシステム８００は、バス及び／又はコンピュータシステム８００の構成要素間で情報及び／又は命令群を、電子信号路を通じて通信するための他の通信機構を含んでよい入力／出力（Ｉ／Ｏ）サブシステム８０２を含む。Ｉ／Ｏサブシステム８０２はＩ／Ｏコントローラ、メモリコントローラ、及び少なくとも１つのＩ／Ｏポートを含んでもよい。電子信号路は図面において概略的に例えば、線、一方向矢印、又は双方向矢印として表されている。
【００７５】
少なくとも１つのハードウェアプロセッサ８０４がＩ／Ｏサブシステム８０２に情報及び命令群を処理するために結合される。ハードウェアプロセッサ８０４は、例えば汎用マイクロプロセッサ又はマイクロコントローラ、及び／又は埋め込みシステム又はグラフィック処理ユニット（ＧＰＵ）又はデジタル信号プロセッサ又はＡＲＭプロセッサなどの特殊用途マイクロプロセッサを含んでもよい。プロセッサ８０４は一体化された論理演算ユニット（ＡＬＵ）を備えても、又は別個のＡＬＵに結合されてもよい。
【００７６】
コンピュータシステム８００は、Ｉ／Ｏサブシステム８０２に結合されデータ及びプロセッサ８０４が実行する命令群を電子的にデジタルで記憶するための主メモリなどの１つ以上のメモリユニット８０６を含む。メモリ８０６は揮発性メモリ、例えば様々な形態のランダムアクセスメモリ（ＲＡＭ）又は他の動的記憶装置を含んでもよい。メモリ８０６も、プロセッサ８０４により命令群が実行される間一時的変数又は他の中間情報を記憶するために使用されてもよい。このような命令群は、プロセッサ８０４にとってアクセス可能な持続性コンピュータ読取可能記憶媒体に記憶されている場合、コンピュータシステム８００を命令群に指定された動作を実行するようにカスタマイズされた特殊用途マシンに変えうる。
【００７７】
コンピュータシステム８００は不揮発性メモリ、例えば読出し専用メモリ（ＲＯＭ）８０８又はＩ／Ｏサブシステム８０２に結合され情報及びプロセッサ８０４用の命令群を記憶するための他の静的記憶装置を更に含む。ＲＯＭ８０８は様々な形態のプログラマブルＲＯＭ（ＰＲＯＭ）、例えば消去可能ＰＲＯＭ（ＥＰＲＯＭ）又は電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）を含んでもよい。永続記憶ユニット８１０は様々な形態の不揮発性ＲＡＭ（ＮＶＲＡＭ）、例えばＦＬＡＳＨ（登録商標）メモリ、又は固体記憶装置、磁気ディスク又はＣＤ−ＲＯＭ又はＤＶＤ−ＲＯＭなどの光ディスクを含んでもよく、情報及び命令群を記憶するためにＩ／Ｏサブシステム８０２に結合されてもよい。記憶装置８１０は、命令群及びデータを記憶するために使用されてよい持続性コンピュータ読取可能媒体の例であり、それらの命令群はプロセッサ８０４により実行される時、コンピュータ実行方法を実行させ、本書の手法を実行する。
【００７８】
メモリ８０６、ＲＯＭ８０８、又は記憶装置８１０内の命令群は、モジュール、方法、オブジェクト、機能、ルーチン、又は呼び出しとして構成される１つ以上の組の命令を含んでよい。命令群は１つ以上のコンピュータプログラム、オペレーティングシステムサービス、又は携帯アプリを含むアプリケーションプログラムとして構成されてもよい。命令群はオペレーティングシステム及び／又はシステムソフトウェア；マルチメディア、プログラミング、又は他の機能を支える１つ以上のライブラリ；ＴＣＰ／ＩＰ、ＨＴＴＰ、又は他の通信プロトコルを実行するデータプロトコル命令群又はスタック；ＨＴＭＬ、ＸＭＬ、ＪＰＥＧ、ＭＰＥＧ、又はＰＮＧを使ってコード化されたファイルを解析又は解釈するファイルフォーマット処理命令群；グラフィカルユーザーインターフェース（ＧＵＩ）、コマンドラインインターフェース、又はテキストユーザーインターフェース用のコマンドを翻訳又は解釈するユーザーインターフェース命令群；アプリケーションソフトウェア、例えばオフィススイート、インターネットアクセスアプリケーション、設計及び製造アプリケーション、グラフィックアプリケーション、音声アプリケーション、ソフトウェア工学アプリケーション、教育アプリケーション、ゲーム、又は種々雑多なアプリケーションを含んでよい。命令群はウェブサーバー、ウェブアプリケーションサーバー、又はウェブクライアントを実現してもよい。命令群はプレゼンテーション層、アプリケーション層、及びデータ記憶層、例えば構造化照会言語（ＳＱＬ）を使用する関係型データベースシステム、ＳＱＬ不使用、オブジェクトストア、グラフデータベース、フラットファイルシステム、又は他のデータ記憶として構成されてよい。
【００７９】
コンピュータシステム８００はＩ／Ｏサブシステム８０２を介して少なくとも１つの出力装置８１２に結合されてもよい。１つの実施形態では、出力装置８１２はデジタルコンピュータ表示器である。様々な実施形態で使用されてよい表示器の例は、タッチスクリーン表示器又は発光ダイオード（ＬＥＤ）表示器又は液晶表示器（ＬＣＤ）又は電子ペーパー表示器を含む。コンピュータシステム８００は表示装置に代えて又は加えて他の種類の出力装置８１２を含んでよい。他の出力装置８１２の例はプリンター、切符プリンター、プロッター、プロジェクター、音声カード又は映像カード、スピーカー、ブザー又は圧電素子又は他の可聴装置、ランプ又はＬＥＤ又はＬＣＤ指示器、触覚装置、作動装置又はサーボを含む。
【００８０】
少なくとも一つの入力装置８１４が、信号、データ、コマンド選択、又はジェスチャーをプロセッサ８０４ に伝えるためにＩ／Ｏサブシステム８０２に結合される。入力装置８１４の例は、タッチスクリーン、マイクロフォン、静止及びビデオデジタルカメラ、英数字及び他のキー、キーパッド、キーボード、グラフィックスタブレット、イメージスキャナー、ジョイスティック、クロック、スイッチ、ボタン、ダイヤル、スライド、及び／又は様々な種類のセンサー、例えば力センサー、動きセンサー、熱センサー、加速度計、ジャイロスコープ、及び慣性測定ユニット（ＩＭＵ）センサー、及び／又は様々な種類の送受信機、例えば携帯電話又はＷｉ−Ｆｉなどの無線装置、無線周波数（ＲＦ）又は赤外線（ＩＲ）送受信機、及び全地球測位システム（ＧＰＳ）送受信機を含む。
【００８１】
別の種類の入力装置は、入力機能に代えて又は加えて、表示画面上でのグラフィカルインターフェースにおけるナビゲーションなどのカーソル制御または他の自動化された制御機能を実行してよい制御装置８１６である。制御装置８１６は、方向情報及びコマンド選択をプロセッサ８０４に通信し、表示器８１２上のカーソル移動を制御するためのタッチパッド、マウス、トラックボール、又はカーソル方向キーであってもよい。入力装置は、第１軸（例えば、ｘ）と第２軸（例えば、ｙ）の２軸の少なくとも２自由度を有してもよく、これはその装置が平面内で位置を指定するのを許す。別の種類の入力装置は、ジョイスティック、ワンド、コンソール、操舵ホイール、ペダル、ギアシフト機構、又は他の種類の制御装置などの有線、無線、又は光学制御装置である。入力装置８１４は、ビデオカメラ及び奥行きセンサーなどの複数の異なる入力装置の組み合わせを含んでもよい。
【００８２】
別の実施形態では、コンピュータシステム８００は、出力装置８１２、入力装置８１４、及び制御装置８１６のうちの１つ以上が省略された物のインターネット（ＩｏＴ）装置を含んでもよい。或いは、そのような実施形態では、入力装置８１４は、１つ以上のカメラ、動き検出器、温度計、マイクロフォン、振動検出器、他のセンサー又は検出器、測定装置又はエンコーダーを含んでもよく、出力装置８１２は、単一ラインＬＥＤ又はＬＣＤ表示器などの特殊用途表示器、１つ以上の指示器、表示パネル、計器、バルブ、ソレノイド、作動装置又はサーボを含んでもよい。
【００８３】
コンピュータシステム８００が携帯コンピュータ装置である時、入力装置８１４は、複数のＧＰＳ衛星に対して三角測量し、コンピュータシステム８００の地球物理的位置の緯度‐経度値などの地理位置データを測定し生成できるＧＰＳモジュールに結合された全地球測位システム（ＧＰＳ）受信機を含んでもよい。出力装置８１２は、位置報告パケット、通知、パルス又はハートビート信号、又は単独で又は他の特定用途向けデータと組み合わせてコンピュータシステム８００の位置を指定する他の繰り返しデータ送信であってホスト８２４又はサーバー８３０に向けられたデータ送信を生成するためのハードウェア、ソフトウェア、ファームウェア、及びインターフェースを含んでもよい。
【００８４】
コンピュータシステム８００は、カスタム配線論理、少なくとも１つのＡＳＩＣ又はＦＰＧＡ、ファームウェア、及び／又はロードされコンピュータシステムと共に使用又は実行される時、コンピュータシステムを特殊用途マシンとして動作させる又は動作するようにプログラムするファームウェア及び／又はプログラム命令群又は論理を使用して本書に記載された手法を実行してもよい。１つの実施形態によれば、本書の手法は、プロセッサ８０４が主メモリ８０６に収容された少なくとも１つの命令の少なくとも１つのシーケンスを実行するのに応答して、コンピュータシステム８００により実行される。このような命令群は主メモリ８０６に別の記憶媒体、例えば記憶装置８１０から読み込まれてもよい。主メモリ８０６に収容された命令シーケンスの実行はプロセッサ８０４に本書に記載されたプロセスステップを実行させる。別の実施形態では、配線回路がソフトウェア命令群の代わりに又はと組み合わせて使用されてもよい。
【００８５】
本書で使用する用語「記憶媒体」はデータ及び／又はマシンを特定のやり方で動作させる命令群を記憶する任意の持続性媒体を指す。このような記憶媒体は不揮発性媒体及び／又は揮発性媒体であってもよい。不揮発性媒体は、例えば記憶装置８１０などの光学又は磁気ディスクを含む。揮発性媒体は動的メモリ、例えば主メモリ８０６を含む。一般的な形態の記憶媒体は、例えばハードディスク、半導体ドライブ、フラッシュドライブ、磁気データ記憶媒体、任意の光学又は物理的データ記憶媒体、メモリチップなどを含む。
【００８６】
記憶媒体は伝送媒体と異なるが、一緒に使用されてもよい。伝送媒体は記憶媒体間の情報の移送に関わる。例えば、伝送媒体は同軸ケーブル、銅線、及び光ファイバーを含み、Ｉ／Ｏサブシステム８０２のバスを成す配線も含む。伝送媒体はまた、電波及び赤外線データ通信時に発生させるような音波又は光波の形態を取りうる。
【００８７】
様々な形態の媒体が少なくとも１つの命令の少なくとも１つのシーケンスを実行のためにプロセッサ８０４に運ぶのに関わってもよい。例えば、命令群は最初遠隔のコンピュータの磁気ディスク又は半導体ドライブ上に搭載されてもよい。遠隔のコンピュータはその命令群をその動的メモリにロードして命令群を光ファイバー又は同軸ケーブル、又はモデムを使う電話回線などの通信回線を通じて送信できる。コンピュータシステム８００のモデム又はルーターは通信回線上のそのデータを受信してコンピュータシステム８００が読める形式に変換できる。例えば、無線周波数アンテナ又は赤外線検出器などの受信機は無線又は光信号で運ばれるデータを受信でき、適切な回路が、バス上にデータを載せるようにそのデータをＩ／Ｏサブシステム８０２に提供できる。Ｉ／Ｏサブシステム８０２はそのデータを主メモリ８０６に運び、プロセッサ８０４は主メモリからその命令群を読み出し実行する。主メモリ８０６が受け取った命令群は、プロセッサ８０４による実行前か後かに選択肢として記憶装置８１０上に記憶されてもよい。
【００８８】
コンピュータシステム８００はまた、バス８０２に結合された通信インターフェース８１８を含む。通信インターフェース８１８は少なくとも１つの通信ネットワーク、例えばネットワーク８２２又はインターネット上の公開又は社内クラウドに直接又は間接的に接続されたネットワークリンク８２０への双方向データ通信結合を提供する。例えば、通信インターフェース８１８はＥｔｈｅｒｎｅｔ（登録商標）ネットワークインターフェース、総合デジタル通信網（ＩＳＤＮ）カード、ケーブルモデム、衛星モデム、又は対応する種類の通信回線、例えばＥｔｈｅｒｎｅｔケーブル又は任意の種類の金属ケーブル又は光ファイバー回線又は電話回線へのデータ通信接続を提供するモデムであってもよい。ネットワーク８２２は、広くはローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、キャンパスネットワーク、相互接続ネットワーク、又はそれらの任意の組み合わせを表わす。通信インターフェース８１８は、互換のＬＡＮへのデータ通信接続を提供するためのＬＡＮカード、又はセルラー無線電話ワイヤレスネットワーク規格に従ってセルラーデータを送信又は受信するように配線されたセルラー無線電話インターフェース、又は衛星ワイヤレスネットワーク規格に従ってデジタルデータを送信又は受信するように配線された衛星無線インターフェースを含んでよい。どんなそのような実施形態でも、通信インターフェース８１８は、様々な種類の情報を表わすデジタルデータストリームを運ぶ信号経路を通じて、電気信号、電磁信号、又は光信号を送信し受信する。
【００８９】
ネットワークリンク８２０は通常、例えば衛星、セルラー、Ｗｉ-Ｆｉ又はＢＬＵＥＴＯＯＴＨ（登録商標）技術を使った、直接又は少なくとも１つのネットワークを介した他のデータ装置への電気、電磁、又は光学データ通信を提供する。例えば、ネットワークリンク８２０は、ネットワーク８２２を通じたホストコンピュータ８２４への接続を提供してもよい。
【００９０】
また、ネットワークリンク８２０は、ネットワーク８２２を通じた、又はＬＡＮ間接続装置を介して他のコンピュータ装置及び／又はインターネットサービスプロバイダー（ＩＳＰ）８２６によって運営されるコンピュータへの接続を提供してもよい。ＩＳＰ８２６は、インターネット８２８として表される世界規模のパケットデータ通信網を通じたデータ通信サービスを提供する。サーバーコンピュータ８３０はインターネット８２８に結合されてもよい。サーバー８３０は、広くは任意のコンピュータ、データセンター、ハイパーバイザーを有するか又は有さない仮想マシン又は仮想コンピュータインスタンス、又はＤＯＣＫＥＲ又はＫＵＢＥＲＮＥＴＥＳなどのコンテナ化されたプログラムシステムを実行するコンピュータを表わす。サーバー８３０は、２つ以上のコンピュータ又はインスタンスを使って実行され、ウェブサービス要求、ＨＴＴＰペイロード内にパラメーターを持つユニフォームリソースロケータ（ＵＲＬ）文字列、ＡＰＩ呼び出し、アプリサービス呼び出し、又は他のサービス呼び出しを送信することでアクセスされ、使用される電子デジタルサービスを表わしてもよい。コンピュータシステム８００及びサーバー８３０は、他のコンピュータ、処理クラスター、サーバーファーム、又はタスクを実行するか又はアプリケーション又はサービスを実行するために協働するコンピュータの他の組織を含む分散コンピュータシステムの要素を成してもよい。サーバー８３０は、モジュール、メソッド、オブジェクト、関数、ルーチン、又は呼び出しとして構成された命令の１つ以上の組を備えてもよい。命令群は、１つ以上のコンピュータプログラム、オペレーティングシステムサービス、又はモバイルアプリを含むアプリケーションプログラムとして構成されてもよい。命令群は、オペレーティングシステム及び／又はシステムソフトウェア；マルチメディア、プログラミング、又は他の機能をサポートする１つ以上のライブラリ；ＴＣＰ／ＩＰ、ＨＴＴＰ、又は他の通信プロトコルを実行するデータプロトコル命令群又はスタック；ＨＴＭＬ、ＸＭＬ、ＪＰＥＧ、ＭＰＥＧ、又はＰＮＧを使ってコード化されたファイルを解析又は解釈するファイルフォーマット処理命令群；グラフィカルユーザーインターフェース（ＧＵＩ）、コマンドラインインターフェース、又はテキストユーザーインターフェース用のコマンドを翻訳又は解釈するユーザーインターフェース命令群；アプリケーションソフトウェア、例えばオフィススイート、インターネットアクセスアプリケーション、設計及び製造アプリケーション、グラフィックアプリケーション、音声アプリケーション、ソフトウェア工学アプリケーション、教育アプリケーション、ゲーム、又は種々雑多なアプリケーションを含んでよい。サーバー８３０は、プレゼンテーション層、アプリケーション層、及びデータ記憶層、例えば構造化照会言語（ＳＱＬ）を使用する又はＳＱＬを使用しない関係型データベースシステム、オブジェクトストア、グラフデータベース、フラットファイルシステム、又は他のデータ記憶の働きをするウェブアプリケーションサーバーを含んでもよい。
【００９１】
コンピュータシステム８００は、ネットワーク、ネットワークリンク８２０及び通信インターフェース８１８を通じて、メッセージを送り、プログラムコードを含むデータ及び命令群を受信できる。インターネットの例では、サーバー８３０は、インターネット８２８、ＩＳＰ８２６、ローカルネットワーク８２２、及び通信インターフェース８１８を通じて、アプリケーションプログラムの要求されたコードを送信してもよい。受信されたコードは、受信されながらプロセッサ８０４によって実行されても、及び／又は、後で実行するために記憶８１０又は他の不揮発性記憶装置に記憶されてもよい。
【００９２】
この項に説明された命令群の実行は、プログラムコード及びその現在の働きから成り実行されているコンピュータプログラムのインスタンスの形態でプロセスを実行してもよい。オペレーティングシステム（ＯＳ） に依って、プロセスは、命令群を同時に実行する複数の実行スレッドから構成されてもよい。この状況において、コンピュータプログラムは命令の受動的な集合である一方、プロセスはそれらの命令の実際の実行であってもよい。幾つかのプロセスは同じプログラムに関連してもよく、例えば、同じプログラムの幾つかのインスタンスを開始することは、２つ以上のプロセスが実行されていることをしばしば意味する。マルチタスク処理が、複数のプロセスがプロセッサ８０４を共用することを許すために実行されてもよい。各プロセッサ８０４又はそのプロセッサの各コアは一度に１つだけのタスクを実行するが、コンピュータシステム８００は、各プロセッサが、各タスクが終了するのを待つことなく、実行されているタスクを切り換えるのを許すようにマルチタスク処理を実行するようにプログラムされてもよい。１つの実施形態では、タスクが入出力動作を実行する時、タスクが切り換えられうることを示す時、又はハードウェア割り込み後に、切り換えが実行されてもよい。複数のプロセスが同時実行されていると見えるようにするためにコンテキスト切り替えを迅速に実行することで、対話型ユーザーアプリケーションの速い応答を可能にするように、時分割が実行されてもよい。１つの実施形態では、機密保護及び信頼性のために、オペレーティングシステムは、独立したプロセス間の直接通信を防止し、厳密に仲介され制御されたプロセス間通信機能を提供してもよい。
【符号の説明】
【００９３】
１１０  企業サービス
１２０  識別及びアクセス管理（ＩＡＭ）
１２２  データリポジトリ
１３０  機密保護ブローカー
１４０  ネットワーク
１５０  ブロックチェーン
１５５  コンピュータ
１６０  分配サービス
１６１  クライアント装置
１７０  機密保護ゲートウェイ
２１０  解析命令群
２２０  検出命令群
２３０  秘密分配命令群
２４０  暗号化命令群
２５０  ブロックチェーン処理者命令群
４１０、４２０、４３０  ブロック
５１０  仮想ＩＡＭサービス命令群
５２０  ブロックチェーン処理者命令群
５３０  復号命令群
５４０  暗号化命令群
５５０  秘密公表命令群
８０２  Ｉ／Ｏサブシステム
８０４  プロセッサ
８０６  主メモリ
８１０  記憶装置
８１２  出力装置
８１４  入力装置
８１６  制御装置
８１８  通信インターフェース
８２０  ネットワークリンク
８２２  ネットワーク
８２４  ホスト
８２８  インターネット
８３０  サーバー
【図１】
2021520714.tif 000003
【図２】
2021520714.tif 000004
【図３】
2021520714.tif 000005
【図４】
2021520714.tif 000006
【図５】
2021520714.tif 000007
【図６】
2021520714.tif 000008
【図７Ａ】
2021520714.tif 000009
【図７Ｂ】
2021520714.tif 000010
【図８】
2021520714.tif 000011
【国際調査報告】
2021520714.tif 000012