(57)【要約】暗号化メッセージを送信する方法、システム、及び媒体を開示する。一部の構成例では、方法は、ハードウェアプロセッサを用いて第１のアプリケーションによって、第１のアプリケーションに対応する第１の公開鍵と第１の秘密鍵とを生成するステップと、第１の公開鍵を、第２のアプリケーションへと送信するステップと、第２のアプリケーションから、第２の公開鍵を受信するステップと、第２のアプリケーションに対応する第２の公開鍵を用いて、第１のメッセージを暗号化するステップと、第１のアプリケーションによって、第３の公開鍵と第２の秘密鍵とを生成するステップと、暗号化されたメッセージと第３の公開鍵とを、第２のアプリケーションへと送信するステップと、第２のアプリケーションから、第２のアプリケーションに対応する第２のメッセージと第４の公開鍵とを受信するステップと、第２の秘密鍵を用いて、第２のメッセージを復号化するステップを含む。
2019514314.tif 000002
【特許請求の範囲】
【請求項１】
暗号化メッセージを送信する方法であって、
ハードウェアプロセッサを用いて第１のアプリケーションによって、第１のアプリケーションに対応する第１の公開鍵と第１の秘密鍵とを、生成するステップと、
前記第１の公開鍵を、第２のアプリケーションへと送信するステップと、
前記第２のアプリケーションから、第２の公開鍵を受信するステップと、
前記第２のアプリケーションに対応する前記第２の公開鍵を用いて、第１のメッセージを暗号化するステップと、
前記第１のアプリケーションによって、第３の公開鍵と第２の秘密鍵とを生成するステップと、
前記暗号化されたメッセージと第３の公開鍵とを、前記第２のアプリケーションへと送信するステップと、
前記第２のアプリケーションから、前記第２のアプリケーションに対応する第２のメッセージと第４の公開鍵とを、受信するステップと、
前記第２の秘密鍵を用いて、前記第２のメッセージを復号化するステップと、
を含む、方法。
【請求項２】
請求項１に記載の方法において、前記第１のメッセージは前記第２のアプリケーションと関連付けられているインターネットプロトコル（ＩＰ）アドレスを含む、方法。
【請求項３】
請求項１又は２に記載の方法において、
前記第２のメッセージ内に含まれるコマンドが有効なコマンドであるかを決定するステップと、
前記コマンドが有効なコマンドでないとの決定に応答して、少なくとも１つのユーザ装置へと不正アラートを送信するステップと、
をさらに含む、方法。
【請求項４】
請求項３に記載の方法において、前記少なくとも１つのユーザ装置へと不正アラートを送信するステップは、前記少なくとも１つのユーザ装置へとテキストメッセージを送信すること及び前記少なくとも１つのユーザ装置と関連付けられているユーザアカウントへと電子メールを送信することの少なくとも１つを含む、方法。
【請求項５】
請求項３又は４に記載の方法において、前記コマンドが有効なコマンドであるかを決定するステップは、前記コマンドが前記第１のアプリケーションにとって既知のものであるかを決定することを含む、方法。
【請求項６】
請求項１から５のいずれか一項に記載の方法において、前記メッセージの内容は、バイナリデータ及びテキストデータの少なくとも１つを含む、方法。
【請求項７】
請求項１から６のいずれか一項に記載の方法において、前記第２のメッセージは、前記第２のアプリケーションからのアクノレッジメントメッセージである、方法。
【請求項８】
暗号化メッセージを送信するシステムであって、該システムは、
ハードウェアプロセッサを備えており、該ハードウェアプロセッサは、
第１のアプリケーションによって、第１のアプリケーションに対応する第１の公開鍵と第１の秘密鍵とを、生成するステップと、
前記第１の公開鍵を、第２のアプリケーションへと送信するステップと、
前記第２のアプリケーションから、第２の公開鍵を受信するステップと、
前記第２のアプリケーションに対応する前記第２の公開鍵を用いて、第１のメッセージを暗号化するステップと、
前記第１のアプリケーションによって、第３の公開鍵と第２の秘密鍵とを生成するステップと、
前記暗号化されたメッセージと第３の公開鍵とを、前記第２のアプリケーションへと送信するステップと、
前記第２のアプリケーションから、前記第２のアプリケーションに対応する第２のメッセージと第４の公開鍵とを、受信するステップと、
前記第２の秘密鍵を用いて、前記第２のメッセージを復号化するステップと、
を行うようにプログラムされている、システム。
【請求項９】
請求項８に記載のシステムにおいて、前記第１のメッセージは前記第２のアプリケーションと関連付けられているインターネットプロトコル（ＩＰ）アドレスを含む、システム。
【請求項１０】
請求項８又は９に記載のシステムにおいて、前記ハードウェアプロセッサは、
前記第２のメッセージ内に含まれるコマンドが有効なコマンドであるかを決定するステップと、
前記コマンドが有効なコマンドでないとの決定に応答して、少なくとも１つのユーザ装置へと不正アラートを送信するステップと、
を行うようにさらにプログラムされている、システム。
【請求項１１】
請求項１０に記載のシステムにおいて、前記少なくとも１つのユーザ装置へと不正アラートを送信するステップは、前記少なくとも１つのユーザ装置へとテキストメッセージを送信すること及び前記少なくとも１つのユーザ装置と関連付けられているユーザアカウントへと電子メールを送信することの少なくとも１つを含む、システム。
【請求項１２】
請求項１０又は１１に記載のシステムにおいて、前記コマンドが有効なコマンドであるかを決定するステップは、前記コマンドが前記第１のアプリケーションにとって既知のものであるかを決定することを含む、システム。
【請求項１３】
請求項８から１２のいずれか一項に記載のシステムにおいて、前記メッセージの内容は、バイナリデータ及びテキストデータの少なくとも１つを含む、システム。
【請求項１４】
請求項８から１３のいずれか一項に記載のシステムにおいて、前記第２のメッセージは、前記第２のアプリケーションからのアクノレッジメントメッセージである、システム。
【請求項１５】
プロセッサによって実行されると、暗号化メッセージを送信する方法を前記プロセッサに行わせるコンピュータ実行可能命令を含むコンピュータ可読媒体であって、該方法は、
第１のアプリケーションによって、第１のアプリケーションに対応する第１の公開鍵と第１の秘密鍵とを、生成するステップと、
前記第１の公開鍵を、第２のアプリケーションへと送信するステップと、
前記第２のアプリケーションから、第２の公開鍵を受信するステップと、
前記第２のアプリケーションに対応する前記第２の公開鍵を用いて、第１のメッセージを暗号化するステップと、
前記第１のアプリケーションによって、第３の公開鍵と第２の秘密鍵とを生成するステップと、
前記暗号化されたメッセージと第３の公開鍵とを、前記第２のアプリケーションへと送信するステップと、
前記第２のアプリケーションから、前記第２のアプリケーションに対応する第２のメッセージと第４の公開鍵とを、受信するステップと、
前記第２の秘密鍵を用いて、前記第２のメッセージを復号化するステップと、
を含む、コンピュータ可読媒体。
【請求項１６】
請求項１５に記載のコンピュータ可読媒体において、前記第１のメッセージは前記第２のアプリケーションと関連付けられているインターネットプロトコル（ＩＰ）アドレスを含む、コンピュータ可読媒体。
【請求項１７】
請求項１５又は１６に記載のコンピュータ可読媒体において、前記方法は、
前記第２のメッセージ内に含まれるコマンドが有効なコマンドであるかを決定するステップと、
前記コマンドが有効なコマンドでないとの決定に応答して、少なくとも１つのユーザ装置へと不正アラートを送信するステップと、
をさらに含む、コンピュータ可読媒体。
【請求項１８】
請求項１７に記載のコンピュータ可読媒体において、前記少なくとも１つのユーザ装置へと不正アラートを送信するステップは、前記少なくとも１つのユーザ装置へとテキストメッセージを送信すること及び前記少なくとも１つのユーザ装置と関連付けられているユーザアカウントへと電子メールを送信することの少なくとも１つを含む、コンピュータ可読媒体。
【請求項１９】
請求項１７又は１８に記載のコンピュータ可読媒体において、前記コマンドが有効なコマンドであるかを決定するステップは、前記コマンドが前記第１のアプリケーションにとって既知のものであるかを決定することを含む、コンピュータ可読媒体。
【請求項２０】
請求項１５から１９のいずれか一項に記載のコンピュータ可読媒体において、前記メッセージの内容は、バイナリデータ及びテキストデータの少なくとも１つを含む、コンピュータ可読媒体。
【請求項２１】
請求項１５から２０のいずれか一項に記載のコンピュータ可読媒体において、前記第２のメッセージは、前記第２のアプリケーションからのアクノレッジメントメッセージである、コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の主題は、暗号化メッセージを送受信するために動的公開鍵インフラストラクチャを用いる方法、システム、及び媒体に関する。
【０００２】
関連出願の相互参照
本願は、２０１６年３月２５日に出願された米国特許出願第１５／０８１，４４７号の優先権を主張するのでありその全体が参照によって取り込まれる。
【背景技術】
【０００３】
ソフトウェアアプリケーション間のデータ通信のセキュア度は、本来あるべき水準にまで未だ到達していない。多くのソフトウェアアプリケーションは、共有される単一の鍵を用いる対称鍵暗号によって通信を行う。他のソフトウェアアプリケーションは、公開鍵及び秘密鍵を用いることによって、公開鍵インフラストラクチャ（ＰＫＩ、Public Key Infrastructure）を用いた非対称暗号を使う。しかし、これらの暗号化手法は、２つのソフトウェアアプリケーション間の通信リンクを保護するのには不十分である。例えば、非対称暗号方式の場合、秘密鍵が漏洩した場合、通信リンクはセキュアではなく、通信リンクに対してスヌーピングを行っている人間又はソフトウェアが伝達される全てのメッセージを読むことができる。
【発明の概要】
【０００４】
暗号化メッセージを送信する方法、システム、及び媒体が開示される。開示の主題についての一部の構成例によれば、暗号化メッセージを送信する方法が提供されるのであり、該方法は、ハードウェアプロセッサを用いて第１のアプリケーションによって第１のアプリケーションに対応する第１の公開鍵と第１の秘密鍵とを生成するステップと、第１の公開鍵を第２のアプリケーションへと送信するステップと、第２のアプリケーションから第２の公開鍵を受信するステップと、第２のアプリケーションに対応する第２の公開鍵を用いて第１のメッセージを暗号化するステップと、第１のアプリケーションによって第３の公開鍵と第２の秘密鍵とを生成するステップと、暗号化されたメッセージと第３の公開鍵とを第２のアプリケーションへと送信するステップと、第２のアプリケーションから第２のアプリケーションに対応する第２のメッセージと第４の公開鍵とを受信するステップと、第２の秘密鍵を用いて第２のメッセージを復号化するステップとを含む。
【０００５】
開示の主題についての一部の構成例によれば、暗号化メッセージを送信するシステムが提供されるのであり、該システムは、ハードウェアプロセッサを備えており、該ハードウェアプロセッサは、第１のアプリケーションによって第１のアプリケーションに対応する第１の公開鍵と第１の秘密鍵とを生成するステップと、第１の公開鍵を第２のアプリケーションへと送信するステップと、第２のアプリケーションから第２の公開鍵を受信するステップと、第２のアプリケーションに対応する第２の公開鍵を用いて第１のメッセージを暗号化するステップと、第１のアプリケーションによって第３の公開鍵と第２の秘密鍵とを生成するステップと、暗号化されたメッセージと第３の公開鍵とを第２のアプリケーションへと送信するステップと、第２のアプリケーションから第２のアプリケーションに対応する第２のメッセージと第４の公開鍵とを受信するステップと、第２の秘密鍵を用いて第２のメッセージを復号化するステップとを行うようにプログラムされている。
【０００６】
開示の主題についての一部の構成例によれば、プロセッサによって実行されるとプロセッサに暗号化メッセージを送信する方法を行わせるコンピュータ実行可能命令を含むコンピュータ可読媒体が開示されている。該方法は、第１のアプリケーションによって第１のアプリケーションに対応する第１の公開鍵と第１の秘密鍵とを生成するステップと、第１の公開鍵を第２のアプリケーションへと送信するステップと、第２のアプリケーションから第２の公開鍵を受信するステップと、第２のアプリケーションに対応する第２の公開鍵を用いて第１のメッセージを暗号化するステップと、第１のアプリケーションによって第３の公開鍵と第２の秘密鍵とを生成するステップと、暗号化されたメッセージと第３の公開鍵とを第２のアプリケーションへと送信するステップと、第２のアプリケーションから第２のアプリケーションに対応する第２のメッセージと第４の公開鍵とを受信するステップと、第２の秘密鍵を用いて第２のメッセージを復号化するステップとを含む。
【０００７】
暗号化メッセージを送信する方法が開示されている。方法は、ハードウェアプロセッサを用いて第１のアプリケーションによって第１のアプリケーションに対応する第１の公開鍵と第１の秘密鍵とを生成するステップを含むことができる。方法は、第１の公開鍵を第２のアプリケーションへと送信するステップを含むことができる。方法は、第２のアプリケーションから第２の公開鍵を受信するステップを含むことができる。方法は、第２のアプリケーションに対応する第２の公開鍵を用いて第１のメッセージを暗号化するステップを含むことができる。方法は、第１のアプリケーションによって第３の公開鍵と第２の秘密鍵とを生成するステップを含むことができる。方法は、暗号化されたメッセージと第３の公開鍵とを第２のアプリケーションへと送信するステップを含むことができる。方法は、第２のアプリケーションから第２のアプリケーションに対応する第２のメッセージと第４の公開鍵とを受信するステップを含むことができる。方法は、第２の秘密鍵を用いて第２のメッセージを復号化するステップを含むことができる。
【０００８】
方法の１つ以上のステップは、１つ以上のプロセッサによって実行され得る。１つ以上のプロセッサは、１つ以上の第１及び第２のアプリケーションと関連付けられていることができる。
【０００９】
方法は、第１及び第２のメッセージの少なくとも１つの内に含まれるコマンドが有効なコマンドであるかを決定するステップをさらに含むことができる。方法は、コマンドが有効なコマンドでないとの決定に応答して少なくとも１つのユーザ装置へと不正アラートを送信するステップをさらに含むことができる。少なくとも１つのユーザ装置へと不正アラートを送信するステップは、次の少なくとも１つを送信することを含む：少なくとも１つのユーザ装置へとテキストメッセージを送信すること及び少なくとも１つのユーザ装置と関連付けられているユーザアカウントへと電子メールを送信すること。方法は、コマンドが有効なコマンドでないとの決定に応答して、次のステップをさらに含むことができる：コマンドが受信されたアプリケーションからの更なるメッセージを、無効なコマンドを受領したアプリケーションによって、ブロッキングするステップ。
【００１０】
コマンドが有効なコマンドであるかを決定するステップは、コマンドが少なくとも１つのアプリケーションにとって既知のものであるかを決定することを含むことができる。コマンドは少なくとも１つのアプリケーションと関連付けられているメモリ内に格納されていることができ、また、コマンドが有効なコマンドであるかを決定するステップは、メモリ内においてコマンドを探索することを含むことができる。コマンドは、メモリ内において、命令及び／又はタグと共に格納されていることができる。命令及び／又はタグは、コマンドが有効なコマンドであるか否かを指示することができる。
【００１１】
第１、第２、及び第３の鍵ペアの少なくとも１つは、第１、第２、及び第３の鍵ペアの別の少なくとも１つと異なっていることができる。公開鍵―秘密鍵ペアの少なくとも１つは、非対称暗号化アルゴリズムを用いて生成されることができる。
【００１２】
第１のメッセージは、第２のアプリケーションと関連付けられているアドレスを含むことができる。アドレスは、インターネットプロトコル（ＩＰ）アドレスであることができる。メッセージの内容は、バイナリデータ及びテキストデータの少なくとも１つを含むことができる。
【００１３】
第２のメッセージは、第２のアプリケーションからのアクノレッジメントメッセージであることができる。
【００１４】
暗号化メッセージを送信する方法の少なくとも１つのステップを行わせる、プロセッサによって実行可能な命令を含むコンピュータ可読媒体が開示されている。
【００１５】
暗号化メッセージを送信するシステムが開示されている。システムは、第１のアプリケーションによって第１のアプリケーションに対応する第１の公開鍵と第１の秘密鍵とを生成するようにプログラムされたハードウェアプロセッサを含むことができる。ハードウェアプロセッサは、第１の公開鍵を第２のアプリケーションへと送信するようにプログラムされていることができる。ハードウェアプロセッサは、第２のアプリケーションから第２の公開鍵を受信するようにプログラムされていることができる。ハードウェアプロセッサは、第２のアプリケーションに対応する第２の公開鍵を用いて第１のメッセージを暗号化するようにプログラムされていることができる。ハードウェアプロセッサは、第１のアプリケーションによって第３の公開鍵と第２の秘密鍵とを生成するようにプログラムされていることができる。ハードウェアプロセッサは、暗号化されたメッセージと第３の公開鍵とを第２のアプリケーションへと送信するようにプログラムされていることができる。ハードウェアプロセッサは、第２のアプリケーションから第２のアプリケーションに対応する第２のメッセージと第４の公開鍵とを受信するようにプログラムされていることができる。ハードウェアプロセッサは、第２の秘密鍵を用いて第２のメッセージを復号化するようにプログラムされていることができる。
【００１６】
プロセッサによって実行されるとプロセッサに暗号化メッセージを送信する方法を行わせるコンピュータ実行可能命令を含むコンピュータ可読媒体が開示されている。方法は、第１のアプリケーションによって第１のアプリケーションに対応する第１の公開鍵と第１の秘密鍵とを生成するステップを含むことができる。方法は、第１の公開鍵を第２のアプリケーションへと送信するステップを含むことができる。方法は、第２のアプリケーションから第２の公開鍵を受信するステップを含むことができる。方法は、第２のアプリケーションに対応する第２の公開鍵を用いて第１のメッセージを暗号化するステップを含むことができる。方法は、第１のアプリケーションによって第３の公開鍵と第２の秘密鍵（second private key）とを生成するステップを含むことができる。方法は、暗号化されたメッセージと第３の公開鍵とを第２のアプリケーションへと送信するステップを含むことができる。方法は、第２のアプリケーションから第２のアプリケーションに対応する第２のメッセージと第４の公開鍵とを受信するステップを含むことができる。方法は、第２の秘密鍵を用いて第２のメッセージを復号化するステップを含むことができる。
【００１７】
暗号化メッセージを送信する方法が開示されており、該方法は、次のステップを含む：第１のアプリケーションによって第１のアプリケーションに対応する第１の公開鍵と第１の秘密鍵とを生成するステップと、第１のアプリケーションによって第１の公開鍵を第２のアプリケーションへと送信するステップと、第２のアプリケーションによって第２のアプリケーションに対応する第２の公開鍵と第２の秘密鍵とを生成するステップと、第１のアプリケーションによって第２のアプリケーションから第２の公開鍵を受信するステップと、第１のアプリケーションによって第２のアプリケーションに対応する第２の公開鍵を用いて第１のメッセージを暗号化するステップと、第１のアプリケーションによって第３の公開鍵と第３の秘密鍵（third private key）とを生成するステップと、暗号化されたメッセージと第３の公開鍵とを第１のアプリケーションによって第２のアプリケーションへと送信するステップ。
【００１８】
方法は次のステップをさらに含むことができる：第２のアプリケーションによって第４の公開鍵と第４の秘密鍵とを生成するステップ。方法は次のステップをさらに含むことができる：第１のアプリケーションによって第２のメッセージと第４の公開鍵とを第２のアプリケーションから受信するステップ。方法は次のステップをさらに含むことができる：第２の秘密鍵（second private key）を用いて第２のメッセージを第１のアプリケーションによって復号化するステップ。
【００１９】
暗号化メッセージを送信するシステムが開示されており、該システムは次のステップを行うようにプログラムされている１つ以上のハードウェアプロセッサを含む：第１のアプリケーションによって第１のアプリケーションに対応する第１の公開鍵と第１の秘密鍵とを生成するステップと、第１の公開鍵を第２のアプリケーションへと送信するステップと、第２のアプリケーションによって第２の公開鍵と第２の秘密鍵とを生成するステップと、第２のアプリケーションから第２の公開鍵を受信するステップと、第２のアプリケーションに対応する第２の公開鍵を用いて第１のメッセージを暗号化するステップと、第１のアプリケーションによって第３の公開鍵と第３の秘密鍵とを生成するステップと、暗号化されたメッセージ（encrypted message）と第３の公開鍵とを第２のアプリケーションへと送信するステップ。
【００２０】
暗号化メッセージを第１のアプリケーションから送信する方法が開示されており、該方法は、次のステップを含む：第１のアプリケーションによって第１のアプリケーションに対応する第１の公開鍵と第１の秘密鍵とを生成するステップと、第１のアプリケーションによって第１の公開鍵を第２のアプリケーションへと送信するステップと、第１のアプリケーションによって第２のアプリケーションから第２の公開鍵を受信するステップであって第２の公開鍵は第２のアプリケーション及び第２の秘密鍵に対応するステップと、第１のアプリケーションによって第２の公開鍵を用いて第１のメッセージを暗号化するステップと、第１のアプリケーションによって第３の公開鍵と第３の秘密鍵とを生成するステップと、第１のメッセージ（first message）と第３の公開鍵とを第１のアプリケーションによって第２のアプリケーションへと送信するステップ。
【００２１】
方法は、第１のアプリケーションによって第２のメッセージと第４の公開鍵とを第２のアプリケーションから受信するステップをさらに含むことができるのであり、第２のメッセージは第３の公開鍵を用いて暗号化されており、第４の公開鍵は第２のアプリケーションに対応している。方法は次のステップをさらに含むことができる：第３の秘密鍵（third private key）を用いて第２のメッセージを第１のアプリケーションによって復号化するステップ。
【００２２】
第２のアプリケーションにて暗号化メッセージを受信する方法が開示されており、該方法は、次のステップを含む：第２のアプリケーションによって第１の公開鍵を第１のアプリケーションから受信するステップであって第１の公開鍵は第１のアプリケーション及び第１の秘密鍵に対応するステップと、第２のアプリケーションに対応する第２の公開鍵と第２の秘密鍵とを第２のアプリケーションによって生成するステップと、第２のアプリケーションによって第２の公開鍵を第１のアプリケーションへと送信するステップと、第２のアプリケーションによって第１のメッセージと第３の公開鍵とを第１のアプリケーションから受信するステップであって第１のメッセージは第２の公開鍵を用いて暗号化されており第３の公開鍵は第１のアプリケーション及び第３の秘密鍵に対応するステップ。
【００２３】
方法は次のステップをさらに含むことができる：第２のアプリケーションによって第１のメッセージを第２の秘密鍵を用いて復号化するステップ。方法は次のステップをさらに含むことができる：第２のアプリケーションによって第４の公開鍵と第４の秘密鍵とを生成するステップ。方法は次のステップをさらに含むことができる：第２のアプリケーションによって第２のメッセージを第３の公開鍵を用いて暗号化するステップ。方法は次のステップをさらに含むことができる：第２のアプリケーションによって第２のメッセージ及び第４の公開鍵を第１のアプリケーションへと送信するステップ。
【図面の簡単な説明】
【００２４】
開示される主題についての以下の詳細な説明を、添付の図面と共に参照することによって、開示される主題についての様々な要素、特徴、及び利点をより良く理解できるのであり、同様の参照符号は同様の構成要素を示している。
【００２５】
【図１】開示される主題についての幾つかの構成による、暗号化メッセージの送受信のために動的公開鍵インフラストラクチャを用いるプロセスについての例を示す概略図である。
【図２】開示される主題についての幾つかの構成による、暗号化メッセージの送受信のために動的公開鍵インフラストラクチャを用いるシステムについての例を示す概略図である。
【図３】開示される主題についての幾つかの構成による、サーバ及び／又はユーザ装置において使用され得るハードウェアについての例を示す概略図である。
【発明を実施するための形態】
【００２６】
様々な構成例によれば、暗号化メッセージを送受信するために動的公開鍵インフラストラクチャを用いるための機構（含む、方法、システム、及び媒体）が提供される。
【００２７】
特に、ソフトウェアアプリケーション間での公開鍵及び秘密鍵の交換を動的なものとする方法が、提供される。端的に述べれば、アプリケーションがメッセージを送る度にアプリケーションによって新たな公開鍵及び秘密鍵が生成されるのであり、アプリケーションの鍵が時間の経過によって予測不能に変化する。有用なことに、当該仕組みにより、不正アプリケーションがデータ通信に関してスヌーピングを行うことがとても困難でエネルギー集約的な作業となる。なぜならば、アプリケーションは、動的に変化する公開鍵−秘密鍵ペアを追跡していくことを余儀なくされるからである。結果、セキュリティレベルが向上する。
【００２８】
一部の構成例では、開示する機構は、メッセージを暗号化して、２つのアプリケーション間（例えば、携帯型機器で実行されている２つのアプリケーション及び／又は他の任意の適切なタイプのアプリケーション）でメッセージを送信することができる。一部の構成例では、機構は、例えば、受信メッセージ内に含まれるコマンドが有効（valid）であるか否かを決定することによって、送信されたメッセージを認証（validate）することができる。一部のそのような構成例では、機構は、受信メッセージが無効であるとの決定に応答して、不正アラートを送信することができる。例えば、一部の構成例では、受信メッセージが無効であると決定したアプリケーションによって指示されたユーザ装置及び／又はユーザアカウントへと、不正アラートを、送信することができる。不正アラートは、他のソフトウェアアプリケーションにも送信されることができ、それらに対して、同じソースから受信されたメッセージに対して警戒するように警告することができる。利点としては、受信メッセージが無効であると決定することによって、アプリケーションは自己及び／又は自己が実行されているハードウェアを保護することができ、故に終局的にはアプリケーション及び／又はハードウェアのユーザを保護することができる。例えば、アプリケーションは、受信メッセージ内の任意の命令（例えば、データについての要求、暗号鍵の共有についての要求、及び／又はアプリケーションが実行されているハードウェアのメモリへのアクセスについての要求等）の実行を回避することができる。代替的に又は追加的には、アプリケーションは、アラートを、アンチウイルス及び／又はアンチハッキングソフトウェア等のセキュリティソフトウェアへと伝達することもできる。
【００２９】
一部の構成例では、開示される機構は、任意の適切な手法又は手法の組み合わせを用いてメッセージを暗号化及び復号化することができる。例えば、一部の構成例では、第１のアプリケーション及び第２のアプリケーションが、各々公開鍵―秘密鍵ペアを生成して、公開鍵を交換することができる。そして、第１のアプリケーションは、メッセージを生成して、第２のアプリケーションの公開鍵を用いてメッセージを暗号化することができる。そして、第１のアプリケーションは、新たな公開鍵―秘密鍵ペアを生成して、新たな公開鍵をもってメッセージを第２のアプリケーションへと送信することができる。第２のアプリケーションは、第２のアプリケーションの秘密鍵を用いて受信メッセージを復号することができる。一部の構成例では、第２のアプリケーションは、アクノレッジメントメッセージを生成して、第１のアプリケーションの公開鍵をもってアクノレッジメントメッセージを暗号化することができる。一部の構成例では、開示される機構は、送信されたメッセージそれぞれについて新たな公開鍵―秘密鍵ペアを動的に生成することができる。一部の構成例では、図１との関連で後述されるようにして生成された鍵を用いて非対称暗号化及び／又は復号化アルゴリズムを使用して、暗号化及び／又は復号化を行うことができる。
【００３０】
図１に転じるに、ソフトウェアアプリケーション間でセキュアドメッセージを送受信するプロセスについての例１００が、開示の主題についての幾つかの構成例に即して示されており、該プロセスには次の処理が伴う：ＰＫＩ公開鍵及び秘密鍵を先ず生成すること、公開鍵の共有、メッセージの構築、メッセージの暗号化、新たなＰＫＩ公開鍵及び秘密鍵の生成、メッセージ及び新たなＰＫＩ公開鍵の送信、メッセージの認証、不正アラートの送信、ＩＰアドレスのブラックリスト化、アクノレッジメントメッセージの送信、及び、アクノレッジメントメッセージの真正性の認証。以下において詳述するように、プロセス１００において参照される諸メッセージは、図２（２００）に示されているハードウェアに準拠して送受信されることができる。以下においてさらに詳述するように、プロセス１００は、図３のハードウェア３００又は任意の他の適切なハードウェア構成を用いて実装されることができる。
【００３１】
プロセス１００は、１０２にて開始されることができる。そして、プロセス１００は、ブロック１０４へと続くのであり、該ブロックにてアプリケーションＡ及びアプリケーションＢが公開鍵インフラストラクチャ（ＰＫＩ）公開鍵―秘密鍵ペアを生成することができる。アプリケーションＡ及びアプリケーションＢは、任意の適切なＰＫＩクリプトシステムを用いてＰＫＩ公開鍵―秘密鍵ペアを生成することができる。ＰＫＩクリプトシステムのための命令はアプリケーションＡ及び／又はＢにとってローカルなメモリ３０４等のメモリ内に格納されていることができ、命令はプロセッサ３０２等のプロセッサによって実行可能なものとされていることができるのであり、プロセッサはメモリと通信可能に接続されてＰＫＩ公開鍵―秘密鍵ペアを生成できるようにされている。例を挙げるに、アプリケーションＡ及びアプリケーションＢは、Rivest-Shamir-Adleman（ＲＳＡ）クリプトシステムを用いることができる。一部の構成例では、アプリケーションＡ及びアプリケーションＢは、任意の適切なタイプのアプリケーションとされることができるということに留意されたい（例えば、携帯型機器で実行されているアプリケーション、非携帯型機器で実行されているアプリケーション、及び／又は任意の他の適切なタイプのアプリケーション）。例えば、アプリケーションＡ及びＢは、コンピュータ上のアプリケーションとされ得る。追加的には、一部の構成例では、アプリケーションＡ及びアプリケーションＢは、同じ装置上のアプリケーション及び／又は異なる装置上のアプリケーションとされ得る。
【００３２】
ブロック１０６にて、アプリケーションＡ及びアプリケーションＢは、公開鍵を交換できる。例えば、一部の構成例では、アプリケーションＡは、自己の公開鍵を、通信ネットワーク２０６等の通信ネットワーク上を介してアプリケーションＢへと送信することができる。代替的に、アプリケーションＡ及びＢが同じ装置上のアプリケーションである場合、アプリケーションＡは、自己の公開鍵を装置の内部においてアプリケーションＢへと送信することができる。別の例としては、一部の構成例では、アプリケーションＢが自己の公開鍵をアプリケーションＡへと送信することができる。一部の構成例では、少なくとも１つのアプリケーションが自己の公開鍵を公開された態様で知らせることができ、例えば通信ネットワーク２０６上で自己の公開鍵を公開された態様でブロードキャストすることができる。一部の構成例では、アプリケーションＡ及びアプリケーションＢの間で公開鍵が一旦共有された後にアプリケーションＡ及びアプリケーションＢの間で通信リンクを確立することができる、という点に留意されたい。そのような幾つかの構成例では、通信リンクを介してアプリケーションＡ及びアプリケーションＢ間でメッセージを送信できる。有利なことに、ＰＫＩの使用故に、通信リンクは２つのアプリケーション間のセキュアな通信リンクとなっている。
【００３３】
ブロック１０８にてアプリケーションＡは、アプリケーションＢへと送信されるべきメッセージを生成することができる。一部の構成例では、メッセージは任意の適切な情報を含み得るのであり、任意の適切なフォーマットとされることができる。例えば、一部の構成例では、メッセージはアプリケーションＢのＩＰアドレス等のアプリケーションＢの送達先アドレス、アプリケーションＡ及びアプリケーションＢの両方にて知られているコマンド、アプリケーションＢへと送信されるべきメッセージの内容、及び／又は、任意の他の適切な情報。ブロック１０８にて生成され得るメッセージについての例示的フォーマットとしては「［ＩＰアドレス］：［コマンド］：［メッセージ］」が考えられるのであり、ここで「［メッセージ］」とはメッセージの内容とされることができる（例えば、コマンドと関連付けられている値や他のテキスト、及び／又は、任意の他の適切なメッセージ内容）。一部の構成例では、メッセージの内容は、テキストデータ、バイナリデータ、及び／又は任意の他の適切なフォーマットのデータとすることができる。上述の例は例に過ぎないことに留意されたいのであり、一部の構成例では、生成されたメッセージは任意の適切なフォーマットとされていることができるのであり、メッセージ内の情報は任意の適切な順序に配列されていることができる。例えば、一部の構成例では、メッセージ内の情報は、セミコロン、ピリオド、ハイフン、及び／又は任意の他の適切なデリミタで分離されていることができる。以下において詳述するように、装置間でのメッセージ送信に適した任意の通信ネットワークを、用いることができる。
【００３４】
ブロック１１０では、アプリケーションＡは、ブロック１０４でアプリケーションＢによって生成された公開鍵であってブロック１０６でアプリケーションＡによって受信された公開鍵を用いて、メッセージを暗号化することができる。例えば、一部の構成例では、メッセージは、非対称暗号化アルゴリズムを用いて暗号化されることができる。
【００３５】
ブロック１１２では、アプリケーションＡは、ブロック１０４を参照して説明されたのと類似した態様で或いはそれと同一の態様で、新たなＰＫＩ公開鍵―秘密鍵ペアを生成することができる。
【００３６】
ブロック１１４では、アプリケーションＡは、ブロック１０８で生成されたメッセージ及びブロック１１２で生成された新たな公開鍵を、アプリケーションＢへと、送信することができる。有利なことに、この動作によって、アプリケーションＡ及びＢにおける相互に送信されたメッセージ毎の公開鍵及び秘密鍵の動的変化プロセスが開始される。なぜならば、ブロック１１４でメッセージと共にアプリケーションＡによって送信された公開鍵は、ブロック１０４でアプリケーションＡによって生成された公開鍵と既に異なっているものとなっているからである。
【００３７】
ブロック１１６では、アプリケーションＢが、アプリケーションＡから送信されたメッセージを受信することができる。そして、アプリケーションＢは、アプリケーションＢの秘密鍵を用いて暗号化メッセージを復号化することができる。一部の構成例では、復号化は、非対称復号化アルゴリズム（asymmetric decryption algorithm）を用いて行われ得る。
【００３８】
ブロック１１８では、アプリケーションＢは、復号化されたメッセージ内のコマンドが有効なコマンドであるか否かを決定することができる。例えば、一部の構成例では、アプリケーションＢは、コマンドがアプリケーションＢにとって既知のコマンドを表しているのかを決定することができる。例えば、アプリケーションＢは、コマンドが、アプリケーションＢを実行している装置のメモリ内に格納されているコマンドを表しているかを、決定することができる。コマンドは、命令及び／又はタグと共にアプリケーションＢを実行している装置のメモリ内格納されていることができ、それは当該コマンドが有効、許容可能、及び／又は信頼可能であるかを指示する。代替的には、コマンドは命令及び／又はタグと一緒に格納されていることができ、それは当該コマンドが無効、許容不可能、及び／又は信頼できないコマンドでありアプリケーションによって実行されるべきものではないことを示す。一部の構成例では、アプリケーションＢは、メッセージ内のコマンドが有効なコマンドであると決定されたことに応答して、復号化されたメッセージが真正なものである及び／又は損なわれたものではないと決定することができる。一部の構成例では、復号化メッセージは、メッセージが受信された際の発信元を表す装置若しくはアプリケーションのＩＤ並びに／又は（ＩＰアドレス等の）装置アドレスについての表示を含むのであり、アプリケーションＢは、ＩＤ又はアドレスが信頼された装置及び／又はアドレスに対応するかを決定する。これをなすためには、アプリケーションＢは、ＩＤ及び／又はアドレスに関して探索（look up）を行うのであり、信頼済みアプリケーション及び／又は装置に対応するＩＤ及び／又はアドレスに関してのリストであってアプリケーションＢが実行されている装置のメモリ内に配置されたリストに基づいて探索を行う。
【００３９】
ブロック１１８にてアプリケーションＢがコマンドが有効なコマンドであると決定した場合（１１８にて「はい」とされた場合）、アプリケーションＢはブロック１２２にてアクノレッジメントメッセージを生成することができる。一部の構成例では、アクノレッジメントメッセージは、任意の適切な情報を含むことができ、任意の適切なフォーマットとされることができる。例えば、一部の構成例では、ブロック１０８でアプリケーションＡによって生成されたメッセージの場合と似たようにして、アクノレッジメントメッセージは次のものを含み得る：アプリケーションＡのＩＰアドレス、アプリケーションＡ及びアプリケーションＢの双方にとって既知となっているコマンド、及び、任意の適切なメッセージ内容。例えば、一部の構成例では、メッセージ内容は、ブロック１１４で受信されたメッセージ内のコマンドが成功裏に実行されたことを示すことができる。ブロック１０８の場合と似ており、アクノレッジメントメッセージについての例示的フォーマットは「［ＩＰアドレス］：［コマンド］：［メッセージ］」であり、「［メッセージ］」とはメッセージの内容であることができ、テキストデータ、バイナリデータ、又は任意の他の適切なタイプのデータとすることができる。一部の構成例では、上述のブロック１０８関連で述べたように、メッセージ内に含まれる情報は、任意の適切な順序で配列されていることができ、また、任意の適切なタイプのデリミタで区切られていることができる。一部の構成例では、アプリケーションＢによって生成されたアクノレッジメントメッセージの順序及び／又はフォーマットが、ブロック１０８でアプリケーションＡによって生成されたメッセージの順序及び／又はフォーマットと同様であることができる、という点に留意されたい。代替的には、一部の構成例では、アクノレッジメントメッセージの順序及び／又はフォーマットは、ブロック１０８でアプリケーションＡによって生成されたメッセージの順序及び／又はフォーマットとは異なっていることができる。
【００４０】
そして、アプリケーションＢは、ブロック１２４へと進むことができ、アプリケーションＡによってブロック１１２で生成されかつアプリケーションＢによってブロック１１４で受信された新たなＰＫＩ公開鍵を用いて、アクノレッジメントメッセージを暗号化することができる。一部の構成例では、アプリケーションＢは、非対称暗号化アルゴリズムを用いてアクノレッジメントメッセージを暗号化することができる。アプリケーションＢは、ブロック１２６にて新たな公開鍵―秘密鍵ペアを生成することができる。そして、ブロック１２８にて、アプリケーションＢは、暗号化メッセージ及び新たな公開鍵をアプリケーションＡへと送信することができる。有利なことに、アプリケーションＢが、新たな公開鍵を生成してアクノレッジメントと共にアプリケーションＡに送信する故に、公開鍵及び秘密鍵の動的変更プロセスが継続されるのであり、２つのアプリケーション間の通信リンクのセキュリティがより良好に維持されることになる。
【００４１】
ブロック１１８に戻るに、アプリケーションＢが、アプリケーションＡから受信されたコマンドが無効であると決定した場合（１１８の「いいえ」の場合）、アプリケーションＢは１つ以上の不正アラートをブロック１２０にて送ることができる。例えば、一部の構成例では、アプリケーションＢは、不正アラートを、アプリケーションＢによって指示された携帯電話（例えば、アプリケーションＢの作成者によって指定された局、アプリケーションＢと関連付けられているリスト又はデータベース内に格納されている局、及び／又は、アプリケーションＢによって任意の他の適切な態様で示されている局）に送信したり、及び／又は、アプリケーションＢによって指示された電子メールアドレス（例えば、アプリケーションＢの作成者によって指定されたアドレス、アプリケーションＢと関連付けられているリスト又はデータベース内に格納されているアドレス、及び／又は、アプリケーションＢによって任意の他の適切な態様で示されているアドレス）へと送信することができる。このようにして、アプリケーションＢは、セキュリティ侵害があったことについてユーザに警告を発することができる。アプリケーションＢは、追加的に又は代替的には、上述した任意の幾つもの態様に従って次の事象に対応することができる：アプリケーションＡから受信されたコマンドが無効であると決定された場合。不正アラートがアプリケーションＢによって指示された電子メールアドレスへ送信された電子メールである場合、電子メールアドレスはアプリケーションＢのユーザについてのユーザアカウントに対応していることができる。一部の構成例では、不正アラートは任意の適切なフォーマットとされることができるのであり、例えば、携帯型機器へと送られるテキストメッセージ、携帯型機器上で提示されるプッシュ通知、特定された電子メールアドレスへと送信された電子メール、及び／又は、任意の適切なフォーマットが考えられる。追加的に、一部の構成例では、アプリケーションＢは、アプリケーションＡから受信されたメッセージをブロッキングすることによってアプリケーションＡがアプリケーションＢへ追加のメッセージを送信することを防止することができる。有利なことに、メッセージ内に含まれるコマンドを実行する前に復号化されたメッセージを認証するというプロセス故に、データ通信リンクのセキュリティが一層更に向上するのであり、追加的なセキュリティレイヤを暗号化に加えて提供することによってこれがもたらされている。例えば、コマンドが無効とみなされた場合、アプリケーションＢは、それを無視して、例えば親展及び／又は個人情報についてのリクエスト等の有害かもしれないリクエストに応えないことになる。
【００４２】
ブロック１２８に戻るに、そしてブロック１２２，１２４，１２６から続行するに、コマンドが有効なコマンドである場合、アプリケーションＡは、アプリケーションＢによって送信された暗号化メッセージを受信することができる。ブロック１２４との関係で述べたように、メッセージは新たな公開鍵を含んでおり、これはブロック１２６にてアプリケーションＢによって生成されている。ブロック１３０では、アプリケーションＡは、ブロック１１２でアプリケーションＡによって生成された新たなＰＫＩ秘密鍵を用いて暗号化メッセージを復号化することができる。一部の構成例では、アプリケーションＡは、非対称暗号化アルゴリズムを用いてメッセージを復号化することができる。上述したように、このようにして、アプリケーションＡ及びＢの公開鍵及び秘密鍵が動的に変化し続けるのであり、それ故に、権限のないアプリケーションが変化していく暗号化アルゴリズム（使用されるアルゴリズム）について行くのが困難なこととなる。
【００４３】
アプリケーションＡはブロック１３２へと進むことができ、復号化されたメッセージ内に含まれたコマンドが有効なコマンドであるかを決定することができる。例えば、ブロック１１８の場合（上述）と似たようにして、アプリケーションＡは、コマンドがアプリケーションＡにとって既知のコマンドを表しているか否かを決定することができる。一部の構成例では、アプリケーションＡは、コマンドが有効なコマンドであると決定したことに応答して、メッセージが真正なものであること及び／又はメッセージが損なわれたものではないことを決定することができる。
【００４４】
ブロック１３２にてコマンドが有効なコマンドでないとアプリケーションＡが決定した場合（１３２の「いいえ」の場合）、アプリケーションＡはブロック１３４にて１つ以上の不正アラートを送信することができる。ブロック１２０（上述）と似たようにして、アプリケーションＡは、１つ以上の不正アラートを、アプリケーションＡによって指示されたユーザアカウントに関連付けられている任意の適切なユーザ装置及び／又は電子メールアドレス（例えば、アプリケーションＡの作成者によって指定された対象、アプリケーションＡと関連付けられているリスト又はデータベース内に格納されている対象、及び／又は、アプリケーションＡによって任意の他の適切な態様で示されている対象）へと送信することができる。一部の構成例では、不正アラートは任意の適切なフォーマットでもたらすことができ、例えば、テキスト、メッセージ、電子メール、プッシュ通知、及び／又は任意の他の適切なフォーマットとすることができる。追加的に、一部の構成例では、アプリケーションＡは、アプリケーションＢがアプリケーションＡに対して追加のメッセージを送ることを防止することができる。
【００４５】
プロセス１００は、１３６で終わることができる。
【００４６】
有利なことに、開示の方法は、ソフトウェアアプリケーション間での通信に関してよりセキュアな通信リンクをもたらす。メッセージがアプリケーションから送られる毎にＰＫＩ暗号化鍵が動的に変更されるということの助けもあり、これが達成される。上述したように、これによってハッキング又はスヌーピングアプリケーションがより大きな困難を課されてよりエネルギー集約的な困難を課されることになる。なぜならば、アプリケーションに着信するメッセージを成功裏に復号化するためには、動的に変化していく秘密鍵をそのようなアプリケーションが追跡して行き続ける必要があるからである。さらに、以下のことをなすことによって、さらにセキュアな通信リンクが達成される：受信されたメッセージを認証すること、及び、メッセージが無効である場合には、不正かもしれない活動に関してのアラートを、装置、ユーザ、アンチウイルス、アンチハッキング及び／又は他のアプリケーションに対して発していくこと。
【００４７】
別の構成例では、アプリケーションＡが、ブロック１１２で生成された新たな公開鍵と共に暗号化メッセージをアプリケーションＢへと送信した後に、プロセス１００はブロック１１４にて終わる。有用なことに、総合的なプロセス１００の幾つかの利点は依然達成されている。なぜならば、アプリケーションＡの鍵はブロック１０４で生成された（アプリケーションＢと共有された）鍵と比較して依然動的に変更されているのであり、鍵はブロック１１２で生成されたものに変えられており、これがアプリケーションＢに伝達されており、これ故にアプリケーションＢは新たな公開鍵を用いてアプリケーションＡへの返信メッセージを暗号化できる。
【００４８】
別の構成例では、ブロック１１８及び１３２で実行される認証の１つ又は両方が行われない（従って１２０及び１３４も同様）。
【００４９】
図２に転じるに、開示の主題についての幾つかの構成例による、暗号化メッセージを送受信するために動的公開鍵インフラストラクチャを用いるためのハードウェアについての例２００が、同図に示されている。図示のように、ハードウェア２００は、１つ以上のサーバ２０２、通信ネットワーク２０６、及びユーザ装置２０８及び／又は２１０を含み得る。
【００５０】
サーバ２０２は、アプリケーション（例えば、携帯型機器上で実行されているアプリケーション、ラップトップコンピュータ若しくはデスクトップコンピュータ上で実行されているアプリケーション、及び／又は任意の他の適切なアプリケーション等）に関連付けられている情報及び／又はデータを格納するのに適している任意のサーバであることができる。例えば、一部の構成例では、サーバ２０２は次のようなものが考えられる：アプリケーションがユーザ装置によってダウンロードされる際のダウンロード元サーバ、ユーザ装置によってアプリケーションの更新がダウンロードされる際のダウンロード元サーバ、任意の適切なデータ（例えば、アプリケーションのユーザ用のユーザデータ、及び／又は任意の他の適切なデータ）を格納しているサーバ、及び／又は、任意の他の適切な機能を行うサーバ。一部の構成例では、サーバ２０２は省略できる。
【００５１】
通信ネットワーク２０６は、幾つかの構成例では、１つ以上の有線及び／又は無線ネットワークの組み合わせであることができる。例えば、通信ネットワーク１１０は、１つ以上の次のものを含み得る：インターネット、モバイルデータネットワーク、衛星ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、電話ネットワーク、ケーブルテレビジョンネットワーク、ＷｉＦｉ（登録商標）ネットワーク、ＷｉＭａｘ（登録商標）ネットワーク、及び／又は任意の他の適切な通信ネットワーク。
【００５２】
ユーザ装置２０８及び／又は２１０は、次のことをする任意の適切なユーザ装置とすることができる：アプリケーションを実行すること、異なるアプリケーション及び／若しくは異なるユーザ装置へと情報及び／若しくはデータを送信すること、並びに／又は、任意の他の適切な機能を行うこと。一部の構成例では、ユーザ装置２０８及び／又は２１０は、携帯型機器（例えば、携帯電話、ラップトップコンピュータ、ウェアラブルコンピュータ、及び／又は任意の他の適切な携帯型機器等）及び／又は非携帯型機器（例えば、デスクトップコンピュータ、スマートテレビジョン、及び／又は任意の他の適切な非携帯型機器等）を含むことができる。一部の構成例では、ユーザ装置２０８及び／又は２１０は、互いにローカルの関係にあることができるか、又は、互いにリモートな関係にあることができる。ユーザ装置２０８及び／又は２１０は、１つ以上の通信リンク２１０を介して通信ネットワーク２０６に接続されていることができ、通信リンク２０４を介してサーバ２０２へとリンクされていることができる。
【００５３】
過度の複雑化を回避するために図１には１つのサーバ２０２だけが図示されているものの、一部の構成例では、任意の適切な個数のサーバを用いることができる。
【００５４】
幾つかの構成例では、サーバ２０２及びユーザ装置２０８及び２１０は、任意の適切なハードウェアを用いて実装することができる。例えば、一部の構成例では、装置２０２，２０８，２１０は、任意の適切な汎用用途コンピュータ又は専用用途コンピュータを用いて実装されることができる。例えば、サーバは、専用用途コンピュータを用いて実装され得る。そのような任意の汎用用途コンピュータ又は専用用途コンピュータは、任意の適切なハードウェアを含み得る。例えば、図３の例示的ハードウェア３００において示しているように、そのようなハードウェアは、次のものを含み得る：ハードウェアプロセッサ３０２、メモリ及び／若しくは記憶部３０４、入力装置コントローラ３０６、入力装置３０８、ディスプレイ／オーディオドライバ３１０及びオーディオ出力回路類３１２、通信インタフェース３１４、アンテナ３１６、並びに、バス３１８。
【００５５】
ハードウェアプロセッサ３０２は任意の適切なハードウェアプロセッサを含み得るのであり、次のものが含まれ得る：例えば、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、専用論理部、並びに／又は、幾つかの構成例において汎用用途コンピュータ若しくは専用用途コンピュータが機能するために要する任意の他の適切な回路類。
【００５６】
幾つかの構成例では、メモリ及び／又は記憶部３０４は、次のものを格納するための任意の適切なメモリ及び／又は記憶部とすることができる：プログラム、データ、メディアコンテンツ、及び／又は任意の他の適切な情報。例えば、メモリ及び／又は記憶部３０４は、次のものを含み得る：ランダムアクセスメモリ、読み出し専用メモリ、フラッシュメモリ、ハードディスク記憶部、光学媒体、及び／又は任意の他の適切なメモリ。
【００５７】
入力装置コントローラ３０６は、一部の構成例では、装置からの入力を制御及び受信するための任意の適切な回路類たり得る。例えば、入力装置コントローラ３０６は、次のものからの入力を受信するための回路であることができる：タッチスクリーン、１つ以上のボタン、音声認識回路、マイクロホン、カメラ、光学センサ、加速度計、温度センサ、近接場センサ、及び／又は任意の他のタイプの入力装置。
【００５８】
ディスプレイ／オーディオドライバ３１０は、幾つかの構成例では、１つ以上のディスプレイ／オーディオ回路に出力を向かわせて制御及び駆動するための任意の適切な回路たり得る。例えば、ディスプレイ／オーディオドライバ３１０は、ＬＣＤディスプレイ、スピーカ、ＬＥＤ、又は任意の他のタイプの出力装置を駆動するためのドライバ回路たり得る。
【００５９】
通信インタフェース３１４は、図２に示すネットワーク２０６等の１つ以上のネットワークと接続するための任意の適切な回路たり得る。例えば、インタフェース３１４は、ネットワークインタフェースカード回路、無線通信回路、及び／又は任意の他の適切なタイプの通信ネットワーク回路を含み得る。
【００６０】
アンテナ３１６は、一部の構成例では、通信ネットワークと無線的に通信するための１つ以上の任意の適切なアンテナたり得る。一部の構成例では、アンテナ３１６は不要ならば省略され得る。
【００６１】
バス３１８は、一部の構成例では、２つ以上のコンポーネント３０２，３０４，３０６，３１０，３１４間で通信するための任意の適切な機構たり得る。
【００６２】
一部の構成例によれば、任意の他の適切なコンポーネントをハードウェアに含めることができる。
【００６３】
図１のプロセスについての上述したブロックの少なくとも一部は、図示された又は示された順序及び／又はシーケンスに限定されない任意の順序又はシーケンスにて実行又は遂行され得ることに留意されたい。また、上述の図１の幾つかのブロックは、適切ならば実質的に同時的に又はレイテンシ及び処理所要時間を減ずるために並列にて実行若しくは遂行され得る。追加的に又は代替的には、図１のプロセスの上述のブロックの一部は、省略され得る。
【００６４】
構成例では、命令がメモリ３０４内に格納されており、命令はプロセッサ３０２によって実行可能であり、実行されるとプロセス１００のステップの一部又は全部が行われる。
【００６５】
別の構成例では、アプリケーションＡを実行するための命令が第１のハードウェア３００上のメモリ３０４内に格納されており、アプリケーションＢを実行するための命令が第２のハードウェア３００上のメモリ３０４内に格納されている。この構成例では、第１及び第２のハードウェア３００の各々のプロセッサ３０２が、アプリケーションをランするための命令を実行する。さらに、第１及び第２のハードウェア３００のそれぞれのメモリ３０４内に命令が格納されていることができ、それらは第１及び第２のハードウェア３００のそれぞれのプロセッサ３０２によって実行可能であり、それによってプロセス１００の関連するステップが行われる。第１及び第２のハードウェア３００のそれぞれのメモリ３０４及びプロセッサ３０２は、バス３１８を介して通信可能に接続されている。さらに、アプリケーションＡ及びＢは、第１及び第２のハードウェア３００のそれぞれの通信インタフェース３１４を介してネットワーク２０６上で通信できる。
【００６６】
データは、アプリケーションＡからアプリケーションＢへと、直接的に又は間接的に送信されることができる。似たように、データはアプリケーションＢからアプリケーションＡへと、直接的に又は間接的に送信されることができる。構成例では、少なくとも１つのアプリケーションから他のアプリケーションへとデータがサーバ２０２を介して送信される。少なくとも１つのアプリケーションによって送られたデータは、サーバ２０２のアドレスを含み得る。サーバ２０２は、データを他のアプリケーションへと転送し得る。構成例では、データは、少なくとも１つのアプリケーションから他のアプリケーションへと、アプリケーションと関連付けられている装置のコンポーネントを介して、送信される。例えば、データは、アンテナ３１６等の少なくとも１つのアプリケーションが実行されている装置と関連付けられている通信ハードウェア３１６を介して、他のアプリケーションへと送信中とされ得る。データは、例えばアンテナ３１６を介して通信ネットワーク２０６上に送信されることができる。
【００６７】
開示のプロセスは、コンピュータプログラム製品によって実装されることができる。コンピュータプログラム製品は、上述された様々なプロセスの１つ以上の機能を行うことをコンピュータに命ずるように構成されたコンピュータコードを、含むことができる。コンピュータプログラム製品及び／又はそのような方法を行うためのコードは、コンピュータ可読媒体を介して、コンピュータ等の装置に提供されることができる。幾つかの実施形態では、開示の機能及び／又はプロセスを行うための命令を格納するために、任意の適切なコンピュータ可読媒体を、用いることができる。例えば、幾つかの実施形態では、コンピュータ可読媒体は、一時的であるか非一時的なものとされ得る。例えば、非一時的コンピュータ可読媒体には次の媒体等が含まれ得る：非一時的な形式の磁気媒体（例えば、ハードディスク、フロッピーディスク（登録商標）等）、非一時的な形式の光学媒体（例えば、コンパクトディスク、デジタルビデオディスク、ブルーレイディスク（登録商標）等）、非一時的な形式の半導体媒体（例えば、フラッシュメモリ、電気的にプログラム可能な読出専用メモリ（ＥＰＲＯＭ）、電気的に消去可能でプログラム可能な読取専用メモリ（ＥＥＰＲＯＭ）等）、一過性でない又は送信時に外形的永続性を欠かない任意の適切な媒体、及び／又は任意の適切な有形媒体等。別の例としては、一時的コンピュータ可読媒体には次の媒体等が含まれ得る：ネットワークや電線や導体や光ファイバや回路上の信号、一過性であり送信時に外形的永続性を欠いている適切な媒体、及び／又は任意の適切な無形媒体等。
【００６８】
コンピュータ等の装置は、本願で言及された様々な方法に従って１つ以上のプロセスを行うようにさせるコードに従って構成されることができる。
【００６９】
そのような装置は、データ処理システムの形式とすることができる。そのようなデータ処理システムは、分散システムとすることができる。例えば、そのようなデータ処理システムは、ネットワーク上に分散されていることができる。
【００７０】
別の構成例では、開示された様々な方法の任意の１つを行わせる、プロセッサによって実行可能な命令を含むコンピュータ可読媒体が、提供される。
【００７１】
したがって、暗号化メッセージを送受信するために動的公開鍵インフラストラクチャを用いる方法、システム、及び媒体が提供される。
【００７２】
技術的な不適合性が見受けられずに可能な場合には、諸々の開示される異なる構成の特徴又は観点は、一部の特徴を随意的に省略したりして組み合わされることができる。
【図１】
2019514314.tif 000003
【図２】
2019514314.tif 000004
【図３】
2019514314.tif 000005
【国際調査報告】
2019514314.tif 000006
2019514314.tif 000007