(57)【特許請求の範囲】
【請求項１】
予め定められた数のシフトレジスタが設けられ，該シフトレジスタに検査すべき入力データがビット単位でかつパラレルに，相次いで連続するデータワードとして印加され，前記シフトレジスタはさらに入力データを予め定めることのできるクロックでシリアルにシフトし，その場合，所定の数のデータワードとクロックの後に，シフトレジスタ内で電子署名が形成される，該電子署名を形成する装置において：
さらにコード発生部が設けられ，該コード発生部は，電子署名における各データワードから，少なくとも１つの追加シフトレジスタ内に対して少なくとも１つの追加ビット桁を発生させることを特徴とする，電子署名を形成する装置。
【請求項２】
前記シフトレジスタの各々はＸＯＲ回路を介して結合され，データワードの個々のビット，並びに，コード発生部の少なくとも１つの追加ビット桁は，前記ＸＯＲ回路に，電子署名を形成するために結合されることを特徴とする，請求項１に記載の装置。
【請求項３】
前記シフトレジスタの各々はＸＮＯＲ回路を介して結合され，データワードの個々のビット，並びに，コード発生部の少なくとも１つの追加ビット桁は，前記ＸＮＯＲ回路に，電子署名を形成するために結合されることを特徴とする，請求項１に記載の装置。
【請求項４】
前記コード発生部はＥＣＣコードを実現し，かつ，電子署名を形成するために，そのときどきのＥＣＣコードに相当するビット桁の数に対応する数の追加シフトレジスタが予め与えられていることを特徴とする，請求項１に記載の装置。
【請求項５】
前記コード発生部はパリティビットを形成し，１つの追加シフトレジスタが予め与えられていることを特徴とする，請求項１に記載の装置。
【請求項６】
前記コード発生部は，ハミングコードを実現するように形成されていることを特徴とする，請求項４に記載の装置。
【請求項７】
前記コード発生部は，ベルガーコードを実現するように形成されていることを特徴とする，請求項４に記載の装置。
【請求項８】
前記コード発生部は，ボーズ−インコードを実現するように形成されていることを特徴とする，請求項４に記載の装置。
【請求項９】
前記コード発生部は，一般的なコード発生テーブルを実現するように形成されていることを特徴とする，請求項４に記載の装置。
【請求項１０】
予め定められた数のシフトレジスタが設けられ，該シフトレジスタに検査すべき入力データがビット単位でかつパラレルに，相次いで連続するデータワードとして印加され，前記シフトレジスタはさらに入力データを予め定めることのできるクロックでシリアルにシフトし，その場合，所定の数のデータワードとクロックの後に，シフトレジスタ内で電子署名が形成される，該電子署名を形成する方法であって：
さらにコード発生部が設けられ，該コード発生部は，電子署名における各データワードから，少なくとも１つの追加シフトレジスタ内に対して少なくとも１つの追加ビット桁を発生させることを特徴とする，電子署名を形成する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，電子署名（シグネチャー：Signature）を形成する装置および方法に関する。
【背景技術】
【０００２】
電子署名を形成するために，例えばパウル  バルデル（Paul H. Bardell），ウィリアム  マックアニー（William H. McAnney）およびヤコブ  サヴィル（Jacob Savir）の刊行物「ＶＬＳＩのためのビルトインテスト：疑似ランダムテクニック（Built-In Test for VLSI:Pseudorandom Techniques）」の第１２４ページに記載されているような，ＭＩＳＲ（MISR＝Multiple Input Signature Register）回路が利用される。かかる回路では，予め定められた数のシフトレジスタが設けられ，そのシフトレジスタにテストすべきデータが順に格納される。そして，パラレルに並んだデータが結合され，予め定められたクロックでシフトレジスタによりシフトされる。ここでは，正確に定められた数のデータワードとクロックに従って，シフトレジスタ内に電子署名値が生じ，その電子署名値が前もって知られている電子署名値と比較可能および検査可能である。シーケンスやその際に印加されたデータの偶発エラーを検査するためには，得られた電子署名値と予測される電子署名値とを比較すれば十分である。上記前もって知られている電子署名値もこのようにして求めることができる。
【０００３】
従来技術から知られた方法と装置は，時点Ｔにおいて所定の入力にエラーが存在する場合に問題となる。というのは，第一に，誤った値が該当するシフトレジスタに書き込まれるからである。従って，計算された最終電子署名は，予測される電子署名とは相違する。しかし，さらに後続の時点Ｔ＋１，特にすぐ後の入力にエラーが生じたとき，第１の入力における元のエラーは，ＭＩＳＲ，即ち電子署名発生回路の間にフィードバックの枝が存在していない場合，入力と上記時点との間隔に相当するクロック数，特に１クロックで，シフトレジスタによりシフトされ延期された後，再び相殺される。即ち，この種の問題となる時点およびデータワード位置で発生するエラーは，電子署名形成において気づかれない。
【０００４】
格納する際におけるこの問題を排除するために準備できる１つの可能性は，データワードに続いて反転したデータワードを格納することであり，それによって各場合にエラーは補償されず，気づかれる。しかしこれは，必要な演算とクロックの数を倍加させる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
即ち，従来技術はどの観点においても最適の結果を提供できないことが明らかにされており，それ故に，電子署名形成の範囲内で上述した問題を支配するための改良された装置および改良された方法を開発するという課題が生じる。
【発明の利点】
【０００６】
本発明は，電子署名を形成するための装置および方法に基づいており，予め定められた数のシフトレジスタが設けられ，該シフトレジスタに検査すべき入力データがビット単位でかつパラレルに，相次いで連続するデータワードとして印加され，上記シフトレジスタはさらに（同時に）入力データを予め定めることのできるクロックでシリアルにシフトし，その場合，所定の数のデータワードとクロックの後に，シフトレジスタ内で電子署名が形成され，その場合に好ましくは，さらにコード発生部が設けられ，該コード発生部は，電子署名における各データワードから，少なくとも１つの追加シフトレジスタ内に対して少なくとも１つの追加ビット桁を発生させる。即ち，好ましくは，ＭＩＳＲが少なくとも１つのビット桁だけ拡張され，その場合にこのビット桁はそれぞれ印加された，揃っているデータワードから獲得され，電子署名内に挿入される。このような好ましい方法によって，電子署名形成の際に複数の付加的な演算やクロックを実施することなしに，上述した問題を支配するための安全性を得ることができる。
【０００７】
このようにして，上述した多重エラーにおけるエラー隠しが，最小限の回路負担増によって防止される。
【０００８】
さらに，個々のシフトレジスタがＸＯＲ回路（排他的論理和），即ちＸＯＲ結合によって結合されており，個々のビット桁も否定ＸＯＲ回路（排他的論理和の反転）を介して結合されることが，効果的である。同様に，一方ではデータワードの個々のビット桁を，他方ではコード発生部の少なくとも１つのビット桁を，該当するシフトレジスタに結合するために，ＸＯＲ回路の代わりに，ＸＮＯＲ回路を使用することが考えられる。
【０００９】
好ましくは，コード発生部が，例えばハミングコード(Hamming-Code)，ベルガーコード(Berger-Code)またはボーズ−リンコード(Bose-Lin-Code)などのような，ＥＣＣコード（Error
Check and Correction）を実現するように形成されており，それによってそれぞれのＥＣＣコードに相当する数のビット桁を，電子署名形成のための対応する数の追加シフトレジスタに予め定めておく。最も一般的な場合においては，データワードまたはビットの所定の入力パターンに，任意の長さの所望のコードパターンを対応づけるために，コード発生テーブル（固定配線で，あるいはスイッチで）使用することができる。最も簡単な場合において，コード発生部は，パリティビットを形成し，かつこのパリティビットを追加シフトレジスタに対応するように予め形成されている。
【００１０】
他の利点と好ましい形態が，明細書と請求項の特徴から明らかにされる。
【発明を実施するための最良の形態】
【００１１】
図１は，シフトレジスタ１００〜１０５と，ＸＯＲ回路，即ちＸＯＲ結合点１０６〜１１１とを有するＭＩＳＲ回路を示している。ここでは，フィードバックによるモジュールタイプが示されている。その場合，入力Ｉｎｐｕｔ０，Ｉｎｐｕｔ１，Ｉｎｐｕｔ２，Ｉｎｐｕｔ３，Ｉｎｐｕｔ４，…，Ｉｎｐｕｔｎ−１がシフトレジスタに結合され，この入力は印加されたデータワードの対応するビット桁に相当し，予め定められたクロックで読み込まれてシフトされる。その後シフトレジスタ内に状態Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４，…，Ｘｎ−１が生じる。ここでｎはゼロより大きい自然数であって，この具体的な例においては，少なくとも６に相当する。
【００１２】
図２は，同様にシフトレジスタ１００〜１０５と，ＸＯＲ回路，即ちＸＯＲ結合１０６〜１１１とを有するＭＩＳＲを示している。さらに，付加的に２つのＸＯＲ結合１１２および１１３が示されており，この例において，このＸＯＲ結合はシフトレジスタ１００およびシフトレジスタ１０２の後方で操作される。上記は標準タイプのＭＩＳＲであって，その場合に結合点，即ちＸＯＲ結合点１１２と１１３およびその数は，ＭＩＳＲ内で任意に選択することができる。ここでも，ｎ∈Ｎとして，０〜ｎ−１の入力と，Ｘ０〜Ｘｎ−１のシフトレジスタの状態が示されている。
【００１３】
図３は，示された順に連続して入力Ｉｎｐｕｔ０〜Ｉｎｐｕｔｎ−１へ印加される，３つのデータワードＤＷ１，ＤＷ２，ＤＷ３を示している。ここで，個々のビット桁は，ＢＳ０〜ＢＳｎ−１で示されている。例えば，時点ＴにおいてデータワードＤＷ１内のＩｎｐｕｔ１の位置にエラーＦがあり，同様に後の時点Ｔ＋１においてデータワードＤＷ２内のＩｎｐｕｔ２の位置にエラーＦが生じた場合，これらのエラーはＭＩＳＲ内のクロックによってシフトされた後に相殺される。同じことが，結合時点や，データワードおよびそれに応じたＩｎｐｕｔの位置に基づいて，結果として相殺される，他のエラー状況についても当てはまる。
【００１４】
図４においては，ＭＩＳＲは，ｉビットコード発生部４０７が追加されている。その場合にｉは，上記同様，ゼロよりも大きい自然数としてビットの数を表しており，それらのビットは，コード発生部を通じて，コード発生部内で用いられるコードもしくはＥＣＣコードに従って，ＭＩＳＲ内に結合される。コード発生部から出力されるビット桁の数ｉに応じて，ここでは符号４０８で示される，対応する数のシフトレジスタがＭＩＳＲに付加的に設けられている。最も簡単な場合として，パリティビットの形成を行うことができ，１つの追加レジスタと他のＩｎｐｕｔ−１のみが設けられる。
【００１５】
ＭＩＳＲ内のどの部分において，少なくとも１つの追加シフトレジスタもしくは少なくとも１つの追加結合点，即ちＸＯＲもしくはＸＮＯＲ回路が設けられるかは，自由に選択可能であり，ここでは例として示されているに過ぎない。従って，図４では再び通常のシフトレジスタ１００〜１０５が示されており，その場合に少なくとも１つの追加シフトレジスタ４０８が設けられている。本発明に基づく装置の入力Ｉｎｐｕｔ０４，Ｉｎｐｕｔ１４，Ｉｎｐｕｔ２４，Ｉｎｐｕｔ３４，Ｉｎｐｕｔ４４，…，Ｉｎｐｕｔ（ｎ−１）４は，ここではＸＯＲ回路，即ちＸＯＲ結合へ案内されるだけでなく，ｉビットコード発生部にも供給される。即ち，予め定められたクロックでそれぞれ受け入れるデータワードから，用いられるコード（特にＥＣＣ）に従って付加情報が生成され，それに応じた数のシフトレジスタに供給される。この例においては，ＸＯＲ結合点としてエレメント４００〜４０６が設けられており，その場合，本実施形態においては，入力Ｉｎｐｕｔ−ｉとシフトレジスタ４０８の状態Ｘ−ｉの他に，シフトレジスタの通常の状態であるＸ０，Ｘ１，Ｘ２，Ｘ３，…，Ｘｎ−１が生じる。ｉビットコード発生部４０７の出力としての付加的な矢印は，他の実施形態においては，使用するコードに応じて，１よりも多い追加ビット桁がＭＩＳＲへ書き込まれることを示唆している。
【００１６】
ハミングコードを使用する場合，例えば，シングルエラー修正のためのＥＣＣとして，有効データ４ビットに対して３ビットの補正コードが生じる。また，８ビットの有効データのシングルエラー修正には，４ビットの補正コードが生じる。有効データが１６ビットである場合には，５ビットの補正コードが生じ，有効データが３２ビットの場合には６ビットの補正コードが生じる。即ち，一般に２ｋ＞＝ｍ＋ｋ＋１であり，その場合にｍはゼロより大きい自然数としての有効ビットの数に相当し，ｋは同様に自然数としてのコードビットもしくは補正ビットまたは補正コードに相当する。付加的にダブルエラー検出が行われる場合には，それぞれ１ビット多い補正コードが設けられる。
【００１７】
例えば，ベルガーコードが使用される場合には，有効データが４ビットである場合に，５状態のための３コードビットが設けられ，有効データが８ビットである場合には，９状態のための４コードビットが設けられる。有効データが１６ビットである場合には，１７状態において付加的に５コードビットが，そして有効データが３２ビットである場合には，３３の状態において付加的に６コードビットが設けられる。ここでは一般に，２ｋ＞＝ｍ＋１またはｋ＞１ｄ（ｍ＋１）なることが必要であって，その場合にｍはデータの有効ビット数に相当し，ｋはコードビット数もしくは補正コードに相当する。
【００１８】
この場合に，ボーズ−リンコードのような，他のコードも可能であり，その場合にコード化ビットの数は，ベルガーコードと等しいが，チェックビットは単にモジュロ４ないしモジュロ（ｍｏｄｕｌｏ）８からとられる。
【００１９】
従ってこのコード化ビットｋの数に応じて，コード発生部の出力の数が決まり，また，追加入力（ｉｎｐｕｔ）−ｉ（その場合にｉ＝１〜ｋ∈Ｎ）とそれに応じた数のシフトレジスタおよび結合点が設けられる。
【００２０】
従ってＭＩＳＲは，元のデータＩｎｐｕｔ０〜Ｉｎｐｕｔｎ−１から少なくとも１つのパリティコードまたは他のコードを獲得し，ここではモジュラータイプ（図１）に対する図４の例に記載されているような，電子署名に取り込まれて，少なくとも１桁拡張される。もちろん同じことが，標準タイプ（図２）についても当てはまる。ここで，コード発生部は，ｉ＝１のパリティジェネレータであるとしても良く，この場合，厳密には追加フリップフロップが必要である。例えばＩｎｐｕｔ３にエラーが生じた場合，追加Ｉｎｐｕｔ−１，即ちパリティＩｎｐｕｔには変更された値が供給される。ここでエラーが生じた場合に，このエラー値を隠すためには，正確に次のクロックにおいてＩｎｐｕｔ４およびＩｎｐｕｔ０にもエラーが必要である。従って，ここではより高いハミング間隔が存在し，ダブルエラーによるエラー隠しが行われるためには正確な時間的動作が必要なので，エラーが隠れる確率が著しく減少する。
【００２１】
上述したように，コードビットをより多く使うことによって，ハミング間隔を任意に，さらに高めることができる。結合に用いられるＸＯＲ結合の代わりにＸＮＯＲ結合が使用される場合には，得られる冗長性はわずかに少なくなるが，従来技術におけるよりもずっと少ないエラー消去確率を得ることができる。
【００２２】
他の可能性として，コード発生部４０７のためにさらにテーブルへの対応付け，即ちコード発生テーブルの使用が考えられ，そのコード発生テーブルにおいては，入力されたデータワードのビットの組合せに従って，予め定められた数のコードビットに相当する数のシフトレジスタへ結合される。この種のコード発生テーブルによって，入力されたデータビットを出力されるコード化ビットに任意に対応づけることが可能になる。
【００２３】
ＭＩＳＲにより形成された電子署名を読み出すために，シリアルの場合においては切替え手段Ｓが設けられており，その切替え手段がフィードバック線を中断して，レジスタの読出しをシリアルにすることができる。他方で，文字Ｐと破線で示唆されるように，シフトレジスタをパラレルに，そしてそれに伴って電子署名を一気にＭＩＳＲから出力し，この電子署名と対応する予測電子署名とを比較する可能性がある。
【００２４】
従って本発明は，通常のＭＩＳＲよりもずっと高い安全ファクターを示し，かつこれを，エラー隠しを補償するために常に必要とされるデータワードの反転よりも，ずっとわずかなコストで実施可能である。
【００２５】
従って本発明は，すべての安全上重要な適用において，特にブレーキ制御（ＡＢＳ，ＡＳＲ，ＥＳＰなど），ステア−バイ−ワイヤ，ブレーキバイワイヤ，従って一般にｘバイワイヤ，エアバッグ，エンジン制御，トランスミッション制御などのような車両領域に使用することができる。同様に本発明は，マイクロコントローラまたは他の半導体構造においてテストの範囲内で，かつすべてのＢＩＳＴ構造（built-in-self-test）において，そしてまた製造テストを最適化するためにも使用することができる。
【図面の簡単な説明】
【００２６】
【図１】シフトレジスタとＸＯＲ回路，即ちＸＯＲ結合点を有するＭＩＳＲ回路を示している。
【図２】同様にシフトレジスタとＸＯＲ回路，即ちＸＯＲ結合を有するＭＩＳＲを示している。
【図３】３つのデータワードＤＷ１，ＤＷ２およびＤＷ３を示している。
【図４】ｉビットコード発生部だけ拡張されたＭＩＳＲを示している。
【図１】
0004520407.tif 000002
【図２】
0004520407.tif 000003
【図３】
0004520407.tif 000004
【図４】
0004520407.tif 000005