(57)【特許請求の範囲】
【請求項１】
第１の暗号アルゴリズムを用いる、すべての認証された属性用の署名アルゴリズムのリストおよび署名と、少なくとも１つの代替暗号アルゴリズムを識別し、関連する公開鍵を提供する代替公開鍵エクステンションと、代替暗号アルゴリズムを用いる署名を含めるための代替署名エクステンションとを含む、複数の暗号アルゴリズムをサポートすることができるＸ．５０９証明書を認証するプログラムが記録されたコンピュータ読取り可能な記録媒体であって、該プログラムは、
前記コンピュータが前記証明書を受け取り、前記コンピュータがサポートする認証アルゴリズムが前記証明書の前記認証された属性の署名アルゴリズム用のものか否かを判定するステップと、
前記第１の暗号アルゴリズムを用いる署名が前記コンピュータによりサポートされていないと判定した場合、前記代替署名エクステンション中の代替署名が前記認証アルゴリズムによる署名と合致するか否か判定するステップと、
前記認証アルゴリズムによる署名と合致すると判定した場合、前記代替署名エクステンションを前記証明書の前記属性から除去し、該属性を再符号化し、代替署名の検証を行うステップと
を前記コンピュータに実行させる、記録媒体。
【請求項２】
前記第１の暗号アルゴリズムがＲＳＡであり、前記代替暗号アルゴリズムが楕円曲線である、請求項１に記載の記録媒体。
【請求項３】
第１の暗号アルゴリズムを用いる、すべての認証された属性用の署名アルゴリズムのリストおよび署名と、少なくとも１つの代替暗号アルゴリズムを識別し、関連する公開鍵を提供する代替公開鍵エクステンションと、代替暗号アルゴリズムを用いる署名を含めるための代替署名エクステンションとを含む、複数の暗号アルゴリズムをサポートすることができるＸ．５０９証明書を認証する方法であって、該方法は、
コンピュータが、前記証明書を受け取り、前記コンピュータがサポートする認証アルゴリズムが前記証明書の前記認証された属性の署名アルゴリズム用のものか否かを判定するステップと、
前記コンピュータが、前記第１の暗号アルゴリズムを用いる署名が前記コンピュータによりサポートされていないと判定した場合、前記代替署名エクステンション中の代替署名が前記認証アルゴリズムによる署名と合致するか否か判定するステップと、
前記コンピュータが、前記認証アルゴリズムによる署名と合致すると判定した場合、前記代替署名エクステンションを前記証明書の前記属性から除去し、該属性を再符号化し、代替署名の検証を行うステップと
を含む、方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、Ｘ．５０９証明書で複数の暗号化アルゴリズムの使用を可能にする技術に関するものである。詳細には本発明は、証明書が新たな証明書階層を必要とせず、下位互換性を維持しながら、第２の暗号化アルゴリズムをサポートするように拡張するための技術に関するものである。
【０００２】
【従来の技術】
インターネットなどのネットワークを介して送信されるトランザクションや文書のセキュリティは、本格的な終端間商取引を行う上での大きな問題であった。現存のシステムのセキュリティの欠陥は頻繁に報告され、公衆にトランスペアレントなセキュリティ・システムは実装が難しい。そのため、多くの人々が、インターネット上で業者にクレジットカード番号などを送信することに不安を感じている。
【０００３】
先頃、この問題に対処するために、ＶＩＳＡやＭａｓｔｅｒＣａｒｄを発行している各会社が、インターネット上での電子取引の一環としてクレジットカード番号や情報を安全に送信するための終端間仕様を協同で考案した。ＳＥＴ（Ｓｅｃｕｒｅ  Ｅｌｅｃｔｒｏｎｉｃ  Ｔｒａｎｓａｃｔｉｏｎ）として知られるこの仕様は、１９９７年に初めて導入された（ＳＥＴは、ＳＥＴ  Ｓｅｃｕｒｅ  Ｅｌｅｃｔｒｏｎｉｃ  Ｔｒａｎｓａｃｔｉｏｎ  ＬＬＣの商標である）。
【０００４】
このＳＥＴ仕様は、業者、クレジットカード所有者、クレジットカード発行者などに発行される証明書の概念に基づくものである。証明書は、その「署名」に基づいて検証されそして暗号化される。使用される標準の証明書の形式は、Ｘ．５０９証明書として知られている。
【０００５】
Ｘ．５０９証明書の１つの短所は、１度に１つの暗号化アルゴリズムしかサポートできないことである。また、ある環境ではある暗号化アルゴリズムの性能がよく、別の環境では別の暗号化アルゴリズムの方が性能がよいこともある。最近の世に知れわたった事件によって、いくつかの暗号化アルゴリズムは充分なリソースを投入すれば解読できることが明らかになった。このことは、世間にあまり受け入れられていない。しかし、ほとんどの場合、悪意のある人々には限られたリソースしかないことが実証されており、証明書を解読する労力が、それによって得られるであろう報酬に見合わない場合は暗号の解読を試みる者はいないであろう。この点において、ＳＥＴ証明書は幾分か脆弱である。この証明書は、１つの暗号化アルゴリズムしかのみサポートせず、ほとんどの証明書はただ１つの一般に知られている標準のアルゴリズムのみを使用する。そのため、容易なことではないが、証明書の解読を行おうとする人々は、インターネット上で証明書を傍受し、どのアルゴリズムが使用されているかヒントを得ることが可能である。証明書の解読に必要な多大なリソースを費やすことにより、そのような人々は証明書を首尾よく解読することができる。
【０００６】
したがって、Ｘ．５０９証明書が、追加の暗号アルゴリズムもサポートできるようにすることが必要とされている。
【０００７】
【発明が解決しようとする課題】
本発明の一目的は、Ｘ．５０９証明書において複数の暗号化アルゴリズムを使用する技術を提供することである。
【０００８】
本発明のその他の目的および利点は、その一部は後の記載および図面に述べられ、一部はその記述から明らかとなり、また本発明の実施によって理解されるであろう。
【０００９】
【課題を解決するための手段】
前述の目的を達成するために、本明細書に概略的に述べる本発明の目的に従って、本発明は、第１の暗号化アルゴリズムを用いる、すべての認証された属性用の署名アルゴリズムおよび署名と、少なくとも１つの代替暗号アルゴリズムを識別し、それに関連する公開鍵を提供するための代替公開鍵エクステンションと、代替暗号アルゴリズムに対する署名を含めるための代替署名エクステンションとを含み、複数の暗号アルゴリズムをサポートすることのできるＸ．５０９証明書を提供する。第１の暗号アルゴリズムはＲＳＡであり、代替暗号アルゴリズムは楕円曲線であることが好ましい。また、その証明書は、第１の暗号アルゴリズムに対する署名、または代替署名アルゴリズムに対する署名によって検証することができる。
【００１０】
【発明の実施の形態】
図１は、本発明を実施することのできる代表的なワークステーション・ハードウェア環境を示している。図１の環境は、パーソナル・コンピュータとその関連する周辺装置などの代表的なシングル・ユーザ・コンピュータ・ワークステーション１０を含む。ワークステーション１０は、マイクロプロセッサ１２と、周知の技術に従ってマイクロプロセッサ１２とワークステーション１０の構成要素を接続しその間の通信を可能にするバス１４を含む。通常、ワークステーション１０は、バス１４を介してマイクロプロセッサ１２を、キーボード１８、マウス２０、それにタッチ・スクリーン、デジタル・エントリ・パッドなどどんなユーザ・インターフェース装置でもよいその他のインターフェース装置２２など１つまたは複数のインターフェース装置に接続するユーザ・インターフェース・アダプタ１６を含む。バス１４はまた、ＬＣＤスクリーンまたはモニタなどのディスプレイ装置２４をディスプレイ・アダプタ２６を介してマイクロプロセッサ１２に接続する。バス１４はまた、マイクロプロセッサ１２をメモリ２８とハード・ドライブやテープ・ドライブなどの長期記憶装置３０に接続する。
【００１１】
ワークステーション１０は、通信チャネル３２を介して他のコンピュータまたはコンピュータのネットワークと通信する。ワークステーション１０は、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワークにおいてそうした他のコンピュータと接続されるものでもよく、またクライアント／サーバ環境において他のコンピュータに対するクライアントなどでもよい。これらすべての構成ならびに適切な通信ハードウェア、通信ソフトウェアは当技術分野で周知である。
【００１２】
図２は、本発明を実施することのできるデータ処理ネットワーク４０を示している。データ処理ネットワーク４０は、複数の個別ワークステーション１０をそれぞれ含むＬＡＮ４２とＬＡＮ４４を含めて、複数の個別ネットワークを含んでいる。あるいは別法として、ＬＡＮが、ホスト・プロセッサに結合されている複数のインテリジェント・ワークステーションを含むこともできることを当業者は理解されよう。
【００１３】
さらに図２に関して、データ処理ネットワーク４０は、メインフレーム・コンピュータ４６など、好ましくは通信リンク４８によってＬＡＮ４４に結合されている複数のメインフレーム・コンピュータを含むことができる。メインフレーム・コンピュータ４６は、インターナショナル・ビジネス・マシーンズ・コーポレイション（ＩＢＭ）から市販のエンタープライズ・システム・アーキテクチャ／３７０コンピュータまたはエンタープライズ・システム・アーキテクチャ／３９０コンピュータを使用して実装することができる。アプリケーションによって、ＡＳ／４００としても知られているアプリケーション・システム／４００などのミッドレンジ・コンピュータを使用することもできる。エンタープライズ・システム・アーキテクチャ／３７０はＩＢＭの商標であり、エンタープライズ・システム・アーキテクチャ／３９０、アプリケーション・システム／４００、ＡＳ／４００は、ＩＢＭの登録商標である。
【００１４】
メインフレーム・コンピュータ４６はまた、ＬＡＮ４４のリモート記憶装置として機能する記憶装置５０に結合することができる。同様に、ＬＡＮ４４は、サブシステム・コントロール・ユニット／通信コントローラ５４を介して通信リンク５２に、また通信リンク５６を介してゲートウェイ・サーバ５８に結合することができる。ゲートウェイ・サーバ５８は、ＬＡＮ４２とＬＡＮ４４をリンクする機能を持つ個別のコンピュータまたはインテリジェント・ワークステーションであることが好ましい。
【００１５】
メインフレーム・コンピュータ４６はＬＡＮ４４から地理的に非常に遠い位置にあってもよく、同様にＬＡＮ４４はＬＡＮ４２から相当遠い位置にあってもよいことを当業者は理解されよう。例えば、ＬＡＮ４２はカリフォルニアに、ＬＡＮ４４はテキサスに、メインフレーム・コンピュータ４６はニューヨークにあってもよい。
【００１６】
本発明を実施するソフトウェア・プログラミング・コードは、通常、ワークステーション１０の永続記憶装置３０など、ある種の永続記憶装置に記憶される。クライアント／サーバ環境においては、このようなソフトウェア・プログラミング・コードは、サーバに関連する記憶装置に記憶される。このソフトウェア・プログラミング・コードは、ディスク、ハード・ドライブ、ＣＤ−ＲＯＭなど、データ処理システムに使用される既知の様々な媒体のいずれで実施してもよい。このコードは、そのような媒体上で配布することもでき、またあるコンピュータ・システムのメモリまたは記憶装置から何らかのタイプのネットワークを介して他のコンピュータ・システムにそのシステムのユーザが使用するために配布することもできる。ソフトウェア・プログラミング・コードを物理媒体上で実施する、またはネットワークを通してソフトウェア・コードを配布する、あるいはその両方を行う技術と方法は広く知られているので、ここにおいてさらに詳しく述べることはしない。
【００１７】
次に、本発明の好ましい実施形態を図３と図４を参照して論じる。
【００１８】
Ｘ．５０９証明書のアーキテクチャと機能はよく知られているので、ここでさらに詳しく述べることはしない。基本的に、現行のＳＥＴ仕様は、ＲＳＡ公開鍵暗号をＸ．５０９証明書の暗号化技術として使用し、ＲＳＡ公開鍵暗号はＳＥＴ仕様で使用されるように定義されている。そして、標準Ｘ．５０９は証明書において証明される１つの公開鍵のみを持つことをサポートしている。同様に、証明書の発行者は１種類の鍵による署名しか行うことができない。この状況では、１つのアルゴリズムしかサポートできない。第２のアルゴリズムのサポートが望まれる場合は、証明書の異なる階層が必要となる。第２の階層を維持するのは、非常に経費のかかることになる。
【００１９】
さらに、現行のＸ．５０９の公開鍵と署名要素が単一項目形式から複数項目形式に変更される場合、新たな証明書は旧来の証明書との互換性がなくなることになる。
【００２０】
Ｘ．５０９証明書のすべてのエクステンションは、「署名されるデータ」と呼ばれるＸ．５０９証明書の一部に含まれる。「署名されるデータ」部分の要素は暗号化されないため、検証のため取得することができ、署名による変更から保護されている。
【００２１】
図３には、本発明に従って拡張されたＸ．５０９証明書の概略７０が示されている。本発明は、２つの新たなＸ．５０９エクステンション７２と７４を提供する。第１のエクステンション７２は代替のアルゴリズムをリストし、そのアルゴリズムに対して関連する公開鍵が認証される。第２のエクステンション７４は、認証機関によってサポートされるアルゴリズムに対する代替署名をリストする。署名されたＸ．５０９証明書における第１のまたは既存の署名を認証する際には、すべてのエクステンションを含めて未署名の証明書全体に署名が行われる。代替署名の署名を認証する際には、署名のリストを含んでいるエクステンションを除き、その署名は署名されていない証明書に対して認証される。これにより、重要な情報はいずれかの署名で認証できるようになり、単一のアルゴリズムによる証明書のみを理解するエンティティとの下位互換性が与えられる（第１の署名が、サポートされているアルゴリズムによるものである場合に限り）。
【００２２】
好ましくは、代替署名エクステンションは、項目のリストであり、その各項目は署名項目アルゴリズム（鍵の種類を含む）と署名を含む。証明されるエンティティの公開鍵は、その鍵のアルゴリズムの種類とその鍵を含む各項目のリストに含まれる。
【００２３】
証明書に署名するに際し、認証機関は代替アルゴリズムによる署名から始める。まず認証機関は、所望される認証機関のすべての代替署名秘密鍵を使用し代替署名エクステンションを用いずに未署名の証明書に署名する。
【００２４】
対応する認証機関の代替署名公開鍵はそれぞれ、その認証機関の発行する証明書の代替署名エクステンション中に存在しなければならない。各署名は代替署名エクステンションに追加される。最後に、署名されていない証明書全体（代替署名エクステンションを含む）が、その認証機関のＸ．５０９証明書の既存の署名部分に含まれる公開鍵に対応する、認証機関の秘密鍵を使用して、署名される。こうして、いかなる「古い」エンティティも証明書階層における以前の公開鍵暗号アルゴリズムを修正なしに使用できることになる。
【００２５】
この技術を用いて、ＲＳＡ暗号など１つのアルゴリズムしかサポートしない第１のエンティティが、ＲＳＡとエクステンション内の楕円曲線など第２のアルゴリズムの両方をサポートする第２のエンティティからのメッセージ（証明書を含む）を認証することができる。（第２のエンティティの証明書に署名した認証機関もまた両方のアルゴリズムをサポートする。）第１のエンティティは、第２のエンティティからの証明書を検討する際に、その証明書が、第１のエンティティが信認する認証機関によって署名されたＲＳＡ公開鍵を含んでいることを見出すことになる。第１のエンティティはまた、第１のエンティティが理解できないエクステンションが存在するが、そのエクステンションはクリティカルでないと見なされ、特に影響を与えることなく無視できることに気付く。
【００２６】
楕円曲線のみをサポートする第３のエンティティも、前記の第２のエンティティからのメッセージを認証することができる。第３のエンティティは第２のエンティティからの証明書を検討し、第１のアルゴリズムがＲＳＡであり、その証明書がＲＳＡによって署名されていることを理解する。第３のエンティティはエクステンションを検討し、その証明書が楕円曲線公開鍵と、楕円曲線代替署名を持つエクステンションをも有すると判定する。第３のエンティティが代替署名を認証し、かつ認証機関を信認する場合、第３のエンティティはこの証明書における楕円曲線鍵を正当であるとして信認する。
【００２７】
エクステンションはクリティカルでないとマークされているため、複数アルゴリズムをサポートしないエンティティは、元の公開鍵アルゴリズムの下で、このエクステンションの存在を認識する必要なく、またこのエクステンションのために変更される必要なく、機能し続けることができる。また、あるプロトコルまたは実装のために新たな基本（ルート）証明書が発行される際、基本証明書はエクステンションを追加することができ、その基本信認機構（鍵または証明書ハッシュによる）は変更しなくてもよい。例えば、将来のＳＥＴルートは、これらのエクステンションを追加することにより楕円曲線のサポートを追加することができ、ＳｕｂｊｅｃｔＰｕｂｌｉｃＫｅｙＩｎｆｏハッシュ認証もルートの水平連鎖も以前とまったく同じに行われる。
【００２８】
図４は、本発明に従って拡張されたＸ．５０９証明書の認証に関連するロジックを示す流れ図である。まず最初に、受け取りエンティティが証明書を受け取る（ステップ１００）。次に、その受け取りエンティティの認証アルゴリズムが、外部アルゴリズム、例えば認証された属性の署名アルゴリズム用のものかどうかが判定される（ステップ１０２）。そうであると判定された場合、エクステンション・アルゴリズムの処理を行う必要はない。次いで、既存の単一アルゴリズム技術に従って証明書の検証と認証が行われる（ステップ１０２）。
【００２９】
ステップ１０２において、第１の署名が受け取りエンティティによってサポートされていないと判定された場合、エクステンション中の代替署名が合致するかどうかチェックされる（ステップ１０６）。合致しない場合には、証明書を検証することができないため、処理は終了する。合致する場合には、処理はステップ１０８へ進み、そこで代替署名エクステンションが属性から除去される。次いで属性が既知の技術に従って再度符号化され、ハッシュ化される。次いで既知の技術に従って代替署名の検証が行われる。そして処理は終了する。
【００３０】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００３１】
（１）複数の暗号アルゴリズムをサポートすることのできるＸ．５０９証明書であって、
第１の暗号アルゴリズムを用いる、すべての認証された属性用の署名アルゴリズムおよび署名と、
少なくとも１つの代替暗号アルゴリズムを識別し、関連する公開鍵を提供する代替公開鍵エクステンションと、
代替暗号アルゴリズムに対する署名を含めるための代替署名エクステンションと
を含むＸ．５０９証明書。
（２）前記第１の暗号アルゴリズムがＲＳＡであり、前記代替暗号アルゴリズムが楕円曲線である、上記（１）に記載のＸ．５０９証明書。
（３）前記第１の暗号アルゴリズムに対する前記署名、または前記代替署名アルゴリズムに対する前記署名のいずれかによって前記証明書が検証できる、上記（１）に記載のＸ．５０９証明書。
【図面の簡単な説明】
【図１】本発明を実施する際に使用できるデータ処理システムの絵画図である。
【図２】本発明を実施することのできるネットワーク・コンピューティング環境の図である。
【図３】本発明によるエクステンションを持つ証明書を示す図である。
【図４】代替署名エクステンションを持つ証明書の検証に関する論理ステップを示す流れ図である。
【符号の説明】
１２  プロセッサ
１６  ユーザ・インターフェース・アダプタ
１８  キーボード
２０  マウス
２２  インターフェース装置
２４  ディスプレイ装置
２６  ディスプレイ・アダプタ
２８  メモリ
３０  記憶装置
【図１】
0003579882.tif 000002
【図２】
0003579882.tif 000003
【図３】
0003579882.tif 000004
【図４】
0003579882.tif 000005