(57)【要約】【課題】  電子ファイルに含まれるコンテンツの利用回数を容易に且つ確実に制限することができるようにする。【解決手段】  帳票サーバ１００１は、クライアントＰＣ１００２からの要求に応じて、帳票データ３００を配信する。帳票データ３００が配信されたクライアントＰＣ１００２は、帳票データ３００に含まれている帳票本体データ３０１から帳票印刷イメージデータを生成するとともに、帳票データ３００に含まれている帳票ＩＤ３０２とｎ回目の復号鍵とから二次元バーコードイメージデータを生成し、帳票印刷イメージ６０１、６０３と、二次元バーコードイメージ６０２、６０４とを印刷する。そして、帳票データ３００に含まれているｎ回目の暗号鍵とｎ回目の復号鍵とからなる鍵ペアを削除する。次回以降の印刷では、二次元バーコードイメージ６０２、６０４を使用して、帳票本体データ３０１を復号化するようにする。【選択図】  図６
2005159556.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツを含む暗号化された暗号化電子ファイルを復号化する復号化ステップと、
上記復号化ステップにより復号化された電子ファイルを解釈して、上記コンテンツを利用可能な形態で出力する第１の出力ステップと、
上記第１の出力ステップによりコンテンツが出力されたとき、又は出力された後に、暗号鍵及び復号鍵を１組み生成する生成ステップと、
上記生成ステップにより生成された暗号鍵を用いて、上記復号化ステップにより復号化された電子ファイルを再暗号化する再暗号化ステップと、
上記再暗号化ステップにより再暗号化された暗号化電子ファイルを保存する保存ステップと、
上記生成ステップにより生成された復号鍵を出力する第２の出力ステップとを有することを特徴とするコンテンツ利用回数制限方法。
【請求項２】
上記保存ステップにより暗号化電子ファイルが保存される場合に、元の暗号化電子ファイルを削除する削除ステップを有することを特徴とする請求項１に記載のコンテンツ利用回数制限方法。
【請求項３】
上記保存ステップは、上記暗号化電子ファイルを、元の暗号化電子ファイルに上書きして保存することを特徴とする請求項１に記載のコンテンツ利用回数制限方法。
【請求項４】
コンテンツと、上記コンテンツの残り利用回数値とを含む暗号化された暗号化電子ファイルを復号化する復号化ステップと、
上記復号化ステップにより復号化された電子ファイルを解釈して、上記コンテンツを利用可能な形態で出力する第１の出力ステップと、
上記第１の出力ステップによりコンテンツが出力されたとき、又は出力された後に、乱数を基に暗号鍵及び復号鍵を１組み生成する生成ステップと、
上記第１の出力ステップによる上記コンテンツの出力に伴って、上記コンテンツの残り利用回数値をカウントダウンする利用回数値変更ステップと、
上記利用回数値変更ステップにより変更されたコンテンツの残り利用回数値が０でないときに、上記生成ステップにより生成された暗号鍵を用いて、上記復号化ステップにより復号化された電子ファイルを再暗号化する再暗号化ステップと、
上記再暗号化ステップにより再暗号化された暗号化電子ファイルを保存する保存ステップと、
上記利用回数値変更ステップにより変更されたコンテンツの残り利用回数値が０でないときに、上記生成ステップにより生成された復号鍵を出力する第２の出力ステップとを有し、
上記利用回数値変更ステップにより変更されたコンテンツの残り利用回数値が０であるときには、上記コンテンツ及び上記復号鍵の何れも出力しないことを特徴とするコンテンツ利用回数制限方法。
【請求項５】
上記保存ステップにより暗号化電子ファイルが保存される場合に、元の暗号化電子ファイルを削除する削除ステップを有することを特徴とする請求項４に記載のコンテンツ利用回数制限方法。
【請求項６】
上記保存ステップは、上記暗号化電子ファイルを、元の暗号化電子ファイルに上書きして保存することを特徴とする請求項４に記載のコンテンツ利用回数制限方法。
【請求項７】
コンテンツと、上記コンテンツの利用回数の上限値に相当する数の暗号鍵及び復号鍵の組とを含む暗号化された暗号化電子ファイルを復号化する復号化ステップと、
上記復号化ステップにより復号化された電子ファイルを解釈して、上記コンテンツを利用可能な形態で出力する第１の出力ステップと、
上記暗号鍵を用いて上記電子ファイルを再暗号化する再暗号化ステップと、
上記再暗号化ステップにより再暗号化された暗号化電子ファイルを保存する保存ステップと、
上記再暗号化ステップで用いられた暗号鍵と組みとなっている復号鍵を取得する復号鍵取得ステップと、
上記復号鍵取得ステップにより取得された復号鍵を出力する第２の出力ステップと、
上記復号鍵取得ステップにより復号鍵が取得された後に、上記電子ファイル内に、上記暗号鍵及び復号鍵の組が１つ以上存在すると判断すると、そのうちの１つを上記電子ファイル内から削除する削除ステップとを有し、
上記電子ファイル内に暗号鍵及び復号鍵の組が１つも存在しなければ、上記コンテンツ及び上記復号鍵の何れも出力しないことを特徴とするコンテンツ利用回数制限方法。
【請求項８】
上記保存ステップにより暗号化電子ファイルが保存される場合に、元の暗号化電子ファイルを削除する削除ステップを有することを特徴とする請求項７に記載のコンテンツ利用回数制限方法。
【請求項９】
上記保存ステップは、上記暗号化電子ファイルを、元の暗号化電子ファイルに上書きして保存することを特徴とする請求項７に記載のコンテンツ利用回数制限方法。
【請求項１０】
上記暗号鍵と上記復号鍵とが同一な共通鍵暗号方式を使用していることを特徴とする請求項１〜９の何れか１項に記載のコンテンツ利用回数制限方法。
【請求項１１】
上記第２の出力ステップにより出力される復号鍵の出力先を、上記電子ファイルに埋め込む埋め込みステップを有し、
上記第２の出力ステップは、上記埋め込みステップにより埋め込まれた出力先へ復号鍵を出力することを特徴とする請求項１〜１０の何れか１項に記載のコンテンツ利用回数制限方法。
【請求項１２】
上記第２出力ステップにより出力された復号鍵を二次元バーコードとして紙上に印刷する印刷ステップと、
上記印刷ステップにより紙上に印刷された二次元バーコードを読み取る読み取りステップとを有することを特徴とする請求項１〜１１の何れか１項に記載のコンテンツ利用回数制限方法。
【請求項１３】
上記第２出力ステップにより出力された復号鍵を電子透かしとして紙上に印刷する印刷ステップと、
上記印刷ステップにより紙上に印刷された電子透かしを読み取る読み取りステップとを有することを特徴とする請求項１〜１１の何れか１項に記載のコンテンツ利用回数制限方法。
【請求項１４】
上記コンテンツを利用するクライアント環境に固有の属性を取得する属性取得ステップと、
上記属性取得ステップにより取得された属性に基づいて、共通暗号鍵を生成する共通暗号鍵生成ステップと、
上記共通暗号鍵生成ステップにより生成された共通暗号鍵を用いて、上記復号鍵を暗号化する復号鍵暗号化ステップと、
上記第２の出力ステップにより出力された復号鍵が入力されると、上記コンテンツを利用するクライアント環境に固有の属性を再取得する属性再取得ステップと、
上記属性再取得ステップにより再取得された属性に基づいて、共通暗号鍵を再生成する共通暗号鍵再生成ステップと、
上記共通暗号鍵再生成ステップにより再生成された共通暗号鍵を用いて、上記入力された復号鍵を復号化する復号鍵復号化ステップとを有し、
上記第２の出力ステップは、上記復号鍵暗号化ステップにより暗号化された復号鍵を出力し、
上記復号化ステップは、上記復号鍵復号化ステップにより復号化された復号鍵を用いて、暗号化電子ファイルを復号化することを特徴とする請求項１〜１３の何れか１項に記載のコンテンツ利用回数制限方法。
【請求項１５】
上記第２の出力ステップは、上記第１の出力ステップにより出力されるコンテンツとともに、復号鍵を出力することを特徴とする請求項１〜１４の何れか１項に記載のコンテンツ利用回数制限方法。
【請求項１６】
コンテンツを含む暗号化された暗号化電子ファイルを復号化する復号化手段と、
上記復号化手段により復号化された電子ファイルを解釈して、上記コンテンツを利用可能な形態で出力する第１の出力手段と、
上記第１の出力手段によりコンテンツが出力されたとき、又は出力された後に、暗号鍵及び復号鍵を１組み生成する生成手段と、
上記生成手段により生成された暗号鍵を用いて、上記復号化手段により復号化された電子ファイルを再暗号化する再暗号化手段と、
上記再暗号化手段により再暗号化された暗号化電子ファイルを保存する保存手段と、
上記生成手段により生成された復号鍵を出力する第２の出力手段とを有することを特徴とするコンテンツ利用端末装置。
【請求項１７】
コンテンツと、上記コンテンツの残り利用回数値とを含む暗号化された暗号化電子ファイルを復号化する復号化手段と、
上記復号化手段により復号化された電子ファイルを解釈して、上記コンテンツを利用可能な形態で出力する第１の出力手段と、
上記第１の出力手段によりコンテンツが出力されたとき、又は出力された後に、乱数を基に暗号鍵及び復号鍵を１組み生成する生成手段と、
上記第１の出力手段による上記コンテンツの出力に伴って、上記コンテンツの残り利用回数値をカウントダウンする利用回数値変更手段と、
上記利用回数値変更手段により変更されたコンテンツの残り利用回数値が０でないときに、上記生成手段により生成された暗号鍵を用いて、上記復号化手段により復号化された電子ファイルを再暗号化する再暗号化手段と、
上記再暗号化手段により再暗号化された暗号化電子ファイルを保存する保存手段と、
上記利用回数値変更手段により変更されたコンテンツの残り利用回数値が０でないときに、上記生成手段により生成された復号鍵を出力する第２の出力手段とを有することを特徴とするコンテンツ利用端末装置。
【請求項１８】
コンテンツと、上記コンテンツの利用回数の上限値に相当する数の暗号鍵及び復号鍵の組とを含む暗号化された暗号化電子ファイルを復号化する復号化手段と、
上記復号化手段により復号化された電子ファイルを解釈して、上記コンテンツを利用可能な形態で出力する第１の出力手段と、
上記暗号鍵を用いて上記電子ファイルを再暗号化する再暗号化手段と、
上記再暗号化手段により再暗号化された暗号化電子ファイルを保存する保存手段と、
上記再暗号化手段で用いられた暗号鍵と組みとなっている復号鍵を取得する復号鍵取得手段と、
上記復号鍵取得手段により取得された復号鍵を出力する第２の出力手段と、
上記復号鍵取得手段により復号鍵が取得された後に、上記電子ファイル内に、上記暗号鍵及び復号鍵の組が１つ以上存在すると判断すると、そのうちの１つを上記電子ファイル内から削除する削除手段とを有することを特徴とするコンテンツ利用端末装置。
【請求項１９】
上記保存手段により暗号化電子ファイルが保存される場合に、元の暗号化電子ファイルを削除する削除手段を有することを特徴とする請求項１６〜１８の何れか１項に記載のコンテンツ利用端末装置。
【請求項２０】
上記保存手段は、上記暗号化電子ファイルを、元の暗号化電子ファイルに上書きして保存することを特徴とする請求項１６〜１８の何れか１項に記載のコンテンツ利用端末装置。
【請求項２１】
上記暗号鍵と上記復号鍵とが同一な共通鍵暗号方式を使用していることを特徴とする請求項１６〜２０の何れか１項に記載のコンテンツ利用端末装置。
【請求項２２】
上記電子ファイルは、上記第２の出力手段により出力される復号鍵の出力先に関する情報を含み、
上記第２の出力手段は、上記埋め込み手段により埋め込まれた出力先へ復号鍵を出力することを特徴とする請求項１６〜２１の何れか１項に記載のコンテンツ利用端末装置。
【請求項２３】
上記コンテンツを利用するクライアント環境に固有の属性を取得する属性取得手段と、
上記属性取得手段により取得された属性に基づいて、共通暗号鍵を生成する共通暗号鍵生成手段と、
上記共通暗号鍵生成手段により生成された共通暗号鍵を用いて、上記復号鍵を暗号化する復号鍵暗号化手段と、
上記第２の出力手段により出力された復号鍵が入力されると、上記コンテンツを利用するクライアント環境に固有の属性を再取得する属性再取得手段と、
上記属性再取得手段により再取得された属性に基づいて、共通暗号鍵を再生成する共通暗号鍵再生成手段と、
上記共通暗号鍵再生成手段により再生成された共通暗号鍵を用いて、上記入力された復号鍵を復号化する復号鍵復号化手段とを有し、
上記第２の出力手段は、上記復号鍵暗号化手段により暗号化された復号鍵を出力し、
上記復号化手段は、上記復号鍵復号化手段により復号化された復号鍵を用いて、暗号化電子ファイルを復号化することを特徴とする請求項１６〜２２の何れか１項に記載のコンテンツ利用端末装置。
【請求項２４】
上記第２の出力手段は、上記第１の出力手段により出力されるコンテンツとともに、復号鍵を出力することを特徴とする請求項１６〜２３の何れか１項に記載のコンテンツ利用端末装置。
【請求項２５】
上記請求項１６〜２４の何れか１項に記載のコンテンツ利用端末装置と、上記暗号化電子ファイルを上記コンテンツ利用端末装置に配信するサーバと、上記コンテンツ利用端末装置から出力されたコンテンツの内容を可視化する画像形成装置とを有することを特徴とするコンテンツ利用システム。
【請求項２６】
コンテンツを含む暗号化された暗号化電子ファイルを復号化する復号化ステップと、
上記復号化ステップにより復号化された電子ファイルを解釈して、上記コンテンツを利用可能な形態で出力する第１の出力ステップと、
上記第１の出力ステップによりコンテンツが出力されたとき、又は出力された後に、暗号鍵及び復号鍵を１組み生成する生成ステップと、
上記生成ステップにより生成された暗号鍵を用いて、上記復号化ステップにより復号化された電子ファイルを再暗号化する再暗号化ステップと、
上記再暗号化ステップにより再暗号化された暗号化電子ファイルを保存する保存ステップと、
上記生成ステップにより生成された復号鍵を出力する第２の出力ステップとをコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項２７】
コンテンツと、上記コンテンツの残り利用回数値とを含む暗号化された暗号化電子ファイルを復号化する復号化ステップと、
上記復号化ステップにより復号化された電子ファイルを解釈して、上記コンテンツを利用可能な形態で出力する第１の出力ステップと、
上記第１の出力ステップによりコンテンツが出力されたとき、又は出力された後に、乱数を基に暗号鍵及び復号鍵を１組み生成する生成ステップと、
上記第１の出力ステップによる上記コンテンツの出力に伴って、上記コンテンツの残り利用回数値をカウントダウンする利用回数値変更ステップと、
上記利用回数値変更ステップにより変更されたコンテンツの残り利用回数値が０でないときに、上記生成ステップにより生成された暗号鍵を用いて、上記復号化ステップにより復号化された電子ファイルを再暗号化する再暗号化ステップと、
上記再暗号化ステップにより再暗号化された暗号化電子ファイルを保存する保存ステップと、
上記利用回数値変更ステップにより変更されたコンテンツの残り利用回数値が０でないときに、上記生成ステップにより生成された復号鍵を出力する第２の出力ステップとをコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項２８】
コンテンツと、上記コンテンツの利用回数の上限値に相当する数の暗号鍵及び復号鍵の組とを含む暗号化された暗号化電子ファイルを復号化する復号化ステップと、
上記復号化ステップにより復号化された電子ファイルを解釈して、上記コンテンツを利用可能な形態で出力する第１の出力ステップと、
上記暗号鍵を用いて上記電子ファイルを再暗号化する再暗号化ステップと、
上記再暗号化ステップにより再暗号化された暗号化電子ファイルを保存する保存ステップと、
上記再暗号化ステップで用いられた暗号鍵と組みとなっている復号鍵を取得する復号鍵取得ステップと、
上記復号鍵取得ステップにより取得された復号鍵を出力する第２の出力ステップと、
上記復号鍵取得ステップにより復号鍵が取得された後に、上記電子ファイル内に、上記暗号鍵及び復号鍵の組が１つ以上存在すると判断すると、そのうちの１つを上記電子ファイル内から削除する削除ステップとをコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項２９】
上記請求項２６〜２８の何れか１項に記載のコンピュータプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツ利用回数制限方法、コンテンツ利用端末装置、コンテンツ利用システム、コンピュータプログラム、及びコンピュータ読み取り可能な記録媒体に関し、特に、コンテンツの利用回数を制限するために用いて好適なものである。
【背景技術】
【０００２】
コンテンツの利用回数を制限する方法の従来技術としては、以下のようなものがある。
（第１の従来技術）
クライアントにおけるコンテンツの利用の状況を、クライアントからサーバに送信し、サーバ側でクライアント毎の利用回数を管理する。そして、利用回数が制限回数に達した場合、サーバは、クライアントに対して、コンテンツの使用許可通知を送信しない。これにより、コンテンツの利用回数を制限する（例えば、特許文献１を参照）。
【０００３】
（第２の従来技術）
また、サーバからクライアントに配信された電子帳票のクライアントにおける印刷回数を制御する技術があった。この技術では、まず、電子帳票ファイル内に属性として記憶されているＩＤと、印刷回数上限値とを、最初の印刷時に印刷履歴ファイルにコピーし、印刷回数をそれらと関連付けて印刷履歴ファイル内に保存する。そして、２回目以降の印刷では、印刷しようとする電子帳票ファイルのＩＤから、印刷履歴ファイル内を検索して、対応する印刷回数と印刷回数上限値とを比較して印刷可否の判断し、印刷可であると判断すれば、印刷回数をインクリメントして印刷処理を実行する。
【０００４】
【特許文献１】特開２００３−６７６５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、一般に、電子ファイルは、コピーや配布にかかるコストが非常に安い。そのため、機密の情報を含む電子ファイルが一旦関係者以外の第三者に渡ると、その内容が広く流通してしまう恐れがあり、電子ファイルの所有者は、大きなリスクを負うことになる。それを避けるために、電子ファイル自体が第三者に渡ってもその内容を知られないことが必要になる。これを実現するには、電子ファイルを暗号化するのが一般的である。
【０００６】
しかしながら、電子ファイルを単純に暗号化すると、暗号化した電子ファイルを利用するための復号鍵を利用者に渡さなければならない。したがって、利用者が不特定多数であったり、利用者を完全には信頼できなかったりする場合には、電子ファイルを単純に暗号化すると、十分にリスクを軽減できない。
【０００７】
このような状況は、金融商品のような物体の移動を伴わない商取引のように、代理店が取引を仲介する業態において実際にあり得ることである。したがって、そのような利用者に対しては、電子ファイルの内容を利用する機会や方法を制限したり、不正利用に必要となるコストや障壁を高くしたりすることで、電子ファイルの情報が漏洩するというリスクを最小化したい。このようなリスクを最小化する場合には、電子ファイルの利用回数を制限するというのが、情報の管理者と利用者との双方にとって理解しやすい。
【０００８】
そして、電子ファイルの利用回数を制限することを実現するために、従来は、上記第１の従来技術で述べたように、電子ファイルの利用システムを、サーバとクライアントとを用いて構成し、電子ファイルを利用する際に必要な信号やデータを、サーバからクライアントに送信するという手法が一般的であった。
しかしながら、この手法により電子ファイルの利用回数を制限すると、利用の都度、ネットワークに接続することが必要になってしまうという問題点があった。
【０００９】
また、上記第２の従来技術で述べたように、電子ファイルの利用回数を制限しつつ、クライアントとサーバとの通信回数を抑制するために、電子ファイルの利用回数の履歴を、クライアント側のローカルファイルとして保存する手法も存在する。
しかしながら、この手法では、利用回数の履歴を記憶した利用履歴ファイルに対しては何の保護もされていない。このため、電子ファイルを利用する前に利用履歴ファイルをコピーして別途保存しておき、利用した後に新しい利用履歴ファイルに対して履歴を上書きすると、記憶されている利用回数が元に戻ってしまう問題点があった。
【００１０】
本発明は、上述の問題点に鑑みてなされたものであり、電子ファイルに含まれるコンテンツの利用回数を容易に且つ確実に制限することができるようにすることを目的とする。
【課題を解決するための手段】
【００１１】
本発明のコンテンツ利用回数制限方法は、コンテンツを含む暗号化された暗号化電子ファイルを復号化する復号化ステップと、上記復号化ステップにより復号化された電子ファイルを解釈して、上記コンテンツを利用可能な形態で出力する第１の出力ステップと、上記第１の出力ステップによりコンテンツが出力されたとき、又は出力された後に、暗号鍵及び復号鍵を１組み生成する生成ステップと、上記生成ステップにより生成された暗号鍵を用いて、上記復号化ステップにより復号化された電子ファイルを再暗号化する再暗号化ステップと、上記再暗号化ステップにより再暗号化された暗号化電子ファイルを保存する保存ステップと、上記生成ステップにより生成された復号鍵を出力する第２の出力ステップとを有することを特徴とする。
また、本発明の他の特徴とするところは、コンテンツと、上記コンテンツの残り利用回数値とを含む暗号化された暗号化電子ファイルを復号化する復号化ステップと、上記復号化ステップにより復号化された電子ファイルを解釈して、上記コンテンツを利用可能な形態で出力する第１の出力ステップと、上記第１の出力ステップによりコンテンツが出力されたとき、又は出力された後に、乱数を基に暗号鍵及び復号鍵を１組み生成する生成ステップと、上記第１の出力ステップによる上記コンテンツの出力に伴って、上記コンテンツの残り利用回数値をカウントダウンする利用回数値変更ステップと、上記利用回数値変更ステップにより変更されたコンテンツの残り利用回数値が０でないときに、上記生成ステップにより生成された暗号鍵を用いて、上記復号化ステップにより復号化された電子ファイルを再暗号化する再暗号化ステップと、上記再暗号化ステップにより再暗号化された暗号化電子ファイルを保存する保存ステップと、上記利用回数値変更ステップにより変更されたコンテンツの残り利用回数値が０でないときに、上記生成ステップにより生成された復号鍵を出力する第２の出力ステップとを有し、上記利用回数値変更ステップにより変更されたコンテンツの残り利用回数値が０であるときには、上記コンテンツ及び上記復号鍵の何れも出力しないことを特徴とする。
また、本発明のその他の特徴とするところは、コンテンツと、上記コンテンツの利用回数の上限値に相当する数の暗号鍵及び復号鍵の組とを含む暗号化された暗号化電子ファイルを復号化する復号化ステップと、上記復号化ステップにより復号化された電子ファイルを解釈して、上記コンテンツを利用可能な形態で出力する第１の出力ステップと、上記暗号鍵を用いて上記電子ファイルを再暗号化する再暗号化ステップと、上記再暗号化ステップにより再暗号化された暗号化電子ファイルを保存する保存ステップと、上記再暗号化ステップで用いられた暗号鍵と組みとなっている復号鍵を取得する復号鍵取得ステップと、上記復号鍵取得ステップにより取得された復号鍵を出力する第２の出力ステップと、上記復号鍵取得ステップにより復号鍵が取得された後に、上記電子ファイル内に、上記暗号鍵及び復号鍵の組が１つ以上存在すると判断すると、そのうちの１つを上記電子ファイル内から削除する削除ステップとを有し、上記電子ファイル内に暗号鍵及び復号鍵の組が１つも存在しなければ、上記コンテンツ及び上記復号鍵の何れも出力しないことを特徴とする。
【００１２】
本発明のコンテンツ利用端末装置は、コンテンツを含む暗号化された暗号化電子ファイルを復号化する復号化手段と、上記復号化手段により復号化された電子ファイルを解釈して、上記コンテンツを利用可能な形態で出力する第１の出力手段と、上記第１の出力手段によりコンテンツが出力されたとき、又は出力された後に、暗号鍵及び復号鍵を１組み生成する生成手段と、上記生成手段により生成された暗号鍵を用いて、上記復号化手段により復号化された電子ファイルを再暗号化する再暗号化手段と、上記再暗号化手段により再暗号化された暗号化電子ファイルを保存する保存手段と、上記生成手段により生成された復号鍵を出力する第２の出力手段とを有することを特徴とする。
また、本発明の他の特徴とするところは、コンテンツと、上記コンテンツの残り利用回数値とを含む暗号化された暗号化電子ファイルを復号化する復号化手段と、上記復号化手段により復号化された電子ファイルを解釈して、上記コンテンツを利用可能な形態で出力する第１の出力手段と、上記第１の出力手段によりコンテンツが出力されたとき、又は出力された後に、乱数を基に暗号鍵及び復号鍵を１組み生成する生成手段と、上記第１の出力手段による上記コンテンツの出力に伴って、上記コンテンツの残り利用回数値をカウントダウンする利用回数値変更手段と、上記利用回数値変更手段により変更されたコンテンツの残り利用回数値が０でないときに、上記生成手段により生成された暗号鍵を用いて、上記復号化手段により復号化された電子ファイルを再暗号化する再暗号化手段と、上記再暗号化手段により再暗号化された暗号化電子ファイルを保存する保存手段と、上記利用回数値変更手段により変更されたコンテンツの残り利用回数値が０でないときに、上記生成手段により生成された復号鍵を出力する第２の出力手段とを有することを特徴とする。
また、本発明のその他の特徴とするところは、コンテンツと、上記コンテンツの利用回数の上限値に相当する数の暗号鍵及び復号鍵の組とを含む暗号化された暗号化電子ファイルを復号化する復号化手段と、上記復号化手段により復号化された電子ファイルを解釈して、上記コンテンツを利用可能な形態で出力する第１の出力手段と、上記暗号鍵を用いて上記電子ファイルを再暗号化する再暗号化手段と、上記再暗号化手段により再暗号化された暗号化電子ファイルを保存する保存手段と、上記再暗号化手段で用いられた暗号鍵と組みとなっている復号鍵を取得する復号鍵取得手段と、上記復号鍵取得手段により取得された復号鍵を出力する第２の出力手段と、上記復号鍵取得手段により復号鍵が取得された後に、上記電子ファイル内に、上記暗号鍵及び復号鍵の組が１つ以上存在すると判断すると、そのうちの１つを上記電子ファイル内から削除する削除手段とを有することを特徴とする。
本発明のコンテンツ利用システムは、上記何れかに記載のコンテンツ利用端末装置と、上記暗号化電子ファイルを上記コンテンツ利用端末装置に配信するサーバと、上記コンテンツ利用端末装置から出力されたコンテンツの内容を可視化する画像形成装置とを有することを特徴とする。
【００１３】
本発明のコンピュータプログラムは、コンテンツを含む暗号化された暗号化電子ファイルを復号化する復号化ステップと、上記復号化ステップにより復号化された電子ファイルを解釈して、上記コンテンツを利用可能な形態で出力する第１の出力ステップと、上記第１の出力ステップによりコンテンツが出力されたとき、又は出力された後に、暗号鍵及び復号鍵を１組み生成する生成ステップと、上記生成ステップにより生成された暗号鍵を用いて、上記復号化ステップにより復号化された電子ファイルを再暗号化する再暗号化ステップと、上記再暗号化ステップにより再暗号化された暗号化電子ファイルを保存する保存ステップと、上記生成ステップにより生成された復号鍵を出力する第２の出力ステップとをコンピュータに実行させることを特徴とする。
また、本発明の他の特徴とするところは、コンテンツと、上記コンテンツの残り利用回数値とを含む暗号化された暗号化電子ファイルを復号化する復号化ステップと、上記復号化ステップにより復号化された電子ファイルを解釈して、上記コンテンツを利用可能な形態で出力する第１の出力ステップと、上記第１の出力ステップによりコンテンツが出力されたとき、又は出力された後に、乱数を基に暗号鍵及び復号鍵を１組み生成する生成ステップと、上記第１の出力ステップによる上記コンテンツの出力に伴って、上記コンテンツの残り利用回数値をカウントダウンする利用回数値変更ステップと、上記利用回数値変更ステップにより変更されたコンテンツの残り利用回数値が０でないときに、上記生成ステップにより生成された暗号鍵を用いて、上記復号化ステップにより復号化された電子ファイルを再暗号化する再暗号化ステップと、上記再暗号化ステップにより再暗号化された暗号化電子ファイルを保存する保存ステップと、上記利用回数値変更ステップにより変更されたコンテンツの残り利用回数値が０でないときに、上記生成ステップにより生成された復号鍵を出力する第２の出力ステップとをコンピュータに実行させることを特徴とする。
また、本発明のその他の特徴とするところは、コンテンツと、上記コンテンツの利用回数の上限値に相当する数の暗号鍵及び復号鍵の組とを含む暗号化された暗号化電子ファイルを復号化する復号化ステップと、上記復号化ステップにより復号化された電子ファイルを解釈して、上記コンテンツを利用可能な形態で出力する第１の出力ステップと、上記暗号鍵を用いて上記電子ファイルを再暗号化する再暗号化ステップと、上記再暗号化ステップにより再暗号化された暗号化電子ファイルを保存する保存ステップと、上記再暗号化ステップで用いられた暗号鍵と組みとなっている復号鍵を取得する復号鍵取得ステップと、上記復号鍵取得ステップにより取得された復号鍵を出力する第２の出力ステップと、上記復号鍵取得ステップにより復号鍵が取得された後に、上記電子ファイル内に、上記暗号鍵及び復号鍵の組が１つ以上存在すると判断すると、そのうちの１つを上記電子ファイル内から削除する削除ステップとをコンピュータに実行させることを特徴とする。
本発明のコンピュータ読み取り可能な記録媒体は、上記何れかに記載のコンピュータプログラムを記録したことを特徴とする。
【発明の効果】
【００１４】
本発明によれば、通信コストを最小限に抑えつつ、コンテンツの利用回数をより確実に制限することができる。
【発明を実施するための最良の形態】
【００１５】
次に、図面を参照しながら、本発明の実施の形態について説明する。なお、以下の実施形態では、コンテンツが帳票である場合を例に挙げて説明するが、コンテンツは帳票に限定されないということは勿論である。
（第１の実施形態）
図１は、帳票印刷システムの構成の一例を示した図である。図１において、帳票印刷システムは、本社（拠点）１０１に配設された帳票サーバ１００１と、代理店１０２に配設されたクライアントＰＣ１００２ａ、１００２ｂ、プリンタ１００３、及びスキャナ１００４とが、インターネット１０３、ルータ１０４ａ、１０４ｂ、及びＬＡＮ１０５ａ、１０５ｂを介して通信可能に接続されて構成されている。
なお、以下の説明において、２つのクライアントＰＣ１００２ａ、１００２ｂの双方又は何れか一方を、クライアントＰＣ１００２と略称する。また、クライアントＰＣの数は、２つに限定されないということは勿論である。
【００１６】
帳票サーバ１００１は、帳票を生成及び保存するサーバであり、クライアントＰＣ１００２からの要求に応じて、図３に示す帳票本体データ３０１に、帳票ＩＤ３０２と、利用回数分の暗号鍵及び復号鍵の鍵ペア３０３とを付加してクライアントＰＣ１００２に帳票データ３００として配信する機能を有している。
【００１７】
ここで、図２のフローチャートを参照しながら、クライアントＰＣ１００２から要求を受けた場合の帳票サーバ１００１の動作の一例を説明する。
まず、ステップＳ１において、クライアントＰＣ１００２からのＨＴＴＰリクエストを受信するまで待機する。ＨＴＴＰリクエストを受信すると、ステップＳ２に進み、ステップＳ１で受信したＨＴＴＰリクエストの中身を解析し、受信したＨＴＴＰリクエストが、過去に受信したことのあるＨＴＴＰリクエストと同一であるかどうかを判定する。
【００１８】
この判定の結果、同一であればステップＳ３に進み、ステップＳ１で受信したＨＴＴＰリクエストをキーにして、帳票サーバ１００１内に設けられている帳票ＤＢから、帳票本体データ３０１及びその生成日時を取得する。
一方、同一でなければステップＳ４に進み、ステップＳ１で受信したＨＴＴＰリクエストの内容に基づき帳票本体データ３０１を生成する。そして、ＨＴＴＰリクエストをキーとして、生成した帳票本体データ３０１と、その生成日時とを上記帳票ＤＢに保存する。このようにするのは、帳票本体データ３０１を将来使用できるようにするためである。
【００１９】
次に、ステップＳ５において、帳票本体データ３０１の生成日時と、要求（ＨＴＴＰリクエスト）の受付日時（ステップＳ１でＨＴＴＰリクエストを受信した日時）とから一意となる帳票ＩＤ３０２を生成する。
ここで、帳票ＩＤ３０２の生成に帳票本体データ３０１の生成日時を用いるのは、帳票本体データ３０１毎に帳票ＩＤ３０２を一意とするためである。そして、要求の受付日時を用いるのは、クライアントＰＣ１００２からの要求毎に帳票ＩＤ３０２を一意とするためである。
【００２０】
次に、ステップＳ６において、帳票本体データ３０１の種類と、ＨＴＴＰリクエストを発行したクライアントＰＣ１００２と、ＨＴＴＰリクエストを発行した人物の役職とにより、予め用意したテーブルから印刷回数上限値を決定する。
ここで、帳票本体データ３０１の種類は、例えば、金額にまつわる重要な書類か否かにより識別される。また、クライアントＰＣ１００２は、例えば、上級管理職のクライアントＰＣ１００２から来たＨＴＴＰリクエストか、それとも販売代理店のクライアントＰＣ１００２から来たＨＴＴＰリクエストかなど、リクエストの発信ＩＰアドレスにより識別される。さらに、ＨＴＴＰリクエストを発行した人物の役職は、ＳＳＬを用いた個人認証により人物を特定することによって識別される。なお、識別方法は、これらに限定されないということは勿論である。
【００２１】
また、クライアントＰＣ１００２や、その使用者に与えられている権限により印刷回数上限値を決定するようにしていれば、必ずしも、帳票本体データ３０１の種類と、ＨＴＴＰリクエストを発行したクライアントＰＣ１００２と、ＨＴＴＰリクエストを発行した人物の役職とにより、印刷回数上限値を決定する必要はないということは勿論である。例えば、帳票本体データ３０１の種類と、ＨＴＴＰリクエストを発行したクライアントＰＣ１００２と、ＨＴＴＰリクエストを発行した人物の役職とのうち、何れか１つ又は２つにより印刷回数上限値を決定するようにしてもよい。
【００２２】
次に、ステップＳ７において、ステップＳ６で決定された印刷回数上限値の数だけ、暗号鍵及び復号鍵の鍵ペア３０３を生成する。
次に、ステップＳ８において、ステップＳ３又はステップＳ４で得られた帳票本体データ３０１に、ステップＳ７で生成した鍵ペア３０３と、ステップＳ５で生成した帳票ＩＤ３０２とを付加して、配信データ（帳票データ）３００を生成する。
最後に、ステップＳ９において、ステップＳ８で生成された配信データ（帳票データ）３００を、ステップＳ１で受信したＨＴＴＰリクエストの送信元のクライアントＰＣ１００２に配信する。このステップＳ９で、帳票サーバ１００１がクライアントＰＣ１００２に配信する帳票データ３００の内容は、図３に示す通りである。
【００２３】
次に、図４〜図６を参照しながら、配信データ（帳票データ）３００を受信したクライアントＰＣ１００２、プリンタ１００３、及びスキャナ１００４の動作について説明する。図４は、クライアントＰＣ１００２が配信データ（帳票データ）３００を受信し、受信した帳票データ３００に含まれる帳票本体データ３０１について、最初の印刷を行う場合の処理の一例を説明するフローチャートである。図６は、帳票データ３００に含まれる帳票本体データ３０１の印刷を行う場合の処理の概念を示した図である。
【００２４】
まず、ステップＳ１１において、クライアントＰＣ１００２は、帳票サーバ１００１から配信データ（帳票データ）３００を受信するまで待機する。帳票データ３００を受信すると、ステップＳ１２に進み、クライアントＰＣ１００２は、ステップＳ１１で受信した帳票データ３００を主メモリに保存する。
次に、ステップＳ１３において、クライアントＰＣ１００２は、ステップＳ１２で主メモリに保存された帳票データ３００に含まれる帳票本体データ３０１を元に印刷帳票イメージデータを生成する。
【００２５】
次に、ステップＳ１４において、クライアントＰＣ１００２は、ステップＳ１２で主メモリに保存された帳票データ３００に、１回目の暗号鍵３０３ａと１回目の復号鍵３０３ｂとからなる鍵ペアが含まれているかどうかを判定する。この判定の結果、１回目の暗号鍵３０３ａと１回目の復号鍵３０３ｂとかなる鍵ペアが含まれていない場合には、後述するステップＳ１５〜ステップＳ１８を省略してステップＳ１９に進む。
一方、１回目の暗号鍵３０３ａと１回目の復号鍵３０３ｂとかなる鍵ペアが含まれている場合には、ステップＳ１５に進み、クライアントＰＣ１００２は、クライアント環境に固有の情報を取得し、取得したクライアント環境に固有の情報に基づき、共通暗号鍵を生成（計算）する。なお、クライアント環境に固有の情報は、例えば、クライアントＰＣ１００２のＣＰＵシリアル番号とＭＡＣアドレスである。また、クライアント環境に固有の情報は、必ずしもこのステップで取得する必要はなく、例えば、上記ステップＳ１１で取得すればよい。
【００２６】
次に、ステップＳ１６に進み、クライアントＰＣ１００２は、１回目の復号鍵３０３ｂを、ステップＳ１５で生成された共通暗号鍵で暗号化する。
次に、ステップＳ１７において、クライアントＰＣ１００２は、ステップＳ１２で主メモリに保存された帳票データ３００に含まれる帳票ＩＤ３０２と、ステップＳ１６で暗号化された１回目の復号鍵３０３ｂとを、二次元バーコード化して、二次元バーコードイメージデータを生成する。この二次元バーコードイメージデータは、後述するようにして、２回目の印刷を行う場合に、必要になるデータである。
【００２７】
次に、ステップＳ１８において、クライアントＰＣ１００２は、ステップＳ１３で生成された印刷帳票イメージデータと、ステップＳ１７で生成された二次元バーコードイメージデータとを結合し、印刷イメージデータを生成する。
次に、ステップＳ１９において、クライアントＰＣ１００２は、ステップＳ１８で生成された印刷イメージデータをプリンタ１００３に送信する。そして、プリンタ１００３は、印刷帳票イメージデータと、二次元バーコードイメージデータとをセットにして印刷を行う。これにより、印刷帳票イメージ６０１と、二次元バーコードイメージ（鍵紙）６０２とが用紙上に印刷される。なお、本実施形態では、二次元バーコードイメージ６０２が最終ページとなるように、印刷帳票イメージ６０１と、二次元バーコードイメージ６０２とを用紙上に印刷するようにしている。
【００２８】
次に、ステップＳ２０において、クライアントＰＣ１００２は、ステップＳ１２で主メモリに保存された帳票データ３００に、１回目の暗号鍵３０３ａと１回目の復号鍵３０３ｂとかなる鍵ペアが含まれているかどうかを判定する。この判定の結果、１回目の暗号鍵３０３ａと１回目の復号鍵３０３ｂとかなる鍵ペアが含まれていない場合には、後述するステップＳ２１〜ステップＳ２５を省略してステップＳ２６に進む。
一方、１回目の暗号鍵３０３ａと１回目の復号鍵３０３ｂとかなる鍵ペアが含まれている場合には、ステップＳ２１に進み、クライアントＰＣ１００２は、上記主メモリに保存されている１回目の暗号鍵３０３ａを取得する。
【００２９】
次に、ステップＳ２２において、クライアントＰＣ１００２は、上記主メモリに保存されている１回目の暗号鍵３０３ａと１回目の復号鍵３０３ｂとかなる鍵ペアを削除する。
次に、ステップＳ２３において、クライアントＰＣ１００２は、ステップＳ２２で鍵ペアが削除された帳票データ３００を、ステップＳ２１で取得した１回目の暗号鍵３０３ａを用いて暗号化する。
次に、ステップＳ２４において、クライアントＰＣ１００２は、ステップＳ２２で１回目の鍵ペアが削除され、ステップＳ２３で暗号化された帳票データ３００をファイルとして保存する。そして、上記主メモリに保存されている元の帳票データ３００を削除する。
【００３０】
次に、ステップＳ２５において、クライアントＰＣ１００２は、ステップＳ２４で保存された帳票データ３００のファイル名と、その帳票データ３００に含まれている帳票ＩＤ３０２とを関連付けて、インデックスファイルに保存する。このように、帳票データ３００のファイル名と、帳票ＩＤ３０２とを関連付けて、インデックスファイルに保存するようにすれば、次回以降、帳票ＩＤ３０２を指定して再印刷する場合に、すばやく帳票ファイルを特定することができる。
最後に、ステップＳ２６において、クライアントＰＣ１００２は、ステップＳ１２で主メモリに保存された元のデータを消去する。
【００３１】
次に、図５のフローチャートを参照しながら、帳票データ３００に含まれる帳票本体データ３０１について、２回目以降の印刷を行う場合の処理について説明する。
まず、ステップＳ３１において、クライアントＰＣ１００２は、キーボードやマウスなどのユーザによる操作に基づき、ユーザから再印刷の要求がされるまで待機する。再印刷の要求がされると、ステップＳ３２に進み、クライアントＰＣ１００２は、前回の帳票印刷に際して同時に出力された鍵紙（例えば、図４のステップＳ１９で印刷された二次元バーコードイメージ（鍵紙）６０２）をスキャナ６０４から取り込むように要求するメッセージをモニタに表示する。
次に、ステップＳ３３において、クライアントＰＣ１００２は、スキャナ１０４から二次元バーコードイメージ６０２が取り込まれるまで待機する。二次元バーコードイメージ６０２が取り込まれると、ステップＳ３４に進み、クライアントＰＣ１００２は、ステップＳ３３で取り込まれた二次元バーコードイメージを、画像処理してバイナリデータに変化させる。
【００３２】
次に、ステップＳ３５において、クライアントＰＣ１００２は、ステップ３４でバイナリデータにさせた二次元バーコードイメージから、帳票ＩＤ３０２と、暗号化された（ｎ−１）回目の復号鍵（例えば、１回目の復号鍵）とを抽出する。なお、上記において、ｎは、今回の印刷回数である。
次に、ステップＳ３６において、クライアントＰＣ１００２は、上記インデックスファイルから、ステップＳ３５で抽出された帳票ＩＤ３０２に対応する帳票データファイル名を抽出する。
【００３３】
次に、ステップＳ３７において、クライアントＰＣ１００２は、クライアント環境に固有の情報を取得し、取得したクライアント環境に固有の情報に基づき、共通暗号鍵を生成（計算）する。なお、クライアント環境に固有の情報は、例えば、クライアントＰＣ１００２のＣＰＵシリアル番号とＭＡＣアドレスである。
次に、ステップＳ３８において、クライアントＰＣ１００２は、ステップＳ３５で抽出された（ｎ−１）回目の復号鍵を、ステップＳ３７で生成された共通暗号鍵で復号化する。
次に、ステップＳ３９において、クライアントＰＣ１００２は、ファイルとして保存されている帳票データ３００（以下、帳票データファイルと称する）を、ステップＳ３８で復号化された（ｎ−１）回目の復号鍵で復号化するとともに、復号化した帳票データデータファイルをメモリに書き込む。
【００３４】
次に、ステップＳ４０において、クライアントＰＣ１００２は、元の帳票データファイルを削除する。
次に、ステップＳ４１において、クライアントＰＣ１００２は、ステップＳ３９でメモリに書き込まれた帳票データファイルに含まれる帳票本体データ３０１から、印刷帳票イメージデータを生成する。
次に、ステップＳ４２において、クライアントＰＣ１００２は、ステップＳ３９でメモリに書き込まれた帳票データファイルに、ｎ回目の暗号鍵とｎ回目の復号鍵とかなる鍵ペアが含まれているかどうかを判定する。この判定の結果、ｎ回目の暗号鍵とｎ回目の復号鍵とかなる鍵ペアが含まれていない場合には、後述するステップＳ４３〜ステップＳ４６を省略してステップＳ４７に進む。
一方、ｎ回目の暗号鍵とｎ回目の復号鍵とかなる鍵ペアが含まれている場合には、ステップＳ４３に進み、クライアントＰＣ１００２は、クライアント環境に固有の情報を取得し、取得したクライアント環境に固有の情報に基づき、共通暗号鍵を生成（計算）する。なお、クライアント環境に固有の情報は、例えば、クライアントＰＣ１００２のＣＰＵシリアル番号とＭＡＣアドレスである。
【００３５】
次に、ステップＳ４４において、クライアントＰＣ１００２は、ｎ回目の復号鍵を、ステップＳ４３で生成された共通暗号鍵で暗号化する。
次に、ステップＳ４５において、クライアントＰＣ１００２は、ステップＳ３９でメモリに書き込まれた帳票データファイルに含まれる帳票ＩＤ３０２と、ステップＳ４４で暗号化されたｎ回目の復号鍵とを、二次元バーコード化して、二次元バーコードイメージデータを生成する。この二次元バーコードイメージデータは、（ｎ＋１）回目に印刷を行う場合に、必要になるデータである。
次に、ステップＳ４６において、クライアントＰＣ１００２は、ステップＳ４１で生成された印刷帳票イメージデータと、ステップＳ４５で生成された二次元バーコードイメージデータとに基づいて、印刷イメージデータを生成する。
【００３６】
次に、ステップＳ４７において、クライアントＰＣ１００２は、ステップＳ４６で生成された印刷イメージデータをプリンタ１００３に送信する。そして、プリンタ１００３は、印刷帳票イメージデータと、二次元バーコードイメージデータとをセットにして印刷を行う。例えば、今回の印刷が２回目である場合には、印刷帳票イメージ６０３と、二次元バーコードイメージ（鍵紙）６０４とが用紙上に印刷される。
次に、ステップＳ４８において、クライアントＰＣ１００２は、上記主メモリに、ｎ回目の暗号鍵とｎ回目の復号鍵とかなる鍵ペアが含まれているかどうかを判定する。この判定の結果、ｎ回目の暗号鍵とｎ回目の復号鍵とかなる鍵ペアが含まれていない場合には、後述するステップＳ４９〜ステップＳ５３を省略してステップＳ５４に進む。
一方、ｎ回目の暗号鍵３０３ａとｎ回目の復号鍵３０３ｂとかなる鍵ペアが含まれている場合には、ステップＳ４９に進み、クライアントＰＣ１００２は、上記主メモリに保存されているｎ回目の暗号鍵を取得する。
【００３７】
次に、ステップＳ５０において、クライアントＰＣ１００２は、上記主メモリに保存されているｎ回目の暗号鍵とｎ回目の復号鍵とかなる鍵ペアを削除する。
次に、ステップＳ５１において、クライアントＰＣ１００２は、ステップＳ５０で鍵ペアが削除された帳票データ３００を、ステップＳ５１で取得したｎ回目の暗号鍵を用いて暗号化する。
次に、ステップＳ５２において、クライアントＰＣ１００２は、ステップＳ５０でｎ回目の鍵ペアが削除され、ステップＳ５１で暗号化された帳票データ３００をファイルとして保存する。そして、上記主メモリに保存されている元の帳票データ３００を削除する。
【００３８】
次に、ステップＳ５３において、クライアントＰＣ１００２は、ステップＳ５２で保存された帳票データ３００のファイル名と、その帳票データ３００に含まれている帳票ＩＤ３０２とを関連付けて、インデックスファイルに保存する。
最後に、ステップＳ５４において、上記主メモリに保存されている元のデータを消去する。
このように、帳票データ３００内に保存されているｎ番目の鍵ペアが存在しない場合には、次回の印刷のための二次元バーコードイメージ（鍵紙）を印刷せず、また帳票データ３００も再保存されないため、再度印刷することが不可能になる。
【００３９】
上述した帳票サーバ１００１及びクライアントＰＣ１００２におけるソフトウェア処理（機能）は、図１５に示すようなコンピュータシステムを用いることにより実現することができる。
図１５は、帳票サーバ１００１及びクライアントＰＣ１００２に配設されているコンピュータシステムの構成の一例を示したブロック図である。
図１５において、コンピュータシステム１５０は、ＣＰＵ１５０１と、ＲＯＭ１５０２と、ＲＡＭ１５０３と、キーボード（ＫＢ）１５０４のキーボードコントローラ（ＫＢＣ）１５０５と、表示部としてのＣＲＴディスプレイ（ＣＲＴ）１５０６のＣＲＴコントローラ（ＣＲＴＣ）１５０７と、ハードディスク（ＨＤ）１５０８及びフレキシブルディスク（ＦＤ）１５０９のディスクコントローラ（ＤＫＣ）１５１０と、ネットワーク１５１１との接続のためのネットワークインターフェースコントローラ（ＮＩＣ）１５１２とが、システムバス１５１３を介して互いに通信可能に接続された構成としている。
【００４０】
ＣＰＵ１５０１は、ＲＯＭ１５０２或いはＨＤ１５０８に記憶されたソフトウェア、或いはＦＤ１５０９より供給されるソフトウェアを実行することで、システムバス１５０３に接続された各構成部を総括的に制御する。
すなわち、ＣＰＵ１５０１は、所定の処理シーケンスに従った処理プログラムを、ＲＯＭ１５０２、或いはＨＤ１５０８、或いはＦＤ１５０９から読み出して実行することで、装置の動作を実現するための制御を行う。
【００４１】
ＲＡＭ１５０３は、ＣＰＵ１５０１の主メモリ或いはワークエリア等として機能する。
ＫＢＣ１５０５は、ＫＢ１５０４や図示していないポインティングデバイス等からの指示入力を制御する。
【００４２】
ＣＲＴＣ１５０７は、ＣＲＴ１５０６の表示を制御する。
ＤＫＣ１５１０は、ブートプログラム、種々のアプリケーション、編集ファイル、ユーザファイル、ネットワーク管理プログラム、及び所定の処理プログラム等を記憶するＨＤ１５０８及びＦＤ１５０９とのアクセスを制御する。
ＮＩＣ１５０２は、ネットワーク１５１１上の装置或いはシステムと双方向にデータをやりとりする。
【００４３】
以上のように本実施形態では、帳票サーバ１００１は、クライアントＰＣ１００２からの要求に応じて、帳票データ３００を配信する。帳票データ３００が配信されたクライアントＰＣ１００２は、帳票データ３００に含まれている帳票本体データ３０１から帳票印刷イメージデータを生成するとともに、帳票データ３００に含まれている帳票ＩＤ３０２とｎ回目の復号鍵とから二次元バーコードイメージデータを生成し、帳票印刷イメージ６０１、６０３と、二次元バーコードイメージ６０２、６０４とを印刷する。そして、帳票データ３００に含まれているｎ回目の暗号鍵とｎ回目の復号鍵とからなる鍵ペアを削除する。次回以降の印刷では、二次元バーコードイメージ６０２、６０４を使用して、帳票本体データ３０１を復号化するようにする。
これにより、帳票本体データ３０１の反復的な利用を行うに際し、帳票本体データ３０１を再利用（再印刷）することができる者は、二次元バーコードイメージ６０２、６０４を有している者だけになる。また、帳票本体データ３０１を印刷できる回数は、鍵ペアの数に応じた回数になる。さらに、帳票本体データ３０１を印刷できる回数をクライアントＰＣ１００２で管理することができる。
したがって、帳票サーバ１００１とクライアントＰＣ１００２との通信回数を最小限に抑えつつ、帳票本体データ３０１の印刷回数を従来よりも確実に制限できるとともに、帳票本体データ３０１の不正な再利用を可及的に防止することができる。
【００４４】
特に、本実施形態では、印刷後に、ｎ回目の暗号鍵とｎ回目の復号鍵とからなる鍵ペアが削除された帳票データ３００を再暗号化し、再暗号化した帳票データ３００をファイルとして保存するとともに、元の帳票データ３００を削除するようにしたので、帳票本体データ３０１の不正な再利用をより効果的に防止することができる。
また、今回の印刷に対応する鍵ペアに含まれている復号鍵を、ＣＰＵシリアル番号とＭＡＣアドレスとから生成した共通暗号鍵を用いて暗号化し、暗号化した復号鍵を次回の印刷に必要となる情報（二次元バーコードイメージ６０２、６０４）として出力する。そして、次回の印刷を行うに際し、二次元バーコードイメージ６０２、６０４を入力すると、ＣＰＵシリアル番号とＭＡＣアドレスとから生成した共通暗号鍵を用いて、入力した二次元バーコードイメージ６０２、６０４を復号化する。そして、この復号化した二次元バーコードイメージ６０２、６０４を用いて、帳票データ３０１を復号化する。これにより、初回に帳票本体データ（コンテンツ）３０１を利用したクライアント環境でのみ、２回目以降の利用を可能とすることができ、不正利用、不正コピー、及び不正配布に対するセキュリティをより向上させることができる。
【００４５】
なお、本実施形態では、元の帳票データ３００を削除して、帳票本体データ３０１の不正な再利用を効果的に防止するようにしたが、再暗号化した帳票データ３００を、元の帳票データ３００に上書きしてもよい。
また、本実施形態では、二次元バーコードイメージを使用して、次回以降の印刷の不正な再利用を可及的に防止するようにしたが、二次元バーコードイメージの代わりに電子透かしを用いてもよい。
さらに、本実施形態では、暗号鍵と復号鍵とを異ならせるようにしたが、暗号鍵と復号鍵とが同一な共通鍵暗号化方式を使用してもよい。
【００４６】
（第２の実施形態）
次に、本発明の第２の実施形態を説明する。上述した第１の実施形態では、鍵ペア３０３の数により、印刷回数を制限するようにしたが、本実施形態では、帳票データに印刷回数の上限値を付加し、この印刷回数の上限値を用いて、印刷回数を制限するようにする。また、上述した第１の実施形態では、帳票サーバ１００１で鍵ペアを生成するようにしたが、本実施形態ではクライアントＰＣで鍵ペアを生成する。このように、上述した第１の実施形態と、本実施形態とは、ソフトウェア処理の一部だけが異なるだけであるので、以下の説明において、上述した第１の実施形態と同一の部分については、図１〜図６と同一の符号を付すなどして詳細な説明を省略する。
【００４７】
図８は、本実施形態の帳票データの内容の一例を示した図である。本実施形態では、帳票本体データ３０１に、帳票ＩＤ３０２と、帳票データ８００の残りの利用（印刷）回数値とを付加したものを帳票データ８００として、帳票サーバ１００１からクライアントＰＣ１００２に配信するようにしている。
【００４８】
ここで、図７のフローチャートを参照しながら、クライアントＰＣ１００２から要求を受けた場合の帳票サーバ１００１の動作の一例を説明する。
図７において、ステップＳ７１〜Ｓ７６は、図３に示したステップＳ１〜Ｓ６と同じである。
すなわち、ステップＳ７１において、クライアントＰＣ１００２からのＨＴＴＰリクエストを受信すると、ステップＳ７２に進み、受信したＨＴＴＰリクエストがＨＴＴＰリクエストと同一であるかどうかを判定する。
【００４９】
この判定の結果、同一であればステップＳ７３に進み、帳票サーバ１００１内に設けられている帳票ＤＢから、帳票本体データ３０１およびその生成日時を取得する。
一方、同一でなければステップＳ７４に進み、受信したＨＴＴＰリクエストの内容に基づき帳票本体データ３０１を生成し、生成した帳票本体データ３０１と、その生成日時とを保存する。
【００５０】
次に、ステップＳ７５において、帳票本体データ３０１の生成日時と、要求の受付日時とから一意となる帳票ＩＤ３０２を生成する。
【００５１】
次に、ステップＳ７６において、帳票本体データ３０１の種類と、ＨＴＴＰリクエストを発行したクライアントＰＣ１００２と、ＨＴＴＰリクエストを発行した人物の役職とにより、印刷回数上限値８０１を決定する。
【００５２】
次に、ステップＳ７７において、ステップＳ７５で生成した帳票ＩＤ３０２と、ステップＳ７６で決定した印刷回数上限値８０１とを、帳票本体データ３０１に付加して、配信データ（帳票データ）８００を生成する。
最後に、ステップＳ７８において、ステップＳ７７で生成された配信データ（帳票データ）８００を、ステップＳ７１で受信したＨＴＴＰリクエストの送信元のクライアントＰＣ１００２に配信する。
【００５３】
次に、図９及び図１０を参照しながら、配信データ（帳票データ）８００を受信したクライアントＰＣ１００２、プリンタ１００３、及びスキャナ１００４の動作について説明する。
図９は、クライアントＰＣ１００２が配信データ（帳票データ）８００を受信し、受信した帳票データ８００に含まれる帳票本体データ３０１について、最初の印刷を行う場合の処理の一例を説明するフローチャートである。
図９において、ステップＳ８１〜Ｓ８３は、図４に示したステップＳ１１〜Ｓ１３と同じである。
すなわち、まず、ステップＳ８１において、帳票サーバ１００１から配信データ（帳票データ）８００を受信すると、ステップＳ８２において、クライアントＰＣ１００２は、受信した帳票データ８００を主メモリに保存し、ステップＳ８３において、保存した帳票データ８００に含まれる帳票本体データ３０１を元に印刷帳票イメージデータを生成する。
【００５４】
次に、ステップＳ８４において、クライアントＰＣ１００２は、ステップＳ８２で主メモリに保存された帳票データ８００に付加されている印刷回数上限値（残り利用回数）８０１が１以上であるかどうかを判定する。この判定の結果、印刷回数上限値（残り利用回数）８０１が１以上でない（０である）場合には、後述するステップＳ８５〜ステップＳ８９を省略してステップＳ９０に進む。
一方、印刷回数上限値（残り利用回数）８０１が１以上である場合には、ステップＳ８５に進み、図４のステップＳ１５と同様に、クライアントＰＣ１００２は、共通暗号鍵を生成（計算）する。
【００５５】
次に、ステップＳ８６において、クライアントＰＣ１００２は、乱数を用いて、暗号鍵及び復号鍵の鍵ペアを生成する。
次に、ステップＳ８７において、クライアントＰＣ１００２は、ステップＳ８６で生成された復号鍵を、ステップＳ８５で生成された共通暗号鍵で暗号化する。
次に、ステップＳ８８において、クライアントＰＣ１００２は、図４のステップＳ１７と同様に、ステップＳ８２で主メモリに保存された帳票データ８００に含まれる帳票ＩＤ３０２と、ステップＳ８７で暗号化された復号鍵とを、二次元バーコード化して、二次元バーコードイメージデータを生成する。
【００５６】
次に、ステップＳ８９において、クライアントＰＣ１００２は、図４のステップＳ１８と同様に、ステップＳ８３で生成された印刷帳票イメージデータと、ステップＳ８８で生成された二次元バーコードイメージデータとに基づいて、印刷イメージデータを生成する。
次に、ステップＳ９０において、クライアントＰＣ１００２は、図４のステップＳ１９と同様に、ステップＳ８９で生成された印刷イメージデータをプリンタ１００３に送信する。そして、プリンタ１００３は、印刷帳票イメージデータと、二次元バーコードイメージデータとをセットにして印刷を行う。
【００５７】
次に、ステップＳ９１において、クライアントＰＣ１００２は、ステップＳ８２で主メモリに保存された帳票データ８００に付加されている印刷回数上限値（残り利用回数）８０１が１以上であるかどうかを判定する。この判定の結果、印刷回数上限値（残り利用回数）８０１が１以上でない（０である）場合には、後述するステップＳ９２〜ステップＳ９５を省略してステップＳ９６に進む。
一方、印刷回数上限値（残り利用回数）８０１が１以上である場合には、ステップＳ９２に進み、クライアントＰＣ１００２は、主メモリに保存された帳票データ８００に付加されている印刷回数上限値（残り利用回数）８０１を１減じる。
【００５８】
次に、ステップＳ９３において、クライアントＰＣ１００２は、ステップＳ９２で印刷回数上限値（残り利用回数）８０１が１減じられた帳票データ８００を、ステップＳ８６で生成された暗号鍵を用いて暗号化する。
次に、ステップＳ９４において、クライアントＰＣ１００２は、ステップＳ９２で印刷回数上限値（残り利用回数）８０１が１減じられ、ステップＳ９３で暗号化された帳票データ８００をファイルとして保存する。そして、上記主メモリに保存されている元の帳票データ８００を削除する。
【００５９】
次に、ステップＳ９５において、クライアントＰＣ１００２は、図４のステップＳ２４と同様に、ステップＳ９４で保存された帳票データ８００のファイル名と、その帳票データ８００に含まれている帳票ＩＤ３０２とを関連付けて、インデックスファイルに保存する。
最後に、ステップＳ９６において、クライアントＰＣ１００２は、図４のステップＳ２６と同様に、ステップＳ８２で主メモリに保存された元のデータを消去する。
【００６０】
次に、図１０のフローチャートを参照しながら、帳票データ８００に含まれる帳票本体データ３０１について、２回目以降の印刷を行う場合の処理について説明する。
図１０において、ステップＳ１０１〜Ｓ１０４は、図５に示したステップＳ３１〜Ｓ３４と同じである。
すなわち、まず、ステップＳ１０１において、クライアントＰＣ１００２は、ユーザから再印刷の要求がされると、ステップＳ１０２において、クライアントＰＣ１００２は、前回の帳票印刷に際して同時に出力された鍵紙をスキャナ６０４から取り込むことを要求する。そして、ステップＳ１０３において、スキャナ１０４から二次元バーコードイメージ６０２が取り込まれると、ステップＳ１０４において、ステップＳ１０３で取り込まれた二次元バーコードイメージを、バイナリデータに変化させる。
【００６１】
次に、ステップＳ１０５において、クライアントＰＣ１００２は、ステップ１０４でバイナリデータにさせた二次元バーコードイメージから、帳票ＩＤ３０２と、暗号化された復号鍵とを抽出する。
次に、ステップＳ１０６において、クライアントＰＣ１００２は、図５のステップＳ３６と同様に、上記インデックスファイルから、ステップＳ１０５で抽出された帳票ＩＤ３０２に対応する帳票データファイル名を抽出する。
【００６２】
次に、ステップＳ１０７において、クライアントＰＣ１００２は、図５のステップＳ３７と同様に、クライアント環境に固有の情報に基づき、共通暗号鍵を生成（計算）する。なお、クライアント環境に固有の情報は、例えば、クライアントＰＣ１００２のＣＰＵシリアル番号とＭＡＣアドレスである。
次に、ステップＳ１０８において、クライアントＰＣ１００２は、ステップＳ１０５で抽出された復号鍵を、ステップＳ１０７で生成された共通暗号鍵で復号化する。
次に、ステップＳ１０９において、クライアントＰＣ１００２は、ファイルとして保存されている帳票データ８００（以下、帳票データファイルと称する）を、ステップＳ１０８で復号化された復号鍵で復号化するとともに、復号化した帳票データデータファイルをメモリに書き込む。
【００６３】
次に、ステップＳ１１０において、クライアントＰＣ１００２は、図５のステップＳ４０と同様に、元の帳票データファイルを削除する。
次に、ステップＳ１１１において、クライアントＰＣ１００２は、図５のステップＳ１１０と同様に、ステップＳ１０９でメモリに書き込まれた帳票データファイルに含まれる帳票本体データ３０１から、印刷帳票イメージデータを生成する。
【００６４】
次に、ステップＳ１１２において、クライアントＰＣ１００２は、ステップＳ１０９でメモリに書き込まれた帳票データファイルに含まれている印刷回数上限値（残り利用回数）８０１が１以上であるかどうかを判定する。この判定の結果、印刷回数上限値（残り利用回数）８０１が１以上でない（０である）場合には、後述するステップＳ１１３〜ステップＳ１１７を省略してステップＳ９０に進む。
一方、印刷回数上限値（残り利用回数）８０１が１以上である場合には、ステップＳ１１３に進み、クライアントＰＣ１００２は、図５のステップＳ４３と同様に、クライアント環境に固有の情報に基づき、共通暗号鍵を生成（計算）する。なお、クライアント環境に固有の情報は、例えば、クライアントＰＣ１００２のＣＰＵシリアル番号とＭＡＣアドレスである。
【００６５】
次に、ステップＳ１１４において、クライアントＰＣ１００２は、乱数を用いて暗号鍵及び復号鍵の鍵ペアを生成する。
次に、ステップＳ１１５において、クライアントＰＣ１００２は、ステップＳ１１４で生成された復号鍵を、ステップＳ１１３で生成された共通暗号鍵で暗号化する。
次に、ステップＳ１１６において、クライアントＰＣ１００２は、ステップＳ１０９でメモリに書き込まれた帳票データファイルに含まれる帳票ＩＤ３０２と、ステップＳ１１４で生成された復号鍵とを、二次元バーコード化して、二次元バーコードイメージデータを生成する。
【００６６】
次に、ステップＳ１１７において、クライアントＰＣ１００２は、図５のステップＳ４６と同様に、ステップＳ１１１で生成された印刷帳票イメージデータと、ステップＳ１１６で生成された二次元バーコードイメージデータとに基づいて、印刷イメージデータを生成する。
【００６７】
次に、ステップＳ１１８において、クライアントＰＣ１００２は、図５のステップＳ４７と同様に、ステップＳ１１７で生成された印刷イメージデータをプリンタ１００３に送信する。そして、プリンタ１００３は、印刷帳票イメージデータと、二次元バーコードイメージデータとをセットにして印刷を行う。
【００６８】
次に、ステップＳ１１９において、クライアントＰＣ１００２は、主メモリに保存された帳票データ８００に付加されている印刷回数上限値（残り利用回数）８０１が１以上であるかどうかを判定する。この判定の結果、印刷回数上限値（残り利用回数）８０１が１以上でない（０である）場合には、後述するステップＳ１２０〜ステップＳ１２３を省略してステップＳ１２４に進む。
一方、印刷回数上限値（残り利用回数）８０１が１以上である場合には、ステップＳ１２０に進み、ステップＳ１２０に進み、クライアントＰＣ１００２は、主メモリに保存された帳票データ８００に付加されている印刷回数上限値（残り利用回数）８０１を１減じる。
【００６９】
次に、ステップＳ１２１において、クライアントＰＣ１００２は、ステップＳ１２０で印刷回数上限値（残り利用回数）８０１を１減じられた帳票データ８００を、ステップＳ１１４で生成された暗号鍵を用いて暗号化する。
次に、ステップＳ１２２において、クライアントＰＣ１００２は、ステップＳ１２０で印刷回数上限値（残り利用回数）８０１が１減じられ、ステップＳ１２１で暗号化された帳票データ８００をファイルとして保存する。そして、上記主メモリに保存されている元の帳票データ８００を削除する。
【００７０】
次に、ステップＳ１２３において、クライアントＰＣ１００２は、図５のステップＳ９５と同様に、ステップＳ１２２で保存された帳票データ８００のファイル名と、その帳票データ８００に含まれている帳票ＩＤ３０２とを関連付けて、インデックスファイルに保存する。
最後に、ステップＳ１２４において、クライアントＰＣ１００２は、図５のステップＳ５４と同様に、主メモリに保存された元のデータを消去する。
【００７１】
以上のように本実施形態では、帳票データ８００に印刷回数上限値８０１を付加し、この印刷回数上限値８０１を用いて、印刷回数を制限するようにしたので、上述した第１の実施形態における効果に加え、帳票データ８００のファイルサイズが、利用するたびに変化しないという効果が得られる。
【００７２】
なお、上述した第１の実施形態と同様に、再暗号化した帳票データ３００を、元の帳票データ３００に上書きして、帳票本体データ３０１の不正な再利用を効果的に防止するようにしてもよい。
また、電子透かしを用いて、次回以降の印刷の不正な再利用を可及的に防止するようにしてもよい。
さらに、暗号鍵と復号鍵とが同一な共通鍵暗号化方式を使用してもよい。
【００７３】
（第３の実施形態）
次に、本発明の第３の実施形態を説明する。上述した第１の実施形態では、次回の印刷を行う場合に必要になるデータ（二次元バーコードイメージデータ）と、帳票本体データ３０１との出力先を同じにしたが、本実施形態では、これらを異ならせるようにしている。このように、上述した第１の実施形態と、本実施形態とは、ソフトウェア処理の一部だけが異なるだけであるので、以下の説明において、上述した第１の実施形態と同一の部分については、図１〜図６、図１５と同一の符号を付すなどして詳細な説明を省略する。
【００７４】
図１２は、本実施形態の帳票データの内容の一例を示した図である。本実施形態では、帳票本体データ３０１に、帳票ＩＤ３０２と、暗号鍵及び復号鍵の鍵ペア３０３と、次回の印刷を行う場合に必要になるデータ（以下、再復号鍵と称する）の出力先を示すデータ１２０１とを付加したものを帳票データ１２０１として、帳票サーバ１００１からクライアントＰＣ１００２に配信するようにしている。
【００７５】
ここで、図１１のフローチャートを参照しながら、クライアントＰＣ１００２から要求を受けた場合の帳票サーバ１００１の動作の一例を説明する。
図１１において、ステップＳ１３１〜Ｓ１３７は、図３に示したステップＳ１〜Ｓ７と同じである。
すなわち、ステップＳ１３１において、クライアントＰＣ１００２からのＨＴＴＰリクエストを受信すると、ステップＳ１３２に進み、受信したＨＴＴＰリクエストがＨＴＴＰリクエストと同一であるかどうかを判定する。
【００７６】
この判定の結果、同一であればステップＳ１３３に進み、帳票サーバ１００１内に設けられている帳票ＤＢから、帳票本体データ３０１およびその生成日時を取得する。
一方、同一でなければステップＳ１３４に進み、受信したＨＴＴＰリクエストの内容に基づき帳票本体データ３０１を生成し、生成した帳票本体データ３０１と、その生成日時とを保存する。
【００７７】
次に、ステップＳ１３５において、帳票本体データ３０１の生成日時と、要求の受付日時とから一意となる帳票ＩＤ３０２を生成する。
【００７８】
次に、ステップＳ１３６において、帳票本体データ３０１の種類と、ＨＴＴＰリクエストを発行したクライアントＰＣ１００２と、ＨＴＴＰリクエストを発行した人物の役職とにより、印刷回数上限値を決定する。
【００７９】
次に、ステップＳ１３７において、ステップＳ１３６で決定した印刷回数上限値の数だけ、暗号鍵及び復号鍵の鍵ペア３０３を生成する。
次に、ステップＳ１３８において、クライアントＰＣ１００２は、再復号鍵の出力先１２０１を、ユーザによる入力装置（キーボードやマウス）などの操作に基づき取得し、取得した再復号鍵の出力先１２０１と、ステップＳ１３７で生成した鍵ペア３０３と、ステップＳ１３５で生成した帳票ＩＤ３０２とを、ステップＳ１３３又はステップＳ１３４で得られた帳票本体データ３０１に付加して、配信データ（帳票データ）１２００を生成する。
最後に、ステップＳ１３９において、ステップＳ１３８で生成された配信データ（帳票データ）１２００を、ステップＳ１で受信したＨＴＴＰリクエストの送信元のクライアントＰＣ１００２に配信する。
【００８０】
次に、図１３及び図１４を参照しながら、配信データ（帳票データ）１２００を受信したクライアントＰＣ１００２、プリンタ１００３、及びスキャナ１００４の動作について説明する。
図１３は、クライアントＰＣ１００２が配信データ（帳票データ）１２００を受信し、受信した帳票データ１２００に含まれる帳票本体データ３０１について、最初の印刷を行う場合の処理の一例を説明するフローチャートである。
図１３において、ステップＳ１４１〜Ｓ１４６は、図４に示したステップＳ１１〜Ｓ１６と同じである。
すなわち、まず、ステップＳ１４１において、クライアントＰＣ１００２は、帳票サーバ１００１から配信データ（帳票データ）１２００を受信すると、ステップＳ１４２において、受信した帳票データ１２００を主メモリに保存し、ステップＳ１４３において、保存した帳票データ１２００に含まれる帳票本体データ１２０１を元に印刷帳票イメージデータを生成する。
【００８１】
次に、ステップＳ１４４において、クライアントＰＣ１００２は、ステップＳ１４２で主メモリに保存された帳票データ３００に、１回目の鍵ペアが含まれているかどうかを判定する。この判定の結果、１回目の鍵ペアが含まれていない場合には、後述するステップＳ１４５〜ステップＳ１４７を省略してステップＳ１４８に進む。
一方、１回目の鍵ペアが含まれている場合には、ステップＳ１４５に進み、クライアントＰＣ１００２は、クライアント環境に固有の情報に基づき、共通暗号鍵を生成（計算）する。なお、クライアント環境に固有の情報は、例えば、クライアントＰＣ１００２のＣＰＵシリアル番号とＭＡＣアドレスである。
次に、ステップＳ１４６に進み、クライアントＰＣ１００２は、１回目の復号鍵３０３ｂを、ステップＳ１４５で生成された共通暗号鍵で暗号化する。
【００８２】
次に、ステップＳ１４７において、クライアントＰＣ１００２は、ステップＳ１２で主メモリに保存された帳票データ３００に含まれる帳票ＩＤ３０２と、ステップＳ１６で暗号化された１回目の復号鍵３０３ｂとを結合し、ステップＳ１４２で主メモリに保存された帳票データ１２００に含まれている再復号鍵の出力先１２０１に出力する。
次に、ステップＳ１４８において、クライアントＰＣ１００２は、ステップＳ１４３で生成された印刷帳票イメージデータをプリンタ１００３に送信する。そして、プリンタ１００３は、印刷帳票イメージデータの印刷を行う。
なお、コンテンツ本体（帳票本体データ３０１）と再暗号鍵は、同じ方式で出力しても、異なる方式で出力してもよい。また、再暗号鍵の出力先（指定メディア）としては、例えば、フレキシブルディスク、メモリカード、及びパンチカードのようなメディアが挙げられる。
【００８３】
次のステップＳ１４９〜Ｓ１５５は、図４に示したステップＳ２０〜Ｓ２６と同じである。
すなわち、ステップＳ１４９において、クライアントＰＣ１００２は、主メモリに保存された帳票データ１２００に、１回目の鍵ペアが含まれているかどうかを判定する。この判定の結果、１回目の鍵ペアが含まれていない場合には、後述するステップＳ１５０〜ステップＳ１５４を省略してステップＳ１５５に進む。
一方、１回目の鍵ペアが含まれている場合には、ステップＳ１５０に進み、クライアントＰＣ１００２は、上記主メモリに保存されている１回目の暗号鍵３０３ａを取得する。
【００８４】
次に、ステップＳ１５１において、クライアントＰＣ１００２は、上記主メモリに保存されている１回目の鍵ペアを削除する。
次に、ステップＳ１５２において、クライアントＰＣ１００２は、１回目の鍵ペアが削除された帳票データ１２００を、ステップＳ１５０で取得した１回目の暗号鍵３０３ａを用いて暗号化する。
次に、ステップＳ１５３において、クライアントＰＣ１００２は、ステップＳ１５１で１回目の鍵ペアが削除され、ステップＳ１５２で暗号化された帳票データ１２００をファイルとして保存する。そして、上記主メモリに保存されている元の帳票データ１２００を削除する。
【００８５】
次に、ステップＳ１５４において、クライアントＰＣ１００２は、ステップＳ１５３で保存された帳票データ１２００のファイル名と、その帳票データ１２００に含まれている帳票ＩＤ３０２とを関連付けて、インデックスファイルに保存する。
最後に、ステップＳ１５５において、クライアントＰＣ１００２は、ステップＳ１４２で主メモリに保存された元のデータを消去する。
【００８６】
次に、図１４のフローチャートを参照しながら、帳票データ１２００に含まれる帳票本体データ３０１について、２回目以降の印刷を行う場合の処理について説明する。
まず、ステップＳ１６１において、クライアントＰＣ１００２は、図１０のステップＳ１０１と同様に、ユーザから再印刷の要求がされるまで待機する。再印刷の要求がされると、ステップＳ１６２に進み、クライアントＰＣ１００２は、指定メディアから再暗号鍵を入力するように要求するメッセージをモニタに表示する。
次に、ステップＳ１６３において、クライアントＰＣ１００２は、指定メディアから再暗号鍵が入力されるまで待機し、入力されると、ステップＳ１６４に進み、クライアントＰＣ１００２は、ステップＳ１６３で入力された再暗号鍵を取得する。
【００８７】
次のステップＳ１６５〜Ｓ１７４は、図５のステップＳ３５〜Ｓ４４と同じである。
すなわち、ステップＳ１６５において、クライアントＰＣ１００２は、帳票ＩＤ３０２と、暗号化された（ｎ−１）回目の復号鍵とを抽出する。
次に、ステップＳ１６６において、クライアントＰＣ１００２は、ステップＳ１６５で抽出された帳票ＩＤ３０２に対応する帳票データファイル名を抽出する。
【００８８】
次に、ステップＳ１６７において、クライアントＰＣ１００２は、クライアント環境に固有の情報に基づき、共通暗号鍵を生成（計算）する。なお、クライアント環境に固有の情報は、例えば、クライアントＰＣ１００２のＣＰＵシリアル番号とＭＡＣアドレスである。
次に、ステップＳ１６８において、クライアントＰＣ１００２は、ステップＳ１６５で抽出された（ｎ−１）回目の復号鍵を、ステップＳ１６７で生成された共通暗号鍵で復号化する。
次に、ステップＳ１６９において、クライアントＰＣ１００２は、ファイルとして保存されている帳票データ１２００（以下、帳票データファイルと称する）を、ステップＳ１６８で復号化された（ｎ−１）回目の復号鍵で復号化するとともに、復号化した帳票データデータファイルをメモリに書き込む。
【００８９】
次に、ステップＳ１７０において、クライアントＰＣ１００２は、元の帳票データファイルを削除する。
次に、ステップＳ１７１において、クライアントＰＣ１００２は、印刷帳票イメージデータを生成する。
次に、ステップＳ１７２において、クライアントＰＣ１００２は、ステップＳ１６９でメモリに書き込まれた帳票データファイルに、ｎ回目の鍵ペアが含まれているかどうかを判定する。この判定の結果、ｎ回目の鍵ペアが含まれていない場合には、後述するステップＳ１７３〜ステップＳ１７５を省略してステップＳ１７６に進む。
一方、ｎ回目の鍵ペアが含まれている場合には、ステップＳ１７３に進み、クライアントＰＣ１００２は、クライアント環境に固有の情報に基づき、共通暗号鍵を生成（計算）する。なお、クライアント環境に固有の情報は、例えば、クライアントＰＣ１００２のＣＰＵシリアル番号とＭＡＣアドレスである。
【００９０】
次に、ステップＳ１７４において、クライアントＰＣ１００２は、ｎ回目の復号鍵を、ステップＳ１７３で生成された共通暗号鍵で暗号化する。
次に、ステップＳ１７５において、クライアントＰＣ１００２は、ステップＳ１６９で復号化された帳票データ１２００に含まれる帳票ＩＤ３０２と、ステップＳ１７４で暗号化されたｎ回目の復号鍵とを結合し、帳票データ１２００に含まれている再復号鍵の出力先１２０１に出力する。
【００９１】
次のステップＳ１７６〜１８３は、図５のステップＳ４７〜Ｓ５４と同じである。
すなわち、ステップＳ１７６において、クライアントＰＣ１００２は、ステップＳ１７１で生成された印刷帳票イメージデータをプリンタ１００３に送信する。そして、プリンタ１００３は、印刷帳票イメージデータの印刷を行う。
次に、ステップＳ１７７において、クライアントＰＣ１００２は、上記主メモリに、ｎ回目の鍵ペアが含まれているかどうかを判定する。この判定の結果、ｎ回目の鍵ペアが含まれていない場合には、後述するステップＳ１７８〜ステップＳ１８２を省略してステップＳ１８３に進む。
一方、ｎ回目の鍵ペアが含まれている場合には、ステップＳ１７８に進み、クライアントＰＣ１００２は、上記主メモリに保存されているｎ回目の暗号鍵を取得する。
【００９２】
次に、ステップＳ１７９において、クライアントＰＣ１００２は、上記主メモリに保存されているｎ回目の鍵ペアを削除する。
次に、ステップＳ１８０において、クライアントＰＣ１００２は、ｎ回目の鍵ペアが削除された帳票データ１２００を、ステップＳ１７８で取得したｎ回目の暗号鍵を用いて暗号化する。
次に、ステップＳ１８１において、クライアントＰＣ１００２は、ｎ回目の鍵ペアが削除され、且つ暗号化された帳票データ１２００をファイルとして保存する。そして、上記主メモリに保存されている元の帳票データ１２００を削除する。
【００９３】
次に、ステップＳ１８２において、クライアントＰＣ１００２は、保存された帳票データ１２００のファイル名と、その帳票データ１２００に含まれている帳票ＩＤ３０２とを関連付けて、インデックスファイルに保存する。
最後に、ステップＳ１８３において、上記主メモリに保存されている元のデータを消去する。
【００９４】
以上のように本実施形態では、次回の印刷を行う場合に必要になるデータ（再暗号鍵）の出力先と、帳票本体データ３０１の出力先とを異ならせるようにしたので、上述した第１の実施形態の効果に加え、例えば、コンテンツが、帳票本体データではなく映像である場合であってもコンテンツを容易に再利用することができる。すなわち、上述した第１の実施形態では、コンテンツが、帳票本体データ３０１ではなく映像などである場合には、次回の印刷を行う場合に必要になるデータとしての二次元バーコードをモニタに表示しても、ユーザがこれを記録して次回の利用時にクライアントＰＣ１００２に入力させるということが困難であるが、本実施形態ではこのような弊害を除去することができる。
【００９５】
なお、上述した第１の実施形態と同様に、再暗号化した帳票データ３００を、元の帳票データ３００に上書きして、帳票本体データ３０１の不正な再利用を効果的に防止するようにしてもよい。
また、暗号鍵と復号鍵とが同一な共通鍵暗号化方式を使用してもよい。
【００９６】
（本発明の他の実施形態）
上述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置あるいはシステム内のコンピュータに対し、前記実施形態の機能を実現するためのソフトウェアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ（ＣＰＵあるいはＭＰＵ）に格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
【００９７】
また、この場合、前記ソフトウェアのプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、例えば、かかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００９８】
また、コンピュータが供給されたプログラムコードを実行することにより、上述の実施形態の機能が実現されるだけでなく、そのプログラムコードがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）あるいは他のアプリケーションソフト等と共同して上述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
【００９９】
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
【図面の簡単な説明】
【０１００】
【図１】本発明の実施形態を示し、帳票印刷システムの構成の一例を示した図である。
【図２】本発明の第１の実施形態を示し、クライアントＰＣから要求を受けた場合の帳票サーバの動作の一例を説明するフローチャートである。
【図３】本発明の第１の実施形態を示し、帳票サーバがクライアントＰＣに配信する帳票データの内容の一例を示した図である。
【図４】本発明の第１の実施形態を示し、クライアントＰＣが帳票データを受信し、受信した帳票データに含まれる帳票本体データについて、最初の印刷を行う場合の処理の一例を説明するフローチャートである。
【図５】本発明の第１の実施形態を示し、帳票データに含まれる帳票本体データについて、２回目以降の印刷を行う場合の処理について説明するフローチャートである。
【図６】本発明の第１の実施形態を示し、帳票データに含まれる帳票本体データの印刷を行う場合の処理の概念を示した図である。
【図７】本発明の第２の実施形態を示し、クライアントＰＣから要求を受けた場合の帳票サーバの動作の一例を説明するフローチャートである。
【図８】本発明の第２の実施形態を示し、帳票サーバがクライアントＰＣに配信する帳票データの内容の一例を示した図である。
【図９】本発明の第２の実施形態を示し、クライアントＰＣが帳票データを受信し、受信した帳票データに含まれる帳票本体データについて、最初の印刷を行う場合の処理の一例を説明するフローチャートである。
【図１０】本発明の第２の実施形態を示し、帳票データに含まれる帳票本体データについて、２回目以降の印刷を行う場合の処理について説明するフローチャートである。
【図１１】本発明の第３の実施形態を示し、クライアントＰＣから要求を受けた場合の帳票サーバの動作の一例を説明するフローチャートである。
【図１２】本発明の第３の実施形態を示し、帳票サーバがクライアントＰＣに配信する帳票データの内容の一例を示した図である。
【図１３】本発明の第３の実施形態を示し、クライアントＰＣが帳票データを受信し、受信した帳票データに含まれる帳票本体データについて、最初の印刷を行う場合の処理の一例を説明するフローチャートである。
【図１４】本発明の第３の実施形態を示し、帳票データに含まれる帳票本体データについて、２回目以降の印刷を行う場合の処理について説明するフローチャートである。
【図１５】本発明の実施の形態を示し、帳票サーバ及びクライアントＰＣに配設されているコンピュータシステムの構成の一例を示したブロック図である。
【符号の説明】
【０１０１】
３００、８００、１２００  帳票データ
３０１  帳票本体データ
３０２  帳票ＩＤ
３０３  鍵ペア
６０１  印刷帳票イメージ
６０２  二次元バーコードイメージ（鍵紙）
８０１  印刷回数上限値（残り利用回数）
１２０１  再復号鍵の出力先
１００１  帳票サーバ
１００２  クライアントＰＣ
１００３  プリンタ
１００４  スキャナ
【図１】
2005159556.tif 000003
【図２】
2005159556.tif 000004
【図３】
2005159556.tif 000005
【図４】
2005159556.tif 000006
【図５】
2005159556.tif 000007
【図６】
2005159556.tif 000008
【図７】
2005159556.tif 000009
【図８】
2005159556.tif 000010
【図９】
2005159556.tif 000011
【図１０】
2005159556.tif 000012
【図１１】
2005159556.tif 000013
【図１２】
2005159556.tif 000014
【図１３】
2005159556.tif 000015
【図１４】
2005159556.tif 000016
【図１５】
2005159556.tif 000017