【誤訳訂正書】
【提出日】平成17年7月26日(2005.7.26)
【誤訳訂正１】
【訂正対象書類名】明細書
【訂正対象項目名】発明の名称
【訂正方法】変更
【訂正の内容】
【発明の名称】モノリシック安全保護モジュールにおける機密情報の処理の安全保護方法、および関連する安全保護モジュール
【誤訳訂正２】
【訂正対象書類名】明細書
【訂正対象項目名】特許請求の範囲
【訂正方法】変更
【訂正の内容】
【特許請求の範囲】
【請求項１】  モノリシック構造の安全保護モジュールにおける機密情報の処理の安全保護方法であって、安全保護モジュールが、情報処理手段（３１）と、前記情報処理手段により処理可能な情報の記憶手段（３２、３３）とを含み、
記憶手段において機密情報を選択するステップと、
前記情報の保全性の特定の条件を決定するステップと、
情報を読み込んで前記情報処理手段に送信するステップと、
情報処理時に特定の条件を満たしているかどうか検査するステップと、
特定の条件を満たしていない場合は情報処理をブロッキングするステップとを含むことを特徴とする安全保護方法。
【請求項２】  情報が、記憶手段（３２、３３）で読み取られたオペレーションコードであり、オペレーションコードの集合が、安全保護モジュールの製造時に決定された内容を有するテーブルに含まれ、保全性の特定の条件は、情報値が一つまたは複数の固定値に等しいことである、請求項１に記載の安全保護方法。
【請求項３】  処理されるオペレーションコードが、データビットとして符号化され、前記データビットは、全てが同じバイナリ値というわけではない、請求項２に記載の安全保護方法。
【請求項４】  保全性の特定の条件が、記憶手段（３２、３３）で読み込まれた情報を使用することにより計算される保全性データの検査からなり、保全性データが、情報の読み込み時に計算されて処理手段に送信され、処理手段が、受信情報から別の保全性データを計算して、２個の保全性データが同じであるかどうか検査する、請求項１に記載の安全保護方法。
【請求項５】  保全性データは、経時的に値が変わる少なくとも一つの計算データから計算される、請求項４に記載の安全保護方法。
【請求項６】  保全性データは、ランダムに値が変わる少なくとも一つの計算データから計算される、請求項４に記載の安全保護方法。
【請求項７】  情報処理のブロッキングが、マイクロプログラミングされた命令により行われる、請求項１に記載の安全保護方法。
【請求項８】  マイクロプログラミングされた命令が、
記憶手段（３２、３３）の不揮発性領域にブロッキングデータを書き込むステップと、
情報処理をブロッキングするステップとを実施する、請求項７に記載の安全保護方法。
【請求項９】  安全保護モジュールの電圧印加時に、記憶手段（３２、３３）の不揮発性領域が処理手段（３１）により読み込まれ、不揮発性領域で読み込まれる値が適合しない場合は安全保護モジュールがブロッキングされる、請求項８に記載の安全保護方法。
【請求項１０】  モノリシック構造の電子回路から構成され、情報処理手段（３１）および記憶手段（３２、３３）を含み、情報処理手段が、記憶手段から抽出された情報を選択して処理し、処理手段が、機密情報の保全性の特定条件の検査手段と、情報処理ブロッキング手段とを含み、前記ブロッキング手段は、特定の条件が満たされないことを検査手段が検出したときに作動されることを特徴とする安全保護モジュール。
【請求項１１】  処理手段（３１）が、テーブルから抽出したオペレーションコードに対応する命令を実行し、テーブルが、禁止命令値を含むことを特徴とする請求項１０に記載の安全保護モジュール。
【請求項１２】  処理オペレーションコードが、データビットとして符号化され、安全保護モジュールが、全てのビット値の読み込み手段と、ビット値が全て同じ場合に作動されるブロッキング手段とを含む、請求項１１に記載の安全保護モジュール。
【請求項１３】  処理手段（３１）が、テーブルから抽出したオペレーションコードに対応する命令を実行し、安全保護モジュールが、オペレーションコードの読み込み手段と、禁止されたオペレーションコードの読み込み時に作動されるブロッキング手段とを含むことを特徴とする請求項１０に記載の安全保護モジュール。
【請求項１４】  ブロッキング手段が、記憶手段（３２、３３）へのインジケータの不可逆的な書き込み手段と、後のモジュールの電圧印加時における前記インジケータの読み込み手段とを含む、請求項１３に記載の安全保護モジュール。
【請求項１５】  記憶手段と協働するパリティ発生器（７、８）と、処理手段と協働するパリティ発生器（１１）と、各パリティ発生器に接続されて処理手段内で遮断を引き起こすことができるコンパレータとを含む、請求項１０に記載の安全保護モジュール。
【請求項１６】  パリティ発生器（７、８）の動作が、経時的に変化する、請求項１５に記載の安全保護モジュール。
【請求項１７】  パリティ発生器（７、８）の動作が、ランダムに変化する、請求項１５に記載の安全保護モジュール。
【請求項１８】  記憶手段（３２、３３）におけるインジケータの不可逆的な書き込みが、マイクロプログラミングされた命令を実行することにより行われることを特徴とする、請求項１４に記載の安全保護モジュール。
【請求項１９】  安全保護モジュールが、超小型電子回路カードであることを特徴とする、請求項１０に記載の安全保護モジュール。
【誤訳訂正３】
【訂正対象書類名】明細書
【訂正対象項目名】０００１
【訂正方法】変更
【訂正の内容】
【０００１】
本発明は、マイクロプロセッサを含んで安全保護プログラムを実行するように構成された、モノリシック安全保護モジュールの安全性を増大するための方法および装置に関する。安全保護プログラムは、ユーザの認証、交換データの守秘性、商取引の信憑性とその有効性といった基準に実行が対応する命令の集合であり、一般には、ユーザの権利と義務が制御されるアプリケーションデータの処理である。本発明は、それ自体が予め知られている検査を回避することによって、機密データにアクセスするための不正な外部介入に対する検知対策手段を安全保護モジュールに装備することを目的とする。
【誤訳訂正４】
【訂正対象書類名】明細書
【訂正対象項目名】０００９
【訂正方法】変更
【訂正の内容】
【０００９】
より詳しくは、本発明は、モノリシック構造の安全保護モジュールにおける機密情報の処理の安全保護方法に関し、モジュールが、情報処理手段と、前記情報処理手段により処理可能な情報の記憶手段とを含み、
記憶手段において機密情報を選択するステップと、
前記情報の特定の保全性条件を決定するステップと、
情報を読み込んで送信するステップと、
情報処理時に特定の条件を満たしているかどうか検査するステップと、
特定の条件を満たしていない場合は情報処理をブロッキングするステップとを含むことを特徴とする。
【誤訳訂正５】
【訂正対象書類名】明細書
【訂正対象項目名】００１３
【訂正方法】変更
【訂正の内容】
【００１３】
各マイクロプロセッサは、特定の命令セットを有する。マイクロプロセッサ「ＭＯＴＯＲＯＬＡ  ６８０５」は、内部で８ビットのデータを処理する。そのデータバスは８本の線を含み、命令オペレーションコードは、８ビットで符号化される。例として、資料「Ｍｉｃｒｏｃｏｍｐｕｔｅｒ／ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ  Ｕｓｅｒ’ｓ  ｍａｎｕａｌ」から抜粋したマイクロプロセッサＭ６８０５とＭ１４６８８０５の命令セットを図２に示した。このタイプのマイクロプロセッサ用の命令は８ビットで符号化されるので、２５６個の異なるコードが存在するが、このコード全てをマイクロプロセッサが実行できる訳ではない。幾つかのコードはインプリメントされず、図２のテーブルの空欄に対応する。たとえばコード９０Ｈ、３１Ｈ、４１Ｈ、５１Ｈ、６１Ｈ、７１Ｈ、９１Ｈ、２３Ｈ、２４Ｈ、２５Ｈ、２６Ｈ、２７Ｈ、２８Ｈ、２９Ｈ、９３Ｈ、９４Ｈなどがそうである。マイクロプロセッサが、インプリメントされないオペレーションコードを読み込む場合、その実行は保証されない。かくして、マイクロプロセッサは、他に何もせずに次の命令に移ることができる。
【誤訳訂正６】
【訂正対象書類名】明細書
【訂正対象項目名】００１４
【訂正方法】変更
【訂正の内容】
【００１４】
図２から分かるように、マイクロプロセッサ「ＭＯＴＯＲＯＬＡ  ６８０５」の命令セットのコード「００」は、インデックスで命令「ＢＲＳＥＴＯ」に対応し、コード「ＦＦ」は命令「ＳＴＸ」に対応する。命令「ＢＲＳＥＴＯ」は、プログラムメモリで３バイトを占有し、１０個のクロックサイクルで実行される。命令「ＳＴＸ」は１バイトを占有し、５個のクロックサイクルで実行される。マイクロプロセッサは、実行中であるプログラムメモリ内に命令のアドレスを含む序数カウンタを有する。最初に述べたように、不正行為者がバスに放射線を送ると、プログラムメモリで有効に読み取られる命令に代わって、これらの命令のいずれかが実行される。命令「ＢＲＳＥＴＯ」の場合、この命令の実行後、マイクロプロセッサの序列カウンタは３個増加し、プログラムメモリ内でさらに先の３バイトを対象とする。命令「ＳＴＸ」の場合、序数カウンタは１個増加される。ＢＲＳＥＴＯの実行に必要な１０個のクロックの間に放射線を送ると、マイクロプロセッサは「００」で３バイトを読み込み、これを「バイト００のビット０が１にあるかどうかテストし、その場合にはスキップせよ」と解釈する。放射線のために、アドレス００にあるオクテットの値００が読み込まれ、従ってスキップは実行されず、プログラムは、次の命令を続行する。かくして、幾つかのクロック信号の間、回路を放射線に当てることによって、不正行為者は、３バイトの連続スキップにより序数カウンタを人為的に進ませ、プログラムメモリに書き込まれたシーケンスの実行を妨げることができる。インテル（Ｉｎｔｅｌ）や、他の多数の会社が製造する８０５１系列のマイクロプロセッサの場合、バイナリ値が００であるオペレーションコードは、「ｎｏ  ｏｐｅｒａｔｉｏｎ」を意味する命令ＮＯＰに対応する。この命令は、１バイトしか使用しない。この場合、不正行為者は、各バイトごとに序数カウンタを人為的に進めることができる。
【誤訳訂正７】
【訂正対象書類名】明細書
【訂正対象項目名】００１５
【訂正方法】変更
【訂正の内容】
【００１５】
第一の解決方法は、コードが「００」または「ＦＦ」である命令の読み込み時に、マイクロプロセッサの正常な機能を遮断することからなる。モジュールは作動せず、モジュールの電圧を切ってから電圧を印加することによってのみ、マイクロプロセッサを再スタートさせることができる。図３は、本発明による変更命令セットを示す。「００」または「ＦＦ」に対応する新しい命令は、「ＦＲＡＵＤＥ（不正）」または短くＦＲＤと呼ばれる。図２に記載した正常な命令セットに比べて、幾つかの列は、コード「００」および「ＦＦ」が、実行可能な命令にもはや対応しないように反対にされている。命令「ＢＲＳＥＴＯ」を含む「０」の列は列２に移され、命令「ＳＴＸ」を含む「Ｆ」の列は、列Ａに移されている。列の移動は、命令のオペレーションコードで上位の４ビットをデコードする素子で、回路のマスキングを変更することによって行われる。オペレーションコードで下位の４ビットのデコードを変更してもよいが、このモデルのマイクロプロセッサには、これは不要である。
【誤訳訂正８】
【訂正対象書類名】明細書
【訂正対象項目名】００１７
【訂正方法】変更
【訂正の内容】
【００１７】
図３に示されているように、この解決方法は、マイクロプロセッサが認識可能な命令に対応しない全てのオペレーションコードに一般化することができる。かくして、新しい命令「ＦＲＡＵＤＥ」は、０１Ｈ、０２Ｈ、０３Ｈ、０４Ｈ、０５Ｈ、０６Ｈ、０ＥＨ、１２Ｈ、１４Ｈ、１５Ｈ、１６Ｈ、１７Ｈ、１８Ｈ、１９Ｈ、１ＡＨ、．．．等からＦＦＨまで、使用されない全てのコードに割り当てられ、これは、全てが同じ命令「ＦＲＡＵＤＥ」を実行する全部で４７個の異なるオペレーションコードである。
【誤訳訂正９】
【訂正対象書類名】明細書
【訂正対象項目名】００２０
【訂正方法】変更
【訂正の内容】
【００２０】
データバス１の８本の線に、パリティ２と記した９番目の線を付加する。この線の論理状態は、データバスにある８個のバイナリ情報から計算されるパリティ値に対応する。前述のように、１個のプログラムの各種命令のオペレーションコードは、ＲＯＭ３または、たとえばＥＥＰＲＯＭ等の不揮発性プログラマブルメモリ４から読み取られる。メモリセルの出力信号は、その値が、このセルによって記憶されるバイナリデータを示すものであるが、データバスを介してマイクロプロセッサに到達するには弱すぎる。これらの信号がマイクロプロセッサに達するように、増幅回路５、６は、ＥＥＰＲＯＭおよびＲＯＭのセルの直後でバスの前に設置される。この二つの回路の制御入力Ｅは、その出力を作動させることができる。信号Ｅのレベルが「１」である場合、８個の出力は作動されない。これらの出力は、高インピーダンス状態にある。ＥＥＰＲＯＭは、書き込みでも読み込みでもアクセス可能であるので、増幅回路５は、双方向性である。データ転送方向は、制御線ＲＥＡＤ／ＷＲＩＴＥ（１８）を介してマイクロプロセッサにより制御される。
【誤訳訂正１０】
【訂正対象書類名】明細書
【訂正対象項目名】００２２
【訂正方法】変更
【訂正の内容】
【００２２】
マイクロプロセッサ９はまた、データバス、アドレスバス、制御バスで移動する信号の互換性を保証するための増幅回路１０を有する。データバス１０に接続されるこの増幅回路は双方向性である。この回路は、片側で、マイクロプロセッサがメモリおよび周辺機器に送るデータ信号を増幅し、反対側で、この同じメモリおよび周辺機器から受信する信号を増幅することによって、マイクロプロセッサの内部回路がこれらの信号を適切に処理するようにする。大部分のマイクロプロセッサは、事前読み込み装置（「ｆｅｔｃｈ」フェッチ）を有し、この装置は、同じクロックサイクルで命令を実行するとともに、次の命令のオペレーションコードを読み込むことができる。
【誤訳訂正１１】
【訂正対象書類名】明細書
【訂正対象項目名】００２５
【訂正方法】変更
【訂正の内容】
【００２５】
使用時に、マイクロプロセッサは、ＲＯＭにある命令を示すオペレーションコードを読み込む。マイクロプロセッサは、アドレスバスにコードのアドレスを与え、それによってＲＯＭ線が作動され、その結果、増幅器６およびパリティ発生器８、１１が作動される。増幅器は、メモリＲＯＭで読み込まれるデータをデータバスで送り、パリティ発生器は、前記データのパリティ値を計算し、次いでＰＡＲＩＴＥ線２によりコンパレータ１２にこの値を送る。マイクロプロセッサは、双方向性の増幅器１０を介してデータを読み込む。線１５により作動されるパリティ発生器１１は、マイクロプロセッサにより読み込まれるデータのパリティ値を計算し、線１６を介してこれをコンパレータに送る。コンパレータ１２は、２個の値を比較する。値が同じ場合は出力レベルが「１」になり、値が異なる場合は出力レベルが「０」になる。後者の場合、データは、おそらく放射線の不正な送信による悪化を被っている。コンパレータの出力は、線１７によりマイクロプロセッサの入力「ＮＭＩ」に接続される。レベル「０」は、マスキング不能な遮断を開始し、これによって、現行のプログラムの行き先を遮断ルーチンの方に変更させる。コンパレータの作動は、事前読み込み段階の時に実施可能である。かくして、遮断の発生は、マイクロプロセッサのシーケンスクロックと完全に同期される。
【誤訳訂正１２】
【訂正対象書類名】明細書
【訂正対象項目名】００２８
【訂正方法】変更
【訂正の内容】
【００２８】
オペレーションコードが適切に読み取られているかどうかチェックしようとする第一の解決方法に比べて、この第二の解決方法は、オペレーションコードまたはデータコードといった、あらゆるタイプのデータを制御するという長所を提供する。パリティ発生器もまた、データバスに対してと同様にアドレスバスに設置可能である。従って、第二の解決方法は、アドレスバスの信号を制御するという長所を提供する。
【誤訳訂正１３】
【訂正対象書類名】明細書
【訂正対象項目名】００３８
【訂正方法】変更
【訂正の内容】
【００３８】
プログラムの実行の悪化を検知するための第三の解決方法は、保護するプログラム内のところどころにフラッグ増幅ルーチンをインプリメントし、機密データで操作を試みる前に、全てのフラッグが変更されたかどうかをチェックすることにある。
【誤訳訂正１４】
【訂正対象書類名】明細書
【訂正対象項目名】００３９
【訂正方法】変更
【訂正の内容】
【００３９】
図６は、１６進法のアドレス８００でインプリメントされるプログラムを含むメモリの一部を示す。このメモリは、ＲＯＭまたはＥＥＰＲＯＭとすることができるが、命令を実行可能な他のあらゆるタイプの不揮発性メモリであってもよい。全てのフラッグは、複数ビットにより示され、インジケータ内でメモリとしてまとめられている。記載された例では、インジケータが、フラグと呼ばれるＲＡＭの１バイトである。このバイトを構成する幾つかのビットを用いて、機密データの操作に至るプログラムの幾つかのステップの通過を示す。
【誤訳訂正１５】
【訂正対象書類名】明細書
【訂正対象項目名】００４２
【訂正方法】変更
【訂正の内容】
【００４２】
簡単には、不正管理ルーチンは、マイクロプロセッサのリセット（ＲＥＳＥＴ）から構成することができる。一つの改善は、不正行為者が、一定の命令の実行を妨げて他の命令を許可することにより展開を妨害できないように、マイクロプログラミング命令をステップ４で用いることからなる。この命令は、「Ｃｏｄｅ  ｏｐｅｒａｔｉｏｎ  Ａｄｒｅｓｓｅ  ａ  ｌｉｒｅ，Ｖａｌｅｕｒ  ａ  ｃｏｍｐａｒｅｒ（オペレーションコード、読み込みアドレス、比較値）」という構成を持ち、以下の動作を順次実行する。
（１）  バイト「Ａｄｒｅｓｓｅ（アドレス）」を読み込む。
（２）  読み取ったバイト値を「Ｖａｌｅｕｒ（比較値）」と比較する。
（３）  値が等しい場合は、次の命令にスキップする。