チェックデジットについて


 チェックデジット(検査数字)はバーコードだけのものではなく、古くから例えば銀行の口座番号、 税金の納税者番号など、あらゆる『重要な数列』には必ず使用されてきたものである。

 数列の一つ一つの数字に一定のアルゴリズムに従ってウェイトと呼ぶ数値を掛けて、 求められた総和(サム)を係数(モジュラス)で割り、その余りをチェックデジットとするもの(DR)、 モジュラスから余りを引いたものをチェックデジットとするもの(DSR)などがある。

 いずれにしてもこのチェックデジットによって、偽造の防止や、読み誤りの防止に大きな力を発揮している。

 バーコードの場合、印刷という手段を取るため、 印刷過程でのミス(太りや欠けなど)による誤読を防止するために必要不可欠なものになっている。 つまり読み取ったバーコードの数列がチェックデジットにマッチしないとき、 この数列のコンピュータへの入力を拒否するガードの役割をしている。

 バーコードの種類によっては、 チェックデジットを必ず必要とするもの(例えば JAN・標準物流シンボル・CODE-93・CODE-128 など)と、 必ずしも必要としないもの(CODE-39・NW-7・ITF など)があり、 またチェックデジットのアルゴリズムもそのシステムによっていろいろ選べるものもあるが、 チェックデジットの付加によって誤読率が1000分の1以下に下がるというデータもある。

 ウェイト・モジュラスなどの関係をよく使用される JAN のウェイト 3-1 のモジュラス10を例に取って説明する。

数列 4 9 0 1 2 3 4 5 6 7 8 9
× × × × × × × × × × × ×
ウェイト 1 3 1 3 1 3 1 3 1 3 1 3

サム 4 +27 +0 +3 +2 +9 +4 +15 +6 +21 +8 +27 =126

126(サム)÷ 10(モジュラス)= 12 余り 6
10 − 6(余り)= 4(チェックデジット)

 この他に数列を直接モジュラスで割ってその余りをチェックデジットとするもの (7DR・9DR) や、モジュラスから余りを引いてチェックデジットとするもの (7DSR・9DSR) など、いろいろなものがあるが、ここでは割愛する。 詳しくは 『バーコードはやわかり』 を参照の事。