"明細書に記載の発明。本発明の目的は、上記の不利な点の少なくとも1つを緩和または削除することである。本発明の発明者は、暗号が、スパムのような悪意のあるトラフィックの量を、通常のトラフィックを妨げることなく制限できることを認識した。解決方法は、公開鍵暗号技術を使用する。外に送信されるメッセージは、送信者からのメッセージデータに対して行われた暗号演算から得られた結果を含む、またはその全体が結果から構成されている。この結果は、受信者により暗号技術を使用して検証される。検証に成功したメッセージは、信頼フォルダに送られる。検証に失敗したメッセージは、自由に廃棄できる信頼なしフォルダに送られる。検証プロセスはこのように、信頼できるメッセージと他のメッセージの間のフィルタとして機能する。随意に、検証過程で判定された既知のスパム送信者からのメッセージは、即時、削除できる。本発明の1つの形態においては、送信者は、メッセージを受信者に送信する前に、そのメッセージにデジタル署名をする。電子メッセージングシステムの各ユーザーは、一対の鍵を有しており、1つは公開鍵であり、他の1つは私的鍵である。公開鍵は、信頼できる方法で通信者の間で共有されていて、つまり、その電子メッセージングシステムを使用する通信者の選択されたグループの間では、私的と考えられる。受信者が送信者からの信頼できるメッセージを受け取る前に、受信対象者は、まず、送信者の公開鍵をいったん受け取る。受け取った公開鍵は、クライアントにおいて格納され、デジタル署名された電子メッセージおよび随意に暗号化された電子メッセージを検証するために使用される。検証に成功したメッセージは、信頼または優先度フォルダに送られる。ユーザーコミュニティを代表する組織に対しては、そのメッセージサーバーまたは付属サーバーは、ユーザーの公開鍵を保持し、ユーザーの代わりに検証が行える。組織全体がユーザーとして対処される。組織は、組織を示す鍵対を有することができる。提携する組織同士は、公開鍵を一旦交換し、1つの非常に単純なステップでお互いに全体ユーザーコミュニティ間の信頼を持たせることができる。検証は、電子メールサーバーのようなメッセージサーバーで行われる。本発明の別の形態においては、受信者のネットワークアドレスと共に、送信者の代わりに、受信者の公開鍵が、公に利用できる名簿において公開されるか、または、別の当事者、つまり、送信者が受信者に電子メッセージを送信できることを可能にするある他の手段において公開される。送信者は、受信者のネットワークアドレスと公開鍵を得て、受信者へのメッセージを暗号化する。受信者またはそのメッセージサーバーは、受信した電子メッセージに対して統計的チェックを行い、それが暗号化メッセージであることを示すランダムデータに類似しているかどうかを調べる。類似していれば、電子メッセージは、受信者の信頼受信ボックスに信頼できるメッセージとして転送される。このチェックのいずれかが失敗に終わると、電子メッセージは、異なる受信ボックス信頼のない受信ボックスに送られる。送信者により暗号化されていない電子メッセージは、信頼のない受信ボックスへ転送される。本発明の更に別の形態においては、暗号メッセージ認証は、メッセージ認証コードMACと組み合わされた鍵共有により達成される。MACは常に、送信されるメッセージに含まれる。受信者により認証されたメッセージは、信頼受信ボックスに分類される。検証に失敗したメッセージは、信頼のない受信ボックスへ送られる。他の形態において、本発明は、上述した形態の種々の組み合わせおよびサブセットを提供する。例えば、本発明は以下の項目を提供する。項目1電子メッセージングシステムにおいて、信頼できる送信者からの電子メッセージを、他のメッセージから分離する方法であって、信頼できる送信者からの電子メッセージの平文メッセージに暗号演算を行って結果を得るステップと、該結果を電子メッセージに含めるステップと、電子メッセージの受信時に、前記結果は、平文メッセージに対して行った暗号演算から得られたことを検証するステップと、検証が成功すると、該電子メッセージを優先メッセージとしてマークを付け、マークを付けられた優先度に基づいて、受信電子メッセージを分離するステップと、を含む方法。項目2前記暗号演算は、前記検証演算よりも計算的により示強的である項目1に記載の方法。項目3前記結果は、平文メッセージの署名から得られた、信頼できる送信者のデジタル署名であり、前記電子メッセージを検証することは、該デジタル署名を検証することを含む請求項1に記載の方法。項目4前記結果は、前記平文メッセージの暗号化メッセージであり、前記電子メッセージを検証することは、該暗号化メッセージを検証することを含む項目1に記載の方法。項目5前記暗号化メッセージを検証することは、前記暗号化メッセージがランダムデータに類似しているかを判定するために統計的チェックを行うことを含む項目4に記載の方法。項目6前記暗号化メッセージを検証することは、前記暗号化メッセージを復号化することを含む項目4に記載の方法。項目7前記結果は、メッセージ認証コードMACである項目1に記載の方法。項目8受信者において電子メッセージを分離する方法であって、該受信者により受信された電子メッセージに対して、所定暗号演算の証拠を調べるステップと、証拠を検出したときに、該電子メッセージを、該所定暗号演算の証拠のないメッセージから分離するステップと、を含む方法。項目9電子メッセージをフィルタ処理する方法であって、電子メッセージにおいてデジタル署名を検証するステップと検証が失敗したときに、該電子メッセージを削除するステップと、を含む方法。項目10電子メッセージをフィルタ処理する方法であって、電子メッセージの擬似ランダム性についての統計的チェックを行うステップと、統計的チェックが失敗すると、該電子メッセージを削除するステップと、を含む方法。項目11電子メッセージをフィルタ処理する方法であって、電子メッセージにおけるメッセージ認証コードMACを検証するステップと、検証が失敗すると、該電子メッセージを削除するステップと、を含む方法。項目12信頼できる電子メール通信者のリストからの電子メッセージを維持する方法であって、信頼できる電子メール通信者のそれぞれから公開鍵を得るステップと、入信電子メッセージが、信頼できる電子メール通信者の1人の公開鍵を使用して、暗号演算から得られた結果を含むことを検証するステップと、検証が失敗すると、該入信電子メッセージを削除するステップと、を含む方法。項目13第1通信者が、第2通信者に電子メッセージを送る方法であって、該第1および第2通信者のそれぞれは、一対のRSA公開鍵と私的鍵を有し、該第1および第2通信者のそれぞれは、他の通信者のRSA公開鍵の認証されたコピーを有しており、該電子メッセージを、第2通信者の該RSA公開鍵により暗号化するステップと、前記暗号化電子メッセージを変換して、変換されたメッセージを得るステップと、第1通信者の前記私的鍵を使用して、前記変換されたメッセージに対してRSA復号を行うステップと、前記結果を、第2通信者に送るステップを含み、前記暗号および復号演算は、冗長性を含まない方法。項目14第1通信者の公開鍵で前記結果を復号して、復号された結果を得るステップと、前記復号された結果に対して、前記変換の逆関数である逆変換を行って、逆変換された結果を得るステップと、第2通信者の私的鍵で、前記逆変換された結果に対してRSA復号演算を行うことにより、電子メッセージを取り出すステップと、を更に含む項目13に記載の方法。項目15前記電子メッセージは、認証鍵である項目14に記載の方法。項目16第1通信者が、第2通信者に電子メッセージを送る方法であって、第1および第2通信者のそれぞれは、一対の公開鍵と私的鍵を有し、第1および第2通信者のそれぞれは、他方の通信者の公開鍵の認証されたコピーを有しており、認証鍵を選択するステップと、該電子メッセージと該認証鍵からメッセージ認証コードMACを計算するステップと、前記認証鍵を、第2通信者の公開鍵で暗号化して暗号化された鍵を得るステップと、第1通信者の私的鍵で暗号化された鍵を復号して、変換された鍵を得るステップと、前記電子メッセージと、前記MACと、前記変換された鍵を第2通信者に送るステップを含む方法。項目17電子メッセージを受信者のグループに送る方法であって、電子メッセージの平文に対して、暗号演算を行って、結果を得るステップと、該結果を電子メッセージに含めるステップと、受信者のグループに、前記結果を含む電子メッセージを送るステップと、を含み、前記結果は、受信者のグループの各受信者により異なる方法。項目18前記暗号演算は、受信者特有の演算を含み、前記受信者特有の演算は、送信者と受信者の間で合意された秘密入力を組み込んでいる項目17に記載の方法。項目19前記受信者特有の演算は、前記結果に含まれるメッセージ認証コードMACを計算し、前記MACは、前記秘密入力およびすべての受信者に対して共通の共有鍵から計算された共通MACに基づいて計算される項目18に記載の方法。項目20メッセージ認証コードMACを計算するステップと、前記秘密入力から、前記MACを入力として含む鍵導出関数により鍵を計算するステップと、をさらに含み、前記鍵は前記暗号演算で使用される項目18に記載の方法。項目21信頼できるメッセージを分離し、電子メッセージを送信者から受信者へ配信する電子メッセージングシステムで使用されるシステムであって、電子メッセージングシステムに結合され、信頼できる送信者からの受信者への電子メッセージに対して暗号演算を行って結果を得る暗号プロセッサと、前記結果を前記受信者に送信する手段と、電子メッセージシステムに結合されるフィルタであって、前記結果を受信し、前記結果において前記暗号演算の証拠を検出し、前記証拠の検出が成功したときは、前記電子メッセージを信頼できるメッセージとしてマークを付けるフィルタを備えるシステム。項目22前記暗号プロセッサは、前記電子メッセージを暗号化して暗号化されたメッセージを前記結果として得るための暗号モジュールを含む項目21に記載のシステム。項目23前記フィルタは、統計的チェックに基づいて暗号化を検出する手段を含む項目22に記載のシステム。項目24前記フィルタは、復号モジュールを含む項目21に記載のシステム。項目25前記暗号プロセッサは、デジタル署名を生成する手段を含み、前記結果は、前記デジタル署名であり、前記フィルタは、前記デジタル署名を検証する手段を含む項目21に記載のシステム。項目26前記暗号プロセッサは、前記電子メッセージに対してメッセージ認証コードを生成する手段を含み、前記結果は、前記結果であり、前記フィルタは、前記メッセージ認証コードを検証する手段を含む項目21に記載のシステム。項目27前記電子メッセージングシステムは、電子メッセージを送信するための送信者メッセージサーバーと、電子メッセージを受信するための受信者メッセージサーバーを含み、前記暗号プロセッサは、前記送信者メッセージサーバーから前記電子メッセージを受信し、前記結果は、前記受信者メッセージサーバーに送信され、前記フィルタは、前記電子メッセージと前記結果を、前記受信者メッセージサーバーから受信する項目21に記載のシステム。項目28電子メッセージを送信者から受信者に配信し、信頼できる電子メッセージを、他のメッセージから分離する電子メッセージングシステムであって、送信者からの電子メッセージを得る手段と、該電子メッセージに対して暗号演算を行って、結果を得る暗号プロセッサと、該電子メッセージを受信者に送信する送信者メッセージサーバーと、該電子メッセージを受信する受信者メッセージサーバーと、前記結果において、前記暗号演算の証拠を検出し、前記証拠の検出が成功すると、前記電子メッセージに、前記証拠がない他のメッセージよりも高い優先度を付けるフィルタと、前記結果を該フィルタに送信する手段を備える電子メッセージングシステム。項目29証拠を有する前記メッセージを格納する優先度メッセージフォルダと、前記他のメッセージを格納する通常メッセージフォルダと、を更に備える項目28に記載の電子メッセージングシステム。項目30前記受信者の暗号化鍵を格納するデータファイルを更に備え、前記暗号プロセッサは、前記暗号化鍵を使用して、前記電子メッセージを暗号化して、前記結果としての暗号化されたメッセージを得る暗号化ユニットを含む項目28に記載の電子メッセージングシステム。項目31前記暗号化鍵は、前記受信者の公開鍵である項目30に記載の電子メッセージングシステム。項目32前記フィルタは、前記暗号化されたメッセージを復号するための復号モジュールを含む項目30に記載の電子メッセージングシステム。項目33前記暗号演算は、離散対数問題を解くことを含み、前記検出は、前記離散対数問題の解を検証することを含む項目28に記載の電子メッセージングシステム。下記の説明、およびそこで説明される実施形態は、本発明の原理の特別な実施形態の例、あるいは複数の例としての例示により提供される。これらの例は、説明の目的で提供され、本発明のこれらの原理を制限するものではない。下記の説明においては、明細書および図と通して同じ部品には同じ個々の参照番号が付けられている。図1を参照すると、電子メッセージをフィルタ処理する暗号技術を使用する電子メッセージシステムの概観が示されている。電子メッセージシステムの一対の通信者またはユーザー、つまり、第1ユーザー即ち送信者20と、第2ユーザー即ち受信者22は、ユーザー間で、ネットワーク接続24を介して電子メッセージを交換する。各ユーザーは、ユーザーに連絡できるネットワークアドレスを有している。例えば、電子メッセージシステムが電子メールシステムの場合は、ネットワークアドレスは、電子メールアドレスである。電子メッセージシステムが携帯電話テキストメッセージシステムの場合は、ネットワークアドレスは、電話番号である。すべての送信される電子メッセージのメッセージデータ、つまり、平文テキストメッセージ26は、送信者の暗号処理モジュール28により処理される。この状況では、平文テキストが、たんに人間が読めるテキストに関するだけでなく、一般的なすべてのメッセージデータに関するということは理解されよう。例えば、S/MIMEは、オーディオおよびビデオデータ、およびグラフィックファイルのようなバイナリデータの転送を可能にする。これらのバイナリデータは、すべて平文テキストデータまたはメッセージと称される。更に、バイナリデータは、暗号処理モジュール28により処理される前のすべてのメッセージデータを含み、既に暗号化された形式のデータも排除しない。信頼メッセージ30、つまり、暗号処理モジュール28による、平文テキストメッセージ26に対する暗号演算から得られる暗号化データを含むメッセージは、送信者の暗号処理モジュール28により生成される。つまり、信頼メッセージは、平文テキストメッセージ26に対する暗号演算から得られる結果を含む、またはその全体から構成されてもよい。すべての入信電子メッセージは、最初、受信者のフィルタ32により読み取られる。フィルタ32は、すべての入信電子メールをフィルタ処理する暗号技術を採用している。フィルタ32は、もちろん、入信電子メッセージに対して、タイトルまたは送信者のアドレス読み取りのような、従来の技術に基づいて、スパムまたはフィッシングの兆候がないかの監視を続けることができる。システムのユーザーは、2つのフォルダまたは2つの入信メールボックスを有する。フィルタ処理を通過した電子メッセージは、信頼フォルダ34に格納され、フィルタにより拒絶された電子メッセージは、通常フォルダ36に送られる。信頼フォルダ34に格納された電子メッセージは、より高い優先度、または信頼を持って対処され、一方、通常フォルダ36は、比較において、相対的に低い優先度の電子メッセージを保持するようになっている。受け取りにはレベルがあり、受け取りのレベルに対応して複数のフォルダまたは入信メールボックスを必要とするということは理解されよう。説明の利便性のため、注記しない限り、2つのメールボックスのみをここでは示して、説明している。このように、暗号技術を使用する検証の結果に基づいて、メッセージを異なるフォルダに分離することにより、このように、他のメッセージから信頼メッセージをフィルタ処理する。ここでは、第1ユーザーは、送信者20として指定されているが、同じ記述は、一対のユーザーが役割を交換しても成り立つ、つまり、第1ユーザーが受信して、第2ユーザーが電子メッセージを送信する場合にも成り立つ。第1ユーザーが送信者、第2ユーザーが受信者と指定したのは、たんに説明の利便性によるものである。更に、本明細書においては、送信者は、特に状況により、そうでないように要求される場合を除き、電子メッセージを送信するシステムのユーザー、電子メールプログラムのような、ユーザーにより電子メッセージを送るために採用されるメッセージソフトウェアプログラム、または、電子メッセージを送信するメッセージプログラムが実行される汎用コンピュータのことを意味するように交換可能に使用される。汎用コンピュータは、典型的には、CPUと、CPUにアクセスできるメモリ格納装置および格納装置と、入出力I/O装置を有する。メッセージプログラムは、格納装置に格納できる。同様に、受信者という用語は、状況により、そうでないように要求される場合を除いて、電子メッセージを受信するシステムのユーザー、電子メッセージを受信するために、ユーザーにより採用されるメッセージソフトウェアプログラム、または、電子メッセージを受信するためのメッセージプログラムが実行される汎用コンピュータを意味するように交換可能に使用される。平文テキストメッセージ26の送信に先立ち、送信者20は、最初に、平文テキストメッセージ26に対して暗号演算を行う。これは、送信者のソフトウェアの暗号処理モジュール28により行われる。送信者20は、平文テキストメッセージを処理する暗号演算の幅広い範囲から、フィルタ処理のレベルに応じて、送信者のソフトウェアにかかる計算負荷の、所望のかつ容認できるレベルを選択できる。信頼メッセージ30の2つの例は、デジタル署名されたメッセージ38と暗号化メッセージ40である。例えば、暗号演算は、平文テキストメッセージ26にデジタル署名をすること、および平文テキストメッセージ26の暗号化の1つであってよい。送信者20が、平文テキストメッセージ26に署名する場合は、信頼メッセージ30は、送信者20により生成されたデジタル署名を含む。メッセージはまた、送信者20により署名することができ、送信者自身の私的鍵を使用して暗号化される。または、送信者20は、受信者22から公開鍵を得て、受信者から得た公開鍵を使用して、メッセージを暗号化できる。メッセージを受信すると、受信者のフィルタ32は、フィルタ処理のためメッセージを調べる。フィルタ処理には、メッセージテキストの読み取りと、更には、メッセージテキストに対する暗号演算を含み、メッセージが信頼メッセージであることを検証する。更なる暗号演算が、メッセージが、平文テキストメッセージ26に対して行われた前回の暗号演算または複数の暗号演算の結果を含むことを検出するように設計されている。そのような暗号演算または複数の暗号演算の結果が、検出および検証に成功すると、メッセージの検証は成功する。検証に成功したメッセージのみが、信頼メッセージと見なされ、受信者の信頼フォルダ34へ送られる。ここで説明したシステムは、閉じたシステムではないということは理解されよう。つまり、暗号技術をまったく採用しないシステムのユーザーも、暗号技術は採用するが、システムまたは受信者が知らない暗号化鍵を使用するユーザーもいる可能性があるということである。従って、受信したメッセージは、その全部が平文テキストデータから構成されているか、または未知の鍵を使用した暗号演算から得た結果を含むこともある。署名なしの平文テキスト電子メッセージまたは未知の鍵で署名されたメッセージは、直接、通常フォルダ36または、拒絶受信ボックスに送られる。フィルタがスパム送信者に属していると判定した証明書における公開鍵で署名された署名付き電子メッセージもまた通常受信ボックスに送ることができる。複数の拒絶レベルを実行できる場合は、受信者22は、信頼および通常フォルダに加えて、既知のスパム送信者からの電子メッセージを保持する特別フォルダを有することができる。既知のスパム送信者からと特定された電子メッセージもまた、検出後即座に削除できる。いったん、スパム送信者の公開鍵が検出されると、そこから送られるすべてのスパムメッセージは拒絶または削除される。これにより、スパム送信者は、その鍵がスパム送信者に属すると認識されると、新しい鍵の生成を余儀なくされる。新しい鍵の生成は、適度に高価な暗号演算である。スパム送信者は、新しい鍵が必要となるたびにコストを負うことになり、そうせざるを得なくなる。これは、潜在的に、ある新しい送信者のネットワークアドレスを作成またはなりすましよりもはるかにコストがかかる。このように、スパム送信者にとって、スパムメッセージが自動的に拒絶または削除されることを回避するためには、計算に関するコストを負わざるを得なくすることで、スパムの発生は減少し、または抑制される。受信者1人当りに対して計算に関するコストを必要とすることは、数百万の電子メッセージを送る大量メール送信者は、通常、スパム送信者が現在は負う必要のない付加的な相当なコストを負うことになる。今日では、そうすることが実質的に無償なので、これにより、スパムメッセージを送る、あるいはフィッシングの動機を減少させるように働くと思われる。しかし、鍵を生成するコストは、スパムを抑制するためには十分ではないこともある。スパム送信者は、新しい鍵を生成し、スパンメッセージに署名し、署名付きメッセージを数百万のユーザーに一斉同報する可能性もある。スパム送信者にとって、スパムメッセージを送信するための計算に関するコストを負わせるようにする別の例として、暗号演算は、スパム送信者のコストを増大するために反復計算を含むことができる。反復計算の例としては、繰返しハッシングまたは、例えば千回という回数の暗号化がある。反復の回数は、所望する効果およびユーザー対敵対者の相対的な能力により決まる。反復演算を必要とすることは、スパム送信者に1回の一斉同報に付き、より多くの作業をさせることになる。しかし、この演算は、受信者が、または受信者の代わりで作動する少なくともフィルタが、反復計算を検証するために、一般的にスパム送信者と同じだけの作業を行う必要があるという点において対称的である。演算は、非対称で、それにより計算の負荷が送信者と受信者の間で釣り合わないようにすることが好ましい。そのような例は、受信者が検証するのは相対的に容易であるが、送信者が生成するのはコストがかかる、小さな離散対数問題を解くことである。これは、サービス攻撃を拒否する状況では、パズル法としても知られていることもある。送信者の、受信者1人当りのコストを増大するために反復計算またはパズルをもっとも効果的に使用するために、送信者20には、各受信者22およびメッセージに対して異なる計算または異なるパズルを必要とさせる。これにより、受信者1人当り、および1メッセージ当りの計算コストをスパム送信者が負うことを余儀なくさせ、実質的にコストがかからずに大量のスパムメッセージを送る、スパム送信者の能力を厳しく制限するようになる。ある例では、パズルまたは計算を、メッセージの要約、受信者の識別子、および可能であれば日付の関数にして、リプレイ攻撃を防止する。他の例では、パズル法をメッセージ認証のためにデジタル署名アプローチと組み合わせる、または長い計算またはパズルを、詳細を後述するように、ラップ鍵W、または受信者1人当りのMACタグのような受信者の値に依存するようにする。1回の一斉同報当り、より多くの作業をスパム送信者に強いる別の例は、暗号化されていないメッセージをフィルタ処理により除去することである。送信者20は受信者22へのメッセージを、複数の方法のいずれかの方法で暗号化する。いかなる暗号アルゴリズムでも使用できる。例えば、送信者20は、公開鍵を使用して公開鍵暗号化例えば、ANSI9.63におけるECIESを行うことができ、または送信者20は、MQVMenezesQuVandstoneを使って鍵を送って、AES米国新暗号規格のような対称鍵方式を使用してメッセージを暗号化できる。楕円曲線暗号ECC:EllipticCurveCryptographyは、スパムとフィッシングを判定する作業には、公開鍵演算が、受信者にとってより、送信者つまりスパム送信者にとってより計算についてコストが高いので、RSAまたはMHSを使用して送信される。または、メッセージはインターネットフォンメッセージであってもよく、その場合は、VoIPが信頼できるメッセージを転送するために使用される。随意に、ステップ214と216の間で、暗号処理モジュール28が離散対数問題を解き、その結果を信頼メッセージに含めることができる。または、あるいはそれに追加して、暗号処理モジュール28は、ステップ214と216の間で、繰返しハッシングまたは暗号化のようなある反復計算を行い、その結果を信頼メッセージ30に含めることもできる。受信者22は信頼メッセージ30を受信して、ステップ218においてデジタル署名を検証する。パズルの計算または反復計算の結果が含まれている場合は、その結果もまたこのとき検証される。デジタル署名および、信頼メッセージに含まれている他の暗号演算の結果の検証が成功すると、受信したメッセージは間違いなく受信者22からのものであると見なされる。検証に成功したメッセージは、信頼フォルダ34に格納される。検証が失敗すると、または電子メッセージがデジタル署名を含んでいない場合は、電子メッセージは、信頼できるユーザーからのものではないと見なされる。そのような電子メッセージは、通常フォルダ36に格納される。これで、電子メッセージの分類またはフィルタ処理のステップステップ220が完了する。理解されることであるが、デジタル署名が検証に成功するためには、署名生成アルゴリズムと署名検証アルゴリズムは、同じ署名方式のものでなければならない。デジタル署名方式はいずれの方式も使用できる。共通のいくつかの例としては、ECDSAとDSAファミリ署名方式がある。送信者20のみが信頼メッセージ30を生成するためにそのメッセージテキストに署名できるということは必要でない。同様に、受信者22のみが入信する電子メッセージを検証およびフィルタ処理できるということも必要でない。図3を参照すると、送信者側の送信者メッセージサーバー42と、受信者側の受信者メッセージサーバー44が分離して示されている。送信者メッセージサーバーは、送信者20に加えて、他の送信者20’にサービスを提供し、同様に、受信者メッセージサーバー44も、受信者22に加えて、他の受信者22’にサービスを提供できる。例として、送信者メッセージサーバー42が送信者の私的鍵のコピーを保有し、受信者メッセージサーバー44が、送信者の容認された公開鍵のコピーまたはコピーへのアクセスを有しているとする。送信者20は、その平文テキストメッセージ26を送信者メッセージサーバー42へ転送する。送信者の私的鍵のコピーを有している送信者メッセージサーバー42は、送信者20に代わってメッセージテキストに署名して、信頼メッセージ30を生成して、その信頼メッセージ30を受信者メッセージサーバー44に転送する。受信者メッセージサーバー44は、入信メッセージを検証して、そのメッセージを、検証結果に基づいて、受信者22の信頼フォルダ34または通常フォルダ36に配信する。メッセージの暗号化およびその検証は、同様な方法で実行できる。組織的なレベルにおいては、メッセージは組織により署名できる。例えば、電子メールまたは付属サーバーは、暗号化と署名を行うことができる。別の例は、ハイブリッドまたはクライアントおよび組織の署名をサポートすることである。2つの組織が、組織の公開鍵の交換により、お互いを信頼している場合は、その組織の個々のユーザーは、彼らの個々の公開鍵を提供することによりメッセージを送信する許可を得る必要はない。彼らのメッセージは、組織の公開鍵を使用して署名され検証されると、信頼または優先メールフォルダに送られる。公開鍵を固有のDNS名に割り当て、公開鍵の配布を自動化することによりスケーラビリティもまた達成できる。このシステムは、大規模な修正なしで、既存のメッセージシステムと共存できる。すべてのユーザーは、信頼受信ボックスつまり優先メールボックスと通常受信ボックスを有している。ここで説明した暗号法を使用する送信者からの電子メッセージは、検証に成功する。暗号技術を使用しないユーザーからのメッセージは、通常メッセージとして扱われ、通常受信ボックスに送られる。受信者は、すべての通信者がここで説明したような暗号技術を使用するメッセージシステムに移ってくる前に、定期的に手動で通常受信ボックスをチェックする必要がある。時間経過と共に、あるユーザーは信頼フォルダのみに移り、すべての信頼のないメッセージを自動的に削除してしまうこともあり得る。ユーザーは、公開/私的鍵の対を変更でき、それを信頼ユーザーコミュニティに通知する。これは、信頼ユーザーコミュニティのユーザーが更新された公開鍵を受け取るときにレシートを導入することにより行える。これは、たんにレシートから構成されている、および/または受信者により容認されたユーザーを含む自分の信頼ユーザーグループとなる。信頼ユーザーコミュニティは、組織とユーザーの簡便なリストである。鍵が危険に晒されたら、送信者はその信頼ユーザーコミュニティに通知できる。ユーザーは彼らの信頼ユーザーコミュニティを変更でき、所望するならば、鍵対を生成できる。信頼コミュニティにおけるすべての、またはあるユーザーに、マルチキャストによりその変更を通知することができる。ユーザーを受信者の信頼ユーザーコミュニティから排除するためには、受信者22は、たんに以前受け取ったそのユーザーの公開鍵を削除するだけでよい。偽の署名で送信されたいかなる電子メッセージも、通常フォルダに送られるかまたは即座に削除される。ユーザーの私的鍵が固有で秘密が保持されていれば、システムでなりすましを行うことは難しい。図4を参照すると、電子メッセージをフィルタ処理するための別の例のステップが示されている。受信者22は、公開/私的鍵の対を有している。送信者20が受信者22に信頼メッセージを送る前に、送信者20は、まず、ステップ410において受信者22から公開鍵を得る。公開鍵は、受信者22から直接受け取ってもよく、または受信者22により利用可能にされたある場所から得てもよい。これにより送信者20と受信者22の間の信頼関係が確立される。次に、ステップ412において、送信者20は、受信者22から得た公開鍵を使用してそのメッセージデータを暗号化して信頼メッセージ30を生成する。この場合の信頼メッセージは、暗号化メッセージである。送信者20は、ステップ414において受信者22に信頼メッセージ30を送る。メッセージを受信すると、受信者フィルタ32は、ステップ416においてそのメッセージに対して統計的テスト、または多数の統計的テストを行う。この目的は、受信したメッセージがランダムデータに類似しているかを判定することである。理解されるように、暗号化データは、冗長性を含まず、ランダムデータに類似する傾向がある。このため、すべて暗号化データから構成されているメッセージは、暗号化されていない、または部分的に暗号化されたテキストから、メッセージのランダム性についての統計的テストの結果に基づいて区別することができる。メッセージは、それがランダムデータ、またはそれに類似していれば、これらの統計的テストにパスする。ランダムデータに類似するメッセージは、信頼フォルダ34に転送される。メッセージが統計的テストのいずれか1つに失敗すると、そのメッセージは信頼メッセージではないと見なされ、異なるフォルダ、つまり通常フォルダ36に送られる。通常フォルダ36に送られたメッセージは、受信者22により定期的に、それらがスパムメッセージであるかどうかを、手動で調べる必要がある。暗号化メッセージが受信者の公開鍵で暗号化されていると、受信者はそのメッセージを、いつでも必要なときに自分の私的鍵を使用して復号できる。受信者22は、もし、受信者22がそのメッセージを復号するための鍵、またはその鍵へのアクセスを有していない場合は、暗号化メッセージの内容にアクセスできない。図4を参照して説明した方法は、受信者22の公開鍵を必要とするが、この方法は、電子メッセージを単一の受信者に送信することに限定されていない。グループメッセージは、共通の、公開/私的鍵対を共有する信頼ユーザーグループに送信できる。組織レベルで構築されたシステムのユーザーは全員、組織の共通な公開/私的鍵対を共有できる。または、ここで説明した方法は、多数の受信者に、グループ電子メッセージとして信頼メッセージを送信するために、少し修正することもできる。図5と6を参照すると、送信者20がメッセージを受信者22のグループに送信するところが示されている。ステップ610において、送信者20は、まず、受信者22の各々から公開鍵を得る。送信者20が定期的に受信者22のグループと通信している場合は、グループの受信者各々の公開鍵を既に有しているので、ステップ610で再び公開鍵を得る必要がないということは理解されよう。送信者20は、共通鍵kcを選択し、ステップ612において、各受信者自身の公開鍵を使用して、その鍵を暗号化する。共通鍵kcは、対称鍵アルゴリズムに対して秘密鍵であってもよい。グループに対して、共通鍵kcを暗号化するのに異なる公開鍵が使用されるので、暗号化された共通鍵は、グループにおいて各受信者22に対して異なる形式を有する。そして送信者20は、ステップ614において、共通鍵kcを暗号化形式で受信者22の各々に送信する。次にステップ616において、送信者20は、そのメッセージデータを、共通鍵kcを使用して暗号化する。この場合、信頼メッセージ30は共通鍵kcにより暗号化されたメッセージである。送信者20は、ステップ618において、信頼メッセージを、受信者22のグループに送信する。そして各受信者22は、ステップ620において、統計的テストまたは複数の統計的テストを受信したメッセージに対して行い、ステップ622において、メッセージを、テスト結果に基づいて、信頼フォルダ34または通常フォルダ36に分類する。各受信者22は、既に共通鍵kcを受信しているので、必要ならば、暗号化メッセージを復号できる。理解されるであろうが、説明の利便性のために、共通鍵kcの送信と、暗号化メッセージの送信は、別のステップで行うように説明されているが、共通鍵kcと、暗号化メッセージは、1つのステップで、送信者20から送信される電子メッセージに含めることができる。これには、受信者または受信者のソフトウェアプログラムが、共通鍵kcを暗号化メッセージから分離できることが必要になる。デジタル署名および暗号化に加えて、認証の別の形式は、対称MACのような、メッセージ認証コードに組み合わされた鍵共有である。このアプローチにおいて、送信者20と受信者22は、鍵共有機構を使用して、共有鍵を確立する。上述したように、S/MIME用語でAuthenticatedDataと称されるデータ構造が、S/MIMEプロトコルにおける使用のための鍵交換機構に対して指定されている。AuthenticatedDataの既存の仕様の既知の安全性の利点の1つは、送信者が複数の受信者へのメッセージを認証したいときに利用される。現在の標準仕様では、これは効率よい方法で行われるが、ある安全性の不安を引き起こすというコストがある。MACと組み合わせた鍵共有が、電子メッセージのフィルタ処理にどのように使用できるかを示す例の前に、まず、安全性の問題を理解しておくことは有益であろう。図7に示されるように、3人のユーザー、送信者アリス46と、2人の受信者ボブ48とチャールズ50のシステムを考える。図7と図8を参照して下記に説明されるシナリオは2人のみの受信者の状況に限定されないということは理解されよう。アリスはボブとチャールズの公開鍵BとCをそれぞれ有しており、一方、ボブとチャールズはそれぞれ、アリスの公開鍵Aを有している。アリスは、メッセージMを認証して、ボブとチャールズに送信したい。図8を参照すると、アリスはまず鍵kをステップ810で選択する。そして彼女は、タグT=MACk,Mをステップ812で計算する。MACの特性は、kを知っている当事者のみがTを正しく計算できるとうものである。従って、kを知っている当事者はTを使用して、Mを認証できる。kを知らない敵対者がMを修正、または別のメッセージM’と取り替えようとしても、敵対者は、変更されたタグT’=MACk,M’を計算できない。ここでアリスは、k、M、およびTを有している。アリスは、kをボブとチャールズに安全に渡し、それにより彼らが、T=MACk,Mを検証できるようにする必要がある。これを行うために、アリスは、ステップ814において、ボブとチャールズのそれぞれとの鍵共有を使用する。アリスは、ボブと鍵bについて同意し、チャールズと鍵cについて同意する。使用される鍵共有アルゴリズムにより、アリスはボブとチャールズに、ある値、例えば、UとVをそれぞれ送信し、それによりボブとチャールズが、鍵共有を使用して確立された彼らの鍵bとcを計算できるようにすることが必要な場合もある。bとcを使用して、アリスは、通常は、鍵ラップ関数と称される関数により、認証鍵kを暗号化する。アリスはW=WRAPb,kおよびZ=WRAPc,kをステップ816において計算する。アリスは、ステップ818において、U,W,M,Tをボブに、V,Z,M,Tをチャールズに送信する。随意に、彼女は、代わりにU,V,W,Z,M,Tをボブとチャールズの両者に送ることもできる。アリスは、ボブとチャールズに対して同じ認証鍵kを使用しているので、Tを1回だけ計算すればよいことに留意されたい。Mは大量のデータを含むことができ、Tを計算することは長時間を要するので、そこにアリスにとっての効率が生み出される。アリスが、多数の受信者のそれぞれに対して異なる認証鍵を使用しなくてはならず、メッセージが大きい場合は、アリスのコストは、メッセージサイズと受信者数との積に比例することになる。上記に概要を示した効率的なアプローチにより、アリスが負うコストは、メッセージサイズと受信者数の合計になり、それはそれらの積よりもはるかに少ない。潜在的な安全の危険性をより良く理解するために、ボブとチャールズがどのように認証を検証するかを見てみよう。データU,W,M,Tを受信するボブを考える。先ず、ステップ820において、ボブはUと、アリスの公開鍵Aとの鍵共有アルゴリズムを使用して、アリスとボブの間で共有される鍵共有鍵であるbを計算する。そして、ステップ822において、ボブはbとWを使用して、k=UNWRAPb,Wを計算することにより、認証鍵kを復号、つまりアンラップする。いったんボブがkを手に入れると、彼はステップ824において、T=MACk,Mを検証する。チャールズにより行われる計算も同様である。ボブとチャールズが正直者であれば、上記のアプローチは完全に安全であると考えられる。しかし、ボブが正直者でないとすると、ボブは、kを使用して、チャールズに送信されるメッセージを修正、または取り替えることができる。メッセージがアリスによりボブとチャールズに送信された場合は、ボブは、オリジナルメッセージV,Z,M,Tを横取りしてVとZを抽出するか、またはVとZをU,V,W,Z,M,Tから抽出するかのいずれかが可能である。ボブは、ある異なるメッセージM’を選択して、T’=MACk,M’を計算して、チャールズにV,Z,M’,T’を送信する。ボブは随意に、オリジナルメッセージV,Z,M,Tを横取りして、それがチャールズに届かないようにでき、または後日、ただV,Z,M’,T’を送信することができる。チャールズには、V,Z,M’,T’は、本物に見える、つまり、それが、アリスが送信したものであると見える。こう見えるのは偽りである。ボブは首尾よくアリスになりすますことができ、これは重大な安全性のリスクである。ボブが、有効なメッセージV,Z,M,Tが最初にチャールズに届かないようにできなかった場合で、チャールズがすべての認証されたメッセージは異なるVとZを有していることを確実にすれば、上記の攻撃は防ぐことができる。しかし、強力な認証が利用できるのに、ネットワークメッセージの到着順に依存するということは望ましくない。更に、チャールズが、いままでアリスが送信したVとZのすべての過去の値の履歴を維持してチェックするというのは、非常に厄介なことである。上述の安全性の問題という観点から、この攻撃に関するリスクを緩和するための、またはこの攻撃を防ぐための強力な暗号技術が必要とされる。3種類の技術の適用を示すために、ここでは、3種類の例としての方法を説明する。図9を参照すると、最初の方法は、アリスが異なるMACタグを各受信者に送信する方法である。上記の例に引き続いて、アリスは、ステップ810から816と同じステップを行う。ステップ918において、アリスはX=MACb,TとY=MACc,Tを計算する。アリスは、XをTの代わりにボブに送信し、YをTの代わりにチャールズに送信する。つまり、彼女は、ステップ920において、U,W,M,Xをボブに、V,Z,M,Yをチャールズに送信する。以前と同様に、ボブはステップ820でUを使用してbを得て、ステップ822でWをアンラップしてkを得て、そしてステップ924においてMACk,Mを計算する。ボブはアリスから、これをチェックするためのTを受け取っていないので、彼は引き続き、MACb,MACk,Mを計算して、このタグをステップ926においてXと比較する。ボブは、X=MACb,MACk,MであることをチェックしてメッセージMを検証する。同様に、チャールズは、Y=MACc,MACk,Mであることをチェックする。ここで、チャールズに対するボブの攻撃は失敗する。なぜなら、ボブがMをM’と取り替えて、T’=MACk,Mを計算しても、cを知らないので、Y’=MACc,T’を計算できない。図10を参照すると、第2番目の方法は、アリスがMACタグTを、WRAP関数の認証されたパラメータとして含める方法である。ステップ1022で、ボブとチャールズがWとZをそれぞれアンラップするとき、彼らは、Tがパラメータとして使用されたか、および、検証ステップ1024において、MがTから、WRAP関数の認証されたパラメータとして検証に成功するかをチェックする。メッセージが検証されると、つまり、認証に成功すると、そのメッセージは信頼フォルダ34に送信され、そうでないときは通常フォルダ36に送られる。理解されるように、TがWRAP関数の認証されたパラメータとして含まれるときは、アンラップ工程は、Tのいかなる修正も検出できる。従って、ボブは、チャールズに対する、彼のアリスとしてのなりすまし攻撃を行うことができなくなる。これはチャールズが修正されたタグT’を検出して拒絶するからである。この方法では、タグTは、通常はWに埋め込まれているので、メッセージの後でTを送信する必要は一般的にはない。または、TはWの外側にあって、Wは、Tを検証するために十分な情報を含むだけであってもよく、この場合は、Tを送信しなければならない。第3番目の方法は、修正ステップ814において、アリスがMACタグTを、鍵共有機構の一部として含める方法である。ほとんどの鍵共有機構は、鍵導出関数KDFを使用して、未処理共有秘密sから鍵kを、k=KDFsとして計算する。しかし、様々な理由のため、そのような未処理共有秘密は、ある検出可能なパターンを含み、それにより安全性のリスクがもたらされる。現代の鍵導出関数は、オプションであるパラメータPを、k=KDFs,Pとなるように含む。アリスは、TをオプションのKDFパラメータに含めることができる。これを行うことにより、ボブがT’を変更すると、チャールズが、アリスが使用した鍵cとは異なる鍵共有鍵c’を導出するので、ボブの攻撃を防ぐことができる。上述の第2および第3方法においては、アリスは、ボブおよびチャールズと他の受信者へ送信されるデータの流れの順序を変更するように選択できる。ボブにタグTをメッセージの後に送信する代わりに、アリスは、タグTをメッセージの前に送信できる彼女が第2の方法において依然としてTを送信する必要がある場合。これにおけるボブへの利点は、ボブは、認証kを見つけるために必要な値Tを有するということであるTはアンラップ関数または鍵導出関数に関係しているため。これにより、ボブがメッセージMを受信する前にkが利用できるようになり、それによりボブがMを受信したときのように、MACk,Mの計算を開始することを可能にする。これは、Mをメモリにまずバッファリングして、その後、kを計算して、MACk,Mを計算する代わりであり、Mの第2のパスが必要となる。つまり、ボブは、流れ処理を使用できる。反対に、アリスが流れ処理を使用したいと所望すると、彼女は、U、WおよびTをMの後に送信することを望み、それにより、MをT=MACk,Mとして計算するときに送信し、UとWを計算して送信する。ここで説明した、メッセージを検証するためにMACを使用するこれらの例としての方法は、対称および非対称機構を含む、ほとんどの鍵共有機構と共に機能できるということは理解されよう。複数の受信者への電子メッセージを暗号化することは、上記に触れた認証に関する安全性の問題を緩和することにも貢献する。アリスがボブとチャールズへの電子メッセージを暗号化すると想定する。チャールズがアリスからメッセージを受信して、それがアリスしか知り得ない機密内容を含んでいると分かると、チャールズが、アリスだけがこの電子メッセージを送信可能であると結論するのは自然である。これは無条件認証と称される。ボブが正直者であると、無条件認証は合理的である。それは、今日存在するほとんどの暗号化アルゴリズムは、敵対者が暗号化テキストを改竄しようと試みると、復号の際に、少なくとも何らかの手を加えられたように見えるという特性があるからである。復号されたメッセージが手を加えられたように見えず、アリスのみが知り得る情報を含んでいれば、チャールズは、敵対者がそのメッセージを送信してはいない、またはメッセージを修正してはいないと推測できる。しかし、ボブが正直者でない場合は、彼は、メッセージ内のアリスの秘密を知ることができ、メッセージを修正し、それを再暗号化してチャールズに送信できる。この攻撃は、本質的に明白な認証に対する攻撃と同一であり、同じ方法を使用して、その攻撃を防止できる。署名が不要の認証が望ましい。署名付き認証は受信者1人当りのコストを有しないパズルまたは長い計算と組み合わされない限りので、スパムを、鍵共有とMACを使用するときと同じように効果的には抑止できない。署名を認証に使用しないことの別の利点は、妥当否認または不正転送防止として知られている。アリスが、ボブに対して何かを認証するために署名をすると、ボブは、他人に、アリスが署名したことを証明できる。今日のほとんどのプロトコルでは、アリスはメッセージの内容に署名する。これにより、ボブは他人に対して、アリスがメッセージに署名したことを証明できるようになり、これは、メッセージが契約書または他の約束の場合は、ボブには望ましいことである。しかし、アリスはこれを望まないであろう。実際、筆記による署名の一般的な原理は、人が署名したものに制限を与える。この原理をデジタル署名に拡張できると望ましい。従って、アリスは、自分がしたいことは彼女自身を認証することである場合は、何にも署名しないことを望むであろう。つまり、アリスがボブへのメッセージを認証しても、アリスは、ボブがチャールズに対して、アリスがボブにより受信されたメッセージに署名したことを証明できないこと、または彼女の私的鍵がどんな方法でも使用されないことを望む。これに対する部分的解法は、アリスが認証鍵kの関数に署名して、メッセージのMACタグTを、T=MACk,Tとして計算することである。ボブは、アリスがボブへのメッセージMを認証したことを示すkにアリスが署名したことを知る。しかし、ボブはMをM’に、TをT’に置き換えることができるので、ボブはチャールズに、アリスがMに署名したことを証明できない。これは、アリスが何かをボブに認証したという証拠をまったく残さない鍵共有を使用して達成できる。この目的のために使用できる適切な鍵共有には、MQVとStatic-StaticDHが含まれるが、デジタル署名を含むStation-to-Stationのような他のプロトコルは含まれない。ECCは、上記に説明したように、スパムおよびフィッシングを抑制する作業に対しては、RSAよりも適切であると考えられているが、例えば、既存の開発済の旧態システムにおいては起こり得る、RSAしかユーザーが利用できない場合は、署名なしの認証のためにRSAを使用することが望ましい。RSAに対する既存の標準規格は、署名と公開鍵暗号化を認めているだけで、MACと確実に組み合わせることができる鍵共有機構を含まない。既存のRSA標準規格は、デジタル署名を必要とする。下記は、RSAが、デジタル署名を生成する必要がない認証に使用できる機構を提供する。RSAによる署名なしの認証を達成するために、アリスとボブは、ほぼ同じサイズのRSA公開鍵AとBを生成する。簡略化のため、アリスとボブは同じ公開冪指数eを使用すると仮定するが、アリスとボブは、下記に説明する方法に適切な修正を加えることにより、異なる公開冪指数を使用できる。アリスとボブの私的冪指数はそれぞれaとbである。AとBのサイズが近いと、効率の面で好ましい。公開鍵AとBは、サイズがかなりことなってもよいが、効率が落ちる。アリスはランダム認証鍵kを選択し、Z=Fk^emodB^amodAを計算する。Zを計算するときは、従来のRSA演算の場合と異なり、kは埋め込まれず、そのため冗長性は含まれない。変換Fはある固定の公開可逆関数である。例としては、恒等関数つまり、Fの引き数それ自身への写像と固定、公開鍵による対称暗号化関数がある。アリスはT=MACk,Mを計算して、Z,M,Tをボブに送信する。ボブは、k=GZ^emodA^bmodBを計算し、ここでGはFの逆関数であり、それにより、すべてのxに対してGFx=xが成り立つ。アリスは、いくつかの鍵kを試行する必要があり、それにより、ボブがZからkを取り出せることを確実にする。非常に大雑把に言えば、そのようなkを見出すためには、アリスは平均してB/A回の試行を一般的に要する。BとAが接近していればこれは問題ではない。ボブがあるZを選択して、kを計算できることに留意されたい。つまり、アリスとボブは同等に、対応する対k,Zを生成できる。従って、チャールズが、ボブが容易にk,Zを生成できることを知っているので、ボブはチャールズに、アリスがその対k,Zを生成したことを証明できない。これを可能にするのは、アリスの私的鍵演算の入力がまったく冗長性を有していないことによるが、従来のRSAデジタル署名においては、入力は冗長性を有しており、従って、アリスのみがその署名を生成できた。kからZを計算することは、アリスの私的RSA演算、ボブの公開RSA演算、および固定共通公開演算を含む、本質的に可逆演算の一連の適用から構成され、他の組み合わせも、安全性と効率の程度に違いはあるが使用できるということは理解されよう。安全と思われるそれらの組み合わせの中で、最も効率的と信じられているので、上記に説明した方法が好ましい。上記の検討から、暗号演算が信頼できる入信メッセージを、他のメッセージから分離し、広い範囲の一斉同報を、追加的な計算についてのコストを負わせることで抑止するフィルタを提供するために利用されていることは理解されよう。本発明の種々の実施形態が詳細に説明された。この技術に精通した者は、多数の修正、適合、および変形が、本発明の範囲を逸脱することなく実施形態に可能であることを理解されよう。上述の最良の形態における変更、あるいはそれに対する追加は、本発明の精神または範囲を逸脱することなく可能であるので、本発明はそれらの詳細には制限されず、添付の請求項にのみ制限される。"