以下、図面を参照して、実施例を挙げながら本発明を適用した実施の形態について詳しく説明する。特に知っておきたいのは、食い違いが生じない限り、本出願の実施例とその技術的特徴を適宜に組み合わて、種々の発明を形成することができることである。
後述する実施例は、以下の可視光信号の復号化方法を提供する。すなわち、前記可視光信号が送信端で秘密キーにて暗号化される手段と、前記秘密キーを受信して、前記秘密キーにて前記可視光信号を復号化する手段と、を有する可視光信号の復号化処理方法であって、前記秘密キーの受信は、受信端のステートマシン状態に対応する前記秘密キーを受信するステップ、又は、前記可視光信号に基づいて、前記秘密キーの受信に用いる指示情報を受信し、そして前記指示情報によって前記秘密キーを受信するステップ、を備えるものである。
上記のステップによれば、ステートマシンの状態に対応する秘密キー、又は、指示情報を用いて受信端を指定する秘密キーが利用されているので、関連技術における復号化できない問題を解決することができる。
さらに、前記可視光信号に基づいて、前記秘密キーの受信に用いる指示情報を受信し、そして前記指示情報によって前記秘密キーを受信するステップは、受信した前記可視光信号をデジタル信号に変換するステップと、前記デジタル信号を擬似コード列指示コードと擬似コード信号を有する信号に分解するステップと、前記擬似コード列指示コードに対応する擬似コード列を照合するステップであって、前記擬似コード列が前記秘密キーであるステップと、前記擬似コード列に基づいて前記擬似コード信号を復号化するステップと、を備えるものである。
さらに、前記デジタル信号を擬似コード列指示コードと擬似コード信号を有する信号に分解し、前記擬似コード列指示コードに対応する擬似コード列を照合するステップは、前記デジタル信号をデバイスアドレスコードと第1合成信号に分解するステップと、前記第1合成信号を前記擬似コード列指示コードと前記擬似コード信号に分解するステップと、前記デバイスアドレスコードに基づいて、前記擬似コード列指示コードが合法であるかどうかを判定し、合法であると判定した場合、前記擬似コード列指示コードに対応する擬似コード列を照合するステップと、を備えるものである。
後述する実施例は以下の通信装置を提供する。この通信装置は、送信端から可視光信号を受信する受信装置であって、前記可視光信号は、前記送信端で秘密キーにて暗号化される受信装置と、前記秘密キーを受信して、前記秘密キーにて前記可視光信号を復号化する復号化器と、を有する通信装置であって、前記秘密キーの受信は、受信端のステートマシン状態に対応する前記秘密キーを受信するステップ、又は、前記可視光信号に基づいて、前記秘密キーの受信に用いる指示情報を受信し、そして前記指示情報によって前記秘密キーを受信するステップ、を備えるものである。
後述する実施例は以下の可視光信号の暗号化方法を提供する。この可視光信号の暗号化方法は、秘密キーでデータを暗号化するステップと、暗号化された当該データを可視光信号として発送するステップであって、前記秘密キーは、送信端のステートマシンの状態により変化し、又は、前記可視光信号は前記秘密キーの受信に用いる指示情報を有するステップと、を備えるものである。
前記暗号化方法において、指示情報を有する光信号、又は、ステートマシンの状態に対応する秘密キーが利用されているので、関連技術における復号化できない問題を解決することができる。
さらに、前記可視光信号に前記指示情報がある場合、前記秘密キーで当該データを暗号化し、暗号化された当該データを前記可視光信号として発送するステップは、生成された擬似コード列と前記データを符号化して、擬似コード信号を得るステップであって、前記擬似コード列は前記秘密キーであるステップと、前記擬似コード列に対応する擬似コード列指示コードを前記擬似コード信号のヘッダ部と合成して、前記擬似コード列指示コードと前記擬似コード信号を含む合成信号を得るステップと、前記合成信号を可視光の形で発送するステップと、を備えるものである。
さらに、前記擬似コード列指示コードと前記擬似コード信号を含む合成信号を得て、前記合成信号を可視光の形で発送するステップは、前記擬似コード列に対応する擬似コード列指示コードを前記擬似コード信号のヘッダ部と合成して、第1合成信号を得るステップと、前記第1合成信号のヘッダ部をデバイスアドレスコードと合成して、第2合成信号を得るステップと、前記第2合成信号を可視光の形で発送するステップと、を備えるものである。
後述する実施例は以下の通信装置を提供する。この通信装置は、秘密キーでデータを暗号化する暗号化装置と、暗号化された当該データを可視光信号として発送する送信ユニットであって、前記秘密キーは、送信端のステートマシンの状態により変化するものであり、又は、前記可視光信号は前記秘密キーの受信に用いる指示情報を有する送信ユニットと、を備えるものである。
さらに、前記暗号化装置は、擬似コード列及び対応する擬似コード列指示コードを出力する擬似コード生成器と、前記擬似コード列と前記データに論理演算を行い、擬似コード信号を出力する畳み込み暗号化器と、前記擬似コード列指示コードを前記擬似コード信号のヘッダ部と合成して、前記擬似コード列指示コードと前記擬似コード信号を含む合成信号を出力する擬似コード列指示コード合成ユニットであって、前記擬似コード列は前記秘密キーであり、前記擬似コード列指示コードは前記指示情報である擬似コード列指示コード合成ユニットとを備え、前記送信ユニットは、前記第2合成信号を可視光の形で発送するものである。
さらに、前記擬似コード列指示コード合成ユニットは、前記擬似コード列指示コードを前記擬似コード信号のヘッダ部と合成して、第1合成信号を出力する。前記装置は、さらに、前記第1合成信号のヘッダ部をデバイスアドレスコードと合成して、第2合成信号を出力するデバイスアドレスコード合成ユニットを有するものである。この場合、前記送信ユニットは、前記第2合成信号を可視光の形で発送する。
以下、上記の4つの最適な実施例を説明する。また、上記に開示されている4つの構成要素の適宜な組み合わせにより、種々の発明を形成できる。
実施例1
図a1は、本発明の実施例に関する非対称暗号化による可視光通信方法の流れを説明するためのフローチャートである。図a1に示すように、非対称暗号化による可視光通信方法は、以下に示す複数のステップで構成される。
ステップS1において、ベースバンドデータと擬似コード生成器101から生成された擬似コード列が畳み込み暗号化器102の論理演算によって、暗号化されたデータを得られ(例えば、前記データはIDデータ、暗号化されたデータは擬似コード信号であってもよいが、以下、IDデータを例として説明する)、前記暗号化されたIDデータを擬似コード列指示コード処理ユニット103に発送し、また擬似コード列指示コードと合成してから変調器104に発送して、信号の変調を行う。
ステップS2において、変調された信号が、LED105に発送される。LED105は、変調された信号を高速点滅する可視光信号の形で可視光受信器に送信する。
ステップS3において、可視光受信器201は高速点滅する可視光信号を二進法のデジタル信号に変換し、復調器202に発送して、復調する。復調器202は、復調された信号を擬似コード列指示コード処理ユニット203に発送する。
ステップS4において、擬似コード列指示コード処理ユニット203は、復調された信号を擬似コード列指示コードと暗号化IDデータの2つに分離して、擬似コード列指示コードを擬似コード列照合ユニット204、暗号化IDデータを畳み込み復号化器205に発送する。
ステップS5において、擬似コード列照合ユニット204は、受信した擬似コード列指示コードに基づいて、合法かどうかを判定する。判定結果が、合法である場合、対応する擬似コード列を照合して、擬似コード列を畳み込み復号化器205に発送する。判定結果が非合法である場合、パスワードエラーが表示される。
ステップS6において、暗号化IDデータと照合により得られた擬似コード列は、畳み込み復号化器205のXOR演算によって、復号化されたIDデータが得られ、そのデータをID判定器206に発送する。
ステップS7において、初期データは、数字で表現されたものであり、ベースバンドデータとも称する。本実施例の最適実施形態では、初期データは、主にIDデータから構成される。IDデータは、ユーザ毎に与えられている唯一の識別コードである。受信端の装置制御回路207は、復号化されたIDデータに基づいて、特定権限を持っているかを判定し、装置の制御が必要かどうかを決定する。
擬似コード列は、擬似コード生成器から生成された1組の二進数の数字であって、PNコード、Turboコード、Walshコード、Barkerコードなどの数字列でも、利用者の設定した二進数の数字列として使ってもよい。
擬似コード列指示コードは、自然数であって、対応するユニットのステートマシンの状態を表し、送信端と受信端に対して、どのセットの擬似コード列を使って、暗号化及び復号化の動作指定を行うかを示すものである。例えば、擬似コード列指示コードが、二進数の00000100である場合、十進数で4、ユニットステートマシンが状態4となり、対応する擬似コード列は、1010110110011100であるという意味である。擬似コード列指示コードが、二進数の00000101である場合、十進数で5、ユニットステートマシンが状態5となり、対応する擬似コード列は、1010110110011001であるという意味である。このために、擬似コード列指示コードによって、擬似コード列が異なっている。また、擬似コード列指示コードと擬似コード列との間に、一対一対応が存在する。擬似コード列指示コードは、重複なしの降順に並び替わる大きな数字である。昇順とは、擬似コード列指示コードが、送信端による信号送信回数によって、自動的に1ずつ増えて行くことである。降順とは、擬似コード列指示コードが、送信端による信号送信回数によって、自動的に1ずつ減って行くことである。擬似コード列指示コードは、送信端と受信端に対して、対応する擬似コード列にて暗号化と復号化の動作指定を行うものであるので、送信端が信号を送信する都度、擬似コード列指示コードが自動的に1ずつ増えて行く(或いは、自動的に1ずつ減って行く)。
本実施例の最適実施形態において、論理XORの論理演算を使っているが、例えば、論理NOR、論理XNORなどの論理演算でもよい。
本実施例に関する非対称暗号化の可視光通信方法において、送信端と受信端により伝送されているのは、初期データではなく、暗号化されたスクランブルコード信号であり、スクランブルコードは、初期データに特定の論理演算を行って新たに生成されたデータ、例えば、初期データと擬似コード列に畳み込み又はシフトなどの演算を行うことが理解されるべきである。
本実施例はさらに、非対称暗号化による可視光通信システムを提供する。この非対称暗号化による可視光通信システムは、送信端と受信端を有するものであって、送信端と受信端は、前記の非対称暗号化による可視光通信方法にて通信を行う。
図a2は、本発明の実施例に関する非対称暗号化による可視光通信システム送信端の構成を説明するためのブロック図である。本実施例において、送信端は、擬似コード列指示コードを生成する擬似コード生成器101と、符号化を行う畳み込み暗号化器102と、擬似コード列指示コードを扱う擬似コード列指示コード処理ユニット103と、可視光信号を発送信するLED105とを有するものである。さらに、送信端は、信号を変調する変調器104を備えるものである。
図a3は、本発明の実施例に関する非対称暗号化による可視光通信システム受信端の構成を説明するためのブロック図である。本実施例において、受信端は、可視光信号を受信する可視光受信器201と、擬似コード列指示コードと暗号化IDデータを取得する擬似コード列指示コード処理ユニット203と、擬似コード列を出力する擬似コード列照合ユニット204と、復号化を行う畳み込み復号化器205と、IDデータを出力するID判定器206と、装置制御回路207とを備えるものである。受信端は、さらに、信号を復調する復調器202を備えるものである。
パスワードエラーが表示されるものとして、ブザーやシグナルランプに限らず、その他の方式を使用できるものであることは理解されるべきである。
図a4は、本発明の実施例に関する送信信号の構成を説明するためのブロック図である。本実施例において、送信信号のデータは主に、擬似コード列指示コードと暗号化IDデータの2つから構成される。送信端と受信端に設定したIDデータが、いずれも16ビットの二進数の0000000000000100である。擬似コード列指示コードは、8ビットの二進数の00000010であり、対応する擬似コード列が16ビットの二進数の1010101100100010である。以下、詳しく説明する。
ステップS1において、畳み込み暗号化器102において、ベースバンドデータと擬似コード生成器101から生成された擬似コード列に、XOR演算を行って、暗号化されたIDデータが得られる。演算の結果は、下表のとおりである。
この表から、暗号化されたIDデータは、1010101100100110となり、初期のIDデータと異なっているので、初期データに暗号化を行ったことがわかる。
暗号化されたIDデータは、擬似コード列指示コード処理ユニット103に発送される。そして、暗号化されたIDデータと擬似コード列指示コード00000010をヘッダ部として、暗号化されたIDデータに擬似コード列指示コードを追加して、変調器104に発送、信号変調する。出力する数字が000000101010101100100110となる。
ステップS2において、変調された信号をLED105に発送する。LED105は、変調された信号である000000101010101100100110を高速点滅する可視光信号の形にて可視光受信器に送信する。
ステップS3において、可視光受信器201は、高速点滅する可視光信号を二進数のデジタル信号に変換してから復調器202に発送して復調する。復調器202は、復調された信号を擬似コード列指示コード処理ユニット203に発送する。
ステップS4において、擬似コード列指示コード処理ユニット203は、復調された信号である000000101010101100100110を擬似コード列指示コード00000010と暗号化IDデータ1010101100100110の2部分に分離して、擬似コード列指示コード00000010を擬似コード列照合ユニット204、暗号化されたIDデータ1010101100100110を畳み込み復号化器205に発送する。
ステップS5において、擬似コード列照合ユニット204は、擬似コード列指示コードである00000010を入力する。そして、擬似コード列照合ユニット204は、記憶されている擬似コード列指示コードを現在受信した擬似コード列指示コードと比較し、受信した擬似コード列指示コードに基づいて、合法かどうかを判定する。擬似コード列指示コードは、昇順にて並び替わる場合(送信端の信号発送回数によって、擬似コード列指示コードが自動的に1ずつ増えていくこと)、現在受信した擬似コード列指示コードが記憶されている擬似コード列指示コードより大きければ、現在受信した信号が合法であることを判定し、受信した擬似コード列を畳み込み復号化器205に発送する。そうでなければ、当該信号が非合法であることを判定し、パスワードエラーが表示される。
同様に、降順にて並び替わる場合(送信端の信号発送回数によって、擬似コード列指示コードが自動的に1ずつ減っていくこと)、現在受信した擬似コード列指示コードが記憶されている擬似コード列指示コードより小さければ、現在受信した信号が合法であることを判定し、受信した擬似コード列を畳み込み復号化器205に発送する。そうでなければ、当該信号が非合法であることを判定し、同様にパスワードエラーが表示される。
ステップS6において、畳み込み復号化器205において、暗号化されたIDデータである1010101100100110と照合によって得られた擬似コード列1010101100100010に、XOR演算を行う。演算結果は、下表の通りである。
この表から、復号化されたIDデータが、0000000000000100となり、また、ID判定器206に発送されることがわかる。
ステップS7において、ID判定器206は、受信した復号化IDデータと設定したIDデータと比較し、同じである場合、合法であると判定して、合法であるIDデータを装置制御回路207に発送するが、そうではない場合、非合法であると判定して、パスワードエラーが表示される。このために、ID判定器206は、0000000000000100である信号を受信する。受信端に設定したIDデータも0000000000000100であるので、今回受信した信号が合法的なものと認められ、受信端は、送信端から受信された暗号化信号について、問題なく復号化を行われる。
本実施例によれば、ハイスピードカメラでの可視光信号の取得及びコピーを防止することができる。例えば、本実施例において、発送されてきた暗号化IDデータが、送受信の間に、ハイスピードカメラに取得、コピーされる。コピーされた信号が、アイドルシグナルの000000101010101100100110である。受信端はすでに、受信した合法的な信号の擬似コード列指示コードを00000010として記憶されている。受信端は、前記コピーされた信号を受信する際に、その擬似コード列指示コードの分離によって、同様に00000010も得られる。但し、暗号化の昇順ルールに基づいて、以降に受信する擬似コード列指示コードが、00000010より大きくならなければならない(降順ルールの場合、00000010より小さくならなければならない)とする。コピーされた信号が完全に同じなものであるので、非合法と判定されて、パスワードエラーが表示される。
さらに、例えば、ハイスピードカメラによって取得、コピーされた可視光信号は、修正又は偽造により、新しい信号を得る。つまり、擬似コード列指示コードだけを00000011に修正し、それ以外は変更しないままにする。擬似コード列照合ユニット204は、昇順ルールに基づいて、合法であると判定して、擬似コード列指示コード00000011に対応する擬似コード列を照合する。その際は、前記擬似コード列は、暗号化された擬似コード列と異なる。例えば、擬似コード列照合ユニットに照合された、対応する擬似コード列は、1010101100100011である。当該擬似コード列を用いてIDデータに復号化を行う。演算手順は、下表の通りである。
この表から、偽信号にて復号化されたIDデータが0000000000000101であり、受信端に設定したIDデータが0000000000000100であり、異なっているので、ID判定器206は、当該信号を非合法と判定して、パスワードエラーが表示されることがわかる。
送信端と受信端に設定したIDデータが、いずれも16ビットの二進数の0000000000000010、擬似コード列指示コードは、8ビットの二進数の00000010、対応する擬似コード列が16ビットの二進数の1010101100100010であることとする。以下、詳しく説明する。
ステップS1において、畳み込み暗号化器102において、ベースバンドデータと擬似コード生成器101から生成された擬似コード列に、XOR演算を行って、暗号化されたIDデータが得られる。演算の結果は、下表のとおりである。
この表から、暗号化されたIDデータは、1010101100100000となり、初期のIDデータと異なっているので、初期データに暗号化を行ったことがわかる。
暗号化されたIDデータは、擬似コード列指示コード処理ユニット103に発送される。そして、暗号化されたIDデータと擬似コード列指示コード00000010をヘッダ部として、暗号化されたIDデータに擬似コード列指示コードを追加して、変調器104に発送し、信号変調する。出力する数字が000000101010101100100000となる。
ステップS2において、変調された信号をLED105に発送する。LED105は、変調された信号である000000101010101100100000を高速点滅する可視光信号の形にて可視光受信器に送信する。
ステップS3において、可視光受信器201は、高速点滅する可視光信号を二進数のデジタル信号に変換してから復調器202に発送して復調する。復調器202は、復調された信号を擬似コード列指示コード処理ユニット203に発送する。
ステップS4において、擬似コード列指示コード処理ユニット203は、復調された信号である000000101010101100100000を擬似コード列指示コード00000010と暗号化IDデータ1010101100100000の2部分に分離して、擬似コード列指示コード00000010を擬似コード列照合ユニット204、暗号化されたIDデータ1010101100100000を畳み込み復号化器205に発送する。
ステップS5において、擬似コード列照合ユニット204は、擬似コード列指示コードである00000010を入力する。そして、擬似コード列照合ユニット204は、記憶されている擬似コード列指示コードを現在受信した擬似コード列指示コードと比較し、受信した擬似コード列指示コードに基づいて、合法かどうかを判定する。擬似コード列指示コードは、昇順にて並び替わる場合(送信端の信号発送回数によって、擬似コード列指示コードが自動的に1ずつ増えていくこと)、現在受信した擬似コード列指示コードが記憶されている擬似コード列指示コードより大きければ、現在受信した信号が合法であることを判定し、受信した擬似コード列を畳み込み復号化器205に発送する。そうでなければ、当該信号が非合法であることを判定し、パスワードエラーが表示される。
同様に、降順にて並び替わる場合(送信端の信号発送回数によって、擬似コード列指示コードが自動的に1ずつ減っていくこと)、現在受信した擬似コード列指示コードが記憶されている擬似コード列指示コードより小さければ、現在受信した信号が合法であることを判定し、受信した擬似コード列を畳み込み復号化器205に発送する。そうでなければ、当該信号が非合法であることを判定し、同様にパスワードエラーが表示される。
ステップS6において、畳み込み復号化器205において、暗号化されたIDデータである1010101100100000と照合によって得られた擬似コード列1010101100100010に、XOR演算を行う。演算結果は、下表の通りである。
この表から、復号化されたIDデータが、0000000000000010となり、また、ID判定器206に発送されることがわかる。
ステップS7において、ID判定器206は、受信した復号化IDデータと設定したIDデータと比較し、同じである場合、合法であると判定して、合法であるIDデータを装置制御回路207に発送するが、そうではない場合、非合法であると判定して、パスワードエラーが表示される。このために、ID判定器206は、0000000000000010である信号を受信する。受信端に設定したIDデータも0000000000000010であるので、今回受信した信号が合法的なものと認められ、受信端は、送信端から受信された暗号化信号について、問題なく復号化を行われる。
送信端と受信端に設定したIDデータが、いずれも16ビットの二進数の0000000000000011である。擬似コード列指示コードは、8ビットの二進数の00000010であり、対応する擬似コード列が16ビットの二進数の0000000000100000である。以下、詳しく説明する。
ステップS1において、畳み込み暗号化器102において、ベースバンドデータと擬似コード生成器101から生成された擬似コード列に、NOR演算を行って、暗号化されたIDデータが得られる。演算の結果は、下表のとおりである。
この表から、暗号化されたIDデータは、1111111111011100となり、初期のIDデータと異なっているので、初期データに暗号化を行ったことがわかる。
暗号化されたIDデータは、擬似コード列指示コード処理ユニット103に発送される。そして、暗号化されたIDデータと擬似コード列指示コード00000010をヘッダ部として、暗号化されたIDデータに擬似コード列指示コードを追加して、変調器104に発送、信号変調する。出力する数字が000000101111111111011100となる。
ステップS2において、変調された信号をLED105に発送する。LED105は、変調された信号である000000101111111111011100を高速点滅する可視光信号の形にて可視光受信器に送信する。
ステップS3において、可視光受信器201は、高速点滅する可視光信号を二進数のデジタル信号に変換してから復調器202に発送して復調する。復調器202は、復調された信号を擬似コード列指示コード処理ユニット203に発送する。
ステップS4において、擬似コード列指示コード処理ユニット203は、復調された信号である000000101111111111011100を擬似コード列指示コード00000010と暗号化IDデータ1111111111011100の2部分に分離して、擬似コード列指示コード00000010を擬似コード列照合ユニット204、暗号化されたIDデータ1111111111011100を畳み込み復号化器205に発送する。
ステップS5において、擬似コード列照合ユニット204は、擬似コード列指示コードである00000010を入力する。そして、擬似コード列照合ユニット204は、記憶されている擬似コード列指示コードを現在受信した擬似コード列指示コードと比較し、受信した擬似コード列指示コードに基づいて、合法かどうかを判定する。擬似コード列指示コードは、昇順にて並び替わる場合(送信端の信号発送回数によって、擬似コード列指示コードが自動的に1ずつ増えていくこと)、現在受信した擬似コード列指示コードが記憶されている擬似コード列指示コードより大きければ、現在受信した信号が合法であることを判定し、受信した擬似コード列を畳み込み復号化器205に発送する。そうでなければ、当該信号が非合法であることを判定し、パスワードエラーが表示される。
同様に、降順にて並び替わる場合(送信端の信号発送回数によって、擬似コード列指示コードが自動的に1ずつ減っていくこと)、現在受信した擬似コード列指示コードが記憶されている擬似コード列指示コードより小さければ、現在受信した信号が合法であることを判定し、受信した擬似コード列を畳み込み復号化器205に発送する。そうでなければ、当該信号が非合法であることを判定し、同様にパスワードエラーが表示される。
ステップS6において、畳み込み復号化器205において、暗号化されたIDデータである1111111111011100と照合によって得られた擬似コード列0000000000100000に、NOR演算を行う。演算結果は、下表の通りである。
この表から、復号化されたIDデータが、0000000000000011となり、また、ID判定器206に発送されることがわかる。
ステップS7において、ID判定器206は、受信した復号化IDデータと設定したIDデータと比較し、同じである場合、合法であると判定して、合法であるIDデータを装置制御回路207に発送するが、そうではない場合、非合法であると判定して、パスワードエラーが表示される。このために、ID判定器206は、0000000000000011である信号を受信する。受信端に設定したIDデータも0000000000000011であるので、今回受信した信号が合法的なものと認められ、受信端は、送信端から受信された暗号化信号について、問題なく復号化を行われる。
送信端と受信端に設定したIDデータが、いずれも16ビットの二進数の0000000000010000である。擬似コード列指示コードは、8ビットの二進数の10000000であり、対応する擬似コード列が16ビットの二進数の0000100000000000である。以下、詳しく説明する。
ステップS1において、畳み込み暗号化器102において、ベースバンドデータと擬似コード生成器101から生成された擬似コード列に、XNOR演算を行って、暗号化されたIDデータが得られる。演算の結果は、下表のとおりである。
この表から、暗号化されたIDデータは、1111011111101111となり、初期のIDデータと異なっているので、初期データに暗号化を行ったことがわかる。
暗号化されたIDデータは、擬似コード列指示コード処理ユニット103に発送される。そして、暗号化されたIDデータと擬似コード列指示コード10000000をヘッダ部として、暗号化されたIDデータに擬似コード列指示コードを追加して、変調器104に発送、信号変調する。出力する数字が100000001111011111101111となる。
ステップS2において、変調された信号をLED105に発送する。LED105は、変調された信号である100000001111011111101111を高速点滅する可視光信号の形にて可視光受信器に送信する。
ステップS3において、可視光受信器201は、高速点滅する可視光信号を二進数のデジタル信号に変換してから復調器202に発送して復調する。復調器202は、復調された信号を擬似コード列指示コード処理ユニット203に発送する。
ステップS4において、擬似コード列指示コード処理ユニット203は、復調された信号である100000001111011111101111を擬似コード列指示コード10000000と暗号化IDデータ1111011111101111の2部分に分離して、擬似コード列指示コード10000000を擬似コード列照合ユニット204、暗号化されたIDデータ1111011111101111を畳み込み復号化器205に発送する。
ステップS5において、擬似コード列照合ユニット204は、擬似コード列指示コードである10000000を入力する。そして、擬似コード列照合ユニット204は、記憶されている擬似コード列指示コードを現在受信した擬似コード列指示コードと比較し、受信した擬似コード列指示コードに基づいて、合法かどうかを判定する。擬似コード列指示コードは、昇順にて並び替わる場合(送信端の信号発送回数によって、擬似コード列指示コードが自動的に1ずつ増えていくこと)、現在受信した擬似コード列指示コードが記憶されている擬似コード列指示コードより大きければ、現在受信した信号が合法であることを判定し、受信した擬似コード列を畳み込み復号化器205に発送する。そうでなければ、当該信号が非合法であることを判定し、パスワードエラーが表示される。
同様に、降順にて並び替わる場合(送信端の信号発送回数によって、擬似コード列指示コードが自動的に1ずつ減っていくこと)、現在受信した擬似コード列指示コードが記憶されている擬似コード列指示コードより小さければ、現在受信した信号が合法であることを判定し、受信した擬似コード列を畳み込み復号化器205に発送する。そうでなければ、当該信号が非合法であることを判定し、同様にパスワードエラーが表示される。
ステップS6において、畳み込み復号化器205において、暗号化されたIDデータである1111011111101111と照合によって得られた擬似コード列0000100000000000に、XNOR演算を行う。演算結果は、下表の通りである。
この表から、復号化されたIDデータが、0000000000010000となり、また、ID判定器206に発送されることがわかる。
ステップS7において、ID判定器206は、受信した復号化IDデータと設定したIDデータと比較し、同じである場合、合法であると判定して、合法であるIDデータを装置制御回路207に発送するが、そうではない場合、非合法であると判定して、パスワードエラーが表示される。このために、ID判定器206は、0000000000010000である信号を受信する。受信端に設定したIDデータも0000000000010000であるので、今回受信した信号が合法的なものと認められ、受信端は、送信端から受信された暗号化信号について、問題なく復号化を行われる。
以上説明したように、本実施例に関する非対称暗号化による可視光通信方法及びシステムは、同期の暗号化方法に比べて、コスト効率がよい、オペレーティングが容易で技術的に実現可能、送信端と受信端が同じ同期クロックを持つことが必要ないという利点がある。さらに、ハイスピードカメラでの可視光信号の取得・コピーによるパスワードの漏洩が防止でき、可視光通信によるIoTの安全性を大いに向上できる効果がある。本実施例は、光制御型ロック、光制御型アクセス制御システムにも適用される。
実施例2
図b1は、本発明の実施例2に関する送信装置の構成を説明するためのブロック図である。前記送信装置は、ベースバンドデータ記憶装置100bと、擬似コード生成器101bと、畳み込み暗号化器102bと、擬似コード列指示コード合成ユニット103bと、デバイスアドレスコード合成ユニット104bと、変調器105b及び可視光送信ユニット106bとを備えるものである。前記ベースバンドデータ記憶装置100bは、ID情報を記憶するものであって、前記ID情報は利用者IDを表すデータである。前記擬似コード生成器101bは、前記畳み込み暗号化器102bに擬似コード列、前記擬似コード列指示コード合成ユニット103bに擬似コード列指示コードを供給する。前記畳み込み暗号化器102bは、前記擬似コード列と前記送信端のID情報に論理演算を行い、擬似コード信号を出力する。擬似コード列指示コード合成ユニット103bは、前記畳み込み暗号化器102bから出力した擬似コード信号に擬似コード列指示コードを追加し、第1合成信号が得られて、前記第1合成信号を前記デバイスアドレスコード合成ユニット104bに出力する。前記デバイスアドレスコード合成ユニット104bは、前記畳み込み暗号化器102bから送ってきた第1合成信号のヘッダ部にデバイスアドレスコードを追加して、第2合成信号として出力する。前記変調器105bは、前記デバイスアドレスコード合成ユニット104bから出力した第2合成信号を変調し、前記可視光送信ユニット106bに発送して、第2合成信号を可視光の形で送信する。
さらに、前記送信ユニット106bはLEDランプである。
図b2は、本発明の実施例2に関する複数ユーザによる非対称暗号化の受信装置の構成を説明するためのブロック図である。前記受信装置は、可視光受信器201bと、復調器202bと、デバイスアドレスコード分解ユニット203bと、擬似コード列照合ユニット204bと、擬似コード列指示コード分解ユニット205bと、畳み込み復号化器206bと、照合ユニット207bと、ID判定装置208bと、装置制御回路209bとを備えるものである。前記可視光受信器201bは、前記送信装置から送信してきた光信号を電気信号に変換してから、電気信号をデジタル信号に変換する。前記復調器202bは、前記可視光受信器201bから出力したデジタル信号を復調する。前記デバイスアドレスコード分解ユニット203bは、復調器202bより出力した信号から、デバイスアドレスコードと第1合成信号を分離する。前記擬似コード列照合ユニット204bは、前記デバイスアドレスコードに基づいて対応する擬似コード列を出力する。前記擬似コード列指示コード分解ユニット205bは、前記デバイスアドレスコード分解ユニット203bより出力した第1合成信号を擬似コード列指示コードと擬似コード信号に分解して、擬似コード列指示コード及び擬似コード信号を前記擬似コード列照合ユニット204b及び畳み込み復号化器206bに別々に送信する。前記照合ユニット207bは、デバイスアドレスコードに基づいて、現在信号の擬似コード列指示コードについて合法かどうかを判定する。前記畳み込み復号化器206bは、前記擬似コード列照合ユニット204bより出力した擬似コード列及び擬似コード信号に論理演算を行い、ID情報を出力する。前記ID判定装置208bは、前記畳み込み復号化器206bと前記照合ユニット207bより出力したID情報が同じかどうかを判定し、同じである場合、前記ID情報を前記装置制御回路209bに発送する。前記装置制御回路209bは、前記ID判定装置208bより出力した信号に基づいて、対応する装置に対して制御、又は、上位装置への通信を行う。
上述の実施例は複数ユーザによる非対称暗号化の送信装置と受信装置について説明しているが、以下、複数ユーザによる非対称暗号化の送信方法及び受信方法について説明する。
図b3は、本発明の実施例2に関する複数ユーザによる非対称暗号化の送信方法の流れを説明するためのフローチャートである。送信方法は、以下に示す複数のステップで構成される。
ステップS11において、送信装置のID情報及び生成された擬似コード列に論理演算を行い、擬似コード信号が得られる。
ステップS12において、前記擬似コード列に対応する擬似コード列指示コードを前記擬似コード信号のヘッダ部に追加して、第1合成信号が得られる。
前記擬似コード列指示コードは、例えば、信号を送信する都度、前記擬似コード列指示コードが1ずつ増えていく(又は、減っていく)ように、信号の送信回数によって変化する、重複なしの昇順に並び替わる大きな数字である。
ステップS13において、前記第1合成信号のヘッダ部にデバイスアドレスコードを追加して、第2合成信号が得られる。
前記ステップS11において、前記論理演算は、XOR演算を行われている。前記ステップS13において、前記デバイスアドレスコードがID情報と異なっているが、ID情報とは一対一の関係である。利用者は1人につき1つのIDを保有するものとする。
ステップS14において、前記第2合成信号を変調する。
ステップS15において、可視光信号の形で変調された第2合成信号を発送する。
図b4は、本発明の実施例2に関する複数ユーザによる非対称暗号化の受信方法の流れを説明するためのフローチャートである。受信方法は、以下に示す複数のステップから構成される。
ステップS21において、受信された可視光信号をデジタル信号に変換する。
ステップS22において、前記デジタル信号を復調する。
ステップS23において、復調されたデジタル信号をデバイスアドレスコードと第1合成信号に分解する。
ステップS24において、前記第1合成信号を擬似コード列指示コードと擬似コード信号に分解する。
ステップS25において、デバイスアドレスコードに基づいて、擬似コード列指示コードについて、合法であるかどうかを判定する。合法であると判定する場合、擬似コード列指示コードに対応する擬似コード列の擬似コード列を照合する。
例えば、擬似コード列指示コードが、重複なしの昇順に並び替わる大きな数字である場合、前記デバイスアドレスコードに基づいて、既に受信された擬似コード列指示コードを照合して、前記擬似コード列指示コードが既に受信された擬似コード列指示コードより小さいか、又は等しい場合、無効と判定するが、そうでない場合、合法であると判定する。或いは、擬似コード列指示コードが、重複なしの降順に並び替わる大きな数字である場合、前記デバイスアドレスコードに基づいて、前記擬似コード列指示コードが既に受信された擬似コード列指示コードより大きいか、又は等しい場合、無効と判定するが、そうでない場合、合法であると判定する。
ステップS26において、擬似コード列と擬似コード信号に復号処理を行い、ID情報を出力する。
ステップS27において、前記デバイスアドレスコードに基づいて、該当装置に対応するID情報を照合して、また前記ID情報を復号によって得られた前記ID情報と比較し、同じである場合、合法であると判定して、合法であるID情報を出力する。
ステップS28において、合法であると判定しているID情報に基づいて、該当する装置を制御する。
以下、可視光通信によるIoTに本発明の実施例を適用する事例について、上述の実施例をさらに詳しく説明する。
可視光通信によるIoTの送信装置と受信装置の間に伝送されている可視光情報は、初期のデータではなく、暗号化されたスクランブルコード信号である。ここに記載されたスクランブルコードは、初期データに特定の論理演算を行って新たに生成されたデータ、例えば、初期データと擬似コード列に畳み込み又はシフトなどの演算を行うものである。擬似コード列は、擬似コード生成器により生成された1組の二進数の数字列である。
初期データは、数字列で表現された信号であり、ベースバンドデータとも称する。本実施例では、初期データは、主にIDデータから構成される。前記IDデータは、送信装置毎に与えられている唯一の識別コードである。可視光受信装置の装置制御回路は、復号化されたIDデータに基づいて、特定権限を持っているかを判定し、装置の制御が必要かどうかを決定する。擬似コード列指示コードは、重複なしの昇順(又は、降順)に並び替わる大きな数字であり、送信装置及び受信装置に対して、いずれの擬似コード列を用いて暗号化と復号化を行うかの動作を指定するものである。可視光送信装置が信号を送信する都度、擬似コード列指示コードは、自動的に1ずつ増えていく(又は、1ずつ減っていく)。デバイスアドレスコードは、送信装置毎に与えられている唯一の識別コードである。デバイスアドレスコードは、IDと異なっているが、IDとは一対一の関係である。前記デバイスアドレスコードは、受信装置において該当する装置が設定したID情報及び前回該当装置が受信された擬似コード列指示コードを特定するためのものである。
図b5は、第2合成信号のデータ構成を説明するためのブロック図である。例えば、ID情報が16ビットの二進数の数字である0000000000000100、擬似コード列指示コードが8ビットの二進数の数字である00000010、対応する擬似コード列が16ビットの二進数の数字である1010101100100010、デバイスアドレスコードも8ビットの二進数の数字である10101010の場合を考えてみよう。
まず、畳み込み暗号化器102bにおいて、ID情報及び擬似コード列について、論理演算(例えば、XOR演算)を行う。演算の結果は、下表の通りである。
表b1から、暗号化されたID情報は、初期のID情報と異なっている1010101100100110となり、データに特定の暗号化を行われたことが分かる。
暗号化された前記ID情報は、擬似コード列指示コード合成ユニット103bに発送される。同時に、擬似コード生成器101bも、擬似コード列に対応する擬似コード列指示コードを擬似コード列指示コード合成ユニット103bに発送する。そして、擬似コード列指示コード合成ユニット103bにおいて、暗号化されたID情報と擬似コード列指示コード00000010は、ヘッダ部として、デバイスアドレスコード合成ユニット104bに発送される。出力した数字列は000000101010101100100110となる。
前記デバイスアドレスコード合成ユニット104bにおいて、擬似コード列指示コード合成ユニット103より出力した信号とデバイスアドレスコード10101010は、ヘッダ部として出力される。出力した結果は10101010000000101010101100100110となる。前記デバイスアドレスコード合成ユニット104bより出力した前記信号を変調器105bに発送してから信号変調を行い、LEDに出力して、高速点滅する可視光信号の形で送信される。
送信装置LEDランプより発送された可視光は、空中で短距離に伝送され、受信装置にある可視光受信器201bに受信され、そしてデジタル電気信号に変換されて、復調器202bで復調を行う。復調された後、信号を出力し、またデバイスアドレスコード分解ユニット203bに発送する。
前記デバイスアドレスコード分解ユニット203bは、受信した信号(復調を行われたもの)である10101010000000101010101100100110にデバイスアドレスコードのヘッダ部分離を行い、デバイスアドレスコード10101010が得られて、前記デバイスアドレスコード10101010を別々に擬似コード列照合ユニット204bと照合ユニット207bに発送する。前記デバイスアドレスコードのヘッダ部分離によって残されている部分は000000101010101100100110となり、データとして擬似コード列指示コード分解ユニット205bに発送される。
前記擬似コード列指示コード分解ユニット205bは、受信したデータにヘッダ部の分離を行い、擬似コード列指示コード00000010が得られ、そして前記擬似コード列指示コードを擬似コード列照合ユニット204bに発送する。擬似コード列指示コード分解ユニット205bにて擬似コード列指示コードを分離した後、残されている部分である1010101100100110が暗号化されたID情報となる。そして、前記ID情報を畳み込み復号化器206bに発送する。
前記擬似コード列照合ユニット204bに入力する信号がデバイスアドレスコード10101010と擬似コード列指示コード00000010である。擬似コード列照合ユニット204bにおいて、デバイスアドレスコード10101010に対応するレジスタは、前記装置に該当する、前回受信した擬似コード列指示コードを1つ持っている。擬似コード列照合ユニット204bは、以前記憶されている擬似コード列指示コードと現在受信した擬似コード列指示コードを比較する。昇順ルール(送信装置が信号を送信する都度、擬似コード列指示コード自体が1ずつ増えていく)で判定する場合、現在受信した擬似コード列指示コードが記憶されている擬似コード列指示コードより大きければ、現在受信した信号が合法と認めるが、そうでなければ、非合法と認め、アラーム情報がアラームユニット(図示せず)に発送され、アラームを鳴らす。
一方、降順ルール(送信装置が信号を送信する都度、擬似コード列指示コードの自体が1ずつ減っていく)で判定する場合、現在受信した擬似コード列指示コードが記憶されている擬似コード列指示コードより小さければ、現在受信した信号が合法と認めるが、そうでなければ、非合法と認め、同様にアラームを鳴らす。合法と認める場合、擬似コード列照合ユニット204bは、現在受信した擬似コード列指示コードを記憶する。すなわち、本来記憶されている擬似コード列指示コードを更新する。次に、擬似コード列照合ユニット204bは新しい擬似コード列指示コードに基づいて、擬似コード列のデータベースを照合する。擬似コード列指示コードと利用される擬似コード列は一対一の関係であるので、擬似コード列照合ユニット204bは、暗号化に該当する擬似コード列を特定でき、また、その擬似コード列を畳み込み復号化器206bに発送する。受信装置と送信装置は、同様の秘密保持手段を利用しているので、送信装置から発送した擬似コード列指示コード00000010に基づいて、受信装置において、送信装置の暗号化に用いる擬似コード列1010101100100010を特定できる。
畳み込み復号化器206bに入力する信号は、暗号化されたID情報1010101100100110と擬似コード列1010101100100010である。上記の2つのデータにXOR演算を行う手順は下記の通りである。
表b2から、復号化によって、出力されたID情報は0000000000000100であることがわかる。
安全問題を完全に解決するために、受信装置には、さらにID判定装置208bと照合ユニット207bを1個ずつ設ける。ある偽信号によって、擬似コード列指示コードの設定が大きくなり、擬似コード列照合ユニット204bに合法である信号と誤判定され、対応する擬似コード列に復号化を行い、同じID情報が1個得られるケースがある。但し、当該データは真実のIDではなく、また、対応するデバイスアドレスコードも見つからなくなり、安全問題になってしまう危険性があると考えられる。
受信装置と送信装置において、同じ秘密保持手段が設定されているので、受信装置の照合ユニット207bは、デバイスアドレスコード10101010を受信した後、データベースとの照合を行い、0000000000000100である真実のIDが得られて、ID判定装置208bに発送する。
ID判定装置208bは、畳み込み復号化器206bと照合ユニット207bから出力されたID情報を受信した後、数値比較を行う。比較結果が同じである場合、受信された信号が合法である信号と認められ、その合法であるID情報を装置制御回路209bに発送する。比較結果が異なっている場合、受信された信号が非合法である偽信号と判定され、アラームを鳴らす。本実施例において、受信した前記の2つのID情報がいずれも0000000000000100であり、合法である信号である。すなわち、受信装置は、復号化を成功裏に終了した。
例えば、本発明の実施例におけるデータが、送受信端の送受信の時に、ハイスピードカメラに取得、コピーされ、またコピーされた信号がアイドルシグナルである10101010000000101010101100100110を例とする。受信装置は、合法である信号を受信している時に、その中の擬似コード列指示コードを00000010として記憶されている。コピーされた信号を再度受信した時、擬似コード列指示コードの分離によって、00000010も得られる。暗号化の昇順ルールに従って、それ以降に受信する擬似コード列指示コードが00000010より大きくなければならない(降順ルールの場合、00000010より小さくなければならない)が、コピーされた信号が同じ信号であることから、コピーされたのは、非合法である信号と判定される。
例えば、信号をコピー・修正して、新たに信号を1個偽造すること、つまり、擬似コード列指示コードだけを00000011に修正し、それ以外は変更しないままにすることを例とする。昇順の場合、擬似コード列照合ユニット204bは、合法と認め、そして、擬似コード列指示コード00000011に対応する擬似コード列を特定する。もちろん、その擬似コード列は、暗号化された擬似コード列とは異なっている。そのために、擬似コード列照合ユニット204bにより特定された対応する擬似コード列、すなわち1010101100100011を用いてID情報に復号化を行う。詳細は、下記の通りである。
表b3から、偽信号に復号化を行われて得られたID情報は、0000000000000101であることがわかる。
上述の実施例から、照合ユニット207bは、デバイスアドレスコードである10101010に基づいて、得られたID情報が0000000000000100であることがわかる。復号化によって得られたID情報と照合ユニット207bがデバイスアドレスコードに基づいて得られたIDとは異なっているので、ID判定装置208bは、受信した信号が非合法である偽信号であると判定する。
以上説明したように、本実施例に関する前記の複数ユーザによる非対称暗号化方法は、同期の暗号化方法に比べて、コスト効率がよい、オペレーティングが容易で技術的に実現可能、ハイスピードカメラによる光信号の取得・コピーの防止が可能であり、可視光通信によるIoTの安全性を大いに向上できる効果がある。
実施例3
図c1は、本発明に関する可視光通信システムの実現方法を説明するためのブロック図である。可視光通信システム100は送信端110と受信端120を備えるものである。送信端110は、符号化器111と、符号化器111と連結される擬似コード信号発生器112とを有する。符号化器111は、初期の通信データを受信し、擬似コード信号発生器112より生成された擬似コード信号を用いて初期の通信データに符号化を行い、スクランブルコード信号が得られる。得られたスクランブルコード信号が初期の通信データと異なっているので、暗号化の働きを果たした。例えば、本明細書における専門用語である「暗号化」と「符号化」、及び「復号化」と「デコーディング」は、置き換えて使用できる。初期の通信データは、送信端110に関する身元識別情報でもよい。符号化器111は、スクランブルコード信号を発光ユニット113に発送する。発光ユニット113は、受信したスクランブルコード信号を可視光の形にて発送する。発光ユニット113は、LED又は発光できるその他の部品でもよい。送信端110は、可視光通信によるIoTにおける手持ち式クライアントでもよい。
受信端120は、送信端110から可視光信号を受信して、可視光信号をデジタル信号に変換する受信ユニット123を有する。復号化器121は、受信ユニット123から出力されたデジタル信号を受信し、擬似コード信号発生器122により生成された擬似コード信号を用いて前記デジタル信号に復号化を行い、初期の通信データを復元させる。図c1に示す可視光通信システム100において、送信端110を1つしか示していない。但し、当業者であれば、1つの受信端120に対して、通常、複数の送信端110が設定されることが理解されるべきである。
送信端110と受信端120の受送信の安全性をさらに向上し、ハイスピードカメラによる信号の取得・コピーの防止という効果をとられるために、送信端110と受信端120において、経時変化するシーケンス、例えば、擬似コード列、擬似ランダム・コード・シーケンス又は擬似ランダム・コードを利用して、初期の通信データに暗号化及び復号化の処理を施す。従って、図c1に示すように、擬似コード信号発生器112は、水晶振動子114から供給されているクロック信号を基準として、送信端110のステートマシンの状態に基づいて、経時変化する擬似コード信号を出力する。一方、受信端120にある擬似コード信号発生器122も、水晶振動子124から供給されているクロック信号を基準として、受信端120のステートマシンの状態に基づいて、経時変化する擬似コード信号を出力する。
図c2は、図c1に示す可視光通信システムでの暗号化・復号化の処理の流れを示すフローチャートである。ステップS201において、送信端110が、初期の通信データ及び経時変化する第1擬似コード信号に、論理演算を行い、スクランブルコード信号が得られる。初期の通信データは、発送する利用者の情報でもよい。例えば、利用者のID情報、指紋、顔、虹彩、入力したパスワード、利用者の身元が証明できる他の補充情報などのものである。もちろん、上記の2つ或いはそれ以上の組み合わせであれば、数字列のような信号であってもよい。擬似コード信号は、単位時間あたり変化する数字列でもよい。前記の単位時間は、必要に応じて、例えば、1日単位、1時間単位、1分単位、1秒単位などが設定される。初期の通信データと第1擬似コード信号に行われる論理演算は、AND演算、OR演算、XOR演算などであれば、上述の演算の任意の2種類又はそれ以上の組み合わせであってもよい。
例えば、初期の通信データは、送信端の利用者IDであり、00001101と変わらないことを例とする。5単位時間Tが経過した後、対応する送信端の状態がN+5、第1擬似コード信号は、10101010となる場合、初期の通信データと第1擬似コード信号に例えば、「XOR」という論理演算を行う。詳細は下表の通りである。
ステップS202において、送信端110は、前記スクランブルコード信号を可視光信号の形にて発送する。例えば、送信端110は、LEDランプを通して、点滅の形にて変調信号を発送する。前記のスクランブルコード信号である10100111に対して、高速で点滅し続けているLEDランプでは、1が点灯、0が消灯を表わす(又は、0が消灯、1が点灯を表わす)ので,可視光通信の実現に大いに寄与するものと考えられる。
ステップS203において、受信端120は、送信端110から可視光信号を受信して、その可視光信号をデジタル信号に変換する。例えば、高速で点滅し続けているLEDランプでは、1が点灯、0が消灯を表わす(又は、0が消灯、1が点灯を表わす。)ので,受信した可視光信号がデジタル信号に変換される。
ステップS204において、受信端120は、前記デジタル信号と第2擬似コード信号に、例えば、論理演算による復号化処理が施されて、初期の通信データが得られる。具体的には、5単位時間Tが経過した後、対応する受信端の状態がN+5となり、第2擬似コード信号も10101010となり、第1擬似コード信号のコードタイプ、スタート/ストップ位相とは同じである。受信端120は、受信した信号及び第2擬似コード信号に、例えば「XOR演算」の論理演算を行う。詳細は下表の通りである。
上記から、復号化によって出力された信号が00001101であって、初期の通信データと同じであるので、初期通信データのデコーディングができたことが分かる。
以上説明したように、受信端の正確な復号化には、受信端の擬似コード信号発生器より生成された擬似コード信号が、送信端の擬似コード信号発生器より生成された擬似コード信号と同時に変化しなければならない。具体的には、擬似コード信号の変化が、送受信両端にあるステートマシンのステートに基づいたものであって、ステートマシンのステートによって、擬似コード信号が変わることである。理想的なことは、送信端と受信端のステートマシンのステートが同時に変化して、送信端と受信端の擬似コード信号も同じく同時変化することである。例えば、所定の単位時間(例えば、1秒間、1分間、又は他の規定の時間帯)が経過した後、送受信両端に有るステートマシンのステートが、同時に直前状態のNから次の状態のN+1に変わる。同時に、送受信両端における暗号化及び復号化に用いる擬似コード信号も、直前状態のNに対応する擬似コード信号から次の状態のN+1に対応する擬似コード信号に変わる。
可視光通信システムにおいて、可視光送信端110と受信端120のシステムクロックの精度はそれぞれの水晶振動子114、124によるものである。生産方法や作業環境などの影響で、水晶振動子114、124にある程度の誤差が生じるため、送信端110と受信端120の時間変化も異なっている。例えば、送受信両端は、同時に0秒からカウントダウン開始し、受信端120のシステムクロックの方が若干速いものとする。例えば、基準時刻から1秒経過した時刻になった際に、送信端110のシステムクロックが0.999999秒、受信端120のシステムクロックは、1.000001秒となり、この両者の誤差は1.000001−0.999999=0.000002秒となる。そうすれば、基準時刻から500000秒経過した時刻になった際に、送受信両端のシステムクロックの表示は1秒ほどの誤差があると思われる。
送信端110と受信端120のステート変化は、両方とも自身のシステムクロックによるものである。前記の送受信両端のシステムクロックは、誤差が生じるため、送信端110と受信端120のステートマシンのステートも同時に変化することができなくなってしまう。送受信両端のステートマシンが単位時間Tあたり変化することを例として説明する。例えば、基準時刻に比べて、送信端110のシステムクロックが遅れており、受信端120のシステムクロックが進んでいるとする。基準時刻から所定時間が経過した時刻になると、送信端110と受信端120のシステムクロック時間は単位時間Tほどの誤差があるとする。この場合は、送信端110が状態N、受信端120が状態N+1となっている。すなわち、受信端120における復号化に用いる擬似コード信号は、送信端110における暗号化に用いる擬似コード信号と異なるので、受信端120では、正しく復号化されなくなってしまう。
図c3は、送信端及び受信端のステートマシン状態の経時変化を示す図である。図c3に示すように、標準時間t0の時刻において、送信端と受信端とのシステムクロックを合わせるように設定され、例えば、送信端と受信端は、両方とも状態Nとなり、そして所定の時間を経過して、標準時間t1の時刻になった場合を考えてみる。その際に、送信端のシステムクロックが遅れていて、まだ状態N+5となっているが、受信端のシステムクロックが進んでいて、もう状態N+6となった。よって、前記受信端における復号化に用いる擬似コード信号は、送信端における暗号化に用いる擬似コード信号と異なるので、結局、復号化のエラーになってしまう。
上記によって、本発明は、可視光通信システムに関する効率的な復号化方法を提供する。本発明の一側面によれば、送信端から可視光信号を受信する際に、受信端のステートマシンの現在状態に対応する秘密キーを用いて受信されていた可視光信号に復号化を行うだけでなく、復号化のエラーが発生した状態でも、当該現在状態の直前及び/又は直後の少なくとも1つの状態に対応する秘密キーを用いて、可視光信号に復号化を行う。上記方法によれば、送信端と受信端のシステムクロック誤差による検査ミスの防止を図る。
図c4は、本発明の一側面に関する可視光通信システムでの効率的な復号化方法の流れを説明するためのフローチャートである。ステップS401において、受信端は、送信端から可視光信号を受信する。前記可視光信号は、少なくとも、一部分が前記送信端では、その送信端のステートマシンの状態により変化する秘密キーにて暗号化されたものである。1つの実施例においては、前記可視光信号は通信データ及び前記送信端の識別子を有する。前記通信データは、前記送信端のステートマシンの状態により変化する秘密キーにて暗号化されたが、前記送信端の前記識別子は、暗号化されていない。例えば、前記通信データは、利用者の身元識別(ID)情報、前記送信端の識別子は、前記送信端の装置番号でもよい。可視光通信システムにおいて、送信端の装置番号は、送信端にとって、唯一なものであるので、送信端を識別する唯一なものとして使われる。前記通信データ、例えば利用者IDは、送信端の識別番号と関連付けて受信端に記憶されているものである。
ステップS402において、前記受信端のステートマシンの現在状態及びその直前及び/又は直後の少なくとも1つの状態に対応する秘密キーにて前記可視光信号に復号化処理を施す。本発明の一側面によれば、受信端のステートマシンの現在状態のほかに、受信端は、現在状態の直前の設定したN個の状態、現在状態の直後の設定したN個の状態、又はこれらの組み合わせ状態を用いて、受信端と送信端のシステムクロックの相対スピードを決める。例えば、受信端のシステムクロックが、送信端のシステムクロックより進んでいる場合を考えてみる。受信端のステートマシンの現在状態のほかに、受信端は、現在状態の直前の設定したN個の状態しか使わなくてもよい。受信端のシステムクロックが、送信端のシステムクロックより遅れている場合には、受信端のステートマシンの現在状態のほかに、受信端は、現在状態の直後の設定したN個の状態しか使わなくてもよい。受信端と送信端のシステムクロック相対スピードがまだよく分からない場合には、受信端のステートマシンの現在状態のほかに、受信端は、現在状態の直前の設定したN個の状態及び現在状態の直後の設定したN個の状態のいずれを用いても良い。前記設定したN個のNは、受信端と送信端の水晶振動子の精度、受信端と送信端の処理能力などによるものとする。
1つの実施例においては、受信端は、まず、そのステートマシンの現在状態に対応する秘密キーを用いて前記可視光信号に復号化を施す。その復号化処理が成功した場合、終了する。その復号化処理が失敗した場合、引き続いてその現在状態の直前及び/又は直後の設定したN個の状態に対応する秘密キーを用いて復号化する。例えば、受信端は、前記可視光信号の復号化に成功した、或いは前記現在状態の直前及び/又は直後の設定したN個の状態に対応する秘密キーを用いて前記可視光信号の復号化が全部終わるまで、前記現在状態の直前及び/又は直後の設定したN個の状態に対応する秘密キーを1つずつ順番に使って前記可視光信号に復号化を施す。
暗号化された通信データと暗号化されていない前記送信端の識別子が含まれる可視光信号の実施例においては、受信端は、まず、可視光信号から送信端の識別子を取得し、そしてローカル記憶領域に記録されている、前記識別子に関連する通信データを検索する。受信端は、選定された状態のある状態に対応する秘密キーを用いて通信データを復元して、復元された通信データを受信端のローカル記憶領域に記憶されている通信データと比較する。比較の結果、同じである場合、復号化が成功したと認められる。例えば、復元された利用者IDが受信端のローカル記憶領域に記憶されている利用者IDと同一である場合、前記可視光信号が合法であると判定される。そうでなければ、前記可視光信号の復号化に成功した、或いは選定した状態に対応するすべての秘密キーを用いて可視光信号を復号化する処理を終了するまで、引き続いて、残りの状態に対応する秘密キーを用いて前記可視光信号に復号化を施す。前記現在状態及びその直前及び/又は直後の設定したN個の状態に対応するすべての秘密キーを用いて可視光信号に復号化を行った結果、1回でも成功しなかった場合、前記可視光信号が非合法であると判定される。
上述した効率的な復号化処理においては、まず、現在状態に対応する秘密キー、そして、現在状態の直前・直後の設定したN個の状態に対応する秘密キーを用いて復号化する順番とする。但し、前記の順番は、例として挙げているものである。実際は、受信端は、任意に設定した順番通りに、前記可視光信号の復号化に成功した、或いは現在状態及び現在状態の直前及び/又は直後の少なくとも1つの状態に対応するすべての秘密キーを用いて前記可視光信号の復号化が全部終わるまで、前記現在状態の直前及び/又は直後の少くとも1つの状態に対応するすべての秘密キーを用いて、前記可視光信号の復号化を繰り返す。
ここでは、説明を簡略化するために、上記の効率的な復号化方法を一連の動作として図により説明したが、これらの方法は動作実行の手順に限定されていないことを理解いただきたい。1つ又は複数の実施例によって、いくつかの動作が別の手順で実行され、かつ/又は本明細書に図示・記載されている、又は本明細書に図示・記載されていないが、当業者に理解される他の動作も同時に実行される。例えば、上記の現在状態の1つ以上の状態を選定して復号化するという手順について、1回に1つずつ状態を検索することが可能である。その状態に対応する秘密キーによる復号化が失敗すると、復号化が成功した、或いは設定したN個の状態をすべて検索するまで、引き続きその次の状態を順番に検索して、復号化を行う。或いは、現在状態とその直前・直後の設定したN個の状態を1回に検索してから、復号化が成功するまで、それらの状態に対応する各秘密キーを1つずつ順番に使って復号化する。
以下、図c3の状態図を参照して、上述の効率的な復号化方法を説明する。受信端は、標準時間t1に、送信端から送信されてきた可視光信号を受信する。受信端は、受信された可視光信号をデジタル信号に変換し、また、暗号化されていない前記送信端の装置番号を優先的に取得する。この際、受信端のステートマシンの現在状態は、N+6となる。現在状態N+6のほかに、受信端は、現在状態の直前の設定したN個(例えば、N=2個)の状態であるN+4、N+5、及び現在状態の直後の2個の状態であるN+7、N+8を使用することができる。受信端は、まず、現在状態N+6に対応する擬似コード列を用いて前記デジタル信号を復号化する。例えば、理論XOR演算を行って、利用者IDを1つ取得する。受信端は、復号化によって得られた前記利用者IDをローカル記憶領域に記憶されている、前記送信端に関連する利用者IDと比較して、比較の結果が、同じではない場合、復号化が失敗したと認められる。次に、受信端は、設定した順番で、現在状態の直前・直後にある4個の状態に対応する擬似コード列を用いて前記デジタル信号に論理XOR演算を行う。前記の設定した順番は、現在状態近くの状態から順次に行う順番であってもよい。例えば、N+7、N+5、N+8、N+4であってもよい。受信端は、状態N+7に対応する擬似コード列を用いて復号化する。復号化によって得られた利用者IDとローカル記憶領域に記憶されている利用者IDとは同じではないので、受信端は引き続いて、状態N+5に対応する擬似コード列を用いて復号化する。その際には、復号化によって得られた利用者IDは、ローカル記憶領域に記憶されている利用者IDと同じであるので、復号化が成功したと認められ、前記可視光信号が合法である信号と識別され、処理が終了する。上記のように、前記の設定した順番は、必要に応じて設定される。例えば、受信端は、復号化に成功するまで、N+4、N+5、N+6、N+7、N+8の順番で、対応する擬似コード列を用いて復号化する。
図c5は、本発明の一側面に関する通信装置500を説明するためのブロック図である。通信装置500は、送信装置から可視光信号を受信する受信装置502を有する。前記可視光信号は、送信装置において、少なくとも一部分が送信装置のステートマシンの状態により変化する秘密キーにて暗号化されたものである。通信装置500はさらに、復号化器504を有する。復号化器504は、通信装置500のステートマシンの現在状態及びその現在状態の直前及び/又は直後の少なくとも1つの状態に対応する秘密キーを用いて、前記可視光信号を復号化する。本発明の一側面によれば、通信装置500のステートマシンの現在状態のほかに、復号化器504は、現在状態の直前の設定したN個の状態、現在状態の直後の設定したN個の状態、又はこれらの組み合わせ状態を用いて、通信装置500と送信装置のシステムクロックの相対スピードを決める。1つの実施例においては、復号化器504は、まず、通信装置500のステートマシンの現在状態に対応する秘密キーを用いて前記可視光信号に復号化を施す。その復号化処理が成功した場合、終了する。その復号化処理が失敗した場合、復号化器504は、引き続いてその現在状態の直前及び/又は直後の設定したN個の状態に対応する秘密キーを順次に用いて復号化する。例えば、復号化器504は、前記可視光信号の復号化に成功した、或いは前記現在状態の直前及び/又は直後の設定したN個の状態に対応する秘密キーを順次に用いて前記可視光信号の復号化が全部終わるまで、前記現在状態の直前及び/又は直後の設定したN個の状態に対応する秘密キーを1つずつ順番に使って前記可視光信号に復号化を施す。擬似コード信号発生器508では、通信装置500のステートマシンの状態により変化する秘密キー、例えば、擬似コード列信号が生成される。
通信装置500は、さらに、記憶装置510を有するようにしてもよい。記憶装置510は、例えば、通信装置500のステートマシンのような状態情報512を記憶される。通信装置500は、さらに処理装置506を有するようにしてもよい。前記処理装置506は受信装置502により受信される情報の解析に用いる処理装置、通信装置500の1つ又は複数のモジュールのコントロールに用いる処理装置、及び/又はこれらの組み合わせからなる処理装置であってもよい。
図c6は、本発明の一側面に関する通信装置600を示すブロック図である。通信装置600には機能ブロックが設定されているが、これらの機能ブロックは、処理装置、ソフトウェア又はこれらの組み合わせ(例えば、ファームウェア)から構成されることは、理解されるべきである。通信装置600は、多くの機能を実現できる電気部品を含む論理グルーピング手段602を有する。例えば、論理グルーピング手段602は、受信端で、送信端から可視光信号を受信する電気部品604を有するようにしてもよい。前記可視光信号は、送信端において、少なくとも一部分が送信端のステートマシンの状態により変化する秘密キーにて暗号化されるものである。また、論理グルーピング手段602は、受信端のステートマシンの現在状態及び現在状態の直前及び/又は直後の少なくとも1つの状態に対応する秘密キーを用いて前記可視光信号に復号化を行う電気部品606を有するようにしてもよい。なお、通信装置600は、電気部品604及び606に関連する機能の実行に用いるコマンドを記憶する記憶装置608を有するようにしてもよい。記憶装置608の外部に図示しているが、電気部品604と606の1つ又は複数のものが記憶装置608に設置され得ることは、理解されるべきである。
実施例4
本実施例におけるクロック調節方法は、受信端の秘密キー取得に適用されるだけでなく、他の場合にも適用される。本実施例におけるクロック調節方法は、独立の発明として提供されるものとする。
図d1は、本発明に関する可視光通信システム100dの実現方法を説明するためのブロック図である。可視光通信システム100dは、送信端110dと受信端120dを有する。送信端110dは、符号化器111d及び符号化器111dに結合されている擬似コード信号発生器112dを有する。符号化器111dは、初期の通信データを受信し、擬似コード信号発生器112dによって生成された擬似コード信号を用いて、初期の通信データに符号化を行って、スクランブルコード信号が生成される。生成されたスクランブルコード信号は、初期の通信データと異なるので、暗号化される働きを果たす。例えば、本明細書に記載されている専門用語である「暗号化」と「符号化」、及び「復号化」と「デコーディング」は、置き換えて使用できる。初期の通信データは、送信端110dに関連するID情報でもよい。符号化器111dは、スクランブルコード信号を発光ユニット113dに発送する。発光ユニット113dは、受信されたスクランブルコード信号を可視光の形にて発送する。発光ユニット113dは、LED又は他の発光可能な部品でもよい。送信端110dは、可視光通信によるIoTの手持ち式クライアントでもよい。
受信端120dは、送信端110dから可視光信号を受信して、その可視光信号をデジタル信号に変換する受信ユニット123dを有する。復号化器121dは、受信ユニット123dから出力されたデジタル信号を受信され、また擬似コード信号発生器122dにより生成された擬似コード信号を用いて前記デジタル信号を復号化して、初期の通信データを復元させる。図d1に示している可視光通信システム100dにおいて、送信端110dを1つしか示していない。但し、当業者であれば、1つの受信端120dに対して、通常、複数の送信端110dが設定されることが理解されるべきである。
送信端110dと受信端120dの受送信の安全性をさらに向上し、ハイスピードカメラによる信号の取得・コピーの防止という効果をとられるために、送信端110dと受信端120dにおいて、経時変化する擬似コード列を利用して、初期の通信データに暗号化及び復号化の処理を施す。従って、図d1のように、擬似コード信号発生器112dは、水晶振動子114dから供給されているクロック信号を基準として、送信端110dのステートマシンの状態に基づいて、経時変化する擬似コード信号を出力する。一方、受信端120dにある擬似コード信号発生器122dも、水晶振動子124dから供給されているクロック信号を基準として、受信端120dのステートマシンの状態に基づいて、経時変化する擬似コード信号を出力する。
図d2は、可視光通信システム100dでの暗号化・復号化の処理の流れを示すフローチャートである。ステップ201dにおいて、送信端110dは、初期の通信データと経時変化する第1擬似コード信号に、論理演算を行い、スクランブルコード信号が得られる。初期の通信データは、例えば、利用者の身元(ID)情報等のような発送する情報であれば、数字列信号であってもよい。擬似コード信号は、単位時間あたり変化する数字列であるので、その単位時間は、必要に応じて、例えば、1日単位、1時間単位、1分単位、1秒単位等などが設定される。初期の通信データと第1擬似コード信号に行われる論理演算は、論理AND、論理OR、論理XORの演算などであれば、上記演算の任意の2つ又はそれ以上の組み合わせからなるものであってもよい。
例えば、初期の通信データは、送信端の利用者IDであり、00001101と変わらない。5単位時間Tが経過した後、対応する送信端の状態がN+5、第1擬似コード信号は、10101010となる場合、初期の通信データと第1擬似コード信号に例えば、「XOR」という論理演算を行う。詳細は下表の通りである。
ステップ202dにおいて、送信端110dは、前記スクランブルコード信号を可視光信号の形にて発送する。例えば、送信端110dは、LEDランプの点滅によって変調信号を発送する。前記のスクランブルコード信号である10100111に対して、高速で点滅し続けているLEDランプでは、1が点灯、0が消灯を表わす(又は、0が消灯、1が点灯を表わす)ので,可視光通信の実現に大いに寄与するものと考えられる。
ステップ203dにおいて、受信端120dは、送信端110dから可視光信号を受信して、その可視光信号をデジタル信号に変換する。例えば、高速で点滅し続けているLEDランプでは、1が点灯、0が消灯を表わす(又は、0が消灯、1が点灯を表わす。)ので,受信した可視光信号がデジタル信号に変換される。光信号は、下記のようにデジタル信号に変換される。まず、フォトダイオードの電気信号と光信号の特性に応じて、電気パルス信号が生じる光電変換を行う。但し、送信端と受信端との位置が異なる。すなわち、各送信端から受信端への光信号強度が異なる。そのために、それらの電気信号の強度も異なる。よって、フォトダイオードによって生じた電流について、整流方式の比較を行う。例えば、フォトダイオードに流れる電流の大きさが規定の閾値より大きい場合、光電変換回路は、出力する電圧レベル値を高レベルに調整するが、フォトダイオードに流れる電流の大きさが規定の閾値より小さい場合、光電変換回路は、出力する電圧レベル値を低レベルに調整する。前記閾値は、数学モデルを使って環境によって設定されたものである。例えば、距離が遠ければ遠いほど、閾値が小さくなるが、距離が近ければ近いほど、閾値が大きくなる。すなわち、閾値と閾値との間の変化は、数学モデルを使って決めたものであって、リニアリティ、ノンリニヤリティのいずれか関係でもよい。上記によれば、レベルが規定範囲内に収まるので、パルス形状の安定度を維持され、サンプリングの正確性が保証され、クロックによる計算精度の保証が図れる。
ステップ204dにおいて、受信端120dは、前記デジタル信号と第2擬似コード信号に例えば、論理演算による復号化処理を行い、初期の通信データが得られる。具体的には、5単位時間Tが経過した後、対応する受信端の状態がN+5となり、第2擬似コード信号も10101010となり、第1擬似コード信号のコードタイプ、スタート/ストップ位相とは同じである。受信端120dは、受信された信号と第2擬似コード信号に例えば、「XOR」論理演算を行う。詳細は下表の通りである。
上記から、復号化によって出力された信号が00001101であって、初期の通信データと同じであるので、初期通信データのデコーディングができたことが分かる。
以上説明したように、受信端の正確な復号化には、受信端の擬似コード信号発生器により生成される擬似コード信号は、送信端の擬似コード信号発生器により生成される擬似コード信号と同時に変化を行わなければならない。具体的には、擬似コード信号は、送受信両端のステートマシンの状態によるものであって、例えば、所定の単位時間(例えば、1秒間、1分間、又は他の規定の時間帯)が経過した後、送受信両端に有るステートマシンのステートが、同時に直前状態のNから次の状態のN+1に変わる。同時に、送受信両端における暗号化及び復号化に用いる擬似コード信号も、同様に変化する。
可視光通信システムにおいて、可視光送信端110dと受信端120dのシステムクロック精度は、それぞれの水晶振動子114d、124dによるものである。生産方法や作業環境などの影響で、水晶振動子114dと124dには、ある程度の誤差が生じる。そのために、送信端110dと受信端120dの時間変化も異なる。送受信両端は、同時に0秒からカウントダウン開始し、受信端120dのシステムクロックの方が若干速いものとする。例えば、基準時刻から1秒経過した時刻になった際に、送信端110dのシステムクロックが0.999999秒、受信端120dのシステムクロックが1.000001秒となり、この両者の誤差は1.000001−0.999999=0.000002秒となる。そうすれば、基準時刻から500000秒経過した時刻になった際に、送受信両端のシステムクロックの表示は1秒ほどの誤差があると思われる。
システムの具体事例において、送信端と受信端のシステムクロックの時間変化量は、それぞれのシステムクロックの最小時間間隔、すなわち水晶振動子の周期(サイクル数)によって計測される。注意して頂きたいのは、ここでは、水晶振動子の周期とは、水晶振動子が実際、発振する周期(以下、水晶振動子の実行サイクルと言う)を指す。例えば、送信端110dにおける水晶振動子114dの公称周波数をf1公称=1MHzとする場合、水晶振動子の公称周期は、T1公称=10−6sとなる。理想的には、水晶振動子114dは絶対に正しくて誤差がなく、つまり水晶振動子114dの実際の周波数(以下、水晶振動子の実際周波数と言う)をf1システム=f1公称=1MHzとすれば、水晶振動子114dの実行サイクルは、T1システム=T1公称=10−6sとなり、送信端110dにおける各f1公称(=106)個のT1システムを送信端のシステムクロックの時間間隔の1秒間とする場合、送信端での時間間隔1秒は、標準時間の1秒と等しいと見られる。同じく、例えば、受信端120dの水晶振動子124dの公称周波数をf2公称=1MHz、水晶振動子の公称周期をT2公称=10−6sとする。理想的には、水晶振動子124dは絶対に正しくて誤差がなく、つまり水晶振動子124dの実際周波数をf2システム=f2公称=1MHzとすれば、水晶振動子124dの実行サイクルは、T2システム=T2公称=10−6sとなり、受信端120dにおける各f2公称(=106)個のT2システムを受信端のシステムクロックの時間間隔の1秒間とする場合、受信端での時間間隔1秒は、標準時間の1秒と等しいと見られる。
但し、生産方法や作業環境等の影響で、水晶振動子の実際周波数と公称周波数は、等しくなく、ある程度の誤差がある。例えば、f1システム<f1公称=1MHzとする場合、T1システム>T1公称=10−6秒となる。送信端110dは、変わらずにf1公称(106個)のT1システムを時間間隔の1秒に設定される。なぜ送信端の時間が合ってない(遅れ・進み)かについて、よく理解するには、上記は一番だと思われる。この際、送信端110dのシステムクロックの1秒間に対して、実際経過した標準時間は、f1公称・T1システムとなった。実際の経過時間は1秒より長く、すなわち、送信端110dの時間は標準時間より遅れる。f2システム>f2公称=1MHzとする場合、T2システム<T2公称=10−6秒となるが、受信端120dは、変わらずにf2公称(106個)のT2システムをシステムクロック時間の1秒に設定される。この際、受信端120dのシステムクロックの1秒間に対して、実際経過した標準時間は、f2公称・T2システムとなった。実際の経過時間は1秒より短く、すなわち、受信端120dの時間は標準時間より進む。上記から、標準時間に対して、送受信両端のクロック時間は、なぜ合っていない(遅れ・進み)かがよくわかる。
送信端110dと受信端120dの状態変化は、両方とも自身のシステムクロックによるものである。前記送受信両端のシステムクロックの間には、誤差が生じているので、送信端110dと受信端120dのステートマシンの状態は、同時に変化することができなくなる可能性がある。送信端110dと受信端120dのステートマシンが基準とする時間Tにより変化する場合を考えてみる。例えば、送信端110dのクロックは標準時間より遅れているが、受信端120dのクロックは、標準時間より進んでいる。所定の標準時間が経過した後、送信端110dと受信端120dとの間には、Tという時間誤差が生じていた。その際は、送信端110dは状態N、受信端120dは状態N+1となっている。すなわち、受信端120dにおける復号化に用いる擬似コード信号は、送信端110dにおける暗号化に用いる擬似コード信号と異なるので、受信端120dは、正しく復号化することができなくなってしまう。
図d3は、送信端及び受信端におけるステートマシンの状態の経時変化を示す図である。図d3のように、標準時間t0の時刻に、送信端と受信端のシステムクロックをぴったり合わせており、また、送信端と受信端の状態は、両方とも状態Nとなっている。ある時間が経過して、標準時間t1の時刻になった際に、送信端は、クロックの遅れで、まだ状態N+5となっているが、受信端は、クロックの進みで、もう状態N+6となっている。よって、受信端における復号化に用いる擬似コード信号は、送信端における暗号化に用いる擬似コード信号と異なり、復号化できず、エラーとなってしまう。
上記のように、システムクロックの時間は、標準時間に対して、遅れ・進みが発生する傾向性がある。送信端110dと受信端120dのシステムクロックの遅れ・進み具合を確認するために、本発明は「クロック変動パラメータ」という定義を導入する。クロック変動パラメータとは、システムクロックの単位時間内に、実際経過した時間を指す。1秒の単位で時間を指定する場合を例とする。上記のように、送信端110dの単位時間(1秒あたり)内に、実際の経過時間はf1公称・T1システムとなる。システムクロックの遅れ・進み具合によって、前記実際の経過時間f1公称・T1システムは、1秒以上又は1秒以下となる可能性がある。受信端120dの単位時間(1秒あたり)内に、実際の経過時間はf2公称・T2システムとなる。前記実際の経過時間は、システムクロックの遅れ・進み具合によって、1秒以上又は1秒以下となる可能性がある。
送受信両端におけるシステムクロックは同じようでも、実際の経過時間は異なることから、それらのシステムクロックの遅れ又は進みの具合がよくわかる。本明細書において、規定の単位時間内での受信端120dの実際の経過時間と前記単位時間内での送信端110dの実際の経過時間との比で表される値を送信端110dのクロック遅れ・進み係数と呼ぶ。1秒の単位で時間を指定する場合を例として説明すれば、送信端110dのクロック遅れ・進み係数QはQ=(f2公称・T2システム)/(f1公称・T1システム)となる。前記クロック遅れ・進み係数は、規定の単位時間内での送信端の変化の幅と前記単位時間内での受信端の変化の幅との比で表される値と等しいことが明らかになる。そのために、受信端120dにおいて、受信端120dのシステムクロックの変化によって、送信端110dのシステムクロックの変化を決定される。
受信端120dでの前記クロック遅れ・進み係数を決めるために、受信端120dの水晶振動子の実行サイクルT2システムのサイクル数を用いて送受信両端にあるクロックの単位時間内での実際の経過時間が計測される。送信端110dから送信される可視光信号の1個の光パルスの公称持続時間T0公称を前記単位時間とする。T0公称は、信号の公称ボーレートにより決められるものであって、具体的には、ボーレートの逆数である。例えば、公称ボーレートが4800bpsとなる場合、1個の光パルスの公称持続時間はT0公称=1/4800秒となる。可視光通信システムにおいて、通信に用いる可視光のボーレートは、通常、送受信の両端でネゴシエーションされるものであるので、受信端120dに知られる。受信端120dのシステムクロックのT0公称内に実際経過した時間については、計算によって得られる。詳細には、(T0公称・f2公称)・T2システム、すなわち、(T0公称・f2公称)個の実行サイクルが計算される。送信端110dのシステムクロックのT0公称内に実際経過した時間は、受信端120dにおける実測した、送信端110dから受信された可視光信号の1個の光パルスの持続時間によって得られ、そして受信端120の水晶振動子の実行サイクルを単位にして、M・T2システムと記載される。また、送信端110dのクロック遅れ・進み係数Qは、Q=(T0公称・f2公称)/Mとなる。よって、受信端120dの経過した時間に基づいて、計算によって、送信端110dのシステムクロックの変化がわかる。
通常、可視光通信システム構築の初期段階において、送受信両端のシステムクロック誤差が時間によって大きくなると思われず、びったり合っていると思われる。従って、装置試運転などの初期段階において、受信端120dと送信端110dで初回通信を行う場合、受信端120dのローカル記憶領域に記憶されている送信端110dのクロック情報について、詳細に言えば、送信端110dのクロック情報をその際の受信端120dのクロック情報と同じように設定される。クロック情報は、システムクロックのシステムクロック値でもよい。例えば、その際、送信端110dと受信端120dのシステムクロックのシステムクロック値が0である場合を考えてみる。送受信両端のシステムクロックがぴったり合っているので、その際の受信端120dのローカル記憶領域に記憶されている送信端110dのクロック情報は、送信端110dの実質的なクロック情報と同じである。
注意して頂きたいのは、受信端120dに記憶されている送信端110dのクロック情報の変化が、受信端120d自身のシステムクロックの変化と同じなので、システム構築した以後、時間経過によって、受信端120dに記憶されている送信端110dのクロック情報は、送信端110dでの実質的なクロック情報との間に、誤差が生じると考えられる。すなわち、受信端120dのシステムクロックの指定した時間は、受信端120dのローカル記憶領域に記憶されている送信端110dのクロック情報の変化幅も前記指定した時間と等しい。但し、送信端110dの実質的なクロック情報の変化幅が前記指定した時間と送信端110dの時間遅れ進み因子の積になるはずである。従って、前記指定した時間間隔ごとに生じた前記誤差は、前記指定した時間にて送信端110dのクロック遅れ・進み係数と前記指定した時間の積を引いた値である。そのために、受信端120dに記憶されている送信端110dのクロック情報から前記誤差を引くことで、更新を行う。指定した時間間隔ごとに、受信端120dでは、記憶されている送信端110dのクロック情報から前記誤差を引くことで、更新された送信端110dのクロック情報を送信端110dでの実質的なクロック情報と同じにする。
例えば、前記指定した時間を5分とし、そしてQ=4/5とする場合を例として、もう少し具体的に説明しよう。受信端120dは、0時からシステムクロックの5分が経過した際に、受信端120dのローカル記憶領域に記憶されている送信端110dのクロック情報が0時5分となる。但し、送信端110dのクロックの真の時間が5×4/5=4分と表示される。つまり、5−4=1分の誤差が生じる。そして、ローカル記憶領域に記憶されている送信端110dのクロック情報である0時5分から1分の誤差を引くことで、0時4分に更新される。同様に、受信端120dでは、さらにシステムクロックの5分が経過した場合、ローカル記憶領域に記憶されている送信端110dのクロック情報は、0時9分となるが、生じた1分の誤差も含まれているので、更新された送信端110dのクロック情報は、0時8分となる。
送受信両端の水晶振動子の誤差は、温度などの環境条件によって変化する可能性があるので、送信端110dのクロック遅れ・進み係数も変化する可能性があると考えられる。従って、それ以降、送信端110dから可視光信号を受信する都度、受信した新しい可視光によって前記クロック遅れ・進み係数を再計算する。そして、受信端120dは、ローカル記憶領域に記憶されている送信端110dのクロック情報に基づいて、復号化に用いる擬似コード信号を選択する。ローカル記憶領域に記憶されている送信端110dのクロック情報は、指定した時間間隔ごとに1回自動調節されるので、送信端110dの実際のクロック情報との誤差があまり大きくならないと考えられる。よって、受信端120dに記憶されている送信端110dのクロック情報に基づいて選定された擬似コード信号を、送信端110dでの送信端110dの真のクロック情報に基づいて選定された擬似コード信号と同期することができる。
図d4は、本発明の一側面に関する可視光通信システムにおけるクロックの自動調節方法を説明するためのフローチャートである。ここでは、説明を簡略化するために、上記の効率的な復号化方法を一連の動作として図により説明したが、これらの方法は動作実行の手順に限定されていないこと、また1つ又は複数の実施例によって、いくつかの動作が別の手順で実行されること、及び/又は本明細書に図示・記載されている他の動作も同時に実行されることは、理解されるべきである。
ステップ401において、受信端は、少なくとも1つの送信端から発送された第1送信端の可視光信号を受信する。前記受信端は、図d1における受信端120dでもよく、第1送信端は、図d1における送信端110dでもよい。前記可視光信号は、例えば、1が点灯、0が消灯を表わす(又は、0が消灯、1が点灯を表わす)光パルス信号でもよい。前記可視光信号は、通常、前記第1送信端の利用者身元(ID)情報を含める。前記ID情報は、第1送信端のシステムクロックにより変化する擬似コード信号を用いて暗号化を行う。なお、前記可視光信号は、さらに、例えば、第1送信端の装置番号のような前記第1送信端を識別する識別子を有するようにしてもよい。送信端の装置番号は、システムにおいて、1つしかないものなので、ある送信端を識別する唯一独自のシリアル番号を提供する。前記識別子は暗号化されていないものであるので、受信端は直接に解読できる。
ステップ402において、第1送信端から可視光信号を受信して、第1送信端のクロック変動パラメータと受信端のクロック変動パラメータを決定する。上記のように、第1送信端のクロック変動パラメータは、第1送信端のシステムクロックの単位時間内での実際の経過時間であって、前記の実際の経過時間は、受信端の水晶振動子の実行サイクルを単位にして計測される。1つの実施事例において、前記単位時間は、第1送信端から受信された可視光信号の1個の光パルスの公称持続時間であるが、前記公称持続時間は、可視光信号の公称ボーレートの逆数である。第1送信端のクロックの前記単位時間内での実際の経過時間は、受信端での前記可視光信号の1個の光パルス的持続時間の実測によって得られ、また、受信端の水晶振動子の実行サイクルを単位にして、M・T2システムと記載される。1つの実施事例において、受信端は、前記可視光信号をデジタル信号に変換され、また前記デジタル信号の1個のパルスの高レベル又は低レベルから前記高レベル又は低レベルまでの期間に、T2システムが何個行ったかカウントして、Mという数字が得られる。
受信端のクロック変動パラメータは、受信端のクロックの前記単位時間内での実際の経過時間であって、前記実際の経過時間は、受信端の水晶振動子の実行サイクルを単位にして、計測される。前記単位時間が第1送信端から受信された可視光信号の1個の光パルスの公称持続時間T0公称である事例において、受信端のクロックの前記単位時間内での実際の経過時間は、(T0公称・f2公称)・T2システムとして計算される。
ステップ403において、第1送信端の前記クロック変動パラメータ及び受信端の前記クロック変動パラメータに基づいて、第1送信端のクロック遅れ・進み係数を決定する。第1送信端のクロック遅れ・進み係数は、受信端のクロックの前記単位時間あたりの実際の経過時間と第1送信端のクロックの前記単位時間あたりの実際の経過時間との比を表わしたものである。前記単位時間が第1送信端から受信された可視光信号の1個の光パルスの公称持続時間T0公称である事例において、前記送信端のクロックのクロック遅れ・進み係数Qは、Q=(T0公称・f2公称)/Mとなる。T0公称とf2公称は、受信端にとって、既知の値であり、Mは実測されるものであるために、受信端は、第1送信端のクロック遅れ・進み係数の値を得ることができる。
ステップ404において、第1送信端の前記クロック遅れ・進み係数に基づいて、指定した時間間隔ごとに、前記受信端のローカル記憶領域に記憶されている第1送信端のクロック情報を更新する。上記のように、クロック遅れ・進み係数は、規定の単位時間内での第1送信端の変化幅と前記単位時間内での受信端の変化幅との比で表される値と等しいことが分かる。そのために、受信端は、前記指定した時間間隔ごとに、第1送信端のシステムクロックの真の変化幅は前記クロック遅れ・進み係数と前記指定した時間間隔の積であるはずであるが、受信端のローカル記憶領域に記憶されている第1送信端のシステムクロックの変化幅が前記指定した時間であるために、ローカル記憶領域に記憶されている第1送信端のクロック情報の誤差は前記指定した時間から前記の積を引いた差の値である。さらに、ローカル記憶領域に記憶されている第1送信端のクロック情報から前記誤差を引くことで更新を行われて、前記誤差を取り除くことができる。上記方法によって、前記指定した時間が経過する都度、ローカル記憶領域に記憶されている第1送信端のクロック情報が更新される。
受信端のローカル記憶領域における前記第1送信端のクロック情報は、最初は、受信端と第1送信端がシステム構築の初期段階(例えば、初回)の通信を行った際に受信端の当初のクロック情報として記憶、また設定されたものでもよい。なぜかというと、可視光通信システムにおける送受信の両端が通常、システム構築の初期段階、例えば、システム構築・試作の段階に初回の通信を行うが、その際の受信端には、まだ第1送信端のクロック情報が記憶されていなかったからである。システム構築の初期段階において、送受信両端のクロック情報がほぼ同一であると思われるので、受信端の現在のクロック情報を第1送信端のクロック情報として受信端のローカル記憶領域に記憶する。クロック情報は、システムクロックのシステム時間でもよい。例えば、受信端は、初回に第1送信端から可視光信号を受信した際に、可視光信号から直接に第1送信端の識別子、例えば、装置番号を読み取り、そして、前記第1送信端の識別子と関連付けて、ローカル記憶領域に第1送信端のクロック情報を記憶する。
図d4には図示していないが、前記方法は、それ以降、前記第1送信端から可視光信号を受信する都度、受信された新しい可視光により前記クロック遅れ・進み係数を再計算し、また、その計算結果に基づいて、前記指定した時間間隔ごとに、ローカル記憶領域に記憶されている第1送信端のクロック情報を更新する手段を備える。上記の手段によって、受信端のローカル記憶領域に記憶されている送信端のクロック情報は、適時に更新されるので、送信端の真のクロック情報と、ほぼ同じになる。受信端は、それ以降に第1送信端から可視光を受信した際、ローカル記憶領域に記憶されている第1送信端のクロック情報に基づいて、対応する擬似コード信号を選定してそれを用いて受信された可視光信号を復号化する。上記方法で選定された擬似コード列であれば、当然に第1送信端における暗号化に用いる擬似コード列と同じであるため、正しく復号化できるようになる。
図d5は、本発明の一側面に関する通信装置500dを説明するためのブロック図である。受信装置502dは、少なくとも1つの送信装置から第1送信装置の可視光信号を受信する。クロック変動パラメータ決定モジュール504dは、第1送信装置から受信された可視光信号に基づいて、第1送信装置のクロック変動パラメータと通信装置500d自身のクロック変動パラメータを決定する。上記のように、クロック変動パラメータは、システムクロックの単位時間内での実際の経過時間でもよい。前記単位時間が第1送信装置における可視光信号の1個の光パルスの公称持続時間である場合、第1送信装置のシステムクロックの単位時間内での実際の経過時間は、クロック変動パラメータ決定モジュール504dが前記通信装置500dにおいて、第1送信装置から可視光信号を受信し、可視光信号の1個の光パルスの持続時間を計測して得られ、また通信装置500dの水晶振動子の実行サイクルを単位にして、M・T2システムと記載される。また、前記通信装置500dのシステムクロックの前記単位時間内での実際の経過時間は、クロック変動パラメータ決定モジュール504dより(T0公称・f2公称)・T2システムとして計算される。T0公称は、前記可視光信号の1個の光パルスの公称持続時間、f2公称は、前記通信装置500dの水晶振動子の公称周波数、T2システムは、前記通信装置500dの水晶振動子の実行サイクルである。クロック遅れ・進み係数決定モジュール506dは、第1送信装置のクロック変動パラメータ及び通信装置500d自身のクロック変動パラメータに基づいて、第1送信端のクロック遅れ・進み係数を決定する。本発明の一側面によれば、クロック遅れ・進み係数決定モジュール506dは、第1送信装置のクロック遅れ・進み係数を前記通信装置500dのシステムクロックの前記単位時間内での実際の経過時間と第1送信装置のシステムクロックの前記単位時間内での実際の経過時間との割合に決定する。クロック情報更新モジュール508dは、第1送信装置のクロック遅れ・進み係数に基づいて、指定した時間間隔ごとに、通信装置500dのローカル記憶領域に記憶されている第1送信装置のクロック情報を更新する。本発明の一側面によれば、前記指定した時間は、通信装置500dにおけるシステムクロックの指定した時間を指すものであり、前記指定した時間間隔ごとに、通信装置500dのローカル記憶領域に記憶されている第1送信装置のクロック情報の誤差は、前記指定した時間から第1送信装置のクロック遅れ・進み係数と前記規定時間との積を引いた値であるために、クロック情報更新モジュール508dは、ローカル記憶領域に記憶されている第1送信装置のクロック情報から前記誤差を引くことで更新を行う。それ以降、第1送信装置から可視光信号を受信する都度、復号化器510dは、記憶されている第1送信装置のクロック情報に基づいて、対応する擬似コード信号を選定し、受信された可視光信号に復号化を行う。
通信装置500dは、さらに記憶装置514dを有するようにしてもよい。記憶装置514dには、クロック情報516d、例えば、第1送信装置のクロック情報が記憶される。通信装置500dはさらに、処理装置512dを有するようにしてもよい。前記処理装置512dは、受信装置502dが受信した情報を解析する専用の処理装置、通信装置500dの1つ又は複数の部品を制御する処理装置、及び/又はこれらの2つからなる処理装置でもよい。
図d6は、本発明の一側面に関する通信装置600dを説明するためのブロック図である。通信装置600dには、機能ブロックが設定されているが、これらの機能ブロックは処理装置、ソフトウェア又はこれらの組み合わせ(例えば、ファームウェア)から構成されることは、理解されるべきである。通信装置600dは、電気部品を連携できる論理グルーピング手段602dを有する。例えば、論理グルーピング手段602dは、少なくとも1つの第1送信装置の可視光信号を受信する電気部品604dを有するようにしてもよい。論理グルーピング手段602dは、前記第1送信装置から受信された前記可視光信号に基づいて、前記第1送信装置のクロック変動パラメータ及び受信装置のクロック変動パラメータを決定する電気部品606dを有するようにしてもよい。論理グルーピング手段602dはさらに、前記第1送信装置の前記クロック変動パラメータ及び前記受信装置の前記クロック変動パラメータに基づいて、前記第1送信装置のクロック遅れ・進み係数を決定する電気部品608dを有するようにしてもよい。また、論理グルーピング手段602dは、前記第1送信装置の前記クロック遅れ・進み係数に基づいて、指定した時間間隔ごとに、ローカル記憶領域に記憶されている前記第1送信装置のクロック情報を更新する電気部品610dを有するようにしてもよい。なお、通信装置600dは、電気部品604d、606d、608d、及び610dに関連する機能の実行に用いるコマンドを記憶する記憶装置612dを有するようにしてもよい。記憶装置612dの外部に図示しているが、電気部品604d、606d、608d、及び610dの1つ又は複数のものが記憶装置612dに設置され得ることは、理解されるべきである。
なお、情報及び信号が、さまざまな異なる技術やプロセスのうちの何れかの技術・手法を用いて表され得ることは、本分野に関する当業者なら理解できることである。前述した説明を通じて参照されるデータ、命令群、コマンド、情報、信号、ビット、シンボル、及びチップは、電圧、電流、電磁波、磁場又は磁性粒子、光学場又は光学粒子、あるいはこれらの任意の組み合わせによって表現される。
本明細書で開示された実施例に関連して記載された例示的なさまざまな論理ブロック、モジュール、回路、及びアルゴリズムが、電子的なハードウェア、コンピュータのソフトウェア、あるいはこれらの組み合わせにより実現されることは、本分野に関する当業者であれば、さらに理解できることである。ハードウェアとソフトウェアの互換性をより明確に説明するために、さまざまな例示的な構成要素、ブロック、モジュール、回路、及びステップについて、これらの機能の観点から一般的に記載された。これらの機能がハードウェアとソフトウェアのどちらかで実現されるかについては、具体的な応用及びシステム全体の設計に制限されると考えられる。当業者であれば、特定の用途のおのおのに応じて変化する方式で、前述した機能を実現される。しかしながら、この適用判断は、本発明の範囲からの逸脱をもたらすものと解釈されるべきではない。
本明細書で開示された態様に関連して記述されたさまざまな例示的な論理ブロック、モジュール、及び回路は、汎用処理装置、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)あるいはその他のプログラマブル論理デバイス、ディスクリート・ゲートあるいはトランジスタ・ロジック、ディスクリート・ハードウェア構成要素、又は上述された機能を実現するために設計された上記何れかの組み合わせを用いて実現又は実行される。汎用処理装置は、マイクロ・プロセッサであり得るが、代わりに、従来技術によるプロセッサ、コントローラ、マイクロコントローラ、又はステート・マシンであってもよい。また、処理装置は、例えば、DSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、DSPコアと連携する1つ又は複数のマイクロプロセッサ、又はその他の類似の構成である計算装置の組み合わせにより実現される。
本明細書で開示された実施例に関連して記述された方法やアルゴリズムに関するステップは、ハードウェアによって直接に、処理装置によって実行されるソフトウェアモジュール、又はこれらの組み合わせによって反映される。ソフトウェアモジュールは、RAM記憶装置、フラッシュメモリ、ROM記憶装置、EPROM記憶装置、EEPROM記憶装置、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、又は本分野で知られているその他の型式の記憶媒体に存在し得る。典型的な記憶媒体は、この記憶媒体から情報を読み取ったり、この記憶媒体に情報を書き込むことができるプロセッサのような処理装置に接続される。代替案において、この記憶媒体は、処理装置に統合される。この処理装置と記憶媒体とは、ASIC内に存在し得る。ASICは、ユーザ端末内に存在し得る。代替案において、処理装置及び記憶媒体は、ユーザ端末内のディスクリートな構成要素として存在し得る。
1つ又は複数の典型的な実施例において、記述された機能は、ハードウェア、ソフトウェア又はこれらの組み合わせによって実現される。ソフトウェアのコンピュータプログラム製品とする場合、各機能を1つ又は複数のコマンド又はコードとしてコンピュータ可読媒体に記憶又は発送される。コンピュータ可読媒体はコンピュータ記憶媒体と通信媒体の2つを含むが、コンピュータのプログラムを移行されるいかなる媒体をも含む。記憶媒体は、コンピュータにアクセスできる使用可能ないかなる媒体であってもよい。以下に例を挙げて説明するが、もちろんそれのみに限定されるわけではない。前記コンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROM又はその他の光学ストレージ、ディスクストレージ又はその他のディスクストレージ、或いはコマンド又はデータで構成される適当なソースコードを書き込み可能又は記憶可能、かつコンピュータへのアクセスを許可する他のいかなる媒体であってもよい。いかなるアクセスもコンピュータ可読媒体と正式的に呼ばれる。例えば、同軸ケーブル、光ファイバケーブル、ツイストペアケーブル、デジタル加入者線(DSL)、又は赤外線、無線、及びマイクロ波などの無線技術を用いてウェブサイト、サーバ、あるいはその他の遠隔地からソフトウェアを伝送されてくる場合、前記同軸ケーブル、光ファイバケーブル、ツイストペアケーブル、デジタル加入者線(DSL)、又は赤外線、無線、及びマイクロ波などの無線技術は媒体として定義される。本明細書に記載されたディスク(英語表記には「Disk」と「Disc」の2種類のスペルがあり、磁気メディアにDisk、光学メディアにDiscを使うことが多い)は、コンパクトディスク(CD)、レーザーディスク、光ディスク、デジタル多目的ディスク(DVD)、フロッピーディスクやブルーレイディスクを含む。これらの組み合わせも、コンピュータ可読媒体として定義される。
本発明について好適な実施形態を参照して説明したが、開示された実施の形態に限定されるものではなく、本発明を変更又は修正できることは、当業者であれば、理解されるべきである。これらの態様へのさまざまな変更、入れ替え、改善などは、本発明の精神又は範囲から逸脱することなく、他の態様に適用される。