(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-14
(45)【発行日】2025-01-22
(54)【発明の名称】偽造及び改ざんからグラフィックデータを保護する方法
(51)【国際特許分類】
H04L 9/32 20060101AFI20250115BHJP
H04N 1/32 20060101ALI20250115BHJP
【FI】
H04L9/32 200A
H04L9/32 200E
H04N1/32 144
(21)【出願番号】P 2021570944
(86)(22)【出願日】2020-05-28
(86)【国際出願番号】 EP2020064812
(87)【国際公開番号】W WO2020245024
(87)【国際公開日】2020-12-10
【審査請求日】2023-04-28
(32)【優先日】2019-06-03
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】311007051
【氏名又は名称】シクパ ホルディング ソシエテ アノニム
【氏名又は名称原語表記】SICPA HOLDING SA
【住所又は居所原語表記】Avenue de Florissant 41,CH-1008 Prilly, Switzerland
(74)【代理人】
【識別番号】100107456
【氏名又は名称】池田 成人
(74)【代理人】
【識別番号】100128381
【氏名又は名称】清水 義憲
(74)【代理人】
【識別番号】100162352
【氏名又は名称】酒巻 順一郎
(72)【発明者】
【氏名】ドクー, エリック
【審査官】行田 悦資
(56)【参考文献】
【文献】米国特許出願公開第2004/0169366(US,A1)
【文献】特表2003-528368(JP,A)
【文献】特開平09-297867(JP,A)
【文献】特開2018-182487(JP,A)
【文献】特開2009-171432(JP,A)
【文献】米国特許出願公開第2009/0185713(US,A1)
【文献】特開平07-168912(JP,A)
【文献】米国特許出願公開第2008/0292136(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
H04N 1/32
(57)【特許請求の範囲】
【請求項1】
偽造及び改ざんからグラフィックデータを保護する方法であって、以下のステップ、
前記グラフィックデータのグラフィックシンボルの所与の有限なセットのデジタル表現を含むグラフィックデータブロック(210、310)を処理ユニットのメモリに格納するステップと、
誤り訂正データブロック(230、330)になる誤り訂正データを生成するために、前記処理ユニットにプログラムされた誤り訂正コードを用いて、前記格納されたグラフィックデータブロックのグラフィックシンボルの前記デジタル表現を前記処理ユニットにより処理するステップと、
人間可読グラフィックデータブロックおよび機械可読誤り訂正データブロックを含む認証可能なグラフィックデータブロックを取得する(250、350)ために、
前記人間可読グラフィックデータブロックにて、前記グラフィックデータブロックの人間可読グラフィックシンボルを、さらに、
前記機械可読誤り訂正データブロックにて、前記グラフィックデータブロックの前記人間可読グラフィックシンボルとは別の、前記誤り訂正データブロックの機械可読誤り訂正データを
それぞれ提供するために、
前記グラフィックデータブロックおよび前記誤り訂正データブロックを前記処理ユニットによりフォーマットするステップであり、前記機械可読誤り訂正データブロックが、前記グラフィックデータブロックのハッシュ値を含まない、ステップ(215、240;315、340)と、
(i)前記処理ユニットに接続されたディスプレイである支持体(100)上に、前記取得された認証可能なグラフィックデータブロックの人間可読グラフィックシンボルと関連付けられた機械可読誤り訂正データとを表示するステップ、または
(ii)前記処理ユニットに接続され、前記処理ユニットから受信したデータに基づいてマーキングの動作を制御するように動作可能な制御ユニットを備えたマーキング装置を介して、前記処理ユニットから受信され取得された前記認証可能なグラフィックデータブロックの人間可読グラフィックシンボルと関連付けられた機械可読誤り訂正データとを、基材である支持体(100)上にマーキングするステップ(260)であり、
該マーキングするステップ(260)により、前記人間可読グラフィックシンボルと関連付けられた機械可読誤り訂正データとを含む認証データを前記支持体上に提供する、ステップと、
を含む方法。
【請求項2】
前記機械可読誤り訂正データが、英数字表現またはバーコード表現(130)のいずれか1つである、請求項1に記載の方法。
【請求項3】
前記グラフィックシンボルがテキスト文字(110)であり、グラフィックシンボルの前記有限なセットがアルファベットである、請求項1または2に記載の方法。
【請求項4】
前記処理ユニット上にプログラムされたハッシュ関数を用いて、前記グラフィックデータブロックのハッシュ値、前記誤り訂正データブロックのハッシュ値、または前記グラフィックデータブロックと前記誤り訂正データブロックとの連結から生じる、データブロックの任意の部分のハッシュ値を計算するステップと、
前記計算されたハッシュ値を基準ハッシュ値として台帳に格納するステップと、
を含む請求項1~3のいずれか一項に記載の方法。
【請求項5】
前記支持体が複数の部分を含み、前記認証可能なグラフィックデータブロックが複数の認証可能なグラフィックデータサブブロックに分割され(410)、前記人間可読グラフィックシンボルおよび機械可読誤り訂正データが、ともに、下記のステップによって、前記支持体の部分上で分布し、前記下記のステップが、
前記グラフィックデータブロックが複数のグラフィックデータサブブロックに分割され、前記グラフィックデータサブブロックの各々が、関連付けられた人間可読グラフィックデータサブブロックにて人間可読グラフィックシンボルを提供するようにフォーマットされる(415)ステップと、
グラフィックデータサブブロックの各々に対して、前記グラフィックデータサブブロックの各々のグラフィックシンボルの前記デジタル表現が抽出され、前記誤り訂正コードを用いて処理されて(420)、誤り訂正データサブブロックになる誤り訂正データが生成される(430)ステップと、
人間可読グラフィックデータサブブロックおよび機械可読誤り訂正データサブブロックを含む認証可能なグラフィックデータサブブロックを取得する(450)ために、
誤り訂正データサブブロックの各々は、前記機械可読誤り訂正データサブブロックにて、前記人間可読グラフィックデータサブブロックの前記人間可読グラフィックシンボルとは別の、機械可読誤り訂正データを提供する(440)ようにフォーマットされるステップと、
ステップ(i)で、取得した認証可能なグラフィックデータサブブロックの各々の人間可読グラフィックシンボルと関連付けられた機械可読誤り訂正データとを前記ディスプレイ上に表示するステップ(460)、または
ステップ(ii)で、前記制御ユニットが前記処理ユニットから受信した認証可能なグラフィックデータサブブロックの各々の人間可読グラフィックシンボルと関連付けられた機械可読誤り訂正データとを、前記マーキング装置を介して、前記基材上にマーキングするステップ(470)であり、
該マーキングするステップ(470)により、前記グラフィックデータブロックのグラフィックデータサブブロックの各々に対して、ユーザが認証可能である、人間可読グラフィックシンボルと関連付けられた機械可読誤り訂正データとを前記支持体上で提供する、ステップと、
を含む請求項1~3のいずれか一項に記載の方法。
【請求項6】
サブブロックハッシュ値が、各グラフィックデータサブブロック、前記誤り訂正データサブブロック、または前記グラフィックデータサブブロックと前記誤り訂正データサブブロックとの連結から生じるデータサブブロックの任意の部分に対して、前記処理ユニット上にプログラムされたハッシュ関数を介して計算され、
サブブロックハッシュ値の各々に対して、前記サブブロックハッシュ値の機械可読表現が計算され、
認証可能なグラフィックデータサブブロックの各々に関連付けられて、前記サブブロックハッシュ値の前記機械可読表現が、前記支持体の前記部分でさらに提供され、
すべての前記サブブロックハッシュ値の基準集約ハッシュ値が、すべての前記計算されたサブブロックハッシュ値との連結として決定され、
前記基準集約ハッシュ値が台帳に格納され、
前記方法が、前記グラフィックデータブロックのグラフィックデータサブブロックの各々に対して、ユーザが認証可能である、人間可読グラフィックシンボルと関連付けられた機械可読誤り訂正データとを前記支持体上で提供するステップを含む、請求項5に記載の方法。
【請求項7】
サブブロックハッシュ値が、グラフィックデータサブブロックの各々、前記誤り訂正データサブブロック、または前記グラフィックデータサブブロックと前記誤り訂正データサブブロックとの連結から生じるデータサブブロックの任意の部分に対して、前記処理ユニット上にプログラムされたハッシュ関数を介して計算され、
すべての前記サブブロックハッシュ値の基準集約ハッシュ値が、前記計算されたサブブロックハッシュ値を葉ノード値として有するツリーの根ノード値として決定され、前記ツリーが、前記ツリーにおける所定のノードの順序に従って配置されたノードを含み、前記ツリーが
、葉ノードか
ら根ノードまでのノードレベルを含み、前記ツリーのすべての非葉ノード値が、ツリー連結順序に従って、前記ツリーの子ノードの前記それぞれのノード値の連結のハッシュ値に対応し、前記根ノード値が、前記ツリー連結順序に従って、前記ツリーにおける最後から2番目のノードレベルの前記ノードの前記ノード値の連結のハッシュ値に対応し、
サブブロックハッシュ値の各々に対して、関連付けられたサブブロック検証パスキーが、前記サブブロックハッシュ値から前記根ノード値を取得するために必要な、前記ツリーの選択された非葉ノードの一連のハッシュ値として決定され、
各サブブロック検証パスキーの機械可読表現が、前記認証可能なグラフィックデータサブブロックにおいて、前記それぞれのグラフィックデータサブブロック、および誤り訂正データサブブロックに関連付けられて含まれ、
前記認証可能なグラフィックデータサブブロックが、さらにフォーマットされ、前記関連付けられたグラフィックデータサブブロック
の人間可読表現、および前記関連付けられた誤り訂正データサブブロックの前記機械可読表現とは別の、前記サブブロック検証パスキーの機械可読表現を提供し、
(iii)前記基準集約ハッシュ値が台帳に格納され、または
(iv)前記基準集約ハッシュ値をユーザが利用することができるようにし、
前記グラフィックデータブロックのグラフィックデータサブブロックの各々対して、ユーザが認証可能である、人間可読グラフィックシンボルと関連付けられた機械可読誤り訂正データとを前記支持体上に提供する、請求項5に記載の方法。
【請求項8】
前記機械可読誤り訂正データを伴って支持体上で提供される前記人間可読グラフィックシンボルを認証するステップであって、
スキャンされた人間可読グラフィックシンボルの画像処理を介して、前記スキャンされた人間可読グラフィックシンボルのデジタル表現である、スキャンされたグラフィックデータブロックを取得する(620、720)ために、画像化ユニット、およびスキャナメモリを有し、スキャナディスプレイに接続されたスキャナ処理ユニットを備えたスキャナにより、人間可読グラフィックシンボルをスキャンするステップ(610、710)と、
前記スキャナ処理ユニット上にプログラムされた機械可読デコーダを介して、スキャンされた誤り訂正データブロックのスキャンされた誤り訂正データを取得する(625、725)ために、前記支持体上の機械可読誤り訂正データを前記スキャナによりスキャンするステップであって、前記スキャンされた誤り訂正データが、前記スキャンされた誤り訂正データのデジタル表現である、スキャンするステップ(615、715)と、
訂正されたスキャンされたグラフィックデータブロックを取得するために、前記スキャンされた誤り訂正データブロックの前記スキャンされた誤り訂正データを使用して、前記スキャナ処理ユニット上にプログラムされた誤り訂正コードを用いて、前記スキャンされたグラフィックデータブロックを訂正するステップ(630、730)と、
(a)前記スキャンされたグラフィックデータブロックが誤差を含むか否かを前記スキャナを介して示すステップ(670、770)、または
(b)前記スキャンされたグラフィックデータブロックが誤差を含むか否かを指定するスキャン結果データを前記スキャナメモリに格納するステップ(680、780)と、
を含む、認証するステップをさらに含む、請求項1~3のいずれか一項に記載の方法。
【請求項9】
ハッシュ関数が前記スキャナ処理ユニット上にプログラムされており、前記スキャナが、通信リンクを介して基準ハッシュ値を格納する台帳と通信するように動作可能なスキャナ通信ユニットに接続されており、前記認証するステップが、
前記スキャナ処理ユニット上にプログラムされた前記ハッシュ関数を用いて、前記訂正されたスキャンされたグラフィックデータブロックのスキャンハッシュ値、前記スキャンされた誤り訂正データブロックのスキャンハッシュ値、または前記訂正されたスキャンされたグラフィックデータブロックと前記スキャンされた誤り訂正データブロックの連結から生じるデータブロックの任意の部分のスキャンハッシュ値を計算するステップと、
前記スキャナ通信ユニットおよび前記通信リンクを介して前記台帳に格納された前記基準ハッシュ値を取得するステップ、および前記取得した基準ハッシュ値がスキャンハッシュ値と一致するか否かをチェックするステップと、
(e)前記チェックするステップの動作の結果を示すステップ、または
(f)前記チェックするステップの動作の結果を前記スキャナメモリに格納するステップと、
をさらに含む、請求項8に記載の方法。
【請求項10】
前記支持体上の前記人間可読グラフィックシンボルをスキャンする前記動作が、前記スキャンされたサブブロックのデジタル表現として、スキャンされたグラフィックデータサブブロックを画像処理を介して取得するために、前記グラフィックデータサブブロックのサブブロックグラフィックシンボルをスキャンするステップを含み、
前記支持体上の前記機械可読誤り訂正データをスキャンする前記動作が、スキャンされる誤り訂正データサブブロックを取得するために、前記誤り訂正データサブブロックの前記誤り訂正データをスキャンするステップを含み、
前記スキャンされたグラフィックデータブロックを訂正する前記動作が、訂正されたスキャンされたグラフィックデータサブブロックを取得するために、前記スキャンされた誤り訂正データサブブロックを使用して、前記スキャンされたグラフィックデータサブブロックの前記グラフィックデータを訂正するステップを含み、
前記スキャンされたグラフィックデータブロックが誤差を含むか否かを示す前記ステップの動作(a)が、前記スキャンされたグラフィックデータサブブロックが誤差を含むか否かを示すステップを含み、
スキャン結果データを格納する前記ステップの動作(b)が、前記スキャンされたグラフィックデータサブブロックが誤差を含むか否かを格納するステップを含む、請求項8に記載の方法。
【請求項11】
ハッシュ関数および前記誤り訂正コードが、前記スキャナ処理ユニットにプログラムされており、前記スキャナが、前記スキャナ処理ユニットにより、前記支持体上のサブブロックハッシュ値の機械可読表現を読み取って復号するようにさらに動作可能であり、
前記スキャナが、基準集約ハッシュ値を格納する台帳との通信リンクを介して通信するように動作可能なスキャナ通信ユニットに接続されており、前記認証するステップが、
前記スキャナ処理ユニットにプログラムされた前記ハッシュ関数を用いて、サブブロックハッシュ値を計算するために実行された前記動作に従って、前記支持体の各部分に対して、前記訂正されたスキャンされたグラフィックデータサブブロック、前記誤り訂正データサブブロック、または前記訂正されたスキャンされたグラフィックデータサブブロックと前記スキャンされた誤り訂正データサブブロックとの連結から生じるデータサブブロックの任意の部分のハッシュ関数を計算するステップと、
前記支持体の部分のスキャンサブブロックハッシュ値を計算できない場合に、復号されたサブブロックを取得するために、前記支持体の前記部分のサブブロックハッシュ値の機械可読表現をスキャンして復号するステップ、および
この復号されたサブブロックハッシュ値を、前記支持体のこの部分のスキャンサブブロックハッシュ値として使用するステップと、
すべての前記スキャンサブブロックハッシュ値の連結として、集約されたスキャンハッシュ値を計算するステップと、
前記スキャナ通信ユニットおよび前記通信リンクを介して、前記台帳に格納された前記基準集約ハッシュ値を取得するステップ、および前記取得した基準集約ハッシュ値が前記集約されたスキャンハッシュ値と一致するか否かをチェックするステップと、
前記スキャナを介して前記チェックするステップの動作の結果を示すステップと、
をさらに含む、請求項10に記載の方法。
【請求項12】
基準集約ハッシュ値が台帳に格納されており、前記スキャナが、前記台帳との通信リンクを介して通信するように動作可能なスキャナ通信ユニットに接続されており、前記スキャナが、前記支持体の部分上のサブブロック検証パスキーの機械可読表現を読み取って復号し、サブブロックハッシュ値とサブブロック検証パスキーとのペアからの集約されたハッシュ値を計算するようにさらに動作可能であり、前記認証するステップが、
前記スキャナ処理ユニットにおいてプログラムされたハッシュ関数を用いて、サブブロックハッシュ値を計算するために実行される前記動作に従って、選択された訂正されたスキャンされたグラフィックデータサブブロック、スキャンされた誤り訂正データサブブロック、または前記訂正されたスキャンされたグラフィックデータサブブロックと前記スキャンされた誤り訂正データサブブロックとの連結から生じるデータサブブロックの任意の部分のスキャンサブブロックハッシュ値を計算するステップと、
前記支持体の部分上で、前記選択された訂正されたスキャンされたグラフィックデータサブブロックに関連付けられた、サブブロック検証パスキーの機械可読表現を前記スキャナによりスキャンするステップ、およびスキャンされたサブブロック検証パスキーを抽出するステップと、
前記計算されたスキャンサブブロックハッシュ値と前記スキャンされたサブブロック検証パスキーを用いて、スキャン集約ハッシュ値を計算するステップと、
前記スキャナ通信ユニットおよび通信リンクを介して、前記台帳に格納された前記基準集約ハッシュ値を取得するステップ、および前記取得した基準集約ハッシュ値が前記スキャン集約ハッシュ値と一致するか否かをチェックするステップと、
前記スキャナを介して前記チェックするステップの動作の結果を示すステップと、
を含む、請求項10に記載の方法。
【請求項13】
ユーザが利用することができる基準集約ハッシュ値が、前記スキャナメモリに格納されており、前記スキャナが、前記支持体の部分上のサブブロック検証パスキーの機械可読表現を読み取って復号し、サブブロックハッシュ値とサブブロック検証パスキーとのペアから、集約されたハッシュ値を計算するようにさらに動作可能であり、前記認証するステップが、
前記スキャナ処理ユニットにプログラムされたハッシュ関数を用いて、サブブロックハッシュ値を計算するために実行される前記動作に従って、選択された訂正されたスキャンされたグラフィックデータサブブロック、スキャンされた誤り訂正データサブブロック、または前記訂正されたスキャンされたグラフィックデータサブブロックと前記スキャンされた誤り訂正データサブブロックとの連結から生じるデータサブブロックの任意の部分のスキャンサブブロックハッシュ値を計算するステップと、
前記支持体の部分上で、前記選択された訂正されたスキャンされたグラフィックデータサブブロックに関連付けられた、サブブロック検証パスキーの機械可読表現を前記スキャナによりスキャンするステップ、およびスキャンされたサブブロック検証パスキーを抽出するステップと、
スキャンされた基準集約ハッシュ値を取得するために、基準集約ハッシュ値を前記支持体上でスキャンするステップと、
前記計算されたスキャンサブブロックハッシュ値および前記スキャンされたサブブロック検証パスキーを用いて、集約されたスキャンハッシュ値を計算するステップと、
前記スキャナメモリに格納された前記基準集約ハッシュ値が前記集約されたスキャンハッシュ値と一致するか否かをチェックするステップと、
前記スキャナを介して前記チェックするステップの動作の結果を示すステップと、
を含む、請求項10に記載の方法。
【請求項14】
コンピュータのディスプレイ上で前記機械可読誤り訂正データを伴って提供される前記人間可読グラフィックシンボルを認証するステップであって、前記コンピュータが、表示された人間可読グラフィックシンボル、および機械可読誤り訂正データをスキャンするように動作可能な、プロセッサ上にプログラムされたスキャンアプリケーションを有し、
スキャンされた人間可読グラフィックシンボルのデジタル表現である、スキャンされたグラフィックデータブロックを取得するために、前記コンピュータのプロセッサ上で実行される前記スキャンアプリケーションを介して、前記表示された人間可読グラフィックシンボルをスキャンするステップと、
前記表示された機械可読誤り訂正データをスキャンするステップ、およびスキャンされた誤り訂正データブロックのスキャンされた誤り訂正データを取得するために、前記コンピュータのプロセッサ上で実行される前記スキャンアプリケーションの機械可読デコーダを介して、前記スキャンされた機械可読誤り訂正データを復号するステップと、
訂正されたスキャンされたグラフィックデータブロックを取得するために、前記スキャンされた誤り訂正データブロックの前記スキャンされた誤り訂正データを使用して、前記コンピュータのプロセッサ上で実行される前記スキャンアプリケーションの誤り訂正コードを用いて、前記スキャンされたグラフィックデータブロックを訂正するステップと、
(a)前記スキャンされたグラフィックデータブロックが誤差を含むか否かを指定する表示を表示するステップ、または
(b)前記スキャンされたグラフィックデータブロックが誤差を含むか否かを指定するスキャン結果データを前記コンピュータのメモリに格納するステップと、
を含む、認証するステップをさらに含む、請求項1~3のいずれか一項に記載の方法。
【請求項15】
前記人間可読グラフィックシンボルと関連付けられた前記機械可読誤り訂正データとを含む認証データを用いて支持体にマーキングするステップを含む、請求項1~7のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]本発明は、セキュリティおよび不正防止の、方法およびシステムの技術分野に関する。特に、本発明は、例えば、(デジタル化または印刷された)重要文書のテキストデータのような、偽造または改ざんに対するデータの保護に関する。
【背景技術】
【0002】
[0002]デジタルファイルまたは印刷された文書の偽造および改ざんの問題はよく知られており、深刻であり、拡大している。身分証明書や卒業証書などの元の(デジタルまたは物理的)文書にマーキングされたデータの改ざんの例はよく知られており、元の(おそらく本物の)デジタル文書/物理的文書のデジタルコピーを検討する場合、懸念はさらに悪化する。偽造者はそのような番号や電子透かしも簡単に複製することができるので、シリアル番号などの識別子を追跡するだけ、またはいくつかの電子透かしを含めることは、概して弱い対策である。
【0003】
[0003]デジタル文書または物理文書のコンテンツを偽造から保護するための多くの既知の手法がある。例えば、元のデジタル文書から、または元の物理文書のデジタル化バージョンから、デジタルデータのハッシュを取得し(例えば、文書をスキャンし、OCRスキャナソフトウェアを介してテキストデータを抽出することにより)、ハッシュ値を台帳(例えば、単なるデータベース、またはブロックチェーン)に格納する。その後、物理的な支持体(例えば、支持体はデータが印刷された1枚の紙であってもよい)で視覚的に表される精査中の文書のデータコンテンツをスキャンし、そのデータコンテンツのハッシュ値を計算し、計算されたハッシュ値と元の文書に対応する台帳に格納されたハッシュ値とを比較することによって、データコンテンツにおける変更を検出することができる。しかしながら、この方法の欠点は、文書コンテンツの支持体に関する視覚的表現の変更に起因して、この文書が本物である場合でさえも、計算されたハッシュ値が格納されたハッシュ値と異なる場合があることである。この違いは、スキャン動作の実行方法に起因する場合もあれば、使用するスキャナのタイプに依存する場合もある(2つの異なるスキャナが2つの反対の結論を出す可能性がある)。これは、(例えばコンピュータの)画面などの支持体に表示されるデジタル文書にも当てはまる。文書コンテンツが本物である場合でさえも、表示されたコンテンツをスキャンして検証すると、表示されたコンテンツに変更がある場合、格納されたハッシュ値とは異なるハッシュ値を生成する。したがって、実際には、文書をスキャンして、取込み画像のハッシュ値を計算することは機能せず、この理由は、文書をスキャンするたびに、概して、異なるハッシュが生成されるためである。ハッシュ値を計算する前にOCR(「光学式文字認識」)スキャナを使用しても、100%で動作するOCRシステムがないので、前述の問題は解決されない。例えば、点がコンマになっただけで、または、文字「l」(すなわちL)が「1」(すなわち1)になっただけで、計算されるハッシュは異なるものとなる。
【0004】
[0004]文書から抽出された情報が少ない紙の文書(例えば、証明書、卒業証書、契約書など)を保護するための既存の手法には、(QRコード(登録商標)などの)2Dバーコードを作成し、抽出された情報を2Dバーコードにおいて配置して文書に印刷することが含まれる。2Dバーコードが読み取られるたびに同じ結果が取得されるが、バーコードに含まれる情報を文書に印刷されている情報と比較する必要があるという欠点がある。さらに、例えば全文ページを保護したい場合、全文をバーコードに入れる必要があり、そのためバーコードは巨大になり、ページ上に多くのスペースを必要とし、それは読者に邪魔であると知覚され(その結果、実際には、符号化することができる全文のサイズが限定される)、また、印刷されたテキストとバーコードから復号されたテキストとの間で数千文字を比較する必要がある(そして手間がかかる)。文書に印刷されたテキストの誤りを特定しそれに関する情報を形成する米国特許第6047093号明細書、欧州特許出願公開第2048867号明細書、米国特許出願公開第2004/145661号明細書が知られている。
【発明の概要】
【0005】
[0005]本発明は、デジタルファイルまたは印刷された文書の偽造および改ざんに関する先行技術の前述の欠点を解決することを目的とし、これは、元の構成体に対して、マーキングされた(それぞれ表示された)グラフィックシンボル(例えば、テキスト)の構成体における任意の変更の自動検出を可能にして、特に、コード内のデータと印刷された(それぞれ表示された)テキストとの間の冗長性を排除し、コード内のテキストを印刷された(それぞれ表示された)テキストと視覚的に比較する負担を回避しながら、印刷された(それぞれ表示された)テキストのデータのサイズが大きいときに、コードのサイズが大きすぎる問題を解決することで、解決することを目的とする。
【0006】
[0006]したがって、本発明は、ディスプレイ(例えば、コンピュータの画面)または基材(例えば、1枚の紙、ラベル、パッケージ)のような材料支持体上に可視であるグラフィックシンボル(例えば、テキスト文字またはグリフ)を生成する、信頼性が高く堅牢な方法を提供することを目的としており、グラフィックシンボルの、本物の基準グラフィックシンボルとの適合性が、上記可視グラフィックシンボルを読むことによって容易にチェックすることができ、従来技術の欠点を回避する。グラフィックシンボルは人間可読形式でありグラフィックシンボルの、(例えば、アルファベットのテキスト文字のような)所与の有限なセットから取得される。したがって、本発明に従って基材上に表示またはマーキングされた人間可読グラフィックシンボルは、ユーザによって検証可能であり、グラフィックシンボルの任意の部分を変更しようとする試みを検出することができる。
【0007】
[0007]したがって、本発明は、「マーキング方法」、すなわち、グラフィックシンボルの所与の有限なセットを使用することによって、検証可能なグラフィックデータを支持体上で生成する方法であって、支持体が、ディスプレイまたは基材であり、以下のステップ、
・グラフィックシンボルのデジタル表現を含むグラフィックデータブロックを処理ユニットのメモリに格納するステップと、
・対応する誤り訂正データブロックにおいて誤り訂正データを生成するために、処理ユニットにプログラムされた誤り訂正コードを用いて、格納されたグラフィックデータブロックのグラフィックシンボルのデジタル表現を処理ユニットにより処理するステップと、
・人間可読グラフィックデータブロックおよび機械可読誤り訂正データブロックを含む対応する検証可能なグラフィックデータブロックを取得するために、上記人間可読グラフィックデータブロックにおいて、グラフィックデータブロックのグラフィックシンボルの人間可読表現を、および上記機械可読誤り訂正データブロックにおいて、グラフィックデータブロックのグラフィックシンボルの人間可読表現とは別の、誤り訂正データブロックの誤り訂正データの機械可読表現をそれぞれ提供するために、グラフィックデータブロックおよび誤り訂正データブロックを処理ユニットによりフォーマットするステップであって、
(i)処理ユニットに接続されたディスプレイ上に、取得された検証可能なグラフィックデータブロックの誤り訂正データの人間可読グラフィックシンボルおよび対応する機械可読表現を表示するステップ、または
(ii)処理ユニットに接続され、処理ユニットから受信したデータに基づいてマーキングの動作を制御するように動作可能な制御ユニットを備えたマーキング装置を介して、人間可読グラフィックシンボル、および処理ユニットから受信した検証可能なグラフィックデータブロックの誤り訂正データの対応する機械可読表現を基材上にマーキングするステップと、その結果、ユーザによって検証可能である、対応する機械可読誤り訂正データを伴う人間可読グラフィックシンボルを支持体上に提供するするステップと
を含む方法に関する。
【0008】
[0008]誤り訂正データの機械可読表現は、英数字表現またはバーコード表現(1Dバーコード、またはDataMatrixコードもしくはQRコードなどの2Dバーコード)の任意のものであってもよい。好ましくは、バーコードは、バーコード上を走査する単純な線形スキャナによって読み取ることができる従来のPDF417線形バーコードであってもよい。好ましくは、グラフィックシンボルはテキスト文字であってもよく、グラフィックシンボルの有限なセットはアルファベットであってもよい。好ましくは、マーキング装置は、プリンタ(例えば、インクジェットプリンタ)であってもよく、基材は、1枚の紙またはラベルであってもよい。また、好ましくは、誤り訂正コードは、リードソロモン誤り訂正コードであってもよい。
【0009】
[0009]第1の変形形態では、前述のマーキング方法は、
・処理ユニット上にプログラムされたハッシュ関数を用いて、グラフィックデータブロックのハッシュ値、誤り訂正データブロックのハッシュ値、またはグラフィックデータブロックと誤り訂正データブロックとの連結から生じる、データブロックの任意の部分のハッシュ値を計算するステップと、
・計算されたハッシュ値を基準ハッシュ値として台帳に格納するステップと
をさらに含んでもよい。
【0010】
[0010]ハッシュ関数は、一方向性関数の周知の例、すなわち、計算は簡単であるが、反転するのは難しい関数である(例えば、S.Goldwasser and M.Bellare「Lecture Notes on Cryptography」、MIT、2008年7月、http://www-cse.ucsd.edu/users/mihirを参照)。好ましくは、暗号化ハッシュ関数は、例えば、256ビットサイズのハッシュ値を与えるSHA-256のようなSHA-2ファミリーのものであってもよい。この関数は、実質的に不可逆的で衝突耐性があり、すなわち、2つの異なる入力が同じ出力につながる確率は無視できるほど小さい。また、好ましくは、台帳は、データの変更不可能の記録を有利に提供するブロックチェーンであってもよい。任意選択で、対応する署名された基準ハッシュ値を取得するために、処理ユニットにより、計算された基準ハッシュ値を署名秘密鍵で署名して、署名された基準ハッシュ値を格納し、または支持体上にさらに提供する、さらなるステップがあってもよい。このオプションを用いると、秘密鍵に対応する公開鍵を有するユーザは、支持体上で読み取られた署名された基準ハッシュ値が、正しい秘密鍵で署名されているものとして本物であることをチェックすることができる。
【0011】
[0011]前述のマーキング方法の第2の変形形態では、支持体が複数の部分を含み、検証可能なグラフィックデータブロックが同じ複数の検証可能なグラフィックデータサブブロックに分割され、
・対応する人間可読グラフィックシンボルおよび誤り訂正データの機械可読表現が、支持体の対応する部分上でともに、ステップによってそれぞれに応じて広げられ、ステップが、
・グラフィックデータブロックが複数のグラフィックデータサブブロックに分割され、グラフィックデータサブブロックの各々が、対応する人間可読グラフィックデータサブブロックにおけるグラフィックシンボルの人間可読表現を提供するようにフォーマットされるステップと、
・グラフィックデータサブブロックの各々に対して、グラフィックデータサブブロックの各々のグラフィックシンボルのデジタル表現が抽出され、誤り訂正コードを用いて処理されて、誤り訂正データサブブロックにおいて対応する誤り訂正データが生成されるステップと、
・人間可読グラフィックデータサブブロックおよび機械可読誤り訂正データサブブロックを含む、対応する検証可能なグラフィックデータサブブロックを取得するために、誤り訂正データサブブロックの各々は、対応する上記機械可読誤り訂正データサブブロックにおいて、対応する上記人間可読グラフィックデータサブブロックのグラフィックシンボルの人間可読表現とは別の、対応する誤り訂正データの機械可読表現を提供するようにフォーマットされるステップであって、
・ステップ(i)で、人間可読グラフィックシンボル、および取得した検証可能なグラフィックデータサブブロックの各々の誤り訂正データの対応する機械可読表現をディスプレイ上に表示するステップ、または
・ステップ(ii)で、マーキング装置を介して、人間可読グラフィックシンボル、および制御ユニットが処理ユニットから受信した検証可能なグラフィックデータサブブロックの各々の誤り訂正データの対応する機械可読表現を、基材上にマーキングするステップと、その結果、グラフィックデータブロックのグラフィックデータサブブロックの各々に対して、ユーザが検証可能な対応する機械可読誤り訂正データを伴う対応する人間可読グラフィックシンボルを支持体上で提供するステップと
を含む。
【0012】
[0012]支持体上に検証可能なグラフィックシンボルを生成するマーキング方法のこの第2の変形形態は、テキストの数ページの文書の場合に特に適合される(すなわち、支持体は複数の部分を有する)。全文は複数の部分に分割され、テキストのページに対応するテキストの各部分、したがって、支持体上で提供される文書の各ページは、
(例えば、
図1に示すPDF417バーコードとしての)対応する誤り訂正データサブブロックの誤り訂正データの別個の機械可読表現を伴う対応するグラフィックデータサブブロックのグラフィックシンボルの人間可読表現を含む。
【0013】
[0013]ユーザが、支持体上で(すなわち、グラフィックデータブロックのグラフィックデータサブブロックに対応する支持体の部分上で)読み取られた、人間可読グラフィックシンボルおよび対応する機械可読誤り訂正データサブブロックが本物であるか否かを決定することができるようにするために、マーキング方法の前述の第2の変形形態は、以下の2つのサブバリアントのうちの1つの特徴をさらに含んでもよい。
【0014】
[0014]マーキング方法の第2の変形形態の第1のサブバリアントによると、
・サブブロックハッシュ値が、各グラフィックデータサブブロック、対応する誤り訂正データサブブロック、または上記グラフィックデータサブブロックと上記誤り訂正データサブブロックとの連結から生じるデータサブブロックの任意の部分に対して、処理ユニット上にプログラムされたハッシュ関数を介して計算され、
・サブブロックハッシュ値の各々に対して、上記サブブロックハッシュ値の対応する機械可読表現が計算され、
・検証可能なグラフィックデータサブブロックの各々に関連付けられて、サブブロックハッシュ値の対応する機械可読表現が、支持体の対応する部分でさらに提供され、
・すべてのサブブロックハッシュ値の基準集約ハッシュ値が、すべての計算されたサブブロックハッシュ値との連結として決定され、
・基準集約ハッシュ値が台帳に格納され、
・その結果、グラフィックデータブロックのグラフィックデータサブブロックの各々に対して、ユーザが認証可能である、対応する機械可読誤り訂正データを伴う対応する人間可読グラフィックシンボルを支持体上で提供する。
【0015】
[0015]マーキング方法の第2の変形形態の第2のサブバリアントによると、
・サブブロックハッシュ値が、各グラフィックデータサブブロック、対応する誤り訂正データサブブロック、または上記グラフィックデータサブブロックと上記誤り訂正データサブブロックとの連結から生じるデータサブブロックの任意の部分に対して、処理ユニット上にプログラムされたハッシュ関数を介して計算され、
・すべてのサブブロックハッシュ値の基準集約ハッシュ値が、計算されたサブブロックハッシュ値を葉ノード値として有するツリーの根ノード値として決定され、ツリーが、ツリーにおける所定のノードの順序に従って配置されたノードを含み、上記ツリーが、葉ノードから根ノードまでのノードレベルを含み、ツリーのすべての非葉ノード値が、ツリー連結順序に従って、ツリーの子ノードのそれぞれのノード値の連結のハッシュ値に対応し、根ノード値が、上記ツリー連結順序に従って、ツリーにおける最後から2番目のノードレベルのノードのノード値の連結のハッシュ値に対応し、
・サブブロックハッシュ値の各々に対して、関連付けられたサブブロック検証パスキーが、上記サブブロックハッシュ値から根ノード値を取得するために必要な、ツリーの選択された非葉ノードの一連のハッシュ値として決定され、
・検証可能なグラフィックデータサブブロックにおいて、それぞれの対応するグラフィックデータサブブロック、および誤り訂正データサブブロックに関連付けられ、サブブロック検証パスキーの機械可読表現が含まれ、検証可能なグラフィックデータサブブロックが、さらにフォーマットされ、関連付けられたグラフィックデータサブブロックの人間可読表現、および関連付けられた誤り訂正データサブブロックの機械可読表現とは別の、上記サブブロック検証パスキーの機械可読表現を提供し、
(iii)基準集約ハッシュ値が台帳に格納され、または
(iv)基準集約ハッシュ値をユーザが利用することができるようにし、その結果、グラフィックデータブロックのグラフィックデータサブブロックの各々対して、対応する人間可読グラフィックシンボルと、ユーザが認証可能である、対応する機械可読誤り訂正データを伴う対応する人間可読グラフィックシンボルを支持体上に提供する。
【0016】
[0016]本発明はまた、前述の「マーキング方法」に対応する「検証方法」、すなわち、上記支持体上で検証可能なグラフィックシンボルを生成する前述の方法に従って生成された、誤り訂正データの機械可読表現を伴って支持体上で提供される人間可読グラフィックシンボルを検証する方法であって、
・スキャンされた人間可読グラフィックシンボルの画像処理を介して、上記スキャンされた人間可読グラフィックシンボルのデジタル表現である、スキャンされたグラフィックデータブロックを取得するために、画像化ユニット、およびスキャナメモリを有し、スキャナディスプレイに接続されたスキャナ処理ユニットを備えたスキャナにより、人間可読グラフィックシンボルをスキャンするステップと、
・スキャナ処理ユニット上にプログラムされた機械可読デコーダを介して、スキャンされた誤り訂正データブロックにおける対応するスキャンされた誤り訂正データを取得するために、支持体上の誤り訂正データの機械可読表現をスキャナによりスキャンするステップであって、スキャンされた誤り訂正データが、上記スキャンされた誤り訂正データのデジタル表現である、スキャンするステップと、
・対応する訂正されたスキャンされたグラフィックデータブロックを取得するために、スキャンされた誤り訂正データブロックのスキャンされた誤り訂正データを使用して、スキャナ処理ユニット上にプログラムされた誤り訂正コードを用いて、スキャンされたグラフィックデータブロックを訂正するステップと、
(a)訂正されたスキャンされたグラフィックデータブロックの視覚的表現を、対応する訂正された人間可読グラフィックシンボルとしてスキャナディスプレイ上に表示するステップ、
(b)スキャンされたグラフィックデータブロックが誤差を含むか否かをスキャナを介して示すステップ、または
(c)スキャンされたグラフィックデータブロックが誤差を含むか否かを指定するスキャン結果データをスキャナメモリに格納するステップ
とを含む。
したがって、本発明によれば、ユーザは、スキャンされたテキストの訂正により、元のグラフィックシンボル(例えば、文書の元のテキスト)をスキャナディスプレイ(オプション(a))上で直接視覚化し、その後、表示されたグラフィックシンボル(すなわち、訂正された人間可読グラフィックシンボル)と支持体上のグラフィックシンボルとを比較し、変更または不正を検出する。
【0017】
[0017]スキャナは、特別に専用とされた装置であってもよく、カメラを備え、上記スマートフォンのプロセッサ上で実行され、支持体上で提供されるグラフィックシンボルおよび対応する機械可読誤り訂正データを検証する前述の方法のステップを実行するように動作可能なプログラムされたアプリケーションを有する、単なるスマートフォンであってもよい。検証方法のステップのいくつかは、スキャナと通信する遠隔サーバ上で実行することもできる。例えば、スキャナは、スキャンされたグラフィックデータブロックおよび機械可読誤り訂正データを、サーバに送信してもよく、その後、サーバの適切にプログラムされた処理手段は、対応するスキャンされた誤り訂正データを取得するステップと、対応する訂正されたスキャンされたグラフィックデータブロックを取得するために、スキャンされた誤り訂正データを使用して、スキャンされたグラフィックデータブロックを(サーバ上にプログラムされた誤り訂正コードを用いて)訂正するステップと、訂正されたスキャンされたグラフィックデータブロックを、(場合によっては、スキャンされたグラフィックデータブロックが誤差を含むか否かを示す表示、またはスキャンされたグラフィックデータブロックが誤差を含むか否かを指定するスキャン結果データをサーバに格納するステップと共に)スキャナに送信するステップとを実行してもよい。
【0018】
[0018]前述の検証方法の第1の変形形態は、支持体上の、人間可読グラフィックシンボルおよび機械可読誤り訂正データが、マーキング方法の第1の変形形態に従って生成され、ハッシュ関数がスキャナ処理ユニット上にプログラムされ、スキャナが、通信リンクを介して台帳と通信するように動作可能なスキャナ通信ユニットに接続されている、方法であって、
・マーキング方法の第1の変形形態に従って、スキャナ処理ユニット上にプログラムされたハッシュ関数を用いて、訂正されたスキャンされたグラフィックデータブロックのスキャンハッシュ値、スキャンされた誤り訂正データブロックのスキャンハッシュ値、または訂正されたスキャンされたグラフィックデータブロックとスキャンされた誤り訂正データブロックの連結から生じるデータブロックの任意の部分のスキャンハッシュ値を計算するステップと、
・スキャナ通信ユニットおよび通信リンクを介して台帳に格納された基準ハッシュ値を取得するステップ、および取得した基準ハッシュ値がスキャンハッシュ値と一致するか否かをチェックするステップであって、
(e)チェック動作の結果を示すステップ、または
(f)チェック動作の結果をスキャナメモリに格納するステップを含む、チェックするステップと
をさらに含む。
【0019】
[0019]したがって、支持体で最初に提供されたデータにおいて1ビットのデータが変更された場合でさえも、スキャンハッシュ値は基準ハッシュ値と大きく異なり、変更が検出される。
【0020】
[0020]前述の検証方法の第2の変形形態では、支持体上の、人間可読グラフィックシンボルおよび機械可読誤り訂正データが、マーキング方法の第2の変形形態に従って生成され、
・支持体上の人間可読グラフィックシンボルをスキャンする動作が、スキャンされたサブブロックのデジタル表現として、対応するスキャンされたグラフィックデータサブブロックを画像処理を介して取得するために、対応するグラフィックデータサブブロックのサブブロックグラフィックシンボルをスキャンするステップを含み、
・支持体上の機械可読誤り訂正データをスキャンする動作が、対応するスキャンされる誤り訂正データサブブロックを取得するために、対応する誤り訂正データサブブロックの誤り訂正データをスキャンするステップを含み、
・スキャンされたグラフィックデータブロックを訂正する動作が、対応する訂正されたスキャンされたグラフィックデータサブブロックを取得するために、対応するスキャンされた誤り訂正データサブブロックを使用して、スキャンされたグラフィックデータサブブロックのグラフィックデータを訂正するステップを含み、
・訂正されたスキャンされたデータブロックの視覚的表現を表示する動作(a)が、訂正されたスキャンされたグラフィックデータサブブロックの視覚的表現を表示するステップを含み、
・スキャンされたグラフィックデータブロックが誤差を含むか否かを示す動作(b)が、スキャンされたグラフィックデータサブブロックが誤差を含むか否かを示すステップを含み、
・スキャン結果データを格納する動作(c)が、スキャンされたグラフィックデータサブブロックが誤差を含むか否かを格納するステップを含む。
【0021】
[0021]検証方法の第2の変形形態の第1のサブバリアントは、支持体上の、人間可読グラフィックシンボルおよび機械可読誤り訂正データが、マーキング方法の第2の変形形態の第1のサブバリアントに従って生成され、ハッシュ関数および誤り訂正コードが、スキャナ処理ユニットにプログラムされ、スキャナが、スキャナ処理ユニットにより、支持体上のサブブロックハッシュ値の機械可読表現を読み取って復号するようにさらに動作可能であり、スキャナが、台帳との通信リンクを介して通信するように動作可能なスキャナ通信ユニットに接続されている、方法であって、
・スキャナ処理ユニットにプログラムされたハッシュ関数を用いて、サブブロックハッシュ値を計算するために実行された動作に従って、支持体の各部分に対して、対応する訂正されたスキャンされたグラフィックデータサブブロック、対応する誤り訂正データサブブロック、または上記訂正されたスキャンされたグラフィックデータサブブロックと上記スキャンされた誤り訂正データサブブロックとの連結から生じるデータサブブロックの任意の部分のスキャンサブブロックハッシュ値を計算するステップと、
・支持体の部分のスキャンサブブロックハッシュ値を計算できない場合に、対応する復号されたサブブロックを取得するために、支持体の上記部分のサブブロックハッシュ値の機械可読表現をスキャンして復号するステップ、およびこの復号されたサブブロックハッシュ値を、支持体のこの部分のスキャンサブブロックハッシュ値として使用するステップと、
・すべてのスキャンサブブロックハッシュ値の連結として、集約されたスキャンハッシュ値を計算するステップと、
・スキャナ通信ユニットおよび通信リンクを介して、台帳に格納された基準集約ハッシュ値を取得するステップ、および取得した基準集約ハッシュ値が集約されたスキャンハッシュ値と一致するか否かをチェックするステップと、
・スキャナを介してチェック動作の結果を示すステップと
をさらに含む。
【0022】
[0022]マーキング方法の第2の変形形態のこの第1のサブバリアントによって、(例えば、グラフィックシンボルの大幅な変更および/または上記部分上で提供される誤り訂正データに起因して)一部の部分が読み取り可能ではない場合でさえも、訂正された集約されたハッシュ値を取得することによって、支持体の読み取り可能なすべての部分のグラフィックシンボルの信頼性をチェックすることができる。実際、支持体の特定の部分に対してスキャンサブブロックハッシュ値を計算できない場合でも、支持体の上記部分上のサブブロックハッシュ値の機械可読表現を読み取って復号することでスキャンサブブロックハッシュ値を取得し、すべてのハッシュ値を連結して復号されたハッシュ値を使用して、基準集約ハッシュ値と比較する候補の集約ハッシュ値を決定することができる。
【0023】
[0023]検証方法の第2の変形形態の第2のサブバリアントは、支持体上の、人間可読グラフィックシンボルおよび機械可読誤り訂正データが、マーキング方法の第2の変形形態の第2のサブバリアントに従って生成され、基準集約ハッシュ値が台帳に格納され、スキャナが、台帳との通信リンクを介して通信するように動作可能なスキャナ通信ユニットに接続され、スキャナが、支持体の対応する部分上のサブブロック検証パスキーの機械可読表現を読み取って復号し、対応するサブブロックハッシュ値とサブブロック検証パスキーとのペアからの集約されたハッシュ値を計算するようにさらに動作可能である、方法であって、
・スキャナ処理ユニットにおいてプログラムされたハッシュ関数を用いて、サブブロックハッシュ値を計算するために実行される動作に従って、選択された訂正されたスキャンされたグラフィックデータサブブロック、対応するスキャンされた誤り訂正データサブブロック、または訂正されたスキャンされたグラフィックデータサブブロックとスキャンされた誤り訂正データサブブロックとの連結から生じるデータサブブロックの任意の部分のスキャンサブブロックハッシュ値を計算するステップと、
・支持体の対応する部分上で、選択された訂正されたスキャンされたグラフィックデータサブブロックに対応する、サブブロック検証パスキーの機械可読表現をスキャナによりスキャンするステップ、および対応するスキャンされたサブブロック検証パスキーを抽出するステップと、
・計算されたスキャンサブブロックハッシュ値とスキャンされたサブブロック検証パスキーを用いて、スキャン集約ハッシュ値を計算するステップと、
・スキャナ通信ユニットおよび通信リンクを介して、台帳に格納された基準集約ハッシュ値を取得するステップ、および取得した基準集約ハッシュ値がスキャン集約ハッシュ値と一致するか否かをチェックするステップと、
・スキャナを介してチェック動作の結果を示すステップと
を含む。
【0024】
[0024]検証方法の第2の変形形態のこの第2のサブバリアントによって、各ページで読み取られたデータから候補根ノードハッシュ値を計算し、基準集約ハッシュ値と比較することができるので、文書の各ページの信頼性を個別にチェックすることができる。
【0025】
[0025]検証方法の第2の変形形態の第3のサブバリアントは、支持体上の、人間可読グラフィックシンボルおよび機械可読誤り訂正データが、マーキング方法の第2の変形形態の第2のサブバリアントに従って生成され、ユーザが利用することができる基準集約ハッシュ値が、スキャナメモリに格納され、スキャナが、支持体の対応する部分上のサブブロック検証パスキーの機械可読表現を読み取って復号し、対応するサブブロックハッシュ値とサブブロック検証パスキーとのペアから、集約されたハッシュ値を計算するようにさらに動作可能である、方法であって、
・スキャナ処理ユニットにおいてプログラムされたハッシュ関数を用いて、サブブロックハッシュ値を計算するために実行される動作に従って、選択された訂正されたスキャンされたグラフィックデータサブブロック、対応するスキャンされた誤り訂正データサブブロック、または訂正されたスキャンされたグラフィックデータサブブロックとスキャンされた誤り訂正データサブブロックとの連結から生じるデータサブブロックの任意の部分のスキャンサブブロックハッシュ値を計算するステップと、
・支持体の対応する部分上で、選択された訂正されたスキャンされたグラフィックデータサブブロックに対応する、サブブロック検証パスキーの機械可読表現をスキャナによりスキャンするステップ、および対応するスキャンされたサブブロック検証パスキーを抽出するステップと、
・スキャンされた基準集約ハッシュ値を取得するために、基準集約ハッシュ値を支持体上でスキャンするステップと、
・計算されたスキャンサブブロックハッシュ値およびスキャンされたサブブロック検証パスキーを用いて、集約されたスキャンハッシュ値を計算するステップと、
・スキャナメモリに格納された基準集約ハッシュ値が集約されたスキャンハッシュ値と一致するか否かをチェックするステップと、
・スキャナを介してチェック動作の結果を示すステップと
を含む。
検証方法の第2の変形形態のこの第3のサブバリアントによって、各ページで読み取られたデータから候補根ノードハッシュ値を計算し、スキャナメモリに格納されている基準集約ハッシュ値と比較することができるので、文書の各ページの信頼性をオフラインで個別にチェックすることができる。
【0026】
[0026]本発明はまた、上記ディスプレイ上で検証可能なグラフィックシンボルを生成する前述の方法に従って生成された、コンピュータのディスプレイ上で機械可読誤り訂正データを伴って提供される人間可読グラフィックシンボルを検証する代替検証方法であって、コンピュータが、表示された人間可読グラフィックシンボル、および機械可読誤り訂正データをスキャンするように動作可能な、プロセッサ上にプログラムされたスキャンアプリケーションを有し、
・スキャンされた人間可読グラフィックシンボルのデジタル表現である、スキャンされたグラフィックデータブロックを取得するために、コンピュータプロセッサ上で実行されるスキャンアプリケーションを介して、表示された人間可読グラフィックシンボルをスキャンするステップと、
・表示された機械可読誤り訂正データをスキャンするステップ、およびスキャンされた誤り訂正データブロックにおける対応するスキャンされた誤り訂正データを取得するために、コンピュータプロセッサ上で実行されるスキャンアプリケーションの機械可読デコーダを介して、スキャンされた機械可読誤り訂正データを復号するステップと、
・対応する訂正されたスキャンされたグラフィックデータブロックを取得するために、スキャンされた誤り訂正データブロックのスキャンされた誤り訂正データを使用して、コンピュータプロセッサ上で実行されるスキャンアプリケーションの誤り訂正コードを用いて、スキャンされたグラフィックデータブロックを訂正するステップと、
(a)訂正されたスキャンされたグラフィックデータブロックの視覚的表現を、訂正された人間可読グラフィックシンボルとしてディスプレイ上に表示するステップ、
(b)スキャンされたグラフィックデータブロックが誤差を含むか否かを指定する表示を表示するステップ、または
(c)スキャンされたグラフィックデータブロックが誤差を含むか否かを指定するスキャン結果データをコンピュータのメモリに格納するステップと
を含む、代替検証方法に関する。
【0027】
[0027]この(「表示データ検証方法」としての)代替検証方法は、コンピュータ上で生成され、または(例えば、USBキーなどの外部メモリから、または例えば電子メールサーバなどの外部サーバとの通信リンクを介して)コンピュータにダウンロードされて、コンピュータ画面上に表示される(例えば、契約、レポートなどの)テキスト文書の不正または誤差を検出するための(例えば、テキスト処理アプリケーションなどの)オフィスソフトウェア機能をサポートするように特に適合されている。実際、コンピュータ上で実行される特定のアプリケーションは、検証方法でスキャナによって実行される動作を実行する。
【0028】
[0028]本発明はさらに、前述のマーキング方法、前述のマーキング方法の第1の変形形態および第2の変形形態のうちのいずれか1つ、または上記第2の変形形態の前述のマーキング方法の第1のサブバリアントおよび第2のサブバリアントのうちのいずれか1つに従って、人間可読グラフィックシンボルおよび関連付けられた誤り訂正データの機械可読表現でマーキングされた支持体に関する。上記支持体は、
・マーキング方法の第2の変形形態の第1のサブバリアントに従った、サブブロックハッシュ値の機械可読表現、または
・マーキング方法の第2の変形形態の第2のサブバリアントに従った、検証パスキーの関連付けられた機械可読表現
を用いてさらにマーキングされている。
【0029】
[0029]別の態様によれば、本発明は、画像化ユニット、スキャナ処理ユニット、およびスキャナディスプレイを備えたスキャナであって、スキャナ処理ユニットが、検証方法、または検証方法の第2の変形形態の第2のサブバリアントおよび第3のサブバリアントのステップを実装することによって、本発明に従った支持体上にマーキングされた検証可能なグラフィックデータを読み取るようにスキャナを動作可能にするようにプログラムされている、スキャナに関する。
【0030】
[0030]スキャナは、通信リンクを介して台帳と通信するように動作可能なスキャナ通信ユニットをさらに備え、スキャナ処理ユニットが、検証方法の第1の変形形態、または検証方法の第2の変形形態の第1のサブバリアントまたは第2のサブバリアントのいずれか1つによる方法のステップを実装することによって、スキャナが台帳からハッシュ値を取得するように動作可能にするようにさらにプログラムされてもよい。
【0031】
[0031]最後に、本発明はまた、プロセッサ、メモリ、およびディスプレイを備えたコンピュータ上で実行されるときに動作可能なコンピュータプログラム製品であって、マーキング方法に従って生成された、ディスプレイ上に機械可読誤り訂正データを伴って提供される人間可読グラフィックシンボルを検証するために、代替検証方法(すなわち、上記「表示されたデータ検証方法」)のステップを実装するためのコンピュータプログラム製品に関する。
【0032】
[0032]本発明は、同様の数字が異なる図すべてにわたって同様の要素を表し、本発明の顕著な態様および特徴を示す添付の図面を参照して、より完全に以下に説明される。
【図面の簡単な説明】
【0033】
【
図1】
図1は、本発明のマーキング方法による、検証可能なグラフィックシンボルでマーキングされた支持体の例を示す図である。
【
図2】
図2は、本発明のマーキング方法による、基材上に検証可能なグラフィックシンボルを生成してマーキングするプロセスを示すフローチャートである。
【
図3】
図3は、本発明のマーキング方法による、検証可能なグラフィックシンボルを生成し、ディスプレイ上に表示するプロセスのフローチャートである。
【
図4】
図4は、本発明のマーキング方法の第2の変形形態による、支持体上に検証可能なグラフィックシンボルを生成して提供するプロセスを示すフローチャートである。
【
図5】
図5は、本発明による、マーキング方法の第2の変形形態の第2のサブバリアントで使用されるハッシュツリーの例を示す図である。
【
図6】
図6は、本発明の検証方法による、支持体上で提供されるグラフィックシンボルおよび機械可読データを検証するプロセスを示すフローチャートである。
【
図7】
図7は、本発明による、検証方法の第2の変形形態の実施形態を示すフローチャートである。
【発明を実施するための形態】
【0034】
[0034]
図1は、グラフィックシンボル110(ここでは、アルファベットの文字、句読文字、および数字が紙のシート100に印刷されている)の人間可読表現でマーキングされた基材(ここでは1枚の紙)である支持体100の例を示し、グラフィックシンボル110は、テキスト領域120の下に印刷された機械可読2Dバーコード130(ここでは、PDF417バーコード、すなわち、「ポータブルデータファイル」417バーコード)を伴う支持体100のテキスト領域120において印刷された契約書のテキストの一部を表す。テキスト領域120におけるテキストは、グラフィックシンボルの対応するグラフィックデータブロックの、人間可読表現である。
【0035】
[0035]2Dバーコードは概して、以下の部分、
・ローカリゼーションパターン(例えば、データマトリックスについては「L」字型およびクロックライン、QRコードについては3つの大きな正方形)と、
・コード形式に関するいくつかの情報領域と、
・データを含むデータゾーンと、
・読み取り誤差を訂正するための機械可読誤り訂正データ(例えば、リードソロモン誤り訂正データ)と
を含む。
【0036】
[0036]誤り訂正コードは概して、対応表、すなわち、基準グラフィックシンボルの所与の有限なセットのグラフィックシンボル(例えば、アルファベットの読み取り可能な文字などのグリフ)と1対1対応するコード(例えば、mビットの所与の数)を使用する。
【0037】
[0037]PDF417バーコード130は、周知のスタック式線形バーコード(ISO標準15438)であり、単純な線スキャンをバーコード上で走査させることで読み取ることができる。
図1の実施形態では、PDF417バーコード130は、誤り訂正コード(ここでは、従来のリードソロモンコード)を、テキスト領域120に示すテキストの部分に対応するグラフィックシンボルの構成体のグラフィックデータブロックに適用することによって取得された、誤り訂正データブロックの機械可読表現である。PDF417バーコード130にはまた、(通常どおり)誤り訂正データの計算に使用される(Reed-Solomon)コードのバージョンに関連するデータ、フォントに関連するデータ、テキストのフォントサイズと行間隔、テキストの行および列の数、グラフィックデータブロックの境界を区切るマーカー140に対するテキスト領域の相対位置(ここでは、長方形のテキスト領域120の角を指定する単純なマーク)が含まれる。任意選択で、バーコード130は、署名データをさらに含んでもよい。この署名データは、例えば、秘密暗号化鍵を介したテキストの一部のデジタル表現の署名であってもよい(この署名は、対応する公開鍵を介して復号化することができる)。
【0038】
[0038]テキスト領域120に印刷されたテキストの一部、および印刷されたPDF417バーコード130は、それぞれ、
図2に示すマーキング方法によって取得された、人間可読グラフィックシンボルHrGS、および対応する誤り訂正データの機械可読表現MrECDの例である。実際、
図2は、検証可能なグラフィックデータブロックVGDBを計算する処理ユニット(CPU)を使用して、検証可能なグラフィックデータVGDを基材(ここでは1枚の紙)上に生成するステップと、上記検証可能なグラフィックデータブロックVGDBを受信したマーキング装置(例えば、インクジェットプリンタ)を介して基材にマーキングするステップとのプロセスのフローチャートを示す。グラフィックシンボルDGSのデジタル表現を含むグラフィックデータブロックGDB210は、CPUのメモリに格納され、各グラフィックシンボルは、M(M≧1)のグラフィックシンボルの所与の有限なセット{GS(1)、...、GS(M)}に属する。例えば、M=26文字の英語のアルファベットのAからZの有限なセットである。各グラフィックシンボルGS(i)、i∈{1、...、M}には、対応するデジタル表現DGS(i)があり、グラフィックデータブロックGDBのグラフィックシンボルDGSのデジタル表現には、テキストの一部(例えば、テキスト領域120のテキストの一部)においてグラフィックシンボルがある分と同じ数のDGS(i)が含まれる。生成プロセスは、格納されたグラフィックデータブロックGDBからグラフィックシンボルDGSのデジタル表現を220抽出し、プログラムされた誤り訂正コードECCを用いて、グラフィックシンボルDGSの抽出されたデジタル表現を処理して、対応する誤り訂正データECDを取得することによって開始する200。これらの誤り訂正データECDは、誤り訂正データブロックECDB230で表される。その後、取得された誤り訂正データブロックECDBは、240でフォーマットされて、機械可読誤り訂正データブロックMrECDBで表される、対応する機械可読誤り訂正データMrECDを提供する。グラフィックデータブロックGDBは、人間可読グラフィック表現データブロックHrGDBに含まれる、グラフィックシンボルHrGSの対応する人間可読表現を取得する215ようにもフォーマットされている。結果として取得される検証可能なグラフィックデータブロックVGDBが取得され250、これは、人間可読グラフィック表現データブロックHrGDB、および機械可読誤り訂正データブロックMrECDBの、2つのそれぞれのデータブロックで構成される。記号で表すと、VGDB=HrGDB+MrECDBである。その後、取得された検証可能なグラフィックデータブロックVGDBは、マーキング装置、ここではプリンタに送られ、取得された検証可能なグラフィックデータブロックVGDBのコンテンツは、対応する検証可能なグラフィックデータVGDとしてのフォーマットに従って、基材100上でマーキングされる(すなわち、印刷される)260。マーキングされたVGDは、対応する人間可読グラフィックシンボルHrGSおよび機械可読誤り訂正データMrECD(記号で表すと、VGD=HrGS+MrECD)を含み、これらはそれぞれ、フォーマットに従って(すなわち、データの別個のブロックとして)紙のシート100上に配置され、基材100上で検証可能なグラフィックデータを生成するプロセスの終了270を表す(前述のマーキング方法のステップ(ii)を参照)。
【0039】
[0039]基材にマークを付ける代わりに、例えば、
図3のフローチャートに示すように、タブレットコンピュータまたはコンピュータのディスプレイ上に、テキストの一部を表示することができる。前述の
図2と同様に、グラフィックシンボルDGSのデジタル表現を含むグラフィックデータブロックGDB310は、CPUのメモリに格納される(各グラフィックシンボルは、M≧1のグラフィックシンボルの所与の有限なセット{GS(1)、...、GS(M)}に属する)。グラフィックデータブロックGDBには、表示されたテキストの一部にグラフィックシンボルGS(i)があるのと同じ数のデジタル表現DGS(i)が含まれている。生成プロセスは、格納されたグラフィックデータブロックGDBからグラフィックシンボルDGSのデジタル表現を抽出し320、プログラムされた誤り訂正コードECCを用いて抽出されたDGSを処理して、対応する誤り訂正データECDを取得することによって開始される300。これらの誤り訂正データECDは、誤り訂正データブロックECDB330に含まれ、その後、誤り訂正データECDは、フォーマットされ340、機械可読誤り訂正データブロックMrECDBに含まれる、対応する機械可読誤り訂正データMrECDを提供する。グラフィックデータブロックGDBはまた、フォーマットされて、人間可読グラフィック表現データブロックHrGDBに含まれる、グラフィックシンボルHrGSの対応する人間可読表現を取得する315。結果として取得される検証可能なグラフィックデータブロックVGDBは、取得され350、2つのそれぞれのデータブロックHrGDBおよびMrECDB(記号で表すと、VGDB=HrGDB+MrECDB)で構成される。その後、検証可能なグラフィックデータブロックVGDBは、グラフィックシンボルHrGSの別個の人間可読表現、および誤り訂正データMrECDの機械可読表現としてフォーマットに従ってディスプレイ上に表示され360、検証可能なグラフィックシンボルを支持体上に生成するプロセスの終了370を表す(前述のマーキング方法のステップ(i)を参照)。
【0040】
[0040]本発明によれば、マーキング方法の、いくつかの変形形態およびサブバリアントは、ユーザによって支持体上で直接読み取られる人間可読グラフィックシンボルと、(専用装置によって読み取られる)誤り訂正データの機械可読表現から抽出することができる人間可読バージョンとの間の適合性における信頼性のレベルを高める。これらの変形形態は、前述の、第1の変形形態および第2の変形形態に対応する。
【0041】
[0041]マーキング方法の第1の変形形態は、例えばハッシュ関数のような一方向性関数の準非可逆性を使用する。この第1の変形形態では、前述のマーキング方法のステップを実行した後、処理ユニットにプログラムされたハッシュ関数Hをさらに使用して、グラフィックデータブロックGDBのハッシュ値、誤り訂正データブロックECDBのハッシュ値、またはグラフィックデータブロックGDBと誤り訂正データブロックECDBとの連結
【数1】
(以下、〇の中に+が記載されている連結記号を便宜上[+]と記す)
の任意の部分のハッシュ値を計算することによって、グラフィックシンボルのデジタル表現、または誤り訂正データ(またはこれら誤り訂正データの一部)のハッシュを取得する。ハッシュ値(例えば、ハッシュ関数SHA-256を用いて)は、単なるグラフィックデータブロック:H(GDB)で計算することができる。好ましくは、ハッシュ値は完全な連結ブロック、
[数2]
H(GDB[+]ECDB)
で計算される。グラフィックデータブロックGDBと誤り訂正データブロックECDBとの連結の一部のみに基づいてハッシュ値が計算される場合、その部分のビット長は、良好なセキュリティレベルを提供するのに十分でなければならないことは明らかである。例えば、その部分のビット長は、少なくとも100ビットに等しく、好ましくは、選択したハッシュ関数によって送信される結果のビット長を持ち、例えば、SHA-256ハッシュを用いると、部分のビット長は少なくとも256ビットになる(その後、実際には、ハッシュは不可逆である)。したがって、ハッシュ関数の引数が1ビットでも変更されると(すなわち、支持体上のグラフィックシンボルまたは機械可読データが変更されると)、ハッシュの異なる値が生成される。
【0042】
[0042]マーキング方法の上記第1の変形形態では、ハッシュ値は、基準ハッシュ値Hrefとして、台帳、好ましくは(格納された値は実質的に変更不可能である)ブロックチェーンにさらに格納される。任意選択で、基準ハッシュ値Hrefは、対応する署名された基準ハッシュ値S(Href)および署名された基準ハッシュ値S(Href)を取得するために、暗号化鍵、好ましくは(処理ユニットのメモリに格納される)秘密鍵Prkを用いてさらに署名されてもよく、署名された基準ハッシュ値S(Href)は、(データベースやブロックチェーンなどの台帳に)格納され、または支持体上に提供される。後者のオプションは、秘密鍵Prkに対応する公開鍵Pukが署名をチェックするために使用されている場合、オフライン検証プロセスと互換性がある(すなわち、署名された基準ハッシュ値が正しい秘密鍵を用いて署名されていることを検証し、またはRSA「Rivest-Shamir-Adleman」アルゴリズムを用いたものように公開復号鍵を用いてS(Href)を復号化することによってHrefを取得するため)。
【0043】
[0043]
図4に示す実施形態によって示すマーキング方法の第2の変形形態は、支持体の複数の部分にグラフィックシンボルを提供するのに非常に適しており、例えば、
・複数のページ(例えば、レポートまたは契約のNページなど)を含むテキスト文書を印刷する(マーキング方法のオプション(ii)と同様)こと、または
・(マーキング方法のオプション(i)と同様に)Nページのテキスト文書のデジタルバージョンを所定の形式(Microsoft WordやPDF形式など)で画面に1ページずつ表示することであって、基材上にマーキングされたN(N≧2)ページの各ページ、または表示されたNページの各ページは、人間可読所定のグラフィックシンボルHrGS(j)(j∈{1、...、N})、および対応する誤り訂正データの機械可読表現MrECD(j)を示し、これらの両方が、対応する所定の検証可能なグラフィックデータサブブロックVGDSB(j)の検証可能なグラフィックデータVGD(j)の一部から取得された表現である、表示することである。これらの場合、マーキング方法の上記第2の変形形態によれば、方法は開始し400、(完全な)グラフィックデータブロックGDBは、処理ユニットによってN個のサブブロックGDSB(1)、...、GDSB(N)に分割され410(すなわち、支持体の各部分に対して1つのサブブロック)、ここで、各グラフィックデータサブブロックGDSB(j)が、対応する人間可読グラフィックデータサブブロックHrGDSB(j)において、グラフィックシンボルGS(j)の、対応する人間可読表現HrGS(j)を提供する415ようにフォーマットされる。各グラフィックデータサブブロックGDSB(j)(j=1、...、N)に対して、処理ユニットは、プログラムされた誤り訂正コードECCを用いてグラフィックデータサブブロックGDSB(j)を訂正する420ことにより、対応するサブブロック誤り訂正データを生成し、その後、訂正されたデータを用いて、誤り訂正データサブブロックECDSB(j)を形成する430。処理ユニットは、対応する機械可読誤り訂正データサブブロックMrECDSB(j)として、誤り訂正データサブブロックECDSB(j)の機械可読表現を生成する440。その後、処理ユニットは、各サブブロックHrGDSB(j)、およびMrECDSB(j)をフォーマットし、その結果、支持体上の後者の表現は、前者のグラフィックシンボルGS(j)の人間可読表現HrGS(j)とは異なり、記号で表すと、VGDSB(j)=HrGDSB(j)+MrECDSB(j)と記述された、対応する検証可能なグラフィックデータサブブロックを提供する450。マーキング方法の選択されたオプション(i)または(ii)に応じて、サブブロックVGDSB(j)、j=1、...、Nのデータは、検証可能なグラフィックデータVGD(j)(記号で表すと、VGD(j)=HrGS(j)+MrECD(j))としての形式に従って、ディスプレイ上に表示され460、または基材上にマーキングされ470(例えば、
図1上のように紙のシートに印刷され)、VGD(j)の各マーキングM(j)が、基材の部分jに提供され(例えば、Nページの文書の第jのページに印刷され)、支持体上で検証可能なグラフィックデータを生成するプロセスの終了480~490を表す。
【0044】
[0044]マーキング方法の前述の第2の変形形態のいくつかのサブバリアントは、支持体上で提供される誤り訂正データの人間可読グラフィックシンボルまたは機械可読表現の真正性における信頼性のレベルを高める。これらのサブバリアントは、実際には第1のサブバリアントおよび第2のサブバリアントである。これらのサブバリアントは、一方向性関数の準非可逆性も使用する(例えば、SHA-256ハッシュ関数のようなハッシュ関数)。これらの2つのサブバリアントでは、マーキング方法の前述の第2の変形形態のステップを実行した後、処理ユニット上でプログラムされたハッシュ関数Hをさらに使用して、グラフィックシンボルまたは誤り訂正データ(またはこれらのデータの一部)の、デジタル表現のハッシュを取得する。マーキング方法の上記第2の変形形態では、グラフィックデータブロックGDB、および対応する誤り訂正データブロックECDBが(支持体のN個の部分に対応する)N個のサブブロックに分割されるという事実に起因して、各サブブロックj(j=1、...、N)に対して、前述のように、対応するサブブロックハッシュ値H(j)を定義するいくつかの可能性がある。これらの可能性の1つを選択する必要があり、これらのサブバリアントのいずれかにおいて(および検証方法の変形形態においても)、N個のサブブロックハッシュ値を計算するのに役立つ。
【0045】
[0045]マーキング方法の第2の変形形態の第1のサブバリアントでは、プロセッサユニットは、各グラフィックデータサブブロックGDSB(j)(j=1、...、N)に対して、サブブロックハッシュ値H(j)を計算する。例えば、好ましい実施形態では、グラフィックデータサブブロックGDSB(j)、および誤り訂正データサブブロックECDSB(j)の完全な連結が、サブブロックハッシュ値、すなわち、
[数3]
H(j)=H(GDSB(j)[+]ECDSB(j))
に対して選択される。概して、サブブロックハッシュ値H(j)、j=1、...、Nは、次のいずれかの可能性に従って定義される。可能性としては、H(j)=H(GDSB(j))、H(j)=H(ECDSB(j))、またはグラフィックデータサブブロックGDSB(j)と誤り訂正データサブブロックECDSB(j)との連結
[数4]
(GDSB(j)[+]ECDSB(j))
の任意の部分のハッシュを取ることによって、すなわち、(前述の部分のビット長に関する制約を有する)
[数5]
H(j)=H((GDSB(j)[+]ECDSB(j))の一部)
を用いることの可能性がある。
【0046】
[0046]その後、各サブブロックハッシュ値H(j)の機械可読表現MrH(j)が処理ユニットによって計算され、対応する検証可能なグラフィックデータサブブロックVGDSB(j)(j=1、...、N)と関連付けられる。その結果、第jのサブブロックのグラフィックシンボルHrGS(j)の人間可読表現、および第jのサブブロックの誤り訂正データMrECD(j)の機械可読表現に加えて(検証可能なグラフィックデータサブブロックVGDSB(j)から)、文書の第jのページは、第jのサブブロックハッシュ値の機械可読表現MrH(j)をさらに含み得る。このサブバリアントにより、サブブロックグラフィックデータ、および対応するサブブロックの誤り訂正データを一方向ハッシュ関数を介してさらに保護することができ、これは、上記第jのサブブロックデータを変更してもMrH(j)のデータコンテンツを取得することができないためである。さらに、このさらなる利点は、サブブロックハッシュ値の単なる機械可読表現の形式で支持体上に提供される、限定された追加データのみを用いて取得される。その後、マーキング方法の第2の変形形態の上記第1のサブバリアントでは、N個のサブブロックハッシュ値H(j)(j=1、...、N)が、基準集約ハッシュ値Hrefを計算するために使用される。前述のように、N個のサブブロックハッシュ値H(j)、j=1、...、Nは、単なるグラフィックデータサブブロック、すなわちH(j)≡H(GDSB(j))で計算することができる。好ましくは、サブブロックハッシュ値は、サブブロックの完全な連結、
[数6]
H(j)≡H(GDSB(j)[+]ECDSB(j))
で計算される。したがって、サブブロックハッシュ関数H(j)のいずれか1つの引数における変更(すなわち、支持体上のサブブロックグラフィックデータまたはサブブロック機械可読データの変更)は、1ビットの変更であっても、集約されたハッシュ値Hrefの異なる値を生成する。この第1のサブバリアントでは、処理ユニットは、N個のサブブロックハッシュ値H(j)、j=1、...、Nをすべて連結して、基準集約ハッシュ値
[数7]
Href=H(1)[+]H(2)[+]...[+]H(N-1)[+]H(N)(連結の演算を示す記号[+])
を取得する。この基準ハッシュ値Hrefは、さらに台帳(すなわち、サーバまたはデータベース、好ましくは、ブロックチェーン)に格納される。
【0047】
[0047]任意選択で、処理ユニットのメモリは、デジタルデータを暗号化するための鍵、好ましくは、公開鍵Pukと対になった(すなわち、非対称鍵暗号化のための)秘密鍵Prkをさらに格納してもよい。処理ユニットは、N個すべてのサブブロックハッシュ値を連結して、基準集約ハッシュ値
[数8]
Href=H(1)[+]H(2)[+]...[+]H(N-1)[+]H(N)
を取得した後、暗号化鍵(好ましくは、秘密鍵Prk)を用いて、基準集約ハッシュ値Hrefにさらに署名(すなわち、暗号化)して、基準集約ハッシュ値署名S(Href)を取得してもよい。その後、この署名は、(例えば、処理ユニットのメモリ、データベース、またはブロックチェーンにおいて)格納され、または支持体上でさらに提供されてもよい。この後者のオプションは、対応する鍵、好ましくは秘密鍵Prkに関連付けられた公開鍵Pukが、署名が本物である(すなわち、正しい秘密鍵Prkを用いて取得されている)ことをチェックするために使用される場合に、オフライン検証プロセスを可能にする。
【0048】
[0048]マーキング方法の第2の変形形態の第2のサブバリアントでは、N個のサブブロックハッシュ値H(j)、j=1、...、Nを(前述の第1のサブバリアントと同じ方法で)計算した後、基準集約ハッシュ値H
refは、ツリー、好ましくは二分木の根ノード値Rとして処理ユニットによって計算される。このツリーは、
図5に示すように(N=8の場合の単なる二分木の例を用いた)、葉ノードとしてN個のサブブロックハッシュ値H(1)、H(2)、...、H(N-1)、H(N)を有する。ここでも、ハッシュ値は、概して一方向性関数(SHA-256ファミリーのハッシュ関数H()など)を介して取得される値を表している。したがって、ツリーは、概して、複数の計算されたサブブロックハッシュ値H(j)、j=1、...、Nに基づいており、ツリーにおける所与のノードの順序に従って配置されたノードを含む。ツリーは、葉ノードa(1,j)、j=1、...、Nからのノードレベルを含み、それぞれ、複数のサブブロックハッシュ値H(1)、H(2)、...、H(N-1)、H(N)、およびツリーの根ノードRまでの非葉ノードに対応し、ツリーのすべての非葉ノード(すなわち、葉ノードと根ノードの間に含まれるノード)が、ツリー連結順序に従ったその子ノードのそれぞれのハッシュ値との連結のハッシュ値に対応し、根ノードRが、前述のツリー連結順序に従って、基準集約ハッシュ値H
ref、すなわちツリーにおける最後から第2のノードレベルのノードのハッシュ値の連結のハッシュ値に対応する。
図5の例では、N=8であるので、8つの葉ノード(ツリーの第1のレベル)a(1,j)=H(j)、j=1、...、8があり、第2のレベルの4つのノード値に対して、
[数9]
a(2,1)=H(a(1,1)[+]a(1,2))、
a(2,2)=H(a(1,3)[+]a(1,4))、
a(2,3)=H(a(1,5)[+]a(1,6))、
a(2,4)=H(a(1,7)[+]a(1,8))
がある。第3の(最後から第2の)レベルの2つのノード値に対して、
[数10]
a(3,1)=H(a(2,1)[+]a(2,2))、および
a(3,2)=H(a(2,3)[+]a(2,4))
がある。したがって、根ノード値Rは、
[数11]
R=H(a(3,1)[+]a(3,2))≡H
ref
である。
【0049】
[0049]非葉ノードごとに異なるツリー連結順序を選択することができること、例えば、
[数12]
a(2,4)=H(a(1,7)[+]a(1,8))
を有する代わりに、
[数13]
a(2,4)=H(a(1,8)[+]a(1,7))
を定義し、これにより、異なるノード値が得られることに注意されたい。
その後、処理ユニットは、サブブロックハッシュ値H(j)ごとに(すなわち、ツリーa(1,j)の葉ノードごとに)、j=1、...、N、関連付けられたサブブロック検証パスキーVPK(j)を計算する。葉ノードa(1,j)(したがってサブブロックハッシュ値H(j))に関連するサブブロック検証パスキーVPK(j)は、葉ノードa(1,j)から始まる根ノード値Rを取得するために必要なツリーの、選択された非葉ノードの一連のハッシュ値である。選択された非葉ノードは、実際には、葉ノードa(1,j)と根ノードRとの間のツリーにおける特定のパスに対応する。実際には、ツリーの所定の葉ノードに関連付けられたサブブロック検証パスキーは、葉ノードレベルから最後から第2のノードレベルまでの、所与の葉ノードのツリーにおいて同じ親ノードを有する1つおきの葉ノードのそれぞれのノード値の一連のものであり、続いてツリーの各次のレベルにおける、前の同じ親ノードが前のレベルで検討したツリーにおける同じ親ノードを有する1つおきの葉ノードのそれぞれのノード値の一連のものである。
図5に示す8つの葉ノードa(1,1)、...、a(1,8)を有する単なる二分木の例では、8つのサブブロック検証パスキーVPK(1)、...、VPK(8)は、(前述の定義に従って)次のように決定される。
【0050】
[0050]1)所定の葉ノードa(1,1)=H(1)に対して、関連付けられたサブブロック検証パスキーは、VPK(1)={a(1,2),a(2,2),a(3,2)}であり、ここから、ルートデジタル署名値Rは、次のステップで取得することができる(ツリーにおけるノードの順序、およびツリーの連結の順序に従って実行される)。
i)VPK(1)における所定の葉ノードa(1,1)=H(1)および葉ノードa(1,2)=H(2)(a(1,2)は「同じ親ノードを有する他の葉ノード」、すなわちノードa(2,1)、「所定の葉ノード」、すなわちノードa(1,1))から、親ノード値a(2,1)は、
[数14]
a(2,1)=H(a(1,1)[+]a(1,2))(すなわち、a(2,1)=H(H(1)[+]H(2)))
によって取得される。
ii)取得したa(2,1)から、およびVPK(1)における次のノード値、すなわち、次の非葉ノードレベルのa(2,2)、ツリーにおける同じ親ノードを有する非葉ノード、すなわちノード値a(3,1)であり、前の同じ親ノード、すなわちノードa(2,1)が前のレベルで検討した、次のノード値から、親ノード値a(3,1)は、
[数15]
a(3,1)=H(a(2,1)[+]a(2,2))
によって取得される。
iii)取得したa(3,1)、およびVPK(1)における次のノード値、すなわちツリーにおける同じ親ノードを有する非葉ノードである、最後から第2のノードレベルのa(3,2)、すなわち、前の同じ親ノード、すなわちノードa(3,1)が前のレベルで検討した、次のノード値から、根ノード値Rが、
[数16]
R=H(a(3,1)[+]a(3,2))
によって取得される。
【0051】
[0051]備考:この例では、ツリーには根ノードレベルより3レベル下にあるので、サブブロック検証パスキーには3つのノード値が含まれていることから、i)、ii)、およびiii)の3つのステップがある。
【0052】
[0052]したがって、a(1,1)に関連付けられたVPK(1)={a(1,2)、a(2,2)、a(3,2)}に基づいて、ツリーの根ノードの値は、
[数17]
R=H(H(H(a(1,1)[+]a(1,2))[+]a(2,2))[+]a(3,2))
として取得され得る。
【0053】
[0053]2)所定の葉ノードa(1,2)=H(2)に対して、関連付けられたサブブロック検証パスキーは、VPK(2)={a(1,1),a(2,2),a(3,2)}であり、ここから、ルート値Rは、次のステップで取得することができる(ツリーにおけるノードの順序、およびツリーの連結の順序に従って実行される)。
i)VPK(2)において所与のa(1,2)=H(2)およびa(1,1)=H(1)(a(1,1)が、同じ親ノードを有する他の葉ノード、すなわち、ノードa(2,1)であり、所与の葉ノードが、ノードa(1,2)である)から、親ノード値a(2,1)は、
[数18]
a(2,1)=H(a(1,1)[+]a(1,2))
によって取得される。
ii)取得したa(2,1)、およびVPK(2)における次のノード値、すなわち、ツリーにおいて同じ親ノードを有する非葉ノード、すなわち、ノードa(3,1)であり、前の同じ親ノードが前のレベル、すなわちノードa(2,1)で検討した、次の非葉ノードレベルのa(2,2)から、親ノード値a(3,1)は、
[数19]
a(3,1)=H(a(2,1)[+]a(2,2))
によって取得される。
iii)取得したa(3,1)、およびVPK(2)における次のノード値、すなわち、ツリーにおける同じ親ノードを有する非葉ノード、すなわち根ノードであり、前の同じ親ノードが前のレベル、すなわちノードa(3,1)で検討した、最後から第2のノードレベルのa(3,2)から、根ノード値Rは、
[数20]
R=H(a(3,1)[+]a(3,2))
によって取得される。
【0054】
[0054]したがって、a(1,2)に関連付けられたVPK(2)={a(1,1),a(2,2),a(3,2)}に基づいて、ツリーの根ノードの値は、
[数21]
R=H(H(H(a(1,1)[+]a(1,2))[+]a(2,2))[+]a(3,2))
として取得されることができる。
【0055】
[0055]3)所定の葉ノードa(1,3)=H(3)に対して、サブブロック検証パスキーは、VPK(3)={a(1,4),a(2,1),a(3,2)}であり、ここから、ルート値Rは、次のステップで取得することができる(ツリーにおけるノードの順序、およびツリーの連結の順序に従って実行される)。
i)VPK(3)におけるa(1,3)=H(3)およびa(1,4)=H(4)(a(1,4)は、同じ親ノードを有する他の葉ノード、すなわち、ノードa(2,2)であり、所与の葉ノードが、ノードa(1,3)である)から、親ノード値a(2,2)は、
[数22]
a(2,2)=H(a(1,3)[+]a(1,4))
によって取得される。
ii)取得したa(2,2)、およびVPK(3)における次のノード値、すなわちツリーにおいて同じ親ノード、すなわちノードa(3,1)を有する非葉ノードであり、前のレベル、すなわちノードa(2,2)で前の同じ親ノードが検討した、次の非葉ノードレベルのa(2,1)から、親ノード値a(3,1)は、
[数23]
a(3,1)=H(a(2,1)[+]a(2,2))
によって取得される。
iii)取得したa(3,1)、およびVPK(3)における次のノード値、すなわちツリーにおける同じ親ノードを有する非葉ノード、すなわち根ノードであり、前の同じ親ノードが、前のレベル、すなわちノードa(3,1)で検討した、最後から第2のノードレベルのa(3,2)から、根ノード値Rは、
[数24]
R=H(a(3,1)[+]a(3,2))
によって取得される。
【0056】
[0056]したがって、ツリーの根ノードの値は、
[数25]
R=H(H(a(2,1)[+]H(a(1,3)[+]a(1,4)))[+]a(3,2))
として取得することができる。
【0057】
[0057]4)所定の葉ノードa(1,4)=H(4)に対して、サブブロック検証パスキーは、VPK(4)={a(1,3),a(2,1),a(3,2)}であり、ここから、ルート値Rは、次のステップで取得することができる(ツリーにおけるノードの順序、およびツリーの連結の順序に従って実行される)。
i)VPK(4)におけるa(1,4)=H(4)およびa(1,3)=H(3)から、親ノード値a(2,2)は、
[数26]
a(2,2)=H(a(1,3)[+]a(1,4))
によって取得される。
ii)取得したa(2,2)、およびVPK(4)における次のノード値、すなわち次の非葉ノードレベルのa(2,1)から、親ノード値a(3,1)は、
[数27]
a(3,1)=H(a(2,1)[+]a(2,2))
によって取得される。
iii)取得したa(3,1)、およびVPK(4)における次のノード値、すなわち最後から第2のノードレベルのa(3,2)から、根ノード値Rは、
[数28]
R=H(a(3,1)[+]a(3,2))
によって取得される。
【0058】
[0058]したがって、ツリーの根ノードの値は、
[数29]
R=H(H(a(2,1)[+]H(a(1,3)[+]a(1,4)))[+]a(3,2))
として取得することができる。
【0059】
[0059]5)所定のノードa(1,5)=H(5)の場合、サブブロック検証パスキーは、VPK(5)={a(1,6),a(2,4),a(3,1)}であり、ここから、ルート値Rは、次のステップで取得することができる(ツリーにおけるノードの順序、およびツリーの連結の順序に従って実行される)。
i)VPK(5)におけるa(1,5)=H(5)およびa(1,6)=H(6)から、親ノード値a(2,3)は、
[数30]
a(2,3)=H(a(1,5)[+]a(1,6))
によって取得される。
ii)取得したa(2,3)、およびVPK(5)における次のノード値、すなわち次の非葉ノードレベルのa(2,4)から、親ノード値a(3,2)は、
[数31]
a(3,2)=H(a(2,3)[+]a(2,4))
によって取得される。
iii)取得したa(3,2)、およびVPK(5)における次のノード値、すなわち最後から第2のノードレベルのa(3,1)から、根ノード値Rは、
[数32]
R=H(a(3,1)[+]a(3,2))
である。
【0060】
[0060]したがって、ツリーの根ノードの値は、
[数33]
R=H(a(3,1)[+]H(H(a(1,5)[+]a(1,6))[+]a(2,4)))
のように取得することができる。
【0061】
[0061]6)所定のノードa(1,6)=H(6)に対して、サブブロック検証パスキーは、VPK(6)={a(1,5),a(2,4),a(3,1)}であり、ここから、ルート値Rは、次のステップで取得することができる(ツリーにおけるノードの順序、およびツリーの連結の順序に従って実行される)。
i)VPK(6)におけるa(1,6)=H(6)およびa(1,5)=H(5)から、親ノード値a(2,3)は、
[数34]
a(2,3)=H(a(1,5)[+]a(1,6))
によって取得される。
ii)取得したa(2,3)、およびVPK(6)における次のノード値、すなわち次の非葉ノードレベルのa(2,4)から、親ノード値a(3,2)は、
[数35]
a(3,2)=H(a(2,3)[+]a(2,4))
によって取得される。
iii)取得したa(3,2)、およびVPK(6)における次のノード値、すなわち最後から第2のノードレベルのa(3,1)から、根ノード値Rは、
[数36]
R=H(a(3,1)[+]a(3,2))
によって取得される。
【0062】
[0062]したがって、ツリーの根ノードの値は、
[数37]
R=H(a(3,1)[+]H(H(a(1,5)[+]a(1,6))[+]a(2,4)))
のように取得することができる。
【0063】
[0063]7)所定のノードa(1,7)=H(7)に対して、サブブロック検証パスキーは、VPK(7)={a(1,8),a(2,3),a(3,1)}であり、ここから、ルート値Rは、次のステップで取得することができる(ツリーにおけるノードの順序、およびツリーの連結の順序に従って実行される)。
i)VPK(7)におけるa(1,7)=H(7)およびa(1,8)=H(8)から、親ノード値a(2,4)は、
[数38]
a(2,4)=H(a(1,7)[+]a(1,8))
によって取得される。
ii)取得したa(2,4)、およびVPK(7)における次のノード値、すなわち次の非葉ノードレベルのa(2,3)から、親ノード値a(3,2)は、
[数39]
a(3,2)=H(a(2,3)[+]a(2,4))
によって取得される。
iii)取得されたa(3,2)、およびVPK(7)における次のノード値、すなわち最後から第2のノードレベルのa(3,1)から、根ノード値Rは、
[数40]
R=H(a(3,1)[+]a(3,2))
によって取得される。
【0064】
[0064]したがって、ツリーの根ノードの値は、
[数41]
R=H(a(3,1)[+]H(a(2,3)[+]H(a(1,7)[+]a(1,8))))
のように取得することができる。
【0065】
[0065]8)所定のノードa(1,8)=H(8)に対して、サブブロック検証パスキーは、VPK(8)={a(1,7),a(2,3),a(3,1)}であり、ここから、ルート値Rは、次のステップで取得することができる(ツリーにおけるノードの順序、およびツリーの連結の順序に従って実行される)。
i)VPK(8)におけるa(1,8)=H(8)およびa(1,7)=H(7)から、親ノード値a(2,4)は、
[数42]
a(2,4)=H(a(1,7)[+]a(1,8))
によって取得される。
ii)取得したa(2,4)、およびVPK(8)における次のノード値、すなわち次の非葉ノードレベルのa(2,3)から、親ノード値a(3,2)は、
[数43]
a(3,2)=H(a(2,3)[+]a(2,4))
によって取得される。
iii)取得したa(3,2)、およびVPK(8)における次のノード値、すなわち最後から第2のノードレベルのa(3,1)から、根ノード値Rは、
[数44]
R=H(a(3,1)[+]a(3,2))
によって取得される。
【0066】
[0066]したがって、ツリーの根ノードの値は、
[数45]
R=H(a(3,1)[+]H(a(2,3)[+]H(a(1,7)[+]a(1,8))))
のように取得することができる。
【0067】
[0067]概して、所与の葉ノード値、および上記所与の葉ノードに関連付けられた検証パスキーにおいて指定されたノード値から開始することによって(候補)根ノード値を取得するために、以下のステップ、
・サブブロック検証パスキーにおけるノード値の一連のものから、所与の葉ノードと同じ親ノードを有するツリーの1つおきの葉ノードのノード値を抽出するステップであって、所与のノード値の連結のハッシュ値、および、ツリーにおけるノードの順序およびツリー連結の順序にそれぞれ従って、上記1つおきの葉ノードの抽出されたノード値を計算するので、所与の葉ノードの同じ親ノードのハッシュ値を取得する、抽出するステップと、
・ツリーの次の各レベルで、最後から第2のノードレベルまで連続して、
・・サブブロック検証パスキーにおけるノード値の一連のものから、前のステップで検討した前の同じ親ノードのノード値と同じ親ノードを有するツリーの1つおきの非葉ノードのノード値を抽出するステップと、
・・ツリーにおけるノードの順序、およびツリー連結の順序に従って、上記それぞれの1つおきの非葉ノードのノード値の連結のハッシュ値、および上記前の同じ親ノードの取得されたハッシュ値を計算するステップであって、計算するので、上記前の同じ親ノードの上記同じ親ノードのノード値を取得する、計算するステップと、
・ツリーにおけるノードの順序、およびツリー連結の順序に従って、ツリーの最後から第2のノードレベルに対応する非葉ノードの取得されたノード値の連結のハッシュ値を計算するステップであって、計算するので、ツリーの根ノード値を取得する、計算するステップと、
が実行される。
【0068】
[0068]マーキング方法の第2の変形形態の第2のサブバリアントの次のステップでは、処理ユニットは、各サブブロック検証パスキーVPK(j)(j=1、...、N)の機械可読表現MrVPK(j)を生成し、それぞれ対応する人間可読グラフィックデータサブブロックHrGDSB(j)および機械可読誤り訂正データサブブロックMrECDSB(j)に関連付けて、検証可能なグラフィックデータサブブロックVGDSB(j)において、機械可読表現MrVPK(j)を含む。その後、検証可能なグラフィックデータサブブロックVGDSB(j)はさらにフォーマットされて、関連付けられたグラフィックデータサブブロックGDSB(j)の人間可読表現、および関連付けられた誤り訂正データサブブロックECDSB(j)の機械可読表現とは別の、上記サブブロック検証パスキーの機械可読表現が提供され、(対応するサブブロックの検証可能なグラフィックデータのコンポーネントとして)支持体上で提供される。したがって、検証可能なグラフィックデータサブブロックは、記号で表すと、VGDSB(j)=HrGDSB(j)+MrECDSB(j)+MrVPK(j)、j=1、...、Nと記述される。最後に、次のいずれかのステップがさらに実行される。
(iii)基準集約ハッシュ値Href=Rは、台帳(好ましくは、ブロックチェーン)に格納される。
または、
(iv)基準集約ハッシュ値Href=Rがユーザに利用可能になる。
【0069】
[0069]任意選択で、Hrefは、処理ユニットにより、署名秘密鍵Prk(処理ユニットのメモリに格納される)で署名されて、基準集約ハッシュ値署名S(Href)、および基準集約ハッシュ値署名S(Href)は(例えば、台帳において)格納され、または支持体でさらに提供され、またはユーザが利用することができるようになる。その後、対応する公開鍵Pukを使用することにより、S(Href)が本物であるか否かをチェックすることができる。
【0070】
[0070]その結果、グラフィックデータブロックGDBの各グラフィックデータサブブロックGDSB(j)(j=1、...、N)に対して、取得することによってユーザによって認証可能である、対応するサブブロックの機械可読誤り訂正データを伴う対応するサブブロックの人間可読グラフィックシンボルが、支持体上に提供され、この提供は、サブブロックハッシュ値H(j)を介してルート値R、および支持体上で読み取られたデータから取得することができる、ルート値Rに対応する検証パスキーVPK(j)を取得し、これらのルート値Rおよび検証パスキーVPK(j)はそれぞれ、サブブロックの人間可読グラフィックシンボルHrGS(j)、およびサブブロック検証パスキーMrVPK(j)の機械可読表現から取得されることによって、実現される。
【0071】
[0071]前述の例から明らかなように、根ノード値Rは、対応するサブブロック検証パスキーにおいて指定されたノード値のみを用いて、この所与の葉ノード値の連結のハッシュ値を計算することにより、任意の所与の葉ノード値から最終的に取得することができる。したがって、根ノード値Rを取得するために必要な(支持体で読み取られる)検証パスキーに基づく検証情報のデータ量は、すべての葉ノード値のみに基づいて、基準根ノード値Hrefを計算するため(すなわち、ツリーの中間レベルのすべての非葉ノード値を計算することによって)に必要なデータ量よりも明らかにはるかに少なくなる。これは、(例えば、2次元バーコードなどの)データの機械可読表現上で利用可能な限定されたサイズの制約を検討すると、本発明の利点である。
【0072】
[0072]したがって、本発明によれば、(ブロックチェーンに格納されている場合は変更不可能にすることができる)ツリーの根ノード値Rを伴うツリー構造、およびツリーのノード値を計算するための堅牢な(前述の実施形態におけるSHA-256のような)一方向性関数の使用に起因した、すべての元のサブブロックハッシュ値のハッシュ値の絡み合いと、グラフィックデータの対応する人間可読表現を伴う支持体上の、機械可読誤り訂正データ、および関連付けられた機械可読検証パスキーを含めることによって、
マーキングされた支持体上のデータの改ざんを非常に高いレベルの信頼性で防ぐことができる。
【0073】
[0073]マーキング方法の前述の実施形態は、支持体(紙のシート100またはディスプレイ)上に、ユーザが容易に検証することができる対応する機械可読誤り訂正データを伴う人間可読グラフィックシンボルを提供する。実際、
図6に例示的なフローチャートを示す本発明の検証方法によれば、画像化ユニットを備えたスキャナ、スキャナメモリを備えたスキャナ処理ユニット、およびスキャナディスプレイを有する、ユーザは、支持体上の人間可読グラフィックシンボルHrGSは、元のグラフィックシンボルに対して変更されているか否かをチェックしてもよく、または元のグラフィックシンボルを取得さえもしてもよい。検証方法の以下の例示的な実施形態では、人間可読グラフィックシンボルHrGSは、マーキング方法に従って支持体上に提供されるテキストを構成する。例えば、テキストを基材(例えば、
図1のような紙のシート)上に印刷したり、画面上に電子的に表示したりすることができる。スキャナの画像化ユニットは、支持体上の誤り訂正データMrECDの、テキストおよび対応する機械可読表現を画像化するように動作可能である。スキャナ処理ユニットは、画像化ユニットによって撮影された支持体の画像の画像処理を実行して、テキストデータを抽出し、抽出されたテキストデータのデジタル表現を対応するスキャンされたグラフィックデータブロックSGDBとして取得するようにプログラムされる。スキャナ処理ユニットは、(スキャナ処理ユニット上で)プログラムされた機械可読デコーダをさらに使用することにより、対応するスキャンされた誤り訂正データSECDを抽出するために画像化ユニットによって取得された、支持体上の誤り訂正データMrECDの機械可読表現の画像の画像処理を実行し、スキャンされた誤り訂正データSECDのデジタル表現を、対応するスキャンされた誤り訂正データブロックSECDBとして取得するようにもプログラムされる。スキャナ処理ユニットはさらに、誤り訂正コードECCを使用することによって、データブロックの誤り訂正の動作を実行するようにプログラムされる。スキャナは、例えば、(画像化ユニットとしての)カメラを備え、カメラの処理ユニット上で実行するように動作可能な画像処理、復号化、および誤り訂正アプリケーションを有する、単なるスマートフォンであってもよい。
【0074】
[0074]
図6に示す汎用的な検証プロセスは、
図1のマーキングされた支持体の例を伴う以下の方法、
・スキャナにより(スキャナ画像化ユニットを介して)、支持体上のテキストHrGS610、すなわち紙のシート100のテキスト領域120上のテキスト110をスキャンするステップ、および対応するスキャンされたグラフィックデータブロックSGDB620(すなわち、スキャンされたテキストのデジタル表現)を取得するステップと、
・スキャナを備えた支持体上の誤り訂正データMrECD615の機械可読表現、すなわち紙のシート100上のPDF417バーコード130をスキャンするステップ、対応するスキャンされた誤り訂正データSECDを抽出するために、(プログラムされた機械可読デコーダにより)誤り訂正データMrECDの機械可読表現を復号するステップ、および対応するスキャンされた誤り訂正データブロックSECDB625(すなわち、抽出されたSECDのデジタル表現)を形成するステップと、
・スキャナ処理ユニット上にプログラムされた誤り訂正コードECCを介して(SECDBの抽出されたSECDを使用して)、スキャンされたグラフィックデータブロックSGDBを訂正するステップ630、および訂正されたスキャンされたグラフィックデータブロックCSGDB640を取得するステップであって、訂正されたスキャンされたグラフィックデータブロックCSGDBが、対応する訂正された人間可読グラフィックシンボルCHrGSのデジタル表現を含む、取得するステップと、
・ステップ650で、次の3つのオプション、
・・(a)スキャナディスプレイ上に、訂正されたスキャンされたグラフィックデータブロックCSGDBを、対応する訂正された人間可読グラフィックシンボルCHrGSとして表示するステップ660、
・・(b)スキャナを介して(例えば、スキャナディスプレイ上で、またはスキャナによって送信される視覚的アラームまたは音声アラームを用いて)、(訂正630の結果に基づいて、)スキャンされたグラフィックデータブロックSGDBが誤差を含むか否かを示すステップ670、または
・・(c)スキャンされたグラフィックデータブロックSGDBが誤差を含んでいるか否かを、(訂正630の結果に基づいて)指定するスキャン結果データをスキャナメモリに格納するステップ680のうちの少なくとも1つを実行するステップとで開始する600。
【0075】
[0075]選択されたオプション(a)、(b)、および(c)の結果を送信すると、検証プロセスが終了する690。
【0076】
[0076]オプション(a)を使用すると、スキャナディスプレイ上に表示されるテキストCHrGSのバージョンを視覚的に比較することができ、このバージョンは、(誤り訂正データMrECDの機械可読表現から取得された)スキャンされた誤り訂正データSECD、および支持体でスキャンされた(訂正されていない)テキストHrGSを使用して、プログラムされた誤り訂正コードECCを介して訂正されている。好ましくは、表示されたテキストとスキャンされたテキストとの違いは、ユーザが(例えば、変更または詐欺に起因する)テキストにおける変更を容易に検出して特定するのを助けるために強調表示されてもよい。
【0077】
[0077]オプション(b)を用いると、訂正されたテキストCHrGSと支持体でスキャンされたテキストHrGSとの間に違いがある場合に、ユーザに警告することができる。
【0078】
[0078]オプション(c)を使用すると、訂正されたテキストと支持体でスキャンされたテキストとの間の既存の違いを追跡することができる。あるいは、スキャナがさらに通信手段(例えば、スマートフォン)を備えており、外部サーバに接続することができる場合、スキャン結果データは、通信リンクを介してサーバメモリに格納することができる。
【0079】
[0079]前述の検証方法の利点は、人間可読グラフィックシンボルとして、支持体上で提供されるテキストと、支持体上で読み取られた誤り訂正データの機械可読表現から取得することができる人間可読バージョンとの間の適合性をオフラインで(すなわち、通信リンクを介して外部装置に接続せずに)チェックすることができることである。この理由は、上記バージョンは、支持体上で読み取られた機械可読表現から抽出され、スキャナによって復号された誤り訂正データを使用することによって、スキャナにより支持体上で読み取られたテキストの(支持体上に提供されたテキストに対応する誤り訂正データを決定するためにマーキング方法と共にすでに使用されているコードと同様の)誤り訂正コードを介した訂正の結果であるからである。しかしながら、スキャナがさらに通信手段(例えば、スマートフォン)を備え、外部サーバに接続することができる場合、復号化すること、およびデータブロックの誤り訂正を実行することの検証方法の前述の動作の一部またはすべては、(専用の)外部サーバで実行することができる。
【0080】
[0080]検証方法のいくつかの変形形態(支持体上で検証可能なグラフィックデータを提供するために使用されるマーキング方法の第1の変形形態および第2の変形形態とそれぞれ相関する)により、ユーザは、テキスト(および/または機械可読データ)の信頼性をさらにチェックすることにより、支持体上で提供されるテキスト(または、より概して言えば、グラフィックシンボル)の単なる検証以上のものを行うことができる。
【0081】
[0081]人間可読グラフィックシンボルHrGS、およびマーキング方法の第1の変形形態に従って支持体上で提供された誤り訂正データの機械可読表現を検証する検証方法の第1の変形形態では、上記検証方法のステップを実行した後(
図6を参照)、ハッシュ関数Hは、(マーキング方法の第1の変形形態においてそれぞれ指定されたのと同じ方法で)データブロックのハッシュ値を計算するためにスキャナ処理ユニット上でさらにプログラムされ、スキャナはさらに、通信リンクを介して台帳と通信するように動作可能なスキャナ通信ユニットに接続され、ここで、(マーキング方法の第1の変形形態で指定されているように)基準ハッシュ値H
refが格納され、スキャナ処理ユニットは、プログラムされたハッシュ関数Hを介して、スキャンハッシュ値H
scanを、訂正されたスキャンされたグラフィックデータブロックCSGDBのハッシュ値H(CSGDB)、スキャンされた誤り訂正データブロックSECDBのハッシュ値H(SECDB)、または訂正されたスキャンされたグラフィックデータブロックCSGDBと、スキャンされた誤り訂正データブロックSECDB(前述のような)との連結
[数46]
(CSGDB[+]SECDB)
から生じる、データブロック
[数47]
CDB≡(CSGDB[+]SECDB)
の任意の部分のハッシュ値H(CDBの一部)としてさらに計算する。
【0082】
[0082]スキャナはさらに次の動作を実行する。
・スキャナは、通信ユニットを介して(通信リンクを介して台帳に要求を送信し、応答を受信することにより)、台帳に格納されている基準ハッシュ値Hrefを取得する。
・その後、スキャナ処理ユニットは、取得された基準ハッシュ値Hrefがスキャンハッシュ値Hscanと一致するか否かをチェックし、以下の動作、
(e)チェック動作の結果を示す(例えば、スキャナディスプレイを介して)こと、または
(f)チェック動作の結果をスキャナメモリに格納することのうちの少なくとも1つを実行する。
【0083】
[0083]支持体上で提供される人間可読テキストの元の(本物の)テキスト(人間可読グラフィックシンボルとして)、または支持体上で提供される機械可読誤り訂正データのコンテンツに関して変更を加えると、基準ハッシュ値Hrefとスキャンハッシュ値Hscanとの間に不一致が発生する。したがって、この変形形態は、元のバージョンに関する、支持体上のテキストの適合性に対する信頼のレベルを高める。
【0084】
[0084]
図7に示す実施形態で示される検証方法の第2の変形形態は、グラフィックシンボルのフルセットが複数のNサブセット(N≧2)に分割され、グラフィックシンボルの各サブセットが対応する基材部分、例えば、複数のページ(例えば、レポートまたは契約のNページなど)に(マーキング方法の第2の変形形態のオプション(ii)に従って)印刷されたテキストのように、または、(マーキング方法の第2の変形形態のオプション(i)に従って)所定の形式(例えば、Microsoft Wordまたはpdf形式のNページのテキスト文書)で画面に表示され、基材または表示された各ページには、人間可読グラフィックシンボルの所定のサブセットと、対応する誤り訂正データの機械可読表現(両方とも、対応する所定の検証可能なグラフィックデータサブブロックから取得された表現)が表示される。
【0085】
[0085]検証方法の第2の変形形態の以下の例示的な実施形態(
図7を参照)では、人間可読グラフィックシンボルHrGSは、マーキング方法の第2の変形形態に従って支持体上に提供されたテキストを構成する。例えば、テキストを基材(例えば、
図1のような紙のシート)上に印刷したり、画面上に電子的に表示したりすることができる。スキャナの画像化ユニットは、支持体上のテキストのNページの各ページ、すなわち、(検証可能な)人間可読グラフィックシンボルHrGS(j)および、第jのページ(j=1、...、N)で提供される対応する誤り訂正データの機械可読表現MrECD(j)の各々を画像化するように動作可能である。スキャナ処理ユニットは、画像化ユニットによって取られた支持体上で第jのページ(j=1、...、N)の画像の画像処理を実行し、画像化された人間可読グラフィックシンボルHrGS(j)(すなわち、第jのサブブロックの画像化されたグラフィックシンボル)からスキャンされたテキストデータを抽出し、対応するスキャンされたグラフィックデータサブブロックSGDSB(j)として抽出されたデータのデジタル表現を取得するようにプログラムされる。スキャナ処理ユニットはまた、画像化ユニットによって取られた支持体上でページjの画像の画像処理を実行し、誤り訂正データMrECD(j)の画像化された機械可読表現からスキャンされた誤り訂正データSECD(j)を抽出するようにプログラムされ、スキャナ処理ユニット上にプログラムされた機械可読デコーダを使用することにより、対応するスキャンされた誤り訂正データサブブロックSECDSB(j)としてスキャンされた誤り訂正データSECD(j)のデジタル表現を取得する。スキャナ処理ユニットはさらに、誤り訂正コードECCを使用することによって、データブロックの誤り訂正の動作を実行するようにプログラムされる。スキャナは、(画像化ユニットとしての)カメラを備え、カメラの処理ユニット上で実行するように動作可能な画像処理、復号化、および誤り訂正アプリケーションを有する、単なるスマートフォンであってもよい。
【0086】
[0086]検証方法の上記第2の変形形態の前述の実施形態(
図7)であって、人間可読グラフィックシンボルおよび機械可読誤り訂正データが、マーキング方法の第2の変形形態(
図4に示す)に従って支持体上に提供される、実施形態によれば、前述のスキャナは、文書の各ページj(j=1、...、N)に対して、以下の動作、
・スキャナ画像化ユニットにより、支持体のページj上に提供される人間可読グラフィックシンボルHrGS(j)、すなわち紙のシート100のテキスト領域120上のテキスト110でをスキャンするステップ710、および対応するスキャンされたグラフィックデータサブブロックSGDSB(j)(すなわち、スキャンされた人間可読グラフィックシンボルのデジタル表現)を取得するステップ720と、
・スキャナ画像化ユニットにより、支持体のページjに提供される誤り訂正データMrECD(j)の機械可読表現、すなわち、紙のシート100上のPDF417バーコード130をスキャンすること715、スキャナ処理ユニットにより、プログラムされた機械可読デコーダを使用して、画像化されたMrECD(j)を復号するステップ、対応するスキャンされた誤り訂正データSECD(j)を抽出するステップ、およびスキャンされた誤り訂正データSECD(j)のデジタル表現として、対応するスキャンされた誤り訂正データサブブロックSECDSB(j)を形成するステップ725と、
・スキャナ処理ユニットでプログラムされた誤り訂正コードECCを使用して(およびSECDSB(j)の抽出されたSECD(j)を使用して)、スキャナ処理ユニットにより、スキャンされたグラフィックデータサブブロックSGDSB(j)を訂正するステップ730、および訂正されたスキャンされたグラフィックデータサブブロックCSGDSB(j)を取得するステップ740と、
・各ページjに対して、3つのオプション、
・・(a)訂正されたスキャンされたグラフィックデータサブブロックCSGDB(j)の視覚的表現(すなわち、人間可読)を、対応する訂正された人間可読グラフィックシンボルCGS(j)として、スキャナディスプレイ上に表示するステップ760、
・・(b)スキャナを介して(例えば、スキャナディスプレイ上で、またはスキャナによって送信される視覚的アラームまたは音声アラームを用いて)、(訂正730の結果に基づいて、)スキャンされたグラフィックデータサブブロックSGDB(j)が誤差を含むか否かを示すステップ770、または
・・(c)スキャンされたグラフィックデータサブブロックSGDB(j)が、誤差(訂正730の結果に基づく)を含むか否かを指定するスキャン結果データを、スキャナメモリに格納するステップ780のうちの少なくとも1つを実行するステップ750との実行を開始する700。
【0087】
[0087]選択されたオプション(a)、(b)、および(c)の結果を送信することは、文書の各ページの検証プロセスの第2の変形形態を終了する790。スキャナに通信手段(スマートフォンなど)がさらに装備されており、外部サーバに接続することができる場合は、オプション(c)のスキャン結果データを通信リンクを介してサーバメモリに格納することができる。
【0088】
[0088]本発明はまた、検証方法の前述の第2の変形形態の3つのサブバリアントを含む。これらすべてのサブバリアントでは、
図7に示す検証方法の第2の変形形態の実施形態のステップを実行した後、一方向関数、ここではハッシュ関数Hが、スキャナ処理ユニット上でさらにプログラムされ、データブロックのハッシュ値(マーキング方法の変形形態でそれぞれ指定されたのと同じ方法で)を計算し、スキャナ処理ユニットは、プログラムされたハッシュ関数Hを介して、Nスキャンサブブロックハッシュ値H
scan(j)(j=1、...、N)をさらに計算し、各スキャンサブブロックハッシュ値H
scan(j)が、第jの訂正されたスキャンされたグラフィックデータサブブロックCSGDB(j)と第jのスキャンされた誤り訂正データサブブロックSECDSB(j)との連結
[数48]
(CSGDSB(j)[+]SECDSB(j))
から生じる、第jの訂正されたスキャンされたグラフィックデータサブブロックCSGDSB(j)のハッシュH(CSGDSB(j))、第jのスキャンされた誤り訂正データサブブロックSECDSB(j)のハッシュ値H(SECDSB(j))、またはデータブロックの任意の部分のハッシュ値H(CDB(j)の部分)
[数49]
CDB(j)≡(CSGDSB(j)[+]SECDSB(j))
としての、ハッシュ値である。計算されたスキャンサブブロックハッシュ値H
scan(j)の使用は、以下に詳細に説明するように、検証方法の第2の変形形態の、上記第1のサブバリアント、上記第2のサブバリアント、および上記第3のサブバリアントの各々に固有である。
【0089】
[0089]検証方法の第2の変形形態の実施形態の第1のサブバリアントの実施形態であって、支持体上の、人間可読グラフィックシンボルHrGS(j)および機械可読誤り訂正データMrECD(j)が、マーキング方法の第2の変形形態の第1のサブバリアントに従って生成されている、実施形態では、ハッシュ関数および誤り訂正コードがスキャナ処理ユニット上でプログラムされ、スキャナはさらに、スキャナ処理ユニットにより、支持体上のサブブロックハッシュ値H(j)の機械可読表現を読み取って復号するように動作可能である。さらに、スキャナは、通信リンクを介して、基準集約ハッシュ値が格納されている台帳と通信するように動作可能なスキャナ通信ユニットに接続されている。スキャナは、可能であれば(すなわち、すべてのHrGS(j)およびMrECD(j)が読み取り可能である場合)、スキャンサブブロックハッシュ値Hscan(j)、j=1、...、Nを計算する(前述を参照)。一部のページjに対してスキャンサブブロックハッシュ値を計算できない場合、例えば、この第jのページのHrGS(j)およびMrECD(j)が読み取れないので、スキャナは支持体のこの第jのページ上の、サブブロックハッシュ値H(j)の機械可読表現MrH(j)をスキャンして復号し、対応する復号されたサブブロックハッシュ値DH(j)を取得する。この復号されたサブブロックハッシュ値は、その後、第jのページに対して、スキャンサブブロックハッシュ値、すなわちHscan(j)≡DH(j)として機能する。第jのサブブロックハッシュ値MrH(j)のこの機械可読表現は、人間可読グラフィックシンボルHrGS(j)、および支持体上で提供される誤り訂正データMrECD(j)の機械可読表現に対応する、検証可能なグラフィックデータサブブロックVGDSB(j)に関連付けられている。その結果、支持体のすべてのページに対する集約ハッシュ値を計算するために必要なすべてのサブブロックスキャンハッシュ値が、(計算されたスキャンハッシュ値Hscan(j)として、または復号されたハッシュ値DH(j)を用いて識別されたとして)使用可能になる。
【0090】
[0090]その後、スキャナ処理ユニットは、以下のさらなる動作、
・取得したすべてのスキャンハッシュ値を連結することにより、集約されたスキャンハッシュ値Hscan
[数50]
Hscan≡Hscan(1)[+]Hscan(2)[+]...[+]Hscan(N-1)[+]Hscan(N) (記号[+]は連結演算子を表す)
を計算すること、
・スキャナ通信ユニットを介して、通信リンクを介して、基準集約ハッシュ値に対する要求を台帳に送信するステップ、および基準集約ハッシュ値Hrefを受信するステップと、
・受信した基準集約ハッシュ値Hrefが集約スキャン値Hscanと一致するか否かをチェックするステップ、およびチェック動作の結果を、(例えば、スキャナディスプレイのメッセージを介して)示すステップと
を実行する。一致する場合、一部のページの、テキストおよび機械可読誤り訂正データが読めなかったとしても(しかしながら、サブブロックハッシュ値の機械可読表現が可読である)、ページはすべて本物である(すなわち、元のページと適合している)。不一致の場合、ページの少なくとも1つが変更されている(例えば、グラフィックシンボルの少なくとも1つが変更され、または偽物である)。その後、サブブロックデータHrGS(j)およびMrECD(j)から取得されたスキャンサブブロックハッシュ値Hscan(j)が、対応する復号されたハッシュ値DH(j)、j=1、...、Nと一致するか否かをチェックすることによって、そのようなページを取得することが可能である。
【0091】
[0091]このサブバリアントによって、限定されたサイズのサブブロックハッシュ値の単なる機械可読表現のスキャンを利用して、Nページの文書の各ページが本物であるか否かをスキャナで個別にチェックすることができる。
【0092】
[0092]検証方法の第2の変形形態の第2のサブバリアントの実施形態では、支持体上の(Nページの文書の)ページj上の、人間可読グラフィックシンボルHrGS(j)、(j=1、...、N)および機械可読誤り訂正データMrECD(j)は、マーキング方法、オプション(iii)の第2の変形形態の第2のサブバリアントに従って生成されており、スキャナは、通信リンクを介して、基準集約ハッシュ値H
ref(ツリーの根ノード値として、
図5を参照)を含む台帳と通信するように動作可能なスキャナ通信ユニットに接続され、ハッシュ関数(N個のサブブロックハッシュ値H(j)、および対応する基準集約ハッシュ値H
refを計算するために使用されるものと同じ)は、スキャナ処理ユニット上でプログラムされる。スキャナはさらに、支持体上のサブブロック検証パスキーVPK(j)の機械可読表現MrVPK(j)(j=1、...、N)を読み取って復号し、支持体上でスキャンされた対応するサブブロックハッシュ値H(j)およびサブブロック検証パスキーVPK(j)のペアから、集約されたスキャンハッシュ値H
scanを計算するように動作可能である(ここでは、8ページの文書に対して、
図5の例に対応する二分木を用いて、N=8の場合を検討する)。ハッシュ関数を使用して、Nページの文書のjページにあるスキャンされた検証可能なグラフィックデータから、およびマーキング方法の第2の変形形態の第2のサブバリアントに従って、(すなわち、H(CSGDSB(j))、H(SECDSB(j)、またはH(ツリーの葉ノードとして使用されるサブブロックハッシュ値を計算するためのCDB(j)の一部)のうちの同じ選択された選択肢を用いて)、スキャンサブブロックハッシュ値H
scan(j)、(j∈{1、...、N})を計算した後(前述を参照)、スキャナは次の動作、
・(第jの訂正されたスキャンされたグラフィックデータサブブロックCSGDSB(j)に対応する)支持体の第jのページ上でサブブロック検証パスキーVPK(j)の機械可読表現MrVPK(j)をスキャンするステップ、および対応するスキャンされたサブブロック検証パスキーSVPK(j)をスキャナ処理ユニットにより抽出するステップと、
・スキャナ処理ユニットにより、計算されたスキャンサブブロックハッシュ値H
scan(j)、および文書の第jのページをスキャンして取得したスキャンサブブロック検証パスキーSVPK(j)を用いて、スキャン集約ハッシュ値H
scanを計算するステップであって、以下で説明するように、
【0093】
[0093].j=1(文書の第1のページ)の場合、およびマーキング方法の第2の変形形態の第2のサブバリアントの実施形態に関して前述で説明したように(
図5の例示的な二分木も参照)、上で示されたように(すなわち、第1の訂正されたスキャンされたグラフィックデータサブブロックCSGDB(1)および/または第1のスキャンされた誤り訂正データサブブロックSECDSB(1)から)取得されているサブブロックH
scan(1)が、(ノードの順序およびツリー連結の順序は、マーキング方法の第2の変形形態の第2のサブバリアントの前述の実施形態における順序と同じ順序が選択される)二分木の第1の葉ノードa(1,1)の値として、抽出されるスキャンされたサブブロック検証パスキーSVPK(1)は、3つのノード値、SVPK(1)={a(1,2)、a(2,2)、a(3,2)}を含むので、第1のページの検証可能グラフィックデータのスキャンから取得され得るスキャンハッシュ値H
scanは、
[数51]
H
scan=H(H(H(a(1,1)[+]a(1,2))[+]a(2,2))[+]a(3,2))
=H(H(H(H
scan(1)[+]a(1,2))[+]a(2,2))[+]a(3,2))
として計算される。
.j=2の場合、SVPK(2)={a(1,1),a(2,2),a(3,2)}、
[数52]
H
scan=H(H(H(a(1,1)[+]H
scan(2))[+]a(2,2))[+]a(3,2))
.j=3の場合、SVPK(3)={a(1,4),a(2,1),a(3,2)}、
[数53]
H
scan=H(H(a(2,1)[+]H(H
scan(3)[+]a(1,4)))[+]a(3,2))
.j=4の場合、SVPK(4)={a(1,3),a(2,1),a(3,2)}、
[数54]
H
scan=H(H(a(2,1)[+]H(a(1,3)[+]H
scan(4)))[+]a(3,2))
.j=5の場合、SVPK(5)={a(1,6),a(2,4),a(3,1)}、
[数55]
H
scan=H(a(3,1)[+]H(H(H
scan(5)[+]a(1,6))[+]a(2,4)))
.j=6の場合、SVPK(6)={a(1,5),a(2,4),a(3,1)}、
[数56]
H
scan=H(a(3,1)[+]H(H(a(1,5)[+]H
scan(6))[+]a(2,4)))
.j=7の場合、SVPK(7)={a(1,8),a(2,3),a(3,1)}、
[数57]
H
scan=H(a(3,1)[+]H(a(2,3)[+]H(H
scan(7)[+]a(1,8))))
.j=8の場合、SVPK(8)={a(1,7),a(2,3),a(3,1)}、
[数58]
H
scan=H(a(3,1)[+]H(a(2,3)[+]H(a(1,7)[+]H
scan(8))))
である。
・次に、スキャナ通信ユニットおよび通信リンクを介して台帳に格納された基準集約ハッシュ値H
ref(すなわち、ツリーの根ノード値R)を取得するステップ、および取得した基準集約ハッシュ値H
refがj=1、...、Nに対するスキャン集約ハッシュ値H
scanと一致するか否かをチェックするステップと、
・(スキャナディスプレイ上などで)チェック動作の結果を示すステップと、
を実行する。
【0094】
[0094]検証方法のこのサブバリアントによって、少量のデータのみを用いて文書の各ページの誤差を検出することができ、この理由は、ページのコンテンツにおいて変形形態があると、基準集約ハッシュ値Hrefと、このページ上でスキャンされた検証可能なグラフィックデータから取得されたスキャンハッシュ値Hscanとの間に不一致が発生するためである。さらに、この方法は、スキャンされたグラフィックデータの訂正されたバージョンが第jのページj=1、...、Nのサブブロックハッシュ値Hscan(j)の計算に使用されるので、堅牢である。
【0095】
[0095]検証方法の第2の変形形態の第3のサブバリアントの実施形態では、N=8ページの文書の同じ二分木、ならびにスキャンサブブロックハッシュ値Hscan(j)(j=1、...、N)、および検証方法の第2の変形形態の第2のサブバリアントの前述の例のようなスキャンハッシュ値Hscanを計算する同じ方法を使用する。この実施形態では、支持体上の人間可読グラフィックシンボルHrGS(j)および機械可読誤り訂正データMrECD(j)が、マーキング方法の第2の変形形態であるの第2のサブバリアント、オプション(iv)に従って生成されていて、基準集約ハッシュ値Hrefはスキャナメモリに格納され、スキャナはまた、支持体上のサブブロック検証パスキーVPK(j)の機械可読表現を読み取って復号し、対応するサブブロックハッシュ値とサブブロック検証パスキーのペアから集約ハッシュ値Hscan(j)を計算するように動作可能でもある。この実施形態によれば、検証方法の上記第2の変形形態のステップを実行し、前述のようにスキャンサブブロックハッシュ値Hscan(j)(j=1、...、N)を計算した後、スキャナはさらなるステップ、
・スキャナにより、(例えば、文書のjページで提供されるスキャンされた検証可能なグラフィックデータから取得される、第jの訂正されたスキャンされたグラフィックデータサブブロックCSGDSB(j)に対応する)支持体上で提供される第jのページのサブブロック検証パスキーVPK(j)の機械可読表現MrVPK(j)をスキャンするステップ、および対応するスキャンされたサブブロック検証パスキーSVPK(j)を、スキャナ処理ユニットにより抽出するステップと、
・計算されたスキャンサブブロックハッシュ値Hscan(j)、および文書の第jのページをスキャンすることによって取得したスキャンサブブロック検証パスキーSVPK(j)を用いて、スキャン集約ハッシュ値Hscanを計算するステップ(前述を参照、検証方法の第2の変形形態の実施形態の第2のサブバリアントに関連する詳細な計算)と、
・スキャナメモリに格納された基準集約ハッシュ値Hrefを取得するステップと、
・スキャナ処理ユニットにより、取得された基準集約ハッシュ値Hrefが、第jのページ(j=1、...、N)に対する集約されたスキャンハッシュ値Hscanと一致するか否かをチェックするステップと、
・(スキャナディスプレイを介して)チェック動作の結果を示すステップと
を実行する。
【0096】
[0096]検証方法のこのサブバリアントによって、データの量が少ない文書の各ページの誤差を堅牢なオフラインモードで検出することができ、この理由は、ページのコンテンツにおいて変形形態があると、基準集約ハッシュ値Hrefと、このページでスキャンされた検証可能なグラフィックデータから取得されたスキャンハッシュ値Hscanとの間に不一致が発生するためである。実際、本方法は、基準集約ハッシュ値Hrefがスキャンハッシュ値Hscanと一致するか否かをチェックするために、スキャナメモリ(すなわち、Href)に格納された(限定されたサイズの)データのみを使用する。
【0097】
[0097]検証方法の代替変形形態の実施形態は、前述のマーキング方法、オプション(i)のステップを実行するようにプログラムされたプロセッサによって、ディスプレイに接続されたコンピュータにおいて生成される、検証人間可読グラフィックシンボルおよび対応する機械可読誤り訂正データへの本発明の応用形態を示す。コンピュータは、表示された人間可読グラフィックシンボルおよび機械可読誤り訂正データをスキャンするように動作するスキャンアプリケーションをプロセッサ上にプログラムさせる。
したがって、コンピュータは、生成された人間可読グラフィックシンボルHrGS、および対応する機械可読誤り訂正データMrECDを表示し、コンピュータプロセッサ上で実行されるスキャンアプリケーションは、次の動作、
・スキャンされたグラフィックデータブロックSGDBを取得するために、表示された人間可読グラフィックシンボルHrGSをスキャンするステップであって、このスキャンされたグラフィックデータブロックが、スキャンされた人間可読グラフィックシンボルのデジタル表現である、スキャンするステップと、
・コンピュータプロセッサ上で実行されるスキャンアプリケーションの機械可読デコーダを介して、表示された機械可読誤り訂正データMrECDをスキャンするステップ、およびスキャンされた誤り訂正データブロックSECDBにおける対応するスキャンされた誤り訂正データSECDを取得するために、スキャンされた機械可読誤り訂正データMrECDを復号するステップと、
・コンピュータプロセッサ上で実行されるスキャンアプリケーションの誤り訂正コードECCを用いてスキャンされたグラフィックデータブロックSGDBを訂正するステップ、および対応する訂正されたスキャンされたグラフィックデータブロックCSGDBを取得するために、スキャンされた誤り訂正データブロックSECDBのスキャンされた誤り訂正データSECDを使用するステップと、
・次のステップ、
(a)訂正されたスキャンされたグラフィックデータブロックCSGDBの視覚的表現を、訂正された人間可読グラフィックシンボルCHrGSとして、ディスプレイに表示するステップ、
(b)スキャンされたグラフィックデータブロックSGDBが誤差を含むか否かを指定する表示を(SGDBの訂正ステップの結果に基づいて)表示するステップ、または
(c)スキャンされたグラフィックデータブロックSGDBが誤差を含むか否かを指定するスキャン結果データをコンピュータのメモリに格納するステップ
のうちの少なくとも1つを実行するステップと
を実行する。
【0098】
[0098]ステップ(a)で、スキャンアプリケーションを介して訂正された、最初に表示された人間可読グラフィックシンボルHrGS(スキャンアプリケーションを実行する前)の部分は、好ましくは、コンピュータのユーザによる最初に表示されたHrGSにおける誤差の識別および位置特定を容易にするために強調表示される。
【0099】
[0099]前述の開示する主題は、例示的であり、限定的ではないと見なされるべきであり、独立請求項によって定義される本発明のより良い理解を提供するのに役立つ。
[発明の項目]
[項目1]
偽造及び改ざんからグラフィックデータを保護する方法であって、以下のステップ、
前記グラフィックデータのグラフィックシンボルの所与の有限なセットのデジタル表現を含むグラフィックデータブロック(210、310)を処理ユニットのメモリに格納するステップと、
対応する誤り訂正データブロック(230、330)にて誤り訂正データを生成するために、前記処理ユニットにプログラムされた誤り訂正コードを用いて、前記格納されたグラフィックデータブロックのグラフィックシンボルの前記デジタル表現を前記処理ユニットにより処理するステップと、
人間可読グラフィックデータブロックおよび機械可読誤り訂正データブロックを含む対応する認証可能なグラフィックデータブロックを取得する(250、350)ために、前記人間可読グラフィックデータブロックにて、前記グラフィックデータブロックの前記グラフィックシンボルの人間可読表現を、および前記機械可読誤り訂正データブロックにて、前記グラフィックデータブロックの前記グラフィックシンボルの前記人間可読表現とは別の、前記誤り訂正データブロックの前記誤り訂正データの機械可読表現をそれぞれ提供するために、前記グラフィックデータブロックおよび前記誤り訂正データブロックを前記処理ユニットによりフォーマットするステップ(215、240;315、340)と、
(i)前記処理ユニットに接続されたディスプレイである支持体(100)上に、前記取得された認証可能なグラフィックデータブロックの人間可読グラフィックシンボルと対応する誤り訂正データの機械可読表現とを表示するステップ、または
(ii)前記処理ユニットに接続され、前記処理ユニットから受信したデータに基づいてマーキングの動作を制御するように動作可能な制御ユニットを備えたマーキング装置を介して、前記処理ユニットから受信され取得された前記認証可能なグラフィックデータブロックの人間可読グラフィックシンボルと誤り訂正データの対応する機械可読表現とを、基材である支持体(100)上にマーキングするステップ(260)であり、
前記人間可読グラフィックシンボルと対応する機械可読誤り訂正データとを含む認証データを前記支持体上に提供する、ステップと、
を含む方法。
[項目2]
誤り訂正データの前記機械可読表現が、英数字表現またはバーコード表現(130)のいずれか1つである、項目1に記載の方法。
[項目3]
前記グラフィックシンボルがテキスト文字(110)であり、グラフィックシンボルの前記有限なセットがアルファベットである、項目1または2に記載の方法。
[項目4]
前記処理ユニット上にプログラムされたハッシュ関数を用いて、前記グラフィックデータブロックのハッシュ値、前記誤り訂正データブロックのハッシュ値、または前記グラフィックデータブロックと前記誤り訂正データブロックとの連結から生じる、データブロックの任意の部分のハッシュ値を計算するステップと、
前記計算されたハッシュ値を基準ハッシュ値として台帳に格納するステップと、
を含む項目1~3のいずれか一項に記載の方法。
[項目5]
前記支持体が複数の部分を含み、前記認証可能なグラフィックデータブロックが同じ複数の認証可能なグラフィックデータサブブロックに分割され(410)、前記対応する人間可読グラフィックシンボルおよび誤り訂正データの機械可読表現が、ともに、下記のステップによって、前記支持体の対応する部分上でそれぞれに応じて広げられ、前記下記のステップが、
前記グラフィックデータブロックが複数のグラフィックデータサブブロックに分割され、前記グラフィックデータサブブロックの各々が、対応する人間可読グラフィックデータサブブロックにてグラフィックシンボルの人間可読表現を提供するようにフォーマットされる(415)ステップと、
グラフィックデータサブブロックの各々に対して、前記グラフィックデータサブブロックの各々のグラフィックシンボルの前記デジタル表現が抽出され、前記誤り訂正コードを用いて処理されて(420)、誤り訂正データサブブロックにて対応する誤り訂正データが生成される(430)ステップと、
人間可読グラフィックデータサブブロックおよび機械可読誤り訂正データサブブロックを含む、対応する認証可能なグラフィックデータサブブロックを取得する(450)ために、誤り訂正データサブブロックの各々は、対応する前記機械可読誤り訂正データサブブロックにて、前記対応する人間可読グラフィックデータサブブロックのグラフィックシンボルの前記人間可読表現とは別の、対応する誤り訂正データの機械可読表現を提供する(440)ようにフォーマットされるステップと、
ステップ(i)で、取得した認証可能なグラフィックデータサブブロックの各々の人間可読グラフィックシンボルと誤り訂正データの対応する機械可読表現とを前記ディスプレイ上に表示するステップ(460)、または
ステップ(ii)で、前記制御ユニットが前記処理ユニットから受信した認証可能なグラフィックデータサブブロックの各々の人間可読グラフィックシンボルと誤り訂正データの対応する機械可読表現とを、前記マーキング装置を介して、前記基材上にマーキングするステップ(470)であり、
前記グラフィックデータブロックのグラフィックデータサブブロックの各々に対して、ユーザが認証可能である、対応する人間可読グラフィックシンボルと対応する機械可読誤り訂正データとを前記支持体上で提供する、ステップと、
を含む項目1~3のいずれか一項に記載の方法。
[項目6]
サブブロックハッシュ値が、各グラフィックデータサブブロック、前記対応する誤り訂正データサブブロック、または前記グラフィックデータサブブロックと前記誤り訂正データサブブロックとの連結から生じるデータサブブロックの任意の部分に対して、前記処理ユニット上にプログラムされたハッシュ関数を介して計算され、
サブブロックハッシュ値の各々に対して、前記サブブロックハッシュ値の対応する機械可読表現が計算され、
認証可能なグラフィックデータサブブロックの各々に関連付けられて、前記サブブロックハッシュ値の前記対応する機械可読表現が、前記支持体の前記対応する部分でさらに提供され、
すべての前記サブブロックハッシュ値の基準集約ハッシュ値が、すべての前記計算されたサブブロックハッシュ値との連結として決定され、
前記基準集約ハッシュ値が台帳に格納され、
前記グラフィックデータブロックのグラフィックデータサブブロックの各々に対して、ユーザが認証可能である、対応する人間可読グラフィックシンボルと対応する機械可読誤り訂正データとを前記支持体上で提供する、項目5に記載の方法。
[項目7]
サブブロックハッシュ値が、グラフィックデータサブブロックの各々、前記対応する誤り訂正データサブブロック、または前記グラフィックデータサブブロックと前記誤り訂正データサブブロックとの連結から生じるデータサブブロックの任意の部分に対して、前記処理ユニット上にプログラムされたハッシュ関数を介して計算され、
すべての前記サブブロックハッシュ値の基準集約ハッシュ値が、前記計算されたサブブロックハッシュ値を葉ノード値として有するツリーの根ノード値として決定され、前記ツリーが、前記ツリーにおける所定のノードの順序に従って配置されたノードを含み、前記ツリーが、前記葉ノードから前記根ノードまでのノードレベルを含み、前記ツリーのすべての非葉ノード値が、ツリー連結順序に従って、前記ツリーの子ノードの前記それぞれのノード値の連結のハッシュ値に対応し、前記根ノード値が、前記ツリー連結順序に従って、前記ツリーにおける最後から2番目のノードレベルの前記ノードの前記ノード値の連結のハッシュ値に対応し、
サブブロックハッシュ値の各々に対して、関連付けられたサブブロック検証パスキーが、前記サブブロックハッシュ値から前記根ノード値を取得するために必要な、前記ツリーの選択された非葉ノードの一連のハッシュ値として決定され、
各サブブロック検証パスキーの機械可読表現が、前記認証可能なグラフィックデータサブブロックにおいて、前記それぞれの対応するグラフィックデータサブブロック、および誤り訂正データサブブロックに関連付けられて含まれ、
前記認証可能なグラフィックデータサブブロックが、さらにフォーマットされ、前記関連付けられたグラフィックデータサブブロックの前記人間可読表現、および前記関連付けられた誤り訂正データサブブロックの前記機械可読表現とは別の、前記サブブロック検証パスキーの機械可読表現を提供し、
(iii)前記基準集約ハッシュ値が台帳に格納され、または
(iv)前記基準集約ハッシュ値をユーザが利用することができるようにし、
前記グラフィックデータブロックのグラフィックデータサブブロックの各々対して、ユーザが認証可能である、対応する人間可読グラフィックシンボルと対応する機械可読誤り訂正データとを前記支持体上に提供する、項目5に記載の方法。
[項目8]
項目1~3のいずれか一項に記載の方法に従って生成された、誤り訂正データの機械可読表現を伴って支持体上で提供される人間可読グラフィックシンボルを認証する方法であって、
スキャンされた人間可読グラフィックシンボルの画像処理を介して、前記スキャンされた人間可読グラフィックシンボルのデジタル表現である、スキャンされたグラフィックデータブロックを取得する(620、720)ために、画像化ユニット、およびスキャナメモリを有し、スキャナディスプレイに接続されたスキャナ処理ユニットを備えたスキャナにより、人間可読グラフィックシンボルをスキャンするステップ(610、710)と、
前記スキャナ処理ユニット上にプログラムされた機械可読デコーダを介して、スキャンされた誤り訂正データブロックの対応するスキャンされた誤り訂正データを取得する(625、725)ために、前記支持体上の誤り訂正データの機械可読表現を前記スキャナによりスキャンするステップであって、前記スキャンされた誤り訂正データが、前記スキャンされた誤り訂正データのデジタル表現である、スキャンするステップ(615、715)と、
対応する訂正されたスキャンされたグラフィックデータブロックを取得するために、前記スキャンされた誤り訂正データブロックの前記スキャンされた誤り訂正データを使用して、前記スキャナ処理ユニット上にプログラムされた誤り訂正コードを用いて、前記スキャンされたグラフィックデータブロックを訂正するステップ(630、730)と、
(a)前記訂正されたスキャンされたグラフィックデータブロックの視覚的表現を、対応する訂正された人間可読グラフィックシンボルとして前記スキャナディスプレイ上に表示するステップ(660、760)及び、変更または不正を検出するために、前記訂正されたスキャンされたグラフィックデータブロックの表示された前記視覚的表現を、前記支持体上で提供された前記人間可読グラフィックシンボルと比較するステップ、
(b)前記スキャンされたグラフィックデータブロックが誤差を含むか否かを前記スキャナを介して示すステップ(670、770)、または
(c)前記スキャンされたグラフィックデータブロックが誤差を含むか否かを指定するスキャン結果データを前記スキャナメモリに格納するステップ(680、780)と、
を含む方法。
[項目9]
前記支持体上の、前記人間可読グラフィックシンボルおよび前記機械可読誤り訂正データが、項目4に記載の方法に従って生成され、前記ハッシュ関数が前記スキャナ処理ユニット上にプログラムされており、前記スキャナが、通信リンクを介して前記台帳と通信するように動作可能なスキャナ通信ユニットに接続されている、方法であって、
項目4に従って、前記スキャナ処理ユニット上にプログラムされた前記ハッシュ関数を用いて、前記訂正されたスキャンされたグラフィックデータブロックのスキャンハッシュ値、前記スキャンされた誤り訂正データブロックのスキャンハッシュ値、または前記訂正されたスキャンされたグラフィックデータブロックと前記スキャンされた誤り訂正データブロックの連結から生じるデータブロックの任意の部分のスキャンハッシュ値を計算するステップと、
前記スキャナ通信ユニットおよび前記通信リンクを介して前記台帳に格納された前記基準ハッシュ値を取得するステップ、および前記取得した基準ハッシュ値がスキャンハッシュ値と一致するか否かをチェックするステップと、
(e)前記チェックするステップの動作の結果を示すステップ、または
(f)前記チェックするステップの動作の結果を前記スキャナメモリに格納するステップと、
をさらに含む、項目8に記載の方法。
[項目10]
前記支持体上の前記人間可読グラフィックシンボルおよび前記機械可読誤り訂正データが、項目5に記載の方法に従って生成されている、方法であって、
前記支持体上の前記人間可読グラフィックシンボルをスキャンする前記動作が、前記スキャンされたサブブロックのデジタル表現として、対応するスキャンされたグラフィックデータサブブロックを画像処理を介して取得するために、前記対応するグラフィックデータサブブロックのサブブロックグラフィックシンボルをスキャンするステップを含み、
前記支持体上の前記機械可読誤り訂正データをスキャンする前記動作が、対応するスキャンされる誤り訂正データサブブロックを取得するために、前記対応する誤り訂正データサブブロックの前記誤り訂正データをスキャンするステップを含み、
前記スキャンされたグラフィックデータブロックを訂正する前記動作が、対応する訂正されたスキャンされたグラフィックデータサブブロックを取得するために、前記対応するスキャンされた誤り訂正データサブブロックを使用して、前記スキャンされたグラフィックデータサブブロックの前記グラフィックデータを訂正するステップを含み、
前記訂正されたスキャンされたデータブロックの視覚的表現を表示する前記ステップの動作(a)が、前記訂正されたスキャンされたグラフィックデータサブブロックの視覚的表現を表示するステップを含み、
前記スキャンされたグラフィックデータブロックが誤差を含むか否かを示す前記ステップの動作(b)が、前記スキャンされたグラフィックデータサブブロックが誤差を含むか否かを示すステップを含み、
スキャン結果データを格納する前記ステップの動作(c)が、前記スキャンされたグラフィックデータサブブロックが誤差を含むか否かを格納するステップを含む、項目8に記載の方法。
[項目11]
前記支持体上の前記人間可読グラフィックシンボルおよび前記機械可読誤り訂正データが、項目6に記載の方法に従って生成され、
前記ハッシュ関数および前記誤り訂正コードが、前記スキャナ処理ユニットにプログラムされており、前記スキャナが、前記スキャナ処理ユニットにより、前記支持体上のサブブロックハッシュ値の機械可読表現を読み取って復号するようにさらに動作可能であり、
前記スキャナが、前記台帳との通信リンクを介して通信するように動作可能なスキャナ通信ユニットに接続されている、方法であって、
前記スキャナ処理ユニットにプログラムされた前記ハッシュ関数を用いて、サブブロックハッシュ値を計算するために実行された前記動作に従って、前記支持体の各部分に対して、前記対応する訂正されたスキャンされたグラフィックデータサブブロック、前記対応する誤り訂正データサブブロック、または前記訂正されたスキャンされたグラフィックデータサブブロックと前記スキャンされた誤り訂正データサブブロックとの連結から生じるデータサブブロックの任意の部分のハッシュ関数を計算するステップと、
前記支持体の部分のスキャンサブブロックハッシュ値を計算できない場合に、対応する復号されたサブブロックを取得するために、前記支持体の前記部分のサブブロックハッシュ値の機械可読表現をスキャンして復号するステップ、および
この復号されたサブブロックハッシュ値を、前記支持体のこの部分のスキャンサブブロックハッシュ値として使用するステップと、
すべての前記スキャンサブブロックハッシュ値の連結として、集約されたスキャンハッシュ値を計算するステップと、
前記スキャナ通信ユニットおよび前記通信リンクを介して、前記台帳に格納された前記基準集約ハッシュ値を取得するステップ、および前記取得した基準集約ハッシュ値が前記集約されたスキャンハッシュ値と一致するか否かをチェックするステップと、
前記スキャナを介して前記チェックするステップの動作の結果を示すステップと、
をさらに含む、項目10に記載の方法。
[項目12]
前記支持体の各部分上の前記人間可読グラフィックシンボルおよび前記機械可読誤り訂正データが、項目7に記載の方法に従って生成され、前記基準集約ハッシュ値が前記台帳に格納されており、前記スキャナが、前記台帳との通信リンクを介して通信するように動作可能な前記スキャナ通信ユニットに接続されており、前記スキャナが、前記支持体の対応する部分上のサブブロック検証パスキーの機械可読表現を読み取って復号し、対応するサブブロックハッシュ値とサブブロック検証パスキーとのペアからの集約されたハッシュ値を計算するようにさらに動作可能である、方法であって、
前記スキャナ処理ユニットにおいてプログラムされた前記ハッシュ関数を用いて、サブブロックハッシュ値を計算するために実行される前記動作に従って、選択された訂正されたスキャンされたグラフィックデータサブブロック、対応するスキャンされた誤り訂正データサブブロック、または前記訂正されたスキャンされたグラフィックデータサブブロックと前記スキャンされた誤り訂正データサブブロックとの連結から生じるデータサブブロックの任意の部分のスキャンサブブロックハッシュ値を計算するステップと、
前記支持体の対応する部分上で、前記選択された訂正されたスキャンされたグラフィックデータサブブロックに対応する、サブブロック検証パスキーの機械可読表現を前記スキャナによりスキャンするステップ、および対応するスキャンされたサブブロック検証パスキーを抽出するステップと、
前記計算されたスキャンサブブロックハッシュ値と前記スキャンされたサブブロック検証パスキーを用いて、スキャン集約ハッシュ値を計算するステップと、
前記スキャナ通信ユニットおよび通信リンクを介して、前記台帳に格納された前記基準集約ハッシュ値を取得するステップ、および前記取得した基準集約ハッシュ値が前記スキャン集約ハッシュ値と一致するか否かをチェックするステップと、
前記スキャナを介して前記チェックするステップの動作の結果を示すステップと、
を含む、項目10に記載の方法。
[項目13]
前記支持体上の前記人間可読グラフィックシンボルおよび前記機械可読誤り訂正データが、項目7に記載の方法に従って生成され、前記ユーザが利用することができる前記基準集約ハッシュ値が、前記スキャナメモリに格納されており、前記スキャナが、前記支持体の対応する部分上のサブブロック検証パスキーの機械可読表現を読み取って復号し、対応するサブブロックハッシュ値とサブブロック検証パスキーとのペアから、集約されたハッシュ値を計算するようにさらに動作可能である、方法であって、
前記スキャナ処理ユニットにプログラムされた前記ハッシュ関数を用いて、サブブロックハッシュ値を計算するために実行される前記動作に従って、選択された訂正されたスキャンされたグラフィックデータサブブロック、対応するスキャンされた誤り訂正データサブブロック、または前記訂正されたスキャンされたグラフィックデータサブブロックと前記スキャンされた誤り訂正データサブブロックとの連結から生じるデータサブブロックの任意の部分のスキャンサブブロックハッシュ値を計算するステップと、
前記支持体の対応する部分上で、前記選択された訂正されたスキャンされたグラフィックデータサブブロックに対応する、サブブロック検証パスキーの機械可読表現を前記スキャナによりスキャンするステップ、および対応するスキャンされたサブブロック検証パスキーを抽出するステップと、
スキャンされた基準集約ハッシュ値を取得するために、基準集約ハッシュ値を前記支持体上でスキャンするステップと、
前記計算されたスキャンサブブロックハッシュ値および前記スキャンされたサブブロック検証パスキーを用いて、集約されたスキャンハッシュ値を計算するステップと、
前記スキャナメモリに格納された前記基準集約ハッシュ値が前記集約されたスキャンハッシュ値と一致するか否かをチェックするステップと、
前記スキャナを介して前記チェックするステップの動作の結果を示すステップと、
を含む、項目10に記載の方法。
[項目14]
項目1~3のいずれか一項に記載の方法に従って生成された、コンピュータのディスプレイ上で機械可読誤り訂正データを伴って提供される人間可読グラフィックシンボルを認証する方法であって、前記コンピュータが、表示された人間可読グラフィックシンボル、および機械可読誤り訂正データをスキャンするように動作可能な、プロセッサ上にプログラムされたスキャンアプリケーションを有し、
前記スキャンされた人間可読グラフィックシンボルのデジタル表現である、スキャンされたグラフィックデータブロックを取得するために、前記コンピュータのプロセッサ上で実行される前記スキャンアプリケーションを介して、前記表示された人間可読グラフィックシンボルをスキャンするステップと、
前記表示された機械可読誤り訂正データをスキャンするステップ、およびスキャンされた誤り訂正データブロックの対応するスキャンされた誤り訂正データを取得するために、前記コンピュータのプロセッサ上で実行される前記スキャンアプリケーションの機械可読デコーダを介して、前記スキャンされた機械可読誤り訂正データを復号するステップと、
対応する訂正されたスキャンされたグラフィックデータブロックを取得するために、前記スキャンされた誤り訂正データブロックの前記スキャンされた誤り訂正データを使用して、前記コンピュータのプロセッサ上で実行される前記スキャンアプリケーションの誤り訂正コードを用いて、前記スキャンされたグラフィックデータブロックを訂正するステップと、
(a)前記訂正されたスキャンされたグラフィックデータブロックの視覚的表現を、訂正された人間可読グラフィックシンボルとして前記ディスプレイ上に表示するステップ、及び、変更または不正を検出するために、前記訂正されたスキャンされたグラフィックデータブロックの表示された前記視覚的表現を、前記ディスプレイ上で提供された前記人間可読グラフィックシンボルと比較するステップ、
(b)前記スキャンされたグラフィックデータブロックが誤差を含むか否かを指定する表示を表示するステップ、または
(c)前記スキャンされたグラフィックデータブロックが誤差を含むか否かを指定するスキャン結果データを前記コンピュータのメモリに格納するステップと、
を含む、方法。
[項目15]
項目1~7のいずれか一項に記載の方法に従って、人間可読グラフィックシンボルと対応する機械可読誤り訂正データとを含む認証データを用いてマーキングされた支持体。
[項目16]
画像化ユニット、スキャナ処理ユニット、およびスキャナディスプレイを備えたスキャナであって、前記スキャナ処理ユニットが、項目8、10、および13のいずれか一項に記載の方法のステップを実装するように前記スキャナを動作可能にするようにプログラムされている、スキャナ。
[項目17]
通信リンクを介して台帳と通信するように動作可能なスキャナ通信ユニットをさらに備え、前記スキャナ処理ユニットが、項目9、11、および12のいずれか一項に記載の方法のステップを実装するように前記スキャナを動作可能にするようにさらにプログラムされている、項目16に記載のスキャナ。
[項目18]
プロセッサ、メモリ、およびディスプレイを備えたコンピュータ上で実行されるときに動作可能なコンピュータプログラム製品であって、項目1~3のいずれか一項に記載の方法に従って生成された、前記ディスプレイ上に機械可読誤り訂正データを伴って提供される人間可読グラフィックシンボルを認証するために、項目14に記載の方法のステップを実装するためのコンピュータプログラム製品。