以下、本発明を実施するための形態について説明する。
[第1実施形態]
まず、本発明の第1実施形態に係る認証システムの構成について、図面を参照しつつ説明する。
図1は、認証システムの構成例を示す図である。
認証システム1は、図1に示すように、端末装置10と、認証装置20と、を備えている。
図2は、端末装置の構成例を示すブロック図である。
端末装置10は、例えば携帯電話や、スマートフォン、タブレットコンピュータ等から構成され、図2に示すように、表示部11と、撮像部12と、操作部13と、記憶部14と、制御部15と、を備えている。
表示部11は、例えばLCD(Liquid Crystal Display)等から構成され、制御部15によって生成した透かし入り二次元コードやレスポンス二次元コード等を表示する。なお、透かし入り二次元コードやレスポンス二次元コードは、端末装置10の特性に応じて、補正されて表示部11に表示される。
撮像部12は、例えばCCD(Charge-Coupled Device)等の撮像素子から構成され、図5に示す認証装置20の表示部22に表示されるチャレンジ符号を示すチャレンジ二次元コード等を撮像する。
操作部13は、ユーザによって操作されるもので、例えばタッチパネル等から構成されている。ユーザは、操作部13を操作して、透かし入り二次元コードの生成を指示したり、図5に示す認証装置20の表示部22に表示されるチャレンジ二次元コードの読取を指示したりする。
記憶部14は、例えばフラッシュメモリ等の不揮発性メモリから構成され、透かし入り二次元コードやレスポンス二次元コードを生成するためのアプリケーションプログラム等がインストールされている。
また、記憶部14には、例えば端末装置10のユーザを識別するためのアカウントID(Identification)が記憶されている。
制御部15は、例えばCPU(Central Processing Unit)、ROM(Read Only Memory)、及びRAM(Random Access Memory)等から構成され、CPUが、RAMをワークメモリとして用い、ROMや記憶部14等に記憶されている各種プログラムを適宜実行することによって、端末装置10の各部の動作を制御する。
本実施形態において、制御部15は、記憶部14に記憶されているアプリケーションプログラムを実行することにより、例えば記憶部14に記憶されているアカウントIDを示す埋込対象のロゴ付き二次元コード30の周波数成分に、透かしデータを電子透かしとして埋め込んで、透かし入り二次元コードを生成し、表示部11に表示する。
図3(a)は、ロゴ付き二次元コードの一例を示す平面図であり、図3(b)は、二次元コードの一例を示す平面図である。
ロゴ付き二次元コード30は、例えば表示部11に表示される静止画像等であって、図3(a)に示すように、例えばQR(Quick Response)コード(登録商標)等の汎用の二次元コード31と、ユーザがその内容を視認可能なロゴと、を重ね合わせて形成されている。
二次元コード31は、図3(b)に示すように、特定比率の正方形を組み合わせた3つの位置決めシンボル32a、32b、及び32cを備え、この位置決めシンボル32a、32b、及び32c間に、例えば複数の正方形のセルがマトリクス状に配置されている。
二次元コード31では、複数のセルのうち、所定明度未満のセル(この例では黒色のセル)と、所定明度以上のセル(この例では白色のセル)と、の分布パターンによって、アカウントIDが示されている。
そして、図3(a)に示すロゴ付き二次元コード30は、例えばおたまじゃくしを視認可能に表現するロゴのうち所定明度以上の領域に、所定明度未満の円形のセル(この例では黒色のセル)を重ね合わせる一方で、ロゴのうち所定明度未満の領域に、所定明度以上の円形のセル(この例では白色のセル)を重ね合わせて形成される。
ロゴ付き二次元コード30では、ロゴのうち所定明度未満の領域及び所定明度未満のセルと、ロゴのうち所定明度以上の領域及び所定明度以上のセルと、の分布パターンによって、アカウントIDが示されている。
なお、ロゴ付き二次元コード30が示す情報は、任意であり、搭乗券やチケット等といった金銭的価値を有するものであってもよいし、URL(Uniform Resource Locator )等であってもよい。また、ロゴ付き二次元コード30におけるセルの形状は、任意であり、本実施形態のように、円形であってもよいし、多角形や星形等であってもよい。
ロゴ付き二次元コード30の周波数成分に、透かしデータを電子透かしとして埋め込む方式の例としては、階調値を直接操作する実空間手法、離散フーリエ変換(Discrete Fourier Transform、DFT)を利用する方式(大西,岡,松井,“PN系列による画像への透かし署名法”,1997年暗号と情報セキュリティシンポジウム講演論文集,SCIS'97-26B,1997)の他に、離散ウェーブレット変換(Discrete Wavelet Transform,DWT)を利用する方式(石塚,坂井,櫻井,“ウェーブレット変換を用いた電子透かし技術の安全性と信頼性に関する実験的考察”,1997年暗号と情報セキュリティシンポジウム講演論文集,SCIS'97-26D,1997)、(井上,宮崎,山本,桂,“ウェーブレット変換に基づくデジタル・ウォーターマーク−画像圧縮,変換処理に対するロバスト性について−”,1998年暗号と情報セキュリティシンポジウム講演論文集,SCIS'98-3.2.A,1998)や、離散コサイン変換(Discrete Cosine Transform,DCT)を利用する方式(中村,小川,高嶋,“デジタル画像の著作権保護のための周波数領域における電子透かし方式”,1997年暗号と情報セキュリティシンポジウム講演論文集,SCIS'97-26A,1997)等が挙げられる。なお、本明細書中に上記の文献を参考として取り込むものとする。
離散ウェーブレット変換を利用して、ロゴ付き二次元コード30の周波数成分に、時間変化を伴わない(時間の経過に伴って変化しない)透かしデータを電子透かしとして埋め込む場合、図2に示す制御部15は、図3(a)に示すロゴ付き二次元コード30をRGBの各成分に分割(RGB分解)した後、R,G,Bの色別に離散ウェーブレット変換を施すことにより、ロゴ付き二次元コード30をLL成分、LH成分、HL成分、及びHH成分といった周波数成分に分解(帯域分割)する。
離散ウェーブレット変換を利用することによって得られる周波数成分は、二次元のデータとなるため、画像データと同様に扱うことができ、また、ロゴ付き二次元コード30に電子透かしとして埋め込まれる透かしデータも画像データと考えることができる。例えば、図4(a)に示す1モジュールのサイズが一辺数ピクセルの二次元コードから構成される透かし静止画像データ33に合わせて、図3(a)に示すロゴ付き二次元コード30の位置決めシンボル32a、32b、及び32c等の黒色の画像領域の周波数成分を増分或いは減分させることにより、ロゴ付き二次元コード30に透かし静止画像データ33を電子透かしとして埋め込む。
図2に示す制御部15は、各周波数成分に逆離散ウェーブレット変換(Inverse Discrete Wavelet Transform,IDWT)を施した後、RGBの各成分の統合(RGB統合)を行って、透かし入り二次元コードを生成する。このような離散ウェーブレット変換を利用して生成した透かし入り二次元コードでは、透かし静止画像データ33を強く埋め込むと、電子透かしが見えてくることとなる。
一方、離散コサイン変換(より具体的には二次元離散コサイン変換)を利用して、ロゴ付き二次元コード30の周波数成分に、時間変化を伴わない透かしデータを電子透かしとして埋め込む場合、図2に示す制御部15は、図3(a)に示すロゴ付き二次元コード30のカラーモードをRGB信号からYIQ信号に変換し、I,Qの色差情報を1/4に間引いた後、YIQの各チャネルの画像を8×8画素のブロック単位に分け、ブロックごとに二次元離散コサイン変換を施すことにより、周波数成分を求める。
二次元離散コサイン変換を利用することによって得られる周波数成分は、二次元のデータではあるが、画像全体(またはブロック全体)の周波数成分であるため、画像データとは異なり一次元のデータと考えた方がよいようなものとなり、ロゴ付き二次元コード30に電子透かしとして埋め込まれる透かしデータも一次元の符号データとなる。なお、一次元の透かしデータ(透かし符号データ)を二次元状に配置することで、図4(b)に示すような、1モジュールサイズが一辺1ピクセルの二次元コードから構成される透かし静止画像データ34のように考えることもできる。
制御部15は、周波数成分の各要素を量子化行列で割ることにより、高周波成分の多くの情報をカットして0が並ぶようにする。そして、制御部15は、周波数成分の係数データ(二次元DCT係数データ)をDC(Direct Current)係数データとAC(Alternating Current)係数データとに分けて、各ブロックの所定番目(特定周波数帯)のDC係数データを、透かし符号データに合わせて、0または1に置き換えることにより、ロゴ付き二次元コード30に、透かし符号データ(時間変化を伴わない透かし符号データ)を電子透かしとして埋め込む。
本実施形態において、透かし符号データは、上述したように、特定周波数帯のDC係数データに埋め込まれる。8×8画素のブロックのうちの、1箇所のブロックがAC係数データに相当し、その他63箇所のブロックがDC係数データに相当する。従来の一般的で頑健な電子透かしの埋込技術では、AC成分データに透かし符号データを埋め込むが、本実施形態では、複数のDC成分データに透かし符号データを分散して埋め込んでいる。どのDC成分データにどのような強さで透かし符号データを埋め込むかは、最適化により決定すればよい。なお、AC成分データに透かし符号データを弱く埋め込んでもよい。
続いて、制御部15は、DC成分はハフマン符号化あるいは算術圧縮により、またAC成分はランレングス符号化及びハフマン符号化により、それぞれ別々に圧縮する。
そして、制御部15は、二次元DCT係数データを逆量子化した後、逆二次元離散コサイン変換(Inverse Discrete Cosine Transform,IDCT)を施してYIQ信号を求め、YIQ信号をRGB信号に逆変換することにより、透かし入り二次元コードを生成する。このような二次元離散コサイン変換を利用して生成した透かし入り二次元コードでは、透かし符号データを強く埋め込んでも画像全体が劣化するだけで、電子透かしが見えてくることはない。
これに対して、離散ウェーブレット変換を利用して、ロゴ付き二次元コード30の周波数成分に、時間変化を伴う(時間の経過に伴って変化する)透かしデータを電子透かしとして埋め込む場合、制御部15は、同一のロゴ付き二次元コード30の周波数成分のそれぞれに、透かし動画像データを構成する各フレーム画像データを一つずつ埋め込んで行く。ここで、透かし動画像データの各フレーム画像データは、透かし静止画像データ33と同様に、1モジュールのサイズが一辺数ピクセルの二次元コードから構成されている。そして、制御部15は、透かし動画像データの各フレーム画像データが埋め込まれた複数のロゴ付き二次元コード30をフレーム画像データとする動画像データを、電子透かしが時間変化する透かし入り二次元コードの動画像データとして生成する。なお、このようにして生成された透かし入り二次元コードは、同一のロゴ付き二次元コード30の静止画像データが用いられているため、表示部11に表示された場合、一見すると静止画像に見えるが、実際には電子透かしが微少に時間変化する動画像データとなる。
一方、離散コサイン変換(より具体的には擬似三次元離散コサイン変換)を利用して、ロゴ付き二次元コード30の周波数成分に、時間変化を伴う透かしデータを電子透かしとして埋め込む場合、制御部15は、同一のロゴ付き二次元コード30から構成される動画像データの各フレーム画像データのそれぞれに、上述のような二次元離散コサイン変換を施して、同一のDCT係数データを複数生成する。また、制御部15は、時系列方向に、埋込対象の各フレームのロゴ付き二次元コード30の特定周波数帯におけるDCT係数データ(時系列係数データ)に対して一次元離散コサイン変換を施す。そして、制御部15は、複数のDC係数データおよびAC係数データのそれぞれに、時間変化を伴う透かしデータ(時間変化を伴う透かし符号データ)を構成する複数種類の透かし符号データを電子透かしとして埋め込んで行くことにより、電子透かしが時間変化する透かし入り二次元コードを生成する。なお、このようにして生成された透かし入り二次元コードも、同一のロゴ付き二次元コード30の静止画像データが用いられているため、表示部11に表示された場合、一見すると静止画像に見えるが、実際には電子透かしが微少に時間変化する動画像データとなる。
擬似三次元離散コサイン変換については、HUANG, Hui-Yu; YANG, Cheng-Han; HSU, Wen-Hsing. Video Watermarking Algorithm Based on Pseudo 3D DCT and Quantization Index Modulation. In: MVA. 2009. p. 207-210.等にその詳細が記載されている。なお、本明細書中にこの文献を参考として取り込むものとする。
なお、電子透かしが時間変化する透かし入り二次元コードは動画像データとなることから、その領域内又は領域外には、透かし入り二次元コードの各フレーム画像データを識別するためのフレームIDを示す同期用パターンが追加されてもよい。同期用パターンは、例えば位置決めシンボル32a、32b、及び32c等に追加され、電子透かしとともに時間変化するパターンとなっている。
また、三次元擬似離散コサイン変換のほか,三次元離散コサイン変換や三次元離散ウェーブレット変換等、任意の三次元周波数変換を利用して電子透かしを埋め込んでもよい。具体的には、三次元離散ウェーブレット変換や三次元離散コサイン変換など、3次元の周波数解析(三次元周波数変換)を利用して、埋込対象のロゴ付き二次元コード30の周波数成分に、透かし動画像データを構成する各フレーム画像データを埋め込んで行く。そして、周波数成分に各フレーム画像データが埋め込まれたロゴ付き二次元コード30からなる動画像データとして透かし入り二次元コードが生成されてもよい。
本実施形態において、制御部15は、離散ウェーブレット変換を利用して、ロゴ付き二次元コード30の周波数成分に、透かし動画像データを電子透かしとして埋め込むことにより、電子透かしが時間変化する透かし入り二次元コードを生成する。
また、制御部15は、記憶部14に記憶されているアプリケーションプログラムを実行することにより、チャレンジ・レスポンス方式に従って、ワンタイムパスワード(レスポンス符号)を生成する。 具体的に、制御部15は、撮像部12において撮像して得られたチャレンジ二次元コードの静止画像データから、チャレンジ二次元コードが示すチャレンジ符号を読み取る。続いて、制御部15は、所定のアルゴリズム(第2規則)に従って、読み取ったチャレンジ符号と、記憶部14に記憶されているアカウントIDと、を合成してレスポンス符号を生成する。
そして、制御部15は、複数のセルのうち、所定明度未満のセル(例えば黒色のセル)と、所定明度以上のセル(例えば白色のセル)と、の分布パターンによって、レスポンス符号を示すレスポンス二次元コードを生成し、表示部11に表示する。
図5は、認証装置の構成例を示すブロック図である。
認証装置20は、例えば汎用の二次元コードリーダ等から構成され、図5に示すように、撮像部21と、表示部22と、記憶部23と、制御部24と、を備えている。なお、認証装置20は、端末装置10と同様に、例えば携帯電話や、スマートフォン、タブレットコンピュータ等から構成されてもよい。
撮像部21は、例えばCCD等の撮像素子から構成され、図2に示す端末装置10の表示部11に表示される透かし入り二次元コードやレスポンス二次元コード等を撮像する。
表示部22は、例えばLCD等から構成され、制御部24によって生成したチャレンジ二次元コード等を表示する。
記憶部23は、例えばハードディスクドライブ等から構成され、透かし入り二次元コードを認証したり、チャレンジ二次元コードを生成したり、チャレンジ・レスポンス方式のワンタイムパスワード認証(チャレンジ・レスポンス認証)を実行したりするためのアプリケーションプログラム等がインストールされている。
また、記憶部23には、透かし入り二次元コードに電子透かしとして埋め込まれている透かし静止画像データ33や、透かし動画像データ、透かし符号データ等の透かしデータが記憶されている。本実施形態では、透かし入り二次元コードに電子透かしとして透かし動画像データが埋め込まれているため、記憶部23には、透かし動画像データが記憶されている。
さらに、記憶部23は、アカウントIDを記憶するアカウントDB(Data Base)230を備えている。
制御部24は、例えばCPU、ROM、及びRAM等から構成され、CPUが、RAMをワークメモリとして用い、ROMや記憶部23等に記憶されている各種プログラムを適宜実行することによって、認証装置20の各部の動作を制御する。また、RAMには、ランダムな数値列(乱数)を発生するランダムカウンタ等が設けられている。
制御部24は、記憶部23に記憶されているアプリケーションプログラムを実行することにより、撮像部21において撮像して得られた透かし入り二次元コードの静止画像データや動画像データから、記憶部23に記憶されている電子透かしと合致する電子透かしを抽出できたか否かを判別することにより、透かし入り二次元コードの真偽判定(認証)を行う。
透かし入り二次元コードに電子透かしとして透かし静止画像データ33が埋め込まれている場合、制御部24は、撮像部21において撮像した透かし入り二次元コードをRGBの各成分に分割(RGB分解)した後、R,G,Bの色別に離散ウェーブレット変換を施すことにより、透かし入り二次元コードをLL成分、LH成分、HL成分、及びHH成分といった周波数成分に分解(帯域分割)する。そして、制御部24は、周波数成分を正規化して、記憶部23に記憶されている透かし静止画像データ33と合致する透かし静止画像データ33を抽出できたか否かを判別することにより、透かし入り二次元コードの認証を行う。
一方、透かし入り二次元コードに電子透かしとして、時間変化を伴わない透かし符号データが埋め込まれている場合、制御部24は、撮像部21において撮像した透かし入り二次元コードのカラーモードをRGB信号からYIQ信号に変換し、I,Qの色差情報を1/4に間引いた後、YIQの各チャネルの画像を8×8画素のブロック単位に分け、ブロックごとに二次元離散コサイン変換を施すことにより、周波数成分を求める。そして、制御部24は、周波数成分を正規化して、記憶部23に記憶されている時間変化を伴わない透かし符号データと合致する時間変化を伴わない透かし符号データを抽出できたか否かを判別することにより、透かし入り二次元コードの認証を行う。
これに対して、透かし入り二次元コードに電子透かしとして透かし動画像データが埋め込まれている場合、制御部24は、透かし入り二次元コードの各フレーム画像データのそれぞれに、上述のような離散ウェーブレット変換を施して行くこと等により、記憶部23に記憶されている透かし動画像データと合致する透かし動画像データを抽出できたか否かを判別することにより、透かし入り二次元コードの認証を行う。
一方、透かし入り二次元コードに電子透かしとして、時間変化を伴う透かし符号データが埋め込まれている場合、制御部24は、透かし入り二次元コードに擬似三次元離散コサイン変換を施すこと等により、記憶部23に記憶されている時間変化を伴う透かし符号データと合致する時間変化を伴う透かし符号データを抽出できたか否かを判別することにより、透かし入り二次元コードの認証を行う。
なお、本実施形態において、透かし入り二次元コードには、上述したように、電子透かしとして透かし動画像データが埋め込まれているので、制御部24は、離散ウェーブレット変換を利用して、透かし入り二次元コードの動画像データから、記憶部23に記憶されている透かし動画像データと合致する透かし動画像データを抽出できたか否かを判別することにより、透かし入り二次元コードの認証を行う。
具体的に、透かし入り二次元コードをキャプチャして複製した場合、透かし入り二次元コードのスクリーンショットは、静止画像データとなるため、制御部24は、透かし入り二次元コードのスクリーンショットから、透かし動画像データを抽出できず、透かし入り二次元コードの認証に失敗する。
また、透かし入り二次元コードのスクリーンキャプチャは、フレームレート(30fps)の動画像データとなるが、透かし入り二次元コードに埋め込まれた透かし動画像データを正確にキャプチャすることは困難となる。このため、制御部24は、透かし入り二次元コードのスクリーンキャプチャから、記憶部23に記憶されている透かし動画像データと合致する透かし動画像データを抽出できず、透かし入り二次元コードの認証に失敗する。
これに対して、透かし入り二次元コードが真正のものである場合、すなわち複製したものでない場合、制御部24は、透かし入り二次元コードの動画像データから、記憶部23に記憶されている透かし動画像データと合致する透かし動画像データを抽出できるため、透かし入り二次元コードの認証に成功する。
このように、制御部24は、透かし入り二次元コードの動画像データから、記憶部23に記憶されている透かし動画像データと合致する透かし動画像データを抽出できれば、透かし入り二次元コードが真正のものであるとして、透かし入り二次元コードの認証に成功したものと判別する。これに対して、制御部24は、透かし入り二次元コードの動画像データから、記憶部23に記憶されている透かし動画像データと合致する透かし動画像データを抽出できなければ、透かし入り二次元コードが複製されたものであるとして、透かし入り二次元コードの認証に失敗したものと判別する。
もっとも、透かし入り二次元コードが真正のものであっても、端末装置10の表示部11の画面表示方式や解像度等が一般的でない、或いは特殊な保護フィルムを貼っている等、例外的な特性を持つこと等、何等かの理由で透かし入り二次元コードの真偽判定(認証)に失敗してしまうことがある。
そこで、制御部24は、透かし入り二次元コードの認証に失敗した場合、チャレンジ・レスポンス認証を行う。具体的に、制御部24は、ランダムカウンタから乱数を抽出し、乱数が示す数値列をチャレンジ符号として示すチャレンジ二次元コードを生成し、表示部22に表示する。なお、チャレンジ二次元コードは、複数のセルのうち、所定明度未満のセル(例えば黒色のセル)と、所定明度以上のセル(例えば白色のセル)と、の分布パターンによって、チャレンジ符号を示している。
続いて、制御部24は、端末装置10と同様のアルゴリズム(第2規則)に従って、チャレンジ二次元コードが示すチャレンジ符号と、撮像部21において撮像した透かし入り二次元コードが示すアカウントIDと、を合成して、端末装置10において生成されたレスポンス符号と同様のレスポンス符号を生成する。
そして、制御部24は、生成したレスポンス符号と、撮像部21において撮像したレスポンス二次元コードが示すレスポンス符号と、を比較し、合致していれば認証に成功したものと判別し、合致していなければ認証に失敗したものと判別する。
次に、上記の構成を備える認証システムの動作について、図面を参照しつつ説明する。
ユーザは、端末装置10の表示部11に表示されている透かし入り二次元コードを、認証装置20の撮像部21に翳す。そして、認証装置20では、制御部24が、撮像部21において透かし入り二次元コードを撮像したことに応答して、記憶部23に記憶されているアプリケーションプログラムを実行することにより、認証処理を開始する。
図6及び図7は、第1実施形態における認証処理の詳細を示すフローチャートである。
まず、認証装置20では、図6に示すように、制御部24が、撮像部21において撮像して得られた透かし入り二次元コードの動画像データから、記憶部23に記憶されている透かし動画像データと合致する透かし動画像データを抽出できたか否かを判別することにより、透かし入り二次元コードの真偽判定(認証)を行う(ステップS1)。
ここで、制御部24は、透かし動画像データを抽出できなかったと判別した場合(ステップS1;No)、透かし入り二次元コードの認証に失敗したとして、ランダムカウンタから乱数を抽出し、乱数が示す数値列をチャレンジ符号として示すチャレンジ二次元コードを生成する(ステップS2)。
また、制御部24は、所定のアルゴリズムに従って、ステップS2の処理において生成したチャレンジ二次元コードが示すチャレンジ符号と、撮像部21において撮像した透かし入り二次元コードが示すアカウントIDと、を合成してレスポンス符号を生成する(ステップS3)。
そして、制御部24は、ステップS2の処理において生成したチャレンジ二次元コードを表示部22に表示する(ステップS4)。
一方、端末装置10では、制御部15が、ユーザによる操作部13の操作によって、認証装置20の表示部22に表示されているチャレンジ二次元コードの読取が指示されるまで(ステップS5;No)、ループして待つ。
そして、制御部15は、チャレンジ二次元コードの読取が指示されたことに応答して(ステップS5;Yes)、撮像部12においてチャレンジ二次元コードを撮像する(ステップS6)。
次に、制御部15は、記憶部14に記憶されているアプリケーションプログラムを実行することにより、撮像部12において撮像して得られたチャレンジ二次元コードの静止画像データから、チャレンジ二次元コードが示すチャレンジ符号を読み取る(ステップS7)。
続いて、制御部15は、認証装置20と同様のアルゴリズムに従って、ステップS7の処理において読み取ったチャレンジ符号と、記憶部14に記憶されているアカウントIDと、を合成して、認証装置20において生成されたレスポンス符号と同様のレスポンス符号を生成する(ステップS8)。
そして、制御部15は、レスポンス符号を示すレスポンス二次元コードを生成し(ステップS9)、表示部11に表示する(ステップS10)。
その後、ユーザは、端末装置10の表示部11に表示されているレスポンス二次元コードを認証装置20の撮像部21に翳す。
一方、認証装置20では、図7に示すように、制御部24が、撮像部21においてレスポンス二次元コードを撮像したことに応答して(ステップS11)、ステップS3の処理において生成したレスポンス符号と、レスポンス二次元コードが示すレスポンス符号と、を比較する(ステップS12)。
そして、制御部24は、ステップS12の処理においてレスポンス符号が合致していない場合(ステップS13;Yes)、認証に失敗したものと判別する(ステップS14)。
これに対して、制御部24は、ステップS1の処理において透かし動画像データを抽出できた場合や(ステップS1;No)、ステップS12の処理においてレスポンス符号が合致している場合(ステップS13;Yes)、認証に成功したものと判別する(ステップS15)。
以上説明したように、第1実施形態に係る認証システム1によれば、時間の経過に伴い変化する透かしデータ(透かし動画像データ)が電子透かしとして埋め込まれている透かし入り二次元コードから、透かし動画像データを抽出できたか否かを判別することにより、透かし入り二次元コードを適切に認証することができる。
また、端末装置10の表示部11の画面表示方式や解像度等が一般的でない、或いは特殊な保護フィルムを貼っている等、例外的な特性を持つこと等、何等かの理由で透かし入り二次元コードの真偽判定(認証)を行えない場合でも、チャレンジ・レスポンス認証を行うことにより、多少のユーザの手間は増えるが、実用上問題なく認証を行うことができる。
[第2実施形態]
次に、本発明の第2実施形態に係る認証システムの構成について説明する。なお、上記の第1実施形態に係る認証システム1と同様の構成については、その説明を省略する。
記憶部14には、端末装置10をトークンとして機能させるとともに、時刻同期二次元コードを生成させるためのアプリケーションプログラム等がインストールされている。
制御部15は、記憶部14に記憶されているアプリケーションプログラムを実行することにより、端末装置10をトークンとして機能させ、時刻同期方式に従って、ワンタイムパスワードを生成する。具体的に、制御部15は、所定のアルゴリズム(第1規則)に従って、現在の時刻に基づき、6桁の数値列から構成されるワンタイムパスワードを算出(生成)する。ワンタイムパスワードは、定期的(例えば60秒毎)に再度算出されて更新される。なお、ワンタイムパスワードの更新頻度は、任意に設定及び変更可能であり、例えば30秒毎に更新されるものであってもよい。
また、制御部15は、アカウントIDを示すロゴ付き二次元コード30の周波数成分に、電子透かしとしてワンタイムパスワードを埋め込んで、時刻同期二次元コードを生成し、表示部11に表示する。そして、制御部15は、ワンタイムパスワードが更新される毎に、電子透かしとして更新後のワンタイムパスワードを埋め込んで、時刻同期二次元コードも更新し、表示部11に表示する。
すなわち、時刻同期二次元コードでは、ロゴ付き二次元コード30の周波数成分に電子透かしとして埋め込まれるワンタイムパスワードが60秒毎に更新される。このようにして生成した時刻同期二次元コードは、同一のロゴ付き二次元コード30の静止画像データが用いられているため、表示部11に表示された場合、一見すると静止画像に見えるが、実際には電子透かしとして埋め込まれているワンタイムパスワードが動画像データ等となるため、動画像データとなる。時刻同期二次元コードのフレームレートは、ワンタイムパスワードの更新頻度によって異なってくるが、通常の動画像データのフレームレート(30〜60fps)と比較すると低いものとなる。
なお、本実施形態では、時刻同期二次元コードが定期的に更新されるものとして説明したが、本発明はこれに限定されるものではなく、例えばユーザによる操作部13の操作によって時刻同期二次元コードの生成が指示されたことに応答して、逐一生成されるものであってもよい。このようにして生成した時刻同期二次元コードは、ロゴ付き二次元コード30のみならず、電子透かしとして埋め込まれるワンタイムパスワードも静止画像データ等となるため、静止画像データとなる。
撮像部21は、図2に示す端末装置10の表示部11に表示される時刻同期二次元コード等を撮像する。
記憶部23は、時刻同期方式のワンタイムパスワード認証を実行するためのアプリケーションプログラム等がインストールされている。
制御部24は、記憶部23に記憶されているアプリケーションプログラムを実行することにより、時刻同期方式のワンタイムパスワード認証を行う。具体的に、制御部24は、撮像部21において撮像した時刻同期二次元コードの動画像から、電子透かしとして埋め込まれているワンタイムパスワードを抽出(取得)するとともに、端末装置10と同様のアルゴリズムに従って、現在の時刻に基づき、ワンタイムパスワードを算出(生成)する。
そして、制御部24は、抽出したワンタイムパスワードと、算出したワンタイムパスワードと、を比較し、合致していれば認証に成功したとものと判別し、合致していなければ認証に失敗したものと判別する。
なお、第2実施形態に係る認証システム1では、チャレンジ・レスポンス認証が行われないため、認証装置20は、表示部22を備えなくてもよい。
次に、上記の構成を備える認証システムの動作について、図面を参照しつつ説明する。
図8は、第2実施形態における認証処理の詳細を示すフローチャートである。
まず、端末装置10では、図8に示すように、制御部15が、記憶部14に記憶されているアプリケーションプログラムを実行することにより、所定のアルゴリズムに従って、現在の時刻に基づき、6桁の数値列から構成されるワンタイムパスワードを算出する(ステップS21)。
次に、制御部15は、アカウントIDに示すロゴ付き二次元コード30の周波数成分に、電子透かしとしてワンタイムパスワードを埋め込んで、時刻同期二次元コードを生成し(ステップS22)、表示部11に表示する(ステップS23)。
その後、ユーザは、端末装置10の表示部11に表示されている時刻同期二次元コードを、認証装置20の撮像部21に翳す。
一方、端末装置20では、制御部24が、撮像部21において時刻同期二次元コードを撮像したことに応答して(ステップS24)、記憶部23に記憶されているアプリケーションプログラムを実行することにより、撮像部21において撮像した時刻同期二次元コードの動画像から、電子透かしとして埋め込まれているワンタイムパスワードを抽出する(ステップS25)。
次に、制御部24は、端末装置10と同様のアルゴリズムに従って、現在の時刻に基づき、ワンタイムパスワードを算出する(ステップS26)。
続いて、制御部24は、ステップS25の処理において抽出したワンタイムパスワードと、ステップS26の処理において算出したワンタイムパスワードと、を比較する(ステップS27)。
そして、制御部24は、ステップS27の処理においてワンタイムパスワードが合致していないと判別した場合(ステップS28;No)、認証に失敗したものと判別する一方で(ステップS29)、ワンタイムパスワードが合致している場合(ステップS28;Yes)、認証に成功したものと判別する(ステップS30)。
以上説明したように、第2実施形態に係る認証システム1では、時刻同期方式のワンタイムパスワード認証を行うことにより、端末装置10と認証装置20との間で時刻の同期が取れている必要はあるが、端末装置10のユーザが、第1実施形態に係る認証システム1のように、認証装置20の表示部22に表示されたチャレンジ二次元コードを撮像するための操作を行うことなく、簡易且つ適切に認証を行うことができる。
[第3実施形態]
次に、本発明の第3実施形態に係る認証システムの構成について説明する。なお、上記の第1及び第2実施形態に係る認証システム1と同様の構成については、その説明を省略する。
本実施形態において、記憶部14には、レスポンス二次元コードを生成させるためのアプリケーションプログラム等がインストールされている。
制御部15は、撮像部12において撮像したチャレンジ二次元コードの静止画像から、チャレンジ二次元コードが示すチャレンジ符号を読み取る。続いて、制御部15は、所定のアルゴリズムに従って、読み取ったチャレンジ符号と、記憶部14に記憶されているアカウントIDと、を合成してレスポンス符号を生成する。
そして、制御部15は、アカウントIDを示すロゴ付き二次元コード30の周波数成分に、電子透かしとしてレスポンス符号を埋め込んで、レスポンス二次元コードを生成し、表示部11に表示する。本実施形態において、電子透かしとして埋め込まれるレスポンス符号は、時間変化を伴わない静止画像データや符号データであるが、時間変化を伴う動画像データや符号データであってもよい。
撮像部21は、図2に示す端末装置10の表示部11に表示されるレスポンス二次元コード等を撮像する。
記憶部23は、チャレンジ二次元コードを生成したり、チャレンジ・レスポンス認証を行ったりするためのアプリケーションプログラム等がインストールされている。
制御部24は、記憶部23に記憶されているアプリケーションプログラムを実行することにより、チャレンジ・レスポンス認証を行う。具体的に、制御部24は、ランダムカウンタから乱数を抽出し、乱数が示す数値列をチャレンジ符号として示すチャレンジ二次元コードを生成して表示部22に表示する。
また、制御部24は、定期的(例えば60秒毎)にランダムカウンタから乱数を抽出し、乱数が示す数値列をチャレンジ符号として示すチャレンジ二次元コードを生成して更新する。なお、チャレンジ二次元コードの更新頻度は、任意に設定及び変更可能であり、例えば30秒毎に更新されるものであってもよい。このため、チャレンジ二次元コードは、動画像となる。チャレンジ二次元コードのフレームレートは、その更新頻度によって異なってくるが、通常の動画像データのフレームレート(30〜60fps)と比較すると低いものとなる。
なお、本実施形態では、チャレンジ二次元コードが定期的に更新されるものとして説明したが、本発明はこれに限定されるものではなく、例えば認証装置20が備える汎用のセンサ等によって端末装置10のユーザを検知したことに応答して、逐一生成される静止画像データであってもよい。
また、制御部24は、端末装置10と同様のアルゴリズムに従って、チャレンジ二次元コードが示すチャレンジ符号と、撮像部21において撮像したレスポンス二次元コードが示すアカウントIDと、を合成して、端末装置10において生成されたレスポンス符号と同様のレスポンス符号を生成する。
制御部24は、撮像部21において撮像したレスポンス二次元コードの静止画像から、電子透かしとして埋め込まれているレスポンス符号を抽出する。そして、制御部24は、生成したレスポンス符号と、抽出したレスポンス符号と、を比較し、合致していれば認証に成功したものと判別し、合致していなければ認証に失敗したものと判別する。
次に、上記の構成を備える認証システムの動作について、図面を参照しつつ説明する。
図9及び図10は、第3実施形態における認証処理の詳細を示すフローチャートである。
まず、認証装置20では、図9に示すように、制御部24が、記憶部23に記憶されているアプリケーションプログラムを実行することにより、ランダムカウンタから乱数を抽出し、乱数が示す数値列をチャレンジ符号として示すチャレンジ二次元コードを生成し(ステップS31)、表示部22に表示する(ステップS32)。
一方、端末装置10では、制御部15が、ユーザによる操作部13の操作によって、認証装置20の表示部22に表示されたチャレンジ二次元コードの読取が指示されるまで(ステップS33;No)、ループして待つ。
そして、制御部15は、チャレンジ二次元コードの読取が指示されたことに応答して(ステップS33;Yes)、撮像部12においてチャレンジ二次元コードを撮像する(ステップS34)。
次に、制御部15は、記憶部14に記憶されているアプリケーションプログラムを実行することにより、撮像部12において撮像して得られたチャレンジ二次元コードの静止画像データから、チャレンジ二次元コードが示すチャレンジ符号を読み取る(ステップS35)。
続いて、制御部15は、所定のアルゴリズムに従って、ステップS35の処理において読み取ったチャレンジ符号と、記憶部14に記憶されているアカウントIDと、を合成してレスポンス符号を生成する(ステップS36)。
そして、制御部15は、アカウントIDを示すロゴ付き二次元コード30の周波数成分に、電子透かしとしてレスポンス符号を埋め込んで、レスポンス二次元コードを生成し(ステップS37)、表示部11に表示する(ステップS38)。
その後、ユーザは、端末装置10の表示部11に表示されているレスポンス二次元コードを、認証装置20の撮像部21に翳す。
そして、認証装置20では、図10に示すように、制御部24が、撮像部21においてレスポンス二次元コードを撮像したことに応答して(ステップS39)、端末装置10と同様のアルゴリズムに従って、ステップS31の処理において生成したチャレンジ二次元コードが示すチャレンジ符号と、撮像部21において撮像したレスポンス二次元コードが示すアカウントIDと、を合成して、端末装置10において生成されたレスポンス符号と同様のレスポンス符号を生成する(ステップS40)。
また、制御部24は、撮像部21において撮像して得られたレスポンス二次元コードの静止画像データから、電子透かしとして埋め込まれているレスポンス符号を抽出する(ステップS41)。
続いて、制御部24は、ステップS40の処理において生成したレスポンス符号と、ステップS41の処理において抽出したレスポンス符号と、を比較する(ステップS42)。
そして、制御部24は、ステップS42の処理においてレスポンス符号が合致していない場合(ステップS43;No)、認証に失敗したものと判別する一方で(ステップS44)、レスポンス符号が合致している場合(ステップS43;Yes)、認証に成功したものと判別する(ステップS45)。
以上説明したように、第3実施形態に係る認証システム1では、端末装置10のユーザが、チャレンジ・レスポンス認証を行うことにより、一度認証装置20の表示部22に表示されたチャレンジ二次元コードを撮像するための操作を行う必要はあるが、端末装置10と認証装置20との間で時刻の同期が取れていなくても適切に認証を行うことができる。
[第4実施形態]
次に、本発明の第4実施形態に係る認証システムの構成について説明する。なお、上記の第1〜第3実施形態に係る認証システム1と同様の構成については、その説明を省略する。
本実施形態において、記憶部14には、端末装置10をトークンとして機能させるとともに、時刻同期二次元コードやレスポンス二次元コードを生成させるためのアプリケーションプログラム等がインストールされている。
制御部15は、記憶部14に記憶されているアプリケーションプログラムを実行することにより、端末装置10をトークンとして機能させ、時刻同期方式に従って、ワンタイムパスワードを生成する。具体的に、制御部15は、所定のアルゴリズムに従って、現在の時刻に基づき、6桁の数値列から構成されるワンタイムパスワードを算出する。ワンタイムパスワードは、定期的(例えば60秒毎)に再度算出されて更新される。
また、制御部15は、アカウントIDを示すロゴ付き二次元コード30の周波数成分に、電子透かしとしてワンタイムパスワードを埋め込んで、時刻同期二次元コードを生成し、表示部11に表示する。そして、制御部15は、ワンタイムパスワードが更新される毎に、電子透かしとして更新後のワンタイムパスワードを埋め込んで、時刻同期二次元コードも更新し、表示部11に表示する。
また、制御部15は、撮像部12において撮像して得られたチャレンジ二次元コードの静止画像データから、チャレンジ二次元コードが示すチャレンジ符号を読み取る。続いて、制御部15は、所定のアルゴリズムに従って、読み取ったチャレンジ符号と、記憶部14に記憶されているアカウントIDと、を合成してレスポンス符号を生成する。
そして、制御部15は、アカウントIDを示すロゴ付き二次元コード30の周波数成分に、電子透かしとしてレスポンス符号を埋め込んで、レスポンス二次元コードを生成し、表示部11に表示する。
撮像部21は、図2に示す端末装置10の表示部11に表示される時刻同期二次元コードやレスポンス二次元コード等を撮像する。
記憶部23は、時刻同期方式のワンタイムパスワード認証を行ったり、チャレンジ二次元コードを生成したり、チャレンジ・レスポンス認証を行ったりするためのアプリケーションプログラム等がインストールされている。
制御部24は、記憶部23に記憶されているアプリケーションプログラムを実行することにより、時刻同期方式のワンタイムパスワード認証を行う。具体的に、制御部24は、撮像部21において撮像して得られた時刻同期二次元コードの動画像データから、電子透かしとして埋め込まれているワンタイムパスワードを抽出するとともに、端末装置10と同様のアルゴリズムに従って、現在の時刻に基づき、ワンタイムパスワードを算出する。
そして、制御部24は、抽出したワンタイムパスワードと、算出したワンタイムパスワードと、を比較し、合致していれば認証に成功したと判別し、合致していなければ認証に失敗したと判別する。
このような時刻同期二次元コードの認証を行う場合には、端末装置10と認証装置20との間で時刻の同期が取れている必要がある。
制御部24は、端末装置10と認証装置20との間で時刻がずれていて、時刻同期二次元コードの認証に失敗した場合、チャレンジ・レスポンス認証を行う。具体的に、制御部24は、ランダムカウンタから乱数を抽出し、乱数が示す数値列をチャレンジ符号として示すチャレンジ二次元コードを生成して表示部22に表示する。
また、制御部24は、端末装置10と同様のアルゴリズムに従って、チャレンジ二次元コードが示すチャレンジ符号と、撮像部21において撮像したレスポンス二次元コードが示すアカウントIDと、を合成して、端末装置10において生成されたレスポンス符号と同様のレスポンス符号を生成する。
制御部24は、撮像部21において撮像して得られたレスポンス二次元コードの静止画像データから、電子透かしとして埋め込まれているレスポンス符号を抽出する。そして、制御部24は、生成したレスポンス符号と、抽出したレスポンス符号と、を比較し、合致していれば認証に成功したものと判別し、合致していなければ認証に失敗したものと判別する。
次に、上記の構成を備える認証システムの動作について、図面を参照しつつ説明する。
図11、図12、及び図13は、第4実施形態における認証処理の詳細を示すフローチャートである。
まず、端末装置10では、図11に示すように、制御部15が、記憶部14に記憶されているアプリケーションプログラムを実行することにより、所定のアルゴリズムに従って、現在の時刻に基づき、6桁の数値列から構成されるワンタイムパスワードを算出する(ステップS51)。
次に、制御部15は、アカウントIDを示すロゴ付き二次元コード30の周波数成分に、電子透かしとしてワンタイムパスワードを埋め込んで、時刻同期二次元コードを生成し(ステップS52)、表示部11に表示する(ステップS53)。
その後、ユーザは。端末装置10の表示部11に表示されている時刻同期二次元コードを、認証装置20の撮像部21に翳す。
一方、端末装置20では、制御部24が、撮像部21において時刻同期二次元コードを撮像したことに応答して(ステップS54)、記憶部23に記憶されているアプリケーションプログラムを実行することにより、撮像部21において撮像して得られた時刻同期二次元コードの動画像データから、電子透かしとして埋め込まれているワンタイムパスワードを抽出する(ステップS55)。
次に、制御部24は、端末装置10と同様のアルゴリズムに従って、現在の時刻に基づき、ワンタイムパスワードを算出する(ステップS56)。
続いて、制御部24は、ステップS55の処理において抽出したワンタイムパスワードと、ステップS56の処理において算出したワンタイムパスワードと、を比較する(ステップS57)。
そして、制御部24は、ステップS57の処理においてワンタイムパスワードが合致していないと判別した場合(ステップS58;No)、時刻同期二次元コードの認証に失敗したものとして、ランダムカウンタから乱数を抽出し、乱数が示す数値列をチャレンジ符号として示すチャレンジ二次元コードを生成し(ステップS59)、表示部22に表示する(ステップS60)。
一方、端末装置10では、図12に示すように、制御部15が、ユーザによる操作部13の操作によって、認証装置20の表示部22に表示されるチャレンジ二次元コードの読取が指示されるまで(ステップS61;No)、ループして待つ。
そして、制御部15は、チャレンジ二次元コードの読取が指示されたことに応答して(ステップS61;Yes)、撮像部12においてチャレンジ二次元コードを撮像する(ステップS62)。
次に、制御部15は、記憶部14に記憶されているアプリケーションプログラムを実行することにより、撮像部12において撮像して得られたチャレンジ二次元コードの静止画像データから、チャレンジ二次元コードが示すチャレンジ符号を読み取る(ステップS63)。
続いて、制御部15は、所定のアルゴリズムに従って、ステップS63の処理において読み取ったチャレンジ符号と、記憶部14に記憶されているアカウントIDと、を合成してレスポンス符号を生成する(ステップS64)。
そして、制御部15は、アカウントIDを示すロゴ付き二次元コード30の周波数成分に、電子透かしとしてレスポンス符号を埋め込んで、レスポンス二次元コードを生成し(ステップS65)、表示部11に表示する(ステップS66)。
その後、ユーザは、端末装置10の表示部11に表示されているレスポンス二次元コードを、認証装置20の撮像部21に翳す。
そして、認証装置20では、図13に示すように、制御部24が、撮像部21においてレスポンス二次元コードを撮像したことに応答して(ステップS67)、端末装置10と同様のアルゴリズムに従って、ステップS59の処理において生成したチャレンジ二次元コードが示すチャレンジ符号と、撮像部21において撮像したレスポンス二次元コードが示すアカウントIDと、を合成して、端末装置10において生成されたレスポンス符号と同様のレスポンス符号を生成する(ステップS68)。
また、制御部24は、撮像部21において撮像して得られたレスポンス二次元コードの静止画像データから、電子透かしとして埋め込まれているレスポンス符号を抽出する(ステップS69)。
続いて、制御部24は、ステップS68の処理において生成したレスポンス符号と、ステップS69の処理において抽出した電子透かしが示すレスポンス符号と、を比較する(ステップS70)。
そして、制御部24は、ステップS70の処理においてレスポンス符号が合致していない場合(ステップS71;No)、認証に失敗したものと判別する(ステップS72)。
これに対して、制御部24は、ステップS57の処理においてワンタイムパスワードが合致している場合や(ステップS58;Yes)、ステップS70の処理においてレスポンス符号が合致している場合(ステップS70;Yes)、認証に成功したものと判別する(ステップS73)。
以上説明したように、第4実施形態に係る認証システム1では、時刻同期方式のワンタイムパスワード認証を行うことにより、端末装置10と認証装置20との間で時刻の同期が取れていれば、端末装置10のユーザが、第1及び第3実施形態に係る認証システム1のように、認証装置20の表示部22に表示されたチャレンジ二次元コードを撮像するための操作を行うことなく、適切に認証を行うことができる。
これに対して、端末装置10と認証装置20との間で時刻の同期が取れていなければ、チャレンジ・レスポンス認証を行うことにより、端末装置10のユーザが、一度認証装置20の表示部22に表示されたチャレンジ二次元コードを撮像するための操作を行う必要はあるが、適切に認証は行うことができる。
このため、第4実施形態に係る認証システム1では、第2実施形態に係る認証システム1と、第3実施形態に係る認証システム1と、のお互いの決定を解消できる。
なお、本発明は、上記実施形態に限定されず、種々の変形、応用が可能である。以下、本発明に適用可能な上記実施形態の変形態様について、説明する。
上記第1実施形態において、擬似三次元離散コサイン変換を利用して、ロゴ付き二次元コード30の周波数成分に、時間変化を伴う透かしデータを電子透かしとして埋め込む場合、半脆弱な動画像型電子透かしを実現するために、下記の二次元コード評価システムを用いて、電子透かしを、どの周波数帯にどの程度の埋込み強度で埋め込むかを最適化により決定してもよい。なお、この最適化による決定については、WO2015/001908等にその詳細が記載されている。
図14は、二次元コード評価システムの構成例を示す図である。
二次元コード評価システムは、図14に示すように、端末装置10と、二次元コード複製装置203と、二次元コード撮影装置205と、を備え、端末装置10と二次元コード撮影装置205とは、無線通信回線又は有線通信回線を介して接続されている。
本変形例において、端末装置10の制御部15は、擬似三次元離散コサイン変換を利用して、ロゴ付き二次元コード30の周波数成分に、時間変化を伴う透かしデータを電子透かしとして埋め込む。その際、制御部15は、例えば確率的最適化アルゴリズムの一つである自己適応型差分進化法(JADE)を利用して、電子透かしを、複数の周波数帯のうち、どの周波数帯にどの程度の埋込み強度で埋め込むかを決定するために、周波数帯の選択及び埋込み強度の調整を自動的に行う。なお、自己適応型差分進化法(JADE)については、JADE: Adaptive Differential Evolution With Optional External Archive (Published in: Evolutionary Computation, IEEE Transactions on (Volume: 13,?Issue: 5), Pages: 945 - 958, Issue Date: Oct. 2009)等にその詳細が記載されている。
具体的に、制御部15は、処理時間短縮のため、まず、同一のロゴ付き二次元コード30から構成される動画像データの各フレーム画像データのそれぞれに、二次元離散コサイン変換を適用し、次に、得られた各周波数帯において時系列方向の一次元離散コサイン変換を行うことで、周波数成分を得る。そして、制御部15は、二次元離散コサイン変換で得られる複数の周波数帯のうちから選択した周波数帯に、時間変化を伴う透かしデータを埋込み強度を調整して電子透かしとして埋め込んで、透かし入り二次元コードを生成する。
二次元コード撮影装置203は、携帯電話や、スマートフォン、タブレットコンピュータ等から構成され、少なくとも、端末装置10の表示部11に表示された透かし入り二次元コードを撮影可能なカメラ機能と、当該カメラ機能により撮影された透かし入り二次元コードを表示可能なTFT液晶ディスプレイと、を備えている。
二次元コード複製装置203は、端末装置10と同一機種の携帯電話や、スマートフォン、タブレットコンピュータ等から構成することが好ましいが、機能面で一定の一致性があれば、二次元コード複製装置203をどのような携帯電話で構成してもよい。また、透かし入り二次元コードを表示可能なディスプレイと、端末装置10の表示部11に表示された透かし入り二次元コードを撮影可能なカメラ機能と、を備える装置であれば、携帯電話や、スマートフォン、タブレットコンピュータ等に限らず、二次元コード複製装置203に適用することができる。
二次元コード複製装置203は、端末装置10の表示部11において表示される透かし入り二次元コードを撮影することにより複製した透かし入り二次元コード(以下、複製二次元コードと称す)を生成し、表示する。また、二次元コード複製装置203は、複製二次元コードだけではなく、端末装置10の表示部11において表示されるべき透かし入り二次元コードを表示する。
二次元コード撮影装置205は、二次元コード複製装置203において交互に表示される透かし入り二次元コードと複製二次元コードとを撮影する。
本変形例において、制御装置10の制御部15は、二次元コード撮影装置205において撮影された透かし入り二次元コードと複製二次元コードとから電子透かしを抽出し、それらの抽出率の差分を算出する。そして、制御部15は、算出された差分を評価値として用いて、生成した透かし入り二次元コードを評価する。
制御部15は、電子透かしが埋め込まれる周波数帯の選択、及び電子透かしの埋込み強度の調整等といった電子透かしの設計と、かかる設計の電子透かしが埋め込まれた透かし入り二次元コードの評価と、を例えば120世代分繰り返して最適化を行い、電子透かしを、どの周波数帯にどの程度の埋込み強度で埋め込むかを決定する。
図15は、端末装置の制御部の機能構成を示すブロック図である。
制御部15は、図15に示すように、差分算出部1001と、解候補探索部1002と、二次元コード生成部1003と、を備えている。
差分算出部1001は、二次元コード撮影装置205において撮影された透かし入り二次元コードと複製二次元コードとから電子透かしを抽出し、それらの抽出率の差分を算出する。
解候補探索部1002は、差分算出部1001により算出された差分(評価値)を最大化するように、電子透かしが埋め込まれる周波数帯、及び電子透かしの埋込み強度のパラメータの組合せである解候補の探索を行う。即ち、本変形例では、想定し得る差分(評価値)の閾値を設定し、解候補探索部1002は、差分算出部1001により算出される差分(評価値)が閾値以上となるまで、解候補の探索(透かし入り二次元コードの生成)を行う。差分(評価値)が閾値以上となる解候補が見つかった場合、当該解候補が最適解として決定される。
また、他の解候補の探索方法として、まず、解候補探索部1002は、解候補の初期集団を、パラメータをランダムに決定することで生成し、全解候補を評価する。次に、解候補探索部1002は、各解候補の評価値及び最適化アルゴリズムに従って、次の集団の解候補を生成する。例えば、遺伝的アルゴリズムを用いる場合であれば、2つの解候補の組み合わせをランダム又は評価値に基づくルーレット選択により復元抽出又は非復元抽出する。
次に、解候補探索部1002は、抽出された2つの解候補(親個体)に対して交叉と呼ばれるようなパラメータの値組の一部を交換する操作を適用することで新たな2つの解候補(子個体)を生成する。解候補探索部1002は、交叉により生成された解候補に対して、突然変異、即ちパラメータ組の一部をある一定確率でランダムに変更する操作を行うこともある。また、解候補探索部1002は、子個体を次の集団に無条件で加えることもあれば、親個体の方が優れる場合は子個体を捨てて親個体を次の集団に加えることもある。
解候補探索部1002は、一定回数又は解候補集団内の最良個体の評価値が一定回数の間改善されない状態に収束するまで、解候補の探索を行う。探索終了後、解候補探索部1002は、最も評価値が高く(最大化され)、パラメータの値組が互いに類似しない複数の解候補組を出力とすることもある。この場合、ユーザにより最終的な解候補が選択される。
二次元コード生成部1003は、解候補探索部1002により解候補が探索される度に、当該解候補に基づいて、電子透かしを生成するとともに、当該電子透かしを埋め込んだ透かし入り二次元コードを生成し、表示部11に表示する。
このように、本変形例においては、二次元コード複製装置203において交互に表示される透かし入り二次元コードと複製二次元コードとからそれぞれ抽出される電子透かしの一致性の差分である評価値を最大化することにより、端末装置10の表示部11に表示される透かし入り二次元コードが撮影により複製された場合、複製されたことを確実に識別することが可能な透かし入り二次元コードを生成することが可能となる。
なお、差分(評価値)を最大化する手法は、例えば、一定回数の探索処理により得られた解候補のうち、最も差分(評価値)が高い解候補を最適解として決定するようにしてもよく、特に限定すべきものではない。
なお、解候補には、電子透かしが埋め込まれる周波数帯、及び電子透かしの埋込み強度等からなるパラメータの他に、電子透かしを埋め込む対象となるロゴ付き二次元コード30を構成する際のパラメータ(例えば、ロゴ付き二次元コード30の型番、色、モジュールパターン及び階調等)、電子透かしの種類や電子透かしを構成する際のパラメータ、及び、電子透かしをロゴ付き二次元コード30に埋め込む際の方法(例えば、ウェーブレット変換、離散コサイン変換等)やパラメータ(例えば、マザーウェーブレット等)等が含まれてもよい。
また、上述した解候補に、端末装置10及び二次元コード複製装置203の補正パラメータ(例えば、色、輝度、ガンマ値、ぼかし等)が加えられてもよい。
この場合、二次元コード生成部1003は、電子透かしが埋め込まれた透かし入り二次元コードを生成する。表示部11は、補正パラメータを設定して、二次元コード生成部1003により生成された透かし入り二次元コードを表示する。二次元コード複製装置203は、端末装置10の表示部11において表示される二次元コードを撮影することにより複製二次元コードを生成し、補正パラメータを設定して表示する。二次元コード撮影装置205は、二次元コード複製装置203において交互に表示される透かし入り二次元コードと複製二次元コードとを撮影する。
差分算出部1001は、二次元コード撮影装置205において撮影された透かし入り二次元コードと複製二次元コードとから電子透かしを抽出し、その抽出結果から端末装置10及び二次元コード複製装置203に上述の補正パラメータを再調整させる。以上の処理が所定の回数(例えば、5回)繰り返された後、差分算出部1001は、図14で説明したように抽出率の差分を算出する。
そして、制御部15は、差分算出部1001において算出された差分を評価値として用いて、生成した二次元コードを評価する。このように、端末装置10及び二次元コード複製装置203の特性に応じた補正を加えて画像データを表示することで、より安定的に透かし入り二次元コードの真贋判定を行うことが可能となる。
次に、本変形例に係る二次元コード評価システムの処理の流れについて説明する。
図16及び図17は、二次元コード評価処理の詳細を示すフローチャートである。
端末装置10において、二次元コード生成部1003は、図16に示すように、電子透かしが埋め込まれた透かし入り二次元コードを生成する(ステップS101)。二次元コード生成部1003は、ステップS101にて生成した透かし入り二次元コードを表示部11に表示する(ステップS102)。
二次元コード複製装置203は、端末装置10の表示部11にて表示される透かし入り二次元コードを撮影することにより複製二次元コードを生成する(ステップS131)。二次元コード複製装置203は、端末装置10の表示部11において表示されるべき透かし入り二次元コードと、ステップS131にて生成した複製二次元コードと、を交互に表示する(ステップS132)。
二次元コード撮影装置205は、二次元コード複製装置203において交互に表示されるすかし入り二次元コードと複製二次元コードとを撮影する(ステップS151)。二次元コード撮影装置205は、撮影した透かし入り二次元コードと複製二次元コードとを端末装置10に対して送信する(ステップS152)。
端末装置10において、差分算出部1001は、図17に示すように、二次元コード撮影装置205から透かし入り二次元コードと複製二次元コードとを受信する(ステップS103)。差分算出部1001は、ステップS103で受信した透かし入り二次元コードと複製二次元コードとの差分を算出する(ステップS104)。
解候補探索部1002は、ステップS104にて算出した差分である評価値が閾値以上であるか否かを判定する(ステップS105)。なお、ステップS105における解候補の探索アルゴリズムとしては、勾配法、ニュートン法、共役勾配法、最小二乗法、タブー探索、焼き純し法等の端点探索法のほか、遺伝的アルゴリズム、蟻コロニー最適化、差分進化法、粒子群最適化等の多点探索、及び、それらのアルゴリズムのハイブリッド法を利用することができる。
解候補探索部1002は、評価値が閾値未満である場合(ステップS105;No)、他の解候補を探索する(ステップS106)。ステップS106の後、処理はステップS101に戻り、二次元コード生成部1003は、当該他の解候補に基づいて、透かし入り二次元コードを新たに生成する。一方、評価値が閾値以上である場合には(ステップS105;Yes)、現在の解候補(電子透かしが埋め込まれる周波数帯、及び電子透かしの埋込み強度のパラメータの組合せ)を最適解として決定する(ステップS107)。
図18は、最適解と、対応する基底関数と、を例示する図である。
最適解では、図18に示すように、低周波成分(上段左側)や中周波成分だけでなく、垂直方向の高周波成分(下段中央)の多くも使って電子透かしが埋め込まれ、所望の半脆弱性を実現できたことが判る。
図19は、透かし入り二次元コードと、透かし入り二次元コードの撮影結果と、複製二次元コードの撮影結果と、を例示する図である。
複製二次元コードの撮影結果では、図19に示すように、第3及び第8フレーム画像データに埋め込まれた電子透かしが破壊されていることが確認できる。これにより、認証装置20は、透かし入り二次元コードが複製されたことを確実に識別することができる。
上記第1実施形態において、透かし入り二次元コードは、アカウントIDを示すロゴ付き二次元コード30の周波数成分に電子透かしを埋め込むことで生成されるものとして説明したが、本発明はこれに限定されるものではなく、透かし入り二次元コードは、アカウントIDを示す汎用の二次元コードの周波数成分に電子透かしを埋め込むことで生成されるものであってもよい。
上記第1実施形態では、透かし入り二次元コードの真偽判定(認証)に失敗した場合、チャレンジ・レスポンス認証が行われるのとして説明した。しかしながら、本発明はこれに限定されるものではなく、透かし入り二次元コードの認証に失敗した場合、時刻同期方式のワンタイムパスワード認証が行われるものであってもよい。具体的に、認証装置20では、制御部24が、透かし動画像データを抽出できなかったと判別した場合、透かし入り二次元コードの認証に失敗した旨を表示し、撮像部21において時刻同期二次元コードが撮像されるまで、ループして待てばよい。その後、端末装置10では、制御部15が、ユーザによる操作部13の操作によって時刻同期二次元コードの生成が指示されたことに応答して、図8に示すステップS21〜S23の処理を実行し、端末装置20では、制御部24が、撮像部21において時刻同期二次元コードを撮像したことに応答して、ステップS24〜S30の処理を実行すればよい。また、透かし入り二次元コードの真偽判定(認証)に失敗した場合には、時刻同期方式のワンタイムパスワード認証を行い、時刻同期方式のワンタイムパスワード認証にも失敗した場合には、さらにチャレンジ・レスポンス認証を行うものであってもよい。あるいは、透かし入り二次元コードの認証のみを行い、時刻同期方式のワンタイムパスワード認証やチャレンジ・レスポンス認証を行わないものであってもよい。
上記第1実施形態において、端末装置10では、制御部15が、アカウントIDを示すロゴ付き二次元コード30の周波数成分に、透かし動画像データを電子透かしとして埋め込んで、透かし入り二次元コードを生成するものとして説明した。しかしながら、本発明はこれに限定されるものではなく、制御部15は、アカウントIDを示すロゴ付き二次元コード30の周波数成分に、アカウントIDに対応するパスワードを示す透かしデータを電子透かしとして埋め込んで、透かし入り二次元コードを生成するものであってもよい。この場合、認証装置20では、記憶部23のアカウントDB230にアカウントIDとパスワードとを対応付けて記憶しておく。認証処理では、制御部24が、撮像部21において撮像した透かし入り二次元コードが示すアカウントIDに対応するパスワードをアカウントDB230から検出する。そして、制御部24は、撮像部21において撮像して得られた透かし入り二次元コードの静止画像データから、アカウントDB230から検出したパスワードと合致するパスワードを示す透かしデータを抽出できたか否かを判別することにより、透かし入り二次元コードの真偽判定(認証)を行うようにすればよい。
上記第1実施形態において、制御部15は、複数のセルのうち、所定明度未満のセル(例えば黒色のセル)と、所定明度以上のセル(例えば白色のセル)と、の分布パターンによって、レスポンス符号を示すレスポンス二次元コードを生成するものとして説明した。しかしながら、本発明はこれに限定されるものではなく、単純にチャレンジ符号に対応するレスポンス符号の後ろにアカウントIDを付与してレスポンス二次元コードを生成してもよい。
上記第1実施形態において、レスポンス二次元コードは、複数のセルのうち、所定明度未満のセル(例えば黒色のセル)と、所定明度以上のセル(例えば白色のセル)と、の分布パターンによって、レスポンス符号を示す汎用の二次元コードから構成されるものとして説明した。しかしながら、本発明はこれに限定されるものではなく、レスポンス二次元コードは、ロゴ付き二次元コード30と同様に、ロゴのうち所定明度未満の領域及び所定明度未満のセルと、ロゴのうち所定明度以上の領域及び所定明度以上のセルと、の分布パターンによって、レスポンス符号を示すロゴ付き二次元コードから構成されるものであってもよい。また、レスポンス二次元コードは、例えばアカウントIDを示す汎用の二次元コード或いはロゴ付き二次元コードの周波数成分に、電子透かしとしてレスポンス符号を埋め込んで生成されるものであってもよい。
上記第1実施形態において、認証装置10では、制御部15が、所定のアルゴリズムに従って、読み取ったチャレンジ符号と、記憶部14に記憶されているアカウントIDと、を合成してレスポンス符号を生成するものとして説明した。しかしながら、本発明はこれに限定されるものではなく、制御部15は、所定のアルゴリズムに従って、読み取ったチャレンジ符号と、アカウントIDに対応するパスワードと、を合成してレスポンス符号を生成するものであってもよい。この場合、認証装置20では、記憶部23のアカウントDB230にアカウントIDとパスワードとを対応付けて記憶しておく。また、認証処理では、制御部24が、撮像部21において撮像した透かし入り二次元コードが示すアカウントIDに対応するパスワードをアカウントDB230から検出する。続いて、制御部24は、所定のアルゴリズムに従って、チャレンジ二次元コードが示すチャレンジ符号と、アカウントDB230から検出したパスワードと、を合成してレスポンス符号を生成する。そして、制御部24は、生成したレスポンス符号と、撮像部21において撮像したレスポンス二次元コードが示すレスポンス符号と、を比較して合致するか否かを判別することにより、チャレンジ・レスポンス認証を行うようにすればよい。
また、制御部15は、アカウントIDを示す汎用の二次元コード或いはロゴ付き二次元コードの周波数成分に、レスポンス符号を電子透かしとして埋め込んで、レスポンス二次元コードを生成してもよい。この場合、認証装置20では、記憶部23のアカウントDB230にアカウントIDとパスワードとを対応付けて記憶しておく。また、認証処理では、制御部24が、撮像部21において撮像したレスポンス二次元コードが示すアカウントIDに対応するパスワードをアカウントDB230から検出する。続いて、制御部24は、所定のアルゴリズムに従って、チャレンジ二次元コードが示すチャレンジ符号と、アカウントDB230から検出したパスワードと、を合成してレスポンス符号を生成する。そして、制御部24は、撮像部21において撮像して得られたレスポンス二次元コードの静止画像データから、生成したレスポンス符号と合致するレスポンス符号を抽出できたか否かを判別することにより、チャレンジ・レスポンス認証を行うようにすればよい。
上記第3実施形態において、認証装置10では、制御部15が、所定のアルゴリズムに従って、読み取ったチャレンジ符号と、記憶部14に記憶されているアカウントIDと、を合成してレスポンス符号を生成するものとして説明した。しかしながら、本発明はこれに限定されるものではなく、制御部15は、所定のアルゴリズムに従って、読み取ったチャレンジ符号と、アカウントIDに対応するパスワードと、を合成してレスポンス符号を生成するものであってもよい。この場合、認証装置20では、記憶部23のアカウントDB230にアカウントIDとパスワードとを対応付けて記憶しておく。また、認証処理では、制御部24が、撮像部21において撮像した時刻同期型二次元コード或いはレスポンス二次元コードが示すアカウントIDに対応するパスワードをアカウントDB230から検出する。続いて、制御部24は、所定のアルゴリズムに従って、チャレンジ二次元コードが示すチャレンジ符号と、アカウントDB230から検出したパスワードと、を合成してレスポンス符号を生成する。そして、制御部24は、撮像部21において撮像して得られたレスポンス二次元コードの静止画像データから、生成したレスポンス符号と合致するレスポンス符号を抽出できたか否かを判別することにより、チャレンジ・レスポンス認証を行うようにすればよい。
上記第4実施形態において、認証装置10では、制御部15が、所定のアルゴリズムに従って、読み取ったチャレンジ符号と、記憶部14に記憶されているアカウントIDと、を合成してレスポンス符号を生成するものとして説明した。しかしながら、本発明はこれに限定されるものではなく、制御部15は、所定のアルゴリズムに従って、読み取ったチャレンジ符号と、アカウントIDに対応するパスワードと、を合成してレスポンス符号を生成するものであってもよい。この場合、認証装置20では、記憶部23のアカウントDB230にアカウントIDとパスワードとを対応付けて記憶しておく。また、認証処理では、制御部24が、撮像部21において撮像したレスポンス二次元コードが示すアカウントIDに対応するパスワードをアカウントDB230から検出する。続いて、制御部24は、所定のアルゴリズムに従って、チャレンジ二次元コードが示すチャレンジ符号と、アカウントDB230から検出したパスワードと、を合成してレスポンス符号を生成する。そして、制御部24は、撮像部21において撮像して得られたレスポンス二次元コードの静止画像データから、生成したレスポンス符号と合致するレスポンス符号を抽出できたか否かを判別することにより、チャレンジ・レスポンス認証を行うようにすればよい。
上記第1、第3、及び第4実施形態において、チャレンジ二次元コードは、複数のセルのうち、所定明度未満のセル(例えば黒色のセル)と、所定明度以上のセル(例えば白色のセル)と、の分布パターンによって、チャレンジ符号を示す汎用の二次元コードから構成されるものとして説明した。しかしながら、本発明はこれに限定されるものではなく、チャレンジ二次元コードは、ロゴ付き二次元コード30と同様に、ロゴのうち所定明度未満の領域及び所定明度未満のセルと、ロゴのうち所定明度以上の領域及び所定明度以上のセルと、の分布パターンによって、チャレンジ符号を示すロゴ付き二次元コードから構成されるものであってもよい。また、チャレンジ二次元コードは、例えばアカウントIDを示す汎用の二次元コード或いはロゴ付き二次元コードに、電子透かしとしてチャレンジ符号を埋め込んで生成されるものであってもよい。
上記第1、第3、及び第4実施形態において、撮像部12は、端末装置10のうち、表示部11とは反対の面に設けられたメインカメラと、表示部11と同一の面に設けられたフロントカメラと、を備え、チャレンジ・レスポンス認証を行う場合には、フロントカメラを利用して、チャレンジ二次元コードを撮像すればよい。このようにすれば、メインカメラを利用する場合とは異なり、端末装置10を反転させることなく、端末装置10の表示部11とフロントカメラとが設けられた面を、認証装置20の撮像部21に翳すだけで、チャレンジ・レスポンス認証を行うことができるため、高速に認証を行うことができる。また,何らかの理由で途中で認証の失敗があった場合でも、チャレンジ・レスポンス認証を容易に繰り返し行うことができる。
上記第2及び第4実施形態において、時刻同期二次元コードは、アカウントIDを示すロゴ付き二次元コード30の周波数成分に、電子透かしとしてワンタイムパスワードを埋め込んで生成されるものとして説明した。しかしながら、本発明はこれに限定されるものではなく、時刻同期二次元コードは、アカウントIDを示す汎用の二次元コードの周波数成分に、電子透かしとしてワンタイムパスワードを埋め込んで生成されるものであってもよい。また、時刻同期二次元コードは、ロゴのうち所定明度未満の領域及び所定明度未満のセルと、ロゴのうち所定明度以上の領域及び所定明度以上のセルと、の分布パターンによって、ワンタイムパスワードを示すものであってもよい。或いは、時刻同期二次元コードは、複数のセルのうち、所定明度未満のセル(例えば黒色のセル)と、所定明度以上のセル(例えば白色のセル)と、の分布パターンによって、ワンタイムパスワードを示すものであってもよい。この場合、時刻同期二次元コードは、例えばワンタイムパスワードを示す汎用の二次元コード或いはロゴ付き二次元コードの周波数成分に、電子透かしとしてアカウントIDを埋め込んで生成されるものであってもよい。
上記第3及び第4実施形態において、レスポンス二次元コードは、アカウントIDを示すロゴ付き二次元コード30の周波数成分に、電子透かしとしてレスポンス符号を埋め込んで生成されるものとして説明した。しかしながら、本発明はこれに限定されるものではなく、レスポンス二次元コードは、アカウントIDを示す汎用の二次元コードの周波数成分に、電子透かしとしてレスポンス符号を埋め込むことで生成されるものであってもよい。また、レスポンス二次元コードは、ロゴのうち所定明度未満の領域及び所定明度未満のセルと、ロゴのうち所定明度以上の領域及び所定明度以上のセルと、の分布パターンによって、レスポンス符号を示すものであってもよい。或いは、レスポンス二次元コードは、複数のセルのうち、所定明度未満のセル(例えば黒色のセル)と、所定明度以上のセル(例えば白色のセル)と、の分布パターンによって、レスポンス符号を示すものであってもよい。この場合、レスポンス二次元コードは、汎用の二次元コード或いはロゴ付き二次元コードの周波数成分に、電子透かしとしてアカウントIDを埋め込んで生成されるものであってもよい。
上記第1乃至第4実施形態では、埋込対象のロゴ付き二次元コード30が静止画像データであるものとして説明したが、本発明はこれに限定されるものではなく、埋込対象のロゴ付き二次元コード30は、例えば特開2012−14662公報、WO2009/072363公報、及びWO2010/097989公報に記載されているように、動画像データであってもよい。この場合、電子透かしとして埋め込まれる透かしデータは、時間変化を伴うものであってもよいし、時間変化を伴わないものであってもよい。動画像データに電子透かしを埋め込む技術は、例えばWO2007/015452公報等に記載されている。なお、本明細書中に特開2012−14662公報、WO2009/072363公報、WO2010/097989公報、及びWO2007/015452公報の明細書、特許請求の範囲、図面全体を参考として取り込むものとする。
上記第1乃至第4実施形態では、埋込対象のロゴ付き二次元コード30が、ロゴマークのうち所定明度以上の部分には、所定明度未満のセルドットを重ね合わせる一方で、ロゴマークのうち所定明度未満の部分には、所定明度以上のセルドットを重ね合わせ、所定明度以上のセルドット及びロゴマークのうち所定明度以上の部分と、所定明度未満のセルドット及びロゴマークのうち所定明度未満の部分と、の分布パターンによって、アカウントIDを示すものとして説明した(例えば特開2008−15642号公報参照)。しかしながら、本発明はこれに限定されるものではなく、汎用の二次元コードリーダによって“0”と認識される光学的特性の一又は複数の色と、“1”と認識される光学的特性の一又は複数の色と、を用いて所定の情報を表現するものであれば任意に適用可能である。例えば所定明度未満(汎用の二次元コードリーダによって“0”と認識される明度)のロゴマークに、所定明度以上(汎用の二次元コードリーダによって“1”と認識される明度)のセルを重ね合わせ、ロゴマークのうちセルが重ね合わされていない部分とセルとの分布パターンによって、アカウントIDを示すものであってもよい(例えば特開2007−287004号公報参照)。なお、本明細書中に特開2007−287004号公報及び特開2008−15642号公報の明細書、特許請求の範囲、図面全体を参考として取り込むものとする。
上記第1乃至第4実施形態では、二次元コードとしてQRコード(登録商標)を例示して説明したが、本発明はこれに限定されるものではなく、二次元コードは、データマトリクス、アズテックコード、コードワン、アレイタグ、ボックス図形コード、マキシコード、ペリコード、ソフトストリップ、CPコード、カルラコード、ウルトラコードなどといった他のマトリクス式の二次元コードであってもよい。あるいは、PDF417、コード49、コード16k、コーダブロックなどといった一次元バーコードを縦に積み重ねたスタック式の二次元コードであっても構わない。
上記第1乃至第4実施形態において、制御部15のCPUが実行するプログラムは、予めROMや記憶部14等に記憶されているものとして説明した。また、制御部24のCPUが実行するプログラムは、予めROMや記憶部23等に記憶されているものとして説明した。しかしながら、本発明はこれに限定されず、上述の処理を実行させるためのプログラムを、既存のスマートフォンや、タブレット、パーソナルコンピュータなどの汎用端末装置や、フレームワーク、ワークステーション等に適用することで、上記第1乃至第4実施形態に係る端末装置10や認証装置20として機能させてもよい。
このようなプログラムの提供方法は任意であり、例えばコンピュータが読取可能な記録媒体(フレキシブルディスク、CD(Compact Disc)−ROM、DVD(Digital Versatile Disc)−ROM等)に格納して配布してもよいし、インターネット等のネットワーク上のストレージにプログラムを格納しておき、これをダウンロードさせることにより提供してもよい。
また、上記の処理をOS(Operating System)とアプリケーションプログラムとの分担、又はOSとアプリケーションプログラムとの協働によって実行する場合には、アプリケーションプログラムのみを記録媒体やストレージに格納してもよい。また、搬送波にプログラムを重畳し、ネットワークを介して配信することも可能である。例えば、ネットワーク上の掲示板(BBS:Bulletin Board System)に上記プログラムを掲示し、ネットワークを介してプログラムを配信してもよい。そして、このプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、上記の処理を実行できるように構成してもよい。
なお、本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、本発明の一実施例を説明するためのものであり、本発明の範囲を限定するものではない。