(57)【特許請求の範囲】
【請求項１】
データをネットワーク経由で他の情報処理装置に送信する情報処理装置であって、
前記他の情報処理装置が保持する複数の秘密鍵で構成される秘密鍵のセットと対をなす複数の公開鍵で構成される公開鍵のセットを、前記他の情報処理装置から受信する受信手段と、
共通鍵を生成する生成手段と、
前記共通鍵を用いて、データを暗号化する第１暗号化手段と、
前記データの属性に基づいて、前記公開鍵のセットの中から、暗号化に用いる公開鍵を選択する選択手段と、
前記選択手段で選択された公開鍵を用いて、前記共通鍵を暗号化する第２暗号化手段と、
前記第１暗号化手段で暗号化されたデータと、前記第２暗号化手段で暗号化された共通鍵と、前記属性とを含むデータを、前記他の情報処理装置に送信する送信手段と
を備える情報処理装置であって、
前記選択手段は、
前記属性が数字又は文字の組み合わせで表現される数値である場合には、当該数値を複数の数字又は文字に分割し、当該分割された各数字又は各文字に対応する複数の公開鍵を、前記公開鍵のセットの中から選択し、
前記第２暗号化手段は、
前記選択手段で選択された複数の公開鍵を用いて、前記共通鍵を暗号化することを特徴とする情報処理装置。
【請求項２】
データをネットワーク経由で他の情報処理装置に送信する情報処理装置であって、
前記他の情報処理装置が保持する複数の秘密鍵で構成される秘密鍵のセットと対をなす複数の公開鍵で構成される公開鍵のセットを、前記他の情報処理装置から受信する受信手段と、
共通鍵を生成する生成手段と、
前記共通鍵を用いて、データを暗号化する第１暗号化手段と、
前記データの属性に基づいて、前記公開鍵のセットの中から、暗号化に用いる公開鍵を選択する選択手段と、
前記選択手段で選択された公開鍵を用いて、前記共通鍵を暗号化する第２暗号化手段と、
前記第１暗号化手段で暗号化されたデータと、前記第２暗号化手段で暗号化された共通鍵と、前記属性とを含むデータを、前記他の情報処理装置に送信する送信手段と
を備える情報処理装置であって、
前記選択手段は、
前記属性が文字列である場合には、当該文字列のハッシュ値を求め、当該ハッシュ値を複数の数字又は文字に分割し、当該分割された各数字又は各文字に対応する複数の公開鍵を、前記公開鍵のセットの中から選択し、
前記第２暗号化手段は、
前記選択された複数の公開鍵を用いて、前記共通鍵を暗号化することを特徴とする情報処理装置。
【請求項３】
前記第２暗号化手段は、
前記選択された複数の公開鍵を順番に用いて、前記共通鍵を多重暗号化することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記データは文書画像データであり、前記属性は印刷属性であり、前記他の情報処理装置はプリンタ機能を有することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記選択手段は、前記公開鍵のセットの中から、前記分割された各数字又は各文字に対応する鍵番号の公開鍵を選択することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項６】
前記データが暗号化済みであることを示す情報を前記属性に付加することによって、前記属性を書き換える書換手段を、更に有し、
前記送信手段は、前記第１暗号化手段で暗号化されたデータと、前記第２暗号化手段で暗号化された共通鍵と、前記書換手段で書き換えられた属性とを含むデータを、前記他の情報処理装置に送信することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項７】
暗号化されたデータと、当該データの属性と、暗号化された共通鍵とを、ネットワーク経由で他の情報処理装置から受信する受信手段と、
前記他の情報処理装置での暗号化の際に使用された公開鍵のセットと対をなす複数の秘密鍵で構成される秘密鍵のセットを保持する保持手段と、
前記受信したデータの属性に基づいて、前記保持手段で保持されている秘密鍵のセットの中から、復号化に用いる秘密鍵を選択する秘密鍵選択手段と、
前記秘密鍵選択手段で選択された秘密鍵を用いて、前記暗号化された共通鍵を復号する第１復号化手段と、
前記第１復号化手段で復号された共通鍵を用いて、前記暗号化されたデータを復号する第２復号化手段と
を備える情報処理装置であって、
前記秘密鍵選択手段は、
前記属性が数字又は文字の組み合わせで表現される数値である場合には、当該数値を複数の数字又は文字に分割し、当該分割された各数字又は各文字に対応する複数の秘密鍵を、前記秘密鍵のセットの中から選択し、
前記第１復号化手段は、
前記秘密鍵選択手段で選択された複数の秘密鍵を用いて、前記暗号化された共通鍵を復号することを特徴とする情報処理装置。
【請求項８】
暗号化されたデータと、当該データの属性と、暗号化された共通鍵とを、ネットワーク経由で他の情報処理装置から受信する受信手段と、
前記他の情報処理装置での暗号化の際に使用された公開鍵のセットと対をなす複数の秘密鍵で構成される秘密鍵のセットを保持する保持手段と、
前記受信したデータの属性に基づいて、前記保持手段で保持されている秘密鍵のセットの中から、復号化に用いる秘密鍵を選択する秘密鍵選択手段と、
前記秘密鍵選択手段で選択された秘密鍵を用いて、前記暗号化された共通鍵を復号する第１復号化手段と、
前記第１復号化手段で復号された共通鍵を用いて、前記暗号化されたデータを復号する第２復号化手段と
を備える情報処理装置であって、
前記秘密鍵選択手段は、
前記属性が文字列である場合には、当該文字列のハッシュ値を求め、当該ハッシュ値を複数の数字又は文字に分割し、当該分割された各数字又は各文字に対応する複数の秘密鍵を、前記秘密鍵のセットの中から選択し、
前記第１復号化手段は、
前記秘密鍵選択手段で選択された複数の秘密鍵を用いて、前記暗号化された共通鍵を復号することを特徴とする情報処理装置。
【請求項９】
前記第１復号化手段は、
前記選択された複数の秘密鍵を順番に用いて、前記暗号化された共通鍵を復号することを特徴とする請求項７又は８に記載の情報処理装置。
【請求項１０】
前記データは文書画像データであり、前記属性は印刷属性であり、前記情報処理装置はプリンタ機能を有することを特徴とする請求項７乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
情報処理装置が、データをネットワーク経由で他の装置に送信する情報処理方法であって、
前記情報処理装置の受信手段が、前記他の装置が保持する複数の秘密鍵で構成される秘密鍵のセットと対をなす複数の公開鍵で構成される公開鍵のセットを、前記他の装置から受信する受信ステップと、
前記情報処理装置の生成手段が、共通鍵を生成する生成ステップと、
前記情報処理装置の第１暗号化手段が、前記共通鍵を用いて、データを暗号化する第１暗号化ステップと、
前記情報処理装置の選択手段が、前記データの属性に基づいて、前記公開鍵のセットの中から、暗号化に用いる公開鍵を選択する選択ステップと、
前記情報処理装置の第２暗号化手段が、前記選択ステップで選択された公開鍵を用いて、前記共通鍵を暗号化する第２暗号化ステップと、
前記情報処理装置の送信手段が、前記第１暗号化ステップで暗号化されたデータと、前記第２暗号化ステップで暗号化された共通鍵と、前記属性とを含むデータを、前記他の装置に送信する送信ステップと
を含み、
前記選択ステップでは、前記属性が数字又は文字の組み合わせで表現される数値である場合には、当該数値を複数の数字又は文字に分割し、当該分割された各数字又は各文字に対応する複数の公開鍵を、前記公開鍵のセットの中から選択し、
前記第２暗号化ステップでは、前記選択ステップで選択された複数の公開鍵を用いて、前記共通鍵を暗号化する
ことを特徴とする情報処理方法。
【請求項１２】
情報処理装置が、データをネットワーク経由で他の装置に送信する情報処理方法であって、
前記情報処理装置の受信手段が、前記他の装置が保持する複数の秘密鍵で構成される秘密鍵のセットと対をなす複数の公開鍵で構成される公開鍵のセットを、前記他の装置から受信する受信ステップと、
前記情報処理装置の生成手段が、共通鍵を生成する生成ステップと、
前記情報処理装置の第１暗号化手段が、前記共通鍵を用いて、データを暗号化する第１暗号化ステップと、
前記情報処理装置の選択手段が、前記データの属性に基づいて、前記公開鍵のセットの中から、暗号化に用いる公開鍵を選択する選択ステップと、
前記情報処理装置の第２暗号化手段が、前記選択ステップで選択された公開鍵を用いて、前記共通鍵を暗号化する第２暗号化ステップと、
前記情報処理装置の送信手段が、前記第１暗号化ステップで暗号化されたデータと、前記第２暗号化ステップで暗号化された共通鍵と、前記属性とを含むデータを、前記他の装置に送信する送信ステップと
を含み、
前記選択ステップでは、前記属性が文字列である場合には、当該文字列のハッシュ値を求め、当該ハッシュ値を複数の数字又は文字に分割し、当該分割された各数字又は各文字に対応する複数の公開鍵を、前記公開鍵のセットの中から選択し、
前記第２暗号化ステップでは、前記選択された複数の公開鍵を用いて、前記共通鍵を暗号化する
ことを特徴とする情報処理方法。
【請求項１３】
受信手段が、暗号化されたデータと、当該データの属性と、暗号化された共通鍵とを、ネットワーク経由で他の情報処理装置から受信する受信ステップと、
保持手段が、前記他の情報処理装置での暗号化の際に使用された公開鍵のセットと対をなす複数の秘密鍵で構成される秘密鍵のセットを保持する保持ステップと、
秘密鍵選択手段が、前記受信したデータの属性に基づいて、前記保持手段で保持されている秘密鍵のセットの中から、復号化に用いる秘密鍵を選択する秘密鍵選択ステップと、
第１復号化手段が、前記秘密鍵選択ステップで選択された秘密鍵を用いて、前記暗号化された共通鍵を復号する第１復号化ステップと、
第２復号化手段が、前記第１復号化ステップで復号された共通鍵を用いて、前記暗号化されたデータを復号する第２復号化ステップと
を含み、
前記秘密鍵選択ステップでは、前記属性が数字又は文字の組み合わせで表現される数値である場合には、当該数値を複数の数字又は文字に分割し、当該分割された各数字又は各文字に対応する複数の秘密鍵を、前記秘密鍵のセットの中から選択し、
前記第１復号化ステップでは、前記秘密鍵選択ステップで選択された複数の秘密鍵を用いて、前記暗号化された共通鍵を復号する
ことを特徴とする情報処理方法。
【請求項１４】
受信手段が、暗号化されたデータと、当該データの属性と、暗号化された共通鍵とを、ネットワーク経由で他の情報処理装置から受信する受信ステップと、
保持手段が、前記他の情報処理装置での暗号化の際に使用された公開鍵のセットと対をなす複数の秘密鍵で構成される秘密鍵のセットを保持する保持ステップと、
秘密鍵選択手段が、前記受信したデータの属性に基づいて、前記保持手段で保持されている秘密鍵のセットの中から、復号化に用いる秘密鍵を選択する秘密鍵選択ステップと、
第１復号化手段が、前記秘密鍵選択ステップで選択された秘密鍵を用いて、前記暗号化された共通鍵を復号する第１復号化ステップと、
第２復号化手段が、前記第１復号化ステップで復号された共通鍵を用いて、前記暗号化されたデータを復号する第２復号化ステップと
を含み、
前記秘密鍵選択ステップでは、前記属性が文字列である場合には、当該文字列のハッシュ値を求め、当該ハッシュ値を複数の数字又は文字に分割し、当該分割された各数字又は各文字に対応する複数の秘密鍵を、前記秘密鍵のセットの中から選択し、
前記第１復号化ステップでは、前記秘密鍵選択ステップで選択された複数の秘密鍵を用いて、前記暗号化された共通鍵を復号することを特徴とする情報処理方法。
【請求項１５】
コンピュータを、請求項１乃至１０のいずれかに記載の情報処理装置の各手段として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１６】
コンピュータを、請求項１乃至１０のいずれかに記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを経由して文書画像データ等のデータを送受信する機能を有する情報処理装置に関する。
【背景技術】
【０００２】
電子ドキュメントデータは、文書画像データと属性データ（例えば印刷属性）とから構成されている場合がある。例えば、プリンタやデジタル複合機に対してホストコンピュータなどから送信されるプリントジョブデータには、文書画像データと印刷属性が含まれ、プリンタの動作は印刷属性のデータによって制御される。
【０００３】
また、ネットワーク内の機器内に電子ドキュメントデータを保存する場合や、機器間で電子ドキュメントデータを転送する場合もある。スキャナ等の画像入力機器から入力した画像データを、印刷装置等の画像出力機器内の二次記憶装置にファイル形式で保存しておけば、ユーザは、好きな時間に画像を取り出して繰り返し印刷出力することができる。このように再利用を目的として画像出力装置の二次記憶装置に画像データをファイル形式で保存する機能をボックス機能と呼び、画像データを保存するためのファイルシステムをボックスと呼ぶ。ボックス内のファイルの内容は、スキャナで読み取られたビットマップデータや、ネットワーク経由でホストコンピュータから受け取ったＰＤＬデータである。このようにネットワーク内の機器内に保存する方法や、機器間で転送される電子ドキュメントの扱いも属性データによって制御される。
【０００４】
ところで、情報漏えい防止などのセキュリティ確保の観点から、電子ドキュメントデータに対する取り扱いの制限事項は増えており、またセキュリティを強化する機能も考えられている。セキュリティを強化する機能としては、例えば、印刷部数上限値設定、機密管理のための部数印刷（ナンバリング）、地紋印刷がある。印刷部数上限値設定とは、印刷可能な部数に制限を設けることで、必要最低限の部数だけ印刷許可することである。機密管理のための部数印刷（ナンバリング）とは、複数の印刷出力物に対して互いに重複しない番号を付加することである。これにより、情報漏洩があった場合に、その番号を確認することで漏洩の経路を特定できる。また、番号だけでなく、電子ドキュメントデータが生成されてから印刷出力されるまでの履歴に関する情報を付加してもよい。地紋印刷とは、濃度と径の異なるドットを組み合わせることによって、視覚的に識別困難な潜像パターンを印刷物にオーバレイ印刷することである。地紋印刷された印刷出力物をコピーすると、複製物には埋め込まれていた潜像パターンが顕在化し、コピーであることが明確になるため、印刷出力物の光学的コピーを抑止することができる。
【０００５】
またプリントジョブの場合は、プリントコストの節約のため、ユーザ毎に使用可能な機能を制限することも行われる。例えば、特定のユーザ以外に対してはカラープリントを許可しないこと、許可されたユーザ以外は強制両面印刷にすること、許可されたユーザ以外は強制縮小レイアウト（Ｎ−ｉｎ−１）にすること等が行われる。
【０００６】
このように電子ドキュメントデータをどのように取り扱うかも印刷属性によって制御される。
【０００７】
一方、通常の電子ドキュメントデータに含まれる印刷属性は、平文（暗号化されていないデータ）で記述されているため、悪意のある第三者が印刷属性を改竄してしまう恐れがある。
【０００８】
ホストコンピュータがプリンタやデジタル複合機等の画像出力装置に対してプリントジョブデータを送信する際に、ホストコンピュータがプリントジョブデータを暗号化して画像出力装置に送信する方法がある（特許文献１）。この方法は、ネットワークセキュアプリントと呼ばれる。ネットワークセキュアプリントの場合、ホストコンピュータは、プリントジョブデータ全体を暗号化するため、文書画像データを暗号化すると共に印刷属性も暗号化する。印刷属性には、ジョブ制御（ジョブの要／不要）に関する情報も含まれているため、画像出力装置は、受信したプリントジョブデータ全体を復号しなければ、ジョブの要／不要を判断できない。そこで、印刷属性に関しては、復号が不要な印刷属性にすること又は単純な処理で復号可能な印刷属性にすることが望まれる。
【０００９】
同様に、機器間で電子ドキュメントデータを転送する場合においても、転送可能な範囲、転送履歴、電子ドキュメントの作成者等の情報を含む印刷属性が平文であると、その印刷属性は改竄の恐れがある。しかし、印刷属性のみに基づいて電子ドキュメントの転送制御を行うのが効率的であるため、印刷属性は平文であるのが望ましい。
【００１０】
一方、特許文献２では、ヘッダ情報（属性データ）にデジタル署名情報を格納することにより、ヘッダ情報が改竄されたかどうかを判別できるようにしている。
【００１１】
【特許文献１】特開平９−１３４２６４号公報
【特許文献２】特開２００６−８６７７７号公報
【特許文献３】特開２００６−１０９４２８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
特許文献２に分離した印刷属性（平文）に対して電子署名を付加する方法が開示されているが、この方法では印刷属性に対する改竄防止は可能であるが、印刷属性が改竄されていないことを確認するための処理（電子署名確認処理）が新たに必要となる。また、ポリシーサーバ（登録商標）等の管理認証機構をネットワーク内に設けることは、設置・運用するためのコストがかかる。
【００１３】
一方、特許文献３にはメタデータに基づいて暗号化のためのパラメータを生成する方法が開示されている。この方法は、ストリームデータに対する暗号化を行うための鍵ストリームを生成するのにメタデータを用いるものである。この方法では、鍵ストリームの生成過程で共通鍵暗号方式を用いている。共通鍵暗号方式の場合、悪意のある第三者が共通鍵を知るとその時点でセキュリティ価値が失われるため、共通鍵の配付過程において共通鍵の管理には十分注意を払う必要がある。
【００１４】
そこで、本発明は、電子ドキュメントデータに含まれる印刷属性を平文のまま保持しつつ文書画像データを暗号化し、印刷属性が改竄された場合に、文書画像データの復号を極めて困難にする仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の情報処理装置は、データをネットワーク経由で他の情報処理装置に送信する情報処理装置であって、前記他の情報処理装置が保持する複数の秘密鍵で構成される秘密鍵のセットと対をなす複数の公開鍵で構成される公開鍵のセットを、前記他の情報処理装置から受信する受信手段と、共通鍵を生成する生成手段と、前記共通鍵を用いて、データを暗号化する第１暗号化手段と、前記データの属性に基づいて、前記公開鍵のセットの中から、暗号化に用いる公開鍵を選択する選択手段と、前記選択手段で選択された公開鍵を用いて、前記共通鍵を暗号化する第２暗号化手段と、前記第１暗号化手段で暗号化されたデータと、前記第２暗号化手段で暗号化された共通鍵と、前記属性とを含むデータを、前記他の情報処理装置に送信する送信手段とを備える情報処理装置であって、前記選択手段は、前記属性が数字又は文字の組み合わせで表現される数値である場合には、当該数値を複数の数字又は文字に分割し、当該分割された各数字又は各文字に対応する複数の公開鍵を、前記公開鍵のセットの中から選択し、前記第２暗号化手段は、前記選択手段で選択された複数の公開鍵を用いて、前記共通鍵を暗号化することを特徴とする。
また、本発明の情報処理装置は、データをネットワーク経由で他の情報処理装置に送信する情報処理装置であって、前記他の情報処理装置が保持する複数の秘密鍵で構成される秘密鍵のセットと対をなす複数の公開鍵で構成される公開鍵のセットを、前記他の情報処理装置から受信する受信手段と、共通鍵を生成する生成手段と、前記共通鍵を用いて、データを暗号化する第１暗号化手段と、前記データの属性に基づいて、前記公開鍵のセットの中から、暗号化に用いる公開鍵を選択する選択手段と、前記選択手段で選択された公開鍵を用いて、前記共通鍵を暗号化する第２暗号化手段と、前記第１暗号化手段で暗号化されたデータと、前記第２暗号化手段で暗号化された共通鍵と、前記属性とを含むデータを、前記他の情報処理装置に送信する送信手段とを備える情報処理装置であって、前記選択手段は、前記属性が文字列である場合には、当該文字列のハッシュ値を求め、当該ハッシュ値を複数の数字又は文字に分割し、当該分割された各数字又は各文字に対応する複数の公開鍵を、前記公開鍵のセットの中から選択し、前記第２暗号化手段は、前記選択された複数の公開鍵を用いて、前記共通鍵を暗号化することを特徴とする。
【００１６】
本発明の情報処理装置は、暗号化されたデータと、当該データの属性と、暗号化された共通鍵とを、ネットワーク経由で他の情報処理装置から受信する受信手段と、前記他の情報処理装置での暗号化の際に使用された公開鍵のセットと対をなす複数の秘密鍵で構成される秘密鍵のセットを保持する保持手段と、前記受信したデータの属性に基づいて、前記保持手段で保持されている秘密鍵のセットの中から、復号化に用いる秘密鍵を選択する秘密鍵選択手段と、前記秘密鍵選択手段で選択された秘密鍵を用いて、前記暗号化された共通鍵を復号する第１復号化手段と、前記第１復号化手段で復号された共通鍵を用いて、前記暗号化されたデータを復号する第２復号化手段とを備える情報処理装置であって、前記秘密鍵選択手段は、前記属性が数字又は文字の組み合わせで表現される数値である場合には、当該数値を複数の数字又は文字に分割し、当該分割された各数字又は各文字に対応する複数の秘密鍵を、前記秘密鍵のセットの中から選択し、前記第１復号化手段は、前記秘密鍵選択手段で選択された複数の秘密鍵を用いて、前記暗号化された共通鍵を復号することを特徴とする。
また、本発明の情報処理装置は、暗号化されたデータと、当該データの属性と、暗号化された共通鍵とを、ネットワーク経由で他の情報処理装置から受信する受信手段と、前記他の情報処理装置での暗号化の際に使用された公開鍵のセットと対をなす複数の秘密鍵で構成される秘密鍵のセットを保持する保持手段と、前記受信したデータの属性に基づいて、前記保持手段で保持されている秘密鍵のセットの中から、復号化に用いる秘密鍵を選択する秘密鍵選択手段と、前記秘密鍵選択手段で選択された秘密鍵を用いて、前記暗号化された共通鍵を復号する第１復号化手段と、前記第１復号化手段で復号された共通鍵を用いて、前記暗号化されたデータを復号する第２復号化手段とを備える情報処理装置であって、前記秘密鍵選択手段は、前記属性が文字列である場合には、当該文字列のハッシュ値を求め、当該ハッシュ値を複数の数字又は文字に分割し、当該分割された各数字又は各文字に対応する複数の秘密鍵を、前記秘密鍵のセットの中から選択し、前記第１復号化手段は、前記秘密鍵選択手段で選択された複数の秘密鍵を用いて、前記暗号化された共通鍵を復号することを特徴とする。
【００１８】
本発明の情報処理方法は、情報処理装置が、データをネットワーク経由で他の装置に送信する情報処理方法であって、前記情報処理装置の受信手段が、前記他の装置が保持する複数の秘密鍵で構成される秘密鍵のセットと対をなす複数の公開鍵で構成される公開鍵のセットを、前記他の装置から受信する受信ステップと、前記情報処理装置の生成手段が、共通鍵を生成する生成ステップと、前記情報処理装置の第１暗号化手段が、前記共通鍵を用いて、データを暗号化する第１暗号化ステップと、前記情報処理装置の選択手段が、前記データの属性に基づいて、前記公開鍵のセットの中から、暗号化に用いる公開鍵を選択する選択ステップと、前記情報処理装置の第２暗号化手段が、前記選択ステップで選択された公開鍵を用いて、前記共通鍵を暗号化する第２暗号化ステップと、前記情報処理装置の送信手段が、前記第１暗号化ステップで暗号化されたデータと、前記第２暗号化ステップで暗号化された共通鍵と、前記属性とを含むデータを、前記他の装置に送信する送信ステップとを含み、前記選択ステップでは、前記属性が数字又は文字の組み合わせで表現される数値である場合には、当該数値を複数の数字又は文字に分割し、当該分割された各数字又は各文字に対応する複数の公開鍵を、前記公開鍵のセットの中から選択し、前記第２暗号化ステップでは、前記選択ステップで選択された複数の公開鍵を用いて、前記共通鍵を暗号化することを特徴とする。
また、本発明の情報処理方法は、情報処理装置が、データをネットワーク経由で他の装置に送信する情報処理方法であって、前記情報処理装置の受信手段が、前記他の装置が保持する複数の秘密鍵で構成される秘密鍵のセットと対をなす複数の公開鍵で構成される公開鍵のセットを、前記他の装置から受信する受信ステップと、前記情報処理装置の生成手段が、共通鍵を生成する生成ステップと、前記情報処理装置の第１暗号化手段が、前記共通鍵を用いて、データを暗号化する第１暗号化ステップと、前記情報処理装置の選択手段が、前記データの属性に基づいて、前記公開鍵のセットの中から、暗号化に用いる公開鍵を選択する選択ステップと、前記情報処理装置の第２暗号化手段が、前記選択ステップで選択された公開鍵を用いて、前記共通鍵を暗号化する第２暗号化ステップと、前記情報処理装置の送信手段が、前記第１暗号化ステップで暗号化されたデータと、前記第２暗号化ステップで暗号化された共通鍵と、前記属性とを含むデータを、前記他の装置に送信する送信ステップとを含み、前記選択ステップでは、前記属性が文字列である場合には、当該文字列のハッシュ値を求め、当該ハッシュ値を複数の数字又は文字に分割し、当該分割された各数字又は各文字に対応する複数の公開鍵を、前記公開鍵のセットの中から選択し、前記第２暗号化ステップでは、前記選択された複数の公開鍵を用いて、前記共通鍵を暗号化することを特徴とする。
【００１９】
本発明の情報処理方法は、受信手段が、暗号化されたデータと、当該データの属性と、暗号化された共通鍵とを、ネットワーク経由で他の情報処理装置から受信する受信ステップと、保持手段が、前記他の情報処理装置での暗号化の際に使用された公開鍵のセットと対をなす複数の秘密鍵で構成される秘密鍵のセットを保持する保持ステップと、秘密鍵選択手段が、前記受信したデータの属性に基づいて、前記保持手段で保持されている秘密鍵のセットの中から、復号化に用いる秘密鍵を選択する秘密鍵選択ステップと、第１復号化手段が、前記秘密鍵選択ステップで選択された秘密鍵を用いて、前記暗号化された共通鍵を復号する第１復号化ステップと、第２復号化手段が、前記第１復号化ステップで復号された共通鍵を用いて、前記暗号化されたデータを復号する第２復号化ステップとを含み、前記秘密鍵選択ステップでは、前記属性が数字又は文字の組み合わせで表現される数値である場合には、当該数値を複数の数字又は文字に分割し、当該分割された各数字又は各文字に対応する複数の秘密鍵を、前記秘密鍵のセットの中から選択し、前記第１復号化ステップでは、前記秘密鍵選択ステップで選択された複数の秘密鍵を用いて、前記暗号化された共通鍵を復号することを特徴とする。
また、本発明の情報処理方法は、受信手段が、暗号化されたデータと、当該データの属性と、暗号化された共通鍵とを、ネットワーク経由で他の情報処理装置から受信する受信ステップと、保持手段が、前記他の情報処理装置での暗号化の際に使用された公開鍵のセットと対をなす複数の秘密鍵で構成される秘密鍵のセットを保持する保持ステップと、 秘密鍵選択手段が、前記受信したデータの属性に基づいて、前記保持手段で保持されている秘密鍵のセットの中から、復号化に用いる秘密鍵を選択する秘密鍵選択ステップと、第１復号化手段が、前記秘密鍵選択ステップで選択された秘密鍵を用いて、前記暗号化された共通鍵を復号する第１復号化ステップと、第２復号化手段が、前記第１復号化ステップで復号された共通鍵を用いて、前記暗号化されたデータを復号する第２復号化ステップとを含み、前記秘密鍵選択ステップでは、前記属性が文字列である場合には、当該文字列のハッシュ値を求め、当該ハッシュ値を複数の数字又は文字に分割し、当該分割された各数字又は各文字に対応する複数の秘密鍵を、前記秘密鍵のセットの中から選択し、前記第１復号化ステップでは、前記秘密鍵選択ステップで選択された複数の秘密鍵を用いて、前記暗号化された共通鍵を復号することを特徴とする。
【００２０】
本発明のコンピュータ読み取り可能な記録媒体は、コンピュータを、上記のいずれかの情報処理装置の各手段として機能させるためのプログラムを記録したことを特徴とする。
【００２１】
本発明のプログラムは、コンピュータを、上記のいずれかの情報処理装置の各手段として機能させるためのプログラム。
【発明の効果】
【００２２】
本発明によれば、例えば文書画像データと印刷属性を含む電子ドキュメントデータの送受信において、文書画像データは暗号化されるが、印刷属性自体は暗号化されない平文であるため、印刷属性の可読性を落とすことがない。電子ドキュメントデータがプリンタに対する印刷ジョブである場合、プリンタが暗号化された印刷ジョブを受け付けるか拒否するかの判断をする処理において、印刷属性のみを平文で解釈して判断することが可能となる。
【００２３】
また、平文である印刷属性が改変された場合には、暗号化時に用いた公開鍵とペアになる秘密鍵とは異なる秘密鍵を用いて、暗号化された文書画像データもしくは共通鍵の復号を試みることとなり、結果として復号化は失敗する。
【００２４】
以上により、印刷属性は可読な平文のままでありながら、印刷属性の改竄防止を図ることができる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明を実施するための最良の形態について、図面を参照して説明する。
【００２６】
[実施例１]
図１は、ネットワーク４００経由でホストコンピュータ４０１、４０１（第１の情報処理装置の一例）とデータの送受信を行うデジタル複合機（第２の情報処理装置の一例）の全体構成を示すブロック図である。
【００２７】
画像入力デバイスであるリーダ装置（リーダ部）２００はスキャナであり、原稿画像を光学的に読み取り、画像データに変換する。リーダ装置２００は、原稿を読取るための機能を持つスキャナユニット２１０と、原稿用紙を搬送するための機能を持つ原稿給紙ユニット２５０とから構成される。
【００２８】
画像出力デバイスであるプリンタ装置（プリンタ部）３００は、記録紙を搬送し、その上に画像データを可視画像として印字して装置外に排紙する。
【００２９】
プリンタ装置３００は、複数種類の記録紙カセットを有する給紙ユニット３１０と、画像データを記録紙に転写、定着させる機能を有するマーキングユニット３２０を備える。さらに、プリンタ装置３００は、印字された記録紙を機外へ出力する機能を有する排紙ユニット３３０、及びステイプル処理、ソート処理を行うフィニッシャ部５００を備える。プリンタ装置のことをプリンタエンジンとも呼ぶ。
【００３０】
コントローラ１００は、リーダ装置２００、プリンタ装置３００と電気的に接続され、さらにＬＡＮ４００等のネットワークを介して、ホストコンピュータ４０１、４０２や、インターネット上の各種サーバと接続される。
【００３１】
コントローラ１００は、リーダ装置２００を制御して、原稿の画像データを読込み、プリンタ装置３００を制御して画像データを記録紙に出力してコピー機能を提供する。また、コントローラ１００は、スキャナ機能、プリンタ機能、ボックス機能、ジョブ制御機能及び復号処理機能を有する。スキャナ機能とは、リーダ装置２００から読取った画像データを、コードデータに変換し、ＬＡＮ４００を介してホストコンピュータへ送信する機能である。プリンタ機能とは、ホストコンピュータからＬＡＮ４００を介して受信したプリントジョブデータを画像データに変換し、プリンタ装置３００に出力する機能である。ボックス機能とは、リーダ装置２００が読み取った画像データや、ホストコンピュータから受け取ったプリントジョブデータから得られた画像データをコントローラ１００内の記憶装置に保存する機能である。ジョブ制御機能とは、受信したプリントジョブデータを制御する機能である。復号処理機能とは、暗号化されたプリントジョブデータを復号する機能である。
【００３２】
操作部１５０は、コントローラ１００に接続され、液晶タッチパネルで構成され、画像入出力システムを操作するためのユーザインタフェースを提供する。
【００３３】
＜コントローラ１００の構成＞
図２は、本実施形態におけるデジタル複合機のコントローラ１００の一構成例を示すブロック図である。
【００３４】
図２において、コントローラ１００は、画像入力デバイスであるスキャナ２００や画像出力デバイスであるプリンタエンジン３００と接続し、画像データの読み取りやプリント出力のための制御を行う。また、コントローラ１００は、ＬＡＮ４００と接続することで、画像情報やデバイス情報をＬＡＮ４００経由で入出力するための制御を行う。
【００３５】
ＣＰＵ１０１は、デジタル複合機全体を制御するための中央処理装置である。ＲＡＭ１０２は、ＣＰＵ１０１が動作するためのシステムワークメモリであり、入力された文書画像データを一時記憶するためのメモリでもある。さらに、ＲＯＭ１０３は、ブートＲＯＭであり、システムのブートプログラムを格納すると同時に、第三者に知られてはいけない暗号鍵情報を格納する。ＨＤＤ１０４は、ハードディスクドライブであり、各種処理のためのコントローラソフトウェアや、入力された画像データ、セキュリティ機能のためのユーザ認証情報および一時的に利用する暗号鍵情報などを格納する。操作部インタフェース１０５は、画像データ等を表示可能な表示画面を有する操作部１５０に対するインタフェース部であり、操作部１５０に対して操作画面データを出力する。また、操作部インタフェース１０５は、操作部１５０から操作者が入力した情報をＣＰＵ１０１に伝える役割をする。ネットワークインタフェース１０７は、例えばＬＡＮカード等で実現され、ＬＡＮ４００に接続して外部装置との間で情報の入出力を行う。以上のユニットがシステムバス１０６に接続されている。
【００３６】
イメージバスインタフェース１０９は、システムバス１０６と画像データを高速で転送する画像バス１１０とを接続するためのインタフェースであり、データ構造を変換するバスブリッジである。画像バス１１０には、ラスタイメージプロセッサ（ＲＩＰ）１１１、デバイスインタフェース１１２、スキャナ画像処理部１１３、プリンタ画像処理部１１４、画像編集用画像処理１１５が接続される。
【００３７】
ラスタイメージプロセッサ（ＲＩＰ）１１１は、ページ記述言語（ＰＤＬ）コードをイメージに展開する。デバイスインタフェース１１２は、スキャナ２００やプリンタエンジン３００とコントローラ１００とを接続し、画像データの同期系／非同期系の変換を行う。
【００３８】
また、スキャナ画像処理部１１３は、スキャナ２００から入力した画像データに対して、補正、加工、編集等の各種処理を行う。プリンタ画像処理部１１４は、プリント出力する画像データに対して、プリンタエンジン３００に応じた補正、解像度変換等の処理を行う。画像編集用画像処理１１５は、画像データの回転や、画像データの圧縮伸長処理等の各種画像処理を行う。
【００３９】
＜コントローラソフトウェア構成＞
図３は、デジタル複合機の動作を制御するコントローラソフトウェアの構成を示すブロック図である。
【００４０】
プリンタインタフェース３０は、装置外部に対する入出力を制御する。プロトコル制御部３１は、ネットワークプロトコルを解析・送信することによって外部との通信を行う。
【００４１】
暗号処理部３２は、プロトコル制御部３１にて受信された電子ドキュメントデータ中に暗号化されたデータがあった場合に、後述の手順に従って復号処理を行う。また、他の機器に対して暗号化したデータを含む電子ドキュメントデータを送信する場合に、後述の手順に従って暗号化処理を行う。
【００４２】
メタデータ解析部３３では、電子ドキュメントデータ中の文書画像データにメタデータとして付加された印刷属性を読み取り、機器内でのデータ制御のための設定値として保存する。
【００４３】
ＰＤＬ解析部３４は、文書画像データとして受信したＰＤＬデータを解析し、より処理しやすい形式の中間コード（ＤｉｓｐｌａｙＬｉｓｔ、以下「ＤＬ」と称す。）に変換する。ＰＤＬ解析部３４において生成された中間コードはデータ描画部３５に渡されて処理される。データ描画部３５は上記中間コードをビットマップデータに展開するものであり、展開されたビットマップデータはページメモリ３６に逐次描画されて行く。
【００４４】
ページメモリ３６は、データ描画部３５が展開するビットマップデータを一次的に保持する揮発性のメモリである。
【００４５】
パネル入出力制御部３７は、操作パネル１５０からの入出力を制御する。
【００４６】
ドキュメント記憶部３８は電子ドキュメントデータの一塊（ジョブ）単位にＰＤＬデータ、ＤＬ、メタデータを包含するデータファイルを記憶する。これは、ハードディスク等の二次記憶装置によって実現される。
【００４７】
スキャン制御部３９は、スキャナ２００から入力した画像データに対して、補正、加工、編集などの各種処理を行う。
【００４８】
印刷制御部４０は、ページメモリ３６の内容をビデオ信号に変換処理し、プリンタエンジン３００へ画像転送を行なう。プリンタエンジン部３００は受け取ったビデオ信号を記録紙に永久可視画像形成するための印刷機構部である。
【００４９】
＜データ処理＞
次にホストコンピュータおよびデジタル複合機のコントローラ内で、どのようにデータ処理が行われるかを、図面を参照して説明する。
【００５０】
図４は、本実施形態におけるホストコンピュータ４０１が実行するデータフローの一例である。図６は、本実施形態におけるホストコンピュータ４０１が実行する処理の流れを示すフローチャートの一例である。図９は、本実施形態におけるホストコンピュータ４０１が実行するデータ暗号化処理を模式的に説明する概要図である。
【００５１】
ホストコンピュータ４０１では、ワードプロセッサや表計算ソフトやＷｅｂブラウザなどのアプリケーションソフトが動作している。このアプリケーションソフトが扱うデータをアプリケーションデータと呼ぶ。ホストコンピュータ４０１上で動作するプリンタドライバは、アプリケーションデータをＰＤＬデータに変換する処理ｄ４０１を行い、ＰＤＬデータを生成する。ここで生成されるＰＤＬデータは、文字コードとフォントデータによって定義される文字オブジェクトデータ、線画や領域の塗りを定義するグラフィクスオブジェクトデータ、ビットマップからなるイメージオブジェクトデータによって構成されている。ＰＤＬデータは上記のオブジェクトデータ以外にも、プログラミング言語としての変数や手続きを含むこともある。またプリンタドライバでは、デジタル複合機の動作を指示する機器制御コマンドやプリントジョブのセキュリティに関する制御コマンドを生成する処理ｄ４０４を行い、ＰＤＬデータに付加する印刷属性として生成する。
【００５２】
さらに、ホストコンピュータ４０１では、暗号化に関する処理を行うプログラムも動作している。以下に、本実施形態におけるホストコンピュータ４０１が実行するプリントジョブデータの生成とその暗号化処理について説明する。
【００５３】
まず、ステップＳ６０１にて、ホストコンピュータ４０１は、デジタル複合機のコントローラ１００に対して、公開鍵セットの配付要求を送信する。ステップＳ６０２にて、ホストコンピュータ４０１は、ＰＤＬデータ生成処理ｄ４０１を行い、ＰＤＬデータ９０２を得る。続いてステップＳ６０３にて、ホストコンピュータ４０１は、共通鍵生成処理ｄ４０２を行い、共通鍵９３０を得る。なお暗号解読困難性の観点から共通鍵９３０は乱数的に生成されることが望ましい。ステップＳ６０４では、ホストコンピュータ４０１は、ＰＤＬデータの暗号化処理ｄ４０５を行う。本実施例では、ホストコンピュータ４０１は、平文のＰＤＬデータ９０２に対して共通鍵９３０を用いたＤＥＳ（ＤａｔａＥｎｃｒｙｐｔｉｏｎＳｔａｎｄａｒｄ）暗号化を行い、暗号化済ＰＤＬデータ９４２を得る。ステップＳ６０５では、ホストコンピュータ４０１のプリンタドライバは、印刷属性生成処理ｄ４０４を行う。ここではプリンタドライバに設定された印刷部数上限値（コピー部数上限値）に関する印刷属性９０１が生成される。ボックス機能を持つデジタル複合機では、ボックスに保存したプリントジョブデータに対して、その印刷属性を変更して印刷出力する機能を提供している。印刷出力物の印刷部数の変更も可能である。しかし、無制限に印刷（コピー）されることによって印刷コストや機密情報管理上の問題が生じる恐れのある場合には、あらかじめ印刷部数の上限値を定めておくことが有効な場合がある。印刷部数上限値に関する印刷属性９０１を設定することによって、そのプリントジョブデータを用いた印刷出力は、設定された印刷部数以上の印刷出力をできなくする。
【００５４】
続いて、ホストコンピュータ４０１が印刷属性９０１を用いて共通鍵９３０を暗号化する手法について説明する。公開鍵選択処理ｄ４０６において、まずステップＳ６０６とステップＳ６０７で、ホストコンピュータ４０１は、印刷属性９０１の印刷部数上限値“１５５”を数字又は文字の組み合わせに変換する。例えば、ホストコンピュータ４０１は、印刷部数上限値“１５５”を１６進数の数値９１０“９Ｂ”に変換する。次いで、ホストコンピュータ４０１は、桁ごとの数値“９”および“Ｂ”に分解すると同時に、“２桁”の１６進数値であることを記憶する。続いて、ホストコンピュータ４０１は、共通鍵の暗号化に用いる公開鍵のセットの準備を行う。ステップＳ６０１にてホストコンピュータ４０１はデジタル複合機のコントローラ１００に対して公開鍵セットを配付要求してあるため、ホストコンピュータ４０１は、公開鍵セット受信処理ｄ４０３にてステップＳ６０８の受信確認を行う。もし公開鍵セットを未受信であれば、ホストコンピュータ４０１は、再びステップＳ６０８に戻り、受信完了するまで待つ。受信完了すると、ステップＳ６０９にてホストコンピュータ４０１は、受信した公開鍵セットを公開鍵セット管理領域に記憶する。本実施例では、“０”から“Ｆ”までの識別番号がつけられた１６個の異なる公開鍵からなる公開鍵セット９２０が格納される。ひとつひとつの公開鍵はＲＳＡ暗号に用いる鍵であり、コントローラ１００内には“０”から“Ｆ”までの識別番号がつけられた１６個の異なる秘密鍵が存在し、同一の識別番号の公開鍵と秘密鍵で鍵ペアをなしている。ステップＳ６１０では、ホストコンピュータ４０１は、印刷部数上限値の１６進表記数値を分解した２桁目“９”に対応する識別番号がつけられた公開鍵を公開鍵セット９２０から選択する。さらにホストコンピュータ４０１は、処理ｄ４０７にて共通鍵９３０を公開鍵番号“９”に対応する公開鍵を用いてＲＳＡ暗号化し、暗号化された共通鍵９３１を得る。次にステップＳ６１１にて、印刷属性の２桁目の数値に対応する公開鍵を用いた暗号化処理が終了したことから、ホストコンピュータ４０１は、次に暗号化処理に用いるべき公開鍵が印刷属性の（２−１）桁目の数値に対応する公開鍵であることを知る。さらにステップＳ６１２にてホストコンピュータ４０１は、すべての桁の数値を使った公開鍵暗号化の処理が終わっているかどうかの確認を行う。ここでは未処理の桁が残っているため、ホストコンピュータ４０１は、再びステップＳ６１０にて印刷属性１桁目の数値“Ｂ”を用いた暗号化処理を行う。ホストコンピュータ４０１は、“Ｂ”に対応する識別番号がつけられた公開鍵を公開鍵セット９２０から選択する。さらに処理ｄ４０７にて、ホストコンピュータ４０１は、すでに暗号化されている共通鍵９３１を公開鍵番号“Ｂ”に対応する公開鍵を用いて再びＲＳＡ暗号化し、２重に暗号化された共通鍵９３２を得る。ステップＳ６１１でホストコンピュータ４０１は、次に暗号化処理に用いるべき公開鍵識別番号は印刷属性の（１−１）桁目であることを知る。ステップＳ６１２にてすべての桁の処理が終了したことを確認できたら、ステップＳ６１３にてホストコンピュータ４０１は、印刷属性９０１をもとに、プリントジョブデータが暗号化処理済みであることを示す印刷属性９４１に書き換える。印刷部数上限値をあらわす印刷属性は“ｒｏｃｋｅｄ”という文字列で書き換えられ、さらに“／ｋｅｙｎｕｍｂｅｒ”という印刷属性が追加される。“／ｋｅｙｎｕｍｂｅｒ”には、もともと印刷部数上限値として設定されていた“１５５”という数値が平文で書き込まれる。
【００５５】
最後にステップＳ６１４にて、ホストコンピュータ４０１は、データ連結処理ｄ４０８を行う。この処理によって、ホストコンピュータ４０１は、印刷属性９４１、暗号化されたＰＤＬデータ９４２、多重暗号化（上記例では、２重暗号化）された共通鍵９３２の印刷９４３を連結し、プリントジョブデータ９４０を得る。
【００５６】
図５は、本実施形態におけるコントローラ１００が実行するデータフローの一例である。図７、図８は、本実施形態におけるコントローラ１００が実行する処理の流れを示すフローチャートの一例である。図１０は、本実施形態におけるコントローラ１００が実行するデータ復号化処理を模式的に説明する概要図である。
【００５７】
ホストコンピュータ４０１は、ジョブデータを生成するに当たり、ステップＳ６０１にて公開鍵セットの配付要求を送信する。コントローラ１００は、ステップＳ８０１にてデータを受信したら、そのデータが公開鍵セットの配付要求であるかどうかをステップＳ８０２にて判断する。公開鍵セットの配付要求であった場合には、ステップＳ８０３にてコントローラ１００は、内蔵するＲＯＭ１０３に記憶されている公開鍵セットをホストコンピュータ４０１に送信する。ホストコンピュータ４０１はその公開鍵セットを使ってプリントジョブデータを暗号化し、コントローラ１００に送信する。
【００５８】
ステップＳ７０１にてコントローラ１００は、ホストコンピュータ４０１が送信したデータを受信する。ステップＳ７０２にてコントローラ１００は、受信したデータがプリントジョブデータであるどうかを判断し、プリントジョブデータであればデータ分離処理ｄ５０１を行う。ステップＳ７０３にてコントローラ１００は、プリントジョブデータを、印刷属性１００１、暗号化されたＰＤＬデータ１００２、暗号化された共通鍵１００３に分離する。印刷属性１００１は印刷部数上限値を指定する“／ｃｏｐｉｅｓｌｉｍｉｔ”であるが、その値には「暗号化済み」を示す“ｒｏｃｋｅｄ”が付加されている。よって実際の印刷部数上限値としては／ｋｅｙｎｕｍｂｅｒ＝“１５５”によって示される“１５５”を用いるように、ステップＳ７０４にてコントローラ１００は、印刷属性設定（印刷数上限値）を設定する。
【００５９】
続いて、秘密鍵選択処理ｄ５０２中のステップＳ７０５、Ｓ７０６にて、コントローラ１００は、／ｋｅｙｎｕｍｂｅｒ＝“１５５”に対する１６進数表記“９Ｂ”を得る。この段階で、暗号化された状態で受信した共通鍵１００３を復号するために必要な秘密鍵は２つで、暗号化に使われた順番に“９”“Ｂ”の２つであることがわかる。ステップＳ７０７では、コントローラ１００は、秘密鍵選択に用いるカウンタＭを１に設定する。ステップＳ７０８では、コントローラ１００は、秘密鍵セット１０２０の中から、下Ｍ桁目（＝下１桁目）の“Ｂ”に対応する秘密鍵を選択し、２重暗号化されていた共通鍵を共通鍵復号処理ｄ５０３にて一回復号し、共通鍵１０３０を得る。続いてステップＳ７０９でコントローラ１００は、秘密鍵選択カウンタＭをインクリメントし、Ｍ＝２とする。ステップＳ７１０で、Ｍの値が秘密鍵の個数２を越えていないので、コントローラ１００は、ステップ７０８に戻り下２桁目の“９”に対応する秘密鍵を選択し、暗号化された共通鍵を復号し、平文の共通鍵１０３１を得る。その後、ステップＳ７０９にてＭ＝３となり、ステップＳ７１０にてＭ＝３は秘密鍵の個数２を越えるので、コントローラ１００は、共通鍵復号処理を終える。
【００６０】
共通鍵が復号されたので、処理ｄ５０４のステップＳ７１１ではコントローラ１００は、平文の共通鍵１０３１を用いて、暗号化されたＰＤＬデータ１００２の復号を行い、平文のＰＤＬデータ１０４０を得る。
【００６１】
その後、ステップＳ７１２中のＰＤＬ解釈レンダリング処理ｄ５０５にて、コントローラ１００は、ＰＤＬデータを解釈する。もしＰＤＬデータの復号に失敗している場合は、ＰＤＬ文法の誤りをステップＳ７１３で検知してステップＳ７１４にてＰＤＬエラーとするか、もしくは印刷処理ｄ５０６にて印刷出力はされるが、印刷内容がみだれる結果となる。
【００６２】
なお、本実施例の説明においては、共通鍵暗号アルゴリズムにＤＥＳ、公開鍵暗号アルゴリズムにＲＳＡを用いた。しかし、本発明を実施するためには、必ずしもこれらのアルゴリズムを適用する必要はない。共通鍵暗号、公開鍵暗号のそれぞれの要件を満たすアルゴリズムは他にも多数存在するため、必要とする暗号強度やコストに応じて、適宜選択して適用すればよい。
【００６３】
＜プリントジョブデータ構造＞
次に、図１５を用いてプリントジョブデータのデータ構造を説明する。
【００６４】
１５０１は、１つの印刷処理にかかる一連のコマンドからなるプリントジョブデータを表したものである。
【００６５】
１５０２は、コマンド１５０３のパケットヘッダであり、本ヘッダにはコマンド１５０３のデータサイズが格納されている。１５０３はジョブの開始を示すコマンド（印刷開始命令）であり、本コマンドからジョブの終了コマンド（印刷終了命令）１５０９までが１つのジョブとして管理されるデータある。
【００６６】
１５０４は、コマンド１５０５のパケットヘッダであり、本ヘッダにはコマンド１５０５のデータサイズが格納されている。１５０５は印刷属性の設定コマンド、及び設定データを示すコマンド（パラメータ情報）である。
【００６７】
１５０６は、コマンド１５０７のパケットヘッダであり、本ヘッダにはデータ１５０７のデータサイズが格納されている。１５０７は実際に印刷されるべき印刷データ（ＰＤＬデータ）である。
【００６８】
１５０８は、コマンド１５０９のパケットヘッダであり、本ヘッダにはコマンド１５０９のデータサイズが格納されている。１５０９はジョブの終了コマンドであり、ジョブ開始コマンド１５０３と対になりジョブの情報を識別するものである。
【００６９】
なお、上記の１５０２、１５０４、１５０６、１５０８の各パケットヘッダにはコマンドのデータサイズ以外の情報、即ち、パケット識別データが格納されていても良く、コマンドのデータサイズ以外の情報に関しては特に制限するものではない。パケットヘッダには、単一の情報だけでなく、複数種の情報を格納することも可能である。例えば、データサイズと、そのデータが印刷属性であるか印刷される文書画像データのいずれかであるかを示す識別データとをパケットヘッダに格納してもよい。
【００７０】
プリントジョブデータ１５０１は、パケットヘッダとパラメータとを１つのデータの塊としてパケット単位で送受信が行われる。ここでいうパケットとは、ネットワークにおけるデータ通信でのパケットという下層のパケットではなく、データの塊という上位概念である。
【００７１】
印刷開始命令１５０３と印刷終了命令１５０９で囲まれている情報は、一印刷ジョブ単位として扱われる。
【００７２】
以上のプリントジョブデータの構成のうち、印刷属性９４１は、パラメータ情報１５０５の中に記述される。また、暗号化されたＰＤＬデータ９４２に該当するものは、印刷データ１５０７である。印刷データ１５０７の中には、暗号化された共通鍵９４３も記述される。このような構成をとる場合、印刷属性９４１に示される印刷部数上限値は、プリントジョブに含まれる全ページに対して適用されることになる。よって、共通鍵も全ページの文書画像データに対して同一の鍵が使用される。
【００７３】
[実施例２]
実施例１では、印刷属性が数値である場合について説明した。実施例２では、印刷属性が文字列である形態について、図面を参照して説明する。
【００７４】
＜データ処理＞
図１１は、本実施形態におけるホストコンピュータ４０１が実行する処理の流れを示すフローチャートの一例である。図１３は、本実施形態におけるホストコンピュータ４０１が実行するデータ暗号化処理を模式的に説明する概要図である。
【００７５】
まず、ステップＳ１１０１にて、ホストコンピュータ４０１は、デジタル複合機のコントローラ１００に対して、公開鍵セットの配付要求を送信する。ステップＳ１１０２にてホストコンピュータ４０１は、ＰＤＬデータ生成処理ｄ４０１を行い、ＰＤＬデータ１３０２を得る。続いてステップＳ１１０３にて、ホストコンピュータ４０１は、共通鍵生成処理ｄ４０２を行い、共通鍵１３３０を得る。なお暗号解読困難性の観点から共通鍵１３３０は乱数的に生成されることが望ましい。ステップＳ１１０４では、ホストコンピュータ４０１は、ＰＤＬデータの暗号化処理ｄ４０５を行う。本実施例では、ホストコンピュータ４０１は、平文のＰＤＬデータ１３０２に対して共通鍵１３３０を用いたＤＥＳ（ＤａｔａＥｎｃｒｙｐｔｉｏｎＳｔａｎｄａｒｄ）暗号化を行い、暗号化済ＰＤＬデータ１３４２を得る。ステップＳ１１０５では、ホストコンピュータ４０１のプリンタドライバは、印刷属性生成処理ｄ４０４を行う。ここではプリンタドライバに設定された地紋文字列に関する印刷属性１３０１が生成される。印刷属性１３０１は文字列で表される。地紋文字列はプリンタドライバでジョブを生成したユーザが付加するものであり、この文字列はコントローラ１００にて文字パターン画像に変換され、さらに濃度とドット径の組み合わせにより潜像パターンとして埋め込まれる。地紋を付加した出力物を光学スキャナでスキャンすると、濃度とドット径の組み合わせにより潜像として埋め込まれていた地紋パターンが浮き上がって見える。これにより、印刷出力物の光学的コピーを制限することができる。
【００７６】
続いて、ホストコンピュータ４０１が印刷属性１３０１を用いて共通鍵１３３０を暗号化する手法について説明する。公開鍵選択処理ｄ４０６において、まずステップＳ１１０６において、ホストコンピュータ４０１は、印刷属性１３０１にたいするハッシュ値１３１０を計算する。ステップＳ１１０７でホストコンピュータ４０１は、ハッシュ値“９Ｂ９Ｃ”を、桁ごとの数値“９”“Ｂ”“９”“Ｃ”に分解すると同時に、“４桁”の１６進数値であることを記憶する。
【００７７】
続いて、ホストコンピュータ４０１は、共通鍵の暗号化に用いる公開鍵のセットの準備を行う。ステップＳ１１０１にてホストコンピュータ４０１はデジタル複合機のコントローラ１００に対して公開鍵セットを配付要求してあるため、ホストコンピュータ４０１は、公開鍵セット受信処理ｄ４０３にてステップＳ１１０９の受信確認を行う。もし公開鍵セットを未受信であれば、ホストコンピュータ４０１は、再びステップＳ１１０１に戻り、受信完了するまで待つ。受信完了すると、ステップＳ１１１０にてホストコンピュータ４０１は、受信した公開鍵セットを公開鍵セット管理領域に記憶する。本実施例では、“０”から“Ｆ”までの識別番号がつけられた１６個の異なる公開鍵からなる公開鍵セット１３２０が格納される。ひとつひとつの公開鍵はＲＳＡ暗号に用いる鍵であり、コントローラ１００内には“０”から“Ｆ”までの識別番号がつけられた１６個の異なる秘密鍵が存在し、同一の識別番号の公開鍵と秘密鍵で鍵ペアをなしている。ステップＳ１１１１では、ホストコンピュータ４０１は、ハッシュ値の分解した４桁目“９”に対応する識別番号がつけられた公開鍵を公開鍵セット１３２０から選択する。さらにホストコンピュータ４０１は、処理ｄ４０７にて共通鍵１３３０を公開鍵番号“９”に対応する公開鍵を用いてＲＳＡ暗号化し、暗号化された共通鍵１３３１を得る。次にステップＳ１１１２にて、印刷属性の４桁目の数値に対応する公開鍵を用いた暗号化処理が終了したことから、ホストコンピュータ４０１は、次に暗号化処理に用いるべき公開鍵が印刷属性の（４−１）桁目の数値に対応する公開鍵であることを知る。さらにステップＳ１１１３にてホストコンピュータ４０１は、すべての桁の数値を使った公開鍵暗号化の処理が終わっているかどうかの確認を行う。ここでは未処理の桁が残っているため、ホストコンピュータ４０１は、再びステップＳ１１１１にて印刷属性３桁目の数値“Ｂ”を用いた暗号化処理を行う。ホストコンピュータ４０１は、“Ｂ”に対応する識別番号がつけられた公開鍵を公開鍵セット１３２０から選択する。さらに処理ｄ４０７にて、ホストコンピュータ４０１は、すでに暗号化されている共通鍵１３３１を公開鍵番号“Ｂ”に対応する公開鍵を用いて再びＲＳＡ暗号化し、２重に暗号化された共通鍵１３３２を得る。ホストコンピュータ４０１は、この処理ループをすべての桁にたいして実施する。ステップＳ１１１３にてすべての桁の処理が終了したことを確認できたら、ステップＳ１１１４にてホストコンピュータ４０１は、印刷属性１３０１をもとに、プリントジョブデータが暗号化処理済みであることを示す印刷属性１３４１に書き換える。地紋文字列をあらわす印刷属性は“ｒｏｃｋｅｄ”という文字列で書き換えられ、さらに“／ｋｅｙｔｅｘｔ”という印刷属性が追加される。“／ｋｅｙｔｅｘｔ”には、もともと地紋文字列として設定されていた文字列が平文で書き込まれる。
【００７８】
最後にステップＳ１１１５にて、ホストコンピュータ４０１は、データ連結処理ｄ４０８を行う。この処理によって、ホストコンピュータ４０１は、印刷属性１３４１、暗号化されたＰＤＬデータ１３４２、４重暗号化された共通鍵１３３４のコピー１３４３を連結し、プリントジョブデータ１３４０を得る。
【００７９】
図１２は、本実施形態におけるコントローラ１００が実行する処理の流れを示すフローチャートの一例である。図１４は、本実施形態におけるコントローラ１００が実行するデータ復号化処理を模式的に説明する概要図である。
【００８０】
ホストコンピュータ４０１は、ジョブデータを生成するに当たり、ステップＳ６０１にて公開鍵セットの配付要求を送信する。コントローラ１００は、ステップＳ８０１にてデータを受信したら、そのデータが公開鍵セットの配付要求であるかどうかをステップＳ８０２にて判断する。公開鍵セットの配付要求であった場合には、ステップＳ８０３にてコントローラ１００は、内蔵するＲＯＭ１０３に記憶されている公開鍵セットをホストコンピュータ４０１に送信する。ホストコンピュータ４０１はその公開鍵セットを使ってプリントジョブデータを暗号化し、コントローラ１００に送信する。
【００８１】
ステップＳ１２０１にてコントローラ１００は、ホストコンピュータ４０１が送信したデータを受信する。ステップＳ１２０２にてコントローラ１００は、受信したデータがプリントジョブデータであるかどうかを判断し、プリントジョブデータであればデータ分離処理ｄ５０１を行う。ステップＳ１２０３にてコントローラ１００は、プリントジョブデータを、印刷属性１４０１、暗号化されたＰＤＬデータ１４０２、暗号化された共通鍵１４０３に分離する。印刷属性１４０１は地紋文字列を指定する“／ｊｉｍｏｎ”であるが、その値には「暗号化済み」を示す“ｒｏｃｋｅｄ”が付加されている。よって実際の地紋文字列としては／ｋｅｙｔｅｘｔに続く文字列“You should not copy this document.”を用いるように、ステップＳ１２０４にてコントローラ１００は、地紋出力を設定する。
【００８２】
続いて、秘密鍵選択処理ｄ５０２中のステップＳ１２０５にて、コントローラ１００は、／ｋｅｙｔｅｘｔに続く文字列のハッシュ値“９Ｂ９Ｃ”を得る。この後、ステップＳ１２０６、Ｓ１２０７で、コントローラ１００は、暗号化された状態で受信した共通鍵１４０３を復号するために必要な秘密鍵は４つで、暗号化に使われた順番に“９”“Ｂ”“９”“Ｃ”の４つであることがわかる。ステップＳ１２０８では、コントローラ１００は、秘密鍵選択に用いるカウンタＭを１に設定する。ステップＳ１２０９では、コントローラ１００は、秘密鍵セット１４２０の中から、下Ｍ桁目（＝下１桁目）の“Ｃ”に対応する秘密鍵を選択し、４重暗号化されていた共通鍵を共通鍵復号処理ｄ５０３にて一回復号し、共通鍵１４３０を得る。続いてステップＳ１２１０でコントローラ１００は、秘密鍵選択カウンタＭをインクリメントし、Ｍ＝２とする。ステップＳ１２１１で、Ｍの値が秘密鍵の個数４を越えていないので、コントローラ１００は、ステップ１２０９に戻り下２桁目の“９”に対応する秘密鍵を選択し、暗号化された共通鍵を復号し、２重暗号化された共通鍵１４３１を得る。この処理ループをすべての桁にたいして実施ずる。その後、ステップＳ１２１０にてＭ＝５となり、ステップＳ１２１１にてＭ＝５は秘密鍵の個数４を越えるので、コントローラ１００は、共通鍵復号処理を終える。
【００８３】
共通鍵が復号されたので、処理ｄ５０４ではステップＳ１２１２ではコントローラ１００は、平文の共通鍵１４３３を用いて、暗号化されたＰＤＬデータ１４０２の復号を行い、平文のＰＤＬデータ１４４０を得る。
【００８４】
その後、ステップＳ１２１３中のＰＤＬ解釈レンダリング処理ｄ５０５にて、コントローラ１００は、ＰＤＬデータを解釈する。もしＰＤＬデータの復号に失敗している場合は、ＰＤＬ文法の誤りをステップＳ１２１４で検知してステップＳ１２１５にてＰＤＬエラーとするか、もしくは印刷処理ｄ５０６にて印刷出力はされるが、印刷内容がみだれる結果となる。
【００８５】
なお、本実施例の説明においては、共通鍵暗号アルゴリズムにＤＥＳ、公開鍵暗号アルゴリズムにＲＳＡ、ハッシュ生成アルゴリズムにＣＲＣ１６／ＣＣＩＴＴを用いた。しかし、本発明を実施するためには、必ずしもこれらのアルゴリズムを適用する必要はない。共通鍵暗号、公開鍵暗号、ハッシュ生成のそれぞれの要件を満たすアルゴリズムは他にも多数存在するため、必要とする暗号強度やコストに応じて、適宜選択して適用すればよい。
【００８６】
[実施例３]
実施例３では、電子ドキュメントデータ構造として、文字画像に関する描画オブジェクト毎に、その印刷属性や付加情報をメタデータして保持する構成を、図面を参照して説明する。
【００８７】
＜プリントジョブデータ構成＞
図１６は電子ドキュメントデータの構造を示している。
【００８８】
電子ドキュメントデータは複数ページからなるデータであり、大きく分けるとベクタデータ（ａ）、メタデータ（ｂ）、ＤＬ（ｃ）から構成されており、ドキュメントヘッダ（ｘ１）を先頭とする階層構造である。ベクタデータ（ａ）はさらに、ページヘッダ（ｘ２）、サマリ情報（ｘ３）、オブジェクト（ｘ５）から構成されており、メタデータ（ｂ）はさらにページ情報（ｘ５）と詳細情報（ｘ６）から構成されている。ＤＬ（ｃ）はさらに、ページヘッダ（ｘ７）と描画展開用のインストラクション（ｘ８）から構成されている。ドキュメントヘッダ（ｘ１）にはベクタデータの格納場所とＤＬの格納場所が記述されているためベクタデータとＤＬはドキュメントヘッダ（ｘ１）によって関連付けられている。
【００８９】
ページヘッダ（ｘ２）にはページの大きさや向きなどのレイアウト情報が記述される。オブジェクト（ｘ４）にはライン、多角形、ベジェ曲線、などの描画データが一つずつリンクされており、複数のオブジェクトがまとめてサマリ情報（ｘ３）に関連付けられている。サマリ情報（ｘ３）は複数のオブジェクトの特徴をまとめて表現するものであり、像域のもととなる情報などが記述される。また、描画オブジェクト（ｘ４）としてイメージオブジェクトがリンクされる場合もある。
【００９０】
メタデータ（ｂ）は描画処理には関係しない付加情報である。
【００９１】
ページ情報（ｘ５）領域には、例えばメタデータがイメージモードデータから生成されたものなのか、文字オブジェクトを含むＰＤＬデータから生成されたものなのか、などのページ情報が記述される。詳細情報（ｘ６）には、セキュリティ関係の属性や、付加情報として生成された文字列（文字コード列）が記述される。また、ベクタデータ（ａ）のサマリ情報（ｘ３）からはメタデータが参照されており、サマリ情報（ｘ３）から詳細情報（ｘ６）を見つけることができる。
【００９２】
ＤＬ（ｃ）はレンダラがビットマップ展開するための中間コードである。ページヘッダ（ｘ７）にはページ内の描画情報（インストラクション）の管理テーブルなどが記述され、インストラクション（ｘ８）は解像度依存な描画情報から構成されている。
【００９３】
以上の電子ドキュメントデータの構成のうち、暗号化されたＰＤＬデータ９４２に該当するものは、ベクタデータ（ａ）およびＤＬ（ｃ）である。また、印刷属性９４１は、ドキュメントヘッダ（ｘ１）の中に記述されると同時に、メタデータ中の詳細情報（ｘ６）に記述することも可能である。さらにメタデータ中の詳細情報（ｘ６）の中には、暗号化された共通鍵９４３も記述されている。
【００９４】
ドキュメントヘッダ（ｘ１）にて印刷属性が記述された場合は、その印刷属性は電子ドキュメント全体に対して適用され、メタデータ中の詳細情報（ｘ６）の中の暗号化された共通鍵９４３も、同一ドキュメント内で同じものが用いられる。
【００９５】
メタデータ中の詳細情報（ｘ６）にて印刷属性が記述された場合は、その印刷属性は対応するサマリ情報（ｘ３）にてまとめられる複数の描画オブジェクト（ｘ４）に対してのみ適用される。この際、暗号化に用いる平文の共通鍵９３０は同一であっても、印刷属性をもとに暗号化された共通鍵９４３はサマリ情報（ｘ３）ごとに異なるものになる。
【００９６】
図１７は図１６で説明したデータ構造がメモリ上、ファイル上にどう配置されるのかを示す図である。
【００９７】
１７−１で示すように電子ドキュメントデータデータはベクタデータ領域、メタデータ領域、ＤＬ領域がメモリ上の任意のアドレスに配置される。
【００９８】
１７−２で示すように電子ドキュメントデータデータはベクタデータ領域、メタデータ領域、ＤＬ領域が、一つのファイルにシリアライズされる。
【００９９】
[他の実施形態]
以上、様々な実施形態を詳述したが、本発明は、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。例えば、スキャナ、プリンタ、ＰＣ、複写機、複合機及びファクシミリ装置に適用してもよい。
【０１００】
本発明は、前述した実施形態の各機能を実現するソフトウェアプログラムを、システム若しくは装置に対して直接または遠隔から供給し、そのシステム等に含まれるコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。従って、本発明の機能・処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、上記機能・処理を実現するためのコンピュータプログラム自体も本発明の一つである。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１０１】
プログラムを供給するためのコンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、コンピュータ読み取り可能な記録媒体としては、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ）などもある。
【０１０２】
また、プログラムは、クライアントコンピュータのブラウザを用いてインターネット／イントラネットのウェブサイトからダウンロードしてもよい。すなわち、該ウェブサイトから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードしてもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるウェブサイトからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明の構成要件となる場合がある。
【０１０３】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配付してもよい。この場合、所定条件をクリアしたユーザにのみ、インターネット／イントラネットを介してウェブサイトから暗号化を解く鍵情報をダウンロードさせ、その鍵情報で暗号化されたプログラムを復号して実行し、プログラムをコンピュータにインストールしてもよい。
【０１０４】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現されてもよい。なお、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ってもよい。もちろん、この場合も、前述した実施形態の機能が実現され得る。
【０１０５】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ってもよい。このようにして、前述した実施形態の機能が実現されることもある。
【図面の簡単な説明】
【０１０６】
【図１】実施形態におけるシステム構成の一例を示す図である。
【図２】実施形態における機器のコントローラの構成例を示すブロック図である。
【図３】実施形態におけるコントローラソフトウェアの構成の一例を示すブロック図である。
【図４】実施形態におけるホストコンピュータでのデータフローを示す図である。
【図５】実施形態におけるコントローラでのデータフローを示す図である。
【図６】実施形１におけるホストコンピュータでの処理の流れを示す図である。
【図７】実施形１におけるコントローラでのプリントジョブ処理の流れを示す図である。
【図８】実施形１におけるコントローラでの公開鍵配付処理の流れを示す図である。
【図９】実施形１におけるホストコンピュータでのプリントジョブデータ暗号化処理を模式的に示す図である。
【図１０】実施形１におけるコントローラでのプリントジョブデータ復号化処理を模式的に示す図である。
【図１１】実施形２におけるホストコンピュータでの処理の流れを示す図である。
【図１２】実施形２におけるコントローラでのプリントジョブ処理の流れを示す図である。
【図１３】実施形２におけるホストコンピュータでのプリントジョブデータ暗号化処理を模式的に示す図である。
【図１４】実施形２におけるコントローラでのプリントジョブデータ
【図１５】実施形１におけるドキュメントのデータ構造を示す図である。
【図１６】実施形３におけるドキュメントのデータ構造を示す図である。
【図１７】実施形３におけるドキュメントの格納構造を示す図である。
【符号の説明】
【０１０７】
１００  コントローラ
１５０  操作部
２００  リーダ装置
３００  プリンタ装置
４００  ＬＡＮ
４０１  ホストコンピュータ
【図１】
0005393038.tif 000002
【図２】
0005393038.tif 000003
【図３】
0005393038.tif 000004
【図４】
0005393038.tif 000005
【図５】
0005393038.tif 000006
【図６】
0005393038.tif 000007
【図７】
0005393038.tif 000008
【図８】
0005393038.tif 000009
【図９】
0005393038.tif 000010
【図１０】
0005393038.tif 000011
【図１１】
0005393038.tif 000012
【図１２】
0005393038.tif 000013
【図１３】
0005393038.tif 000014
【図１４】
0005393038.tif 000015
【図１５】
0005393038.tif 000016
【図１６】
0005393038.tif 000017
【図１７】
0005393038.tif 000018