以下、本発明の実施形態を図面を参照しながら説明する。なお、本発明は、どのようなチェックデジット決定法を採用すればよいかに関するものであるが、その前提として、エラー検出劣化個数の導出が必要となるので、エラー検出劣化数導出装置1(図4参照;第一の実施形態)およびエラー検出劣化数導出装置2(図16参照;第二の実施形態)の説明を行なう。
本発明の実施形態にかかるエラー検出劣化数導出装置1(図4参照)を説明する前に、エラー検出劣化数導出装置1が適用されるチェックデジット(検査数字)の導出体系について説明する。
図1は、モジュラス10といわれるチェックデジットの導出法を説明するための図である。まず、図1(a)に示すように、銀行等の口座番号(情報数字)が店番号(三桁)および顧客番号(六桁)より構成されているとする。ここで、図1(b)に示すように、口座番号の各桁についてウェイト(重み付け係数)を割り当てる。なお、ウェイトは適宜設定できる。そして、図1(c)に示すように、口座番号の各桁の数値に、ウェイトを乗じた値の総和「41」(=1×1+0×3+…6×1)を求める。この総和「41」を、モジュラス「10」で割って、その余り「1」を得る(図1(d)参照)。ここで、DR方式(チェックデジット=余りそのもの)を用いれば、チェックデジット=1となる。しかし、本発明の実施形態においては、DSR方式(チェックデジット=モジュラス−余り)を用いるため、チェックデジット=10−1=9となる(図1(e)参照)。このようにして求めたチェックデジットを、本発明の実施形態においては、基本検査数字(CDV1)という。基本検査数字は、図1(f)に示すように、口座番号(情報数字)の末尾に付加される。このようなチェックデジットの導出法は、線形なものである。すなわち、検査数字が、情報数字の各桁の数値を取り出して求めた検査数字成分の総和となる。
これにより、基本検査数字を正しく入力できれば、口座番号(情報数字)の入力の誤りを検出できる場合が多い。例えば、図1(a)に示す口座番号(101,123456)の末尾一桁を誤って入力し、“101,123455”と入力したとする。なお、口座番号等における「,」は、店番号、顧客番号、検査数字を区切って表示するために入れているが、実際のデータに「,」が入っているわけではない。実際には、「,」は入力されないし、「,」が入っていないデータが処理対象となる。基本検査数字を正しく入力できたと仮定するので、“101,123455,9”と入力したことになる。すると、口座番号の各桁の数値に、ウェイトを乗じた値の総和は「40」となる。よって、基本検査数字は、10−0=10の末尾一桁の「0」となる。すると、入力から求めた基本検査数字と、正しく入力できた基本検査数字「9」と異なる。よって、入力から求めた基本検査数字と、入力された基本検査数字とを比較して異なっていれば入力誤りと判定すれば、口座番号の入力の誤りを検出できる。
ここで、本発明の実施形態にかかるチェックデジット(検査数字)の導出体系においては、派生検査数字をさらに使用することが特徴である。
図2は、派生検査数字を説明するための図である。まず、図2(a)に示すように、ある口座番号(情報数字)に対し、基本検査数字(CDV1)「9」が付加されている。ここで、基本検査数字とは異なる派生検査数字(CDV2)を求める。例えば、CDV2=CDV1+4とする(図2(b)参照)。ただし、CDV1+4>9の場合は、末尾の一桁をCDV2とする。図2(b)の例では、派生検査数字(CDV2)は「3」である。そして、図2(c)に示すように、図2(a)と同じ口座番号に対し、派生検査数字(CDV2)「4」を付加する。このようにすると、異なる顧客に同じ口座番号を付与しても、基本検査数字(CDV1)と派生検査数字(CDV2)とを使い分ければ、いずれの顧客の口座番号かを識別できる。なお、派生検査数字(CDV2)は、基本検査数字(CDV1)に基づいて導出される。基本検査数字(CDV1)は、口座番号に基づいて導出される。よって、派生検査数字(CDV2)は、口座番号(情報数字)に基づいて導出される。
図3は、異なる顧客に同じ口座番号(情報数字)を付与して、基本検査数字(CDV1)と派生検査数字(CDV2)とを使い分けた状態と、その問題点を説明するための図である。例えば、口座番号(100,000000)の基本検査数字(CDV1)は「9」、派生検査数字(CDV2)は「3」である。そこで、基本検査数字(CDV1)を付加した口座番号(100,000000,9)をP様に(図3(a)参照)、派生検査数字(CDV2)を付加した口座番号(100,000000,3)をQ様(図3(b)参照)に付与すれば、同じ口座番号(100,000000)を二人で使用できる。
このようなことを行なう利点を説明する。ある特定の本支店において使用できる顧客番号が106通りであるところ、顧客が多い店舗においては顧客番号が足りなくなる可能性がある。そこで、検査数字を使い分けて、同じ口座番号を二人で共用できれば、使用できる顧客番号が二倍に増加する。よって、顧客番号が足りなくなる可能性を減らすことができる。
しかし、その代償として、口座番号の入力エラー(入力者が本来、意図していない入力)を発見できる確率が減少するという現象が発生する。例えば、図3(c)に示すように、口座番号(500,000000)に派生検査数字(CDV2)「9」を付加した番号がR様に付与されるといったことが起こり得る。ここで、P様を示す意図で「100,000000,9」と入力すべきところ、最初の一桁目の入力を入力者が誤って「500,000000,9」と入力したとする(図3(d)参照)。基本検査数字(CDV1)だけを使用していれば、口座番号(500,000000)から求められる基本検査数字(CDV1)は「5」であり、実際に入力された検査数字「9」とは異なるので、P様を示す意図の入力においてエラーが発生したと判定できる。しかし、派生検査数字(CDV2)を併用しているので、口座番号(500,000000)から求められる派生検査数字(CDV2)は「9」であり、実際に入力された検査数字「9」と同じなので、R様を示す意図の入力であると判定してしまう。よって、P様を示す意図の入力においてエラーが発生したと判定することができない。これは、P様を指定したいという入力者の意図に反する。
このように、基本検査数字(CDV1)と派生検査数字(CDV2)とを併用することにより、口座番号の入力エラーを発見できる確率が減少する。そこで、(1)どの程度、入力エラーを発見できる確率が減少するか、(2)派生検査数字(CDV2)の導出法をどのようにすれば、入力エラーを発見できる確率の減少を少なくできるか、などといったことを把握することが、基本検査数字(CDV1)と派生検査数字(CDV2)との併用において好ましい。そこで、エラー検出劣化数導出装置1(図4参照)により、基本検査数字(CDV1)と派生検査数字(CDV2)との併用にあたって、どれだけエラー検出劣化個数が増大するかを導出して、上記のようなデータを把握する。
第一の実施形態
図4は、第一の実施形態にかかるエラー検出劣化数導出装置1の構成を示す機能ブロック図である。エラー検出劣化数導出装置1は、エラー種類決定部10、全パターン数カウンタ12、真正情報数字生成部22、第一基本検査数字導出部24、第一基本検査数字記録部26、第一派生検査数字導出部27、第一派生検査数字記録部28、エラー情報数字生成部32、第二基本検査数字導出部34、第二基本検査数字記録部36、第二派生検査数字導出部37、第二派生検査数字記録部38、第一エラー検出劣化個数カウンタ44、第二エラー検出劣化個数カウンタ46を備える。なお、第一の実施形態にかかるエラー検出劣化数導出装置1は、トランスポジションエラー(Transposition Error)およびダブルトランスポジションエラー(Double Transposition Error)に関するものである。
エラー種類決定部10は、エラー検出劣化個数の導出対象となるエラーの種類を決定する。エラーの種類には、例えば、トランスポジションエラー(Transposition Error)、ダブルトランスポジションエラー(Double Transposition Error)がある。なお、決定されたエラーの種類は、真正情報数字生成部22およびエラー情報数字生成部32に与えられる。
図5および図6は、エラーの種類を説明するための図である。
図5は、トランスポジションエラーを示す図である。トランスポジションエラーは、隣り合う任意の二桁における数値が入れ替わるエラーをいう。図5に示す例では、口座番号「123,000000」において、最初(最も左)の一桁とそれに隣り合う一桁とにおいて、エラーが発生している。すなわち、「12」と入力すべきところ、「21」と入力されている。
図6は、ダブルトランスポジションエラーを示す図である。ダブルトランスポジションエラーは、一桁離れた任意の二桁における数値が入れ替わるエラーをいう。図6に示す例では、口座番号「123,000000」において、最初(最も左)の一桁と一桁離れた桁(最初の桁から数えて三桁目)とにおいて、エラーが発生している。すなわち、「123」と入力すべきところ、「321」と入力されている。
真正情報数字生成部22は、エラーの種類を受けて、エラーを発生させる桁を決める。そして、エラーを発生させる桁に任意の値を代入する。エラーを発生させる桁以外の桁は所定値に固定する。このようにして、口座番号((真正な)情報数字X)を生成する。(真正な)情報数字Xという表記は、情報数字Xを仮に真正なもの(正規なもの)とおくことを意味している。
エラー情報数字生成部32は、仮に真正なものとおいた情報数字Xにエラーを発生させる桁にエラーを発生させる。エラーを発生させる桁以外の桁は所定値に固定する。このようにして、口座番号(エラー情報数字Xerr)を生成する。
全パターン数カウンタ12は、(真正な)情報数字Xおよびエラー情報数字Xerrの全パターン数を数える。なお、全パターン数からは、情報数字Xとエラー情報数字Xerrとが等しくなる場合の数を減じる。トランスポジションエラーの場合は、トランスポジションエラーが発生する桁の双方(例えば、一桁目と二桁目)において同じ数字をとる場合の10通り(例えば、一桁目と二桁目とが共に、0,1,2,3,4,5,6,7,8,9となる)を減じる。ダブルトランスポジションエラーの場合も同様に10通りを減じる。
図7は、エラーの種類がトランスポジションエラーであると決定された場合の、(真正な)情報数字(図7(a))およびエラー情報数字(図7(b))を示す図である。まず、図7(a)に示すように、真正情報数字生成部22は、エラーを発生させる桁(例、最初の一桁とそれに隣り合う一桁)を決め、任意の値(例、「12」)を代入する。エラーを発生させる桁以外の桁は所定値(例、「0」)に固定する。これにより、(真正な)情報数字Xが生成される。これは、情報数字のある桁の数値についてのみ検査数字を導出するためのものである。
次に、図7(b)に示すように、エラー情報数字生成部32は、エラーを発生させる桁にエラーを発生させる。すなわち、最初の一桁とそれに隣り合う一桁の値を入れ替える。すなわち「21」とする。エラーを発生させる桁以外の桁は所定値(例、「0」)に固定する。これにより、エラー情報数字Xerrが生成される。
図7に示す例は、真正な情報数字「120,000000」があった場合、最初の一桁とそれに隣り合う一桁においてトランスポジションエラーが発生すれば、「210,000000」という誤った入力(エラー情報数字)が発生することを意味する。
このとき、(真正な)情報数字は1パターンであり、それに対応してエラー情報数字が1パターン存在するので、1パターンの口座番号が考えられる。エラーを発生させる二桁における任意の値は10×10=100通り考えられるので、(真正な)情報数字およびエラー情報数字の全パターン数は、1×100=100パターンである。全パターン数カウンタ12は、全パターン数が100パターンであることを求める。ただし、トランスポジションエラーが発生する桁の双方において同じ数字をとる場合の10通りを減じるので、100−10=90通りを全パターン数とする。
図8は、エラーの種類がダブルトランスポジションエラーであると決定された場合の、(真正な)情報数字(図8(a))およびエラー情報数字(図8(b))を示す図である。まず、図8(a)に示すように、真正情報数字生成部22は、エラーを発生させる桁(例、最初の一桁と一桁離れた桁)を決め、任意の値(例、「1」と「3」)を代入する。エラーを発生させる桁以外の桁は所定値(例、「0」)に固定する。これにより、(真正な)情報数字Xが生成される。
次に、図8(b)に示すように、エラー情報数字生成部32は、エラーを発生させる桁にエラーを発生させる。すなわち、最初の一桁と一桁離れた桁の値を入れ替える。すなわち「3」と「1」とする。エラーを発生させる桁以外の桁は所定値(例、「0」)に固定する。これにより、エラー情報数字Xerrが生成される。
図8に示す例は、真正な情報数字「103,000000」があった場合、最初の一桁と一桁離れた桁においてダブルトランスポジションエラーが発生すれば、「301,000000」という誤った入力(エラー情報数字)が発生することを意味する。
このとき、(真正な)情報数字は1パターンであり、それに対応してエラー情報数字が1パターン存在するので、1パターンの口座番号が考えられる。エラーを発生させる二桁における任意の値は10×10=100通り考えられるので、(真正な)情報数字およびエラー情報数字の全パターン数は、1×100=100パターンである。全パターン数カウンタ12は、全パターン数が100パターンであることを求める。ただし、ダブルトランスポジションエラーが発生する桁の双方において同じ数字をとる場合の10通りを減じるので、100−10=90通りを全パターン数とする。
第一基本検査数字導出部24は、(真正な)情報数字Xに基づき、第一基本検査数字(CDV1)を導出する。第一基本検査数字(CDV1)の導出法は、図1を参照して説明したモジュラス10を用いる。ただし、ウェイトは適宜変更してもよいし、モジュラス11などを使用してもかまわない。
第二基本検査数字導出部34は、エラー情報数字Xerrに基づき、第二基本検査数字(CDV1’)を導出する。第二基本検査数字(CDV1’)の導出法は、第一基本検査数字導出部24と同じく、図1を参照して説明したモジュラス10を用いる。ただし、ウェイトは適宜変更してもよいし、モジュラス11などを使用してもかまわない。もちろん、第一基本検査数字導出部24と同じ方法でなければならない。
第一基本検査数字記録部26は、第一基本検査数字導出部24から第一基本検査数字(CDV1)を受けて、(真正な)情報数字Xに対応づけて記録する。第二基本検査数字記録部36は、第二基本検査数字導出部34から第二基本検査数字(CDV1’)を受けて、エラー情報数字Xerrに対応づけて記録する。
第一派生検査数字導出部27は、第一基本検査数字記録部26に記録された第一基本検査数字(CDV1)から第一派生検査数字(CDV2)を導出する。第一派生検査数字(CDV2)の導出法は、図2を参照して説明したように、CDV1+4の末尾一桁を第一派生検査数字(CDV2)とする。
第二派生検査数字導出部37は、第二基本検査数字記録部36に記録された第二基本検査数字(CDV1’)から第二派生検査数字(CDV2’)を導出する。第二派生検査数字(CDV2’)の導出法は、第一派生検査数字導出部27と同じく、図2を参照して説明したように、CDV1’+4の末尾一桁を第二派生検査数字(CDV2’)とする。
なお、第一派生検査数字導出部27および第二派生検査数字導出部37における派生検査数字の導出法は、エラー検出劣化数導出装置1の利用者によって適宜設定できる。例えば、CDV1+αの末尾一桁をCDV2とするようにして(α=1〜9までの整数)、αの各々の値に応じたCDV2、CDV2’を求めるようにしてもよい。
第一派生検査数字記録部28は、第一派生検査数字導出部27から第一派生検査数字(CDV2)を受けて、(真正な)情報数字Xに対応づけて記録する。第二派生検査数字記録部38は、第二派生検査数字導出部37から第二派生検査数字(CDV2’)を受けて、エラー情報数字Xerrに対応づけて記録する。
図9および図10は、トランスポジションエラーの場合の、第一基本検査数字記録部26および第二基本検査数字記録部36の記録内容を説明するための図である。
図9は、(真正な)情報数字Xの左から一桁目の値≦左から二桁目の値あるいは左から二桁目の値=0である場合を示す。図9(a)は、(真正な)情報数字Xに対応する第一基本検査数字(CDV1)を示す図である。図9(a)の読み方は、(真正な)情報数字Xの左から一桁目の値が「1」、左から二桁目の値が「2」であり、他の桁は「0」で固定した場合(すなわち、情報数字X=「120,000000」)、第一基本検査数字(CDV1)は、「3」ということを意味する。図9(b)は、エラー情報数字Xerrに対応する第二基本検査数字(CDV1’)を示す図である。図9(b)の読み方は、エラー情報数字Xerrの左から一桁目の値が「2」、左から二桁目の値が「1」であり、他の桁は「0」で固定した場合(すなわち、エラー情報数字Xerr=「210,000000」)、第二基本検査数字(CDV1’)は、「5」ということを意味する。
図10は、(真正な)情報数字Xの左から一桁目の値≧左から二桁目の値あるいは左から一桁目の値=0である場合を示す。図10(a)は、(真正な)情報数字Xに対応する第一基本検査数字(CDV1)を示す図である。図10(b)は、エラー情報数字Xerrに対応する第二基本検査数字(CDV1’)を示す図である。図10(a)および図10(b)の読み方は、図9と同様である。
なお、ダブルトランスポジションエラーについては、トランスポジションエラーの例(図9および図10参照)と同様である。すなわち、図9および図10における2桁目を3桁目に置き換え、しかも口座番号の3桁目に対応するウェイトを「3」にすれば、トランスポジションエラーの例と同様である。
第一エラー検出劣化個数カウンタ(第一エラー検出劣化個数計数手段)44は、第一基本検査数字記録部26の記録する第一基本検査数字(CDV1)と、第二派生検査数字記録部38の記録する第二派生検査数字(CDV2’)とが等しくなる個数を数える。数えた結果が、第一エラー検出劣化個数である。
第二エラー検出劣化個数カウンタ(第二エラー検出劣化個数計数手段)46は、第一派生検査数字記録部28の記録する第一派生検査数字(CDV2)と、第二基本検査数字記録部36の記録する第二基本検査数字(CDV1’)とが等しくなる個数を数える。数えた結果が、第二エラー検出劣化個数である。
図11および図12は、トランスポジションエラーにおける、第二エラー検出劣化個数カウンタ46の動作例を説明するための図である。
図11は、(真正な)情報数字Xの左から一桁目の値≦左から二桁目の値あるいは左から二桁目の値=0である場合を示す。図11(a)は、(真正な)情報数字Xに対応する第一派生検査数字(CDV2)を示す図である。読み方は図10と同様である。また、図11(b)は、トランスポジションエラーを検出できない(真正な)情報数字Xを表示した図である。例えば、CDV2(1,3)=CDV1’(3,1)=4であるので(CDV1’(3,1)の値については図9(b)を参照)、左から一桁目の値が「1」、左から二桁目の値が「3」である(真正な)情報数字Xにおいては、左から一桁目および二桁目において生じるトランスポジションエラーを発見できないことがわかる。CDV2(i,j)=CDV1’(j,i)となる(i,j)の組み合わせは図11においては11通りであり、第二エラー検出劣化個数=11となる。
図12は、(真正な)情報数字Xの左から一桁目の値≧左から二桁目の値あるいは左から一桁目の値=0である場合を示す。図12(a)は、(真正な)情報数字Xに対応する第一派生検査数字(CDV2)を示す図である。読み方は図10と同様である。また、図12(b)は、トランスポジションエラーを検出できない(真正な)情報数字Xを表示した図である。例えば、CDV2(4,1)=CDV1’(1,4)=7であるので(CDV1’(1,4)の値については図10(b)を参照)、左から一桁目の値が「4」、左から二桁目の値が「1」である(真正な)情報数字Xにおいては、左から一桁目および二桁目において生じるトランスポジションエラーを発見できないことがわかる。CDV2(i,j)=CDV1’(j,i)となる(i,j)の組み合わせは図12においては9通りであり、第二エラー検出劣化個数=9となる。
よって、トランスポジションエラーにおいて、第二エラー検出劣化個数カウンタ46は、第二エラー検出劣化個数を11+9=20とする。
図13および図14は、トランスポジションエラーにおける、第一エラー検出劣化個数カウンタ44の動作例を説明するための図である。
図13は、(真正な)情報数字Xの左から一桁目の値≧左から二桁目の値あるいは左から一桁目の値=0である場合を示す。図13(a)は、エラー情報数字Xerrに対応する第二派生検査数字(CDV2’)を示す図である。読み方は図10と同様である。また、図13(b)は、トランスポジションエラーを検出できない(真正な)情報数字Xを表示した図である。例えば、CDV2’(4,1)=CDV1(1,4)=7であるので(CDV1(1,4)の値については図9(a)を参照)、左から一桁目の値が「1」、左から二桁目の値が「4」である(真正な)情報数字Xにおいては、左から一桁目および二桁目において生じるトランスポジションエラーを発見できないことがわかる。CDV2’(i,j)=CDV1(j,i)となる(i,j)の組み合わせは図13においては9通りであり、第一エラー検出劣化個数=9となる。
図14は、(真正な)情報数字Xの左から一桁目の値≧左から二桁目の値あるいは左から一桁目の値=0である場合を示す。図14(a)は、エラー情報数字Xerrに対応する第二派生検査数字(CDV2’)を示す図である。読み方は図10と同様である。また、図14(b)は、トランスポジションエラーを検出できない(真正な)情報数字Xを表示した図である。例えば、CDV2’(1,3)=CDV1(3,1)=4であるので(CDV1(3,1)の値については図10(a)を参照)、左から一桁目の値が「3」、左から二桁目の値が「1」である(真正な)情報数字Xにおいては、左から一桁目および二桁目において生じるトランスポジションエラーを発見できないことがわかる。CDV2’(i,j)=CDV1(j,i)となる(i,j)の組み合わせは図14においては11通りであり、第一エラー検出劣化個数=11となる。
よって、トランスポジションエラーにおいて、第一エラー検出劣化個数カウンタ44は、第一エラー検出劣化個数を9+11=20とする。
なお、ダブルトランスポジションエラーにおいても、第一エラー検出劣化個数カウンタ44および第二エラー検出劣化個数カウンタ46は同様に動作する。
トランスポジションエラーにおいて、全パターン数カウンタ12は、全パターン数が100パターンであることを求める。さらに、第一エラー検出劣化個数=第二エラー検出劣化個数=20である。
よって、基本検査数字と派生検査数字とを併用した場合におけるエラーの発見確率は、第一エラー検出劣化個数(=第二エラー検出劣化個数)を全パターン数で割った値だけ劣化する。すなわち、20/(100−10)=およそ22%減少する。
本発明の実施形態においては、ウェイト(重み付け係数)が1、3の繰り返しなので、上記の通りである。しかし、ウェイトが、繰り返しではない(例えば、乱数)場合は必ずしも上記のようにはならない。一桁目と二桁目とにおいてトランスポジションエラーが発生した場合の第一エラー検出劣化個数(=第二エラー検出劣化個数)が、他の桁(例えば、二桁目と三桁目)においてトランスポジションエラーが発生した場合の第一エラー検出劣化個数(=第二エラー検出劣化個数)とは異なるからである。そこで、口座番号の全ての桁数を9とし、n桁目とn+1桁目とにおいてトランスポジションエラーが発生した場合の第一エラー検出劣化個数の総和を、n桁目とn+1桁目とにおける全パターン数の総和で割ったものをエラーの発見確率が劣化する割合とする(ただし、9−1≧n≧1)。すなわち、(1桁目と2桁目においてトランスポジションエラーが発生した場合の第一エラー検出劣化個数)+(2桁目と3桁目においてトランスポジションエラーが発生した場合の第一エラー検出劣化個数)+…+(8桁目と9桁目においてトランスポジションエラーが発生した場合の第一エラー検出劣化個数)を、(1桁目と2桁目とにおける全パターン数)+(2桁目と3桁目とにおける全パターン数)+…+(8桁目と9桁目とにおける全パターン数)で割ったものをエラーの発見確率が劣化する割合とする。
なお、エラー検出劣化数導出装置1は、さらに統計処理装置50を備えて、基本検査数字と派生検査数字とを併用した場合におけるエラーの発見確率が、基本検査数字のみを使用する場合のエラーの発見確率よりもどの程度減少するかを算出することが好ましい。
図15は、統計処理装置50の構成を示す機能ブロック図である。統計処理装置50は、切替器54、エラー検出劣化率算出部56を有する。
切替器54は、第一エラー検出劣化個数カウンタ44から第一エラー検出劣化個数を、あるいは第二エラー検出劣化個数カウンタ46から第二エラー検出劣化個数を受けて、エラー検出劣化率算出部56に出力する。第一エラー検出劣化個数カウンタ44および第二エラー検出劣化個数カウンタ46は、いずれか一方が動作していればよいので、どちらか動作している方から第一(第二)エラー検出劣化個数を受ければよい。
エラー検出劣化率算出部56は、全パターン数カウンタ12から全パターン数(90通り)を受け、切替器54から第一(あるいは第二)エラー検出劣化個数を受ける。そして、第一(あるいは第二)エラー検出劣化個数を基本エラー発見数で割る。割った値が、エラー検出劣化率である。すなわち、基本検査数字と派生検査数字とを併用した場合におけるエラーの発見確率が、基本検査数字のみを使用する場合のエラーの発見確率よりもどの程度減少するかを示す値である。
なお、エラー検出劣化率算出部56は、口座番号の全ての桁数を9とし、n桁目とn+1桁目とにおいてトランスポジションエラーが発生した場合の第一エラー検出劣化個数の総和を、n桁目とn+1桁目とにおける全パターン数の総和で割ったものをエラーの発見確率が劣化する割合とするようにしてもよい(ただし、9−1≧n≧1)。
次に、第一の実施形態の動作を説明する。
まず、エラー種類決定部10がエラー種類を決定する(図5および図6参照)。エラー種類は、真正情報数字生成部22およびエラー情報数字生成部32に与えられる。
真正情報数字生成部22は(真正な)情報数字Xを、エラー情報数字生成部32はエラー情報数字Xerrを生成する(図7〜8参照)。また、全パターン数カウンタ12は、(真正な)情報数字Xおよびエラー情報数字Xerrの全パターン数を数える。
第一基本検査数字導出部24は、(真正な)情報数字Xに基づき、第一基本検査数字(CDV1)を導出する(図1参照)。第二基本検査数字導出部34は、エラー情報数字Xerrに基づき、第二基本検査数字(CDV1’)を導出する(図1参照)。第一基本検査数字(CDV1)は、(真正な)情報数字Xに対応づけられて、第一基本検査数字記録部26に記録される(図9〜10参照)。第二基本検査数字(CDV1’)は、エラー情報数字Xerrに対応づけられて、第二基本検査数字記録部36に記録される(図9〜10参照)。
第一派生検査数字導出部27は、第一基本検査数字記録部26に記録された第一基本検査数字(CDV1)から第一派生検査数字(CDV2)を導出する(図2参照)。第二派生検査数字導出部37は、第二基本検査数字記録部36に記録された第二基本検査数字(CDV1’)から第二派生検査数字(CDV2’)を導出する(図2参照)。第一派生検査数字(CDV2)は、(真正な)情報数字Xに対応づけられて、第一派生検査数字記録部28に記録される(図11〜12参照)。第二派生検査数字(CDV2’)は、エラー情報数字Xerrに対応づけられて、第二派生検査数字記録部38に記録される(図13、14参照)。
第一エラー検出劣化個数カウンタ(第一エラー検出劣化個数計数手段)44は、第一基本検査数字記録部26の記録する第一基本検査数字(CDV1)と、第二派生検査数字記録部38の記録する第二派生検査数字(CDV2’)とが等しくなる個数を数える。数えた結果が、第一エラー検出劣化個数である(図13、14参照)。
第二エラー検出劣化個数カウンタ(第二エラー検出劣化個数計数手段)46は、第一派生検査数字記録部28の記録する第一派生検査数字(CDV2)と、第二基本検査数字記録部36の記録する第二基本検査数字(CDV1’)とが等しくなる個数を数える。数えた結果が、第二エラー検出劣化個数である(図11〜12参照)。
次に、エラー検出劣化率算出部56が、第一エラー検出劣化個数カウンタ44から第一エラー検出劣化個数を、あるいは第二エラー検出劣化個数カウンタ46から第二エラー検出劣化個数を、切替器54を介して受ける。エラー検出劣化率算出部56は、さらに、基本エラー発見数を基本エラー発見数算出部52から受ける。そこで、エラー検出劣化率が下記の式により求められる。(第一(第二)エラー検出劣化個数)/(全パターン数)=(エラー検出劣化率)。例えば、トランスポジションエラーの場合、全パターン数=90、第一(第二)エラー検出劣化個数=20なので、エラー検出劣化率=20/90=およそ22%となる。
第一の実施形態によれば、基本検査数字(CDV1)と派生検査数字(CDV2)とを併用することにより、基本検査数字(CDV1)のみを使用する場合に比べて、口座番号の入力エラーを発見できる確率がどれほど減少するかを、エラー検出劣化率として求めることができる。
第二の実施形態
図16は、第二の実施形態にかかるエラー検出劣化数導出装置2の構成を示す機能ブロック図である。エラー検出劣化数導出装置2は、エラー種類決定部10、全パターン数カウンタ12、情報数字生成部62、基本検査数字導出部64、基本検査数字記録部66、派生検査数字導出部68、CDV発生回数カウンタ72、CDV発生回数記録部74、エラー検出劣化数導出部82を備える。なお、第二の実施形態にかかるエラー検出劣化数導出装置1は、トランスクリプションエラー(Transcription Error)に関するものである。
エラー種類決定部10は、エラー検出劣化個数の導出対象となるエラーの種類を決定する。エラーの種類には、例えば、トランスクリプションエラー(Transcription Error)がある。なお、決定されたエラーの種類は、情報数字生成部62に与えられる。
図17は、トランスクリプションエラーを示す図である。トランスクリプションエラーは、任意の一桁における数値の入力エラーをいう。図17に示す例では、口座番号「123,000000」において、最初(最も左)の一桁において、エラーが発生している。すなわち、「1」と入力すべきところ、「5」と入力されている。
情報数字生成部62は、エラーの種類を受けて、ある桁(例えば、左から一桁目)に全ての値を代入する。その他の桁は所定値に固定する。
図18は、エラーの種類がトランスクリプションエラーであると決定された場合の、情報数字生成部62の出力する情報数字Xを示す図である。まず、情報数字生成部62は、ある桁(例、最初(最も左)の一桁)を決め、全ての値を代入する。それ以外の桁は所定値(例、「0」)に固定する。これにより、情報数字Xが生成される。
このとき、全部で10パターンの情報数字Xが存在するので、全パターン数カウンタ12は、全パターン数が10パターンであることを求める。
基本検査数字導出部64は、情報数字Xに基づき、基本検査数字(CDV1)を導出する。基本検査数字(CDV1)の導出法は、図1を参照して説明したモジュラス10を用いる。ただし、ウェイトは適宜変更してもよいし、モジュラス11などを使用してもかまわない。基本検査数字記録部66は、基本検査数字導出部64の出力を記録する。
図19は、トランスクリプションエラーの場合の、基本検査数字記録部66の記録内容を説明するための図である。基本検査数字記録部66の記録内容によれば、情報数字Xは「100,000000」、「200,000000」、「300,000000」〜「900,000000」、「000,000000」であり、基本検査数字(CDV1)はそれぞれ「9」、「8」、「7」〜「1」、「0」である。
派生検査数字導出部67は、基本検査数字記録部66に記録された基本検査数字(CDV1)から派生検査数字(CDV2)を導出する。派生検査数字(CDV2)の導出法は、図2を参照して説明したように、CDV1+4の末尾一桁を派生検査数字(CDV2)とする。派生検査数字記録部68は、派生検査数字導出部67の出力を記録する。
図20は、トランスクリプションエラーの場合の、派生検査数字記録部68の記録内容を説明するための図である。派生検査数字記録部68の記録内容によれば、情報数字Xは「100,000000」、「200,000000」、「300,000000」〜「900,000000」、「000,000000」であり、派生検査数字(CDV1)はそれぞれ「3」、「2」、「1」〜「5」、「4」である。
CDV発生回数カウンタ72は、基本検査数字記録部66における基本検査数字(CDV1)の発生回数を数える。しかも、CDV発生回数カウンタ72は、基本検査数字記録部66および派生検査数字記録部68における検査数字(CDV1、CDV2)の発生回数を数える。
CDV発生回数記録部74は、CDV発生回数カウンタ72による計数結果を記録する。図21は、基本検査数字記録部66における基本検査数字(CDV1)の発生回数を示す図である。図19を参照すれば明らかなように、基本検査数字(CDV1)の「0」、「1」、…、「9」はそれぞれ一回しか現れていない。
また、図22は、検査数字(CDV1、CDV2)をあわせて示す図である。例えば、情報数字の最初の一桁が「1」である場合、基本検査数字(CDV1)は「9」である。この「9」という数字は、派生検査数字(CDV2)に一回現れる(情報数字の最初の一桁が「5」である場合)。よって、「9」という数字は二回現れる。
図23は、基本検査数字記録部66および派生検査数字記録部68における検査数字(CDV1、CDV2)の発生回数を示す図である。検査数字(CDV1、CDV2)の「0」、「1」、…、「9」はそれぞれ二回現れる。
エラー検出劣化数導出部82は、基本検査数字(CDV1)のみを使用した場合のエラー検出率を導出し、さらに、基本検査数字(CDV1)および派生検査数字(CDV2)を使用した場合のエラー検出率を検査数字ごとに導出する。なお、エラー検出率は、以下のようにして求める。
(1)検査数字の発生回数が1回である場合
1(=100%)
(2)検査数字の発生回数が2回以上である場合
1−(発生回数)/(全パターン数)
これは、下記のような理由による。検査数字の発生回数が1回である場合は、情報数字と検査数字との関係が一意に定まるため、入力エラーを確実に検出できる。検査数字の発生回数が2回以上である場合は、情報数字と検査数字との関係が一意に定まるもののみ入力エラーを確実に検出できるとみる。
なお、検査数字の発生回数は錯誤が生じ得る個数であるといえる。また、錯誤とは、入力者が意図する情報数字と実際に入力された情報数字とが異なることをいう。
基本検査数字(CDV1)の「0」、「1」、…、「9」はそれぞれ一回しか現れていないため、基本検査数字(CDV1)のみを使用した場合のエラー検出率=1である。
検査数字(CDV1、CDV2)の「0」、「1」、…、「9」はそれぞれ二回現れるため、基本検査数字(CDV1)および派生検査数字(CDV2)を使用した場合のエラー検出率=1−2/10=0.8である。例えば、図22を参照して、検査数字「9」については、情報数字の最初の一桁が「1」、「5」の場合は、情報数字と検査数字との関係が一意に定まらないので、入力エラーを確実に検出できない。情報数字の最初の一桁が「1」、「5」の場合以外(8通り)は、情報数字と検査数字との関係が一意に定まるので、入力エラーを確実に検出できる。よって、エラー検出率=8/10=0.8である。
なお、検査数字に関するエラー検出率の、全ての検査数字についての平均を求めるようにしてもよい。例えば、上記の例では、検査数字「9」については、エラー検出率=8/10=0.8であり、他の検査数字「0」、…、「8」についても、エラー検出率=0.8である。よって、平均もまた0.8である。なお、ウェイトおよびαを変えれば、検査数字「0」、「2」、…、「8」(0および偶数)についてはエラー検出率=0.6、検査数字「1」、「3」、…、「9」(奇数)についてはエラー検出率=1ということも生じ得る。この場合、平均=(0.6×5+1×5)/10=0.8ということになる。
また、全ての桁についての平均を求めるようにしてもよい。1,3,5,7,9桁目について平均=0.8であり、2,4,6,8桁目について平均=0.6である場合、平均=(0.8×5+0.6×4)/9=0.71ということになる。
次に、第二の実施形態の動作を説明する。
まず、エラー種類決定部10がエラー種類を決定する(図17参照)。エラー種類は、情報数字生成部62に与えられる。
情報数字生成部62は情報数字Xを生成する(図18参照)。また、全パターン数カウンタ12は、情報数字Xの全パターン数を数える。
基本検査数字導出部64は、情報数字Xに基づき、基本検査数字(CDV1)を導出する(図1参照)。基本検査数字(CDV1)は、情報数字Xに対応づけられて、基本検査数字記録部66に記録される(図19参照)。
派生検査数字導出部67は、基本検査数字記録部66に記録された基本検査数字(CDV1)から派生検査数字(CDV2)を導出する(図2参照)。派生検査数字(CDV2)は、情報数字Xに対応づけられて、派生検査数字記録部68に記録される(図20参照)。
CDV発生回数カウンタ72は、基本検査数字記録部66における基本検査数字(CDV1)の発生回数を数える。しかも、CDV発生回数カウンタ72は、基本検査数字記録部66および派生検査数字記録部68における検査数字(CDV1、CDV2)の発生回数を数える。計数結果は、CDV発生回数記録部74に記録される。CDV発生回数記録部74に記録された計数結果に基づき、エラー検出劣化数導出部82がエラー検出率を導出する。
第二の実施形態によれば、基本検査数字(CDV1)と派生検査数字(CDV2)とを併用した場合のエラー検出率を導出することができる。
以上、第一および第二の実施形態として、チェックデジット決定法を採用する際の前提となるエラー検出劣化数導出装置1、2を説明した。これより、好ましいチェックデジット決定法について説明し、さらに好ましいチェックデジット決定法を適用した口座番号付与装置3(図25参照)および口座番号検査装置4(図27参照)を説明する。
ここで、CDV1+αの末尾一桁をCDV2とするようにして(α=1〜9までの整数)、αの各々の値に応じたCDV2、CDV2’を求めるようにしてもよいので、αの各々の値に応じたエラー検出劣化率を求めることもできる。これにより、エラー検出劣化率が低いαを決定することができる。
実際に、CDV1、CDV1’の求め方としてモジュラス10(DSR方式)を採用し、ウェイトを様々に変えて、本発明の実施形態にかかるエラー検出劣化数導出装置1により、エラー検出劣化率を求めてみたところ、任意の情報数字につき、αが5以外の奇数(1,3,7,9)であれば、それ以外の場合に比べて相対的にエラー検出劣化率が低い(あるいは同じ)ということがわかった。詳しくは、表1に記載の通りである。
なお、図29にウェイトが全ての桁について偶数または奇数の場合の一例を示す。図30にウェイトが奇数桁について偶数(奇数)、偶数桁について奇数(偶数)の場合の一例を示す。図31にウェイトが最初の桁から0、偶数、0、奇数あるいは0、奇数、0、偶数の繰り返しである場合の一例を示す。図32にウェイトが最初の桁から偶数、0、奇数、0あるいは奇数、0、偶数、0の繰り返しである場合の一例を示す。
図24に、口座番号の入力に使用されるキーの配置を示す。パーソナルコンピュータ等に使用されるテンキーの配列を想定している。なお、正方形の各キーの一辺の長さを1とする。
本発明の実施形態においては検査数字(チェックデジット)の入力エラーは無いことが前提となっている。そこで、CDV1+αの末尾一桁をCDV2とした場合、CDV1のキーとCDV2のキーとがある程度離れていることが好ましい。CDV1のキーとCDV2のキーとの距離が近いと、CDV1(CDV2)のキーを打つつもりで、CDV2(CDV1)のキーを打ってしまうことが起きやすいからである。検査数字のミスについては担保しないので、物理的な距離により担保するということである。
このことをふまえてαを定めると、表2に記載のようにαが定まる。すなわち、CDV1に応じて、αを変更することが好ましい。CDV1が「1」の場合、αの候補(1,3,7,9)の内、α=7であれば、最もCDV2「8」のキーと、CDV1「1」のキーとが離れることになる。一方、CDV1が「3」の場合、αの候補(1,3,7,9)の内、α=1であれば、最もCDV2「4」のキーと、CDV1「3」のキーとが離れることになる。このように、キー間の距離が最大になるようにαを決めるとよい。なお、キー間の距離は、キーの図心間の距離である。キーの図心は、キーが正方形または長方形であれば、対角線の交点となる。
なお、上記(表2参照)のように定めた基本検査数字(CDV1)と派生検査数字(CDV2)とを併用した口座番号を利用する装置の構成を示す。
図25は、口座番号付与装置(番号生成装置)3の構成を示す機能ブロック図である。口座番号付与装置2は、同じ口座番号の情報部分に、基本検査数字(CDV1)を付与した第一組織数字と、派生検査数字(CDV2)を付与した第二組織数字とを生成するものである。
口座番号付与装置3は、情報数字生成部62、基本検査数字導出部64、基本検査数字記録部66、派生検査数字導出部67、派生検査数字記録部68、第一組織数字生成部162、第二組織数字生成部164、口座情報記録部166を備える。
情報数字生成部62、基本検査数字導出部64、基本検査数字記録部66、派生検査数字導出部67、派生検査数字記録部68は先に説明したエラー検出劣化数導出装置2と同様なので、説明を省略する。ただし、情報数字生成部62には、特にエラーを発生させる桁を決めて与えることは無い。
第一組織数字生成部162は、情報数字生成部62が生成した(真正な)情報数字Xの末尾に、基本検査数字記録部66に記録された第一基本検査数字(CDV1)を付加して、第一組織数字を生成する。
第二組織数字生成部164は、情報数字生成部62が生成した(真正な)情報数字Xの末尾に、派生検査数字記録部68に記録された第一派生検査数字(CDV2)を付加して、第二組織数字を生成する。
口座情報記録部166は、第一組織数字および第二組織数字と、顧客情報(氏名など)とを対応づけて記録する。口座情報記録部166の記録内容を図26に示す。(真正な)情報数字Xが「100,000000」であるとする。第一基本検査数字(CDV1)は「9」、第一派生検査数字(CDV2)は「3」である。すると、図26(a)に示すように、第一組織数字は「100,000000,9」、図26(b)に示すように、第二組織数字は「100,000000,3」となる。第一組織数字に口座名義人P様を対応づけ、第二組織数字に口座名義人Q様を対応づけて口座情報記録部166に記録しておく。
口座番号付与装置3の動作を説明する。
まず、情報数字生成部62が(真正な)情報数字X(例えば、「100,000000」)を生成する。基本検査数字導出部64により第一基本検査数字(CDV1)「9」が求められ、基本検査数字記録部66に記録される。派生検査数字導出部67により第一派生検査数字(CDV2)「3」が求められ、派生検査数字記録部68に記録される。
第一組織数字生成部162は、(真正な)情報数字Xの末尾に、第一基本検査数字(CDV1)「9」を付加して第一組織数字「100,000000,9」を生成する。第二組織数字生成部164は、(真正な)情報数字Xの末尾に、第一派生検査数字(CDV2)「3」を付加して第二組織数字は「100,000000,3」を生成する。
口座情報記録部166は、第一組織数字「100,000000,9」に口座名義人P様を対応づけ、第二組織数字は「100,000000,3」に口座名義人Q様を対応づけて記録する。
図27は、口座番号検査装置(番号検査装置)4の構成を示す機能ブロック図である。口座番号付与装置4は、第一組織数字および第二組織数字が正確に入力されたか否かを検査するためのものである。
ATM(入力機器)6には、図24に示すような配置のキーが設けられている。ATM6を利用する顧客は、ATM6に設けられたキー(図24参照)により口座番号(第一組織数字あるいは第二組織数字である)を入力する。入力された口座番号はネットワーク7を介して口座番号検査装置4に与えられる。
口座番号検査装置4は、検査数字分離部172、入力番号検査部174、基本検査数字導出部64、基本検査数字記録部66、派生検査数字導出部67、派生検査数字記録部68を備える。
基本検査数字導出部64、基本検査数字記録部66、派生検査数字導出部67、派生検査数字記録部68は先に説明したエラー検出劣化数導出装置2と同様なので、説明を省略する。
検査数字分離部172は、入力された口座番号から末尾一桁を分離して検査数字を得る。残りは、情報数字である。基本検査数字導出部64は、検査数字分離部172から情報数字を与えられ、第一基本検査数字(CDV1)を導出する。
入力番号検査部174は、検査数字分離部172から検査数字を得る。また、基本検査数字記録部66から第一基本検査数字(CDV1)を、派生検査数字記録部68から第一派生検査数字(CDV2)を得る。そして、検査数字が、第一基本検査数字(CDV1)あるいは第一派生検査数字(CDV2)と等しいならば、正当な入力であると判定する。検査数字が、第一基本検査数字(CDV1)および第一派生検査数字(CDV2)のいずれにも等しくないならば、誤った入力であると判定する。
口座番号検査装置4の動作を図28を参照して説明する。
ATM6により、口座番号(例えば、第一組織数字「100,000000,9」)と入力すべきところ、誤って「200,000000,9」と入力したとする。誤入力「200,000000,9」は、ネットワーク7を介して、検査数字分離部172に与えられる。検査数字分離部172は末尾一桁「9」を検査数字として、入力番号検査部174に与える。末尾一桁を除いた残り「200,000000」を基本検査数字導出部64に与える。
基本検査数字導出部64により第一基本検査数字(CDV1)「8」が求められ、基本検査数字記録部66に記録される。派生検査数字導出部67により第一派生検査数字(CDV2)「2」が求められ、派生検査数字記録部68に記録される。
入力番号検査部174は、検査数字「9」を、第一基本検査数字(CDV1)「8」および第一派生検査数字(CDV2)「2」と比較して、いずれにも合致しないので、入力エラーであると判定する。
なお、上記の口座番号付与装置3および口座番号検査装置4は、以下のようにして実現できる。CPU、ハードディスク、メディア(フロッピー(登録商標)ディスク、CD−ROMなど)読み取り装置を備えたコンピュータのメディア読み取り装置に、上記の各部分を実現するプログラムを記録したメディアを読み取らせて、ハードディスクにインストールする。このような方法でも、口座番号付与装置3および口座番号検査装置4を実現できる。