(57)【要約】【課題】認証精度を高くすることができる技術を提供する。【解決手段】ｎ個の第１識別子とｍ個の第２識別子との組み合わせで特定されるｎ×ｍ個の元鍵のうちの、第２識別子が第２の値であるｎ個の元鍵と認証識別子とに基づき生成されたｎ個の認証鍵を保持する被認証装置を認証する認証装置は、第１識別子が第１の値であるｍ個の元鍵を保持し、被認証装置に第１の値及びチャレンジデータを通知する手段と、被認証装置から第２の値を取得し、第１識別子が第１の値であり、かつ、第２識別子が第２の値である元鍵を選択し、選択した元鍵と認証識別子とに基づき認証鍵を生成し、生成した認証鍵とチャレンジデータとに基づき検証データを生成する手段と、被認証装置に通知したチャレンジデータの応答として被認証装置から取得したレスポンスデータと検証データとを比較することで、被認証装置を認証する手段と、を備えている。【選択図】図３
2020072348.tif 000002
【特許請求の範囲】
【請求項１】
ｎ個（ｎは２以上の整数）の異なる値の第１識別子と、ｍ個（ｍは２以上の整数）の異なる値の第２識別子と、の組み合わせで特定されるｎ×ｍ個の元鍵のうちの、前記第１識別子の値が同じ第１の値である前記ｍ個の元鍵を保持する第１装置と、
認証識別子と、前記ｎ×ｍ個の元鍵のうちの、前記第２識別子の値が同じ第２の値である前記ｎ個の元鍵それぞれと前記認証識別子とに基づき生成された前記ｎ個の認証鍵と、を保持する第２装置と、
が実行する認証方法であって、
前記第１装置が、前記第２装置から取得した前記第２の値に基づき、前記第１識別子が前記第１の値であり、かつ、前記第２識別子が前記第２の値である元鍵を前記ｍ個の元鍵から選択し、選択した前記元鍵と前記第２装置から取得した前記認証識別子とに基づき認証鍵を生成することと、
前記第２装置が、前記第１装置から取得した前記第１の値に基づき、前記第１識別子が前記第１の値であり、かつ、前記第２識別子が前記第２の値である元鍵から生成された認証鍵を前記ｎ個の認証鍵から選択することと、
前記第１装置及び前記第２装置の内の一方の被認証装置が、前記第１装置及び前記第２装置の内の他方の認証装置から取得したチャレンジデータと前記被認証装置が生成又は選択した前記認証鍵とに基づきレスポンスデータを生成し、生成した前記レスポンスデータを前記認証装置に通知することと、
前記認証装置が、前記チャレンジデータと前記認証装置が生成又は選択した前記認証鍵とに基づき検証データを生成することと、
前記認証装置が、前記検証データと前記レスポンスデータとを比較することで前記被認証装置を認証することと、
を含むことを特徴とする認証方法。
【請求項２】
前記第１装置が前記認証装置であり、前記第２装置が前記被認証装置であることを特徴とする請求項１に記載の認証方法。
【請求項３】
前記第２装置が前記認証装置であり、前記第１装置が前記被認証装置であることを特徴とする請求項１に記載の認証方法。
【請求項４】
前記認証装置が前記チャレンジデータをランダムに生成することをさらに含むことを特徴とする請求項１から３のいずれか１項に記載の認証方法。
【請求項５】
前記認証鍵は、前記元鍵と前記認証識別子とを一方向性関数の入力として生成されることを特徴とする請求項１から４のいずれか１項に記載の認証方法。
【請求項６】
前記認証鍵は、前記認証識別子の前記元鍵による暗号化データ、又は、前記認証識別子と前記元鍵とを連結した値の暗号化ハッシュ値であることを特徴とする請求項１から５のいずれか１項に記載の認証方法。
【請求項７】
前記レスポンスデータと前記検証データは、同じアルゴリズムにより生成されることを特徴とする請求項１から６のいずれか１項に記載の認証方法。
【請求項８】
前記レスポンスデータは、前記チャレンジデータと前記認証鍵とを一方向性関数の入力として生成されることを特徴とする請求項７に記載の認証方法。
【請求項９】
前記レスポンスデータは、前記チャレンジデータの前記認証鍵による暗号化データ、又は、前記チャレンジデータと前記認証鍵とを連結した値の暗号化ハッシュ値であることを特徴とする請求項７又は８に記載の認証方法。
【請求項１０】
前記第１装置は、前記ｍ個の元鍵それぞれに対応する前記ｍ個の検証値を保持し、
前記第２装置は、前記ｎ個の認証鍵の生成に使用された前記ｎ個の元鍵それぞれに対応する前記ｎ個の検証値を保持し、
前記第１装置が保持する前記ｍ個の検証値のうち、前記第１識別子が前記第１の値であり、かつ、前記第２識別子が前記第２の値である元鍵に対応する検証値と、前記第２装置が保持する前記ｎ個の検証値のうち、前記第１識別子が前記第１の値であり、かつ、前記第２識別子が前記第２の値である元鍵に対応する検証値とが一致するか否かを、前記第１装置又は前記第２装置が判定することをさらに含むことを特徴とする請求項１から９のいずれか１項に記載の認証方法。
【請求項１１】
ｎ個（ｎは２以上の整数）の異なる値の第１識別子と、ｍ個（ｍは２以上の整数）の異なる値の第２識別子と、の組み合わせで特定されるｎ×ｍ個の元鍵のうちの、前記第１識別子の値が同じ第１の値である前記ｍ個の元鍵を保持する被認証装置を認証する認証装置であって、
認証識別子と、前記ｎ×ｍ個の元鍵のうちの、前記第２識別子の値が同じ第２の値である前記ｎ個の元鍵それぞれと前記認証識別子とに基づき生成された前記ｎ個の認証鍵と、を保持する保持手段と、
前記被認証装置に、前記認証識別子、前記第２の値、及び、チャレンジデータを通知する通知手段と、
前記被認証装置から前記第１の値を取得し、前記第１識別子が前記第１の値であり、かつ、前記第２識別子が前記第２の値である元鍵から生成された認証鍵を前記ｎ個の認証鍵から選択する選択手段と、
前記選択手段が選択した前記認証鍵と前記チャレンジデータとに基づき検証データを生成する生成手段と、
前記被認証装置に通知した前記チャレンジデータの応答として前記被認証装置から取得したレスポンスデータと前記検証データとを比較することで、前記被認証装置を認証する認証手段と、
を備えていることを特徴とする認証装置。
【請求項１２】
前記レスポンスデータは、前記被認証装置が保持する前記ｍ個の元鍵のうち、前記第１識別子が前記第１の値であり、かつ、前記第２識別子が前記第２の値である元鍵と前記認証識別子とに基づき生成された認証鍵と、前記チャレンジデータと、に基づき生成されたデータであることを特徴とする請求項１１に記載の認証装置。
【請求項１３】
前記保持手段は、前記ｎ個の認証鍵の生成に使用された前記ｎ個の元鍵それぞれに対応する前記ｎ個の検証値を保持し、
前記認証装置は、
前記ｎ個の検証値のうち、前記第１識別子が前記第１の値であり、かつ、前記第２識別子が前記第２の値である元鍵に対応する検証値と、前記被認証装置に通知した前記第２の値の応答として前記被認証装置から取得した検証値が一致するか否かを判定する判定手段をさらに備えていることを特徴とする請求項１１又は１２に記載の認証装置。
【請求項１４】
ｎ個（ｎは２以上の整数）の異なる値の第１識別子と、ｍ個（ｍは２以上の整数）の異なる値の第２識別子と、の組み合わせで特定されるｎ×ｍ個の元鍵のうちの、前記第２識別子の値が同じ第２の値である前記ｎ個の元鍵それぞれと認証識別子とに基づき生成された前記ｎ個の認証鍵と、前記認証識別子と、を保持する被認証装置を認証する認証装置であって、
前記ｎ×ｍ個の元鍵のうちの、前記第１識別子の値が同じ第１の値である前記ｍ個の元鍵を保持する保持手段と、
前記被認証装置に、前記第１の値、及び、チャレンジデータを通知する通知手段と、
前記被認証装置から前記第２の値を取得し、前記第１識別子が前記第１の値であり、かつ、前記第２識別子が前記第２の値である元鍵を選択する選択手段と、
前記選択手段が選択した前記元鍵と前記被認証装置から取得した前記認証識別子とに基づき認証鍵を生成する第１生成手段と、
前記第１生成手段が生成した前記認証鍵と前記チャレンジデータとに基づき検証データを生成する第２生成手段と、
前記被認証装置に通知した前記チャレンジデータの応答として前記被認証装置から取得したレスポンスデータと前記検証データとを比較することで、前記被認証装置を認証する認証手段と、
を備えていることを特徴とする認証装置。
【請求項１５】
前記レスポンスデータは、前記被認証装置が保持する前記ｎ個の認証鍵のうち、前記第１識別子が前記第１の値であり、かつ、前記第２識別子が前記第２の値である元鍵から生成された認証鍵と、前記チャレンジデータと、に基づき生成されたデータであることを特徴とする請求項１３に記載の認証装置。
【請求項１６】
前記保持手段は、前記ｍ個の元鍵それぞれに対応する前記ｍ個の検証値を保持し、
前記認証装置は、前記ｍ個の検証値のうち、前記第１識別子が前記第１の値であり、かつ、前記第２識別子が前記第２の値である元鍵に対応する検証値と、前記被認証装置に通知した前記第１の値の応答として前記被認証装置から取得した検証値が一致するか否かを判定する判定手段をさらに備えていることを特徴とする請求項１４又は１５に記載の認証装置。
【請求項１７】
前記チャレンジデータをランダムに生成する手段をさらに備えていることを特徴とする請求項１１から１６のいずれか１項に記載の認証装置。
【請求項１８】
前記認証鍵は、前記元鍵と前記認証識別子とを一方向性関数の入力として生成されることを特徴とする請求項１１から１７のいずれか１項に記載の認証装置。
【請求項１９】
前記認証鍵は、前記認証識別子の前記元鍵による暗号化データ、又は、前記認証識別子と前記元鍵とを連結した値の暗号化ハッシュ値であることを特徴とする請求項１１から１８のいずれか１項に記載の認証装置。
【請求項２０】
前記レスポンスデータと前記検証データは、同じアルゴリズムにより生成されることを特徴とする請求項１１から１９のいずれか１項に記載の認証装置。
【請求項２１】
前記レスポンスデータは、前記チャレンジデータと前記認証鍵とを一方向性関数の入力として生成されることを特徴とする請求項１９に記載の認証装置。
【請求項２２】
前記レスポンスデータは、前記チャレンジデータの前記認証鍵による暗号化データ、又は、前記チャレンジデータと前記認証鍵とを連結した値の暗号化ハッシュ値であることを特徴とする請求項２０又は２１に記載の認証装置。
【請求項２３】
請求項１１から２２のいずれか１項に記載の認証装置を有することを特徴とする画像形成装置。
【請求項２４】
前記被認証装置は、前記画像形成装置から着脱可能なユニットであることを特徴とする請求項２３に記載の画像形成装置。
【請求項２５】
ｎ個（ｎは２以上の整数）の異なる値の第１識別子と、ｍ個（ｍは２以上の整数）の異なる値の第２識別子と、の組み合わせで特定されるｎ×ｍ個の元鍵のうちの、前記第２識別子の値が同じ第２の値である前記ｎ個の元鍵それぞれと認証識別子とに基づき生成された前記ｎ個の認証鍵と、前記認証識別子と、を保持する認証装置により認証される被認証装置であって、
前記ｎ×ｍ個の元鍵のうちの、前記第１識別子の値が同じ第１の値である前記ｍ個の元鍵を保持する保持手段と、
前記認証装置から前記第２の値を取得し、前記第１識別子が前記第１の値であり、かつ、前記第２識別子が前記第２の値である元鍵を選択する選択手段と、
前記選択手段が選択した前記元鍵と前記認証装置から取得した前記認証識別子とに基づき認証鍵を生成する第１生成手段と、
前記第１生成手段が生成した前記認証鍵と前記認証装置から取得したチャレンジデータとに基づきレスポンスデータを生成する第２生成手段と、
前記認証装置に、前記第１の値、及び、前記レスポンスデータを通知する通知手段と、
を備えていることを特徴とする被認証装置。
【請求項２６】
前記保持手段は、前記ｍ個の元鍵それぞれに対応する前記ｍ個の検証値を保持し、
前記被認証装置は、前記ｍ個の検証値のうち、前記第１識別子が前記第１の値であり、かつ、前記第２識別子が前記第２の値である元鍵に対応する検証値と、前記認証装置に通知した前記第１の値の応答として前記認証装置から取得した検証値が一致するか否かを判定する判定手段をさらに備えていることを特徴とする請求項２５に記載の被認証装置。
【請求項２７】
ｎ個（ｎは２以上の整数）の異なる値の第１識別子と、ｍ個（ｍは２以上の整数）の異なる値の第２識別子と、の組み合わせで特定されるｎ×ｍ個の元鍵のうちの、前記第１識別子の値が同じ第１の値である前記ｍ個の元鍵を保持する認証装置により認証される被認証装置であって、
認証識別子と、前記ｎ×ｍ個の元鍵のうちの、前記第２識別子の値が同じ第２の値である前記ｎ個の元鍵それぞれと前記認証識別子とに基づき生成された前記ｎ個の認証鍵と、を保持する保持手段と、
前記認証装置から前記第１の値を取得し、前記第１識別子が前記第１の値であり、かつ、前記第２識別子が前記第２の値である元鍵から生成された認証鍵を前記ｎ個の認証鍵から選択する選択手段と、
前記選択手段が選択した前記認証鍵と前記認証装置から取得したチャレンジデータとに基づきレスポンスデータを生成する生成手段と、
前記認証装置に、前記認証識別子、前記第２の値、及び、前記レスポンスデータを通知する通知手段と、
を備えていることを特徴とする被認証装置。
【請求項２８】
前記保持手段は、前記ｎ個の認証鍵の生成に使用された前記ｎ個の元鍵それぞれに対応する前記ｎ個の検証値を保持し、
前記被認証装置は、前記ｎ個の検証値のうち、前記第１識別子が前記第１の値であり、かつ、前記第２識別子が前記第２の値である元鍵に対応する検証値と、前記認証装置に通知した前記第２の値の応答として前記認証装置から取得した検証値が一致するか否かを判定する判定手段をさらに備えていることを特徴とする請求項２７に記載の被認証装置。
【請求項２９】
前記被認証装置は、画像形成装置から着脱可能なユニットであることを特徴とする請求項２５から２８のいずれか１項に記載の被認証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認証装置による被認証装置の認証技術に関する。
【背景技術】
【０００２】
画像形成装置は、トナー等の消耗品を使用して画像形成を行う。また、画像形成装置により形成される画像の品質を維持するには、長期間利用した交換部品を交換する必要がある。さらに、画像形成装置は、ユーザがその利用を選択できるオプション装置を有する。ここで、消耗品、交換部品、オプション装置が正規品ではないと、画像形成装置が正常に動作しなくなり得る。したがって、画像形成装置に実装・装着される消耗品、交換部品、オプション装置（以下、纏めてユニットと表記する。）が正規品かどうかを判定することが重要になる。特許文献１は、画像形成装置に装着されるユニットを認証することで、当該ユニットが正規品か否かを検証する構成を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１４３４３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
認証装置である画像形成装置に装着された、被認証装置であるユニットが正規品かどうかを判別するために、チャレンジレスポンス認証法を利用することができる。具体的には、認証装置は、乱数データ（チャレンジデータ）を生成して被認証装置に送信する。被認証装置は、チャレンジデータを共通鍵で暗号化してレスポンスデータを認証装置に返送する。認証装置は、受信したレスポンスデータと、共通鍵でチャレンジデータを暗号化して得られた検証データとが一致しているか否かにより被認証装置を認証する。チャレンジレスポンス認証法は、認証装置と被認証装置が保持する共通鍵が同じであることを前提としているので、共通鍵を流出させない様にすることが重要になる。このため、認証装置及び被認証装置にセキュリティＬＳＩのようなセキュリティ性の高い耐タンパチップを設け、耐タンパチップに共通鍵を格納している。しかしながら、認証装置及び被認証装置のいずれかにおいて共通鍵が解析されると、認証装置による認証を成功させることができるユニットを生成可能になる。
【０００５】
本発明は、認証精度を高くすることができる技術を提供するものである。
【課題を解決するための手段】
【０００６】
本発明の一態様によると、ｎ個（ｎは２以上の整数）の異なる値の第１識別子と、ｍ個（ｍは２以上の整数）の異なる値の第２識別子と、の組み合わせで特定されるｎ×ｍ個の元鍵のうちの、前記第１識別子の値が同じ第１の値である前記ｍ個の元鍵を保持する第１装置と、認証識別子と、前記ｎ×ｍ個の元鍵のうちの、前記第２識別子の値が同じ第２の値である前記ｎ個の元鍵それぞれと前記認証識別子とに基づき生成された前記ｎ個の認証鍵と、を保持する第２装置と、が実行する認証方法は、前記第１装置が、前記第２装置から取得した前記第２の値に基づき、前記第１識別子が前記第１の値であり、かつ、前記第２識別子が前記第２の値である元鍵を前記ｍ個の元鍵から選択し、選択した前記元鍵と前記第２装置から取得した前記認証識別子とに基づき認証鍵を生成することと、前記第２装置が、前記第１装置から取得した前記第１の値に基づき、前記第１識別子が前記第１の値であり、かつ、前記第２識別子が前記第２の値である元鍵から生成された認証鍵を前記ｎ個の認証鍵から選択することと、前記第１装置及び前記第２装置の内の一方の被認証装置が、前記第１装置及び前記第２装置の内の他方の認証装置から取得したチャレンジデータと前記被認証装置が生成又は選択した前記認証鍵とに基づきレスポンスデータを生成し、生成した前記レスポンスデータを前記認証装置に通知することと、前記認証装置が、前記チャレンジデータと前記認証装置が生成又は選択した前記認証鍵とに基づき検証データを生成することと、前記認証装置が、前記検証データと前記レスポンスデータとを比較することで前記被認証装置を認証することと、を含むことを特徴とする。
【発明の効果】
【０００７】
本発明によると、認証精度を高くすることができる。
【図面の簡単な説明】
【０００８】
【図１】一実施形態による画像形成装置の構成図。
【図２】一実施形態による認証チップ及び被認証チップの構成図。
【図３】一実施形態による元鍵テーブル及び認証鍵テーブルを示す図。
【図４】一実施形態による元鍵マトリクスを示す図。
【図５】一実施形態による元鍵テーブル及び認証鍵テーブルの生成方法の説明図。
【図６】一実施形態による認証処理のシーケンス図。
【図７】一実施形態による元鍵テーブル及び認証鍵テーブルを示す図。
【図８】一実施形態による認証処理のシーケンス図。
【発明を実施するための形態】
【０００９】
以下、本発明の例示的な実施形態について図面を参照して説明する。なお、以下の実施形態は例示であり、本発明を実施形態の内容に限定するものではない。また、以下の各図においては、実施形態の説明に必要ではない構成要素については図から省略する。
【００１０】
＜第一実施形態＞
図１は、本実施形態による認証システムを利用する画像形成装置１００を示している。画像形成装置１００は、例えば、プリンタ、複写機、複合機であり、電子写真プロセスに従ってシートに画像を形成する。プロセスカートリッジ１０２は、画像形成装置１００の本体から着脱可能なユニット（交換部品）である。プロセスカートリッジ１０２は、例えば、感光体と、当該感光体にトナー像を形成するために必要な部材を有する。プロセスカートリッジ１０２は、エンジンコントローラ１０１の制御の下、シートに画像を形成する処理の一部を行う。プロセスカートリッジ１０２は、被認証チップ１０３を有している。被認証チップ１０３は、耐タンパチップである。
【００１１】
エンジンコントローラ１０１は、制御装置１０５と、認証チップ１０６と、通信回路１０４と、装着センサ２０９と、を有する。制御装置１０５は、画像形成装置１００の全体を統括的に制御するコントローラである。認証チップ１０６は、耐タンパチップであり、被認証チップ１０３を認証する。通信回路１０４は、プロセスカートリッジ１０２と通信する。装着センサ２０９は、プロセスカートリッジ１０２が画像形成装置１００の本体に装着されたことを検知する。装着センサ２０９が、プロセスカートリッジ１０２の装着を検知すると、制御装置１０５は、認証処理を開始する。認証処理において、認証チップ１０６は、チャレンジデータを生成して制御装置１０５に送信する。制御装置１０５は、認証チップ１０６により生成されたチャレンジデータを被認証チップ１０３に送信する。制御装置１０５は、チャレンジデータの応答として被認証チップ１０３からレスポンスデータを受信すると、レスポンスデータを認証チップ１０６に転送する。認証チップ１０６は、受信したレスポンスデータに基づき被認証チップ１０３の認証を行い、認証結果を制御装置１０５に送信する。
【００１２】
図２は、認証チップ１０６及び被認証チップ１０３の構成図である。認証チップ１０６の入出力回路２０１ａは、制御装置１０５とマイクロコンピュータ（以下、マイコンと表記する。）２０２ａとの間で送受信されるデータを中継する。マイコン２０２ａは、制御装置１０５からのコマンドに従って必要な処理を実行する。その際、マイコン２０２ａは、処理に必要なデータを揮発性メモリ２０３ａに格納する。不揮発性メモリ２０５ａは、認証チップ１０６の制御プログラムや、認証鍵テーブル２０８を格納している。乱数生成器２１０は、マイコン２０２ａの指示に従い、乱数であるチャレンジデータを生成する。暗号回路２０６ａは、マイコン２０２ａの指示に従い、認証処理のための計算を実行する。比較器２０４は、入力された二つのデータが一致するか否かを判定する。
【００１３】
プロセスカートリッジ１０２が画像形成装置１００の本体に装着されると、被認証チップ１０３の入出力回路２０１ｂと、エンジンコントローラ１０１の通信回路１０４は、電気的に接続される様に画像形成装置１００は構成されている。入出力回路２０１ｂは、制御装置１０５とマイコン２０２ｂとの間で送受信されるデータを中継する。マイコン２０２ｂは、制御装置１０５からのコマンドに従って必要な処理を実行する。その際、マイコン２０２ｂは、処理に必要なデータを揮発性メモリ２０３ｂに格納する。不揮発性メモリ２０５ｂは、被認証チップ１０３の制御プログラムや、元鍵テーブル２０７を格納している。暗号回路２０６ｂは、マイコン２０２ｂの指令に従い、認証処理のための計算を実行する。なお、暗号回路２０６ａと暗号回路２０６ｂは同じアルゴリズムに従い暗号計算を実行する。
【００１４】
図３（Ａ）に示す様に、本実施形態では、ｎ個（ｎは２以上の整数）の元鍵テーブル２０７−１〜２０７−ｎを予め作成する。そして、元鍵テーブル２０７−１〜２０７−ｎのうちの１つを、元鍵テーブル２０７として被認証チップ１０３の不揮発性メモリ２０５ｂに格納する。また、図３（Ｂ）に示す様に、本実施形態では、ｍ×ｚ個（ｍは２以上の整数、かつ、ｚは１以上の整数）の認証鍵テーブル２０８−１−１〜２０８−ｍ−ｚを予め作成する。そして、認証鍵テーブル２０８−１−１〜２０８−ｍ−ｚのうちの１つを、認証鍵テーブル２０８として認証チップ１０６の不揮発性メモリ２０５ａに格納する。なお、各元鍵テーブルには、第１識別子（元鍵テーブルＩＤ）を付与する。本実施形態では、元鍵テーブル２０７−ｉ（ｉは１〜ｎまでの整数）の元鍵テーブルＩＤをｉとする。また、各認証鍵テーブルには、第２識別子及び認証識別子（認証鍵テーブルＩＤ及び認証鍵ＩＤ)の２つの識別子を付与する。本実施形態では、認証鍵テーブル２０８−ｊ−ｋ（ｊは１からｍまでの整数で、ｋは１からｚまでの整数）の認証鍵テーブルＩＤをｊとし、認証鍵ＩＤをｋとする。
【００１５】
図３（Ａ）に示す様に、各元鍵テーブルは、認証鍵テーブルＩＤの個数と同じｍ個の元鍵を有し、各元鍵は、認証鍵テーブルＩＤに関連付けられる。以下では、元鍵テーブル２０７−ｉ（元鍵テーブルＩＤ＝ｉ）のｍ個の元鍵の内、認証鍵テーブルＩＤ＝ｊに関連付けられている元鍵を元鍵（ｉ，ｊ）と表記する。また、図３（Ｂ）に示す様に、各認証鍵テーブルは、元鍵テーブル２０７の個数と同じｎ個の認証鍵を有し、各認証鍵は、元鍵テーブルＩＤに関連付けられる。ここで、各認証鍵は、後述する様に、元鍵と認証鍵ＩＤから生成される。以下では、認証鍵テーブル２０８−ｊ−ｋ（認証鍵テーブルＩＤ＝ｊ、認証鍵ＩＤ＝ｋ）のｎ個の認証鍵の内、元鍵テーブルＩＤ＝ｉに関連付けられている認証鍵を認証鍵（ｉ，ｊ，ｋ）と表記する。
【００１６】
続いて、図４及び図５を用いて元鍵テーブル及び認証鍵テーブルの生成方法について説明する。まず、図４に示す様に、外部の乱数生成器４０１により、ｎ×ｍ個の元鍵をランダムに生成し、生成したｎ×ｍ個の元鍵の各元鍵を、ｍ行ｎ列の行列である元鍵マトリクス４００の各要素に対応付ける。図４に示す様に、各列には１からｎまでの元鍵テーブルＩＤを付与し、各行には１からｍまでの認証鍵テーブルＩＤを付与し、ｉ列ｊ行の要素を、元鍵（ｉ，ｊ）とする。これにより、ｎ×ｍ個の元鍵それぞれは、元鍵テーブルＩＤと認証鍵テーブルＩＤとの組み合わせにより特定される様になる。そして、図５に示す様に、１つの列を１つの元鍵テーブルとする。言い換えると、同じ元鍵テーブルＩＤが付与されたｍ個の元鍵を１つの元鍵テーブルとする。例えば、ｉ番目の列は、元鍵テーブル２０７−ｉとなる。また。外部の暗号回路２０６ｃにより、１つの行のｎ個の元鍵（１，ｊ）〜（ｎ，ｊ）それぞれについて、認証鍵ＩＤ＝ｋによる暗号演算を行い、演算結果を、認証鍵（１，ｊ，ｋ）〜認証鍵（ｎ，ｊ，ｋ）とする。これにより、認証鍵テーブル２０８−ｊ−ｋが生成される。言い換えると、同じ認証鍵テーブルＩＤが付与されたｎ個の元鍵それぞれと１つの認証鍵ＩＤに基づき、ｎ個の認証鍵を含む１つの認証鍵テーブルが生成される。なお、暗号回路２０６ｃは、被認証チップ１０３に設けられた暗号回路２０６ｂと同じ暗号演算を行う。
【００１７】
暗号回路２０６ｃは、たとえば、一方向性関数である暗号化ハッシュ関数や共通鍵暗号関数を用いて認証鍵を計算する。暗号化ハッシュ関数としては、たとえば、ＮＩＳＴ＿ＦＩＰＳ＿ＰＵＢ  １８０−４で規格化されているＳＨＡ−２５６を使用することができる。この場合、認証鍵（ｉ，ｊ，ｋ）は、以下の式（１）で求められる。
認証鍵（ｉ，ｊ，ｋ）＝ＳＨＡ−２５６（元鍵（ｉ，ｊ）｜ｋ）    （１）
なお、式（１）において、"元鍵（ｉ，ｊ）｜ｋ"は、元鍵（ｉ，ｊ）と認証鍵ＩＤであるｋを連結又は結合した値を意味する。つまり、"｜"は、連結演算子である。また、ＳＨＡ−２５６（）は、ＮＩＳＴ＿ＦＩＰＳ＿ＰＵＢ  １８０−４で規格化されている暗号化ハッシュ関数である。したがって、この場合、認証鍵は、暗号化ハッシュ値である。
【００１８】
また、共通鍵暗号関数としては、たとえば、ＮＩＳＴ＿ＦＩＰＳ＿ＰＵＢ  １９７で規格化されているＡＥＳを使用することができる。この場合、認証鍵（ｉ，ｊ，ｋ）は、元鍵ＩＤ（ｉ，ｊ）を共通鍵とし、認証鍵ＩＤであるｋの値を共通鍵で暗号化することにより求められる。したがって、この場合、認証鍵は、暗号化データである。
【００１９】
上述した様に生成された元鍵テーブル２０７−１〜２０７−ｎのうちの１つが、プロセスカートリッジ１０２の製造過程において、被認証チップ１０３の不揮発性メモリ２０５ｂに書き込まれる。また、上述した様に生成された認証鍵テーブル２０８−１−１〜２０８−ｍ−ｚの１つが、エンジンコントローラ１０１の製造過程において、認証チップ１０６の不揮発性メモリ２０５ａに書き込まれる。
【００２０】
図６は、本実施形態による認証処理のシーケンス図である。認証処理は、プロセスカートリッジ１０２が画像形成装置１００の本体に対して電気的に接続され、これにより認証チップ１０６の制御装置１０５が被認証チップ１０３に認証コマンドを送信したことにより開始される。なお、制御装置１０５が被認証チップ１０３に認証コマンドを送信するトリガは、プロセスカートリッジ１０２の画像形成装置１００への装着に限定されない。例えば、ユーザが画像形成装置１００にプロセスカートリッジ１０２の認証実行を指示したことを認証コマンド送信のトリガとすることができる。なお、以下の説明において、被認証チップ１０３の不揮発性メモリ２０５ｂには、元鍵テーブル２０７−ｉが格納され、認証チップ１０６の不揮発性メモリ２０５ａには、認証鍵テーブル２０８−ｊ−ｋが格納されているものとする。
【００２１】
Ｓ１０で、被認証チップ１０３のマイコン２０２ｂは、不揮発性メモリ２０５ｂに格納されている元鍵テーブル２０７−ｉの元鍵テーブルＩＤ（本例ではｉ）を認証チップ１０６に送信する。Ｓ１１で、認証チップ１０６の制御装置１０５は、不揮発性メモリ２０５ａに格納されている認証鍵テーブル２０８―ｊ−ｋの認証鍵テーブルＩＤ（本例ではｊ）及び認証鍵ＩＤ（本例ではｋ）をマイコン２０２ａから取得し、これらを被認証チップ１０３に送信する。Ｓ１２で、認証チップ１０６の乱数生成器２１０は、チャレンジデータをランダムに生成する。Ｓ１３で、認証チップ１０６の制御装置１０５は、マイコン２０２ａからチャレンジデータを取得し、これを被認証チップ１０３に送信する。
【００２２】
Ｓ１４で、マイコン２０２ｂは、元鍵テーブル２０７−ｉのｍ個の元鍵の内、Ｓ１１で通知された認証鍵テーブルＩＤに対応する元鍵（ｉ，ｊ）と、Ｓ１１で通知された認証鍵ＩＤ＝ｋとを、暗号回路２０６ｂの入力とし、暗号回路２０６ｂに認証鍵（ｉ，ｊ，ｋ）を生成させる。Ｓ１５で、被認証チップ１０３のマイコン２０２ｂは、Ｓ１３で受信したチャレンジデータと、Ｓ１４で生成した認証鍵（ｉ，ｊ，ｋ）とを暗号回路２０６ｂに供給し、暗号回路２０６ｂにレスポンスデータを生成させる。
【００２３】
暗号回路２０６ｂが、ＳＨＡ−２５６を利用する場合、レスポンスデータは、以下の式により生成される。
レスポンスデータ＝ＳＨＡ−２５６（認証鍵（ｉ，ｊ，ｋ）｜チャレンジデータ）
また、暗号回路２０６ｂが、ＡＥＳを利用する場合、レスポンスデータは、チャレンジデータを認証鍵（ｉ，ｊ，ｋ）で暗号化することにより生成される。Ｓ１６で、被認証チップ１０３のマイコン２０２ｂは、レスポンスデータを認証チップ１０６に送信する。
【００２４】
Ｓ１７で、マイコン２０２ａは、認証鍵テーブル２０８−ｊ−ｋのｎ個の認証鍵の内、Ｓ１０で通知された元鍵テーブルＩＤに対応する認証鍵（ｉ，ｊ，ｋ）を選択する。そして、選択した認証鍵（ｉ，ｊ，ｋ）と、Ｓ１３で生成したチャレンジデータを暗号回路２０６ａの入力とし、暗号回路２０６ａに検証データを生成させる。なお、検証データの生成方法は、Ｓ１５におけるレスポンスデータの生成方法と同じである。したがって、被認証チップ１０３（プロセスカートリッジ１０２）が正当なものであると、検証データとレスポンスデータは同じデータとなる。マイコン２０２ａは、Ｓ１７で生成した検証データと、Ｓ１６で受信したレスポンスデータと、を比較器２０４に入力し、検証データとレスポンスデータが一致するか否かの判定結果を比較器２０４から取得する。そして、マイコン２０２ａは、Ｓ１８で、検証データとレスポンスデータが一致すると認証成功を制御装置１０５に通知し、検証データとレスポンスデータが一致しないと認証不成功を制御装置１０５に通知する。
【００２５】
認証成功であると、制御装置１０５は画像形成処理を保留し、図示しない画像形成装置の表示部に、画像形成を許可するか否かの判断を利用者に委ねる表示を行う。認証結果が認証成功であると、制御装置１０５は画像形成装置１００に画像形成を許可する。
【００２６】
なお、本実施形態においては、認証鍵の生成と、レスポンスデータ（検証データ）の生成に同じ暗号回路を使用している。しかしながら、認証鍵の生成と、レスポンスデータ（検証データ）の生成に異なる暗号回路を使用する構成とすることもできる。例えば、認証鍵については、ＳＨＡ−２５６を利用し、レスポンスデータ及び検証データの生成には、ＡＥＳを利用することができる。逆に、認証鍵については、ＡＥＳを利用し、レスポンスデータ及び検証データの生成には、ＳＨＡ−２５６を利用することができる。なお、図６のシーケンスの順序は一例であり、本発明は、図６の順序に限定されない。例えば、Ｓ１０とＳ１１の順序は逆転しても良い。また、被認証チップ１０３は、認証チップ１０６から認証鍵テーブルＩＤと認証鍵ＩＤとを受信すると、レスポンスデータを生成するまでの任意のタイミングで認証鍵を生成することができる。また、認証チップ１０６は、レスポンスデータの受信前に検証データを生成することができる。
【００２７】
例えば、攻撃者が、不揮発性メモリ２０５ｂに格納されている元鍵テーブル２０７を解析し、１つの元鍵（Ｘ１，Ｘ２）の解読に成功したものとする。この場合、攻撃者は、認証鍵テーブル２０８−Ｘ２−ｋを有する認証チップ１０６のみにおいて認証を成功させることができる被認証チップしか製造できない。つまり、任意の認証チップ１０６を有する画像形成装置において認証を成功させることができる被認証チップを製造するには、１つの元鍵テーブル２０７のｍ個の元鍵の総てを解読しなければならない。しかしながら、耐タンパチップに対する驚異的な解析技術である破壊攻撃は、チップの切断やチップを削ることを含む攻撃である。そのため、耐タンパチップを壊す前に総ての元鍵の解読を行うことは非常に困難である。
【００２８】
なお、不揮発性メモリ２０５ａに格納されている認証鍵テーブル２０８を解析して総ての認証チップ１０６による認証を成功させる被認証チップを製造することはさらに困難である。例えば、１つの認証鍵（Ｘ３、Ｘ４、Ｘ５）の解読に成功したものとする。この認証鍵（Ｘ３、Ｘ４、Ｘ５）は、認証鍵テーブル２０８−Ｘ４−Ｘ５を有する認証チップ１０６との認証においてＳ１４で被認証チップ１０３が生成するものである。つまり、この場合、攻撃者は、認証鍵テーブル２０８−Ｘ４−Ｘ５を有する認証チップ１０６のみにおいて認証を成功させることができる被認証チップしか製造できない。総ての認証チップ１０６による認証を成功させる被認証チップを製造するためには、攻撃者は、ｎ×ｍ×ｚ個の認証鍵の総てを解読しなければならず、現実的には困難である。
【００２９】
なお、認証に使用するレスポンスデータは、認証の度にランダムに生成されるチャレンジデータから生成されている。したがって、通信データを盗聴するリプレイ攻撃は無効である。
【００３０】
以上、本実施形態によると、認証チップ１０６及び被認証チップ１０３を解析しての攻撃に対する耐性を高め、認証精度を高くすることができる。なお、認証チップ１０６及び通信回路１０４と、制御装置１０５の上記認証処理に関する部分とを、認証装置として実装することもできる。同様に、被認証チップ１０３を被認証装置として実装することができる。認証装置は、上述した認証処理により被認証装置の認証を行う。認証装置は、例えば、画像形成装置の本体といった、任意の装置の本体に設けることができる。また、被認証装置は、認証装置が設けられた装置の本体に装着して使用される任意のユニット（消耗品、交換部品、オプション装置）に設けることができる。
【００３１】
なお、本実施形態では、元鍵テーブル２０７を被認証チップ１０３に格納し、認証鍵テーブル２０８を認証チップ１０６に格納していた。しかしながら、元鍵テーブル２０７を認証チップ１０６に格納し、認証鍵テーブル２０８を被認証チップ１０３に格納する構成とすることができる。この場合においても、図６のシーケンスと同様、元鍵テーブルＩＤと、認証鍵テーブルＩＤ及び認証鍵ＩＤと、を認証チップ１０６及び被認証チップ１０３は交換する。これにより、被認証チップ１０３は、認証鍵テーブル２０８のｎ個の認証鍵から１つの認証鍵を選択する。そして、被認証チップ１０３は、選択した認証鍵と、認証チップ１０６から取得したチャレンジデータとに基づきレスポンスデータを生成し、当該レスポンスデータを認証チップ１０６に通知する。一方、認証チップ１０６は、元鍵テーブルのｍ個の元鍵から１つの元鍵を選択し、選択した元鍵と認証鍵ＩＤとに基づき認証鍵を生成する。そして、認証チップ１０６は、生成した認証鍵と生成したチャレンジデータとに基づき検証データを生成する。最後に、認証チップ１０６は、生成した検証データと、被認証チップ１０３から受信したレスポンスデータが一致するか否かを判定することにより、被認証チップ１０３を認証する。
【００３２】
より一般的に述べると、元鍵テーブルを第１装置に保持し、認証鍵テーブルを第２装置に保持させる。第１装置と第２装置は、元鍵テーブルＩＤと、認証鍵テーブルＩＤ及び認証鍵ＩＤと、を交換する。これにより、第１装置は、元鍵を選択し、認証鍵ＩＤに基づき認証鍵を生成し、第２装置は、認証鍵を選択する。第１装置及び第２装置の内の一方の認証装置は、チャレンジデータを生成し、これを、第１装置及び第２装置の内の他方の被認証装置に送信する。また、認証装置は、生成した又は選択した認証鍵とチャレンジデータとに基づき検証データを生成する。被認証装置は、生成した又は選択した認証鍵とチャレンジデータとに基づきレスポンスデータを生成し、これを認証装置に送信する。そして、認証装置は、検証データとレスポンスデータとを比較することで被認証装置を認証する。
【００３３】
＜第二実施形態＞
続いて、第二実施形態について、第一実施形態との相違点を中心に説明する。図７（Ａ）は、本実施形態で使用する元鍵テーブル２０７−ｉを示し、図７（Ｂ）は、本実施形態で使用する認証鍵テーブル２０８−ｊ−ｋを示している。図７（Ａ）及び図７（Ｂ）に示す様に、本実施形態では、元鍵テーブルＩＤと認証鍵テーブルＩＤとの組み合わせそれぞれに関連付けたパスワード（ＰＷ）を有している。以下、元鍵テーブルＩＤ＝ｉ及び認証鍵テーブルＩＤ＝ｊの組に対応するパスワードをＰＷ（ｉ，ｊ）と表記する。この様に、ＰＷ（ｉ，ｊ）は、元鍵（ｉ，ｊ）に対応するパスワードである。各ＰＷ（ｉ，ｊ）は、例えば、乱数生成器４０１で生成された乱数データである。
【００３４】
図８は、本実施形態による認証処理のシーケンス図である。なお、図６に示すシーケンスと同様の処理については、同じステップ番号を付与してその説明については省略する。本実施形態では、Ｓ２０において、制御装置１０５は、チャレンジデータに加えて、Ｓ１０で通知された元鍵テーブルＩＤに対応するＰＷ（ｉ，ｊ）を被認証チップ１０３に送信する。被認証チップ１０３のマイコン２０２ｂは、Ｓ２１で、Ｓ１１で通知された認証鍵テーブルＩＤに対応するＰＷ（ｉ，ｊ）と、Ｓ２０で受信したＰＷ（ｉ，ｊ）が一致するかを判定する。一致しないと、被認証チップ１０３のマイコン２０２ｂは、Ｓ２２で、エラーメッセージを認証チップ１０６に送信する。認証チップ１０６の制御装置１０５は、エラーメッセージを受信すると、認証不成功と判定し図８の処理を終了する。一方、Ｓ２１でＰＷが一致すると、被認証チップ１０３のマイコン２０２ｂは、第一実施形態と同様に、Ｓ１４及びＳ１５の処理を実行してＳ１６でレスポンスデータを認証チップ１０６に送信する。認証チップ１０６は、Ｓ２０の応答として、レスポンスデータを受信すると、Ｓ１７及びＳ１８の処理を実行して認証が成功か不成功かを判定する。
【００３５】
なお、図８のシーケンスでは、認証チップ１０６が被認証チップ１０３にＰＷを送信し、被認証チップ１０３でＰＷを比較していた。しかしながら、被認証チップ１０３が、Ｓ１１で通知された認証鍵テーブルＩＤに対応するＰＷを認証チップ１０６に送信し、認証チップ１０６がＳ１０で通知された元鍵テーブルＩＤに対応するＰＷと比較する構成とすることもできる。この場合、認証チップ１０６は、ＰＷが一致しないと認証不成功としてその後の処理を中止する構成とすることができる。被認証チップ１０３から認証チップ１０６へのＰＷの送信と認証チップ１０６によるＰＷの比較は、Ｓ１１以降の任意のタイミングで行うことができる。例えば、Ｓ１１とＳ１２との間で実行し、ＰＷが一致すると認証チップ１０６はチャレンジデータを生成して被認証チップ１０３に送信する構成とすることができる。一方、ＰＷが不一致であると、認証チップ１０６はチャレンジデータを生成せず、その後の処理を中止する構成とすることができる。
【００３６】
以上、本実施形態では、認証の際に検証値としてのＰＷの一致を確認する。したがって、認証精度をさらに向上させることができる。
【００３７】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００３８】
１０６：認証チップ、１０３：被認証チップ、２０７−１〜２０７−ｎ：元鍵テーブル、２０８−１−１〜２０８−ｍ−ｚ：認証鍵テーブル
【図１】
2020072348.tif 000003
【図２】
2020072348.tif 000004
【図３】
2020072348.tif 000005
【図４】
2020072348.tif 000006
【図５】
2020072348.tif 000007
【図６】
2020072348.tif 000008
【図７】
2020072348.tif 000009
【図８】
2020072348.tif 000010