(57)【要約】      （修正有）【課題】回路規模を抑えた上で、通信データの秘匿性の向上および回路内部動作の不正な解析・推定の防止を図る。【解決手段】送信側デバイス１０から、受信側デバイス２０に送信するとき、エンコーダ１１は、入力データの内のデータＸ０を初期値の外部データＢｉとし、その外部データＢｉと入力データＸ０との排他的論理和を外部データＢ０とし、入力データＸ０とＸ１の排他的論理和を外部データＢ１とし、入力データＸ１とＸ２の排他的論理和を外部データＢ２とし、以下ｎビット目まで同様の演算を行い、外部データＢｉとＢ０〜Ｂｎ−１を出力する。デコーダ２１は、初期値の外部データＢｉとＢ０との排他的論理和を出力データＹ０とし、出力データＹ０と外部データＢ１の排他的論理和を出力データＹ１とし、出力データＹ１と外部データＢ２の排他的論理和を出力データＹ２とし、以下ｎビット目まで同様の演算を行い、出力データＹ０〜Ｙｎ−１を出力する。【選択図】図１
2009077286.tif 000002
【特許請求の範囲】
【請求項１】
エンコーダを組み込んだ送信側デバイスから、外部データバスを経由して、デコーダを組み込んだ受信側デバイスにｎビットの並列データを送信するとき、
前記エンコーダにおいて、入力データの内の１ビット目のデータを初期値の外部データとし、該初期値の外部データと前記１ビット目のデータとの排他的論理和を１ビット目の外部データとし、前記入力データの内の前記１ビット目のデータと２ビット目のデータとの排他的論理和を２ビット目の外部データとし、前記入力データの内の前記２ビット目のデータと３ビット目のデータとの排他的論理和を３ビット目の外部データとし、以後これをｎビット目の外部データまで繰り返し、
前記デコーダにおいて、前記初期値の外部データと前記１ビット目の外部データとの排他的論理和を１ビット目の出力データとし、該１ビット目の出力データと前記２ビット目の外部データとの排他的論理和を２ビット目の出力データとし、該２ビット目の出力データと前記３ビット目の外部データとの排他的論理和を３ビット目の出力データとし、以後これをｎビット目の出力データまで繰り返す、
ことを特徴とする半導体デバイス間通信方法。
【請求項２】
請求項１に記載の半導体デバイス間通信方法において、
前記エンコーダにおける前記入力データの１ビット目〜ｎビット目を、ｎビットの前記入力データの並び順に対して任意に並び替えたビットとし、
前記デコーダにおける前記各排他的論理和の結果を、前記並び替えに応じて並び替えて、前記１ビット目〜ｎビット目の出力データとする、
ことを特徴とする半導体デバイス間通信方法。
【請求項３】
エンコーダを組み込んだ送信側デバイスから、外部データバスを経由して、デコーダを組み込んだ受信側デバイスにｎビットの並列データを送信する半導体デバイス間通信装置において、
前記エンコーダは、入力データの内の１ビット目のデータを初期値の外部データとして出力するスルー経路と、該初期値の外部データと前記１ビット目のデータとの演算結果を１ビット目の外部データとして出力する第１の排他的論理和回路と、前記入力データの内の前記１ビット目のデータと２ビット目のデータとの演算結果を２ビット目の外部データとして出力する第２の排他的論理和回路と、前記入力データの内の前記２ビット目のデータと３ビット目のデータとの演算結果を３ビット目の外部データとして出力する第３の排他的論理和回路と、・・・・、前記入力データの内の前記ｎ−１ビット目のデータとｎビット目のデータとの演算結果をｎビット目の外部データとして出力する第ｎの排他的論理和回路とを備え、
前記デコーダは、前記初期値の外部データと前記１ビット目の外部データとの演算結果を１ビット目の出力データとして出力する第ｎ＋１の排他的論理和回路と、前記１ビット目の出力データと前記２ビット目の外部データとの演算結果を２ビット目の出力データとして出力する第ｎ＋２の排他的論理和回路と、前記２ビット目の出力データと前記３ビット目の外部データとの演算結果を３ビット目の出力データとして出力する第ｎ＋３の排他的論理和回路と、・・・・、前記ｎ−１ビット目の出力データと前記ｎビット目の外部データとの演算結果をｎビット目の出力データとして出力する第２ｎの排他的論理和回路とを備える、
ことを特徴とする半導体デバイス間通信装置。
【請求項４】
請求項３に記載の半導体デバイス間通信装置において、
前記エンコーダにおける前記入力データの１ビット目〜ｎビット目を、ｎビットの前記入力データの並び順に対して任意に並び替えたビットとし、
前記デコーダにおける前記各排他的論理和の演算結果を、前記並び替えに応じて並び替えて、前記１ビット目〜ｎビット目の出力データとした、
ことを特徴とする半導体デバイス間通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体デバイス間で外部データバスを使用してデータ送受信を行う際に、やり取りされる信号に対して簡易な方法による暗号化処理を施すことにより、回路規模の増大を極力抑えた上で通信データの秘匿性の向上および回路内部動作の不正な解析・推定の防止を図った半導体デバイス間通信方法および装置に関するものである。
【背景技術】
【０００２】
従来から、複数の半導体デバイス間（ＣＰＵ−外部メモリ、ＣＰＵ−ＣＰＵなど）で通信を行う場合、外部データバスにより各デバイスを接続し、データ、アドレス、制御信号などをその外部データバスを介してやり取りしている。このとき、外部データバスの複数の信号線からプローブを取ることが可能であるが、これを第三者に実行されると、デバイス間でやり取りされる情報を観測され、重要データを盗聴されたり、回路の内部動作を不正に解読・推定される恐れがある。
【０００３】
これに対して、ダミー信号をその外部データバスで同時に送信したり、データ自体を高度に暗号化して送信したり、特許文献１に記載のようにバス伝送するデータの一部をラッチして、そのラッチデータにより伝送データを暗号化する方法などが提案されている。
【特許文献１】特開２００４−７２６７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところが、ダミー信号を同時に送信する方法では、秘匿性を高めるためには、バス幅が広くなり、ダミー信号線数がより多く必要となる。また、データそのものを暗号化する方法では、デバイス内に複雑な暗号化／復号化の処理機能を搭載する必要があり回路規模が増大する。また、特許文献１に記載のものは、送受信側に備えられるラッチ回路にラッチさせるデータの値を同期させなければならない。
【０００５】
本発明の目的は、簡易な構成により実現でき、また送受間で同期をとる必要もなく、回路規模の増大を極力抑えた上で、通信データの秘匿性の向上および回路内部動作の不正な解析・推定の防止を図った半導体デバイス間通信方法および装置を提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の半導体デバイス間通信方法は、エンコーダを組み込んだ送信側デバイスから、外部データバスを経由して、デコーダを組み込んだ受信側デバイスにｎビットの並列データを送信するとき、前記エンコーダにおいて、入力データの内の１ビット目のデータを初期値の外部データとし、該初期値の外部データと前記１ビット目のデータとの排他的論理和を１ビット目の外部データとし、前記入力データの内の前記１ビット目のデータと２ビット目のデータとの排他的論理和を２ビット目の外部データとし、前記入力データの内の前記２ビット目のデータと３ビット目のデータとの排他的論理和を３ビット目の外部データとし、以後これをｎビット目の外部データまで繰り返し、前記デコーダにおいて、前記初期値の外部データと前記１ビット目の外部データとの排他的論理和を１ビット目の出力データとし、該１ビット目の出力データと前記２ビット目の外部データとの排他的論理和を２ビット目の出力データとし、該２ビット目の出力データと前記３ビット目の外部データとの排他的論理和を３ビット目の出力データとし、以後これをｎビット目の出力データまで繰り返す、ことを特徴とする。
請求項２にかかる発明は、請求項１に記載の半導体デバイス間通信方法において、前記エンコーダにおける前記入力データの１ビット目〜ｎビット目を、ｎビットの前記入力データの並び順に対して任意に並び替えたビットとし、前記デコーダにおける前記各排他的論理和の結果を、前記並び替えに応じて並び替えて、前記１ビット目〜ｎビット目の出力データとする、ことを特徴とする。
請求項３にかかる発明の半導体デバイス間通信装置は、エンコーダを組み込んだ送信側デバイスから、外部データバスを経由して、デコーダを組み込んだ受信側デバイスにｎビットの並列データを送信する半導体デバイス間通信装置において、前記エンコーダは、入力データの内の１ビット目のデータを初期値の外部データとして出力するスルー経路と、該初期値の外部データと前記１ビット目のデータとの演算結果を１ビット目の外部データとして出力する第１の排他的論理和回路と、前記入力データの内の前記１ビット目のデータと２ビット目のデータとの演算結果を２ビット目の外部データとして出力する第２の排他的論理和回路と、前記入力データの内の前記２ビット目のデータと３ビット目のデータとの演算結果を３ビット目の外部データとして出力する第３の排他的論理和回路と、・・・・、前記入力データの内の前記ｎ−１ビット目のデータとｎビット目のデータとの演算結果をｎビット目の外部データとして出力する第ｎの排他的論理和回路とを備え、前記デコーダは、前記初期値の外部データと前記１ビット目の外部データとの演算結果を１ビット目の出力データとして出力する第ｎ＋１の排他的論理和回路と、前記１ビット目の出力データと前記２ビット目の外部データとの演算結果を２ビット目の出力データとして出力する第ｎ＋２の排他的論理和回路と、前記２ビット目の出力データと前記３ビット目の外部データとの演算結果を３ビット目の出力データとして出力する第ｎ＋３の排他的論理和回路と、・・・・、前記ｎ−１ビット目の出力データと前記ｎビット目の外部データとの演算結果をｎビット目の出力データとして出力する第２ｎの排他的論理和回路とを備える、ことを特徴とする。
請求項４にかかる発明は、請求項３に記載の半導体デバイス間通信装置において、前記エンコーダにおける前記入力データの１ビット目〜ｎビット目を、ｎビットの前記入力データの並び順に対して任意に並び替えたビットとし、前記デコーダにおける前記各排他的論理和の演算結果を、前記並び替えに応じて並び替えて、前記１ビット目〜ｎビット目の出力データとした、ことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、送信側デバイスにエンコーダを組み込み、受信側デバイスにデコーダを組み込んで送受信を行う事で、外部データバス上でやり取りされる信号を観測しても、元のデータとはなんら関係ないビット列が観測されるだけで、回路動作を解読・推定したり送受信データを盗聴をする事ができなくなる。また、送信側や受信側のデバイス本来の動作仕様・入出力仕様には一切の変更はなく、この暗号化処理のための特別な同期方法も必要とせず、また、本来のシステムに対して、１本の初期値用の信号線と各デバイス内に簡易で小規模なエンコーダやデコーダ回路を追加するだけで上記の機能が実現できる。
【発明を実施するための最良の形態】
【０００８】
図１は本発明の１つの実施例の半導体デバイス間通信装置の構成を示すブロック図であり、ビット幅ｎの並列データの伝送の場合を示す。１０は送信側デバイスであり、入力データＸ０〜Ｘｎ−１（Ｘ０：ＬＳＢ、Ｘｎ−１：ＭＳＢ）を取り込み、外部データＢｉとＢ０〜Ｂｎ−１を出力するエンコーダ１１を備える。２０は受信側デバイスであり、外部データＢｉとＢ０〜Ｂｎ−１を取り込み、出力データＹ０〜Ｙｎ−１（Ｙ０：ＬＳＢ、Ｙｎ−１：ＭＳＢ）を出力するデコーダ２１を備える。３０は外部データバスであり、外部データＢｉとＢ０〜Ｂｎ−１を伝送するので、ｎ＋１本の信号線をもつ。
【０００９】
図２はエンコーダ１１の構成を示す回路図である。このエンコーダ１１は、ｎ個の排他的論理和回路１２０〜１２ｎ−１を備え、入力データＸ０〜Ｘｎ−１を入力すると、初期値の外部データＢｉは、スルー経路を介して、
Ｂｉ＝Ｘ０
となる。また、排他的論理和回路１２０は、
Ｂ０＝Ｂｉ・ＸＯＲ・Ｘ０
のように演算して、１ビット目の外部データＢ０を出力する。さらに、排他的論理和回路１２１〜１２ｎ−１は、
Ｂ１＝Ｘ０・ＸＯＲ・Ｘ１
Ｂ２＝Ｘ１・ＸＯＲ・Ｘ２
：
Ｂｎ−１＝Ｘｎ−２・ＸＯＲ・Ｘｎ−１
のように演算して、２〜ｎビット目の外部データＢ１〜Ｂｎ−１を出力する。
【００１０】
図３はデコーダ２１の構成を示す回路図である。このデコーダ２１は、ｎ個の排他的論理和回路２２０〜２２ｎ−１を備え、外部データＢｉ、Ｂ０〜Ｂｎ−１を入力すると、排他的論理和回路２２０は、
Ｙ０＝Ｂｉ・ＸＯＲ・Ｂ０
のように演算して、１ビット目の出力データＹ０を出力する。また、排他的論理和回路２２１〜２２ｎ−１は、
Ｙ１＝Ｙ０・ＸＯＲ・Ｂ１
Ｙ２＝Ｙ１・ＸＯＲ・Ｂ２
：
Ｙｎ−１＝Ｙｎ−２・ＸＯＲ・Ｂｎ−１
のように演算して、２〜ｎビット目の出力データＹ１〜Ｙｎ−１を出力する。
【００１１】
このような処理を送受信双方で行うと、Ｘ１〜Ｘｎ−１＝Ｙ１〜Ｙｎ−１となり、送信側が出力したｎビットの並列データは、受信側で元通りのデータに復元される。
【００１２】
本実施例では、あるビットを復号するためには、既に復号された上流のビット値の情報が必要であり、それは受信側デバイス２０の内部でしかわからないため、外部データバス３０上に現れている外部データＢｉ、Ｂ０〜Ｂｎ−１を観測したとしても、元の入力データＸ０〜Ｘｎ−１を推測することはできない。また、本実施例では回路本来の特別な改良は不要で、複雑で大規模な暗号化アルゴリズムを必要とせず、簡易な構成のエンコーダ１１とデコーダ２１を挿入するだけで済み、ｎビット幅の外部データバス３０にデータＢｉの信号線を１本追加するだけで実現できる。さらに、両デバイス１０，２０間で暗号化処理を行うための特別な同期方法も必要としない。
【００１３】
ここで、２つのデバイス１０，２０間で外部データバス３０を使用し、８ビット幅のデータ送受信を行う場合は、エンコーダ１１の入力データ、外部データバスの出力データ、デコーダ２１の出力データは、図４に示すようになる。すなわち、入力データを、｛Ｘ７〜Ｘ０｝＝｛０、０、１、１、１、０、１、１｝とすると、エンコーダ１１により、Ｂｉ＝Ｘ０＝１、Ｂ０＝Ｂｉ・ＸＯＲ・Ｘ０＝０、Ｂ１＝Ｘ０・ＸＯＲ・Ｘ１＝０、Ｂ２＝Ｘ１・ＸＯＲ・Ｘ２＝１、・・・・、となり、｛Ｂ７〜Ｂ０｝＝｛０、１、０、０、１、１、０、０｝の外部データが生成される。
【００１４】
デバイス２０では、外部データＢｉと｛Ｂ７〜Ｂ０｝を受信し、デコーダ２１によりＹ０＝Ｂｉ・ＸＯＲ・Ｂ０＝１、Ｙ１＝Ｙ０・ＸＯＲ・Ｂ１＝１、Ｙ２＝Ｙ１・ＸＯＲ・Ｂ２＝０、・・・・となり、｛Ｙ７〜Ｙ０｝＝｛０、０、１、１、１、０、１、１｝の出力データが生成される。よって、｛Ｘ７〜Ｘ０｝＝｛Ｙ７〜Ｙ０｝となり、元の信号が正しく復元できる。
【００１５】
同様に、図５に示すように、入力データを、｛Ｘ７〜Ｘ０｝＝｛１、０、１、０、０、０、１、０｝としたときは、Ｂｉ＝０、｛Ｂ７〜ＢＯ｝＝｛１、１、１、０、０、１、１、０｝の外部データとなり、｛Ｙ７〜Ｙ０｝＝｛１、０、１、０、０、０、１、０｝の出力データが生成され、｛Ｘ７〜Ｘ０｝＝｛Ｙ７〜Ｙ０｝となる。
【００１６】
なお、以上説明したエンコーダ１１の入力データＸ０〜Ｘｎ−１は、排他的論理和回路１２０〜１２ｎ−１に対して、入力データＸ０〜Ｘｎ−１の並び順序をランダムに変更して接続することができる。この場合は、デコーダ２１について、排他的論理和回路２２０〜２２ｎ−１の出力を、出力データＹ０〜Ｙｎ−１に対して、前記変更に対応して並び順序を変更すればよい。例えば、図６に示すように、入力データＸ０〜Ｘｎ−１の内のＸ０とＸ１の並びを逆にし、Ｘ２とＸ３の並びを逆にして、それぞれ排他的論理和回路に入力させるエンコーダ１１Ａを使用する場合は、図７に示すように、それに対応して、排他的論理和回路の出力を並び替えて、出力データＹ０〜Ｙｎ−１とするデコーダ２１Ａを使用すればよい。
【００１７】
また、以上では、データＸ０，Ｙ０をＬＳＢ側（１ビット目）とし、データＸｎ−１，Ｙｎ−１をＭＳＢ側（ｎビット目）としたが、データＸ０，Ｂ０，Ｙ０をＭＳＢ側（１ビット目）とし、データＸｎ−１，Ｂｎ−１，Ｙｎ−１をＬＳＢ側（ｎビット目）としてもよい。
【図面の簡単な説明】
【００１８】
【図１】本発明の半導体デバイス間通信装置の構成を示すブロック図である。
【図２】図１に示す半導体デバイス間通信装置のエンコーダの構成を示すブロック図である。
【図３】図１に示す半導体デバイス間通信装置のデコーダの構成を示すブロック図である。
【図４】データ幅を８ビットとしたときのエンコーダの入力データ、外部データバス上のデータ、デコーダの出力データの関係を示す説明図である。
【図５】データ幅を８ビットとしたときの別の例のエンコーダの入力データ、外部データバス上のデータ、デコーダの出力データの関係を示す説明図である。
【図６】図１に示す半導体デバイス間通信装置のエンコーダの別の例の構成を示すブロック図である。
【図７】図１に示す半導体デバイス間通信装置のデコーダの別の例の構成を示すブロック図である。
【符号の説明】
【００１９】
１０：送信側デバイス、１１，１１Ａ：エンコーダ、１２０〜１２ｎ−１：排他的論理和回路
２０：受信側デバイス、２１，２１Ａ：デコーダ、２２０〜２２ｎ−１：排他的論理和回路
３０：外部データバス
【図１】
2009077286.tif 000003
【図２】
2009077286.tif 000004
【図３】
2009077286.tif 000005
【図４】
2009077286.tif 000006
【図５】
2009077286.tif 000007
【図６】
2009077286.tif 000008
【図７】
2009077286.tif 000009