(57)【要約】【課題】  公開鍵基盤（ＰＫＩ）に頼らずとも、印刷装置について公開鍵の安全性を確保可能とする。【解決手段】  印刷装置と通信媒体を介して接続されたホストコンピュータであって、前記印刷装置より第１の暗号化鍵を受信する受信手段と、前記第１の暗号化鍵を人間が視認可能な形態で表示する表示情報を生成する生成手段と、前記表示情報を表示する表示手段とを備える。【選択図】図１
2006304199.tif 000002
【特許請求の範囲】
【請求項１】
印刷装置と通信媒体を介して接続されたホストコンピュータであって、
前記印刷装置より第１の暗号化鍵を受信する受信手段と、
前記第１の暗号化鍵を人間が視認可能な形態で表示する表示情報を生成する生成手段と、
前記表示情報を表示する表示手段と
を備えるホストコンピュータ。
【請求項２】
前記生成手段は、少なくとも、
前記第１の暗号化鍵を文字列に変換する文字列変換手段と、
前記第１の暗号化鍵をドットパターンに変換するドットパターン変換手段と
のいずれかを備え、
前記表示情報には、少なくとも前記文字列及びドットパターンのいずれかが含まれることを特徴とする請求項１に記載のホストコンピュータ。
【請求項３】
前記印刷装置は、第２の暗号化鍵を記憶する記憶手段を備え、
前記ホストコンピュータは、
前記印刷装置が、前記記憶手段に記憶された前記第２の暗号化鍵を人間が視認可能な形態にて記録紙に印刷した印刷結果を読み取り、前記表示情報に対応する印刷情報を取得する印刷情報取得手段と、
前記印刷情報と前記表示情報とを比較する比較手段と、
前記比較手段により前記印刷情報と前記表示情報とが一致する場合に、前記ホストコンピュータが受信した前記第１の暗号化鍵は前記印刷装置の前記記憶手段に記憶された第２の暗号化鍵と同一であると判定する判定手段と
を備えることを特徴とする請求項１又は２に記載のホストコンピュータ。
【請求項４】
ホストコンピュータと通信媒体を介して接続され、第１の暗号化鍵と第２の暗号化鍵で構成される暗号化鍵のペアを記憶する記憶手段と、前記ホストコンピュータから前記第１の暗号化鍵を用いて暗号化された印刷データを受信する受信手段と、前記暗号化された印刷データを前記第２の暗号化鍵を用いて復号する復号手段と、復号された印刷データを印刷する印刷手段とを備える印刷装置であって、
前記第１の暗号化鍵を人間が視認可能な形態で前記印刷手段により印刷するための印刷情報を生成する生成手段と、
前記印刷装置がオフライン状態にあるか否かを判定する判定手段を備え、
前記印刷装置がオフライン状態にある場合に、前記印刷装置は前記印刷情報を印刷することを特徴とする印刷装置。
【請求項５】
前記オフライン状態とは、前記印刷装置のオンライン状態を表示するオンライン表示部が消灯し、かつ、前記印刷手段における印刷が行われていない状態である請求項４に記載の印刷装置。
【請求項６】
前記生成手段は、少なくとも、
前記第１の暗号化鍵を文字列に変換する文字列変換手段と、
前記第１の暗号化鍵をドットパターンに変換するドットパターン変換手段と
のいずれかを備え、
前記印刷情報には、少なくとも前記文字列及びドットパターンのいずれかが含まれることを特徴とする請求項４又は５に記載の印刷装置。
【請求項７】
前記受信手段は、前記ホストコンピュータより前記第１の暗号化鍵の転送要求を受信し、
前記印刷装置は、前記転送要求に応じて前記第１の暗号化鍵を前記ホストコンピュータに送信する送信手段を更に備えることを特徴とする請求項４乃至６の何れかに記載の印刷装置。
【請求項８】
印刷装置と通信媒体を介して接続されたホストコンピュータの制御方法であって、
前記印刷装置より第１の暗号化鍵を受信する受信工程と、
前記第１の暗号化鍵から、前記ホストコンピュータのユーザが視認可能な表示情報を生成する生成工程と、
前記表示情報を表示部に表示する表示工程と
を備えるホストコンピュータの制御方法。
【請求項９】
前記生成工程は、少なくとも、
前記第１の暗号化鍵を文字列に変換する文字列変換工程と、
前記第１の暗号化鍵をドットパターンに変換するドットパターン変換工程と
のいずれかを備え、
前記表示情報には、少なくとも前記文字列及びドットパターンのいずれかが含まれることを特徴とする請求項８に記載のホストコンピュータの制御方法。
【請求項１０】
前記印刷装置は、第２の暗号化鍵を記憶する記憶部を備え、
前記ホストコンピュータは、
前記印刷装置が、前記記憶部に記憶された前記第２の暗号化鍵を人間が視認可能な形態にて記録紙に印刷した印刷結果を読み取り、前記表示情報に対応する印刷情報を取得する印刷情報取得工程と、
前記印刷情報と前記表示情報とを比較する比較工程と、
前記比較工程において前記印刷情報と前記表示情報とが一致する場合に、前記ホストコンピュータが受信した前記第１の暗号化鍵は前記印刷装置の前記記憶部に記憶された第２の暗号化鍵と同一であると判定する判定工程と
を備えることを特徴とする請求項８又は９に記載のホストコンピュータの制御方法。
【請求項１１】
ホストコンピュータと通信媒体を介して接続され、第１の暗号化鍵と第２の暗号化鍵で構成される暗号化鍵のペアを記憶する記憶部と、前記ホストコンピュータから前記第１の暗号化鍵を用いて暗号化された印刷データを受信する受信部と、前記暗号化された印刷データを前記第２の暗号化鍵を用いて復号する復号部と、復号された印刷データを印刷する印刷部とを備える印刷装置の制御方法であって、
前記第１の暗号化鍵から、人間が視認可能な形態の印刷情報を生成する生成工程と、
前記印刷装置がオフライン状態にあるか否かを判定する判定工程を備え、
前記印刷装置がオフライン状態にある場合に、前記印刷部が前記印刷情報を印刷することを特徴とする印刷装置の制御方法。
【請求項１２】
前記オフライン状態とは、前記印刷装置のオンライン状態を表示するオンライン表示部が消灯し、かつ、前記印刷部における印刷が行われていない状態である請求項１１に記載の印刷装置の制御方法。
【請求項１３】
前記生成工程は、少なくとも、
前記第１の暗号化鍵を文字列に変換する文字列変換工程と、
前記第１の暗号化鍵をドットパターンに変換するドットパターン変換工程と
のいずれかを備え、
前記印刷情報には、少なくとも前記文字列及びドットパターンのいずれかが含まれることを特徴とする請求項１１又は１２に記載の印刷装置の制御方法。
【請求項１４】
前記受信部は、前記ホストコンピュータより前記第１の暗号化鍵の転送要求を受信し、
前記印刷装置は、前記転送要求に応じて前記第１の暗号化鍵を前記ホストコンピュータに送信する送信工程を更に備えることを特徴とする請求項１１乃至１３の何れかに記載の印刷装置の制御方法。
【請求項１５】
請求項８乃至１４のいずれかに記載の方法をコンピュータに実行させるためのコンピュータプログラム。
【請求項１６】
請求項１５に記載のコンピュータプログラムを格納したコンピュータで読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストコンピュータ、印刷装置及びそれらの制御方法、コンピュータプログラム、記憶媒体に関する。
【背景技術】
【０００２】
昨今、印刷装置とホストコンピュータからなる印刷システムにおいては、ただユーザの要求する印刷を行えればいいというわけではなく、ユーザのプライバシーを保持して印刷を行うといったセキュリティ印刷機能に対する要求が増加している。
【０００３】
特にホストコンピュータとネットワークの経路間においてプリントジョブを暗号化することによって印刷ジョブの機密性を保護するセキュアプリントが考案されている（特許文献１を参照。）。
【０００４】
一般的にパフォーマンス上の要件から印刷データの暗号化は３DES(Triple Data Encryption Standard)やAES(Advanced Encryption Standard)といった共通鍵暗号方式が用いられる。一方、共通鍵暗号方式においては暗号鍵を暗号側と復号側の双方に共有する必要があり、暗号鍵を安全に受け渡すことが重要となっている。そこで、共通鍵暗号方式の暗号鍵を乱数から生成するワンタイム・パスワードとし、共通暗号鍵をさらに公開鍵方式によって暗号、復号化するハイブリッド暗号化方式が考案されている。公開鍵方式においては、暗号化を行う公開鍵自体は公に公開してもセキュリティ上問題ないため、鍵共有の問題から事実上開放される。
【０００５】
その一方で公開鍵が対象機器（例えば印刷装置）から安全に提供されているかが問題になっている。というのも、不正な機器が対象機器と偽って不正な公開鍵を送る「なりすまし」や、経路上で不正に暗号鍵が変更される改ざんの可能性があるからである。例えば「なりすまし」が行われると、気づかぬうちに不正な公開鍵によって印刷データの暗号化が行われ、不正な公開鍵で暗号化された印刷データは不正な機器において復号化することができるので、その結果として暗号化された印刷データが不正利用されてしまう虞がある。
【０００６】
一般的には「なりすまし」問題を回避するために、公開鍵の受け渡しには公開鍵基盤(ＰＫＩ)によるデジタル証明書を用いることができる。すなわち、公開鍵を含むデジタル証明書には、信頼のある認証局（ＣＡ局）による証明がされることによって公開鍵の正当性が保証されるものである。認証局は複数の証明局によるリンク構成をとっていても構わないが、最後にはインターネット上で信頼性のあるＣＡ局に結びついている必要がある。このように公開鍵の証明を信頼のある第３者に行ってもらう方式を一般的に「第３者証明」という。
【特許文献１】特開平９−１３４２６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、公開鍵基盤（ＰＫＩ）に基づく第３者証明には様々な問題点がある。第１にワールドワイドで信用できるＣＡ局を用いるためにはインターネット上に公開している権威のあるＣＡ局を用いることが一般的であり、対象システムがインターネットに接続されていることが前提となる。印刷装置の場合、セキュリティの観点から外部への接続を制限している場合があり、ＣＡ局への接続ができない場合や、そもそもインターネットに接続されない運用が考えられる。このような場合にはおいては内部のイントラネットに局所的にＣＡ局の肩代わりをするサーバを立てる場合もあるが、サーバの運用には手間がかかるという問題点がある。
【０００８】
第２の問題として、インターネットに接続可能な場合でも、信頼できるＣＡ局がどれであるか選択する必要があり、セキュリティ運用を高度に保つためには所定のスキルが必要となり運用を困難にしているという問題がある。
【０００９】
第３の問題として、第３者証明を行う証明方法が複雑であり、ユーザが理解しにくいという問題点である。
【００１０】
このように、公開鍵基盤（ＰＫＩ）に頼らず印刷装置について公開鍵の安全性を確保することは困難であった。そこで、本発明では、公開鍵基盤（ＰＫＩ）に頼らずとも、印刷装置について公開鍵の安全性を確保可能とすることを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するための本発明は、印刷装置と通信媒体を介して接続されたホストコンピュータであって、前記印刷装置より第１の暗号化鍵を受信する受信手段と、前記第１の暗号化鍵を人間が視認可能な形態で表示する表示情報を生成する生成手段と、前記表示情報を表示する表示手段とを備える。
【００１２】
また、上記課題を解決する本発明は、ホストコンピュータと通信媒体を介して接続され、第１の暗号化鍵と第２の暗号化鍵で構成される暗号化鍵のペアを記憶する記憶手段と、前記ホストコンピュータから前記第１の暗号化鍵を用いて暗号化された印刷データを受信する受信手段と、前記暗号化された印刷データを前記第２の暗号化鍵を用いて復号する復号手段と、復号された印刷データを印刷する印刷手段とを備える印刷装置であって、前記第１の暗号化鍵を人間が視認可能な形態で前記印刷手段により印刷するための印刷情報を生成する生成手段と、前記印刷装置がオフライン状態にあるか否かを判定する判定手段を備え、前記印刷装置がオフライン状態にある場合に、前記印刷装置は前記印刷情報を印刷することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、公開鍵基盤（ＰＫＩ）に頼らずとも、印刷装置について公開鍵の安全性を確保できる。
【発明を実施するための最良の形態】
【００１４】
添付する図面を参照して、本発明の実施形態を以下に説明する。
【００１５】
［第１の実施形態］
以下に第１の実施形態に対応する本発明の内容を説明する。図１は本発明の第１の実施形態に対応する印刷システムの構成の一例を示す図である。
【００１６】
図１において、印刷システムは印刷データを作成するホストコンピュータ１００、印刷データを実際の用紙に印刷する印刷装置１５０および両者を接続する所定の通信媒体１７０（例えば、ローカルエリアネットワークが含まれる。）から構成されている。
【００１７】
ホストコンピュータ１００において、１０１は公開鍵受信部であり、印刷装置１５０から通信媒体１７０を介して公開鍵を受信する。１０２は公開鍵記憶部であり、公開鍵受信部１０１が受信した公開鍵を記憶しておく。１０９は、公開鍵表示データ生成部であり、公開鍵記憶部１０２に記憶された公開鍵に基づいて公開鍵表示データを生成する。１０７は、公開鍵表示部であり、受信した公開鍵により生成された公開鍵表示データをグラフィックユーザインターフェイスを用いて図示する。公開鍵表示部１０７は例えば、液晶ディスプレイやＣＲＴディスプレイなどによって構成される。１０８はアプリケーションであり、印刷対象となる文書や図面データを生成する。アプリケーション１０８には、例えばワープロソフトや表計算ソフト、描画ソフトなどのソフトウェア・アプリケーションが含まれる。
【００１８】
１０３はプリンタドライバであり、アプリケーション１０８の要求に従って印刷装置１５０で解釈可能な印刷データを生成する。１０４は暗号部であって、プリンタドライバ１０３から受け付けた印刷データを暗号化する。１０５は、送信バッファであり、暗号部１０４で暗号化された印刷データを一時的に格納しておく。１０６は、Ｉ／Ｆ（インタフェース）送受信部であり、暗号化された印刷データの送信や公開鍵の受信を行うための通信媒体１７０とのインタフェースである。
【００１９】
また、印刷装置１５０において、１５１はＩ／Ｆ（インタフェース）送受信部であって、印刷データの受信や公開鍵の送信を行うための通信媒体１７０とのインタフェースである。１５２は受信バッファであり、受信した印刷データを一時的に格納しておく。１５３は、受信データ制御部であり、受信データと公開鍵印刷データのどちらの解釈を行うかを選択する。１６３は、暗号復号部であり、暗号化された受信データを復号する。１５４は印刷データ解釈部であり、受信データ制御部１５３における選択に従って、印刷データをイメージデータに変換する。１５５はイメージバッファであり、印刷データ解釈部１５４の解釈によって生成されたイメージデータを一時的に格納する。
【００２０】
１５６は公開鍵送信部であり、公開鍵をＩ／Ｆ送受信部１５０１を介してホストコンピュータ１００に送信したり、ホストコンピュータ１００から送信される公開鍵の転送要求コマンドを受信し解釈する。１５８は公開鍵ペア生成部であり、公開鍵と秘密鍵から構成される公開鍵ペアを操作パネル１６２による指示に応じて生成する。１５７は公開鍵ペア記憶部であり、公開鍵ペア生成部１５８で生成された公開鍵ペアを保存する。１６１は公開鍵印刷データ生成部であり、公開鍵ペア記憶部１５７に保存された公開鍵ペアのうち、公開鍵だけを取得して所定のフォーマットに従った印刷データを生成し受信データ制御部１５３に送信する。１５９は描画部であり、イメージバッファ１５５に記憶されたイメージデータを取得して描画を行う。１６０はプリンタエンジンであり、描画部１５９が描画した描画結果を電子写真技術やインクジェット技術などの所定の印刷技術を駆使して実際に用紙に印刷を行う。１６２は操作パネルであり、印刷装置１５０の状態を通知するためのディスプレイ、印刷装置１５０がオンライン／オフラインのいずれの状態にあるかを通知するためのオンラインボタン（例えば、点灯時にオンラインを示し、消灯時にオフラインを示す。）、その他印刷装置１５０の設定・動作指示を行うための操作ボタンを供え、ユーザからの操作を受け付ける。
【００２１】
本システムにおけるワークフローは、（１）公開鍵ペア生成部１５８において生成された公開鍵と秘密鍵からなる公開鍵ペアのうち、公開鍵を印刷装置１５０からホストコンピュータ１００へ受け渡す動作と、（２）ホストコンピュータ１００から送信される印刷データを印刷装置１５０において印刷する動作の、２つにより主に構成される。
【００２２】
まず、印刷装置１５０からホストコンピュータ１００への公開鍵の受け渡しについて説明する。
【００２３】
公開鍵ペアとは公開鍵暗号方式で使われる公開鍵、秘密鍵の組み合わせのことであり、機器に固有な情報として提供される情報である。ここで公開鍵は外部に自由に提供しても構わないが、秘密鍵は機器の外部に出力されることなく保管される必要がある。
【００２４】
図１において公開鍵ペアは印刷装置１５０が独自に持っている情報であり、工場出荷時に初期値が生成され、公開鍵ペア記憶部１５７に記憶される。あるいはユーザが操作パネル１６２の操作により「公開鍵ペア生成」というアクションが選択されることにより新規の公開鍵ペアが生成される。公開鍵の生成には可能な限り理想的な乱数発生器を利用する。また、操作パネル１６２の操作等による外部からの公開鍵ペア記憶部１５７へのアクセスはできないようになっており、不正に公開鍵ペアが漏洩することはない。公開鍵ペア記憶部１５７に格納される公開鍵ペアのうち、公開鍵は外部に提供してもセキュリティ上問題ない鍵であり、ホストコンピュータ１００の要求によりいつでも提供することができる。
【００２５】
次に、ホストコンピュータ１００が印刷装置１５０から公開鍵を取得する場合の処理について図３を参照して説明する。図３は、本実施形態に対応するホストコンピュータ１００が公開鍵を取得するまでの過程の一例に対応するフローチャートである。
【００２６】
ホストコンピュータ１００から公開鍵を要求する場合、ステップＳ３０１において公開鍵受信部１０１が、公開鍵の転送要求コマンドを印刷装置１５０に発行する。この際には、印刷データの送信とは異なるポート番号が使用され、印刷ジョブの受け渡しとは独立に行うことが可能である。公開鍵の転送要求コマンドは、Ｉ／Ｆ送受信部１０６、通信媒体１７０及びＩ／Ｆ送受信部１５１を介して公開鍵送信部１５６に送信される。ステップＳ３０２において公開鍵送信部１５６では、コマンド受信を監視しており、コマンドを受信した場合には（ステップＳ３０２において「ＹＥＳ」）、ステップＳ３０３へ移行して受信したコマンドを解釈する。
【００２７】
この結果、受信したコマンドが転送要求コマンド以外のコマンドと判別された場合には（ステップＳ３０４において「ＮＯ」）、ステップＳ３０９へ移行して対応する処理を実行する。一方、転送要求コマンドを受信したと判別された場合には（ステップＳ３０４において「ＹＥＳ」）、ステップＳ３０５へ移行する。  ステップＳ３０５では、公開鍵ペア記憶部１５７に格納される公開鍵ペアのうち、公開鍵のみ抽出する。そしてステップＳ３０６において、公開鍵をホストコンピュータ１００に転送する。
【００２８】
ホストコンピュータ１００側では、ステップＳ３０１における転送要求コマンド発行後、ステップＳ３０７において公開鍵受信部１０１における公開鍵の受信を監視しており、公開鍵が受信された場合には（ステップＳ３０７において「ＹＥＳ」）、ステップＳ３０８に移行して、受信した公開鍵を公開鍵記憶部１０２に格納する。
【００２９】
以上の処理において、通信媒体１７０を介して行われる公開鍵の受け渡しは、物理的に確認できないため、例えば悪意のある者が印刷装置１５０ではない不正な装置から不正な公開鍵をホストコンピュータ１００に渡す「なりすまし」問題が発生する可能性があることを念頭に入れておく必要がある。
【００３０】
次に、ホストコンピュータ１００から送信される印刷データを印刷装置１５０において印刷する場合の印刷処理について、図４のフローチャートを参照して説明する。図４は、印刷装置１５０における印刷データの印刷処理の一例に対応するフローチャートである。
【００３１】
まず、ステップＳ４０１において、プリンタドライバ１０３が、ホストコンピュータ１００上で実行されているアプリケーション１０８により起動される。ステップＳ４０２において、プリンタドライバ１０３は、印刷装置１５０に適合した印刷データの生成を行う。プリンタドライバ１０３で生成された印刷データは、ステップＳ４０３において暗号部１０４により暗号化される。
【００３２】
このとき、公開鍵記憶部１０２に格納されている印刷装置１５０用の公開鍵が使用される。ここで、印刷データそのものを公開鍵を使って暗号化しても良いが、一般的にＲＳＡなどの公開鍵暗号方式は処理が重く時間がかかる。そこで、公開鍵そのもので印刷データを暗号化するのではなく、乱数から生成したセッション鍵を用いて印刷データをＤＥＳやＡＥＳに代表される共通鍵暗号方式により暗号化し、そのセッション鍵そのものを公開鍵暗号方式により暗号化して印刷データに添付することが好ましい。本実施形態では、セッション鍵を暗号化して添付するこの方式を採用した場合について説明する。
【００３３】
ステップＳ４０４において、暗号化された印刷データは一時的に送信バッファ１０５に格納され、送信の準備が整い次第、I/F送受信部１０６を介して印刷装置１５０に送信される。
【００３４】
印刷装置１５０では、ステップＳ４０５においてI/F送受信部１５１が印刷データの受信を監視しており、印刷データを受信すると（ステップＳ４０５において「ＹＥＳ」）、ステップＳ４０６において受信バッファ１５２に一時的に格納する。次に、ステップＳ４０７において受信データ制御部１５３により印刷装置１５０自体がオンラインであるか否かが判定される。ここでオンラインと判定されれば（ステップＳ４０７において「ＹＥＳ」）、ステップＳ４０８へ移行して、受信バッファ１５２に格納された印刷データが暗号復号部１６３に送られ、暗号化されている印刷データが復号される。
【００３５】
一方、印刷装置１５０がオンラインではない（オフライン）であると判定された場合には（ステップＳ４０７において「ＮＯ」）、受信した暗号化印刷データの印刷は行わないので、そのまま処理を終了する。ここで、「オンライン」とは、例えばホストコンピュータ１００から印刷データを印刷のために受け付けることが可能な、印刷装置１５０の状態をいう。
【００３６】
ステップＳ４０８における復号結果について、ステップＳ４０９では印刷処理が実行される。具体的には、復号結果の印刷データが印刷データ解釈部１５４に送られ、印刷データ解釈部１５４が印刷データを解釈することによってイメージデータを作成し、イメージバッファ１５５に一時的に格納する。その後、描画部１５９によってラスターデータに変換し、電子写真技術やインクジェット技術などの既知の印刷技術によって構成されるプリンタエンジン１６０に送られて、実際の用紙に印刷する。
【００３７】
ここで、ステップＳ４０８における暗号復号部１６３による暗号化印刷データの復号処理について説明する。印刷データには属性情報が付加されて送られるが、その属性情報の一部として、印刷データを復号化するための共通鍵を公開鍵暗号方式で暗号化した情報が与えられる。なお、属性情報には、印刷枚数、用紙サイズ、印刷文書名やユーザ名などが含まれる。
【００３８】
この暗号化は、予めホストコンピュータ１００に受渡されている開鍵を用いて行われるので、対応する秘密鍵は公開鍵ペア記憶部１５７に記憶されている。そこで、ペアとなる秘密鍵を用いて、まずは共通鍵の復号化が可能である。復号化の結果取り出すことができた共通鍵を用いれば、共通鍵暗号方式により暗号化された印刷データ本体を復号化するができ、最終的に受信データの平文を取り出すことが可能となる。
【００３９】
次に、本実施形態に対応する公開鍵の証明方法を説明する。
【００４０】
図３を参照して説明した公開鍵の取得処理に基づき、ホストコンピュータ１００は公開鍵を印刷装置１５０から取得し、公開鍵記憶部１０２に保持している。しかし、通信媒体１７０の経路上において不正な攻撃者により公開鍵の改ざんあるいは「なりすまし」による不正な公開鍵が送信される可能性がある。そこで、以下の処理を実行することにより、ホストコンピュータ１００が保持している公開鍵が正当なものか、それとも不正なものかを検証することができる。
【００４１】
まず、印刷装置１５０において、公開鍵をユーザにより視覚的に認識可能なデータとして印刷出力する。このような公開鍵の印刷処理を本実施形態では「公開鍵プリント」と呼ぶことにする。
【００４２】
図５は、本実施形態に対応する公開鍵プリントの一例に対応するフローチャートである。図５において、まずステップＳ５０１では、印刷装置１５０のユーザから、操作パネル１６２を介した公開鍵プリントの指示があったか否かを監視している。もし指示を受け付けた場合には（ステップＳ５０１において「ＹＥＳ」）、ステップＳ５０２に移行して印刷装置１５０がオフラインであるか否かを判定する。もし、印刷装置１５０がオフラインでない場合には（ステップＳ５０２において「ＮＯ」）、ステップＳ５０３においてオフライン処理を行う。
【００４３】
このようなオフライン処理を行うのは、公開鍵プリントそのものの偽造を防止するためである。具体的に、オフライン処理では、例えば操作パネル１６２のディスプレイに「装置をオフラインにしてください」等のメッセージを表示して、ユーザにオンラインボタンの操作を促す。この表示に応じてユーザがオンラインボタンの操作を行ってオンラインボタンを消灯させ、その結果印刷装置１５０がオフライン状態に移行されると、印刷装置１５０は、現在印刷している印刷データがあったら、その排出待ちを行う。排出によって完全に印刷装置１５０の印刷データの入力が停止し、その後公開鍵プリントの実施が可能になる。
【００４４】
このオフライン処理はユーザにボタン操作を促すことなく、自動的にオフライン状態へ遷移するようにしても良い。また、オンライン／オフラインの切り替え機構を有さないプリンタであれば、ネットワーク通信のために開いている通信ポートを一時的に閉じるようにしても良い。
【００４５】
ステップＳ５０４では、公開鍵印刷データ生成部１６１が、公開鍵ペア記憶部１５７から公開鍵を取得し、公開鍵プリント用の印刷データ（公開鍵印刷データ）を生成する。続いて、ステップＳ５０５では、生成された公開鍵印刷データが、受信データ制御部１５３に送信され、印刷データ解釈部１５４、イメージバッファ１５５、描画部１５９を介して、プリンタエンジン１６０において印刷される。
【００４６】
次に、ステップＳ５０４における公開鍵印刷データ生成部１６１における公開鍵印刷データの生成処理について、図６を参照して説明する。まず、公開鍵印刷データの構成の一例は図２に示すようになる。図２は、公開鍵印刷データを印刷した印刷結果の一例を示すものであり、このように公開鍵は、人間が視認可能な形態で印刷されることとなる。
【００４７】
図６の公開鍵印刷データ生成処理では、まずステップＳ６０１において、公開鍵プリントであることを示すタイトルを生成する。このタイトルは、図２における２１１に対応する。次に、ステップＳ６０２では、バイナリデータである公開鍵を文字に変換して文字パターンを生成する。この文字パターンは、図２に示す点線で囲まれた領域２１２に対応する。
【００４８】
更に、ステップＳ６０３では、人間の視覚による比較を容易にするために公開鍵からハッシュ処理を行うことによって、フィンガープリント文字列を生成する。このフィンガープリント文字列は、図２における文字列２１３に対応する。より具体的に、このフィンガープリント文字列２１３は、公開鍵の一意性をより短い文字列で確認できるようにするために、公開鍵をMD5(Message Digest 5)やSHA-1(Secure Hash Algorithm 1)といった既知の一方向ハッシュ関数を用いて小さな固定長に変換した結果を１６進コードで表現した文字列を示す。一方向ハッシュ関数の特性として、公開鍵が１ビットでも異なる場合には全く違う出力結果を示し、異なる公開鍵が同じハッシュ結果になる可能性は非常に少ないため、使用者は比較的少ないフィンガープリント文字列の比較を行うだけで正しい公開鍵のやり取りが行われたかどうかを判断できる。
【００４９】
更に、ステップＳ６０４において、より視覚的に公開鍵のパターンを判断するための１６x１６の格子に変換された公開鍵のドットパターン（公開鍵パターン）を生成する。この公開鍵パターンは、図２に示すパターン２１４に対応する。より具体的に、この公開鍵パターン２１４は視覚的に公開鍵の相違が判断できるとともに、スキャナに代表される光学読み取り機器において公開鍵が読み取れる文字パターンであることが望ましい。このような文字パターンは、ISO/IEC-18004あるいはJIS-X-0510で定義された2次元コードシンボル（ＱＲコード基本仕様）を利用して生成することができる。このＱＲコードは２次元バーコードの一種であり、データ領域に公開鍵のバイナリコードとして３０００バイト弱のデータを含めることが可能である。
【００５０】
また、ステップＳ６０５では、公開鍵パターン２１４のパターンから比較対象との差異を見落とさないために隣接するドットとのXORを取るなどして、公開鍵パターン２１４で見分けにくい視覚パターンを判別可能とする差分パターンを生成する。この差分パターンは、図２に示すパターン２１５に対応する。
【００５１】
なお、ここで１６x１６の場合は公開鍵が２５６bitの鍵長であることを示すが、鍵長が長くても格子の数を増やすことにより対応可能である。  次に、図５のステップＳ５０２乃至Ｓ５０５における処理のうち、受信データ制御部１５３における処理の一例を、図７を参照してより詳細に説明する。図７は、本実施形態に対応する受信データ制御部１５３の処理の一例に対応するフローチャートである。
【００５２】
図７において、受信データ制御部１５３は、印刷装置１５０の起動とともに動作を開始し、以降印刷装置の電源遮断まで動作を継続する。まず、ステップＳ７０１において、印刷装置１５０の動作状態を調査し、オンラインであるか否かを判定する。ここで、オンラインの条件としては、操作パネル１６２上のオンラインボタンが点灯状態であるか、或いは、印刷装置１５０がオンライン時に受け付けた印刷データの印刷排紙が完了していないか、のどちらかの条件に合致した場合である。
【００５３】
一方、オフラインは、操作パネル１６２上のオンラインボタンが消灯状態となっており、かつ、印刷装置１５０において印刷処理が実行されていないこと、言い換えれば、印刷装置１５０がオンライン時に受け付けた印刷データの排紙が完全に完了した場合である。
【００５４】
もし、ステップＳ７０１においてオンラインと判定された場合には（ステップＳ７０１において「ＹＥＳ」）、ステップＳ７０２において受信バッファ１５２からの印刷データの取得を試みる。一方、オフラインと判定された場合には（ステップＳ７０１において「ＮＯ」）、ステップＳ７０３において公開鍵印刷データ生成部１６１からの印刷データの取得を試みる。
【００５５】
ステップＳ７０４では、ステップＳ７０２又はステップＳ７０３において印刷データが取得されたか否かを判定する。もし、取得データがあると判定された場合には（ステップＳ７０４において「ＹＥＳ」）、ステップＳ７０５に移行して、取得された印刷データが暗号化データであるか否かを判定する。一方、取得データが無いと判定された場合には（ステップＳ７０４において「ＮＯ」）、ステップＳ７０１に戻って処理を継続する。
【００５６】
ステップＳ７０５において、取得した印刷データが暗号化データであると判定された場合には、（ステップＳ７０５において「ＹＥＳ」）、ステップＳ７０７へ移行して、取得データを暗号復号部１６３に送信する。一方、暗号化データ出なかった場合には（ステップＳ７０５において「ＮＯ」）、ステップＳ７０６に移行して、取得データを直接データ解釈部１５４へ送信する。その後は、ステップＳ７０１に戻って、処理を継続する。
【００５７】
このように、受信データ制御部１５３は、印刷装置１５０のオンライン時には受信バッファ１５２に一時格納された印刷データを後段に渡すが、オフライン時には公開鍵印刷データ生成部１６１が生成した公開鍵プリントの印刷データだけを後段に渡す。また公開鍵プリントの印刷データの内容は外部から変更することができないように生成される。ここで公開鍵プリントの印刷データの生成はISO/IEC-18004あるいはJIS-X-0510で定義された2次元コードシンボルの生成手順に従うものとし、説明を省略する。
【００５８】
よって、オフライン時に印刷された公開鍵プリントの印刷結果は外部からなりすましたり改ざんすることが不可能となるため、オフライン時に印刷された公開鍵プリントは印刷装置１５０の公開鍵であることが正しいと保証できる。
【００５９】
以上のようにして印刷された公開鍵の情報は、ホストコンピュータ１００が保持する公開鍵を、ユーザにより視覚的に認識可能なデータとしてディスプレイ出力し、これと比較されることで、印刷装置１５０の公開鍵がホストコンピュータ１００に確実に受け渡しされたことを確認できる。
【００６０】
ホストコンピュータ１００側における表示は、公開鍵表示部１０７が公開鍵記憶部１０２に記憶された公開鍵を利用して公開鍵表示データ生成部１０９が生成した公開鍵表示データを利用して行う。この公開鍵表示データの生成は、図６に示すフローチャートと同様の処理により行われ、公開鍵表示部１０７に表示される内容は図２の公開鍵プリントとまったく同じパターンとなる。ユーザは公開鍵パターンの表示と公開鍵プリントの紙面とを比較することによって、公開鍵の受け渡しが正しく行われていたか確認することが可能である。
【００６１】
なお、ホストコンピュータ１００は表示パターンを故意に破壊するようなウィルスに感染されないように一般的なウィルスチェッカ・ソフトウェアによるウィルスチェックを継続的に行われていることがあらかじめ前提として必要である。
【００６２】
以上のように、本実施形態によれば、印刷装置１５０が生成し、ホストコンピュータ１００に送られた公開鍵は、印刷装置１５０の公開鍵プリントによって正当な公開鍵のパターンを印刷することが可能であり、公開鍵プリントと、ホストコンピュータ１００で表示した公開鍵パターンを比較することによって、公開鍵の不正送信を検知することが可能である。
【００６３】
これによって、第１の問題点であるCA局に証明してもらうためにインターネット接続する必要が解消され、第２の問題点であるセキュリティに対する高度なスキルが不要となり、さらに第３の問題である証明の複雑さが解消可能となる。
【００６４】
［第２の実施形態］
第１の実施形態においては、ユーザは公開鍵プリントとホストコンピュータのＵＩ上の表示される公開鍵パターンの目視による正当性確認に依存していたが、より人に依存しない形で公開鍵の受け渡しを行う方法を述べる。
【００６５】
第１の実施形態においては、ホストコンピュータへの公開鍵の受け渡しは通信媒体を介していたが、通信媒体を使わずに公開鍵を送ることができれば、通信経路上のなりすまし、改ざんといった問題を回避することが可能である。そこで、第１の実施形態の公開鍵プリント結果をホストコンピュータにローカルインターフェイスで接続されたスキャナで読み込むことにより、文字パターンとなるＱＲコードを認識、ISO/IEC-18004あるいはJIS-X-0510で定義された2次元コードシンボルの読み取り手段を用いてデータ領域から公開鍵を生成することによって、公開鍵の受け渡しを安全に行うことが可能である。
【００６６】
本実施形態に対応するホストコンピュータ１００での公開鍵の認証処理を、図８を参照して説明する。図８は、当該認証処理の一例に対応するフローチャートである。
【００６７】
まずステップＳ８０１において、印刷装置１５０により公開鍵印刷データが印刷された記録紙をスキャナによりスキャン処理して、印刷結果に対応する画像データを取得する。次に、ステップＳ８０２では、取得された画像データから、公開鍵印刷データに対応する公開鍵情報を抽出する。ここでの抽出処理は、例えば、図２に対応する各要素２１１から２１５につき、文字要素については文字認識処理により文字情報を抽出し、図形要素については２値化処理によりドットパターンを抽出すればよい。
【００６８】
次に、ステップＳ８０３では、公開鍵記憶部１０２に記憶されている公開鍵に基づいて、公開鍵表示データ生成部１０９により、公開鍵表示用データを生成する。ここでの生成処理は、図６に示すフローチャートと同様であり、図２の２１１から２１５の各要素が生成される。ステップＳ８０４では、ステップＳ８０２で抽出された公開鍵印刷データと、ステップＳ８０３において生成された公開鍵表示データとを比較し、両者が一致するか否かを判定する。
【００６９】
もし、両者が一致する場合には（ステップＳ８０５において「ＹＥＳ」）、ステップＳ８０６に移行して、公開鍵の認証に成功した旨の表示を行い、一致しない場合には（ステップＳ８０５において「ＮＯ」）、ステップＳ８０７に移行してエラー表示を行う。
【００７０】
なお、上記の実施形態では、抽出した公開鍵印刷データと生成した公開鍵表示データを比較したが、これによらず、例えば、公開鍵表示データに基づき、ステップＳ８０１において得られた公開鍵印刷データに対応する画像データと同様の画像データを生成し、パターンマッチングにより、量画像が一致するか否かに基づいて、認証を行っても良い。
【００７１】
また、第１の実施形態における図２の公開鍵プリント結果は人間が判断しやすいパターンを示していたが、スキャナで読み込ませる場合には、図９に示すような２次元バーコードのような機械的なパターンでもかまわない。
【００７２】
図９において、９０１は縦横どの方向からでも正確に読み取りを行うためのガイドパターンとなる切り出しシンボルである。また、９０２は格子上のセルの白黒複数の連続から構成されるデータ領域とから構成される。ここでデータ領域に公開鍵のバイナリ情報が格納されることになる。なおデータ領域には誤り訂正情報も含まれているが、本件では重要ではないため、説明を省略する。
【００７３】
以上のように、本実施形態によれば、印刷装置１５０から出力された公開鍵プリントをホストコンピュータ１００においてスキャナにより読み取ることで電子化し、公開鍵記憶部１０２に予め格納してある公開鍵から得られる公開鍵表示データと比較することで、ユーザの視覚的な判断によらずに、ホストコンピュータ１００において、公開鍵の認証を行い、不正送信を検知できる。
【００７４】
これによって、本実施形態でも、第１の問題点であるCA局に証明してもらうためにインターネット接続する必要が解消され、第２の問題点であるセキュリティに対する高度なスキルが不要となり、さらに第３の問題である証明の複雑さが解消可能となる。
【００７５】
［その他の実施形態］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００７６】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７７】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００７８】
【図１】本発明の実施形態に対応する印刷システムの構成の一例を示す図である。
【図２】本発明の実施形態に対応する公開鍵プリントの印刷結果の一例を示す図である。
【図３】本発明の実施形態に対応するホストコンピュータ１００が公開鍵を取得するまでの過程の一例に対応するフローチャートである。
【図４】本発明の実施形態に対応する印刷装置１５０における印刷データの印刷処理の一例に対応するフローチャートである。
【図５】本発明の実施形態に対応する公開鍵プリントの一例に対応するフローチャートである。
【図６】本発明の実施形態に対応する公開鍵印刷データの生成処理の一例に対応するフローチャートである。
【図７】本発明の実施形態に対応する受信データ制御部１５３の処理の一例に対応するフローチャートである。
【図８】本実施形態に対応するホストコンピュータ１００での公開鍵の認証処理の一例に対応するフローチャートである。
【図９】本発明の第２の実施形態に対応する公開鍵パターンの一例を示す図である。
【図１】
2006304199.tif 000003
【図２】
2006304199.tif 000004
【図３】
2006304199.tif 000005
【図４】
2006304199.tif 000006
【図５】
2006304199.tif 000007
【図６】
2006304199.tif 000008
【図７】
2006304199.tif 000009
【図８】
2006304199.tif 000010
【図９】
2006304199.tif 000011