まず、本実施の形態に係る通信システム1について、図1を参照して説明する。
図1に示すように、通信システム1は、情報処理装置100と、通信端末200と、当該情報処理装置100とネットワーク9を介して相互に通信可能なポイント決済サーバ300と、を備えている。なお、図示するように、情報処理装置100および通信端末200は、いずれも店舗999内にあるものとする。なお、この実施の形態における情報処理装置100の機能は、店舗999の店舗端末に内蔵されており、この実施の形態における情報処理装置100は、店舗999の店舗端末であるものとする。店舗端末は、説明は省略するが、商品購入などの一般的な決済処理を行う機能を有している。また、通信システム1は、情報処理装置100と通信端末200との通信を、ネットワーク9を介して中継する中継サーバ400を備えている。なお、中継サーバ400の詳細については図示を省略するが、中継サーバ400は、店舗999とは異なる場所に設置された装置、例えば、汎用コンピュータである。中継サーバ400は、情報処理装置100から送信された送信データを記憶する機能を有しており、店舗端末からの問い合わせに応じて当該問い合わせに応じた送信情報を、記憶した送信情報の中から特定して店舗端末に送信する機能を有している。すなわち、中継サーバ400は、当該情報処理装置100と通信端末200との通信を制御する機能を有している。
図1に示すように、情報処理装置100は、記憶部110と、制御部120と、入力部130と、出力部140と、検知部150と、通信部160と、これらを相互に接続するシステムバス99と、を備えている。この実施の形態における情報処理装置100は、認証装置として機能するとともに、ポイントを付与する処理などのポイント決済処理の中継装置としても機能する。なお、詳しくは後述するが、情報処理装置100は、有効期限を有する認証情報としてのワンタイムキーを生成し、通信端末200へ出力する機能や、通信端末200の正当性を認証する機能を有している。また、通信端末200から受信したユーザID(会員番号やパスワードなど)を、ネットワーク9を介してポイント決済サーバ300へ送信し、ポイント決済処理(決済金額に応じたポイント付与に関する決済処理)を行わせる機能を有している。なお、詳しくは後述するが、当該情報処理装置100におけるポイント決済処理を行わせる機能には、通信端末200から音声として送信された送信データと、通信端末200から中継サーバ400を介して送信された送信データとのいずれの送信データを用いるのかを判定する機能が含まれている。また、この実施の形態では、それぞれの送信データの区別を容易にするため、通信端末200から音声として送信された送信データを音声送信データといい、通信端末200から中継サーバ400を介して送信された送信データをビット列送信データということとする。
記憶部110は、ハードディスクやメモリなどから構成され、プログラム111が格納される。プログラム111は、ワンタイムキーを生成および更新する処理や、通信端末200の正当性を認証する処理を実行するソフトウェアである。なお、図示は省略するが、記憶部110には、後述するワンタイムキー生成部121にて生成されたワンタイムキーとその有効期限、ユニークID、および通信端末200から受信した送信データなどが記憶される。
制御部120は、CPU(Central Processing Unit)等から構成される。制御部120は、記憶部110に記憶されたプログラム111に従って動作し、プログラム111に従った処理を実行する。制御部120は、プログラム111により提供される主要な機能部として、ワンタイムキー生成部121と、認証処理部122と、決済情報生成部123と、を備えている。
ワンタイムキー生成部121は、ワンタイムキーおよびユニークIDを生成する処理(ワンタイムキー生成処理)を実行する機能を有している。ワンタイムキーとは、所定の有効期限を有し、1度限り(1回の認証においてのみ)有効な情報である。ワンタイムキー生成部121は、通信端末200が情報処理装置100に近接したことを検知部150が検知したことに基づいて、一般的な手法によりワンタイムキーを生成する。また、ワンタイムキー生成部121は、当該店舗端末に内蔵された情報処理装置100に予め付されている固有情報に、当該ワンタイムキー生成処理を実行した際の時間データを付加したユニークIDを生成する。なお、情報処理装置100にはRTC(Real Time Clock)が内蔵されており、当該RTCにより時間データを取得すればよい。そして、ワンタイムキー生成部121は、生成したワンタイムキーおよびユニークIDを変換(変調)して音声データ(ワンタイムキーおよびユニークIDの音声データ)を生成する。ワンタイムキー生成部121は、生成したワンタイムキーおよびユニークIDの音声データを、出力部140により音声出力する。なお、店舗端末に内蔵された情報処理装置100に予め付されている固有情報に、一定時間毎に変化するカウンターにより示されるデータを時間データとして付加することでユニークIDを生成してもよい(以下、ユニークIDを生成する際には同様である)。
認証処理部122は、通信端末200の正当性を認証する処理(認証処理)を実行する機能を有している。認証処理部122は、通信端末200から音声の送信データ(音声送信データ)を受信すると、当該送信データに含まれるワンタイムキーに基づいて通信端末200が正当であるか否かを認証する。また、認証処理部122は、受信した送信データに含まれる会員番号やパスワードが正当であるか否かを確認することで通信端末200の正当性を認証する。なお、当該認証は、記憶部110の予め記憶されている情報を確認することにより行えばよい。
決済情報生成部123は、詳しくは後述するが、送信データに基づいて決済処理に必要な決済情報を生成する。決済情報生成部123は、通信端末200から出力された音声の送信データ(音声送信データ)と、通信端末200から中継サーバ400を介して送信された送信データ(ビット列送信データ)とのいずれを先に受信したかを判定し、先に受信した送信データが通信端末200から出力された音声送信データであれば、当該音声送信データを復調し、当該復調した送信データに基づいて決済情報を生成する。一方、先に受信した送信データが通信端末200から中継サーバ400を介して送信されたビット列送信データであれば、そのまま当該送信データに基づいて決済情報を生成する。なお、この実施の形態では、先に受信した送信データに基づいて決済情報を生成する例を示しているが、先に受信した送信データを一部取りこぼした場合など、完全に受信できない場合もある。そのため、先に受信した送信データを完全に受信することができたか否かを判定し、完全に受信できなかった場合には、後から受信した送信データに基づいて決済情報を生成してもよい。なお、決済情報生成部123では、当該送信データに含まれる会員番号やパスワードの情報に、店舗を識別する店舗識別情報(店舗ID)や決済金額などを付加することにより決済情報を生成すればよい。
入力部130は、マイクなどといった音声データの入力を行うための装置である。具体的に、入力部130は、通信端末200から出力された音声の送信データ(音声送信データ)を受信し、制御部120に入力する。
出力部140は、スピーカーなどいった音声データの出力を行うための装置である。具体的に、出力部140は、ワンタイムキー生成部121により生成され変調されたワンタイムキーおよびユニークIDの音声データを通信端末200へ出力する。また、出力部140には、一般的なモニターなどの表示装置が含まれており、出力部140は、ポイント決済サーバ300から受信したポイント処理結果を表示する。
検知部150は、例えば近接センサなどから構成され、当該情報処理装置100と通信端末200との距離が予め定められた距離(例えば7cm)以内であることを検知する。検知部150は、通信端末200が情報処理装置100に近接したと検知すると、制御部120へ検知信号を出力する。制御部120のワンタイムキー生成部121は、当該検知信号に基づいてワンタイムキー生成処理を開始する。なお、検知部150は、情報処理装置100と通信端末200との距離が予め定められた距離(例えば7cm)以内であることの他、どの程度の距離であるかを検知することが可能である。なお、この実施の形態における検知部150は、情報処理装置100と通信端末200との距離が予め定められた距離として7cm以内であることを検知する例を示したが、7cmというのはあくまでも一例であり、音声データを好適に送受信することができる距離であれば7cmに限られない。すなわち、実験等により音声データを好適に送受信可能な距離を、予め定められた距離として設定すればよい。また、予め定められた距離として、近接センサの種類に応じて異なる距離が設定されてもよい。
通信部160は、インターネット等の通信ネットワークに接続することが可能なインターフェースである。通信部160は、ネットワーク9を介してポイント決済サーバ300と相互に通信を行う。通信部160は、例えば専用線やインターネットなどを介してポイント決済サーバ300の通信部330と通信を行い、必要な情報を送受信する。また、通信部160は、低消費電力を目的として策定されたBluetooth(登録商標)の規格であるBLE(Bluetooth Low Energy)により通信を行い、必要な情報を送受信する機能を有していてもよい。また、通信部160は、通信端末200から中継サーバ400を介して送信された送信データ(ビット列送信データ)を受信し、制御部120に入力する。なお、この実施の形態では、ワンタイムキー生成部121にて生成したユニークIDに基づいて、店舗端末(情報処理装置100)が中継サーバ400に対して常時問い合わせを行っており、当該ユニークIDを含む送信情報が通信端末200から中継サーバ400に送信されて記憶されると、店舗端末(情報処理装置100)はそれを通信部160から取得して制御部120に入力する。すなわち、この実施の形態では、通信端末200が中継サーバ400に対して送信データを送信し、店舗端末(情報処理装置100)がユニークIDに基づき中継サーバ400に問い合わせることにより、店舗端末(情報処理装置100)は送信データを取得する。なお、説明を簡単にするため、この実施の形態では、このことを、単に通信端末200から中継サーバ400を介して送信情報を店舗端末へ送信する、としている。
通信端末200は、例えば、携帯電話やスマートフォン、タブレット端末などであり、図2に示すように、記憶部210と、制御部220と、入力部230と、出力部240と、これらを相互に接続するシステムバス98と、を備えている。
記憶部210は、ハードディスクやメモリなどから構成され、プログラム211が格納される。プログラム211は、情報処理装置100に出力する送信データを生成する処理を実行するソフトウェアである。なお、図示は省略するが、記憶部210には、会員番号やパスワードなどの各種データや、後述する送信データ生成部221にて生成された送信データ、および情報処理装置100から受信したワンタイムキーおよびユニークIDの音声データなどが記憶される。
制御部220は、CPU等から構成される。制御部220は、記憶部210に記憶されたプログラム211に従って動作し、プログラム211に従った処理を実行する。制御部220は、プログラム211により提供される主要な機能部として、送信データ生成部221を備えている。なお、制御部220は、入力部230にて受信された音声データ(ワンタイムキーおよびユニークIDの音声データ)を復調する機能を有している。
送信データ生成部221は、情報処理装置100に出力する送信データを生成する処理(送信データ生成処理)を実行する機能を有している。具体的に、送信データ生成部221では、情報処理装置100に直接音声で出力する送信データとしての音声送信データと、中継サーバ400を介して情報処理装置100に送信する送信データ(ビット列送信データ)とを生成する。
送信データ生成部221は、情報処理装置100からワンタイムキーおよびユニークIDの音声データを受信すると、当該受信したそれぞれの音声データを復調してビット列データとし、例えば、会員番号やパスワードなどのデータに、ユニークIDのビット列データを付加して送信データ(ビット列送信データ)とする。また、送信データ生成部221は、会員番号やパスワードなどのデータに、ワンタイムキーのビット列データを付加し、さらにそれを変調して音声送信データとする。すなわち、送信データ生成部221では、情報処理装置100へ出力する送信データとして、直接出力する音声送信データと、中継サーバ400を介して送信する送信データとしてのビット列送信データとの2つの送信データを生成する。
入力部230は、マイクなどといった音声データの入力を行うための装置である。具体的に、入力部230は、情報処理装置100から出力されたワンタイムキーおよびユニークIDの音声データを受信して制御部220に入力する。
出力部240は、インターネット等の通信ネットワークに接続することが可能であり、かつスピーカーなどといった音声データの出力を行うことが可能な装置である。具体的に、出力部240は、送信データ生成部221により生成され音声データに変換(変調)された音声送信データを通信端末200へ出力する。また、出力部240は、送信データ生成部221により生成されたビット列送信データを、中継装置400を介して通信端末200へ出力する。
ここで、情報処理装置100および通信端末200における音声を伝送媒体とした通信において採用する通信方式を説明する。情報処理装置100および通信端末200は、直行周波数分割多重変調(Orthogonal Frequency Division Multiplexing:OFDM)を採用する。OFDMは、マルチキャリア伝送の一方式であり、所定の周波数の範囲内において、複数の搬送波を、隣接する搬送波と干渉しないように密に並べ、限られた周波数の範囲を効率よく利用する。OFDMを使用することで、占有周波数帯域を肥大化させることなく、マルチキャリア化することができる。OFDMの変調のためIFFT(Inverse Fast Fourier Transform:逆フーリエ変換)が、復調のためFFT(Fast Fourier Transform:フーリエ変換)が使用されることが一般的である。このIFFTとFFTは1シンボルごとに行う。
OFDMはマルチキャリア伝送の方式であるため、各搬送波(サブキャリア)の変調方式(一次変調方式)として任意のものを選択することができる。本実施の形態では、後述する理由により、第1の変調方式である周波数変調方式(Frequency Shift Keying:FSK)と、第2の変調方式である二位相偏移変調方式(Binary Phase Shift Keying:BPSK)とを使用して、各サブキャリアを変調する。
FSKでは、2つの周波数帯域の異なるサブキャリアを対にして使用し、それぞれに別の値を割り当てる。このため、FSKでは、1シンボルあたり2つのサブキャリアを使用して2値(1ビット)の情報を表すことができる。
BPSKは、180°に分離された2つの位相の波を用いる位相変調方式(Phase Shift Keying:PSK)であって、それぞれの位相に別の値を割り当てる。BPSKでは、1シンボルあたり2値(1ビット)の情報を表すことができる。
上記構成を実現するため、情報処理装置100の出力部140と通信端末200の出力部240、情報処理装置100の入力部130と通信端末200の入力部230は、それぞれ以下のような回路を有する。まず、図3(a)に、情報処理装置100の出力部140および通信端末200の出力部240が有する回路の構成の一例を示す。情報処理装置100の出力部140および通信端末200の出力部240は、マッピング回路1611、サブキャリア変調回路1612、IFFT回路1613、周波数変換回路1614を含む。
情報処理装置100の制御部120および通信端末200の制御部220は、送信するデータ系列を処理して所定のサイズ(1ビット)のデータに分割し、分割した各データをマッピング回路1611に供給する。マッピング回路1611は、分割した各データを各サブキャリアの各シンボル区間にマッピングする。上述のように、サブキャリアはFSKとBPSKとで変調されるため、1つのサブキャリアの1シンボル区間には1ビットが割り当てられる。その後、サブキャリア変調回路1612で、サブキャリアはFSKとBPSKとで変調され、IFFT回路1613で逆離散フーリエ変換されて時間信号に変換されることで、周波数変換回路1614で対象の音声周波帯にコンバートされ、それぞれのスピーカーに出力される。
図3(b)に、情報処理装置100の入力部130と通信端末200の入力部230が有する回路の構成の一例を示す。情報処理装置100の入力部130および通信端末200の入力部230は、周波数変換回路1621、FFT回路1622、復調回路1623、デマッピング回路1624を含む。それぞれのマイクにより集音された音声は、周波数変換回路1621で所定の周波数帯にコンバートされ、FFT回路1622で離散フーリエ変換された周波数領域のデータに戻される。その後、復調回路1623で、サブキャリア信号をFSKとBPSKとに対応する復調方式で復調され、デマッピング回路1624で、各サブキャリアと各シンボル区間に割り振られた所定のビット単位のデータを復元され、情報処理装置100の制御部120および通信端末200の制御部220に出力される。
続いて図4に示すポイント決済サーバ300の構成について説明する。ポイント決済サーバ300は、店舗999とは異なる場所に設置された装置、例えば、汎用コンピュータである。ポイント決済サーバ300は、情報処理装置100からネットワーク9を介して、ユーザID(会員番号やパスワード)および店舗IDを受信すると、決済金額に応じたポイント付与に関する決済処理(ポイント決済処理)を実行し、当該ポイント決済処理の結果を決済端末に送信する。なお、この実施の形態では、当該ポイント決済サーバ300がポイントの付与を行うことを例に説明しているが、この他にも、電子マネーによる商品購入における決済処理やクーポンの配布など、データの送受信に関する事項であれば適用可能である。
図4に示すように、ポイント決済サーバ300は、記憶部310と、制御部320と、通信部330と、これらを相互に接続するシステムバス97と、を備えている。なお、ポイント決済サーバ300は、コンピュータが従来備えている機能を備えているものとし、従来の機能については説明を省略する。
記憶部310は、制御部320が動作するためのメインメモリ及びワークメモリとして機能する。記憶部310は、例えば、ハードディスクやメモリなどから構成され、各種の情報、固定データ、アプリケーション、画面データ、及び、制御部320によって実行される動作プログラム等を記憶する。
また、記憶部310は、制御部320が実行する決済に係る処理を実行するための決済処理プログラム311を記憶する。さらに、記憶部310は、決済の処理のため、当該通信システム1を利用するユーザの情報(ユーザIDやポイントの残数など)を格納するユーザテーブル312を記憶する。また、記憶部310は、決済の処理のため、当該通信システム1を利用する店舗の情報(店舗IDなど)を格納する店舗テーブル313を記憶する。ユーザテーブル312および店舗テーブル313は、当該通信システム1の利用登録時(初回の使用登録時)にそれぞれ記憶されればよい。
制御部320は、例えば、CPU等から構成され、ポイント決済サーバ300の各部の制御を行う。制御部320は、記憶部310に記憶されている決済処理プログラム311を実行することにより、ポイント決済に係る処理を実行する。
通信部330は、インターネット等の通信ネットワークに接続することが可能なインターフェースである。通信部330は、ネットワーク9を介して、情報処理装置100の通信部160と通信を行い、必要な情報を送受信する。
以上が、通信システム1の構成である。続いて、通信システム1の全体的な動作について、情報処理装置100の動作を中心に説明する。
まず、情報処理装置100に電源が投入されると、図5に示すように処理を開始し、情報処理装置100と通信端末200との距離が予め定められた距離以内であるか否か、すなわち、検知部150にて近接したと検知されたか否かを判定する(ステップS101)。検知部150にて検知されていない場合(ステップS101;No)、検知されるまでステップS101の処理を繰り返す。
一方、検知部150にて検知された場合(ステップS101;Yes)、制御部120は、ワンタイムキー生成部121の機能により、ワンタイムキー生成処理を実行する(ステップS102)。図6は、図5のステップS102にて行われるワンタイムキー生成処理の一例を示すフローチャートである。図6に示すように、制御部120のワンタイムキー生成部121は、まず、ワンタイムキーおよびユニークIDを生成する(ステップS111)。ステップS111の処理では、例えば、現在の時刻に基づいて生成するなど、一般的なワンタイムキーの生成手法によりワンタイムキーを生成すればよい。また、店舗端末に内蔵された情報処理装置100に予め付されている固有情報に当該ワンタイムキー生成処理を実行した際の時間データを付加することによりユニークIDを生成すればよい。なお、情報処理装置100と通信端末200とは認証処理が終了するまでの期間、近接した状態に保たれるものとする。また、ステップS111の処理において、ワンタイムキー生成部121は、生成したワンタイムキーおよびユニークIDを音声データに変換(変調)する。
ステップS111の処理を実行した後、ワンタイムキー生成部121は、生成したワンタイムキーおよびユニークIDを出力部140により音声データとして出力させ(ステップS112)、ワンタイムキー生成処理を終了する。当該ステップS112の処理が実行されることにより、近接した通信端末200にてワンタイムキーおよびユニークIDの音声データが受信されることとなる。ステップS112の処理では、予め実験などにより定められた音量(すなわち、検知部150にて検知される範囲内であれば音声による送受信が可能な最低限の音量)で出力される。なお、ステップS112の処理では、ワンタイムキーおよびユニークIDの出力音量を、検知部150において検知した情報処理装置100と通信端末200との距離に応じて異なる音量となるよう調整して出力してもよい。例えば、検知部150において距離が2cmであると検知した場合は、7cmであると検知した場合よりも出力音量が小さくなるように調整して出力すればよい。なお、離間距離に応じて予め出力音量が設定されていてもよい。
このように、ステップS111の処理により、ワンタイムキーおよびユニークIDが音声データに変調され、そしてステップS112の処理により、ワンタイムキーおよびユニークIDが音声データとして送信されることとなるが、この実施の形態では、音声を媒体とした通信であることを利用して、図7に示すように、互いに独立した異なる特性を有する複数の変調方式を用いることにより、送信データを多重化して送信する(後述する図9のステップS211およびステップS212の処理にて送信データとしてのユーザIDなど(会員番号やパスワードなど)を音声に変調して音声出力する場合においても同様)。互いに異なる特性の複数の変調方式を用いるため、各データが同時に送信エラーを引き起こすおそれを低減できる。互いに独立した変調方式としては、例えば、FSK、PSK、振幅偏移変調(Amplitude-shift keying:ASK)等がある。
以下、FSK(第1の変調方式)とBPSK(第2の変調方式)とを用いてサブキャリアを変調した場合を例に説明する。なお、異なる変調方式の組み合わせは上記の組み合わせに限定されず、例えば、PSKとASKとを用いてもよく、ASKとFSKとを用いてもよい。また、PSKとして四位相偏移変調方式(Quadrature Phase Shift Keying:QPSK)、差動四位相偏移変調方式(Differential Quadrature Phase Shift Keying:DQPSK)、差動二位相偏移変調方式(Differential Binary Phase Shift Keying:DBPSK)等を用いてもよい。
FSKは、サブキャリアの周波数を変調させることでデータを伝送する変調方式である。サブキャリアの変調に位相を使用していないため、通信端末200の動き等に起因する通信環境の変化に強い。しかし、周波数を用いてサブキャリアを変調しているため、周波数の使用効率が低い。図7(a)は、OFDMと組み合わせたFSKにおいて2つのチャネル(以下、ch)を使用してデータの1と0を表現した具体例を示す。ch1を使用した場合が1、ch2を使用した場合が0である。FSKでは、図7(a)に示すように、2つのchを用いて1シンボル区間当たり1ビット分の情報を送信できる。
BPSKは、サブキャリアの位相を変調させることでデータを伝送する変調方式である。サブキャリアの変調に周波数を使用していないため、周波数の使用効率に優れているが、FSKと異なり通信端末200の動き等に起因する通信環境の変化に弱い。図7(b)は、BPSKで2種類の位相を使用してデータの1と0を表現した具体例を示す。サブキャリアが山から始まる場合が1、サブキャリアが谷から始まる場合が0である。BPSKでは、図7(b)に示すように、1つのchで1シンボル区間当たり1ビット分の情報を送信できる。
図7(c)は、FSKを用いてサブキャリアに情報を載せながら、BPSKを用いてサブキャリアに異なる情報を載せて送信する例を示す。第1シンボル区間では、ch1のサブキャリアが山から始まっているため、FSKのデータは1であり、BPSKのデータは1である。第2シンボル区間では、ch2のサブキャリアが山から始まっているため、FSKのデータは0であり、BPSKのデータは1である。このようにして、FSKとBPSKとを用いてサブキャリアに異なるデータを載せて送信できる。図7(c)から理解できるように、FSKとBPSKとを用いた場合、FSKとして1シンボル区間当たり0.5ビット/ch、BPSKとして1シンボル区間当たり0.5ビット/chのデータを送信できる。
以下、出力部140が送信データとしてのワンタイムキー(ユニークIDについても同様)に応じてFSKとBPSKとを用いてサブキャリアを変調する処理について具体的に説明する。なお、後述する図9のステップS212の処理にて送信データとしてのユーザID(会員番号やパスワード)などを音声出力する場合においても同様である。この例では、サブキャリアの数が126である場合を例に説明する。
以下、理解を容易にするために、送信データのビット列をB1、B2、…、Bn、B1’、B2’、…、Bn’(nは自然数)とし、サブキャリアをC1、C2、…、C126とする。サブキャリアC1、C2、サブキャリアC3、C4、…、サブキャリアC125、C126をそれぞれペアとし、順番にペアP1、P2、…P63とする。ここでは、データのマッピングにおいてビット列の順番は変更されないと仮定する。
マッピング回路1611は、FSKを用いて、第1シンボル区間において、ペアP1にビット列B1、ペアP2にビット列B2、…、ペアP63にビット列B63を順番に割り当てる。次いで、マッピング回路1611は、FSKを用いて、第2シンボル区間において、ペアP1にビット列B64、ペアP2にビット列B65、…、ペアP63にビット列B126を順番に割り当てる。
その後、前述のとおり、サブキャリア変調回路1612は、各サブキャリアに割り当てられたデータに応じて、FSKとBPSKとを用いて各サブキャリアを変調する。
出力部140は、それぞれのペアP1、P2、…、P63ごとにサブキャリアの一つを選択することにより、FSKを用いてデータを送信する。そして、出力部140は、選択されたサブキャリアの位相を変調することにより、BPSKを用いてデータを送信する。出力部140は、FSKとBPSKとを用いて同一のデータを送信してもよく、FSKとBPSKとで異なるデータを送信してもよい。
このように、本実施の形態に係る通信方式では、通信環境の変化に対して異なる影響を受ける複数の変調方式を用いているため、データの通信エラーが発生することを防止でき、通信の安定性を向上させることができる。通信環境の変化が大きい場合、例えば、通信端末200の動きが大きい場合、集音した音声信号を環境の変化に強いFSKで変調された部分を用いてデータを復調し、1シンボル区間当たり0.5ビット/chのデータを安定的に受信できればよい。一方、通信環境の変化が小さい場合、集音した音声信号からBPSKで変調された部分も追加で読み出すことにより、さらに1シンボル区間当たり0.5ビット/chのデータを追加できるため、合計で1シンボル区間当たり1ビット/chの情報を受信できる。
ところで、異なる変調方式を用いて多重化を行うには、異なるサブキャリアに対してそれぞれ異なる変調方式を採用することも考えられる。しかし、この場合、多数のサブキャリアを使用する必要があるため、広い周波数帯域が必要となる。また、出力部140の送信能力にも限界があるため、サブキャリアの数が増えることにより、サブキャリア当たりのエネルギーが小さくなる。本実施の形態に係る通信方式では、FSKとBPSKとを用いてサブキャリアを変調しているため、周波数の使用効率の向上できると共に、サブキャリアの送受信に使用するエネルギーの効率化も実現できる。なお、上述したように、後述する図9のステップS212の処理にて送信データとしてのユーザIDなど(会員番号やパスワード)を音声出力する場合においても同様である。すなわち、ここでは情報処理装置100を例に説明したが、通信端末200においても同様である。
上述のように、情報処理装置100(通信端末200も同様)は、2つの変調方式を使用して同じデータを二重に送信することができる。さらに、次のような手法を採用してデータを送信する。通信の安定性を確保するために、通信環境の変化が大きい場合にあわせて常に通信速度を低下させると、通信時間が延びてしまい、ユーザの利便性が損なわれる。
そこで、多重化したデータの送信順序を工夫して送信することにより、環境の変化に合わせて通信速度を増減させる。図8は、FSKとBPSKを用いてデータを送信するイメージの一例を示す。図8の送信イメージにおいて、情報処理装置100が送信する送信データ(ワンタイムキー)は、第1データD1、第2データD2、第3データD3、第4データD4、第5データD5、第6データD6から構成される。
情報処理装置100は、使用する変調方式によりデータD1〜D6の送信順序を変える。具体的には、予め定義されている情報(ルール)に基づいて、送信する一連のデータを2分割(D1〜D3、D4〜D6)し、BPSKで変調するデータは、2分割した後半のグループ(D4〜D6)を先に送信し、その後、分割した前半のグループ(D1〜D3)を送信する。一方、FSKで変調するデータは、順序を変えることなくデータD1〜D6を送信する。例えば、図8に示すように、第1シンボル区間では、FSKに第1データD1を、BPSKに第4データD4を載せている。第2シンボル区間では、FSKに第2データD2を、BPSKに第5データD5を載せている。
この構成によれば、通信状態が正常な場合、受信側は、FSKとBPSKのいずれからもデータの復調が可能であるため、通信の前半で、FSKでグループ(D1〜D3)を、BPSKでグループ(D4〜D6)を受信した時点で、全データを受信できる。このため、後半の受信、復調等の処理が不用となる。したがって、より早く受信処理を終了し、結果として複数の変調方式から情報を復元できる場合、通信速度を速めることができる。
また、通信の前半で、バースト性のノイズ等により、FSKとBPSKのいずれからもデータの一部又は全部の復調ができない場合でも、通信の後半で、FSKとして受信したグループ(D4〜D6)と、BPSKとして受信したグループ(D1〜D3)と、から正しく受信データを復元できるため、安定した通信を実現できる。
さらに、通信の前半と後半を通して、通信端末200の動き等に起因する通信環境の変化により、BPSKでデータの復調ができない場合でも、FSKでデータを復調できるため、安定した通信を実現できる。
このように、本実施の形態に係る通信方式では、通信端末200の動き等に対する特性が異なる複数の変調方式を用いてデータを送信するため、通信端末200の動き等の通信環境の変化に応じて通信速度を増大させると共に、常に安定した通信を実現できる。ここでは、情報処理装置100を例に説明したが、通信端末200も上記と同様の構成を有している。
図5に戻り、ステップS102の処理が実行されると、通信端末200にてワンタイムキーおよびユニークIDの音声データが受信され、このことに起因して通信端末200の処理が開始される。なお、当該ワンタイムキーおよびユニークIDの音声データは、上述したように通信端末200の入力部230にて受信されるが、当該入力部230は予め受信可能な状態(音声データを受信できる状態)に設定されているものとする。また、入力部230にて受信された音声データは、制御部220にて復調され、ビット列データとなる。
ここで、通信端末200が実行する復調処理について説明する。通信端末200は、FSK、BPSKを用いて変調された信号から同一の情報を二重に受信するが、信号の復調の際において、受信データの品質を考慮して復調処理を実行する。なお、後述する図5のステップS201の処理が行われ、情報処理装置100にて音声送信データが受信された場合についても同様である。
具体的に、通信端末200の制御部220は、FSK、BPSKを用いて変調した音声信号を受信し、当該音声信号のうちFSKで変調された部分と、BPSKで変調された部分と、をそれぞれ復調する。そして、制御部220は、当該音声信号がFSKで変調された部分をFSKで復調したデータと、BPSKで変調された部分をBPSKで復調したデータとが、それぞれ所定の品質を満たすかどうか判定する。復調したデータが所定の品質を満たしているかどうかは、例えば、CRC等のエラー検出符号を用いて判定されたデータの欠陥の有無、受信信号のS/N比(Signal-Noise Ratio)又は強度などが所定の値以上かどうか等に基づいて判定する。
そして、所定の品質を満たすと判定されたデータを用いて、音声信号を受信データに変換する。その後、制御部220は、サブキャリアの復調、デマッピング等の後続する処理を実行する。なお、ここでは、通信端末200を例に説明したが、上述したように、情報処理装置100も同様の構成を有している。
このように、通信システム1では、上記の構成を有することで、送信エラー等により一方の変調方式を用いて変調した音声信号からデータの一部又は全てを正確に復調できなかった場合であっても、他方の変調方式を用いて変調した音声信号を使用して、受信したデータを復調することができる。
図5に戻り、通信端末200の処理を開始すると、通信端末200は、送信データ生成部221の機能により送信データ生成処理を実行し(ステップS201)、その後通信端末200は処理を終了する。図9は、図5のステップS201にて行われる送信データ生成処理の一例を示すフローチャートである。図9に示すように、制御部220の送信データ生成部221は、まず、店舗端末(情報処理装置100)から受信したワンタイムキーおよびユニークIDの音声データを復調し、記憶部210に記憶されている会員番号やパスワードなどといった送信対象となる情報に、それぞれを付加して送信データを生成する(ステップS211)。具体的に、ステップS211の処理では、上述したように、会員番号やパスワードなどのデータに、ユニークIDのビット列データを付加したビット列送信データと、会員番号やパスワードなどのデータに、ワンタイムキーのビット列データを付加し、さらにそれを変調した音声送信データと、をそれぞれ生成する。
ステップS211の処理を実行した後、送信データ生成部221は、生成した音声送信データを出力部240により出力させるとともに、生成したビット列送信データを出力部240より出力させ(ステップS212)、送信データ生成処理を終了する。なお、上述したように、送信データ生成処理においても、ワンタイムキー生成処理と同様、複数の変調方式を用いて送信データを多重化して送信する。当該ステップS212の処理が実行されることにより、音声送信データは、近接した情報処理装置100に音声データとして出力され、ビット列送信データは、中継装置400を介して情報処理装置100に出力されることとなる。なお、ステップS212の処理における音声送信データの出力音量については、上述したように、情報処理装置100の検知部150にて検知される範囲内であれば音声による送受信が可能な最低限の音量であればよい。具体的に、ステップS212の処理では、通信端末200の入力部230にて受信した音量と同等の音量で出力すればよい。
このように、図6のステップS112の処理および図9のステップS212の処理により、検知部150にて検知された範囲内であれば音声による送受信が可能な最低限の音量にてそれぞれの音声が出力される。したがって、例えば、通信端末200との距離が近接しているものの、情報処理装置100の検知部150では検知されない通信端末(対象外の通信端末)にワンタイムキーが受信されることを防止することができる。また、対象外の通信端末の通信端末の出力音量が大きい場合には、情報処理装置100にて当該対象外の通信端末にて出力された音声が受信されることとなるが、この場合にはワンタイムキーが異なるため(対象外の通信端末は別のワンタイムキーを使用しているため)、認証に成功することはない。したがって、不正を好適に防止することができる。
図5に戻り、ステップS201の処理が実行されると、情報処理装置100の入力部130にて音声送信データが、通信部160にてビット列送信データが、それぞれ受信されることとなり、このことに起因して情報処理装置100が判定処理を行う(ステップS102A)。なお、ステップS102Aの処理は、音声送信データとビット列送信データのうち、いずれか一方を受信した場合に実行されてもよい。また、上述したように、この実施の形態におけるビット列送信データの受信は、通信端末200により中継装置400に対して送信された送信データ(ユニークIDを含む)を、店舗端末(情報処理装置100)がユニークIDに基づき中継サーバ400に問い合わせることにより取得することをいう。当該判定処理では、決済情報生成部123の機能により、音声送信データとビット列送信データのうち、いずれの送信データを先に受信したか、を判定する。
図10は、図5のステップS102Aにて行われる判定処理の一例を示すフローチャートである。図10に示すように、制御部120の決済情報生成部123は、まず、通信端末200から出力された音声の送信データ(音声送信データ)を先に受信したかを判定する(ステップS251)。ステップS251の処理では、例えば、それぞれの送信データ受信時のタイムスタンプを比較することにより、いずれの送信データを先に受信したかを判定すればよい。
ステップS251の処理にて音声送信データを先に受信したと判定した場合(ステップS251;Yes)、決済情報生成部123は、受信した音声送信データを復調してビット列データとする(ステップS252)。ステップS252の処理を実行した後、当該復調した送信データを採用するよう、当該復調した送信データを使用送信データとして記憶部110へ記憶し(ステップS253)、判定処理を終了する。一方、ステップS251の処理にてビット列送信データを先に受信したと判定した場合(ステップS251;No)、受信したビット列送信データを採用するよう、当該送信データを使用送信データとして記憶部110へ記憶し(ステップS254)、判定処理を終了する。
図5に戻り、ステップS102Aの処理を実行した後、制御部120は、認証処理部122の機能により認証処理を実行する(ステップS103)。
図11は、図5のステップS103にて行われる認証処理の一例を示すフローチャートである。図11に示すように、制御部120の認証処理部122は、まず、使用送信データとして記憶されている送信データが、音声送信データに基づくもの(音声によるもの)であるか否かを判定する(ステップS131A)。ステップS131Aの処理では、例えば、音声送信データに基づく送信データであることを示す送信データ種類特定フラグがオン状態にセットされているか否かにより判定すればよい。送信データ種類特定フラグは、図10のステップS253の処理にてオン状態にセットされ、ステップS254の処理にてオフ状態にセットされればよい。なお、送信データ種類特定フラグは、記憶部110の所定領域に予め設けられていればよい。
使用送信データが音声によるものである場合、すなわち、送信データ種類特定フラグがオン状態にセットされている場合(ステップS131A;Yes)、認証処理部122は、ワンタイムキー生成部121にて生成されたワンタイムキーと、使用送信データとして記憶されている送信データに含まれるワンタイムキーとが一致するか否かを判定する(ステップS131)。具体的に、ステップS131の処理では、まず、復調されてビット列データとなっている送信データに含まれるワンタイムキーを抽出する。そして、抽出したワンタイムキーと、ワンタイムキー生成部121にて生成されたワンタイムキーとが一致するか否かを判定する。なお、上述したように、ワンタイムキー生成部121にて生成されたワンタイムキーは、記憶部110に、有効期限とともに記憶されているため、記憶部110に記憶されたワンタイムキーの有効期限が切れている場合には、ステップS131の処理を実行するまでもなく、後述するステップS135の処理を実行すればよい。すなわち、まず記憶部110のワンタイムキーの有効期限を確認し、有効期限内である場合にのみステップS131の処理を実行すればよい。なお、有効期限が経過したワンタイムキーについては、当該有効期間が経過した時点で記憶部110から消去してもよい。
ステップS131にてワンタイムキーが一致すると判定した場合(ステップS131;Yes)、認証処理部122は、認証に成功したと認定する(ステップS132)。具体的に、ステップS132の処理では、通信端末200に認証に成功した旨の音声出力をするなど、認証結果を通知すればよい。なお、上述したように、後続する処理を実行してもよい。ステップS132の処理を実行した後、認証処理部122は、記憶部110に記憶されているワンタイムキーを削除する(ステップS133)。
ステップS133の処理を実行した後、または、ステップS131Aにて使用送信データが音声によるものではないと判定した場合、すなわち、送信データ種類特定フラグがオフ状態にセットされている場合(ステップS131A;No)、認証処理部122は、その他の認証処理を実行し(ステップS134)、認証処理を終了する。ステップS134の処理では、例えば、送信データに含まれる会員番号やパスワードが正当であるか否かを確認し、通信端末200の正当性を認証する。なお、正当ではないと判定した場合、通信端末200に、認証に失敗した旨の音声出力をすればよい。
一方、ステップS131にてワンタイムキーが不一致(記憶部120にワンタイムキーが記憶されていない場合や有効期限切れの場合も含む)であると判定した場合(ステップS131;No)、認証処理部122は、認証に失敗したと認定し(ステップS135)、認証処理を終了する。具体的に、ステップS135の処理では、通信端末200に認証に失敗した旨の音声出力をするなど、認証結果を通知すればよい。
図5に戻り、ステップS103の処理を実行した後、制御部120は、認証処理部122の機能により、認証に成功したか否かを判定する(ステップS104)。認証に失敗した場合(ステップS104;No)、情報処理装置100は、そのまま処理を終了する。
一方、認証に成功した場合(ステップS104;Yes)、制御部120は、ポイント決済サーバ300へ決済処理の実行を依頼する電文を送信する(ステップS105)。具体的に、ステップS105の処理では、決済情報生成部123の機能により、通信部160を介して決済処理を要求する電文(決済情報)を生成する処理と、生成した決済情報をポイント決済サーバ300の通信部330へ送信する処理を実行する。決済情報の生成については、当該ポイント決済処理を行うユーザID(会員番号やパスワード)を、図10のステップS253またはステップS254の処理によりセットされた送信データ(使用送信データとして記憶部110に記憶されている送信データ)から取得し、当該依頼元の店舗IDと決済金額を付加することにより生成する。なお、当該電文(決済情報)がポイント決済サーバ300に送信されると、これに起因して、ポイント決済サーバ300の処理が開始される。
ポイント決済サーバ300の処理を開始すると、ポイント決済サーバ300は、ポイント決済処理を実行して実行結果を情報処理装置100へ送信し(ステップS301)、処理を終了する。ステップS301のポイント決済処理では、まず、情報処理装置100から受信したユーザID(会員番号やパスワード)および店舗IDが正当であるか否かを、それぞれ記憶部310に記憶されているユーザテーブル312および店舗テーブル313と比較することにより認証する。そして、認証に成功した場合に、受信した決済金額により示される金額に応じたポイントを付与する。具体的に、ユーザテーブル312におけるポイントの残数に、決済金額に応じた数のポイントを加算する。そして、当該ユーザIDおよびポイントの残数(ポイント処理結果)を情報処理装置100に送信する。なお、認証に失敗した場合には、ポイント処理結果として認証に失敗した旨を示す情報を送信すればよい。
続いて、情報処理装置100は、ポイント決済サーバ300からポイント処理結果を受信すると、当該処理結果を出力部240に含まれるモニターに表示するポイント表示処理を行い(ステップS106)、処理を終了する。
以上が、通信システム1における、情報処理装置100を中心とした動作である。このように、本実施の形態に係る情報処理装置100は、音声送信データとビット列送信データのうち、早く受信した方の送信データを用いて決済情報を生成する。したがって、携帯端末側の音量や性能により音声を精度よく受信できない場合であっても、電子決済における通信の安定性を向上させることができる。また、先に受信した送信データを完全に受信することができたか否かを判定し、完全に受信できなかった場合には、後から受信した送信データに基づいて決済情報を生成してもよく、これによれば、電子決済における通信の安定性をさらに向上させることができる。
また、本実施の形態に係る情報処理装置100は、1回の認証においてのみ有効なワンタイムキーを生成して音声出力する。そして通信端末200からの送信データを音声入力して当該送信データに含まれるワンタイムキーが、直前に生成して出力したワンタイムキーと一致するか否かにより通信端末200の正当性を判定する。すなわち、通信端末200から受信した送信情報に含まれるワンタイムキーが、生成時のワンタイムキーと一致する場合にのみ正当であると認証する。したがって、録音された後に再生されるといった不正を防止できる。よって、音声を伝送媒体とする認証におけるセキュリティを向上させ不正を防止することができる。また、本実施の形態に係る情報処理装置100は、音声を媒体とした通信であることを利用して、図7に示すように、互いに独立した異なる特性を有する複数の変調方式を用いることにより、送信データを多重化して送信する。互いに異なる特性の複数の変調方式を用いるため、各データが同時に送信エラーを引き起こすおそれを低減できる。すなわち、通信環境の変化に対して異なる影響を受ける複数の変調方式を用いているため、データの通信エラーが発生することを防止でき、通信の安定性を向上させることができる。
また、情報処理装置100の検知部150にて情報処理装置100と通信端末200との距離が予め定められた距離(例えば7cm)以内であることが検知された場合にワンタイムキー(およびユニークID)を音声出力する。そのため、ワンタイムキー(およびユニークID)の出力音量を当該近接した通信端末200にて受信できる程度の音量とすることができ、他人にワンタイムキーを録音されてしまうことを防止することができる。
(変形例)
この発明は、上記の実施の形態に限定されず、種々の変形及び応用が可能である。上記実施の形態で示した全ての技術的特徴を備えるものでなくてもよく、従来技術における少なくとも1つの課題を解決できるように、上記実施の形態で説明した一部の構成を備えたものであってもよい。また、下記の変形例で示す構成をそれぞれ組み合わせてもよい。
上記実施の形態では、制御部120のワンタイムキー生成部121の機能によりワンタイムキーおよびユニークIDをそれぞれ生成する例を示した。具体的に、ワンタイムキーは、音声送信データに含まれ、ユニークIDはビット列送信データに含まれる、といったように、音声通信である場合とそうでない場合とで分けて使用する例を示したが、これは一例である。ワンタイムキーとユニークIDをそれぞれ別途生成するのではなく、例えば、ワンタイムキーをユニークIDとして共通して使用してもよい。
また、上記実施の形態では、音声送信データとビット列送信データのうち、早く受信した方の送信データを用いて決済情報を生成する例を示したが、例えば、予め定められた期間内にいずれの送信データも受信しなかった場合には、タイムアウトとし、再度送信情報を送信すべき旨の通知を行うようにしてもよい。
上記実施の形態では、情報処理装置100の機能が店舗999の決済端末に内蔵されている(すなわち、情報処理装置100が決済端末である)ものとして説明したが、これは一例である。情報処理装置100の機能は、店舗999の決済端末に内蔵されていなくてもよく、例えば、図12に示すように、通信端末200と決済端末900との中継を行う中継装置に内蔵されていてもよい。すなわち、情報処理装置100は、通信端末200と決済端末900との中継を行う中継装置であってもよい。当該中継装置は、通信端末200との音声通信を近接して行うために好適な大きさであればよい。この場合における各種の処理について、図13を参照して以下説明する。なお、図5に示す処理と共通する部分については同様であるため、説明を省略する。
この場合、情報処理装置100は、上記実施の形態と同様に、ワンタイムキー生成部121の機能により、情報処理装置100に予め付されている固有情報に、当該ワンタイムキー生成処理を実行した際の時間データを付加したユニークIDを生成する。そして、図13のステップS102の処理において、図5のステップS102の処理と同様に、情報処理装置100は、生成したワンタイムキーおよびユニークIDを変換(変調)して音声データ(ワンタイムキーおよびユニークIDの音声データ)を生成する。ワンタイムキー生成部121は、生成したワンタイムキーおよびユニークIDの音声データを、出力部140により通信端末200に音声出力する。また、情報処理装置100は、図5のステップS102の処理に加え、生成したユニークIDを、低消費電力を目的として策定されたBluetooth(登録商標)の規格であるBLE(Bluetooth Low Energy)により、決済端末900に送信する(図13に示す(1)参照)。
また、この変形例に示す情報処理装置100は、通信端末200より音声送信データを受信すると、図11に示す処理と同様の認証処理を行い、音声送信データに含まれるワンタイムキーの正当性を認証する(図13のステップS103)。そして、認証に成功したか否かを判定し(ステップS103A)、成功した場合(ステップS103A;Yes)には、BLE(Bluetooth Low Energy)により、送信データを決済端末900に送信する(ステップS103B)。なお、認証に失敗した場合(ステップS103A;No)には、処理を終了すればよい。
そして、この変形例では、図5に示すステップS103の処理を除くステップS102A以降の処理が、情報処理装置100ではなく決済端末900にて行われる。決済端末900は、図13に示すように、情報処理装置100からBLEにてユニークIDを受信することにより処理を開始する。そして、ステップS102Aの処理では、ステップS103Bの処理にてBLEにより送信された送信データと、ステップS201の処理にて中継サーバ400を介して送信された送信データのうち、いずれの送信データを先に受信したかを判定すればよい。また、図13に示すように、この変形例における決済端末900では、図5に示すステップS103の処理に含まれる図11に示すステップS134の処理のみが行われ、通信端末200の正当性を認証する処理が行われればよい(図13のステップS134)。
ここで、上記実施の形態のような店舗端末に内蔵された情報処理装置100のマイクに、通信端末200のスピーカーを近接させて音声通信を行うことは、当該店舗端末の大きさやマイクの位置等により左右され、困難性を伴う。また、店舗端末は予め設置されているケースが多く、新たに情報処理装置100の機能を追加するには多大なるコストがかかる。したがって、当該中継装置が情報処理装置100の機能を有することにより、店舗端末である情報処理装置100のマイクに近接させて音声通信を行うことの困難性を回避することができ、かつ安定した音声通信を行うことができる。また、通信端末200から音声にて情報処理装置100に送信された送信データと、通信端末200から中継サーバ400を介して送信された送信データのうち、早く受信した方の送信データを用いて決済情報を生成する。したがって、携帯端末側の音量や性能により音声を精度よく受信できない場合であっても、電子決済における通信の安定性を向上させることができる。
さらに、中継装置としての情報処理装置100は、決済端末900がポイント決済サーバ300から受信したポイント決済処理の実行結果を、当該決済端末900からBLEにより受信してもよい(また、有線による通信にて受信してもよい)。そして、情報処理装置100は、受信したポイント決済処理の実行結果を、上記実施の形態で説明した複数の変調方式を用いて変調し、音声にて通信端末200へ送信してもよい。そして、通信端末200は、受信した実行結果を当該通信端末200の出力部240へ表示してもよい。
なお、通信端末200のユーザは、当該通信端末200のネットワークを介してポイント決済サーバ300へアクセス可能であり、当該アクセスすることでポイント決済処理の実行結果を参照することが可能である。しかしながら、通信端末200のネットワーク環境は状況により不安定である。したがって、このようにポイント決済処理の実行結果を情報処理装置100が音声にて通信端末200へ送信することで、ネットワーク環境に関わらず、ユーザに対してポイント決済処理の実行結果を確実に認識させることができる。
また、中継装置としての情報処理装置100は、例えば、決済端末900から送信された制御コマンドを受信することにより、検知部150による検知を有効としてもよい。具体的に、決済端末900の側では、決済端末900の操作者(店員など)による操作に基づいて情報処理装置100の検知部150の検知を有効とする制御コマンドが送信されればよい。そして、情報処理装置100の側では、当該制御コマンドを受信したことに基づいて検知部150による検知を有効とするとともに、検知部150による検知が有効となったことを通信端末200のユーザに報知すればよい。当該報知は、例えば、音声による報知や、当該中継装置に設けられたLED(Light Emitting Diode)を点灯させることにより行えばよい。
これによれば、情報処理装置100の側にて不要な検知を行うことを防止することができるとともに、通信端末200のユーザへ近接させるべきことを報知させることができ、好適なポイント決済処理を行うことができる。
上記実施の形態では、送信データ生成処理において、通信端末200の送信データ生成部221が、受信したワンタイムキーの音声データを付加(復調した状態で付加)して音声送信データを生成する例を示したが、これは一例である。例えば、送信データ生成部221は、図9のステップS211の処理において、会員番号やパスワードなどといった送信対象となる情報に、受信したワンタイムキーの音声データを単に付加(復調された状態で付加)するのではなく、送信対象となる情報を、受信して復調されたワンタイムキーで暗号化してもよい。暗号化の他、送信対象となる情報を、受信して復調されたワンタイムキーで演算してもよい(例えばワンタイムキーを加算するなど)。そして、暗号化または演算した情報を変調して音声送信データとしてもよく、この場合、例えば、送信対象となる情報を2乗して5で除算した余りを付加する、などといったように、送信対象となる情報に対して予め定められたハッシュ関数を適用し、その結果(ハッシュ値)を送信データに付加し、音声送信データを生成すればよい。
そして、図9のステップS212の処理において、生成した送信データおよびハッシュ値を音声送信データとして出力部240により情報処理装置100に出力すればよい。情報処理装置100の側では、図10のステップS252の処理にて、受信した送信データおよびハッシュ値を含む音声送信データを復調してビット列データとし、送信データをワンタイムキー生成部121にて生成したワンタイムキーで復号する(演算前の状態に戻す)。そして、図11のステップS132の処理において、復号した送信データに、予め定められたハッシュ関数を適用し、その結果(ハッシュ値)が受信したハッシュ値と一致するか否かを判定すればよい。なお、ワンタイムキーの有効期限が切れている場合の処理については上記実施の形態と同様である。そして、ハッシュ値が一致する場合には認証に成功したと認定し、不一致(上記実施の形態と同様)の場合には認証に失敗したと認定すればよい。なお、ハッシュ関数は情報処理装置100と通信端末200のそれぞれの記憶部に予め共通のものが記憶されているものとする。これによれば、ワンタイムキーとハッシュ値が正当でなければ認証されないため、単にワンタイムキーを付加するのみよりもセキュリティを向上させ、不正をより防止することができる。
また、音声送信データを生成する際における送信対象の情報にワンタイムキーを付加するのみにするか、送信対象の情報をワンタイムキーで暗号化または演算するか、について、例えば、情報処理装置100と通信端末200との距離に応じて選択可能としてもよい。具体的に、情報処理装置100と通信端末200との距離が予め定められた距離未満である場合には、送信対象の情報にワンタイムキーを付加するのみとし、距離が予め定められた距離以上である場合には送信対象の情報をワンタイムキーで暗号化または演算するようにしてもよい。これによれば、距離に応じて好適なセキュリティを担保することができるため、処理負担を軽減しつつ不正を防止することができる。
また、上記変形例では、音声送信データを生成する際に、送信対象の情報をワンタイムキーで暗号化または演算する例を示したが、この他にも、送信対象の情報を、ワンタイムキーと、通信端末毎に固有の秘密鍵と、を使用して暗号化または演算してもよい。具体的に、通信端末200が、ネットワークを介して互いに通信可能な暗号化サーバから当該通信端末200を識別する識別情報と、当該識別情報に対応する秘密鍵とを予め受信しておく(一旦受信した後は当該通信端末200とサーバとの通信は不要である)。そして、図9の送信データ生成処理において、会員番号やパスワードなどといった送信対象となる情報を、情報処理装置100から受信したワンタイムキー(復調された状態)と暗号化サーバから受信した秘密鍵と、を用いて暗号化または演算し、送信データを生成すればよい。なお、この場合、上記変形例と同様にハッシュ値を送信データに付加し、さらにサーバから受信した識別情報を送信データに付加すればよい。すなわち、図9のステップS212の処理において、出力部240は、生成した送信データ、ハッシュ値、および識別情報を含む音声送信データを、情報処理装置100に出力すればよい。
情報処理装置100の側では、図10のステップS252の処理にて、通信端末200から受信した送信データ、ハッシュ値、および識別情報を復調してビット列データとし、送信データをワンタイムキー生成部121にて生成したワンタイムキーと、秘密鍵を用いて復号する(演算前の状態に戻す)。そして、図11のステップS132の処理において、復号した送信データに、予め定められたハッシュ関数を適用し、その結果(ハッシュ値)が受信したハッシュ値と一致するか否かを判定すればよい。秘密鍵は、例えば、情報処理装置100の記憶部110に、通信端末200の識別情報に対応付けて予め記憶されており、受信した識別情報に基づいて、記憶部110から秘密鍵を特定すればよい。また、例えば、秘密鍵は、識別情報に基づいて予め定められたルールに従って演算することにより算出可能であってもよい。これによれば、セキュリティをより向上させることができる。
なお、これに加え、例えば、通信端末200の側にて、識別情報をワンタイムキーで暗号化または演算し、送信対象の情報を、ワンタイムキーと秘密鍵にて暗号化または演算してもよい。そして、情報処理装置100の側では、まずワンタイムキーにて識別情報を復号し、識別情報に基づいて秘密鍵を取得する。そして取得した秘密鍵とワンタイムキーとを用いて送信データを復号すればよい。これによれば、セキュリティをより向上させることができる。
また、上記実施の形態では、図1に示すように、情報処理装置100が出力部140を一つ備える例を示しているが、これは一例である。情報処理装置100は、複数の出力部140を備えていてもよく、この場合、それぞれ異なる位置で、かつ周囲にまんべんなく音声が行き渡る位置に、それぞれ出力部140が設けられていればよい。これによれば、より好適な出力音量にて音声を出力することができる。
例えば、情報処理装置100と通信端末200との距離が検知部150にて検知される距離であったとしても、通信端末200の入力部230と情報処理装置100の出力部140との距離が離れてしまっていることもある。このような場合に情報処理装置100の出力音量が小さいと通信端末200にて精度良く音声を受信することができないといった事象が生じるおそれがある。その一方で、出力音量を大きくすると、対象外の通信端末にて受信されてしまうおそれがある。そこで、周囲にまんべんなく音声が行き渡る位置にそれぞれ出力部140を設けることで、通信端末200の入力部230と情報処理装置100の出力部140との距離が略一定となり、好適な出力音量にて音声を出力することができる。
さらに、情報処理装置100は、複数の出力部140に対応して複数の検知部150を備えてもよい。そして、複数の検知部150のうち、通信端末200が近接したことを検知した検知部150に対応した出力部140からのみ音声出力を行えばよい。これによれば、不要な出力部140からの出力を防ぎ、好適な出力音声にて音声を出力することができるとともに、よりセキュリティを向上させることができる。
また、上記実施の形態では、図6のステップS112の処理において、予め実験などにより定められた音量(すなわち、検知部150にて検知された範囲内であれば音声による送受信が可能な最低限の音量)でワンタイムキーおよびユニークIDを出力する例を示したが、これは一例である。上述したように、ステップS112にて出力される音量は一定音量でなくてよく、例えば、周囲のノイズなどを考慮した音量としてもよい。具体的に、周囲のノイズの音量が大きい場合には、情報処理装置100と通信端末200との音声通信が失敗しない程度に音量を大きくする必要がある。しかしながら、周囲のノイズの音量は時間経過とともに変化するため、周囲のノイズの音量が低下した場合に出力音量が大きいままだとセキュリティが低下してしまう。そこで、周囲のノイズの音量に合わせて出力音量を変化させる必要がある。
この例では、図6のステップS112にてワンタイムキーおよびユニークIDを音声出力する期間中、情報処理装置100の入力部130にて周囲のノイズの音量を測定し、当該ノイズの音量に合わせて出力音量を調整すればよい。具体的に、測定したノイズの音量を複数段階に分け、当該段階に応じた出力音量で出力すればよい。なお、図9のステップS212における通信端末200の音声出力についても同様に、周囲のノイズの音量を測定し、出力音量を調整してもよい。これによれば、周辺の状況に合わせて好適な音量で出力することができ、かつ、セキュリティの低下を防止することができる。なお、周囲のノイズの音量を測定する際には、一般的に音声通信に使用される周波数帯のノイズの音量を測定し、未使用の周波数帯のノイズについては対象としなくてよい。
また、例えば、上記変形例のように、当該情報処理装置100の周囲に複数の出力部140(検知部150も同様)を設けるとともに、それに対応して複数の入力部130を設け、ワンタイムキーおよびユニークIDの出力前に、周囲のノイズの音量の最も低い位置に通信端末200を移動させるようユーザに報知してもよい。例えば、情報処理装置100の周囲に設けられた複数の入力部130それぞれにて周囲のノイズの音量を測定し、複数の入力部130のうち、最も低いノイズ音量であると判定した入力部130に対応する出力部140から報知音を出力し、当該出力部140の位置に通信端末200を移動させるようユーザに促してもよい。そして、対応する検知部150にて検知されたことに基づき、ワンタイムキーおよびユニークIDの音声出力をしてもよい。これによれば、ノイズの影響を受けにくくすることができ、かつセキュリティを向上させることができる。
また、上記実施の形態では、例えば、同一のデータを載せたFSKとBPSKとを用いることにより、送信データを二重に多重化して送信していたが、図14に示すように、さらに異なる周波数帯域に同一のデータを送信することにより、送信データを四重に多重化して送信してもよい。
まず、周波数帯域の多重化について説明する。通信端末200は、音声を媒体とした通信のため、15.9kHz〜17.9kHz(第1の音声周波数帯域)、17.9kHz〜19.9kHz(第2の音声周波数帯域)の2つの帯域を使用する。上記の帯域は、スマートフォン等に標準的に搭載されているスピーカーの周波数特性を考慮したものである。
通信端末200は、送信時には、ローバンドである15.9kHz〜17.9kHz、ハイバンドである17.9kHz〜19.9kHzの2つの帯域において、それぞれ同じデータを送信する。つまり、15.9kHz〜17.9kHzの信号、17.9kHz〜19.9kHzの信号、をそれぞれ送信するデータで変調する。
具体的には、図3に示す周波数変換回路1614が、IFFT回路1613の出力を、ローバンドとハイバンドとにコンバートし、ローバンド、ハイバンドで同一のデータを送信する。出力部140のスピーカーからは、15.9kHz〜17.9kHzの帯域の音声信号(第1の音声信号)、17.9kHz〜19.9kHzの帯域の音声信号(第2の音声信号)が出力される。
上述のように、通信端末200は、2つの周波数帯域を使用して同じデータを二重に送信するが、さらに、次のような手法を採用してデータを送信する。図14は、2つの周波数帯域を用いることによるデータの多重化と、2つの変調方式を用いることによるデータの多重化を同時に行って、データを送信する例を示す。図14において、例えば、D1(D2)は、FSKで送信されるデータがD1で、BPSKで送信されるデータがD2であることを示す。
通信端末200は、例えば、送信データを第1データD1、第2データD2、第3データD3、第4データD4に分割して送信する。通信端末200は、使用する周波数帯域、変調方式によりデータD1〜D4の送信順序を変える。具体的には、送信順序定義情報に定義されている情報に基づいて、ローバンドのFSKでは、D1、D3、D4、D2の順番でデータを送信し、ローバンドのBPSKでは、D2、D4、D3、D1の順番でデータを送信する。また、ハイバンドのFSKでは、D4、D2、D1、D3の順番でデータを送信し、ハイバンドのBPSKでは、D3、D1、D2、D4の順番でデータを送信する。言い換えると、周波数帯域、変調方式ごとに、同一のタイミングで異なるデータを送信する。
この構成によれば、受信側は、通信状態が正常ならば、第1シンボル区間で、ローバンドでD1、D2を、ハイバンドでD3、D4を受信することにより、全データを受信できるため、第2シンボル区間以降の受信・復調などが不用である。
また、例えば、通信端末200の動きによりBPSKにより変調されたデータを復調できない場合であっても、音声信号がFSKにより変調された部分を、第1シンボル区間で、ローバンドでD1、ハイバンドでD4を、第2シンボル区間で、ローバンドでD3、ハイバンドでD2を受信することにより、全データを受信できるため、第3シンボル区間以降の受信・復調などが不用である。
さらに、通信全体を通して周波数的な妨害があり、ローバンドとハイバンドのどちらか一方の帯域における伝送が不能となった場合でも、正常に伝送できるどちらか一方のバンドのみで正しく受信データを復元できる。例えば、ローバンドが正常に伝送できるとして、第1シンボル区間で、FSKでD1、BPSKでD2を、第2シンボル区間で、FSKでD3、BPSKでD4を受信し、全データを受信できるため、第3シンボル区間以降の受信・復調などが不用となる。
そして、通信全体を通して周波数的な妨害があり、さらに通信端末200の動きによりBPSKにより変調されたデータを復調できない場合であっても、正常に伝送できるどちらか一方のバンドのみでFSKから正しく受信データを復元することができる。例えば、ローバンドが正常に伝送できるとして、FSKを用いてデータをD1、D3、D4、D2の順番で受信できる。
なお、この変形例では、通信端末200を例に説明したが、情報処理装置100についても同様の構成を有している。
次に、通信端末200が実行する復調処理について説明する。通信端末200は、異なる周波数帯域、異なる変調方式を用いて変調された信号から同一の情報を四重に受信するが、信号の復調の際において、受信データの品質を考慮して復調処理を実行する。
具体的には、通信端末200の入力部230は、音声信号を受信してサブキャリアの復調を行い、当該信号がFSKで変調された部分を復調したデータと、BPSKで変調された部分を復調したデータとが、それぞれ所定の品質を満たすかどうか判定する。また、通信端末200の入力部230は、ハイバンドの音声信号を復調したデータと、ローバンドの音声信号を復調したデータと、が、それぞれ所定の品質を満たすかどうか判定する。
そして、通信端末200の入力部230は、所定の品質を満たすと判定されたデータを用いて、音声信号を受信データに変換する。その後、制御部170は、入力部230を制御して、デマッピング等の後続する処理を実行する。復調したデータの品質判定とデマッピングの順序は上記の処理に限られず、デマッピングを行った後、品質判定を行ってもよい。
ここでは、通信端末200を例に説明したが、情報処理装置100も同様の構成を有している。
以上説明したように、この変形例によれば、周波数的な妨害により一方の帯域において受信強度の低下によりデータの一部又は全てを正確に受信できなかった場合であっても、他方の帯域の音声信号を使用してデータを復調できる。また、通信端末200の動きがなく、周波数的な妨害もない場合、両バンドを使用してデータを復調できる。このため、通信環境の変化に応じて音声を媒体とした通信のさらなる高速化を実現できる。
なお、この変形例では、通信端末200の動き等がなく、周波数的な妨害がない場合に、最初のシンボルの音(第1音)を使用してデータを復調していたが、本発明はこれに限られない。例えば、最初のシンボルの音がインパルスノイズ等により大きく破壊された場合、第2音以降に含まれるシンボルを使用して全データを受信してもよい。
より詳細に説明すると、他の信号処理を行う前に、受信したいわゆる生データにインパルスノイズが含まれているか否かを、その受信信号強度から検出する。例えば、A/D(アナログ/デジタル)変換後の受信信号を一旦記憶し、これを解析する。インパルスノイズを検出した場合、インパルスノイズの存在する時間帯を特定する。例えば、第1音にインパルスノイズが存在している場合、第1音を無視し、第2音の解析が可能かどうか判定する。このように構成することにより高いノイズ耐性を実現できる。
また、上記実施の形態では、変調方式、周波数帯域ごとに情報を1度だけ送信していたが、本発明はこれに限られない。各変調方式、各周波数帯域において同じ情報を2度以上送信してもよい。この場合、例えば、1度目のデータを送信した後、所定の時間を空けて2度目のデータを送信してもよい。
あるいは、受信側は、1度目のデータを復調し、1度目の送信データを正確に受信できたと判別した場合、又は信号の前半部分だけでデータを受信できた場合、その旨を送信側に通知し、この場合、送信側は2度目のデータや、後半のデータの送信を行わないようにしてもよい。この場合、送信側は同じデータを2度送信する必要がない。
あるいは、受信側は、復調処理を行う前に、1度目のデータの受信時の受信信号強度が所定の値以上である場合、データを正しく受信できたと判別し、その旨を送信側に通知してもよい。あるいは、データを正しく受信できたと判別した場合には、その旨を送信側に通知することなく、2度目に受信したデータについては復調処理等を行わないようにしてもよい。
上記実施の形態では、異なる変調方式を用いて同一のデータを重複して送信していたが、本発明はこれに限られない。例えば、第1の変調方式を用いて第1のデータを送信し、第2の変調方式を用いて第1のデータとは異なる第2のデータを送信してもよい。
上記実施の形態における通信端末200は、例えば、スピーカー、マイクを備える他の機器に対しても、上記の技術は応用可能である。例えば、MP3プレーヤといった携帯音楽機器、IC(Integrated Circuit)レコーダ、腕時計といったウェアラブル端末である(ただし、いずれも、スピーカーとマイクを備えている必要がある。)。また、音声を出力するため、スピーカー以外の音響拡声装置を使用してもよく、音声を入力するためマイク以外の集音装置を使用してもよい。
また、上記実施の形態では、キャリアとして使用する音声を、非可聴の帯域の音声とする例を説明したが、可聴帯域の音声をキャリアとして使用してもよい。可聴帯域の音声をキャリアとして使用することにより、ユーザはデータが送信されるタイミングを確認できるため、決済端末に対して通信端末200を意識的に静止させることができる。
上記実施の形態では、通信端末200が、信号の復調の際に、異なる変調方式、異なる周波数帯域を用いて変調されたデータが所定の品質を満たすかどうかを判定し、所定の品質を満たすデータのみを用いて信号を受信データに変換していたが、本発明はこれに限られない。例えば、受信信号の強度、データの欠陥の有無等に基づいて通信の信頼性を評価し、通信の信頼性が高い方の変調方式、周波数帯域において受信した音声信号に比重を置いて復調処理を実行してもよい。復調処理は、通信の信頼性に基づいて重み付けを行い、重み付けされたデータの加重平均を算出することにより実行してもよい。
上記実施の形態では、BPSKで変調するデータは、2分割した後半のグループ(D4〜D6)を先に送信し、その後、分割した前半のグループ(D1〜D3)を送信し、FSKで変調するデータは、順序を変えることなくデータD1〜D6を送信していたが、本発明はこれに限られない。BPSKで変調するデータは、順序を変えることなくデータD1〜D6を送信し、FSKで変調するデータは、2分割した後半のグループ(D4〜D6)を先に送信し、その後、分割した前半のグループ(D1〜D3)を送信してもよい。
上記実施の形態においては、PSKとしてBPSKを用いていたが、本発明はこれに限られない。例えば、PSKとして、QPSK、DQPSK、DBPSKを用いてもよい。例えば、DQPSKでは、4段階に位相をずらした4つの波を使用し、直前の波との差分それぞれに別の値を割り当てる。このため、DQPSKでは、1サブキャリアの1シンボル区間で4値(2ビット)の情報を表すことができる。
PSKとしてDQPSKを用いる場合、FSKは、1シンボル区間2値であり、DQPSKは、1シンボル区間4値であるため、伝送速度が異なる変調方式の組み合わせとなる。このことを利用して、DQPSKで変調するデータを前半と後半に分割し、DQPSKで変調した前半のデータを正確に受信できた場合、それ以降の受信・復調を中止してもよい。
その他、上述の機能を、OS(Operating System)とアプリケーションとの分担、またはOSとアプリケーションとの協同により実現する場合等には、OS以外の部分のみを媒体に格納してもよい。
また、搬送波にプログラムを重畳し、通信ネットワークを介して配信することも可能である。例えば、通信ネットワーク上の掲示板(BBS、Bulletin Board System)に当該プログラムを掲示し、ネットワークを介して当該プログラムを配信してもよい。そして、これらのプログラムを起動し、オペレーティングシステムの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できるように構成してもよい。