(57)【要約】      （修正有）【課題】簡易な構成でセキュア通信を行うことができ、通信エラーが発生した場合であっても、セキュアなデータ通信を途絶させない通信装置、通信システムを実現する。【解決手段】受信部が、３つの可変長位置特定データ（前位置特定データ、現位置特定データ、および、次位置特定データ）、つまり、最新の可変長位置特定データ（次位置特定データ）、１回前に生成された可変長位置特定データ（現位置特定データ）、および、２回前に生成された可変長位置特定データ（前位置特定データ）の３つの可変長位置特定データを保持し、受信データに含まれる位置特定データを特定し、特定した位置特定データにより受信処理を行う。受信データの可変長位置特定データが、受信部において保持されている現位置特定データに一致しない場合、通信エラーが発生したことを検出する。【選択図】図２
2014143476.tif 000002
【特許請求の範囲】
【請求項１】
通信フレームデータの所定の位置を特定するデータである位置特定データを含む通信フレームデータを用いて、ネットワークを介して、相手通信装置と通信する通信装置であって、
前記ネットワークを介して、前記相手通信装置に対して、通信フレームデータを送受信するためのインターフェース部と、
可変長の位置特定データである送信用可変長位置特定データを生成し、前記送信用可変長位置特定データを含む前記通信フレームデータを生成する送信部と、
前記相手通信装置から送信された通信フレームデータを受信する受信部と、
を備え、
前記受信部は、
可変長の位置特定データである受信用可変長位置特定データを生成し、次位置特定データとして保持し、前記次位置特定データを生成する１回前に生成した前記受信用可変長位置特定データを現位置特定データとして保持し、前記次位置特定データを生成する２回前に生成した前記受信用可変長位置特定データを前位置特定データとして保持し、
前記相手通信装置から受信したデータに含まれる位置特定データの種類を特定し、特定した結果に基づいて、受信処理を行うとともに、前記受信用可変長位置特定データの生成処理を実行するか否か、並びに、前記次位置特定データ、前記現位置特定データ、および、前記前位置特定データの更新処理を実行するか否かを決定し、
前記送信部は、
前記受信部が受信したデータに含まれる位置特定データの種類に応じて、前記送信用可変長位置特定データの生成処理を実行するか否かを決定する、
通信装置。
【請求項２】
前記受信部が前記相手通信装置から受信したデータに含まれる位置特定データが、前記現位置特定データと一致すると判定した場合、
（１）前記受信部は、前記受信用可変長位置特定データの生成処理を１回実行するとともに、前記次位置特定データ、前記現位置特定データ、および、前記前位置特定データの更新処理を実行し、
（２）前記送信部は、前記送信用可変長位置特定データの生成処理を１回実行する、
請求項１に記載の通信装置。
【請求項３】
前記受信部が前記相手通信装置から受信したデータに含まれる位置特定データが、前記前位置特定データと一致すると判定した場合、
（１）前記受信部は、前記受信用可変長位置特定データの生成処理を実行せず、かつ、前記次位置特定データ、前記現位置特定データ、および、前記前位置特定データの更新処理を実行せず、
（２）前記送信部は、前記送信用可変長位置特定データの生成処理を実行しない、
請求項１または２に記載の通信装置。
【請求項４】
前記受信部が前記相手通信装置から受信したデータに含まれる位置特定データが、前記次位置特定データと一致すると判定した場合、
（１）前記受信部は、前記受信用可変長位置特定データの生成処理を２回実行し、かつ、前記次位置特定データ、前記現位置特定データ、および、前記前位置特定データの更新処理を２回実行し、
（２）前記送信部は、前記送信用可変長位置特定データの生成処理を２回実行する、
請求項１から３のいずれかに記載の通信装置。
【請求項５】
前記送信部は、
初期値に対して第１の演算処理を行うことで生成した可変長データである特殊ＳＦＤと、自装置に固有なパターンデータと、を用いて生成されたデータを、前記送信用可変長ＳＦＤとし、
前記受信部は、
前記初期値と同じ値に対して、前記第１の演算処理と同じ処理を行うことで生成した可変長データである特殊ＳＦＤと、前記相手通信装置に固有なパターンデータと、を用いて生成されたデータを、前記受信用可変長ＳＦＤとする、
請求項１から４のいずれかに記載の通信装置。
【請求項６】
（１）前記受信部において、１回または２回実行される、前記受信用可変長位置特定データの生成処理、前記次位置特定データ、前記現位置特定データ、および、前記前位置特定データの更新処理、並びに、（２）前記送信部において、１回または２回実行される、前記送信用可変長位置特定データの生成処理は、自装置から前記相手通信装置にレスポンス信号を送信する場合に実行される、
請求項２から５のいずれかに記載の通信装置。
【請求項７】
ネットワークに接続された、請求項１から６のいずれかに記載の通信装置である第１通信装置と、
前記ネットワークに接続された、請求項１から６のいずれかに記載の通信装置である第２通信装置と、
を含む通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの秘匿性を確保するセキュアなデータ通信において、通信エラーが発生してもセキュアなデータ通信を途絶させず、維持させるための技術に関する。
【背景技術】
【０００２】
通信分野において、情報の秘匿性を高める暗号化技術が多数存在しているが、それらの暗号化技術のほとんどにおいて、比較的大規模なハードウェアが必要とされ、あるいは、複雑なソフトウェア処理が必要とされる。従来の暗号化技術として、例えば、（１）ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）暗号やＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）暗号等の共通鍵暗号方式、あるいは、ＲＳＡ暗号等の公開鍵暗号方式を用いて、データ部に対して、暗号化処理を行う技術や、（２）ＦＨＳＳ（Ｆｒｅｑｕｅｎｃｙ−ｈｏｐｐｉｎｇ  ｓｐｒｅａｄ  ｓｐｅｃｔｒｕｍ）やＤＳＳＳ（ｄｉｒｅｃｔ−ｓｅｑｕｅｎｃｅ  ｓｐｒｅａｄ  ｓｐｅｃｔｒｕｍ）等の変復調方式により情報の秘匿性を高める技術（物理層での暗号化技術）がある。
【０００３】
前者の共通鍵暗号方式や公開鍵暗号方式を用いて、データ部に暗号化処理を行う技術では、複雑なハードウェア（大規模なハードウェア）や複雑なソフトウェア処理が必要となる。一方、後者の変復調方式により情報の秘匿性を高める技術（物理層での暗号化技術）では、複雑なハードウェア（大規模なハードウェア）や高度のネットワークリソースが必要となる。つまり、両者ともに、簡易なリソースにより暗号化処理を行うことができない。
【０００４】
その一方で、簡易な手法により、暗号化処理を実現する方法が存在する。例えば、特許文献１には、所定の規則に従って、通信フレームの同期ワードの位置およびビット長を変化させることで、簡易な手法により、暗号化通信を実現する技術の開示がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−５５７１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の技術では、通信エラーが発生した場合、迅速かつ適切にエラー検出処理およびエラー復帰処理を行うことができない。つまり、特許文献１の技術では、送信側と受信側とで予め決定した規則に従って、通信フレームの同期ワードの位置およびビット長を変化させる。したがって、特許文献１の技術では、通信エラーが発生し、通信フレームの同期ワードの位置およびビット長の変化が送信側と受信側とで一致しない状況になった場合、どのタイミングで通信エラーが発生したのかを特定することが困難であり、さらに、通信エラーが発生している状態から復帰させることが困難である。上記のような通信エラーが発生した場合、特許文献１の技術では、送信側および受信側で、再度、通信フレームの同期ワードの位置およびビット長を変化させる規則の設定を行い、暗号化通信を再開すると考えられるが、再設定が完了するまでの間、通信が正常にできない状態が継続することになる。つまり、特許文献１の技術では、通信エラーが発生した場合、暗号化通信は途絶してしまい、迅速かつ適切にエラー検出処理およびエラー復帰処理を行うことができないという問題点がある。
【０００７】
そこで、本発明は、高度なハードウェアリソースや複雑なソフトウェア処理を必要としない秘匿性の高い通信（セキュア通信）を行うことができ、かつ、通信エラーが発生した場合であっても、迅速かつ適切にエラー検出を行い、セキュアなデータ通信を途絶させず、維持させることができる通信装置および通信システムを実現することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、第１の発明は、通信フレームデータの所定の位置を特定するデータである位置特定データを含む通信フレームデータを用いて、ネットワークを介して、相手通信装置と通信する通信装置であって、インターフェース部と、送信部と、受信部と、を備える。
【０００９】
インターフェース部は、ネットワークを介して、相手通信装置に対して、通信フレームデータを送受信するためインターフェースである。
【００１０】
送信部は、可変長の位置特定データである送信用可変長位置特定データを生成し、送信用可変長位置特定データを含む通信フレームデータを生成する。
【００１１】
受信部は、相手通信装置から送信された通信フレームデータを受信する。
【００１２】
そして、受信部は、可変長の位置特定データである受信用可変長位置特定データを生成し、次位置特定データとして保持し、次位置特定データを生成する１回前に生成した受信用可変長位置特定データを現位置特定データとして保持し、次位置特定データを生成する２回前に生成した受信用可変長位置特定データを前位置特定データとして保持する。また、受信部は、相手通信装置から受信したデータに含まれる位置特定データの種類を特定し、特定した結果に基づいて、受信処理を行うとともに、受信用可変長位置特定データの生成処理を実行するか否か、並びに、次位置特定データ、現位置特定データ、および、前位置特定データの更新処理を実行するか否かを決定する。
【００１３】
送信部は、受信部が受信したデータに含まれる位置特定データの種類に応じて、送信用可変長位置特定データの生成処理を実行するか否かを決定する。
【００１４】
この通信装置では、可変長位置特定データを用いた通信フレームデータにより通信を行うため、高度なハードウェアリソースや複雑なソフトウェア処理を必要としない秘匿性の高い通信（セキュア通信）を行うことができる。また、この通信装置では、受信部が、３つの可変長位置特定データ（前位置特定データ、現位置特定データ、および、次位置特定データ）、つまり、最新の可変長位置特定データ（次位置特定データ）、１回前に生成された可変長位置特定データ（現位置特定データ）、および、２回前に生成された可変長位置特定データ（前位置特定データ）の３つの可変長位置特定データを保持し、受信データに含まれる位置特定データを特定し、特定した位置特定データにより受信処理を行うことができる。この通信装置において、通常の通信（エラーのない通信）を、現位置特定データに一致する可変長位置特定データを用いて通信するようにすることで、受信データの可変長位置特定データが、受信部において保持されている、現位置特定データに一致しない場合、通信エラーが発生したことを検出することができる。
【００１５】
したがって、この通信装置では、通信エラーが発生した場合であっても、迅速かつ適切にエラー検出を行い、セキュアなデータ通信を維持させることができる。
【００１６】
第２の発明は、第１の発明であって、受信部が相手通信装置から受信したデータに含まれる位置特定データが、現位置特定データと一致すると判定した場合、
（１）受信部は、受信用可変長位置特定データの生成処理を１回実行するとともに、次位置特定データ、現位置特定データ、および、前位置特定データの更新処理を実行し、
（２）送信部は、送信用可変長位置特定データの生成処理を１回実行する。
【００１７】
これにより、この通信装置では、データ受信時までの間に、通信エラーが発生していないことを認識することができ、また、通信エラーが発生していない場合（現位置特定データと一致する位置特定データで受信した場合）の受信用可変長ＳＦＤの更新処理（１回実行）および送信用可変長位置特定データの生成（更新）処理（１回実行）を適切に行うことができる。
【００１８】
第３の発明は、第１または第２の発明であって、受信部が相手通信装置から受信したデータに含まれる位置特定データが、前位置特定データと一致すると判定した場合、
（１）受信部は、受信用可変長位置特定データの生成処理を実行せず、かつ、次位置特定データ、現位置特定データ、および、前位置特定データの更新処理を実行せず、
（２）送信部は、送信用可変長位置特定データの生成処理を実行しない。
【００１９】
これにより、この通信装置では、データ受信時までの間に、通信エラーが発生したことを認識することができるとともに、通信エラーが発生していない場合の通信状態（現位置特定データと一致する位置特定データでの通信を行う状態）に復帰させることができる。つまり、この通信装置において、受信部が相手通信装置から受信したデータに含まれる位置特定データが、前位置特定データと一致すると判定した場合、相手通信装置での可変長ＳＦＤ更新処理の実行回数が、自装置での可変長ＳＦＤ更新処理の実行回数よりも１回少ないことが把握できる。よって、この通信装置では、通信エラーの発生を認識することができる。そして、この通信装置では、送信部および受信部での可変長位置特定データの更新処理を実行しないことで、相手通信装置で実行された可変長ＳＦＤ更新処理の実行回数と一致させることができる。その結果、自装置と相手通信装置との間の通信において、通信エラーが発生していない場合の通信状態（現位置特定データと一致する位置特定データでの通信を行う状態）に復帰させることができる。
【００２０】
第４の発明は、第１から第３のいずれかの発明であって、受信部が相手通信装置から受信したデータに含まれる位置特定データが、次位置特定データと一致すると判定した場合、
（１）受信部は、受信用可変長位置特定データの生成処理を２回実行し、かつ、次位置特定データ、現位置特定データ、および、前位置特定データの更新処理を２回実行し、
（２）送信部は、送信用可変長位置特定データの生成処理を２回実行する。
【００２１】
これにより、この通信装置では、データ受信時までの間に、通信エラーが発生したことを認識することができるとともに、通信エラーが発生していない場合の通信状態（現位置特定データと一致する位置特定データでの通信を行う状態）に復帰させることができる。つまり、この通信装置において、受信部が相手通信装置から受信したデータに含まれる位置特定データが、次位置特定データと一致すると判定した場合、相手通信装置での可変長ＳＦＤ更新処理の実行回数が、自装置での可変長ＳＦＤ更新処理の実行回数よりも１回多いことが把握できる。よって、この通信装置では、通信エラーの発生を認識することができる。そして、この通信装置では、送信部および受信部での可変長位置特定データの更新処理を２回（通常より１回多く）実行することで、相手通信装置で実行された可変長ＳＦＤ更新処理の実行回数と一致させることができる。その結果、自装置と相手通信装置との間の通信において、通信エラーが発生していない場合の通信状態（現位置特定データと一致する位置特定データでの通信を行う状態）に復帰させることができる。
【００２２】
第５の発明は、第１から第４のいずれかの発明であって、送信部は、初期値に対して第１の演算処理を行うことで生成した可変長データである特殊ＳＦＤと、自装置に固有なパターンデータと、を用いて生成されたデータを、送信用可変長ＳＦＤとする。
【００２３】
受信部は、初期値と同じ値に対して、第１の演算処理と同じ処理を行うことで生成した可変長データである特殊ＳＦＤと、相手通信装置に固有なパターンデータと、を用いて生成されたデータを、受信用可変長ＳＦＤとする。
【００２４】
これにより、この通信装置では、自装置から相手通信装置への通信に使用される可変長ＳＦＤと、相手通信装置から自装置への通信に使用される可変長ＳＦＤと、を異なるものとすることができる。したがって、よりセキュリティ強度の高い通信を行うことができる。
【００２５】
なお、初期値として、例えば、演算シードを用いるようにしてもよい。
【００２６】
また、「第１の演算処理」とは、例えば、初期値を用いて、線形帰還シフトレジスタによる巡回シフト演算による処理や、フィボナッチＬＦＳＲ（ｌｉｎｅａｒ  ｆｅｅｄｂａｃｋ  ｓｈｉｆｔ  ｒｅｇｉｓｔｅｒ）やガロアＬＦＳＲを用いた処理や、線形合同法による処理や、疑似乱数を生成する方法や、ゴールド符号を用いた方法による処理等を含む概念である。
【００２７】
第６の発明は、第２から第５のいずれかの発明であって、
（１）受信部において、１回または２回実行される、受信用可変長位置特定データの生成処理、次位置特定データ、現位置特定データ、および、前位置特定データの更新処理、並びに、（２）送信部において、１回または２回実行される、送信用可変長位置特定データの生成処理は、自装置から相手通信装置にレスポンス信号を送信する場合に実行される。
【００２８】
これにより、この通信装置では、例えば、連続的にデータを送信する場合（バースト通信）等において、レスポンス信号（例えば、ＡＣＫ信号）を返信するときに、可変長位置特定データの更新処理がされるので、効率の良いデータ通信を実現しつつ、可変長位置特定データの更新処理を適切に実行することができる。
【００２９】
なお、「レスポンス信号を送信する場合」とは、例えば、レスポンス信号を送信した後や、レスポンス信号を送信することを決定した後で、かつ、実際にレスポンス信号を送信する前の期間を含む概念であるである。
【００３０】
第７の発明は、第１通信装置と、第２通信装置と、を含む通信システムである。
【００３１】
第１通信装置は、ネットワークに接続された、第１から第６のいずれかの発明の通信装置である。
【００３２】
第２通信装置は、ネットワークに接続された、第１から第６のいずれかの発明の通信装置である。
【００３３】
これにより、第１から第６のいずれかの発明の通信装置をネットワークに接続した通信システムを実現することができる。
【発明の効果】
【００３４】
本発明によれば、高度なハードウェアリソースや複雑なソフトウェア処理を必要としない秘匿性の高い通信（セキュア通信）を行うことができ、かつ、通信エラーが発生した場合であっても、迅速かつ適切にエラー検出を行い、セキュアなデータ通信を途絶させず、維持させることができる通信装置および通信システムを実現することができる。
【図面の簡単な説明】
【００３５】
【図１】第１実施形態に係る通信システム１０００の概略構成図。
【図２】第１実施形態に係る通信装置１０の概略構成図。
【図３】第１実施形態に係る通信装置１０の送信部２１の概略構成図。
【図４】第１実施形態に係る通信装置１０の受信部２２の概略構成図。
【図５】フレームデータの一例。
【図６】通信装置１０Ａと通信１０Ｂとの間における通信のシーケンス図
【図７】循環型シフトレジスタ（線形帰還シフトレジスタ）およびその動作を説明するための図。
【図８】通信装置１０Ａと通信１０Ｂとの間における通信エラーありの場合（パターン１の場合）の通信のシーケンス図。
【図９】通信装置１０Ａと通信１０Ｂとの間における通信エラーありの場合（パターン２の場合）の通信のシーケンス図。
【図１０】通信装置１０Ａと通信１０Ｂとの間における通信エラーありの場合（パターン３の場合）の通信のシーケンス図。
【図１１】第１実施形態の第１変形例の通信システムにおける通信装置１０Ａと通信１０Ｂとの間における通信のシーケンス図。
【図１２】第１実施形態の第２変形例の通信装置１０の受信部２２の概略構成図。
【発明を実施するための形態】
【００３６】
［第１実施形態］
第１実施形態について、図面を参照しながら、以下、説明する。
【００３７】
＜１．１：通信システムの構成＞
図１は、第１実施形態に係る通信システム１０００の概略構成図である。
【００３８】
図２は、第１実施形態に係る通信システムの通信装置１０の概略構成図である。
【００３９】
図３は、第１実施形態に係る通信装置１０の送信部２１の概略構成図である。
【００４０】
図４は、第１実施形態に係る通信装置１０の受信部２２の概略構成図である。
【００４１】
通信システム１０００は、図１に示すように、ネットワークＮ１に接続された複数の通信装置１０（例えば、図１に示す通信装置１０Ａ〜１０Ｅ）を含む。ネットワークＮ１は、例えば、電力線搬送通信ネットワークである。ネットワークＮ１が電力線搬送通信ネットワークである場合、ネットワークＮ１（の通信媒体）は、電力線であり、複数の通信装置１０（例えば、図１に示す通信装置１０Ａ〜１０Ｅ）は、電力線（図１のネットワーク線Ｎ１に相当。）に接続される。
【００４２】
通信装置１０は、図２に示すように、制御部１と、送受信部２と、インターフェース部３（ＩＦ部３）とを備える。なお、図１の通信装置１０Ａ〜１０Ｅは、それぞれ、図２に示す通信装置１０の構成と同様の構成を有する。図２は、通信装置１０において通信機能に関する部分の概略構成を示す図である。通信装置１０は、図２に示す機能部以外に、例えば、通信により取得したデータを用いた処理等（種々のアプリケーションによる処理等）を実行するための機能部を備えるものであってもよい。
【００４３】
制御部１は、送受信部２の送信部２１に対して、通信装置１０から送信される通信フレーム（フレーム化した通信データ）のヘッダ（ヘッダ・データ）およびペイロード（ペイロード・データ）と、ＳＦＤ（Ｓｔａｒｔ  Ｆｒａｍｅ  Ｄｅｌｉｍｉｔｅｒ）データを生成するための演算シードについてのデータと、自装置に固有な識別番号のデータ（以下、「自固有パターンデータ」という。）と、ＳＦＤ選択信号と、送信指示（送信指示信号）とを出力する。
【００４４】
また、制御部１は、送受信部２の受信部２２から、通信装置１０が受信した通信フレームのヘッダおよびペイロードと、受信通知（受信通知信号）とを入力する。また、制御部１は、送受信部２の受信部２２に対して、ＳＦＤデータ（位置特定データ）を生成するための演算シードについてのデータと、通信相手の通信装置（相手装置）に固有な識別番号のデータ（以下、「相手固有パターンデータ」という。）と、を出力する。
【００４５】
送受信部２は、送信部２１と、受信部２２とを備える。
【００４６】
送信部２１は、図３に示すように、特殊ＳＦＤ生成部２１１と、ＸＯＲ演算部２１２と、標準ＳＦＤ出力部２１３と、セレクタ２１４と、送信制御部２１５と、フレーム生成部２１６と、を備える。
【００４７】
特殊ＳＦＤ生成部２１１は、制御部１から出力される演算シードについてのデータと、送信制御部２１５から出力されるＳＦＤ制御信号（ＳＦＤ＿ＣＴＬ）と、を入力とする。特殊ＳＦＤ生成部２１１は、入力された演算シードのデータに基づいて、特殊ＳＦＤデータを生成する（詳細については後述）。また、特殊ＳＦＤ生成部２１１は、ＳＦＤ制御信号に基づいて、特殊ＳＦＤデータを更新する（詳細については後述）。そして、特殊ＳＦＤ生成部２１１は、生成した特殊ＳＦＤデータをＸＯＲ演算部２１２に出力する。
【００４８】
ＸＯＲ演算部２１２は、特殊ＳＦＤ生成部２１１から出力される特殊ＳＦＤデータと、制御部１から出力される自固有パターンデータとを入力とする。ＸＯＲ演算部２１２は、特殊ＳＦＤデータと自固有パターンデータとに対してＸＯＲ演算することで、可変長ＳＦＤデータを取得する。そして、ＸＯＲ演算部２１２は、取得した可変長ＳＦＤデータをセレクタ２１４に出力する。
【００４９】
標準ＳＦＤ出力部２１３は、標準ＳＦＤデータを保持しており、標準ＳＦＤデータをセレクタ２１４に出力する。なお、「標準ＳＦＤデータ」とは、標準規格に準拠するＳＦＤデータであり、例えば、ＩＥＥＥ規格等により規定されている固定のＳＦＤデータ（ビットパターン）のことをいう。また、「標準ＳＦＤデータ」は、通信システム１０００において、送信側と受信側とで予め決定した、固定ビット長の固定パターンをも含む概念である。
【００５０】
セレクタ２１４は、ＸＯＲ演算部２１２から出力される可変長ＳＦＤデータと、標準ＳＦＤ出力部２１３から出力される標準ＳＦＤデータとを入力とする。セレクタ２１４は、制御部１から出力されるＳＦＤ選択信号に基づいて、可変長ＳＦＤデータおよび標準ＳＦＤデータのいずれか一方をフレーム生成部２１６に出力する。
【００５１】
送信制御部２１５は、制御部１から出力される送信指示（送信指示信号）と、受信部２２から出力されるＳＦＤ更新指示（ＳＦＤ更新指示信号）とを入力とする。送信制御部２１５は、ＳＦＤ更新指示（ＳＦＤ更新指示信号）に基づいて、ＳＦＤ制御信号（ＳＦＤ＿ＣＴＬ）を生成し、生成したＳＦＤ制御信号を特殊ＳＦＤ生成部２１１に出力する。また、送信制御部２１５は、送信指示（送信指示信号）に基づいて、フレーム生成部２１６を制御するための制御信号を生成し、当該制御信号をフレーム生成部２１６に出力する。
【００５２】
フレーム生成部２１６は、セレクタ２１４から出力されるＳＦＤデータと、制御部１から出力されるヘッダおよびペイロードと、送信制御部２１５から出力される制御信号とを入力とする。フレーム生成部２１６は、入力されたＳＦＤデータと、ヘッダおよびペイロードとをフレーム化し、通信システム１０００において、ＩＦ部３を介して送信されるフレームデータ（フレーム化した通信データ）を生成する。
【００５３】
図５に、フレームデータの一例を示す。図５に示すように、フレームデータは、プレアンブルと、ＳＦＤデータと、ヘッダと、ペイロードとを含む。
【００５４】
プレアンブルには、通信の同期をとるための同期符号のためのフィールドである。
【００５５】
ＳＦＤは、フレームの開始位置を特定できるようにするためのフィールドであり、例えば、図５のフレームデータの場合、プレアンブルの同期符号が失われた場合であっても、ＳＦＤを検出することで、ヘッダの先頭位置等を特定することができる。
【００５６】
ヘッダは、例えば、物理層に関連するパラメータを示すフィールドである。ヘッダには、例えば、送信元アドレスや送信先アドレスやフレームの長さ等のデータが含まれる。
【００５７】
ペイロードは、（ヘッダ情報等の管理情報を除いた）正味のデータ（実体データ）のためのフィールドである。
【００５８】
フレーム生成部２１６は、生成したフレームデータ（例えば、図５に示す形式のフレームデータ）を、送信制御部２１５から出力される制御信号に基づいて、インターフェース部３に出力する。
【００５９】
受信部２２は、図４に示すように、タイミング調整部２２１と、特殊ＳＦＤ生成部２２２と、ＸＯＲ演算部２２３と、ＳＦＤ検出更新部２２４と、標準ＳＦＤ判定部２２５と、第１ＳＦＤ判定部２２６と、第２ＳＦＤ判定部２２７と、第３ＳＦＤ判定部２２８と、受信制御部２２９と、を備える。
【００６０】
タイミング調整部２２１は、インターフェース部３により受信されたフレームデータ（受信した通信データ）と、受信制御部２２９から出力されるタイミング制御信号とを入力とする。タイミング調整部２２１は、タイミング制御信号に基づいて、入力されたフレームデータから、ヘッダとペイロードとを取得する。そして、タイミング調整部２２１は、取得したヘッダとペイロードとを制御部１に出力する。
【００６１】
特殊ＳＦＤ生成部２２２は、制御部１から出力される演算シードについてのデータと、受信制御部２２９から出力されるＳＦＤ制御信号（ＳＦＤ＿ＣＴＬ）と、を入力とする。特殊ＳＦＤ生成部２２２は、入力された演算シードのデータに基づいて、特殊ＳＦＤデータを生成する（詳細については後述）。また、特殊ＳＦＤ生成部２２２は、ＳＦＤ制御信号に基づいて、特殊ＳＦＤデータを更新する（詳細については後述）。そして、特殊ＳＦＤ生成部２２２は、生成した特殊ＳＦＤデータをＸＯＲ演算部２２３に出力する。なお、受信部２２の特殊ＳＦＤ生成部２２２は、送信部２１の特殊ＳＦＤ生成部２１１と同様の構成を有している。したがって、通信装置１０において、受信部２２の特殊ＳＦＤ生成部２２２と送信部２１の特殊ＳＦＤ生成部２１１とを共有する構成としてもよい（特殊ＳＦＤ生成部を１つのみ設ける構成とし、受信時と送信時とで、その接続先を切り替えるようにしてもよい）。
【００６２】
ＸＯＲ演算部２２３は、特殊ＳＦＤ生成部２２２から出力される特殊ＳＦＤデータを入力と、制御部１から出力される相手固有パターンデータとを入力とする。ＸＯＲ演算部２２３は、特殊ＳＦＤデータと相手固有パターンデータとに対してＸＯＲ演算することで、可変長ＳＦＤデータを取得する。そして、ＸＯＲ演算部２２３は、取得した可変長ＳＦＤデータをＳＦＤ検出更新部２２４に出力する。なお、受信部２２のＸＯＲ演算部２２３は、送信部２１のＸＯＲ演算部２１２と同様の構成を有している。したがって、通信装置１０において、受信部２２のＸＯＲ演算部２２３と送信部２１のＸＯＲ演算部２１２とを共有する構成としてもよい（ＸＯＲ演算部を１つのみ設ける構成とし、受信時と送信時とで、その接続先を切り替えるようにしてもよい）。
【００６３】
ＳＦＤ検出更新部２２４は、ＸＯＲ演算部２２３から出力される可変長ＳＦＤデータと、標準ＳＦＤ判定部２２５から出力される判定結果ｄｅｔ０と、第１ＳＦＤ判定部２２６から出力される判定結果ｄｅｔ１と、第２ＳＦＤ判定部２２７から出力される判定結果ｄｅｔ２と、第３ＳＦＤ判定部２２８から出力される判定結果ｄｅｔ３と、受信制御部２２９から出力される制御信号（ＣＴＬ）とを入力とする。ＳＦＤ検出更新部２２４は、上記判定結果ｄｅｔ０〜ｄｅｔ３に基づいて、受信データのＳＦＤを特定し、その特定した結果をＤＥＴとして、受信制御部２２９に出力する。なお、受信データのＳＦＤが可変長ＳＦＤである場合、特定結果ＤＥＴには、当該可変長ＳＦＤの長さ（ビット長）を含める。受信データのＳＦＤが標準ＳＦＤである場合、特定結果ＤＥＴには、当該標準ＳＦＤの長さ（ビット長）を含めてよい(受信制御部が、例えば、標準ＳＦＤデータの長さ（ビット長）を把握している場合、当該標準ＳＦＤの長さ（ビット長）を特定結果ＤＥＴに含めなくてもよい)。
【００６４】
また、ＳＦＤ検出更新部２２４は、ＸＯＲ演算部２２３から出力される可変長ＳＦＤデータを少なくとも３つ保持するためのメモリ（不図示）を有している。具体的には、ＳＦＤ検出更新部２２４は、特殊ＳＦＤ生成部２２２で生成された最新の特殊ＳＦＤに基づいて生成された可変長ＳＦＤデータ（ＸＯＲ演算部２２３から出力されているＳＦＤデータ）ＳＦＤ［ｎ］（ｎ：自然数、ｎ≧２）と、１回前に生成（更新）された可変長ＳＦＤデータＳＦＤ［ｎ−１］と、２回前に生成（更新）された可変長ＳＦＤデータＳＦＤ［ｎ−２］と、の合計３つの可変長ＳＦＤデータを保持することができる。
【００６５】
ＳＦＤ検出更新部２２４は、受信制御部２２９からの制御信号（ＣＴＬ）に従い、ＸＯＲ演算部２２３から入力された最新の可変長ＳＦＤデータＳＦＤ［ｎ］をＳＦＤ＿ｎｅｘｔとして第３ＳＦＤ判定部２２８に出力し、１回前に生成（更新）された可変長ＳＦＤデータＳＦＤ［ｎ−１］をＳＦＤ＿ｃｕｒｒｅｎｔとして第２ＳＦＤ判定部２２７に出力し、２回前に生成（更新）された可変長ＳＦＤデータＳＦＤ［ｎ−２］をＳＦＤ＿ｂｅｆｏｒｅとして第１ＳＦＤ判定部２２６に出力する。また、ＳＦＤ検出更新部２２４は、受信制御部２２９からの制御信号（ＣＴＬ）に従い、標準ＳＦＤデータをＳＦＤ＿ｓｔｄとして標準ＳＦＤ判定部２２５に出力する。
【００６６】
受信制御部２２９は、ＳＦＤ検出更新部２２４から出力される受信データのＳＦＤの特定結果ＤＥＴを入力とする。受信制御部２２９は、ＳＦＤ特定結果（ＤＥＴ）に基づいて、タイミング調整部２２１が受信データ（フレームデータ）から、ヘッダおよびペイロードを取得するためのタイミング制御信号を生成する。そして、受信制御部２２９は、生成したタイミング制御信号をタイミング調整部２２１に出力する。
【００６７】
また、受信制御部２２９は、受信データのＳＦＤの特定結果ＤＥＴに基づいて、特殊ＳＦＤ生成部２２２において、特殊ＳＦＤデータを生成（更新）させるためのＳＦＤ制御信号ＳＦＤ＿ＣＴＬを生成する。そして、受信制御部２２９は、生成したＳＦＤ制御信号ＳＦＤ＿ＣＴＬを特殊ＳＦＤ生成部２２２に出力する。
【００６８】
また、受信制御部２２９は、受信データのＳＦＤの特定結果ＤＥＴに基づいて、送信部２１において、特殊ＳＦＤデータを生成（更新）させるためのＳＦＤ更新指示（ＳＦＤ更新指示信号）を生成し、生成したＳＦＤ更新指示（ＳＦＤ更新指示信号）を送信部２１の送信制御部２１５に出力する。
【００６９】
また、受信制御部２２９は、受信データのＳＦＤの特定結果ＤＥＴに基づいて、制御部１に、通信データを受信したことを示す受信通知（受信通知信号）を出力する。
【００７０】
インターフェース部３（ＩＦ部３）は、ネットワークＮ１に接続され、通信データを送受信するためのインターフェースである。インターフェース部３は、送信部２１から出力される送信データ（送信用フレームデータ）を入力とし、当該送信データに含まれる送信先アドレスに従い、当該送信データを送信先の通信装置に送信する。また、インターフェース部３は、自装置宛の通信データを、ネットワークＮ１を介して受信し、受信した通信データを受信部２２に出力する。
【００７１】
＜１．２：通信システムの動作＞
以上のように構成された通信システム１０００の動作について、以下、説明する。
【００７２】
ネットワークＮ１に接続されている通信装置１０Ａと通信装置１０Ｂとの間でデータ通信を行う場合を一例として、以下、説明する。なお、通信装置１０Ａおよび通信装置１０Ｂは、ともに、上記で説明した通信装置１０と同様の構成を有している。
【００７３】
（１．２．１：通常の通信シーケンス）
まず、通常の通信シーケンス（通信エラーが発生していない場合の通信シーケンス）について、説明する。
【００７４】
図６は、通信装置１０Ａと通信１０Ｂとの間における通信のシーケンス図である。
【００７５】
≪演算シードの送受信≫
図６に示すように、通信装置１０Ａは、演算シードについてのデータを暗号化する。具体的には、通信装置１０Ａの制御部１および／またはアプリケーション部（アプリケーション層の処理を行う機能部）（不図示）により、演算シードについてのデータを、例えば、共通鍵暗号方式（ＡＥＳ暗号方式等）により暗号化する（ステップＳＡ１）。そして、制御部１は、暗号化された演算シードを、ペイロードに含め、制御部１から送信部２１のフレーム生成部２１６に出力する。また、通信装置１０Ａの制御部１は、送信先が通信装置１０Ｂであることを示す送信先データを含むヘッダを作成し、作成したヘッダを送信部２１のフレーム生成部２１６に出力する。さらに、制御部１は、セレクタ２１４からの標準ＳＦＤを出力させるためのＳＦＤ選択信号をセレクタ２１４に出力する。また、通信装置１０Ａの制御部１は、送信制御部２１５に対して、送信指示（信号）を出力する。送信制御部２１５は、制御部１から入力された送信指示に従い、フレーム生成部２１６において、上記ヘッダ、ペイロード、および、標準ＳＦＤをフレーム化して、送信データを生成するための制御信号を、フレーム生成部２１６に出力する。通信装置１０Ａのフレーム生成部２１６は、送信制御部２１５から入力された制御信号に従い、制御部１から入力されたヘッダおよびペイロード（暗号化された演算シードを含むペイロード）と、セレクタ２１４から入力された標準ＳＦＤとを用いて、フレームデータを生成し、生成したフレームデータ（通信データ）をインターフェース部３に出力する。
【００７６】
通信装置１０Ａのインターフェース部３は、送信部２１のフレーム生成部２１６から入力された通信データを、ネットワークＮ１を介して、送信先の通信装置１０Ｂに送信する。
【００７７】
通信装置１０Ｂでは、通信装置１０Ｂのインターフェース部３を介して、通信装置１０Ａから通信装置１０Ｂに送信されたデータを受信する。通信装置１０Ｂのインターフェース部３により受信したデータは、受信部２２の標準ＳＦＤ判定部２２５、第１ＳＦＤ判定部２２６、第２ＳＦＤ判定部２２７，第３ＳＦＤ判定部２２８、および、タイミング調整部２２１に出力される。
【００７８】
通信装置１０Ｂの標準ＳＦＤ判定部２２５は、通信装置１０Ｂで受信したデータに、標準ＳＦＤが含まれるか否かを判定し、その判定結果ｄｅｔ０をＳＦＤ検出更新部２２４に出力する。上記の場合、通信装置１０Ａから通信装置１０Ｂに送信されたデータ（通信データ）は、標準ＳＦＤを含むデータであるので、通信装置１０Ｂの標準ＳＦＤ判定部２２５は、通信装置１０Ｂで受信したデータに、標準ＳＦＤが含まれることを示す判定結果ｄｅｔ０をＳＦＤ検出更新部２２４に出力する。以下では、説明便宜のため、標準ＳＦＤ判定部２２５は、受信データに標準ＳＦＤが含まれていることを検出した場合、ｄｅｔ０＝１とし、それ以外の場合、ｄｅｔ０＝０とするものとする。
【００７９】
なお、第１ＳＦＤ判定部２２６、第２ＳＦＤ判定部２２７および第３ＳＦＤ判定部２２８は、それぞれ、受信データに、可変長ＳＦＤデータである、ＳＦＤ＿ｂｅｆｏｒｅ、ＳＦＤ＿ｃｕｒｒｅｎｔおよびＳＦＤ＿ｎｅｘｔが含まれているか否かを判定し、判定結果ｄｅｔ１〜ｄｅｔ３をＳＦＤ検出更新部２２４に出力する。以下では、説明便宜のため、第１ＳＦＤ判定部２２６は、受信データに可変長ＳＦＤであるＳＦＤ＿ｂｅｆｏｒｅが含まれていることを検出した場合、ｄｅｔ１＝１とし、それ以外の場合、ｄｅｔ１＝０とするものとする。また、同様に、第２ＳＦＤ判定部２２７は、受信データにＳＦＤ＿ｃｕｒｒｅｎｔと同じ可変長ＳＦＤが含まれていることを検出した場合、ｄｅｔ２＝１とし、それ以外の場合、ｄｅｔ２＝０とするものとする。また、同様に、第３ＳＦＤ判定部２２８は、受信データに可変長ＳＦＤであるＳＦＤ＿ｎｅｘｔが含まれていることを検出した場合、ｄｅｔ３＝１とし、それ以外の場合、ｄｅｔ３＝０とするものとする。
【００８０】
上記の場合、受信データには、可変長ＳＦＤは含まれていないので、判定結果ｄｅｔ１〜ｄｅｔ３は、全て「０」に設定されて、ＳＦＤ検出更新部２２４に出力される。
【００８１】
ＳＦＤ検出更新部２２４は、標準ＳＦＤ判定部２２５から入力される判定結果ｄｅｔ０が「１」であるので、受信データが標準ＳＦＤを含むデータであることを認識し、受信データが標準ＳＦＤを含むデータであることを示す判定結果ＤＥＴを受信制御部２２９に出力する。
【００８２】
受信制御部２２９は、ＳＦＤ検出更新部２２４から入力される判定結果ＤＥＴに基づいて、受信データに含まれるＳＦＤが標準ＳＦＤであることを認識し、受信データのフレーム構造を決定する。つまり、受信データに含まれるＳＦＤが標準ＳＦＤであることが分かれば、例えば、図５に示すように、プレアンブル部、ＳＦＤ部、ヘッダ部、ペイロード部のビット位置、ビット長が決まる。したがって、受信制御部２２９は、判定結果ＤＥＴに基づいて、プレアンブル、ＳＦＤ、ヘッダ、ペイロードを切り出す（取得する）ためのタイミング制御信号を生成することができる。受信制御部２２９は、生成したタイミング制御信号をタイミング調整部２２１に出力する。また、受信制御部２２９は、受信通知を制御部１に出力する。
【００８３】
タイミング調整部２２１は、受信制御部２２９から入力されたタイミング制御信号に基づいて、受信データ（フレームデータ）から、ヘッダおよびペイロードを取得し、取得したヘッダおよびペイロードを制御部１に出力する。
【００８４】
通信装置１０Ｂの制御部１は、受信制御部２２９から受信通知を受け取ると、送信先である通信装置１０Ａに対してＡＣＫ信号（応答信号）を送信するための処理を行う。具体的には、制御部１は、送信部２１の送信制御部２１５に対してＡＣＫ信号の送信指示を出すとともに、送信先を通信装置１０Ａとするヘッダを生成し、ＡＣＫ信号であることを示すペイロードを生成する。例えば、ＩＥＥＥ８０２．１１規格に準拠させる場合、ペイロード（ＭＡＣフレーム）に含まれるＩＥＥＥ８０２．１１ヘッダのＦｒａｍｅ  Ｃｏｎｔｒｏｌフィールドにおいて、フレームタイプが「制御フレーム」であることを示す値（「１０」）に設定するとともに、サブタイプを「ＡＣＫ」であることを示す値（「１０１１」）に設定することで、制御部１は、ＡＣＫ信号であることを示すペイロードを生成する。
【００８５】
そして、制御部１は、生成したヘッダおよびペイロードを送信部２１に出力する。また、制御部１は、セレクタ２１４にて、標準ＳＦＤが選択されるように、ＳＦＤ選択信号をセレクタ２１４に出力する。
【００８６】
通信装置１０Ｂの受信部２１は、制御部１から出力されるＡＣＫ信号の送信指示に従い、ＳＦＤを標準ＳＦＤとして、ＡＣＫ信号（ＡＣＫフレーム）を生成する。そして、通信装置１０Ｂは、生成したＡＣＫ信号を、通信装置１０Ａに送信（返信）する。
【００８７】
そして、通信装置１０Ａは、通信装置１０Ｂから送信（返信）されたＡＣＫ信号を受信する。具体的には、通信装置１０Ａは、上記で説明した、通信装置１０Ｂにおける暗号化演算シードを標準ＳＦＤにより受信する場合の処理と同様の処理を行い、ＡＣＫ信号を受信する。
【００８８】
通信装置１０Ｂの制御部１は、上記ＡＣＫ送信処理を行うとともに、ＳＦＤ設定処理（初期化処理）（ステップＳＢ２）を行う。通信装置１０Ｂの制御部１は、タイミング調整部２２１から入力されたペイロードにふくまれている暗号化された演算シードを取得する。制御部１（および／または、アプリケーション部）は、取得したデータを復号することで、演算シードについてのデータを取得する。そして、制御部１は、取得した演算シードを受信部２２の特殊ＳＦＤ生成部２２２に出力する。受信部２２の特殊ＳＦＤ生成部２２２は、制御部１から入力された演算シードを、特殊ＳＦＤの生成処理の初期値として設定する。
【００８９】
また、制御部１は、送信部２１の特殊ＳＦＤ生成部２１１に対しても、上記と同様に、取得した演算シードを出力する。そして、送信部２１の特殊ＳＦＤ生成部２１１も、制御部１から入力された演算シードを、特殊ＳＦＤの生成処理の初期値として設定する。
【００９０】
通信装置１０Ａにおいても、通信装置１０Ｂから返信されたＡＣＫ信号を受信すると、ＳＦＤ設定処理（初期化処理）（ステップＳＡ２）を行う。具体的には、上記と同様、通信装置１０Ａの送信部２１の特殊ＳＦＤ生成部２１１および受信部２２の特殊ＳＦＤ生成部２２２において、演算シードを初期値として設定する。これにより、通信装置１０Ａの特殊ＳＦＤ生成部２１１、２２２および通信装置１０Ｂの特殊ＳＦＤ生成部２１１、２２２において、同じ値の初期値（演算シード）が設定されることになる。
【００９１】
≪可変長ＳＦＤの生成方法≫
ここで、送信部２１の特殊ＳＦＤ生成部２１１およびＸＯＲ演算部２１２により可変長ＳＦＤを生成する処理、および、受信部２２の特殊ＳＦＤ生成部２２２およびＸＯＲ演算部２２３により可変長ＳＦＤを生成する処理、について、図７を用いて説明する。可変長ＳＦＤの生成方法の一例として、特殊ＳＦＤ生成部２１１、２２２において、図７に示す循環型シフトレジスタ（線形帰還シフトレジスタ）を用いて可変長ＳＦＤを生成する場合について説明する。
【００９２】
図７の上段に、循環型シフトレジスタ（線形帰還シフトレジスタ）の一例を示す。また、図７の下段に、状態、シフトレジスタの値（特殊ＳＦＤ、ＳＦＤ［ｘ］）、通信装置１０Ａの固有パターンと特殊ＳＦＤとのＸＯＲの演算結果の値（可変長ＳＦＤ、ＳＦＤＡ［ｘ］）、および、通信装置１０Ｂの固有パターンと特殊ＳＦＤとのＸＯＲの演算結果の値（可変長ＳＦＤ、ＳＦＤＢ［ｘ］）を一覧にした表を示す。なお、以下では、演算シードの値を「０００１１００１０」とし、通信装置１０Ａの固有パターン（例えば、固有ＩＤ）を「０００００１１１１」とし、通信装置１０Ｂの固有パターン（例えば、固有ＩＤ）を「１１１１１００００」として説明する。
【００９３】
また、以下では、通信装置１０Ａの送信部２１で生成される可変長ＳＦＤ（ＳＦＤＡ［ｘ］）と、通信装置１０Ａの受信部２２で生成される可変長ＳＦＤ（ＳＦＤＢ［ｘ］）とを生成する場合について、説明する。
（状態０）：
送信部２１の特殊ＳＦＤ生成部２１１および受信部２２の特殊ＳＦＤ生成部２２２が、図７の上段に示す線形帰還シフトレジスタにより構成される場合、送信部２１の特殊ＳＦＤ生成部２１１および受信部２２の特殊ＳＦＤ生成部２２２は、上記で説明した演算シードの値を、シフトレジスタの初期値として設定する。つまり、シフトレジスタには、演算シードの値「０００１１００１０」（９ビットデータ）が初期値として設定される。
【００９４】
図７の表の「状態０」は、初期値（演算シードの値）が設定されたときのシフトレジスタの値が「０  ００１１  ００１０」に設定されていることを示している。つまり、「状態０」において、特殊ＳＦＤ（ＳＦＤ［０］）の値は、「０  ００１１  ００１０」となる。なお、「状態ｘ」（ｘ：整数、ｘ≧０）は、特殊ＳＦＤ生成部２１１、２２２に入力されるＳＦＤ制御信号ＳＦＤ＿ＣＴＬに従い、更新処理が実行される度に、次の状態に遷移する（「ｘ」の値がインクリメントされる）。また、状態ｘの特殊ＳＦＤの値をＳＦＤ［ｘ］と表記する。
【００９５】
通信装置１０Ａの固有パターンは、「０  ００００  １１１１」であるので、特殊ＳＦＤ（ＳＦＤ［０］）と通信装置１０Ａの固有パターンとのＸＯＲ演算の結果は、図７に示すように、「０  ００１１  １１０１」（ビット長：６ビット）となる。つまり、この値が可変長ＳＦＤの値となり、通信装置１０Ａの送信部２１のＸＯＲ演算部２１２から出力される。なお、このとき、ＭＳＢから連続する「０」については出力しない。これにより、ＸＯＲ演算部２１２から出力されるＳＦＤの値は、可変長となる。
【００９６】
一方、通信装置１０Ｂの固有パターンは、「１  １１１１  ００００」であるので、特殊ＳＦＤ（ＳＦＤ［０］）と通信装置１０Ｂの固有パターンとのＸＯＲ演算の結果は、図７に示すように、「１  １１００  ００１０」（ビット長：９ビット）となる。つまり、この値が可変長ＳＦＤの値となり、通信装置１０Ａの受信部２２のＸＯＲ演算部２２３から出力される。なお、このとき、ＭＳＢから連続する「０」については出力しない。これにより、ＸＯＲ演算部２２３から出力されるＳＦＤの値は、可変長となる。
【００９７】
なお、通信装置１０Ａの固有パターンを用いて生成した、状態ｘの可変長ＳＦＤの値をＳＦＤＡ［ｘ］と表記し、通信装置１０Ｂの固有パターンを用いて生成した、状態ｘの可変長ＳＦＤの値をＳＦＤＢ［ｘ］と表記する。
（状態１）：
次に、送信制御部２１５（または受信制御部２２９）から出力されるＳＦＤ制御信号ＳＦＤ＿ＣＴＬにより、特殊ＳＦＤの更新が指示された場合（状態０から状態１に遷移させる場合）、図７のシフトレジスタは、保持しているデータ左方向に１ビットずつシフトさせ、ビット１には、ビットシフト前のビット４の値とビット９の値とのＸＯＲ演算値が入力される。状態０において、ビット４の値は「０」であり、ビット９の値は「０」であるので、両者のＸＯＲ演算結果は「０」となる。したがって、ビット１には、「０」が入力される。つまり、シフトレジスタの値は、図７の表の状態１に示すように、「０  ０１１０  ０１００」となる。すなわち、状態１の特殊ＳＦＤの値ＳＦＤ［１］は、「０  ０１１０  ０１００」となる。
【００９８】
通信装置１０Ａの固有パターンを用いて生成する可変長ＳＦＤＡ［１］は、特殊ＳＦＤの値ＳＦＤ［１］と、通信装置１０Ａの固有パターンとのＸＯＲ演算により、図７の表の状態１に示すように、「０  ０１１０  １０１１」（ビット長：７ビット）となる。そして、この可変長ＳＦＤＡ［１］は、通信装置１０Ａの送信部２１のＸＯＲ演算部２１２から出力される。
【００９９】
一方、通信装置１０Ｂの固有パターンを用いて生成する可変長ＳＦＤＢ［１］は、特殊ＳＦＤの値ＳＦＤ［１］と、通信装置１０Ｂの固有パターンとのＸＯＲ演算により、図７の表の状態１に示すように、「１  １００１  ０１００」（ビット長：９ビット）となる。そして、この可変長ＳＦＤＢ［１］は、通信装置１０Ｂの送信部２１のＸＯＲ演算部２１２から出力される。
（状態２以降）：
状態２以降の処理についても、上記と同様の処理が実行されることで、図７の表に示されるように、特殊ＳＦＤ（ＳＦＤ［ｘ］）、通信装置１０Ａの固有パターンを用いて生成される可変長ＳＦＤ（ＳＦＤＡ［ｘ］）、および、通信装置１０Ｂの固有パターンを用いて生成される可変長ＳＦＤ（ＳＦＤＢ［ｘ］）が生成される。なお、図７の表は、「状態５」までのデータを表示しているが、状態５以降も、上記と同様の処理により、特殊ＳＦＤ［ｘ］、可変長ＳＦＤＡ［ｘ］およびＳＦＤＢ［ｘ］が更新される。
【０１００】
なお、上記では、通信装置１０Ａの送信部２１で生成される可変長ＳＦＤ（ＳＦＤＡ［ｘ］）と、通信装置１０Ａの受信部２２で生成される可変長ＳＦＤ（ＳＦＤＢ［ｘ］）とを生成する場合について説明したが、通信装置１０Ｂの送信部２１で生成される可変長ＳＦＤ（ＳＦＤＢ［ｘ］）と、通信装置１０Ｂの受信部２２で生成される可変長ＳＦＤ（ＳＦＤＡ［ｘ］）の生成方法も、上記と同様である。つまり、通信装置１０Ｂの送信部２１で生成される可変長ＳＦＤ（ＳＦＤＢ［ｘ］）の生成方法は、通信装置１０Ａの受信部２２で生成される可変長ＳＦＤ（ＳＦＤＢ［ｘ］）の生成方法と同様であり、通信装置１０Ｂの受信部２２で生成される可変長ＳＦＤ（ＳＦＤＡ［ｘ］）の生成方法は、通信装置１０Ａの送信部２１で生成される可変長ＳＦＤ（ＳＦＤＡ［ｘ］）の生成方法と同様である。
【０１０１】
また、通信装置１０Ａの送信部２１の特殊ＳＦＤ生成部２１１と、通信装置１０Ａの受信部２２の特殊ＳＦＤ生成部２２２と、通信装置１０Ｂの送信部２１の特殊ＳＦＤ生成部２１１と、通信装置１０Ｂの受信部２２の特殊ＳＦＤ生成部２２２とは、同じ処理（上記の場合では、図７の上段に示した循環型シフトレジスタ（線形帰還シフトレジスタ）による処理）を実行する。したがって、生成される特殊ＳＦＤ［ｘ］は同じであるが、ＸＯＲをとる固有パターンが異なるために、通信装置１０Ａが送信するときの可変長ＳＦＤと、通信装置１０Ｂが送信するときの可変長ＳＦＤとが異なる値となる。したがって、通信装置１０Ａと通信装置１０Ｂとの通信において、常に異なる可変長ＳＦＤを用いて通信することができ、セキュリティ強度の向上させることができる。例えば、特殊ＳＦＤが更新されていない状態で、通信装置１０Ａから通信装置１０Ｂに送信するときに使用される可変長ＳＦＤ（ＳＦＤＡ［ｘ］）と、反対に、通信装置１０Ｂから通信装置１０Ａに送信するときに使用される可変長ＳＦＤ（ＳＦＤＢ［ｘ］）とが一致することがない。
【０１０２】
また、上記では、特殊ＳＦＤ生成部に、図７に示す循環型シフトレジスタ（線形帰還シフトレジスタ）を採用した場合について説明したが、これに限定されることはなく、例えば、異なる構成の線形帰還シフトレジスタを用いて、特殊ＳＦＤを生成するようにしてもよい。例えば、フィボナッチＬＦＳＲ（ｌｉｎｅａｒ  ｆｅｅｄｂａｃｋ  ｓｈｉｆｔ  ｒｅｇｉｓｔｅｒ）やガロアＬＦＳＲを用いるようにしてもよい。また、所定のビットデータとのＸＯＲ演算を行わず単純にビットデータを巡回させるだけのシフトレジスタを用いて特殊ＳＦＤを生成するようにしてもよい。また、上記で挙げたシフトレジスタにおいて、ビットシフト量を１ビットではないＮビット（Ｎ：自然数）として、特殊ＳＦＤを生成するようにしてもよい。このとき、ビットシフト量は、通信装置１０Ａおよび通信装置１０Ｂが予め設定しておいてもよいし、演算シードを暗号化通信により送信する際に、ビットシフト量のデータも送信するようにしてもよい。
【０１０３】
また、線形合同法により、特殊ＳＦＤを生成するようにしてもよい。この場合、特殊ＳＦＤ生成部２１１、２２２は、以下の漸化式に相当する処理により、特殊ＳＦＤを算出するようにしてもよい。
【０１０４】
Ｘ（ｎ＋１）＝ｍｏｄ（（Ａ×Ｘ（ｎ）＋Ｂ），Ｍ）
Ｍ＞Ａ，Ｍ＞Ｂ，Ｂ≧０
Ａ，Ｂ，Ｍ：定数
ｎ：整数（ｎ≧０）
ｍｏｄ（ｘ，ｍ）：法ｍとしてｘの剰余を求める関数
なお、Ｘ（０）は初期値であり、演算シードの値がＸ（０）に代入される。
【０１０５】
上記線形合同法による処理では、定数Ｍにより最大のビット長が決定され、ＳＦＤ制御信号により、更新処理を行うことで、特殊ＳＦＤが可変長の値として取得される。
【０１０６】
また、疑似乱数を生成する方法や、ゴールド符号を用いた方法等を用いて特殊ＳＦＤを生成するようにしてもよい。
【０１０７】
以上により、送信部２１の特殊ＳＦＤ生成部２１１およびＸＯＲ演算部２１２、並びに、受信部２２の特殊ＳＦＤ生成部２２２およびＸＯＲ演算部２２３により、可変長ＳＦＤが生成される。
【０１０８】
≪１：１回目の通信（通信装置１０Ａから通信装置１０Ｂへのデータ送信）≫
≪１Ａ：データ送受信処理≫
次に、通信装置１０Ａから通信装置１０Ｂへのデータ送信する場合の処理について説明する。
【０１０９】
図６に示すように、通信装置１０Ａの制御部１は、送信データ（伝送データ）を含むペイロードと、送信先を通信装置１０Ｂとする送信先データを含むヘッダとを送信部２１に出力する。送信部２１は、特殊ＳＦＤ（ＳＦＤ［０］）と通信装置１０Ａの固有パターンとをＸＯＲ演算して生成した可変長ＳＦＤ（ＳＦＤＡ［０］）をＳＦＤとして、送信データ（フレームデータ）を生成する。そして、生成した送信データ（フレームデータ）を通信装置１０Ｂに送信する。
【０１１０】
通信装置１０Ｂの特殊ＳＦＤ生成部２２２は、特殊ＳＦＤ（ＳＦＤ［０］）を生成する。そして、ＸＯＲ演算部２２３は、特殊ＳＦＤ（ＳＦＤ［０］）と、制御部１から入力される相手固有パターンである通信装置１０Ａの固有パターンとのＸＯＲをとり、可変長ＳＦＤ（ＳＦＤＡ［０］）を生成する。そして、ＸＯＲ演算部２２３は、生成した可変長ＳＦＤ（ＳＦＤＡ［０］）をＳＦＤ検出更新部２２４に出力する。
【０１１１】
ＳＦＤ検出更新部２２４は、ＸＯＲ演算部２２３から入力された可変長ＳＦＤ（ＳＦＤＡ［０］）をＳＦＤ＿ｎｅｘｔとして、第３ＳＦＤ判定部２２８に出力する。第３ＳＦＤ判定部２２８は、入力されたＳＦＤ＿ｎｅｘｔを保持する。
【０１１２】
なお、もう１回、上記処理を行い、特殊ＳＦＤを更新することが好ましい。つまり、通信装置１０Ｂの特殊ＳＦＤ生成部２２２は、特殊ＳＦＤ（ＳＦＤ［１］）を生成し、ＸＯＲ演算部２２３は、特殊ＳＦＤ（ＳＦＤ［１］）と、制御部１から入力される相手固有パターンである通信装置１０Ａの固有パターンとのＸＯＲをとり、可変長ＳＦＤ（ＳＦＤＡ［１］）を生成する。そして、ＸＯＲ演算部２２３は、生成した可変長ＳＦＤ（ＳＦＤＡ［１］）をＳＦＤ検出更新部２２４に出力する。そして、ＳＦＤ検出更新部２２４は、ＸＯＲ演算部２２３から入力された可変長ＳＦＤ（ＳＦＤＡ［１］）を入力し、
ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＡ［１］
ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＡ［０］
とする。
【０１１３】
そして、ＳＦＤ検出更新部２２４は、ＳＦＤ＿ｎｅｘｔを第３ＳＦＤ判定部２２８に、ＳＦＤ＿ｃｕｒｒｅｎｔを第２ＳＦＤ判定部２２７に、それぞれ、出力する。そして、第３ＳＦＤ判定部２２８は、ＳＦＤ＿ｎｅｘｔを保持し、第２ＳＦＤ判定部２２７は、ＳＦＤ＿ｃｕｒｒｅｎｔを保持する。
【０１１４】
このようにすることで、ＳＦＤ＿ｃｕｒｒｅｎｔにＳＦＤＡ［０］を設定することができる。通信システム１０００では、通信エラーがない場合、ＳＦＤ＿ｃｕｒｒｅｎｔに設定されているＳＦＤにより通信することを原則とするため、通信装置１０Ａと通信装置１０Ｂとが最初に可変長ＳＦＤを用いて通信する場合に、ＳＦＤ＿ｃｕｒｒｅｎｔにＳＦＤＡ［０］（あるいはＳＦＤＢ［０］）が設定されていることが好ましい。したがって、演算シードを初期値として、最初の特殊ＳＦＤを生成した後、さらにもう１回、特殊ＳＦＤを生成する処理を行うことが好ましい。これにより、通信装置１０Ｂの受信部２２のＳＦＤ検出更新部２２４において、
ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＡ［１］
ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＡ［０］
となり、通信装置１０Ａの受信部２２のＳＦＤ検出更新部２２４において、
ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＢ［１］
ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＡ［０］
となる。
【０１１５】
なお、通信装置１０Ａと通信装置１０Ｂとが最初に可変長ＳＦＤを用いて通信する場合に、（特殊ＳＦＤを２回生成することをせずに）通信装置１０Ｂの受信部２２のＳＦＤ検出更新部２２４において、
ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＡ［１］
ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＡ［０］
とし、通信装置１０Ａの受信部２２のＳＦＤ検出更新部２２４において、
ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＢ［１］
ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＢ［０］
とするようにしてもよい。ただし、この場合、次に、特殊ＳＦＤが更新されても、通信に使用される可変長ＳＦＤが同じになってしまうため、若干セキュリティ強度が弱くなる。
【０１１６】
以下では、通信装置１０Ａと通信装置１０Ｂとが最初に可変長ＳＦＤを用いて通信する場合において、通信装置１０Ｂの受信部２２のＳＦＤ検出更新部２２４において、
ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＡ［１］
ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＡ［０］
と設定（状態Ｂ０）されており、通信装置１０Ａの受信部２２のＳＦＤ検出更新部２２４において、
ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＢ［１］
ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＢ［０］
と設定（状態Ａ０）されているものとして説明する。
【０１１７】
通信装置１０Ａから送信され通信装置１０Ｂで受信されたデータのＳＦＤが可変長ＳＦＤであり、ＳＦＤＡ［０］であるので、第２ＳＦＤ判定部２２７が保持しているＳＦＤ＿ｃｕｒｒｅｎｔ（＝ＳＦＤＡ［０］）と一致する。したがって、通信装置１０Ｂの第２ＳＦＤ判定部２２７は、判定結果ｄｅｔ２＝１として、ｄｅｔ２をＳＦＤ検出更新部２２４に出力する。
【０１１８】
ＳＦＤ検出更新部２２４は、第２ＳＦＤ判定部２２７から入力されたｄｅｔ２が「１」であるので、受信データにおいて、ＳＦＤ＝ＳＦＤ＿ｃｕｒｒｅｎｔ（＝ＳＦＤＡ［０］）であることを示すＳＦＤ検出結果信号ＤＥＴを受信制御部２２９に出力する。
【０１１９】
受信制御部２２９は、入力されたＳＦＤ検出結果信号ＤＥＴに基づいて、タイミング制御信号を生成し、タイミング調整部２２１に出力するとともに、受信通知を制御部１に出力する。また、受信制御部２２９は、ＳＦＤ更新処理を指示するＳＦＤ制御信号を特殊ＳＦＤ生成部２２２に出力し、さらに、送信部２１の送信制御部２１５にＳＦＤ更新指示を出力する。
【０１２０】
タイミング調整部２２１は、入力されたタイミング制御信号に基づいて、ヘッダおよびペイロードを切り出し（取得し）、制御部１に出力する。
【０１２１】
受信部２２の特殊ＳＦＤ生成部２２２は、入力されたＳＦＤ制御信号ＳＦＤ＿ＣＴＬに基づいて、特殊ＳＦＤを更新する処理を行う。これにより、通信装置１０Ｂの受信部２２の特殊ＳＦＤ生成部２２２で生成される特殊ＳＦＤは、ＳＦＤ［２］となる。
【０１２２】
通信装置１０Ｂの制御部１は、受信制御部２２９から受信通知を受け取ると、通信装置１０ＡにＡＣＫ信号を送信するために、ＡＣＫ信号の送信指示を送信制御部２１５に出力するとともに、セレクタ２１４にて可変長ＳＦＤ（ＳＦＤＢ［０］）が選択されるようにＳＦＤ選択信号をセレクタ２１４に出力する。
【０１２３】
送信制御部２１５は、入力されたＡＣＫ信号の送信指示に従い、フレーム生成部２１６が可変長ＳＦＤ（ＳＦＤＢ［０］）を含む通信データ（フレームデータ）を生成し、通信装置１０Ａに送信するように制御信号をフレーム生成部２１６に出力する。そして、通信装置１０Ｂのインターフェース部３を介して、ＳＦＤをＳＦＤＢ［０］とするＡＣＫ信号が通信装置１０Ｂから通信装置１０Ａに送信される。
【０１２４】
ＡＣＫ信号が送信されると、通信装置１０Ｂの送信制御部２１５は、受信制御部２２９から入力されたＳＦＤ更新指示に基づいて、送信部２１の特殊ＳＦＤ生成部２１１に更新処理が実行されるようにＳＦＤ制御信号ＳＦＤ＿ＣＴＬを出力する。
【０１２５】
通信装置１０Ｂの送信部２１の特殊ＳＦＤ生成部２１１は、入力されたＳＦＤ制御信号ＳＦＤ＿ＣＴＬに従い、特殊ＳＦＤを、ＳＦＤ［０］からＳＦＤ［１］に更新する。これにより、ＸＯＲ演算部２１２から出力される可変長ＳＦＤも、ＳＦＤＢ［０］からＳＦＤＢ［１］へと更新される。
【０１２６】
また、通信装置１０Ｂの受信部２２のＸＯＲ演算部２２３は、特殊ＳＦＤ生成部２２２から入力されている特殊ＳＦＤ（ＳＦＤ［２］）と相手固有パターン（通信装置１０Ａの固有パターン）とのＸＯＲをとり、可変長ＳＦＤ（ＳＦＤＡ［２］）を生成し、ＳＦＤ検出更新部２２４に出力する。
【０１２７】
ＳＦＤ検出更新部２２４は、入力された可変長ＳＦＤ（ＳＦＤＡ［２］）を用いて、ＳＦＤの更新処理を行い、
ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＡ［０］
ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＡ［１］
ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＡ［２］
と設定する（状態Ｂ１）。そして、ＳＦＤ検出更新部２２４は、ＳＦＤ＿ｂｅｆｏｒｅ（＝ＳＦＤＡ［０］）を第１ＳＦＤ判定部２２６に出力し、第１ＳＦＤ判定部２２６は、ＳＦＤ＿ｂｅｆｏｒｅ（＝ＳＦＤＡ［０］）を保持する。また、ＳＦＤ検出更新部２２４は、ＳＦＤ＿ｃｕｒｒｅｎｔ（＝ＳＦＤＡ［１］）を第２ＳＦＤ判定部２２７に出力し、第２ＳＦＤ判定部２２７は、ＳＦＤ＿ｃｕｒｒｅｎｔ（＝ＳＦＤＡ［１］）を保持する。また、ＳＦＤ検出更新部２２４は、ＳＦＤ＿ｎｅｘｔ（＝ＳＦＤＡ［２］）を第３ＳＦＤ判定部２２８に出力し、第３ＳＦＤ判定部２２８は、ＳＦＤ＿ｎｅｘｔ（＝ＳＦＤＡ［２］）を保持する。
【０１２８】
この段階で、通信装置１０ＢのＳＦＤ更新処理（ステップＳＢ３）が終了し、通信装置１０Ｂにおいて、ＳＦＤは以下のように設定されている。
（状態Ｂ１）：
（送信用）可変長ＳＦＤ＝ＳＦＤＢ［１］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＡ［０］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＡ［１］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＡ［２］
≪１Ｂ：ＡＣＫ受信処理（通信装置１０Ａ）≫
一方、通信装置１０Ａでは、通信装置１０Ｂから送信されたＡＣＫ信号を受信すると、通信装置１０Ａでは、以下の状態である。
（状態Ａ０）：
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＢ［０］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＢ［１］
通信装置１０Ｂから送信されたデータ（ＡＣＫ信号）のＳＦＤが可変長ＳＦＤであり、ＳＦＤＢ［０］であるので、通信装置１０Ａの第２ＳＦＤ判定部２２７が保持しているＳＦＤ＿ｃｕｒｒｅｎｔ（＝ＳＦＤＢ［０］）と一致する。したがって、通信装置１０Ａの第２ＳＦＤ判定部２２７は、判定結果ｄｅｔ２＝１として、ｄｅｔ２をＳＦＤ検出更新部２２４に出力する。
【０１２９】
ＳＦＤ検出更新部２２４は、第２ＳＦＤ判定部２２７から入力されたｄｅｔ２が「１」であるので、受信データにおいて、ＳＦＤ＝ＳＦＤ＿ｃｕｒｒｅｎｔ（＝ＳＦＤＢ［０］）であることを示すＳＦＤ検出結果信号ＤＥＴを受信制御部２２９に出力する。
【０１３０】
受信制御部２２９は、入力されたＳＦＤ検出結果信号ＤＥＴに基づいて、タイミング制御信号を生成し、タイミング調整部２２１に出力するとともに、受信通知（ＡＣＫの受信通知）を制御部１に出力する。また、受信制御部２２９は、ＳＦＤ更新処理を指示するＳＦＤ制御信号を特殊ＳＦＤ生成部２２２に出力し、さらに、送信部２１の送信制御部２１５にＳＦＤ更新指示を出力する。
【０１３１】
タイミング調整部２２１は、入力されたタイミング制御信号に基づいて、ヘッダおよびペイロードを切り出し（取得し）、制御部１に出力する。
【０１３２】
受信部２２の特殊ＳＦＤ生成部２２２は、入力されたＳＦＤ制御信号ＳＦＤ＿ＣＴＬに基づいて、特殊ＳＦＤを更新する処理を行う。これにより、通信装置１０Ｂの受信部２２の特殊ＳＦＤ生成部２２２で生成される特殊ＳＦＤは、ＳＦＤ［２］となる。
【０１３３】
通信装置１０Ａの送信制御部２１５は、受信制御部２２９から入力されたＳＦＤ更新指示に基づいて、送信部２１の特殊ＳＦＤ生成部２１１に更新処理が実行されるようにＳＦＤ制御信号ＳＦＤ＿ＣＴＬを出力する。
【０１３４】
通信装置１０Ａの送信部２１の特殊ＳＦＤ生成部２１１は、入力されたＳＦＤ制御信号ＳＦＤ＿ＣＴＬに従い、特殊ＳＦＤを、ＳＦＤ［０］からＳＦＤ［１］に更新する。これにより、ＸＯＲ演算部２１２から出力される可変長ＳＦＤも、ＳＦＤＡ［０］からＳＦＤＡ［１］へと更新される。
【０１３５】
また、通信装置１０Ａの受信部２２のＸＯＲ演算部２２３は、特殊ＳＦＤ生成部２２２から入力されている特殊ＳＦＤ（ＳＦＤ［２］）と相手固有パターン（通信装置１０Ｂの固有パターン）とのＸＯＲをとり、可変長ＳＦＤ（ＳＦＤＢ［２］）を生成し、ＳＦＤ検出更新部２２４に出力する。
【０１３６】
ＳＦＤ検出更新部２２４は、入力された可変長ＳＦＤ（ＳＦＤＢ［２］）を用いて、ＳＦＤの更新処理を行い、
ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＢ［０］
ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＢ［１］
ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＢ［２］
と設定する（状態Ａ１）。そして、ＳＦＤ検出更新部２２４は、ＳＦＤ＿ｂｅｆｏｒｅ（＝ＳＦＤＢ［０］）を第１ＳＦＤ判定部２２６に出力し、第１ＳＦＤ判定部２２６は、ＳＦＤ＿ｂｅｆｏｒｅ（＝ＳＦＤＢ［０］）を保持する。また、ＳＦＤ検出更新部２２４は、ＳＦＤ＿ｃｕｒｒｅｎｔ（＝ＳＦＤＢ［１］）を第２ＳＦＤ判定部２２７に出力し、第２ＳＦＤ判定部２２７は、ＳＦＤ＿ｃｕｒｒｅｎｔ（＝ＳＦＤＢ［１］）を保持する。また、ＳＦＤ検出更新部２２４は、ＳＦＤ＿ｎｅｘｔ（＝ＳＦＤＢ［２］）を第３ＳＦＤ判定部２２８に出力し、第３ＳＦＤ判定部２２８は、ＳＦＤ＿ｎｅｘｔ（＝ＳＦＤＢ［２］）を保持する。
【０１３７】
この段階で、通信装置１０ＡのＳＦＤ更新処理（ステップＳＡ３）が終了し、通信装置１０Ａにおいて、ＳＦＤは以下のように設定されている。
（状態Ａ１）：
（送信用）可変長ＳＦＤ＝ＳＦＤＡ［１］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＢ［０］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＢ［１］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＢ［２］
≪２：２回目の通信（通信装置１０Ｂから通信装置１０Ａへのデータ送信）≫
≪２Ａ：データ送受信処理≫
次に、図６に示すように、通信装置１０Ｂから通信装置１０Ａへのデータ送信する場合（２回目の通信）、上記の１回目の通信で説明したのと同様の処理（データ送受信時の処理）が実行される。具体的には、以下のように処理が実行される。
【０１３８】
通信装置１０Ｂは、通信装置１０Ａに対して、ＳＦＤを可変長ＳＦＤ（ＳＦＤＢ［１］）とする通信データ（フレームデータ）を送信する。
【０１３９】
通信装置１０Ａは、通信装置１０Ｂから、ＳＦＤを可変長ＳＦＤ（ＳＦＤＢ［１］）とする通信データを受信する。
【０１４０】
通信装置１０Ｂから送信され通信装置１０Ａで受信されたデータのＳＦＤは、可変長ＳＦＤ（ＳＦＤＢ［１］）であり、通信装置１０Ａの第２ＳＦＤ判定部２２７で保持されているＳＦＤ＿ｃｕｒｒｅｎｔ（＝ＳＦＤＢ［１］）と一致する。したがって、第２ＳＦＤ判定部２２７は、判定結果ｄｅｔ２＝１として、ｄｅｔ２をＳＦＤ検出更新部２２４に出力する。そして、通信装置１０Ａでは、上記の１回目の通信で説明したのと同様に、受信処理、可変長ＳＦＤの更新処理が実行され、通信装置１０Ａの受信部２２のＸＯＲ演算部２２３から出力される可変長ＳＦＤが、ＳＦＤＢ［２］からＳＦＤＢ［３］に更新される。
【０１４１】
そして、ＳＦＤ検出更新部２２４では、ＳＦＤの更新処理が実行され、
ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＢ［１］
ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＢ［２］
ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＢ［３］
に設定され、上記ＳＦＤが、それぞれ、第１ＳＦＤ判定部２２６、第２ＳＦＤ判定部２２７および第３ＳＦＤ判定部２２８に設定される（ステップＳＡ４）。
【０１４２】
また、通信装置１０Ａの送信部２１は、通信装置１０ＢへＡＣＫ信号を送信し、さらに、可変長ＳＦＤの更新処理を実行する。これにより、通信装置１０Ａの送信部２１のＸＯＲ演算部２１２から出力される可変長ＳＦＤが、ＳＦＤＡ［１］からＳＦＤＡ［２］に更新される（ステップＳＡ４）。
【０１４３】
この段階で、通信装置１０ＡのＳＦＤ更新処理（ステップＳＡ４）が終了し、通信装置１０Ａにおいて、ＳＦＤは以下のように設定されている。
（状態Ａ２）：
（送信用）可変長ＳＦＤ＝ＳＦＤＡ［２］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＢ［１］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＢ［２］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＢ［３］
≪２Ｂ：ＡＣＫ受信処理（通信装置１０Ｂ）≫
通信装置１０Ｂは、通信装置１０ＡからのＡＣＫ信号を受信すると、上記の１回目の通信と同様の処理（ＡＣＫ受信時の処理）が実行される。具体的には、以下のように処理が実行される。
【０１４４】
通信装置１０Ｂは、通信装置１０Ａから、ＳＦＤを可変長ＳＦＤ（ＳＦＤＡ［１］）とするＡＣＫ信号を受信する。
【０１４５】
通信装置１０Ｂで受信したＡＣＫ信号のＳＦＤは、可変長ＳＦＤ（ＳＦＤＡ［１］）であり、通信装置１０Ｂの第２ＳＦＤ判定部２２７で保持されているＳＦＤ＿ｃｕｒｒｅｎｔ（＝ＳＦＤＡ［１］）と一致する。したがって、第２ＳＦＤ判定部２２７は、判定結果ｄｅｔ２＝１として、ｄｅｔ２をＳＦＤ検出更新部２２４に出力する。そして、通信装置１０Ｂでは、上記の１回目の通信で説明したのと同様に、受信処理、可変長ＳＦＤの更新処理が実行され、通信装置１０Ｂの受信部２２のＸＯＲ演算部２２３から出力される可変長ＳＦＤが、ＳＦＤＡ［２］からＳＦＤＡ［３］に更新される。
【０１４６】
そして、ＳＦＤ検出更新部２２４では、ＳＦＤの更新処理が実行され、
ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＡ［１］
ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＡ［２］
ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＡ［３］
に設定され、上記ＳＦＤが、それぞれ、第１ＳＦＤ判定部２２６、第２ＳＦＤ判定部２２７および第３ＳＦＤ判定部２２８に設定される（ステップＳＢ４）。
【０１４７】
また、通信装置１０Ｂの送信部２１では、可変長ＳＦＤの更新処理が実行され、通信装置１０Ｂの送信部２１のＸＯＲ演算部２１２から出力される可変長ＳＦＤが、ＳＦＤＢ［１］からＳＦＤＢ［２］に更新される（ステップＳＢ４）。
【０１４８】
この段階で、通信装置１０ＢのＳＦＤ更新処理（ステップＳＢ４）が終了し、通信装置１０Ｂにおいて、ＳＦＤは以下のように設定されている。
（状態Ｂ２）：
（送信用）可変長ＳＦＤ＝ＳＦＤＢ［２］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＡ［１］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＡ［２］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＡ［３］
≪３：３回目の通信（通信装置１０Ａから通信装置１０Ｂへのデータ送信）≫
≪３Ａ：データ送受信処理≫
次に、図６に示すように、通信装置１０Ａから通信装置１０Ｂへのデータ送信する場合（３回目の通信）、上記の１回目の通信で説明したのと同様の処理（データ送受信時の処理）が実行される。具体的には、以下のように処理が実行される。
【０１４９】
通信装置１０Ａは、通信装置１０Ｂに対して、ＳＦＤを可変長ＳＦＤ（ＳＦＤＡ［２］）とする通信データ（フレームデータ）を送信する。
【０１５０】
通信装置１０Ｂは、通信装置１０Ａから、ＳＦＤを可変長ＳＦＤ（ＳＦＤＡ［２］）とする通信データを受信する。
【０１５１】
通信装置１０Ａから送信され通信装置１０Ｂで受信されたデータのＳＦＤは、可変長ＳＦＤ（ＳＦＤＡ［２］）であり、通信装置１０Ｂの第２ＳＦＤ判定部２２７で保持されているＳＦＤ＿ｃｕｒｒｅｎｔ（＝ＳＦＤＡ［２］）と一致する。したがって、第２ＳＦＤ判定部２２７は、判定結果ｄｅｔ２＝１として、ｄｅｔ２をＳＦＤ検出更新部２２４に出力する。そして、通信装置１０Ｂでは、上記の１回目の通信で説明したのと同様に、受信処理、可変長ＳＦＤの更新処理が実行され、通信装置１０Ｂの受信部２２のＸＯＲ演算部２２３から出力される可変長ＳＦＤが、ＳＦＤＢ［３］からＳＦＤＢ［４］に更新される。
【０１５２】
そして、ＳＦＤ検出更新部２２４では、ＳＦＤの更新処理が実行され、
ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＡ［２］
ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＡ［３］
ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＡ［４］
に設定され、上記ＳＦＤが、それぞれ、第１ＳＦＤ判定部２２６、第２ＳＦＤ判定部２２７および第３ＳＦＤ判定部２２８に設定される（ステップＳＢ５）。
【０１５３】
また、通信装置１０Ｂの送信部２１は、通信装置１０ＡへＡＣＫ信号を送信し、さらに、可変長ＳＦＤの更新処理を実行する。これにより、通信装置１０Ｂの送信部２１のＸＯＲ演算部２１２から出力される可変長ＳＦＤが、ＳＦＤＢ［２］からＳＦＤＢ［３］に更新される（ステップＳＢ５）。
【０１５４】
この段階で、通信装置１０ＢのＳＦＤ更新処理（ステップＳＢ５）が終了し、通信装置１０Ａにおいて、ＳＦＤは以下のように設定されている。
（状態Ｂ３）：
（送信用）可変長ＳＦＤ＝ＳＦＤＢ［３］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＡ［２］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＡ［３］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＡ［４］
≪３Ｂ：ＡＣＫ受信処理（通信装置１０Ａ）≫
通信装置１０Ａは、通信装置１０ＢからのＡＣＫ信号を受信すると、上記の１回目の通信と同様の処理（ＡＣＫ受信時の処理）が実行される。具体的には、以下のように処理が実行される。
【０１５５】
通信装置１０Ａは、通信装置１０Ｂから、ＳＦＤを可変長ＳＦＤ（ＳＦＤＢ［２］）とするＡＣＫ信号を受信する。
【０１５６】
通信装置１０Ａで受信したＡＣＫ信号のＳＦＤは、可変長ＳＦＤ（ＳＦＤＢ［２］）であり、通信装置１０Ａの第２ＳＦＤ判定部２２７で保持されているＳＦＤ＿ｃｕｒｒｅｎｔ（＝ＳＦＤＢ［２］）と一致する。したがって、第２ＳＦＤ判定部２２７は、判定結果ｄｅｔ２＝１として、ｄｅｔ２をＳＦＤ検出更新部２２４に出力する。そして、通信装置１０Ａでは、上記の１回目の通信で説明したのと同様に、受信処理、可変長ＳＦＤの更新処理が実行され、通信装置１０Ａの受信部２２のＸＯＲ演算部２２３から出力される可変長ＳＦＤが、ＳＦＤＢ［３］からＳＦＤＢ［４］に更新される。
【０１５７】
そして、ＳＦＤ検出更新部２２４では、ＳＦＤの更新処理が実行され、
ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＢ［２］
ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＢ［３］
ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＢ［４］
に設定され、上記ＳＦＤが、それぞれ、第１ＳＦＤ判定部２２６、第２ＳＦＤ判定部２２７および第３ＳＦＤ判定部２２８に設定される（ステップＳＡ５）。
【０１５８】
また、通信装置１０Ａの送信部２１では、可変長ＳＦＤの更新処理が実行され、通信装置１０Ｂの送信部２１のＸＯＲ演算部２１２から出力される可変長ＳＦＤが、ＳＦＤＡ［２］からＳＦＤＡ［３］に更新される（ステップＳＡ５）。
【０１５９】
この段階で、通信装置１０ＡのＳＦＤ更新処理（ステップＳＡ５）が終了し、通信装置１０Ａにおいて、ＳＦＤは以下のように設定されている。
（状態Ａ３）：
（送信用）可変長ＳＦＤ＝ＳＦＤＡ［３］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＢ［２］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＢ［３］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＢ［４］
以上の処理が、通信装置間でデータ通信が実行される度に、繰り返される。つまり、通信システム１０００では、送信側の通信装置および受信側の通信装置において、データ通信が実行される度にＳＦＤ更新処理が実行され、異なった可変長ＳＦＤを用いたセキュアな通信を行うことができる。
【０１６０】
（１．２．２：通信エラーありの場合の通信シーケンス（パターン１））
次に、通信エラーがある場合の通信シーケンス（パターン１）について、説明する。なお、ＳＦＤの更新処理については、上記の通常の通信シーケンスで説明したものと同様であるため、説明を省略する。
【０１６１】
図８は、通信装置１０Ａと通信１０Ｂとの間における通信エラーありの場合（パターン１の場合）の通信のシーケンス図である。
【０１６２】
図８に示すように、
（１）１回目の通信において、通信装置１０Ａから通信装置１０Ｂに対して、データ送信が行われ、通信装置１０Ａから通信装置１０Ｂへデータ送信時にエラーが発生し、
（２）２回目の通信において、通信装置１０Ａから通信装置１０Ｂに対して、データ送信が行われ、通信装置１０Ｂから通信装置１０ＡへＡＣＫ信号を送信（返信）するときにエラーが発生し、
（３）３回目の通信において、通信装置１０Ａから通信装置１０Ｂに対して、エラーの発生なく、データ送信が実行される、
場合について、以下、説明する。
【０１６３】
なお、図８の通信が実行される前において、通信装置１０Ａで設定されている可変長ＳＦＤは、
（状態Ａ１０）：
（送信用）可変長ＳＦＤ＝ＳＦＤＡ［１］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＢ［０］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＢ［１］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＢ［２］
であり、通信装置１０Ｂで設定されている可変長ＳＦＤは、
（状態Ｂ１０）：
（送信用）可変長ＳＦＤ＝ＳＦＤＢ［１］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＡ［０］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＡ［１］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＡ［２］
であるとして、以下、説明する。
【０１６４】
≪Ｐ１−１：１回目の通信（通信装置１０Ａから通信装置１０Ｂへのデータ送信）≫
１回目の通信では、通信装置１０Ａは、通信装置１０Ｂに対して、データ送信（ＳＦＤとして、可変長ＳＦＤ（ＳＦＤＡ［１］）を用いたデータ送信）を行う。１回目の通信では、図８に示すように、通信装置１０Ａから通信装置１０Ｂへのデータ送信時にエラーが発生している。上記の通常の通信シーケンスで説明したように、データ送信側の通信装置は、データ受信側の通信装置から（正常に）ＡＣＫ信号を受信した場合に、ＳＦＤ更新処理を行い、一方、データ受信側の通信装置は、送信側の通信装置から送信されたデータを（正常に）受信した場合に、ＳＦＤ更新処理を行う。
【０１６５】
したがって、通信装置１０Ａから通信装置１０Ｂへのデータ送信時にエラーが発生した場合、通信装置１０Ａおよび１０Ｂは、ともに、ＳＦＤ更新処理を行わない（図８のＳＦＤ更新処理ＳＡ１１およびＳＦＤ更新処理ＳＢ１１は、ともに実行されない）。その結果、通信装置１０Ａおよび１０Ｂにおいて、設定されているＳＦＤの状態にずれは生じない。つまり、通信装置１０Ａで保持（設定）されている送信用の可変長ＳＦＤおよび受信用の可変長ＳＦＤ＿ｃｕｒｒｅｎｔと、通信装置１０Ｂで保持（設定）されている送信用の可変長ＳＦＤおよび受信用の可変長ＳＦＤ＿ｃｕｒｒｅｎｔとは、全て、特殊ＳＦＤであるＳＦＤ［１］を用いて生成されたものである。
【０１６６】
この段階で、通信装置１０Ａの可変長ＳＦＤの設定状況は、
（状態Ａ１１）：
（送信用）可変長ＳＦＤ＝ＳＦＤＡ［１］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＢ［０］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＢ［１］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＢ［２］
であり、通信装置１０Ｂの可変長ＳＦＤの設定状況は、
（状態Ｂ１１）：
（送信用）可変長ＳＦＤ＝ＳＦＤＢ［１］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＡ［０］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＡ［１］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＡ［２］
である。
【０１６７】
≪Ｐ１−２：２回目の通信（通信装置１０Ａから通信装置１０Ｂへのデータ送信）≫
次に、２回目の通信では、通信装置１０Ａは、通信装置１０Ｂに対して、データ送信（ＳＦＤとして、可変長ＳＦＤ（ＳＦＤＡ［１］）を用いたデータ送信）を行う。２回目の通信では、図８に示すように、通信装置１０Ｂから通信装置１０ＡへのＡＣＫ信号の送信（返信）時にエラーが発生している。したがって、通信装置１０Ａは、正常にデータを受信しているので、ＳＦＤ更新処理（ステップＳＢ１２）を実行する。一方、通信装置１０Ｂは、正常にＡＣＫ信号を受信していないので、ＳＦＤ更新処理（ステップＳＡ１２）を実行しない（実行できない）。
【０１６８】
この段階で、通信装置１０Ａの可変長ＳＦＤの設定状況は、
（状態Ａ１２）：
（送信用）可変長ＳＦＤ＝ＳＦＤＡ［１］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＢ［０］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＢ［１］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＢ［２］
であり、通信装置１０Ｂの可変長ＳＦＤの設定状況は、
（状態Ｂ１２）：
（送信用）可変長ＳＦＤ＝ＳＦＤＢ［２］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＡ［１］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＡ［２］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＡ［３］
である。
【０１６９】
≪Ｐ１−３：３回目の通信（通信装置１０Ａから通信装置１０Ｂへのデータ送信）≫
次に、３回目の通信では、通信装置１０Ａは、通信装置１０Ｂに対して、データ送信（ＳＦＤとして、可変長ＳＦＤ（ＳＦＤＡ［１］）を用いたデータ送信）を行う。３回目の通信では、図８に示すように、通信エラーの発生はない。
【０１７０】
２回目の通信において、通信装置１０Ａは、ＡＣＫ信号を正常に受信しておらず、ＳＦＤ更新処理が実行されていないので、３回目の通信において、通信装置１０Ａは、可変長ＳＦＤをＳＦＤＡ［１］として、データ送信を行っている。
【０１７１】
通信装置１０Ｂは、通信装置１０Ａから可変長ＳＦＤ（ＳＦＤＡ［１］）により送信されたデータを、可変長ＳＦＤ＿ｂｅｆｏｒｅにより受信することができる。つまり、通信装置１０Ｂでは、可変長ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＡ［２］に設定されているので、通信装置１０Ｂの受信部２２の第１ＳＦＤ判定部により、受信データのＳＦＤが可変長ＳＦＤ＿ｂｅｆｏｒｅ（＝ＳＦＤＡ［２］）であることを検出することできる。そして、通信装置１０Ｂの受信部ＳＦＤ検出更新部２２４は、受信データに含まれる可変長ＳＦＤが可変長ＳＦＤ＿ｂｅｆｏｒｅ（＝ＳＦＤＡ［２］）であることを検出信号ＤＥＴにより受信制御部２２９に通知する。
【０１７２】
通信装置１０Ｂの受信制御部２２９は、受信データに含まれる可変長ＳＦＤが可変長ＳＦＤ＿ｂｅｆｏｒｅ（＝ＳＦＤＡ［２］）であるので、通信装置１０Ｂの受信制御部２２９は、受信部２２の特殊ＳＦＤ生成部２２２において更新処理を実行させないように、特殊ＳＦＤ生成部２２２を制御する。つまり、通信装置１０Ｂで受信したデータに含まれる可変長ＳＦＤが可変長ＳＦＤ＿ｂｅｆｏｒｅ（＝ＳＦＤＡ［２］）であるので、送信側の通信装置１０Ａで実行されたＳＦＤ更新処理の回数が、受信側の通信装置１０Ｂで実行されたＳＦＤ更新処理の回数よりも１回少ないことを、通信装置１０Ｂにおいて認識することができる。したがって、ＳＦＤ更新処理の実行回数を送信側と受信側とで一致させるために、上記のように、受信側の通信装置１０Ｂでは、ＳＦＤ更新処理を実行しない。
【０１７３】
また、通信装置１０Ｂでは、受信制御部２２９から送信制御部２１５に、ＳＦＤ更新処理を実行させないように指示し、通信装置１０Ｂの送信部２１においても、特殊ＳＦＤ、可変長ＳＦＤの更新処理を実行させない。そして、通信装置１０Ｂは、通信装置１０Ａに対して、可変長ＳＦＤをＳＦＤＢ［２］として、ＡＣＫ信号を送信する。
【０１７４】
通信装置１０Ａでは、通信装置１０ＢからのＡＣＫ信号を受信し、当該ＡＣＫ信号に含まれる可変長ＳＦＤがＳＦＤＢ［２］であり、通信装置１０Ａにおいて保持されているＳＦＤ＿ｎｅｘｔ（＝ＳＦＤＢ［２］）と一致するので、通信装置１０Ａでは、ＳＦＤ＿ｎｅｘｔ（＝ＳＦＤＢ［２］）によりＡＣＫ信号の受信処理を行うことで、正常にＡＣＫ信号を受信することができる。
【０１７５】
通信装置１０Ａは、上記の通り、正常にＡＣＫ信号を受信することができたので、ＳＦＤ更新処理を行う（ステップＳＡ１３）。
【０１７６】
この段階で、通信装置１０Ａの可変長ＳＦＤの設定状況は、
（状態Ａ１３）：
（送信用）可変長ＳＦＤ＝ＳＦＤＡ［２］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＢ［１］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＢ［２］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＢ［３］
であり、通信装置１０Ｂの可変長ＳＦＤの設定状況は、
（状態Ｂ１３）：
（送信用）可変長ＳＦＤ＝ＳＦＤＢ［２］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＡ［１］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＡ［２］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＡ［３］
である。
【０１７７】
つまり、この段階で、通信装置１０Ａの可変長ＳＦＤの設定状況と通信装置１０Ｂの可変長ＳＦＤの設定状況との間にずれはない。つまり、通信装置１０Ａで保持（設定）されている送信用の可変長ＳＦＤおよび受信用の可変長ＳＦＤ＿ｃｕｒｒｅｎｔと、通信装置１０Ｂで保持（設定）されている送信用の可変長ＳＦＤおよび受信用の可変長ＳＦＤ＿ｃｕｒｒｅｎｔとは、全て、特殊ＳＦＤであるＳＦＤ［２］を用いて生成されたものである。
【０１７８】
（１．２．３：通信エラーありの場合の通信シーケンス（パターン２））
次に、通信エラーがある場合の通信シーケンス（パターン２）について、説明する。なお、ＳＦＤの更新処理については、上記の通常の通信シーケンスで説明したものと同様であるため、説明を省略する。
【０１７９】
図９は、通信装置１０Ａと通信１０Ｂとの間における通信エラーありの場合（パターン２の場合）の通信のシーケンス図である。
【０１８０】
図９に示すように、
（１）１回目の通信において、通信装置１０Ａから通信装置１０Ｂに対して、データ送信が行われ、通信装置１０Ｂから通信装置１０ＡへＡＣＫ信号を送信（返信）するときにエラーが発生し、
（２）２回目の通信において、通信装置１０Ｂから通信装置１０Ａに対して、エラーの発生なく、データ送信が実行される、
場合について、以下、説明する。
【０１８１】
なお、図９の通信が実行される前において、通信装置１０Ａで設定されている可変長ＳＦＤは、
（状態Ａ２０）：
（送信用）可変長ＳＦＤ＝ＳＦＤＡ［１］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＢ［０］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＢ［１］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＢ［２］
であり、通信装置１０Ｂで設定されている可変長ＳＦＤは、
（状態Ｂ２０）：
（送信用）可変長ＳＦＤ＝ＳＦＤＢ［１］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＡ［０］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＡ［１］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＡ［２］
であるとして、以下、説明する。
【０１８２】
≪Ｐ２−１：１回目の通信（通信装置１０Ａから通信装置１０Ｂへのデータ送信）≫
次に、１回目の通信では、通信装置１０Ａは、通信装置１０Ｂに対して、データ送信（ＳＦＤとして、可変長ＳＦＤ（ＳＦＤＡ［１］）を用いたデータ送信）を行う。１回目の通信では、図９に示すように、通信装置１０Ｂから通信装置１０ＡへのＡＣＫ信号の送信（返信）時にエラーが発生している。したがって、通信装置１０Ａは、正常にデータを受信しているので、ＳＦＤ更新処理（ステップＳＢ２１）を実行する。一方、通信装置１０Ｂは、正常にＡＣＫ信号を受信していないので、ＳＦＤ更新処理（ステップＳＡ２１）を実行しない（実行できない）。
【０１８３】
この段階で、通信装置１０Ａの可変長ＳＦＤの設定状況は、
（状態Ａ２１）：
（送信用）可変長ＳＦＤ＝ＳＦＤＡ［１］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＢ［０］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＢ［１］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＢ［２］
であり、通信装置１０Ｂの可変長ＳＦＤの設定状況は、
（状態Ｂ２１）：
（送信用）可変長ＳＦＤ＝ＳＦＤＢ［２］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＡ［１］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＡ［２］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＡ［３］
である。
【０１８４】
≪Ｐ２−２：２回目の通信（通信装置１０Ｂから通信装置１０Ａへのデータ送信）≫
次に、２回目の通信では、通信装置１０Ｂは、通信装置１０Ａに対して、データ送信（ＳＦＤとして、可変長ＳＦＤ（ＳＦＤＢ［２］）を用いたデータ送信）を行う。２回目の通信では、図９に示すように、通信エラーの発生はない。
【０１８５】
通信装置１０Ａは、通信装置１０Ｂから可変長ＳＦＤ（ＳＦＤＢ［２］）により送信されたデータを、可変長ＳＦＤ＿ｎｅｘｔにより受信することができる。つまり、通信装置１０Ａでは、可変長ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＢ［２］に設定されているので、通信装置１０Ａの受信部２２の第３ＳＦＤ判定部２２８により、受信データのＳＦＤが可変長ＳＦＤ＿ｎｅｘｔ（＝ＳＦＤＢ［２］）であることを検出することできる。そして、通信装置１０Ａの受信部ＳＦＤ検出更新部２２４は、受信データに含まれる可変長ＳＦＤが可変長ＳＦＤ＿ｎｅｘｔ（＝ＳＦＤＢ［２］）であることを検出信号ＤＥＴにより受信制御部２２９に通知する。
【０１８６】
通信装置１０Ａの受信制御部２２９は、受信データに含まれる可変長ＳＦＤが可変長ＳＦＤ＿ｎｅｘｔ（＝ＳＦＤＢ［２］）であるので、通信装置１０Ａの受信制御部２２９は、受信部２２の特殊ＳＦＤ生成部２２２において更新処理を２回実行させるように、特殊ＳＦＤ生成部２２２を制御する。つまり、通信装置１０Ａで受信したデータに含まれる可変長ＳＦＤが可変長ＳＦＤ＿ｎｅｘｔ（＝ＳＦＤＢ［２］）であるので、送信側の通信装置１０Ｂで実行されたＳＦＤ更新処理の回数が、受信側の通信装置１０Ａで実行されたＳＦＤ更新処理の回数よりも１回多いことを、通信装置１０Ａにおいて認識することができる。したがって、ＳＦＤ更新処理の実行回数を送信側と受信側とで一致させるために、上記のように、受信側の通信装置１０Ａでは、ＳＦＤ更新処理を２回実行する（ステップＳＡ２２）。
【０１８７】
また、通信装置１０Ａは、通信装置１０Ｂに対して、可変長ＳＦＤをＳＦＤＡ［１］として、ＡＣＫ信号を送信する。さらに、通信装置１０Ａでは、受信制御部２２９から送信制御部２１５に、ＳＦＤ更新処理を２回実行させるように指示し、通信装置１０Ａの送信部２１においても、特殊ＳＦＤ、可変長ＳＦＤの更新処理を２回実行させる。
【０１８８】
通信装置１０Ｂでは、通信装置１０ＡからのＡＣＫ信号を受信し、当該ＡＣＫ信号に含まれる可変長ＳＦＤがＳＦＤＡ［１］であり、通信装置１０Ｂにおいて保持されているＳＦＤ＿ｂｅｆｏｒｅ（＝ＳＦＤＡ［１］）と一致するので、通信装置１０Ｂでは、ＳＦＤ＿ｂｅｆｏｒｅ（＝ＳＦＤＡ［１］）によりＡＣＫ信号の受信処理を行うことで、正常にＡＣＫ信号を受信することができる。
【０１８９】
通信装置１０Ｂは、上記の通り、正常にＡＣＫ信号を受信することができたので、ＳＦＤ更新処理を行う（ステップＳＢ２２）。
【０１９０】
この段階で、通信装置１０Ａの可変長ＳＦＤの設定状況は、
（状態Ａ２２）：
（送信用）可変長ＳＦＤ＝ＳＦＤＡ［３］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＢ［２］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＢ［３］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＢ［４］
であり、通信装置１０Ｂの可変長ＳＦＤの設定状況は、
（状態Ｂ２２）：
（送信用）可変長ＳＦＤ＝ＳＦＤＢ［３］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＡ［２］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＡ［３］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＡ［４］
である。
【０１９１】
つまり、この段階で、通信装置１０Ａの可変長ＳＦＤの設定状況と通信装置１０Ｂの可変長ＳＦＤの設定状況との間にずれはない。つまり、通信装置１０Ａで保持（設定）されている送信用の可変長ＳＦＤおよび受信用の可変長ＳＦＤ＿ｃｕｒｒｅｎｔと、通信装置１０Ｂで保持（設定）されている送信用の可変長ＳＦＤおよび受信用の可変長ＳＦＤ＿ｃｕｒｒｅｎｔとは、全て、特殊ＳＦＤであるＳＦＤ［３］を用いて生成されたものである。
【０１９２】
（１．２．４：通信エラーありの場合の通信シーケンス（パターン３））
次に、通信エラーがある場合の通信シーケンス（パターン３）について、説明する。なお、ＳＦＤの更新処理については、上記の通常の通信シーケンスで説明したものと同様であるため、説明を省略する。
【０１９３】
図１０は、通信装置１０Ａと通信１０Ｂとの間における通信エラーありの場合（パターン３の場合）の通信のシーケンス図である。
【０１９４】
図１０に示すように、
（１）１回目の通信において、通信装置１０Ａから通信装置１０Ｂに対して、データ送信が行われ、通信装置１０Ｂから通信装置１０ＡへＡＣＫ信号を送信（返信）するときにエラーが発生し、
（２）２回目の通信において、通信装置１０Ｂから通信装置１０Ａに対して、データ送信が行われ、通信装置１０Ａから通信装置１０ＢへＡＣＫ信号を送信（返信）するときにエラーが発生し、
（３）３回目の通信において、通信装置１０Ａから通信装置１０Ｂに対して、エラーの発生なく、データ送信が実行される、
場合について、以下、説明する。
【０１９５】
なお、図１０の通信が実行される前において、通信装置１０Ａで設定されている可変長ＳＦＤは、
（状態Ａ３０）：
（送信用）可変長ＳＦＤ＝ＳＦＤＡ［１］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＢ［０］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＢ［１］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＢ［２］
であり、通信装置１０Ｂで設定されている可変長ＳＦＤは、
（状態Ｂ３０）：
（送信用）可変長ＳＦＤ＝ＳＦＤＢ［１］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＡ［０］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＡ［１］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＡ［２］
であるとして、以下、説明する。
【０１９６】
≪Ｐ３−１：１回目の通信（通信装置１０Ａから通信装置１０Ｂへのデータ送信）≫
次に、１回目の通信では、通信装置１０Ａは、通信装置１０Ｂに対して、データ送信（ＳＦＤとして、可変長ＳＦＤ（ＳＦＤＡ［１］）を用いたデータ送信）を行う。１回目の通信では、図１０に示すように、通信装置１０Ｂから通信装置１０ＡへのＡＣＫ信号の送信（返信）時にエラーが発生している。したがって、通信装置１０Ａは、正常にデータを受信しているので、ＳＦＤ更新処理（ステップＳＢ３１）を実行する。一方、通信装置１０Ｂは、正常にＡＣＫ信号を受信していないので、ＳＦＤ更新処理（ステップＳＡ３１）を実行しない（実行できない）。
【０１９７】
この段階で、通信装置１０Ａの可変長ＳＦＤの設定状況は、
（状態Ａ３１）：
（送信用）可変長ＳＦＤ＝ＳＦＤＡ［１］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＢ［０］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＢ［１］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＢ［２］
であり、通信装置１０Ｂの可変長ＳＦＤの設定状況は、
（状態Ｂ３１）：
（送信用）可変長ＳＦＤ＝ＳＦＤＢ［２］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＡ［１］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＡ［２］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＡ［３］
である。
【０１９８】
≪Ｐ３−２：２回目の通信（通信装置１０Ｂから通信装置１０Ａへのデータ送信）≫
次に、２回目の通信では、通信装置１０Ｂは、通信装置１０Ａに対して、データ送信（ＳＦＤとして、可変長ＳＦＤ（ＳＦＤＢ［２］）を用いたデータ送信）を行う。
【０１９９】
通信装置１０Ａは、通信装置１０Ｂから可変長ＳＦＤ（ＳＦＤＢ［２］）により送信されたデータを、可変長ＳＦＤ＿ｎｅｘｔにより受信することができる。つまり、通信装置１０Ａでは、可変長ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＢ［２］に設定されているので、通信装置１０Ａの受信部２２の第３ＳＦＤ判定部２２８により、受信データのＳＦＤが可変長ＳＦＤ＿ｎｅｘｔ（＝ＳＦＤＢ［２］）であることを検出することできる。そして、通信装置１０Ａの受信部ＳＦＤ検出更新部２２４は、受信データに含まれる可変長ＳＦＤが可変長ＳＦＤ＿ｎｅｘｔ（＝ＳＦＤＢ［２］）であることを検出信号ＤＥＴにより受信制御部２２９に通知する。
【０２００】
通信装置１０Ａの受信制御部２２９は、受信データに含まれる可変長ＳＦＤが可変長ＳＦＤ＿ｎｅｘｔ（＝ＳＦＤＢ［２］）であるので、通信装置１０Ａの受信制御部２２９は、受信部２２の特殊ＳＦＤ生成部２２２において更新処理を２回実行させるように、特殊ＳＦＤ生成部２２２を制御する。つまり、通信装置１０Ａで受信したデータに含まれる可変長ＳＦＤが可変長ＳＦＤ＿ｎｅｘｔ（＝ＳＦＤＢ［２］）であるので、送信側の通信装置１０Ｂで実行されたＳＦＤ更新処理の回数が、受信側の通信装置１０Ａで実行されたＳＦＤ更新処理の回数よりも１回多いことを、通信装置１０Ａにおいて認識することができる。したがって、ＳＦＤ更新処理の実行回数を送信側と受信側とで一致させるために、上記のように、受信側の通信装置１０Ａでは、ＳＦＤ更新処理を２回実行する（ステップＳＡ３２）。
【０２０１】
また、通信装置１０Ａは、通信装置１０Ｂに対して、可変長ＳＦＤをＳＦＤＡ［１］として、ＡＣＫ信号を送信する。さらに、通信装置１０Ａでは、受信制御部２２９から送信制御部２１５に、ＳＦＤ更新処理を２回実行させるように指示し、通信装置１０Ａの送信部２１においても、特殊ＳＦＤ、可変長ＳＦＤの更新処理を２回実行させる。
【０２０２】
通信装置１０Ａから通信装置１０ＢへのＡＣＫ信号の送信時にエラーが発生しているので、通信装置１０Ｂでは、通信装置１０ＡからのＡＣＫ信号を正常に受信することができない。したがって、通信装置１０Ａでは、ＳＦＤ更新処理（ステップＳＢ３２）が実行されない。
【０２０３】
この段階で、通信装置１０Ａの可変長ＳＦＤの設定状況は、
（状態Ａ３２）：
（送信用）可変長ＳＦＤ＝ＳＦＤＡ［３］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＢ［２］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＢ［３］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＢ［４］
であり、通信装置１０Ｂの可変長ＳＦＤの設定状況は、
（状態Ｂ３２）：
（送信用）可変長ＳＦＤ＝ＳＦＤＢ［２］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＡ［１］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＡ［２］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＡ［３］
である。
【０２０４】
≪Ｐ３−３：３回目の通信（通信装置１０Ｂから通信装置１０Ａへのデータ送信）≫
次に、３回目の通信では、通信装置１０Ｂは、通信装置１０Ａに対して、データ送信（ＳＦＤとして、可変長ＳＦＤ（ＳＦＤＢ［２］）を用いたデータ送信）を行う。
【０２０５】
通信装置１０Ａは、通信装置１０Ｂから可変長ＳＦＤ（ＳＦＤＢ［２］）により送信されたデータを、可変長ＳＦＤ＿ｂｅｆｏｒｅにより受信することができる。つまり、通信装置１０Ａでは、可変長ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＢ［２］に設定されているので、通信装置１０Ａの受信部２２の第１ＳＦＤ判定部２２６により、受信データのＳＦＤが可変長ＳＦＤ＿ｂｅｆｏｒｅ（＝ＳＦＤＢ［２］）であることを検出することできる。そして、通信装置１０Ａの受信部ＳＦＤ検出更新部２２４は、受信データに含まれる可変長ＳＦＤが可変長ＳＦＤ＿ｂｅｆｏｒｅ（＝ＳＦＤＢ［２］）であることを検出信号ＤＥＴにより受信制御部２２９に通知する。
【０２０６】
通信装置１０Ａの受信制御部２２９は、受信データに含まれる可変長ＳＦＤがＳＦＤ＿ｂｅｆｏｒｅ（＝ＳＦＤＢ［２］）であるので、通信装置１０Ａの受信制御部２２９は、受信部２２の特殊ＳＦＤ生成部２２２において更新処理を実行しないように、特殊ＳＦＤ生成部２２２を制御する。つまり、通信装置１０Ａで受信したデータに含まれる可変長ＳＦＤがＳＦＤ＿ｂｅｆｏｒｅ（＝ＳＦＤＢ［２］）であるので、送信側の通信装置１０Ｂで実行されたＳＦＤ更新処理の回数が、受信側の通信装置１０Ａで実行されたＳＦＤ更新処理の回数よりも１回少ないことを、通信装置１０Ａにおいて認識することができる。したがって、ＳＦＤ更新処理の実行回数を送信側と受信側とで一致させるために、上記のように、受信側の通信装置１０Ａでは、ＳＦＤ更新処理を実行しない（ステップＳＡ３３）。
【０２０７】
また、通信装置１０Ａは、通信装置１０Ｂに対して、可変長ＳＦＤをＳＦＤＡ［３］として、ＡＣＫ信号を送信する。さらに、通信装置１０Ａでは、受信制御部２２９から送信制御部２１５に、ＳＦＤ更新処理を実行させないように指示し、通信装置１０Ａの送信部２１においても、特殊ＳＦＤ、可変長ＳＦＤの更新処理を実行させない。
【０２０８】
通信装置１０Ｂでは、通信装置１０ＡからのＡＣＫ信号を受信し、当該ＡＣＫ信号に含まれる可変長ＳＦＤがＳＦＤＡ［３］であり、通信装置１０Ｂにおいて保持されているＳＦＤ＿ｎｅｘｔ（＝ＳＦＤＡ［３］）と一致するので、通信装置１０Ｂでは、ＳＦＤ＿ｎｅｘｔ（＝ＳＦＤＡ［３］）によりＡＣＫ信号の受信処理を行うことで、正常にＡＣＫ信号を受信することができる。
【０２０９】
通信装置１０Ｂは、上記の通り、正常にＡＣＫ信号を受信することができたので、ＳＦＤ更新処理を行う（ステップＳＢ３３）。
【０２１０】
この段階で、通信装置１０Ａの可変長ＳＦＤの設定状況は、
（状態Ａ３３）：
（送信用）可変長ＳＦＤ＝ＳＦＤＡ［３］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＢ［２］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＢ［３］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＢ［４］
であり、通信装置１０Ｂの可変長ＳＦＤの設定状況は、
（状態Ｂ３３）：
（送信用）可変長ＳＦＤ＝ＳＦＤＢ［３］
（受信用）ＳＦＤ＿ｂｅｆｏｒｅ＝ＳＦＤＡ［２］
（受信用）ＳＦＤ＿ｃｕｒｒｅｎｔ＝ＳＦＤＡ［３］
（受信用）ＳＦＤ＿ｎｅｘｔ＝ＳＦＤＡ［４］
である。
【０２１１】
つまり、この段階で、通信装置１０Ａの可変長ＳＦＤの設定状況と通信装置１０Ｂの可変長ＳＦＤの設定状況との間にずれはない。つまり、通信装置１０Ａで保持（設定）されている送信用の可変長ＳＦＤおよび受信用の可変長ＳＦＤ＿ｃｕｒｒｅｎｔと、通信装置１０Ｂで保持（設定）されている送信用の可変長ＳＦＤおよび受信用の可変長ＳＦＤ＿ｃｕｒｒｅｎｔとは、全て、特殊ＳＦＤであるＳＦＤ［３］を用いて生成されたものである。
【０２１２】
以上のように処理することで、通信システム１０００では、高度なハードウェアリソースや複雑なソフトウェア処理を必要としない秘匿性の高い通信（セキュア通信）を行うことができ、かつ、通信エラーが発生した場合であっても、迅速かつ適切にエラー検出を行い、セキュアなデータ通信を途絶させず、維持させることができる。
【０２１３】
つまり、通信システム１０００では、通信装置１０Ａおよび通信１０Ｂにおいて、例えば、図７に示したような巡回型のシフトレジスタとＸＯＲ演算子を用いて、特殊ＳＦＤを生成し、さらに、自装置（または通信相手装置）に固有なパターンとを用いて、例えば、ＸＯＲ演算することにより生成した可変長ＳＦＤを用いて、通信データ（フレームデータ）を生成し、当該通信データを用いて通信を行う。したがって、通信システム１０００を構成する通信装置において、高度なハードウェアリソースや複雑なソフトウェア処理を必要とせず、秘匿性の高い通信を行うことができる。
【０２１４】
また、通信システム１０００では、通信装置１０Ａおよび通信装置１０Ｂが、それぞれ、３つの可変長ＳＦＤ（ＳＦＤ＿ｂｅｆｏｒｅ、ＳＦＤ＿ｃｕｒｒｅｎｔ、および、ＳＦＤ＿ｎｅｘｔ）、つまり、最新の可変長ＳＦＤ（ＳＦＤ＿ｎｅｘｔ）、１回前に生成された可変長ＳＦＤ（ＳＦＤ＿ｃｕｒｒｅｎｔ）、および、２回前に生成された可変長ＳＦＤ（ＳＦＤ＿ｂｅｆｏｒｅ）の３つの可変長ＳＦＤを保持し、受信データに含まれるＳＦＤを特定し、特定したＳＦＤにより受信処理を行うことができる。通信システム１０００では、通常の通信（エラーのない通信）においては、ＳＦＤ＿ｃｕｒｒｅｎｔに一致する可変長ＳＦＤを用いて通信するので、受信データのＳＦＤが、通信装置において保持されている、ＳＦＤ＿ｃｕｒｒｅｎｔに一致しない場合、通信エラーが発生したことを検出することができる。
【０２１５】
さらに、通信システム１０００では、通信装置において、以下のように処理を行うことで、セキュアなデータ通信を途絶させず、維持させることができる。
（１）受信したデータのＳＦＤが、ＳＦＤ＿ｂｅｆｏｒｅに一致する場合、送信側の通信装置で実行されたＳＦＤ更新処理の回数が、受信側の通信装置で実行されたＳＦＤ更新処理の回数よりも１回少ないことを、受信側の通信装置において認識することができる。したがって、ＳＦＤ更新処理の実行回数を送信側と受信側とで一致させるために、受信側の通信装置において、ＳＦＤ更新処理を実行しないようにする。
（２）受信したデータのＳＦＤが、ＳＦＤ＿ｎｅｘｔに一致する場合、送信側の通信装置で実行されたＳＦＤ更新処理の回数が、受信側の通信装置で実行されたＳＦＤ更新処理の回数よりも１回多いことを、受信側の通信装置において認識することができる。したがって、ＳＦＤ更新処理の実行回数を送信側と受信側とで一致させるために、受信側の通信装置において、ＳＦＤ更新処理を２回実行する。
【０２１６】
このように処理することで、送信側の通信装置で設定されている可変長ＳＦＤの状況と、受信側で設定されている可変長ＳＦＤの状況とを、迅速に一致させることができ、通常の通信（通信エラーがない状態の通信）において使用されるＳＦＤ＿ｃｕｒｒｅｎｔに一致する可変長ＳＦＤを用いて通信する状態に復帰させることができる。その結果、通信システム１０００において、通信エラーが発生した場合であっても、セキュアなデータ通信を途絶させず、維持させることができる。
【０２１７】
また、通信システム１０００の通信装置では、いわゆる物理層での処理により、通信エラー検出、および、ＳＦＤ更新処理を実行することができるため、上位層、例えば、アプリケーション層等による処理が不要であり、迅速な処理（通信エラー検出、ＳＦＤ更新処理等）が可能である。
【０２１８】
≪第１変形例≫
次に、本実施形態の第１変形例について、説明する。
【０２１９】
なお、本変形例の通信システムは、第１実施形態の通信システム１０００と同様の構成を有している。また、本変形例の通信システムに用いられる通信装置も、第１実施形態の通信装置１０Ａおよび１０Ｂと同様の構成を有している。
【０２２０】
本変形例の通信システムにおいて、第１実施形態の通信システム１０００と相違する点は、通信装置において、ＳＦＤ更新処理を行うタイミングが異なる。それ以外については、第１実施形態と同様であるため、詳細な説明は省略する。なお、上記実施形態と同様の部分については、同一符号を付している。
【０２２１】
図１１は、本変形例の通信システムにおける通信装置１０Ａと通信１０Ｂとの間における通信のシーケンス図である。
【０２２２】
本変形例において、演算シードの暗号化処理（ステップＳＡ１）から通信装置１０Ａ、１０ＢのＳＦＤ設定処理（初期化処理）（ステップＳＡ２、ＳＢ２）までの処理は、第１実施形態と同様である。
【０２２３】
図１１に示すように、本変形例では、通信装置１０Ａは、ＳＦＤ設定処理（初期化処理）後、連続して、通信装置１０Ｂに対して、データを送信する。
【０２２４】
そして、通信装置１０Ｂが、通信装置１０Ａに対して、ＡＣＫ信号を送信すると、通信装置１０Ｂは、ＳＦＤ更新処理（ステップＳＢ３、ＳＢ４）を行う。
【０２２５】
また、通信装置１０Ａは、通信装置１０ＢからＡＣＫ信号を受信すると、ＳＦＤ更新処理を行う（ステップＳＡ３、ＳＡ４）。
【０２２６】
つまり、本変形例の通信システムでは、送信側の通信装置は、受信側の通信装置に対して、連続的にデータを送信し、受信側の通信装置からＡＣＫ信号を（正常に）受信すると、ＳＦＤ更新処理を行う。受信側の通信装置は、送信側の通信装置に対して、ＡＣＫ信号を送信すると、ＳＦＤ更新処理を行う。
【０２２７】
この点が、本変形例の通信システムと第１実施形態の通信システム１０００との相違点である。なお、送信部２１においてＡＣＫ信号を行ったことを示す情報は、送信制御部２１５から受信制御部２２９に送信される。
【０２２８】
なお、本変形例の通信システムにおいても、（１）通信エラーが発生し、受信したデータのＳＦＤが、ＳＦＤ＿ｂｅｆｏｒｅに一致する場合のＳＦＤ更新処理、および、（２）通信エラーが発生し、受信したデータのＳＦＤが、ＳＦＤ＿ｎｅｘｔに一致する場合のＳＦＤ更新処理は、第１実施形態と同様である。
【０２２９】
これにより、本変形例の通信システムでは、連続的にデータを送信する場合においても、高度なハードウェアリソースや複雑なソフトウェア処理を必要としない秘匿性の高い通信（セキュア通信）を行うことができ、かつ、通信エラーが発生した場合であっても、迅速かつ適切にエラー検出を行い、セキュアなデータ通信を途絶させず、維持させることができる。
【０２３０】
≪第２変形例≫
次に、本実施形態の第２変形例について、説明する。
【０２３１】
本変形例の通信システムは、第１実施形態の通信システム１０００（または第１変形例の通信システム）の通信装置１０において、受信部２２を、図１２に示す受信部２２Ａに置換した構成を有する。
【０２３２】
図１２に示すように、受信部２２Ａは、受信部２２における標準ＳＦＤ判定部２２５、第１ＳＦＤ判定部２２６、第２ＳＦＤ判定部２２７、および、第３ＳＦＤ判定部２２８を１つのＳＦＤ判定部２３０に統合した構成を有している。それ以外について、受信部２２Ａは、受信部２２は、同様である。
【０２３３】
受信部２２ＡのＳＦＤ判定部２３０は、ハードウェアで実現する場合、例えば、第１実施形態の標準ＳＦＤ判定部２２５、第１ＳＦＤ判定部２２６、第２ＳＦＤ判定部２２７、および、第３ＳＦＤ判定部２２８を駆動するクロック周波数を４逓倍したクロック周波数により駆動される。つまり、ＳＦＤ判定部２３０では、第１実施形態の標準ＳＦＤ判定部２２５、第１ＳＦＤ判定部２２６、第２ＳＦＤ判定部２２７、および、第３ＳＦＤ判定部２２８の４倍の速度で処理を実行することができるため、受信データのＳＦＤを、ＳＦＤ判定部２３０のみで、４種類のＳＦＤ（標準ＳＦＤ、ＳＦＤ＿ｂｅｆｏｒｅ、ＳＦＤ＿ｃｕｒｒｅｎｔ、および、ＳＦＤ＿ｎｅｘｔ）でいずれであるかを検出することが可能となる。
【０２３４】
なお、他の処理については、第１実施形態と同様である。
【０２３５】
したがって、本変形例の通信システムにおいても、高度なハードウェアリソースや複雑なソフトウェア処理を必要としない秘匿性の高い通信（セキュア通信）を行うことができ、かつ、通信エラーが発生した場合であっても、迅速かつ適切にエラー検出を行い、セキュアなデータ通信を途絶させず、維持させることができる。
【０２３６】
［他の実施形態］
上記実施形態では、ネットワークＮ１として、有線ネットワーク（例えば、ＰＬＣネットワーク）を例に、説明したが、これに限定されることはなく、本発明は、例えば、無線ネットワークにも適用することができる。また、通信システムを構成する通信装置において、１対１接続による通信（ピアツーピア（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）による通信）できるものであれば、本発明を適用することができる。また、ネットワークのトポロジーについても、上記実施形態に限定されるものではなく、様々なトポロジーのネットワークにより、本発明を適用することができる。
【０２３７】
また、上記実施形態では、図７において、９ビットのシフトレジスタを用いて、特殊ＳＦＤを生成する例について説明したが、シフトレジスタのビット数は、他のビット数でもよく、上記実施形態に限定されないことは言うまでもない。また、特殊ＳＦＤと自固有パターン（あるいは相手固有パターン）とのＸＯＲ演算を行うときに、ビット拡張を行った後、ＸＯＲ演算により、可変長ＳＦＤを生成するようにしてもよい。例えば、自固有パターン（あるいは相手固有パターン）が、１６ビットデータである場合、当該ビットデータをコピーして（例えば、１〜１６ビット目のデータを自固有パターンとし、さらに、１７〜３２ビット目のデータも自固有パターンとして３２ビットデータとして）、３２ビットデータとして、ＸＯＲ演算処理を行うようにしてもよい。また、ＸＯＲ演算の結果に対して、所定のビット位置のデータを取得して、可変長ＳＦＤを生成するようにしてもよい（例えば、ＸＯＲ演算結果の最大ビット数がＭビット（Ｍ：自然数）となる場合、ｋ１ビット目（ｋ１：整数、０≦ｋ１＜Ｍ）からｋ２ビット目（ｋ２：整数、０≦ｋ２＜Ｍ）までのデータを用いて、可変長ＳＦＤを生成するようにしてもよい）。
【０２３８】
また、上記実施形態では、通信データのペイロード部分のデータについては、暗号化されていない場合を想定しているが、これに限定されることはなく、例えば、通信データのペイロード部分のデータについて、暗号化処理（例えば、ＡＥＳ暗号、ＤＥＳ暗号、ＲＳＡ暗号等による暗号化処理）を行うようにしてもよい。
【０２３９】
また、上記実施形態では、演算シードのデータを暗号化通信により、送信して、受信側の通信装置に特殊ＳＦＤを生成するための初期値として設定する場合について、説明したが、これに限定されず、例えば、予め通信装置内に、演算シードのデータ（特殊ＳＦＤの初期値）が設定されていてもよい。
【０２４０】
また、上記実施形態の動画像符号化装置の一部または全部は、集積回路（例えば、ＬＳＩ、システムＬＳＩ等）として実現されるものであってもよい。
【０２４１】
上記実施形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして、上記実施形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置（ＣＰＵ）により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ＲＯＭなどの記憶装置に格納されており、ＲＯＭにおいて、あるいはＲＡＭに読み出されて実行される。
【０２４２】
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェア（ＯＳ（オペレーティングシステム）、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。）により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施形態に係る動画像符号化装置をハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
【０２４３】
また、上記実施形態における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【０２４４】
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリを挙げることができる。
【０２４５】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【０２４６】
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【符号の説明】
【０２４７】
１０００  通信システム
１０、１０Ａ、１０Ｂ  通信装置
１  制御部
２  送受信部
２１  送信部
２２  受信部
３  インターフェース部
【図１】
2014143476.tif 000003
【図２】
2014143476.tif 000004
【図３】
2014143476.tif 000005
【図４】
2014143476.tif 000006
【図５】
2014143476.tif 000007
【図６】
2014143476.tif 000008
【図７】
2014143476.tif 000009
【図８】
2014143476.tif 000010
【図９】
2014143476.tif 000011
【図１０】
2014143476.tif 000012
【図１１】
2014143476.tif 000013
【図１２】
2014143476.tif 000014