(57)【要約】【課題】印刷装置の装置本体に装着されるカートリッジの認証のセキュリティレベルを維持しつつ、カートリッジの認証時間の短縮を可能とする手段を提供する。【解決手段】インクカートリッジ３０の演算回路８１は、コントローラ７０から受信したチャレンジコードＣ（０）から、秘密鍵Ｋ０を用いてレスポンスコードＲ（０）を生成して、レスポンスコードＲ（０）をチャレンジコードＣ（０）に対応させてカートリッジメモリ８２に記憶させ、コントローラ７０からチャレンジコードＣ（０）を受信したとき、チャレンジコードＣ（０）に対応するレスポンスコードＲ（０）がカートリッジメモリ８２に記憶されているかを判定し、レスポンスコードＲ（０）がカートリッジメモリ８２に記憶されていると判定したことに基づいて、レスポンスコードＲ（０）をカートリッジメモリ８２から読み出してコントローラ７０へ送信する。【選択図】図４
2019171656.tif 000002
【特許請求の範囲】
【請求項１】
印刷材を用いて印刷を行う装置本体と、
上記印刷材を有し、上記印刷材の消費に応じて上記装置本体に対して交換可能に装着されて上記印刷材を上記装置本体に供給する印刷材カートリッジと、を有する印刷装置であって、
上記印刷材カートリッジは、演算部と、記憶部と、を有しており、
上記装置本体は、コントローラと、装置メモリと、を有しており、
上記コントローラは、
上記装置メモリに記憶されたチャレンジコードを上記演算部へ送信し、
上記演算部から受信したレスポンスコードが認証条件を満たすことを条件として、上記印刷材カートリッジを認証し、
上記演算部は、
上記コントローラから受信した上記チャレンジコードから、上記記憶部に記憶された鍵を用いてレスポンスコードを生成して、当該レスポンスコードを受信した上記チャレンジコードに対応させて上記記憶部に記憶させ、
上記コントローラから上記チャレンジコードを受信したとき、当該チャレンジコードに対応する上記レスポンスコードが上記記憶部に記憶されているかを判定し、
上記レスポンスコードが上記記憶部に記憶されていると判定したことに基づいて、上記レスポンスコードを上記記憶部から読み出し、読み出した上記レスポンスコードを上記コントローラへ送信する印刷装置。
【請求項２】
上記演算部は、上記コントローラから受信した上記チャレンジコードに対応する上記レスポンスコードが上記記憶部に記憶されていないと判定したことに応じて、上記記憶部に記憶された鍵を用いてレスポンスコードを生成して、当該レスポンスコードを受信した上記チャレンジコードに対応させて上記記憶部に記憶させ、生成した上記レスポンスコードを上記コントローラに送信する請求項１に記載の印刷装置。
【請求項３】
上記演算部は、上記記憶部に記憶されている上記レスポンスコードに対応する上記チャレンジコードを受信した回数をカウントし、カウントされた回数が所定回数に到達したことに応じて、上記記憶部に記憶された鍵を用いてレスポンスコードを生成し、生成した上記レスポンスコードを上記コントローラに送信する請求項１又は２に記載の印刷装置。
【請求項４】
上記演算部は、カウントされた上記回数が所定回数に到達したことに応じて、当該回数を初期値にリセットする請求項３に記載の印刷装置。
【請求項５】
上記演算部は、上記コントローラから上記チャレンジコードを受信した後、所定時間内に、次のチャレンジコードを上記コントローラから受信したことを条件として、当該チャレンジコードに対応する上記レスポンスコードを上記記憶部から読み出して上記コントローラへ送信する請求項１又は２に記載の印刷装置。
【請求項６】
上記演算部は、上記コントローラから上記チャレンジコードを受信した後、上記所定時間を経過したことを条件として、上記チャレンジコードに対応する上記レスポンスコードを上記記憶部から消去する請求項５に記載の印刷装置。
【請求項７】
上記印刷材カートリッジは、温度センサを更に有しており、
上記演算部は、上記コントローラから上記チャレンジコードを受信したことに応じて、上記温度センサから出力された第１温度情報を上記記憶部に記憶し、次のチャレンジコードを上記コントローラから受信したことに応じて、上記温度センサから出力された第２温度情報を取得し、
上記第２温度情報と上記第１温度情報とを対比して、その温度差が所定範囲内であることを条件として、次のチャレンジコードに対応する上記レスポンスコードを上記記憶部から読み出して上記コントローラへ送信する請求項１又は２に記載の印刷装置。
【請求項８】
上記演算部は、上記第２温度情報と上記第１温度情報とを対比して、その温度差が所定範囲内でないことを条件として、上記チャレンジコードに対応する上記レスポンスコードを上記記憶部から消去する請求項７に記載の印刷装置。
【請求項９】
上記装置本体は、報知部を更に有しており、
上記コントローラは、上記演算部から受信したレスポンスコードを上記装置メモリに記憶されたレスポンスコードと比較し、両者が同一性を有しないことを条件として、上記印刷材カートリッジを認証エラーと判定し、上記報知部による報知を実行する請求項１から８のいずれかに記載の印刷装置。
【請求項１０】
上記演算部及び上記記憶部は、ＩＣチップに搭載されている請求項１から９のいずれかに記載の印刷装置。
【請求項１１】
印刷材を用いて印刷を行う装置本体に対して交換可能に装着される印刷材カートリッジであって、
印刷材を貯留するカートリッジ本体と、
演算部と、
記憶部と、
インタフェースと、を有しており、
上記演算部は、
チャレンジコードを取得し、
取得した上記チャレンジコードから、上記記憶部に記憶された鍵を用いてレスポンスコードを生成して、当該レスポンスコードを取得した上記チャレンジコードに対応させて上記記憶部に記憶し、
上記チャレンジコードを取得したとき、当該チャレンジコードに対応する上記レスポンスコードが上記記憶部に記憶されているか判定し、
上記レスポンスコードが上記記憶部に記憶されていると判定したことに基づいて、上記レスポンスコードを上記記憶部から読み出し、読み出した上記レスポンスコードを上記インタフェースを通じて出力する印刷材カートリッジ。
【請求項１２】
上記演算部は、上記チャレンジコードに対応する上記レスポンスコードが上記記憶部に記憶されていないと判定したことに応じて、上記記憶部に記憶された鍵を用いてレスポンスコードを生成して、当該レスポンスコードを受信した上記チャレンジコードに対応させて上記記憶部に記憶させ、生成した上記レスポンスコードを上記インタフェースを介して出力する請求項１１に記載の印刷材カートリッジ。
【請求項１３】
上記演算部は、上記記憶部に記憶されている上記レスポンスコードに対応する上記チャレンジコードを受信した回数をカウントし、カウントされた回数が所定回数に到達したことに応じて、上記記憶部に記憶された鍵を用いてレスポンスコードを生成し、生成した上記レスポンスコードを上記インタフェースを介して出力する請求項１１又は１２に記載の印刷材カートリッジ。
【請求項１４】
上記演算部は、カウントされた上記回数が所定回数に到達したことに応じて、当該回数を初期値にリセットする請求項１３に記載の印刷材カートリッジ。
【請求項１５】
上記演算部は、上記チャレンジコードを受信した後、所定時間内に、次のチャレンジコードを受信したことを条件として、当該チャレンジコードに対応する上記レスポンスコードを上記記憶部から読み出して上記装置本体のコントローラへ送信する請求項１１又は１２に記載の印刷材カートリッジ。
【請求項１６】
上記演算部は、上記チャレンジコードを受信した後、上記所定時間を経過したことを条件として、上記チャレンジコードに対応する上記レスポンスコードを上記記憶部から消去する請求項１５に記載の印刷材カートリッジ。
【請求項１７】
温度センサを更に有しており、
上記演算部は、上記チャレンジコードを受信したことに応じて、上記温度センサから出力された第１温度情報を上記記憶部に記憶し、次のチャレンジコードを受信したことに応じて、上記温度センサから出力された第２温度情報を取得し、
上記第２温度情報と上記第１温度情報とを対比して、その温度差が所定範囲内であることを条件として、次のチャレンジコードに対応する上記レスポンスコードを上記記憶部から読み出して上記装置本体のコントローラへ送信する請求項１１又は１２に記載の印刷材カートリッジ。
【請求項１８】
上記演算部は、上記第２温度情報と上記第１温度情報とを対比して、その温度差が所定範囲内でないことを条件として、上記チャレンジコードに対応する上記レスポンスコードを上記記憶部から消去する請求項１７に記載の印刷材カートリッジ。
【請求項１９】
上記演算部及び上記記憶部は、ＩＣチップに搭載されている請求項１１から１８のいずれかに記載の印刷材カートリッジ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷材を用いて印刷を行う装置本体と、上記印刷材を有し、上記印刷材の消費に応じて上記装置本体に対して交換可能に装着されて上記印刷材を上記装置本体に供給する印刷材カートリッジと、を有する印刷装置に関する。
【背景技術】
【０００２】
従来、インクやトナーなどの印刷材を用いて記録用紙（被記録媒体）に画像を記録する印刷装置が広く知られている。印刷材は、装置本体に対して交換可能なカートリッジに充填されている。印刷装置においてカートリッジの印刷材を消費すると、ユーザは、使用済みのカートリッジと新しいカートリッジとを交換する。
【０００３】
カートリッジに充填された印刷材の組成を一定にしたり、製造時期などを管理することは、適切な印刷材を消費期限内に使用して、印刷品質を維持したり、印刷装置の不具合などを生じさせたりしないために重要である。そのため、認証情報を記憶するＩＣチップをカートリッジに設けて、装置本体に記憶された認証情報と照合することによって、装着されたカートリッジが適正なものであるかを判定する技術が公知である（特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−６２７８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
前述されたカートリッジの認証方法の一つとして、ＩＣチップにおいて、装置本体から取得したチャレンジコードに対して鍵を用いてレスポンスコードを生成し、生成したレスポンスコードを装置本体に送信するものがある。レスポンスコードを受信した装置本体は、送信したチャレンジコードに対応するレスポンスコードとの正誤を判定することによって、カートリッジを認証する。しかしながら、ＩＣチップにおいてレスポンスコードを生成するための演算に時間を要するという問題がある。例えば、１枚のシートが印刷される毎にカートリッジの認証を行うなど、複数回を繰り返してカートリッジの認証が実行される場合には、カートリッジのＩＣチップにおいて認証毎に演算処理を実行することとなり、その結果、カートリッジの認証時間が累積され、複数枚のシートの印刷スピードが長くなるという問題がある。したがって、カートリッジの認証時間は短縮化されることが望ましい。
【０００６】
本発明は、前述された事情に鑑みてなされたものであり、その目的は、印刷装置の装置本体に装着されるカートリッジの認証のセキュリティレベルを維持しつつ、カートリッジの認証時間の短縮を可能とする手段を提供することにある。
【課題を解決するための手段】
【０００７】
(1)  本発明は、印刷材を用いて印刷を行う装置本体と、上記印刷材を有し、上記印刷材の消費に応じて上記装置本体に対して交換可能に装着されて上記印刷材を上記装置本体に供給する印刷材カートリッジと、を有する印刷装置に関する。上記印刷材カートリッジは、演算部と、記憶部と、を有する。上記装置本体は、コントローラと、装置メモリと、を有する。上記コントローラは、上記装置メモリに記憶されたチャレンジコードを上記演算部へ送信し、上記演算部から受信したレスポンスコードが認証条件を満たすことを条件として、上記印刷材カートリッジを認証する。上記演算部は、上記コントローラから受信した上記チャレンジコードから、上記記憶部に記憶された鍵を用いてレスポンスコードを生成して、当該レスポンスコードを受信した上記チャレンジコードに対応させて上記記憶部に記憶させ、上記コントローラから上記チャレンジコードを受信したとき、当該チャレンジコードに対応する上記レスポンスコードが上記記憶部に記憶されているかを判定し、上記レスポンスコードが上記記憶部に記憶されていると判定したことに基づいて、上記レスポンスコードを上記記憶部から読み出し、読み出した上記レスポンスコードを上記コントローラへ送信する。
【０００８】
上記構成によれば、印刷材カートリッジの演算部は、一度受信したチャレンジコードに対応するレスポンスコードを記憶部に記憶し、その後に同じチャレンジコードを受信したときには、鍵を用いてレスポンスコードを生成することなく、記憶部に記憶されたレスポンスコードを読み出して送信するので、同じチャレンジコードを演算部が受信してからレスポンスコードを送信するまでに要する時間が、鍵を用いてレスポンスコードを生成するときと比較して短くなる。
【０００９】
(2)  好ましくは、上記演算部は、上記コントローラから受信した上記チャレンジコードに対応する上記レスポンスコードが上記記憶部に記憶されていないと判定したことに応じて、上記記憶部に記憶された鍵を用いてレスポンスコードを生成して、当該レスポンスコードを受信した上記チャレンジコードに対応させて上記記憶部に記憶させ、生成した上記レスポンスコードを上記コントローラに送信する。
【００１０】
上記構成によれば、未だ受信していないチャレンジコードを演算部が受信したときは、演算部は、鍵を用いてレスポンスコードを生成する。
【００１１】
(3)  好ましくは、上記演算部は、上記記憶部に記憶されている上記レスポンスコードに対応する上記チャレンジコードを受信した回数をカウントし、カウントされた回数が所定回数に到達したことに応じて、上記記憶部に記憶された鍵を用いてレスポンスコードを生成し、生成した上記レスポンスコードを上記コントローラに送信する。
【００１２】
例えば、記憶部に記憶されたレスポンスコードに損傷などが生じていれば、記憶部から読み出したレスポンスコードを演算部がコントローラに送信しても、コントローラは、レスポンスコードが同一性を有すると判定しないことがあり得る。そのような場合には、同じチャレンジコードを所定回数受信した後は、演算部が、記憶部に記憶された鍵を用いてレスポンスコードを生成し、生成したレスポンスコードをコントローラに送信するので、コントローラにおいて、レスポンスコードが同一性が有ると判定され得る。
【００１３】
(4)  好ましくは、上記演算部は、カウントされた上記回数が所定回数に到達したことに応じて、当該回数を初期値にリセットする。
【００１４】
上記構成によれば、カウントされた回数が所定回数に到達する毎に、演算部が、記憶部に記憶された鍵を用いてレスポンスコードを生成する。
【００１５】
(5)  好ましくは、上記演算部は、上記コントローラから上記チャレンジコードを受信した後、所定時間内に、次のチャレンジコードを上記コントローラから受信したことを条件として、当該チャレンジコードに対応する上記レスポンスコードを上記記憶部から読み出して上記コントローラへ送信する。
【００１６】
上記構成によれば、所定時間内に同じチャレンジコードを演算部が受信したときに、演算部がレスポンスコードを送信するまでの時間が短縮される。
【００１７】
(6)  好ましくは、上記演算部は、上記コントローラから上記チャレンジコードを受信した後、上記所定時間を経過したことを条件として、上記チャレンジコードに対応する上記レスポンスコードを上記記憶部から消去する。
【００１８】
上記構成によれば、所定時間が経過した後は、演算部は、鍵を用いてレスポンスコードを生成するので、カートリッジの認証のセキュリティが維持される。
【００１９】
(7)  好ましくは、上記印刷材カートリッジは、温度センサを更に有しており、上記演算部は、上記コントローラから上記チャレンジコードを受信したことに応じて、上記温度センサから出力された第１温度情報を上記記憶部に記憶し、次のチャレンジコードを上記コントローラから受信したことに応じて、上記温度センサから出力された第２温度情報を取得し、上記第２温度情報と上記第１温度情報とを対比して、その温度差が所定範囲内であることを条件として、次のチャレンジコードに対応する上記レスポンスコードを上記記憶部から読み出して上記コントローラへ送信する。
【００２０】
例えば、印刷装置がクロックやカウンタを有しない場合であっても、上記構成によれば、所定範囲内の温度差であるときに同じチャレンジコードを演算部が受信したときに、演算部がレスポンスコードを送信するまでの時間が短縮される。
【００２１】
(8)  好ましくは、上記演算部は、上記第２温度情報と上記第１温度情報とを対比して、その温度差が所定範囲内でないことを条件として、上記チャレンジコードに対応する上記レスポンスコードを上記記憶部から消去する。
【００２２】
上記構成によれば、温度差が所定範囲内でないときは、演算部は、鍵を用いてレスポンスコードを生成するので、カートリッジの認証のセキュリティが維持される。
【００２３】
(9)  好ましくは、上記装置本体は、報知部を更に有しており、上記コントローラは、上記演算部から受信したレスポンスコードを上記装置メモリに記憶されたレスポンスコードと比較し、両者が同一性を有しないことを条件として、上記印刷材カートリッジを認証エラーと判定し、上記報知部による報知を実行する。
【００２４】
上記構成によれば、カートリッジの認証エラーをユーザに報知することができる。
【００２５】
(10)  好ましくは、上記演算部及び上記記憶部は、ＩＣチップに搭載されている。
【００２６】
(11)  本発明は、印刷材を用いて印刷を行う装置本体に対して交換可能に装着される印刷材カートリッジであって、印刷材を貯留するカートリッジ本体と、演算部と、記憶部と、インタフェースと、を有しており、上記演算部は、チャレンジコードを取得し、取得した上記チャレンジコードから、上記記憶部に記憶された鍵を用いてレスポンスコードを生成して、当該レスポンスコードを取得した上記チャレンジコードに対応させて上記記憶部に記憶し、上記チャレンジコードを取得したとき、当該チャレンジコードに対応する上記レスポンスコードが上記記憶部に記憶されているか判定し、上記レスポンスコードが上記記憶部に記憶されていると判定したことに基づいて、上記レスポンスコードを上記記憶部から読み出し、読み出した上記レスポンスコードを上記インタフェースを通じて出力する印刷材カートリッジとして捉えられてもよい。
【発明の効果】
【００２７】
本発明によれば、印刷装置の装置本体に装着されるカートリッジの認証のセキュリティレベルを維持しつつ、カートリッジの認証時間が短縮される。
【図面の簡単な説明】
【００２８】
【図１】図１は、本発明の一実施形態としてのカートリッジ装着部１１０を備えたプリンタ１０の内部構造を模式的に示す模式断面図である。
【図２】図２は、本発明の実施形態のインクカートリッジ３０及びプリンタ１０のハードウェア構成を示す模式図である。
【図３】図３は、コントローラ７０におけるインクカートリッジの認証動作を示すフローチャートである。
【図４】図４は、ＩＣチップ８０におけるチャレンジ＆レスポンス動作を示すフローチャートである。
【図５】図５は、変形例１におけるチャレンジ＆レスポンス動作を示すフローチャートである。
【図６】図６は、変形例２におけるチャレンジ＆レスポンス動作を示すフローチャートである。
【発明を実施するための形態】
【００２９】
以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明される実施形態は本発明が具体化された一例にすぎず、本発明の要旨を変更しない範囲で実施形態を適宜変更できることは言うまでもない。
【００３０】
［プリンタ１０の概要］
図１に示されるように、プリンタ１０(印刷装置、装置本体の一例）は、インクジェット記録方式に基づいて、記録用紙に対してインク滴を選択的に吐出することにより画像を記録（印刷）するものである。プリンタ１０は、インク供給装置１００を備えている。インク供給装置１００には、カートリッジ装着部１１０が設けられている。カートリッジ装着部１１０には、インクカートリッジ３０（印刷材カートリッジの一例）が装着され得る。カートリッジ装着部１１０には、その一面が外部に開放された開口１１２が設けられている。インクカートリッジ３０は、開口１１２を通じてカートリッジ装着部１１０に挿入され、或いはカートリッジ装着部１１０から抜き出される。プリンタ１０及びインクカートリッジ３０によって、システムが構成されている。
【００３１】
プリンタ１０には、カバー１１１が取り付けられている。カバー１１１は、下端を軸として上端が外側（図１における左側）へ回動可能である。カバー１１１は、回動によって開口１１２を開閉する。カートリッジ装着部１１０に装着されたインクカートリッジ３０が交換される際には、カバー１１１が操作されて開口１１２が開かれる。これにより、開口１１２を通じて、カートリッジ装着部１１０にインクカートリッジが挿抜可能となる。プリンタ１０が動作するときには、カバー１１１が開口１１２を閉じている。
【００３２】
開口１１２の周辺には、閉位置のカバー１１１を検出するカバーセンサ１１３が位置する。カバーセンサ１１３は、例えばメカセンサや光センサである。カバー１１１が開口１１２を閉じた状態、すなわち閉位置にあるときに、カバー１１１の一部がカバーセンサ１１３によって検知される。カバー１１１を検知したカバーセンサ１１３は、ＬＯＷレベル信号をコントローラ７０へ出力する。カバー１１１が閉位置にないとき、すなわち、カバー１１１が開口１１２を閉じていない状態では、カバーセンサ１１３は、カバー１１１を検知せず、ＨＩＧＨレベル信号をコントローラ７０へ出力する。
【００３３】
カートリッジ装着部１１０は接点１１４（インタフェースの一例）を有する。接点１１４は、カートリッジ装着部１１０に装着されたインクカートリッジ３０のＩＣチップ８０の電極と電気的に接触する。接点１１４は、コントローラ７０と電気的に導通されている。接点１１４がＩＣチップ８０の電極と接触することによって、コントローラ７０は、ＩＣチップ８０の演算回路８１及びカートリッジメモリ８２と電気信号（識別情報、チャレンジコード、レスポンスコードなど）を送受信可能となる。
【００３４】
ＩＣチップ８０の演算回路８１（演算部の一例）は、秘密鍵Ｋ０（鍵の一例）を用いて乱数を暗号化する処理や、コントローラ７０との通信処理を行う。図２に示されるように、ＩＣチップ８０のカートリッジメモリ８２（記憶部の一例）は、所謂半導体集積回路である。カートリッジメモリ８２には、インクカートリッジ３０に関する情報、例えば、識別情報ＩＤ、ロット番号や製造年月日、インク色などの情報を示すデータが読み出し可能に格納されている。また、カートリッジメモリ８２には、インクカートリッジ３０の認証に使用される秘密鍵Ｋ０が格納されている。
【００３５】
図２に示されるように、プリンタ１０は、コントローラ７０を有する。コントローラ７０は、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＥＥＰＲＯＭ７１（装置メモリの一例）などを有する。ＣＰＵは、ユーザインタフェースなどを通じて入力された各種情報や、外部装置から受信した各種情報などに基づいて、各種プログラムをＲＯＭから読み出して実行する。ＲＯＭが記憶する各種プログラムは、例えば、乱数を発生するためのプログラムであったり、レスポンスコードＲ（ｋ）を比較するためのプログラムなどである。ＥＥＰＲＯＭ７１には、インクカートリッジ３０の認証に使用される秘密鍵Ｋ０などが格納されている。また、コントローラ７０は、プリンタ１０の操作パネル７２と電気的に接続されている。操作パネル７２（報知部の一例）は、ユーザからの入力を受け付けるためのボタンや、ユーザへ各種情報を報知するためのディスプレイなどを有する。
【００３６】
図１に示されるように、インクカートリッジ３０は内部にインク室３６を有する。インク室３６を画定する筐体がカートリッジ本体の一例である。インク室３６には、プリンタ１０で使用可能なインク（印刷材の一例）が貯留されている。インクカートリッジ３０がカートリッジ装着部１１０に装着された状態において、インク室３６と記録ヘッド２１とがインクチューブ２０によりインクが供給可能に接続される。記録ヘッド２１にはサブタンク２８が設けられている。サブタンク２８は、インクチューブ２０を通じて供給されるインクを一時的に貯留する。記録ヘッド２１は、インクジェット記録方式によって、サブタンク２８から供給されたインクをノズル２９から吐出する。
【００３７】
給紙トレイ１５から給紙ローラ２３によって搬送路２４へ送給された記録用紙は、搬送ローラ対２５によってプラテン２６上へ搬送される。記録ヘッド２１は、プラテン２６上を通過する記録用紙に対してインクを選択的に吐出する。これにより、画像が記録用紙に記録される。プラテン２６を通過した記録用紙は、排出ローラ対２２によって、搬送路２４の最下流側に設けられた排紙トレイ１６に排出される。
【００３８】
なお、本実施形態に係るプリンタ１０の概略構成は一例に過ぎず、例えば、記録用紙の給紙方式や搬送方式、搬送路の形状などは、公知のインクジェットプリンタにおける他の構成が採用されてもよいことは言うまでもない。
【００３９】
［インクカートリッジ３０の認証］
ユーザは、プリンタ１０を購入して最初に使用するときや、既に使用しているインクカートリッジ３０に貯留されているインクを消費したときに、インクカートリッジ３０をカートリッジ装着部１１０に装着する。
【００４０】
以下、図３及び図４を参照しつつ、カートリッジ装着部１１０に装着されたインクカートリッジ３０の認証方法が説明される。なお、以下の説明では、カートリッジ装着部１１０にインクカートリッジ３０が装着されたときにチャレンジ＆レスポンス動作が実行されるが、チャレンジ＆レスポンス動作は、画像記録のときや、メンテナンス動作のときなど、インクカートリッジ３０に貯留されたインクを用いた動作をプリンタ１０が実行する毎に実行されてもよい。
【００４１】
図３に示されるように、コントローラ７０は、カバーセンサ１１３が出力する信号を監視する（Ｓ１１）。例えば、ユーザは、インクカートリッジ３０をカートリッジ装着部１１０に装着すべく、カバー１１１を開いて開口１１２を露出させる。カバー１１１が開かれることにより、カバーセンサ１１３がＨＩＧＨレベル信号を出力し、コントローラ７０がＨＩＧＨレベル信号を受信する（Ｓ１１：Ｙｅｓ）。
【００４２】
ユーザは、開口１１２を通じてカートリッジ装着部１１０にインクカートリッジ３０を装着する。そして、インクカートリッジ３０を装着した後、ユーザは、カバー１１１を閉じて開口１１２を閉じる。カバー１１１が閉じられることにより、カバーセンサ１１３がＬＯＷレベル信号を出力し、コントローラ７０がＬＯＷレベル信号を受信する（Ｓ１２：Ｙｅｓ）。
【００４３】
コントローラ７０は、カバーセンサ１１３からＬＯＷレベル信号を受信した後、接点１１４を通じて、インクカートリッジ３０のＩＣチップ８０にアクセスする。コントローラ７０は、接点１１４を通じてＩＣチップ８０に電力を供給し、ＩＣチップ８０のカートリッジメモリ８２に格納された各種情報を読み出し可能な状態であれば、ＩＣチップ８０にアクセス可能と判定する（Ｓ１３：Ｙｅｓ）。例えば、コントローラ７０がリードコマンドをＩＣチップ８０に送信し、そのレスポンス信号をＩＣチップ８０から受信すれば、アクセス可能と判定する。コントローラ７０は、ＩＣチップ８０にアクセス可能と判定しないことを条件として（Ｓ１３：Ｎｏ）、インクカートリッジ３０に異常がある旨のエラー表示、例えば「インクカートリッジを認証できません。」との文言が記載された画面を操作パネル７２のディスプレイに表示する（Ｓ１４）。なお、ステップＳ１３は、省略されてもよい。また、コントローラ７０がＩＣチップ８０に送信したチャレンジコードＣ（ｋ）に対するレスポンスを受信したか否かによって、ＩＣチップ８０にアクセス可能と判定してもよい。
【００４４】
コントローラ７０は、ＩＣチップ８０にアクセス可能と判定すると、チャレンジ＆レスポンス動作を実行する。チャレンジ＆レスポンス動作は、インクカートリッジ３０のＩＣチップ８０を用いて、レスポンスコードＲ（ｋ）を生成して、ＥＥＰＲＯＭ７１に格納する動作である。レスポンスコードＲ（ｋ）は、例えば、コントローラ７０内の比較用ＩＣチップにより生成される。また、比較用ＩＣチップに代えて、ＩＰ（ＡＳＩＣ内の回路）によってレスポンスコードＲ（ｋ）が生成されてもよい。
【００４５】
コントローラ７０は、ＲＯＭに格納されたプログラムを用いて乱数を生成し、生成した乱数をチャレンジコードＣ（ｋ）としてＥＥＰＲＯＭ７１に記憶するとともに、秘密鍵Ｋ０を用いてレスポンスコードＲ（ｋ）を生成してＥＥＰＲＯＭ７１に記憶する。また、コントローラ７０は、生成した乱数をチャレンジコードＣ（ｋ）として、インクカートリッジ３０のＩＣチップ８０に送信する（Ｓ１５）。
【００４６】
チャレンジコードＣ（ｋ）を受信したＩＣチップ８０は、後述される処理によってレスポンスコードＲ（ｋ）を生成する。そして、ＩＣチップ８０は、生成したレスポンスコードＲ（ｋ）をコントローラ７０へ送信する。
【００４７】
コントローラ７０は、レスポンスコードＲ（ｋ）を受信すると（Ｓ１６）、受信したレスポンスコードＲ（ｋ）とＥＥＰＲＯＭ７１に格納したレスポンスコードＲ（ｋ）とが一致するかを比較する（Ｓ１７）。
【００４８】
コントローラ７０は、比較したレスポンスコードＲ（ｋ）が一致していないことを条件として（Ｓ１７：Ｎｏ）、インクカートリッジ３０を認証エラーと判定する（Ｓ１８）。コントローラ７０は、インクカートリッジ３０を認証エラーと判定したことに基づいて、インクカートリッジ３０を再度装着する旨の表示、例えば「インクカートリッジを装着しなおしてください。」との文言が記載された画面を操作パネル７２のディスプレイに表示する。
【００４９】
コントローラ７０は、比較したレスポンスコードＲ（ｋ）が一致していることを条件として（Ｓ１７：Ｙｅｓ）、カートリッジ装着部１１０に装着されたインクカートリッジ３０を認証する（Ｓ１９）。コントローラ７０は、インクカートリッジ３０を認証したことに基づいて、受け付けた画像記録動作やメンテナンス動作など、インクカートリッジ３０に貯留されているインクを用いたプリンタ１０の動作を実行する。
【００５０】
なお、レスポンスコードＲ（ｋ）の一致は、レスポンスコードＲ（ｋ）が同一性を有することを条件として判定されてもよい。例えば、レスポンスコードＲ（ｋ）が複数の「０」又は「１」が並んだコードであれば、当該コードの「０」と「１」とが反転したいわゆる反転コードであっても、レスポンスコードＲ（ｋ）が一致すると判定されてもよい。また、レスポンスコードＲ（ｋ）の一致は、期待値と一致するかによって判定されてもよい。例えば、チャレンジコードＣ（ｋ）としてコントローラ７０から「５」が送信されたとする。ＩＣチップ８０は、鍵「４」を用いて暗号計算として「５×４」を実行して「２０」をレスポンスコードＲ（ｋ）として生成して送信する。コントローラ８０は、受信したレスポンスコードＲ（ｋ）である「２０」に対して、鍵「４」を用いて、送信したチャレンジコードＣ（ｋ）に戻るかを確認する（２０／４＝５）。このようにして、コントローラ８０は、受信したレスポンスコードＲ（ｋ）が期待値と一致するかを判定してもよい。これら判定が、レスポンスコードＲ（ｋ）が認証条件に合致することの一例である。
【００５１】
［ＩＣチップ８０の認証処理］
図４に示されるように、ＩＣチップ８０において、演算回路８１は、コントローラ７０からチャレンジコードＣ（ｋ）を受信したか否かを監視する（Ｓ２１）。演算回路８１は、チャレンジコードＣ（ｋ）を受信したことに基づいて、カートリッジメモリ８２に受信したチャレンジコードＣ（ｋ）に対応するレスポンスコードＲ（ｋ）が記憶されているかを判定する（Ｓ２２）。
【００５２】
例えば、図２に示されるように、既に、ＩＣチップ８０は、チャレンジコードＣ（０）を受信しており、チャレンジコードＣ（０）に対して秘密鍵Ｋ０を用いて暗号計算を実行してレスポンスコードＲ（０）を生成し、チャレンジコードＣ（０）とレスポンスコードＲ（０）を関連づけてカートリッジメモリ８２に記憶しているとする。
【００５３】
今回、ＩＣチップ８０が受信したチャレンジコードＣ（ｋ）がＣ（０）であれば、演算回路８１は、チャレンジコードＣ（０）に対応するレスポンスコードＲ（０）があると判定する（Ｓ２２：Ｙｅｓ）。
【００５４】
演算回路８１は、チャレンジコードＣ（０）に対応するレスポンスコードＲ（０）があると判定したことに基づいて、カウント回数が所定回数未満であるかを判定する（Ｓ２３）。カウント回数は、演算回路８１が、チャレンジコードＣ（ｋ）の受信に応じてカートリッジメモリ８２から対応するレスポンスコードＲ（ｋ）を読み出した回数を示しており、ＥＥＰＲＯＭ７１に記憶されている。所定回数は、例えば２５６回など予め設定されてカートリッジメモリ８２に記憶されている。
【００５５】
演算回路８１は、カウント回数が所定回数未満であると判定したことに基づいて（Ｓ２３：Ｙｅｓ）、カートリッジメモリ８２に記憶されているカウント回数を１回カウントアップする（Ｓ２４）。そして、演算回路８１は、カートリッジメモリ８２から、チャレンジコードＣ（０）に対応するレスポンスコードＲ（０）を読み出す（Ｓ２５）。そして、演算回路８１は、読み出したレスポンスコードＲ（０）をコントローラ７０に送信する（Ｓ２６）。すなわち、演算回路８１は、レスポンス応答する。
【００５６】
例えば、コントローラ７０から送信されたチャレンジコードＣ（ｋ）がチャレンジコードＣ（１）であれば、ステップＳ２２において、演算回路８１は、チャレンジコードＣ（１）に対応するレスポンスコードＲ（１）がないと判定する（Ｓ２２：Ｎｏ）。
【００５７】
演算回路８１は、チャレンジコードＣ（１）に対応するレスポンスコードＲ（１）がないと判定したことに基づいて、カートリッジメモリ８２に記憶されている秘密鍵Ｋ０を用いてチャレンジコードＣ（１）を暗号化してレスポンスコードＲ（１）を生成する（Ｓ２７）。そして、生成したレスポンスコードＲ（１）をチャレンジコードＣ（１）に関連づけてカートリッジメモリ８２に記憶させる（Ｓ２８）。そして、演算回路８１は、生成したレスポンスコードＲ（１）をコントローラ７０に送信する（Ｓ２６）。
【００５８】
また、演算回路８１は、ステップＳ２３において、カウント回数が所定回数以上であると判定したことに基づいて（Ｓ２３：Ｎｏ）、カートリッジメモリ８２に記憶されているカウント回数をゼロ（初期値）にリセットする（Ｓ２９）。そして、前述と同様に、受信したチャレンジコードＣ（０）を秘密鍵Ｋ０を用いて暗号化してレスポンスコードＲ（０）を生成する（Ｓ２７）。そして、生成したレスポンスコードＲ（０）をチャレンジコードＣ（０）に関連づけてカートリッジメモリ８２に記憶させ（Ｓ２８）、また、生成したレスポンスコードＲ（０）をコントローラ７０に送信する（Ｓ２６）。
【００５９】
［実施形態の作用効果］
本実施形態によれば、ＩＣチップ８０の演算回路８１は、一度受信したチャレンジコードＣ（ｋ）に対応するレスポンスコードＲ（ｋ）をカートリッジメモリ８２に記憶する。演算回路８１は、その後に同じチャレンジコードＣ（ｋ）を受信したときには、秘密鍵Ｋ０を用いてレスポンスコードＲ（ｋ）を生成することなく、カートリッジメモリ８２に記憶されたレスポンスコードＲ（ｋ）を読み出して送信する。これにより、同じチャレンジコードＣ（ｋ）を演算回路８１が受信してからレスポンスコードＲ（ｋ）を送信するまでに要する時間が、演算回路８１が秘密鍵Ｋ０を用いてレスポンスコードＲ（ｋ）を生成する時間と比較して短くなる。
【００６０】
また、例えば、カートリッジメモリ８２に記憶されたレスポンスコードＲ（０）に損傷などが生じることが想定される。その場合、カートリッジメモリ８２から読み出したレスポンスコードＲ（０）を演算回路８１がコントローラ７０に送信しても、コントローラ７０は、受信したレスポンスコードＲ（０）が、ＥＥＰＲＯＭ７１に記憶されているレスポンスコードＲ（０）と同一性を有すると判定しないことがあり得る。そのような場合には、演算回路８１が同じチャレンジコードＣ（０）を所定回数以上受信した後は、演算回路８１が、秘密鍵Ｋ０を用いてレスポンスコードＲ（０）を生成し、生成したレスポンスコードＲ（０）をコントローラ７０に送信する。これにより、コントローラ７０は、受信したレスポンスコードＲ（０）がＥＥＰＲＯＭ７１に記憶されているレスポンスコードＲ（０）と同一性が有ると判定できる。つまり、インクカートリッジ３０を認証できる。
【００６１】
［変形例１］
前述された実施形態では、演算回路８１は、同じチャレンジコードＣ（０）を所定回数以上受信した後は（Ｓ２３：Ｎｏ）、秘密鍵Ｋ０を用いてレスポンスコードＲ（０）を生成し（Ｓ２７）、生成したレスポンスコードＲ（０）をコントローラ７０に送信する（Ｓ２６）。しかし、カウント回数に代えて、前回のレスポンスコードＲ（ｋ）の生成からの経過時間によって、カートリッジメモリ８２から対応する秘密鍵Ｋ０を用いてレスポンスコードＲ（ｋ）を生成するか（Ｓ２７）、受信したチャレンジコードＣ（ｋ）に対応するレスポンスコードＲ（ｋ）をカートリッジメモリ８２から読み出すかを演算回路８１が判定してもよい。すなわち、図４に示されるステップＳ２３、Ｓ２４、Ｓ２９に代えて、図５に示されるステップＳ３１，Ｓ３２，Ｓ３３を演算回路８１が実行してもよい。なお、図５において、図４と同じ符号が付されているその他のステップは、前述された実施形態と同様の処理なので、以下では説明が省略される。
【００６２】
図５に示されるように、演算回路８１は、チャレンジコードＣ（０）に対応するレスポンスコードＲ（０）があると判定したことに基づいて（Ｓ２２：Ｙｅｓ）、タイマーが示す経過時間が所定時間未満であるかを判定する（Ｓ３１）。タイマーは、演算回路８１が、チャレンジコードＣ（ｋ）の受信に応じて秘密鍵Ｋ０を用いてレスポンスコードＲ（ｋ）を生成したときに計測が開始される（Ｓ３３）。また、所定時間は、例えば６０分間など、予め設定されてカートリッジメモリ８２に記憶されている。
【００６３】
演算回路８１は、タイマーが示す経過時間が所定時間未満であると判定したことに基づいて（Ｓ３１：Ｙｅｓ）、カートリッジメモリ８２から、チャレンジコードＣ（０）に対応するレスポンスコードＲ（０）を読み出す（Ｓ２５）。
【００６４】
演算回路８１は、タイマーが示す経過時間が所定時間に到達したと判定したことに基づいて（Ｓ３１：Ｎｏ）、タイマーを停止してゼロにリセットする（Ｓ３２）。また、演算回路８１は、受信したチャレンジコードＣ（０）に関連づけたレスポンスコードＲ（０）をカートリッジメモリ８２から消去する（Ｓ３２）。そして、演算回路８１は、受信したチャレンジコードＣ（０）を秘密鍵Ｋ０を用いて暗号化してレスポンスコードＲ（０）を生成する（Ｓ２７）。そして、演算回路８１は、リセットしたタイマーをスタートさせる（Ｓ３３）。
【００６５】
前述した変形例１によれば、所定時間内に同じチャレンジコードＣ（ｋ）を演算回路８１が受信したときに、演算回路８１がレスポンスコードＲ（ｋ）を送信するまでの時間が短縮される。また、演算回路８１がレスポンスコードＲ（ｋ）を生成してから所定時間が経過した後は、演算回路８１は、カートリッジメモリ８２に記憶されたレスポンスコードＲ（ｋ）を用いることなく、秘密鍵Ｋ０を用いてレスポンスコードＲ（ｋ）を生成してコントローラ７０に送信するので、インクカートリッジ３０の認証のセキュリティが維持される。
【００６６】
［変形例２］
前述された実施形態では、演算回路８１は、同じチャレンジコードＣ（０）を所定回数以上受信した後は（Ｓ２３：Ｎｏ）、秘密鍵Ｋ０を用いてレスポンスコードＲ（０）を生成し（Ｓ２７）、生成したレスポンスコードＲ（０）をコントローラ７０に送信する（Ｓ２６）。しかし、カウント回数に代えて、前回のレスポンスコードＲ（ｋ）の生成時の温度と現在の温度との差によって、カートリッジメモリ８２から対応する秘密鍵Ｋ０を用いてレスポンスコードＲ（ｋ）を生成するか（Ｓ２７）、受信したチャレンジコードＣ（ｋ）に対応するレスポンスコードＲ（ｋ）をカートリッジメモリ８２から読み出すかを演算回路８１が判定してもよい。すなわち、演算回路８１は、図４に示されるステップＳ２３、Ｓ２４、Ｓ２９に代えて、図６に示されるステップＳ４１，Ｓ４２，Ｓ４３を実行してもよい。この場合、プリンタ１０又はインクカートリッジ３０には温度センサが設けられており、演算回路８１は、温度センサから温度情報を受信可能である。なお、図６において、図４と同じ符号が付されているその他のステップは、前述された実施形態と同様の処理なので、以下では説明が省略される。
【００６７】
図６に示されるように、演算回路８１は、チャレンジコードＣ（０）に対応するレスポンスコードＲ（０）があると判定したことに基づいて（Ｓ２２：Ｙｅｓ）、カートリッジメモリ８２に記憶された温度情報Ｔ０（第１温度情報の一例）を読み出し、また、温度センサから温度情報Ｔ１（第２温度情報の一例）を取得する（Ｓ４１）。そして、演算回路８１は、温度情報Ｔ０と温度情報Ｔ１とを比較して、その温度差が所定範囲内であるかを判定する（Ｓ４２）。所定範囲は、例えば±５℃など予め設定されてカートリッジメモリ８２に記憶されている。
【００６８】
演算回路８１は、温度情報Ｔ０と温度情報Ｔ１との温度差が所定範囲内であると判定したことに基づいて（Ｓ４２：Ｙｅｓ）、カートリッジメモリ８２から、チャレンジコードＣ（０）に対応するレスポンスコードＲ（０）を読み出す（Ｓ２５）。
【００６９】
演算回路８１は、温度情報Ｔ０と温度情報Ｔ１との温度差が所定範囲内でないと判定したことに基づいて（Ｓ４２：Ｎｏ）、カートリッジメモリ８２に記憶されている温度情報Ｔ０を温度センサから取得した温度情報Ｔ１に更新する（Ｓ４３）。また、演算回路８１は、受信したチャレンジコードＣ（０）に関連づけたレスポンスコードＲ（０）をカートリッジメモリ８２から消去する（Ｓ４３）。そして、受信したチャレンジコードＣ（０）を秘密鍵Ｋ０を用いて暗号化してレスポンスコードＲ（０）を生成する（Ｓ２７）。
【００７０】
前述した変形例２によれば、プリンタ１０又はインクカートリッジ３０がクロックやカウンタを有しない場合であっても、温度情報Ｔ０と温度情報Ｔ１との温度差が所定範囲内であるときに、同じチャレンジコードＣ（ｋ）を演算回路８１が受信したときに、演算回路８１がレスポンスコードＲ（ｋ）を送信するまでの時間が短縮される。また、温度情報Ｔ０と温度情報Ｔ１との温度差が所定範囲内でないときは、演算回路８１は、秘密鍵Ｋ０を用いてレスポンスコードＲ（ｋ）を生成するので、インクカートリッジ３０の認証のセキュリティが維持される。
【００７１】
［その他の変形例］
前述された実施形態及び各変形例では、チャレンジ＆レスポンス動作は、カバー１１１の開閉をカバーセンサ１１３により検知して、インクカートリッジ３０が交換されたタイミングで行われるが、インクカートリッジ３０は必ずしも交換される必要はない。例えば、カートリッジ装着部１１０から取り出されたインクカートリッジ３０が、再びカートリッジ装着部１１０に装着された状態で、チャレンジ＆レスポンス動作が実行されてもよい。また、カバー１１１の開閉を伴わないタイミング、例えば、画像記録の開始や終了のタイミングにおいて、チャレンジ＆レスポンス動作が実行されてもよい。
【００７２】
また、前述された実施形態及び各変形例において、コントローラ７０がインクカートリッジ３０を認証したとして実行される処理は、認証フラグの更新や記憶の他、画像記録の開始やパージの開始などであってもよい。また、チャレンジ＆レスポンス動作において使用される鍵は、秘密鍵ではなく公開鍵であってもよい。
【００７３】
また、前述された実施形態及び各変形例において、演算回路８１及びカートリッジメモリ８２は、ＩＣチップ８０に搭載されているが、インクカートリッジ３０が備える演算部及び記憶部は、他の構成によって実現されてもよい。例えば、演算回路８１に代えて、ＣＰＵがインクカートリッジに搭載され、ＣＰＵが所定のプログラムを実行することによって、インクカートリッジ３０の認証処理が実行されてもよい。
【００７４】
また、ＩＣチップ８０は、接点１１４と接触して導通されるが、これにかえて、ＮＦＣ（near field communication）やＲＦＩＤ（radio frequency identification）のような電波を用いて非接触でデータを読み書きする情報媒体とインターフェースとが採用されてもよい。
【００７５】
また、前述された実施形態及び変形例では、インクジェット方式のプリンタ１０に対応して、印刷材としてインクがインクカートリッジ３０に収納される態様が示されているが、印刷材としてはインクに限られず、例えば、電子写真式の画像形成装置に対応する印刷材としてのトナーを収納したカートリッジや、印刷材としてインクリボンを収容したカートリッジなどにも本発明は適用され得る。
【符号の説明】
【００７６】
１０・・・プリンタ（装置本体、印刷装置）
３０・・・インクカートリッジ（印刷材カートリッジ）
７０・・・コントローラ
７１・・・ＥＥＰＲＯＭ（装置メモリ）
８０・・・ＩＣチップ
８１・・・演算回路（演算部）
８２・・・カートリッジメモリ（記憶部）
１１４・・・接点（インタフェース）
【図１】
2019171656.tif 000003
【図２】
2019171656.tif 000004
【図３】
2019171656.tif 000005
【図４】
2019171656.tif 000006
【図５】
2019171656.tif 000007
【図６】
2019171656.tif 000008