(57)【要約】【課題】使用許可のないバージョンのプリンタドライバから送られた印字情報に基づく印刷処理を抑止する。【解決手段】ホストコンピュータ１０１では、印字データ生成部１０３が、署名用アルゴリズム１０４及び署名用データ１０５を用いて、プリンタ１１０に転送する印字データに署名データを付加する。プリンタ１１０では、印字データ解析処理部１１２が、ホストコンピュータ１０１から転送された印字データに付加された署名データを抽出し、この抽出された署名データを、署名検証用アルゴリズム１１３及び署名検証用データ１１４を用いて検証する。【選択図】図１
2006159896.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置とネットワークを介して接続された印刷装置において、
前記情報処理装置から転送された印刷データに付加された署名データを抽出する署名抽出手段と、
前記署名データが正規の署名データであるか否かを検証するための所定情報を、前記ネットワークを介して受信して登録する登録手段と、
前記署名抽出手段によって抽出された署名データが正規の署名データであるか否かを、前記登録手段によって登録された前記所定情報を用いて検証する署名検証手段と、
前記署名データが正規の署名データであると前記署名検証手段が検証した場合は前記印刷データに基づく印刷処理を実行し、前記署名データが正規の署名データでないと前記署名検証手段が検証した場合は前記印刷データに基づく印刷処理を実行しない印刷処理手段と
を有することを特徴とする印刷装置。
【請求項２】
前記所定情報は、署名検証のための署名検証データであり、
前記署名検証手段は、前記印刷データに付加された前記署名データと前記署名検証データが一致した場合に、前記署名データが正規の署名データであると検証することを特徴とする請求項１記載の印刷装置。
【請求項３】
前記所定情報は、前記署名データを復号化するための鍵であり、
前記署名検証手段は、前記署名データを前記鍵を用いて復号化した復号化データに基づいて、前記署名データが正規の署名データであるか否かを検証することを特徴とする請求項１記載の印刷装置。
【請求項４】
前記印刷データに所定の変換処理を実行して変換データを生成する変換手段をさらに有し、
前記署名検証手段は、前記変換データと前記復号化データとが一致した場合に、前記署名データが正規の署名データであると検証することを特徴とする請求項３記載の印刷装置。
【請求項５】
前記署名データは、前記所定の変換処理が実行された前記印刷データを前記鍵を用いて暗号化することで生成した暗号化データであり、
前記復号化データは、前記署名データを前記鍵を用いて復号化したデータであることを特徴とする請求項４記載の印刷装置。
【請求項６】
前記鍵は秘密鍵であり、
前記署名データは、前記所定の変換処理が実行された前記印刷データを前記秘密鍵に対応する公開鍵を用いて暗号化したデータであり、
前記復号化データは、前記署名データを前記秘密鍵を用いて復号化したデータであることを特徴とする請求項４記載の印刷装置。
【請求項７】
前記鍵は公開鍵であり、
前記署名データは、前記所定の変換処理が実行された前記印刷データを前記公開鍵に対応する秘密鍵を用いて暗号化したデータであり、
前記復号化したデータは、前記署名データを前記公開鍵を用いて復号化したデータであることを特徴とする請求項４記載の印刷装置。
【請求項８】
前記登録手段は、複数の所定情報を登録することを特徴とする請求項１乃至請求項７のいずれかに記載の印刷装置。
【請求項９】
前記登録手段により登録された複数の所定情報の中から、少なくとも１つの所定情報を選択的に有効とする選択手段をさらに有することを特徴とする請求項８記載の印刷装置。
【請求項１０】
前記登録手段は、前記情報処理装置から受信した前記所定情報を登録することを特徴とする請求項１乃至請求項７のいずれかに記載の印刷装置。
【請求項１１】
ネットワークを介して接続された情報処理装置および印刷装置からなる印刷システムにおいて、
前記情報処理装置から前記印刷装置に転送する印刷データに署名データを付加する署名手段と、
前記情報処理装置から前記印刷装置に転送された前記印刷データに付加された前記署名データを抽出する署名抽出手段と、
前記署名データが正規の署名データであるか否かを検証するための所定情報を、前記印刷装置に登録する登録手段と、
前記署名抽出手段によって抽出された署名データが正規の署名データであるか否かを、前記登録手段によって登録された前記所定情報を用いて検証する署名検証手段と、
前記署名データが正規の署名データであると前記署名検証手段が検証した場合は前記印刷データに基づく印刷処理を実行し、前記署名データが正規の署名データでないと前記署名検証手段が検証した場合は前記印刷データに基づく印刷処理を実行しない印刷処理手段と
を有することを特徴とする印刷システム。
【請求項１２】
前記所定情報は、署名検証のための署名検証データであり、
前記署名検証手段は、前記印刷データに付加された前記署名データと前記署名検証データとが一致した場合に、前記署名データが正規の署名データであると検証することを特徴とする請求項１１記載の印刷システム。
【請求項１３】
前記所定情報は、前記署名データを復号化するための鍵であり、
前記署名検証手段は、前記印刷データに付加された前記署名データを前記登録手段によって登録された前記鍵を用いて復号化した復号化データに基づいて、前記署名データが正規の署名データであるか否かを検証することを特徴とする請求項１１記載の印刷システム。
【請求項１４】
前記印刷装置が前記情報処理装置から受信した前記印刷データに所定の変換処理を実行して第１の変換データを生成する第１の変換手段をさらに有し、
前記署名検証手段は、前記第１の変換データと前記復号化データとが一致する場合に、前記署名データが正規の署名データであると検証することを特徴とする請求項１３記載の印刷システム。
【請求項１５】
前記情報処理装置から前記印刷装置へ転送する前記印刷データに前記所定の変換処理を実行して第２の変換データを生成する第２の変換手段をさらに有し、
前記署名データは、前記第２の変換データを前記鍵を用いて暗号化したデータであり、
前記復号化データは、前記署名データを前記鍵を用いて復号化したデータであることを特徴とする請求項１４記載の印刷システム。
【請求項１６】
前記情報処理装置から前記印刷装置へ転送する前記印刷データに前記所定の変換処理を実行して第２の変換データを生成する第２の変換手段をさらに有し、
前記鍵は秘密鍵であり、
前記署名データは、前記第２の変換データを前記秘密鍵に対応する公開鍵を用いて暗号化したデータであり、
前記復号化データは、前記署名データを前記秘密鍵を用いて復号化したデータであることを特徴とする請求項１４記載の印刷システム。
【請求項１７】
前記情報処理装置から前記印刷装置へ転送する前記印刷データに前記所定の変換処理を実行して第２の変換データを生成する第２の変換手段をさらに有し、
前記鍵は公開鍵であり、
前記署名データは、前記第２の変換データを前記公開鍵に対応する秘密鍵を用いて暗号化したデータであり、
前記復号化データは、前記署名データを前記公開鍵を用いて復号化したデータであることを特徴とする請求項１４記載の印刷システム。
【請求項１８】
前記登録手段は、前記情報処理装置から前記印刷装置に転送された前記所定情報を登録することを特徴とする請求項１１乃至請求項１７のいずれかに記載の印刷システム。
【請求項１９】
前記情報処理装置は、前記署名データを生成する生成手段をさらに有し、
前記署名手段は、前記生成手段が生成した前記署名データを前記印刷データに付加することを特徴とする請求項１１乃至請求項１８のいずれかに記載の印刷システム。
【請求項２０】
前記情報処理装置は、前記ネットワークに接続された外部装置に対して前記署名データの送信を要求する要求手段をさらに有し、
前記署名手段は、前記要求手段の要求に応じて前記外部装置から前記情報処理装置に転送された前記署名データを前記印刷データに付加することを特徴とする請求項１１乃至請求項１８のいずれかに記載の印刷システム。
【請求項２１】
情報処理装置とネットワークを介して接続された印刷装置に適用される署名検証方法において、
前記情報処理装置から転送された印刷データに付加された署名データを抽出する署名抽出ステップと、
前記署名データが正規の署名データであるか否かを検証するための所定情報を、前記ネットワークを介して受信して登録する登録ステップと、
前記署名抽出ステップによって抽出された署名データが正規の署名データであるか否かを、前記登録ステップによって登録された前記所定情報を用いて検証する署名検証ステップと、
前記署名データが正規の署名データであると前記署名検証ステップが検証した場合は前記印刷データに基づく印刷処理を実行し、前記署名データが正規の署名データでないと前記署名検証ステップが検証した場合は前記印刷データに基づく印刷処理を実行しない印刷処理ステップと
を有することを特徴とする署名検証方法。
【請求項２２】
ネットワークを介して接続された情報処理装置および印刷装置からなる印刷システムに適用される署名検証方法において、
前記情報処理装置から前記印刷装置に転送する印刷データに署名データを付加する署名ステップと、
前記情報処理装置から前記印刷装置に転送された前記印刷データに付加された前記署名データを抽出する署名抽出ステップと、
前記署名データが正規の署名データであるか否かを検証するための所定情報を、前記印刷装置に登録する登録ステップと、
前記署名抽出ステップによって抽出された署名データが正規の署名データであるか否かを、前記登録ステップによって登録された前記所定情報を用いて検証する署名検証ステップと、
前記署名データが正規の署名データであると前記署名検証ステップが検証した場合は前記印刷データに基づく印刷処理を実行し、前記署名データが正規の署名データでないと前記署名検証ステップが検証した場合は前記印刷データに基づく印刷処理を実行しない印刷処理ステップと
を有することを特徴とする署名検証方法。
【請求項２３】
情報処理装置とネットワークを介して接続された印刷装置に適用される署名検証方法を、コンピュータに実行させるためのプログラムにおいて、
前記情報処理装置から転送された印刷データに付加された署名データを抽出する署名抽出ステップと、
前記署名データが正規の署名データであるか否かを検証するための所定情報を、前記ネットワークを介して受信して登録する登録ステップと、
前記署名抽出ステップによって抽出された署名データが正規の署名データであるか否かを、前記登録ステップによって登録された前記所定情報を用いて検証する署名検証ステップと、
前記署名データが正規の署名データであると前記署名検証ステップが検証した場合は前記印刷データに基づく印刷処理を実行し、前記署名データが正規の署名データでないと前記署名検証ステップが検証した場合は前記印刷データに基づく印刷処理を実行しない印刷処理ステップと
を有することを特徴とするプログラム。
【請求項２４】
ネットワークを介して接続された情報処理装置および印刷装置を有する印刷システムに適用される署名検証方法を、コンピュータに実行させるためのプログラムにおいて、
前記情報処理装置から前記印刷装置に転送する印刷データに署名データを付加する署名ステップと、
前記情報処理装置から前記印刷装置に転送された前記印刷データに付加された前記署名データを抽出する署名抽出ステップと、
前記署名データが正規の署名データであるか否かを検証するための所定情報を、前記印刷装置に登録する登録ステップと
前記署名抽出ステップによって抽出された署名データが正規の署名データであるか否かを、前記登録ステップによって登録された前記所定情報を用いて検証する署名検証ステップと、
前記署名データが正規の署名データであると前記署名検証ステップが検証した場合は前記印刷データに基づく印刷処理を実行し、前記署名データが正規の署名データでないと前記署名検証ステップが検証した場合は前記印刷データに基づく印刷処理を実行しない印刷処理ステップと
を有することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置、印刷システム、署名検証方法、及びプログラムに関し、特に、情報処理装置とネットワークを介して接続された印刷装置、ネットワークを介して接続された情報処理装置および印刷装置からなる印刷システム、該印刷装置または印刷システムに適用される署名検証方法、並びに該署名検証方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
複数のホストコンピュータ及びプリンタによって構築されたネットワークにおいて、従来、各ホストコンピュータに、異なるバージョンのプリンタドライバがそれぞれインストールされることがあった。また、各プリンタが、同じプリンタ言語で動作するが、プリンタの種類が異なる場合に、各ホストコンピュータに、異なる種類のプリンタにそれぞれ合わせたプリンタドライバがそれぞれインストールされることがあった。このような場合、異なるバージョンのプリンタドライバや、同じプリンタ言語で動作するが異なるプリンタ種類用のプリンタドライバでそれぞれ作成された印刷情報が、同一のプリンタに対して送られる。特に、特定のプリンタ種類用のプリンタドライバで作成された印刷情報を、他の種類のプリンタに対して使用して印刷を行った場合、印刷不良、プリンタの環境設定情報の間違った書き換え、フォントキャッシュの書き換え等の問題が発生することがあった。
【０００３】
これを解決するため、外部装置のプリンタドライバから転送される印刷情報を解析して印刷処理を行うプリンタ装置が知られている（例えば、特許文献１参照）。このプリンタ装置は、プリンタ本体を管理するための第１の管理情報を記憶しておく。一方、プリンタドライバが生成する印刷情報内には、プリンタドライバを識別して管理するための第２の管理情報を埋め込んでおく。そして、プリンタ装置は、外部装置のプリンタドライバから転送された第２の管理情報を第１の管理情報と比較し、これらが一致しない場合に、外部装置に対する印刷情報の要求を制御する。
【特許文献１】特開平８−２１６４８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来のプリンタ装置では、以下のような問題点があった。
【０００５】
即ち、プリンタ装置は、印刷情報を生成したプリンタドライバが、自装置に対応するプリンタドライバでありさえすれば、転送された印刷情報に基づいて印刷処理を実行してしまう。このため、例えば、プリンタ装置は、システム管理者が使用を許可していないプリンタドライバから印刷情報を受信した場合でも、そのプリンタドライバから送信された印刷情報によって印刷処理を実行してしまう。なお、システム管理者が使用を許可していないプリンタドライバとは、例えば、印刷に不具合が生じてしまう可能性のあるプリンタドライバをいう。そして、システム管理者が使用を許可していないプリンタドライバが使用されると、印刷不良等が発生し、システム管理者への問い合わせや、用紙を含むプリンタ資源の無駄な消費が発生することがあるという問題があった。
【０００６】
また、セキュリティ、課金、印刷枚数管理等の目的で、システム管理者が特定のプリンタドライバだけを使用できるようにしたプリントネットワークシステムにおいても問題がある。例えば、ユーザが、システム管理者が使用を許可していないプリンタドライバを入手してホストコンピュータにインストールした場合、セキュリティ、課金、印刷枚数管理等をすり抜けて、印刷ができてしまうという問題があった。
【０００７】
本発明はこのような問題点に鑑みてなされたものであって、使用許可のないプリンタドライバから送られた印刷データに基づく印刷処理を抑止することを可能にした印刷装置、印刷システム、署名検証方法、及びプログラムを提供することを目的とする。
【０００８】
また、本発明は、印刷不良等の発生を防止でき、システム管理者への問い合わせや、用紙を含むプリンタ資源の無駄な消費の発生を未然に防止することを可能にした印刷装置、印刷システム、署名検証方法、及びプログラムを提供することを他の目的とする。
【０００９】
また、本発明は、システム管理者の管理下において印刷が行われることを確実に実現する印刷装置、印刷システム、署名検証方法、及びプログラムを提供することを他の目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、請求項１記載の発明によれば、情報処理装置とネットワークを介して接続された印刷装置において、前記情報処理装置から転送された印刷データに付加された署名データを抽出する署名抽出手段と、前記署名データが正規の署名データであるか否かを検証するための所定情報を、前記ネットワークを介して受信して登録する登録手段と、前記署名抽出手段によって抽出された署名データが正規の署名データであるか否かを、前記登録手段によって登録された前記所定情報を用いて検証する署名検証手段と、前記署名データが正規の署名データであると前記署名検証手段が検証した場合は前記印刷データに基づく印刷処理を実行し、前記署名データが正規の署名データでないと前記署名検証手段が検証した場合は前記印刷データに基づく印刷処理を実行しない印刷処理手段とを有することを特徴とする印刷装置が提供される。
【００１１】
また、請求項１１記載の発明によれば、ネットワークを介して接続された情報処理装置および印刷装置からなる印刷システムにおいて、前記情報処理装置から前記印刷装置に転送する印刷データに署名データを付加する署名手段と、前記情報処理装置から前記印刷装置に転送された前記印刷データに付加された前記署名データを抽出する署名抽出手段と、前記署名データが正規の署名データであるか否かを検証するための所定情報を、前記印刷装置に登録する登録手段と、前記署名抽出手段によって抽出された署名データが正規の署名データであるか否かを、前記登録手段によって登録された前記所定情報を用いて検証する署名検証手段と、前記署名データが正規の署名データであると前記署名検証手段が検証した場合は前記印刷データに基づく印刷処理を実行し、前記署名データが正規の署名データでないと前記署名検証手段が検証した場合は前記印刷データに基づく印刷処理を実行しない印刷処理手段とを有することを特徴とする印刷システムが提供される。
【００１２】
また、請求項２１記載の発明によれば、情報処理装置とネットワークを介して接続された印刷装置に適用される署名検証方法において、前記情報処理装置から転送された印刷データに付加された署名データを抽出する署名抽出ステップと、前記署名データが正規の署名データであるか否かを検証するための所定情報を、前記ネットワークを介して受信して登録する登録ステップと、前記署名抽出ステップによって抽出された署名データが正規の署名データであるか否かを、前記登録ステップによって登録された前記所定情報を用いて検証する署名検証ステップと、前記署名データが正規の署名データであると前記署名検証ステップが検証した場合は前記印刷データに基づく印刷処理を実行し、前記署名データが正規の署名データでないと前記署名検証ステップが検証した場合は前記印刷データに基づく印刷処理を実行しない印刷処理ステップとを有することを特徴とする署名検証方法が提供される。
【００１３】
また、請求項２２記載の発明によれば、ネットワークを介して接続された情報処理装置および印刷装置からなる印刷システムに適用される署名検証方法において、前記情報処理装置から前記印刷装置に転送する印刷データに署名データを付加する署名ステップと、前記情報処理装置から前記印刷装置に転送された前記印刷データに付加された前記署名データを抽出する署名抽出ステップと、前記署名データが正規の署名データであるか否かを検証するための所定情報を、前記印刷装置に登録する登録ステップと、前記署名抽出ステップによって抽出された署名データが正規の署名データであるか否かを、前記登録ステップによって登録された前記所定情報を用いて検証する署名検証ステップと、前記署名データが正規の署名データであると前記署名検証ステップが検証した場合は前記印刷データに基づく印刷処理を実行し、前記署名データが正規の署名データでないと前記署名検証ステップが検証した場合は前記印刷データに基づく印刷処理を実行しない印刷処理ステップとを有することを特徴とする署名検証方法が提供される。
【００１４】
さらに、上記署名検証方法をコンピュータに実行させるためのプログラムが提供される。
【発明の効果】
【００１５】
本発明によれば、情報処理装置から転送された印刷データに付加された署名データを抽出する。また署名データが正規の署名データであるか否かを検証するための所定情報を、ネットワークを介して受信して登録する。そして、前記抽出された署名データが正規の署名データであるか否かを、前記登録された所定情報を用いて検証する。その結果、署名データが正規の署名データであると検証された場合は印刷データに基づく印刷処理を実行し、署名データが正規の署名データでないと検証された場合は印刷データに基づく印刷処理を実行しない。
【００１６】
これにより、使用許可のないプリンタドライバから送られた印字データに基づく印刷処理を抑止することが可能となる。したがって、印刷不良等の発生を防止でき、システム管理者への問い合わせや、用紙を含むプリンタ資源の無駄な消費の発生を未然に防止できる。また、セキュリティ、課金、印刷枚数管理等をすり抜けて、印刷が行われることを防止できる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明を実施するための最良の形態について、図面を参照して説明する。
【００１８】
〔第１の実施の形態〕
図１は、本発明の第１の実施の形態に係る印刷システムのソフトウェア構成を示すブロック図である。
【００１９】
図１において、１０１はホストコンピュータ、１１０はプリンタであり、ホストコンピュータ１０１とプリンタ１１０はネットワーク接続されている。
【００２０】
ホストコンピュータ１０１において、１０２はプリンタドライバである。プリンタドライバ１０２は、ホストコンピュータ１０１上で動作する文書編集プログラム等で作成された図形、イメージ、文字等を含む文書情報を、プリンタ１１０が解釈できるページ記述言語等に変換する。プリンタドライバ１０２は、システム管理者によって承認されたもので、システム管理者からホストコンピュータ１０１のユーザに配布されたものである。
【００２１】
プリンタドライバ１０２は、印字データの生成を行う印字データ生成部１０３を有する。また、プリンタドライバ１０２は、印字データ生成部１０３により呼び出され、印字データに付加する署名を生成する署名用アルゴリズム１０４を有する。また、プリンタドライバ１０２は、署名用データ１０５を有し、署名用アルゴリズム１０４が印字データに付加する署名を示すデータである。なお、署名用データ１０５は、システム管理者だけが知り得る内容となっている。印字データ生成部１０３は、署名アルゴリズム１０４及び署名用データ１０５を用いて、印字データに署名を付加することにより、署名データ１０８付き印字データ１０７を作成する。作成された署名データ１０８付き印字データ１０７は、通信制御部１０６により、通信経路１０９を介してプリンタ１１０に送信される。
【００２２】
プリンタ１１０において、１１１は通信処理部であり、通信経路１０９を介してホストコンピュータ１０１から署名データ１０８付き印字データ１０７を受信する。受信された署名データ１０８付き印字データ１０７は、印字データ解析処理部１１２で解析され、署名データ１０８が抽出される。署名検証用アルゴリズム１１３は、署名検証用データ１１４を用いて、抽出された署名データ１０８に対して署名検証を行う。署名検証用データ１１４は、前述した署名用データ１０５と同様にシステム管理者だけが知り得る内容となっている。署名検証用アルゴリズム１１３による署名検証の結果、正しい署名であると判定された場合、署名データ１０８付き印字データ１０７は、印字データ解析処理部１１２にて、必要に応じて署名データ１０８を削除する等の加工を施される。そして、その後に印字データ１０７は印刷処理部１１５に転送され、ここで印刷がなされる。この場合、ホストコンピュータ１０１が送信した印字データ１０７は、システム管理者によって使用が許可されたプリンタドライバであると判定されたこととなる。
【００２３】
１１６は署名検証手段登録部であり、署名検証用アルゴリズム１１３及び／又は署名検証用データ１１４を、プリンタ１１０に登録、及び／又は、プリンタ１１０から削除する処理を行う。
【００２４】
なお、プリンタドライバ１０２への署名用アルゴリズム１０３及び／又は署名用データ１０４の登録処理に関しては、システム管理者の指示によって別の専用のプログラムにて処理されるため、ホストコンピュータ１０１上には存在しない。
【００２５】
図２は、第１の実施の形態に係る印刷システムのハードウェア構成を示すブロック図である。
【００２６】
ホストコンピュータ１０１は、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、外部記憶装置２１０を備える。ＲＯＭ２０３または外部記憶装置２１０は、オペレーティングシステム、文書処理プログラム、印刷データ作成プログラム等のソフトウェアを記憶する。また、ＣＰＵ２０１は、こうしたＲＯＭ２０３または外部記憶装置２１０に記憶されたソフトウェアを実行し、システムバス２０４に接続された各デバイスを総括的に制御する。ＲＡＭ２０２は、ＣＰＵ２０１の主メモリあるいはワークエリアなどとして機能する。外部記憶装置２１０は、ハードディスク（ＨＤ）、フロッピー（登録商標）ディスク（ＦＤ）等のいずれかの種類の記憶装置である。そして、外部記憶装置２１０は、ブートプログラム、オペレーティングシステム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、印字データ生成プログラムなどを記憶する。
【００２７】
さらにホストコンピュータ１０１において、２０５はキーボードコントローラ（ＫＢＤＣ）であり、キーボード（ＫＢＤ）２０６や図示しないポインティングデバイスからの入力情報をＣＰＵ２０１に送る。２０７はビデオコントローラ（ＶＣ）であり、ＣＲＴやＬＤＣ等からなる表示装置２０８の表示を制御する。２０９はディスクコントローラ（ＤＫＣ）であり、外部記憶装置２１０とのアクセスを制御する。
【００２８】
２１１は通信コントローラ（ＣＯＭＭＩ／Ｆ）であり、ローカルエリアネットワーク（ＬＡＮ）、ＩＥＥＥ１２８４、またはＵＳＢなどで構成される所定の通信経路１０９を介してプリンタ１１０に接続される。
【００２９】
プリンタ１１０において２２０はＣＰＵである。そして、ＣＰＵ２２０は、ＲＯＭ２２２または記憶装置２２９に記憶された制御プログラム等に基づいて、システムバス２２３に接続された印刷部Ｉ／Ｆ２２５を介して印刷部（プリンタエンジン）２２６に出力情報としての画像信号を出力する。記憶装置２２９は、ハードディスク（ＨＤ）等で構成され、ＣＰＵ２２０のワークエリアあるいは一時記憶部として機能する。
【００３０】
２２１はＲＡＭであり、ＣＰＵ２２０の主メモリあるいはワークエリアなどとして機能する。２２７は操作パネル（操作部）であり、ボタンやタッチパネルの入力部と、液晶パネルやＬＥＤ等の表示部とから構成され、プリンタ１１０の動作モード設定等の入力操作や、プリンタ１１０の動作状態の表示が行われる。２２８はディスクコントローラ（ＤＫＣ）であり、記憶装置２２９とのアクセスを制御する。
【００３１】
２１４は通信コントローラ（ＣＯＭＭＩ／Ｆ）であり、通信経路１０９を介してホストコンピュータ１０１に接続される。
【００３２】
図３は、図１に示す署名付き印字データ１０７の構成を示す図である。
【００３３】
署名付き印字データ１０７は、署名データ１０８と、印字データ部分３０１とにより構成される。署名データ１０８は、この印字データに署名する際に使用された署名アルゴリズムを識別するための識別子３０２、ホストコンピュータ１０１を使用しているユーザ名３０３、署名を行った日付／時刻３０４、署名３０５等から構成される。
【００３４】
図４は、ホストコンピュータ１０１の印字データ生成部１０３で行われる署名付加処理の主要な手順を示すフローチャートである。この署名付加処理は、署名を付加されていない印字データの入力によって開始される。
【００３５】
署名付加処理では先ず、ステップＳ４０１で、印字データ生成部１０３が署名用アルゴリズム１０４を呼び出す。呼び出された署名用アルゴリズム１０４は、署名用データ１０５を用いて署名データ１０８を生成し、これを印字データ生成部１０３に送る。
【００３６】
次のステップＳ４０２では、印字データ生成部１０３が、送られた署名データ１０８と、入力された印字データとを結合して署名付き印字データ１０７を生成し、本処理を終了する。
【００３７】
図５は、プリンタ１１０の印字データ解析処理部１１２で行われる署名検証処理の主要な手順を示すフローチャートである。この署名検証処理は、署名付き印刷データ１０７の入力によって開始される。
【００３８】
ステップＳ５０１で、印字データ解析処理部１１２は、入力された署名付き印刷データ１０７を、印字データ３０１と署名データ１０８とに分離する。次にステップＳ５０２で、印字データ解析処理部１１２は、署名検証用アルゴリズム１１３を呼び出す。呼び出された署名検証用アルゴリズム１１３は、署名検証用データ１１４を用いて、分離された署名データ１０８を基に署名の検証を行い（詳しくは後述）、その検証結果を印字データ解析処理部１１２に送る。
【００３９】
ステップＳ５０３で、印字データ解析処理部１１２は、送られた検証結果に基づき、次に行うべき処理を決める。すなわち、検証が成功すれば（正規の署名であることが認証されれば）、ステップＳ５０４へ進み、検証が失敗すれば（正規の署名であることが認証されなければ）、ステップＳ５０５へ進む。
【００４０】
ステップＳ５０４で、印字データ解析処理部１１２は、ステップＳ５０１で分離された印字データ３０１を印刷処理部１１５に転送し、印字データ３０１の印刷を行わせる。一方、ステップＳ５０５で、印字データ解析処理部１１２は、ステップＳ５０１で分離された印字データ３０１を破棄し、エラー処理を行う。このエラー処理では、例えばログへの記録、登録された管理者への電子メールによるエラー通知等が行われる。
【００４１】
次に、署名用アルゴリズム１０４および署名用データ１０５並びに署名検証用アルゴリズム１１３および署名検証用データ１１４について、以下に３つの方式を挙げて説明する。
【００４２】
第１の方式は、署名用データ１０５及び署名検証用データ１１４に共通のデータ列を用いて同一性を確認する認証を行う方式である。
【００４３】
第１の方式で、システム管理者は、署名用データ１０５と署名検証用データ１１４とに、例えば乱数生成器等により予め生成された同一の共通データ列を格納しておく。そして、ホストコンピュータ１０１上の署名用アルゴリズム１０４は、署名用データ１０５からこの共通データ列を読み出して印字データに付加して、署名データ１０８付き印字データ１０７を作成する。一方、プリンタ１１０内の署名検証用アルゴリズム１１３は、署名データ１０８付き印字データ１０７から署名３０５を抽出し、この署名３０５と署名検証用データ１１４とを比較して署名検証を行う。そして、署名検証用アルゴリズムは、署名３０５と署名検証用データ１１４とを比較してそれらが一致した場合に、署名３０５が正規の署名であると認証する。
【００４４】
第２の方式は、署名用データ１０５及び署名検証用データ１１４に共通鍵を用いてダイジェスト認証を行う方式である。
【００４５】
第２の方式は、署名用アルゴリズム１０４として、ＳＨＡ−１ＨＭＡＣやＭＤ５ＭＨＡＣとして知られるメッセージの認証システムを用いるものである。ＳＨＡ−１ＨＭＡＣはＳＨＡ−１ダイジェストを用いたメッセージ認証チェックサムであり、ＭＤ５ＭＨＡＣはＭＤ５ダイジェストを用いたメッセージ認証チェックサムである。システム管理者は、署名用データ１０５と署名検証用データ１１４とに、例えば乱数生成器等により予め生成された共通鍵を格納しておく。そして、ホストコンピュータ１０１上の署名用アルゴリズム１０４は、ＭＨＡＣの値と、署名用データ１０５内の共通鍵とを連結した値を署名として印字データに付加して、署名データ１０８付き印字データ１０７を作成する。ここで、ＨＭＡＣの値とは、印字データのＳＨＡ−１またはＭＤ５によるメッセージダイジェストを示すものである。一方、プリンタ１１０内の署名検証用アルゴリズム１１３は、署名データ１０８付き印字データ１０７から署名３０５と印字データ３０１とを抽出する。そして、署名検証用アルゴリズム１１３は、印字データ３０１と署名検証用データ１１４からＨＭＡＣを計算し、これと署名３０５との一致をもって、正規の署名であると認証する。
【００４６】
この第２の方式を用いることにより、印字データ３０１部分の改竄も同時に検出することが可能となる。
【００４７】
第３の方式は、署名用データ１０５及び署名検証用データ１１４に公開鍵を用いてデジタル署名による認証を行う方式である。
【００４８】
署名用アルゴリズム１０４として、ＲＳＡアルゴリズム、ＥＣＤＨアルゴリズム等の公開鍵暗号を用いたデジタル署名を用いる。
【００４９】
システム管理者は、署名用データ１０５及び署名検証用データ１１４として、予め決められた公開鍵暗号の公開鍵及び秘密鍵をそれぞれ格納させておく。そして、ホストコンピュータ１０１上の署名用アルゴリズム１０４は、印字データのＳＨＡ−１またはＭＤ５によるメッセージダイジェストを、署名用データ１０５内の公開鍵暗号の公開鍵で暗号化した値を署名として印字データに付加する。それにより、署名データ１０８付き印字データ１０７が作成される。一方、プリンタ１１０内の署名検証用アルゴリズム１１３は、署名データ１０８付き印字データ１０７から印字データ３０１と署名３０５とを抽出する。そして、署名検証用アルゴリズム１１３は、この署名３０５を署名検証用データ１１４内の公開鍵暗号の秘密鍵を用いて復号し、これと、印字データ３０１のダイジェストの計算結果とが一致することをもって、正規の署名であると認証する。
【００５０】
この第３の方式を用いることにより、印字データ３０１部分の改竄も同時に検出することが可能となる。
【００５１】
図６は、ホストコンピュータ１０１のプリンタドライバ１０２に署名用アルゴリズム１０４及び署名用データ１０５を登録する際に、ホストコンピュータ１０１の表示装置２０８に表示される画面例を示す図である。システム管理者は、この画面を用いて、プリンタドライバ１０２に署名用アルゴリズム１０４及び署名用データ１０５を登録する。
【００５２】
プルダウンメニュー６０１に含まれる３つの方式の中から、使用すべき署名用アルゴリズムを選択する。「鍵生成」ボタン６０２の押下により、プルダウンメニュー６０１で選択された署名用アルゴリズムで使用する署名用データ及び署名検証用データが作成される。そして、プリンタドライバ１０２が作成した署名検証用データが、プリンタ用鍵ボックス６０４に表示される。署名検証用データは、これをプリンタ１１０に署名検証用データ１１４として登録する必要がある。従って、「コピー」ボタン６０５の押下により、オペレーティングシステム内の一時メモリにコピーされたり、「保存．．．」ボタン６０６の押下によりファイルに保存されたりする。一方、作成された署名用データは、「ドライバへ書き込み．．．」ボタン６０３の押下により、署名用データ１０５として書き込まれ、登録される。なお署名用データは、プルダウンメニュー６０１で選択した署名用アルゴリズムと共に書き込まれ、登録される。
【００５３】
なお、図６は、署名用アルゴリズム１０４として、ＲＳＡ公開鍵／デジタル署名がシステム管理者により選択された例を示している。この場合、プリンタドライバ１０２は、ＲＳＡ暗号方式に基づいて、署名用データ１０５として公開鍵を生成し、署名検証用データ１１４として公開鍵に対応する秘密鍵を生成する。公開鍵と秘密鍵は、一方の鍵で暗号化したデータはもう一方の鍵でしか復号化できないという特徴を有する。また、公開鍵と秘密鍵は、データの暗号化で使用した鍵と同じ鍵を用いて、そのデータを復号化することもできないという特徴を有する。
【００５４】
図７は、プリンタ１１０に署名検証用アルゴリズム１１３及び署名検証用データ１１４を登録する際に、図示しないクライアントＰＣの表示装置に表示される画面例を示す図である。この署名検証処理の登録画面は、プリンタ１１０内に含まれる図示しないＨＴＴＰサービスによってＷｅｂアプリケーションとして実装されており、上記クライアントＰＣ上で動作するＷｅｂブラウザから操作される。
【００５５】
７０１は署名検証用プログラム名入力フィールドである。ユーザはこのフィールドに、プリンタ１１０の署名検証用アルゴリズム１１３として登録すべき署名検証用アルゴリズム（クライアントＰＣのファイルシステムに予め格納されている）のファイルパスを入力する。ユーザが「ファイルを選択」ボタン７０２をクリックすると、クライアントＰＣのＷｅｂブラウザが提供するファイル選択ダイアログが開く。そして、ユーザは、クライアントＰＣのファイルシステム内をブラウズして、ファイルシステム内の署名検証用アルゴリズムファイルを表示させる。そして、ユーザは、この中から、登録すべき署名検証用アルゴリズムを選択することができる。ファイル選択ダイアログで選択されたファイルのファイルパスは、自動的に署名検証用プログラム名入力フィールド７０１に入力される。
【００５６】
７０３は署名検証用データ（鍵）の入力フィールドであり、署名検証用プログラム名入力フィールド７０１に入力された署名検証用アルゴリズム、及び図６のプルダウンメニュー６０１で選択された署名用アルゴリズムに対応した署名検証用データが入力される。通常、図６の「鍵生成」ボタン６０２の押下によりプリンタ用鍵ボックス６０４に表示された署名検証用データをコピーしたものが、入力フィールド７０３に貼り付けられる。
【００５７】
７０４は「登録」ボタンであり、ユーザがこのボタン７０４を押下すると、以下の動作が実行される。実行される動作は、以下の２つのデータを、クライアントＰＣ上で動作するＷｅｂブラウザが、プリンタ１１０上で動作するＷｅｂアプリケーションに送信する動作である。１つ目のデータは、署名検証用プログラム名入力フィールド７０１に入力された署名検証用アルゴリズムである。そしてもう１つのデータは、署名検証用データ（鍵）の入力フィールド７０３に入力された署名検証用データ（鍵）である。Ｗｅｂアプリケーションは、受信した署名検証用アルゴリズム及び署名検証用データ（鍵）をそれぞれ、署名検証用アルゴリズム１１３及び署名検証用データ１１４として保存し登録する。
【００５８】
なお図６及び図７にそれぞれ示した画面を用いて、署名用アルゴリズム及び署名用データ並びに署名検証用アルゴリズム及び署名検証用データの登録が行われるが、これに代わって他の方法を利用しても良い。例えば、プリンタドライバ１０２及びプリンタ１１０内に、相互に関係のある単一のアルゴリズムを予め実装しておき、署名用データ１０５及び署名検証用データ１１４だけを後から登録するように構成してもよい。または、プリンタドライバ１０２及びプリンタ１１０内に、相互に関係のある複数のアルゴリズムを予め実装しておく方法もある。この方法では、図６及び図７にそれぞれ示した画面を用いて、使用するアルゴリズムを選択し、署名用アルゴリズム１０４及び署名検証用アルゴリズム１１３として登録するする。そして、この選択されたアルゴリズムに対応して作成された署名用データ及び署名検証用データを署名用データ１０５及び署名検証用データ１１４として登録するようにすれば良い。
【００５９】
〔第２の実施の形態〕
次に、本発明の第２の実施の形態を説明する。
【００６０】
第２の実施の形態の説明においては、第１の実施の形態の構成と同一部分には同一の参照符号を付して、第１の実施の形態の説明を流用し、異なる部分だけを説明する。
【００６１】
第２の実施の形態は、複数のプリンタが、それぞれ異なる署名検証用アルゴリズムを備えている場合に関する。そして、第２の実施の形態は、１つのプリンタドライバで作成された印字データを、システム管理者によって承認されている複数のプリンタにおいて印刷処理させる場合を想定した実施の形態である。第２の実施の形態では、プリンタドライバ側で、同一の印字データに対して複数の署名検証用アルゴリズムを用いて複数の署名を作成し付加するようにしている。さらに第２の実施の形態は、複数のプリンタドライバによって同一の印字データに対して、それぞれ異なる複数の署名用アルゴリズム及びデータを用いて異なる署名が付加された場合に関する。そして、第２の実施の形態は、どちらの印字データに対してもプリンタで署名検証が正常に行われ印刷処理を可能にさせたい場合を想定した実施の形態である。第２の実施の形態では、プリンタ側に、複数の署名検証用アルゴリズム及びデータを登録できるようにしている。
【００６２】
図８は、第２の実施の形態におけるホストコンピュータのプリンタドライバ側で作成される署名付き印字データの構成を示す図である。
【００６３】
図８において８０１は署名数であり、この印字データ中に含まれる署名データの数を示す。図８に示す例では２つの署名データが付加されているため、ここには２が設定されている。署名数８０１の次に、署名数８０１で示された数の署名データ８０３，８０４が続く。各署名データの内容は、基本的に図３に示す第１の実施の形態における署名データ１０８と同様であるが、第２の実施の形態では、署名データの長さを示す署名データ長フィールド８０２が追加されている。この署名データ長フィールド８０２に示される署名データ長により、プログラムは次の署名データ８０４の開始位置、及び印字データ３０１の開始位置を特定することが可能となる。
【００６４】
図９は、第２の実施の形態のホストコンピュータにおいて、例えば公開鍵暗号方式を用いて複数の署名データを作成して印字データに付加する場合におけるプリンタドライバの構成例を示すブロック図である。
【００６５】
図９に示すプリンタドライバの構成例では、署名用データの追加や削除を容易にするために、署名用アルゴリズム及び署名用データを、プリンタドライバ本体９０１とは別に、署名用共有ライブラリ９０２として実装している。
【００６６】
署名用共有ライブラリ９０２において、９０３は、署名用共有ライブラリに関する情報を格納する共有ライブラリヘッダ、９０４は、署名用アルゴリズムを実装した署名用プログラム／アルゴリズムである。プリンタドライバ本体９０１は、署名用プログラム／アルゴリズム９０４を呼び出すことにより、印字データ３０１に対する署名データ８０３，８０４の作成を行う。
【００６７】
９０５は署名データ数であり、署名用共有ライブラリ９０２中に含まれる署名用データの数を示す。図９に示す例では、署名データ数９０５は２である。
【００６８】
９０６および９０９は署名用データであり、署名用の公開鍵９０７，９１０及び署名９０８，９１１によりそれぞれ構成される。公開鍵９０７，９１０は、印字データ３０１にデジタル署名を付加する際に利用され、印字データ３０１のダイジェストはこの公開鍵によって暗号化される。
【００６９】
署名９０８，９１１の算出は、プリンタドライバ本体９０１のダイジェストと、署名用共有ライブラリ９０２のプログラム部分（９０３及び９０４）のダイジェストとの結合を、公開鍵９０７，９１０に対応する秘密鍵で暗号化することによって行う。このように算出しているのは、公開鍵９０７、９１０をプリンタドライバ本体９０１及び署名用プログラム／アルゴリズム９０４に束縛するためである。
【００７０】
プリンタドライバ本体９０１内のプログラムは、以下の２つの値が一致することをもって、署名用共有ライブラリ９０２が、このプリンタドライバ本体９０１に対して有効であることを確認する。１つは、プリンタドライバ本体９０１のダイジェストと、署名用共有ライブラリ９０２のプログラム部分（９０３及び９０４）のダイジェストとの結合である。そして、もう１つは、署名９０８を公開鍵９０７で復号した値または署名９１１を公開鍵９１０で復号した値である。
【００７１】
なお、図９に示すプリンタドライバの構成とは別の構成として、署名用共有ライブラリ９０２から、署名データ数９０５、署名用データ９０５，９０９を分離する構成も可能である。この場合、共有ライブラリヘッダ９０３及び署名用プログラム／アルゴリズム９０４のみを含む署名用共有ライブラリと、署名データ数９０５、署名用データ９０５，９０９を含む署名用データ部分とに分割される。この場合、ファイルの構成は、図９の構成に比較して複雑になるが、署名用データ部分が署名用共有ライブラリとは別ファイルに分離されたことにより、署名用データの登録／削除が容易となる。更に、署名用共有ライブラリから署名用データを分離する処理が不要となるため、プリンタドライバ本体９０１及び署名用共有ライブラリの検証処理での署名用共有ライブラリ部分のダイジェストの計算、印字データ３０１への署名付加処理等が容易となる。
【００７２】
なお、図９に示すプリンタドライバの構成では、公開鍵暗号方式を用いて複数の署名データを作成して印字データに付加する場合を想定している。それ以外にも、プリンタドライバの構成は、他の署名データの作成方式を用いて複数の署名データを作成して印字データに付加するようにしてもよい。
【００７３】
つぎに、第２の実施の形態におけるプリンタについて説明する。
【００７４】
図１０は、第２の実施の形態のプリンタにおける複数の署名検証用アルゴリズム及び複数の署名検証用データの保持構成を示す図である。
【００７５】
第２の実施の形態におけるプリンタには、複数の署名検証用アルゴリズム及び複数の署名検証用データを登録可能である。１００１及び１００２は、プリンタに登録されている署名検証用プログラム（Ａ），（Ｂ）であり、それぞれ異なる署名検証用アルゴリズムを実装している。１００３，１００６及び１００９は、署名検証用データセット（１），（２），（３）である。１００３、１００６及び１００９の各々は、署名検証用プログラムを識別する識別子１００４，１００７及び１０１０と、署名検証用プログラムに対応した署名検証用データ（１〜３）１００５，１００８，１０１１とから構成される。図１０に示す例では、署名検証用データセット（１）１００３及び署名検証用データセット（２）１００６は、署名検証用プログラム（Ａ）１００１に対応するとともに署名検証用プログラム（Ａ）１００１で用いられる。また、署名検証用データセット（３）１００９は、署名検証用プログラム（Ｂ）１００２に対応するとともに署名検証用プログラム（Ｂ）１００２で用いられる。
【００７６】
図１１は、複数の署名検証用アルゴリズム及び署名検証用データが登録されているプリンタで、複数の署名データが付加された印字データを受信した場合に、プリンタで行われる印字データ検証処理の手順を示すフローチャートである。
【００７７】
署名データが付加された印字データを受け取ったプリンタは、ステップＳ１１０１で、署名データと印字データとを分離する。
【００７８】
つぎのステップＳ１１０２で、分離の結果、署名データが存在するか否かを判別し、署名データが存在するならばステップＳ１１０３へ進み、一方、署名データが存在しない場合は、検証失敗として本印字データ検証処理を終了する。
【００７９】
ステップＳ１１０３では、分離の結果得られた複数の署名データのうちの１つを取り出し、ステップＳ１１０４で、取り出した署名データと印字データ３０１とに基づき、後述の署名検証処理を実行する。このステップＳ１１０４における署名検証処理については、図１２を参照して詳述する。
【００８０】
ステップＳ１１０５にて、ステップＳ１１０４で行われた署名検証処理の結果を調べ、検証が成功した場合は、検証成功として本印字データ検証処理を終了する。一方、検証が失敗した場合、ステップＳ１１０６に進んで、ステップＳ１１０１で分離された複数の署名データのうち、ステップＳ１１０３〜Ｓ１１０５の処理が未だ行われていない署名データが存在するか否かを判別する。未処理の署名データが存在するならばステップＳ１１０３へ戻り、存在しなければ、検証失敗として本印字データ検証処理を終了する。
【００８１】
図１２は、図１１のステップＳ１１０４における署名検証処理の詳細な処理手順を示すフローチャートである。
【００８２】
先ずステップＳ１１１０で、複数の署名検証用データセット１００３，１００６，１００９のうち、つぎのステップＳ１１１１のアルゴリズム比較が行われていない署名検証用データセットが存在するか否かを判別する。存在しなければ、署名検証失敗として本署名検証処理を終了する。
【００８３】
アルゴリズム比較が行われていない署名検証用データセットが存在した場合、ステップＳ１１１１へ進む。そして、その存在した複数の署名検証用データセットのうちの１つにおけるプログラム識別子（１００４，１００７又は１０１０）と、図１１のステップＳ１１０３で取り出された署名データ中の署名アルゴリズムの識別子とを比較する。これらが一致しない場合、ステップＳ１１１０に戻る。一方、一致した場合、ステップＳ１１１２に進む。そして、一致したプログラム識別子に対応する署名検証用プログラム（１００１又は１００２）を呼び出す。更に、一致したプログラム識別子に対応する署名検証用データ（１００５，１００８又は１０１１）を署名検証用プログラムに使用させて、署名検証を行う。
【００８４】
ステップＳ１１１３で、ステップＳ１１１２での署名検証の結果が成功であった場合、署名検証成功として本署名検証処理を終了する。署名検証の結果が失敗であった場合、ステップＳ１１１０に戻り、次の署名検証用データセットを取り出す。
【００８５】
このように、第２の実施の形態では、複数のプリンタがそれぞれ異なる署名検証用アルゴリズムをもっていても、プリンタドライバ側で、図８および図９に示すように、それらに対応する複数の署名データを印字データに付加する。これにより、各プリンタでは、プリンタドライバから送られた複数の署名データのうちのいずれかを署名検証することができる。
【００８６】
また、図１０〜図１２に示すように、一つのプリンタが、複数の署名検証用アルゴリズム及び複数の署名検証用データを持つことになる。これにより、例えば、プリンタドライバの更新に際して、以下のデータセットを１つのプリンタに登録することができる。１つ目のデータセットは、プリンタドライバの古いバージョンにおける署名用アルゴリズム及び署名用データに対応した署名検証用アルゴリズムおよび署名検証用データである。また２つ目のデータセットは、新しいバージョンにおける署名用アルゴリズム及び署名用データに対応した署名検証用アルゴリズム及び署名検証用データである。古いバージョンのプリンタドライバと新しいバージョンのプリンタドライバとを識別して利用することが可能となる。
【００８７】
〔第３の実施の形態〕
次に、本発明の第３の実施の形態を説明する。
【００８８】
図１３は、第３の実施の形態における印刷システムの構成を示すブロック図である。
【００８９】
第３の実施の形態では、クライアントＰＣ１２０１、プリントサーバ１２０４、およびプリンタ１２０８をローカルエリアネットワーク（ＬＡＮ）１２１０によって接続することによって印刷システムが構成される。
【００９０】
第３の実施の形態では、印字データに署名を付加する処理を、印字データを作成する処理とは別の、印字データを中継するプリントサーバ１２０４上のアプリケーションが行うようにする。
【００９１】
すなわち、クライアントＰＣ１２０１上で動作するアプリケーションからの印刷指示により、クライアントＰＣ１２０１上で動作するプリンタドライバ１２０２が、印字データ１２０３を作成し、これを、プリントサーバ１２０４に送信する。プリントサーバ１２０４では、受信した印字データ１２０３に対して、プリントサーバ１２０４上で動作する署名付加フィルタ１２０５が、印字データ１２０３に署名１２０７を付加して署名付き印刷データ１２０６を作成する。そして、作成された署名付き印刷データ１２０６をプリンタ１２０８に送信する。プリンタ１２０８は、プリンタ１２０８に登録されている署名検証用アルゴリズム及び署名検証用データを用いて、署名付きプリントデータ１２０６内の署名１２０７を検証し、検証が成功した場合、これを印刷する。
【００９２】
第３の実施の形態では、プリントサーバ１２０４の署名付加フィルタ１２０５を介した印字データのみを印刷するように、プリンタ１２０８に制限を加えることが可能となる。
【００９３】
なお、第３の実施形態で、署名１２０７が付加された印刷データ１２０６は、プリントサーバ１２０４からプリンタ１２０８へ送信されている。しかしこの送信方法は、次のような送信方法であっても良い。まず、クライアントＰＣ１２０１がプリンタサーバ１２０４に対して印刷データ１２０６を送信することで、署名１２０７の生成を要求する。次に、プリンタサーバ１２０４は、印刷データ１２０６に基づいて署名１２０７を生成するとともに、クライアントＰＣ１２０１へ署名１２０７を送信する。そして、プリンタサーバ１２０４から署名１２０７を受信したクライアントＰＣ１２０１は、印刷データ１２０６に署名１２０７を付加してプリンタ１２０８へ送信する。
【００９４】
〔他の実施の形態〕
第１の実施の形態では、署名用データ１０５として公開鍵を用いた。しかし、署名用データ１０５として、他のデータを用いてもよい。例えば、署名用データ１０５として秘密鍵を用いても良い。この場合、ＲＳＡ暗号方式を用いて生成された秘密鍵が、ホストコンピュータ１０１のプリンタドライバ１０２が有する署名用データ１０５として用いられる。その一方で、ＲＳＡ暗号方式を用いて生成された公開鍵が、プリンタ１１０が有する署名検証用データ１１４として用いられる。
【００９５】
なお、本発明の目的は、前述した各実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給することによっても達成される。この場合、システムまたは装置のコンピュータ（またはＣＰＵ、ＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出して実行する。
【００９６】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体およびプログラムは本発明を構成することになる。
【００９７】
また、プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷを用いることができる。また、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。或いは、上記プログラムは、インターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続される他のコンピュータやデータベース等からダウンロードすることにより供給される。
【００９８】
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含まれる。
【００９９】
更に、プログラムコードを、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込む方法も考えられる。この場合、プログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行う。それにより、前述した各実施の形態の機能が実現される。
【図面の簡単な説明】
【０１００】
【図１】本発明の第１の実施の形態に係る印刷システムのソフトウェア構成を示すブロック図である。
【図２】第１の実施の形態に係る印刷システムのハードウェア構成を示すブロック図である。
【図３】図１に示す署名付き印字データの構成を示す図である。
【図４】ホストコンピュータの印字データ生成部で行われる署名付加処理の主要な手順を示すフローチャートである。
【図５】プリンタの印字データ解析処理部で行われる署名検証処理の主要な手順を示すフローチャートである。
【図６】ホストコンピュータのプリンタドライバに署名用アルゴリズム及び署名用データを登録する際に、ホストコンピュータの表示装置に表示される画面例を示す図である。
【図７】プリンタに署名検証用アルゴリズム及び署名検証用データを登録する際に、図示しないクライアントＰＣの表示装置に表示される画面例を示す図である。
【図８】第２の実施の形態におけるホストコンピュータのプリンタドライバ側で作成される署名付き印字データの構成を示す図である。
【図９】第２の実施の形態のホストコンピュータにおいて、例えば公開鍵暗号方式を用いて複数の署名データを作成して印字データに付加する場合におけるプリンタドライバの構成例を示すブロック図である。
【図１０】第２の実施の形態のプリンタにおける複数の署名検証用アルゴリズム及び複数の署名検証用データの保持構成を示す図である。
【図１１】複数の署名検証用アルゴリズム及び署名検証用データが登録されているプリンタで、複数の署名データが付加された印字データを受信した場合に、プリンタで行われる印字データ検証処理の手順を示すフローチャートである。
【図１２】図１１のステップＳ１１０４における署名検証処理の詳細な処理手順を示すフローチャートである。
【図１３】第３の実施の形態における印刷システムの構成を示すブロック図である。
【符号の説明】
【０１０１】
１０１  ホストコンピュータ
１０２  プリンタドライバ
１０３  印字データ生成部
１０４  署名用アルゴリズム
１０５  署名用データ
１０６，１１１  通信処理部
１０７  印字データ
１０８  署名データ
１０９  通信経路
１１０、１２０８  プリンタ
１１２  印字データ解析処理部
１１３  署名検証用アルゴリズム
１１４  署名検証用データ
１１５  印刷処理部
１１６  署名検証手段登録部
１２０１  クライアントＰＣ
１２０４  プリントサーバ
１２１０  ローカルエリアネットワーク
【図１】
2006159896.tif 000003
【図２】
2006159896.tif 000004
【図３】
2006159896.tif 000005
【図４】
2006159896.tif 000006
【図５】
2006159896.tif 000007
【図６】
2006159896.tif 000008
【図７】
2006159896.tif 000009
【図８】
2006159896.tif 000010
【図９】
2006159896.tif 000011
【図１０】
2006159896.tif 000012
【図１１】
2006159896.tif 000013
【図１２】
2006159896.tif 000014
【図１３】
2006159896.tif 000015