(57)【要約】【課題】当該外部ストレージに記憶されている暗号データを復号して使用することを当該プリンターのみに限定することができるプリンターを提供すること。【解決手段】プリンター１では、ユーザーインターフェース１９により第１コマンドが入力されると、公開鍵と秘密鍵とがＲＳＡ暗号方式で作成され、公開鍵がＥＥＰＲＯＭ１８に記憶され、暗号化アルゴリズムで暗号化された秘密鍵が公開鍵に対応させてＥＥＰＲＯＭ１８に記憶される。第２コマンドの入力後は、ポート１１に接続された外部ストレージ２１に公開鍵が記憶される。第３コマンドの入力後は、その外部ストレージ２１の公開鍵と同一の公開鍵がＥＥＰＲＯＭ１８から探し出され、探し出された公開鍵に対応する秘密鍵がＥＥＰＲＯＭ１８から読み出され、読み出された秘密鍵が復号化アルゴリズムで復号化され、その外部ストレージ２１の暗号データが復号化された秘密鍵で復号化される。【選択図】図１
2014022989.tif 000002
【特許請求の範囲】
【請求項１】
外部ストレージが接続されるポートと、
内部ストレージと、
ユーザーインターフェースと、
前記ポートに接続された外部ストレージ、前記内部ストレージ、及び前記ユーザーインターフェースを制御するプロセッサと、を備えるプリンターであって、
前記プロセッサは、前記ユーザーインターフェースにより第１コマンドが入力されると、以下(1-1)〜(1-4)の処理を実行し、
(1-1) 公開鍵と秘密鍵とを公開鍵暗号方式で作成し、
(1-2) 前記(1-1)で作成された公開鍵を前記内部ストレージに記憶し、
(1-3) 前記(1-1)で作成された秘密鍵を暗号化アルゴリズムで暗号化し、
(1-4) 前記(1-3)で暗号化された秘密鍵を前記(1-2)で前記内部ストレージに記憶され          た公開鍵に対応させて前記内部ストレージに記憶し、
前記プロセッサは、前記ポートに外部ストレージが接続されている場合に、前記ユーザーインターフェースにより第２コマンドが入力されると、以下(1-I)の処理を実行し、
(1-I) 前記ポートに接続された外部ストレージに前記(1-2)で前記内部ストレージに          記憶された公開鍵を記憶し、
前記プロセッサは、公開鍵と前記公開鍵で暗号化された暗号データとを記憶した外部ストレージが前記ポートに接続されている場合に、前記ユーザーインターフェースにより第３コマンドが入力されると、以下(1-A)〜(1-D)の処理を実行し、
(1-A) 前記ポートに接続された外部ストレージに記憶されている公開鍵と同一の公開          鍵を前記内部ストレージから探し出し、
(1-B) 前記(1-A)で探し出された公開鍵に対応する秘密鍵を前記内部ストレージから          読み出し、
(1-C) 前記(1-B)で前記内部ストレージから読み出された秘密鍵を復号化アルゴリズ          ムで復号化し、
(1-D) 前記ポートに接続された外部ストレージに記憶されている暗号データを前記(1          -C)で復号化された秘密鍵で復号化する、
ことを特徴とするプリンター。
【請求項２】
請求項１に記載するプリンターであって、
前記ポートに接続されている外部ストレージに記憶された暗号データには、前記(1-B)で前記内部ストレージから読み出された秘密鍵についての最大使用回数を示した復号化制限情報が付加され、
前記プロセッサは、以下(2-A)〜(2-C)の処理を実行し、
(2-A) 前記(1-B)で前記内部ストレージから読み出された秘密鍵を初めて使用する場          合には、前記(1-B)で前記内部ストレージから読み出された秘密鍵についての          最大使用回数を、前記ポートに接続されている外部ストレージに記憶された暗          号データの復号化制限情報から読み出し、
(2-B) 前記(1-B)で前記内部ストレージから読み出された秘密鍵を使用する場合には          、前記(1-B)で前記内部ストレージから読み出された秘密鍵についての使用回          数をカウントし、
(2-C) 前記(2-B)でカウントされた使用回数が前記(2-A)で読み出された最大使用回数          に到達したときは、前記(1-B)で前記内部ストレージから読み出された秘密鍵          と前記秘密鍵に対応する公開鍵を前記内部ストレージから削除する、
ことを特徴とするプリンター。
【請求項３】
請求項２に記載するプリンターであって、
前記プロセッサに制御される印刷部を備え、
前記プロセッサは、以下(3-A)の処理を実行し、
(3-A) 前記(1-D)で復号化された復号データを前記印刷部で印刷する場合には、前記          (1-B)で前記内部ストレージから読み出された秘密鍵を使用する場合に該当す          るとして、前記(2-B)の処理を実行する、
ことを特徴とするプリンター。
【請求項４】
請求項２又は請求項３に記載するプリンターであって、
前記プロセッサは、以下(4-A)〜(4-E)の処理を実行し、
(4-A) 前記(1-D)で復号化された復号データを利用して前記ユーザーインターフェー          スからの編集コマンドに基づきデータ編集を行う場合には、前記(1-B)で前記          内部ストレージから読み出された秘密鍵を使用する場合に該当しないとして、          前記(2-B)の処理を回避し、
(4-B) 前記(4-A)で編集されたデータを前記(1-A)で探し出された公開鍵で暗号化し、
(4-C) 前記(4-B)で暗号化されたデータを記憶媒体に記憶し、
(4-D) 前記(4-C)で前記記憶媒体に記憶されたデータを利用する場合には、前記(2-B)          でカウントされた使用回数が前記(2-A)で読み出された最大使用回数に未到達          のときに限り、前記(1-B)で読み出された秘密鍵で前記(4-C)で前記記憶媒体に          記憶されたデータを復号化し、
(4-E) 前記(4-D)の処理が前記(1-B)で前記内部ストレージから読み出された秘密鍵を          使用する場合に該当するとして、前記(2-B)の処理を実行する、
ことを特徴とするプリンター。
【請求項５】
請求項２乃至請求項４のいずれか一つに記載するプリンターであって、
前記プロセッサは、前記ユーザーインターフェースにより第４コマンドが入力されると、以下(5-1)の処理を実行し、
(5-1) リセット用公開鍵とリセット用秘密鍵とを前記公開鍵暗号方式で作成し、
前記プロセッサは、外部ストレージが前記ポートに接続されている場合に、前記ユーザーインターフェースにより第５コマンドが入力されると、以下(5-I)の処理を実行し、
(5-I) 公開鍵と前記(5-1)で作成されたリセット用公開鍵とを前記ポートに接続され          ている外部ストレージに記憶し、
前記(5-I)で外部ストレージに記憶された公開鍵と前記公開鍵に対応する秘密鍵についての使用回数をリセットするためのリセットアルゴリズムとを含んだリセットファイルが前記(5-I)で外部ストレージに記憶されたリセット用公開鍵で暗号化され、前記暗号化されたリセットファイルが記憶された外部ストレージが前記ポートに接続されている場合には、前記プロセッサは、前記ユーザーインターフェースにより第６コマンドが入力されると、以下(5-A)〜(5-D)の処理を実行し、
(5-A) 前記ポートに接続されている外部ストレージに記憶されたリセットファイルを          前記(5-1)で作成されたリセット用秘密鍵で復号化し、
(5-B) 前記(5-A)で復号化されたリセットファイルの公開鍵に対応する秘密鍵を前記          内部ストレージから読み出し、
(5-C) 前記(5-B)で読み出された秘密鍵についての使用回数を前記(5-A)で復号化され          たリセットファイルのリセットアルゴリズムでリセットし、
(5-D) 前記(5-1)で作成されたリセット用公開鍵とリセット用秘密鍵とを削除する、
ことを特徴とするプリンター。
【請求項６】
請求項１乃至請求項５のいずれか一つに記載するプリンターであって、
前記ポートに接続される外部ストレージに記憶され、公開鍵で暗号化されたデータには、前記公開鍵が前記(1-1)の公開鍵暗号方式で作成されたときに使用した疑似乱数が付加され、前記疑似乱数を使用して前記(1-1)の公開鍵暗号方式で公開鍵と秘密鍵とが当該プリンター外又は当該プリンター内で再び作成されること、を特徴とするプリンター。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部ストレージに記憶されている暗号データを復号して使用するプリンターに関するものである。
【背景技術】
【０００２】
従来より、外部ストレージに記憶されている暗号データを復号して使用する技術には、例えば、下記特許文献１に記載された技術のように、プリンター等のデータ処理部にデータバスを介して接続されたメモリカード制御装置がある。
【０００３】
メモリカード制御装置は、制御部、暗号処理部、及びメモリーカードを着脱するためのスロットを備える。暗号処理部は、制御部からの制御に従い、制御部から供給されたデータに対して、所定の暗号化処理及び復号化処理を行う。
【０００４】
また、メモリカード制御装置では、データが更新されるときには、使用可能回数と使用回数とが、それぞれ、指定された値とゼロとに初期化され、暗号化された状態でメモリカードに記憶される。このため、データを使用するときに正しく処理が行えるように、使用可能回数と使用回数とを正しく初期化することができる。
【０００５】
さらに、メモリカード制御装置では、メモリカードが着脱可能に構成されているので、メモリカードを異なるメモリカード制御装置に順次に装着し、各メモリカード制御装置においてメモリカードの暗号データを使用した場合にも、使用回数が正しく更新され、メモリカードのデータの不正使用を防止することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−９１８３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、下記特許文献１に記載された技術では、各メモリカード制御装置においてメモリカードの暗号データを使用することができるため、特定の１つのメモリカードの暗号データの使用を特定の１つのメモリカード制御装置のみに限定することはできなかった。
【０００８】
そこで、本発明は、上述した点を鑑みてなされたものであり、当該外部ストレージに記憶されている暗号データを復号して使用することを当該プリンターのみに限定することができるプリンターを提供することを課題とする。
【課題を解決するための手段】
【０００９】
この課題を解決するためになされた請求項１に係る発明のプリンターでは、ユーザーインターフェースにより第１コマンドが入力されると、一対一の関係にある公開鍵と秘密鍵とが公開鍵暗号方式で作成される。従って、公開鍵で暗号化された暗号データを元のデータ（復号データ）に戻すには、その公開鍵と一対一の関係にある秘密鍵でしかできない。
公開鍵については、当該プリンターの内部ストレージにそのまま記憶される。これに対して、秘密鍵は、暗号化アルゴリズムで暗号化されたものが、当該プリンターの内部ストレージに公開鍵と一対一の関係をもって記憶される。
その後、当該プリンターのポートに外部ストレージが接続されている場合に、ユーザーインターフェースにより第２コマンドが入力されると、当該プリンターのポートに接続されている外部ストレージに当該プリンターの内部ストレージの公開鍵がそのまま記憶される。
そして、公開鍵とその公開鍵で暗号化された暗号データとを記憶した外部ストレージが当該プリンター外で用意される。
その後、公開鍵とその公開鍵で暗号化された暗号データとを記憶した外部ストレージが当該プリンターのポートに接続されている場合に、ユーザーインターフェースにより第３コマンドが入力されると、当該プリンターのポートに接続されている外部ストレージの公開鍵と同一の公開鍵が当該プリンターの内部ストレージから探し出される。さらに、その探し出された公開鍵と一対一の関係をもって当該プリンターの内部ストレージに記憶されている秘密鍵が、当該プリンターの内部ストレージから読み出される。その読み出された秘密鍵（以下、「当該プリンターの内部ストレージから読み出された秘密鍵」という。）は復号化アルゴリズムで復号化される。その復号化された秘密鍵は、当該プリンターのポートに接続されている外部ストレージの暗号データを、当該プリンター内で復号化して元のデータ（復号データ）に戻す。
以上より、請求項１に係る発明のプリンターでは、暗号化を行う公開鍵とその暗号化された暗号データを復号化して元のデータ（復号データ）に戻す秘密鍵とが一対一の関係をもって当該プリンターの内部ストレージに記憶される一方で、当該プリンターの内部ストレージに記憶された秘密鍵は暗号化アルゴリズムで暗号化された状態にある。つまり、当該プリンターの内部ストレージに不正アクセスしても、公開鍵と一対一の関係にある秘密鍵は暗号化アルゴリズムで暗号化された状態にあるので、暗号化アルゴリズムで暗号化された状態にある秘密鍵を不正アクセスにより読み取ったとしても、読み取った秘密鍵が暗号化アルゴリズムで暗号化された状態では、その秘密鍵と一対一の関係にある公開鍵で暗号化された暗号データを復号化して元のデータ（復号データ）に戻すことは不可能である。
つまり、請求項１に係る発明のプリンターでは、当該プリンターのポートに接続されている外部ストレージに記憶されている暗号データを復号化して元のデータ（復号データ）に戻して使用することを、当該プリンター内のみに限定することができる。
【００１０】
また、請求項２に係る発明のプリンターでは、当該プリンターのポートに接続されている外部ストレージに記憶された暗号データに、「当該プリンターの内部ストレージから読み出された秘密鍵」についての最大使用回数（暗号データを復号化して元のデータ（復号データ）に戻すために復号化アルゴリズムで復号化された秘密鍵を使用する最大回数）を示した復号化制限情報が付加されていることがある。
そのような場合において、「当該プリンターの内部ストレージから読み出された秘密鍵」が初めて（暗号データを復号化して元のデータ（復号データ）に戻すために復号化アルゴリズムで復号化された秘密鍵が）使用されるときには、「当該プリンターの内部ストレージから読み出された秘密鍵」についての最大使用回数が、当該プリンターのポートに接続されている外部ストレージの暗号データに付加されている復号化制限情報から読み出される。
その後、「当該プリンターの内部ストレージから読み出された秘密鍵」が（暗号データを復号化して元のデータ（復号データ）に戻すために復号化アルゴリズムで復号化された秘密鍵が）使用される場合には、「当該プリンターの内部ストレージから読み出された秘密鍵」についての使用回数（暗号データを復号化して元のデータ（復号データ）に戻すために復号化アルゴリズムで復号化された秘密鍵を使用する回数）がカウントされる。
そして、そのカウントされた使用回数が最大使用回数に到達したときは、「当該プリンターの内部ストレージから読み出された秘密鍵」と一対一の関係にある公開鍵が当該プリンターの内部ストレージから削除される。
以上より、本発明のプリンターでは、「当該プリンターの内部ストレージから読み出された秘密鍵」の使用回数が最大使用回数までに制限される。よって、当該プリンターのポートに接続された外部ストレージに記憶されている暗号データを復号化して元のデータ（復号データ）に戻すために復号化アルゴリズムで復号化された秘密鍵を使用する回数も最大使用回数までに制限することができる。
【００１１】
また、請求項３に係る発明のプリンターでは、「当該プリンターの内部ストレージから読み出された秘密鍵」であって復号化アルゴリズムで復号化された秘密鍵で復号化された元のデータ（復号データ）が印刷部で印刷される場合には、「当該プリンターの内部ストレージから読み出された秘密鍵」についての使用回数（暗号データを復号化して元のデータ（復号データ）に戻すために復号化アルゴリズムで復号化された秘密鍵を使用する回数）がカウントされる。
以上より、本発明のプリンターでは、当該プリンターのポートに接続された外部ストレージに記憶されている暗号データが印刷される際には、「当該プリンターの内部ストレージから読み出された秘密鍵」であって復号化アルゴリズムで復号化された秘密鍵でその暗号データが復号化されて元のデータ（復号データ）に戻され、「当該プリンターの内部ストレージから読み出された秘密鍵」についての使用回数がカウントされるので、当該プリンターのポートに接続された外部ストレージに記憶されている暗号データを印刷する回数を多くても最大使用回数までに制限することができる。
【００１２】
また、請求項４に係る発明のプリンターでは、「当該プリンターの内部ストレージから読み出された秘密鍵」であって復号化アルゴリズムで復号化された秘密鍵で復号化された元のデータ（復号データ）が利用されてユーザーインターフェースからの編集コマンドに基づきデータ編集が行われる場合には、「当該プリンターの内部ストレージから読み出された秘密鍵」についての使用回数（暗号データを復号化して元のデータ（復号データ）に戻すために復号化アルゴリズムで復号化された秘密鍵を使用する回数）はカウントされない。その後、「当該プリンターの内部ストレージから読み出された秘密鍵」と一対一の関係にある公開鍵が当該プリンターの内部ストレージから探し出される。データ編集が行われたデータは、その探し出された公開鍵で暗号化される。その暗号化されたデータは記憶媒体に記憶される。
一方、その記憶媒体に記憶されたデータが利用される場合には、「当該プリンターの内部ストレージから読み出された秘密鍵」の使用回数が最大使用回数（暗号データを復号化して元のデータ（復号データ）に戻すために復号化アルゴリズムで復号化された秘密鍵を使用する最大回数）に未到達のときに限り、その記憶媒体に記憶されたデータが「当該プリンターの内部ストレージから読み出された秘密鍵」であって復号化アルゴリズムで復号化された秘密鍵で復号化されて元のデータ（復号データ）に戻される。このときは、「当該プリンターの内部ストレージから読み出された秘密鍵」についての使用回数（暗号データを復号化して元のデータ（復号データ）に戻すために復号化アルゴリズムで復号化された秘密鍵を使用する回数）はカウントされる。
以上より、本発明のプリンターでは、「当該プリンターの内部ストレージから読み出された秘密鍵」であって復号化アルゴリズムで復号化された秘密鍵で復号化された元のデータ（復号データ）が利用されてデータ編集が行われる場合には、データ編集が行われたデータは、「当該プリンターの内部ストレージから読み出された秘密鍵」と一対一の関係にある公開鍵で暗号化される。
その暗号化されたデータが記憶媒体に記憶される場合には、「当該外部プリンターの内部ストレージから読み出された秘密鍵」の使用回数を無制限にすることができる一方、その記憶媒体に記憶されたデータが利用される場合には、「当該外部プリンターの内部ストレージから読み出された秘密鍵」の使用回数を制限することができる。
【００１３】
また、請求項５に係る発明のプリンターでは、ユーザーインターフェースにより第４コマンドが入力されると、一対一の関係にあるリセット用公開鍵とリセット用秘密鍵とが公開鍵暗号方式で作成される。従って、リセット用公開鍵で暗号化された暗号データを元のデータ（復号データ）に戻すには、そのリセット用公開鍵と一対一の関係にあるリセット用秘密鍵でしかできない。
その後、当該プリンターのポートに外部ストレージが接続されている場合に、ユーザーインターフェースにより第５コマンドが入力されると、当該プリンターのポートに接続されている外部ストレージに公開鍵とリセット用公開鍵とがそのまま記憶される。
そして、当該外部ストレージに記憶された公開鍵に対応する秘密鍵についての使用回数をリセットするためのリセットアルゴリズムとその公開鍵とを含んだリセットファイルが当該外部ストレージに記憶されたリセット用公開鍵で暗号化され、その暗号化されたリセットファイルを記憶した外部ストレージが当該プリンター外で用意される。
その後、リセット用公開鍵で暗号化されたリセットファイルを記憶した外部ストレージが当該プリンターのポートに接続されている場合に、ユーザーインターフェースにより第６コマンドが入力されると、当該プリンターのポートに接続されている外部ストレージに記憶されたリセットファイルは、そのリセットファイルを暗号化したリセット用公開鍵と一対一の関係にあるリセット用秘密鍵で復号化されて元のリセットファイルに戻される。  そして、その復号化された元のリセットファイルに含まれる公開鍵と一対一の関係にある秘密鍵が内部ストレージから読み出される。その読み出された秘密鍵についての使用回数は、その復号化された元のリセットファイルに含まれるリセットアルゴリズムでリセットされる。その後は、そのリセットファイルを暗号化したリセット用公開鍵と、そのリセット用公開鍵と一対一の関係にあるリセット用秘密鍵とが削除される。
以上より、本発明のプリンターでは、リセットファイルに含まれた公開鍵と一対一の関係にある秘密鍵の使用回数が一度リセットされるので、リセットファイルに含まれた公開鍵と一対一の関係にある秘密鍵による暗号データの復号化が再び最大使用回数まで行うことができる。
【００１４】
また、請求項６に係る発明のプリンターでは、当該プリンターのポートに接続された外部ストレージに記憶され、公開鍵で暗号化されたデータに対して、その公開鍵が公開鍵暗号方式で作成されたときに使用された疑似乱数が付加されていることがある。そのような場合には、その疑似乱数が使用された公開鍵暗号方式によって公開鍵と秘密鍵とが当該プリンター外又は当該プリンター内で再び作成され得る。
以上より、本発明のプリンターでは、秘密鍵を失っても、その失った秘密鍵を取り戻すことができる。
【発明の効果】
【００１５】
すなわち、本発明のプリンターでは、当該プリンターのポートに接続されている外部ストレージに記憶されている暗号データを復号化して元のデータ（復号データ）に戻して使用することを、当該プリンター内のみに限定することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態であるプリンター等が表されたブロック図である。
【図２】同プリンターで第１コマンドが入力された場合に実行されるプログラムを表したフローチャート図である。
【図３】同プリンターのＥＥＰＲＯＭでの公開鍵と秘密鍵の記憶状態の一例を表した図である。
【図４】同プリンターで第２コマンドが入力された場合に実行されるプログラムを表したフローチャート図である。
【図５】同プリンターのポートに接続されている外部ストレージでの公開鍵の記憶状態の一例を表した図である。
【図６】外部ストレージでの公開鍵と暗号データの記憶状態の一例を表した図である。
【図７】外部ストレージに記憶されている暗号データの一例を表した図である。
【図８】同プリンターで第３コマンドが入力された場合に実行されるプログラムを表したフローチャート図である。
【図９】復号化制限処理のプログラムを表したフローチャート図である。
【図１０】復号データ使用処理のプログラムを表したフローチャート図である。
【図１１】復号データ使用処理のプログラムを表したフローチャート図である。
【図１２】同プリンターで第４コマンド及び第５コマンドが入力された場合に実行されるプログラムを表したフローチャート図である。
【図１３】外部ストレージでのリセット用公開鍵と公開鍵の記憶状態の一例を表した図である。
【図１４】外部ストレージに記憶されているリセットファイルの一例を表した図である。
【図１５】同プリンターで第６コマンドが入力された場合に実行されるプログラムを表したフローチャート図である。
【図１６】同プリンターで再作成コマンドが入力された場合に実行されるプログラムを表したフローチャート図である。
【発明を実施するための形態】
【００１７】
［１．プリンター等の基本構成］
本発明の一実施形態を図面を用いて説明する。図１に表されたように、本実施の形態に係るプリンター１は、ポート１１や、表示部１２、操作部１３、印刷部１４、ＲＯＭ１５、ＲＡＭ１６、ＣＰＵ１７、ＥＥＰＲＯＭ１８を備える。
【００１８】
ポート１１は、ユーザー２によって外部ストレージ２１が着脱される接続部である。外部ストレージ２１は、不揮発性の記憶装置である。外部ストレージ２１は、ポート１１に接続されている場合には、本実施の形態に係るプリンター１によって読み書きが行われる。また、外部ストレージ２１は、ユーザー２が持ち込んだ販売会社３においても、販売会社３の情報処理装置等によって読み書きが行われる。
【００１９】
表示部１２は、液晶ディスプレイ等の表示装置である。操作部１３は、入力ボタンや、表示部１２を覆った透明タッチパネル等の入力装置である。表示部１２や操作部１３は、ユーザー２と本実施の形態に係るプリンター１とを結ぶユーザーインターフェース１９を構成する。印刷部１４は、文字・図形等を印刷媒体に印刷する出力装置である。
【００２０】
ＲＯＭ１５には、本実施の形態に係るプリンター１を制御するプログラム等が記憶される。ＲＡＭ１６は、本実施の形態に係るプリンター１を制御する際に必要な作業領域等に使用される。ＣＰＵ１７は、本実施の形態に係るプリンター１を制御するプログラムを実行するための制御装置である。つまり、本実施の形態に係るプリンター１が制御される際には、ＣＰＵ１７によって、ポート１１に接続された外部ストレージ２１や、ユーザーインターフェース１９、印刷部１４、ＲＯＭ１５、ＲＡＭ１６、ＥＥＰＲＯＭ１８が制御される。ＥＥＰＲＯＭ１８は、公開鍵暗号方式に関するデータ等が記憶される内部ストレージである。
【００２１】
［２．公開鍵暗号方式によるデータの使用］
次に、本実施の形態に係るプリンター１における公開鍵暗号方式によるデータの使用について説明する。先ず、図２に表されたように、ＣＰＵ１７は、Ｓ１１において、第１コマンドが入力されたか否かを判定する。第１コマンドは、公開鍵暗号方式で使用される鍵を作成する命令であって、ユーザーインターフェース１９を介してユーザー２によって入力される。本実施の形態では、公開鍵暗号方式として、ＲＳＡ暗号方式が使用される。
【００２２】
ここでは、第１コマンドが入力された場合（Ｓ１１：ＹＥＳ）に限って、Ｓ１２に進む。Ｓ１２では、ＣＰＵ１７は、鍵の作成を行う。つまり、ＲＳＡ暗号方式によって公開鍵と秘密鍵とが作成される。その後は、Ｓ１３に進む。Ｓ１３では、ＣＰＵ１７は、上記Ｓ１２で作成された公開鍵をＥＥＰＲＯＭ１８に記憶する。その後は、Ｓ１４に進む。
【００２３】
Ｓ１４では、ＣＰＵ１７は、上記Ｓ１２で作成された秘密鍵を暗号化する。暗号化は、ＲＯＭ１５に記憶された暗号化アルゴリズムによって行われる。その後は、Ｓ１５に進む。Ｓ１５では、ＣＰＵ１７は、上記Ｓ１４で暗号化された秘密鍵をＥＥＰＲＯＭ１８に記憶する。このとき、ＥＥＰＲＯＭ１８では、上記Ｓ１３でＥＥＰＲＯＭ１８に記憶された公開鍵に対応させて、上記Ｓ１４で暗号化された秘密鍵が記憶される。
【００２４】
このようにして、第１コマンドが入力されるたびに作成される公開鍵と秘密鍵とが、互いに対応させた状態でＥＥＰＲＯＭ１８に記憶される。第１コマンドの入力がＮ回されたとすると、例えば、図３に表されたテーブル３１のように、互いに対応する公開鍵と秘密鍵とを１組にして、Ｎ組の公開鍵と秘密鍵とがＥＥＰＲＯＭ１８に記憶される。但し、ＥＥＰＲＯＭ１８に記憶されている秘密鍵は暗号化された状態にある。
【００２５】
次に、図４に表されたように、ＣＰＵ１７は、Ｓ２１において、外部ストレージ２１がポート１１に接続されているか否かを判定する。ここでは、外部ストレージ２１がポート１１に接続されている場合（Ｓ２１：ＹＥＳ）に限って、Ｓ２２に進む。Ｓ２２では、ＣＰＵ１７は、第２コマンドが入力されたか否かを判定する。第２コマンドは、本実施の形態に係るプリンター１において作成された公開鍵の全てを表示部１２に表示させる命令であって、ユーザーインターフェース１９を介してユーザー２によって入力される。
【００２６】
ここでは、第２コマンドが入力された場合（Ｓ２２：ＹＥＳ）に限って、Ｓ２３に進む。Ｓ２３では、ＣＰＵ１７は、本実施の形態に係るプリンター１において作成された公開鍵の全てを表示部１２に表示する。例えば、上記図３に表されたように、Ｎ組の公開鍵と秘密鍵とがＥＥＰＲＯＭ１８に記憶されている場合には、公開鍵（１）、公開鍵（２）、公開鍵（３）、…、公開鍵（Ｎ）のＮ個の公開鍵が表示部１２に表示される。その後は、上記図４のＳ２４に進む。
【００２７】
Ｓ２４では、ＣＰＵ１７は、公開鍵が選択されたか否かが判定される。公開鍵の選択は、表示部１２に表示された全ての公開鍵のいずれかをユーザー２が操作部１３で選択することによって行われる。従って、ここでの判定は、操作部１３からの入力信号に基づいて行われる。ここで、公開鍵が選択されていない場合（Ｓ２４：ＮＯ）には、ＣＰＵ１７は、Ｓ２４自身に戻って、公開鍵が選択されたか否かの判定を再び行う。一方、公開鍵が選択された場合（Ｓ２４：ＹＥＳ）には、Ｓ２５に進む。
【００２８】
Ｓ２５では、ＣＰＵ１７は、ポート１１に接続されている外部ストレージ２１に対し、上記Ｓ２４で選択されたと判定された公開鍵を記憶する。例えば、上記Ｓ２４で選択されたと判定された公開鍵が公開鍵（ｉ）の場合（１≦ｉ≦Ｎ、以下同じ）には、図５に表されたように、公開鍵（ｉ）が外部ストレージ２１に記憶される。その後は、上記図４のＳ２６に進む。Ｓ２６では、ＣＰＵ１７は、表示部１２に表示されている全ての公開鍵を非表示にする。
【００２９】
次に、公開鍵が記憶された外部ストレージ２１は、ユーザー２によって販売会社３に持ち込まれる。販売会社３では、ユーザー２が注文した有料データを、情報処理装置等によって、外部ストレージ２１に記憶されている公開鍵を用いたＲＳＡ暗号方式で暗号化し、その暗号化された有料データを、暗号データとして、外部ストレージ２１に記憶する。例えば、上記図５の外部ストレージ２１が販売会社３に持ち込まれた場合には、図６に表されたように、公開鍵（ｉ）と暗号データ（ｉ）とが外部ストレージ２１に記憶される。
【００３０】
さらに、販売会社３では、情報処理装置等によって、復号化制限情報を、外部ストレージ２１に記憶されている公開鍵を用いたＲＳＡ暗号方式で暗号化し、その暗号化された復号化制限情報を、暗号データに含ませる。復号化制限情報とは、外部ストレージ２１に記憶されている公開鍵に対応した秘密鍵についての最大使用回数を示したデータである。
【００３１】
また、販売会社３では、情報処理装置等によって、暗号データに対し、疑似乱数を付加する。疑似乱数とは、外部ストレージ２１に記憶されている公開鍵をＲＳＡ暗号方式で作成する際に使用されるＳＥＥＤ乱数である。但し、疑似乱数は、暗号化されない。例えば、上記図６の暗号データ（ｉ）には、図７に表されたように、暗号化された復号化制限情報（ｉ）が暗号データ本体（ｉ）に含まれ、疑似乱数（ｉ）が暗号データ本体（ｉ）に付加される。
【００３２】
尚、販売会社３がユーザー２の注文に応じて提供する有料データには、秘密文書やテンプレート等がある。
【００３３】
次に、図８に表されたように、ＣＰＵ１７は、Ｓ３１において、外部ストレージ２１がポート１１に接続されているか否かを判定する。但し、ここでは、公開鍵と暗号データとを記憶した外部ストレージ２１がポート１１に接続されている場合（Ｓ３１：ＹＥＳ）に限って、Ｓ３２に進む。Ｓ３２では、ＣＰＵ１７は、第３コマンドが入力されたか否かを判定する。第３コマンドは、ポート１１に接続されている外部ストレージ２１の暗号データを本実施の形態に係るプリンター１において復号する命令であって、ユーザーインターフェース１９を介してユーザー２によって入力される。
【００３４】
ここでは、第３コマンドが入力された場合（Ｓ３２：ＹＥＳ）に限って、Ｓ３３に進む。Ｓ３３では、ＣＰＵ１７は、ポート１１に接続されている外部ストレージ２１に記憶された公開鍵と暗号データをＲＡＭ１６に記憶する。例えば、上記図６の外部ストレージ２１がポート１１に接続されている場合には、公開鍵（ｉ）と暗号データ（ｉ）とがＲＡＭ１６に記憶される。その後は、上記図８のＳ３４に進む。
【００３５】
Ｓ３４では、ＣＰＵ１７は、上記Ｓ３３でＲＡＭ１６に記憶された公開鍵と同一の公開鍵をＥＥＰＲＯＭ１８から探し出す。例えば、上記図６の外部ストレージ２１がポート１１に接続されている場合には、公開鍵（ｉ）がＲＡＭ１６に記憶されることから、上記図３のＥＥＰＲＯＭ１８のテーブル３１から公開鍵（ｉ）が探し出される。つまり、ポート１１に接続されている外部ストレージ２１に記憶された公開鍵と同一の公開鍵がＥＥＰＲＯＭ１８から探し出される。その後は、上記図８のＳ３５に進む。
【００３６】
Ｓ３５では、ＣＰＵ１７は、上記Ｓ３４で公開鍵が探し出されたか否かを判定する。つまり、ポート１１に接続されている外部ストレージ２１に記憶された公開鍵と同一の公開鍵がＥＥＰＲＯＭ１８から探し出されたか否かが判定される。ここで、上記Ｓ３４で公開鍵が探し出された場合（Ｓ３５：ＹＥＳ)には、Ｓ３６に進む。
【００３７】
Ｓ３６では、ＣＰＵ１７は、上記Ｓ３４で探し出された公開鍵に対応する秘密鍵をＥＥＰＲＯＭ１８から読み出す。例えば、上記Ｓ３４で探し出された公開鍵が公開鍵（ｉ）である場合には、公開鍵（ｉ）に対応する秘密鍵（ｉ）が上記図３のＥＥＰＲＯＭ１８のテーブル３１から読み出される。その後は、上記図８のＳ３７に進む。
【００３８】
Ｓ３７では、ＣＰＵ１７は、上記Ｓ３６で読み出された秘密鍵を復号化する。復号化は、ＲＯＭ１５に記憶された復号化アルゴリズムによって行われる。その後は、Ｓ３８に進む。
【００３９】
Ｓ３８では、ＣＰＵ１７は、上記Ｓ３３でＲＡＭ１６に記憶された暗号データを、上記Ｓ３７で復号化された秘密鍵を用いたＲＳＡ暗号方式で復号化する。その復号化されたデータは、復号データとして扱われる。さらに、その復号化の際には、その暗号データに含まれる復号化制限情報も復号化される。例えば、上記Ｓ３３でＲＡＭ１６に記憶された暗号データが暗号データ（ｉ）であり、上記Ｓ３７で復号化された秘密鍵が秘密鍵（ｉ）である場合には、その復号化された秘密鍵（ｉ）を用いたＲＳＡ暗号方式で暗号データ（ｉ）が復号化され、その復号化の際には、暗号データ（ｉ）に含まれる復号化制限情報（ｉ）も復号化される。つまり、ポート１１に接続されている外部ストレージ２１に記憶された暗号データと、その暗号データに含まれる復号化制限情報とが、ポート１１に接続されている外部ストレージ２１に記憶された公開鍵に対応する秘密鍵によって復号化される。その後は、Ｓ３９に進む。
【００４０】
Ｓ３９では、ＣＰＵ１７は、後述する復号化制限処理を行う。
【００４１】
一方、上記Ｓ３５において、上記Ｓ３４で公開鍵が探し出されていない場合（Ｓ３５：ＮＯ)には、Ｓ４０に進む。Ｓ４０では、ＣＰＵ１７は、ポート１１に接続されている外部ストレージ２１に記憶された公開鍵と同一の公開鍵が本実施の形態に係るプリンター１にない旨を表示部１２に表示する。
【００４２】
［３．復号化制限処理］
次に、上記Ｓ３９の復号化制限処理を説明する。上記Ｓ３９の復号化制限処理では、図９に表されたように、ＣＰＵ１７は、Ｓ５１において、上記Ｓ３８で行われた秘密鍵による暗号データの復号化が初めてであるか否かを判定する。この判定は、例えば、フラグを用いて行われる。ここで、上記Ｓ３８で行われた秘密鍵による暗号データの復号化が初めてでない場合（Ｓ５１：ＮＯ）には、後述するＳ５４に進む。これに対し、上記Ｓ３８で行われた秘密鍵による暗号データの復号化が初めてである場合（Ｓ５１：ＹＥＳ）には、Ｓ５２に進む。
【００４３】
Ｓ５２では、ＣＰＵ１７は、上記Ｓ３８で暗号データとともに復号化された復号化制限情報の最大使用回数をＥＥＰＲＯＭ１８に記憶する。このとき、ＥＥＰＲＯＭ１８では、上記Ｓ３８の復号化で使用した秘密鍵に対応させて、上記Ｓ３８で復号化された復号化制限情報の最大使用回数が記憶される。上記Ｓ３８の復号化で使用した秘密鍵が秘密鍵（ｉ）である場合には、上記Ｓ３８で復号化された復号化制限情報（ｉ）の最大使用回数が、例えば、上記図３に表されたＥＥＰＲＯＭ１８のテーブル３１において、秘密鍵（ｉ）の最大使用回数として記憶される。つまり、ポート１１に接続されている外部ストレージ２１に記憶された公開鍵に対応した秘密鍵についての最大使用回数がＥＥＰＲＯＭ１８に記憶される。その後は、上記図９のＳ５３に進む。
【００４４】
Ｓ５３では、ＣＰＵ１７は、上記Ｓ３８の復号化で使用した秘密鍵についての使用回数をＥＥＰＲＯＭ１８にセットする。上記Ｓ３８の復号化で使用した秘密鍵が秘密鍵（ｉ）である場合には、例えば、上記図３に表されたＥＥＰＲＯＭ１８のテーブル３１において、秘密鍵（ｉ）の使用回数に初期値の「０」が記憶される。その後は、上記図９のＳ５４に進む。
【００４５】
Ｓ５４では、ＣＰＵ１７は、後述する復号データ使用処理を行う。その後は、Ｓ５５に進む。
【００４６】
Ｓ５５では、ＣＰＵ１７は、上記Ｓ５４の復号データ使用処理で使用した復号データを復号化した秘密鍵、つまり、上記Ｓ３８の復号化で使用した秘密鍵についての使用回数を「１」だけ増加させるインクリメントを行う。上記Ｓ３８の復号化で使用した秘密鍵が秘密鍵（ｉ）である場合には、例えば、上記図３に表されたＥＥＰＲＯＭ１８のテーブル３１において、秘密鍵（ｉ）の使用回数に対し、「１」だけ増加させるインクリメントが行われる。その後は、上記図９のＳ５６に進む。
【００４７】
Ｓ５６では、ＣＰＵ１７は、上記Ｓ５５でインクリメントされた使用回数が最大使用回数に到達したか否かを判定する。つまり、上記Ｓ５５でインクリメントされた使用回数が秘密鍵（ｉ）の使用回数である場合には、秘密鍵（ｉ）の使用回数が秘密鍵（ｉ）の最大使用回数に到達したか否かが判定される。ここでは、上記Ｓ５５でインクリメントされた使用回数が最大使用回数に到達した場合（Ｓ５６：ＹＥＳ）に限り、Ｓ５７に進む。
【００４８】
Ｓ５７では、ＣＰＵ１７は、上記Ｓ５４の復号データ使用処理で使用した復号データを復号化した際に使用した秘密鍵、つまり、上記Ｓ３８の復号化で使用した秘密鍵とその秘密鍵に対応する公開鍵とがＥＥＰＲＯＭ１８から削除される。上記Ｓ３８の復号化で使用した秘密鍵が秘密鍵（ｉ）である場合には、例えば、上記図３に表されたＥＥＰＲＯＭ１８のテーブル３１において、秘密鍵（ｉ）とその秘密鍵（ｉ）に対応する公開鍵（ｉ）とが削除される。
【００４９】
［４．復号データ使用処理（印刷編）］
次に、上記Ｓ５４の復号データ使用処理を説明する。上記Ｓ５４の復号データ使用処理では、図１０に表されたように、ＣＰＵ１７は、Ｓ６１において、印刷部１４による印刷を行うか否かを判定する。印刷部１４による印刷は、ユーザーインターフェース１９を介したユーザー２の操作に基づいて行われる。従って、ここでの判定は、ユーザーインターフェース１９を構成する操作部１３からの入力信号に基づいて行われる。ここで、印刷部１４による印刷を行う場合（Ｓ６１：ＹＥＳ）には、Ｓ６２に進む。
【００５０】
Ｓ６２では、ＣＰＵ１７は、上記Ｓ３８で暗号データが復号化された復号データについて印刷部１４による印刷を行う。その後は、上記図９のＳ５５に進む。ちなみに、上記図９のＳ５５では、ＣＰＵ１７は、上記Ｓ５４の復号データ使用処理で使用した復号データを復号化した秘密鍵、つまり、上記Ｓ３８の復号化で使用した秘密鍵についての使用回数を「１」だけ増加させるインクリメントを行う。
【００５１】
これに対し、上記図１０のＳ６１において、印刷部１４による印刷を行わない場合（Ｓ６１：ＮＯ）には、図１１のＳ７１に進む。
【００５２】
［５．復号データ使用処理（データ編集編・データ利用編）］
図１１のＳ７１では、ＣＰＵ１７は、データ編集を行うか否かを判定する。データ編集は、ユーザーインターフェース１９を介したユーザー２の操作に基づいて行われる。従って、ここでの判定は、ユーザーインターフェース１９を構成する操作部１３からの入力信号（編集コマンド）に基づいて行われる。ここで、データ編集を行う場合（Ｓ７１：ＹＥＳ）には、Ｓ７２に進む。
【００５３】
Ｓ７２では、ＣＰＵ１７は、データ編集処理を行う。データ編集処理では、上記Ｓ３８で暗号データが復号化された復号データについての編集が、ユーザーインターフェース１９を介したユーザー２の操作に基づいて行われる。その後は、Ｓ７３に進む。
【００５４】
Ｓ７３では、ＣＰＵ１７は、上記Ｓ７２のデータ編集処理の結果である編集データを、上記Ｓ３４で探し出された公開鍵を用いたＲＳＡ暗号方式で暗号化する。その後は、Ｓ７４に進む。
【００５５】
Ｓ７４では、ＣＰＵ１７は、上記Ｓ７３で暗号化された編集データを記憶媒体に記憶する。このとき、上記Ｓ７３の暗号化で使用した公開鍵を特定する公開鍵特定情報についても記憶媒体に記憶する。記憶媒体は、本実施の形態に係るプリンター１に内蔵されたＥＥＰＲＯＭ１８でもよいし、本実施の形態に係るプリンター１のポート１１に接続された外部ストレージ２１でもよい。あるいは、記憶媒体は、本実施の形態に係るプリンター１に内蔵されたＥＥＰＲＯＭ１８以外の内部ストレージでもよく、本実施の形態に係るプリンター１に接続された他の外部ストレージでもよい。記憶媒体の選択は、ユーザーインターフェース１９を介したユーザー２の操作に基づいて行われる。
【００５６】
その後は、上記図９のＳ５６に進む。すなわち、上記図９のＳ５５は回避される。よって、上記Ｓ５４の復号データ使用処理で使用した復号データを暗号データから復号化した秘密鍵、つまり、上記Ｓ３８の復号化で使用した秘密鍵についての使用回数を「１」だけ増加させるインクリメントは回避される。
【００５７】
一方、上記図１１のＳ７１において、データ編集を行わない場合（Ｓ７１：ＮＯ）には、Ｓ７５に進む。Ｓ７５では、データ利用を行うか否かを判定する。データ利用は、ユーザーインターフェース１９を介したユーザー２の操作に基づいて行われる。従って、ここでの判定は、ユーザーインターフェース１９を構成する操作部１３からの入力信号に基づいて行われる。ここで、データ利用を行う場合（Ｓ７５：ＹＥＳ）には、Ｓ７６に進む。
【００５８】
Ｓ７６では、ＣＰＵ１７は、上記Ｓ７４で記憶媒体に記憶された記憶データであって、上記Ｓ７３で暗号化された編集データを復号化する。この復号化は、上記Ｓ７４で記憶媒体に記憶された公開鍵特定情報の公開鍵に対応する秘密鍵を用いたＲＳＡ暗号方式で行われる。その後は、上記図９のＳ５５に進む。但し、上記図９のＳ５５では、ＣＰＵ１７は、上記Ｓ７６の復号化で使用した秘密鍵、つまり、上記Ｓ７４で記憶媒体に記憶された公開鍵特定情報の公開鍵に対応する秘密鍵についての使用回数を「１」だけ増加させるインクリメントを行う。
【００５９】
一方、上記図１１のＳ７５において、データ利用を行わない場合（Ｓ７５：ＮＯ）には、上記図９のＳ５６に進む。すなわち、この場合では、上記図９のＳ５４の復号データ使用処理において、印刷も行われず（上記図１０のＳ６１：ＮＯ）、データ編集も行われず（上記図１１のＳ７１：ＮＯ）、データ利用も行われず（上記図１１のＳ７５：ＮＯ）、上記Ｓ３８で暗号データが復号化された復号データについての使用が行われていないので、上記図９のＳ５５は回避される。よって、上記Ｓ５４の復号データ使用処理で使用した復号データを暗号データから復号化した秘密鍵、つまり、上記Ｓ３８の復号化で使用した秘密鍵についての使用回数を「１」だけ増加させるインクリメントは回避される。
【００６０】
［６．復号化制限のリセット］
次に、本実施の形態に係るプリンター１における公開鍵暗号方式によるデータの使用回数のリセット、つまり、秘密鍵についての使用回数のリセットについて説明する。図１２に表されたように、ＣＰＵ１７は、Ｓ８１において、第４コマンドが入力されたか否かを判定する。第４コマンドは、公開鍵暗号方式でリセット用鍵を作成する命令であって、ユーザーインターフェース１９を介してユーザー２によって入力される。本実施の形態では、公開鍵暗号方式として、上述したように、ＲＳＡ暗号方式が使用される。
【００６１】
ここでは、第４コマンドが入力された場合（Ｓ８１：ＹＥＳ）に限って、Ｓ８２に進む。Ｓ８２では、ＣＰＵ１７は、リセット用鍵の作成を行う。つまり、ＲＳＡ暗号方式によってリセット用公開鍵とリセット用秘密鍵とが作成される。その後は、Ｓ８３に進む。Ｓ８３では、ＣＰＵ１７は、外部ストレージ２１がポート１１に接続されているか否かを判定する。ここでは、外部ストレージ２１がポート１１に接続されている場合（Ｓ８３：ＹＥＳ）に限って、Ｓ８４に進む。
【００６２】
Ｓ８４では、ＣＰＵ１７は、第５コマンドが入力されたか否かを判定する。第５コマンドは、ポート１１に接続されている外部ストレージ２１にリセット用公開鍵等を記憶する命令であって、ユーザーインターフェース１９を介してユーザー２によって入力される。
【００６３】
ここでは、第５コマンドが入力された場合（Ｓ８４：ＹＥＳ）に限って、Ｓ８５に進む。Ｓ８５では、ＣＰＵ１７は、ポート１１に接続されている外部ストレージ２１に対し、リセット用公開鍵と、リセット対象である秘密鍵に対応する公開鍵とを記憶する。例えば、リセット対象である秘密鍵に対応する公開鍵が公開鍵（ｉ）の場合には、図１３に表されたように、リセット用公開鍵と公開鍵（ｉ）とが外部ストレージ２１に記憶される。その後は、Ｓ８６に進む。
【００６４】
Ｓ８６では、ＣＰＵ１７は、リセット用公開鍵とリセット用秘密鍵とをＥＥＰＲＯＭ１８に記憶する。
【００６５】
次に、リセット用公開鍵とリセット対象である秘密鍵に対応する公開鍵とが記憶された外部ストレージ２１は、ユーザー２によって販売会社３に持ち込まれる。販売会社３では、外部ストレージ２１に記憶されている公開鍵に対応する秘密鍵のリセットアルゴリズムを、情報処理装置等によって、外部ストレージ２１に記憶されているリセット用公開鍵を用いたＲＳＡ暗号方式で暗号化し、その暗号化されたリセットアルゴリズムを外部ストレージ２１に記憶されている公開鍵とともに、リセットファイルとして、外部ストレージ２１に記憶する。例えば、上記図１３の外部ストレージ２１が販売会社３に持ち込まれた場合には、図１４に表されたように、公開鍵（ｉ）とリセット用公開鍵で暗号化されたリセットアルゴリズムとを有するリセットファイルが外部ストレージ２１に記憶される。尚、このような外部ストレージ２１は、販売会社３がユーザー２に有償で提供される。
【００６６】
次に、図１５に表されたように、ＣＰＵ１７は、Ｓ９１において、外部ストレージ２１がポート１１に接続されているか否かを判定する。ここでは、外部ストレージ２１がポート１１に接続されている場合（Ｓ９１：ＹＥＳ）に限って、Ｓ９２に進む。Ｓ９２では、ＣＰＵ１７は、ポート１１に接続されている外部ストレージ２１にリセットファイルが記憶されているか否かを判定する。ここでは、ポート１１に接続されている外部ストレージ２１にリセットファイルが記憶されている場合（Ｓ９２：ＹＥＳ）に限って、Ｓ９３に進む。
【００６７】
Ｓ９３では、ＣＰＵ１７は、第６コマンドが入力されたか否かを判定する。第６コマンドは、公開鍵暗号方式によるデータの使用回数のリセット、つまり、秘密鍵についての使用回数のリセットを行う命令であって、ユーザーインターフェース１９を介してユーザー２によって入力される。ここでは、第６コマンドが入力された場合（Ｓ９３：ＹＥＳ）に限って、Ｓ９４に進む。
【００６８】
Ｓ９４では、ＣＰＵ１７は、リセットファイルの復号化を行う。例えば、ポート１１に上記図１４の外部ストレージ２１が接続されている場合には、リセットファイル内のリセットアルゴリズムが、ＥＥＰＲＯＭ１８に記憶されているリセット用秘密鍵を用いたＲＳＡ暗号方式で復号化される。その後は、上記図１５のＳ９５に進む。
【００６９】
Ｓ９５では、ＣＰＵ１７は、ポート１１に接続されている外部ストレージ２１に記憶された公開鍵に対応する秘密鍵をＥＥＰＲＯＭ１８から読み出す。例えば、ポート１１に上記図１４の外部ストレージ２１が接続されている場合には、ポート１１に接続されている外部ストレージ２１に記憶された公開鍵（ｉ）に対応する秘密鍵（ｉ）が上記図３のＥＥＰＲＯＭ１８のテーブル３１から読み出される。その後は、上記図１５のＳ９６に進む。但し、ポート１１に接続されている外部ストレージ２１に記憶された公開鍵（ｉ）に対応する秘密鍵（ｉ）が上記図３のＥＥＰＲＯＭ１８のテーブル３１にない場合には、Ｓ９６以降の処理は行われない。
【００７０】
Ｓ９６では、ＣＰＵ１７は、上記Ｓ９５で読み出された秘密鍵の使用回数について、上記Ｓ９４で復号化されたリセットアルゴリズムでリセットする。例えば、ポート１１に上記図１４の外部ストレージ２１が接続されている場合には、上記Ｓ９４で復号化されたリセットアルゴリズムによって、上記図３のＥＥＰＲＯＭ１８のテーブル３１において、上記Ｓ９５で読み出された秘密鍵（ｉ）の使用回数に初期値の「０」が記憶される。その後は、上記図１５のＳ９７に進む。
【００７１】
Ｓ９７では、ＣＰＵ１７は、リセット用公開鍵とリセット用秘密鍵をＥＥＰＲＯＭ１８から削除する。但し、上記Ｓ９６でのリセットが失敗した場合には、このＳ９７の処理は行われない。
【００７２】
［７．失った秘密鍵の取り戻し］
次に、本実施の形態に係るプリンター１において失った公開鍵暗号方式による秘密鍵の取り戻しについて説明する。図１６に表したように、Ｓ１０１において、再作成コマンドが入力されたか否かを判定する。再作成コマンドは、本実施の形態に係るプリンター１において失った公開鍵暗号方式による秘密鍵を取り戻す命令であって、ユーザーインターフェース１９を介してユーザー２によって入力される。本実施の形態では、公開鍵暗号方式として、上述したように、ＲＳＡ暗号方式が使用される。
【００７３】
ここでは、再作成コマンドが入力された場合（Ｓ１０１：ＹＥＳ）に限って、Ｓ１０２に進む。Ｓ１０２では、ＣＰＵ１７は、外部ストレージ２１がポート１１に接続されているか否かを判定する。但し、ここでは、少なくとも暗号データを記憶した外部ストレージ２１がポート１１に接続されている場合（Ｓ１０２：ＹＥＳ）に限って、Ｓ１０３に進む。
【００７４】
Ｓ１０３では、ＣＰＵ１７は、鍵の再作成を行う。つまり、ＲＳＡ暗号方式によって公開鍵と秘密鍵とが再作成される。この再作成の際は、例えば、ポート１１に上記図６の外部ストレージ２１が接続されている場合には、上記図７に表された暗号データ（ｉ）に付加されている擬似変数（ｉ）を使用したＲＳＡ暗号方式によって、公開鍵（ｉ）と秘密鍵（ｉ）とが再作成される。その後は、上記図２のＳ１４及びＳ１５が行われる。
【００７５】
［８．まとめ］
すなわち、本実施の形態に係るプリンター１では、ユーザーインターフェース１９により第１コマンドが入力されると（Ｓ１１：ＹＥＳ）、公開鍵と秘密鍵とがＲＳＡ暗号方式で作成され（Ｓ１２）、そのＳ１２で作成された公開鍵がＥＥＰＲＯＭ１８に記憶され（Ｓ１３）、そのＳ１２で作成された秘密鍵が暗号化アルゴリズムで暗号化され（Ｓ１４）、そのＳ１４で暗号化された秘密鍵がそのＳ１３でＥＥＰＲＯＭ１８に記憶された公開鍵に対応させてＥＥＰＲＯＭ１８に記憶される（Ｓ１５）。そして、ポート１１に外部ストレージ２１が接続されている場合（Ｓ２１：ＹＥＳ）に、ユーザーインターフェース１９により第２コマンドが入力されると（Ｓ２２：ＹＥＳ）、図５に表されたように、ポート１１に接続された外部ストレージ２１にそのＳ１３でＥＥＰＲＯＭ１８に記憶された公開鍵が記憶される（Ｓ２５）。さらに、公開鍵と当該公開鍵で暗号化された暗号データとを記憶した外部ストレージ２１（図６参照）がポート１１に接続されている場合（Ｓ３１：ＹＥＳ）に、ユーザーインターフェース１９により第３コマンドが入力されると（Ｓ３２：ＹＥＳ）、ポート１１に接続された外部ストレージ２１に記憶されている公開鍵と同一の公開鍵がＥＥＰＲＯＭ１８から探し出され（Ｓ３４）、そのＳ３４で探し出された公開鍵に対応する秘密鍵がＥＥＰＲＯＭ１８から読み出され（Ｓ３６）、そのＳ３６でＥＥＰＲＯＭ１８から読み出された秘密鍵が復号化アルゴリズムで復号化され（Ｓ３７）、ポート１１に接続された外部ストレージ２１に記憶されている暗号データがそのＳ３７で復号化された秘密鍵で復号化される（Ｓ３８）。よって、本実施の形態に係るプリンター１では、当該外部ストレージ２１に記憶されている暗号データを復号して使用することを当該プリンター１のみに限定することができる。
【００７６】
つまり、本実施の形態に係るプリンター１では、ポート１１に接続された外部ストレージ２１に記憶されている暗号データ（図６参照）は、当該プリンター１でそのＳ１２で作成された秘密鍵がなければ復号できないため、当該プリンター１のユーザー２だけが見ることができる。尚、販売会社３でユーザー２が有料データを注文（購入）する度に、当該プリンター１でＲＳＡ暗号方式の新しい鍵（公開鍵・秘密鍵）をそのＳ１２で作成する必要があるので、一組の鍵（公開鍵・秘密鍵）は一つの有料データに対応することになる。
【００７７】
以上より、本実施の形態に係るプリンター１では、暗号データの復号化が可能か否かが当該プリンター１の固有情報（例えば、シリアル番号等）に依存しないため、当該プリンター１のユーザー２以外の者が、例えば、当該プリンター１の偽造や、当該プリンター１の内部ストレージであるＥＥＰＲＯＭ１８の改竄を行っても、復号データを見ることはできない。また、ポート１１に接続された外部ストレージ２１に記憶されている暗号データ（図６参照）は、暗号化状態なので、外部ストレージ２１から復号データを見ることはできない。さらに、ポート１１に接続された外部ストレージ２１に記憶されている暗号データ（図６参照）は、ユーザー２の当該プリンター１だけで復号化されて見ることができるので、データの唯一性が強く、極秘情報の取り扱いに役に立つ。
【００７８】
また、本実施の形態に係るプリンター１では、ポート１１に接続されている外部ストレージ２１に記憶された暗号データにおいて、図６や図７に表されたように、そのＳ３６でＥＥＰＲＯＭ１８から読み出された秘密鍵についての最大使用回数を示した復号化制限情報が付加されており、そのＳ３６でＥＥＰＲＯＭ１８から読み出された秘密鍵が初めて使用される場合（Ｓ５１：ＹＥＳ）には、そのＳ３６でＥＥＰＲＯＭ１８から読み出された秘密鍵についての最大使用回数が、ポート１１に接続されている外部ストレージ２１に記憶された暗号データの復号化制限情報から読み出される（Ｓ５２）。その後、そのＳ３６でＥＥＰＲＯＭ１８から読み出された秘密鍵が使用される場合（Ｓ５４）には、そのＳ３６でＥＥＰＲＯＭ１８から読み出された秘密鍵についての使用回数がカウントされ（Ｓ５５）、そのＳ５５でカウントされた使用回数がそのＳ５２で読み出された最大使用回数に到達したとき（Ｓ５６：ＹＥＳ）は、そのＳ３６でＥＥＰＲＯＭ１８から読み出された秘密鍵とその秘密鍵に対応する公開鍵がＥＥＰＲＯＭ１８から削除される（Ｓ５７）。よって、本実施の形態に係るプリンター１では、ＥＥＰＲＯＭ１８から読み出された秘密鍵の使用回数が最大使用回数までに制限されるので（Ｓ５６：ＹＥＳ，Ｓ５７，Ｓ３５：ＮＯ）、ポート１１に接続された外部ストレージ２１に記憶されている暗号データについて、そのＳ３６でＥＥＰＲＯＭ１８から読み出された秘密鍵で復号化される回数も、最大使用回数までに制限できる。
【００７９】
つまり、本実施の形態に係るプリンター１では、そのＳ３６でＥＥＰＲＯＭ１８から読み出された秘密鍵についての使用回数がカウントされ（Ｓ５５）、そのＳ５５でカウントされた使用回数がそのＳ５２で読み出された最大使用回数に到達したとき（Ｓ５６：ＹＥＳ）は、そのＳ３６でＥＥＰＲＯＭ１８から読み出された秘密鍵とその秘密鍵に対応する公開鍵がＥＥＰＲＯＭ１８から削除される（Ｓ５７）。この点、ポート１１に接続されている外部ストレージ２１に記憶された公開鍵だけでは、その外部ストレージ２１に記憶された暗号データを復号できないため、その暗号データを復号する唯一の方法はなくなり、当該プリンター１のユーザー２であっても、その暗号データを復号できない。
【００８０】
また、本実施の形態に係るプリンター１では、そのＳ３６でＥＥＰＲＯＭ１８から読み出された秘密鍵についての使用回数が外部ストレージ２１に記憶されないので、外部ストレージ２１を改竄したとしても、そのＳ３６でＥＥＰＲＯＭ１８から読み出された秘密鍵についての使用回数を変更することは不可能である。
【００８１】
また、本実施の形態に係るプリンター１では、そのＳ３８で復号化された復号データが印刷部１４で印刷される場合（Ｓ６１：ＹＥＳ，Ｓ６２）には、そのＳ３６でＥＥＰＲＯＭ１８から読み出された秘密鍵が使用される場合（Ｓ５４）に該当するとして、そのＳ５５の処理が実行され、つまり、そのＳ３６でＥＥＰＲＯＭ１８から読み出された秘密鍵についての使用回数がカウントされる。よって、本実施の形態に係るプリンター１では、ポート１１に接続された外部ストレージ２１に記憶されている暗号データが、そのＳ３６でＥＥＰＲＯＭ１８から読み出された秘密鍵で復号化され（Ｓ３８）、そのＳ３８で復号化された復号データが印刷される回数を制限できる（Ｓ５６：ＹＥＳ，Ｓ５７，Ｓ３５：ＮＯ）。
【００８２】
また、本実施の形態に係るプリンター１では、そのＳ３８で復号化された復号データが利用されてユーザーインターフェース１９からの編集コマンドに基づきデータ編集が行われる場合（Ｓ７１：ＹＥＳ，Ｓ７２）には、そのＳ３６でＥＥＰＲＯＭ１８から読み出された秘密鍵が使用される場合（Ｓ５４）に該当しないとして、そのＳ５５の処理が回避され（図１１における「Ｓ５６に移動」）、つまり、そのＳ３６でＥＥＰＲＯＭ１８から読み出された秘密鍵についての使用回数がカウントされることが回避され、そのＳ７２で編集されたデータがそのＳ３４で探し出された公開鍵で暗号化され（Ｓ７３）、そのＳ７３で暗号化されたデータが記憶媒体に記憶される（Ｓ７４）。一方、そのＳ７４で記憶媒体に記憶されたデータが利用される場合（Ｓ７５：ＹＥＳ）には、そのＳ５５でカウントされた使用回数がそのＳ５２で読み出された最大使用回数に未到達のときに限り（Ｓ５６：ＮＯ，Ｓ３５：ＹＥＳ）、そのＳ３６で読み出された秘密鍵でそのＳ７４で記憶媒体に記憶されたデータが復号化され（Ｓ７６）、そのＳ７６の処理がそのＳ３６でＥＥＰＲＯＭ１８から読み出された秘密鍵が使用される場合（Ｓ５４）に該当するとして、そのＳ５５の処理が実行され、つまり、そのＳ３６でＥＥＰＲＯＭ１８から読み出された秘密鍵についての使用回数がカウントされる。よって、本実施の形態に係るプリンター１では、そのＳ３８で復号化された復号データが利用されてユーザーインターフェース１９からの編集コマンドに基づきデータ編集が行われる場合（Ｓ７１：ＹＥＳ，Ｓ７２）には、編集されたデータがそのＳ３４で探し出された公開鍵で暗号化され（Ｓ７３）、その７３で暗号化されたデータが記憶媒体に記憶されること（Ｓ７４）で、ＥＥＰＲＯＭ１８から読み出された秘密鍵の使用回数を無制限にし（図１１におけるＳ７４後の「Ｓ５６に移動」）、その記憶媒体に記憶されたデータが利用される場合（Ｓ７５：ＹＥＳ）には、そのＳ３６でＥＥＰＲＯＭ１８から読み出された秘密鍵の使用回数を制限できる（Ｓ５６：ＹＥＳ，Ｓ５７，Ｓ３５：ＮＯ）。
【００８３】
以上より、本実施の形態に係るプリンター１では、そのＳ３８で復号化された復号データが利用されてユーザーインターフェース１９からの編集コマンドに基づきデータ編集が行われる場合（Ｓ７１：ＹＥＳ，Ｓ７２）には、そのＳ３６でＥＥＰＲＯＭ１８から読み出された秘密鍵についての使用回数がカウントされることが回避されるので（図１１におけるＳ７４後の「Ｓ５６に移動」）、データの編集（プレビュー等の操作も含む）や保存を無制限にすることができる（Ｓ７２，Ｓ７３，Ｓ７４，Ｓ７４後の「Ｓ５６に移動」）。その一方で、その記憶媒体に記憶されたデータが利用される場合（Ｓ７５：ＹＥＳ）には、そのＳ３６でＥＥＰＲＯＭ１８から読み出された秘密鍵についての使用回数がカウントされるので、その記憶媒体に記憶された暗号データの復号化の回数が制限される（Ｓ５６：ＹＥＳ，Ｓ５７，Ｓ３５：ＮＯ）。
【００８４】
但し、その記憶媒体に記憶された暗号データが復号化されると（Ｓ７６）、その復号化された暗号データは、再び暗号化されないので、永久に使用することができる。また、そのＳ７２で編集されたデータがそのＳ３４で探し出された公開鍵で暗号化されると（Ｓ７３）、本実施の形態に係るプリンター１では、そのＳ７３で暗号化されたデータが記憶媒体に記憶されることから（Ｓ７４）、そのＳ７３で暗号化されたデータを別の記憶媒体にコピーしたとしても、当該プリンター１のユーザー２以外の者が復号データを見ることはできない。
【００８５】
また、本実施の形態に係るプリンター１では、ユーザーインターフェース１９により第４コマンドが入力されると（Ｓ８１：ＹＥＳ）、リセット用公開鍵とリセット用秘密鍵とがＲＳＡ暗号方式で作成される（Ｓ８２）。そして、外部ストレージ２１がポート１１に接続されている場合（Ｓ８３：ＹＥＳ）に、ユーザーインターフェース１９により第５コマンドが入力されると（Ｓ８４：ＹＥＳ）、公開鍵とそのＳ８２で作成されたリセット用公開鍵とがポート１１に接続されている外部ストレージ２１に記憶される（Ｓ８５）。さらに、そのＳ８５で外部ストレージ２１に記憶された公開鍵とその公開鍵に対応する秘密鍵についての使用回数をリセットするためのリセットアルゴリズムとを含んだリセットファイルがそのＳ８５で外部ストレージ２１に記憶されたリセット用公開鍵で暗号化され、その暗号化されたリセットファイルが記憶された外部ストレージ２１がポート１１に接続されている場合（Ｓ９１：ＹＥＳ，Ｓ９２：ＹＥＳ）には、ユーザーインターフェース１９により第６コマンドが入力されると（Ｓ９３：ＹＥＳ）、ポート１１に接続されている外部ストレージ２１に記憶されたリセットファイルがそのＳ８２で作成されたリセット用秘密鍵で復号化され（Ｓ９４）、そのＳ９４で復号化されたリセットファイルの公開鍵に対応する秘密鍵がＥＥＰＲＯＭ１８から読み出され（Ｓ９５）、そのＳ９５で読み出された秘密鍵についての使用回数がそのＳ９４で復号化されたリセットファイルのリセットアルゴリズムでリセットされ（Ｓ９６）、そのＳ８２で作成されたリセット用公開鍵とリセット用秘密鍵とが削除される（Ｓ９７）。よって、本実施の形態に係るプリンター１では、リセットファイルの公開鍵に対応する秘密鍵の使用回数が一度リセットされるので（Ｓ９６，Ｓ９７）、リセットファイルの公開鍵に対応する秘密鍵による復号化が再び最大使用回数まで行える。
【００８６】
さらに、本実施の形態に係るプリンター１では、そのＳ９５で読み出された秘密鍵についての使用回数がそのＳ９４で復号化されたリセットファイルのリセットアルゴリズムでリセットされると（Ｓ９６）、そのＳ８２で作成されたリセット用公開鍵とリセット用秘密鍵とが削除されるので（Ｓ９７）、無制限にリセットされることを防止できる。
【００８７】
また、本実施の形態に係るプリンター１では、ポート１１に接続される外部ストレージ２１に記憶され、公開鍵で暗号化されたデータにおいて、その公開鍵がそのＳ１２のＲＳＡ暗号方式で作成されたときに使用された疑似乱数が付加されており（図７参照）、その疑似乱数が使用されてそのＳ１２のＲＳＡ暗号方式で公開鍵と秘密鍵とが当該プリンター１内で再び作成される（Ｓ１０３）。よって、本実施の形態に係るプリンター１では、秘密鍵を失っても、その失った秘密鍵を取り戻すことができる。
【００８８】
例えば、Ｓ７４で記憶媒体に記憶された暗号化状態の編集データは、Ｓ７２のデータ編集処理でユーザー２が編集した世界唯一のものである。従って、そのＳ７４で記憶媒体に記憶された暗号化状態の編集データを復号化する秘密鍵を失うと、ユーザー２にとって大きな痛手となるが、本実施の形態に係るプリンター１では、秘密鍵を失っても、上述したように、その失った秘密鍵を取り戻すことができるので、当該プリンター１のユーザー２が安心できる危機対策を確保することができる。
【００８９】
［９．その他］
尚、本発明は上記実施形態に限定されるものでなく、その趣旨を逸脱しない範囲で様々な変更が可能である。
例えば、本実施の形態に係るプリンター１では、その疑似乱数が使用されてそのＳ１２のＲＳＡ暗号方式で作成された公開鍵と秘密鍵とが当該プリンター１内で再び作成されるが（Ｓ１０３）、上記図６や上記図７に表された外部ストレージ２１をユーザー２が販売会社３に持ち込むことによって、そのＳ１２のＲＳＡ暗号方式で作成された公開鍵と秘密鍵とを再び作成させてもよい。このような公開鍵と秘密鍵の再作成は、販売会社３がユーザー２に有償で提供される。但し、販売会社３は、ＲＳＡ暗号方式で使用される疑似乱数リストと素数リストとについて、本実施の形態に係るプリンター１と同じものが必要となり、外部に漏洩しない処置を講じる必要もある。さらに、販売会社３は、疑似乱数から乱数を抽出するアルゴリズムについても、本実施の形態に係るプリンター１と同じものが必要となり、外部に漏洩しない処置を講じる必要もある。
【００９０】
また、図６に表された外部ストレージ２１（公開鍵（ｉ）と暗号データ（ｉ）とが記憶されたもの）や、図１４に表された外部ストレージ２１（公開鍵（ｉ）とリセット用公開鍵で暗号化されたリセットアルゴリズムとを有するリセットファイルが記憶されたもの）については、販売会社３による有償の提供に限るものでなく、第三者による有償・無償の提供であってもよい。また、そのＳ１２のＲＳＡ暗号方式で作成された公開鍵と秘密鍵とを再び作成させることも、販売会社３による有償の提供に限るものでなく、第三者による有償・無償の提供であってもよい。
【符号の説明】
【００９１】
１  プリンター
２  ユーザー
３  販売会社
１１  ポート
１２  表示部
１３  操作部
１４  印刷部
１７  ＣＰＵ（プロセッサ）
１８  ＥＥＰＲＯＭ（内部ストレージ）
１９  ユーザーインターフェース
２１  外部ストレージ
【図１】
2014022989.tif 000003
【図２】
2014022989.tif 000004
【図３】
2014022989.tif 000005
【図４】
2014022989.tif 000006
【図５】
2014022989.tif 000007
【図６】
2014022989.tif 000008
【図７】
2014022989.tif 000009
【図８】
2014022989.tif 000010
【図９】
2014022989.tif 000011
【図１０】
2014022989.tif 000012
【図１１】
2014022989.tif 000013
【図１２】
2014022989.tif 000014
【図１３】
2014022989.tif 000015
【図１４】
2014022989.tif 000016
【図１５】
2014022989.tif 000017
【図１６】
2014022989.tif 000018