(57)【要約】  本開示は、LPWA（Low Power Wide Area）通信における秘匿性、および通信耐性を向上できるようにする送信装置および送信方法、並びに受信装置および受信方法に関する。送信装置において、GPS時刻情報に基づいてキーストリームを発生し、キーストリームに基づいて送信データを暗号化して暗号化データを生成し受信装置に送信する。受信装置においては、GPS時刻情報に基づいてキーストリームを発生し、キーストリームに基づいて暗号化データを送信データに復号する。本開示は、LPWA通信システムに適用することができる。
2020059535.tif 000002
【特許請求の範囲】
【請求項１】
タイミングに応じて異なる情報を初期値として、キーストリームを生成するキーストリーム生成部と、
前記キーストリームにより、送信データを暗号化データに変換する暗号化部と、
前記暗号化データを変調した波形信号を送信する送信部と
を含む送信装置。
【請求項２】
前記タイミングに応じて異なる情報は、時刻情報である
請求項１に記載の送信装置。
【請求項３】
前記時刻情報は、GPS（Global Positioning System）時刻情報、UTC（Universal time coordinated：世界協定時）時刻情報、GMT（グリニッジ標準時：Greenwich Mean Time）、JST（日本標準時：Japan Standard Time）時刻情報、および、所定の等時間間隔、または、非等時間間隔によりカウントされるカウンタの値を含む
請求項２に記載の送信装置。
【請求項４】
前記キーストリーム生成部は、前記時刻情報を所定の時間単位で切り捨てた情報に基づいて、前記キーストリームを生成する
請求項２に記載の送信装置。
【請求項５】
前記キーストリーム生成部は、前記時刻情報に加えて、前記送信装置に固有のIDを前記初期値とし、さらに、秘密鍵を用いて、前記キーストリームを生成する
請求項２に記載の送信装置。
【請求項６】
前記タイミングに応じて異なる情報は、直前に生成した前記キーストリーム、または、直前に生成した前記暗号化データである
請求項１に記載の送信装置。
【請求項７】
PayloadよりMSDU（MAC（Media Access Control） Service Data Unit）を生成するMSDU生成部と、
前記MSDUよりCMAC（Cihper-based MAC：暗号ベースメッセージ認証コード）処理によりCMACタグを生成するCMAC処理部とをさらに含み、
前記送信データは、前記MSDUおよび前記CMACタグと、前記MSDUおよび前記CMACタグより生成される誤り訂正符号ECC（Error Correcting Code or Error Check and Correct）とを含む
請求項１に記載の送信装置。
【請求項８】
前記送信部は、同一の前記送信データが暗号化された暗号化データを変調した波形信号を、異なるタイミングにおいて、繰り返し送信する
請求項１に記載の送信装置。
【請求項９】
タイミングに応じて異なる情報を初期値として、キーストリームを生成するキーストリーム生成処理と、
前記キーストリームにより、送信データを暗号化データに変換する暗号化処理と、
前記暗号化データを変調した波形信号を送信する送信処理と
を含む送信方法。
【請求項１０】
送信装置より送信される、タイミングに応じて異なる情報を初期値として生成されたキーストリームにより送信データが暗号化された暗号化データを変調した波形信号を受信する受信部と、
前記タイミングに応じて異なる情報を初期値としてキーストリームを生成するキーストリーム生成部と、
前記波形信号の波形の極性を、前記キーストリームにより反転させる極性反転部と、
前記極性が反転された波形信号に基づいて、前記送信データを復号する復号部と
を含む受信装置。
【請求項１１】
前記タイミングに応じて異なる情報は、時刻情報である
請求項１０に記載の受信装置。
【請求項１２】
前記時刻情報は、GPS（Global Positioning System）時刻情報、UTC（Universal time coordinated：世界協定時）時刻情報、GMT（グリニッジ標準時：Greenwich Mean Time）、JST（日本標準時：Japan Standard Time）時刻情報、および、所定の等時間間隔、または、非等時間間隔によりカウントされるカウンタの値を含む
請求項１１に記載の受信装置。
【請求項１３】
前記キーストリーム生成部は、前記時刻情報を所定の時間単位で切り捨てた情報に基づいて、前記キーストリームを生成する
請求項１１に記載の受信装置。
【請求項１４】
前記キーストリーム生成部は、前記時刻情報に加えて、前記送信装置に固有のIDを前記初期値とし、さらに、秘密鍵を用いて前記キーストリームを生成する
請求項１１に記載の受信装置。
【請求項１５】
前記タイミングに応じて異なる情報は、直前に生成した前記キーストリーム、または、直前に生成した前記暗号化データである
請求項１０に記載の受信装置。
【請求項１６】
前記送信データは、Payloadに基づいて生成されるMSDU（MAC（Media Access Control） Service Data Unit）と、前記MSDUよりCMAC（Cihper-based MAC：暗号ベースメッセージ認証コード）処理により生成されるCMACタグ、並びに前記MSDUおよびCMACタグより求められる誤り訂正符号ECC（Error Correcting Code or Error Check and Correct）を含み、
前記送信データより、前記誤り訂正符号ECCにより誤り訂正を行って、前記MSDUおよびCMACタグを復号するMSDU復号部と、
前記MSDUよりCMAC（Cihper-based MAC：暗号ベースメッセージ認証コード）処理によりCMACタグを生成し、前記MSDU復号部により復号されたCMACタグと比較し、前記送信データの改竄の有無を判定するCMAC処理部とをさらに含む
請求項１０に記載の受信装置。
【請求項１７】
前記受信部は、前記送信装置より、異なるタイミングにおいて、繰り返し送信される、同一の前記送信データが暗号化された暗号化データを変調した波形信号を受信する
請求項１０に記載の受信装置。
【請求項１８】
前記送信装置より繰り返し送信される、同一の前記送信データが暗号化された暗号化データを変調した波形信号の波形の極性が、前記極性反転部において、前記キーストリームにより反転された波形を積算して記憶する積算記憶部をさらに含み、
前記復号部は、前記積算記憶部に積算して記憶されている、前記極性が反転された波形信号に基づいて、前記送信データを復号する
請求項１７に記載の受信装置。
【請求項１９】
前記極性反転部は、前記波形信号の波形の極性と、前記キーストリームにより設定される係数との乗算により、前記波形信号の波形の極性を反転させる
請求項１０に記載の受信装置。
【請求項２０】
送信装置より送信される、タイミングに応じて異なる情報を初期値として生成されたキーストリームにより送信データが暗号化された暗号化データを変調した波形信号を受信する受信処理と、
前記タイミングに応じて異なる情報を初期値としてキーストリームを生成するキーストリーム生成処理と、
前記波形信号の波形を、前記キーストリームにより極性反転させる極性反転処理と、
前記極性反転された波形信号に基づいて、前記送信データを復号する復号処理と
を含む受信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、送信装置および送信方法、並びに受信装置および受信方法に関し、特に、LPWA（Low Power Wide Area）通信における秘匿性、および通信耐性を向上できるようにした送信装置および送信方法、並びに受信装置および受信方法に関する。
【背景技術】
【０００２】
LPWA（Low Power Wide Area）通信を用いた通信技術が提案されている（特許文献１参照）。【０００３】
LPWA通信は、低ビットレートによる少量のPayloadデータ（100ビット前後）を、IoT端末（送信装置）からIoTゲートウェイ（受信装置）に一方向に送受信する通信であるため、LPWA通信を行なうIoT端末（送信器）においては低消費電力での通信を実現することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第６２５９５５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述したLPWA通信においては、高度なセキュリティを実現するために、複雑な数学的問題を解く演算処理を用いた暗号化手法を用いると、低消費電力が求められるIoT端末において処理負荷が増大し、消費電力が大きくなってしまう。【０００６】
また、多層防衛の観点から、物理層での暗号化を導入することで、物理層より上層での暗号化処理と合わせることで、さらなる秘匿性を向上させることができる。【０００７】
特に、無線においては、物理層での波形合成手法（最大比合成や選択合成など）を用いて、復調能力を高める手法が用いられる。【０００８】
この場合、波形合成するためには同じ無線波形、または簡単に同じ波形に変換できる波形である必要がある。【０００９】
同じ無線波形を用いる場合、無線波形をキャプチャし、再送信することでIoTゲートウェイ（受信装置）を攻撃するリプレイ（反射）攻撃が可能になるため、リプレイ（反射）攻撃への対策が必要となる。【００１０】
さらに、線形符号のみで構成されたフォーマットでは、ビット反転などによる改竄対策が必要であり、CMAC（Cihper-based MAC：暗号ベースメッセージ認証コード）による対策などが一般に採用されている。【００１１】
しかしながら、無線の復調／復号性能を向上させる波形合成技術を使用する場合には、CMAC値を送信ごとに変化させてリプレイ攻撃に対処する手法は採用することができない。【００１２】
本開示は、このような状況に鑑みてなされたものであり、特に、LPWA通信における秘匿性、および通信耐性を向上させるものである。
【課題を解決するための手段】
【００１３】
本開示の第１の側面の送信装置は、タイミングに応じて異なる情報を初期値として、キーストリームを生成するキーストリーム生成部と、前記キーストリームにより、送信データを暗号化データに変換する暗号化部と、前記暗号化データを変調した波形信号を送信する送信部とを含む送信装置である。【００１４】
本開示の第１の側面の送信方法は、送信装置の構成に対応する。【００１５】
本開示の第１の側面においては、タイミングに応じて異なる情報を初期値として、キーストリームが生成され、前記キーストリームにより、送信データが暗号化データに変換され、前記暗号化データを変調した波形信号が送信される。【００１６】
本開示の第２の側面の受信装置は、送信装置より送信される、タイミングに応じて異なる情報を初期値として生成されたキーストリームにより送信データが暗号化された暗号化データを変調した波形信号を受信する受信部と、前記タイミングに応じて異なる情報を初期値としてキーストリームを生成するキーストリーム生成部と、前記波形信号の波形の極性を、前記キーストリームにより反転させる極性反転部と、前記極性が反転された波形信号に基づいて、前記送信データを復号する復号部とを含む受信装置である。【００１７】
本開示の第２の側面の受信方法は、受信装置の構成に対応する。【００１８】
本開示の第２の側面においては、送信装置より送信される、タイミングに応じて異なる情報を初期値として生成されたキーストリームにより送信データが暗号化された暗号化データを変調した波形信号が受信され、前記タイミングに応じて異なる情報を初期値としてキーストリームが生成され、前記波形信号の波形の極性が、前記キーストリームにより反転され、前記極性が反転された波形信号に基づいて、前記送信データが復号される。
【図面の簡単な説明】
【００１９】
【図１】LPWA通信を用いた片方向通信システムの概要を説明する図である。
【図２】図１の符号化部および復号部におけるキーストリーム発生器の構成を説明する図である。
【図３】ブロック符号化におけるノイズにより生じるビット反転の影響を説明する図である。
【図４】ストリーム符号化におけるノイズにより生じるビット反転の影響を説明する図である。
【図５】リプレイ攻撃と改竄攻撃を説明する図である。
【図６】改竄攻撃を説明する図である。
【図７】本開示の通信システムの構成例を説明する図である。
【図８】図７の送信装置の構成例を説明する図である。
【図９】図７の受信装置の構成例を説明する図である。
【図１０】図７の通信システムによる動作を説明する図である。
【図１１】一般のストリーム暗号化における暗号化および復号の動作を説明するための図である。
【図１２】図７の受信装置における極性反転部の動作を説明する図である。
【図１３】図７の通信システムにおけるLPWA通信による波形合成方法を説明する図である。
【図１４】図７の送信装置による送信処理例を説明するフローチャートである。
【図１５】図７の受信装置による受信処理例を説明するフローチャートである。
【図１６】キーストリーム発生器の構成例を説明する図である。
【図１７】汎用のパーソナルコンピュータの構成例を説明する図である。
【発明を実施するための形態】
【００２０】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００２１】
以下、本技術を実施するための形態について説明する。説明は以下の順序で行う。
１．LPWA通信を用いた通信システムの概要
２．本開示の実施の形態
３．応用例
４．ソフトウェアにより実行させる例
【００２２】
＜＜１．LPWA通信を用いた片方向通信システムの概要＞＞
図１を参照して、LPWA（Low Power Wide Area）通信を用いた片方向通信システムの概要について説明する。
【００２３】
図１のLPWA通信を用いた通信システム１は、IoT（Internet of Things）端末１１−１乃至１１−ｎ、IoTゲートウェイ１２−１乃至１２−ｍ、およびクラウドサーバ１３より構成される。
【００２４】
尚、IoT端末１１−１乃至１１−ｎ、およびIoTゲートウェイ１２−１乃至１２−ｍは、それぞれを特に区別する必要がない場合、単にIoT端末１１、およびIoTゲートウェイ１２と称するものとし、その他の構成についても同様に称する。
【００２５】
IoT端末１１は、様々な環境に設けられる各種の図示せぬセンサと共に配置される、または、所定のユーザ等に所持されるものであり、それぞれの環境において、図示せぬセンサにより検出されたセンサデータを取得して、IoTゲートウェイ１２を介してクラウドサーバ１３に送信する。
【００２６】
IoTゲートウェイ１２は、クラウドサーバ１３により動作が制御され、IoT端末１１より送信されるセンサデータを中継して、クラウドサーバ１３に送信する。
【００２７】
クラウドサーバ１３は、IoTゲートウェイ１２の動作を制御するとともに、IoTゲートウェイ１２を介してIoT端末１１より送信されてくるセンサデータを受信し、受信したセンサデータに応じて各種のアプリケーションプログラムを実行させる。
【００２８】
IoT端末１１とIoTゲートウェイ１２とは、LPWA通信によりセンサデータが送信される。LPWA通信においては、IoT端末１１からIoTゲートウェイ１２に対して、センサデータが一方向に送信される。
【００２９】
このように、IoT端末１１は、センサデータを少量のPayloadデータとしてIoTゲートウェイ１２に対して一方向に送信するのみでよいため、低消費電力での通信を実現することができる。
【００３０】
より詳細には、IoT端末１１は、暗号化部３１、符号化部３２、およびLPWA通信部３３を備えている。
【００３１】
IoT端末１１においては、センサデータを送信するにあたって、暗号化部３１がMAC（Media Access Control）層を構成し、符号化部３２、およびLPWA通信部３３が、PHY（物理）層を構成している。
【００３２】
暗号化部３１は、センサデータに基づいて、送信データ列のPayloadを生成するとともに、さらに、Payloadに基づいて、CMAC（Cihper-based MAC：暗号ベースメッセージ認証コード）処理を施して、改竄の有無を検証するためのCMACタグを生成して、PayloadとCMACタグとを符号化部３２に出力する。
【００３３】
符号化部３２は、PayloadとCMACタグに対して誤り検出／訂正符号を付加した平文データビット列を作成した後、暗号化データビット列に変換して、LPWA通信部３３に送信する。
【００３４】
LPWA通信部３３は、センサデータの暗号化データビット列を変調して、送信フレーム波形を生成し、LPWA通信によりIoTゲートウェイ１２に送信する。
【００３５】
IoTゲートウェイ１２は、LPWA通信部５１、および復号部５２を備えている。IoTゲートウェイ１２においては、センサデータからなる送信フレーム波形を受信するにあたって、LPWA通信部５１がPHY（物理）層を構成し、復号部５２がMAC層を構成する。
【００３６】
LPWA通信部５１は、LPWA通信により送信されてくる送信フレーム波形を受信して、IoT端末１１より送信されてきたセンサデータの暗号化データビット列の波形信号として復調し、復号部５２に出力する。
【００３７】
復号部５２は、暗号化データビット列の波形信号を、センサデータからなるPayloadとCMACタグを含むストリーム復号データビット列に復号するとともに、PayloadからCMACタグを求め、送信されてきたCMACタグとの比較に基づいてPayloadの改竄の有無を判定し、判定結果と共にPayloadであるセンサデータをクラウドサーバ１３に送信する。
【００３８】
クラウドサーバ１３は、IoTゲートウェイ１２の動作を制御するとともに、IoTゲートウェイ１２を介して、IoT端末１１より送信されてきたセンサデータに基づいて、各種のアプリケーションプログラム７１−１乃至７１−ｐを実行する。
【００３９】
尚、図１においては、クラウドサーバ１３におけるアプリケーションプログラム７１−１が、IoTゲートウェイ１２を介してIoT端末１１より送信されてきたセンサデータに基づいて動作する様子が表現されているが、他のアプリケーションプログラム７１についても同様に機能する。
【００４０】
ここで、図１の通信システム１においては、IoT端末１１とIoTゲートウェイ１２との通信ＴＲＺ１１は、LPWA通信であり、IoT端末１１からIoTゲートウェイ１２へと送信フレーム波形が送信されるのみの一方向（片方向）通信である。このため、IoT端末１１とIoTゲートウェイ１２との通信ＴＲＺ１１は、相互通信ができないことにより、例えば、チャレンジアンドレスポンス認証などによる確認ができないので、盗聴や改竄については対策が必要とされる。
【００４１】
一方、IoTゲートウェイ１２とクラウドサーバ１３との通信ＴＲＺ１２については、双方向通信が可能な通信であるので、通信ＴＲＺ１１よりも強力なセキュリティを実現できると考えられる。
【００４２】
次に、図１の通信システム１の動作について説明する。
【００４３】
IoT端末１１の暗号化部３１は、図示せぬセンサより検出されるセンサデータを取得して、センサデータに対応するPayloadを生成するとともに、Payloadに基づいて、CAMC処理を施して、CMACタグを生成し、PayloadとCAMCタグとを符号化部３２に出力する。
【００４４】
符号化部３２は、PayloadとCAMCタグに対して誤り検出／訂正符号を付加した平文データビット列を暗号化データビット列に変換して、LPWA通信部３３に出力する。
【００４５】
LPWA通信部３３は、暗号化データビット列を変調することにより送信フレーム波形信号を生成して、LPWA通信によりIoTゲートウェイ１２に送信する。
【００４６】
IoTゲートウェイ１２のLPWA通信部５１は、LPWA通信により送信されてくる送信フレーム波形信号を受信して、受信した送信フレーム波形信号に基づいて、IoT端末１１より送信されてきたセンサデータの暗号化データビット列を復調し、復号部５２に出力する。
【００４７】
復号部５２は、暗号化データビット列より、センサデータからなるPayloadとCMACタグを復号するとともに、PayloadよりCMACタグを求めて、送信されてきたCMACタグとの比較に基づいてPayloadの改竄の有無を判定し、判定結果と共にPayloadであるセンサデータをクラウドサーバ１３に送信する。
【００４８】
クラウドサーバ１３は、IoTゲートウェイ１２の動作を制御するとともに、IoTゲートウェイ１２を介して、IoT端末１１より送信されてきたセンサデータに基づいて、各種のアプリケーションプログラム７１−１乃至７１−ｐを実行する。
【００４９】
以上の一連の動作により、図示せぬセンサにより検出されたセンサデータが、IoT端末１１により、IoTゲートウェイ１２を介して、クラウドサーバ１３に送信されて、クラウドサーバ１３により管理されるアプリケーションプログラム７１を動作させることが可能となる。この際、IoT端末１１は、LPWA通信によりセンサデータをIoTゲートウェイに片方向通信で送信することができるので、低消費電力での通信を実現することが可能となる。
【００５０】
＜センサデータのPayloadとCMACタグを含む平文データビット列を暗号化データビット列に変換する手法＞
次に、図２を参照して、図１の符号化部３２によるセンサデータのPayloadとCMACタグを含む平文データビット列を暗号化データビット列に変換する手法について説明する。
【００５１】
図２の符号化部３２は、キーストリーム（keystream）発生器９１、およびXOR処理部９２を備えている。
【００５２】
キーストリーム発生器９１は、初期値データ（NONCE：Number used Once）と秘密鍵データとから、疑似乱数ビット列（PRBS：Pseudo Random Binary Sequence）をキーストリームとして発生し、XOR処理部９２に出力する。
【００５３】
尚、初期値データ（NONCE）は、リセットごとに異なる１度だけしか使用されない数値である。
【００５４】
XOR処理部９２は、PayloadとCMACタグを含む平文データビット列に対して、キーストリームを用いたビット単位での排他的論理和（XOR）処理を施すことにより、平文データビット列を暗号化データビット列に変換して出力する。
【００５５】
尚、IoTゲートウェイ１２の復号部５２においても、キーストリーム（keystream）発生器９１と同様の構成が設けられており、復号部５２は、キーストリーム（keystream）発生器９１と同一の初期値データ（NONCE：Number used Once）と秘密鍵データとを用いることでキーストリームを発生して、発生されたキーストリームを用いることにより、暗号化データビット列に対して、排他的論理和（XOR）処理を施すことで、ストリーム復号データビット列に復号する。
【００５６】
＜キーストリームを用いる理由＞
ここで、PHY（物理）層において、暗号化データビット列を生成する際に、ストリーム暗号を用いる理由について説明する。
【００５７】
暗号化には、所定のビット数単位（ブロック単位）でなされるブロック暗号化と、任意のビット数単位でなされるストリーム暗号がある。
【００５８】
例えば、図３の上段で示されるように、符号化部３２が、キーストリーム発生器９１とXOR処理部９２に代えて、所定のビット単位（ブロック単位）で暗号化する、例えば、AES（Advanced Encryption Standard）暗号器からなる暗号器１０１を備え、対応して復号部５２が、ブロック単位で復号する復号器１０４が設けられている場合について考える。
【００５９】
尚、図３においては、暗号器１０１により平文データビット列が暗号化データビット列に変換され、暗号化データビット列がLPWA通信部３３の変調器１０２により、送信フレーム波形信号に変調されて無線通信路を介してIoTゲートウェイ１２のLPWA通信部５１に送信される。また、LPWA通信部５１においては、復調器１０３が、送信されてきた送信フレーム波形信号を暗号化データビット列に復調して復号部５２に出力する。
【００６０】
このような場合、図３の下段で示されるように、秘密鍵が「00112233445566778899aabbccddeeff」であり、データが「00000000000000000000000000000000」であり、暗号化データビット列が「fde4fbae4a09e020eff722969f83832b」である場合について考える。このような場合、復号データビット列は、データと同様に「00000000000000000000000000000000」となる。
【００６１】
ここで、通信経路上にノイズが発生し、このノイズにより、例えば、点線で囲まれる暗号化データビット列の先頭ビットがビット反転することにより「f」（＝２進数「1111」）から「7」（２進数「0111」）となり、暗号化データビット列が「7de4fbae4a09e020eff722969f83832b」となるものとする。この場合、この暗号化データビット列がストリーム復号データビット列に変換されると「c61abdd4dfa32aa26c2b3ff9933542b1」となる。
【００６２】
すなわち、ブロック暗号化においては、ノイズによる影響を受けない場合の平文データビット列が、「00000000000000000000000000000000」であるのに対して、ノイズによる影響を受けて暗号化データビット列の先頭ビットがビット反転するだけで、ストリーム復号データビット列は「c61abdd4dfa32aa26c2b3ff9933542b1」となり、全く異なる復号データビット列に変換されてしまうので、後段の誤り訂正が困難になる。
【００６３】
これに対して、図４の上段で示されるように、符号化部３２および復号部５２のそれぞれにおいて、図２を参照して説明したキーストリーム発生器９１とXOR処理部９２が設けられる構成について考える。
【００６４】
ここで、例えば、秘密鍵が「3d62e9b18e5b042f42df43cc7175c96e」であり、NONCE値が「777cefe4541300c8adcaca8a0b48cd55」であり、生成されるキーストリーム（keystream）が「690f108d84f44ac7bf257bd7e394f6c9」であり、平文データビット列が「00000000000000000000000000000000」である場合について考える。この場合、平文データビット列がキーストリームを用いてストリーム暗号化されると、暗号化データビット列は「690f108d84f44ac7bf257bd7e394f6c9」となる。ここで、無線通信路において、ノイズの影響により、例えば、暗号化データビット列の先頭ビットがビット反転することにより、点線で囲まれて示されるように、「6」（＝２進数「0110」）から「e」（２進数「1110」）となるものとする。
【００６５】
このノイズの影響により、ビット反転した暗号化データビット列は「e90f108d84f44ac7bf257bd7e394f6c9」となり、この暗号化データビット列から復号されるストリーム復号データビット列は「8000000000000000000000000000000」となる。
【００６６】
すなわち、ストリーム暗号化においては、平文データビット列が、「00000000000000000000000000000000」であるのに対して、ノイズによる影響を受けたストリーム復号出力は「8000000000000000000000000000000」となり、先頭の一文字を「8」から「0」に訂正するのみとなる。
【００６７】
このようにブロック暗号化に対してストリーム暗号化を用いる方が、ノイズによる誤りの影響が局所的になるため、エラー訂正成功の可能性が高くなる。
【００６８】
したがって、このような理由から図１の通信システムにおいては、ブロック暗号化を用いるよりも、ストリーム暗号化が用いる方が、エラー耐性が高いと考えることができる。
【００６９】
＜リプレイ攻撃と改竄攻撃＞
上述したLPWA通信においては、悪意ある第三者による攻撃を受ける可能性がある。
【００７０】
例えば、図３で示されるように、IoT端末１１からIoTゲートウェイ１２に対して送信フレーム波形信号Ｓｉｇｎ１をLPWA通信により送信する場合を考える。
【００７１】
この場合、悪意ある第三者により運用される通信装置１１１が、送信フレーム波形信号Ｓｉｇｎ１を傍受（キャプチャ）し、キャプチャした送信フレーム波形信号をコピーして送信フレーム波形信号Ｓｉｇｎ１１を生成し、送信フレーム波形信号Ｓｉｇｎ１１−１，１１−２、・・・のように繰り返しIoTゲートウェイ１２に送信する。
【００７２】
このような動作により、IoTゲートウェイ１２には、送信フレーム波形信号Ｓｉｇｎ１をコピーして生成された送信フレーム波形信号Ｓｉｇｎ１１が繰り返し受信されることにより、受信された送信フレーム波形信号が偽造されたもの認識することができず、処理負荷が上昇してしまうことにより動作速度が低減するといったサービス障害が生じる。このように、PHY（物理）層による送信フレーム波形信号を傍受して、傍受した送信フレーム波形信号をコピーして、繰り返し送信する攻撃をリプレイ攻撃という。
【００７３】
また、悪意ある第三者により運用される通信装置１１１が、送信フレーム波形信号Ｓｉｇｎ１を傍受（キャプチャ）し、フォーマット仕様を解析して反転させるビットを特定し、CRCなどの線形符号の変化に相当するビットを反転させて、反転されたビットに相当する波形部分を極性反転させた改竄波形からなる送信フレーム波形信号Ｓｉｇｎ１２を生成して送信する。このように所定のビットに対応する波形部分を極性反転された改竄波形からなる送信フレーム波形信号を生成して送信する攻撃を改竄攻撃という。
【００７４】
より具体的には、例えば、図６の右上段で示されるように、送信するデータビット列Payloadとして「010111…」を想定する。このデータビット列Payload「010111…」を符号化すると、図６の中央上段で示されるように、データビット列Payload「010111…」に線形符号処理によりCRC、畳み込み符号、および低密度パリティ検査符号等からなるECC（誤り訂正／検査符号：Error Correcting Code or Error Check and Correct）として「1101…」が付加されたデータビット列「010111…1101…」が生成されることになる。
【００７５】
例えば、悪意ある第三者が、データビット列のフォーマット仕様を解析して、先頭ビットを反転させることを試みる場合、図６の左中段で示されるように、先頭ビットのみが「1」であるビット列からなる符号語であるデータビット列Payload「10000…」を符号化することで、図６の中央中段で示されるように、ECC（誤り訂正／検査符号）として「1001…」が付加されたデータビット列「100000…1001…」が生成されることになる。
【００７６】
このとき改竄対象であるデータビット列「010111…1101…」と生成したデータビット列「100000…1001…」とを加算すると、図６の右上部で示されるように、データビット列「110111…0100…」からなる新たなデータビット列が生成される。
【００７７】
一方で、図６の左下部に示す送信するデータビット列の先頭ビットを反転させたデータビット列Payload「110111」を生成して、ECC(誤り訂正／検査符号)を付加すると、図６の右下部で示されるようなデータビット列「110111…0100…」を生成することができる。これらは同じデータビット列となるため、受信側では改竄されたものか改竄されていないデータであるかを判別することはできず、図５の送信信号ｓｉｇｎ１２のような改竄した送信フレーム波形信号による改竄攻撃の可能性が生じる。
【００７８】
ただし、上記の改竄攻撃については、ECC(誤り訂正／検査符号)が線形演算であることから生じるものであり、CMACを用いることで防御することが可能となる。
【００７９】
しかしながら、リプレイ攻撃については、受信処理に波形合成手法を用いるため、CMACでは防御することができない。
【００８０】
これは、送信毎に異なる送信フレーム波形とすることで、リプレイ攻撃に対する防御対策をとることが考えられるが、CMACタグ生成時に、タイミングなどの送信情報を含めると、送信フレーム波形信号が送信毎に大きく異なることになり、波形合成が困難となる。このように、LPWA通信においては、CMACを用いて改竄攻撃に対する防御を行った上で、リプレイ攻撃を対策することができなかった。
【００８１】
本開示の通信システムにおいては、リプレイ攻撃と改竄攻撃に対して有効な防御対策を実現することで、LPWA（Low Power Wide Area）通信における秘匿性、および通信耐性を向上できるようにする。
【００８２】
＜＜２．本開示の実施の形態＞＞
次に、図７を参照して、本開示の通信システムの構成例について説明する。
【００８３】
本開示の通信システム２００は、基本的な構成において、図１の通信システム１と類似している。すなわち、通信システム２００は、送信装置２０１−１乃至２０１−ｎ、受信装置２０２−１乃至２０２−ｍ、およびクラウドサーバ２０３より構成される。
【００８４】
送信装置２０１は、図１のIoT端末１１に対応するものであり、図示せぬセンサにより検出されたセンサデータをLPWA通信により受信装置２０２を介してクラウドサーバ２０３に送信する。ここで、送信装置２０１は、GPS（Global Positioning System）により位置情報と共に送信されるGPS時刻情報を取得して、送信装置２０１固有のIDであるTXIDと共にNONCEとして使用し、キーストリームを生成して、このキーストリームを用いて、平文データビット列を暗号化データビット列に変換する。
【００８５】
受信装置２０２は、図１のIoTゲートウェイ１２に対応する構成であり、送信装置２０１より送信されてくる送信信号を受信して、クラウドサーバ２０３に送信する。この際、受信装置２０２は、GPS（Global Positioning System）により位置情報と共に送信されるGPS時刻情報を取得して、送信装置２０１のTXIDと共にキーストリームを生成して、暗号化データビット列をストリーム復号データビット列に変換する。
【００８６】
尚、クラウドサーバ２０３については、アプリケーションプログラム２１１−１乃至２１１−ｐを備えており、基本的に図１のクラウドサーバ１３と同様であるので、その説明は省略する。
【００８７】
すなわち、図７の通信システム２００においては、キーストリームが、GPS時刻情報に基づいて、発生される度に変化することになり、この変化するキーストリームを用いて平文データビット列が暗号化データビット列に変換されることで、暗号化データビット列が変調されることで生成される送信フレーム波形信号も送信される度に変化することになるので、リプレイ攻撃の有効な対策となる。
【００８８】
＜送信装置の構成例＞
次に、図８のブロック図を参照して、送信装置２０１の構成例について説明する。
【００８９】
送信装置２０１は、MAC暗号化部２２１、符号化部２２２、およびLPWA送信部２２３より構成される。送信装置２０１のLPWA通信においては、MAC暗号化部２２１が、MAC層を構成し、符号化部２２２、およびLPWA送信部２２３が、MAC層よりも下位層となるPHY（物理）層を構成する。
【００９０】
MAC（Media Access Control）暗号化部２２１は、図示せぬセンサデータからなるPayloadを暗号化（MAC層）し、暗号化データ（または、暗号化されていないPayloadのデータ）を格納したデータビット列からなるMSDU（MAC Service Data Unit）を生成すると共に、MSDUに対応するCMACタグを生成し、符号化部２２２に出力する。
【００９１】
より詳細には、MAC暗号化部２２１は、MSDU生成部２３１、およびCMAC処理部２３２を備えている。
【００９２】
MSDU生成部２３１は、PHY（物理）層より上位のMAC層において、図示せぬセンサデータからなるPayload（または、Payloadを暗号化（MAC層）したデータ）を格納したデータビット列からなるMSDU（MAC Service Data Unit）を生成し、CMAC処理部２３２に出力し、CMAC処理によりCMACタグを生成させ、MSDUとCMACタグとを合わせて符号化部２２２に出力する。
【００９３】
CMAC（Cipher-based Message Authentication Code）処理部２３２は、メッセージ認証符号アルゴリズムにより、MSDU（MAC Service Data Unit）からCMACタグを生成する。CMACタグは、復号の際、認証およびデータ改竄検出に用いられる。CMACタグはハッシュ値のように、元のデータであるMSDUが改竄されると大きく値が異なる性質をもつため、受信したデータビット列より生成されるCMACタグと受信したCMACタグとの比較により改竄の有無を判定することができる。
【００９４】
符号化部２２２は、MSDUとCMACタグとを合わせて符号化し、LPWA送信部２２３に出力する。
【００９５】
より詳細には、符号化部２２２は、誤り訂正符号付加部２５１、XOR処理部２５２、キーストリーム（Keystream）発生器２５３、記憶部２５４、GPS時刻情報取得部２５５、同期パターン生成部２５６、およびスイッチ２５７を備えている。
【００９６】
誤り訂正符号付加部２５１は、MSDUとCMACタグに基づいて、誤りを検出・訂正するための符号である誤り訂正符号ECCを生成し、MSDU、およびCMACタグにECCを付与することでPSDU（Physical Layer Service Data Unit）と呼ばれるデータビット列を生成してXOR処理部２５２に出力する。
【００９７】
キーストリーム発生器２５３は、記憶部２５４に予め記憶されている送信装置２０１の固有のIDであるTXIDを読み出すとともに、GPS時刻情報取得部２５５より供給される時刻情報とを併せてNONCEとして使用し、さらに秘密鍵を用いて、PRBS（Pseudo Random Binary Sequence：疑似乱数ビット列）からなるキーストリームを発生してXOR処理部２５２に出力する。
【００９８】
記憶部２５４は、メモリなどから構成されており、予め記憶されている送信装置２０１の固有のIDであるTXIDを記憶しており、キーストリーム発生器２５３に対して供給する。
【００９９】
GPS時刻情報取得部２５５は、図示せぬ衛星より送信される衛星波を受信してGPS位置情報を取得する際に供給されるGPS時刻情報を取得して、キーストリーム発生器２５３に対して供給する。
【０１００】
XOR処理部２５２は、PSDUのデータビット列からなる平文データビット列に対して、キーストリームを用いて、ビット単位で排他的論理和（XOR）処理を掛けることにより暗号化データビット列を生成し、スイッチ２５７に出力する。
【０１０１】
同期パターン生成部２５６は、受信装置２０２に対して送信フレーム信号を受信する際に先頭位置を示す同期パターンSYNCを生成し、スイッチ２５７に出力する。
【０１０２】
スイッチ２５７は、同期パターン生成部２５６より供給される同期パターンSYNCと、XOR処理部２５２より供給されるPSDUの暗号化データビット列とを切り替えて、PPDU（PLCP（Physical Layer Convergence Protocol） Protocol Data Unit または Physical Layer Protocol Data Unit）を生成して、LPWA送信部２２３に出力する。
【０１０３】
より詳細には、スイッチ２５７は、送信フォーマットに基づき入力を切り替えることができ、端子２５７ａに接続された同期パターン生成部２５６より供給される同期パターンSYMCのビット出力と、端子２５７ｂに接続されたXOR処理部２５２より供給される暗号化データビット列とを切り替えることで、同期パターンと暗号化データビット列から成る符号化信号であるPPDUを生成してLPWA送信部２２３に出力する。
【０１０４】
LPWA送信部２２３は、同期パターンSYNCと、PSDUの暗号化データビット列とが合わされたPPDUを変調することで送信フレーム波形信号を生成し、LPWA通信により受信装置２０２に送信する。
【０１０５】
より詳細には、LPWA送信部２２３は、変調部２７１、ミキサ２７２、局部発振器２７３、BPF（Band Pass Filter）２７４、増幅器２７５、およびアンテナ２７６より構成される。
【０１０６】
変調部２７１は、符号化信号であるPPDUを変調して、送信フレーム波形信号を生成しミキサ２７２に出力する。
【０１０７】
ミキサ２７２は、局部発振器２７３により発生される局部発振信号と送信フレーム波形信号とを合成して高周波信号を生成し、BPF２７４に出力する。
【０１０８】
BPF２７４は、高周波信号に対してフィルタリングにより所定の周波数帯域の信号を抽出して増幅器２７５に出力する。
【０１０９】
増幅器２７５は、BPF２７４より供給される所定の周波数帯域の信号を所定の倍率で増幅してアンテナ２７６を介して送信フレーム波形信号として受信装置２０２に送信する。
【０１１０】
尚、送信装置２０１は、以上の一連の動作により、異なる送信フレーム波形信号を異なる周波数帯域で４回繰り返し送信する。また、異なる送信フレーム波形信号が、異なる周波数帯で４回繰り返し送信される例について説明するものとするが、繰り返される回数については、２回以上であれば、それ以外の回数であってもよい。
【０１１１】
＜受信装置の構成例＞
次に、図９のブロック図を参照して、受信装置２０２の構成例について説明する。
【０１１２】
受信装置２０２は、LPWA受信部３２１、復号部３２２、およびMAC復号部３２３を備えている。受信装置２０２のLPWA通信においては、LPWA受信部３２１、および復号部３２２が、PHY（物理）層を構成し、MAC復号部３２３が、PHY（物理）層よりも上位となるMAC層を構成する。
【０１１３】
LPWA受信部３２１は、LPWA通信により送信装置２０１より送信されてくるPPDUからなる送信フレーム波形信号をLPWA通信により受信して、送信フレーム波形信号のPPDUに含まれる同期パターンSYNCと、PSDUの暗号化データビット列とを復号部３２２に出力する。
【０１１４】
より詳細には、LPWA受信部３２１は、アンテナ３３１、増幅器３３２、ミキサ３３３、局部発振器３３４、BPF３３５、位相補正部３３６、および同期検出部３３７を備えている。
【０１１５】
増幅器３３２は、アンテナ３３１を介して高周波信号として送信されてくる送信フレーム波形信号を受信して増幅してミキサ３３３に出力する。
【０１１６】
ミキサ３３３は、局部発振器３３４より発振される所定の周波数帯域の波形信号に基づいて中間周波数の波形信号に変換してBPF３３５に出力する。
【０１１７】
BPF３３５は、中間周波数に変換された送信フレーム波形信号のうち、所定の周波数帯域のPPDUに対応する送信フレーム波形信号を抽出して位相補正部３３６、および同期検出部３３７に出力する。
【０１１８】
同期検出部３３７は、PPDUに対応する送信フレーム波形信号のうちの同期パターンSYNCの波形信号を検出して位相補正部３３６に出力する。
【０１１９】
位相補正部３３６は、同期検出部３３７により同期パターンSYNCが検出されたタイミングにおいて、BPF３３５より供給されるPPDUに対応する送信フレーム波形信号の位相を補正して復号部３２２に出力する。
【０１２０】
復号部３２２は、同期パターンSYNCの波形信号に基づいて、PSDUに対応する波形信号の位置を検出して、送信装置２０１と同様にキーストリームを発生して、暗号化データビット列に対応する波形信号を復元し、復元した波形信号に基づいてPSDUのデータビット列を復号してMAC復号部３２３に出力する。
【０１２１】
より詳細には、復号部３２２は、スイッチ３５１、極性反転部３５２、復調器３５３、積算部３５４、復号器３５５、キーストリーム発生器３５６、記憶部３５７、GPS時刻情報取得部３５８、および同期信号波形保存部３５９を備えている。
【０１２２】
スイッチ３５１は、同期検出部３３７により制御され、LPWA受信部３２１より供給される送信フレーム波形信号を分離し、同期信号波形保存部３５９および極性反転部３５２に出力する。
【０１２３】
より詳細には、スイッチ３５１は、PPDUに対応する波形信号のうちの同期信号波形に相当するタイミングでは端子３５１ａに接続されており、LPWA受信部３２１より供給される波形信号を同期信号波形保存部３５９に出力する。そして、同期信号波形以外のタイミングでは、端子３５１ｂに接続され、PPDUのうちの暗号化されたPSDUに対応する送信フレーム波形信号を極性反転部３５２に出力する。
【０１２４】
極性反転部３５２は、キーストリーム発生器３５６より供給されるキーストリームに基づいて、PSDUに対応する波形信号を極性反転させて復調器３５３に出力する。尚、極性反転部３５２の動作については、図１１，図１２を参照して詳細を後述する。
【０１２５】
また、キーストリーム発生器３５６、記憶部３５７、およびGPS時刻情報取得部３５８は、送信装置２０１のキーストリーム発生器２５３、記憶部２５４、およびGPS時刻情報取得部２５５に対応する機能を備えた構成であるので、その説明は省略する。
【０１２６】
復調器３５３は、極性反転部３５２より出力されるPSDUに対応する波形信号を復調し、積算部３５４に出力し、積算して記憶させる。
【０１２７】
積算部３５４は、ストリーム復号された同一のPSDUに対応する波形信号を積算して記憶し、積算したPSDUの波形信号を復号器３５５に出力する。尚、ここでは、同一のPSDUから生成される送信フレーム信号が異なる周波数帯域で４回繰り返される例について説明を進めるものとするが、２回以上であれば、それ以外の回数であってもよい。したがって、この例においては、４回分積算されたPSDUの波形信号の加算結果が復号器３５５に出力される。
【０１２８】
復号器３５５は、積算部３５４に積算して記憶されている、４回分の復調されている極性反転部３５２より出力されるPSDUに対応する波形信号が加算された波形信号を、復号して、暗号化データビット列に対応するストリーム復号データビット列からなるPSDUを生成して、MAC復号部３２３に出力する。
【０１２９】
MAC復号部３２３は、PSDUのストリーム復号データビット列に基づいて、送信装置２０１より送信されてきたセンサデータに対応するPayloadをMAC復号して出力する。
【０１３０】
より詳細には、MAC復号部３２３は、MSDU復号部３７１、およびCMAC処理部３７２を備えている。
【０１３１】
MSDU復号部３７１は、PSDUに含まれる誤り訂正符号ECCを用いて誤りを訂正した後、MSDUとCMACタグを抽出し、MSDUよりPayloadを復号してCMAC処理部３７２に出力する。
【０１３２】
CMAC処理部３７２は、MSDUに基づいてCMAC処理によりCMACタグを生成すると共に、MSDUに付加されたCMACタグと比較して一致するか否かにより改竄の有無を判定する。
【０１３３】
MSDU復号部３７１は、改竄の有無の情報と共に復号結果であるPayloadを出力する。
【０１３４】
＜図７の通信システムによる動作＞
次に、図１０を参照して、図７の通信システム２００の動作について説明する。尚、図１０においては、図中の左側が送信装置２０１の動作により生成される信号および波形の流れが示されており、図中の右側が受信装置２０２の動作により生成される信号および波形の流れが示されている。
【０１３５】
まず、図中の左上部から、送信装置２０１における動作を説明する。
【０１３６】
送信装置２０１におけるMAC暗号化部２２１のMSDU生成部２３１は、センサデータであるpayload４０１を暗号化してMSDU４０２を生成し、CMAC処理部２３２に出力する。
【０１３７】
CMAC処理部２３２は、MSDU４０２に対してCMAC処理を施して、改竄の有無を判定するためのCMACタグ４０３を生成してMSDU生成部２３１に出力する。MSDU生成部２３１は、生成したMSDU４０２に対してCMACタグ４０３を付加して符号化部２２２に出力する。
【０１３８】
尚、MSDU４０２が生成されてCMACタグ４０３が付加されるまでの処理がMAC層の処理となり、以降の処理が、PHY（物理）層の処理となる。
【０１３９】
符号化部２２２の誤り訂正符号付加部２５１は、MSDU４０２とCMACタグ４０３とを合わせた情報からエラー訂正符号ECC４１２を生成し、MSDU４０２とCMACタグ４０３とを合わせた情報にエラー訂正符号ECC４１２とを合わせてPSDU４１３を生成する。
【０１４０】
また、キーストリーム発生器２５３は、GPS時刻情報取得部２５５より供給されるGPS時刻情報TIMEと、記憶部２５４に記憶されているTXIDとに基づいてNONCEを生成し、秘密鍵と共にキーストリーム４１４を生成してXOR処理部２５２に出力する。
【０１４１】
XOR処理部２５２は、PHY（物理）層におけるストリーム暗号化処理により、ビット単位で、平文データビット列であるPSDU４１３と、キーストリーム４１４に対してXOR処理を施して、PSDU４１３を暗号化データビット列に変換して、スイッチ２５７に出力する。
【０１４２】
同期パターン生成部２５６は、同期パターンSYNC４１１を生成してスイッチ２５７に出力する。
【０１４３】
スイッチ２５７は、PSDU４１３の暗号化データビット列に、同期パターンSYNC４１１を付加することにより、PPDU４１５を生成してLPWA送信部２２３に出力する。より詳細には、スイッチ２５７は、送信フォーマットに基づいて、同期パターンSYNC４１１のビット出力を端子２５７ａに接続して、同期パターンSYNC４１１の入力を受け付ける。そして、スイッチ２５７は、端子２５７ｂに切り替えて接続し、XOR処理部２５２からのPSDU４１３の暗号化データビット列の入力を受け付けて、同期パターンSYNC４１１を含んだPPDU４１５を生成し、LPWA送信部２２３に出力する。
【０１４４】
LPWA送信部２２３において、変調部２７１が、PPDU４１５を変調して送信フレーム波形４１６を生成する。そして、送信フレーム波形４１６が、ミキサ２７２により局部発振器２７３により所定の高周波信号に変換され、さらにBPF２７４により所定の周波数帯域が抽出し、増幅器２７５により増幅してアンテナ２７６より受信装置２０２に送信される。
【０１４５】
ここまでが、送信装置２０１の動作の説明となる。次に、図中の右下部から、受信装置２０２における動作を説明する。
【０１４６】
LPWA受信部３２１において、アンテナ３３１を介して送信フレーム波形４１６に対応する受信フレーム波形４２１が受信されて、増幅器３３２により所定のゲインに増幅された後、ミキサ３３３により局部発振器３３４より供給される所定の周波数の信号に基づいて中間周波数に変換されてBFP３３５に出力される。
【０１４７】
BPF３３５は、中間周波数信号にされた受信フレーム波形４２１の波形信号より所定の帯域の信号を抽出して位相補正部３３６、および同期検出部３３７に出力する。
【０１４８】
同期検出部３３７は、受信フレーム波形４２１における同期パターンとなる波形を検出して検出結果を位相補正部３３６に出力する。
【０１４９】
位相補正部３３６は、同期検出部３３７より検出される同期パターンが検出されたタイミングから受信フレーム波形４２１の位相を補正し、PPDU波形４２２として復号部３２２に出力する。
【０１５０】
復号部３２２において、スイッチ３５１は、端子３５１ａに接続してLPWA受信部３２１より入力されるPPDU波形４２２の波形信号を同期信号波形保存部３５９に出力する。同期検出部３３７は、入力されたPPDU波形４２２より同期信号波形以外を検出すると、スイッチ３５１を制御して端子３５１ｂに接続させる。この動作により、スイッチ３５１は、PPDU波形４２２のうち、暗号化データビット列に対応するPSDU位置の波形を極性反転部３５２に出力する。
【０１５１】
また、キーストリーム発生器３５６は、GPS時刻情報取得部３５８より供給されるGPS時刻情報TIMEと、記憶部３５７に記憶されているTXIDとに基づいてNONCEを生成し、秘密鍵と共にキーストリーム４１４（送信装置２０１のキーストリーム発生器２５３で発生したキーストリームと同一のキーストリーム）を生成して極性反転部３５２に出力する。
【０１５２】
極性反転部３５２は、PPDU波形４２２のうち、暗号化データビット列に対応するPSDU位置の波形の極性を、キーストリームに基づいて極性反転することで、PSDUの波形４２３に変換して復調器３５３に出力する。
【０１５３】
尚、極性反転部３５２の動作については、図１１，図１２を参照して、詳細を後述する。
【０１５４】
復調器３５３は、ストリーム復号したデータビット列に対応するPSDUの波形４２３を復調し、積算部３５４に積算して記憶させる。
【０１５５】
復号器３５５は、積算部３５４に所定回数分積算されて記憶されているストリーム復号したデータビット列に対応するPSDUの波形４２３より、誤り訂正符号ECCを用いて誤りを訂正し、PSDU４２４（PSDU４１３に対応するもの）を復号し、MAC復号部３２３に出力する。
【０１５６】
MAC復号部３２３において、MSDU復号部３７１は、PSDU４２４より、MSDU４３１とCMACタグ４３２とを抽出して、CMAC処理部３７２に出力する。
【０１５７】
CMAC処理部３７２は、抽出されたMSDU４３１にCMAC処理を施してCMACタグを生成し、CMACタグ４３２と比較して、MSDU４３１に対する改竄の有無を判定し、判定結果をMSDU復号部３７１に出力する。
【０１５８】
MSDU復号部３７１は、MSDU４３１を復号してPayload４３３を生成し、MSDU４３１の改竄の有無を示す情報と共に出力する。
【０１５９】
以上の送信装置２０１と受信装置２０２とのLPWA通信により、送受信されるPPDU波形である送信フレーム波形および受信フレーム波形は、GPS時刻情報に基づいて生成されたキーストリームが用いられた暗号化データビット列に基づいて生成されることになる。この結果、暗号化データビット列は、時刻変化に応じて変化することになるので、リプレイ攻撃を防御することが可能となる。
【０１６０】
また、CMACを用いたLPWA通信も実現することが可能となるので、改竄攻撃に対する防御も可能となる。
【０１６１】
さらに、キーストリームを用いたストリーム暗号化方式を採用した通信を実現することができるので、ブロック暗号化方式を採用した場合にエラー等が発生したとき生じるエラーが生じるビット数を小さくすることが可能となるので、エラー耐性を向上させることができる。
【０１６２】
結果として、CMACによる改竄攻撃に対する防御をしつつ、リプレイ攻撃を防御することが可能となり、通信の秘匿性を向上させることが可能となる。また、ストリーム暗号化方式による通信によりブロック暗号化を用いる場合よりもエラー耐性を向上させることが可能となる。
【０１６３】
＜極性反転部の動作＞
次に、図１１，図１２を参照して、極性反転部３５２の動作について説明する。
【０１６４】
まず、極性反転部３５２の動作を説明するにあたって、図１１を参照して、図１の通信システム１におけるキーストリーム発生器９１およびXOR処理部９２の動作について説明する。
【０１６５】
一般的にストリーム暗号化では、図１１の右上部で示されるように、IoT端末１１の符号化部３２のキーストリーム発生器９１からキーストリーム（Ｋ）が出力されて、PSDUの平文データビット列（Ｐ）が入力される場合、XOR処理部９２は、PSDUの平文データビット列（Ｐ）の各ビット値をＰとしてキーストリーム（Ｋ）の各ビット値をＫとしたとき、図１１の左上部で示されるように、PSDUの暗号化データビット列Ｃに変換する。
【０１６６】
すなわち、（Ｐ，Ｋ）＝（０，０），（１，１）のとき、XOR処理部９２は、PSDUの暗号化データビット列（Ｃ）のビットＣを０に変換し、（Ｐ，Ｋ）＝（１，０），（０，１）のとき、XOR処理部９２は、暗号化データビット列（Ｃ）のビットＣを１に変換する。
【０１６７】
一方、復号の際には、図１１の右下部で示されるように、IoTゲートウェイ１２の復号部５２のキーストリーム発生器９１からキーストリーム（Ｋ）が出力されて、PSDUの暗号化データビット列（Ｃ）が入力される場合、XOR処理部９２は、PSDUの暗号化データビット列（Ｃ）の各ビット値をＣとしてキーストリーム（Ｋ）の各ビット値をＫとしたとき、図１１の左下部で示されるように、PSDUのストリーム復号データビット列（Ｐ）に変換する。
【０１６８】
すなわち、（Ｃ，Ｋ）＝（０，０），（１，１）のとき、XOR処理部９２は、PSDUのストリーム復号データビット列（Ｐ）のビットＰを０に変換し、（Ｃ，Ｋ）＝（１，０），（０，１）のとき、XOR処理部９２は、ストリーム復号データビット列（Ｐ）のビットＰを１に変換する。
【０１６９】
また、図７の通信システム２００の送信装置２０１のキーストリーム発生器２５３およびXOR処理部２５２の動作においては、基本的に、図１２の左上段、および中央上段で示されるように、IoT端末１１のキーストリーム発生器９１およびXOR処理部９２と同一の動作となる。
【０１７０】
すなわち、以上の処理は、いずれもデジタル化されたPSDUの平文データビット列やPSDUの暗号化データビット列に対してなされる処理である。
【０１７１】
これに対して、受信装置２０２の極性反転部３５２における処理は、アナログ信号からなるPPUD波形信号（PPUDが変調された波形信号）のうちのPSDU波形信号（PPUDの波形信号のうちのPSDUの位置の波形信号）に対してなされる処理である。
【０１７２】
すなわち、図１２の中央下部で示されるように、受信装置２０２の復号部３２２のキーストリーム発生器３５６からキーストリーム（Ｋ）が出力されると、キーストリーム（Ｋ）のビットＫが０である場合、係数として＋１が付与され、キーストリーム（Ｋ）のビットＫが１である場合、係数として−１が付与される。
【０１７３】
そして、PSDUの暗号化データビット列に対応する波形信号が入力される場合、極性反転部３５２は、乗算器として機能し、図１２の左下部で示されるように、PSDUの暗号化データビット列に対応する波形信号の各波形の極性に対して、係数を乗じることで極性を反転させることにより、PSDUのストリーム復号データビット列に対応する復号波形に変換する。
【０１７４】
すなわち、（Ｋ，係数，暗号化データビット列に対応する波形信号の波形の極性）＝（０，＋１，−），（１，−１，−）のとき、極性反転部３５２は、PSDUの暗号化データビット列に対応する暗号化波形信号の極性を反転させ、（Ｋ，係数，暗号化データビット列に対応する波形信号の波形の極性）＝（１，−１，＋），（０，＋１，＋）のとき、極性反転部３５２は、極性を反転させない。
【０１７５】
尚、波形の極性は、上に凸の波形が＋であり、下に凸の波形が−である。
【０１７６】
より具体的には、例えば、図１２の右上段で示されるように、“1111110”からなるPSDUの平文データビット列（Ｐ）が入力される場合について考える。尚、図１２においては、“1111110”は、‘１’，‘１’，‘１’，‘１’，‘１’，‘１’，‘０’として表記されているが、明細書の記載においては、先頭文字と最後尾の文字に「“」、「”」を付与するのみで表現するものとする。
【０１７７】
ここで、キーストリーム発生器２５３において、“1010100”からなるキーストリーム（Ｋ）が発生されるものとする。
【０１７８】
この場合、XOR処理部２５２により、排他的論理和（XOR）の処理がなされることにより、“0101010”からなる暗号化データビット列（Ｃ）が生成される。
【０１７９】
この“0101010”からなるPSDUの暗号化データビット列（Ｃ）が変調されることにより、送信フレーム波形Ｗ１が生成されて送信されることになる。送信フレーム波形Ｗ１においては、PSDUの暗号化データビット列Ｃにおける‘0’が下に凸の波形とされ、‘1’が上に凸の波形とされることで変調される。
【０１８０】
すなわち、送信フレーム波形Ｗ１においては、先頭の時刻ｔ１のPSDUの暗号化データビット列Ｃの‘0’が下に凸の波形とされ、時刻ｔ２のPSDUの暗号化データビット列Ｃの‘1’が上に凸の波形とされ、時刻ｔ３のPSDUの暗号化データビット列Ｃの‘0’が下に凸の波形とされる。また、時刻ｔ４のPSDUの暗号化データビット列Ｃの‘1’が上に凸の波形とされ、時刻ｔ５のPSDUの暗号化データビット列Ｃの‘0’が下に凸の波形とされる。さらに、時刻ｔ６のPSDUの暗号化データビット列Ｃの‘1’が上に凸の波形とされ、時刻ｔ７のPSDUの暗号化データビット列Ｃの‘0’が下に凸の波形とされる。
【０１８１】
次に、図１２の右下段で示されるように、受信装置２０２においては、この送信フレーム波形Ｗ１が受信フレーム波形Ｗ１１として受信される。
【０１８２】
この場合、キーストリーム発生器３５６は、送信装置２０１のキーストリーム発生器２５３と同一の“1010100”からなるキーストリームＫを発生する。
【０１８３】
ここで、極性反転部３５２は、“1010100”からなるキーストリーム（Ｋ）の各ビットに対して、図１２の左下部で示されるように、係数を付与することで、係数データビット列として-1，+1，-1，+1，-1，+1，+1を生成する。
【０１８４】
そして、極性反転部３５２は、係数データビット列と受信フレーム波形Ｗ１１とから、PSDUの位置の波形を復号信号波形Ｗ１２として生成する。
【０１８５】
すなわち、時刻ｔ１において、極性反転部３５２は、キーストリーム（Ｋ）のビットＫが‘1’であるので係数を-1に設定することで、時刻ｔ１の下に凸の波形により極性が「−」であるので、極性を「＋」として、波形を上に凸の波形にして極性を反転させる。尚、図１２に右下部においては、極性が反転される前の波形が点線の波形として示されており、時刻ｔ１においては、反転されることにより実線で示される上に凸の波形とされていることが示されている。
【０１８６】
また、時刻ｔ２において、極性反転部３５２は、キーストリーム（Ｋ）のビットＫが‘0’であるので係数を+1に設定することで、時刻ｔ２の上に凸の波形により極性が「＋」であるので、極性を反転させずに、極性を「＋」のままとする。
【０１８７】
さらに、時刻ｔ３において、極性反転部３５２は、キーストリーム（Ｋ）のビットＫが‘1’であるので係数を-1に設定し、時刻ｔ３の下に凸の波形により極性が「−」になるので、極性を反転し、極性を「＋」として、波形を上に凸の波形とする。
【０１８８】
また、時刻ｔ４において、極性反転部３５２は、キーストリーム（Ｋ）のビットＫが‘0’であるので係数を+1に設定することで、時刻ｔ４の上に凸の波形により極性が「＋」であるので、極性を反転させずに、極性を「＋」のままとする。
【０１８９】
さらに、時刻ｔ５において、極性反転部３５２は、キーストリーム（Ｋ）のビットＫが‘1’であるので係数を-1に設定することで、時刻ｔ５の下に凸の波形により極性が「−」であるので、極性を反転し、極性を「＋」として、波形を上に凸の波形とする。
【０１９０】
また、時刻ｔ６において、極性反転部３５２は、キーストリーム（Ｋ）のビットＫが‘0’であるので係数を+1に設定することで、時刻ｔ６の上に凸の波形により極性が「＋」であるので、極性を反転させずに、極性を「＋」のままとする。
【０１９１】
さらに、時刻ｔ７において、極性反転部３５２は、キーストリーム（Ｋ）のビットＫが‘0’であるので係数を+1に設定することで、時刻ｔ７の下に凸の波形により極性が「−」であるので、極性を反転させずに、極性を「−」のままとする。
【０１９２】
以上の処理により、PSDUの暗号化データビット列Ｃに対応する受信フレーム波形Ｗ１１より、復号信号波形Ｗ１２が復号される。
【０１９３】
この後、復号信号波形Ｗ１２の波形に基づいて復号処理がなされることにより、ストリーム復号データビット列が得られる。すなわち、復号信号波形Ｗ１２における時刻ｔ１乃至ｔ６の上に凸の波形より‘111111’が復号されて、時刻ｔ７の下に凸の波形より‘0’が復号されて、元のPSDUである‘1111110’が復号される。
【０１９４】
すなわち、以上の処理により、送信装置２０１においては、GPS時刻情報に応じた異なるキーストリームが生成されて、ストリーム暗号化方式でPSDUが暗号化されることになり、受信装置２０２においては、同様の方式でキーストリームが生成されて暗号化されたPSDUを復号することで、LPWA通信によるPayloadを送信することが可能となる。
【０１９５】
受信装置２０２においては、PHY（物理）層において、アナログ信号からなる暗号化されたPSDUの波形信号が、GPS時刻情報に応じた異なるキーストリームにより波形信号を復号することが可能となる。
【０１９６】
以上のような処理により、PHY（物理）層における波形極性の極性反転を用いたストリーム暗号化を実現することが可能となり、ローコストで通信と親和性の高い方式で、リプレイ攻撃を防御することが可能となる。また、PHY（物理層）より上位のMAC層におけるCMACと組み合わせることで、リプレイ攻撃と改竄攻撃にも対応した多層防衛を実現することが可能となる。
【０１９７】
＜通信システムによる具体的な通信方法＞
次に、図１３を参照して、送信装置２０１、および受信装置２０２からなる通信システム２００によりLPWA通信による通信方法について説明する。
【０１９８】
本開示においては、送信装置２０１が、異なる送信フレーム波形により同一のPSDUを、周波数を変えて、繰り返し受信装置２０２に送信する。このようなPSDUの送信をバースト送信とする。
【０１９９】
すなわち、図１３の点線より上部で示されるように、送信装置２０１は、GPS時刻＃１において、GPS時刻＃１とTXIDとに基づいたキーストリームでPSDUを暗号化した送信フレーム波形４１６−１を、周波数ｆ２で送信装置２０１に送信する。
【０２００】
また、送信装置２０１は、GPS時刻＃２において、GPS時刻＃２とTXIDとに基づいたキーストリームでPSDUを暗号化した送信フレーム波形４１６−２を、周波数ｆ１で送信装置２０１に送信する。
【０２０１】
さらに、送信装置２０１は、GPS時刻＃３において、GPS時刻＃３とTXIDとに基づいたキーストリームでPSDUを暗号化した送信フレーム波形４１６−３を、周波数ｆ４で送信装置２０１に送信する。
【０２０２】
また、送信装置２０１は、GPS時刻＃４において、GPS時刻＃４とTXIDとに基づいたキーストリームでPSDUを暗号化した送信フレーム波形４１６−４を、周波数ｆ３で送信装置２０１に送信する。
【０２０３】
そして、受信装置２０２においては、図１３の点線より下部で示されるように、受信装置２０２は、GPS時刻＃１において、GPS時刻＃１とTXIDとに基づいたキーストリームで、周波数ｆ２で送信されてきた送信フレーム波形４１６−１よりPSDU位置の信号波形に対して前述の極性反転処理をする。
【０２０４】
また、受信装置２０２は、GPS時刻＃２において、GPS時刻＃２とTXIDとに基づいたキーストリームで、周波数ｆ１で送信されてきた送信フレーム波形４１６−２よりPSDU位置の信号波形に対して前述の極性反転処理をする。
【０２０５】
さらに、受信装置２０２は、GPS時刻＃３において、GPS時刻＃３とTXIDとに基づいたキーストリームで、周波数ｆ４で送信されてきた送信フレーム波形４１６−３よりPSDU位置の信号波形に対して前述の極性反転処理をする。
【０２０６】
また、受信装置２０２は、GPS時刻＃４において、GPS時刻＃４とTXIDとに基づいたキーストリームで、周波数ｆ３で送信されてきた送信フレーム波形４１６−４よりPSDU位置の信号波形に対して前述の極性反転処理をする。
【０２０７】
そして、受信装置２０２は、送信フレーム波形４１６−１乃至４１６−４より復調した４フレームのPSDUの信号波形を加算（積算）して得られた送信フレーム波形４１６−１１を復号する。
【０２０８】
以上のように、異なる送信タイミングにおいて、異なるGPS時刻情報により異なるキーストリームが生成されることになるので、送信処理におけるストリーム暗号化により送信される各フレーム波形は毎回異なる形状となる一方で、受信処理におけるストリーム(暗号の)復号により、各フレーム波形を同じ形状にすることができる。さらに受信側では、これにより波形を加算（積算）する波形合成が可能となり、リプレイ攻撃への耐性だけでなく、復調／復号性能を向上させることができる。
【０２０９】
また、繰り返し送信されるPSDU位置の信号波形についても、CMACタグが付与されることになるので、改竄攻撃を防御することも可能となる。
【０２１０】
結果として、リプレイ攻撃と改竄攻撃とを同時に多層的に防御しつつ、復調／復号性能を向上させることが可能となる。
【０２１１】
＜送信処理＞
次に、図１４のフローチャートを参照して、例として５秒間の間隔を開けて１バーストあたり４フレーム送信する送信装置２０１による送信処理について説明する。
【０２１２】
ステップＳ１１において、送信装置２０１は、自身のスリープ状態から復帰させる。
【０２１３】
ステップＳ１２において、送信装置２０１は、送信回数のカウンタＣｓを１に初期化する。
【０２１４】
ステップＳ１３において、キーストリーム発生器２５３は、記憶部２５４に記憶されている送信装置２０１を識別するIDとしてTXIDを読み出す。
【０２１５】
ステップＳ１４において、キーストリーム発生器２５３は、GPS時刻情報取得部２５５より供給されるGPS時刻情報TIMEを取得する。
【０２１６】
ステップＳ１５において、キーストリーム発生器２５３は、取得したGPS時刻情報TIMEを５秒単位で切り捨てる。すなわち、ステップＳ１３において、例えば、供給されたGPS時刻情報TIMEが00:15:21（00時15分21秒）である場合、5秒単位で切り捨てられることにより、GPS時刻情報TIMEは、00:15:20（00時15分20秒）とされる。
【０２１７】
ステップＳ１６において、キーストリーム発生器２５３は、TXIDおよびGPS時刻情報TIMEに基づいて、キーストリームの初期値NONCEを生成する。
【０２１８】
ステップＳ１７において、キーストリーム発生器２５３は、初期値NONCEおよび秘密鍵に基づいて、キーストリームを発生し、XOR処理部２５２に出力する。
【０２１９】
ステップＳ１８において、センサデータからなるPayloadに対して符号化処理が施される。より詳細には、MSDU生成部２３１は、Payloadに対して暗号化処理を施して、MSDUを生成し、CMAC処理部２３２に出力する。CMAC処理部２３２は、MSDUに対してCMAC処理を施してCMACタグを生成し、MSDU生成部２３１に出力する。MSDU生成部２３１は、MSDUとCMACタグとを合わせて符号化部２２２に出力する。符号化部２２２の誤り訂正符号付加部２５１は、MSDUとCMACタグとから誤り訂正符号ECCを求めて付加し、平文データビット列からなるPSDUを生成してXOR処理部２５２に出力する。
【０２２０】
ステップＳ１９において、XOR処理部２５２は、平文データビット列からなるPSDUに対して、キーストリームの各ビット値をビット単位で、排他的論理和（XOR）を掛けることにより、ストリーム暗号化して、暗号化データビット列からなるPSDUに変換してスイッチ２５７に出力する。
【０２２１】
ステップＳ２０において、同期パターン生成部２５６は、同期パターンを生成してスイッチ２５７の端子２５７ａに出力する。また、XOR処理部２５２は出力する暗号化データビット列を端子２５７ｂに出力する。スイッチ２５７は、送信フォーマットに基づいて、入力を切り替えて出力し、同期パターンと暗号化データビット列を含むPPDUを生成してLPWA送信部２２３に出力する。
【０２２２】
ステップＳ２１において、LPWA送信部２２３は、PPDUを変調し、送信回数を示すカウンタＣｓに対応する周波数帯域で受信装置２０２に送信する。
【０２２３】
ステップＳ２２において、送信装置２０１は、送信回数を示すカウンタＣｓが４であるか否かを判定し、４ではない場合、処理は、ステップＳ２３に進む。
【０２２４】
ステップＳ２３において、送信装置２０１は、送信回数を示すカウンタＣｓを１インクリメントし、処理は、ステップＳ１４に戻る。
【０２２５】
すなわち、カウンタＣｓが４になるまで、ステップＳ１４乃至Ｓ２３の処理が繰り返されて、カウンタＣｓに応じた異なる周波数で、それぞれの送信タイミングに応じたGPS時刻情報とTXIDに基づいたキーストリームを用いてストリーム暗号化処理されたPSDUを含むPPDUからなる送信フレーム波形が受信装置２０２に送信される。
【０２２６】
そして、ステップＳ２２において、送信回数を示すカウンタＣｓが４であるとみなされ、４フレーム分の送信フレーム波形が送信されると処理が終了する。
【０２２７】
＜受信処理＞
次に、図１５のフローチャートを参照して、同様に例として５秒間の間隔を開けて１バーストあたり４フレーム送信する受信装置２０２による受信処理について説明する。
【０２２８】
ステップＳ３１において、キーストリーム発生器３５６は、受信処理を行う対象となる送信装置２０１のTXIDを特定する。
【０２２９】
ステップＳ３２において、受信装置２０２は、受信回数のカウンタＣｒを１に初期化する。
【０２３０】
ステップＳ３３において、キーストリーム発生器３５６は、GPS時刻情報取得部３５８より供給されるGPS時刻情報TIMEを取得する。
【０２３１】
ステップＳ３４において、キーストリーム発生器３５６は、取得したGPS時刻情報TIMEを５秒単位で切り捨てる。
【０２３２】
ステップＳ３５において、キーストリーム発生器３５６は、TXIDおよびGPS時刻情報TIMEに基づいて、キーストリームの初期値NONCEを生成する。
【０２３３】
ステップＳ３６において、キーストリーム発生器３５６は、初期値NONCEおよび秘密鍵に基づいて、キーストリームを発生し、極性反転部３５２に出力する。
【０２３４】
ステップＳ３７において、LPWA受信部３２１は、所定の周波数で送信されてきた送信フレーム波形を受信フレーム波形として受信して、同期検出を行い、復号部３２２に出力する。復号部３２２は、PSDU位置の波形を取得する。
【０２３５】
より詳細には、復号部３２２の増幅器３３２が、アンテナ３３１を介して高周波信号として送信されてくる送信信号を受信して増幅してミキサ３３３に出力する。
【０２３６】
ミキサ３３３は、局部発振器３３４より発振される所定の周波数帯域の波形信号に基づいて中間周波数の波形信号に変換してBPF３３５に出力する。
【０２３７】
BPF３３５は、中間周波数に変換された波形信号のうち、所定の周波数帯域の波形信号を抽出して位相補正部３３６、および同期検出部３３７に出力する。
【０２３８】
位相補正部３３６は、同期検出部３３７により同期パターンSYNCが検出されたタイミングにおいて、BPF３３５より供給される波形信号の位相を補正して復号部３２２に出力する。
【０２３９】
復号部３２２のスイッチ３５１は、位相補正部３３６の出力を受け取り、同期検出部３３７からのタイミング信号により、同期信号波形と暗号化されているPSDUに対応する信号波形とを分離する。スイッチ３５１の端子３５１ａの先には、同期信号波形保存部３５９が接続されて同期信号波形出力され、端子３５１ｂの先には極性反転部３５２が接続されて暗号化データビット列に対応するPSDU位置の波形信号が出力される。
【０２４０】
ステップＳ３８において、極性反転部３５２は、図１２を参照して説明したように、キーストリーム発生器３５６により発生されたキーストリームを用いて、PSDU位置の波形信号を極性反転させることにより、PHY（物理）層におけるストリーム復号を行い、PSDUの波形に変換して復調器３５３に出力する。
【０２４１】
ステップＳ３９において、復調器３５３は、ストリーム復号データビット列に対応するPSDUの波形を積算部３５４に蓄積された波形に対して積算して蓄積させる。
【０２４２】
ステップＳ４０において、受信装置２０２は、受信回数を示すカウンタＣｒが４であるか否かを判定する。ステップＳ３８において、カウンタＣｒが４ではない場合、処理は、ステップＳ４１に進む。
【０２４３】
ステップＳ４１において、受信回数を示すカウンタＣｒが１インクリメントされ、処理は、ステップＳ３３に戻る。
【０２４４】
すなわち、異なる周波数で繰り返し送信されてくる送信フレーム波形を４フレーム分受信するまで、ステップＳ３３乃至Ｓ４１の処理が繰り返される。
【０２４５】
そして、ステップＳ４０において、４フレーム分の送信フレーム波形が受信されて、積算部３５４において、４回分のストリーム復号データビット列に対応するPSDUの波形が加算されて蓄積され、カウンタＣｒが４であると判定された場合、処理は、ステップＳ４２に進む。
【０２４６】
ステップＳ４２において、復号器３５５は、積算部３５４に蓄積された４回分のPSDUの波形が積算された波形に基づいて、誤り訂正符号ECCを用いて誤りを訂正した後、PSDUのデータビット列を復号し、MAC復号部３２３に出力する。
【０２４７】
そして、MAC復号部３２３のMSDU復号部３７１は、PSDUに含まれるMSDUとCMACタグを抽出し、CMAC処理部３７２に出力すると共に、MSDUよりPayloadを復号する。
【０２４８】
CMAC処理部３７２は、MSDUに基づいてCMAC処理によりCMACタグを生成すると共に、MSDUに付加されたCMACタグと比較して一致するか否かにより改竄の有無を判定し、判定結果をMSDU復号部３７１に出力する。
【０２４９】
MSDU復号部３７１は、改竄の有無の情報と共に復号結果であるPayloadを出力する。
【０２５０】
以上の一連の送信処理および受信処理により、異なる周波数で、それぞれの送信タイミングに応じたGPS時刻情報とTXIDに基づいたキーストリームを用いてストリーム暗号化処理されたPSDUを含むPPDUからなる送信フレーム波形が受信装置２０２に送信される。
【０２５１】
この処理により、送信フレーム波形は、それぞれ送信タイミングに応じた異なるGPS時刻情報とTXIDとに基づいて生成されるキーストリームを用いてストリーム暗号化されたPSDUを含むPPDUが異なる送信フレーム波形として送信されることになるので、リプレイ攻撃を防御することが可能となる。また、PSDUにはCMACが含められているので、改竄攻撃を防御することが可能となる。
【０２５２】
結果として、PHY（物理）層におけるリプレイ攻撃対策と、MAC層における改竄攻撃対策との多層防衛を実現することが可能となる。
【０２５３】
また、同一のPSDUを繰り返し送信するので、受信装置２０２においては、繰り返し送信された積算結果を用いて復号することができるので、復調／復号性能を向上させることが可能となる。
【０２５４】
尚、以上においては、送信フレーム波形毎に用いるキーストリームの発生に、TXIDとGPS時刻情報を用いたが、追加情報として、送信装置２０１と受信装置２０２で予め定めた同じ数値が含まれていても良い。
【０２５５】
すなわち、NONCEとして用いる情報をより多くすることで、リプレイ攻撃に対する耐性を向上させることが可能となる。
【０２５６】
また、以上においては、送信フレーム波形毎にGPS時刻情報を用いたが、先頭の送信フレームだけはGPS時刻情報に基づいて発生されるキーストリームを用いる一方で、後続の送信フレーム波形のキーストリームに関しては、先頭のGPS時刻情報に、送信フレーム波形数のカウント値を用いた変換処理により得られる初期値を用いて発生させるようにしてもよい。
【０２５７】
すなわち、例えば、先頭の送信フレームにおいては、秘密鍵、TXID、およびGPS時刻情報によりキーストリームを生成し、次の送信フレームにおいては、先頭のキーストリームを生成する際に使用したGPS時刻情報に、先頭のキーストリームを生成したタイミングからの経過時間に対応したカウンタの値を加算して、キーストリームを生成するようにし、以降の送信フレームにおいても同様にキーストリームを生成するようにしてもよい。
【０２５８】
さらに、以上においては、５秒単位で切り捨てたGPS時刻情報を用いてNONCEとして用いる例について説明してきたが、送信フレーム波形を区別することができればよいので、例えば、ミリ秒単位で送信フレーム波形の送信間隔が定まっている場合には、送信間隔に応じたミリ秒単位のGPS時刻情報をNONCEに用いるようにしてもよい。
【０２５９】
また、以上においては、キーストリームの発生に用いるNONCEとしてTXIDと共にGPS時刻情報を用いるようにしたが、キーストリームを発生させるタイミングに応じて変化する情報であれば他の情報であってもよく、例えば、UTC（Universal time coordinated：世界協定時）、GMT（グリニッジ標準時：Greenwich Mean Time）、JST（日本標準時：Japan Standard Time）などの時刻情報を用いるようにしてもよいし、所定の時間間隔（等時間間隔でも、非等時間間隔でもよい）でカウントされるカウンタの値を用いるようにしてもよい。
【０２６０】
さらに、以上においては、４フレーム分の送信フレーム波形を同一のPSDUを送信する１セットとする例について説明してきたが、同一のPSDUについて複数の送信フレーム波形を１セットとして送信すればよいの１セット分の送信フレーム波形のフレーム数については、１セットにつき、２フレーム分以上であればその他のフレーム数分であってもよい。
【０２６１】
また、以上においては、キーストリームの発生に際して、NONCE（初期値）を変化させて秘密鍵と合わせてキーストリームを発生させる例について説明してきたが、キーストリームの生成に必要とされるパラメータを変化させられればよいので、キーストリームを発生させる度に、秘密鍵を変化させるようにして、NONCE（初期値）については固定値とするようにしてもよい。
【０２６２】
＜＜３．応用例＞＞
以上においては、受信装置２０２において、GPS時刻情報とTXIDとに基づいた、いわゆるストリーム暗号器に用いられるキーストリーム発生器を用いて、キーストリームを発生させる例について説明してきた。
【０２６３】
しかしながら、ブロック暗号器を特定の暗号利用モードと組み合わせることによりキーストリーム発生器を構成することもでき、これを用いても良い。
【０２６４】
例えば、図１６のケースＣ１で示されるように、キーストリームを発生させる度に、NONCEを所定値だけインクリメントするブロック暗号器を用いるようにしてもよい。
【０２６５】
すなわち、ブロック暗号器４０１は、例えば、最初のタイミングにおいて、c59bcf35…00000000からなるNONCEと、秘密鍵Keyとにより固定ビット数のキーストリームＫ１を発生する。XOR処理部４０２は、平文データビット列に対して、キーストリームＫ１を用いてビット単位でXORを掛けて暗号化データビット列に変換する。
【０２６６】
次のタイミングにおいて、ブロック暗号器４０１は、例えば、直前のNONCEを１インクリメントしたc59bcf35…00000001からなるNONCEを生成し、秘密鍵Keyと共に用いることでキーストリームＫ２を発生する。XOR処理部４０２は、平文データビット列に対して、キーストリームＫ２を用いてビット単位でXORを掛けて暗号化データビット列に変換する。
【０２６７】
さらに次のタイミングにおいて、ブロック暗号器４０１は、例えば、直前のNONCEをさらに１インクリメントしたc59bcf35…00000002からなるNONCEを生成し、秘密鍵Keyと共に用いることでキーストリームＫ３を発生する。XOR処理部４０２は、平文データビット列に対して、キーストリームＫ３を用いてビット単位でXORを掛けて暗号化データビット列に変換する。
【０２６８】
このように、キーストリームが発生される度に、NONCEが変化することでキーストリームも変化することになるので、リプレイ攻撃を防御することが可能となる。
【０２６９】
また、図１６のケースＣ２で示されるように、NONCEとなる初期値を直前に発生させたキーストリームにしてもよい。
【０２７０】
すなわち、ブロック暗号器４１１は、例えば、最初に、初期値と、秘密鍵KeyとによりキーストリームＫ１１を発生して、XOR処理部４１２が、平文データビット列に対して、キーストリームＫ１１を用いてビット単位でXORを掛けて暗号化データビット列に変換する。
【０２７１】
次のタイミングにおいて、ブロック暗号器４１１は、例えば、直前のキーストリームＫ１１を初期値とし、秘密鍵Keyと共に用いることでキーストリームＫ１２を発生して、XOR処理部４１２が、平文データビット列に対して、キーストリームＫ１２を用いてビット単位でXORを掛けて暗号化データビット列に変換する。
【０２７２】
さらに次のタイミングにおいて、ブロック暗号器４１１が、例えば、直前のキーストリームＫ１２を初期値とし、秘密鍵Keyと共に用いることでキーストリームＫ１３を発生して、XOR処理部４０２が、平文データビット列に対して、キーストリームＫ１３を用いてビット単位でXORを掛けて暗号化データビット列に変換する。
【０２７３】
このように、キーストリームが発生される度に、初期値が変化することでキーストリームも変化することになるので、リプレイ攻撃を防御することが可能となる。
【０２７４】
さらに、図１６のケースＣ３で示されるように、NONCEとなる初期値を直前に発生させた暗号化データビット列にしてもよい。
【０２７５】
すなわち、ブロック暗号器４１１は、例えば、最初に、初期値と、秘密鍵KeyとによりキーストリームＫ２１を発生する。そして、XOR処理部４１２は、平文データビット列に対して、キーストリームを用いてビット単位でXORを掛けて暗号化データビット列Ｅ１に変換する。
【０２７６】
次のタイミングにおいて、ブロック暗号器４１１は、例えば、直前の暗号化データビット列Ｅ１を初期値とし、秘密鍵Keyと共に用いることでキーストリームＫ２２を発生する。そして、XOR処理部４１２は、平文データビット列に対して、キーストリームＫ２２を用いてビット単位でXORを掛けて暗号化データビット列Ｅ２に変換する。
【０２７７】
さらに次のタイミングにおいて、ブロック暗号器４１１が、例えば、直前の暗号化データビット列Ｅ２を初期値とし、秘密鍵Keyと共に用いることでキーストリームＫ２３を発生する。そして、XOR処理部４０２は、平文データビット列に対して、キーストリームＫ２３を用いてビット単位でXORを掛けて暗号化データビット列Ｅ３に変換する。
【０２７８】
このように、キーストリームが発生される度に、初期値が変化することでキーストリームも変化することになるので、リプレイ攻撃を防御することが可能となる。
【０２７９】
以上の如く、本開示の通信システムにおいては、PHY（物理）層におけるストリーム暗号を用いるようにしたので、受信装置において、送信フレーム波形を極性反転することで、PSDUの波形を復号することが可能となり、それぞれの送信フレーム波形を容易に同じ形に変形することができ、波形合成が可能となる。
【０２８０】
また、時刻に基づいてフレーム送信ごとにキーストリームを変更することで、送信フレーム波形が毎回異なり、リプレイ攻撃への耐性を向上させることが可能になると共に、暗号化され送信波形が異なっていても波形合成手法により復調／復号性能を向上させることが可能となる。
【０２８１】
さらに、ストリーム暗号化により、任意長の平文データビット列を、暗号化データビット列に変換することができる。
【０２８２】
＜＜４．ソフトウェアにより実行させる例＞＞
ところで、上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のコンピュータなどに、記録媒体からインストールされる。
【０２８３】
図１７は、汎用のコンピュータの構成例を示している。このパーソナルコンピュータは、CPU(Central Processing Unit)１００１を内蔵している。CPU１００１にはバス１００４を介して、入出力インタフェース１００５が接続されている。バス１００４には、ROM(Read Only Memory)１００２およびRAM(Random Access Memory)１００３が接続されている。
【０２８４】
入出力インタフェース１００５には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部１００６、処理操作画面や処理結果の画像を表示デバイスに出力する出力部１００７、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部１００８、LAN（Local Area Network）アダプタなどよりなり、インターネットに代表されるネットワークを介した通信処理を実行する通信部１００９が接続されている。また、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む）、光磁気ディスク（ＭＤ(Mini Disc)を含む）、もしくは半導体メモリなどのリムーバブル記憶媒体１０１１に対してデータを読み書きするドライブ１０１０が接続されている。
【０２８５】
CPU１００１は、ROM１００２に記憶されているプログラム、または磁気ディスク、光ディスク、光磁気ディスク、もしくは半導体メモリ等のリムーバブル記憶媒体１０１１ら読み出されて記憶部１００８にインストールされ、記憶部１００８からRAM１００３にロードされたプログラムに従って各種の処理を実行する。RAM１００３にはまた、CPU１００１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０２８６】
以上のように構成されるコンピュータでは、CPU１００１が、例えば、記憶部１００８に記憶されているプログラムを、入出力インタフェース１００５及びバス１００４を介して、RAM１００３にロードして実行することにより、上述した一連の処理が行われる。
【０２８７】
コンピュータ（CPU１００１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブル記憶媒体１０１１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【０２８８】
コンピュータでは、プログラムは、リムーバブル記憶媒体１０１１をドライブ１０１０に装着することにより、入出力インタフェース１００５を介して、記憶部１００８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部１００９で受信し、記憶部１００８にインストールすることができる。その他、プログラムは、ROM１００２や記憶部１００８に、あらかじめインストールしておくことができる。
【０２８９】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０２９０】
尚、図１７におけるCPU１００１が、図８の符号化部２２２および図９の復号部３２２の機能を実現させる。
【０２９１】
また、本明細書において、システムとは、複数の構成要素（装置、モジュール（部品）等）の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、１つの筐体の中に複数のモジュールが収納されている１つの装置は、いずれも、システムである。
【０２９２】
なお、本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
【０２９３】
例えば、本開示は、１つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【０２９４】
また、上述のフローチャートで説明した各ステップは、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０２９５】
さらに、１つのステップに複数の処理が含まれる場合には、その１つのステップに含まれる複数の処理は、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０２９６】
尚、本開示は、以下のような構成も取ることができる。
【０２９７】
＜１＞  タイミングに応じて異なる情報を初期値として、キーストリームを生成するキーストリーム生成部と、
前記キーストリームにより、送信データを暗号化データに変換する暗号化部と、
前記暗号化データを変調した波形信号を送信する送信部と
を含む送信装置。
＜２＞  前記タイミングに応じて異なる情報は、時刻情報である
＜１＞に記載の送信装置。
＜３＞  前記時刻情報は、GPS（Global Positioning System）時刻情報、UTC（Universal time coordinated：世界協定時）時刻情報、GMT（グリニッジ標準時：Greenwich Mean Time）、JST（日本標準時：Japan Standard Time）時刻情報、および、所定の等時間間隔、または、非等時間間隔によりカウントされるカウンタの値を含む
＜２＞に記載の送信装置。
＜４＞  前記キーストリーム生成部は、前記時刻情報を所定の時間単位で切り捨てた情報に基づいて、前記キーストリームを生成する
＜２＞に記載の送信装置。
＜５＞  前記キーストリーム生成部は、前記時刻情報に加えて、前記送信装置に固有のIDを前記初期値とし、さらに、秘密鍵を用いて、前記キーストリームを生成する
＜２＞に記載の送信装置。
＜６＞  前記タイミングに応じて異なる情報は、直前に生成した前記キーストリーム、または、直前に生成した前記暗号化データである
＜１＞に記載の送信装置。
＜７＞  PayloadよりMSDU（MAC（Media Access Control） Service Data Unit）を生成するMSDU生成部と、
前記MSDUよりCMAC（Cihper-based MAC：暗号ベースメッセージ認証コード）処理によりCMACタグを生成するCMAC処理部とをさらに含み、
前記送信データは、前記MSDUおよび前記CMACタグと、前記MSDUおよび前記CMACタグより生成される誤り訂正符号ECC（Error Correcting Code or Error Check and Correct）とを含む
＜１＞乃至＜６＞のいずれかに記載の送信装置。
＜８＞  前記送信部は、同一の前記送信データが暗号化された暗号化データを変調した波形信号を、異なるタイミングにおいて、繰り返し送信する
＜１＞乃至＜７＞のいずれかに記載の送信装置。
＜９＞  タイミングに応じて異なる情報を初期値として、キーストリームを生成するキーストリーム生成処理と、
前記キーストリームにより、送信データを暗号化データに変換する暗号化処理と、
前記暗号化データを変調した波形信号を送信する送信処理と
を含む送信方法。
＜１０＞  送信装置より送信される、タイミングに応じて異なる情報を初期値として生成されたキーストリームにより送信データが暗号化された暗号化データを変調した波形信号を受信する受信部と、
前記タイミングに応じて異なる情報を初期値としてキーストリームを生成するキーストリーム生成部と、
前記波形信号の波形の極性を、前記キーストリームにより反転させる極性反転部と、
前記極性が反転された波形信号に基づいて、前記送信データを復号する復号部と
を含む受信装置。
＜１１＞  前記タイミングに応じて異なる情報は、時刻情報である
＜１０＞に記載の受信装置。
＜１２＞  前記時刻情報は、GPS（Global Positioning System）時刻情報、UTC（Universal time coordinated：世界協定時）時刻情報、GMT（グリニッジ標準時：Greenwich Mean Time）、JST（日本標準時：Japan Standard Time）時刻情報、および、所定の等時間間隔、または、非等時間間隔によりカウントされるカウンタの値を含む
＜１１＞に記載の受信装置。
＜１３＞  前記キーストリーム生成部は、前記時刻情報を所定の時間単位で切り捨てた情報に基づいて、前記キーストリームを生成する
＜１１＞に記載の受信装置。
＜１４＞  前記キーストリーム生成部は、前記時刻情報に加えて、前記送信装置に固有のIDを前記初期値とし、さらに、秘密鍵を用いて、前記キーストリームを生成する
＜１１＞に記載の受信装置。
＜１５＞  前記タイミングに応じて異なる情報は、直前に生成した前記キーストリーム、または、直前に生成した前記暗号化データである
＜１０＞に記載の受信装置。
＜１６＞  前記送信データは、Payloadに基づいて生成されるMSDU（MAC（Media Access Control） Service Data Unit）と、前記MSDUよりCMAC（Cihper-based MAC：暗号ベースメッセージ認証コード）処理により生成されるCMACタグ、並びに前記MSDUおよびCMACタグより求められる誤り訂正符号ECC（Error Correcting Code or Error Check and Correct）を含み、
前記送信データより、前記誤り訂正符号ECCにより誤り訂正を行って、前記MSDUおよびCMACタグを復号するMSDU復号部と、
前記MSDUよりCMAC（Cihper-based MAC：暗号ベースメッセージ認証コード）処理によりCMACタグを生成し、前記MSDU復号部により復号されたCMACタグと比較し、前記送信データの改竄の有無を判定するCMAC処理部とをさらに含む
＜１０＞乃至＜１５＞のいずれかに記載の受信装置。
＜１７＞  前記受信部は、前記送信装置より、異なるタイミングにおいて、繰り返し送信される、同一の前記送信データが暗号化された暗号化データを変調した波形信号を受信する
＜１０＞乃至＜１６＞のいずれかに記載の受信装置。
＜１８＞  前記送信装置より繰り返し送信される、同一の前記送信データが暗号化された暗号化データを変調した波形信号の波形の極性が、前記極性反転部において、前記キーストリームにより反転された波形を積算して記憶する積算記憶部をさらに含み、
前記復号部は、前記積算記憶部に積算して記憶されている、前記極性が反転された波形信号に基づいて、前記送信データを復号する
＜１７＞に記載の受信装置。
＜１９＞  前記極性反転部は、前記波形信号の波形の極性と、前記キーストリームにより設定される係数との乗算により、前記波形信号の波形の極性を反転させる
＜１０＞乃至＜１８＞のいずれかに記載の受信装置。
＜２０＞  送信装置より送信される、タイミングに応じて異なる情報を初期値として生成されたキーストリームにより送信データが暗号化された暗号化データを変調した波形信号を受信する受信処理と、
前記タイミングに応じて異なる情報を初期値としてキーストリームを生成するキーストリーム生成処理と、
前記波形信号の波形を、前記キーストリームにより極性反転させる極性反転処理と、
前記極性反転された波形信号に基づいて、前記送信データを復号する復号処理と
を含む受信方法。
【符号の説明】
【０２９８】
２００  通信システム，  ２０１  送信装置，  ２０２  受信装置，  ２０３  クラウドサーバ，  ２１１，２１１−１，２１１−２  アプリケーションプログラム，  ２２１  MAC暗号化部，  ２２２  符号化部，  ２２３  LPWA送信部，  ２３１  MSDU生成部，  ２３２  CMAC処理部，  ２５１  誤り訂正符号付加部，  ２５２  XOR処理部，  ２５３  キーストリーム発生器，  ２５４  記憶部，  ２５５  GPS時刻情報取得部，  ２５６  同期パターン生成部，  ２５７  スイッチ，  ２５７ａ，２５７ｂ  端子，  ２７１  変調部，  ２７２  ミキサ，  ２７３  局部発振器，  ２７４  BPF，  ２７５  増幅器，  ２７６  アンテナ，  ３２１  LPWA受信部，  ３２２  復号部，  ３２３  MAC復号部，  ３３１  アンテナ，  ３３２  増幅器，  ３３３  ミキサ，  ３３４  局部発振器，  ３３５  BPF，  ３３６  位相補正部，  ３３７  同期検出部，  ３５１  スイッチ，  ３５１ａ，３５１ｂ  端子，  ３５２  極性反転部，  ３５３  復調器，  ３５４  積算部，  ３５５  複合機，  ３５６  キーストリーム発生器，  ３５７  記憶部，  ３５８  GPS時刻情報取得部，  ３５９  同期信号波形保存部，  ３７１  MSDU生成部，  ３７２  CMAC処理部
【図１】
2020059535.tif 000003
【図２】
2020059535.tif 000004
【図３】
2020059535.tif 000005
【図４】
2020059535.tif 000006
【図５】
2020059535.tif 000007
【図６】
2020059535.tif 000008
【図７】
2020059535.tif 000009
【図８】
2020059535.tif 000010
【図９】
2020059535.tif 000011
【図１０】
2020059535.tif 000012
【図１１】
2020059535.tif 000013
【図１２】
2020059535.tif 000014
【図１３】
2020059535.tif 000015
【図１４】
2020059535.tif 000016
【図１５】
2020059535.tif 000017
【図１６】
2020059535.tif 000018
【図１７】
2020059535.tif 000019
【国際調査報告】
2020059535.tif 000020
2020059535.tif 000021
2020059535.tif 000022
2020059535.tif 000023