JP6023852B1 - 検知機能付加装置、検知装置、およびプログラム - Google Patents
検知機能付加装置、検知装置、およびプログラム Download PDFInfo
- Publication number
- JP6023852B1 JP6023852B1 JP2015109793A JP2015109793A JP6023852B1 JP 6023852 B1 JP6023852 B1 JP 6023852B1 JP 2015109793 A JP2015109793 A JP 2015109793A JP 2015109793 A JP2015109793 A JP 2015109793A JP 6023852 B1 JP6023852 B1 JP 6023852B1
- Authority
- JP
- Japan
- Prior art keywords
- partial
- detection
- processing unit
- detection code
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
【課題】改ざんや誤りの検知機能を付加するための演算を高速化する。【解決手段】Nが1以上の整数であり、Mが2以上の整数であり、n=0,…,N−1であり、m=0,…,M−1であり、N個のブロックb0,…,bN−1のそれぞれのブロックbnがM個の部分列cn,0,…,cn,M−1を含むものとする。部分列c0,m,…,cN−1,mに対して乗算を含む演算を行って部分検知符号Cmを得、部分検知符号C0,…,CM−1に対応する検知符号を得る。【選択図】図1
Description
本発明は、データの改ざんまたは誤りを検知する技術に関する。
暗号文の改ざんまたは誤りを検知する機能(以下「検知機能」)を有するブロック暗号方式としてGCM(Galois/Counter Mode)がある(例えば、非特許文献1参照)。
NIST: Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC, NIST Special Publication 800-38D, November, 2007.
GCMでは「検知機能」を付加するためにブロックごとに乗算を含む演算を行う必要があり、その処理速度に改善の余地がある。これはGCMに限られたことではなく、ブロックごとに区分されたデータに対し、ブロックごとの乗算を含む演算を行って「検知機能」を付加する場合に共通する。
本発明の課題は、検知機能を付加するための演算を高速化することである。
本発明では、Nが1以上の整数であり、Mが2以上の整数であり、n=0,…,N−1であり、m=0,…,M−1であり、N個のブロックb0,…,bN−1のそれぞれのブロックbnがM個の部分列cn,0,…,cn,M−1を含む。部分列c0,m,…,cN−1,mに対して乗算を含む演算を行って部分検知符号Cmを得、部分検知符号C0,…,CM−1に対応する検知符号を得る。
これにより、検知機能を付加するための演算を高速化できる。
以下、本発明の実施形態を説明する。
[概要]
本実施形態では、検知機能付加装置が検知符号Cを生成し、検知装置が入力された検知符号C(入力符号)を用いて改ざんおよび誤りの少なくとも一方を検知する。
[概要]
本実施形態では、検知機能付加装置が検知符号Cを生成し、検知装置が入力された検知符号C(入力符号)を用いて改ざんおよび誤りの少なくとも一方を検知する。
本形態の検知機能付加装置は、N個のブロックb0,…,bN−1のそれぞれのブロックbnがM個の部分列cn,0,…,cn,M−1を含むものとし、部分列c0,m,…,cN−1,mに対して乗算を含む演算を行って部分検知符号Cmを得、部分検知符号C0,…,CM−1に対応する検知符号Cを得る。ただし、Nは1以上の整数であり、Mは2以上の整数であり、n=0,…,N−1であり、m=0,…,M−1である。乗算に必要な演算量は被演算子が長いほど大きくなり、通常、被演算子の長さの増加に対して指数関数的に増加する。本形態では、ブロックbnよりも短い部分列cn,mに対して乗算を含む演算を行うため、ブロックbnに対して乗算を含む演算を行うよりも演算量を削減でき、高速化できる。このような演算は、例えば拡大体上で行われる。ある有限体F(p)(ただし、pは2以上の整数。例えば、p=2。)を基礎体とした拡大次数w(ただし、wは1以上の整数)の拡大体F(pw)での演算は、有限体F(p)のw個の元からなる列の演算(例えば、w次元ベクトルの演算)として実装できる。
ブロックb0,…,bN−1または部分列c0,m,…,cN−1,mは、検知機能付加装置にそのまま入力されてもよいし、検知機能付加装置に入力された処理単位ブロックB0,…,BQ−1から得られてもよい。後者の場合、処理単位ブロックB0,…,BQ−1そのものをブロックb0,…,bN−1としてもよいし、処理単位ブロックB0,…,BQ−1またはそれにパディングした列を再区分してブロックb0,…,bN−1または部分列c0,m,…,cN−1,mを得てもよい。ただし、処理単位ブロックBqの長さが部分列cn,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であってもよい。この場合、処理単位ブロックBqよりも短い部分列cn,mに対して乗算を含む演算を行うことになるため、処理単位ブロックBqに対して乗算を含む演算を行うよりも演算量を削減でき、高速化できる。
検知機能付加装置は、部分検知符号C0,…,CM−1そのものを検知符号C=(C0,…,CM−1)としてもよいし、部分検知符号C0,…,CM−1を被演算子とした線形結合演算によって得られる値を検知符号Cとしてもよい。前者の例はC0,…,CM−1の連結C0|…|CM−1である。後者の場合、線形結合演算が必要となるが、このような線形結合演算の演算量は非常に小さく、検知符号Cを得るための演算量の合計は、ブロックbnまたは処理単位ブロックBqごとに乗算を含む演算を行って検知符号Cを得るための演算量よりも小さい。線形結合演算の例は和であり、例えば、拡大体上の和(p=2の場合にはw個の元のそれぞれでの排他的論理和)である。
検知符号Cの長さを処理単位ブロックBqの長さと同一にしてもよい。例えば、検知機能付加装置が、部分検知符号C0,…,CM−1をK個の部分集合Sub0,…,SubK−1に区分し、部分集合Sub0,…,SubK−1のそれぞれについて部分集合Subkの要素の線形結合演算を行って、K個の中間検知符号SC0,…,SCK−1を得、中間検知符号SC0,…,SCK−1からなる長さがLのK倍である列を検知符号Cとしてもよい。ただし、各部分検知符号Cmの長さがLであり、k=0,…,K−1である。これにより、処理単位ブロックB0,…,BQ−1と検知符号Cとを同一長のブロックとして扱うことができ、取り扱い上の利便性が向上する。なお、M≧Kであってもよいし、M<Kであってもよい。部分集合Sub0,…,SubK−1は互いに重複する要素を含んでいてもよいし、含んでいなくてもよい。一部の部分集合Subk’(ただし、k’∈{0,…,K−1})が空集合であってもよく、それに対応する中間検知符号SCk’が固定値であってもよい。検知機能の面からは、K個の部分集合Sub0,…,SubK−1の和集合が部分検知符号C0,…,CM−1を要素とする集合Setとなることが望ましいが、この和集合が集合Setの部分集合となってもよい。
また、本形態の部分検知符号Cmはmごとに独立しているため、検知機能付加装置が、いくつか複数のmについて並列に前述の「乗算を含む演算」を行い、部分検知符号C0,…,CM−1を得てもよい。例えば、すべてのm=0,…,M−1について並列にこの演算を行い、部分検知符号C0,…,CM−1を得てもよい。これにより、演算速度をさらに向上できる。
「乗算を含む演算」に特に限定はない。例えば、以下のように部分検知符号Cmを得る演算であってもよい。ただし、N≧2であり、Rmを任意値とする。
式(1)の例の場合、検知機能付加装置は、例えば、任意値Rmを得、初期値C0,m=Rm 2c0,mを得、i=0,…,N−2での再帰処理によって中間値Ci+1,m=(ci+1,m+Ci,m)Rmを得、CN−1,mを部分検知符号Cmとする。任意値Rmの例は、擬似乱数、乱数、または定数である。その他、Cm=c0,mRm N+1+c1,mRm N…+cN−1,mRmであってもよいし、Cm=c0,mc1,m…cN−1,mであってもよいし、Cm=c0,mRm+c1,mRm…+cN−1,mRmであってもよい。
式(1)の例の場合、検知機能付加装置は、例えば、任意値Rmを得、初期値C0,m=Rm 2c0,mを得、i=0,…,N−2での再帰処理によって中間値Ci+1,m=(ci+1,m+Ci,m)Rmを得、CN−1,mを部分検知符号Cmとする。任意値Rmの例は、擬似乱数、乱数、または定数である。その他、Cm=c0,mRm N+1+c1,mRm N…+cN−1,mRmであってもよいし、Cm=c0,mc1,m…cN−1,mであってもよいし、Cm=c0,mRm+c1,mRm…+cN−1,mRmであってもよい。
処理単位ブロックB0,…,BQ−1またはブロックb0,…,bN−1および検知符号Cは検知装置に入力される。説明の便宜上、検知装置で扱う処理単位ブロックB0,…,BQ−1を「処理単位ブロックB’0,…,B’Q−1」と表記し、ブロックb0,…,bN−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は前述の部分列cn,0,…,cn,M−1と同じ基準に基づいて区分される。検知装置は、部分列c’0,m,…,c’N−1,mに対して乗算を含む演算を行って部分検知符号C’mを得、部分検知符号C’0,…,C’M−1を被演算子とした線形結合演算を行って検知符号C”を得、入力符号C’と検知符号C”とが一致するかを判定する。ここで、C’=C”であれば成功とし、そうでなければ失敗とする。
[第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)を有する。
図面を参照して、第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)を有する。
検知装置12は、入力部121、区分部122、部分処理部123、統合部124、および判定部126を有する。図2Bに例示するように、部分処理部123は、例えば、制御部1230、初期値生成部1232−0〜1232−(M−1)、および再帰処理部1233−0〜1233−(M−1)を有する。
各装置は、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)およびRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される装置である。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。また、1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。
<検知機能付加処理>
検知機能付加装置11(図1)が、入力されたQ個の処理単位ブロックB0,…,BQ−1に検知符号Cを付加する処理を説明する。図3に例示するように、まず、入力部111に処理単位ブロックB0,…,BQ−1が入力される。処理単位ブロックB0,…,BQ−1の例は、ブロック暗号方式の暗号文に含まれたブロックである。ただし、これは本発明を限定するものではない。例えば、時間フレームごとに区分された時系列データ、周波数バンドごとに区分された周波数領域データ、その他の区分データを処理単位ブロックB0,…,BQ−1としてもよい。また、本形態の処理単位ブロックBq(ただし、q=0,…,Q−1)は、K×L個の有限体F(p)の元からなる列(長さK×L)である。例えば、p=2、L=64、K=2、w=128の場合、処理単位ブロックBmは128ビット列である。入力された処理単位ブロックB0,…,BQ−1は、区分部112および合成部115に送られる(ステップS111)。
検知機能付加装置11(図1)が、入力されたQ個の処理単位ブロックB0,…,BQ−1に検知符号Cを付加する処理を説明する。図3に例示するように、まず、入力部111に処理単位ブロックB0,…,BQ−1が入力される。処理単位ブロックB0,…,BQ−1の例は、ブロック暗号方式の暗号文に含まれたブロックである。ただし、これは本発明を限定するものではない。例えば、時間フレームごとに区分された時系列データ、周波数バンドごとに区分された周波数領域データ、その他の区分データを処理単位ブロックB0,…,BQ−1としてもよい。また、本形態の処理単位ブロックBq(ただし、q=0,…,Q−1)は、K×L個の有限体F(p)の元からなる列(長さK×L)である。例えば、p=2、L=64、K=2、w=128の場合、処理単位ブロックBmは128ビット列である。入力された処理単位ブロックB0,…,BQ−1は、区分部112および合成部115に送られる(ステップS111)。
区分部112は、処理単位ブロックB0,…,BQ−1からブロックb0,…,bN−1を得、さらに各ブロックbmから部分列c0,m,…,cN−1,m(ただし、m=0,…,M−1)を得るか、または、処理単位ブロックB0,…,BQ−1から直接に部分列c0,m,…,cN−1,m(ただし、m=0,…,M−1)を得る。本形態の各ブロックbn(ただし、n=0,…,N−1)は、M×L個の有限体F(p)の元からなる列(長さM×L)であり、M個の部分列cn,0,…,cn,M−1からなる。本形態の各部分列cn,m(ただし、n=0,…,N−1)は、L個の有限体F(p)の元からなる列(長さL)であり、拡大次数Lの拡大体F(pL)の元である。図6Aおよび図6Bは、K=MかつQ=Nの場合の例である。この場合には、処理単位ブロックBqがそのままブロックbnとなり、区分部112は処理単位ブロックBq=bnをK等分して部分列cn,0,…,cn,M−1を得る。この場合、Bq=bn=(cn,0,…,cn,M−1)を満たす。図7Aおよび図7Bは、K<MかつQ>NかつK×L×Q=M×L×Nの場合の例である。この場合、区分部112は、処理単位ブロック(B0,…,BQ−1)全体をM×N等分して部分列c0,0,…,c0,M−1,…,cN−1,0,…,cN−1,M−1を得る。図8Aは、M>KかつK×L×Q<M×L×Nの例である。この場合、区分部112は、処理単位ブロックB0,…,BQ−1に長さM×L×N−K×L×QのパディングPD(すなわち、M×L×N−K×L×Q個の有限体F(p)の元からなる列)を付加し、(B0,…,BQ−1,PD)全体をM×N等分して部分列c0,0,…,c0,M−1,…,cN−1,0,…,cN−1,M−1を得る。図8Bは、M<KかつQ<NかつK×L×Q=M×L×Nの場合の例である。この場合、区分部112は、処理単位ブロック(B0,…,BQ−1)全体をM×N等分して部分列c0,0,…,c0,M−1,…,cN−1,0,…,cN−1,M−1を得る。図8Cは、M<KかつK×L×Q<M×L×Nの例である。この場合、区分部112は、処理単位ブロックB0,…,BQ−1に長さM×L×N−K×L×QのパディングPDを付加し、(B0,…,BQ−1,PD)全体をM×N等分して部分列c0,0,…,c0,M−1,…,cN−1,0,…,cN−1,M−1を得る。部分列c0,m,…,cN−1,m(ただし、m=0,…,M−1)は部分処理部113に送られる(ステップS112)
部分処理部113は、入力された部分列c0,m,…,cN−1,mに対し、拡大体F(pL)上で乗算を含む演算を行って部分検知符号Cm∈F(pL)(ただし、m=0,…,M−1)を得る(図6Bおよび図7B)。部分処理部113は、各mについて順番にこの演算を行ってもよいし、いくつか複数のmについて並列にこの演算を行ってもよい。
≪部分処理部113の処理の具体例≫
N≧2であり、すべてのm=0,…,M−1について並列に前述の式(1)の演算を行って部分検知符号C0,…,CM−1を得る例を示す。
N≧2であり、すべてのm=0,…,M−1について並列に前述の式(1)の演算を行って部分検知符号C0,…,CM−1を得る例を示す。
図4に例示するように、部分処理部113の制御部1130(図2A)がi:=0に設定する。なお、「α:=β」はαがβであると定義すること(αにβを代入すること)を意味する(ステップS1130a)。任意値選択部1131は、M個の任意値R0,…,RM−1を得る。ただし、Rm∈F(pL)である。例えば、任意値選択部1131は、M×L個の拡大体F(pL)の元からなる擬似乱数列Rを生成し、R:=(R0,…,RM−1)とする。擬似乱数に代え、予め定められたM×L個の拡大体F(pL)の元(例えば、零元)からなる列(零ブロック)をRとしてもよい。各任意値Rm(ただし、m=0,…,M−1)は初期値生成部1132−mおよび再帰処理部1133−mに送られる(ステップS1131)。各初期値生成部1132−mは、部分列c0,mおよび任意値Rmを入力とし、初期値C0,m:=Rm 2c0,m∈F(pL)を得て出力する。これらは各m=0,…,M−1について並列に実行され、(C0,0,…,C0,M−1):=(Rm 2c0,0,…,Rm 2c0,M−1)が得られる。各初期値C0,mは再帰処理部1133−mに送られる(ステップS1132)。各再帰処理部1133−mは、Ci,m,ci+1,m,Rmを用い、中間値Ci+1,m:=(ci+1,m+Ci,m)Rm∈F(pL)を得る。これらも並列に実行され、(Ci+1,0,…,Ci+1,M−1):=((ci+1,0+Ci,0)R0,…,(ci+1,M−1+Ci,M−1)RM−1)が得られる(ステップS1133a)。制御部1130は、i=N−2であるかを判定する。ここで、i=N−2でなければ、制御部1130は、i+1を新たなi(すなわち、i:=i+1)とし(ステップS1130c)、処理をステップS1133aに戻す。一方、i=N−2であれば、各再帰処理部1133−mは、CN−1,mを部分検知符号Cm∈F(pL)として出力する。これにより、部分検知符号C0,…,CM−1が得られる(ステップS1133b)。
得られた部分検知符号C0,…,CM−1は統合部114に送られる(ステップS113)。
統合部114は、部分検知符号C0,…,CM−1に対応する検知符号C∈F(pL)を得て出力する(図6Bおよび図7B)。例えば、C=(C0,…,CM−1)としてもよいし、部分検知符号C0,…,CM−1を被演算子とした線形結合演算を行って検知符号Cを得てもよい。この線形結合演算は拡大体F(pL)上で実行される。以下に線形結合演算の具体例を示す。
得られた検知符号Cは合成部115に入力される。検知符号Cの生成過程で任意値R0,…,RM−1が利用された場合には、これらの任意値R0,…,RM−1も合成部115に送られる。ただし、任意値R0,…,RM−1が予め定められた値である場合にはこれらが合成部115に送られなくてもよい(ステップS114)。
合成部115は、処理単位ブロックB0,…,BQ−1に検知符号Cを付加した列BS:=(B0,…,BQ−1,C)を得て出力する(図6C)。任意値R0,…,RM−1が入力された場合、合成部115は、さらにこれらを付加した列BS:=(B0,…,BQ−1,C,R0,…,RM−1)を得て出力してもよい(図7C)(ステップS114)。列BSは出力部116から出力され、ネットワーク13を通じて検知装置12に送られる(ステップS116)。
<検知処理>
次に、検知装置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)は(B0,…,BQ−1)であり、C’はCであり、(R’0,…,R’M−1)は(R0,…,RM−1)である。列BSは区分部122に送られ、列BSが含む入力符号C’は判定部126に送られる(ステップS121)。
次に、検知装置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)は(B0,…,BQ−1)であり、C’はCであり、(R’0,…,R’M−1)は(R0,…,RM−1)である。列BSは区分部122に送られ、列BSが含む入力符号C’は判定部126に送られる(ステップS121)。
区分部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(pL)の元である。部分列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)
部分処理部123は、前述の部分処理部113と同じ基準に則って、入力された部分列c’0,m,…,c’N−1,mに対し、拡大体F(pL)上で乗算を含む演算を行って部分検知符号C’m∈F(pL)(ただし、m=0,…,M−1)を得る。部分処理部123は、各mについて順番にこの演算を行ってもよいし、いくつか複数のmについて並列にこの演算を行ってもよい。
≪部分処理部123の処理の具体例≫
N≧2であり、すべてのm=0,…,M−1について並列に前述の式(1)の演算を行って部分検知符号C’0,…,C’M−1を得る例を示す。
N≧2であり、すべてのm=0,…,M−1について並列に前述の式(1)の演算を行って部分検知符号C’0,…,C’M−1を得る例を示す。
図5に例示するように、部分処理部123の制御部1230(図2B)がi:=0に設定する(ステップS1230a)。各初期値生成部1232−mは、部分列c’0,mおよび任意値R’mを用い、初期値C’0,m:=R’m 2c’0,m∈F(pL)を得て出力する。なお、任意値R’mは区分部122から送られたものであるか、予め定められた値(R’m=Rm)である。これらは各m=0,…,M−1について並列に実行され、(C’0,0,…,C’0,M−1):=(R’m 2c0,0,…,R’m 2c’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(pL)を得る。これらも並列に実行され、(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(pL)として出力する。これにより、部分検知符号C’0,…,C’M−1が得られる(ステップS1233b)。
得られた部分検知符号C’0,…,C’M−1は統合部124に送られる(ステップS123)。
統合部124は、前述の統合部114と同じ基準に則って、部分検知符号C’0,…,C’M−1に対応する検知符号C”∈F(pL)を得て出力する。検知符号C”は判定部126に送られる(ステップS124)。
判定部126は、入力符号C’と検知符号C”との等号判定を行う。ここで、C’=C”であれば、判定部126は、成功である(改ざんおよび誤りが存在しない)旨の結果を出力し(ステップS1252)、処理を終了する。一方、C’≠C”であれば、判定部126は、失敗である(改ざんまたは誤りが存在する)旨の結果を出力し(ステップS1253)、処理を終了する。
[第2実施形態]
本形態は第1実施形態の変形例であり、検知符号Cの長さを処理単位ブロックBqの長さと同一にする。本形態では、検知機能付加装置が、部分検知符号C0,…,CM−1をK個の部分集合Sub0,…,SubK−1に区分し、部分集合Sub0,…,SubK−1のそれぞれについて部分集合Subkの要素の線形結合演算を行って、K個の中間検知符号SC0,…,SCK−1を得、中間検知符号SC0,…,SCK−1からなる長さがLのK倍である列を検知符号Cとする。ただし、各部分検知符号Cmの長さはLであり、k=0,…,K−1であり、M≧Kである。以下ではこれまで説明した事項との相違点を中心に説明し、すでに説明した事項については既に使用された参照番号を引用して説明を簡略化する。
本形態は第1実施形態の変形例であり、検知符号Cの長さを処理単位ブロックBqの長さと同一にする。本形態では、検知機能付加装置が、部分検知符号C0,…,CM−1をK個の部分集合Sub0,…,SubK−1に区分し、部分集合Sub0,…,SubK−1のそれぞれについて部分集合Subkの要素の線形結合演算を行って、K個の中間検知符号SC0,…,SCK−1を得、中間検知符号SC0,…,SCK−1からなる長さがLのK倍である列を検知符号Cとする。ただし、各部分検知符号Cmの長さはLであり、k=0,…,K−1であり、M≧Kである。以下ではこれまで説明した事項との相違点を中心に説明し、すでに説明した事項については既に使用された参照番号を引用して説明を簡略化する。
<構成>
図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を有する。
図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を有する。
<検知機能付加処理>
第1実施形態との相違点は、ステップS114がステップS214に置換される点である。以下ではステップS214の処理のみを説明する。
第1実施形態との相違点は、ステップS114がステップS214に置換される点である。以下ではステップS214の処理のみを説明する。
≪ステップS214の処理≫
統合部214(図9A)の区分部2141に部分検知符号C0,…,CM−1が入力される。区分部2141は、M個の部分検知符号C0,…,CM−1をK個の部分集合Sub0,…,SubK−1に区分する(図10A)。この区分方法に限定はない。例えば、K=2とし、m=meven(偶数)の部分検知符号Cmを部分集合Sub0の要素とし、m=modd(奇数)の部分検知符号Cmを部分集合Sub1の要素としてもよい。例えば、K=2、Yを1<Y<M−1の整数とし、Sub0={C0,…,CY},Sub1={CY−1,…,CM−1}としてもよい。例えば、2以上の整数TについてM=K×Tとし、Subk={CT×k,…,CT×k+T−1}としてもよい。例えば、K>Mとし、0≦k≦M−1についてSubk={Ck}とし、M≦k≦K−1についてSubk={固定値}としてもよい。各部分集合Subk(ただし、k=0,…,K−1)は、線形結合部2142−kに送られる。
統合部214(図9A)の区分部2141に部分検知符号C0,…,CM−1が入力される。区分部2141は、M個の部分検知符号C0,…,CM−1をK個の部分集合Sub0,…,SubK−1に区分する(図10A)。この区分方法に限定はない。例えば、K=2とし、m=meven(偶数)の部分検知符号Cmを部分集合Sub0の要素とし、m=modd(奇数)の部分検知符号Cmを部分集合Sub1の要素としてもよい。例えば、K=2、Yを1<Y<M−1の整数とし、Sub0={C0,…,CY},Sub1={CY−1,…,CM−1}としてもよい。例えば、2以上の整数TについてM=K×Tとし、Subk={CT×k,…,CT×k+T−1}としてもよい。例えば、K>Mとし、0≦k≦M−1についてSubk={Ck}とし、M≦k≦K−1についてSubk={固定値}としてもよい。各部分集合Subk(ただし、k=0,…,K−1)は、線形結合部2142−kに送られる。
各線形結合部2142−kは、入力された部分集合Subkの要素の線形結合演算を行って中間検知符号SCk∈F(pL)を得て出力する。例えば、各線形結合部2142−kは、部分集合Subkの要素の和(拡大体F(pL)上の和)によって中間検知符号SCk∈F(pL)を得る。例えば、m=meven(偶数)の部分検知符号Cmを部分集合Sub0の要素とし、m=modd(奇数)の部分検知符号Cmを部分集合Sub1の要素とした場合、以下のように中間検知符号SC0,SC1を得る。
得られたK個の中間検知符号SC0,…,SCK−1は統合部2143に送られる(図10A)。なお、各中間検知符号SCkは同一の線形結合演算によって得られてもよいし、そうでなくてもよい。また、中間検知符号SC0,…,SCK−1が並列に計算されてもよいし、そうでなくてもよい。
得られたK個の中間検知符号SC0,…,SCK−1は統合部2143に送られる(図10A)。なお、各中間検知符号SCkは同一の線形結合演算によって得られてもよいし、そうでなくてもよい。また、中間検知符号SC0,…,SCK−1が並列に計算されてもよいし、そうでなくてもよい。
統合部2143は、入力された中間検知符号SC0,…,SCK−1からなる長さがLのK倍である列を検知符号Cとして出力する。例えば、C=(SC0,…,SCK−1)を出力する(図10A)。
このように得られた検知符号Cの長さは、処理単位ブロックBqの長さと同一(K×L)となり、列BSを長さK×Lのブロックに統一することができる(図10B)。
<検知処理>
第1実施形態との相違点は、ステップS124がステップS224に置換される点である。以下ではステップS224の処理のみを説明する。
第1実施形態との相違点は、ステップS124がステップS224に置換される点である。以下ではステップS224の処理のみを説明する。
≪ステップ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に送られる。
統合部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に送られる。
各線形結合部2242−kは、線形結合部2142−kと同じ基準に則って、入力された部分集合Sub’kの要素の線形結合演算を行って中間検知符号SC’k∈F(pL)を得て出力する。得られたK個の中間検知符号SC’0,…,SC’K−1は統合部2243に送られる。
統合部2243は、統合部2143と同じ基準に則って、入力された中間検知符号SC’0,…,SC’K−1からなる長さがLのK倍である列を検知符号C’として出力する。
[その他の変形例等]
なお、本発明は上述の実施の形態に限定されるものではない。例えば、各装置がネットワークを通じて情報をやり取りするのではなく、少なくとも一部の組の装置が可搬型記録媒体を介して情報をやり取りしてもよい。或いは、少なくとも一部の組の装置が非可搬型の記録媒体を介して情報をやり取りしてもよい。すなわち、これらの装置の一部からなる組み合わせが、同一の装置であってもよい。
なお、本発明は上述の実施の形態に限定されるものではない。例えば、各装置がネットワークを通じて情報をやり取りするのではなく、少なくとも一部の組の装置が可搬型記録媒体を介して情報をやり取りしてもよい。或いは、少なくとも一部の組の装置が非可搬型の記録媒体を介して情報をやり取りしてもよい。すなわち、これらの装置の一部からなる組み合わせが、同一の装置であってもよい。
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
上記実施形態では、コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されたが、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
各実施形態の技術は、例えば、ブロック暗号方式の暗号文の改ざん検知や誤り検知に利用できる。
1,2 検知システム
11,21 検知機能付加装置
12,22 検知装置
11,21 検知機能付加装置
12,22 検知装置
Claims (8)
- Nが1以上の整数であり、Mが2以上の整数であり、n=0,…,N−1であり、m=0,…,M−1であり、N個のブロックb0,…,bN−1のそれぞれのブロックbnがM個の部分列cn,0,…,cn,M−1を含み、
前記部分列c0,m,…,cN−1,mに対して乗算を含む演算を行って部分検知符号Cmを得る部分処理部と、
前記部分検知符号C0,…,CM−1に対応する検知符号を得る統合部と、
を有し、
前記部分検知符号C 0 ,…,C M−1 のそれぞれの部分検知符号C m の長さがLであり、k=0,…,K−1であり、K<Mであり、前記部分列c n,0 ,…,c n,M−1 のそれぞれの部分列c n,m の長さがLであり、
前記統合部は、前記部分検知符号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倍である列を前記検知符号とする、検知機能付加装置。 - 請求項1の検知機能付加装置であって、
QおよびLが1以上の整数であり、Kが2以上の整数であり、q=0,…,Q−1であり、
入力された処理単位ブロックB0,…,BQ−1から前記ブロックb0,…,bN−1または前記部分列c0,m,…,cN−1,mを得る区分部を有し、
前記部分列c0,m,…,cN−1,mのそれぞれの部分列cn,mの長さがLであり、
前記処理単位ブロックB0,…,BQ−1のそれぞれの処理単位ブロックBqの長さがLのK倍である、検知機能付加装置。 - 請求項1または2の検知機能付加装置であって、
前記統合部は、前記部分検知符号C0,…,CM−1を被演算子とした線形結合演算を行って前記検知符号を得る、検知機能付加装置。 - 請求項1から3の何れかの検知機能付加装置であって、
前記部分処理部は、何れか複数のmについて並列に前記乗算を含む演算を行って前記部分検知符号Cmを得る、検知機能付加装置。 - 請求項1から4の何れかの検知機能付加装置であって、
N≧2であり、
前記部分処理部は、
任意値Rmを得る任意値選択部と、
初期値C0,m=Rm 2c0,mを得る初期値生成部と、
i=0,…,N−2での再帰処理によって中間値Ci+1,m=(ci+1,m+Ci,m)Rmを得、CN−1,mを前記部分検知符号Cmとする再帰処理部と、を含む、検知機能付加装置。 - Nが1以上の整数であり、Mが2以上の整数であり、n=0,…,N−1であり、m=0,…,M−1であり、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’ 0 ,…,C’ M−1 のそれぞれの部分検知符号C’ m の長さがLであり、k=0,…,K−1であり、K<Mであり、前記部分列c’ n,0 ,…,c’ n,M−1 のそれぞれの部分列c’ n,m の長さがLであり、
前記統合部は、前記部分検知符号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倍である列を前記検知符号とする検知装置。 - 請求項6の検知装置であって、
QおよびLが1以上の整数であり、Kが2以上の整数であり、q=0,…,Q−1であり、
入力された処理単位ブロックB’ 0 ,…,B’ Q−1 から前記ブロックb’ 0 ,…,b’ N−1 または前記部分列c’ 0,m ,…,c’ N−1,m を得る区分部を有し、
前記部分列c 0,m ,…,c N−1,m のそれぞれの部分列c n,m の長さがLであり、
前記処理単位ブロックB’ 0 ,…,B’ Q−1 のそれぞれの処理単位ブロックB’ q の長さがLのK倍である、検知装置。 - 請求項1から5の何れかの検知機能付加装置もしくは請求項6または7の検知装置としてコンピュータを機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015109793A JP6023852B1 (ja) | 2015-05-29 | 2015-05-29 | 検知機能付加装置、検知装置、およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015109793A JP6023852B1 (ja) | 2015-05-29 | 2015-05-29 | 検知機能付加装置、検知装置、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6023852B1 true JP6023852B1 (ja) | 2016-11-09 |
JP2016224223A JP2016224223A (ja) | 2016-12-28 |
Family
ID=57247498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015109793A Active JP6023852B1 (ja) | 2015-05-29 | 2015-05-29 | 検知機能付加装置、検知装置、およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6023852B1 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59221812A (ja) * | 1983-06-01 | 1984-12-13 | Hitachi Ltd | 符号処理回路 |
JPH0962656A (ja) * | 1995-08-24 | 1997-03-07 | Toshiba Corp | 並列計算機 |
US20010046292A1 (en) * | 2000-03-31 | 2001-11-29 | Gligor Virgil Dorin | Authentication method and schemes for data integrity protection |
US20020051537A1 (en) * | 2000-09-13 | 2002-05-02 | Rogaway Phillip W. | Method and apparatus for realizing a parallelizable variable-input-length pseudorandom function |
-
2015
- 2015-05-29 JP JP2015109793A patent/JP6023852B1/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59221812A (ja) * | 1983-06-01 | 1984-12-13 | Hitachi Ltd | 符号処理回路 |
JPH0962656A (ja) * | 1995-08-24 | 1997-03-07 | Toshiba Corp | 並列計算機 |
US20010046292A1 (en) * | 2000-03-31 | 2001-11-29 | Gligor Virgil Dorin | Authentication method and schemes for data integrity protection |
US20020051537A1 (en) * | 2000-09-13 | 2002-05-02 | Rogaway Phillip W. | Method and apparatus for realizing a parallelizable variable-input-length pseudorandom function |
Non-Patent Citations (1)
Title |
---|
JPN6011065424; Halevi, S. and Krawczyk, H.: 'MMH: Software Message Authentication in the Gbit/Second Rates' Lecture Notes in Computer Science Vol.1267, 1997, p.172-189 * |
Also Published As
Publication number | Publication date |
---|---|
JP2016224223A (ja) | 2016-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Booth et al. | Linear-scaling and parallelisable algorithms for stochastic quantum chemistry | |
JP5957126B1 (ja) | 秘密計算装置、秘密計算方法、およびプログラム | |
Kepley et al. | Quantum circuits for F _ 2^ n F 2 n-multiplication with subquadratic gate count | |
Mauerer et al. | A modular framework for randomness extraction based on Trevisan's construction | |
JP2017021772A (ja) | コピュラ理論に基づく特徴選択 | |
Blum et al. | Construct, merge, solve and adapt: application to the repetition-free longest common subsequence problem | |
JP7327510B2 (ja) | 秘密乱数生成システム、秘密計算装置、秘密乱数生成方法、およびプログラム | |
Seo et al. | Optimized SIKE Round 2 on 64-bit ARM | |
Münch et al. | Vasa: Vector aes instructions for security applications | |
US10078492B2 (en) | Generating pseudo-random numbers using cellular automata | |
WO2021179697A1 (zh) | 一种在虚拟机中执行功能模块的方法和装置 | |
Kampel et al. | Sliced AETG: a memory-efficient variant of the AETG covering array generation algorithm | |
Bos et al. | ECC2K-130 on cell CPUs | |
US10333697B2 (en) | Nondecreasing sequence determining device, method and program | |
JP6367959B2 (ja) | 部分文字列位置検出装置、部分文字列位置検出方法及びプログラム | |
Chowdhary et al. | An improved hyperbolic embedding algorithm | |
JP6023852B1 (ja) | 検知機能付加装置、検知装置、およびプログラム | |
Kukkala et al. | Identifying influential spreaders in a social network (While preserving Privacy) | |
Jacquet et al. | Counting Markov types, balanced matrices, and Eulerian graphs | |
Sundfeld et al. | Using GPU to accelerate the pairwise structural RNA alignment with base pair probabilities | |
Lapworth | Parallel encryption of input and output data for HPC applications | |
Xia et al. | A new incremental constraint projection method for solving monotone variational inequalities | |
JP5875717B1 (ja) | 乱数生成装置、乱数生成方法、およびプログラム | |
KR20190127704A (ko) | 암호화 애플리케이션을 위한 소수를 생성하기 위한 방법 | |
Bakoev | Fast computing the algebraic degree of Boolean functions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160915 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20161004 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161007 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6023852 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |