【文献】
Halevi, S. and Krawczyk, H.,MMH: Software Message Authentication in the Gbit/Second Rates,Lecture Notes in Computer Science,1997年,Vol.1267,p.172-189
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
以下、本発明の実施形態を説明する。
[概要]
本実施形態では、検知機能付加装置が検知符号Cを生成し、検知装置が入力された検知符号C(入力符号)を用いて改ざんおよび誤りの少なくとも一方を検知する。
【0010】
本形態の検知機能付加装置は、N個のブロックb
0,…,b
N−1のそれぞれのブロックb
nがM個の部分列c
n,0,…,c
n,M−1を含むものとし、部分列c
0,m,…,c
N−1,mに対して乗算を含む演算を行って部分検知符号C
mを得、部分検知符号C
0,…,C
M−1に対応する検知符号Cを得る。ただし、Nは1以上の整数であり、Mは2以上の整数であり、n=0,…,N−1であり、m=0,…,M−1である。乗算に必要な演算量は被演算子が長いほど大きくなり、通常、被演算子の長さの増加に対して指数関数的に増加する。本形態では、ブロックb
nよりも短い部分列c
n,mに対して乗算を含む演算を行うため、ブロックb
nに対して乗算を含む演算を行うよりも演算量を削減でき、高速化できる。このような演算は、例えば拡大体上で行われる。ある有限体F(p)(ただし、pは2以上の整数。例えば、p=2。)を基礎体とした拡大次数w(ただし、wは1以上の整数)の拡大体F(p
w)での演算は、有限体F(p)のw個の元からなる列の演算(例えば、w次元ベクトルの演算)として実装できる。
【0011】
ブロックb
0,…,b
N−1または部分列c
0,m,…,c
N−1,mは、検知機能付加装置にそのまま入力されてもよいし、検知機能付加装置に入力された処理単位ブロックB
0,…,B
Q−1から得られてもよい。後者の場合、処理単位ブロックB
0,…,B
Q−1そのものをブロックb
0,…,b
N−1としてもよいし、処理単位ブロックB
0,…,B
Q−1またはそれにパディングした列を再区分してブロックb
0,…,b
N−1または部分列c
0,m,…,c
N−1,mを得てもよい。ただし、処理単位ブロックB
qの長さが部分列c
n,mの長さLのK倍でとする。ここで、QおよびLは1以上の整数(例えば2以上の整数)であり、Kは2以上の整数であり、q=0,…,Q−1である。N>Qであってもよいし、N=Qであってもよいし、N<Qであってもよい。M>Kであってもよいし、M=Kであってもよいし、M<Kであってもよい。この場合、処理単位ブロックB
qよりも短い部分列c
n,mに対して乗算を含む演算を行うことになるため、処理単位ブロックB
qに対して乗算を含む演算を行うよりも演算量を削減でき、高速化できる。
【0012】
検知機能付加装置は、部分検知符号C
0,…,C
M−1そのものを検知符号C=(C
0,…,C
M−1)としてもよいし、部分検知符号C
0,…,C
M−1を被演算子とした線形結合演算によって得られる値を検知符号Cとしてもよい。前者の例はC
0,…,C
M−1の連結C
0|…|C
M−1である。後者の場合、線形結合演算が必要となるが、このような線形結合演算の演算量は非常に小さく、検知符号Cを得るための演算量の合計は、ブロックb
nまたは処理単位ブロックB
qごとに乗算を含む演算を行って検知符号Cを得るための演算量よりも小さい。線形結合演算の例は和であり、例えば、拡大体上の和(p=2の場合にはw個の元のそれぞれでの排他的論理和)である。
【0013】
検知符号Cの長さを処理単位ブロックB
qの長さと同一にしてもよい。例えば、検知機能付加装置が、部分検知符号C
0,…,C
M−1をK個の部分集合Sub
0,…,Sub
K−1に区分し、部分集合Sub
0,…,Sub
K−1のそれぞれについて部分集合Sub
kの要素の線形結合演算を行って、K個の中間検知符号SC
0,…,SC
K−1を得、中間検知符号SC
0,…,SC
K−1からなる長さがLのK倍である列を検知符号Cとしてもよい。ただし、各部分検知符号C
mの長さがLであり、k=0,…,K−1である。これにより、処理単位ブロックB
0,…,B
Q−1と検知符号Cとを同一長のブロックとして扱うことができ、取り扱い上の利便性が向上する。なお、M≧Kであってもよいし、M<Kであってもよい。部分集合Sub
0,…,Sub
K−1は互いに重複する要素を含んでいてもよいし、含んでいなくてもよい。一部の部分集合Sub
k’(ただし、k’∈{0,…,K−1})が空集合であってもよく、それに対応する中間検知符号SC
k’が固定値であってもよい。検知機能の面からは、K個の部分集合Sub
0,…,Sub
K−1の和集合が部分検知符号C
0,…,C
M−1を要素とする集合Setとなることが望ましいが、この和集合が集合Setの部分集合となってもよい。
【0014】
また、本形態の部分検知符号C
mはmごとに独立しているため、検知機能付加装置が、いくつか複数のmについて並列に前述の「乗算を含む演算」を行い、部分検知符号C
0,…,C
M−1を得てもよい。例えば、すべてのm=0,…,M−1について並列にこの演算を行い、部分検知符号C
0,…,C
M−1を得てもよい。これにより、演算速度をさらに向上できる。
【0015】
「乗算を含む演算」に特に限定はない。例えば、以下のように部分検知符号C
mを得る演算であってもよい。ただし、N≧2であり、R
mを任意値とする。
【数1】
式(1)の例の場合、検知機能付加装置は、例えば、任意値R
mを得、初期値C
0,m=R
m2c
0,mを得、i=0,…,N−2での再帰処理によって中間値C
i+1,m=(c
i+1,m+C
i,m)R
mを得、C
N−1,mを部分検知符号C
mとする。任意値R
mの例は、擬似乱数、乱数、または定数である。その他、C
m=c
0,mR
mN+1+c
1,mR
mN…+c
N−1,mR
mであってもよいし、C
m=c
0,mc
1,m…c
N−1,mであってもよいし、C
m=c
0,mR
m+c
1,mR
m…+c
N−1,mR
mであってもよい。
【0016】
処理単位ブロックB
0,…,B
Q−1またはブロックb
0,…,b
N−1および検知符号Cは検知装置に入力される。説明の便宜上、検知装置で扱う処理単位ブロックB
0,…,B
Q−1を「処理単位ブロックB’
0,…,B’
Q−1」と表記し、ブロックb
0,…,b
N−1を「ブロックb’
0,…,b’
N−1」と表記し、検知符号Cを「入力符号C’」と表記する。上述と同様、各ブロックb’
nはM個の部分列c’
n,0,…,c’
n,M−1を含む。部分列c’
n,0,…,c’
n,M−1は前述の部分列c
n,0,…,c
n,M−1と同じ基準に基づいて区分される。検知装置は、部分列c’
0,m,…,c’
N−1,mに対して乗算を含む演算を行って部分検知符号C’
mを得、部分検知符号C’
0,…,C’
M−1を被演算子とした線形結合演算を行って検知符号C”を得、入力符号C’と検知符号C”とが一致するかを判定する。ここで、C’=C”であれば成功とし、そうでなければ失敗とする。
【0017】
[第1実施形態]
図面を参照して、第1実施形態を説明する。
<構成>
図1に例示するように、本形態の検知システム1は、検知機能付加装置11および検知装置12を有し、インターネット等の安全ではないネットワーク13を通じて通信可能に構成されている。検知機能付加装置11は、入力部111、区分部112、部分処理部113、統合部114、合成部115、および出力部116を有する。
図2Aに例示するように、部分処理部113は、例えば、制御部1130、任意値選択部1131、初期値生成部1132−0〜1132−(M−1)、および再帰処理部1133−0〜1133−(M−1)を有する。
【0018】
検知装置12は、入力部121、区分部122、部分処理部123、統合部124、および判定部126を有する。
図2Bに例示するように、部分処理部123は、例えば、制御部1230、初期値生成部1232−0〜1232−(M−1)、および再帰処理部1233−0〜1233−(M−1)を有する。
【0019】
各装置は、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)およびRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される装置である。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。また、1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。
【0020】
<検知機能付加処理>
検知機能付加装置11(
図1)が、入力されたQ個の処理単位ブロックB
0,…,B
Q−1に検知符号Cを付加する処理を説明する。
図3に例示するように、まず、入力部111に処理単位ブロックB
0,…,B
Q−1が入力される。処理単位ブロックB
0,…,B
Q−1の例は、ブロック暗号方式の暗号文に含まれたブロックである。ただし、これは本発明を限定するものではない。例えば、時間フレームごとに区分された時系列データ、周波数バンドごとに区分された周波数領域データ、その他の区分データを処理単位ブロックB
0,…,B
Q−1としてもよい。また、本形態の処理単位ブロックB
q(ただし、q=0,…,Q−1)は、K×L個の有限体F(p)の元からなる列(長さK×L)である。例えば、p=2、L=64、K=2、w=128の場合、処理単位ブロックB
mは128ビット列である。入力された処理単位ブロックB
0,…,B
Q−1は、区分部112および合成部115に送られる(ステップS111)。
【0021】
区分部112は、処理単位ブロックB
0,…,B
Q−1からブロックb
0,…,b
N−1を得、さらに各ブロックb
mから部分列c
0,m,…,c
N−1,m(ただし、m=0,…,M−1)を得るか、または、処理単位ブロックB
0,…,B
Q−1から直接に部分列c
0,m,…,c
N−1,m(ただし、m=0,…,M−1)を得る。本形態の各ブロックb
n(ただし、n=0,…,N−1)は、M×L個の有限体F(p)の元からなる列(長さM×L)であり、M個の部分列c
n,0,…,c
n,M−1からなる。本形態の各部分列c
n,m(ただし、n=0,…,N−1)は、L個の有限体F(p)の元からなる列(長さL)であり、拡大次数Lの拡大体F(p
L)の元である。
図6Aおよび
図6Bは、K=MかつQ=Nの場合の例である。この場合には、処理単位ブロックB
qがそのままブロックb
nとなり、区分部112は処理単位ブロックB
q=b
nをK等分して部分列c
n,0,…,c
n,M−1を得る。この場合、B
q=b
n=(c
n,0,…,c
n,M−1)を満たす。
図7Aおよび
図7Bは、K<MかつQ>NかつK×L×Q=M×L×Nの場合の例である。この場合、区分部112は、処理単位ブロック(B
0,…,B
Q−1)全体をM×N等分して部分列c
0,0,…,c
0,M−1,…,c
N−1,0,…,c
N−1,M−1を得る。
図8Aは、M>KかつK×L×Q<M×L×Nの例である。この場合、区分部112は、処理単位ブロックB
0,…,B
Q−1に長さM×L×N−K×L×QのパディングPD(すなわち、M×L×N−K×L×Q個の有限体F(p)の元からなる列)を付加し、(B
0,…,B
Q−1,PD)全体をM×N等分して部分列c
0,0,…,c
0,M−1,…,c
N−1,0,…,c
N−1,M−1を得る。
図8Bは、M<KかつQ<NかつK×L×Q=M×L×Nの場合の例である。この場合、区分部112は、処理単位ブロック(B
0,…,B
Q−1)全体をM×N等分して部分列c
0,0,…,c
0,M−1,…,c
N−1,0,…,c
N−1,M−1を得る。
図8Cは、M<KかつK×L×Q<M×L×Nの例である。この場合、区分部112は、処理単位ブロックB
0,…,B
Q−1に長さM×L×N−K×L×QのパディングPDを付加し、(B
0,…,B
Q−1,PD)全体をM×N等分して部分列c
0,0,…,c
0,M−1,…,c
N−1,0,…,c
N−1,M−1を得る。部分列c
0,m,…,c
N−1,m(ただし、m=0,…,M−1)は部分処理部113に送られる(ステップS112)
【0022】
部分処理部113は、入力された部分列c
0,m,…,c
N−1,mに対し、拡大体F(p
L)上で乗算を含む演算を行って部分検知符号C
m∈F(p
L)(ただし、m=0,…,M−1)を得る(
図6Bおよび
図7B)。部分処理部113は、各mについて順番にこの演算を行ってもよいし、いくつか複数のmについて並列にこの演算を行ってもよい。
【0023】
≪部分処理部113の処理の具体例≫
N≧2であり、すべてのm=0,…,M−1について並列に前述の式(1)の演算を行って部分検知符号C
0,…,C
M−1を得る例を示す。
【0024】
図4に例示するように、部分処理部113の制御部1130(
図2A)がi:=0に設定する。なお、「α:=β」はαがβであると定義すること(αにβを代入すること)を意味する(ステップS1130a)。任意値選択部1131は、M個の任意値R
0,…,R
M−1を得る。ただし、R
m∈F(p
L)である。例えば、任意値選択部1131は、M×L個の拡大体F(p
L)の元からなる擬似乱数列Rを生成し、R:=(R
0,…,R
M−1)とする。擬似乱数に代え、予め定められたM×L個の拡大体F(p
L)の元(例えば、零元)からなる列(零ブロック)をRとしてもよい。各任意値R
m(ただし、m=0,…,M−1)は初期値生成部1132−mおよび再帰処理部1133−mに送られる(ステップS1131)。各初期値生成部1132−mは、部分列c
0,mおよび任意値R
mを入力とし、初期値C
0,m:=R
m2c
0,m∈F(p
L)を得て出力する。これらは各m=0,…,M−1について並列に実行され、(C
0,0,…,C
0,M−1):=(R
m2c
0,0,…,R
m2c
0,M−1)が得られる。各初期値C
0,mは再帰処理部1133−mに送られる(ステップS1132)。各再帰処理部1133−mは、C
i,m,c
i+1,m,R
mを用い、中間値C
i+1,m:=(c
i+1,m+C
i,m)R
m∈F(p
L)を得る。これらも並列に実行され、(C
i+1,0,…,C
i+1,M−1):=((c
i+1,0+C
i,0)R
0,…,(c
i+1,M−1+C
i,M−1)R
M−1)が得られる(ステップS1133a)。制御部1130は、i=N−2であるかを判定する。ここで、i=N−2でなければ、制御部1130は、i+1を新たなi(すなわち、i:=i+1)とし(ステップS1130c)、処理をステップS1133aに戻す。一方、i=N−2であれば、各再帰処理部1133−mは、C
N−1,mを部分検知符号C
m∈F(p
L)として出力する。これにより、部分検知符号C
0,…,C
M−1が得られる(ステップS1133b)。
【0025】
得られた部分検知符号C
0,…,C
M−1は統合部114に送られる(ステップS113)。
【0026】
統合部114は、部分検知符号C
0,…,C
M−1に対応する検知符号C∈F(p
L)を得て出力する(
図6Bおよび
図7B)。例えば、C=(C
0,…,C
M−1)としてもよいし、部分検知符号C
0,…,C
M−1を被演算子とした線形結合演算を行って検知符号Cを得てもよい。この線形結合演算は拡大体F(p
L)上で実行される。以下に線形結合演算の具体例を示す。
【0028】
≪例2≫
【数3】
ただし、m
evenは0以上M−1以下の偶数を表し、m
oddは0以上M−1以下の奇数を表す。
【0029】
得られた検知符号Cは合成部115に入力される。検知符号Cの生成過程で任意値R
0,…,R
M−1が利用された場合には、これらの任意値R
0,…,R
M−1も合成部115に送られる。ただし、任意値R
0,…,R
M−1が予め定められた値である場合にはこれらが合成部115に送られなくてもよい(ステップS114)。
【0030】
合成部115は、処理単位ブロックB
0,…,B
Q−1に検知符号Cを付加した列BS:=(B
0,…,B
Q−1,C)を得て出力する(
図6C)。任意値R
0,…,R
M−1が入力された場合、合成部115は、さらにこれらを付加した列BS:=(B
0,…,B
Q−1,C,R
0,…,R
M−1)を得て出力してもよい(
図7C)(ステップS114)。列BSは出力部116から出力され、ネットワーク13を通じて検知装置12に送られる(ステップS116)。
【0031】
<検知処理>
次に、検知装置12(
図1)による検知処理を説明する。
図3に例示するように、まず検知装置12に列BSが入力される。列BSは(B’
0,…,B’
Q−1,C’)または(B’
0,…,B’
Q−1,C’,R’
0,…,R’
M−1)である。列BSに改ざんや誤りがなければ、(B’
0,…,B’
Q−1)は(B
0,…,B
Q−1)であり、C’はCであり、(R’
0,…,R’
M−1)は(R
0,…,R
M−1)である。列BSは区分部122に送られ、列BSが含む入力符号C’は判定部126に送られる(ステップS121)。
【0032】
区分部122は、前述の区分部112と同じ基準に則って、列BSに含まれた処理単位ブロックB’
0,…,B’
Q−1からブロックb’
0,…,b’
N−1を得、さらに各ブロックb’
mから部分列c’
0,m,…,c’
N−1,m(ただし、m=0,…,M−1)を得るか、または、処理単位ブロックB’
0,…,B’
Q−1から直接に部分列c’
0,m,…,c’
N−1,m(ただし、m=0,…,M−1)を得る。本形態の各ブロックb’
n(ただし、n=0,…,N−1)は、M×L個の有限体F(p)の元からなる列(長さM×L)であり、M個の部分列c’
n,0,…,c’
n,M−1からなる。本形態の各部分列c’
n,m(ただし、n=0,…,N−1)は、L個の有限体F(p)の元からなる列(長さL)であり、拡大次数Lの拡大体F(p
L)の元である。部分列c’
0,m,…,c’
N−1,m(ただし、m=0,…,M−1)は部分処理部123に送られる。BS=(B’
0,…,B’
Q−1,C’,R’
0,…,R’
M−1)の場合には、(R’
0,…,R’
M−1)も部分処理部123に送られる(ステップS122)
【0033】
部分処理部123は、前述の部分処理部113と同じ基準に則って、入力された部分列c’
0,m,…,c’
N−1,mに対し、拡大体F(p
L)上で乗算を含む演算を行って部分検知符号C’
m∈F(p
L)(ただし、m=0,…,M−1)を得る。部分処理部123は、各mについて順番にこの演算を行ってもよいし、いくつか複数のmについて並列にこの演算を行ってもよい。
【0034】
≪部分処理部123の処理の具体例≫
N≧2であり、すべてのm=0,…,M−1について並列に前述の式(1)の演算を行って部分検知符号C’
0,…,C’
M−1を得る例を示す。
【0035】
図5に例示するように、部分処理部123の制御部1230(
図2B)がi:=0に設定する(ステップS1230a)。各初期値生成部1232−mは、部分列c’
0,mおよび任意値R’
mを用い、初期値C’
0,m:=R’
m2c’
0,m∈F(p
L)を得て出力する。なお、任意値R’
mは区分部122から送られたものであるか、予め定められた値(R’
m=R
m)である。これらは各m=0,…,M−1について並列に実行され、(C’
0,0,…,C’
0,M−1):=(R’
m2c
0,0,…,R’
m2c’
0,M−1)が得られる。各初期値C’
0,mは再帰処理部1233−mに送られる(ステップS1232)。各再帰処理部1233−mは、C’
i,m,c’
i+1,m,R’
mを用い、中間値C’
i+1,m:=(c’
i+1,m+C’
i,m)R’
m∈F(p
L)を得る。これらも並列に実行され、(C’
i+1,0,…,C’
i+1,M−1):=((c’
i+1,0+C’
i,0)R’
0,…,(c’
i+1,M−1+C’
i,M−1)R’
M−1)が得られる(ステップS1233a)。制御部1230は、i=N−2であるかを判定する。ここで、i=N−2でなければ、制御部1230は、i+1を新たなi(すなわち、i:=i+1)とし(ステップS1230c)、処理をステップS1233aに戻す。一方、i=N−2であれば、各再帰処理部1233−mは、C’
N−1,mを部分検知符号C’
m∈F(p
L)として出力する。これにより、部分検知符号C’
0,…,C’
M−1が得られる(ステップS1233b)。
【0036】
得られた部分検知符号C’
0,…,C’
M−1は統合部124に送られる(ステップS123)。
【0037】
統合部124は、前述の統合部114と同じ基準に則って、部分検知符号C’
0,…,C’
M−1に対応する検知符号C”∈F(p
L)を得て出力する。検知符号C”は判定部126に送られる(ステップS124)。
【0038】
判定部126は、入力符号C’と検知符号C”との等号判定を行う。ここで、C’=C”であれば、判定部126は、成功である(改ざんおよび誤りが存在しない)旨の結果を出力し(ステップS1252)、処理を終了する。一方、C’≠C”であれば、判定部126は、失敗である(改ざんまたは誤りが存在する)旨の結果を出力し(ステップS1253)、処理を終了する。
【0039】
[第2実施形態]
本形態は第1実施形態の変形例であり、検知符号Cの長さを処理単位ブロックB
qの長さと同一にする。本形態では、検知機能付加装置が、部分検知符号C
0,…,C
M−1をK個の部分集合Sub
0,…,Sub
K−1に区分し、部分集合Sub
0,…,Sub
K−1のそれぞれについて部分集合Sub
kの要素の線形結合演算を行って、K個の中間検知符号SC
0,…,SC
K−1を得、中間検知符号SC
0,…,SC
K−1からなる長さがLのK倍である列を検知符号Cとする。ただし、各部分検知符号C
mの長さはLであり、k=0,…,K−1であり、M≧Kである。以下ではこれまで説明した事項との相違点を中心に説明し、すでに説明した事項については既に使用された参照番号を引用して説明を簡略化する。
【0040】
<構成>
図1に例示するように、本形態の検知システム2は、検知機能付加装置21および検知装置22を有し、インターネット等の安全ではないネットワーク13を通じて通信可能に構成されている。検知機能付加装置21は、入力部111、区分部112、部分処理部113、統合部214、合成部115、および出力部116を有する。検知装置22は、入力部121、区分部122、部分処理部123、統合部224、および判定部126を有する。
図9Aに例示するように、本形態の統合部214は、区分部2141、線形結合部2142−0〜2142−(K−1)、および統合部2143を有する。
図9Bに例示するように、本形態の統合部224は、区分部2241、線形結合部2242−0〜2242−(K−1)、および統合部2143を有する。
【0041】
<検知機能付加処理>
第1実施形態との相違点は、ステップS114がステップS214に置換される点である。以下ではステップS214の処理のみを説明する。
【0042】
≪ステップS214の処理≫
統合部214(
図9A)の区分部2141に部分検知符号C
0,…,C
M−1が入力される。区分部2141は、M個の部分検知符号C
0,…,C
M−1をK個の部分集合Sub
0,…,Sub
K−1に区分する(
図10A)。この区分方法に限定はない。例えば、K=2とし、m=m
even(偶数)の部分検知符号C
mを部分集合Sub
0の要素とし、m=m
odd(奇数)の部分検知符号C
mを部分集合Sub
1の要素としてもよい。例えば、K=2、Yを1<Y<M−1の整数とし、Sub
0={C
0,…,C
Y},Sub
1={C
Y−1,…,C
M−1}としてもよい。例えば、2以上の整数TについてM=K×Tとし、Sub
k={C
T×k,…,C
T×k+T−1}としてもよい。例えば、K>Mとし、0≦k≦M−1についてSub
k={C
k}とし、M≦k≦K−1についてSub
k={固定値}としてもよい。各部分集合Sub
k(ただし、k=0,…,K−1)は、線形結合部2142−kに送られる。
【0043】
各線形結合部2142−kは、入力された部分集合Sub
kの要素の線形結合演算を行って中間検知符号SC
k∈F(p
L)を得て出力する。例えば、各線形結合部2142−kは、部分集合Sub
kの要素の和(拡大体F(p
L)上の和)によって中間検知符号SC
k∈F(p
L)を得る。例えば、m=m
even(偶数)の部分検知符号C
mを部分集合Sub
0の要素とし、m=m
odd(奇数)の部分検知符号C
mを部分集合Sub
1の要素とした場合、以下のように中間検知符号SC
0,SC
1を得る。
【数4】
得られたK個の中間検知符号SC
0,…,SC
K−1は統合部2143に送られる(
図10A)。なお、各中間検知符号SC
kは同一の線形結合演算によって得られてもよいし、そうでなくてもよい。また、中間検知符号SC
0,…,SC
K−1が並列に計算されてもよいし、そうでなくてもよい。
【0044】
統合部2143は、入力された中間検知符号SC
0,…,SC
K−1からなる長さがLのK倍である列を検知符号Cとして出力する。例えば、C=(SC
0,…,SC
K−1)を出力する(
図10A)。
【0045】
このように得られた検知符号Cの長さは、処理単位ブロックB
qの長さと同一(K×L)となり、列BSを長さK×Lのブロックに統一することができる(
図10B)。
【0046】
<検知処理>
第1実施形態との相違点は、ステップS124がステップS224に置換される点である。以下ではステップS224の処理のみを説明する。
【0047】
≪ステップS224の処理≫
統合部224(
図9B)の区分部2241に部分検知符号C’
0,…,C’
M−1が入力される。区分部2241は、区分部2141と同じ基準に則って、M個の部分検知符号C’
0,…,C’
M−1をK個の部分集合Sub’
0,…,Sub’
K−1に区分する。各部分集合Sub’
k(ただし、k=0,…,K−1)は、線形結合部2242−kに送られる。
【0048】
各線形結合部2242−kは、線形結合部2142−kと同じ基準に則って、入力された部分集合Sub’
kの要素の線形結合演算を行って中間検知符号SC’
k∈F(p
L)を得て出力する。得られたK個の中間検知符号SC’
0,…,SC’
K−1は統合部2243に送られる。
【0049】
統合部2243は、統合部2143と同じ基準に則って、入力された中間検知符号SC’
0,…,SC’
K−1からなる長さがLのK倍である列を検知符号C’として出力する。
【0050】
[その他の変形例等]
なお、本発明は上述の実施の形態に限定されるものではない。例えば、各装置がネットワークを通じて情報をやり取りするのではなく、少なくとも一部の組の装置が可搬型記録媒体を介して情報をやり取りしてもよい。或いは、少なくとも一部の組の装置が非可搬型の記録媒体を介して情報をやり取りしてもよい。すなわち、これらの装置の一部からなる組み合わせが、同一の装置であってもよい。
【0051】
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【0052】
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
【0053】
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0054】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
【0055】
上記実施形態では、コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されたが、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。