(57)【要約】【課題】電源電流の変化や磁界による内部データの漏洩を防止する。【解決手段】  10ビットアドレスバス２６と10ビットデータバス２７の少なくとも一方を、パラレル通信の信号線で構成する。本発明の情報処理装置は、内部データのデータ表現に、例えば10ビットのDコード表現のデータを適用する。10ビットのDコード表現のデータを用いてメモリアドレスの指示や、ROM６−１，RAM６−２，および不揮発性メモリ６−３の内部データの読み出し、及び書き込みを行う。本発明は、接触ICカード及び非接触ICカードに適用できる。【選択図】図６
2010204881.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する記憶手段と、
前記記憶手段の所定のアドレスを指定して、前記アドレスからデータを読み出す処理を少なくとも実行する処理手段と、
前記処理手段による前記アドレスの指定に関するアドレスデータを、伝搬するアドレス伝搬手段と、
前記処理手段、前記記憶手段、外部とのうち一方から他方へ前記データを伝搬するデータ伝搬手段と、
前記アドレスデータの形態を、前記処理手段で取り扱う第１の形態から、データの幅をWとして、各データにおけるビットが１となる総数をBとすると、B＝W/2＜＝±1、かつ、直前までのデータの累積でも±1以内とする規則を有する第２の形態に変換して、前記アドレス伝搬手段に供給する第１の変換手段と、
前記アドレス伝搬手段を伝搬されてきた前記アドレスデータの形態を、前記第２の形態から前記第１の形態に逆変換して、逆変換後の前記アドレスデータを用いて、前記記憶手段のアクセス制御をする第１の逆変換手段と、
前記処理手段から供給された前記データの形態を、前記第１の形態から前記第２の形態に変換して、前記データ伝搬手段に供給する第２の変換手段と、
前記データ伝搬手段を伝搬されてきた前記データの形態を、前記第２の形態から前記第１の形態に逆変換して、前記処理手段に供給する第２の逆変換手段と
を備え、
前記アドレス伝搬手段と前記データ伝搬手段とのうち少なくとも一方は、パラレル通信を行っており、
前記第１の変換手段は、所定のタイミングで、前記第２の形態の前記アドレスデータまたは前記データの直前までの累積値を初期化し、その累積値の初期化を指示する制御データを第２の形態で生成し、前記アドレス伝搬手段を介して前記第１の逆変換手段に送信し、
前記第１の逆変換手段は、前記制御データに従って前記累積値を初期化し、前記第２の形態の制御データを前記データ伝搬手段を介して前記第２の逆変換手段に送信する制御をし、
前記第２の逆変換手段は、前記制御データに従って前記累積値を初期化し、その累積値の初期化を前記第２の変換手段に通知し、
前記第２の変換手段は、前記第２の逆変換手段からの通知に従って、前記累積値を初期化する
情報処理装置。
【請求項２】
前記記憶手段は、前記データを前記第１の形態で記憶し、
前記前記記憶手段から読み出された前記データの形態を、前記第１の形態から前記第２の形態に変換して、前記データ伝搬手段に出力する第３の変換手段
をさらに備える請求項１に記載の情報処理装置。
【請求項３】
前記記憶手段は、前記データの書き込みが可能であり、
前記第３の変換手段はさらに、前記データ伝搬手段を伝搬されてきた前記データの形態を、前記第２の形態から前記第１の形態に逆変換して、前記記憶手段に書き込む
請求項２に記載の情報処理装置。
【請求項４】
前記第１の変換手段は、さらに、前記アドレス伝搬手段を伝送するデータのアドレス伝搬エラーを監視し、前記アドレス伝搬エラーが発生した場合そのことを示す制御データを前記第２の形態で生成して、前記データ伝搬手段を介して前記処理手段に送信する
請求項１に記載の情報処理装置。
【請求項５】
前記第２の変換手段は、さらに、前記データ伝搬手段を伝送するデータのデータ伝搬エラーを監視し、前記データ伝搬エラーが発生した場合そのことを示す制御データを前記第２の形態で生成して、前記アドレス伝搬手段を介して前記処理手段に送信する
請求項１に記載の情報処理装置。
【請求項６】
データを記憶する記憶手段と、
前記記憶手段の所定のアドレスを指定して、前記アドレスからデータを読み出す処理を少なくとも実行する処理手段と、
前記処理手段による前記アドレスの指定に関するアドレスデータを、伝搬するアドレス伝搬手段と、
前記処理手段、前記記憶手段、外部とのうち一方から他方へ前記データを伝搬するデータ伝搬手段と
を備え、前記アドレス伝搬手段と前記データ伝搬手段とのうち少なくとも一方は、パラレル通信を行っている
情報処理装置が実行するステップとして、
前記アドレスデータの形態を、前記処理手段で取り扱う第１の形態から、データの幅をWとして、各データにおけるビットが１となる総数をBとすると、B＝W/2＜＝±1、かつ、直前までのデータの累積でも±1以内とする規則を有する第２の形態に変換して、前記アドレス伝搬手段に供給する第１の変換ステップと、
前記アドレス伝搬手段を伝搬されてきた前記アドレスデータの形態を、前記第２の形態から前記第１の形態に逆変換して、逆変換後の前記アドレスデータを用いて、前記記憶手段のアクセス制御をする第１の逆変換ステップと、
前記処理手段から供給された前記データの形態を、前記第１の形態から前記第２の形態に変換して、前記データ伝搬手段に供給する第２の変換ステップと、
前記データ伝搬手段を伝搬されてきた前記データの形態を、前記第２の形態から前記第１の形態に逆変換して、前記処理手段に供給する第２の逆変換ステップと、
所定のタイミングで、前記第２の形態の前記アドレスデータまたは前記データの直前までの累積値を初期化する初期化ステップと
を含み、
前記初期化ステップの処理においては、前記累積値の初期化を指示する制御データが用いられ、前記制御データが伝搬される場合、前記第２の形態で、前記データ伝送手段または前記アドレス伝搬手段を伝送される
情報処理方法。
【請求項７】
データを記憶する記憶手段と、
前記記憶手段の所定のアドレスを指定して、前記アドレスからデータを読み出す処理を少なくとも実行する処理手段と、
前記処理手段による前記アドレスの指定に関するアドレスデータを、伝搬するアドレス伝搬手段と、
前記処理手段、前記記憶手段、外部とのうち一方から他方へ前記データを伝搬するデータ伝搬手段と
を備え、前記アドレス伝搬手段と前記データ伝搬手段とのうち少なくとも一方は、パラレル通信を行っている
情報処理装置を制御するコンピュータに実行させるステップとして、
前記アドレスデータの形態を、前記処理手段で取り扱う第１の形態から、データの幅をWとして、各データにおけるビットが１となる総数をBとすると、B＝W/2＜＝±1、かつ、直前までのデータの累積でも±1以内とする規則を有する第２の形態に変換して、前記アドレス伝搬手段に供給する第１の変換ステップと、
前記アドレス伝搬手段を伝搬されてきた前記アドレスデータの形態を、前記第２の形態から前記第１の形態に逆変換して、逆変換後の前記アドレスデータを用いて、前記記憶手段のアクセス制御をする第１の逆変換ステップと、
前記処理手段から供給された前記データの形態を、前記第１の形態から前記第２の形態に変換して、前記データ伝搬手段に供給する第２の変換ステップと、
前記データ伝搬手段を伝搬されてきた前記データの形態を、前記第２の形態から前記第１の形態に逆変換して、前記処理手段に供給する第２の逆変換ステップと、
所定のタイミングで、前記第２の形態の前記アドレスデータまたは前記データの直前までの累積値を初期化する初期化ステップと
を含むプログラムであって、
前記初期化ステップの処理においては、前記累積値の初期化を指示する制御データが用いられ、前記制御データが伝搬される場合、前記第２の形態で、前記データ伝送手段または前記アドレス伝搬手段を伝送される
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び方法、並びにプログラムに関し、特に、タンパ攻撃による内部データの漏洩を防止する情報処理装置及び方法、並びにプログラムに関する。
【背景技術】
【０００２】
近年、IC（Integrated Circuit）カードの普及が著しい。このため、ICカードの不正なアクセスを目論む第三者が、その内部データを不正に読み出したり、書き換えたりすることで、ICカードに攻撃をしかけることがある。なお、以下、かかる攻撃をタンパ攻撃と称する。
【０００３】
タンパ攻撃の手法として、ICチップの消費電力の変化を解析し、内部動作を調べることにより内部データを推定する手法が存在する。なお、以下、かかる手法を、電力解析法と称する。また、タンパ攻撃の手法として、ICチップから発生する電磁波の磁界の変化を解析し、内部動作を調べることにより内部データを推定する手法が存在する。なお、以下、かかる手法を、電磁波解析法と称する。
【０００４】
さらに、タンパ攻撃の手法として、ICチップに光や放射線を照射することによって誤作動を誘発し、内部データを推定したり、不正に書き換えたりする手法が存在する。なお、以下、かかる手法を、光照射法と称する。さらにまた、タンパ攻撃の手法として、ICチップに対し、電気的信号を読み取るマイクロプローバ等を直接接触させて、内部データを取得する手法が存在する。なお、以下、かかる手法を、直接プロービング法と称する。
【０００５】
これら多種多様な手法によりなされるタンパ攻撃に対しても、内部データの漏洩や改ざんを防止できるように、対タンパ性の向上がICカードに求められている。
【０００６】
例えば、ICカードに含まれるICチップにおいては、バス上を伝搬している内部データが2進数で表現されている。ICチップには、内部データの通信に必要なデータ線があり、必要に応じてそのデータ線の誤りを検出する符号、即ちパリティビットが用いられている。ICチップは、パリティビットを用いてメモリデータの異常を検出することで、ICカードの信頼性の向上を図っている。しかしながら、パリティビットを用いる手法においては、内部データがバス上に伝搬されているときに、その情報の状態変化が、電流の変化や磁界の変化として現れてしまう。このため、電源ラインの消費電流や、または外部へ漏洩する磁界変化を介して、上述した電力解析法や電磁波解析法により内部データが漏洩する恐れがある。この内部データの漏洩に対する手法（以下、データ漏洩対策手法）として、従来例えば、次のような第１乃至第４のデータ漏洩対策手法が提案されている。
【０００７】
従来の第１のデータ漏洩対策手法とは、アクセスメモリのアドレスを指定する手法である。この手法を採用することで、指定されたアドレス以外からの内部データへのアクセスを拒否することができる。
【０００８】
従来の第２のデータ漏洩対策手法とは、内部データを、秘密鍵によって暗号化する暗号回路に対して転送する手法である。
【０００９】
従来の第３のデータ漏洩対策手法とは、直接プロービング法によるタンパ攻撃に対する対策として、ICチップに微細加工を施す手法である。
【００１０】
従来の第４のデータ漏洩対策手法とは、電力解析法によるタンパ攻撃に対する対策用として、特許文献１に開示されている手法である。即ち、特許文献１によれば、ターゲット回路に対してサブターゲット回路が設けられる。このサブターゲット回路にダミー信号を入力することで、ターゲット回路における消費電力と、サブターゲット回路における消費電力の和を略一定とする手法が、従来の第４のデータ漏洩対策手法である。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００５−３２２０１８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、従来の第１のデータ漏洩対策手法では、アクセスメモリのアドレスを指定する場合に、同一のプログラムコードを毎回用いる。このため、第三者により同一アドレス信号が生成される場合がある。このような場合、内部データが漏洩する恐れがある。
【００１３】
従来の第２のデータ漏洩手法では、暗号化回路に対して、同一パターンのデータが毎回転送される。よって、第三者により、この転送パターンが統計学的に解析される場合がある。このような場合、内部データが漏洩する恐れがある。
【００１４】
従来の第３のデータ漏洩対策手法が採用された場合には、第三者により、直接プロービング法を用いて、同一プログラムによる処理の繰り返し状態が補足され、バスデータが１本ずつ個別にモニタリングされるおそれがある。このため、第三者により、個別にモニタしたバスデータが組み合わされて内部データが解析される場合がある。その結果、内部データが漏洩する恐れがある。
【００１５】
従来の第４のデータ漏洩対策手法では、電力解析法によるタンパ攻撃の対策用としては好適であるが、他のタンパ攻撃手法の対策用としては一概に好適であるとはいえない。
【００１６】
本発明は、このような状況に鑑みてなされたものであり、タンパ攻撃による内部データの漏洩を防止することができるようにするものである。
【課題を解決するための手段】
【００１７】
本発明の一側面は、データを記憶する記憶手段と、前記記憶手段の所定のアドレスを指定して、前記アドレスからデータを読み出す処理を少なくとも実行する処理手段と、前記処理手段による前記アドレスの指定に関するアドレスデータを伝搬するアドレス伝搬手段と、前記処理手段、前記記憶手段、外部とのうち一方から他方へ前記データを伝搬するデータ伝搬手段と、前記アドレスデータの形態を、前記処理手段で取り扱う第１の形態から、データの幅をWとして、各データにおけるビットが１となる総数をBとすると、B＝W/2＜＝±1、かつ、直前までのデータの累積でも±1以内とする規則を有する第２の形態に変換して、前記アドレス伝搬手段に供給する第１の変換手段と、前記アドレス伝搬手段を伝搬されてきた前記アドレスデータの形態を、前記第２の形態から前記第１の形態に逆変換して、逆変換後の前記アドレスデータを用いて、前記記憶手段のアクセス制御をする第１の逆変換手段と、前記処理手段から供給された前記データの形態を、前記第１の形態から前記第２の形態に変換して、前記データ伝搬手段に供給する第２の変換手段と、前記データ伝搬手段を伝搬されてきた前記データの形態を、前記第２の形態から前記第１の形態に逆変換して、前記処理手段に供給する第２の逆変換手段とを備える情報処理装置である。前記アドレス伝搬手段と前記データ伝搬手段とのうち少なくとも一方は、パラレル通信を行っており、前記第１の変換手段は、所定のタイミングで、前記第２の形態の前記アドレスデータまたは前記データの直前までの累積値を初期化し、その累積値の初期化を指示する制御データを第２の形態で生成し、前記アドレス伝搬手段を介して前記第１の逆変換手段に送信し、前記第１の逆変換手段は、前記制御データに従って前記累積値を初期化し、前記第２の形態の制御データを前記データ伝搬手段を介して前記第２の逆変換手段に送信する制御をし、前記第２の逆変換手段は、前記制御データに従って前記累積値を初期化し、その累積値の初期化を前記第２の変換手段に通知し、前記第２の変換手段は、前記第２の逆変換手段からの通知に従って、前記累積値を初期化する情報処理装置である。
【００１８】
前記記憶手段は、前記データを前記第１の形態で記憶し、前記前記記憶手段から読み出された前記データの形態を、前記第１の形態から前記第２の形態に変換して、前記データ伝搬手段に出力する第３の変換手段をさらに備えることができる。
【００１９】
前記記憶手段は、前記データの書き込みが可能であり、前記第３の変換手段はさらに、前記データ伝搬手段を伝搬されてきた前記データの形態を、前記第２の形態から前記第１の形態に逆変換して、前記記憶手段に書き込むことができる。
【００２０】
前記第１の変換手段は、さらに、前記アドレス伝搬手段を伝送するデータのアドレス伝搬エラーを監視し、前記アドレス伝搬エラーが発生した場合そのことを示す制御データを前記第２の形態で生成して、前記データ伝搬手段を介して前記処理手段に送信することができる。
【００２１】
前記第２の変換手段は、さらに、前記データ伝搬手段を伝送するデータのデータ伝搬エラーを監視し、前記データ伝搬エラーが発生した場合そのことを示す制御データを前記第２の形態で生成して、前記アドレス伝搬手段を介して前記処理手段に送信することができる。
【００２２】
本発明の一側面である情報処理装置の情報処理方法とプログラムのそれぞれは、上述した本発明の情報処理装置に対応する方法とプログラムのそれぞれである。
【００２３】
本発明の一側面においては、データが記憶され、所定のアドレスが指定され、前記アドレスからデータを読み出す処理が少なくとも実行され、前記アドレスの指定に関するアドレスデータが伝搬される。前記データが伝搬され、前記アドレスデータの形態を、第１の形態から、データの幅をWとして、各データにおけるビットが１となる総数をBとすると、B＝W/2＜＝±1、かつ、直前までのデータの累積でも±1以内とする規則を有する第２の形態に変換される。伝搬されてきた前記アドレスデータの形態が、前記第２の形態から前記第１の形態に逆変換され、逆変換後の前記アドレスデータを用いて、アクセス制御される。さらに、前記データの形態が、前記第１の形態から前記第２の形態に変換され、伝搬されてきた前記データの形態が、前記第２の形態から前記第１の形態に逆変換される。所定のタイミングで、前記第２の形態の前記アドレスデータまたは前記データの直前までの累積値が初期化され、その累積値の初期化を指示する制御データが第２の形態で生成され、前記第１の逆変換手段に送信され、前記制御データに従って前記累積値が初期化される。前記第２の形態の制御データにより送信する制御がなされ、前記制御データに従って前記累積値が初期化され、その累積値の初期化が通知され、通知に従って、前記累積値が初期化される。
【発明の効果】
【００２４】
本発明の一側面によれば、タンパ攻撃による内部データの漏洩を防止することができる。
【図面の簡単な説明】
【００２５】
【図１】5B6B変換コードについて説明する図である。
【図２】3B4B変換コードについて説明する図である。
【図３】Dコードにおけるランニングディスパリティ値（Running Disparity値：以下、RD値と称する）の調整の規則について説明する図である。
【図４】8B10B変換により得られる、Kコードについて説明する図である。
【図５】Kコードに対して割り当てられた制御信号の一例を説明する図である。
【図６】本発明が適用された情報処理装置の第１の実施の形態の構成例を示す機能ブロック図である。
【図７】本発明が適用された情報処理方法の、第１の実施の形態の処理の一例を説明するフローチャートである。
【図８】8ビットの2進数表現と、10ビットのDコード表現における消費電力及び磁界の変化について説明する図である。
【図９】8ビット2進数表現における消費電流の分布について説明する図である。
【図１０】10ビットDコード表現における消費電流の分布について説明する図である。
【図１１】本発明が適用された情報処理装置の第２の実施の形態の構成例を示す機能ブロック図である。
【図１２】本発明が適用された情報処理方法の、第２の実施の形態の処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【００２６】
以下、図面を参照して、本発明が適用される情報処理装置の実施の形態として、２の実施の形態（以下、それぞれ第１及び第２の実施の形態と称する）について説明する。よって、説明は以下の順序で行う。
１、本発明の概要
２、第１の実施の形態（入力：8ビットの2進数表現の例）
３、第２の実施の形態（入力：10ビットのDコード表現の例）
【００２７】
＜１．本発明の概要＞
本発明が適用される情報処理装置においては、2進数表現のデータを、例えば、データの0と1の数が同じになるように変換するDCフリーコードを用いて変換する。具体的には例えば、DCフリーコードとしては、8B10B変換により得られるDコードが存在する。
【００２８】
さらに、本発明が適用される情報処理装置は、内部データの通信をパラレル通信で行う。即ち、本発明が適用される情報処理装置は、アドレスバス、データバスが、パラレル接続された信号線で構成され、そのデータ表現として、DCフリーコードが適用される。換言すると、本発明が適用される情報処理装置は、DCフリーコードを用いてメモリアドレスの指示や、書き込み及び読み出し等のデータの伝送を行う。
【００２９】
以下に、DCフリーコードの一例であるDコードを生成可能な8B10B変換について、その概略を説明する。
【００３０】
［8B10B変換の概略の説明］
8B10B変換とは、8ビットの2進数表現のデータを、10ビットの2進数表現のデータに変換する手法であり、従来シリアル通信に適用されていた手法をいう。後述する本発明の第１及び第２の実施の形態では、8B10B変換が、パラレル通信に適用されている。
【００３１】
8B10B変換においては、入力された8ビットの2進数表現のデータが、ビットウエイトの軽い順にABCDEの5ビットのデータと、FGHの3ビットのデータに分けられる。5ビットのデータは、6ビットのデータにビット変換される。また、3ビットのデータは、4ビットのデータにビット変換される。ビット変換後の6ビットのデータと4ビットのデータが合成されて、計10ビットのデータが得られる。このようにして、8ビットの2進数表現のデータが計10ビットのデータに変換される。なお8B10B変換には、法則性は特になく、後述する図１や図２に示される表が用いられる。
【００３２】
8B10B変換により得られる10ビットのデータは、データそのものを示すDコードと、制御信号を示すKコードとに大別できる。Dコードは、シンボルD.ｘ.ｙ（ｘは00乃至31の整数、ｙは0乃至6の整数、及びP7，A7）で表現される。以下、この表現をDコード表現と称する。また、Kコードは、シンボルK.ｘ.ｙ（ｘは00乃至31の整数、ｙは0乃至7の整数）で表現される。以下、この表現をKコード表現と称する。
【００３３】
さらにシンボルD.ｘ.ｙ、及びK.ｘ.ｙには、それぞれ2種類のデータが存在する。これら2種類のデータのどちらを出力するかは、ランニングディスパリティ値（Running Disparity値：以下、RD値と称する）により決定される。RD値は、連続するデータの各ビットに対し、10ビット表現の1の数と0の数とを累計し、1の数と0の数の差分を見る値である。8B10B変換においては、RD値が例えば±1の範囲の値になるように、Dコードの発生パターンが切り替えられる。
【００３４】
即ち、8B10B変換においては、RD値が例えば±1の範囲を超えた値となった場合は、データに何らかのエラーがあることが判る。また、8B10B変換においては、RD値の初期値（以下、RD初期値と称する）が乱数により選択された後、8B10B変換が開始される。よって、同じデータでもDコードの発生パターンが変わるという特徴がある。さらに、8B10B変換においては、1024のパターンのうち、Dコードとして255を選択して使うので、残りのパターン（DCフリーコードの特徴をもつパターン）のKコードを、制御パターンのコードとしてパラレルバスに流すことで、周辺装置をコントロールすることができる。
【００３５】
図１は、8ビットの2進数表現のデータのうち5ビットのデータEDCBAが、6ビットのデータabcdeiにビット変換される場合の対応関係を示している。なお、以下、このようなビット変換を、5B6B変換と称する。また、5B6B変換により得られるデータabcdeiを、5B6Bコードと称する。データを示す5B6Bコードは、D.ｘと表現される。制御信号を示す5B6Bコードは、K.ｘと表現される。
【００３６】
図２は、8ビットの2進数表現のデータのうち3ビットのデータHGFが、4ビットのデータfghjにビット変換される場合の対応関係を示している。なお、以下、このようなビット変換を、3B4B変換と称する。また、3B4B変換により得られるデータfghjを、3B4Bコードと称する。データを示す3B4Bコードは、D.ｘ.yと表現される。制御信号を示す3B4Bコードは、K.ｘ.yと表現される。
【００３７】
なお、D.ｘ.yと表現される3B4Bコードのうち、D.ｘ.P7及びD.ｘ.A7については、シリアル通信の場合には、直前のデータの値によって、どちらか一方を選択することになっている。しかしながら、パラレル通信の場合には、どちらか一方を選択する必要はなく、常にD.ｘ.P7を使用することができる。
【００３８】
上述した図１と図２を用いて説明した5B6Bコードと3B4Bコードを組み合わせることにより、Dコード（D.x.y）やKコード（K.ｘ.y）が生成される。具体的には例えば、データを示す5B6Bコード（D.00）と、データを示す3B4Bコード（D.x.0）を組み合わせた場合には、Dコードは、D.00.0となる。また例えば、制御信号を示す5B6Bコード（K.28）と、制御信号を示す3B4Bコード（K.x.0）を組み合わせた場合には、Kコードは、K.28.0となる。なお、Kコードの一例については、図４を用いて後述する。
【００３９】
図３は、DコードにおけるRD値の調整の規則について説明する図である。
【００４０】
図３において、「前のRD値」には、直前までに変換済の１以上の10ビットのDコード表現のデータについてのRD値であって、今回の8B10B変換に用いられるRD値が記述されている。「8B10B変換後のデータのディスパリティ値」には、今回変換対象の10ビットのDコード表現のデータ内のディスパリティ値が記述されている。「次のRD値」には、今回変換対象の10ビットのDコード表現のデータも含めたに変換済の複数の10ビットのDコード表現のデータについてのRD値であって、次回の8B10B変換に用いられるRD値が記述されている。
【００４１】
即ち、DコードにおけるRD値の調整の規則とは、同一行において、「前のRD値」を用いて8B10B変換が行われた場合に生成される10ビットのDコード表現のデータの「8B10B変換後のデータのディスパリティ値」によって、「次のRD値」が決定される、という規則である。
【００４２】
図４は、制御用信号を示すKコードの一例である。Kコードは、上述したように、制御信号を示す5B6Bコードと、制御信号を示す3B4Bコードとの組み合わせにより構成される。これにより、図４の例に示されるような複数の種類のKコードを生成することができる。
【００４３】
図５は、Kコードに対して割り当てられた制御信号の一例を説明する図である。例えば後述する第１の実施形態では、Initializeという制御信号が使用される。よって、このような場合には、図５の１行目に示されるように、K.28.7というKコードが用いられることになる。なお、Kコードに対して割り当てる制御信号の種類は、図５の例に特に限定されない。即ち、8B10B変換においては、Kコードに、各種の機能を実行する制御信号が任意に割り当てることが可能である。
【００４４】
以上、図１乃至図５を用いて、8B10B変換について説明した。次に、本発明が適用される情報処理装置の第１の実施の形態として、8B10B変換が適用された情報処理装置について説明する。
【００４５】
＜２．第１の実施の形態＞
［情報処理装置の第１の実施の形態の構成例］
図６は、本発明を適用した情報処理装置の第１の実施の形態の構成例を示すブロック図である。
【００４６】
図６の例の情報処理装置には、CPU（Central Processing Unit）１、エンコーダ/デコーダ２、乱数発生部３、8B10B変換部４、10B8B変換部５−１，５−２、及び５−３が設けられている。図６の例の情報処理装置にはまた、ROM（Read Only Memory）（メモリ）６−１、RAM（Random Access Memory）（メモリ）６−２、不揮発性メモリ６−３が設けられている。図６の例の情報処理装置にはまた、8B10B変換調整部７−１、10B8B/8B10B変換調整部７−２,７−３、8B10B変換調整部８、及び10B8B変換調整部９が設けられている。図６の例の情報処理装置にはさらにまた、入力部１０、出力部１１、制御線２２−１，２２−２、２２−３，及び２５、10ビットアドレスバス２６、10ビットデータバス２７、8ビットデータバス２８が設けられている。なお、以下、10B8B変換部５−１，５−２及び５−３を個々に区別する必要がない場合、これらをまとめて10B8B変換部５と称する。また、ROM（メモリ）６−１、RAM（メモリ）６−２、不揮発性メモリ６−３をメモリという観点で個々に区別する必要がない場合、これらをまとめて、メモリ６と称する。また、制御線２２−１乃至２２−３を個々に区別する必要がない場合、これらをまとめて、制御線２２と称するとする。
【００４７】
CPU１には、エンコーダ/デコーダ２及び乱数発生部３が接続されている。
【００４８】
CPU１は、情報処理装置全体を制御する。エンコーダ/デコーダ２は、CPU１に入出力されるデータに対し、必要に応じて符号化または復号化処理を施す。乱数発生部３は、乱数を発生し、CPU１を介して8B10B変換部４に出力する。この乱数は、後述するRD初期値を設定するために用いられる。CPU１にはまた、8B10B変換部４が接続されている。8B10B変換部４にはまた、10ビットアドレスバス２６を介して10B8B変換部５が接続されている。10B8B変換部５にはメモリ６が接続されている。即ち、後述するように、アドレスデータは、CPU１とメモリ６内では8ビットの2進数表現のデータとして取り扱われる。一方、8B10B変換部４と10B8B変換部５との間の10ビットアドレスバス２６においては、アドレスデータは、10ビットのDコード表現の形態で伝送される。CPU１にはまた、8ビットデータバス２８を介して、入力部１０、出力部１１、8B10B変換調整部８、及び10B8B変換調整部９が接続されている。
【００４９】
入力部１０は、外部から8ビットの2進数表現のデータを入力し、8ビットデータバス２８を介してCPU１に出力する。
【００５０】
出力部１１は、CPU１から8ビットデータバス２８を介して供給された8ビットの2進数表現のデータを、外部に出力する。
【００５１】
8B10B変換調整部８と10B8B変換調整部９とにはまた、10ビットデータバス２７を介して、8B10B変換調整部７−１及び10B8B/8B10B変換調整部７−２，７−３が接続されている。8B10B変換調整部７−１及び10B8B/8B10B変換調整部７−２，７−３にはそれぞれ、ROM(メモリ)６−１、RAM（メモリ）６−２、及び不揮発性メモリ６−３がそれぞれ接続されている。即ち、後述するように、メモリ６に読み書きされるデータは、CPU１とメモリ６内では8ビットの2進数表現のデータとして取り扱われる。一方、8B10B変換調整部８及び10B8B変換調整部９と、8B10B変換調整部７−１及び10B8B/8B10B変換調整部７−２，７−３との間では、即ち、10ビットデータバス２７においては、データは、10ビットのDコード表現の形態で伝送される。
【００５２】
以下、図３の例の情報処理装置の内部データがメモリ６から読み出される動作を例として、各構成要素の機能を適宜説明していく。なお、最初の内部データの読み出しの前には、RD値の初期化が行われる。ただし、RD値の初期化を行う場合の各構成要素の機能の説明については、後述する図７の処理の説明の中で行う。
【００５３】
RD値の初期化が行われた後、8B10B変換部４は、CPU１からの8ビットの2進数表現のデータ、例えば、読み出し対象のメモリ６のメモリアドレスに対して、8B10B変換に従った処理（以下、8B10B変換処理と称する）を施す。これにより、メモリアドレスは、10ビットのDコード表現のデータとなる。なお、アドレスサイズの拡張はKコードを用いて拡張することができる。10ビットのDコード表現のデータは、10ビットアドレスバス２６を介して、10B8B変換部５に伝送される。
【００５４】
10B8B変換部５は、10ビットのDコード表現のデータを、8ビットの2進数表現のデータに変換する。なお、以下、このように、10ビットのDコード表現のデータを、8ビットの2進数表現のデータに変換する手法を、10B8B変換と称する。また、10B8B変換に従って実行される処理を、10B8B変換処理と称する。即ち、10B8B変換部５は、10ビットのDコード表現のデータに対して10B8B変換処理を施す。このような10B8B変換処理の結果得られるメモリアドレスに基づいて、読み出し対象のメモリ６のアクセスが制御される。なお、この制御には、所定の種類のKコードが用いられる場合もある。
【００５５】
8B10B変換調整部７−１、または10B8B/8B10B変換調整部７−２若しくは７−３は、メモリ６から読み出したデータに対して8B10B変換処理を施し、その結果得られる10ビットのDコード表現のデータを、10ビットデータバス２７に出力する。10ビットのDコード表現のデータは、10ビットデータバス２７を介して、10B8B変換調整部９に供給される。10B8B変換調整部９は、10ビットのDコード表現のデータに対して10B8B変換処理を施し、その結果得られる8ビットの2進数表現のデータを、8ビットデータバス２８を介して、CPU１に供給する。
【００５６】
以上、図６の例の情報処理装置の内部データがメモリ６から読み出される動作を例として、各構成要素の機能を説明した。
【００５７】
さらに、以下、図６の情報処理装置がデータをメモリ６に書き込む動作を例として、各構成要素の機能を説明する。
【００５８】
書き込み動作の場合におけるRD値の初期化やメモリ６のアクセス制御は、読み出しの動作の場合と基本的に同様である。即ち、メモリアドレスやKコードは、CPU１とメモリ６との間においては、より正確には、8B10B変換部４と10B8B変換部５との間の10ビットアドレスバス２６においては、10ビットのDコード表現の形態で伝送される。書き込み対象のデータは、8ビットの2進数表現の形態で、CPU１から出力され、8ビットデータバス２８を介して、8B10B変換調整部８に供給される。
【００５９】
8B10B変換調整部８は、8ビットの2進数表現のデータに対して8B10B変換処理を施し、その結果得られる10ビットのDコード表現のデータを、10ビットデータバス２７に出力する。10ビットのDコード表現のデータは、10ビットデータバス２７を介して、10B8B/8B10B変換調整部７−２または７−３に供給される。なお、以下、10B8B/8B10B変換調整部７−２，７−３を個々に区別する必要がない場合、これらをまとめて10B8B/8B10B変換調整部７と称する。
【００６０】
10B8B/8B10B変換調整部７は、10ビットのDコード表現のデータに対して10B8B変換処理を施し、その結果得られる8ビットの2進数表現のデータをメモリ６に書き込む。
【００６１】
以上、図６の例の情報処理装置が有する機能のうち、データの読み書き機能を実現させるという観点で、各構成要素の機能を説明した。
【００６２】
なお、図６の例の情報処理装置は、データの読み書き機能に加えて、さらに、読み書き中のデータのエラーを検出する機能も有している。ただし、かかる機能を実現させるという観点での各構成要素の機能の説明については、後述する図７の処理の説明の中で行う。
【００６３】
[情報処理装置の第１の実施の形態における処理の説明]
図７は、図６の例の情報処理装置が実行する処理の一例を説明するフローチャートである。
【００６４】
図７の例のフローチャートには、RD値の初期化を行う一連の処理が示されている。なお、以下、かかる一連の処理を、RD値初期化処理と称する。また、図７の例のフローチャートには、10ビットアドレスバス２６を伝送しているデータ、即ち、10ビットのDコード表現のデータにエラー（以下、アドレスバスエラーと称する）が発生した場合において、そのことを通知するまでの一連の処理が示されている。なお、以下、かかる一連の処理を、アドレスバスエラー通知処理と称する。さらにまた、図７の例のフローチャートには、10ビットデータバス２７を伝送している10ビットのDコード表現のデータにエラー（以下、データバスエラーと称する）が発生した場合において、そのことを通知するまでの一連の処理が示されている。
【００６５】
また、図７には、図中左方から、8B10B変換部４、10B8B変換部５−１、8B10B変換調整部７−１、10B8B変換調整部９、およびCPU1のそれぞれについての処理のフローチャートが図示されている。各フローチャート間に示される矢印は、情報（データ）の流れを示している。なお、この段落の内容は、後述する図１２についても同様にあてはまるとする。
【００６６】
なお、図７の例のフローチャートにおいて、処理の主体を10B8B変換部５−１としている箇所については、10B8B変換部５−２，５−３においても同様の処理が行われるものとする。また、処理の主体を8B10B変換調整部７−１としている箇所については、10B8B/8B10B変換調整部７−２，７−３においても同様の処理が行われるものとする。さらにまた、処理の主体が10B8B変換部５−２と10B8B/8B10B変換調整部７−２となる場合には、メモリ６としてはRAM（メモリ）６−２が用いられる。同様に、処理の主体が10B8B変換部５−３と10B8B/8B10B変換調整部７−３となる場合には、メモリ６として不揮発性メモリ６−３が用いられる。
【００６７】
ステップＳ１乃至Ｓ７の処理は、RD値初期化処理である。例えば最初の内部データの読み出しや書き出しの前に、各ロジックがリセットされてから復帰されると、次のステップＳ１乃至Ｓ７のRD値初期化処理が実行される。
【００６８】
ステップＳ１において、8B10B変換部４は、乱数発生部３より発生された乱数に基づいて、RD初期値を決定して、RD値を初期化する。また、8B10B変換部４は、メモリ６のアドレスとRD初期値の設定を指示するKコード（以下、Initialize Kコードと称する）を生成する。なお、Initialize Kコードとしては、例えば図５に示されるK.28.7が採用される。
【００６９】
ステップＳ２において、8B10B変換部４は、Initialize Kコードを、10ビットアドレスバス２６を介して、10B8B変換部５−１に供給する。
【００７０】
ステップＳ３において、10B8B変換部５−１は、8B10B変換部４から供給されたInitialize Kコードに従って、RD値を初期化する。また、10B8B変換部５は、RD値の初期化と同時に、ROM（メモリ）６−１の内部アドレスレジスタを初期化する。
【００７１】
ステップＳ４において、10B8B変換部５−１は、制御線２２−１を介して、RD値の初期化を指示する。具体的には、10B8B変換部５−１は、8B10B変換調整部７−１に対してRD値の初期化を指示する。
【００７２】
ステップＳ５において、8B10B変換調整部７−１は、RD値を初期化する。
【００７３】
ステップＳ６において、8B10B変換調整部７−１は、Initialize Kコードを、10ビットデータバス２７を介して10B8B変換調整部９に供給する。
【００７４】
ステップＳ７において、10B8B変換調整部９は、Initialize Kコードの指示に従い、RD値の初期化を行う。以上で、最初の内部データの読み出しや書き出しの前に、各ロジックがリセットされてから復帰されると実行される、RD値初期化処理が終了される。
【００７５】
次に、情報処理装置にアドレスバスエラーが発生した場合のアドレスバスエラー通知処理について説明する。ステップＳ８乃至Ｓ１２は、アドレスバスエラー通知処理である。
【００７６】
ステップＳ８において、8B10B変換部４は、10ビットのDコード表現のデータを、10B8B変換部５−１に供給する。
【００７７】
ここで、アドレスバスエラーが発生したとする。
【００７８】
ステップＳ９において、10B8B変換部５−１は、アドレスバスエラーが発生したことを検出し、ROM（メモリ）６−１を不活性にする。そして、10B8B変換部５−１は、制御線２２−１を介して、8B10B変換調整部７−１に対して、アドレスバスエラーが発生したことを通知する。
【００７９】
ステップＳ１０において、8B10B変換調整部７−１は、アドレスバスエラーを示すKコード（以下、アドレスバスエラーKコードと称する）を生成する。
【００８０】
ステップＳ１１において、8B10B変換調整部７−１は、アドレスバスエラーKコードを10ビットデータバス２７を介して10B8B変換調整部９に供給する。
【００８１】
ステップＳ１２において、10B8B変換調整部９は、アドレスバスエラーKコードが供給されると、制御線２５を介して、CPU１にアドレスバスエラーを通知する。以上で、情報処理装置にアドレスバスエラーが発生した場合のアドレスバスエラー通知処理が終了される。
【００８２】
次に、情報処理装置にデータバスエラーが発生した場合のデータバスエラー通知処理について説明する。
【００８３】
ステップＳ１３において、8B10B変換調整部７−１は、ROM（メモリ）６−１から読み出したデータについて、１０ビットのDコード表現のデータを10B8B変換調整部９に出力する。
【００８４】
ここで、例えばタンパ攻撃によるデータバスエラーが発生したとする。
【００８５】
ステップＳ１４において、10B8B変換調整部９は、データバスエラーを検出した場合、制御線２５を介してCPU１にデータエラーを通知する。以上で、情報処理装置にデータバスエラーが発生した場合のデータバスエラー通知処理が終了される。
【００８６】
以上のデータバスエラー通知処理の例においては、10B8B変換調整部９がデータバスエラーを検出した場合について説明した。しかしながら、8B10B変換調整部７−１がデータバスエラーを検出することもありうる。この場合、8B10B変換調整部７−１は、データバスエラーKコードを生成し、10B8B変換調整部９にデータバスエラーKコードを供給する。その後は、上述したステップＳ１４以降の処理が施される。
【００８７】
またさらに、8B10B変換調整部８が、データバスエラーを検出することもありうる。この場合、8B10B変換調整部８がデータバスエラーKコードを生成し、10B8B変換調整部９にデータバスエラーKコードを供給する。その後は、上述したステップＳ１４以降の処理が施される。またさらに、8B10B変換調整部８は、10ビットデータバス２７を伝送している１０ビットのDコード表現のデータをモニタし、RD値が一致するように調整することもできる。
【００８８】
以上、第１の実施の形態の情報処理装置の構成例とその処理について説明した。次に、図８乃至図１０を参照して、第１の実施形態の情報処理装置が奏することができる効果について説明する。
【００８９】
図８は、8ビットの2進数表現のデータと、10ビットのDコード表現のデータの電流変化及び磁界変化について説明するための図である。なお、図８においては、8B10B変換部４の左側に8ビットの2進数表現のデータが示されている。また、図８においては、8B10B変換部４の右側に10ビットのDコード表現のデータが示されている。またさらに、図８においては、発生する磁界の大きさと分布が、点線の円として示されている。
【００９０】
図８を参照して、8ビットの2進数表現のデータにおける磁界の変化と、10ビットのDコード表現のデータにおける磁界の変化を比較する。8ビットの2進数表現のデータでは、隣接する各ビットの0と1は無関係に発生する。よって、例えば8ビットの2進数表現のデータの値が0や255である場合に、磁界の変化が大きい。具体的には例えば、8ビットの2進数表現のデータで255を表現する場合、対応する全てのバスドライバがON状態となる。すると、回路全体を囲む大きな磁界(図中点線で示される磁界)が発生する。即ち、回路全体が大きなアンテナを構成しているような状態となる。従って、第三者が電磁波解析法を用いて容易に内部データを推定する恐れがある。
【００９１】
これに対し、10ビットのDコード表現のデータにおいては、隣接する各ビットの0と1は３個以上連続して発生しない規則を有している。さらに、直前に入力された10ビットのDコード表現のデータと、継続して入力される10ビットのDコード表現のデータとの合計20ビットのデータにおいては、0と1の総数は完全に一致する。このため10ビットのDコード表現のデータの値が0や255の場合も、磁界は近傍でのみ発生する。従って、第三者が、電磁波解析法により内部データを推定することは、非常に困難となる。具体的には例えば、10ビットのDコード表現のデータで255を表現する場合、各バスドライバは、間欠的にON状態となる。このため、バスドライバの近傍に、個々に小さな磁界（図中点線で示される磁界）が発生する。換言すると、回路の周囲に小さなアンテナが細かく分布しているような状態となるため、磁界が遠くまで届かない。よって、第三者による電磁波解析法を用いた内部データの推定は困難となる。
【００９２】
次に、図９及び図１０を用いて、8ビットの2進数表現のデータにおける消費電流と、10ビットのDコード表現のデータにおける消費電流について比較する。図９には、8ビットの2進数表現のデータを用いて0乃至255を表現する場合の、各ビットにおけるビット1の発生数の分布が示されている。図１０には、10ビットのDコード表現のデータを用いて値0乃至255を表現する場合の、各ビットにおけるビット1の発生数の分布が示されている。なお、ビット1の発生数の分布は、電流変化の分布をそのまま表している。例えば、各バスドライバの消費電流が１mAであると仮定すると、それぞれの回路における電流変化は、以下のようになる。8ビットの2進数表現のデータにおいては、回路全体の消費電力は、1乃至8mAの範囲で常時変化する。従って、回路全体の消費電力を解析し、内部動作を調べることにより内部データを推定する電力解析法を用いて、第三者により容易に内部データが推定される恐れがある。これに対し、10ビットのDコード表現のデータにおいては、消費電流は4ｍＡから6ｍＡの範囲内でしか変化しない。さらに、複数バイトの消費電流の平均値は、およそ5ｍＡとなり、平均化される。従って、電力解析法を用いた第三者による内部データの推定は、非常に困難となる。
【００９３】
以上、第１の実施の形態の情報処理装置について説明した。第１の実施の形態では、外部から8ビットの2進数表現のデータが入力され、また、メモリのデータも8ビットの2進数表現で読み出し及び書き込みが行われる場合の実施の形態であった。
【００９４】
＜３、第２の実施の形態＞
これに対して、第２の実施の形態の情報処理装置と外部との間のデータの授受は、10ビットのDコード表現であるとする。例えば、10ビットのDコード表現を用いたイーサネット（登録商標）やHDMI（High-Definition Multimedia Interface）機器との間でデータの通信が行われる場合に、第２の実施形態を適用できる。また例えば、外部装置として8B10B変換装置が用いられており、直接10ビットのDコード表現のデータが入力される場合に、第２の実施形態適用できる。
【００９５】
［情報処理装置の第２の実施の形態の構成例］
図１１は、本発明を適用した情報処理装置の第２の実施の形態の構成例を示すブロック図である。
【００９６】
図１１において、図６と対応する箇所には対応する符号が付してあり、それらの説明は適宜省略する。
【００９７】
図１１の例の情報処理装置には、図６の構成に対して、10B8B変換部５からの制御線２２が省略され、8B10B変換調整部７−１及び10B8B/8B10B変換調整部７−２，７−３のそれぞれの代わりに、RD補正部３２−１，３２−２、及び３２−３が設けられている。また、図１１の例の情報処理装置は、外部との間で10ビットのDコード表現のデータを入出力する。このため、入力部１０と出力部１１は、10ビットデータバス２７に接続されている。また、図１１の例の情報処理装置には、DMA（Direct Memory Access）部３１が設けられている。
なお、以下、RD補正部３２−１，３２−２、及び３２−３を個々に区別する必要がない場合、これらをまとめて、RD補正部３２と称するとする。
【００９８】
図１１の例の10B8B変換部３１は、Initialize Kコードを受信した場合、またはアドレスバスエラーを検出した場合に、後に続くブロックへの伝達の処理として、図６の例の10B8B変換部５とは異なる処理を実行する。
【００９９】
即ち、図１１の例の10B8B変換部３１は、メモリ６に予め保持されているアドレスバスエラーKコードやInitialize Kコードを、RD補正部３２に出力させる。換言すると、第２の実施の形態のメモリ６には、アドレスバスエラーKコードや、Initialize Kコードが予め保持されている。
【０１００】
このため、図１１の例の情報処理装置においては、図６の例では必要であった制御線２２が不要となる。
【０１０１】
RD補正部３２は、ランダムに読み出される10ビットのDコード表現のRD値が、±1の範囲を超えないように、5B6Bコードと3B4Bコードの組み合わせを適切に反転させる。
【０１０２】
具体的には、たとえば、メモり６のメモリアドレスの00,01,02に、D.03.0(RD＝-1)、D.03.3(RD＝+1)、D.03.4(RD＝-1)というDコード表現のデータが書き込まれたとする。これらのDコード表現のデータが、00,02,00,02という順で読み出された場合、最終的なRD値は、-4となり、RD値の規定の範囲、例えば、RD=±1の範囲を超えてしまう。よって、RD補正部３２は、このような場合には、例えば2番目と3番目のDコードをD.03.3(RD＝-1)に変換してRD値をゼロにする処理を施すことで、RD値の規定の範囲内に調整する。
【０１０３】
DMA部３１は、CPU１を介さずに直接メモリ６とデータ転送を行う。
【０１０４】
以上のような構成をもつことにより、第２の実施の形態においては、10ビットのDコード表現のデータを用いたイーサネット（登録商標）やHDMI機器との接続を容易にすることができる。さらに、第２の実施の形態においては、電源の瞬断などの外部要因で、メモリ書き込みデータにエラーが生じた場合におけるエラーの検出を容易にすることができる。
【０１０５】
また、第1の実施の形態においては、メモリ６に対して直接タンパ攻撃が行われた場合には、対処することができない。しかしながら、第２の実施の形態においては、メモリ６の内部データも、10ビットのDコード表現のデータで読み出し及び書き込みを行う。このため、第２の実施の形態においては、メモリ６に直接タンパ攻撃が行われた場合においても、高い対タンパ性を発揮することが可能となる。
【０１０６】
またさらに、第２の実施の形態においても、図８乃至図１０を参照して上述した、第１の実施の形態の情報処理装置が奏することのできる効果と同様の効果を奏することができる。
【０１０７】
[情報処理装置の第２の実施の形態における処理の説明]
図１２は、本発明が適用される情報処理装置の第２の実施の形態における処理の一例を説明するフローチャートである。
【０１０８】
図１２の例のフローチャートには、RD値初期化処理、アドレスバスエラー通知処理、及びデータバスエラー通知処理が示されている。
【０１０９】
図１２の例のフローチャートにおけるステップＳ２１，Ｓ２２の処理は、図７の例のフローチャートにおけるステップＳ１，Ｓ２の処理と同様の処理である。このため、その説明を省略する。
【０１１０】
ステップＳ２３において、10B8B変換部５−１は、8B10B変換部４から供給されたInitialize Kコードに従って、RD値を初期化する。また、10B8B変換部５−１は、RD値の初期化と同時に、ROM（メモリ）６−１の内部アドレスレジスタを初期化する。
【０１１１】
ステップＳ２４において、10B8B変換部５−１は、ROM（メモリ）６−１に対し、ROM（メモリ）６−１に保持されているInitialize Kコードの出力を指示する。
【０１１２】
ステップＳ２５において、ROM（メモリ）６−１は、Initialize KコードをRD補正部３２−１に出力する。
【０１１３】
ステップＳ２６において、RD補正部３２−１は、ROM（メモリ）６−１から供給されたInitialize Kコードの指示に基づいて、RD値を初期化する。
【０１１４】
ステップＳ２７において、RD補正部３２−１は、Initialize Kコードを、10ビットデータバス２７を介して10B8B変換調整部９に出力する。
【０１１５】
図１２の例のフローチャートにおけるステップＳ２８，Ｓ２９の処理は、図７の例のフローチャートにおけるステップＳ７，Ｓ８の処理と同様の処理である。このため、その説明を省略する。
【０１１６】
ステップＳ３０において、10B8B変換部３１−１は、ROM（メモリ）６−１に対し、ROM（メモリ）６−１に保持されているアドレスバスエラーKコードの供給を指示する。
【０１１７】
ステップＳ３１において、ROM（メモリ）６−１は、アドレスバスエラーKコードをRD補正部３２−１に出力する。
【０１１８】
ステップＳ３２において、RD補正部３２−１は、アドレスバスエラーKコードを、10ビットデータバス２７を介して10B8B変換調整部９に出力する。
【０１１９】
図１２の例のフローチャートにおけるステップＳ３３の処理は、図７の例のフローチャートにおけるステップＳ１２の処理と同様の処理である。このため、その説明を省略する。
【０１２０】
ステップＳ３４において、RD補正部３２−１は、ROM（メモリ）６−１から読み出したデータについて、10ビットのDコード表現のデータを、10B8B変換調整部９に出力する。
【０１２１】
図１２の例のフローチャートにおけるステップＳ３５の処理は、図７の例のフローチャートにおけるステップＳ１４の処理と同様の処理である。このため、その説明を省略する。
【０１２２】
以上説明した本発明が適用される情報処理装置の第１の実施の形態、及び第２の実施の形態においては、次のような効果を奏することが可能になる。
【０１２３】
本発明が適用される情報処理装置においては、10ビットのDコード表現を用いてデータを表現する。このため、10ビットアドレスバス２６や10ビットデータバス２７において、各ビットが全て0、または全て1となる状態が発生しない。即ち、0と1の数が同数となるため、ON状態となっているトランジスタと、OFF状態となっているトランジスタの数が同一になり、総合的な消費電流は常に一定となる。よって、第三者による電力解析法を用いた攻撃に対して、高い対タンパ性を発揮する。また、本発明が適用される情報処理装置においては、磁界についても、10ビットアドレスバス２６や10ビットデータバス２７の総和としては、0となる。このため、第三者による電磁波解析法を用いた攻撃に対しても、高い対タンパ性を発揮する。
【０１２４】
また、本発明が適用される情報処理装置においては、電源の急峻な変化や、レーザ等による回路の誤作動のような外部からの遥動により、データが全て0または1になるエラーが生じた場合にも、このようなエラーを容易に検出することが可能となる。上述したように、タンパ攻撃の手法としての光照射法は、回路にレーザなどの光や放射線を照射することによって誤作動を誘発し、内部データを推定したり、不正に書き換えたりするものである。本発明が適用される情報処理装置においては、データを10ビットのDコード表現とすることによって、このような外部からの揺動によるデータのエラーを検出することが可能となる。
【０１２５】
さらに、本発明が適用される情報処理装置においては、同一のプログラムの実行においても、RD値を毎回変更することが出来る。よって、10ビットアドレスバス２６や10ビットデータバス２７に供給される10ビットのDコード表現のデータのパターンが毎回変化する。このため、本発明が適用される情報処理装置においては、第三者が外部からデータのパターンをモニタする手がかりが無くなる。またさらに、本発明が適用される情報処理装置においては、たとえば秘密鍵によって暗号化する暗号回路への転送においても、RD値をランダムに初期化することができる。よって、同一データであっても10ビットのDコード表現のデータのパターンが変化するため、このパターンを第三者が外部からモニタすることは困難となる。またさらに、本発明が適用される情報処理装置においては、同一プログラムが繰り返される状態でプロービングされる場合においても、毎回データのパターンが変化する。よって、複数のバスラインを同時にプロービングする必要があるため、微細加工のチップでは、第三者による攻撃は困難になる。
【０１２６】
例えば、DCフリーコードは、イーサネット（登録商標）やコンピュータの内部バス高速シリアル通信に使われている。このため本発明が適用される情報処理装置の第２の実施の形態においては、イーサネットデータの暗号化復号などの用途に対しては、データ変換の必要が無くなる、このため、第２の実施の形態においては、システム構成を容易にすることができる。
【０１２７】
なお、以上の例では、本発明が適用される情報処理装置におけるRD値の範囲を±1としたが、RD値の範囲は±1以上（例えば、RD＝±2）でも本発明に適用可能である。しかしながら、上述の電力解析法や電磁波解析法を用いた攻撃に対する対タンパ性を考慮すると、RD値の範囲は±1とするのが好適である。さらに以上の例では、本発明が適用される情報処理装置においては、アドレスバスやデータバスを伝播するデータとしては、8B10B変換を用いた10ビットのDコード表現のデータが採用された。しかしながら本発明の実施の形態は、上述の例に限定されるものではない。次のような規則を有するデータをアドレスバスやデータバスに伝搬させることができる情報処理装置であれば、本発明は適用可能である。即ち、伝送データの幅をWとして、各データにおけるビットが１となる総数をBとすると、B＝W/2＜＝±1、かつ、直前までのデータの累積でも±1以内とする、という規則で伝搬される情報処理装置一般に本発明は適用可能である。
【０１２８】
ところで、上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【０１２９】
コンピュータでは、CPU１が、例えば次のような動作をすることにより、上述した一連の処理が行われる。即ち、例えば、CPU１が、ROM６−１に記憶されているプログラムを、RAM６−２や不揮発性メモリ６−３にロードして実行することにより、上述した一連の処理が行われる。
【０１３０】
コンピュータ（CPU１）が実行するプログラムは、例えば、パッケージメディア等としての図示せぬリムーバブルメディアに記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。コンピュータでは、プログラムは、リムーバブルメディアをドライブに装着することにより、メモリ６−１や図示せぬハードディスク等にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、10ビットデータバス２７を介して受信し、ROM６−１や図示せぬハードディスク等にインストールすることができる。その他、プログラムは、ROM６−１や図示せぬハードディスク等に、あらかじめインストールしておくことができる。なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【符号の説明】
【０１３１】
１  CPU，  ２  エンコーダ/デコーダ，  ３  乱数発生部，  ４  8B10B変換部，  ５−１,５−２,５−３  10B8B変換部，  ６−１  ROM，  ６−２  RAM，  ６−３  不揮発性メモリ，  ７−１，８  8B10B変換調整部，  ７−２,７−３  10B8B/8B10B変換部，  ９  10B8B変換調整部，  １０  入力部，  １１  出力部，  ２２，２３，２４，２５  制御線，  ２６  10ビットアドレスバス，  ２７  10ビットデータバス，  ２８  8ビットデータバス，  ３１  DMA部，  ３２−１,３２−２，３２−３  RD補正部
【図１】
2010204881.tif 000003
【図２】
2010204881.tif 000004
【図３】
2010204881.tif 000005
【図４】
2010204881.tif 000006
【図５】
2010204881.tif 000007
【図６】
2010204881.tif 000008
【図７】
2010204881.tif 000009
【図８】
2010204881.tif 000010
【図９】
2010204881.tif 000011
【図１０】
2010204881.tif 000012
【図１１】
2010204881.tif 000013
【図１２】
2010204881.tif 000014