(57)【要約】【課題】  メモリ、プロセッサ、および帯域幅に対する要件を低減する証明書ベースの暗号化技術を提供する。【解決手段】  ソースクライアントは、デスティネーションクライアントに対応する証明書の一部のみにアクセスする要求を生成する。この一部は、暗号化情報を含むが、自己検証情報の一部またはそのすべてさえも欠いている場合がある。そこで、ソースクライアントは、その要求を証明書サーバに送信し、証明書サーバはその要求を受け取り、応答として、証明書の要求された部分のみを返す。【選択図】  図１
2004173286.tif 000002
【特許請求の範囲】
【請求項１】
ソースクライアントおよび複数のデスティネーションクライアントを含むネットワーク環境において、前記ソースクライアントは電子メッセージを前記複数のデスティネーションクライアントに送信可能であり、前記ネットワーク環境は前記１つまたは複数のデスティネーションクライアントのうち少なくとも一部の証明書の有効性を確認し前記ソースクライアントに送ることができる１つまたは複数の証明書サーバを備え、各証明書は前記対応するデスティネーションクライアントに供給する暗号化するために必要な暗号化情報を含み、また前記証明書が実際に前記対応するデスティネーションクライアントに対応し、取り消されていないと判断するために使用する自己検証情報を含み、前記デスティネーションクライアントのうちの少なくとも１つに送信するメッセージをソースクライアントで暗号化するための方法であって、
前記ソースクライアントが前記複数のデスティネーションクライアントのうちの１つのデスティネーションクライアントに送信する電子メッセージにアクセスするステップと、
前記電子メッセージが前記デスティネーションクライアントに送信される前に暗号化すべきであると決定するステップと、
前記デスティネーションクライアントに対応する証明書の一部のみにアクセスする要求を生成するステップであって、前記一部に前記デスティネーションクライアントにより暗号解読が可能なように電子メッセージを暗号化するのに必要な暗号化情報が含まれるステップと、
前記要求を前記証明書サーバに送信するステップと、
前記証明書サーバから前記証明書の前記要求された部分のみを受け取るステップと、
前記暗号化情報を使用して前記電子メッセージを暗号化するステップと
を含むことを特徴とする方法。
【請求項２】
証明書の一部のみにアクセスする前記要求はハイパーテキスト転送プロトコル（ＨＴＴＰ）であることを特徴とする請求項１に記載の方法。
【請求項３】
前記証明書の前記要求された一部は、前記証明書が実際に前記対応するデスティネーションクライアントに対応しており、取り消されていないことを判別するための自己有効性確認情報を含まないことを特徴とする請求項１に記載の方法。
【請求項４】
前記証明書サーバにより有効性確認が実行され、前記証明書サーバが前記ソースクライアントにより信頼されることを特徴とする請求項３に記載の方法。
【請求項５】
さらに、
前記暗号化された電子メッセージを前記デスティネーションクライアントに送信するステップを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記証明書の前記要求された部分は前記デスティネーションクライアントの公開鍵を含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記暗号化された電子メッセージは、
セッション鍵を使用して暗号化された前記電子メッセージを表す第１のデータフィールドと、
前記公開鍵を使用して暗号化された前記セッション鍵を表す第２のデータフィールドを含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記要求された部分はさらに、前記証明書の証明書発行者およびシリアル番号を含むことを特徴とする請求項６に記載の方法。
【請求項９】
前記暗号化された電子メッセージは、
セッション鍵を使用して暗号化された前記電子メッセージを表す第１のデータフィールドと、
前記公開鍵を使用して暗号化された前記セッション鍵、前記証明書発行者、および前記シリアル番号を表す第２のデータフィールドを含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記要求された部分はさらに、前記証明書の鍵識別子を含むことを特徴とする請求項６に記載の方法。
【請求項１１】
前記暗号化された電子メッセージは、
セッション鍵を使用して暗号化された前記電子メッセージを表す第１のデータフィールドと、
前記公開鍵を使用して暗号化された前記セッション鍵および鍵識別子を表す第２のデータフィールドを含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記デスティネーションクライアントは暗号化形式の前記電子メッセージの送信先である第１のデスティネーションクライアントであり、前記第１のデスティネーションクライアントに対応する前記証明書は第１の証明書であり、前記電子メッセージはさらに第２のデスティネーションクライアントにも送信されることを特徴とし、さらに
前記電子メッセージが前記第２のデスティネーションクライアントに送信される前に暗号化すべきであると決定するステップと、
前記第２のデスティネーションクライアントに対応する第２の証明書の一部のみにアクセスする要求を生成するステップであって、前記一部に前記第２のデスティネーションクライアントにより暗号解読が可能なように電子メッセージを暗号化するのに必要な暗号化情報が含まれるステップと、
前記要求を前記証明書サーバに送信するステップと、
前記証明書サーバから前記第２の証明書の前記要求された部分のみを受け取るステップと、
前記第２の証明書内の前記暗号化情報を使用して前記電子メッセージを暗号化するステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項１３】
前記第１の証明書の前記部分にアクセスする前記要求および前記第２の証明書の前記部分にアクセスする要求が同じ要求であることを特徴とする請求項１２に記載の方法。
【請求項１４】
さらに、
前記暗号化された電子メッセージを送信するステップを含むことを特徴とする請求項１２に記載の方法。
【請求項１５】
前記デスティネーションクライアントは暗号化形式の前記電子メッセージの送信先である第１のデスティネーションクライアントであり、前記第１のデスティネーションクライアントに対応する前記証明書は第１の証明書であり、前記電子メッセージはさらに第２のデスティネーションクライアントにも送信され、さらに
前記電子メッセージが前記第２のデスティネーションクライアントに送信される前に暗号化すべきであると決定するステップと、
前記第２のデスティネーションクライアントに対応する前記第２の証明書全体にアクセスする要求を生成するステップと、
前記要求を前記証明書サーバに送信するステップと、
前記証明書サーバから前記第２の証明書全体を受け取るステップと、
前記第２の証明書内の前記暗号化情報を使用して前記電子メッセージを暗号化するステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項１６】
前記第１の証明書の前記部分にアクセスする前記要求および前記第２の証明書の前記部分にアクセスする要求が同じ要求であることを特徴とする請求項１５に記載の方法。
【請求項１７】
ソースクライアントおよび複数のデスティネーションクライアントを含むネットワーク環境で使用するコンピュータプログラムであって、前記ソースクライアントは電子メッセージを前記複数のデスティネーションクライアントに送信可能であり、前記ネットワーク環境は前記１つまたは複数のデスティネーションクライアントのうち少なくとも一部の証明書を前記ソースクライアントに送ることができる１つの証明書サーバを備え、各証明書は前記対応するデスティネーションクライアントに供給する暗号化するために必要な暗号化情報を含み、また前記証明書が実際に前記対応するデスティネーションクライアントに対応し、取り消されていないと判断するために使用する自己検証情報を含み、コンピュータ実行可能命令を格納した１つまたは複数のコンピュータ読み取り可能媒体を備え、前記コンピュータ実行可能命令が前記ソースクライアント側の１つまたは複数のプロセッサにより実行された場合、前記ソースクライアントに、
前記ソースクライアントが前記複数のデスティネーションクライアントのうちの１つのデスティネーションクライアントに送信する電子メッセージにアクセスするステップと、
前記電子メッセージが前記デスティネーションクライアントに送信される前に暗号化すべきであると決定するステップと、
前記デスティネーションクライアントに対応する証明書の一部のみにアクセスする要求を生成するステップであって、前記一部に前記デスティネーションクライアントにより暗号解読が可能なように電子メッセージを暗号化するのに必要な暗号化情報が含まれるステップと、
前記要求を前記証明書サーバに送信するステップと、
前記証明書サーバから前記証明書の前記要求された部分のみを受け取るステップと、
前記暗号化情報を使用して前記電子メッセージを暗号化するステップを実行させるためのコンピュータプログラム。
【請求項１８】
前記１つまたは複数のコンピュータ読み取り可能媒体はさらにコンピュータ実行可能命令を格納し、前記コンピュータ実行可能命令が前記ソースクライアント側の前記１つまたは複数のプロセッサにより実行された場合、前記ソースクライアントに、
前記暗号化された電子メッセージを前記デスティネーションクライアントに送信するステップを実行させるための請求項１７に記載のコンピュータプログラム。
【請求項１９】
前記デスティネーションクライアントは暗号化形式の前記電子メッセージの送信先である第１のデスティネーションクライアントであり、前記第１のデスティネーションクライアントに対応する前記証明書は第１の証明書であり、前記電子メッセージはさらに第２のデスティネーションクライアントにも送信され、さらに前記１つまたは複数のコンピュータ読み取り可能媒体にコンピュータ実行可能命令が格納され、前記コンピュータ実行可能命令が前記ソースクライアント側の前記１つまたは複数のプロセッサにより実行された場合、さらに前記ソースクライアントに、
前記電子メッセージが前記第２のデスティネーションクライアントに送信される前に暗号化すべきであると決定するステップと、
前記第２のデスティネーションクライアントに対応する第２の証明書の一部のみにアクセスする要求を生成するステップであって、前記一部に前記第２のデスティネーションクライアントにより暗号解読が可能なように電子メッセージを暗号化するのに必要な暗号化情報が含まれるステップと、
前記要求を前記証明書サーバに送信するステップと、
前記証明書サーバから前記第２の証明書の前記要求された部分のみを受け取るステップと、
前記第２の証明書内の前記暗号化情報を使用して前記電子メッセージを暗号化するステップと
を実行させるための請求項１７に記載のコンピュータプログラム。
【請求項２０】
前記第１の証明書の前記部分にアクセスする前記要求および前記第２の証明書の前記部分にアクセスする要求が同じ要求であることを特徴とする請求項１９に記載のコンピュータプログラム。
【請求項２１】
前記デスティネーションクライアントは暗号化形式の前記電子メッセージの送信先である第１のデスティネーションクライアントであり、前記第１のデスティネーションクライアントに対応する前記証明書は第１の証明書であり、前記電子メッセージはさらに第２のデスティネーションクライアントにも送信され、さらに前記１つまたは複数のコンピュータ読み取り可能媒体にコンピュータ実行可能命令が格納され、前記コンピュータ実行可能命令が前記ソースクライアント側の１つまたは複数のプロセッサにより実行された場合、前記ソースクライアントに、
前記電子メッセージが前記第２のデスティネーションクライアントに送信される前に暗号化すべきであると決定するステップと、
前記第２のデスティネーションクライアントに対応する前記第２の証明書全体にアクセスする要求を生成するステップと、
前記要求を前記証明書サーバに送信するステップと、
前記証明書サーバから前記第２の証明書全体を受け取るステップと、
前記第２の証明書内の前記暗号化情報を使用して前記電子メッセージを暗号化するステップと
を実行させるための請求項１７に記載のコンピュータプログラム。
【請求項２２】
前記１つまたは複数のコンピュータ読み取り可能媒体は物理媒体であることを特徴とする請求項１７に記載のコンピュータプログラム。
【請求項２３】
前記１つまたは複数のコンピュータ読み取り可能媒体は少なくとも一部はランタイムメモリを含むことを特徴とする請求項１７に記載のコンピュータプログラム。
【請求項２４】
前記１つまたは複数のコンピュータ読み取り可能媒体は永続的メモリを含むことを特徴とする請求項１７に記載のコンピュータプログラム。
【請求項２５】
ソースクライアントおよび複数のデスティネーションクライアントを含むネットワーク環境において、前記ソースクライアントは電子メッセージを前記複数のデスティネーションクライアントに送信可能であり、前記ネットワーク環境は前記１つまたは複数のデスティネーションクライアントのうち少なくとも一部の証明書を前記ソースクライアントに送ることができる証明書サーバを備え、各証明書は前記対応するデスティネーションクライアントに供給する暗号化するために必要な暗号化情報を含み、また前記証明書が実際に前記対応するデスティネーションクライアントに対応し、取り消されていないと判断するために使用する自己検証情報を含み、前記デスティネーションクライアントのうちの少なくとも１つに送信するメッセージをソースクライアントで暗号化するための方法であって、
前記ソースクライアントが前記複数のデスティネーションクライアントのうちの１つのデスティネーションクライアントに送信する電子メッセージにアクセスするステップと、
前記電子メッセージが前記デスティネーションクライアントに送信される前に暗号化すべきであると決定するステップと、
前記デスティネーションクライアントに対応する前記証明書全体にローカルでアクセスすることなく前記デスティネーションクライアントに対する証明書ベースの暗号化を実行するステップと
を含むことを特徴とする方法。
【請求項２６】
前記デスティネーションクライアントに対応する前記証明書全体にローカルでアクセスすることなく前記デスティネーションクライアントに対する証明書ベースの暗号化を実行するステップは、
前記デスティネーションクライアントに対応する証明書の一部のみにアクセスする要求を生成するステップであって、前記一部に前記デスティネーションクライアントにより暗号解読が可能なように電子メッセージを暗号化するのに必要な暗号化情報が含まれるステップと、
前記要求を前記証明書サーバに送信するステップと、
前記証明書サーバから前記証明書の前記要求された部分のみを受け取るステップと、
前記暗号化情報を使用して前記電子メッセージを暗号化するステップを含むことを特徴とする請求項２５に記載の方法。
【請求項２７】
ソースクライアントおよび複数のデスティネーションクライアントを含むネットワーク環境において、前記ソースクライアントは電子メッセージを前記複数のデスティネーションクライアントに送信可能であり、前記ネットワーク環境は前記１つまたは複数のデスティネーションクライアントのうち少なくとも一部の証明書を前記ソースクライアントに送ることができる証明書サーバを備え、各証明書は前記対応するデスティネーションクライアントに供給する暗号化するために必要な暗号化情報を含み、また前記証明書が実際に前記対応するデスティネーションクライアントに対応し、取り消されていないと判断するために使用する自己検証情報を含み、前記デスティネーションクライアントのうちの少なくとも１つに送信するメッセージをソースクライアント側で暗号化するのを証明書サーバ側で補助するための方法であって、
前記ソースクライアントから要求を受け取るステップと、
前記要求が前記デスティネーションクライアントに対応する証明書の一部のみにアクセスする要求であることを決定するステップであって、前記一部に前記デスティネーションクライアントにより暗号解読が可能なように電子メッセージを暗号化するのに必要な暗号化情報が含まれるステップと、
前記証明書の前記要求された部分を前記ソースクライアントに返すことにより前記ソースクライアントから前記要求に応答するステップを含むことを特徴とする方法。
【請求項２８】
前記要求はＨＴＴＰ要求であることを特徴とする請求項２７に記載の方法。
【請求項２９】
前記デスティネーションクライアントは第１のデスティネーションクライアントであり、前記証明書は第１の証明書であり、さらに
前記決定するステップは前記第２のデスティネーションクライアントに対応する第２の証明書の一部のみにアクセスする要求であることを決定するステップであって、前記第２のデスティネーションクライアントにより暗号解読が可能なように前記電子メッセージを暗号化するために暗号化情報が要求されるステップと、
前記第２の証明書の前記要求された部分を前記ソースクライアントに返すことにより前記ソースクライアントから前記要求に応答するステップを含むことを特徴とする請求項２７に記載の方法。
【請求項３０】
前記第１の証明書の前記要求された部分および前記第２の証明書の前記要求された部分が前記要求への同じ応答で返されることを特徴とする請求項２９に記載の方法。
【請求項３１】
前記応答はＨＴＴＰ応答であることを特徴とする請求項３０に記載の方法。
【請求項３２】
ソースクライアントおよび複数のデスティネーションクライアントを含むネットワーク環境で使用するコンピュータプログラムであって、前記ソースクライアントは電子メッセージを前記複数のデスティネーションクライアントに送信可能であり、前記ネットワーク環境は前記１つまたは複数のデスティネーションクライアントのうち少なくとも一部の証明書を前記ソースクライアントに送ることができる１つの証明書サーバを備え、各証明書は前記対応するデスティネーションクライアントに供給する暗号化するために必要な暗号化情報を含み、また前記証明書が実際に前記対応するデスティネーションクライアントに対応し、取り消されていないと判断するために使用する自己検証情報を含み、前記デスティネーションクライアントのうち少なくとも１つを送信先とするメッセージを前記ソースクライアント側で暗号化するのを前記証明書サーバで補助するための方法を実装し、コンピュータ実行可能命令を格納した１つまたは複数のコンピュータ読み取り可能媒体を備え、前記コンピュータ実行可能命令が前記証明書サーバ側の１つまたは複数のプロセッサにより実行された場合、前記証明書サーバに、
前記ソースクライアントから要求を受け取るステップと、
前記要求が前記デスティネーションクライアントに対応する証明書の一部のみにアクセスする要求であることを決定するステップであって、前記一部に前記デスティネーションクライアントにより暗号解読が可能なように電子メッセージを暗号化するのに必要な暗号化情報が含まれるステップと、
前記証明書の前記要求された部分を前記ソースクライアントに返すことにより前記ソースクライアントから前記要求に応答するステップと
を実行させるためのコンピュータプログラム。
【請求項３３】
前記デスティネーションクライアントは第１のデスティネーションクライアントであり、前記証明書は第１の証明書であり、前記１つまたは複数のコンピュータ読み取り可能媒体にはさらにコンピュータ実行可能命令が格納され、前記コンピュータ実行可能命令が前記証明書サーバ側の前記１つまたは複数のプロセッサにより実行された場合、さらに前記証明書サーバは、
前記要求が前記第２のデスティネーションクライアントに対応する第２の証明書の一部のみにアクセスする要求であることを決定するステップであって、前記第２のデスティネーションクライアントにより暗号解読が可能なように前記電子メッセージを暗号化するために暗号化情報が要求されるステップと、
前記第２の証明書の前記要求された部分を前記ソースクライアントに返すことにより前記ソースクライアントから前記要求に応答するステップと
を実行させるための請求項３２に記載のコンピュータプログラム。
【請求項３４】
前記１つまたは複数のコンピュータ読み取り可能媒体が物理媒体であることを特徴とする請求項３２に記載のコンピュータプログラム。
【請求項３５】
前記１つまたは複数のコンピュータ読み取り可能媒体は少なくとも一部はランタイムメモリを含むことを特徴とする請求項３４に記載のコンピュータプログラム。
【請求項３６】
前記１つまたは複数のコンピュータ読み取り可能媒体は永続的メモリを含むことを特徴とする請求項３４に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、安全な通信（ｓｅｃｕｒｅ  ｃｏｍｍｕｎｉｃａｔｉｏｎｓ）に関するものである。より具体的には、本発明は通信の暗号化に証明書（ｃｅｒｔｉｆｉｃａｔｅｓ）を使用することに関するものである。
【背景技術】
【０００２】
コンピューティングおよびネットワーキング技術は、私たちの仕事と遊びの様式を一変させた。ネットワークはさまざまな機能を持ち、単純なネットワーク対応コンピューティングシステムであっても、「インターネット」としばしば呼ばれるネットワークの集合体を介して地球全体に拡散している他の数百万台ものコンピューティングシステムのうちの１台と通信することができる。このようなコンピューティングシステムとして、デスクトップ、ラップトップ、またはタブレットパーソナルコンピュータ、携帯情報端末（ＰＤＡ）、電話、またはデジタルネットワークを介して通信することが可能なその他のコンピュータまたはデバイスがある。
【０００３】
ネットワークを介して通信するためには、一方のコンピューティングシステム（本明細書では「ソースコンピューティングシステム（ｓｏｕｒｃｅ  ｃｏｍｐｕｔｉｎｇ  ｓｙｓｔｅｍ）」または「ソースクライアント（ｓｏｕｒｃｅ  ｃｌｉｅｎｔ）」と呼ぶ）が、電子メッセージを作成するか、または何らかの方法でアクセスし、ネットワークを介してその電子メッセージを他方のコンピューティングシステム（本明細書では「デスティネーションコンピューティングシステム（ｄｅｓｔｉｎａｔｉｏｎ  ｃｏｍｐｕｔｉｎｇ  ｓｙｓｔｅｍ）」または「デスティネーションクライアント（ｄｅｓｔｉｎａｔｉｏｎ  ｃｌｉｅｎｔ）」と呼ぶ）に送信する。この電子メッセージは、電子メールまたはインスタントメッセージの場合のように人間のユーザーが読み取ることができるか、またはその代わりに、受信側コンピューティングシステム上で稼働しているアプリケーションにより読み取ることができる。電子メッセージは、人間のユーザーが補助することができる送信側コンピューティングシステム上で稼働しているアプリケーションにより構築することができる。
【０００４】
このような電子メッセージ送受信機能を使用するとコンピューティングシステム同士で情報交換することができ、それに関わるユーザーが以前にはなかった方法で利用することができて都合がよいが、電子メッセージは傍受される恐れがある。電子メッセージの内容の機密性によっては、極めて有害な事態を生じたり、さらには場合によっては破滅的な事態に至ることすらあり得る。傍受を防ぐために、電子メッセージを暗号化し、特定の２進列（「鍵」と呼ばれる）を持つ者のみが電子メッセージを暗号解読し、電子メッセージ内に表現されている情報にアクセスできるようにすることが多い。できれば受信側コンピューティングシステムのみが電子メッセージの暗号解読に必要な鍵にアクセスできるように作業が進められる。したがって、介入する傍受者は、異常に極端な労力を払わないと暗号化された形式の電子メッセージにアクセスできない。
【０００５】
対称暗号化では、電子メッセージを暗号化するのに使用したのと同じ鍵を使用して、電子メッセージの暗号解読を行うことができる。非対称暗号化では、「公開鍵」および「秘密鍵」は特定のコンピューティングシステムと関連付けられている。公開鍵は、さまざまな種類のコンピューティングシステムに公開されるが、秘密鍵は公開しない。秘密鍵は、公開鍵を使用して暗号化されているメッセージの暗号解読に使用することができる。秘密鍵は公開鍵よりも機密性が高いが、それは、受信側コンピューティングシステムがそのコンピューティングシステムを宛先とする電子メッセージの暗号解読を行える唯一のコンピューティングシステムでなければならないからである。
【０００６】
暗号化を行いやすくするために、送信側コンピューティングシステムでは、多くの場合、受信側コンピューティングシステムと関連付けられている電子証明書にアクセスする。図８は、従来技術による証明書８００のデータ構造を示している。証明書８００は、有効性確認情報８０３を含む。この有効性確認情報８０３により、送信側コンピューティングシステムは、その証明書が実際に受信側コンピューティングシステムに対応していること、およびその証明書が取り消されていないことを確認することができる。Ｘ．５０９証明書は、現在広く使われている証明書の１つである。Ｘ．５０９証明書の有効性確認情報は、例えば、デスティネーションコンピューティングシステムに対応して証明書が機能するかどうかを検証するためにアクセスするＵＲＬを含む。Ｘ．５０９証明書の有効性確認情報は、さらに、その証明書が取り消されているかどうかを示す証明書取り消しリストを含むこともできる。
【０００７】
証明書８００は、さらに、送信側コンピューティングシステムが証明書を識別するための証明書識別情報８０２も含む。例えば、Ｘ．５０９証明書は、鍵識別子、または場合によっては、発行者識別子とシリアル番号の組み合わせを含むこともある。
【０００８】
証明書８００は、さらに、暗号化情報８０１（例えば、Ｘ．５０９証明書内の公開鍵）も含む。暗号化情報を使用することにより、送信側コンピューティングシステムは、その証明書に対応するデスティネーションコンピューティングシステムによって暗号解読できる方法で電子メッセージを暗号化することができる。例えば、送信側コンピューティングシステムがデスティネーションコンピューティングシステムに対応する公開鍵を使用して電子メッセージを暗号化する場合、デスティネーションコンピューティングシステムは、電子メッセージの暗号解読に必要な対応する秘密鍵を持つ唯一のコンピューティングシステムであるのが理想的である。
【０００９】
暗号化の時点で証明書が使用されるケースがかなりある。例えば、従来、Ｓ／ＭＩＭＥを使用する電子メールを暗号化する場合、受信側コンピューティングシステムの証明書を送信側コンピューティングシステム自体で使用し、送信側コンピューティングシステムが暗号化を実行するのを補助する。ＭＩＭＥ（多目的インターネットメール拡張仕様）は、インターネット経由で非ＡＳＣＩＩメッセージを送信できるように非ＡＳＣＩＩメッセージの書式を定めた規格である。現在、多くの電子メールクライアントが、ＭＩＭＥをサポートしており、インターネットメールシステムを介してグラフィックスファイル、オーディオファイル、およびビデオファイルを送受信することができる。ＭＩＭＥは１９９２年にＩｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ（ＩＥＴＦ）によって定められた。Ｓ／ＭＩＭＥは、ＭＩＭＥ規格に準拠する電子メールメッセージのコンテンツの暗号化および符号化を行う方法を定義した規格である。Ｓ／ＭＩＭＥは、上述の公開鍵暗号化技術に基づいている。今後Ｓ／ＭＩＭＥは広く実装され、異なる電子メールアプリケーションを使用していてもだれもが互いに電子メールメッセージを安全にやり取りできるようになることが期待される。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
Ｓ／ＭＩＭＥで定められたような証明書ベースの暗号化技術の普及と利用にあたって、特にメモリ容量が制限されるモバイルデバイスでは、いくつかの障害が考えられる。現在、証明書ベースの暗号化でメッセージを暗号化するために、証明書全体にアクセスしている。Ｘ．５０９証明書は、証明書毎にそのサイズが１キロバイトを優に超えることが多い。証明書は、ふつう、メッセージの各潜在的受信者に使用される。メッセージによっては受信者が多数おり、そのため、証明書を格納するために必要なメモリ量が増大する。したがって、通常、メモリ容量とプロセッサ能力が比較的限られているモバイルデバイス上で動作させる場合に実行速度が著しく低下することがある。
【００１１】
さらに、送信側コンピューティングシステムは、待ち時間が長い接続および／または帯域幅の狭い接続（例えば、ダイヤルアップ接続または無線接続）で他のコンピューティングシステムから証明書を取得することが多い。特に、証明書は集中リポジトリまたはディレクトリに格納され、これを電子メールユーザーがアクセスするというケースが多い。低速のネットワーク接続でこれらのリポジトリに接続される電子メールユーザーは、証明書のサイズの影響を大きく受ける。したがって、望まれるのは、メモリ、プロセッサ、および帯域幅に対する要件を低減する証明書ベースの暗号化技術である。
【課題を解決するための手段】
【００１２】
従来技術の前記の問題は、暗号化ポイントで証明書全体を使用しないため、暗号化ポイントでメモリおよびプロセッサのリソースを節約できる証明書ベースの暗号化メカニズムを指向する本発明の原理により克服される。さらに、暗号化ポイントがまだ証明書にアクセスしていない場合、証明書全体の一部しか暗号化ポイントに送信されないため、証明書全体を送信する（そして格納する）のに比べて帯域幅（およびメモリ）が節約される。
【００１３】
本発明の原理は、ソースクライアントが１つまたは複数のデスティネーションクライアントに送信される電子メッセージ用の暗号化ポイントであるネットワーク環境で実装することができる。証明書は、電子メッセージの潜在的デスティネーションクライアントのうち少なくとも一部について対応する証明書を供給する証明書サーバからアクセスすることができる。証明書には、証明書に対するアクセス権を持つ人がその証明書に対応するエンティティにより暗号解読できる方法で電子メッセージを暗号化するために使用する暗号化情報が含まれる。この証明書はさらに、証明書に対するアクセス権を持つ人がその証明書が有効であること、その証明書が対応するエンティティに属していること、およびその証明書が取り消されていないことを検証するために使用する自己検証情報も含む。
【００１４】
ソースクライアントでは、デスティネーションクライアントに送信される電子メッセージにアクセスし、その後、その電子メッセージは暗号化されるべきであると判断する。ソースクライアントは、デスティネーションクライアントに対応する証明書の一部のみにアクセスする要求を生成する。この一部は、暗号化情報を含むが、自己検証情報の一部またはそのすべてさえも欠いている場合がある。そこで、ソースクライアントは、その要求を証明書サーバに送信し、証明書サーバはその要求を受け取り、応答として、証明書の要求された部分のみを返す。
【００１５】
返された証明書の部分は、証明書全体と比べるとはるかに小さくなる可能性がある。したがって、その要求された部分を返すだけでも、証明書サーバとソースクライアントの間に必要な帯域幅をかなり低減できる。ソースクライアントがその応答を受け取った場合、デスティネーションクライアント側で暗号解読できるように暗号化情報を使用して電子メッセージを暗号化する。
【００１６】
暗号化プロセスは、公開鍵を使用して電子メッセージの内容を直接暗号化するステップを含むことができる。その代わりに、複数のデスティネーションクライアントがメッセージを受信する場合、電子メッセージの内容を別の鍵（例えば、セッション鍵）で暗号化することができる。電子メッセージはさらに、デスティネーションクライアント毎に、その対応する公開鍵により暗号化されているセッション鍵を含めることもできる。
【００１７】
そこで、証明書全体ではなくその一部が送信され、暗号化に使用されるため、ソースクライアントでのメモリおよび処理リリースが節約される。これは、ソースクライアントがプロセッサおよびメモリのリソースがすでに限られており、他のネットワークとの接続に使用される帯域幅も限られることの多いモバイルデバイスである場合に特に重要である。本発明は、タイミングだけでなく電子メッセージのセキュリティも重要な場合に特に有用である。
【００１８】
証明書の一部の自己検証情報が証明書の要求された部分に含まれない場合のあることに留意されたい。証明書の有効性を検証できるようにするステップと関連するセキュリティを確保するために、証明書サーバで証明書の検証を実行することができる。証明書サーバは、証明書サーバがこのような有効性確認を実行した場合にソースクライアントが証明書の有効性を独立に確認せずにその証明書が有効であると結論するという範囲で、ソースクライアントによりすでに信頼されていることが好ましい。
【００１９】
本発明の他の機能および利点については以下で説明するが、ある程度説明から明らかであろうし、また本発明を実施することにより学ぶこともできる。本発明の特徴と利点は、付属の請求項で特に指摘されている機器および組み合わせを使って実現し得ることができる。本発明のこの機能および他の機能については以下の説明を読むとより完全に明らかになるであろうし、あるいは以下で述べているように本発明を実施することにより学ぶこともできる。
【発明を実施するための最良の形態】
【００２０】
本発明の上記の利点および特徴およびその他の利点および特徴を得る方法を説明するために、上で簡単に説明した本発明より具体的な説明を付属の図面に示されている特定の実施形態を参照しながら行う。これらの図面が本発明の代表的な実施形態を示しているだけであり、したがってその範囲を制限しているものとみなされないことを理解していることを前提として、付属の図面を使用して本発明を具体的内容および詳細とともに説明する。
【００２１】
本発明の原理は、デスティネーションクライアントに送信する電子メッセージを暗号化する場合にデスティネーションクライアントに対応する証明書全体にソースクライアントがアクセスしない証明書ベースの暗号化メカニズムに関する。その代わりに、ソースクライアントは証明書サーバに証明書の一部のみを要求する。その一部は、暗号化情報を含むが、証明書に含まれる自己有効性確認情報の一部またはそのすべてさえも欠いている場合がある。有効性確認を実行する場合、証明書サーバは暗号化情報をソースクライアントに送信するのに先立って証明書の有効性確認を実行する。特に証明書サーバがソースクライアントによって信頼されている場合には、証明書の有効性確認はソースクライアントにより別々に実行される必要はない。
【００２２】
ソースクライアントは、証明書のさらに限られた部分（本明細書では、「ミニ証明書」または「部分的証明書」とも呼ぶ）を使用して、メッセージの暗号化を行う。部分的証明書は証明書全体に比べてはるかに小さいので、これにより、証明書ベースの暗号化を実行する場合に使用されるメモリおよびプロセッサのリソースを減らすことができ、また証明書サーバとソースクライアントとの間に必要な帯域幅を低減することができる。
【００２３】
本発明の実施形態は、後で詳述するように、さまざまなコンピュータハードウェアをはじめとする専用または汎用のコンピューティングデバイスを備えることができる。本発明の範囲内の実施形態はさらに、格納されているコンピュータ実行可能命令またはデータ構造体を搬送するまたは保持するためのコンピュータ読み取り可能媒体も含む。このようなコンピュータ読み取り可能媒体は、汎用または専用のコンピュータからアクセス可能な利用可能媒体であってよい。例として、ただしこれに限るわけではないが、このようなコンピュータ読み取り可能媒体はＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたはその他の光ディスクストレージ、磁気ディスクストレージまたはその他の磁気ストレージデバイス、またはコンピュータ実行可能命令またはデータ構造体の形で目的のプログラムコード手段を搬送または格納するために使用できる、専用または汎用コンピュータによりアクセスできる、その他の媒体などの物理的ストレージ媒体を備えることができる。コンピュータ読み取り可能媒体を永続的メモリとすることも、またランタイムメモリまたはそれらの組み合わせとすることもできる。
【００２４】
図１および以下の説明は、本発明を実施できる適当なコンピューティング環境について簡潔に述べた一般的な説明である。必要というわけではないが、本発明について、コンピューティングデバイスによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的文脈において説明する。一般に、プログラムモジュールには、特定のタスクを実行する、あるいは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。
【００２５】
図１では、本発明の原理に適している動作環境は、無線デバイスの形態の汎用コンピューティングデバイス１００を備える。無線デバイス１００は携帯電話の形をとるが、現在ではさまざまなデバイスが無線ネットワークを介して通信することができ、本発明の原理を採用することにより有用である。例えば、ラップトップコンピュータ、タブレットＰＣ、携帯情報端末（ＰＤＡ）、およびその他の無線デバイスが現在では利用可能である。その他の無線デバイス形態も将来開発される可能性がある。本発明の原理は、無線デバイスの特定の組み合わせに限られない。
【００２６】
無線デバイス１００は、ユーザーが入力ユーザーインターフェイス１０３を介して情報を入力するためのユーザーインターフェイス１０１を備える。ユーザーは、出力ユーザーインターフェイス１０２を介して表示される情報を検討する。ユーザーインターフェイスは、無線デバイスのフォームファクタにより大きく異なる。しかし、図に示されている実施形態では、無線デバイス１００はラップトップコンピュータであり、出力ユーザーインターフェイス１０２はオーディオ情報をユーザーに与えるためのスピーカー１０４、および視覚的情報をユーザーに与えるための表示装置１０５を備える。
【００２７】
入力ユーザーインターフェイス１０３は、オーディオ情報を電子形式に変換するマイク１０６を備えることもできる。さらに、入力ユーザーインターフェイス１０３は、ダイヤルコントロール１０７およびナビゲーションコントロール１０８を備え、ユーザーはこれを利用して情報を無線デバイス１００に入力することができる。
【００２８】
１つまたは複数のプログラムモジュールを備えるプログラムコード手段をメモリ１１２に格納することができる。１つまたは複数のプログラムモジュールが、オペレーティングシステム１１３、１つまたは複数のアプリケーションプログラム１１４、その他のプログラムモジュール１１５、およびプログラムデータ１１６を備えることもできる。１つまたは複数のプログラムモジュールをメモリ（揮発性の場合）内にインスタンス化したり、メモリ（不揮発性の場合）からロードして、プロセッサ１１１を使用してさらに処理することができる。プログラムコード手段は、不揮発性メモリだけでない揮発性メモリも備えることができ、その形態は無線デバイスの種類によって大きく異なる。
【００２９】
図１は本発明の適当なオペレーティング環境を表しているが、本発明の原理は、無線ネットワークを介して通信することができる任意の無線デバイス内に採用することができる。図１に示されている無線デバイスは、説明のためのみであり、決して、本発明の原理が実装されるさまざまな環境の小さな一部すら表すものではない。
【００３０】
図２は、本発明の原理を採用できるネットワーク環境２００を示す図である。ネットワーク環境２００は、ソースクライアントのコンピューティングシステム２１０を備える。この説明および請求項では、「コンピューティングシステム」という用語は、１つまたは複数のプロセッサを使用してソフトウェアを実行している、または実行することができるハードウェアコンポーネントまたはハードウェアコンポーネントの組み合わせである。コンピューティングシステムは、システムまたは処理能力を持つデバイスであればよい。例えば、コンピューティングシステムは、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、携帯情報端末（ＰＤＡ）、携帯電話、または現在存在しているまたは将来開発される予定のその他の処理システムまたはデバイスとすることができる。
【００３１】
この説明および請求項では、「クライアントコンピューティングシステム」または「クライアント」は、クライアントコンピューティングシステムがさらに他のコンピューティングシステムにサービスを提供するにせよしないにせよ、他のコンピューティングシステムのサービスを受けるコンピューティングシステムである。例えば、ソースクライアント２１０は、証明書サーバ２２０のサービスを受け、証明書サーバは証明書（またはその一部）を必要に応じてソースクライアント２１０に提供する動作をする。例では、ソースクライアント２１０は（電子メッセージも作成しようとしまいと）、縦の楕円２３５で表されているように潜在的にさらに多くのうちでデスティネーションクライアント２３１、２３２、２３３、２３４の中のどれか１つを含むさらに多くのデスティネーションクライアント２３０のうちの１つに送信する電子メッセージにアクセスする。ソースクライアント２１０およびデスティネーションクライアント２３１、２３２、２３３、および２３４は、上述のように、無線デバイス１００用に構成することができるが、本明細書で述べているようにコンピューティングシステムの定義の範囲内であればどのような形態をも取ることができる。
【００３２】
図３は、本発明の原理により、証明書サーバの補助によりデスティネーションクライアントのうち少なくとも１つに送信するメッセージを暗号化するソースクライアントのコンピューティングシステムの方法３００を示している。動作のうちのいくつかと方法３００のステップは、図３の左欄の下に見出し「ソースクライアント」として表されているようにソースクライアント２１０により実行することができる。方法３００の他の動作は、図３の右欄に見出し「証明書サーバ」として示されているように証明書サーバ２２０により実行される。
【００３３】
ソースクライアント２１０はまず、デスティネーションクライアントのうちの少なくとも１つに送信する電子メッセージにアクセスする（動作３０１）。この電子メッセージは、ローカルメモリからアクセスすることができ、あるいは場合によっては、列のコンピューティングシステムから受信し、デスティネーションコンピューティングシステムに配信することもできる。さらに、電子メッセージはデスティネーションクライアントに送信される電子メッセージの最終バージョンの暫定バージョンでもよい。
【００３４】
ソースクライアント２１０は次に、デスティネーションクライアントに送信する前に電子メッセージを暗号化することを決める（動作３０２）。この決定は、構成設定、デスティネーションクライアントまたはデスティネーションクライアントが属するクライアントのグループに関連する特定の設定に対する応答として、または場合によっては、ソースクライアントのユーザーからの要求に対する応答として実行される。
【００３５】
ソースクライアント２１０はさらに、デスティネーションクライアントに対応する証明書全体にローカルでアクセスすることなくデスティネーションクライアントに対する証明書ベースの暗号化を実行する機能的結果指向のステップを実行する（ステップ３０３）。この結果指向のステップには、この結果を遂行する対応する動作が含まれる。しかし、図に示されている実施形態では、ステップ３０３は対応する動作３０４、３０５、および３０９を含む。
【００３６】
特に、ソースクライアント２１０は、デスティネーションクライアントに対応する証明書の一部のみにアクセスする要求を生成する。この一部分は、図７に示されている部分的証明書７００としての証明書であってよい。部分的証明書７００は、デスティネーションクライアントにより暗号解読できるように、電子メッセージを暗号化するために必要な暗号化情報７０１を含む。部分的証明書７００の暗号化情報７０１は、証明書全体の暗号化情報８０１と似ていてもよい。例えば、証明書全体８００がＸ．５０９証明書であった場合、暗号化情報７０１は、デスティネーションクライアントが所有する秘密鍵に対応する公開鍵とすることができる。
【００３７】
部分的証明書７００はさらに、部分的証明書７００に対応する証明書全体８００を識別する証明書識別情報７０２を含むこともできる。例えば、証明書識別情報７０２は、証明書全体の証明書識別情報８０２の少なくとも一部を含むことができる。例えば、証明書全体８００がＸ．５０９証明書であった場合、証明書識別情報７０２は、鍵識別子、またはその代わりにあるいはそれに加えて、証明書発行者識別子および証明書シリアル番号の組み合わせを含むことができる。有効性確認情報８０３の一部は部分的証明書７００に含めることもできるが、有効性確認情報８０３はどれも、部分的証明書に入るものとして示されていない。部分的証明書７００は証明書全体８００の情報の大半を欠いているため、部分的証明書７００のサイズは証明書全体のサイズと比べてはるかに小さくなる可能性がある。
【００３８】
ソースクライアント２１０は、証明書の一部にアクセスする要求を生成した後（動作３０４）、その要求を証明書サーバ２２０に送信する（動作３０５）。この送信は、図２では、矢印２１１Ａで表されているようにソースクライアント２１０から証明書サーバ２２０へ移動する要求２１１により示されている。
【００３９】
図４は、本発明による要求２１１のデータ構造の概略を示している。要求２１１は、ヘッダ情報４０１を含む。このヘッダ情報４０１は、伝送プロトコルによって使用される情報を含むことができる。例えば、電子メッセージがハイパーテキスト転送プロトコル（ＨＴＴＰ）要求（例えば、ＨＴＴＰ  ＰＯＳＴ要求）の場合、要求２１１ＡはＨＴＴＰヘッダ情報を含むであろう。ＨＴＴＰプロトコルを使用して要求を送信する方法は、証明書サーバ２２０がソースクライアント２１０を含むローカルネットワーク上にないが、その代わりにインターネット上でのみアクセス可能な場合に便利である。
【００４０】
要求２１１はさらに、デスティネーションクライアントの識別４０２も含む。この識別は、例えば、ＵＲＬ、ＩＰアドレス、またはデスティネーションクライアントまたは複数のクライアントと関連付けられている電子メールアドレスの形態を取ることができる。この識別が個々のデスティネーションクライアントの未解決名の形であった場合、証明書サーバ２２０は、さらに、この名前を特定のデスティネーションクライアントに解決し、要求された部分的証明書または証明書全体が証明書サーバによりソースクライアントに提供されるのと同時にその解決結果をソースクライアント２１０に返す。識別が配布リストの未解決名の形であった場合、証明書サーバはその配布リストを展開してから、配布リストに対応するデスティネーションクライアント毎に部分的証明書または証明書全体のいずれかをソースクライアント２１０に返すことができる。配布リスト上のエンティティには、個人だけでなく、潜在的に１つまたは複数の他の子配布リストが含まれる。配布リストを展開することは、まず最初に配布リストで直接識別されている個人を含め、次に、１つまたは複数の他の子配布リストのどれかについて同じ展開を再帰的に実行することにより配布リストに含まれる各個人を識別することを意味する。この再帰的プロセスを使用すると、個人が子または孫配布リストでしか識別されていない場合でも配布リストに含まれるすべての個人が識別される。そうする代わりに、証明書サーバ２２０または図に示されていない他の何らかの解決サーバおよび／またはソースクライアント２２０に組み込まれた解決メカニズムにより、このようなアドレス名解決を別々に実行することもできる。
【００４１】
要求２１１はさらに、証明書の完全バージョンが要求されたか（完全バージョンフィール４０４で表されているように）、証明書の部分的バージョンが要求されたか（部分的バージョンフィールド４０５で表されているように）を示す標識を含む証明書要求４０３も含む。証明書要求に対応するデスティネーションクライアントが複数ある場合、その要求により、デスティネーションクライアントすべてについて証明書の完全バージョンが望まれていること、またはデスティネーションクライアントすべてについて証明書の部分的バージョンが望まれていることを指定することができる。そうする代わりに、要求により、デスティネーションクライアントの指定グループのみについて部分的証明書を返すこと、およびそれ以外については証明書全体を返すことを指定することもできる。さらに、要求により、デスティネーションクライアントの指定グループのみについて証明書全体を返すこと、およびそれ以外については部分的証明書を返すことを指定することもできる。「ｇｅｔｃｅｒｔ」要求の形の特定の証明書要求の例について説明する。
【００４２】
「ｇｅｔｃｅｒｔ」コマンドは、ＨＴＴＰ  ＰＯＳＴ要求の中に入れることができ、テキスト「ｃｍｄ＝ｇｅｔｃｅｒｔｓ」を記述して、その要求が証明書に対する要求であることを識別することができる。
【００４３】
アドレスフィールド「ａｄｄｒｓ＝［ＡＤＤＲＥＳＳ］」で、証明書が望まれている１つまたは複数のデスティネーションクライアントの１つまたは複数のアドレスのリストを示すことができる。大文字の文字列が角括弧の中に含まれている場合、大文字で記述されている型の実際の値でメッセージ内の角括弧とその内容を置き換えることを意味する。例えば、［ＡＤＤＲＥＳＳ］は、デスティネーションクライアントの実際のアドレス、または証明書サーバによってアドレスに解決される未解決名で置き換えられる。「ｇｅｔｃｅｒｔｓ」コマンドを使用しても、解決データはクライアントに返されず、解決済みアドレスの証明書のみ返される。
【００４４】
オプションフィールド「ｍｉｎｉｃｅｒｔ＝［ｔ／ｆ］」がｔｒｕｅに設定されていると、証明書サーバ２２０は証明書全体ではなく部分的証明書を返す。そうでなく、値がｆａｌｓｅであるか、またはｍｉｎｉｃｅｒｔフィールドが存在していなかった場合には、証明書全体が返される。ｍｉｎｉｃｅｒｔフィールドはａｄｄｒｓフィールドによって表される特定のデスティネーションクライアントに対応しているか、または要求の中のａｄｄｒｓフィールドによって表される一部または全部のデスティネーションクライアントを表す。
【００４５】
証明書サーバ２２０はソースクライアント２１０から要求を受け取り（動作３０６）、その要求が部分的証明書のみの要求であると判断し（動作３０７）、そのデスティネーションクライアントに対する部分的証明書のみを返すことにより応答する（動作３０８）。図２では、矢印２１２Ａで表されているように、証明書サーバ２２０は応答２１２をソースクライアント２１０に返す。
【００４６】
図５は、応答２１２のデータ構造例を示している。応答はヘッダ情報５０１を含む。例えば、要求２１１がＨＴＴＰ要求であった場合、応答２１２はＨＴＴＰ応答の可能性があり、その場合、ヘッダ情報はＨＴＴＰ応答ヘッダ情報となる。この応答はさらに、電子メッセージの各デスティネーションクライアントに対する証明書５０２も含む。証明書は、要素５０４によって表されているように証明書全体であるか、または要素５０５によって表されているように部分的証明書とすることができる。しかし、本発明の原理によれば、電子メッセージを受け取るデスティネーションクライアントのうち少なくとも１つに対して部分的証明書が返される。
【００４７】
以下は、ＨＴＴＰ  ＰＯＳＴ応答内に埋め込まれている応答の可能な１つのスキーマを表している（わかりやすくするため行番号を追加してある）。
1. <a:response xmlns:a="http://schemas.microsoft.com/exchange/webmail">
2.        <a:cert>[CERTIFICATE]</a:cert>
3. </a:response>
【００４８】
第１行から第３行までは、「応答」ＸＭＬ要素を表す。属性「ｘｍｌｎｓ」は、ＸＭＬ要素に対応する名前空間を表し、ＸＭＬ要素を解析してその意味を解釈するために使用することができる。
【００４９】
第２行は、要求の中のａｄｄｒｓフィールドにより表されていたデスティネーションクライアント（またはアドレスが配布リストの場合にはデスティネーションクライアントのグループ）毎に繰り返すことができる「ｃｅｒｔ」ＸＭＬ要素を表している。
【００５０】
ｃｅｒｔ要素の内容は、ａｄｄｒｓ要素に対応する１つまたは複数の証明書であり、以下の形式を取ることができる（わかりやすくするために行番号を追加している）。
1. [DWORD:cert要素の全内容のサイズ]
2. [DWORD:cert要素に含まれる証明書に対する受信者の総数（受信者が未解決であった場合には０となることもある）]
3. [DWORD:見つかった証明書の総数（有効な証明書が見つからなかった場合には０となることもある）]
4. [証明書１]
5. ・
6. ・
7. ・
8. [証明書Ｍ]
【００５１】
第１行〜第３行は、ｃｅｒｔ要素の内容全体に関する情報を表すＤＷＯＲＤｓである。第４行〜第８行は、証明書のセクションが複数ありえることを表す。この場合、証明書には証明書１〜Ｍまでが含まれ、第５〜第７行は第１と第Ｍの証明書の間にある可変個の証明書を表す縦の楕円である。各証明書セクションは、以下のような構造とすることができる（わかりやすくするため行番号を追加している）。
1. [WORD:証明書のサイズ]
2. [WORD:フラグ（証明書が証明書全体であるか部分的証明書であるか、および証明書が鍵識別子により識別されているかどうかを示すことができる）]
3. [部分的証明書または証明書全体それ自体]
【００５２】
図２および３のさらに一般的な例に戻って図を見ると、ソースクライアント２１０はサーバから証明書の要求された部分しか受け取らない（動作３０９）。この段階では、ソースクライアント２１０は、電子メッセージを送信されるデスティネーションクライアントのそれぞれが受信できるうように電子メッセージを暗号化する準備が整っている。電子メッセージを送信されるデスティネーションクライアントの一部またはさらには全部について部分的証明書のみが返され、部分的証明書は証明書全体に比べてかなり小さい（１桁も違うことさえある）ため、証明書サーバ２２０からソースクライアントへの証明書の配信はかなり高速であり、また使用する帯域幅も小さくて済む。
【００５３】
ソースクライアントは、次に、部分的証明書内の暗号化情報を使用して、電子メッセージの暗号化を行う。前述のように、暗号化情報７０１は、図７の部分的証明書７００に表される。例えば、暗号化情報は、電子メッセージを送信されるデスティネーションクライアントに対応する公開鍵とすることができる。
【００５４】
電子メッセージが複数のデスティネーションクライアントに送信されることになっていた場合、デスティネーションクライアント毎に電子メッセージを暗号化することができる。これは、各デスティネーションクライアントの対応する公開鍵を使用して各デスティネーションクライアントの内容を別々に暗号化することにより実現することができる。しかし、デスティネーションクライアントが多かった場合、これはプロセッサの負担が大きなタスクとなり、電子メッセージを発信する際に使用するメモリ量と帯域幅が増えるおそれがある。
【００５５】
プロセッサ、メモリ、および帯域幅の必要条件を低減するために、その代わりに電子メッセージを図６に示されている電子メッセージ６００のように構成することができる。電子メッセージの内容６０１は、セッション鍵６０２を使用して暗号化される。それぞれのデスティネーションクライアントに対して、そのデスティネーションクライアントに対応する公開鍵を使用してセッション鍵６０２を暗号化することによりセッション鍵６０２を知らせる。例えば、電子メッセージ６００を、それぞれ公開鍵１〜４までを持つデスティネーションクライアント２３１〜２３４のそれぞれに送信すると仮定する。この場合、セッション鍵６０２が、公開鍵１〜４で別々に暗号化される。
【００５６】
鍵識別子６１２は、鍵識別子６１２により識別された公開鍵１を使用して暗号化されたセッション鍵６０２と関連付けられる。鍵識別子６１３は、鍵識別子６１３により識別された公開鍵２を使用して暗号化されたセッション鍵６０２と関連付けられる。発行者識別子６１４Ａおよびシリアル番号６１４Ｂの組み合わせは、組み合わせ６１４Ａおよび６１４Ｂに固有の公開鍵３を使用して暗号化されたセッション鍵６０２と関連付けられている。発行者識別子６１５Ａおよびシリアル番号６１５Ｂの組み合わせは、組み合わせ６１５Ａおよび６１５Ｂに固有の公開鍵４を使用して暗号化されたセッション鍵６０２と関連付けられている。メッセージ２１３を受信すると、それぞれのデスティネーションクライアントは鍵識別子または発行者識別子とシリアル番号の組み合わせを使用して、どの暗号化された形式のセッション鍵を暗号解読できるかを判別することができる。その後、デスティネーションクライアントはそのセッション鍵を暗号解読し、そのセッション鍵を使用して内容の暗号解読を行う。
【００５７】
したがって、サイズを減らした証明書を使用してセキュア通信に対応できるため、メモリ、プロセッサ、およびネットワーク帯域幅リソースが節約され、セキュア電子メッセージを送信するのに要する時間も短縮される。
【００５８】
本発明は、その精神または本質的特性から逸脱することなく他の固有の形でも実現することができる。ここで説明した実施形態は、あらゆる点において説明を目的としており制限することを目的としていないものとみなすべきである。したがって、本発明の範囲は上記の説明によってではなく付属の請求項により示される。すべての変更は、請求項の意味とその等価性の範囲内にある限り本発明の範囲内にあるものとする。
【図面の簡単な説明】
【００５９】
【図１】本発明の特徴を実装することができる適当な無線デバイスを示す図である。
【図２】デスティネーションクライアントに送信する電子メッセージを暗号化するため証明書サーバからの情報を使用するソースクライアントを含む本発明の原理が利用される適当なネットワーク環境を示す図である。
【図３】本発明の原理により、ソースクライアントがデスティネーションクライアントのうちの１つまたは複数に送信する電子メッセージを暗号化し、証明書サーバがそれを補助する方法の流れ図である。
【図４】本発明の原理による証明書の要求のデータ構造を示す図である。
【図５】本発明の原理による要求に対する応答のデータ構造を示す図である。
【図６】本発明の原理による証明書（またはその一部）を使用して暗号化された電子メッセージのデータ構造を示す図である。
【図７】本発明の原理による自己有効性確認情報を含まない部分的証明書のデータ構造を示す図である。
【図８】従来技術による自己有効性確認情報を含む証明書全体のデータ構造を示す図である。
【符号の説明】
【００６０】
１、２、３、４  公開鍵
１００  汎用コンピューティングデバイス
１００  無線デバイス
１０１  ユーザーインターフェイス
１０２  出力ユーザーインターフェイス
１０３  入力ユーザーインターフェイス
１０４  スピーカー
１０５  表示装置
１０６  マイク
１０７  ダイヤルコントロール
１０８  ナビゲーションコントロール
１１１  プロセッサ
１１２  メモリ
１１３  オペレーティングシステム
１１４  アプリケーションプログラム
１１５  プログラムモジュール
１１６  プログラムデータ
２００  ネットワーク環境
２１０  コンピューティングシステム
２１０  ソースクライアント
２１１  要求
２１２  応答
２２０  証明書サーバ
２３０  デスティネーションクライアント
２３１、２３２、２３３、２３４  デスティネーションクライアント
３００  方法
４０３  証明書要求
４０４  完全バージョンフィール
４０５  部分的バージョンフィールド
５０１  ヘッダ情報
５０２、８００  証明書
５０４、５０５  要素
６００  電子メッセージ
６０１  電子メッセージの内容
６０２  セッション鍵
６１２、６１３  鍵識別子
６１４Ａ、６１５Ａ  発行者識別子
６１４Ｂ、６１５Ｂ  シリアル番号
７００  部分的証明書
７０１  暗号化情報
８０２  証明書識別情報
８０３  有効性確認情報
【図１】
2004173286.tif 000003
【図２】
2004173286.tif 000004
【図３】
2004173286.tif 000005
【図４】
2004173286.tif 000006
【図５】
2004173286.tif 000007
【図６】
2004173286.tif 000008
【図７】
2004173286.tif 000009
【図８】
2004173286.tif 000010