(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-09
(45)【発行日】2024-01-17
(54)【発明の名称】情報処理プログラム、情報処理装置および情報処理方法
(51)【国際特許分類】
G06F 21/64 20130101AFI20240110BHJP
G06K 7/14 20060101ALI20240110BHJP
【FI】
G06F21/64
G06K7/14 017
G06K7/14 073
(21)【出願番号】P 2020037511
(22)【出願日】2020-03-05
【審査請求日】2022-11-17
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】乾 真季
(72)【発明者】
【氏名】伊豆 哲也
(72)【発明者】
【氏名】古川 和快
【審査官】行田 悦資
(56)【参考文献】
【文献】特開2020-160759(JP,A)
【文献】特開2020-160961(JP,A)
【文献】特開2021-015489(JP,A)
【文献】特開2001-006014(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/64
G06K 7/14
(57)【特許請求の範囲】
【請求項1】
処理対象とするQRコードに含まれるブロックそれぞれが改変される可能性の高さに応じて、それぞれのブロックに対する重み付けを行い、
前記重み付けが行われたブロックに含まれる誤りビット数に応じて、前記
QRコードが確率的に遷移するQRコードであるか否かを判定する
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項2】
前記重み付けを行う処理は、前記QRコードに含まれるブロックが偽造に利用される確率が所定の割合以上のブロックである場合には、当該ブロックに対する重み付けを行い、
該判定する処理は、
前記重み付けが行われたブロックに含まれる誤りビット数をカウントし、
カウントした数が規定値を超えるか否かにより前記
QRコードが確率的に遷移するQRコードであるか否かを判定する
ことを特徴とする請求項1に記載の情報処理プログラム。
【請求項3】
該重み付けを行う処理は、前記QRコードに含まれるブロックそれぞれが改変される可能性の高さに応じて、段階的に重み付けを行い、
該判定する処理は、
前記重み付けが行われたブロックに含まれる誤りビットの前記重み付けの和を算出し、
算出した和が規定値を超えるか否かにより前記
QRコードが確率的に遷移するQRコードであるか否かを判定する
ことを特徴とする請求項1に記載の情報処理プログラム。
【請求項4】
処理対象とするQRコードに含まれるブロックそれぞれが改変される可能性の高さに応じて、それぞれのブロックに対する重み付けを行う重み付け部と、
前記重み付けが行われたブロックに含まれる誤りビット数に応じて、前記
QRコードが確率的に遷移するQRコードであるか否かを判定する判定部と、
を有することを特徴とする情報処理装置。
【請求項5】
処理対象とするQRコードに含まれるブロックそれぞれが改変される可能性の高さに応じて、それぞれのブロックに対する重み付けを行い、
前記重み付けが行われたブロックに含まれる誤りビット数に応じて、前記
QRコードが確率的に遷移するQRコードであるか否かを判定する
処理をコンピュータが実行することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理プログラム等に関する。
【背景技術】
【0002】
近年、QRコード(登録商標)の偽造方法が考案され、偽造の検知がQRコード業界の共通課題となっている。QRコードの偽造方法について、2018年6月に、確率的なQRコードの偽造技術が考案された(例えば、非特許文献1参照)。ここでいうQRコードとは、デジタルデータを平面上の縦横に配置された白黒のドットパターンで表記する符号化方法のことをいう。
図6は、偽造QRコードの参考例を示す図である。
図6に示すように、正常なQRコードの所定の位置にドットを埋め込むことで、正常な復号データが一定の確率で、正常でない復号データとして悪意のあるウェブサイトのURL(Uniform Resource Locator)に復号される。この結果、サイバー攻撃が可能となる。
【0003】
QRコードは、リードソロモン(RS:Reed Solomon)符号と呼ばれる誤り訂正符号技術を利用する。誤り訂正符号技術は、読み取りデータに数ビットの誤りがあっても、誤りを訂正でき、正常に復号できる。誤りを訂正できるビット数には、誤り訂正能力と呼ばれる限界値が定められている。復号処理は、読み取りデータに対して、ノイズの個数が誤り訂正能力以内ならば、正常なデータに復号できる。例えば、正常な復号データは、「http://www.aaaaaaa.com/」のURLを示す。
【0004】
一方で、復号処理は、読み取りデータに対して、ノイズの個数が誤り訂正能力を超えた場合には、読み取りエラーとなる。ここで、復号処理の際に、ノイズが読み取れなかったり読み取れたりする特殊な形式のノイズが報告されている。復号処理は、特殊な形式のノイズが含まれたQRコードを読み取ると、読み取り結果に応じて、正常な復号データと正常でない復号データとを確率的に発生させることになる。このような特殊な形式が含まれたQRコードを確率的に遷移するQRコードと呼ぶ。悪意のある者は、毎回正常でないデータに復号させると、偽造に気付かれるので、正常な復号データと正常でない復号データとに確率的に遷移させるこのようなQRコードを偽造する。例えば正常でない復号データとして「http://www.aabaaaa.com/」のURLに復号するように特殊な形式でノイズが埋め込まれている場合、ノイズの個数が誤り訂正能力以内ならば復号処理が行われ、結果として正常でないデータに復号される場合がある。
【0005】
かかるQRコード偽造に対して、復号時の誤り訂正ビット数をカウントし、閾値以上の場合に、偽造コードと判定する偽造判定方法が知られている。閾値は、例えば、誤り訂正能力×0.8の値を示す。
【先行技術文献】
【非特許文献】
【0006】
【文献】大熊,瀧田,森井,“悪性サイトに誘導するQRコードの存在とそれを利用した偽造攻撃”,信学技報,vol.118,no.109,ICSS2018-6,pp.33-38,2018年6月
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、確率的に遷移するQRコードの判定において、偽造されていないQRコードを偽造された確率的に遷移するQRコードであると誤判定してしまうという問題がある。例えば、誤り訂正能力が5である場合に、偽造と判定する閾値が誤り訂正能力×0.8であるとする。すなわち、閾値が4であるとする。すると、従来の判定処理は、誤り訂正ビット数が4である場合には、偽造と判定する。ところが、QRコードに汚れや破れ等の汚損が存在する場合に、誤り訂正ビット数が4以上になり、QRコードが偽造でないにもかかわらず偽造であると誤判定してしまうことがある。
【0008】
本発明は、1つの側面では、確率的に遷移するQRコードの判定において、偽造でないQRコードを偽造と誤判定してしまうことを回避することを目的とする。
【課題を解決するための手段】
【0009】
第1の案では、情報処理プログラムは、処理対象とするQRコードに含まれるブロックそれぞれが改変される可能性の高さに応じて、それぞれのブロックに対する重み付けを行い、前記重み付けが行われたブロックに含まれる誤りビット数に応じて、前記確率的に遷移するQRコードであるか否かを判定する、処理をコンピュータに実行させる。
【発明の効果】
【0010】
1実施態様によれば、確率的に遷移するQRコードの判定において、偽造でないQRコードを偽造と誤判定してしまうことを回避することができる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、実施例に係る情報処理装置の機能構成を示す図である。
【
図2】
図2は、QRコードのコード配置(2-M型)の一例を示す図である。
【
図3】
図3は、2-M型QRコードの符号語の一例を示す図である。
【
図4】
図4は、実施例に係る判定のフローチャートの一例を示す図である。
【
図5】
図5は、情報処理プログラムを実行するコンピュータの一例を示す図である。
【
図6】
図6は、偽造QRコードの参考例を示す図である。
【
図7】
図7は、偽造と誤判定する参考例を示す図である。
【発明を実施するための形態】
【0012】
以下に、本願の開示する情報処理プログラム、情報処理装置および情報処理方法の実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
【0013】
まず、偽造と誤判定する参考例を、
図7を参照して説明する。
図7は、偽造と誤判定する参考例を示す図である。なお、誤り訂正能力は5であるとする。偽造と判定する閾値は、5×0.8(=4)であるとする。
図7上図に示すようなQRコードの誤り訂正ビット数が4であったとする。すると、復号処理は、誤り訂正ビット数が閾値以上であるので、偽造と判定する。また、
図7下図に示すような、汚れがあるQRコードの誤り訂正ビット数が4であったとする。すると、復号処理は、誤り訂正ビット数が閾値以上であるので、偽造でないのにかかわらず、偽造と誤判定してしまう。これは、例えば、QRコードの読み取り時に発生した誤りビットもカウントされるためである。なお、
図7下図のQRコードは、汚れがある場合であったが、破れ等の汚損がある場合であっても良い。
【0014】
そこで、以降の実施例では、確率的に遷移するQRコードの判定において、偽造でないQRコードを偽造と誤判定してしまうことを回避する情報処理装置について説明する。
【0015】
図1は、実施例に係る情報処理装置の機能構成を示す図である。
図1に示す情報処理装置1は、QRコードの中に偽造QRコードに利用される可能性が高い部分があることを利用し、偽造に利用される可能性の高い部分に含まれる誤りビット数に応じて、確率的に遷移するQRコードであるか否かを判定する。
【0016】
図1に示すように、情報処理装置1は、制御部10と、記憶部20とを有する。
【0017】
制御部10は、CPU(Central Processing Unit)等の電子回路に対応する。そして、制御部10は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部10は、読取部11、誤り訂正箇所特定部12、重み付け部13、偽造判定部14および復号部15を有する。なお、重み付け部13は、重み付け部の一例である。偽造判定部14は、判定部の一例である。
【0018】
記憶部20は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置である。記憶部20は、閾値21を有する。閾値21は、偽造と判定するために用いられる一定値を示す。
【0019】
読取部11は、デコーダを用いてQRコードを読み取る。なお、デコーダは、QRコードを認識する専用のアプリケーションであっても良いし、カメラ等のハードウェアを利用した読取機能であっても良い。
【0020】
誤り訂正箇所特定部12は、読取部11によって読み取られたQRコードの誤り訂正箇所を特定する。例えば、誤り訂正箇所特定部12は、RS符号を利用して、読み取ったQRコードの画像から誤りを検出し、検出した誤りを訂正する。そして、誤り訂正箇所特定部12は、誤りを訂正した箇所を特定する。
【0021】
重み付け部13は、確率的に遷移するQRコードの判定の際に、QRコードに含まれるブロックそれぞれが改変される可能性の高さに応じて、それぞれのブロックに対する重み付けを行う。例えば、重み付け部13は、QRコードに含まれるブロックが偽造に利用される確率が1/2以上のブロックである場合には、当該ブロックに対する重み付けを行う。
【0022】
ここで、QRコードのコード配置の一例を、
図2を参照して説明する。
図2は、QRコードのコード配置(2-M型)の一例を示す図である。
図2に示すように、「E」で示されている部分は、誤り訂正ブロックである。「D」で示されている部分は、情報コードである。確率的に遷移するQRコードに利用される確率が高い部分は、「E」で示される誤り訂正ブロックであることが知られている。これは、「D」で示される情報コードの部分が偽造されると、常時偽造になってしまうからである。したがって、QRコードのコード配置のうち「E」で示される誤り訂正ブロックが、確率的に遷移するQRコードに利用される確率が高い部分となる。ここでは、
図2のQRコードの配置のうち強調パターンの部分が、「E」で示される誤り訂正ブロックであり、確率的に遷移するQRコードに利用される確率が高い部分である。
【0023】
ここで、2―M型のQRコードの符号語の一例を、
図3を参照して説明する。
図3は、2-M型QRコードの符号語の一例を示す図である。
【0024】
図3に示すように、QRコードの符号語は、情報コードと、埋め草コードと、誤り訂正ブロックとを含む。QRコードにURLとして「http://www.aaaaaaa.com/」が埋め込まれている場合とする。かかる場合には、情報コードは、「http://www.aaaaaaa,com/」をシフトJISの1バイトコードに変換し、変換したデータの前にモード指示子および文字数指示子を追加し、変換したデータの後ろに終端パターンを追加し、得られたデータを8ビットずつ区切ったものとなる。なお、モード指示子は、QRコードに埋め込み可能な文字データの種類(数字モード、英数字モード、8ビットバイトモード、漢字モード)を示す識別子である。ここでは、モード指示子には、一例として、8ビットバイトモードを示すビット列が設定される。文字数指示子は、QRコードに埋め込まれているデータ文字列の長さを定義するビット列である。ここでは、文字数指示子には、一例として、22文字を示すビット列(00010110)が設定される。
【0025】
埋め草コードは、QRコードの全体のデータ量に満たない場合に全体のデータ量になるまでデータを表さない仮のコード語を埋め込んだものである。なお、埋め草コードには、固定のビットパターンとして236(11101100)および17(00010001)が繰り返しでパディングされる。情報コードおよび埋め草コードが、QRコードのデータであり、RS符号により符号化される。
【0026】
誤り訂正ブロックは、QRコードのデータの誤りを訂正し、復号することが可能な情報である。この誤り訂正ブロックが、
図2で示したQRコードのコード配置のうち「E」で示されるブロックであり、確率的に遷移するQRコードに利用される確率が高い部分である。
【0027】
図1に戻って、偽造判定部14は、改変される可能性の高いブロックに含まれる誤りビット数に応じて、確率的に遷移するQRコードであるか否かを判定する、例えば、偽造判定部14は、誤り訂正箇所特定部12によって特定された誤り訂正箇所に関し、重み付け部13によって重み付けが行われたブロックに含まれる誤りビット数をカウントする。そして、偽造判定部14は、カウントした数が閾値21を超えるか否かを判定する。すなわち、偽造判定部14は、カウントした数が閾値21を超える場合には、確率的に遷移するQRコードであると判定する。つまり、偽造判定部14は、読み取ったQRコードを偽造コードとして検知する。また、偽造判定部14は、カウントした数が閾値21以下である場合には、確率的に遷移するQRコードでないと判定する。
【0028】
復号部15は、確率的に遷移するQRコードでない場合には、QRコードを復号する。
【0029】
[判定のフローチャート]
ここで、実施例に係る判定のフローチャートの一例を、
図4を参照して説明する。
図4は、実施例に係る判定のフローチャートの一例を示す図である。
【0030】
図4に示すように、読取部11は、デコーダを用いてQRコードを読み取る(ステップS11)。そして、誤り訂正箇所特定部12は、RS符号を利用して、読み取ったQRコードの誤り訂正箇所を特定する(ステップS12)。
【0031】
そして、重み付け部13は、読み取られたQRコードの中で、偽造に利用される可能性が高い箇所に重み付けする(ステップS13)。例えば、重み付け部13は、QRコードの中で、偽造に利用される確率が1/2以上のブロックに、重み付けを行う。一例として、重み付け部13は、誤り訂正ブロックに対応する箇所に重み付けする。
【0032】
そして、偽造判定部14は、特定された誤り訂正箇所に関し、重み付けが行われたブロックに含まれる誤り訂正ビット数をカウントする(ステップS14)。偽造判定部14は、カウント数が閾値21を超えるか否かを判定する(ステップS15)。カウント数が閾値21を超えると判定した場合には(ステップS15;Yes)、偽造判定部14は、読み取られたQRコードが偽造であると判断し、偽造コードを検知する(ステップS16)。そして、判定のプロセスは、終了する。
【0033】
一方、カウント数が閾値21を超えていないと判定した場合には(ステップS15;No)、復号部15は、読み取られたQRコードを復号する(ステップS17)。そして、判定のプロセスは、終了する。
【0034】
なお、重み付け部13は、例えばQRコードに含まれるブロックが偽造に利用される確率が1/2以上のブロックの場合には、当該ブロックに対する重み付けを行うと説明した。しかしながら、重み付け部13は、偽造に利用される確率の高さに応じて段階的に重み付けを行っても良い。例えば、重み付け部13は、偽造に利用される確率について、2/3以上のブロックの場合には重み付けを「3」とし、1/3以上2/3未満のブロックの場合には重み付けを「1.5」としても良い。そして、偽造判定部14は、特定された誤り訂正箇所に関し、重み付けが行われたブロックに含まれる誤り訂正ビットの重み付きの和をカウントして、閾値21を超える場合には、確率的に遷移するQRコードであると判定すれば良い。
【0035】
[実施例の効果]
上記実施例によれば、情報処理装置1は、処理対象とするQRコードに含まれるブロックそれぞれが改変される可能性の高さに応じて、それぞれのブロックに対する重み付けを行う。情報処理装置1は、重み付けが行われたブロックに含まれる誤りビット数に応じて、確率的に遷移するQRコードであるか否かを判定する。かかる構成によれば、情報処理装置1は、確率的に遷移するQRコードの判定に、改変される可能性の高さに応じた重み付けを用いることで、偽造でないQRコードを偽造と誤判定してしまうことを回避することができる。すなわち、情報処理装置1は、確率的に遷移するQRコードの判定を、精度良く行うことが可能となる。
【0036】
また、上記実施例によれば、情報処理装置1は、QRコードに含まれるブロックが偽造に利用される確率が所定の割合以上のブロックである場合には、当該ブロックに対する重み付けを行う。情報処理装置1は、重み付けが行われたブロックに含まれる誤りビット数をカウントする。情報処理装置1は、カウントした数が規定値を超えるか否かにより確率的に遷移するQRコードであるか否かを判定する。かかる構成によれば、情報処理装置1は、偽造に利用される確率が所定の割合より低いブロックの誤りビット数をカウントしないことで、偽造に利用される可能性が低い部分が汚れたり破れたりした場合の誤検知を回避することができる。
【0037】
また、上記実施例によれば、情報処理装置1は、QRコードに含まれるブロックそれぞれが改変される可能性の高さに応じて、段階的に重み付けを行う。情報処理装置1は、重み付けが行われたブロックに含まれる誤りビットの重み付けの和をカウントする。情報処理装置1は、カウントした和が規定値を超えるか否かにより確率的に遷移するQRコードであるか否かを判定する。かかる構成によれば、情報処理装置1は、確率的に遷移するQRコードの判定に、改変される可能性の高さに応じた段階的な重み付けを用いることで、確率的に遷移するQRコードの判定を、精度良く行うことが可能となる。また、情報処理装置1は、改変される可能性の低いブロックの誤りビット数をカウントしないことで、偽造に利用される可能性が低い部分が汚れたり破れたりした場合の誤検知を回避することができる。
【0038】
[その他]
なお、図示した情報処理装置1の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、情報処理装置1の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、読取部11と誤り訂正箇所特定部12とを1つの部として統合しても良い。また、偽造判定部14を、重み付けが行われたブロックに含まれる誤りビット数をカウントするカウント部と、カウントした数を判定する判定部とに分散しても良い。また、記憶部20を情報処理装置1の外部装置としてネットワーク経由で接続するようにしても良い。
【0039】
また、上記実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、
図1に示した情報処理装置1と同様の機能を実現する情報処理を含む情報処理プログラムを実行するコンピュータの一例を説明する。
図5は、情報処理プログラムを実行するコンピュータの一例を示す図である。
【0040】
図5に示すように、コンピュータ200は、各種演算処理を実行するCPU203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209を制御する表示制御部207とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、ドライブ装置213、入力装置215、通信制御部217は、バス219で接続されている。
【0041】
ドライブ装置213は、例えばリムーバブルディスク211用の装置である。HDD205は、情報処理プログラム205aおよび情報処理関連情報205bを記憶する。
【0042】
CPU203は、情報処理プログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスは、情報処理装置1の各機能部に対応する。情報処理関連情報205bは、閾値21等に対応する。そして、例えばリムーバブルディスク211が、情報処理プログラム205a等の各情報を記憶する。
【0043】
なお、情報処理プログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらから情報処理プログラム205aを読み出して実行するようにしても良い。
【符号の説明】
【0044】
1 情報処理装置
10 制御部
11 読取部
12 誤り訂正箇所特定部
13 重み付け部
14 偽造判定部
15 復号部
20 記憶部
21 閾値