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