"第1の認証チップを含む第1の装置を制御するプロセッサにより、第2の認証チップを含む第2の装置を認証する認証方法であって、乱数を生成し、前記乱数を前記第2の認証チップおよび前記第2の認証チップに送信し、前記第1の認証チップに秘密鍵として記憶された整数と、前記乱数に対して暗号化をするための暗号化関数を作用させて生成された出力値に、前記第1の認証チップに設定された値で決まる第1の変換関数を作用させて得られる第1のレスポンス値を前記第1の認証チップから受信し、前記第2の認証チップに秘密鍵として記憶された前記第1の認証チップに秘密鍵として記憶された前記整数と同じ整数と、前記乱数に対して暗号化をするための暗号化関数を作用させて生成された前記出力値に、前記第2の認証チップに設定された値で決まる第2の変換関数を作用させて得られる第2のレスポンス値を前記第2の認証チップから受信し、前記第1のレスポンス値に、前記第1の認証チップに設定された値と前記第2の認証チップに設定された値の大きさの差の数で決まる第3の変換関数を作用させて得られる値と前記第2のレスポンス値を比較して、または前記第2のレスポンス値に前記第3の変換関数を作用させて得られる値と前記第1のレスポンス値を比較して、前記第2の装置を認証する、認証方法。前記第1の認証チップに設定された値で決まる前記第1の変換関数は所定の関数の冪乗であり、その指数は前記第1の認証チップに設定された値で決まる第1の指数であり、前記第2の認証チップに設定された値で決まる第2の変換関数は前記所定の関数の冪乗であり、その指数は前記第2の認証チップに設定された値で決まり前記第1の指数と異なる第2の指数であり、前記第1の認証チップに設定された値と前記第2の認証チップに設定された値の大きさの差の数で決まる前記第3の変換関数は、前記所定の関数の冪乗であり、その指数は、前記第1の指数と前記第2の指数の差の絶対値に等しい第3の指数である、請求項1の方法。前記所定の関数はハッシュ関数である、請求項2の方法。前記所定の関数は定数ビットシフトである、請求項2の方法。前記所定の関数は左1ビットシフト後、GF2m上の特性多項式の剰余演算処理を定数ビット分の繰り返しである、請求項2の方法。前記第1の変換関数は前記第1の認証チップに設定された値と予め前記第2の認証チップと共通に設定された整数である共有値により決定され、前記第2の変換関数は前記第2の認証チップに設定された値と前記共有値により決定される、請求項1乃至5のいずれか一項の方法。前記第1のレスポンス値は、前記出力値に、前記第1の変換関数に加えて、前記プロセッサに特有の値である固有値で決まる第4の変換関数を作用させて得られる、請求項1乃至6のいずれか一項の方法。前記第2の認証チップに設定された値および前記共有値で決まる前記第2の変換関数は、パラメータ付XOR演算である、請求項6又は7の方法。前記第2の認証チップに設定された値および前記共有値で決まる前記第2の変換関数は、パラメータつき剰余演算である、請求項6又は7の方法。前記第2の認証チップに設定された値および前記共有値で決まる前記第2の変換関数は、パラメータハッシュ演算の最下位の定数ビット幅のデータ値を取る出す演算である、請求項6又は7の方法。前記第2の認証チップに設定された値および前記共有値で決まる前記第2の変換関数は、パラメータ付定数ビットシフト、XORおよび減算の組み合わせの演算である、請求項6又は7の方法。前記プロセッサ、前記第1の認証チップ、および前記第2の認証チップは互いの通信のためにシリアルバス接続されており、前記親機認証チップおよび前記子機認証チップは前記通信のためにそれぞれ第1のアドレスおよび第2のアドレスを有し、前記親機認証チップに設定された値および前記子機認証チップに設定された値は、それぞれ前記第1のアドレスおよび前記第2のアドレスから決まる、請求項1乃至12のいずれか一項の方法。第1の装置が第2の装置の認証を行う認証システムであって、前記第1の装置に含まれ、乱数を生成し、前記乱数を前記第1の装置が含む第1の認証チップと前記第2の装置が含む第2の認証チップとに送信し、前記第1の認証チップと前記第2の認証チップから、前記乱数に対する応答として第1のレスポンス値と第2のレスポンス値とをそれぞれ受信し、前記第1のレスポンス値と前記第2のレスポンス値を用いて前記第2の装置を認証する処理を実行するプロセッサと、前記乱数を受信する第1の乱数受信手段と、秘密鍵としての整数を記憶する第1の記憶手段と、秘密鍵として記憶された整数および前記乱数に対して暗号化をするための暗号化関数を作用させて出力値を生成する第1の暗号演算手段と、生成された前記出力値に、第1の設定された値で決まる第1の変換関数を作用させて前記第1のレスポンス値を生成する第1のレスポンス値生成手段と、を含み、前記プロセッサに接続されている第1の認証チップと、前記乱数を受信する第2の乱数受信手段と、秘密鍵としての整数を記憶する第2の記憶手段と、秘密鍵として記憶された整数および前記乱数に対して暗号化をするための暗号化関数を作用させて前記出力値を生成する第2の暗号演算手段と、前記出力値に、第2の設定された値で決まる第2の変換関数を作用させて前記第2のレスポンス値を生成する第2のレスポンス値生成手段と、を含み、少なくとも前記プロセッサに接続されている第2の認証チップと、を含み、前記プロセッサは、前記第1のレスポンス値に、前記第1の設定された値と前記第2の設定された値の大きさの差の絶対値で決まる第3の変換関数を作用させて得られる数と前記第2のレスポンス値を比較して、または前記第2のレスポンス値に前記第3の変換関数を作用させて得られる数と前記第1のレスポンス値を比較して、前記子機を認証する処理を実行すること、を特徴とする認証システム。前記プロセッサと前記第1の認証チップおよび前記第2の認証チップをシリアルバス接続で接続するバスを含む、請求項13の認証システム。前記所定の関数は、ハッシュ関数、定数ビットシフト、左1ビットシフト後、GF2m上の特性多項式の剰余演算処理を定数ビット分の繰り返しからなる群から選択される、請求項13または14の認証システム。前記第1の認証チップおよび前記第2の認証チップは前記通信のためにそれぞれ第1のアドレスおよび第2のアドレスを有し、前記第1の認証チップに設定された値および前記第2の認証チップに設定された値は、それぞれ前記第1のアドレスおよび前記第2のアドレスから決まる、請求項13乃至15のいずれか一項の認証システム。前記第1の認証チップに設定された値で決まる前記第1の変換関数は所定の関数の冪乗であり、その指数は前記第1の認証チップに設定された値で決まる第1の指数であり、前記第2の認証チップに設定された値で決まる第2の変換関数は前記所定の関数の冪乗であり、その指数は前記第2の認証チップに設定された値で決まり前記第1の指数と異なる第2の指数である、請求項13乃至16のいずれか一項の認証システム。前記第1の変換関数は前記第1の認証チップに設定された値および予め前記第2の認証チップと共通に設定された整数である共有値で決まり、前記第2の変換関数は前記第2の認証チップに設定された値および前記共有値で決まる、請求項13乃至17のいずれか一項の認証システム。前記第1のレスポンス値は、前記出力値に、前記第1の変換関数に加えて、前記プロセッサに特有の値である固有値で決まる第4の変換関数を作用させて得られる、請求項13乃至18のいずれか一項の認証システム。前記第2の変換関数は、パラメータ付XOR演算、パラメータつき剰余演算、パラメータハッシュ演算の最下位の定数ビット幅のデータ値を取る出す演算、パラメータ付定数ビットシフト、XORおよび減算の組み合わせの演算からなる群から選択される、請求項13乃至20のいずれか一項の認証システム。整数である秘密鍵を記憶するメモリと、整数を受信する受信手段と、前記整数および前記秘密鍵に暗号化のための暗号化関数を作用させて生成された出力値に、変換関数を作用させて得られるレスポンス値を生成するレスポンス値生成手段と、前記レスポンス値を送信する送信手段、を含む認証チップ。前記レスポンス値生成手段は、さらに、前記通信におけるアドレスを記憶するアドレス記憶手段を含み、前記変換関数は、前記レスポンス値は前記アドレスで決まる、請求項21の認証チップ。前記レスポンス値生成手段は、それぞれ関数を記憶するメモリを含む複数の演算部を含み、前記変換関数は、前記複数の関数から選択される、請求項22の認証チップ。前記変換関数は、前記変換関数は、ハッシュ関数、定数ビットシフト、左1ビットシフト後、GF2m上の特性多項式の剰余演算処理を定数ビット分の繰り返しからなる群から選択される、請求項21乃至23のいずれか一項の認証チップ。さらに、整数である共有値を記憶するメモリを含み、前記変換関数は前記アドレスおよび前記共有値で決まる、請求項21乃至24のいずれか一項の認証チップ。前記認証チップはプロセッサに接続され、前記レスポンス値は、前記出力値に前記変換関数を作用させ、さらに前記プロセッサに特有の値である固有値で決まる別の変換関数を作用させて得られる、請求項21乃至25のいずれか一項の認証チップ。前記プロセッサに特有の値である固有値で決まる前記別の変換関数は、パラメータ付XOR演算、パラメータつき剰余演算、パラメータハッシュ演算の最下位の定数ビット幅のデータ値を取る出す演算、パラメータ付定数ビットシフト、XORおよび減算の組み合わせの演算からなる群から選択される、請求項25の認証チップ。共通鍵暗号を用いた認証において、秘密鍵が外部に漏洩しない、生産コストを削減する、通信トポロジをなるべく簡素にするという3つの制約下での安全な認証を実現するのは困難であり、これらの制約下でも偽造品をふせぐ安全でコンパクトな認証プロトコルおよびシステムが望まれている。親機認証チップを含む親機を制御するプロセッサが子機認証チップを含む子機を認証する方法は:乱数を生成することと;前記乱数を前記親機認証チップおよび前記子機認証チップに送信することと;前記親機認証チップに秘密鍵として記憶された整数および前記乱数に対して暗号化をするための暗号化関数を作用させて生成された出力値に、前記親機認証チップに設定された値で決まる第1の変換関数を作用させて得られる第1のレスポンス値を前記親機認証チップから受信することと;前記子機認証チップに秘密鍵として記憶された前記整数および前記乱数に対して暗号化をするための暗号化関数を作用させて生成された前記出力値に、前記子機認証チップに設定された値で決まる第2の変換関数を作用させて得られる第2のレスポンス値を前記子機認証チップから受信することと;前記第1のレスポンス値に、前記親機認証チップに設定された値と前記子機認証チップに設定された値の大きさの差の数で決まる第3の変換関数を作用させて得られる値と前記第2のレスポンス値を比較して、または前記第2のレスポンス値に前記第3の変換関数を作用させて得られる値と前記第1のレスポンス値を比較して、前記子機を認証すること、を含む。また、本発明に従う認証システムは:乱数を生成する乱数生成手段と、前記乱数を前記親機認証チップおよび前記子機認証チップに送信する乱数送信手段と、前記親機認証チップおよび前記子機認証チップから、前記乱数に対する応答として第1のレスポンス値および第2のレスポンス値を受信するレスポンス値受信手段と、前記第1のレスポンス値および前記第2のレスポンス値を用いて、前記子機を認証する子機認証手段を含むプロセッサと;前記乱数を受信する第1の乱数受信手段と、秘密鍵としての整数を記憶する第1の記憶手段と、前記乱数および前記整数に暗号化のための暗号化関数を作用させて出力値を生成する第1の暗号演算手段と、前記出力値に、第1の設定された値で決まる第1の変換関数を作用させて前記第1のレスポンス値を生成する第1のレスポンス値生成手段と、を含み、前記プロセッサに接続されている親機認証チップと;前記乱数を受信する第2の乱数受信手段と、秘密鍵としての整数を記憶する第2の記憶手段と、前記乱数および前記整数に暗号化のための暗号化関数を作用させて出力値を生成する第2の暗号演算手段と、前記出力値に、第2の設定された値で決まる第2の変換関数を作用させて前記第2のレスポンス値を生成する第2のレスポンス値生成手段と、を含み、少なくとも前記プロセッサに接続されている子機認証チップと、を含み、前記プロセッサの前記子機認証手段は、前記第1のレスポンス値に、前記第1の設定された値と前記第2の設定された値の大きさの差の絶対値で決まる第3の変換関数を作用させて得られる数と前記第2のレスポンス値を比較して、または前記第2のレスポンス値に前記第3の変換関数を作用させて得られる数と前記第1のレスポンス値を比較して、前記子機を認証すること、を特徴とする。また、本発明に従う認証チップは:整数である秘密鍵を記憶するメモリと;整数を受信する受信手段と;前記整数および前記秘密鍵に暗号化のための暗号化関数を作用させて生成された出力値に、変換関数を作用させて得られるレスポンス値を生成するレスポンス値生成手段と;前記レスポンス値を送信する送信手段、を含む。親機と子機に同一の値をチャレンジとして送信しても、レスポンスとして返ってくる値が異なるので、安全性が高く、安価に製造可能で、外部装置との通信機能が簡素な認証システムを得ることが出来る。以下で図面を参照しながら、本発明に従う共通鍵を用いた認証システムを説明する。最初に比較例を説明するが、その後、本発明の第1から第7の実施形態を、比較例に対する利点を含めて説明する。尚、以下の説明において、複数の図面にわたり類似の構成要素または類似の機能を有する構成要素には、類似の参照符号を付して初出時以外、詳細な説明を省略する。比較例共通鍵暗号を用いて第一の装置が第二の装置を認証するシステムについて説明する。実施の形態における説明では、認証を行う側である第一の装置を親機、認証される側である第二の装置を子機と適宜称して説明する。親機はCPU100と親機認証チップ200を含み、子機は認証チップ300を含むシステムについて、秘密鍵が外部に漏洩しない、生産コストを削減する、通信トポロジをなるべく簡素にするという3つの制約の下で考えられるシステムについて説明する。認証チップにおいては、機器の正当性を確認するために、チャレンジアンドレスポンス認証プロトコルと呼ばれる通信プロトコルが利用されている。図1はチャレンジアンドレスポンス認証プロトコルの概要である。チャレンジアンドレスポンス認証とは、デジタル情報を用いた合言葉であり、認証を行う側親機から認証される側子機に対し、チャンレジと呼ばれる乱数を送信する。これに対し、子機側ではチャンレンジに対してレスポンスと呼ばれる応答を生成し、親機に返信する。親機は、チャレンジに対するレスポンスの値を判断し、もし正しいならば、子機が正当な機器であると判断する。チャレンジとして乱数を用いることで、対応するレスポンスが毎回変化する。これにより、再送攻撃に対する防止措置が実現される。再送攻撃とは、過去に外部から観察された応答を繰り返すことで、正当な機器の成りすましを行う攻撃である。つまり、乱数を用いない場合、チャンレジとレスポンスのペアが完全に固定値になるため、攻撃者がこのペアを観察することで、チャレンジに対応する適切なレスポンスを知ることができ、このレスポンスを返すチップを製造することでチップ偽造が容易となるからである。例えるならば、山に対する川という合言葉しか用いないシステムであることを、悪意のある第三者が知ることができれば、常に川と応答することで成りすましが可能となる。チャレンジに対するレスポンスの生成は、暗号関数を用いた方法が一般的である。どの暗号関数を用いるかによってメリットとデメリットがあるが、認証チップの場合、回路規模の小ささを優先できるメリットがある共通鍵暗号を用いる方法が広く用いられている。図2は、共通鍵暗号を用いたチャレンジアンドレスポンス認証のプロトコルである。図2に示すプロトコルでは、親機と子機の認証チップ間で、秘密鍵Kを事前共有している。これは、チップの製造時に秘密鍵Kの値を書き込むことで実現できる。この値が外部に漏洩しないことがセキュリティ上の重要な前提である。S100で、認証を行う側の親機は、乱数Cを生成し、認証される側の子機に送信する。この乱数Cは、チャレンジと呼ばれる。S110で、子機は、受け取ったチャレンジCに対し、秘密鍵Kによる暗号化処理を実行し出力値R=Encを得る。そして、出力値RをレスポンスRQとして、親機に返信する。ただし、b=Encとは、共通鍵暗号を用いて、平文aを鍵Kにより暗号化した結果が暗号文bであることを表す。S120では、子機からのレスポンスRQを受け取った親機は、子機と同様に、秘密鍵Kによる暗号化処理を実行し出力値R=Encを得て、レスポンスの正解値RP=Rを得る。子機からのレスポンスRQが正解値RP=Rと一致するならば、親機は子機を正当な機器と認定する。チャレンジCに対応した正当なレスポンスRPを生成できるのは、秘密鍵Kを有する場合に限られるので、親機は子機の正当性を確認することができる。たとえば、図2に示されているような、チャレンジアンドレスポンスプロトコル自体は、理論上は安全な認証プロトコルである。しかし、現実世界の認証には制約があるため、安全にならない可能性が残される。特に、以下の3つの制約下での安全な認証を実現するのは困難であり、これらの制約下でも偽造品をふせぐことができる安全な認証プロトコルシステムの実現が望まれている。制約1:秘密鍵が外部に漏洩しないこと制約2:生産コストの制約制約3:通信トポロジの制約制約1の秘密鍵が外部に漏洩しないことは、耐タンパ性を有する認証チップを用いることで実現可能である。制約2の生産コストの制約については、認証チップの親機子機側を同一のハードウェア構成とすることで、認証チップの生産コストを低く抑えることができる。制約3の通信トポロジの制約は、低コスト向けの機器では、通信形態トポロジをなるべく簡素なものとする必要があることに由来する。本発明に従うシステムでは、制約1、2、3の下でも、認証機器を偽造不可能な認証プロトコルシステムを実現することができる。特に、制約1は、一般的に知られている耐タンパ技術を用いることで解決可能である。しかし制約2および3の下では、従来技術を用いただけでは安全な認証を実現することはできない。制約2により認証チップの実装形態が決定し、制約3によって通信トポロジが決定する。これらの決定された組み合わせが、認証の安全性を脅かす要因となることがある。最初に、図3を参照しながら、制約2により決定される認証チップの実装形態について説明する。認証システムにおける、親機、子機側の実装形態の種類を図3に示す。認証システムの基本要件は以下の通りである。-親機と子機から構成される。-親機と子機それぞれに、認証チップまたはCPUが装着される。ただし、親機側には全体の機能管理を行うためのコントローラとしてのCPUが必ず装着される。-親機と子機に装着された認証チップもしくはCPUが通信を行い、認証プロコトルを実行することで、子機が正規品であるかどうかを親機側が判定する。-子機が正規品であると親機側が判定した場合、親機側のCPUが子機のリソースを親機のために利用することを許可する。例としては、プリンタカートリッジの場合、親機のプリンタが子機のインク使用を許可すること、医療機器の場合、親機の機器が子機のオプション機器使用を許可することを含む。このように、チャレンジアンドレスポンスプロトコルでは、不正を防ぐためには、鍵の値が外部に漏れないことが前提であり、固定鍵による暗号化、復号処理は、サイドチャンネル攻撃で狙われる可能性がある。このシステムの実装形態として、図3に示されるように、以下の形態1~3が考えられる。形態1:親機側をCPU100、子機側を認証チップ300により実装する。形態2:親機側を、認証チップ内蔵型のCPU100’、子機側を認証チップ300により実装する。形態3:親機側をCPU100と認証チップ200の組み合わせ、子機側を認証チップ300により実装する。形態1では、親機はCPU100を含み、子機は認証チップ300を含む。子機に含まれる認証チップ300は、通信制御部301、暗号回路302および秘密鍵を記憶するメモリ303を含む。通信制御部301はプロセッサ外部との通信を処理し、プロセッサとして実装されても良い。暗号回路302は入力たとえばチャレンジに対して、暗号化関数を作用させて、レスポンス応答として出力値を生成するもので、専用の回路であっても、汎用コンピュータとして実装されても良い。秘密鍵は暗号回路302から読み出され、メモリ303に記憶され得るが、メモリ303は不揮発性であることが好ましい。認証プロトコルとして共通鍵暗号を用いた場合、親機のCPU100に秘密鍵を書き込む必要がある。この秘密鍵の値は、すべての親機、子機を通じて製品に共通の鍵であるため、耐タンパ性がないCPU100から秘密鍵が漏洩する可能性が高く、偽造が容易となる。すなわち、制約1が満たされない。形態2では、親機は認証チップ200’を含む認証チップ内蔵型CPU100’を含む。認証チップ200’は、CPUに内蔵されている点で、以下で述べる認証チップ200と異なるが構成は同一である。すなわち、認証チップ200’は、認証チップ300の通信制御部301、暗号回路302および秘密鍵を記憶するメモリ303と同一である通信制御部201、暗号回路202および秘密鍵を記憶するメモリ203を含む。子機は形態1と同様である。本形態では、耐タンパ機能を備えた認証チップ200’をCPU100’に内蔵することで、CPUからの秘密鍵漏洩リスクが消えるため、制約1を満たす。しかし、親機側が認証チップ内蔵型のCPU100’、子機側が通常の認証チップ300であるため、制約2が満たされない。形態3では、親機はCPU100および認証チップ200を含み、子機は認証チップ300を含む。本実施形態では、親機、子機ともに耐タンパ機能を備えた認証チップ200、300を用いるため、制約1を満たす。さらに、親機、子機共に、同一の認証チップを用いるため、制約2を満たす。そこで、形態3をベースとした、通信トポロジの形態の種類を図4に示す。トポロジ1のブリッジ型は、親機側の認証チップから、親機CPUと子機認証チップそれぞれに対し別々に通信線を結ぶ形式である。親機認証チップに2つの通信ポートが必要とされる同じハードウェア構成である子機認証チップにも2つの通信ポートが必要ため、低コストに向かない。すなわち、制約3が満たされない。トポロジ2のハブ型は、親機に含まれるCPU100から、親機の認証チップ200と子機の認証チップ300それぞれに対し別々に通信線を結ぶ形式である。CPUに2つの通信ポートが必要とされるため、低コストに向かない。すなわち、制約3が満たされない。トポロジ3のシリアルバス型は、親機に含まれるCPU100、親機の認証チップ200および子機の認証チップ300の全てを、共有する通信線でバス状に接続する形式である。親機のCPU100、親機の認証チップ200、および子機の認証チップ300の全ての通信ポートが1つで良いため、低コストに向く。すなわち、制約3を満たす。すなわち、形態3をベースにシリアルバス型の接続を行うのが、上記制約1、2、3を満たすための好適な形態である。しかし、これらの制約を満たしても、以下のようなセキュリティ上の問題が発生することがある。図5は、形態3とトポロジ3の組み合わせ例を示す図である。シリアルバスI/Fとしては、多様な種類が知られているが、図5ではI2Cバス400によって、CPU101、親機の認証チップ200、および子機の認証チップ300がバス接続されている。I2Cバス400は、データ線420とクロック線440の2線により、全ての機器が接続されている。I2Cバス400は、2線の通信線1本のみを用いて複数の機器を接続可能、というメリットがある反面、全機器が一本の線でつながっているため、データの盗聴や改ざんが容易という問題があることが知られている。図6~8を用いてセキュリティ上の問題について説明する。I2Cバス上のデータの盗聴や改ざんが容易である、という性質を利用すると、図5に示した通信トポロジ上で、図2に示したチャレンジアンドレスポンスプロトコルをそのまま実行すると、図6に示されるような状態となる。図6では、CPU100が親機の認証チップ200および子機の認証チップ300それぞれにバス400を介してチャレンジCを送信し、子機の認証チップ300からのレスポンスRQと、親機の認証チップ200からのレスポンスRPを比較し、RPとRQが一致したならば、CPU100は子機の認証チップ300を含む子機が正規品であると判断する。CPU100がチャレンジCを送信する順序を、子機の認証チップ300を含む子機から開始するか、親機の認証チップ200を含む親機から開始するかに応じて、2通りの方法が存在する。親機に先にチャレンジCを送信する場合、CPU100は、バス400を介して、親機の認証チップ200にチャレンジCを出力する。親機の認証チップ200は、通信制御部201、暗号回路202、鍵203を含み、CPU100から出力されたチャレンジCは、通信制御部201で受信される。その後、チャレンジCは、暗号回路202に入力され、暗号回路202では、鍵203を用いて、レスポンスRPを得る。このレスポンスRPはバス400を介して、CPU100に送られる。次に、CPU100は、バス400を介して、子機の認証チップ300にチャレンジCを出力する。チャレンジCは、子機の認証チップ300の通信制御部301で受信され、その後、子機の認証チップ300の暗号回路302に入力される。暗号回路302では、チャレンジ及び鍵303と暗号化関数を用いて、レスポンスRQを得る。このレスポンスRQは、バス400を介して、CPU100に送られる。親機からのレスポンスRPと、子機からのレスポンスRQを受け取ったCPU100は、両者を比較し、一致すれば子機は正規品と判定する。子機に先にチャレンジCを送信する場合は、CPUはまず、子機の認証チップ300にチャレンジCを出力し、子機の認証チップ300からレスポンスRQを得たのち、親機の認証チップ200にチャレンジCを出力し、親機の認証チップ200からレスポンスRPを得る。その後、両者を比較し、一致すれば子機は正規品と判定する。子機が正規品である限りは、子機の認証チップ300を含む子機から認証を開始しても、親機の認証チップ200を含む親機から認証を開始しても問題はない。しかし、発明者独自の分析により、図6のプロトコルの安全性評価を行った結果、上の2通りの方法に対して異なる攻撃法1、2で、I2Cバス400上の通信データの盗聴改ざんを利用することで、秘密鍵を知らなくとも偽造品の製造が可能であることが判明した。以下に、図7、8を参照しながら、攻撃法1、2を説明する。攻撃法1図7は、図6のプロトコルに対して、I2Cバス400上の盗聴を用いた場合の攻撃法である以下、攻撃法1と呼ぶ。攻撃対象は、親機の認証チップ200を含む親機、子機の認証チップ300を含む子機の順にレスポンスを生成する場合のプロトコルである。子機の認証チップ300が正規品の場合、CPU100は親機、子機からのレスポンスRP、RQをこの順番で受信し、正規品の判定を行う。これに対し、偽造品である子機の認証チップは、次のように振舞う。偽造認証チップ300’は、I2Cバス400を通じて、親機がCPU100に返信するレスポンスRPを観察し、偽造認証チップ300’の図示されていない内部レジスタに格納する。次に、CPUから子機へのチャレンジCが送信されるので、これに対して盗聴により観察されたRPをそのまま子機のレスポンスRQとして返す。こうすることで、CPUは同一のレスポンスを受け取るため、RPとRQが一致し、CPU100は偽造認証チップを正規品と判定してしまう。このように攻撃法1では、偽造認証チップは、I2Cバス上のデータを単純に盗聴すればよいため、秘密鍵の値を知らなくとも攻撃が成功する。攻撃法2図8は、図6のプロトコルに対して、改ざんを用いた場合の攻撃法である以下、攻撃法2と呼ぶ。攻撃対象は、子機、親機の順にレスポンスを生成する場合のプロトコルである。子機の認証チップ300が正規品の場合、CPU100は子機、親機からのレスポンスRQ、RPをこの順番で受信し、正規品の判定を行う。これに対し、偽造品である子機の認証チップ300’は、次のように振舞う。偽造認証チップ300’は、適当な値Xを生成し、CPU100からのチャレンジCに対するレスポンスRQとして返信する。このXはどんな値でも良い。次に、認証チップ300’を含む子機はI2Cバス400上のデータを盗聴し、CPU100から親機の認証チップ200を含む親機へのチャレンジCが入力されたならば、先ほど生成した値Xを親機認証チップ200の代わりに返信する成りすまし。この成りすましは、偽造認証チップ側の通信処理タイミングが非常にシビアであるが、原理的には可能である。このタイミング制御のシビアさを攻撃者が回避する手法としては、CPU100と親機の認証チップ200の間の通信線400を切断する方法が挙げられる。親機側の回路の物理改変が必要となるが、この攻撃法2を用いることで、子機によるなり済ましを容易にすることができ、偽造品を正規品と誤認させることができる。上述のように、比較例では、親機からのレスポンスRPと子機からのレスポンスRQが同じであるかどうかで認証の成否を判断しており、盗聴をする攻撃法1、成りすましをする攻撃法2等を用いることによって、認証の安全性が脅かされるおそれがある。以下では、上記制約1、2、3を満たす形態3をベースにシリアルバス型の接続を行ったシステムであって、認証の安全性が改善されたシステムについて説明する。第1実施形態図9を参照して、本発明の第1実施形態に従う共通鍵暗号を用いた認証システムを説明する。本実施形態は本発明の基本的実施形態でもある。本実施形態では、制約1、2、3を満たす図6のプロトコルは、上記攻撃法1、攻撃法2に脆弱である、という問題に対し、攻撃法1、2に対しても安全な認証を実現するコンパクトなシステムを実現することができる。本発明の第1実施形態に従うシステムを図9に示す。上記比較例では、親機認証チップ、子機認証チップともに、同一のレスポンスを返信していたため、盗聴や成りすましによる攻撃が容易であった。これに対し、本実施形態では、チャレンジに対してレスポンスを生成するレスポンス生成部を認証チップ内で複数準備し、いずれのレスポンス生成部を用いるかを、親機および子機に含まれる認証チップ内部の不揮発性メモリに格納されている情報に基づいて選択することを特徴とする。この情報は、同一ハードウェア構成を持つ親機および子機の認証チップが、自分自身が親機側か、子機側の認証チップであるかを識別するために用いられる情報であり、一般的にはI2Cバスのアドレス情報であって良い。すなわち、I2Cアドレスにより、認証チップが親機であるか、子機であるかが決定される。このアドレス情報が子機側であった場合、子機は通常のレスポンス出力値と呼ぶRQ=EncC、Kを返信する。これに対し、アドレス情報が親機側であった場合、親機側は通常のレスポンス、すなわち出力値を関数Fで変形させたレスポンスRP=FEncC、Kを生成する。ただし、関数Fは外部に対して非公開の関数である。これらのレスポンスRP、RQを受け取ったCPUはRQから計算されたFRQがRPに等しいか判定を行い、もし等しいならば子機が正規品であると判断する。正規品によるレスポンスならば、FRQ=FEncC、K=RPであり等しい値となる。外部非公開の関数Fによりレスポンスが変形されているため、攻撃1、攻撃2に示したような方法を用いて、親機および子機のレスポンス値RPおよびRQが同一とするような、CPUに対して偽装する攻撃は通用しないため、安全な認証を実現することができる。図9に示されているように、本実施形態に従うシステムは、親機によって子機を認証するシステムであって、親機に含まれるCPU100および親機の認証チップ200、子機に含まれる子機の認証チップ300、ならびにCPU100、親機の認証チップ200および子機の認証チップ300を接続するバス400を含んでいる。CPU100、親機の認証チップ200および子機の認証チップ300はバス400を介してシリアルバス接続されている。バスインターフェイスI/Fとしては、I2Cバスを例示することができる。CPU100は、乱数であるチャレンジCを生成し、親機の認証チップ200および子機の認証チップ300に出力する。乱数は整数であることが望ましい。また、CPU100は、親機からのレスポンスRPと子機からのレスポンスRQを受ける。そして、CPU100は、子機からのレスポンスRQに関数Fを作用させたFRQとレスポンスRPを比較して、子機の認証を行う。すなわち、CPU100は、親機からのレスポンスRPと子機からのレスポンスRQの差を補償する関数Fを記憶している。本実施形態では、親機の認証チップ200でレスポンスRに作用される関数Fと、CPUで子機からのレスポンスRQに作用される関数Fは同一の関数である。乱数はCPU100に含まれる乱数生成手段で生成されても良い。乱数は整数であることが好ましい。チャレンジCの外部への出力送信は乱数送信手段によって行われても良い。レスポンスを受けること受信は、レスポンス値受信手段によって行われても良い。さらにCPU100は、親機からのレスポンスRPと子機からのレスポンスRQを比較し、子機が正規品かどうか判定する子機認証手段を含む。親機の認証チップ200および子機の認証チップ300は、上記制約2の観点からは同一の構造を有することが好ましい。認証チップ200、300はそれぞれ、第1のレスポンス生成部220a、320a、第2のレスポンス生成部220b、320b、レスポンス選択部230、アドレス情報保持部240、340を含む。第1のレスポンス生成部220a、320aは、暗号化関数を記憶し、従来のようにCPU100からの入力チャレンジCおよび鍵に暗号化関数を作用させてレスポンスとして出力値Rを生成する。暗号化関数は公知のもので良い。この第1のレスポンス生成部は、暗号演算手段とも呼ばれる。第2のレスポンス生成部220b、320bは、関数Fを記憶しており、CPU100からの入力チャレンジCおよび鍵に暗号化関数を作用させて得られた出力値Rに、さらに関数Fを作用させて、出力値Rとは異なる数FRを生成する。この第2のレスポンス生成部は、第1のレスポンス値生成手段とも呼ばれる。アドレス情報保持部240、340は個々の認証チップに固有のアドレスを記憶する不揮発性メモリであっても良い。親機の認証チップ200および子機の認証チップ300は、上記の構成要素のほかに、たとえばCPU100などの外部装置からの信号を受信したり、外部装置に信号を送信したりする図示されていない通信手段を含む。通信手段の例には、図10に示されているデータ入出力インターフェイスI/F260、360が含まれる。データ入出力インターフェイスI/Fは、プロセッサ100で生成された乱数を受信する受信手段、またはレスポンス生成部で生成されたレスポンスをプロセッサ100に送信する送信手段として機能する。本実施形態では、鍵は共通鍵秘密鍵とも呼ばれるである。つまり、第1のレスポンス生成部220a、320aでは共通鍵暗号のアルゴリズムが実行される。レスポンス選択部230、330では、アドレス情報保持部240、340に記憶されたシリアルバスのアドレス値に応じてレスポンス生成部を選択する。第1のレスポンス生成手段と第2のレスポンス生成手段とでレスポンス値生成手段が形成される。上記では、子機の認証チップ300は、CPU100から入力されるチャレンジCに対して、通常のレスポンスRQ=EncC、Kを返すものとした。しかし、子機の認証チップ300も、EncC、Kにある関数Hを作用させたHEncC、Kを返しても良い。この場合でも、CPU100が、親機からのレスポンスRPと子機からのレスポンスRQの差を補償する関数を記憶していれば、上記の認証方法は機能する。レスポンスRPとRQの差を補償する関数は、親機の認証チップ200のメモリ240に記憶されているアドレス情報と子機の認証チップ300のメモリ340に記憶されているアドレス情報から一意に決まることが好ましい。メモリ240、340はアドレス記憶手段を構成する。親機の認証チップ200および子機の認証チップ300は同一の構成であるが、親機の認証チップ200として用いられるものでは、第2のレスポンス生成部220bが、子機の認証チップ300として用いられるものでは、第1のレスポンス生成部320aが機能するように、出荷時に設定されてもよい。このように出荷時に設定されることによって、認証チップとしては同一のものを大量生産することができること、出荷時に設定するので高い安全性を確保できること、などの利点を得ることができる。このような構成を採用することによって、認証システム10は、仮にバス400がI2Cバスであっても、親機の認証チップ200からのレスポンスと子機の認証チップ300からのレスポンスが異なるため、認証の安全性を高めることができる。また、本実施形態では、親機の認証チップ200および子機の認証チップ300は同一の構成を有している。また、CPU100、親機の認証チップ200および子機の認証チップ300はI2Cバス接続されている。このような構成を採用することによって、各認証チップ200、300が外部との通信のために備える通信ポートは1つでよく、認証チップは、製造コストを抑えつつも、小型に製造することができる。また、各認証チップにおいて、変換関数は外部に対して非公開、即ち不揮発性メモリに記憶されている。従って、高い安全性を得ることができる。第2実施形態図10から12を参照しながら、本発明の第2実施形態を説明する。本実施形態に従うシステム10では、親機に対して、最大n個の子機が接続されている。親機はCPU100と認証チップ200を備え、最大n個の子機はそれぞれ1個ずつの認証チップ300_1、...300_nを備える。nは任意の自然数であり、用途によっては子機側に複数の認証チップが接続される場合がある。例えば、インクカートリッジを4色用いる場合、子機はそれぞれの色に対して1個ずつの認証チップを有し、計4個の認証チップを備えることになる。それぞれの認証チップ300_1、...300_nは、同一ハードウェア構成を持ち、各チップ内部の不揮発性メモリ326にはシリアルバスのアドレス値が書かれている。このアドレス値は、シリアルバス上の通信エンティティを区別するために用いられる値であり、CPU100、認証チップ300_1、...300_nに対してユニークな値が与えられる。このアドレスのユニーク性は、図13のシリアルバス400に接続されている通信エンティティ間で保たれればよく、流通している全ての認証チップ固体間で異なる値である必要はない。親機のCPU100は、i番目の子機が正規品であるかの確認を行うために、認証チップ0および認証チップiそれぞれに対してチャレンジCを送信し、認証チップiからのレスポンスRQと、認証チップ0からのレスポンスRPの比較を行う。それぞれの認証チップは、n1個のデータ変換手段を備える。それぞれの認証チップは、受信したチャレンジCからメモリ226に格納されている秘密鍵を用いてレスポンスRを生成するレスポンス生成回路224と、変換0~nの実行を行う演算部220a~n、変換関数のパラメータとしてのアドレス情報を記憶するメモリ240およびメモリ240に記憶されたアドレス情報を元に演算部220a~nから一つを選択するセレクタ223を含む。演算部220a~nはそれぞれ、変換0~nの変換関数を記憶している。i番目の認証チップが選択するデータ変換手段への入力をX、出力をYとすると、XとYの関係の例として、関数Fを用いてY=FtiXを例示することができる。ただし、Y=FzXは、Xを関数Fに対してz回連続適用した結果である。例えばF=X1の場合、F1=F10=101=11、F210=FF10=12、F410=14、F010=10、である。tiはメモリ240に記憶されているアドレス情報から決まる定数であり、i番目の認証チップが用いる変換手段に対応する関数Fの繰り返し適用回数を表す。関数FXは外部に対して非公開の関数である1入力1出力関数ならばどのような関数でもよいが、ハードウェア実装を考慮すると、なるべく回路規模が小さいものであることが良く、例えば、以下の処理が望ましい。1フィードバックシフトレジスタLFSRによるシフト処理を定数ビット分繰り返す2左1ビットのシフト後、2m個の要素を有する拡大ガロア体上GF2m上の特性多項式の剰余演算処理を定数ビット分繰り返すmod3ハッシュHash関数上記1の例としては、F=LFSR、ただしLFSRは、XをLFSR線形フィードバックシフトレジスタ処理により1ビットだけシフトした値、が含まれる。上記2の例としては、F=X64modqX、ただしqXは128ビット既約多項式、modは剰余、を表す。上記3の例としては、F=SHA1Xの最下位128ビット、ただしSHA1XはXのSHA-1ハッシュ関数出力、である。もちろん、1~3の具体例は、上記関数に限定されない。変換手段の差異は、同一関数を繰り返す回数のみに関する差異であるため、認証チップでは関数Fを処理する回路のみ実装すればよく、n1個の変換手段それぞれに対して異なる回路を実装する必要は無いため、製造コストを低く抑えることができる。認証チップ0と認証チップiからの応答RPとRQを受け取った親機CPU100は、これらのレスポンス比較を以下により行う。ti>t0の場合:Fti-t0RP=RQなら正規品、そうでなければ偽造品と判定され、ti<t0の場合:RP=Ft0-tiRQなら正規品、そうでなければ偽造品と判定される。上記の比較が正しい理由は、正規品の場合、RP=Ft0R、RQ=FtiRであり、もしti>t0ならば、Fti-t0RP=Fti-t0Ft0R=FtiRがRQと一致するからであり、もしti<t0ならば、Ft0-tiRQ=Ft0-tiFtiR=Ft0RがRPと一致するからである。図10は本発明の第2の実施形態に従うシステム10を示す図である。本システム10は、図9に示されたシステムと同様、親機に含まれるCPU100および親機の認証チップ200、子機に含まれる子機の認証チップ300_1、...、300_n、ならびにCPU100、親機の認証チップ200および子機の認証チップ300を接続するバス400を含んでいる。CPU100、親機の認証チップ200および子機の認証チップ300はバス400を介してI2Cバスシリアルバス接続されている。親機に含まれる0番目の認証チップ200以下、認証チップ0としても参照するは、バス400を介してCPU100からの信号を受信したり、CPU100に信号を送信したりするデータ入出力インターフェイスI/F260、データ入出力I/F260で受信したチャレンジCに暗号化関数を作用させて、レスポンスとしての出力値Rを生成するレスポンス生成回路224、レスポンス生成回路224で生成された出力値Rに変換0~nを作用させる演算部222a~n、変換関数のパラメータとしてのアドレス情報を記憶するメモリ240およびメモリ240に記憶されたアドレス情報を元に演算部222a~nから一つを選択するセレクタ223を含む。セレクタ223はレスポンス選択部に相当する。レスポンス生成回路224には秘密鍵が記憶されているメモリ226が含まれている。図9のシステムは、本システムで子機の数が1つの場合であり、図9の第1のレスポンス生成部220aは、レスポンス生成回路224、変換0を行う演算部222a、およびセレクタ223に相当する。演算部220a~n、セレクタ223、レスポンス生成回路224、アドレス情報を記憶するメモリ240からレスポンス値生成手段が形成される。子機の認証チップ300_1、...、300_nも親機の認証チップ200と同様の構成をしている。すなわち、バス400を介してCPU100からの信号を受信したり、CPU100に信号を送信したりするデータ入出力インターフェイスI/F360、データ入出力I/F360で受信したチャレンジCに暗号化関数を作用させて、レスポンスとしての出力値Rを生成するレスポンス生成回路324、レスポンスRを生成するレスポンス生成回路324で生成されたレスポンスに変換0~nを作用させる演算部322a~n、変換関数のパラメータとしてのアドレス情報を記憶するメモリ340およびメモリ340に記憶されたアドレス情報を元に演算部322a~nから一つを選択するセレクタ223を含む。レスポンス生成回路324には秘密鍵が記憶されているメモリ326が含まれている。図9の第2のレスポンス生成部320bは、レスポンス生成回路324、変換1を実行する演算部322b、およびセレクタ323に相当する。演算部320a~nはそれぞれ、変換0~nの変換関数Fを記憶している。演算部320a~n、セレクタ323、レスポンス生成回路324、アドレス情報を記憶するメモリ340からレスポンス値生成手段が形成される。セレクタ223、323は、それぞれメモリ240、340に記憶されたシリアルバスのアドレス値に応じて変換関数を選択するレスポンス選択部としても機能する。バス400は本実施形態ではI2Cバスである。I2Cバスを用いることによって、CPUと認証チップの接続は簡素なものとすることができ、システム全体のコストを抑えることができる。図11は、本発明の第2の実施形態に従うシステム10のCPU100で実行される処理のフローチャートを示す図であり、図12は本発明の第2の実施形態に従うシステムの認証チップで実行される処理のフローチャートを示す図である。CPU100は、S1101で認証対象の子機番号iを決定し、S1102に進む。S1102では、チャレンジCとして用いるために乱数を生成する。S1102の次のS1103では、S1102で生成されたチャレンジCをS1101で決定されたi番目の子機の認証チップ300_iに送信する。i番目の子機の認証チップ300_iでは、S1151で親機のCPU100によって送信されたチャレンジCを受信する。次に、S1152では、認証チップ300_iのレスポンス生成回路324中の秘密鍵記憶部326に記憶されている秘密鍵KとチャレンジCを用いて、レスポンスとしての出力値R=EncC、Kを生成する。次のS1153では、内部不揮発性メモリ340に記憶されたアドレス情報を元に、変換の繰り返し回数tiを決定する。繰り返し回数tiは、たとえば、アドレスに現れる数を順に並べて作られる整数であっても良い。S1153に引き続くS1154からS1157では、レスポンスRにti回関数Fを作用させる。より詳細には、S1154で整数であるダミー変数jに0を代入する。S1155でダミー変数の値を1つ増加させ、S1156でjとtiを比較する。S1156でjがtiより小さければS1157で現在のレスポンス値に関数Fを作用させ、レスポンス値を更新して、S1154に戻る。S1156でjがtiより大きければ現在のレスポンスRの値をCPU100に送信して、i番目の子機の認証チップ300_iの処理を終了する。CPU100は、S1104でi番目の子機の認証チップ300_iからのレスポンスRの値をレスポンスRQとして受信する。次に、S1105でチャレンジCを今度は、親機の認証チップ200に送信する。親機の認証チップ200では、先のi番目の子機の認証チップ300_iと同じ処理を行うが、i番目の子機の認証チップ300_iの場合とは、関数Fを作用させる回数がt0であり、tiとは異なる。CPU100は、S1106で親機の認証チップ200からのレスポンスRの値をレスポンスRPとして受信する。次に、S1107でtiとt0を比較し、tiがt0より大きければS1108に進み、そうでなければS1109に進む。S1108では、RPに関数Fを、ti-t0回作用させた値とRQが等しいかどうかを判定する。もし等しければi番目の子機を正規品と判定してCPU100の処理を終了する。そうでなければ、i番目の子機を正規品ではないと判定する。S1109では、RQに関数Fを、t0-ti回作用させた値とRPが等しいかどうかを判定してCPU100の処理を終了する。もし等しければi番目の子機を正規品と判定してCPU100の処理を終了する。そうでなければ、i番目の子機を正規品ではないと判定してCPU100の処理を終了する。このような構成を採用することによって、本実施形態のシステム10では、レスポンスRP、RQが異なるため、攻撃法1、攻撃法2に示したような、盗聴及び改ざんによる攻撃を防ぐことができる。第3実施形態図13~15を参照して本実施形態に従う認証システム20を説明する。図13は、本実施形態のシステム20を示す図、図14は、本実施形態に従うシステムのCPU1100で実行される処理のフローチャートを示す図であり、図15は本実施形態に従うシステム20の認証チップ1200、1300_iで実行される処理のフローチャートを示す図である。実施形態2に従うシステム10では、関数Fは非公開関数であっても、ハードウェア上で効率よい処理ができるFの種類は非常に限定的であるため、データ盗聴の結果から正しいFの内容が特定される可能性はなくはない。関数Fの内容が攻撃者に特定されたならば、攻撃1、攻撃2と同様の考え方に基づきつつ、関数Fにより変形されたレスポンスを返すように変更した攻撃法を用いることで、秘密鍵の値を知らなくとも偽造品を製造することが可能となる。本実施形態では、通信データの盗聴から変換手段を特定することがより困難なシステム20が提供される。本実施形態に従う子機認証システム20は、基本的には、第2実施形態のシステム10と同じであるが、事前共有された定数S共有値Sが書き込まれている不揮発性メモリ1280、1380を認証チップ1300_1~1300_n認証チップ1~認証チップnが含んでいる。この定数Sは、CPU1100および認証チップ1200、1300_1~1300_nの製造時に書き込まれる値である。i番目の認証チップが選択するデータ変換手段への入力をX、出力をYとすると、XとYの関係は、関数FS,Cを用いてY=FS,CtiXと表すことができる。ただし、FS,CXは定数S、チャレンジCをパラメータとした1入力1出力関数を表し、例えば、以下のような演算が挙げられる。4パラメータ付XOR加算5パラメータ付剰余演算6パラメータハッシュ演算7パラメータ付LFSR-XOR減算上記4の例としてはが含まれる。上記5の例としては、をビット結合、qXを128ビット既約多項式、modを剰余として、FS,CX=SCXmodqX、が含まれる。上記6の例としては、の最下位128ビット、が含まれる。上記7の例としては、が含まれる。4~7の具体例は、上記関数に限定されない。変換手段がチャレンジCと、外部から観察できない定数Sの影響を受けるため、変換のバリエーションが大きく増える。これにより、前述の通信データ盗聴を用いた変換手段の解読が攻撃者にとって困難となる。例えば、Sを128ビットパラメータとすることで、攻撃者の総当り総数は2128となり、現実時間内では解読不可能となる。すなわち、本実施形態のシステム20を用いることで、通信データ盗聴による変換手段の解読を用いた攻撃を回避することができる。また、本実施形態に従うシステム20では、攻撃者がCPU1100に対して高度なリバースエンジアリングを行い、関数Fの処理内容を解読した場合にも安全性を確保することができる。本実施形態のシステム20のCPU1100は、共有値を記憶するメモリ1140を含んでいる点を除けば、前実施形態のCPU100と同一である。親機の認証チップ1200は、実施形態2の親機の認証チップ200と類似の構成を有しているが、共有値Sを記憶するメモリ1280を含む点が異なっている。子機の認証チップ1300_1、...、1300_nは、実施形態2の子機の認証チップ認証チップ300と類似の構成を有するが、共有値Sを記憶するメモリ1380を含む点が異なっている。また、子機の認証チップ1300_1、...、1300_nは、親機の認証チップ1200と同じ構成を有する。図14は、本発明の第3実施形態に従うシステムのCPU1100で実行される処理のフローチャートを示す図であり、図15は本発明の第3の実施形態に従うシステムの認証チップで実行される処理のフローチャートを示す図である。CPU1100は、S1301で認証対象の子機番号iを決定し、S1302に進む。S1302では、チャレンジCとして用いるために乱数を生成する。S1302の次のS1303では、S1302で生成されたチャレンジCをS1301で決定されたi番目の子機の認証チップ1300_iに送信する。i番目の子機の認証チップ1300_iでは、S1351で親機のCPU1100によって送信されたチャレンジCを受信する。次に、S1352では、認証チップ1300_iのレスポンス生成回路324中の秘密鍵記憶部326に記憶されている秘密鍵KとチャレンジCを用いて、レスポンスとしての出力値R=EncC、Kを生成する。次のS1353では、内部不揮発性メモリ340に記憶されたアドレス情報を元に、変換の繰り返し回数tiを決定する。実施形態2と同様、繰り返し回数tiは、たとえば、アドレスに現れる数を順に並べて得られる整数であっても良い。S1353に引き続くS1354からS1357では、出力値Rにti回関数FS、Cを作用させる。関数FS、Cは、共有値SおよびチャレンジCによって決まる。より詳細には、S1354で整数であるダミー変数jに0を代入する。S1355でダミー変数の値を1つ増加させ、S1356でjとtiを比較する。S1356でjがtiより小さければS1357で現在のレスポンス値に関数FS、Cを作用させ、レスポンス値を更新して、S1354に戻る。S1356でjがtiより大きければ現在のレスポンスRの値をCPU1100に送信して、i番目の子機の認証チップ1300_iの処理を終了する。CPU1100は、S1304でi番目の子機の認証チップ1300_iからのレスポンスRの値をレスポンスRQとして受信する。次に、S1305でチャレンジCを今度は、親機の認証チップ1200に送信する。親機の認証チップ1200では、先のi番目の子機の認証チップ1300_iと同じ処理を行うが、i番目の子機の認証チップ1300_iの場合とは、関数FS、Cを作用させる回数がt0であり、tiとは異なる。CPU1100は、S1306で親機の認証チップ1200からレスポンスRの値をレスポンスRPとして受信する。次に、S1307でtiとt0を比較し、tiがt0より大きければS1308に進み、そうでなければS1309に進む。S1308では、RPに関数FS、Cを、ti-t0回作用させた値とRQが等しいかどうかを判定する。もし等しければ認証チップ1300_iを含むi番目の子機を正規品と判定する。そうでなければ、i番目の子機を正規品ではないと判定する。S1309では、RQに関数FS、Cを、t0-ti回作用させた値とRPが等しいかどうかを判定してCPU100の処理を終了する。もし等しければ認証チップ1300_iを含むi番目の子機を正規品と判定してCPU100の処理を終了する。そうでなければ、i番目の子機を正規品ではないと判定してCPU100の処理を終了する。前述のように、上記第2実施形態に従うシステム10では、関数Fのおよその内容を攻撃者が推定しながら、シリアルバス上のデータ盗聴を用いることで、変換手段0~変換手段nの内容を完全に特定する攻撃に弱い可能性があった。関数Fは、ハードウェア実装において効率的な処理である必要があるため、LFSR、加算、XOR、剰余演算、ハッシュ関数などその手段は限られる。よって、攻撃者は、Fはこれらのいずれであるか、組み合わせであるかを推定しながら、その推定が実際に正しいかを、シリアルバス上のデータ盗聴を用いて判定することができる。例えば認証チップ0、認証チップ1の2つを用いて、かつt0=0、t1=1にセットした場合、RP=R、RQ=FRとなる。このRP、RQは、攻撃者にも容易に観察可能な値である。このとき、攻撃者はFの演算内容の推定を行い、その推定が実際に正しいかを、RQ=FRPが成立するかどうか盗聴されたRP、RQから判定することで確認することが出来てしまうおそれがあった。しかし、本実施形態に従うシステム20では、変換手段がチャレンジCと、外部から観察できない定数Sの影響を受けるため、変換のバリエーションを大きく増やすことができる。これにより、前述の通信データ盗聴を用いた変換手段の解読が攻撃者にとって困難となる。例えば、定数Sを128ビットパラメータとすることで、攻撃者の総当り総数は2128となり、現実時間内では解読不可能となる。すなわち、本実施形態に従うシステム20を用いることで、第2実施形態に従うシステム10に対する、通信データ盗聴による変換手段の解読を用いた攻撃に対する耐性をさらに高めることができる。第4実施形態図16~20を参照して本発明の第4の実施形態に従う認証システム30を説明する。図16は本実施形態に従うシステム30を示す図、図17は本実施形態に従うシステム30で、認証チップ2200認証チップ0をCPUに装着する際にCPUで実行される処理のフローチャートを示す図、図18は本実施形態に従うシステム30で、認証チップ2200認証チップ0をCPU2100に装着する際に認証チップ2200で実行される処理のフローチャートを示す図、図19は、本実施形態に従うシステム30で、認証チップ2300_i認証チップiを含むi番目の子機を認証する際に、CPU2100で実行される処理のフローチャートを示す図、図20は、本実施形態に従うシステム30で、認証チップ2300_i認証チップiを含むi番目の子機を認証する際に、認証チップiで実行される処理のフローチャートを示す図である。第3実施形態に従うシステム20では、CPUに対する高度なリバースエンジニアリングを行った場合に、前述の共有値Sが特定できてしまう可能性がある。攻撃者は、CPUが実行するプログラムのROMコードを解析することで、変換手段FS、Cを特定できる可能性がある。しかし、本実施形態では、CPUに対する高度なリバースエンジニアリングを行った場合でも、変換手段FS、Cを特定することが難しいシステムが提供される。図16に示されているシステム30は、基本的には、図13に示されている前実施形態のシステム20と同じであるが、親機に装着されている認証チップ2200認証チップ0とCPU2100の間のみで、固有値Iが共有されている。この固有値Iは、親機全体の製造時に、親機のCPU2100に認証チップ2200認証チップ0を最初に装着した時点でCPU2100と認証チップ2200の間で共有され、それぞれの内部の不揮発性メモリ2160、2232に格納され、以降書き換えられない値である。この値は、CPU固体間で異なる値である。子機は、CPUと認証チップ0が固有値の共有を完了した後に、親機に対して取り付けられるため、認証チップ2300_1~2300_n認証チップ1~認証チップnは、固有値Iを知ることはできない。認証チップ内で提供される複数の変換手段のうち、親機が用いる変換手段0だけは、S、Cを用いた変換手段FS,Ct0を実行した後、この出力に対しさらに事前固有値Iをパラメータに含めた変換関数GIを実行することで、レスポンスRP=GIFS,Ct0Xを出力する。変換手段1~nについては、実施形態3と同じ方法を用いる。すなわち、変換手段iは、レスポンスRQ=FS,CtiXを出力する。ただし、実施形態2、3と異なり、本実施形態においては、全てのi=1、2、...、nに対してt0>ti、すなわちt0が最大の繰り返し回数として設定されなければならないという制約がある。この制約は、CPU2100が正規品の子機からのレスポンスRQを識別するための条件である。GIXは、固有値Iをパラメータとした1入力1出力関数ならば、どのような関数でも良いが、例えば以下のような関数を用いることで、回路規模を抑えた効率的な実装が可能となる。8パラメータつきXOR9パラメータつき剰余演算10パラメータつきハッシュ演算11パラメータつきLFSR減算上記8の例としては、ただしIはパラメータ固有値、が含まれる。上記9の例としては、はビット結合、qXは128ビット既約多項式、modを剰余として、GIX=IXmodqXが含まれる。上記10の例としては、の最下位128ビットであり、ただし、SHA1XはXのSHA-1ハッシュ関数出力、が含まれる。上記11の例としては、GIX=LFSRI、75-LFSRX、33が含まれる。本実施形態のシステム30のCPU2100は、共有値Sを記憶するメモリ1140および固有値Iを記憶するメモリ2160を含んでいる。親機の認証チップ2200は、実施形態3の親機の認証チップ1200と類似の構成を有しているが、固有値Iを記憶する不揮発性メモリ2232を含むこと、変換0を行う回路222aとセレクタ223の間に関数GIを用いて変換Gを行う回路2230を含む点が異なっている。変換Gを行う回路2230は、共有値Sを記憶するメモリ2280にも接続されている。子機の認証チップ2300_1、...、2300_nは、固有値Iを記憶するメモリ2232を含まないことを除けば、親機の認証チップ2200と同一の構成を有している。親機側の変換手段0による変換では、親機製造時にCPUと認証チップ0の間で共有され、以後変更されない固有値Iに基づいて行われる。この値は、子機側から観察できないため、この値を攻撃者が推定することは困難である。例えば、固有値Iを128ビットパラメータとすることで、攻撃者の総当り総数は2128となり、現実時間内では解読不可能となる。ただし、固有値IはCPU内部にも格納されている値であるため、CPUに対して高度なリバースエンジニアリングを行うことで、攻撃者が解読できる可能性がある。しかし、固有値IはCPU固体ごとに異なる値であるため、例え高度な技法を用いて固有値Iを解読することに攻撃者が成功したとしても、認証チップ偽造上の大きな脅威にはならない。なぜなら、解読された固有値Iは、親機の固体ごとに異なる値であるため、攻撃者は特定固体の親機に対してのみ利用可能な偽造チップを製造することができるが、全ての固体に共通する偽造チップにはならない。本実施形態に従うシステム40では、CPUのROMコードの解析を用いた高度なリバースエンジニアリング技術に成功したとしても、親機に搭載される認証チップ0の変換手段はCPU固体ごとに異なるため、全ての親機に用いることが可能な子機認証チップの偽造品の量産は不可能となり、攻撃者は偽造品を市場に流通させることを防ぐことが出来る。図17および18を参照して、本実施形態に従うシステム30で、認証チップ0をCPUに装着する際の処理を説明する。CPU2100は、S1501で、CPU2100内で発生させた乱数、現在時刻、CPUID、シリアル番号などを用いて、個体ごとにユニークな固有値Iを生成する。次にS1502で、固有値Iを親機の認証チップ認証チップ02200に送信する。S1551で、親機の認証チップ2200は、バス400を介してCPU2100から固有値Iを受信する。次に、S1552で、固有値Iを認証チップ2200の不揮発性メモリ2232に書き込み、S1553に進む。S1553では、親機に応答を送信する。この応答は、たとえば、不揮発性メモリ2232に書き込まれた値と固有値Iを比較した結果など、S1552の処理を確認できる情報である。CPU2100は、この親機の認証チップ2200からの応答をS1503で受信する。次のS1504でCPU2100は、S1503で受信した親機の認証チップ2200からの応答が、親機の認証チップ2200での固有値Iの書き込み動作が正常に行われたことを示している場合にはS1505に進み、固有値IをCPU2100の不揮発性メモリ2160に書き込んでCPU2100の処理を終了する。S1504での判定が、S1503で受信した親機の認証チップ2200からの応答が、親機の認証チップ2200での固有値Iの書き込み動作が正常に行われなかったことを示している場合には、CPU2100はエラー終了する。図19は本実施形態に従うシステム30で、認証チップiを含むi番目の子機を認証する際に、CPU2100で実行される処理のフローチャートを示す図であり、図20は、本実施形態に従うシステムで、認証チップiを含むi番目の子機を認証する際に、認証チップ2300_iで実行される処理のフローチャートを示す図である。CPU2100は、S1601で認証対象の子機番号iを決定し、S1602に進む。S1602では、チャレンジCとして用いるために乱数を生成する。S1602の次のS1603では、S1602で生成されたチャレンジCをS1601で決定されたi番目の子機の認証チップ2300_iに送信する。i番目の子機の認証チップ2300_iでは、S1651で親機のCPU2100によって送信されたチャレンジCを受信する。次に、S1652では、認証チップ300_iのレスポンス生成回路324中の秘密鍵記憶部326に記憶されている秘密鍵KとチャレンジCを用いて、レスポンスとしての出力値R=EncC、Kを生成する。次のS1653では、内部不揮発性メモリ340に記憶されたアドレス情報を元に、変換の繰り返し回数tiを決定する。S1653に引き続くS1654からS1657では、レスポンスRにti回関数FS、Cを作用させる。関数FS、Cは、共有値SおよびチャレンジCによって決まる。より詳細には、S1654で整数であるダミー変数jに0を代入する。S1655でダミー変数の値を1つ増加させ、S1656でjとtiを比較する。S1656でjがtiより小さければ現在のレスポンス値に関数FS、Cを作用させ、レスポンス値を更新して、S1655に戻る。S1656でjがtiより大きければ現在のレスポンスRの値をCPU2100に送信して、i番目の子機の認証チップ2300_iの処理を終了する。CPU2100は、S1604でi番目の子機の認証チップ2300_iからのレスポンスRの値をレスポンスRQとして受信する。次に、S1605でチャレンジCを今度は、親機の認証チップ2200に送信する。親機の認証チップ2200では、先のi番目の子機の認証チップ2300_iと同じ処理を行うが、i番目の子機の認証チップ2300_iの場合とは、関数FS、Cを作用させる回数がt0であり、tiとは異なる。CPU2100は、S1606で親機の認証チップ2200からのレスポンスRの値をレスポンスRPとして受信する。次に、S1607でRPがGIFS、Ct0-tiXに等しいかどうかを判定する。もし等しければi番目の子機を正規品と判定してCPU100の処理を終了する。そうでなければ、i番目の子機を正規品ではないと判定してCPU2100の処理を終了する。上の説明では、S1603およびS1604の処理後にS1605およびS1606の処理を実行した。しかしながら、S1605およびS1606の処理の後でS1603およびS1604の処理を行っても良い。つまり、親機の認証チップ2200へのチャレンジCの送信およびレスポンスRPの受信と子機の認証チップ2300_iへのチャレンジCの送信およびレスポンスRQの受信の順序は任意である。このような構成を用いることによって、高度なリバースエンジニアリングを用いた攻撃すらも回避した安全な認証を実現することができる。また、通信データの盗聴から変換手段を特定することを困難とすることができる。第5実施形態図21から23を参照して、本発明の第5の実施形態に従うシステム40を説明する。本実施形態は、図10に示されている第2実施形態のシステム10の特別な場合である。即ち、本実施形態では、変換関数はF0X=XとF1X=SHA-1出力の最下位128ビットの2種である。親機に認証チップ3200、子機に認証チップ3300が接続されている。チャレンジ、レスポンス、秘密鍵全て128ビットである。関数Fとして、SHA-1出力の最下位128ビットを利用する。関数Fの繰り返し回数は、t0=1、t1=0である。すなわち、CPU100から送信されるチャレンジCに対して、AES暗号化を用いて出力値R=EncC、Kを生成し、認証チップのアドレスが親機ならばRP=FRを、子機ならばRQ=RをレスポンスとしてCPU100に返信する。RP、RQを受け取ったCPU100は、FRQを計算し、RPと一致するならば子機を正規品と判定し、不一致ならば非正規品と判定する。図22は、本実施形態に従うシステム40のCPU100で実行される処理のフローチャートを示す図であり、図23は本実施形態に従うシステム40の親機の認証チップ3200および子機の認証チップ3300で実行される処理のフローチャートを示す図である。CPU100は、S1801でチャレンジCとして用いるために乱数を生成し、S1802に進む。S1802では、S1802で生成されたチャレンジCを子機の認証チップ3300に送信する。子機の認証チップ3300では、S1851で親機のCPU100によって送信されたチャレンジCを受信する。次に、S1852では、認証チップ3300のレスポンス生成回路324中の秘密鍵記憶部326に記憶されている秘密鍵KとチャレンジCを用いて、レスポンスとしての出力値R=EncC、Kを生成する。次のS1853では、内部不揮発性メモリ340に記憶されたアドレス情報を元に、変換の繰り返し回数tiを決定する。ここでt1=1である。S1853に引き続くS1854からS1857では、出力値Rにt1回関数F=SHA-1出力の最下位128ビット、を作用させる。より詳細には、S1854で整数であるダミー変数jに0を代入する。S1855でダミー変数の値を1つ増加させ、S1856でjとt1を比較する。S1856でjがt1より小さければ現在のレスポンス値にS1857で関数Fを作用させ、レスポンス値を更新して、S1855に戻る。S1856でjがtiより大きければ現在のレスポンスRの値をCPU100に送信して、子機の認証チップ3300の処理を終了する。CPU100は、S1803で子機の認証チップ3300からのレスポンスRの値をレスポンスRQとして受信する。次に、S18054チャレンジCを今度は、親機の認証チップ200に送信する。親機の認証チップ2200では、先の子機の認証チップ3300と同じ処理を行うが、子機の認証チップ3300の場合とは、関数Fを作用させる回数がt0=1であり、t1=0とは異なっている。CPU100は、S1805で親機の認証チップ2200からのレスポンスRの値をレスポンスRPとして受信する。次に、S1806で、RPに関数Fを作用させた値FRPとRQが等しいかどうかを判定する。もし等しければ子機を正規品と判定してCPU100の処理を終了する。そうでなければ、子機を正規品ではないと判定する。上の説明では、CPU2100は、S1802およびS1803の処理後にS1804およびS1805の処理を実行した。しかしながら、S1804およびS1805の処理の後でS1802およびS1803の処理を行っても良い。第6実施形態図24から26を参照して、本発明の第6の実施形態に従うシステム50を説明する。本実施形態は、図13に示されている第3実施形態のシステム20の特別な場合である。即ち、本実施形態では、子機の認証チップは子機1の認証チップ4300_1と子機2の認証チップ4300_2の2つを含み、レスポンス生成回路324で生成されたレスポンスに作用する関数として、が用意されている。本実施形態の構成を図24に示す。親機に認証チップ4200、子機に2個の認証チップ4300_1、4300_2が接続されている。チャレンジ、レスポンス、秘密鍵全て128ビットである。関数FS、Cとして、パラメータ付XOR加算を利用する。関数FS、Cの繰り返し回数は、t0=0、t1=1、t2=2である。すなわち、CPU1100から送信されるチャレンジCに対して、レスポンス生成回路224、324においてAES暗号化を用いてR=EncC、Kを生成し、認証チップのアドレスが親機ならばRP=Rを、子機1ならばRQ=FS、CRを、子機2ならRQ=FS、C2Rを、レスポンスとしてCPU100に返信する。RP、RQを受け取ったCPU1100は、Ftit0RPを計算し、RQと一致するならば子機を正規品と判定し、不一致ならば非正規品と判定する。すなわち、i=1の場合はFS、CRP=RQであるか、i=2の場合はFS、C2RP=RQであるかを判定する。本実施形態の認証システム50の処理を説明する。図25は、本実施形態に従うシステム50のCPU1100で実行される処理のフローチャートを示す図であり、図26は本実施形態に従うシステム50の親機または子機の認証チップ4200、4300_ii=1、2で実行される処理のフローチャートを示す図である。CPU100は、S2001で認証対象の子機番号iを決定し、S2002に進む。ここでi=1または2である。S2002では、チャレンジCとして用いるために乱数を生成する。S2002の次のS2003では、S2002で生成されたチャレンジCをS2001で決定されたi番目の子機の認証チップ4300_iに送信する。i番目の子機の認証チップ4300_iでは、S2051で親機のCPU1100によって送信されたチャレンジCを受信する。次に、S2052では、認証チップ4300_iのレスポンス生成回路324中の秘密鍵記憶部326に記憶されている秘密鍵KとチャレンジCを用いて、レスポンスとしての出力値R=EncC、Kを生成する。次のS2053では、内部不揮発性メモリ340に記憶されたアドレス情報を元に、変換の繰り返し回数tiを決定する。S2053に引き続くS2054からS2057では、レスポンスRにti回関数FS、Cを作用させる。関数FS、Cは、共有値SおよびチャレンジCによって決まる。より詳細には、S2054で整数であるダミー変数jに0を代入する。S2055でダミー変数の値を1つ増加させ、S2056でjとtiを比較する。S2056でjがtiより小さければ現在のレスポンス値にS2057で関数FS、Cを作用させ、レスポンス値を更新して、S2055に戻る。S2056でjがtiより大きければ現在のレスポンスRの値をCPU1100に送信して、i番目の子機の認証チップ1300_iの処理を終了する。CPU1100は、S2004でi番目の子機の認証チップ4300_iからレスポンスRの値をレスポンスRQとして受信する。次に、S2005でチャレンジCを今度は、親機の認証チップ4200に送信する。親機の認証チップ4200では、先のi番目の子機の認証チップ4300_iと同じ処理を行うが、i番目の子機の認証チップ4300_iの場合、関数FS、Cを作用させる回数がt0であり、tiとは異なる。今の場合、t0=0であるので、関数FS、Cは作用させない。CPU1100は、S2006で親機の認証チップ4200からのレスポンスRの値をレスポンスRPとして受信する。次にS2007では、RQがFS、Ct0-tiRPに等しいかどうかを判定する。もし等しければi番目の子機を正規品と判定してCPU1100の処理を終了する。そうでなければ、i番目の子機を正規品ではないと判定してCPU1100の処理を終了する。第7実施形態図27から31を参照して、本発明の第7の実施形態に従うシステム60を説明する。本実施形態は、図16に示されている第4実施形態のシステム30の特別な場合である。即ち、本実施形態では、子機の認証チップは子機1の認証チップ5300_1と子機2の認証チップ5300_2の2つを含み、レスポンス生成回路324で生成されたレスポンスに作用する変換関数FS、Cとしてパラメータ付剰余算FS、CX=SCXmodqX、変換関数GIとして、の最下位128ビットを用いる。親機に認証チップ5200、子機に2個の認証チップ5300_1、5300_2が接続されている。チャレンジ、レスポンス、秘密鍵全て128ビットである。関数FS、Cとしてパラメータ付剰余算FS、CX=SCXmodqXを、関数GIとしてパラメータつきハッシュ演算:の最下位128ビット、を利用する。ただし、qXは128ビット既約多項式である。関数FS、Cの繰り返し回数は、t0=2、t1=1,t2=0である。つまり、CPU2100から送信されるチャレンジCに対して、AES暗号化を用いてR=EncC、Kを生成し、認証チップのアドレスが親機ならばRP=GIFS、C2Rを、子機1ならばRQ=FS、CRを、子機2ならRQ=Rを、レスポンスとしてCPU2100に返信する。RP、RQを受け取ったCPU2100は、GIFS、C2-tiRQを計算し、RPと一致するならば子機を正規品と判定し、不一致ならば非正規品と判定する。すなわち、i=1の場合はGIFS、CRQRPであるか、i=2の場合はGIFS、C2RQRPであるかを判定する。図28および29を参照して、本実施形態に従うシステム60で、認証チップ5200をCPU2100に装着する際の処理を説明する。CPU2100は、S2201で、CPU2100内で発生させた乱数、現在時刻、CPUID、シリアル番号などを用いて、CPU固体ごとにユニークな固有値Iを生成する。次にS2202で、固有値Iを親機の認証チップ認証チップ05200に送信する。S2251で、親機の認証チップ5200は、バス400を介してCPU2100から固有値Iを受信する。次に、S2252で、固有値Iを認証チップ5200の不揮発性メモリ2232に書き込み、S2253に進む。S2253では、親機に応答を送信する。この応答は、たとえば、不揮発性メモリ2232に書き込まれた値と固有値Iを比較した結果など、S2252の処理を確認できる情報である。CPU2100は、この親機の認証チップ5200からの応答をS2203で受信する。次のS2204でCPU2100は、S2203で受信した親機の認証チップ5200からの応答が、親機の認証チップ5200での固有値Iの書き込み動作が正常に行われたことを示している場合にはS2205に進み、固有値IをCPU2100の不揮発性メモリ2160に書き込んでCPU2100の処理を終了する。S2204での判定が、S2203で受信した親機の認証チップ5200からの応答が、親機の認証チップ5200での固有値Iの書き込み動作が正常に行われなかったことを示している場合には、CPU2100はエラー終了する。図30は本実施形態に従うシステム60で、認証チップ認証チップ~25200、5300_1、5300_2を含む親機およびi番目の子機を認証する際に、CPU2100で実行される処理のフローチャートを示す図であり、図31は、本実施形態に従うシステムで、認証チップiを含む親機またはi番目の子機を認証する際に、認証チップ5200、5300_ii=1、2で実行される処理のフローチャートを示す図である。CPU2100は、S2301で認証対象の子機番号iを決定し、S2302に進む。S2302では、チャレンジCとして用いるために乱数を生成する。S2302の次のS2303では、S2302で生成されたチャレンジCをS2301で決定されたi番目の子機の認証チップ5300_iに送信する。i番目の子機の認証チップ5300_iでは、S2351で親機のCPU2100によって送信されたチャレンジCを受信する。次に、S2352では、認証チップ5300_iのレスポンス生成回路324中の秘密鍵記憶部326に記憶されている秘密鍵KとチャレンジCを用いて、レスポンスとしての出力値R=EncC、Kを生成する。次のS2353では、内部不揮発性メモリ340に記憶されたアドレス情報を元に、変換の繰り返し回数tiを決定する。S2353に引き続くS2354からS2357では、レスポンスRにti回関数FS、Cを作用させる。関数FS、Cは、共有値SおよびチャレンジCによって決まる。より詳細には、S1654で整数であるダミー変数jに0を代入する。S2355でダミー変数の値を1つ増加させ、S2356でjとtiを比較する。S2356でjがtiより小さければS2357で現在のレスポンス値に関数FS、Cを作用させ、レスポンス値を更新して、S2355に戻る。S2356でjがtiより小さくなければ、S2358に進む。S2358では、現在認証中のチップが親機であるかを判定する。今の場合、認証チップは親機のものではないので、現在のレスポンスRの値をCPU2100に送信して、i番目の子機の認証チップ5300_iの処理を終了する。CPU2100は、S2304でi番目の子機の認証チップ2300_iからのレスポンスRの値をレスポンスRQとして受信する。次に、S2305でチャレンジCを今度は、親機の認証チップ5200に送信する。親機の認証チップ5200では、先のi番目の子機の認証チップ5300_iと同じ処理を行うが、i番目の子機の認証チップ5300_iの場合とは、関数FS、Cを作用させる回数がt0であり、tiとは異なること、S2358での現在認証中のチップが親機であるかの判定で、今の場合、親機であるから、S2359に進むことが異なる。S2359では、固有値IとGI計算回路2230を用いて、GIFS、C2-tiRQを計算する。CPU2100は、S2306で親機の認証チップ2200からのレスポンスRの値をレスポンスRPとして受信する。次に、S1607でRPがGIFS、C2-tiRQに等しいかどうかを判定する。もし等しければi番目の子機を正規品と判定してCPU2100の処理を終了する。そうでなければ、i番目の子機を正規品ではないと判定してCPU2100の処理を終了する。"