(57)【特許請求の範囲】
【請求項１】
公開鍵暗号方式を用いてデータを暗号化または電子署名し、送信先として指定された情報処理機器へ暗号化または電子署名されたデータを送信するデータ処理装置であって、
前記情報処理機器の各々への公開鍵の送付記録を記憶する手段と、
前記送付記録において前記指定された情報処理装置の少なくとも１つへ前記公開鍵が未送付である場合、前記暗号化または電子署名されたデータに前記公開鍵を添付して前記送信先として指定された情報処理機器へ送信する手段と、
を備えることを特徴とするデータ処理装置。
【請求項２】
請求項１に記載のデータ処理装置であって、
前記指定された情報処理装置のすべてへ前記公開鍵が送付済みである場合に、前記暗号化または電子署名されたデータに前記公開鍵を添付せずに送信することを特徴とするデータ処理装置。
【請求項３】
公開鍵暗号方式を用いてデータを暗号化または電子署名し、情報処理機器へ暗号化または電子署名されたデータを送信するデータ処理装置であって、
前記情報処理機器の各々への公開鍵の送付記録を記憶する手段と、
前記送付記録に基づいて、データの送信先として指定された前記情報処理機器のうち前記公開鍵が未送付の情報処理機器のみに、前記公開鍵が添付された前記暗号化または電子署名されたデータを送信する手段と、
を備えることを特徴とするデータ処理装置。
【請求項４】
請求項１から３のいずれか１に記載のデータ処理装置において、
前記公開鍵が更新された場合に、前記送付記録のすべてを未送付とするリセット手段を含むことを特徴とするデータ処理装置。
【請求項５】
公開鍵暗号方式を用いてデータを暗号化または電子署名し、送信先として指定された情報処理機器へ暗号化または電子署名されたデータを送信するデータ処理装置であって、
前記送信先として指定された情報処理機器が、前記送信先として指定された情報処理機器が局所的に公開鍵を記憶しているか、又は、前記公開鍵を記憶した公開鍵サーバにアクセス可能であるかを調査する手段を含み、
前記調査によって前記送信先として指定された情報処理機器の少なくとも１つが前記公開鍵を取得不可能である場合に、前記暗号化または電子署名されたデータに前記公開鍵を添付して送信することを特徴とするデータ処理装置。
【請求項６】
公開鍵暗号方式を用いてデータを暗号化または電子署名し、情報処理機器へ暗号化または電子署名されたデータを送信するデータ処理装置であって、
データの送信先として指定された情報処理機器が、前記送信先として指定された情報処理機器が局所的に公開鍵を記憶しているか、又は、前記公開鍵を記憶した公開鍵サーバにアクセス可能であるかを調査する手段と、
前記公開鍵の取得可能性の調査に基づき、前記送信先として指定された情報処理機器のうち前記公開鍵を取得不可能な情報処理機器のみに、前記公開鍵が添付された前記暗号化または電子署名されたデータを送信することを特徴とするデータ処理装置。
【請求項７】
公開鍵暗号方式を用いてデータを暗号化または電子署名し、送信先として指定された情報処理機器へ当該データを送信するデータ処理プログラムであって、
前記情報処理機器の各々への公開鍵の送付記録を記憶手段に記憶する工程と、
前記記憶手段に記憶されている前記送付記録にアクセスし、前記送付記録において前記指定された情報処理装置の少なくとも１つへ前記公開鍵が未送付である場合、前記暗号化または電子署名されたデータに前記公開鍵を添付して前記送信先として指定された前記情報処理機器へ送信する工程と、
をコンピュータに実行させることを特徴とするデータ処理プログラム。
【請求項８】
請求項７に記載のデータ処理プログラムであって、
前記記憶手段に記憶されている前記送付記録にアクセスし、前記指定された情報処理機器のすべてへ前記公開鍵が送付済みである場合に、前記暗号化または電子署名されたデータに前記公開鍵を添付せずに送信することを特徴とするデータ処理プログラム。
【請求項９】
公開鍵暗号方式を用いてデータを暗号化または電子署名し、情報処理機器へ暗号化または電子署名されたデータを送信するデータ処理プログラムであって、
前記情報処理機器の各々への公開鍵の送付記録を記憶手段に記憶する工程と、
前記記憶手段に記憶されている前記送付記録にアクセスし、前記送付記録に基づいて、データの送信先として指定された前記情報処理機器のうち前記公開鍵が未送付の情報処理機器のみに、前記公開鍵が添付された前記暗号化または電子署名されたデータを送信する工程と、
をコンピュータに実行させることを特徴とするデータ処理プログラム。
【請求項１０】
請求項７から９のいずれか１つに記載のデータ処理プログラムにおいて、
前記公開鍵が更新された場合に、前記記憶手段に記憶された前記送付記録のすべてを未送付とするリセット工程をコンピュータに実行させることを特徴とするデータ処理プログラム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、公開鍵暗号方式を用いて暗号化または電子署名されたデータの送受信を行うデータ処理装置、データ処理方法およびデータ処理プログラムに関する。
【０００２】
【従来の技術】
近年、インターネットの普及に伴い、電子メール等の電子データの通信が普及してきている。特に、電子メールは、パーソナルコンピュータのみならず、近年では携帯電話でも利用可能となっている。また、公衆回線の代わりにインターネット上で画像データの交換を行うインターネットファクシミリ等も既に実用化されている。
【０００３】
このようなデータ交換においては、インターネット上をファイヤーウォールを超えて情報の交換が可能であるという利点を有するが、一方では、データは送信経路上のメールサーバに順次蓄積・転送されるために、データが第三者に盗聴されたり、改ざん、あるいは、送信元になりすましされるといったセキュリティ上の問題を含んでいる。
【０００４】
従来、このようなセキュリティ上の問題には、あまり注意が払われていなかったが、機密情報を交換する場合や、インターネットファクシミリのオフランプゲートウェイ機能のように中継装置に通信料金が発生するサービス等を利用する場合などは、軽視できない問題となっていた。
【０００５】
上記、データ通信のセキュリティ上の問題を解決する方法として、公開鍵暗号技術、共通鍵暗号技術やメッセージダイジェスト技術を適用し、データに対して暗号化および電子署名する方法が知られている。これらを用いることにより、データの暗号化、改ざん検知、および、送信元の認証（なりすまし防止）が可能となる。
【０００６】
暗号化データを実現する技術として、例えば、S/MIME(Secure/Multipurpose Internet Mail Extentions)がある。S/MIMEの技術内容は標準化組織であるIETF(Internet Engineering Task Force)が発行するRFC（Request For Comment）2630〜2633に規定されている。S/MIMEは、例えば、米国マイクロソフト社のアウトルックエクスプレスや米国ネットスケープコミュニケーションズ社のネットスケープメッセンジャーなどの有名なメールアプリケーションに標準で実装されているため、暗号化データの事実上の業界標準として使用されてきている。
【０００７】
また、S/MIMEの他にも、暗号化データを実現する技術として、例えばPGP/MIME(Pretty Good Privacy/Mulitpurpose Internet Mail Extentions)があり、その技術内容がIETFが発行するRFC1991とRFC2015に規定されている。
【０００８】
データの暗号化に用いられる公開鍵暗号技術では、通信相手に公開すべき公開鍵と本人のみが知る秘密鍵の２つの鍵が必要となる。データの暗号化と電子署名では、公開鍵と秘密鍵の利用方法が異なるので以下に簡単に説明する。
【０００９】
データの暗号化処理では、まず送信先となる相手の公開鍵を取得し、データの内容（以下、コンテントという）を暗号化する。まず、共通暗号方式のコンテント暗号鍵を乱数により生成する。次に、そのコンテント暗号化鍵を使ってデータの内容を暗号化すると共に、コンテント暗号化鍵を送信先の公開鍵で暗号化し、暗号化されたコンテントと一緒に暗号化されたコンテント暗号化鍵を送信先に送信する。送信先では、受信したデータに含まれる暗号化されたコンテント暗号化鍵を自分の秘密鍵で復号し、復号されたコンテント暗号化鍵を使って暗号化されたコンテントを復号する。
【００１０】
このようにデータの暗号化では、送信元は予め取得しておいた送信先の公開鍵を用いてデータの暗号化を行う必要がある。すなわち、自分宛てのデータを暗号化させるためには、送信元となる通信相手に自分の公開鍵を知らせる必要がある。
【００１１】
一方、データの電子署名処理では、まずデータのコンテントをハッシュ関数等を用いてダイジェスト値に変換する。次に、そのダイジェスト値を自分の秘密鍵を使って暗号し、署名値とする。署名値はデータのコンテントと一緒に送信先に送信される。送信先では、受信したデータのコンテントのダイジェスト値を計算すると共に、添付された署名値を送信元の公開鍵を使って復号して復号ダイジェスト値を取得する。２つのダイジェスト値を比較し、それらが互いに一致すれば、コンテントが途中で改ざんされていないことを確認することができる。
【００１２】
このようにデータの電子署名処理では、送信先となる通信相手は送信元となる自分の公開鍵を用いて署名値を復号する必要がある。すなわち、送信先において電子署名されたデータの電子署名を検証させるためには、送信元は自分の公開鍵を送信先に知らせる必要がある。
【００１３】
以上のように、公開鍵暗号技術を用いてデータに対して暗号化または電子署名してデータ交換を行うためには、互いに通信相手の公開鍵を取得できるように公開することが必要となる。公開鍵を通信相手に公開する主な方法としては、以下の２つを挙げることができる。
【００１４】
まず１つは、暗号化データを送信先に送信する場合に、送信元の公開鍵をデータに添付し、送信先では受信したデータに添付されている送信元の公開鍵を記憶保存しておく方法である。例えば、S/MIMEを実装している前述のメールアプリケーションでは、電子署名メールに公開鍵証明書を添付して相手に送信し、受信した電子署名メールに添付されている公開鍵証明書をメールアプリケーションの公開鍵証明書レポジトリに記憶保存することができる。
【００１５】
もう１つは、自分の公開鍵をLDAP(Lightweight Directory Access Protocol)サーバなどの公開鍵サーバに登録し通信相手に公開する方法である。この方法では、通信相手の公開鍵をローカルに記憶保存しておく必要がないが、すべての通信相手が公開鍵を登録した公開鍵サーバにアクセスできなければならない。そのため通常は、上記の公開鍵をデータに添付して送信する方法と併用されることが多い。
【特許文献１】
特開２００２−１１８５４６号公報
【００１６】
【発明が解決しようとする課題】
しかしながら、上記従来技術においては、以下の問題があった。
【００１７】
（１）公開鍵をデータに添付して送信する方法を用いた場合、公開鍵をデータに添付するか否かを送信先毎に設定することができなかった。そのため、公開鍵を添付送信しない設定とした場合には、データの送信先の中に送信元の公開鍵をまだ送付していない送信先が存在すると、その送信先は送信元の公開鍵を取得できない。また、公開鍵を添付送信する設定とした場合には、既に送信元の公開鍵を送付済みである送信先にも公開鍵を添付したデータが送信されてしまう。例えば、S/MIMEの場合、添付する公開鍵としては、公開鍵証明書パスを構成するルート認証局から送信元までの公開鍵証明書がすべてが添付されるので、そのデータのサイズは約３Ｋバイト程度増加してしまう。また、送信先が既に公開鍵を取得している場合には、受信したデータに添付されている不要な公開鍵に関するデータを読み捨てるための処理を行う必要を生じていた。さらに、受信したデータをメールボックスに保管する際に、不要な公開鍵が添付されたデータをそのままメールボックスに蓄積していたので、不要な送信元の公開鍵が添付されたデータ数Ｘ添付公開鍵データサイズ分の蓄積容量が無駄となっていた。特に、携帯電話のように記憶容量が限られている場合に大きな問題となっていた。
【００１８】
（２）暗号用の公開鍵と電子署名用の公開鍵を送信元が有する等、送信元が複数の公開鍵を有する場合、公開鍵を別々のデータに添付して送信していたので、処理が煩雑となり、通信負荷が大きくなってしまう問題があった。
【００１９】
（３）公開鍵を公開鍵サーバから取得する方法を用いた場合でも、公開鍵サーバにアクセスできない一部の送信先には、公開鍵をデータに添付して送信しなければならないが、送信先の公開鍵サーバへのアクセス可否を判断して、アクセス不可能な送信先のみに公開鍵を添付して送信することができなかった。従って、結局のところ、公開鍵サーバへアクセス可能な送信先へも送信元の公開鍵を添付してデータを送信せざるを得なかった。
【００２０】
本発明は、上記従来の問題を鑑みて、データ交換の処理の負担を軽減し、記憶容量の無駄な消費を回避することができるデータ処理装置、データ処理方法およびデータ処理プログラムを提供することを目的とする。
【００２１】
【課題を解決するための手段】
上記課題を解決するための本発明は、公開鍵暗号方式を用いてデータを暗号化または電子署名し、送信先として指定された情報処理機器へ暗号化または電子署名されたデータを送信するデータ処理装置であって、前記情報処理機器の各々への公開鍵の送付記録を記憶する手段と、前記送付記録において前記指定された情報処理装置の少なくとも１つへ前記公開鍵が未送付である場合、前記暗号化または電子署名されたデータに前記公開鍵を添付して前記送信先として指定された情報処理機器へ送信する手段とを備えることを特徴とする。
【００２２】
また、前記指定された情報処理装置のすべてへ前記公開鍵が送付済みである場合に、前記暗号化または電子署名されたデータに前記公開鍵を添付せずに送信することも好適である。
【００２３】
また、本発明は、公開鍵暗号方式を用いてデータを暗号化または電子署名し、情報処理機器へ暗号化または電子署名されたデータを送信するデータ処理装置であって、前記情報処理機器の各々への公開鍵の送付記録を記憶する手段と、前記送付記録に基づいて、データの送信先として指定された前記情報処理機器のうち前記公開鍵が未送付の情報処理機器のみに、前記公開鍵が添付された前記暗号化または電子署名されたデータを送信する手段と、を備えることを特徴とする。
【００２４】
さらに、上記データ処理装置は、前記公開鍵が更新された場合に、前記送付記録のすべてを未送付とするリセット手段を含むことが好適である。
【００２６】
また、本発明は、公開鍵暗号方式を用いてデータを暗号化または電子署名し、送信先として指定された情報処理機器へ暗号化または電子署名されたデータを送信するデータ処理装置であって、前記送信先として指定された情報処理機器が、前記送信先として指定された情報処理機器が局所的に公開鍵を記憶しているか、又は、前記公開鍵を記憶した公開鍵サーバにアクセス可能であるかを調査する手段を含み、前記調査によって前記送信先として指定された情報処理機器の少なくとも１つが前記公開鍵を取得不可能である場合に、前記暗号化または電子署名されたデータに前記公開鍵を添付して送信することを特徴とする。
【００２７】
また、本発明は、公開鍵暗号方式を用いてデータを暗号化または電子署名し、情報処理機器へ暗号化または電子署名されたデータを送信するデータ処理装置であって、データの送信先として指定された情報処理機器が、前記送信先として指定された情報処理機器が局所的に公開鍵を記憶しているか、又は、前記公開鍵を記憶した公開鍵サーバにアクセス可能であるかを調査する手段と、前記公開鍵の取得可能性の調査に基づき、前記送信先として指定された情報処理機器のうち前記公開鍵を取得不可能な情報処理機器のみに、前記公開鍵が添付された前記暗号化または電子署名されたデータを送信することを特徴とする。
【００３７】
また、本発明は、公開鍵暗号方式を用いてデータを暗号化または電子署名し、送信先として指定された情報処理機器へ当該データを送信するデータ処理プログラムであって、前記情報処理機器の各々への公開鍵の送付記録を記憶手段に記憶する工程と、前記記憶手段に記憶されている前記送付記録にアクセスし、前記送付記録において前記指定された情報処理装置の少なくとも１つへ前記公開鍵が未送付である場合、前記暗号化または電子署名されたデータに前記公開鍵を添付して前記送信先として指定された前記情報処理機器へ送信する工程と、をコンピュータに実行させることを特徴とする。
【００３８】
また、前記記憶手段に記憶されている前記送付記録にアクセスし、前記指定された情報処理機器のすべてへ前記公開鍵が送付済みである場合に、前記暗号化または電子署名されたデータに前記公開鍵を添付せずに送信することが好適である。
【００３９】
また、本発明は、公開鍵暗号方式を用いてデータを暗号化または電子署名し、情報処理機器へ暗号化または電子署名されたデータを送信するデータ処理プログラムであって、前記情報処理機器の各々への公開鍵の送付記録を記憶手段に記憶する工程と、前記記憶手段に記憶されている前記送付記録にアクセスし、前記送付記録に基づいて、データの送信先として指定された前記情報処理機器のうち前記公開鍵が未送付の情報処理機器のみに、前記公開鍵が添付された前記暗号化または電子署名されたデータを送信する工程と、をコンピュータに実行させることを特徴とする。
【００４０】
さらに、本発明における上記データ処理プログラムは、前記公開鍵が更新された場合に、前記記憶手段に記憶された前記送付記録のすべてを未送付とするリセット工程をコンピュータに実行させることが好適である。
【００４２】
また、本発明は、公開鍵暗号方式を用いてデータを暗号化または電子署名し、送信先として指定された情報処理機器へ暗号化または電子署名されたデータを送信するデータ処理プログラムであって、インターフェースを介して前記送信先として指定された情報処理機器に能力情報問合わせのデータを送信し、前記能力情報問合わせのデータへの応答として前記送信先として指定された情報処理機器が返信してきた、前記送信先として指定された情報処理機器が局所的に公開鍵を記憶しているか、又は、前記公開鍵を記憶した公開鍵サーバにアクセス可能であるかを示す能力情報を受信する工程と、前記能力情報において前記送信先として指定された情報処理機器の少なくとも１つが前記公開鍵を取得不可能である場合に、前記暗号化または電子署名されたデータに前記公開鍵を添付して送信する工程と、をコンピュータに実行させることを特徴とする。
【００４３】
また、本発明は、公開鍵暗号方式を用いてデータを暗号化または電子署名し、情報処理機器へ当該データを送信するデータ処理プログラムであって、インターフェースを介して前記送信先として指定された情報処理機器に能力情報問合わせのデータを送信し、前記能力情報問合わせのデータへの応答としてデータの送信先として指定された情報処理機器が返信してきた、前記送信先として指定された情報処理機器が局所的に公開鍵を記憶しているか、又は、前記公開鍵を記憶した公開鍵サーバにアクセス可能であるかを示す能力情報を受信する工程と、前記能力情報における前記公開鍵の取得可能性に基づき、前記送信先として指定された情報処理機器のうち前記公開鍵を取得不可能な情報処理機器のみに、前記公開鍵が添付された前記暗号化または電子署名されたデータを送信する工程と、をコンピュータに実行させることを特徴とする。
【００４５】
【発明の実施の形態】
＜第１の実施の形態＞
以下、本発明の第１の実施の形態について、図面を参照して詳細に説明する。
【００４６】
データ処理装置１００は、図１のように、データ送信指示部１０１、公開鍵送付判定部１０２、フラグリセット部１０３、アドレス帳１０４、公開鍵添付部１０５、鍵ペア登録部１０６、スキャナ部１０７、暗号署名部１０８、データ送信部１０９およびインターフェース部１１０から基本的に構成される。
【００４７】
データ処理装置１００は、ネットワーク１２０に接続される。データ処理装置１００がSMTPで送信したデータは、ネットワーク１２０上のメールサーバ（図示せず）を経由して、送信先に配信される。
【００４８】
また、ネットワーク１２０には、公開鍵サーバ１２１が接続されている。公開鍵サーバ１２１は、データを暗号化して送信する場合に必要となる送信先の公開鍵を記憶保持している。送信元のデータ処理装置１００は、公開鍵サーバ１２１から送信先の公開鍵を取得し、データを暗号化することができる。また、送信先の公開鍵を公開鍵サーバ１２１から取得せず、送信先から受信したデータに添付された公開鍵をデータ処理装置１００に記憶、蓄積しておき、データを暗号化する際に参照することも可能である。
【００４９】
本実施の形態では、説明を簡単にするため、データの暗号化に必要となる送信先の公開鍵は公開鍵サーバ１２１から取得するものとする。
【００５０】
データ送信指示部１０１は、ユーザがデータ送信の指示を入力するための入力部である。ユーザは、アドレス帳１０４に登録しておいた送信先のリストから所望の送信先を指定しデータの送信を指示する。この時、送信するデータに対して暗号化または／および電子署名を行うか否かの指示も行う。データ送信の指示信号は、スキャナ部１０７に出力される。また、データの送信先は公開鍵送付判定部１０２へ出力される。
【００５１】
公開鍵送付判定部１０２は、データの送信先の情報を受けて、それらの送信先の各々について、データ処理装置１００の公開鍵を既に送付済みであるかを判定する。公開鍵送付判定部１０２は、公開鍵の送付済フラグを有し、その送信フラグにデータの送信先毎に公開鍵が送信済みか否かの情報を記憶する。データの送信先の情報を受けると、その全送信先に対して送付済フラグが参照され、既にすべての送付先へ公開鍵が送付されている場合には、送付済みを示す信号を公開鍵添付部１０５へ出力する。まだ少なくとも１つの送付先へ公開鍵が送付されていない場合には、未送付を示す信号が公開鍵添付部１０５へ出力される。
【００５２】
フラグリセット部１０３は、鍵ペア登録部１０６に鍵ペアが新規登録または更新登録された場合に、公開鍵送付判定部１０２が記憶する送信先毎の公開鍵送付済フラグの情報をすべてリセットする。ここで、鍵ペアとは、データ処理装置１００の秘密鍵とそれに対応する公開鍵とのペアをいう。
【００５３】
アドレス帳１０４は、データの送信先をデータ送信指示部１０１で選択指示するための送信先情報を記憶保持する。送信先情報はユーザが予め登録しておくことができる。
【００５４】
公開鍵添付部１０５は、データ処理装置１００の公開鍵をデータに添付するか否かを制御する。公開鍵送付判定部１０２において、データ送信指示部１０１で送信指示された送信先すべてに公開鍵を送付済みであると判定された場合には、暗号署名部から受けた送信データにデータ処理装置１００の公開鍵を添付せず、また、データ送信指示部１０１で送信指示された送信先の中に公開鍵を未送付の送信先が含まれると判定された場合には、送信データに鍵ペア登録部１０６に格納されたデータ処理装置１００の公開鍵を添付する。例えば、暗号処理用の公開鍵と電子署名用の公開鍵が異なるなど、データ処理装置１００の公開鍵が複数ある場合には、複数の公開鍵を一緒に添付する。処理された送信データは、データ送信部１０９へ出力される。
【００５５】
鍵ペア登録部１０６は、内部に記憶装置を有し、データ処理装置１００の鍵ペア（公開鍵と秘密鍵）を格納・登録する。鍵ペアはユーザによって、予め、データ処理装置１００内で生成して格納するか、または、外部で生成した鍵ペアをデータ処理装置１００に格納することができる。
【００５６】
スキャナ部１０７は、データ送信指示部１０１からの指示信号を受けて、セットされた原稿の画像読み取りを行い、その画像データを暗号署名部１０８へ出力する。
【００５７】
暗号署名部１０８は、データ送信指示部１０１からの指示信号を受けて、送信するデータに対して暗号化または／および電子署名の処理を行う。暗号化処理を行う場合に必要となる送信先の公開鍵は、公開鍵サーバ１２１から取得し、電子署名処理を行う場合に必要となるデータ処理装置１００の秘密鍵は鍵ペア登録部１０６から取得する。処理された送信データは、公開鍵添付部１０５へ出力される。
【００５８】
データ送信部１０９は、公開鍵添付部１０５から受けた送信データをインターフェース部１１０からネットワーク１２０へ送信する。送信には、例えば、SMTP(Simple Mail Transfer Protocol)方式を用いることができる。SMTPの技術内容については、IETFのRFC2821に記述されている。
【００５９】
インターフェース部１１０は、ネットワーク１２０と接続するネットワークインターフェースである。
【００６０】
次に、データ送信の処理を、図２を参照して、詳細に説明する。
【００６１】
ユーザがデータ送信指示部１０１からデータの送信を指示すると、処理が開始され、直ちにステップＳ１００へ処理が移行される。
【００６２】
ステップＳ１００では、スキャナ部１０７において、セットされた原稿の画像が読み取られ、暗号署名部１０８へ送信データとして出力される。
【００６３】
ステップＳ１０１では、暗号署名部１０８において、データ送信指示部１０１で送信指示された際にデータの暗号化または電子署名が指示されているか否かが判定される。暗号化または電子署名のいずれかが指示されていた場合には、ステップＳ１０２に処理を移行する。暗号化および電子署名のいずれもが指示されていなかった場合は、ステップＳ１０３へ処理を移行する。
【００６４】
ステップＳ１０２では、暗号署名部１０８において、送信データの暗号化または／および電子署名が行われる。処理された送信データは、公開鍵添付部１０５へ出力される。
【００６５】
ステップＳ１０３では、公開鍵送付判定部１０２において、データ送信指示部１０１で指示された送信先の各々について、データ処理装置１００の公開鍵を既に送付済みであるかを判定する。判定結果は、公開鍵添付部１０５へ出力される。
【００６６】
ステップＳ１０４では、公開鍵添付部１０５において、ステップＳ１０３で判定した判定結果から、データ送信指示部１０１で指定した送信先すべてに公開鍵を送付済みであれば、ステップＳ１０５に処理を移行する。送信先すべてに公開鍵を送付済みでなければ、ステップＳ１０６に処理を移行する。
【００６７】
ステップＳ１０５では、公開鍵添付部１０５において、データ処理装置１００の公開鍵を送信データに添付する。このとき、公開鍵送付判定部１０２に記憶保持された各送信先の公開鍵の送付済フラグをセットする。また、公開鍵を添付したデータの送信がエラーとなった場合、エラー報告メールが受信されるので、その場合は、送付済フラグをリセットする。処理された送信データは、データ送信部１０９へ出力される。
【００６８】
本実施の形態におけるデータ処理装置１００では、データ処理装置１００の公開鍵を暗号化または電子署名された送信データのみならず、暗号化または電子署名されていない送信データにも添付可能としているが、これに限定されるわけでない。例えば、S/MIMEを使う場合には公開鍵は電子署名された送信データに添付されるので、送信データが電子署名された場合にのみ公開鍵を添付するようにしても良い。
【００６９】
ステップＳ１０６では、データ送信部１０９において、インターフェース部１１０を介してデータが送信される。
【００７０】
以上のように、本発明の第１の実施の形態によれば、送信先毎にデータ処理装置１００の公開鍵を送付済みであるか否かをフラグ情報として記憶しておき、データを送信する場合に、公開鍵を添付することが必要であるか否かを判断することができる。すべての送信先に公開鍵を送付済みの場合には、送信するデータに送信元の公開鍵を添付しないので、不要に公開鍵を添付して送付することなく、送信先に不要な処理や記憶資源の消費をさせてしまう問題を有効的に防止することができる。また、データ処理装置１００の公開鍵が更新された場合には、公開鍵の送付済フラグをすべてリセットするため、データ処理装置１００の公開鍵が新たに更新された場合にも、新しい公開鍵を確実に送信先へ送付することができる。
【００７１】
さらに、データ処理装置１００が複数の公開鍵を有する場合でも、その複数の公開鍵を添付してデータを送信することができるため、公開鍵を別途送信する等の通信負担を軽減することができる。
【００７２】
なお、本実施の形態では、少なくとも１つの送信先に対して公開鍵が送付されていなかった場合に、送信データに公開鍵を添付して送信するものとしたが、送信先のすべてに対して公開鍵が送信済みであるとの判断がされない場合に、送信データに公開鍵を添付して送信するものとしても同様の効果を得ることができる。
【００７３】
また、送信先の全てへ公開鍵が送付済みとの判断された場合に、公開鍵を添付せずに送信する、または、公開鍵が未送付の送信先が１つもないと判断された場合に公開鍵を添付せずに送信データを送信するものとしても良い。
【００７４】
＜第２の実施の形態＞
本発明の第２の実施の形態について、図を参照して詳細に説明する。
【００７５】
データ処理装置２００は、図３に示すように、データ送信指示部２０１、公開鍵送付判定部２０２、フラグリセット部２０３、アドレス帳２０４、グループ分割部２０５、公開鍵添付部２０６、鍵ペア登録部２０７、スキャナ部２０８、暗号署名部２０９、データ送信部２１０、インターフェース部２１１から基本的に構成される。
【００７６】
データ処理装置２００は、ネットワーク２２０に接続される。データ処理装置２００がSMTP方式で送信したデータは、ネットワーク２２０上のメールサーバ（図示せず）を経由して、送信先に配信される。
【００７７】
また、ネットワーク２２０には公開鍵サーバ２２１が接続されている。公開鍵サーバ２２１は、データを暗号化して指定された送信先に送信する場合に必要となる送信先の公開鍵を記憶・保持する。データ処理装置２００は、送信先の公開鍵を公開鍵サーバ２２１から取得することができる。また、本実施の形態では、送信先の公開鍵を公開鍵サーバ２２１から取得するのではなく、送信先から受信したデータに添付された公開鍵をデータ処理装置２００に蓄積保存しておいて、暗号メールを送信する場合に参照するようにすることも可能である。
【００７８】
本実施の形態では、説明を簡単にするため、データの暗号化に必要となる送信先の公開鍵は公開鍵サーバ２２１から取得するものとする。
【００７９】
データ送信指示部２０１は、ユーザがデータ送信の指示を入力するための入力部である。ユーザは、アドレス帳２０４に登録しておいた送信先のリストから所望の送信先を指定しデータの送信を指示する。この時、送信するデータに対して暗号化または／および電子署名を行うか否かの指示も行う。データ送信の指示信号は、スキャナ部２０８へ出力される。また、データの送信先は公開鍵送付判定部２０２およびグループ分割部２０５へ出力される。
【００８０】
公開鍵送付判定部２０２は、データの送信先の情報を受けて、それらの送信先の各々について、データ処理装置２００の公開鍵を既に送付済みであるかを判定する。公開鍵送付判定部２０２は、公開鍵の送付済フラグを有し、データの送信先毎に公開鍵が送信済みか否かの情報が記憶される。データの送信先の情報を受けると、その全送信先に対応する送付済フラグが参照され、既にすべての送付先へ公開鍵が送付されている場合には、送付済みを示す信号をグループ分割部２０５および公開鍵添付部２０６へ出力する。まだ少なくとも１つの送付先へ公開鍵が送付されていない場合には、未送付を示す信号がグループ分割部２０５および公開鍵添付部２０６へ出力される。
【００８１】
フラグリセット部２０３は、鍵ペア登録部２０７に鍵ペアが新規登録または更新登録された場合に、公開鍵送付判定部２０２が記憶する送信先毎の公開鍵送付済フラグの情報をすべてリセットする。ここで、鍵ペアとは、データ処理装置２００の秘密鍵とそれに対応する公開鍵とのペアをいう。
【００８２】
アドレス帳２０４は、データの送信先をデータ送信指示部２０１で選択指示するための送信先情報を記憶保持する。送信先情報はユーザが予め登録しておくことができる。
【００８３】
グループ分割部２０５は、公開鍵送付判定部２０２の判定結果を受けて、公開鍵送付判定部２０２に記憶されている送付済フラグを参照し、データ送信指示部２０１で指示された送信先を、それぞれ公開鍵が送付済みであるグループと公開鍵が未送付であるグループに分割する。分割された２つのグループは、データ送信部２１０へ出力される。
【００８４】
公開鍵添付部２０６は、データ処理装置２００の公開鍵をデータに添付するか否かを制御する。公開鍵送付判定部２０２において、データ送信指示部２０１で送信指示された送信先すべてに公開鍵を送付済みであると判定された場合には、暗号署名部から受けた送信データにデータ処理装置２００の公開鍵を添付せず、送信データをデータ送信部２１０へ出力する。また、データ送信指示部２０１で送信指示された送信先の中に公開鍵を未送付の送信先が含まれると判定された場合には、送信データに鍵ペア登録部２０７に格納されたデータ処理装置２００の公開鍵を添付し、公開鍵が添付された送信データと公開鍵が添付されていない送信データの両方をデータ送信部２１０へ出力する。例えば、暗号処理用の公開鍵と電子署名用の公開鍵が異なるなど、データ処理装置２００の公開鍵が複数ある場合には、複数の公開鍵を一緒に添付する。
【００８５】
鍵ペア登録部２０７は、内部に記憶装置を有し、データ処理装置２００の鍵ペア（公開鍵と秘密鍵）を格納・登録する。鍵ペアはユーザによって、予め、データ処理装置２００内で生成して格納するか、または、外部で生成した鍵ペアをデータ処理装置２００に格納することができる。
【００８６】
スキャナ部２０８は、データ送信指示部２０１からの指示信号を受けて、セットされた原稿の画像読み取りを行い、その画像データを暗号署名部２０９へ出力する。
【００８７】
暗号署名部２０９は、データ送信指示部２０１からの指示信号を受けて、送信するデータに対して暗号化または／および電子署名の処理を行う。暗号化処理を行う場合に必要となる送信先の公開鍵は、公開鍵サーバ２２１から取得し、電子署名処理を行う場合に必要となるデータ処理装置２００の秘密鍵は鍵ペア登録部２０７から取得する。処理された送信データは、公開鍵添付部２０６へ出力される。
【００８８】
データ送信部２１０は、公開鍵添付部２０６から受けた送信データをインターフェース部２１１からネットワーク２２０へ送信する。送信には、SMTP(Simple Mail Transfer Protocol)方式を用いることができる。SMTPの技術内容については、IETFのRFC2821に記述されている。
【００８９】
インターフェース部２１１は、ネットワーク２２０と接続するネットワークインターフェースである。
【００９０】
次に、データの送信の処理について、図４を参照して、詳細に説明する。
【００９１】
ユーザがデータ送信指示部２０１からデータの送信を指示すると、処理が開始され、直ちにステップＳ２００へ処理が移行される。
【００９２】
ステップＳ２００では、スキャナ部２０８において、セットされた原稿の画像が読み取られ、暗号署名部２０９へ送信データとして出力される。
【００９３】
ステップＳ２０１では、暗号署名部２０９において、データ送信指示部２０１で送信指示された際にデータの暗号化または電子署名が指示されているか否かが判定される。暗号化または電子署名のいずれかが指示されていた場合には、ステップＳ２０２に処理を移行する。暗号化および電子署名のいずれもが指示されていなかった場合は、ステップＳ２０３へ処理を移行する。
【００９４】
ステップＳ２０２では、暗号署名部２０９において、送信データの暗号化または／および電子署名が行われる。処理された送信データは、公開鍵添付部２０６へ出力される。
【００９５】
ステップＳ２０３では、公開鍵送付判定部２０２において、データ送信指示部２０１で指示された送信先の各々について、データ処理装置２００の公開鍵を既に送付済みであるかを判定する。判定結果は、グループ分割部２０５および公開鍵添付部２０６へ出力される。また、すべての送信先に既に公開鍵を送付済みである場合には、ステップＳ２０６へ処理を移行する。送信先の少なくとも１つに公開鍵を未送付である場合には、ステップＳ２０４へ処理を移行する。
【００９６】
ステップＳ２０４では、グループ分割部２０５において、データ送信指示部２０１で指定された送信先を、公開鍵を添付したデータを送信するグループと、公開鍵を添付せずに送信するグループとに分割する。グループ分割部２０５では、公開鍵添付判定部２０２からの判定結果を受けて、公開鍵添付判定部２０２の送付済フラグを参照することによって、送信先の各々について公開鍵が既に送付済みであるか否かを判定し、公開鍵を送付済みのグループと未送付のグループに分ける。グループに分けられた送付先の情報は、データ送信部２１０へ出力される。
【００９７】
ステップＳ２０５では、公開鍵添付部２０６において、データ処理装置２００の公開鍵を送信データに添付する。このとき、公開鍵送付判定部２０２に記憶保持された各送信先の公開鍵の送付済フラグをセットする。また、公開鍵を添付したデータの送信がエラーとなった場合、エラー報告メールが受信されるので、その場合は、送付済フラグをリセットする。処理された送信データは、データ送信部２１０へ出力される。
【００９８】
ステップＳ２０６では、データ送信部２１０において、インターフェース部２１１を介してネットワークへデータが送信される。このとき、公開鍵添付判定部２０２において、送信先のすべてに既に公開鍵が送信済みであると判定された場合は、公開鍵添付部２０６から出力された公開鍵が添付されていないデータを指定された送信先へ送信する。送信先の少なくとも１つに公開鍵が未送付であると判定された場合には、グループ分割部２０５で公開鍵が未送付のグループとされた送信先には、公開鍵が添付されたデータを送信する。一方、グループ分割部２０５で公開鍵が既に送信されているグループに分けられた送信先には、公開鍵が添付されていないデータを送信する。
【００９９】
以上のように、本発明の第２の実施の形態によれば、送信先の各々について公開鍵を送付済みであるか否かを示すフラグ情報を記憶しておき、データを送信する際にそれを参照することによって、送信先を公開鍵を送付済みであるグループと未送付であるグループに分割することができる。公開鍵が送付済みであるグループの送信先へは公開鍵を添付せずデータを送信し、公開鍵が未送付であるグループの送信先へは公開鍵を添付してデータを送信する。その結果、公開鍵を既に送信済みである送信先に不要な公開鍵を送付することがなく、公開鍵を必要とする未送信の送信先のみに公開鍵が添付されたデータを送ることができる。従って、送信先に不要な処理や資源浪費をさせるのを防止することができる。また、データ処理装置２００の公開鍵が更新された場合には、送信先毎の公開鍵の送付済フラグがすべてリセットされるため、送信先に改めて新しい公開鍵を確実に送付することができる。
【０１００】
＜第３の実施の形態＞
本発明の第３の実施の形態について、図を参照して、詳細に説明する。
【０１０１】
データ処理装置３００は、図５に示すように操作表示部３０１、暗号署名部３０２、データ送信部３０３、復号署名検証部３０４、公開鍵記憶部３０５、データ記憶部３０６、公開鍵抽出部３０７、公開鍵添付判定部３０８、データ受信部３０９およびインターフェース部３１０から基本的に構成される。
【０１０２】
データ処理装置３００は、ネットワーク３２０に接続される。データ処理装置３００は、ネットワーク３２０上のメールサーバ（図示せず）を介して、SMTP方式によりデータの送受信を行う。
【０１０３】
操作表示部３０１は、ユーザからのデータの送信データおよび送信指示の入力を受け付ける。入力された送信データまたは送信指示は、暗号署名部３０２へ出力される。また、操作表示部３０１は、復号署名検証部３０４から受けた受信データの外部表示を行う。
【０１０４】
暗号署名部３０４は、操作表示部３０１からの指示信号を受けて、送信するデータに対して暗号化および電子署名の処理を行う。暗号化処理を行う場合に必要となる送信先の公開鍵、および、電子署名処理を行う場合に必要となるデータ処理装置３００の秘密鍵は公開鍵記憶部３０５から取得する。処理された送信データは、データ送信部３０３へ出力される。
【０１０５】
データ送信部３０３は、暗号署名部３０２から受けた送信データをSMTP(Simple Mail Transfer Protocol)方式を用いて、インターフェース部３１０からネットワーク３２０へ送信する。SMTPの技術内容については、IETFのRFC2821に記述されている。
【０１０６】
復号署名検証部３０４は、データ記憶部３０６に蓄積された受信データを受け、その受信データに対して暗号化または電子署名が施されている場合に、暗号の復号化および電子署名の検証処理を行う。復号化に必要となるデータ処理装置３００の秘密鍵、および、電子署名の検証に必要となる受信データの送信元の公開鍵は公開鍵記憶部３０５から取得する。復号化または電子署名の検証が行われた受信データは、操作表示部３０１へ出力される。
【０１０７】
公開鍵記憶部３０５は、データ処理装置３００の鍵ペア（秘密鍵と公開鍵）および受信データに添付されていた公開鍵を格納する。ここで、データ処理装置３００の鍵ペアはユーザによって、予め、データ処理装置３００内で生成して格納するか、または装置外部で生成した鍵ペアをデータ処理装置３００に格納しておくことができる。
【０１０８】
データ受信部３０９は、ネットワーク３２０に接続されたメールサーバ（図示せず）から送信されてくるデータを、インターフェース部３１０を介して受信する。データ受信部３０９は、SMTPサーバの機能を有するものとし、データをSMTP方式により受信することが好適である。また、例えば、データ受信部３０９がPOP3(Post Office Protocol Version3)方式などにより、ネットワーク３２０に接続されたPOPサーバ（図示せず）からデータを取得するものとしても良い。受信されたデータは、公開鍵添付判定部３０８へ出力される。
【０１０９】
公開鍵添付判定部３０８は、データ受信部３０９から受信データを受けて、その受信データに公開鍵が添付されているか否かを判定する。判定結果および受信データは、公開鍵抽出部３０７へ出力される。
【０１１０】
公開鍵抽出部３０７では、受信データおよび公開鍵添付判定部３０８の判定結果を受けて、受信データに公開鍵が添付されていると判定された場合に、受信データから公開鍵を分離抽出する部分である。分離された公開鍵は、公開鍵記憶部３０５へ出力される。また、公開鍵が取り外された受信データは、データ記憶部３０６へ出力される。受信データから公開鍵のデータを分離することによって、受信データのデータサイズを小さくすることができる。
【０１１１】
データ記憶部３０６は、公開鍵抽出部３０７によって公開鍵が取り外された受信データを記憶する。
【０１１２】
インターフェース部３１０は、ネットワーク３２０と接続され、ネットワーク３２０とデータ送信部３０３およびデータ受信部３０９を中継する。例えば、イーサネット（登録商標）インターフェースとすることが好適である。
【０１１３】
次に、データの受信処理について、図６を参照して、詳細に説明する。
【０１１４】
データ受信部３０９が、データを受信すると処理が開始され、直ちにステップＳ３００へ処理が移行される。
【０１１５】
ステップＳ３００では、公開鍵添付判定部３０８において、受信データに公開鍵が添付されているか否かが判定される。例えば、S/MIMEの場合には、公開鍵は、署名データコンテントタイプであるCMS(Cryptographic Message Syntax)オブジェクト内を調査することによって、公開鍵証明書として内包されているか否かを判定することができる。
【０１１６】
受信データに公開鍵が添付されていた場合には、ステップＳ３０１に処理を移行する。公開鍵が添付されていいなかった場合には、ステップＳ３０４に処理を移行する。
【０１１７】
ステップＳ３０１では、公開鍵抽出部３０７において、公開鍵を受信データから分離抽出する。公開鍵が取り外された受信データはデータ記憶部３０６へ出力され、分離された公開鍵は公開鍵記憶部３０５へ出力される。
【０１１８】
ステップＳ３０２では、ステップＳ３０１で分離された公開鍵が既に公開鍵記憶部３０５に格納されているか否かを判定する。公開鍵が公開鍵記憶部３０５に格納されていなかった場合には、ステップＳ３０３に処理を移行する。公開鍵が既に格納されていた場合には、ステップＳ３０４に処理を移行する。
【０１１９】
ステップＳ３０３では、分離された公開鍵を公開鍵記憶部３０５に格納する。受信データに添付された公開鍵を分離し、公開鍵記憶部３０５に格納しておくことによって、データ処理装置３００においてデータを暗号化して送信する際に必要となる送信先の公開鍵を順次蓄積していくことができる。
【０１２０】
ステップＳ３０４では、ステップＳ３０１で公開鍵を取り除いた受信データをデータ記憶部３０６に格納する。これによって、ユーザは、必要に応じてデータ記憶部３０６に格納された受信データを操作表示部３０１を用いて確認することができる。
【０１２１】
以上のように、第３の実施の形態によれば、受信データに公開鍵が添付されていた場合に、公開鍵が分離された受信データのみを格納・記憶するため、同じ公開鍵が添付された複数の受信データが記憶されることを防ぐことができる。従って、記憶容量の無駄な消費を回避することができる。
【０１２２】
＜第４の実施の形態＞
本発明の第４の実施の形態について、図を参照して、詳細に説明する。
【０１２３】
データ処理装置４００は、図７に示すように、データ送信指示部４０１、能力情報取得部４０２、能力情報リセット部４０３、アドレス帳４０４、公開鍵添付部４０５、鍵ペア登録部４０６、スキャナ部４０７、暗号署名部４０８、データ送信部４０９およびインターフェース部４１０から基本的に構成される。
【０１２４】
データ処理装置４００は、ネットワーク４２０に接続される。データ処理装置４００がSMTP方式で送信したデータは、ネットワーク４２０上のメールサーバ（図示せず）を経由して、送信先に配信される。
【０１２５】
また、ネットワーク４２０には、公開鍵サーバ４２１が接続される。公開鍵サーバ４２１は、データを暗号化して指定された送信先に送信する場合に必要となる送信先の公開鍵を格納する。データ処理装置４００は、ネットワーク４２０を介して公開鍵サーバ４２１から必要な公開鍵を取得することができる。また、本実施の形態では、送信先の公開鍵を公開鍵サーバ４２１から取得するのではなく、送信先から受信したデータに添付された公開鍵をデータ処理装置４００に蓄積保存しておいて、暗号メールを送信する場合に参照するようにすることも可能である。
【０１２６】
本実施の形態では、説明を簡単にするため、データの暗号化に必要となる送信先の公開鍵は公開鍵サーバ４２１から取得するものとする。
【０１２７】
データ送信指示部４０１は、ユーザがデータ送信の指示を入力するための入力部である。ユーザは、アドレス帳４０４に登録しておいた送信先のリストから所望の送信先を指定しデータの送信を指示する。この時、送信するデータに対して暗号化または／および電子署名を行うか否かの指示も行う。データ送信の指示信号は、スキャナ部４０７へ出力される。また、データの送信先は能力情報取得部４０２へ出力される。
【０１２８】
能力情報取得部４０２は、データ送信指示部４０１で指示された各送信先について、それぞれの送信先がデータ処理装置４００の公開鍵を取得可能であるか否かを問合せ、その結果を記憶する。ここで、送信先がデータ処理装置４００の公開鍵を取得可能であるとは、送信先のデータ処理装置において局所的にデータ処理装置４００の公開鍵が記憶されているか、または、データ処理装置４００の公開鍵を記憶した公開鍵サーバ（図示せず）に対して、送信先のデータ処理装置がアクセス可能であることを意味する。
【０１２９】
能力情報の問合せは、能力情報問合せのデータを送信先へ送信することによって行う。送信先は能力情報の問合せを受けると、能力情報問合せに含まれる公開鍵の識別情報を参照し、その公開鍵を取得可能であるか判定し、その結果を返信する。本実施の形態の能力情報の問合せ方法は、これに限定されず、例えば、送信先の能力情報を登録しているLDAP(Lightweight Diretory Access Protocol)サーバなどに問い合わせる方法も好適である。
【０１３０】
能力情報リセット部４０３は、鍵ペア登録部４０６にデータ処理装置４００の鍵ペア（秘密鍵とそれに対応する公開鍵）が新規登録または更新登録された場合に、能力情報取得部４０２が記憶する送信先毎の能力情報をリセットする。
【０１３１】
アドレス帳４０４は、データの送信先をデータ送信指示部４０１で選択指示するための送信先情報を記憶保持する。送信先情報はユーザが予め登録しておくことができる。
【０１３２】
公開鍵添付部４０５は、データ処理装置４００の公開鍵をデータに添付するか否かを制御する。送信先の能力情報を能力情報取得部４０２から取得し、データ送信指示部４０１で指定された送信先のすべてがデータ処理装置４００の公開鍵を取得可能であるかどうかを判定する。送信先のすべてがデータ処理装置４００の公開鍵を取得可能であれば、送信するデータに鍵ペア登録部４０６に蓄積されているデータ処理装置４００の公開鍵を添付しない。送信先のすべてがデータ処理装置４００の公開鍵を取得可能でなければ、送信するデータに公開鍵を添付する。処理された送信データは、データ送信部４０９へ出力される。
【０１３３】
鍵ペア登録部４０６は、内部に記憶装置を有し、データ処理装置４００の鍵ペア（公開鍵と秘密鍵）を格納・登録する。鍵ペアはユーザによって、予め、データ処理装置４００内で生成して格納するか、または、外部で生成した鍵ペアをデータ処理装置４００に格納することができる。
【０１３４】
スキャナ部４０７は、データ送信指示部４０１からの指示を受けて、セットされた原稿の画像読み取りを行い、その画像データを暗号署名部４０８へ出力する。
【０１３５】
暗号署名部４０８は、データ送信指示部４０１からの指示を受けて、送信するデータに対して暗号化および電子署名を行う。暗号化を行う場合に必要となる送信先の公開鍵は、公開鍵サーバ４２１から取得し、電子署名処理を行う場合に必要となるデータ処理装置４００の秘密鍵は鍵ペア登録部４０６から取得する。処理された送信データは、公開鍵添付部４０５へ出力される。
【０１３６】
データ送信部４０９は、データをSMTPによりインターフェース部４１０からネットワーク４２０へ送信する部分である。
【０１３７】
インターフェース部４１０は、ネットワーク４２０と接続するイーサネット（登録商標）インターフェースである。
【０１３８】
次に、データ送信の処理を、図８を参照して、詳細に説明する。
【０１３９】
ユーザがデータ送信指示部４０１からデータの送信を指示すると、処理が開始され、直ちにステップＳ４００へ処理が移行される。
【０１４０】
ステップＳ４００で、スキャナ部４０７において、セットされた原稿の画像が読み取られ、暗号署名部４０８へ送信データとして出力される。
【０１４１】
ステップＳ４０１では、暗号署名部４０９において、データ送信指示部４０１で送信指示された際にデータの暗号化または電子署名が指示されているか否かが判定される。暗号化または電子署名のいずれかが指示されていた場合には、ステップＳ４０２に処理を移行する。暗号化および電子署名のいずれもが指示されていなかった場合は、ステップＳ４０３へ処理を移行する。
【０１４２】
ステップＳ４０２では、暗号署名部４０８において、送信データの暗号化または／および電子署名が行われる。処理された送信データは、公開鍵添付部４０５へ出力される。
【０１４３】
ステップＳ４０３では、能力情報取得部４０２において、データの送信先のそれぞれが、データ処理装置４００の公開鍵を取得可能であるかを示す能力情報を取得する。能力情報取得部４０２は、送信先の能力情報が既に能力情報取得部４０２に記憶されているか否かを調査し、能力情報が記憶されていない場合のみ、その送信先にデータ処理装置４００の公開鍵の識別番号が設定された能力情報の問合せを行い、その応答結果を記憶する。送信先の能力情報が能力情報取得部４０２に既に記憶されている場合には、送信先に対して能力情報の問合せは行わない。
【０１４４】
ステップＳ４０４では、すべての送信先がデータ処理装置４００の公開鍵を取得可能であるかどうか判定する。すべての送信先がデータ処理装置４００の公開鍵を取得可能であれば、ステップＳ４０６に処理を移行する。また、すべての送信先がデータ処理装置４００の公開鍵を取得可能でなければ、ステップＳ４０５に処理を移行する。
【０１４５】
ステップＳ４０５では、ステップＳ４０４の判定結果を受けて、公開鍵添付部４０５において、送信データにデータ処理装置４００の公開鍵が添付される。公開鍵は、鍵ペア登録部４０６から取得することができる。この時、例えば、暗号処理用の公開鍵と電子署名用の公開鍵が異なるなど、データ処理装置１００の公開鍵が複数ある場合には、複数の公開鍵を一緒に添付する。
【０１４６】
本実施の形態では、公開鍵を暗号化または電子署名された送信データのみならず、暗号化または電子署名されていない送信データにも添付可能としている。しかし、これに限定されるわけでなく、例えば、S/MIMEを使う場合には公開鍵は電子署名された送信メールに添付されるので、送信するデータが電子署名メールの場合のみ公開鍵を添付するようにしても良い。
【０１４７】
ステップＳ４０６では、データ送信部４０９において、インターフェース部４１０を介して送信データが送信される。
【０１４８】
以上のように、第４の実施の形態によれば、指定された送信先がデータ処理装置４００の公開鍵を取得可能であるか判定し、その結果に基づいて送信データへの公開鍵を添付することが必要であるか否かを判断することができる。指定された送信先のすべてが公開鍵を取得可能である場合には、送信データに公開鍵を添付する必要がないため、送信データをそのまま送信することができる。従って、送信元の公開鍵にアクセス可能な送信先では、公開鍵の分離処理などの余分な処理や記憶資源の無駄な消費を有効的に防止することができる。
【０１４９】
＜第５の実施の形態＞
本発明の第５の実施の形態について、図を参照して、詳細に説明する。
【０１５０】
データ処理装置５００は、図９に示すように、データ送信指示部５０１、能力情報取得部５０２、能力情報リセット部５０３、アドレス帳５０４、グループ分割部５０５、公開鍵添付部５０６、鍵ペア登録部５０７、スキャナ部５０８、暗号署名部５０９、データ送信部５１０およびインターフェース部５１１から基本的に構成される。
【０１５１】
データ処理装置５００は、ネットワーク５２０に接続される。データ処理装置４００がSMTP方式によって送信したデータは、ネットワーク５２０上のメールサーバ（図示せず）を経由して、送信先に配信される。
【０１５２】
また、ネットワーク５２０には、公開鍵サーバ５２１が接続される。公開鍵サーバ５２１は、データを暗号化して指定された送信先に送信する際に必要となる送信先の公開鍵を格納する。送信元となるデータ処理装置５００は、公開鍵サーバから送信先の公開鍵を取得し、送信データを暗号化することができる。また、送信先の公開鍵を公開鍵サーバ５２１から取得せず、送信先から受信したデータに添付された公開鍵をデータ処理装置５００に記憶しておき、送信データを暗号化する際に参照することも可能である。
【０１５３】
本実施の形態では、説明を簡単にするため、データの暗号化に必要となる送信先の公開鍵は公開鍵サーバ５２１から取得するものとする。
【０１５４】
データ送信指示部５０１は、ユーザがデータ送信を指示を入力するための入力部である。ユーザは、アドレス帳５０４に登録しておいた送信先のリストから所望の送信先を指定しデータの送信を指示する。この時、送信するデータに対して暗号化または／および電子署名を行うか否かの指示も行う。データ送信の指示信号は、スキャナ部５０８へ出力される。また、データの送信先は能力情報取得部５０２へ出力される。
【０１５５】
能力情報取得部５０２は、データ送信指示部５０１で指示された各送信先について、それぞれの送信先がデータ処理装置５００の公開鍵を取得可能であるか否かを問合せ、その結果を記憶する。ここで、送信先がデータ処理装置５００の公開鍵を取得可能であるとは、送信先のデータ処理装置において局所的にデータ処理装置５００の公開鍵が記憶されているか、または、データ処理装置５００の公開鍵を記憶した公開鍵サーバ（図示せず）に対して、送信先のデータ処理装置がアクセス可能であることを意味する。
【０１５６】
能力情報の問合せは、能力情報問合せのデータを送信先へ送信することによって行う。送信先は能力情報の問合せを受けると、能力情報問合せに含まれる公開鍵の識別情報を参照し、その公開鍵を取得可能であるか判定し、その結果を返信する。本実施の形態の能力情報の問合せ方法は、これに限定されず、例えば、送信先の能力情報を登録しているLDAP(Lightweight Diretory Access Protocol)サーバなどに問い合わせる方法も好適である。
【０１５７】
能力情報リセット部５０３は、鍵ペア登録部５０７にデータ処理装置５００の鍵ペア（秘密鍵とそれに対応する公開鍵）が新規登録または更新登録された場合に、能力情報取得部５０２が記憶する送信先毎の能力情報をリセットする。
【０１５８】
アドレス帳５０４は、データの送信先をデータ送信指示部５０１で選択指示するための送信先情報を記憶保持する。送信先情報はユーザが予め登録しておくことができる。
【０１５９】
グループ分割部５０５は、能力情報取得部５０２において取得された能力情報に基づいて、データの送信先を、公開鍵が取得可能であるグループと、公開鍵が取得不可能であるグループに２つに分ける。分割されたグループは、データ送信部５１０へ出力される。
【０１６０】
公開鍵添付部５０６は、データ処理装置５００の公開鍵をデータに添付するか否かを制御する。能力情報取得部５０２において、データ送信指示部２０１で送信指示された送信先のすべてが公開鍵を取得可能であると判定された場合には、暗号署名部から受けた送信データにデータ処理装置２００の公開鍵を添付せず、送信データをそのままデータ送信部５１０へ出力する。また、データ送信指示部２０１で送信指示された送信先の中に公開鍵を取得不可能な送信先が含まれると判定された場合には、送信データに鍵ペア登録部２０７に格納されたデータ処理装置５００の公開鍵を添付し、公開鍵が添付された送信データと公開鍵が添付されていない送信データの両方をデータ送信部５１０へ出力する。例えば、暗号処理用の公開鍵と電子署名用の公開鍵が異なるなど、データ処理装置２００の公開鍵が複数ある場合には、複数の公開鍵を一緒に添付する。
【０１６１】
鍵ペア登録部５０７は、内部に記憶装置を有し、データ処理装置５００の鍵ペア（公開鍵と秘密鍵）を格納・登録する。鍵ペアはユーザによって、予め、データ処理装置５００内で生成して格納するか、または、外部で生成した鍵ペアをデータ処理装置５００に格納することができる。
【０１６２】
スキャナ部５０８は、データ送信指示部５０１からの指示を受けて、セットされた原稿の画像を読み取り、その画像データを暗号署名部５０９へ出力する。
【０１６３】
暗号署名部５０９は、データ送信指示部５０１からの指示を受けて、送信するデータに対して暗号化または／および電子署名を行う。暗号化処理を行う場合に必要となる送信先の公開鍵は、公開鍵サーバ５２１から取得し、電子署名処理を行う場合に必要となるデータ処理装置５００の秘密鍵は鍵ペア登録部５０７から取得する。処理された送信データは、公開鍵添付部５０６へ出力される。
【０１６４】
データ送信部５１０は、公開鍵添付部５０６から受けた送信データをSMTP方式を用いて、インターフェース部５１１からネットワーク５２０へ送信する。SMTPの技術内容については、IETFのRFC2821に記述されている。
【０１６５】
インターフェース部５１１は、ネットワーク５２０と接続するネットワークインターフェースである。例えば、イーサネット（登録商標）インターフェースとすることが好適である。
【０１６６】
次に、本実施の形態におけるデータ送信の処理を、図１０を参照して、詳細に説明する。
【０１６７】
ユーザがデータ送信指示部５０１からデータの送信を指示すると、処理が開始され、直ちにステップＳ５００へ処理が移行される。
【０１６８】
ステップＳ５００では、スキャナ部５０８において、セットされた原稿の画像が読み取られ、暗号署名部５０９へ画像データとして出力される。
【０１６９】
ステップＳ５０１では、暗号署名部５０９において、データ送信指示部５０１で送信指示された際に、データの暗号化または電子署名処理が指示されているか否かが判定される。暗号化または電子署名のいずれかが指示されていた場合には、ステップＳ５０２に処理を移行する。暗号化および電子署名のいずれもが指示されていなかった場合は、ステップＳ２０３へ処理を移行する。
【０１７０】
ステップＳ５０２では、暗号署名部５０９において、送信データに暗号化または／および署名処理が行われる。処理された送信データは、公開鍵添付部２０６へ出力される。
【０１７１】
ステップＳ５０３では、能力情報取得部５０２において、データの送信先のそれぞれが、データ処理装置５００の公開鍵を取得可能であるかを示す能力情報を取得する。能力情報取得部５０２は、送信先の能力情報が既に能力情報取得部５０２に記憶されているか否かを調査し、能力情報が記憶されていない場合のみ、その送信先にデータ処理装置５００の公開鍵の識別番号が設定された能力情報の問合せを行い、その応答結果を記憶する。送信先の能力情報が能力情報取得部５０２に既に記憶されている場合には、送信先に対して能力情報の問合せは行わない。
【０１７２】
ステップＳ５０４では、取得された能力情報に基づいて、送信先の中に公開鍵を取得不可能な送信先が含まれるか否かを判断する。公開鍵を取得不可能な送信先が含まれる場合には、ステップＳ５０５へ処理を移行する。すべての送信先が公開鍵を取得可能であれば、ステップＳ５０７へ処理を移行する。
【０１７３】
ステップＳ５０５では、グループ分割部５０５において、データ送信指示部５０１で指定された送信先を、公開鍵を添付したデータを送信するグループと、公開鍵を添付せずに送信するグループとに分割する。グループ分割部５０５では、能力情報取得部５０２での能力情報の取得結果を受けて、送信先の各々について公開鍵が取得可能であるか否かを判定し、公開鍵を取得可能なグループと、取得不可能なグループとに分ける。グループに分けられた送付先の情報は、データ送信部５１０へ出力される。
【０１７４】
ステップＳ５０６では、公開鍵添付部５０６において、データ処理装置５００の公開鍵を送信データに添付する。処理された送信データは、データ送信部５１０へ出力される。本実施の形態では、データ処理装置５００の公開鍵を暗号化または電子署名されたデータのみならず、暗号化または署名処理を行わないデータにも添付可能としているが、これに限定されるわけでない。例えば、S/MIMEを用いる場合には、公開鍵は電子署名されたデータに添付されるので、送信データが電子署名された場合のみ公開鍵を添付するようにしても良い。
【０１７５】
ステップＳ５０７では、データ送信部５１０において、送信データをインターフェース部５１１を介して送信する。このとき、データ処理装置５００の公開鍵が取得可能な送信先のグループに対しては、公開鍵が添付されていないデータを送信する。データ処理装置５００の公開鍵が取得不可能な送信先のグループには、公開鍵が添付されたデータを送信する。
【０１７６】
以上のように、第５の実施の形態によれば、送信先のそれぞれがデータ処理装置５００の公開鍵を取得可能であるか否かを問い合わせ、能力情報を取得することによって、公開鍵が取得可能である送信先のグループと、取得不可能である送信先のグループに分割することができる。そのため、公開鍵が取得可能であるグループの送信先へは公開鍵を添付しないデータを送信し、公開鍵が取得不可能であるグループの送信先へは公開鍵を添付してデータを送信することができる。その結果、公開鍵を取得可能な送信先に公開鍵が添付されたデータを送信し、送信先に不要な処理や記憶資源の無駄な浪費をさせることを防ぐことができる。
【０１７７】
上記第１〜第５の実施の形態のデータ処理装置１００では、スキャナ部１０７により読み取った画像データをデータ送信するものとして説明を行ったが、これは一例であり、例えば、ユーザが入力した文書データを送信するもの等としても同様に処理を行うことができる。
【０１７８】
なお、上記第１〜第５の実施の形態のデータ送信および受信の処理の各ステップをプログラム化し、コンピュータに実行させることによっても同様の処理を行うことができる。また、そのプログラムをコンピュータで読み取り可能な記録媒体に記録し、その記録媒体からプログラムをコンピュータに読み取らせることによっても同様の処理を実行することができる。記録媒体は、半導体メモリなどの内部記憶装置、ハードディスク、光磁気ディスクなどの外部記憶装置を適宜選択して用いることができる。
【０１７９】
【発明の効果】
本発明によれば、送信元の公開鍵を未送付の送信先のみに、公開鍵が添付されたデータを送信することができる。その結果、送信先における不要な処理や記憶資源の無駄な消費を防止することができる。
【０１８０】
また、本発明によれば、受信データと、その受信データに添付された送信元の公開鍵を分割して、公開鍵のみを別途記憶しておくことができる。その結果、受信データから不要な公開鍵データを除去して記憶することが可能となり、データの記憶容量を削減することができる。
【０１８１】
また、本発明によれば、電子署名と暗号用で別々の公開鍵を使うなど送信元が複数の公開鍵を有する場合に、これらの複数の公開鍵を一括して通信相手に送信するので、公開鍵送信のための処理と通信負荷を軽減することが可能となる。
【０１８２】
また、本発明によれば、送信元の公開鍵を取得不可能な送信先のみに、公開鍵が添付されたデータを送信することができる。その結果、送信先における不要な処理や記憶資源の無駄な消費を防止することができる。
【図面の簡単な説明】
【図１】  本発明の第１の実施の形態におけるデータ処理装置の構成のブロック図である。
【図２】  本発明の第１の実施の形態におけるデータ処理のフローチャートを示す図である。
【図３】  本発明の第２の実施の形態におけるデータ処理装置の構成のブロック図である。
【図４】  本発明の第２の実施の形態におけるデータ処理のフローチャートを示す図である。
【図５】  本発明の第３の実施の形態におけるデータ処理装置の構成のブロック図である。
【図６】  本発明の第３の実施の形態におけるデータ処理のフローチャートを示す図である。
【図７】  本発明の第４の実施の形態におけるデータ処理装置の構成のブロック図である。
【図８】  本発明の第４の実施の形態におけるデータ処理のフローチャートを示す図である。
【図９】  本発明の第５の実施の形態におけるデータ処理装置の構成のブロック図である。
【図１０】  本発明の第５の実施の形態におけるデータ処理のフローチャートを示す図である。
【符号の説明】
１００，２００，３００，４００，５００  データ処理装置、１０１，２０１，４０１，５０１  データ送信指示部、１０２，２０２，３０８  公開鍵送付判定部、１０３，２０３  フラグリセット部、１０４，２０４，４０４，５０４  アドレス帳、１０５，２０６，４０５，５０６  公開鍵添付部、１０６，２０７，４０６，５０７  鍵ペア登録部、１０７，２０８，４０７，５０８  スキャナ部、１０８，２０９，３０２，４０８，５０９  暗号署名部、１０９，２１０，３０３，４０９，５１０  データ送信部、１１０，２１１，３１０，４１０，５１１  インターフェース部、１２０，２２０，３２０，４２０，５２０  ネットワーク、１２１，２２１，４２１，５２１  公開鍵サーバ、２０５，５０５  グループ分割部、３０１  操作表示部、３０４  復号署名検証部、３０５  公開鍵記憶部、３０６  データ記憶部、３０７  公開鍵抽出部、３０８  公開鍵添付判定部、３０９  データ受信部、４０２，５０２  能力情報取得部、４０３，５０３  能力情報リセット部。
【図１】
0004337304.tif 000002
【図２】
0004337304.tif 000003
【図３】
0004337304.tif 000004
【図４】
0004337304.tif 000005
【図５】
0004337304.tif 000006
【図６】
0004337304.tif 000007
【図７】
0004337304.tif 000008
【図８】
0004337304.tif 000009
【図９】
0004337304.tif 000010
【図１０】
0004337304.tif 000011