(57)【要約】      （修正有）【課題】秘匿データ通信において不正なデータを検出することが可能な半導体装置を提供する。【解決手段】データを送受信する半導体装置１０１＿１は、送信データから第１規則に従って、第１データを取り出す特定ビット取り出しブロック３０６と、受信データから第２規則に従って、第２データを取り出す特定ビット取り出しブロック３０２と、第１データおよび第２データを蓄積するビットパターン蓄積バッファ３０８を備える。ビットパターン蓄積バッファ３０８に蓄積された第１データと第２データの組合わせによって、送信データをスクランブルするスクランブルパターンが生成される。続く送信データはスクランブルパターンを用いてスクランブルされる。【効果】受信側の半導体装置は送信側の半導体装置から送信されたスクランブルデータをデスクランブルして、適切なデータであるか否かを判定して、受信したスクランブルデータが正しいか否かを検証できる。【選択図】図３
2019078985.tif 000002
【特許請求の範囲】
【請求項１】
データを送受信する半導体装置であって、
送信データに基づいた第１データと、受信データに基づいた第２データとの組合せを、スクランブルパターンとして、送信データをスクランブルするスクランブル部を備える、半導体装置。
【請求項２】
請求項１に記載の半導体装置において、
前記送信データから第１規則に従って、前記第１データを抽出する第１抽出ブロックと、
前記受信データから第２規則に従って、前記第２データを抽出する第２抽出ブロックと、
前記第１データと前記第２データを蓄積するバッファと、
を更に備え、
前記バッファから、前記第１データと前記第２データとの組合せが、スクランブルパターンとして、前記スクランブル部に供給される、半導体装置。
【請求項３】
請求項２に記載の半導体装置において、
前記バッファは、前記送信データを送信する毎に、前記第１抽出ブロックで抽出された前記第１データを蓄積し、前記受信データを受信する毎に、前記第２抽出ブロックで抽出された前記第２データを蓄積し、
前記スクランブル部には、複数の前記第１データと複数の前記第２データの組合せが、前記スクランブルパターンとして供給される、半導体装置。
【請求項４】
請求項３に記載の半導体装置において、
前記バッファは、複数の前記第１データと複数の前記第２データが、順次供給されるキュー回路と、送信データを送信するときに、前記キュー回路に蓄積されているデータを取り込むレジスタとを備え、
前記レジスタに取り込まれたデータが、前記スクランブルパターンとして、前記スクランブル部に供給される、半導体装置。
【請求項５】
請求項４に記載の半導体装置において、
前記第１抽出ブロックは、前記第１規則に従って、前記送信データにおける所定ビット位置のデータを前記第１データとして抽出し、
前記第２抽出ブロックは、前記第２規則に従って、前記受信データにおける所定ビット位置のデータを前記第２データとして抽出する、半導体装置。
【請求項６】
請求項３に記載の半導体装置において、
前記第１抽出ブロックは、前記送信データを送信する毎に変化するシーケンス番号が付与された前記送信データをハッシュ関数で撹拌したデータから、前記第１データを抽出し、前記第２抽出ブロックは、前記シーケンス番号が付与された受信データをハッシュ関数で撹拌したデータから、前記第２データを抽出する、半導体装置。
【請求項７】
請求項１〜６のいずれか一項に記載の半導体装置において、
前記スクランブルパターンを用いて、前記受信データをデスクランブルするデスクランブル部を更に備える、半導体装置。
【請求項８】
第１データを発生するパラメータ発生ブロックと、
前記第１データに従って送信データを制御する制御ブロックと、
第２データによって変調された受信データから、前記第２データを検出する検出ブロックと、
前記第１データと検出された前記第２データとの組合わせをスクランブルパターンとして、前記送信データをスクランブル部と、
を備える、半導体装置。
【請求項９】
請求項８に記載の半導体装置において、
前記制御ブロックは、前記第１データに従って、前記送信データの電圧振幅を制御する振幅制御ブロックを備え、
前記検出ブロックは、前記受信データの電圧振幅を基準電圧と比較し、前記第２データを検出する比較ブロックを備える、半導体装置。
【請求項１０】
請求項９に記載の半導体装置において、
電圧振幅が変化するクロック信号を発生するクロック信号発生ブロックを更に備え、
前記送信データは、前記クロック信号に同期して、送信される、半導体装置。
【請求項１１】
前記請求項８に記載の半導体装置において、
前記制御ブロックは、前記第１データに従って、前記送信データの周期を制御し、
前記検出ブロックは、前記第２データに従って周期が変調された受信データから、前記第２データを検出する、半導体装置。
【請求項１２】
第１半導体装置と第２半導体装置とを備え、前記第１半導体装置と前記第２半導体装置との間でデータの送受信が行われるシステムであって、
前記第１半導体装置および前記第２半導体装置のそれぞれは、
送信データに基づいた第１データと、受信データに基づいた第２データとの組合せを、スクランブルパターンとして、送信データをスクランブルするスクランブル部と、
前記スクランブルパターンを用いて、前記受信データをデスクランブルするデスクランブル部と、
を備える、システム。
【請求項１３】
請求項１２に記載のシステムにおいて、
前記第１半導体装置および前記第２半導体装置のそれぞれは、
前記第１半導体装置および前記第２半導体装置間おいて定められた第１規則および第２規則に従って、前記第１データおよび前記第２データを抽出する第１抽出ブロックおよび第２抽出ブロックと、
前記第１データと前記第２データを蓄積するバッファと、
を備え、
前記第１データと前記第２データとの組合せが、スクランブルパターンとして、前記バッファから前記スクランブル部およびデスクランブル部に供給される、システム。
【請求項１４】
請求項１３に記載のシステムにおいて、
前記第２半導体装置は、前記第１半導体装置と前記第２半導体装置間で予め定めたデータを、前記スクランブルパターンによってスクランブルして、送信データとして、前記第１半導体装置へ送信し、
前記第１半導体装置は、受信データを、前記スクランブルパターンを用いてデスクランブルし、デスクランブルした受信データが、前記予め定めたデータであるか否かを確認する、システム。
【請求項１５】
請求項１３に記載のシステムにおいて、
前記第１抽出ブロックは、送信データを送信する毎に変化するシーケンス番号が付与された前記送信データをハッシュ関数で撹拌したデータから、前記第１データを抽出し、前記第２抽出ブロックは、シーケンス番号が付与された受信データをハッシュ関数で撹拌したデータから、前記第２データを抽出する、システム。
【請求項１６】
請求項１３に記載のシステムにおいて、
前記第１半導体装置と前記第２半導体装置との間でデータの送受信が行われるデータ通信期間は、
前記スクランブルパターンを用いてスクランブルされた送信データが送受信されるスクランブル通信期間と、
前記スクランブル通信期間よりも前の期間であって、前記スクランブルパターンを用いてスクランブルが行われていない送信データが送受信される未スクランブル通信期間と、
を有し、
前記第１抽出ブロックは、前記未スクランブル通信期間における前記送信データの送信毎に、前記第１規則に従って、前記送信データにおける所定ビット位置のデータを前記第１データとして抽出し、
前記第２抽出ブロックは、前記未スクランブル通信期間における前記受信データの受信毎に、前記第２規則に従って、前記受信データにおける所定ビット位置のデータを前記第２データとして抽出し、
抽出された複数の前記第１データと複数の前記第２データが、前記バッファに蓄積される、システム。
【請求項１７】
請求項１６に記載のシステムにおいて、
前記第１半導体装置は、前記未スクランブル通信期間において、確認用データを前記第２半導体装置に送信し、
前記第２半導体装置は、前記確認データを、前記スクランブルパターンを用いてスクランブルして、前記第１半導体装置に送信し、
前記第１半導体装置は、前記第２半導体装置から送信されたスクランブルデータを、前記スクランブルパターンを用いてデスクランブルし、デスクランブルされたデータと前記確認データとを比較する、システム。
【請求項１８】
請求項１６に記載のシステムにおいて、
前記第１抽出ブロックは、前記スクランブル通信期間における前記送信データの送信毎に、前記第１規則に従って、前記送信データにおける所定のビット位置のデータを前記第１データとして抽出し、
前記第２抽出ブロックは、前記スクランブル通信期間における前記受信データの受信毎に、前記第２規則に従って、前記受信データにおける所定のビット位置のデータを前記第２データとして抽出し、
抽出された複数の前記第１データと複数の前記第２データが、前記バッファに蓄積される、システム。
【請求項１９】
請求項１２に記載のシステムにおいて、
前記スクランブル部および前記デスクランブル部は、プロセッサによって構成される、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置およびそれを用いたシステムに関し、例えば秘匿データ通信が可能な半導体装置およびそれを用いたシステムに関する。
【背景技術】
【０００２】
秘匿データ通信を実現するために、送受信される秘匿データを生成する暗号機能を半導体装置に実装することが考えられる。この場合、暗号機能は、例えば公開暗号キー等を用いた複雑な処理を実行することにより実現するが、複雑な処理を実行するために半導体装置に比較的高い処理能力が要求されることになる。
【０００３】
また、秘匿データ通信には、スクランブルパラメータによってデータをスクランブルして送信する技術も存在する。このような技術は、例えば特許文献１に記載されている。
【０００４】
特許文献１には、頻繁に変更されるスクランブルパラメータを用いてデータをスクランブルして放送し、受信側でこれをデスクランブルする放送形態が記載されている。特許文献１では、放送すべき正味のデータ以外に特別なスクランブルパラメータに係わる情報を放送しなくても、受信側で、正しくスクランブルパラメータを認識してデスクランブルを行えるようにする技術が示されている。すなわち、放送局では、放送したいデータ中の所定位置からビット列を読取り、このビット列に基づきスクランブルパラメータを作成し、スクランブルパラメータを用いて、データをスクランブルして放送する。一方、受信側では、受信したデータ中の所定位置からビット列を読取り、このビット列に基づいて同じスクランブルパラメータを作成し、受信データをデスクランブルする。これにより、正味のデータ以外に特別なスクランブルパラメータに係わる情報を放送しなくても、受信側では正しくデスクランブルを行うことが可能となっている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−５１３１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記したように、暗号機能を半導体装置に実装する場合には、半導体装置に比較的高い処理能力が要求されるため、半導体装置の製造価格が高くなったり、消費電力が大きくなると言う課題が生じる。
【０００７】
そのため、暗号機能を実装することが困難な半導体装置間で秘匿データ通信を実現する場合には、事前にスクランブルパラメータ（以下、スクランブルパターンとも称する）を半導体装置間でやり取りし、秘匿したい重要なデータを送信する際には、このスクランブルパラメータを用いてスクランブルすることが考えられる。この場合、受信側の半導体装置では、事前にやり取りしたスクランブルパターンでデスクランブルして、重要なデータを復号することになる。スクランブルパターンを用いたデータのスクランブルおよびデスクランブルで、データの暗号化および復号化を行うため、暗号機能を実装することが困難な比較的処理能力の低い半導体装置でも秘匿データ通信を実現することが可能となる。
【０００８】
しかしながら、スクランブルパターンのやり取りにおいて、特定のタイミングでスクランブルパターンを送信すると、半導体装置間の通信ラインを観察しているもの（例えば悪意のある第三者）が、スクランブルパターンを推測し易いと言う課題がある。
【０００９】
特許文献１によれば、正味のデータ以外に特別なスクランブルパターンに係わる情報を送信しなくても済むが、次のような課題が存在することを本発明者らは見出した。すなわち、特許文献１に記載の技術では、放送局から受信側に向けて、スクランブルパターンによってスクランブルしたスクランブルデータが一方的に送信されている。従って、受信側は、受信したスクランブルデータが正しいデータか否かを確認することが困難である。そのため、悪意のある第三者が、例えば改ざんしたスクランブルデータを生成し、送信した場合でも、受信側では、受信したスクランブルデータが正しいものとして処理を実行しなければならない等の脅威が想定される。
【００１０】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
一実施の形態に係わる半導体装置を述べると、次のとおりである。
【００１２】
すなわち、データを送受信する半導体装置は、送信すべき送信データに基づいた第１データと、受信した受信データに基づいた第２データとの組合せを、スクランブルパターンとして、送信データをスクランブルするスクランブル部を備えている。送信データに基づいた第１データと受信データに基づいた第２データとの組合せが、半導体装置間の秘匿データ通信の際のスクランブルパターンとして用いられることになる。そのため、第三者が改ざんした不正なスクランブルパターンまたは／および不正なスクランブルデータを送信しても、受信した半導体装置において不正なデータであると検出することが可能であり、暗号機能を備えていない半導体装置あるいはそれを用いたシステムであっても、不正な処理の実行を防ぐことが可能である。
【００１３】
また、一実施の形態に係わる半導体装置においては、送信データを送信する毎に、第１データが、バッファに蓄積され、受信データを受信する毎に、第２データが、バッファに蓄積される。このバッファに蓄積された複数の第１データと複数の第２データの組合せが、スクランブルパターンとして用いられる。スクランブルパターンは、時間的に分散した送信データおよび受信データから抽出された第１データおよび第２データによって構成されることになる。時間的に分散した第１データおよび第２データによって、スクランブルパターンが構成されるため、スクランブルパターンの特定をより困難にすることが可能である。
【発明の効果】
【００１４】
一実施の形態によれば、秘匿データ通信において不正なデータを検出することが可能な半導体装置を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１に係わるシステムの構成を示すブロック図である。
【図２】（Ａ）および（Ｂ）は、実施の形態１に係わるシステムでのデータ通信を説明するための説明図である。
【図３】実施の形態１に係わる半導体装置の構成を示すブロック図である。
【図４】実施の形態１に係わる特定ビット取り出しブロックの動作を説明するための模式的な説明図である。
【図５】実施の形態１に係わるビットパターン蓄積バッファの構成を示すブロック図である。
【図６】（Ａ）および（Ｂ）は、実施の形態１に係わる半導体装置の動作を示すフロチャート図である。
【図７】（Ａ）および（Ｂ）は、実施の形態１に係わる半導体装置の動作を示すフロチャート図である。
【図８】実施の形態２に係わるシステムでのデータ通信を説明するための説明図である。
【図９】実施の形態２に係わる半導体装置の構成を示すブロック図である。
【図１０】（Ａ）および（Ｂ）は、実施の形態２に係わる半導体装置の動作を示すフロチャート図である。
【図１１】（Ａ）および（Ｂ）は、実施の形態２に係わる半導体装置の動作を示すフロチャート図である。
【図１２】実施の形態３に係わる半導体装置の構成を示すブロック図である。
【図１３】（Ａ）〜（Ｄ）は、実施の形態３に係わる通信ラインの電圧変動を示す波形図である。
【図１４】（Ａ）および（Ｂ）は、実施の形態３に係わる半導体装置の動作を示すフロチャート図である。
【図１５】（Ａ）および（Ｂ）は、実施の形態３に係わる半導体装置の動作を示すフロチャート図である。
【図１６】実施の形態４に係わる半導体装置の構成を示すブロック図である。
【図１７】（Ａ）〜（Ｄ）は、実施の形態４に係わる通信データの周期変動を説明するための波形図である。
【図１８】（Ａ）および（Ｂ）は、実施の形態４に係わる半導体装置の動作を示すフロチャート図である。
【図１９】（Ａ）および（Ｂ）は、実施の形態４に係わる半導体装置の動作を示すフロチャート図である。
【図２０】実施の形態５に係わるシステムでのデータ通信を説明するための説明図である。
【図２１】（Ａ）および（Ｂ）は、実施の形態５に係わるシステムの確認動作を示すフロチャート図である。
【発明を実施するための形態】
【００１６】
以下、本発明の各実施の形態について、図面を参照しつつ説明する。なお、開示はあくまでも一例にすぎず、当業者において、発明の主旨を保っての適宜変更について容易に想到し得るものについては、当然に本発明の範囲に含有されるものである。また、図面は説明をより明確にするため、実際の態様に比べ、各部の幅、厚さ、形状等について模式的に表される場合があるが、あくまで一例であって、本発明の解釈を限定するものではない。
【００１７】
また、本明細書と各図において、既出の図に関して前述したものと同様の要素には、同一の符号を付して、詳細な説明を適宜省略することがある。
【００１８】
（実施の形態１）
＜システム＞
まず、複数の半導体装置によって構成されたシステムを説明する。図１は、実施の形態１に係わるシステムの構成を示すブロック図である。同図において、１００はシステムを示している。システム１００は、複数の半導体装置１０１を備えており、複数の半導体装置１０１が相互に接続されることによって、所望の機能を実現する。図１には、説明を容易にするために、２個の半導体装置１００＿１、１０１＿２のみが示されており、残りの半導体装置１０１は省略されている。半導体装置１０１＿１と半導体装置１０１＿２とを区別するために、以下の説明では、半導体装置１０１＿１は第１半導体装置と称し、半導体装置１０１＿２は第２半導体装置と称する。
【００１９】
この実施の形態においては、第１半導体装置１０１＿１と第２半導体装置１０１＿２との間が通信ラインによって接続され、第１半導体装置１０１＿１と第２半導体装置１０１＿２との間でデータ通信が行われる。特に制限されないが、この実施の形態におけるデータ通信は、シリアルでデータの送受信を行うシリアルデータ通信である。同図において、１０２＿１は、第１半導体装置１０１＿１から第２半導体装置１０１＿２に向けて送信される通信データを示しており、この通信データ１０２＿１を第２半導体装置１０１＿２が受信する。また、１０２＿２は、第２半導体装置１０１＿２から第１半導体装置１０１＿１に向けて送信される通信データを示しており、通信データ１０２＿２を第１半導体装置１０１＿１が受信する。同図において、破線１０３は、同期用クロック信号を示している。この実施の形態においては、第１半導体装置１０１＿１が同期用クロック信号１０３を第２半導体装置１０１＿２へ出力する。
【００２０】
特に制限されないが、第１半導体装置１０１＿１は、同期用クロック信号１０３の変化に同期して、通信データ１０２＿１を送信し、同期用クロック信号１０３の変化に同期して、通信データ１０２＿２を受信する。同様に、第２半導体装置１０１＿２も、同期用クロック信号１０３の変化に同期して、通信データ１０２＿２を送信し、通信データ１０２＿１を受信する。すなわち、クロック同期型のシリアル通信方式で、通信データの送受信が行われる。勿論、非同期型のシリアル通信方式で通信データの送受信が行われてもよい。
【００２１】
第１半導体装置１０１＿１および第２半導体装置１０１＿２は、システム１００を構成する１個のボード上に実装されていてもよいし、システム１００を構成する別々のボード上に実装されていてもよい。また、第１半導体装置１０１＿１および第２半導体装置１０１＿２は、機器と見なしてもよい。第１半導体装置１０１＿１を機器Ａと見なし、第２半導体装置１０１＿２を機器Ｂと見なした場合、システムを構成する機器Ａと機器Ｂとの間で、データ通信が行われることになる。
【００２２】
特に制限されないが、上記した第１半導体装置１０１＿１と第２半導体装置１０１＿２との間では、バッテリに関する通信データが送受信される。この場合、例えばバッテリが正規のバッテリであるか否かを示す認証データ等が秘匿の通信データとして第１半導体装置１０１＿１と第２半導体装置１０１＿２との間で送受信される。勿論、認証データだけでなく、バッテリに関する他のデータも、送受信される。
【００２３】
＜システムにおけるデータ通信＞
図２は、実施の形態１に係わるシステムでのデータ通信を説明するための説明図である。図２（Ａ）は、特許文献１で述べられているように、放送局（送信機）２００＿ｓから受信側（受信機）２００＿ｒに向けて一方的にスクランブルデータを送信するデータ通信を示している。一方、図２（Ｂ）は、実施の形態に係わるシステム１００で実施されるデータ通信を示している。図２（Ａ）および（Ｂ）において、ｔは時間を示しており、上側から下側に向かって時間ｔが経過する。
【００２４】
送信機２００＿ｒは、スクランブルパターンを用いて、送信すべき通信データをスクランブルし、スクランブル（暗号化）したスクランブルデータを形成し、例えば所定の時間間隔で、受信機２００＿ｒへ順次送信する。受信機２００＿ｒは、順次受信したスクランブルデータを、スクランブルパターンによってデスクランブル（復号化）する。
【００２５】
実施の形態に係わるシステム１００においては、図２（Ｂ）に示すように、第１半導体装置１０１＿１と第２半導体装置１０１＿２との間で双方向のデータ通信が行われる。図２（Ｂ）では、期間Ｔｎｓにおいて、第１半導体装置１０１＿１と第２半導体装置１０１＿２との間でデータ通信が行われる。この期間Ｔｎｓにおいては、第１半導体装置１０１＿１と第２半導体装置１０１＿２との間で送受信される通信データ１０２＿１、１０２＿２（図１参照）は、スクランブルされておらず、秘匿する必要が無い通信データの送受信が行われる。スクランブルされていない未スクランブルの通信データ（未スクランブルデータ）１０２＿１、１０２＿２の送受信が行われるため、期間Ｔｎｓは、以下、未スクランブル通信期間とも称する。
【００２６】
未スクランブル通信期間Ｔｎｓの後で、通信データを秘匿することが必要となった場合、スクランブル通信期間Ｔｓｓに移行し、第１半導体装置１０１＿１と第２半導体装置１０１＿２との間で送受信されるべきデータは、スクランブルされて、スクランブルデータが通信データ１０２＿１、１０２＿２として送受信される。
【００２７】
見方を変えると、この実施の形態に係わるシステム１００におけるデータ通信期間は、未スクランブル通信期間Ｔｎｓとスクランブル通信期間Ｔｓｓとを備えていると見なすことができる。また、スクランブル通信期間Ｔｓｓは、秘匿データ通信が行われている期間と見なすことができる。
【００２８】
スクランブル通信期間Ｔｓｓにおいては、図２（Ｂ）に示すように、一方の半導体装置（１０１＿２）から他方の半導体装置（１０１＿１）に向けて一方的にスクランブルデータを送信するようにしてもよいが、双方向で、スクランブルデータを送信するようにしてもよい。後で説明するが、スクランブル通信期間Ｔｓｓにおいても、双方向でスクランブルデータを送信する方が、秘匿性を向上させるのに望ましい。また、未スクランブル通信期間Ｔｎｓにおいては、図２（Ｂ）に示すように、時間的に複数回に分けて通信データ１０２＿１、１０２＿２の送受信が行われる。
【００２９】
＜第１半導体装置および第２半導体装置の構成＞
次に、第１半導体装置１０１＿１および第２半導体装置１０１＿２の構成を説明する。第１半導体装置１０１＿１および第２半導体装置１０１＿２のそれぞれは、複数の機能モジュールを備えており、備えている機能モジュールを組合わせることにより、所望の機能を達成するように構成されている。特に制限されないが、第１半導体装置１０１＿１により達成される機能と第２半導体装置１０１＿２により達成される機能とは異なっている。そのため、第１半導体装置１０１＿１が備える機能モジュールと第２半導体装置１０１＿２が備える機能モジュールとは、一部が異なっているが、データ通信の機能を提供するデータ通信機能モジュールの構成は、第１半導体装置１０１＿１と第２半導体装置１０１＿２とで同じになっている。
【００３０】
図３は、この実施の形態に係わる半導体装置の構成を示すブロック図である。同図には、第１半導体装置１０１＿１の構成が示されている。図面が複雑になるのを避けるために、同図には２個の機能モジュールとマイクロプロセッサ（以下、単にプロセッサと称する）が示されている。同図において、ＵＡＲＴＭはデータ通信機能モジュールを示し、ＭＯＤはデータ通信機能モジュールとは異なる他の機能モジュールを示し、ＣＰＵはプロセッサを示している。プロセッサＣＰＵ、データ通信機能モジュールＵＡＲＴＭおよび他の機能モジュールＭＯＤは、内部バスＩＢＳによって相互に接続されている。内部バスＩＢＳを介して、データ通信機能モジュールＵＡＲＴＭおよび他の機能モジュールＭＯＤとプロセッサＣＰＵとの間で、データの送受信が行われ、プロセッサＣＰＵの指示に従ってデータ通信機能モジュールＵＡＲＴＭおよび他の機能モジュールＭＯＤは動作する。
【００３１】
第２半導体装置１０１＿２も、第１半導体装置１０１＿１と同様に、データ通信機能モジュールＵＡＲＴＭ、他の機能モジュールＭＯＤおよびプロセッサを備えている。第１半導体装置１０１＿１と第２半導体装置１０１＿２において、データ通信機能モジュールＵＡＲＴＭは、先に述べたように同じ構成である。これに対して、プロセッサＣＰＵおよび他の機能モジュールＭＯＤは、第１半導体装置１０１＿１と第２半導体装置１０１＿２との間で、同じ構成であってもよいし、異なる構成であってもよい。
【００３２】
＜＜データ通信機能モジュール＞＞
次に、データ通信機能モジュールＵＡＲＴＭの構成を説明する。データ通信機能モジュールは、第１半導体装置１０１＿１と第２半導体装置１０１＿２とで同じ構成であるため、第１半導体装置１０１＿１を代表例として説明する。図３において、１０２＿１および１０２＿２は、図１で説明した通信データを示している。図３において、３００は受信ポートを示し、３０１は受信ブロックを示し、３０２は特定ビット取り出しブロック（以降、第２抽出ブロックまたは第２特定ビット取り出しブロックとも称する）を示し、３０３は受信バッファを示している。受信ポート３００に供給された通信データ１０２＿２は、受信データとして、受信ポート３００から受信ブロック３０１に供給される。受信ブロック３０１に供給された受信データは、受信バッファ３０３および特定ビット取り出しブロック３０２の両方に供給される。受信バッファ３０３に供給された受信データは、受信データ３０９として、受信バッファ３０３から内部バスＩＢＳに供給される。
【００３３】
一方、特定ビット取り出しブロック３０２に供給された受信データは、この特定ビット取り出しブロック３０２によって特定ビット位置のデータ（ビット情報）が取り出され（抽出され）、取り出された特定ビット位置のデータが、第２データとして、ビットパターン蓄積バッファ３０８に供給される。この特定ビット取り出しブロック３０２については、後で詳しく説明するので、ここでは説明を省略する。
【００３４】
図３において、３０４は送信ポートを示し、３０５は送信ブロックを示し、３０６は特定ビット取り出しブロック（以降、第１抽出ブロックまたは第１特定ビット取り出しブロックとも称する）を示し、３０７は送信バッファを示している。送信すべき送信データ３１０は、内部バスＩＢＳから送信バッファ３０７へ供給される。送信バッファ３０７は供給された送信データは、送信バッファ３０７から送信ブロック３０５および特定ビット取り出しブロック３０６の両方へ供給される。送信ブロック３０５に供給された送信データは、送信ポート３０４に出力され、送信ポート３０４から通信データ１０２＿１として送信される。
【００３５】
一方、特定ビット取り出しブロック３０６に供給された送信データは、この特定ビット取り出しブロック３０２によって特定ビット位置のデータ（ビット情報）が取り出され（抽出され）、取り出された特定ビット位置のデータが、第１データとして、ビットパターン蓄積バッファ３０８に供給される。この特定ビット取り出しブロック３０６についても、後で詳しく説明するので、ここでは説明は省略する。
【００３６】
ビットパターン蓄積バッファ３０８は、特定ビット取り出しブロック３０２によって取り出された特定ビット位置における第２データと特定ビット取り出しブロック３０６によって取り出された特定ビット位置における第１データとを、順次蓄積する。蓄積した複数の第１データと複数の第２データとを組合わせて、スクランブルパターンが生成される。ビットパターン蓄積バッファ３０８は、生成したスクランブルパターンを、スクランブルパターン生成タイミング信号３１２に応答して、スクランブルパターン３１１として内部バスＩＢＳに出力する。
【００３７】
この実施の形態においては、特に制限されないが、プロセッサＣＰＵが、送信すべき送信データ３１０を生成し、内部バスＩＢＳを介して、データ通信機能モジュールＵＡＲＴＭに供給する。また、プロセッサＣＰＵは、内部バスＩＢＳを介して、データ通信機能モジュールＵＡＲＴＭからの受信データ３０９を受け取り、受信データ３０９に対して所定の処理を実行する。また、内部バスＩＢＳを介して、プロセッサＣＰＵには、ビットパターン蓄積バッファ３０８からスクランブルパターン３１１が供給されている。
【００３８】
送信データを秘匿にする場合、ビットパターン蓄積バッファ３０８から供給されているスクランブルパターン３１１を用いて、プロセッサＣＰＵが、送信データをスクランブルする。このスクランブルによって生成されたスクランブルデータが送信データ３１０として送信バッファ３０７へ供給される。また、受信データがスクランブルデータの場合には、ビットパターン蓄積バッファ３０８から供給されているスクランブルパターン３１１を用いて、プロセッサＣＰＵが、受信データ３０９をデスクランブルし、暗号化されていない受信データを生成し、この暗号化されていない受信データに対して所定の処理を実行する。スクランブル（デスクランブル）は、例えば、送信データ（スクランブルデータ）とスクランブルパターンとの間で排他的な論理演算を実施することによって実現される。
【００３９】
＜＜特定ビット取り出しブロック＞＞
次に、特定ビット取り出しブロック３０２、３０６およびビットパターン蓄積バッファ３０８の動作を説明する。図４は、実施の形態１に係わる特定ビット取り出しブロック３０２、３０６の動作を説明するための模式的な説明図である。ここでは、図２（Ｂ）と同様に、第１半導体装置１０１＿１と第２半導体装置１０１＿２との間で交互に通信データが送受信され、未スクランブル通信期間Ｔｎｓにおいて、送信する通信データと受信した通信データに基づいて、スクランブルパターンを生成する場合を説明する。
【００４０】
第１半導体装置１０１＿１および第２半導体装置１０１＿２において、特定ビット取り出しブロック３０２および３０６は、予め決めた規則（第１規則および第２規則）に従って、通信データの所定ビット位置のデータを取り出して、第２データおよび第１データとして、ビットパターン蓄積バッファ３０８に供給する。
【００４１】
この実施の形態においては、第１半導体装置１０１＿１における特定ビット取り出しブロック３０６と第２半導体装置１０１＿２における特定ビット取り出しブロック３０２が、同じ規則（第１規則）に従って、同じ所定ビット位置のデータを取り出すものとする。また、第２半導体装置１０１＿２における特定ビット取り出しブロック３０６と第１半導体装置１０１＿１における特定ビット取り出しブロック３０２が、同じ規則（第２規則）に従って、同じ所定ビット位置のデータを取り出すものとする。また、第１半導体装置１０１＿１においては、送信データに係わる特定ビット取り出しブロック３０６が取り出したデータが、受信データに係わる特定ビット取り出しブロック３０２により取り出されるデータよりも先にビットパターン蓄積バッファ３０８に供給されるものとする。一方、第２半導体装置１０１＿２においては、受信データに係わる特定ビット取り出しブロック３０２が取り出したデータが、送信データに係わる特定ビット取り出しブロック３０６により取り出されるデータよりも先にビットパターン蓄積バッファ３０８に供給されるものとする。
【００４２】
第１半導体装置１０１＿１における特定ビット取り出しブロック３０６と第２半導体装置１０１＿２における特定ビット取り出しブロック３０２が従う規則（第１規則）は、順次送受信する通信データ１０２＿１０、１０２＿１１、１０２＿１２および１０２＿１３において、第４ビット目のビット位置ｂ４、第３ビット目のビット位置ｂ３、第５ビット目のビット位置ｂ５および第４ビット目のビット位置ｂ４におけるデータ（ビット情報）を、順次取り出す規則となっている。一方、第２半導体装置１０１＿２における特定ビット取り出しブロック３０６と第１半導体装置１０１＿１における特定ビット取り出しブロック３０２が従う規則（第２規則）は、順次送受信する通信データ１０２＿２０、１０２＿２１および１０２＿２２において、第５ビット目のビット位置ｂ５、第２ビット目のビット位置ｂ２および第２ビット目のビット位置ｂ２におけるデータ（ビット情報）を、順次取り出す規則となっている。
【００４３】
なお、同図では、通信データが、第０ビット目のビット位置ｂ０から始まり、通信データの最終ビットのビット位置は、通信データによって異なり、可変ビット長となっている。勿論、通信データは、第０ビットから始まり長さが同じ固定長のシリアルデータであってもよい。
【００４４】
上記した規則により、未スクランブル通信期間Ｔｎｓにおいて、第１半導体装置１０１＿１が第１の通信データ１０２＿１０を送信するとき、第１半導体装置１０１＿１における特定ビット取り出しブロック３０６は、通信データ１０２＿１０におけるビット位置ｂ４のデータを取り出し、ビットパターン蓄積バッファ３０８の第０ビット目のビット位置ｂ０に供給し、このビット位置ｂ０に取り出したデータを蓄積する。
【００４５】
第２半導体装置１０１＿２では、第１の通信データ１０２＿１０を受信すると、特定ビット取り出しブロック３０２が、通信データ１０２＿１０におけるビット位置ｂ４のデータを取り出し、ビットパターン蓄積バッファ３０８の第０ビット目のビット位置ｂ０に供給し、このビット位置ｂ０に取り出したデータを蓄積する。
【００４６】
次に、第２半導体装置１０１＿２が、第２の通信データ１０２＿２０を送信するときには、この第２半導体装置１０１＿２における特定ビット取り出しブロック３０６は、通信データ１０２＿２０におけるビット位置ｂ５のデータを取り出し、ビットパターン蓄積バッファ３０８の第１ビット目のビット位置ｂ１に供給し、このビット位置ｂ１に取り出したデータを蓄積する。
【００４７】
この第２の通信データ１０２＿２０を、第１半導体装置が受信すると、特定ビット取り出しブロック３０２は、通信データ１０２＿２０におけるビット位置ｂ５のデータを取り出し、ビットパターン蓄積バッファ３０８の第１ビット目のビット位置ｂ１に供給し、このビット位置ｂ１に取り出したデータを蓄積する。
【００４８】
以降、同様にして、第７の通信データ１０２＿１３の送受信が完了すると、第３の通信データ１０２＿１１〜第７の通信データ１０２＿１３のそれぞれにおいて、所定のビット位置におけるデータが、ビットパターン蓄積バッファ３０８の第２ビット目のビット位置ｂ２〜第６ビット目のビット位置ｂ６に、順次蓄積されることになる。これにより、第１半導体装置１０１＿１におけるビットパターン蓄積バッファ３０８において、第０ビット目のビット位置ｂ０〜第６ビット目のビット位置ｂ６に蓄積されているデータにより表されるビットパターンと、第２半導体装置１０１＿２におけるビットパターン蓄積バッファ３０８において、第０ビット目のビット位置ｂ０〜第６ビット目のビット位置ｂ６に蓄積されているデータにより表されるビットパターンとは同じになる。
【００４９】
すなわち、第１半導体装置１０１＿１と第２半導体装置１０１＿２との間で、上記したような規則を予め定めておけば、送信データのそれぞれの所定ビット位置から取り出したデータと、受信データのそれぞれの所定ビット位置から取り出したデータとを組合わせて生成したビットパターンは、第１半導体装置１０１＿１と第２半導体装置１０１＿２において同じになる。
【００５０】
この実施の形態においては、ビットパターン蓄積バッファ３０８に蓄積されたビットパターンが、スクランブルパターン３１１として用いられる。すなわち、第１半導体装置１０１＿１または第２半導体装置１０１＿２が、スクランブル通信期間Ｔｓｓにおいて通信データを送信する場合には、このビットパターンによってスクランブルして、送信データを生成する。一方、スクランブルデータを受信した第２半導体装置１０１＿２または第１半導体装置１０１＿１は、このビットパターンを用いてデスクランブルする。
【００５１】
図４では、ビットパターン蓄積バッファ３０８のビット位置ｂ０〜ｂ６までを、ビットパターンを生成するのに利用する例を示しているが、これに限定されるものではない。すなわち、ビットパターン蓄積バッファ３０８の有する全ビット位置ｂ０〜ｂ１０に、通信データの所定ビット位置のビット値を蓄積するようにしてもよい。このようにすることにより、スクランブルパターンをより複雑にすることが可能であり、秘匿性を向上させることが可能である。
【００５２】
また、実施の形態においては、第１のデータ通信１０２＿１０〜第６のデータ通信１０２＿１３のように複数回に分けて送受信される通信データから、スクランブルパターンを構成するデータを取り出すようにしている。すなわち、スクランブルパターンを構成するデータを、時間的に分散して、取り出すようにしているため、より秘匿性を向上させることが可能である。
【００５３】
さらに、実施の形態では、送信する通信データと受信した通信データから、交互にデータを取り出して組合わせるようにしているが、これに限定されるものではない。例えば、送信する通信データから連続的にデータを取り出し、その後で受信した通信データから連続的にデータを取り出し、連続して取り出したデータを組合わせるようにしてもよい。
【００５４】
図４では、同じ規則に従って、第１半導体装置１０１＿１における特定ビット取り出しブロック３０６と第２半導体装置１０１＿２における特定ビット取り出しブロック３０２が、同じ所定ビット位置のデータを取り出していた。また、同じ規則に従って、第２半導体装置１０１＿２における特定ビット取り出しブロック３０６と第１半導体装置１０１＿１における特定ビット取り出しブロック３０２が、同じ所定ビット位置のデータを取り出していた。しかしながら、これに限定されるものではない。例えば、全ての特定ビット取り出しブロックが、同じ規則に従って、同じ所定ビット位置のデータを取り出すようにしてもよい。
【００５５】
＜＜ビットパターン蓄積バッファ＞＞
図４では、未スクランブル通信期間Ｔｎｓにおいて、送受信される通信データを基にして、スクランブルパターンを生成する例を説明した。しかしながら、これに限定されるものではない。ここでは、スクランブル通信期間Ｔｓｓにおいても、双方向で送受信されるスクランブルデータを基にして、スクランブルパターンを生成する例を説明する。このように、スクランブル通信期間Ｔｓｓにおいても、スクランブルパターンを生成することにより、より秘匿性の向上を図ることが可能である。
【００５６】
未スクランブル通信期間Ｔｎｓとスクランブル通信期間Ｔｓｓの両方において、送受信される通信データからスクランブルパターンを生成するために、ビットパターン蓄積バッファ３０８が、図４に示した構成から図５に示す構成に変更される。
【００５７】
図５は、実施の形態１に係わるビットパターン蓄積バッファ３０８の構成を示すブロック図である。図５に示すビットパターン蓄積バッファ３０８は、キュー回路３０８＿Ｑとレジスタ３０８＿Ｒによって構成されている。後で、キュー回路３０８＿Ｒおよびレジスタ３０８＿Ｒについては詳しく説明するが、図５のビットパターン蓄積バッファ３０８の動作概要を述べると次の通りである。
【００５８】
特定ビット取り出しブロック３０２、３０６から出力された所定ビット位置におけるデータは、常時、キュー回路３０８＿Ｑに蓄積される。キュー回路３０８＿Ｑは、所定の数を超えるデータが供給されると、時間的に前に供給されたデータを順次破棄する。未スクランブル通信期間Ｔｎｓからスクランブル通信期間Ｔｓｓに移行するタイミングで、キュー回路３０８＿Ｑに蓄積されているビットパターンが、レジスタ３０８＿Ｒに格納される。このレジスタ３０８＿Ｒに格納されたビットパターンが、スクランブルパターン３１１として用いられる。これにより、未スクランブル通信期間Ｔｎｓおよびスクランブル通信期間Ｔｓｓの両方において、送受信していた通信データの所定ビット位置におけるデータにより、スクランブルパターンを生成することが可能となり、より秘匿性を高くすることが可能となる。
【００５９】
キュー回路３０８＿Ｑは、それぞれ入力ノードＱＩと出力ノードＱＯが接続された複数のフリップフロップ回路Ｆ０〜Ｆｎにより構成されたシフトレジスタを備えている。シフトレジスタの初段のフリップフロップ回路Ｆ０の入力ノードＱＩには、特定ビット取り出しブロック３０２および３０６によって取り出されたデータが供給される。また、フリップフロップ回路Ｆ０〜Ｆｎの出力ノードＱＯは、レジスタ３０８＿Ｒを構成するフリップフロップ回路Ｒ０〜Ｒｎの対応する入力ノードＱＩに接続されている。
【００６０】
フリップフロップ回路Ｆ０〜Ｆｎのクロック信号ノードＣＫには、クロック信号ＣＬＫが共通に供給されている。クロック信号ＣＬＫの変化に同期して、フリップフロップ回路Ｆ０〜Ｆｎは、入力ノードＱＩに供給されているデータを取り込み、出力ノードＱＯから出力する。特に制限されないが、クロック信号ＣＬＫは、通信データの送受信に同期して変化する。これにより、特定ビット取り出しブロック３０２および３０６によって取り出されたデータは、通信データの送受信に同期して、シフトレジスタ内を移動する。シフトレジスタの最終段であるフリップフロック回路Ｆｎに到達したデータは、クロック信号ＣＬＫが変化することにより、破棄される。
【００６１】
レジスタ３０８＿Ｒを構成するフリップフロップ回路Ｒ０〜Ｒｎの入力ノードＱＩは、対応するフリップフロップ回路Ｆ０〜Ｆｎの出力ノードＱＯに接続されている。フリップフロップ回路Ｒ０〜Ｒｎのクロック信号ノードＣＫには、スクランブルパターン生成タイミング信号３１２が供給されており、スクランブルパターン生成タイミング信号３１２が変化することにより、入力ノードＱＩに供給されている対応するフリップフロップ回路Ｆ０〜Ｆｎのデータを取り込み、出力ノードＱＯから出力する。このレジスタ３０８＿Ｒの出力が、上記したスクランブルパターン３１１となる。
【００６２】
以上の構成により、通信データの送受信毎に、通信データにおける所定ビット位置のデータが、順次キュー回路３０８＿Ｑに蓄積され、順次シフトする。また、シフトレジスタの段数（ｎ＋１）を超える通信データの送受信が行われた場合には、時間的に前（過去）のデータが順次破棄されることになる。スクランブル通信期間Ｔｓｓに移行するタイミングで、スクランブルパターン生成タイミング信号３１２が変化するため、このタイミングにおいてキュー回路３０８＿Ｑに蓄積されているビットパターンが、レジスタ３０８＿Ｒにコピーされ、スクランブルパターン３１１として出力されることになる。
【００６３】
未スクランブル通信期間Ｔｎｓからスクランブル通信期間Ｔｓｓへの移行は、第１半導体装置１０１＿１および第２半導体装置１０１＿２を動作させるアプリケーションによって定まる。そのため、スクランブルパターン生成タイミング信号３１２か変化するタイミングは、アプリケーションによって定めることが可能である。あるいは、移行をコマンド（移行コマンド）で指定するようにしてもよい。この場合には、プロセッサＣＰＵが移行コマンドを実行することにより、例えばプロセッサＣＰＵがスクランブルパターン生成タイミング信号３１２を変化させるようにしてもよい。
【００６４】
なお、図５では、図面が複雑になるのを避けるために、上記した入力ノードＱＩ、出力ノードＱＯおよびクロック信号ノードＣＫは、フリップフロップ回路Ｆ０およびＲ０についてのみ示しているが、他のフリップフロップ回路Ｆ１〜Ｆｎ、Ｒ１〜Ｒｎについても同様である。
【００６５】
＜データ通信の動作＞
次にデータ通信のときの第１半導体装置１０１＿１の動作を説明する。ここでは、第１半導体装置１０１＿１の動作を説明するが、第２半導体装置１０１＿２の動作も同様である。図６および図７は、実施の形態１に係わる第１半導体装置１０１＿１の動作を示すフロチャート図である。ここで、図６は、未スクランブル通信期間Ｔｎｓにおける動作を示し、図７は、スクランブル通信期間Ｔｓｓにおける動作を示している。なお、未スクランブル通信期間Ｔｎｓにおいて送受信される通信データは、通常データとして図示され、スクランブル通信期間Ｔｓｓにおいて送受信される通信データは、スクランブルデータとして図示されている。
【００６６】
図６（Ａ）は、第１半導体装置１０１＿１が通常データを送信する場合を示している。ステップＳ１００において、通常データの送信を開始する。ステップＳ１０１において、例えばプロセッサＣＰＵが送信すべき送信データを生成する。生成した送信データは、送信データ３１０（図３）として送信バッファ３０７に供給される。送信バッファ３０７に供給された送信データは、特定ビット取り出しブロック３０６と送信ブロック３０５に供給される。ステップＳ１０２において、特定ビット取り出しブロック３０６は、図４で説明したように、規則に従って送信データの所定ビット位置におけるデータを取り出し、ビットパターン蓄積バッファ３０８に供給して、蓄積させる。また、送信ブロック３０５は、供給された送信データを、送信ポート３０４を介して、ステップＳ１０３において送信し、ステップＳ１０４において、１つの通常データの送信を終了する。
【００６７】
一方、図６（Ｂ）は、第１半導体装置１０１＿１が通常データを受信する場合を示している。ステップＳ２００において、通常データの受信を開始する。ステップＳ２０１において、受信ポート３００を介して受信ブロック３０１が受信データを受信する。受信ブロック３０１から特定ビット取り出しブロック３０２に受信データが供給されると、特定ビット取り出しブロック３０２は、ステップＳ２０２において、図４で説明したように、規則に従って受信データの所定ビット位置におけるデータを取り出し、ビットパターン蓄積バッファ３０８に供給して、蓄積させる。また、同図には示していないが、受信ブロック３０１から受信バッファ３０３に受信データが供給され、受信データ３０９として、プロセッサＣＰＵに供給される。その後、ステップＳ２０３において、１つの通常データの受信が終了する。
【００６８】
未スクランブル通信期間Ｔｎｓにおいては、図６（Ａ）および（Ｂ）で説明した動作が、交互に複数回行われる。これにより、ビットパターン蓄積バッファ３０８には、複数の送信データのそれぞれから取り出された複数のデータと、複数の受信データのそれぞれから取り出された複数のデータとを組合わせたスクランブルパターンが蓄積されることになる。
【００６９】
次に、スクランブル通信期間Ｔｓｓにおける動作を、図７（Ａ）および（Ｂ）を用いて説明する。ここで、図７（Ａ）は、第１半導体装置１０１＿１がスクランブルデータを送信する場合を示し、図７（Ｂ）は、スクランブルデータを受信する場合を示している。また、図７では、ビットパターン蓄積バッファ３０８が、図５で説明した構成を備えているものとして説明する。
【００７０】
図７（Ａ）において、ステップＳ１１０で、第１半導体装置１０１＿１はスクランブルデータの送信を開始する。ステップＳ１１１において、プロセッサＣＰＵが送信すべき送信データを生成する。次にステップＳ１１２において、ビットパターン蓄積バッファ３０８に蓄積されているビットバターン（スクランブルパターン３１１）を取り出し、ステップＳ１１３において、取り出したビットパターンを用いて送信データをスクランブルする。特に制限されないが、ステップＳ１１２およびステップＳ１１３は、プロセッサＣＰＵによって実行される。すなわち、プロセッサＣＰＵが、ステップＳ１１２において、ビットパターン蓄積バッファ３０８からスクランブルパターン３１１を読み出し、ステップＳ１１３において、送信データとスクランブルパターンとの間で所定の演算を実行することにより、送信データをスクランブルする。
【００７１】
ステップＳ１１３でスクランブルされたスクランブルデータは、送信データ３１０として送信バッファ３０７に供給される。送信バッファ３０７に供給されたスクランブルデータは、特定ビット取り出しブロック３０６と送信ブロック３０５に供給される。特定ビット取り出しブロック３０６では、ステップＳ１１４において、図４で説明したように、規則に従ってスクランブルデータの所定のビット位置におけるデータを取り出し、ビットパターン蓄積バッファ３０８内のキュー回路３０８＿Ｑに供給して、蓄積させる。また、送信ブロック３０５は、ステップＳ１１５において、送信ポート３０４を介してスクランブルデータを送信し、ステップＳ１１６において、１つのスクランブルデータの送信が終了する。
【００７２】
次に、スクランブルデータの受信を説明する。図７（Ｂ）において、ステップＳ２１０でスクランブルデータの受信を開始する。ステップＳ２１１において、受信ポート３００を介して受信ブロック３０１がスクランブルデータを受信する。受信したスクランブルデータは、受信バッファ３０３と特定ビット取り出しブロック３０２に供給される。
【００７３】
次にステップＳ２１２において、ビットパターン蓄積バッファ３０８に蓄積されているビットパターン（スクランブルパターン）が取り出され、ステップＳ２１３において、取り出したスクランブルパターンを用いて、スクランブルデータのデスクランブルが実行される。特に制限されないが、この実施の形態においては、ステップＳ２１２およびＳ２１３は、図７（Ａ）のステップＳ１１２およびＳ１１３と同様にプロセッサＣＰＵによって実行される。
【００７４】
一方、特定ビット取り出しブロック３０２は、ステップＳ２１４において、供給されているスクランブルデータに対して、図４で説明したように、規則に従ってスクランブルデータの所定ビット位置におけるデータを取り出し、ビットパターン蓄積バッファ３０８内のキュー回路３０８＿Ｑに供給して、蓄積させる。ステップＳ２１５で、１つのスクランブルデータの受信が終了する。
【００７５】
未スクランブル通信期間Ｔｎｓの場合と同様に、スクランブル通信期間Ｔｓｓにおいても、図７（Ａ）および（Ｂ）で説明した動作が、交互に複数回行われる。これにより、ビットパターン蓄積バッファ３０８には、複数のスクランブルされた送信データのそれぞれから取り出された複数のデータと、複数のスクランブルされた受信データのそれぞれから取り出された複数のデータとを組合わせたスクランブルパターンが蓄積されることになる。
【００７６】
未スクランブル通信期間Ｔｎｓだけでなく、スクランブル通信期間Ｔｓｓにおいても、スクランブルパターンが形成されるため、より秘匿性を高くすることが可能である。また、キュー回路３０８＿Ｑによって、通信データの送受信が行われる毎に、スクランブルパターンが更新されるため、秘匿性を高くすることが可能である。
【００７７】
この実施の形態においては、第１半導体装置１０１＿１と第２半導体装置１０１＿２との間のデータ通信において、スクランブルデータとは無関係の未スクランブルのデータ（通常データ）が送信される場合も、第１半導体装置１０１＿１および第２半導体装置１０１＿２によって、通常データが常時監視される。すなわち、未スクランブル通信期間Ｔｎｓにおいても、特定ビット取り出しブロック３０６および３０２によって、送信される通常データと受信した通常データが監視され、１回の通常データの送信または受信毎に、規則に従った所定ビット位置のデータが抽出され、抽出されたデータを継続的にビットパターン蓄積バッファ３０８に蓄積される。
【００７８】
このビットパターン蓄積バッファ３０８に蓄積されたビットパターンがスクランブルパターンとして用いられる。秘匿性が要求されるデータを通信するときには、ビットパターン蓄積バッファ３０８に蓄積されたスクランブルパターンを用いて送信データがスクランブルされて、送信される。スクランブルデータを受信する半導体装置においても、未スクランブル通信期間Ｔｎｓにおける通常データの送受信の際に、通常データを監視し、同じスクランブルパターンが、ビットパターン蓄積バッファ３０８に蓄積されているため、受信したスクランブルデータをデスクランブルすることが可能である。
【００７９】
このように、スクランブルパターンは、自ら（例えば第１半導体装置１０１＿１）が送信すべき送信データに基づいたデータと送信側の半導体装置（第２半導体装置１０１＿２）が送信した送信データに基づいたデータの組合わせとなっている。
【００８０】
特許文献１に記載の技術では、放送局から受信側に一方的にスクランブルデータが送信される。そのため、受信側では、受信したスクランブルデータが正しいか否かを検証することが困難である。これに対して、この実施の形態では、スクランブルパターンは、送信側の半導体装置から送信された通信データと受信側の半導体装置から送信される通信データに基づいているため、送信側の半導体装置から送信されたスクランブルデータをデスクランブルして、適切なデータであるか否かを判定することにより、受信したスクランブルデータが正しいか否かを検証することが可能である。
【００８１】
この検証を、例えば条件判定の結果を示す成功ＯＫと失敗ＮＧで行う場合、第１半導体装置１０１＿１と第２半導体装置１０１＿２との間で、成功ＯＫを表す文字列ＳＵＣＣＥＳＳに対応する２進ビット列と失敗ＮＧを表す文字列ＦＡＩＬに対応する２進ビット列を、予め定めておく。
【００８２】
スクランブル通信期間Ｔｓｓにおいて、例えば第２半導体装置１０１＿２が、条件判定の結果を表すデータを、第１半導体装置１０１＿１に送信する場合、第２半導体装置１０１＿２は、文字列ＳＵＣＣＥＳＳに対応する２進ビット列または／および文字列ＦＡＩＬに対応する２進ビット列を、ビットパターン蓄積バッファ３０８に蓄積されているスクランブルパターンでスクランブルし、第１半導体装置１０１＿１へ送信することになる。
【００８３】
第１半導体装置１０１＿１においては、受信したスクランブルデータを、ビットパターン蓄積バッファ３０８に蓄積されているスクランブルパターンでデスクランブルする。デスクランブルして生成した２進ビット列が、文字列ＳＵＣＣＥＳＳまたはＦＡＩＬであれば、データは正しいと検証することができる。一方、生成した２進ビット列が、文字列ＳＵＣＣＥＳＳおよびＦＡＩＬ以外を示している場合は、データが改ざんされていると確認することができる。
【００８４】
また、スクランブルパターンは、時間的に分散して送受信されるデータに基づいて構成される。すなわちスクランブルパターンは、通信全体に分散された複数のビット（データ）によって構成されている。そのため、第三者からスクランブルパターンを構成するビットが特定される可能性を低減することが可能となる。
【００８５】
さらに、スクランブル通信期間Ｔｓｓにおいても、スクランブルパターンが更新されるため、より秘匿性を高めることが可能である。
【００８６】
（実施の形態２）
実施の形態１では、未スクランブル通信期間Ｔｎｓにおける複数の通信データに基づいてスクランブルパターンが生成されている。この未スクランブル通信期間Ｔｎｓにおいて、送受信される複数の通信データが、ランダムではなく、互いに類似していた場合、生成されるスクランブルパターンもランダムではなく、例えば固定的なビットパターンとなることが危惧される。
【００８７】
この実施の形態においては、未スクランブル通信期間Ｔｎｓにおいて送信される通信データにシーケンス番号が付加される。また、通信データはハッシュ関数によって撹拌され、撹拌された通信データから、特定ビット取り出しブロック３０６が所定ビット位置のデータを取り出す。同様に、受信した通信データについてもハッシュ関数によって撹拌し、撹拌された通信データから、特定ビット取り出しブロック３０２が所定ビット位置のデータを取り出す。取り出されたデータが、ビットパターン蓄積バッファ３０８に蓄積され、スクランブルパターンとして用いられる。
【００８８】
図８は、実施の形態２に係わるシステムでのデータ通信を説明するための説明図である。図８は、図２（Ｂ）に類似しているので、相異点を主に説明する。この実施の形態においては、未スクランブル通信期間Ｔｎｓにおいて、第１半導体装置１０１＿１は、固定の通信データ（固定データ）にシーケンス番号を加えて、通信データとして送信する。同様に、第２半導体装置１０１＿２も、固定の通信データ（固定データ）にシーケンス番号を加えて、通信データとして送信する。ここで、固定データは、特に制限されないが、同じ値である。また、シーケンス番号は、未スクランブル通信期間Ｔｎｓにおいて、送信する通信データの通し番号を示している。例えば、第１半導体装置１０１＿１が、未スクランブル通信期間Ｔｎｓにおいて、１回目の送信であれば、シーケンス番号は１となり、送信するたびにシーケンス番号は増加する。このようにすることにより、送信された通信データ間においては、少なくともシーケンス番号が異なることになるため、通信データは異なった値となる。
【００８９】
図９は、実施の形態２に係わる第１半導体装置１０１＿１の構成を示すブロック図である。また、この実施の形態においても、第２半導体装置１０１＿２のデータ通信機能モジュールＵＡＲＴＭの構成は、第１半導体装置１０１＿１と同じになっている。図９は、図３と類似しているため、相異点を主に説明する。相異点は、ハッシュ関数ブロック４００および４０１が追加されていることと、未スクランブル通信期間Ｔｎｓにおいて、プロセッサＣＰＵが、固定データにシーケンス番号を加えて、送信用の通信データを生成することである。
【００９０】
ハッシュ関数ブロック４００は、送信バッファ３０７から出力された送信データを受け、送信データをハッシュ関数で撹拌する。撹拌された送信データが特定ビット取り出しブロック３０６に供給される。また、ハッシュ関数ブロック４０１には、受信ブロック３０１から出力された受信データが入力する。このハッシュ関数ブロック４０１も、受信データをハッシュ関数で撹拌する。撹拌された受信データは特定ビット取り出しブロック３０２に供給される。特定ビット取り出しブロック３０２および３０６の動作は、実施の形態１と同じであるため、説明は省略する。
【００９１】
第１半導体装置１０１＿１のハッシュ関数ブロック４００と第２半導体装置１０１＿２のハッシュ関数ブロック４０１は、互いに同じように撹拌する。また、第２半導体装置１０１＿２のハッシュ関数ブロック４００と第１半導体装置１０１＿１のハッシュ関数ブロック４０１は、互いに同じように撹拌する。これにより、第１半導体装置１０１＿１におけるビットパターン蓄積バッファ３０８と第２半導体装置１０１＿２におけるビットパターン蓄積バッファ３０８は、同じスクランブルパターンを蓄積することが可能となっている。
【００９２】
図１０および図１１は、実施の形態２に係わる第１半導体装置１０１＿１の動作を示すフロチャート図である。また、第２半導体装置１０１＿２の動作も、第１半導体装置１０１＿１と同じである。図１０（Ａ）および（Ｂ）は、未スクランブル通信期間Ｔｎｓにおける通常データの送信および受信に関する動作を示し、図１１（Ａ）および（Ｂ）は、スクランブル通信期間Ｔｓｓにおけるスクランブルデータの送信および受信に関する動作を示している。ここで、図１０（Ａ）および（Ｂ）は、図６（Ａ）および（Ｂ）に類似し、図１１（Ａ）および（Ｂ）は、図７（Ａ）および（Ｂ）に類似しているため、主に相異点を説明する。
【００９３】
図６（Ａ）においては、ステップＳ１０１において、プロセッサＣＰＵが送信データを生成していた。これに対して、図１０（Ａ）では、図６で示したステップＳ１０１が、ステップＳ１０１＿０〜Ｓ１０１＿２に変更されている。ステップＳ１０１＿０において、プロセッサＣＰＵは、固定のデータを送信データとして生成する。次にプロセッサＣＰＵは、ステップＳ１０１＿１においてシーケンス番号に１を加える。更にステップＳ１０１＿２において、プロセッサＣＰＵは、ステップＳ１０１＿０で生成した固定の送信データにステップＳ１０１＿１で算出したシーケンス番号を加え、送信すべき送信データとして設定し、送信バッファ３０７へ供給する。シーケンス番号は、未スクランブル通信期間Ｔｎｓが開始するときに、０となっている。図１０（Ａ）に示すフロチャートが繰り返されることにより、ステップＳ１０１＿１が繰り返し実行され、シーケンス番号は増加することになる。
【００９４】
送信バッファ３０７に入力された送信データは、ステップＳ１０３において送信される。また、送信データは送信バッファ３０７からハッシュ関数ブロック４００にも供給されるため、ステップＳ３００において、ハッシュ関数ブロック４００は、供給された送信データをハッシュ関数で撹拌する。撹拌された送信データ（撹拌データ）は、特定ビット取り出しブロック３０６に供給される。特定ビット取り出しブロック３０６は、ステップＳ３０１において、撹拌データに対して図４で説明したように、所定ビット位置のデータを取り出し、ビットパターン蓄積バッファ３０８へ蓄積させる。
【００９５】
これにより、シーケンス番号を含む送信データが送信されるとともに、送信データがハッシュ関数で撹拌され、撹拌データにおける所定ビット位置のデータが、ビットパターン蓄積バッファ３０８へ蓄積されることになる。
【００９６】
図１０（Ｂ）において、図６（Ｂ）と異なる点は、ステップＳ２０２がステップＳ４００およびＳ４０１に変更されていることである。また、ステップＳ２０１においては、シーケンス番号が追加された固定データを受信データとして受信することになる。ステップＳ４００においては、受信ブロック３０１から供給されている受信データ、すなわちシーケンス番号が追加された固定データが、ハッシュ関数ブロック４０１によって撹拌される。撹拌されたデータ（撹拌データ）は、特定ビット取り出しブロック３０２に供給される。特定ビット取り出しブロック３０２は、ステップＳ４０１において、撹拌データに対して図４で説明したように、所定ビット位置のデータを取り出し、ビットパターン蓄積バッファ３０８へ蓄積させる。
【００９７】
未スクランブル通信期間Ｔｎｓにおいては、図１０（Ａ）に示した動作と図１０（Ｂ）に示した動作が交互に繰り返して実行される。これにより、未スクランブル通信期間Ｔｎｓにおいては、通信データを送信する度に、シーケンス番号が増加し、互いに異なる値の通信データが、ハッシュ関数ブロック４００および４０１に供給されることになる。その結果、撹拌データも異なるようになり、ビットパターン蓄積バッファ３０８にはランダムなビットパターンが蓄積されるようになる。
【００９８】
次に、スクランブル通信期間Ｔｓｓにおける動作を述べる。図１１（Ａ）において、図７（Ａ）と異なる点は、図７（Ａ）のステップＳ１１５が、図１１（Ａ）ではステップＳ１１４に変更され、図７（Ａ）のステップＳ１１４の代わりにステップＳ３１０およびＳ３１１が、ステップＳ１１４の後に追加されていることである。この追加されたステップＳ３１０およびＳ３１１は、図１０（Ａ）のステップＳ３００およびＳ３０１と同じである。
【００９９】
次に、スクランブル通信期間Ｔｓｓにおける受信の動作を、図１１（Ｂ）を用いて述べる。図１１（Ｂ）において、図７（Ｂ）と異なる点は、ステップＳ２１４がステップＳ４１０およびＳ４１１に変更されていることである。このステップＳ４１０およびＳ４４１は、図１０（Ｂ）に示したステップＳ４００およびＳ４０１と同じである。
【０１００】
スクランブル通信期間Ｔｓｓにおいても、図１１（Ａ）に示した動作と図１１（Ｂ）に示した動作が交互に実行される。そのため、スクランブル通信期間Ｔｓｓにおいても、通信データは、ステップＳ３１０およびＳ４１０で、ハッシュ関数により撹拌され、ステップＳ３１１およびＳ４１１で、所定ビット位置のデータが取り出され、蓄積されることになる。その結果、この実施の形態においても、スクランブル通信期間Ｔｓｓでスクランブルパターンが生成され、更新されることになる。
【０１０１】
実施の形態２では、未スクランブル通信期間Ｔｎｓにおいて、送信データが、送信動作の度に増加するシーケンス番号を含んでいるため、固定のデータを用いても、送信データの値が異なるようにすることができる。また、ハッシュ関数によって、撹拌された撹拌データに基づいてスクランブルパターンが生成されるため、シーケンス番号が異なるだけでも、よりランダムなスクランブルパターンを形成することが可能である。
【０１０２】
また、スクランブル通信期間Ｔｓｓにおいても、ハッシュ関数によって撹拌された撹拌データに基づいて、スクランブルパターンが形成されるため、スクランブルパターンを、よりランダムにすることが可能であり、秘匿データ通信の安全性を向上させることが可能である。
【０１０３】
（実施の形態３）
実施の形態１および２では、第１半導体装置１０１＿１と第２半導体装置１０１＿２との間で定めた規則に従って、送信すべき送信データと受信した受信データのそれぞれから所定ビット位置におけるデータを取り出して、スクランブルパターンを生成していた。これに対して、この実施の形態では、第１半導体装置１０１＿１と第２半導体装置１０１＿２間を接続する通信ラインにおける電圧振幅によって、スクランブルパターンを構成するパラメータの送受信が行われる。すなわち、スクランブルパターンを構成するパラメータに従って、通信ラインにおける通信データの電圧振幅が、通常の電圧振幅に比べて数％変動するよう構成される。
【０１０４】
次に、図面を用いて、実施の形態３に係わる半導体装置の構成を説明する。図１２は、実施の形態３に係わる第１半導体装置１０１＿１の構成を示すブロック図である。ここでは、第１半導体装置１０１＿１を例にして説明するが、データ通信機能モジュールＵＡＲＴＭの構成は、第２半導体装置１０１＿２も同じである。図１２は、図３に類似しているので、ここでも相異点を主に説明する。この実施の形態に係わる第１半導体装置１０１＿１には、図３に示した第１半導体装置に対して、スクランブルパラメータ発生ブロック５００、送信データ振幅制御ブロック５０１、基準電圧発生ブロック５０２および電圧比較ブロック５０３が追加されている。
【０１０５】
さらに、図３および図９では省略していたが、図１２には同期用クロック信号１０３を発生する部分も示されている。同図において、５０４は同期用クロック信号１０３を出力するクロック信号ポート５０４を示し、５０５はクロック信号振幅制御ブロックを示し、５０６はランダム信号発生ブロックを示し、５０７は同期用クロック信号発生ブロックを示している。
【０１０６】
また、図１２では、第１半導体装置１０１＿１と第２半導体装置１０１＿２との間を接続し、第１半導体装置１０１＿１からの通信データを第２半導体装置１０１＿２へ伝達する第１通信ラインが、二点鎖線Ｌ１０２＿１で示されている。同様に、第１半導体装置１０１＿１と第２半導体装置１０１＿２との間を接続し、第２半導体装置１０１＿２からの通信データを第１半導体装置１０１＿１へ伝達する第２通信ラインが、二点鎖線Ｌ１０２＿２で示されている。さらに、第１半導体装置１０１＿１と第２半導体装置１０１＿２との間を接続し、第１半導体装置１０１＿１と第２半導体装置１０１＿２との間で同期用クロック信号１０３を伝達するクロック信号ラインが、二点鎖線Ｌ１０３で示されている。
【０１０７】
スクランブルパラメータ発生ブロック５００は、ランダムなビットパターンを発生する。この発生したビットパターンは、送信データ振幅制御ブロック５０１とビットパターン蓄積バッファ３０８へ供給される。送信データ振幅制御ブロック５０１は、供給されたビットパターンに従って、送信ブロック３０５から出力される通信データの電圧振幅を変動させる。この電圧振幅が変動した通信データは、送信ポート３０４を介して第１通信ラインＬ１０２＿１に伝達する。
【０１０８】
基準電圧発生ブロック５０２は、基準電圧を発生する。発生した基準電圧は電圧比較ブロック５０３に供給される。電圧比較ブロック５０３は、供給されている基準電圧と受信ポート３００を介して伝達される第２通信ラインＬ１０２＿２における電圧とを比較し、比較の結果をビットパターンとして、ビットパターン蓄積バッファ３０８へ供給する。すなわち、電圧比較ブロック５０３は、基準電圧と受信した通信データの電圧振幅を比較し、基準電圧に対して受信データの電圧振幅が大きいか否を示すビットパターンを生成し、ビットパターン蓄積バッファ３０８へ供給する。
【０１０９】
ビットパターン蓄積バッファ３０８は、スクランブルパラメータ発生ブロック５００からのビットパターンと電圧比較ブロック５０３からのビットパターンを蓄積する。蓄積することにより、２個のビットパターンが組合せられることになり、組合わせられたビットパターンが、スクランブルパターン３１１として、ビットパターン蓄積バッファ３０８から出力される。すなわち、送信する通信データに電圧振幅の変動を生じさせるパラメータと、受信した通信データに電圧振幅の変動として表れるパラメータとが、ビットパターン蓄積バッファ３０８において組み合わされ、スクランブルパターンが生成される。
【０１１０】
この実施の形態においては、特に制限されないが、同期用クロック信号１０３の電圧振幅も変動するように構成されている。クロック信号発生ブロック５０７が、同期に適した所定周期のクロック信号を発生する。ランダム信号発生ブロック５０６はランダムな信号を発生する。クロック信号振幅制御ブロック５０５は、クロック信号発生ブロック５０６が発生したクロック信号の電圧振幅を、ランダム信号発生ブロック５０６が発生した信号に従って変動させる。変動したクロック信号が、クロック信号ポート５０４を介してクロック信号ラインＬ１０３に伝達される。これにより、クロック信号ラインＬ１０３を伝達する同期用クロック信号１０３は、同期に適した周期で変化し、さらに変化する電圧振幅はランダムに変動することになる。
【０１１１】
＜通信ラインの電圧変動＞
次に、スクランブルパラメータ発生ブロック５００が発生したビットパターンに従って、通信ラインを変動させる例を、図１３を用いて説明する。図１３は、実施の形態３に係わる通信ラインの電圧変動を示す波形図である。ここで、図１３（Ａ）は、スクランブルパラメータ発生ブロック５００が発生したビットパターンの論理値を示し、図１３（Ｂ）は、第１通信ラインＬ１０２＿１における電圧変化を示し、図１３（Ｃ）は、送信する通信データの論理値を示している。また、図１３（Ｄ）は、クロック信号ラインＬ１０３における電圧変化を示している。図１３において、横軸ｔは、図１３（Ａ）〜（Ｄ）に対して共通の時間を示している。
【０１１２】
図１３（Ｂ）において、破線は、送信ブロック３０５が出力する通信データの電圧波形を示し、実線は、第１通信ラインＬ１０２＿１における電圧波形を示している。この実施の形態において、送信データ振幅制御ブロック５０１は、スクランブルパラメータ発生ブロック５００から論理値”１”が供給された場合、送信ブロック３０５から供給されている通信データの電圧を上昇させ、論理値”０”が供給された場合には、通信データの電圧を下降させるように制御する。
【０１１３】
図１３（Ｂ）の破線および図１３（Ｃ）に示すように、通信データが論理値“０”の場合、送信ブロック３０５からの通信データの電圧は、Ｖ２となり、通信データが論理値“１”の場合には、通信データの電圧は、Ｖ５となる。すなわち、送信ブロック３０５からの通信データの電圧は、通信データの論理値に従って、電圧Ｖ２と電圧Ｖ５の間で変化することになる。
【０１１４】
送信データ振幅制御ブロック５０１は、通信データが、電圧Ｖ２の場合、スクランブルパラメータ発生ブロック５００からの論理値が”１”か”０”かに従って、出力する通信データの電圧が電圧Ｖ１または電圧Ｖ３となるように制御する。また、通信データの電圧が、電圧Ｖ５の場合、スクランブルパラメータ発生ブロック５００からの論理値が”１”か”０”かに従って、送信データ振幅制御ブロック５０１は、出力する通信データの電圧が電圧Ｖ４または電圧Ｖ６となるように制御する。これにより、第１通信ラインＬ１０２＿１における通信データは、送信すべき通信データ（送信ブロック３０５の出力）の論理値とスクランブルパラメータ発生ブロック５００が発生したビットの論理値に従って、電圧Ｖ１、Ｖ３、Ｖ４またはＶ６のいずれかとなる。すなわち、送信する通信データの電圧が、スクランブルパラメータ発生ブロック５００が発生したビットパターンにおけるビット（データ）の論理値に従って変動することになる。
【０１１５】
同様にして、クロック信号ラインＬ１０３における同期用クロック信号１０３の電圧も、ランダム信号発生ブロック５０６が発生するビットの論理値に従って、図１３（Ｄ）に示すように電圧Ｖ３、Ｖ４またはＶ６と変動する。
【０１１６】
この実施の形態におけるスクランブルパラメータ発生ブロック５００は、図１３（Ａ）に示したようなビット列を、ビットパターンとして、ビットパターン蓄積バッファ３０８へ出力する。
【０１１７】
第２半導体装置１０１＿２におけるデータ通信機能モジュールＵＡＲＴＭも、図１２に示したデータ通信機能モジュールＵＡＲＴＭと同じ構成を備えている。そのため、第２半導体装置１０１＿２からは、この第２半導体装置１０１＿２内のスクランブルパラメータ発生ブロック５００が発生したビットパターンに従って電圧振幅が変調された通信データが、第２通信ラインＬ１０２＿２を伝播して、第１半導体装置１０１＿１の電圧比較ブロック５０３に供給されることになる。
【０１１８】
電圧比較ブロック５０３では、基準電圧発生ブロック５０２で発生した基準電圧を基にして、受信した通信データにおけるビットが、上記した電圧Ｖ１、Ｖ３、Ｖ４およびＶ５のいずれであるかを判定して、第２半導体装置１０１＿２のスクランブルパラメータ発生ブロック５００が発生したビットパターンを特定する。例えば、電圧比較ブロック５０３は、受信した通信データにおけるビットの電圧が、電圧Ｖ３またはＶ６であれば、受信した通信データにおけるビットで伝えられたビットパターンにおけるビットの論理値は“１”と特定する。これに対して、受信した通信データにおけるビットの電圧が、電圧Ｖ１またはＶ４であれば、受信した通信データにおけるビットで伝えられたビットパターンにおけるビットの論理値は“０”と特定する。
【０１１９】
このようにして特定して、生成したビットパターンを、電圧比較ブロック５０３はビットパターン蓄積バッファ３０８へ出力する。すなわち、通信データから、パラメータとなるビットパターンが抽出される。また、受信ブロック３０１は、例えば受信した通信データにおけるビットの電圧がＶ１、Ｖ２またはＶ３のとき、通信データにおける本来のビットの論理値は“０”と特定し、電圧がＶ４、Ｖ５またはＶ６のとき、通信データにおける本来のビットの論理値は“１”であると特定する。これにより、送信された本来のビット値が、取り出され、受信バッファ３０３へ出力される。
【０１２０】
プロセッサＣＰＵは、ビットパターン蓄積バッファ３０８に蓄積されてスクランブルパターン３１１を読み出して、受信した通信データのデスクランブルおよび送信すべき通信データのスクランブルを実行する。
【０１２１】
＜データ通信の動作＞
図１４および図１５は、実施の形態３に係わる第１半導体装置１０１＿１の動作を示すフロチャート図である。第２半導体装置１０１＿２の動作も、第１半導体装置１０１＿１と同じである。図１４（Ａ）および（Ｂ）は、未スクランブル通信期間Ｔｎｓにおける通常データの送信および受信に関する動作を示し、図１５（Ａ）および（Ｂ）は、スクランブル通信期間Ｔｓｓにおけるスクランブルデータの送信および受信に関する動作を示している。図１４（Ａ）および（Ｂ）は、図６（Ａ）および（Ｂ）に類似し、図１５（Ａ）および（Ｂ）は、図７（Ａ）および（Ｂ）に類似しているため、主に相異点を説明する。
【０１２２】
図１４（Ａ）において、図６（Ａ）と異なる点は、ステップＳ１０２がステップＳ５００〜Ｓ５０２に変更されていることである。ステップＳ５００において、スクランブルパラメータ発生ブロック５００が、パラメータとなるビットパターンを発生する。このパラメータは、ステップＳ５０１において、振幅変動制御ハードウェア（以下、ハードウェアは、ＨＷと称する）に設定され、さらにステップＳ５０２において、ビット情報としてビットパターン蓄積バッファ３０８に供給され、ビットパターン蓄積バッファ３０８に蓄積される。これにより、ステップＳ１０１において、プロセッサＣＰＵで生成された送信データは、図１３で説明したように電圧振幅が変動され、ステップＳ１０３において送信される。ここで、振幅変動制御ＨＷ（制御ブロック）は、図１２に示した送信データ振幅制御ブロック５０１を備えている。
【０１２３】
図１４（Ｂ）において、図６（Ｂ）と異なる点は、ステップＳ２０２がステップＳ６００に変更されていることである。ステップＳ６００では、受信データが振幅変動検出ＨＷに設定され、振幅変動検出ＨＷは受信データにおける振幅変動（振幅変動情報）をビット情報として、ビットパターン蓄積バッファ３０８に蓄積する。また、同図には示していないが、受信データから、送信された本来のビットが取り出され、受信バッファへ出力される。ここで、振幅変動検出ＨＷ（検出ブロック）は、図１２に示した基準電圧発生ブロック５０２および電圧比較ブロック５０３を備えている。
【０１２４】
次に、スクランブル通信期間Ｔｓｓにおけるデータ通信の動作を説明する。この実施の形態においても、実施の形態１と同様に、スクランブル通信期間Ｔｓｓにおいても、スクランブルパターンの更新が行われる。そのため、図１５（Ａ）においては、図７（Ａ）に示したステップＳ１１４がステップＳ５１０〜Ｓ５１２に変更されている。また、図１５（Ｂ）においては、図７（Ｂ）に示したステップＳ２１４がステップＳ６１０に変更されている。
【０１２５】
図１５（Ａ）に示したステップＳ５１０〜Ｓ５１２は、図１４（Ａ）に示したステップＳ５００〜Ｓ５０２と同じであり、図１５（Ｂ）に示したステップＳ６１０は、図１４（Ｂ）に示したステップＳ６００と同じである。スクランブル通信期間Ｔｓｓにおいても、送信する通信データに対して、ステップＳ５１０〜Ｓ５１２を実行することにより、パラメータを発生し、送信データの電圧振幅を発生したパラメータに従って変動させることができる。また、電圧振幅が変動した受信データに対して、ステップＳ６１０を実行することにより、受信データからパラメータを抽出することができる。
【０１２６】
スクランブル通信期間Ｔｓｓにおいても、パラメータを発生し、ビットパターン蓄積バッファ３０８に蓄積されているスクランブルパターンを更新することにより、秘匿データの安全性をより向上させることが可能である。
【０１２７】
この実施の形態においては、スクランブルパターンを構成するビットの論理値が、半導体装置間で送受信される通信データにおけるビットの論理値として直接表れない。そのため、第三者によりスクランブルパターンが特定されるのを低減することが可能である。
【０１２８】
また、この実施の形態においては、同期用クロック信号１０３の電圧振幅も、送信データの電圧振幅と同様に、変調されている。そのため、電圧振幅によってスクランブルパターンのビットを表しているか否の判別を困難にすることが可能である。勿論、同期用クロック信号１０３に対しては、電圧振幅の変調を行わなくてもよい。あるいは、同期用クロック信号１０３の電圧振幅で、スクランブルパターンのビットを表すようにしてもよい。
【０１２９】
（実施の形態４）
実施の形態４は、実施の形態１および２とは異なり、実施の形態３に類似している。実施の形態３においては、スクランブルパターンを構成する複数のパラメータのうち、通信相手の半導体装置が生成したパラメータが、通信ラインにおける通信データの電圧振幅として提供されていた。これに対して、この実施の形態においては、通信相手の半導体装置が生成したパラメータが、通信ラインを伝播する通信データの周期として提供される。すなわち、通信データを送信する半導体装置は、通信データの周期を、パラメータに従って、通常の周期に対して数％変動させる。通信データを受信する半導体装置においては、周期の変動を基にして、パラメータを抽出し、抽出したパラメータと生成したパラメータとを組合わせてスクランブルパターンを生成する。
【０１３０】
図１６は、実施の形態４に係わる第１半導体装置１０１＿１の構成を示すブロック図である。ここでは、図３との相異点を主に説明する。図３では、データ通信機能モジュールＵＡＲＴＭに、特定ビット取り出しブロック３０２、３０６が設けられていたが、図１６では、これらの代わりに、次の回路ブロックが設けられている。すなわち、送信系のブロックとして、特定ビット取り出しブロック３０６の代わりに、スクランブルパラメータ発生ブロック５００、システムクロック発生ブロック６００、分周比可変の可変分周器６０１および送信周期生成ブロック６０２を備えている。また、受信系のブロックとして、特定ビット取り出しブロック３０２の代わりに、受信データ周期検出ブロック６０３、基準周期生成ブロック６０４、受信データ周期計測ブロック６０５および比較ブロック６０６を備えている。
【０１３１】
また、図３に示した送信ブロック３０５は、送信周期生成ブロック６０２からの出力に従って、送信する通信データの周期を変更することができるように変更され、符号が３０５Ａに変更されている。さらに、この実施の形態に係わる第１半導体層１０１＿１と第２半導体装置１０１＿２は、マンチェスタ符号方式で、データ通信を行う。ここでは、特に制限されないが、第１通信ラインＬ１０２＿１および第２通信ラインＬ１０２＿２において、電圧が立ち上がる場合が論理値“０”を表し、電圧が立ち下がる場合が論理値“１”を表すものとする。
【０１３２】
スクランブルパラメータ発生ブロック５００は、図１２に示したスクランブルパラメータ発生ブロックと同じであり、ランダムなビットパターンを発生する。発生したランダムなビットパターンは、ビットパターン蓄積バッファ３０８に供給されるとともに、可変分周器６０１にも供給される。
【０１３３】
システムクロック発生ブロック６００は、所定の固定周波数のシステムクロックを発生する。可変分周器６０１は、供給されているランダムはビットパターンに従って、分周比が変わる。すなわち、ビットパターンにおけるビット（データ）が論理値“１”の場合と論理値“０”の場合とで、異なる分周比となる。システムクロックは、可変分周器６０１によって分周され、分周されたシステムクロックが、送信周期生成ブロック６０２に供給される。送信周期生成ブロック６０２は、供給されているシステムクロックに基づいて、送信データの周期を定める。送信ブロック３０５Ａは、送信バッファ３０７からの通信データを、送信周期生成ブロック６０２によって定められた周期で、送信する。
【０１３４】
スクランブルパラメータ発生ブロック５００が発生するスクランブルパラメータの論理値に従って、可変分周器６０１の分周比が変わるため、送信周期生成ブロック６０２に供給されるシステムクロックの周波数（周期）も、スクランブルパラメータの論理値に従って変化することになる。その結果、送信周期生成ブロック６０２によって定められる送信データの周期も、スクランブルパラメータの論理値に従って変化することになる。これにより、送信ブロック３０５Ａか送信ポート３０４を介して第１通信ラインＬ１０２＿１に送信する通信データの周期も、スクランブルパラメータの論理値に従って変化（変動）する。
【０１３５】
第２半導体装置１０１＿２も、図１６に示したデータ通信機能モジュールＵＡＲＴＭと同じ構成のデータ通信機能モジュールを備えており、第２半導体装置１０１＿２からは、通信データが、第２通信ラインＬ１０２＿２に送信される。なお、第１半導体装置１０１＿１からの通信データは、第１通信ラインＬ１０２＿１を介して第２半導体装置１０１＿２の受信ポートに伝達されることは言うまでもない。
【０１３６】
第２半導体装置１０１＿２から送信された通信データの周期も、第２半導体装置１０１＿２内のスクランブルパラメータ発生ブロック５００が発生したスクランブルパラメータに従って変動している。この通信データは、図１６に示した受信ポート３００を介して、受信ブロック３０１と受信データ周期検出ブロック６０３に供給される。受信ブロック３０１は、供給された受信データを受信データバッファ３０３に供給する。
【０１３７】
受信データ周期検出ブロック６０３は、通信データの周期を検出する。受信データ周期計測ブロック６０５は、受信データ周期検出ブロック６０３によって検出された周期の長さ（間隔）を計測する。基準周期生成ブロック６０４は、基準値となる周期を生成する。比較ブロック６０６は、基準周期生成ブロック６０４によって生成された基準の周期と、受信データ周期計測ブロック６０５によって計測された周期の長さとを比較し、基準の周期に比べて長いか短いかを、論理値“１”、“０”で表して、ビットパターン蓄積バッファ３０８へ順次供給する。これにより、順次、受信ポート３０１に供給される通信データの周期の変動が、論理値に変換され、ビットパターンとしてビットパターン蓄積バッファ３０８に蓄積されることになる。
【０１３８】
＜通信データの周期変動＞
図１７は、実施の形態４に係わる通信データの周期変動を説明するための波形図である。ここで、図１７（Ａ）は、基準クロック信号の波形を示し、図１７（Ｂ）は、スクランブルパラメータ発生ブロック５００が発生したビットパターンの論理値を示し、図１７（Ｃ）は、通信データの電圧波形を示し、図１７（Ｄ）は、通信データの論理値を示している。図１７において、横軸ｔは、図１７（Ａ）〜（Ｄ）に対して共通の時間を示している。
【０１３９】
この実施の形態においては、先に述べたように、通信データは、マンチェスタ符号化されている。そのため、図１７（Ａ）に示す基準クロック信号を、同期用クロック信号として、第１半導体装置１０１＿１と第２半導体装置１０１＿２に供給する必要はないが、説明を容易にするために、図示してある。
【０１４０】
図１７（Ｃ）において、破線は、周期変動を実施していない場合の通信データの電圧波形を示している。周期変動を実施していない場合、マンチェスタ符号化をしているため、基準クロック信号の周期Ｔｃの中央で、通信データは、送信する通信データの論理値に従って立ち上がりまたは立ち下がる。
【０１４１】
この実施の形態においては、スクランブルパラメータ発生ブロック５００が発生したビットパターンの論理値に従って、システムクロックを分周する分周比が変わり、通信データの周期は、例えば図１７（Ｃ）に実線で示すように変動する。図１７（Ｂ）および（Ｃ）に示すように、ビットパターンの論理値が”０”の場合には、破線で示す周期変動がない場合に比べて、電圧変化が早くなり、ビットパターンの論理値が”１”の場合には、電圧変化が遅くなる。例えば、ビットパターンの論理値が”１”の場合、１つ前の通信データに対応する基準クロック信号の周期における立ち上がりから、送信すべき通信データの論理値に従って通信データの電圧が変化するまでの時間は、周期変動がない場合には、時間Ｔｒ（＝Ｔｃ）となるのに対して、この実施の形態に従って周期変動を行うようにした場合には、時間Ｔｄとなる。
【０１４２】
図１６に示した受信データ周期検出ブロック６０３は、この１つ前の通信データに対応する基準クロック信号における立ち上がりから、マンチェスタ符号化により電圧変化が発生するまでを周期として検出する。受信データ周期計測ブロック６０５は、検出した周期の長さを計測する。すなわち、時間Ｔｄを計測する。基準周期生成ブロック６０４は、基準クロック信号の立ち上がりから、次の立ち上がりまでを１周期（Ｔｃ＝Ｔｒ）とした基準値の周期を生成する。比較ブロック６０６において、基準値の周期の時間と検出した周期の時間Ｔｄとを比較し、比較結果を論理値として表すことにより、周期変動からビットパターンの論理値を求めることができる。
【０１４３】
＜データ通信の動作＞
次にデータ通信のときの第１半導体装置１０１＿１の動作を説明する。ここでは、第１半導体装置１０１＿１の動作を説明するが、第２半導体装置１０１＿２の動作も同様である。図１８および図１９は、実施の形態４に係わる第１半導体装置１０１＿１の動作を示すフロチャート図である。ここで、図１８は、未スクランブル通信期間Ｔｎｓにおける動作を示し、図１９は、スクランブル通信期間Ｔｓｓにおける動作を示している。図１８（Ａ）および（Ｂ）は、図１４（Ａ）および（Ｂ）に類似し、図１９（Ａ）および（Ｂ）は、図１５（Ａ）および（Ｂ）に類似しているため、主に相異点を説明する。
【０１４４】
図１８（Ａ）において、図１４（Ａ）と異なる点は、ステップＳ５０１がステップＳ７００に変更されていることである。ステップＳ７００においては、スクランブルパラメータ発生ブロック５００により発生したパラメータとなるビットパターンが、周期変動制御ＨＷに設定される。ここで、周期変動制御ＨＷ（制御ブロック）は、図１６に示した可変分周器６０１および送信周期生成ブロック６０２を備えている。これにより、ステップＳ１０３においては、プロセッサＣＰＵで生成された通信データが、図１６および図１７で説明したように周期変動されて送信される。
【０１４５】
図１８（Ｂ）において、図１４（Ｂ）と異なる点は、ステップＳ６００がステップＳ８００に変更されていることである。ステップＳ８００では、受信データを周波数変動検出ＨＷに設定し、周期変動情報をビット情報として、ビットパターン蓄積バッファ３０８へ蓄積することが行われる。ここで、周波数変動検出ＨＷ（検出ブロック）は、図１６に示した受信データ周期検出ブロック６０３、受信データ周期検出ブロック６０５、基準周期生成ブロック６０４および比較ブロック６０６を備えている。これにより、図１６および図１７で説明したように、周期変動からパラメータにおけるデータ（ビット）の論理値が抽出され、ビットパターン蓄積バッファ３０８に蓄積される。
【０１４６】
次に、スクランブル通信期間Ｔｓｓにおけるデータ通信の動作を述べる。図１９（Ａ）において、図１５（Ａ）と異なる点は、ステップＳ５１１が、ステップＳ７１０に変更されていることである。また、図１９（Ｂ）において、図１５（Ｂ）と異なる点は、ステップＳ６１０が、ステップＳ８１０に変更されていることである。この実施の形態においても、実施の形態１と同様に、スクランブル通信期間Ｔｓｓにおいても、スクランブルパターンの更新が行われる。そのため、図１９（Ａ）においても、図１８（Ａ）に示したステップＳ７００と同様なステップＳ７１０が実行され、図１９（Ｂ）においては、図１８（Ｂ）に示したステップＳ８００と同様なステップＳ８１０が実行される。
【０１４７】
スクランブル通信期間Ｔｓｓにおいても、パラメータを発生し、ビットパターン蓄積バッファ３０８に蓄積されているスクランブルパターンを更新することにより、秘匿データの安全性をより向上させることが可能である。
【０１４８】
この実施の形態においては、スクランブルパターンを構成するビットの論理値が、半導体装置間で送受信される通信データにおけるビットの論理値として直接表れない。そのため、第三者によりスクランブルパターンが特定されるのを低減することが可能である。
【０１４９】
（実施の形態５）
実施の形態５では、データ通信を行う装置間において、相手側の装置が適切な装置であるか否かを確認することが可能な構成を提供する。ここでも、データ通信を行う装置としては、第１半導体装置１０１＿１と第２半導体装置１０１＿２を用いる場合を例示する。例示に際して、第１半導体装置１０１＿１および第２半導体装置１０１＿２のそれぞれは、実施の形態１で説明した図３の構成を備えているものとする。
【０１５０】
図２０は、実施の形態５に係わるシステムでのデータ通信を説明するための説明図である。第１半導体装置１０１＿１と第２半導体装置１０１＿２は、未スクランブル通信期間Ｔｎｓにおいて、通常データを複数回に渡って双方で送受信する。この複数回の送受信により、実施の形態１で説明したように、第１半導体装置１０１＿１および第２半導体装置１０１＿２のビットパターン蓄積バッファ３０８は、スクランブルパターンを蓄積する。
【０１５１】
この実施の形態においては、未スクランブル通信期間Ｔｎｓからスクランブル通信期間Ｔｓｓに移行する前に、第１半導体装置１０１＿１は、任意の通常データ（以下、確認用通常データと称する）を、第２半導体装置１０１＿２へ送信する。この確認用通常データは、未スクランブル通信期間Ｔｎｓにおいて今までに送受信した通常データとは無関係のデータである。例えば６４ビット以上の乱数を、確認用通常データとして、第１半導体装置１０１＿１は送信する。また、第１半導体装置１０１＿１は、送信した確認用通常データを記憶しておく。
【０１５２】
未スクランブル通信期間Ｔｎｓからスクランブル通信期間Ｔｓｓに移行すると、第２半導体装置１０１＿２は、未スクランブル通信期間Ｔｎｓにおいて送受信した通常データより生成したスクランブルパターンを用いて、確認用通常データをスクランブルする。スクランブルにより生成した確認用スクランブルデータを、第２半導体装置１０１＿２は、スクランブル通信期間Ｔｓｓにおいて、第１半導体装置１０１＿１へ送信する。
【０１５３】
スクランブル通信期間Ｔｓｓにおいて、第１半導体装置１０１＿１は、確認用スクランブルデータを受信すると、ビットパターン蓄積バッファ３０８に蓄積されているスクランブルパターンを用いて、確認用スクランブルデータをデスクランブルする。第１半導体装置１０１＿１は、このデスクランブルにより生成した通常データと記憶している確認用通常データと比較することにより、第２半導体装置１０１＿２が適切な半導体装置であるか否かを確認する。例えば、悪意のある第三者が、第２半導体装置１０１＿２として別の半導体装置を用いた場合、確認用スクランブルデータをデスクランブルすることにより生成された通常データは、確認用通常データと不一致となり、不適切な半導体装置であると確認することが可能である。
【０１５４】
＜システムにおける確認動作＞
次に、実施の形態５に係わるシステムで実行される確認動作を、フロチャート図を用いて説明する。図２１は、実施の形態５に係わるシステムの確認動作を示すフロチャート図である。図２１（Ａ）は確認を行う半導体装置（第１半導体装置１０１＿１）の動作を示しており、図２１（Ｂ）は確認対象の半導体装置（第２半導体装置１０１＿２）の動作を示している。
【０１５５】
ステップＳ９００において、第１半導体装置１０１＿１は、複数回に渡って通常データの送受信を実行し、実施の形態１で説明したようにスクランブルパターンをビットパターン蓄積バッファ３０８に蓄積している。ステップＳ９０１において、第１半導体装置１０１＿１内の例えばプロセッサＣＰＵが、確認用通常データを生成し、ステップＳ９０２において、確認用通常データを送信する。このとき、生成した確認用通常データは、半導体装置１０１＿１内に記憶しておく。
【０１５６】
第２半導体装置１０１＿２は、ステップＳ１０００において、複数回に渡って通常データの送受信を実行し、スクランブルパターンをビットパターン蓄積バッファ３０８に蓄積している。
【０１５７】
第２半導体装置１０１＿２は、ステップＳ１００１において、確認用通常データを受信し、ステップＳ１００２において、ビットパターン蓄積バッファ３０８に蓄積されているスクランブルパターンを用いて、確認用通常データをスクランブルする。このスクランブルにより生成された確認用スクランブルデータは、ステップＳ１００３において、第１半導体装置１０１＿１へ送信される。これにより、第２半導体装置１０１＿２は、確認動作を終了する（ステップＳ１００４）。なお、ステップＳ１００１迄が、未スクランブル通信期間Ｔｎｓにおいて実行され、ステップＳ１００２以降は、スクランブル通信期間Ｔｓｓにおいて実行される。
【０１５８】
ステップＳ１００３において送信された確認用スクランブルデータを、第１半導体装置１０１＿１は、ステップＳ９０３において受信し、ステップＳ９０４において、ビットパターン蓄積バッファ３０８に蓄積されているスクランブルパターンを用いて、確認用スクランブルデータをデスクランブルする。
【０１５９】
次に、第１半導体装置１０１＿１は、デスクランブルにより生成された通常データ、すなわちデスクランブルの結果が、記憶している確認用通常データと同じか否かを、ステップＳ９０５において判定する。第１半導体装置１０１＿１は、同じであれば、次にステップＳ９０６を実行し、不一致であれば、次にステップＳ９０８を実行する。
【０１６０】
ステップＳ９０６においては、第２半導体装置１０１＿２は適切な半導体装置であると判定し、次にステップＳ９０７において、確認動作を終了する。以降のスクランブル通信期間Ｔｓｓにおいては、第１半導体装置１０１＿１は、第２半導体装置１０１＿２との間で秘匿データ通信を実行する。
【０１６１】
一方、ステップＳ９０８においては、第２半導体装置１０１＿２は不適切な半導体装置であると判定し、次にステップＳ９０９を実行する。ステップＳ９０９において、第１半導体装置１０１＿１は、第２半導体装置１０１＿２が不正な半導体装置であるとして、不正に対処する処理を実行する。
【０１６２】
第２半導体装置１０１＿２が、適切な半導体装置であれば、ステップＳ１０００においてビットパターン蓄積バッファ３０８に蓄積したスクランブルパターンは、第１半導体装置１０１＿１がステップＳ９００においてビットパターン蓄積バッファ３０８に蓄積したスクランブルパターンと一致する。そのため、ステップＳ９０５においては、同じと判定されることになる。これに対して、第２半導体装置１０１＿２が不適切な半導体装置の場合、ステップＳ１００２では、例えば、第１半導体装置１０１＿１内のビットパターン蓄積バッファ３０８に蓄積されているスクランブルパターンとは異なるスクランブルパターンを用いて、確認用通常データはスクランブルされることになる。そのため、ステップＳ９０５においては、不一致と判定されることになる。
【０１６３】
実施の形態１では、第１半導体装置１０１＿１と第２半導体装置１０１＿２との間で、特定の値（ＳＵＣＣＥＳＳ、ＦＡＩＬに対応するビット列）を定めておき、データの改ざんを確認する例を説明した。この場合には、半導体装置間で、予め特定の値を定めることが要求される。また、特定の値を送信するときしか、データの改ざんを確認することができず、悪意のある第三者の行為を確認することができない。これに対して、実施の形態５では、予め半導体装置間で特定の値を定めることは要求されない。また、スクランブルデータの送受信を開始する前に、相手側の半導体装置が適切か否かを確認することが可能である。すなわち、事前に不適切な半導体装置であることを特定することが可能であり、悪意のある第三者を排除することが可能である。
【０１６４】
上記した実施の形態は、互いに組合わせることが可能であり、組合わせることにより、悪意のある第三者によるスクランブルパターンの特定をより困難にすることが可能である。例えば、実施の形態３を、実施の形態１、２または５と組合わせる場合には、電圧比較ブロック５０３からのビットパターンとスクランブルパラメータ発生ブロック５００からのビットパターンを、第１半導体装置１０１＿１と第２半導体装置１０１＿２との間で定めた規則に従って所定ビット位置のビット情報を、ビットパターン蓄積バッファ３０８に蓄積させるようにすればよい。同様に、実施の形態４を、実施の形態１、２または５と組合わせる場合には、比較ブロック６０６からのビットパターンとスクランブルパラメータ発生ブロック５００からのビットパターンを、第１半導体装置１０１＿１と第２半導体装置１０１＿２との間で定めた規則に従って所定ビット位置のビット情報を、ビットパターン蓄積バッファ３０８に蓄積させるようにすればよい。
【０１６５】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記した実施の形態においては、プロセッサＣＰＵが、スクランブル部およびデスクランブル部を構成する例を示したが、これに限定されるものではなく、専用のＨＷを用意してもよい。この場合には、専用ＨＷが、スクランブル部およびデスクランブル部を構成し、スクランブルパターンを用いて、スクランブルまたはデスクランブルをすることになることになる。この場合、専用ＨＷとしては、スクランブル部に相当する専用ＨＷとデスクランブル部に相当する専用ＨＷを備えるようにしてもよいし、共通のＨＷを備えるようにしてもよい。
【符号の説明】
【０１６６】
１００  システム
１０１＿１  第１半導体装置
１０１＿２  第２半導体装置
３０１  受信ブロック
３０２、３０６  特定ビット取り出しブロック
３０５、３０５Ａ  送信ブロック
３０８  ビットパターン蓄積バッファ
４００、４０１  ハッシュ関数ブロック
５００  スクランブルパラメータ発生ブロック
５０１  送信データ振幅制御ブロック
５０２  基準電圧発生ブロック
５０３  電圧比較ブロック
６０１  可変分周器
６０２  送信周期生成ブロック
６０３  受信データ周期検出ブロック
６０４  基準周期生成ブロック
６０５  受信データ周期計測ブロック
６０６  比較ブロック
ＣＰＵ  プロセッサ
ＵＡＲＴＭ  データ通信機能モジュール
【図１】
2019078985.tif 000003
【図２】
2019078985.tif 000004
【図３】
2019078985.tif 000005
【図４】
2019078985.tif 000006
【図５】
2019078985.tif 000007
【図６】
2019078985.tif 000008
【図７】
2019078985.tif 000009
【図８】
2019078985.tif 000010
【図９】
2019078985.tif 000011
【図１０】
2019078985.tif 000012
【図１１】
2019078985.tif 000013
【図１２】
2019078985.tif 000014
【図１３】
2019078985.tif 000015
【図１４】
2019078985.tif 000016
【図１５】
2019078985.tif 000017
【図１６】
2019078985.tif 000018
【図１７】
2019078985.tif 000019
【図１８】
2019078985.tif 000020
【図１９】
2019078985.tif 000021
【図２０】
2019078985.tif 000022
【図２１】
2019078985.tif 000023