JP2010128154A - Hash value generating device, verification device, hash value generating method, verification method, program, and recording medium - Google Patents

Hash value generating device, verification device, hash value generating method, verification method, program, and recording medium Download PDF

Info

Publication number
JP2010128154A
JP2010128154A JP2008302380A JP2008302380A JP2010128154A JP 2010128154 A JP2010128154 A JP 2010128154A JP 2008302380 A JP2008302380 A JP 2008302380A JP 2008302380 A JP2008302380 A JP 2008302380A JP 2010128154 A JP2010128154 A JP 2010128154A
Authority
JP
Japan
Prior art keywords
data
hash value
bits
bit
block
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.)
Granted
Application number
JP2008302380A
Other languages
Japanese (ja)
Other versions
JP5079671B2 (en
Inventor
Miki Yasuda
幹 安田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2008302380A priority Critical patent/JP5079671B2/en
Publication of JP2010128154A publication Critical patent/JP2010128154A/en
Application granted granted Critical
Publication of JP5079671B2 publication Critical patent/JP5079671B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a hash value generating device capable of assuring second preimage resistance and unidirectionality if a compression means has second preimage resistance and unidirectionality. <P>SOLUTION: The hash value generating device comprises: a preprocessing section converting input data X of any length into data Y; a data length adjusting section performing padding to the data Y to output data Z whose data length is a multiple of m-n bits; and a data compression section compressing the data Z by using a compression function to obtain a hash value. The preprocessing section converts the data X into the data Y so that the data Y satisfies the following two conditions: (condition 1) when the data Z is divided into C pieces of m-n bit blocks z[1] to z[C], all blocks z[1] to z[C] include more than μ bits in the data X (μ is a predetermined integer); (condition 2) data X and data Y correspond one-on-one to each other. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、通信路上または記録媒体上のデータに対してそのハッシュ値を生成するハッシュ値生成装置とハッシュ値生成方法、データとハッシュ値の組に対してその暗号学的安全性を検証する検証装置と検証方法、およびそれらのプログラムと記録媒体に関する。   The present invention relates to a hash value generation device and a hash value generation method for generating a hash value for data on a communication path or a recording medium, and verification for verifying the cryptographic security for a set of data and hash value The present invention relates to an apparatus, a verification method, a program thereof, and a recording medium.

任意長のデータから、固定長(以下、nビットとする)の値を決定する関数
H:{0,1}→{0,1}
をハッシュ関数という。ただし、“{0,1}”は、0または1が任意の長さ並んだビット列を、“{0,1}”は、0または1がn個並んだビット列を示している。なお、ハッシュ関数では、マークル・ダンガード(Merkle-Damgard)構成と呼ばれる反復法を用いたものが主流である(非特許文献1、2)。マークル・ダンガード構成のハッシュ関数Hは、入力されたデータXにパディングを施した上で、mビット(ただし、mはnより大きい整数)のデータをnビットのデータに圧縮する圧縮関数hを繰り返し利用し、任意長の入力データに対するnビットのハッシュ値を得る。代表的な圧縮関数には、m=672、n=160の
sha1:{0,1}160+512→{0,1}160
や、m=768、n=256の
sha256:{0,1}256+512→{0,1}256
などがある。
A function for determining a fixed length (hereinafter, n bits) value from arbitrary length data H: {0, 1} * → {0, 1} n
Is called a hash function. However, “{0, 1} * ” represents a bit string in which 0 or 1 are arranged in an arbitrary length, and “{0, 1} n ” represents a bit string in which n 0 or 1 are arranged. A hash function is mainly a method using an iterative method called a Merkle-Damgard configuration (Non-Patent Documents 1 and 2). The hash function H of the Merkle Dungard configuration repeats the compression function h that compresses m-bit data (where m is an integer greater than n) into n-bit data after padding the input data X By using this, an n-bit hash value is obtained for input data of an arbitrary length. A typical compression function includes m = 672 and n = 160 shar1: {0, 1} 160 + 512 → {0, 1} 160
And m = 768, n = 256, sha256: {0, 1} 256 + 512 → {0, 1} 256
and so on.

ハッシュ関数Hが暗号学的に安全であるためには、衝突発見困難性、第2原像発見困難性、一方向性の3つの条件を満たすことが必要とされている。衝突発見困難性とは、
H(X)=H(X’) かつ X≠X’
となる(X,X’)の組を見つけることが難しいことである。ハッシュ関数Hの出力は2通りあるので、nは衝突発見困難性の程度を示すパラメータであり、nを大きくすれば衝突発見困難性が高くなる。なお、衝突発見困難性は、出力長nの半分の難しさであることが知られている。第2原像発見困難性とは、任意に与えられたXに対し、
H(X)=H(X’) かつ X≠X’
となるようなX’を見つけることが難しいことである。一方向性とは、任意に与えられたVに対し、V=H(X’)となるようなX’を見つけることが難しいことである。ただし、「Vが任意に与えられる」とは、Xを任意に選び、
V←H(X)
と計算してVの任意の値を決定することを指す。また、“←”は、右辺の計算結果を左辺の変数の値とすること(ここでは、Vの値をH(X)とすること、もしくはH(X)を変数Vに代入すること)を示している。また、マークル・ダンガード構成のハッシュ関数Hが暗号学的に安全であるためには、圧縮関数hも、衝突発見困難性、第2原像発見困難性、一方向性が必要である。
In order for the hash function H to be cryptographically secure, it is necessary to satisfy the three conditions of collision discovery difficulty, second original image discovery difficulty, and unidirectionality. The difficulty of collision detection
H (X) = H (X ′) and X ≠ X ′
It is difficult to find a set of (X, X ′). Since there are 2 n types of outputs of the hash function H, n is a parameter indicating the degree of collision detection difficulty. Increasing n increases collision detection difficulty. It is known that the collision detection difficulty is half the output length n. The second original image finding difficulty is that for any given X,
H (X) = H (X ′) and X ≠ X ′
It is difficult to find such X ′. Unidirectionality means that it is difficult to find X ′ such that V = H (X ′) for a given V. However, “V is given arbitrarily” means that X is arbitrarily selected,
V ← H (X)
And calculating an arbitrary value of V. “←” means that the calculation result on the right side is the value of the variable on the left side (here, the value of V is set to H (X), or H (X) is assigned to the variable V). Show. In addition, in order for the hash function H having the Merkle Dungard configuration to be cryptographically secure, the compression function h also needs to be difficult to find a collision, difficult to find the second original image, and unidirectional.

第2原像発見困難性、一方向性について、さらに表現を変えて説明する。例えば、圧縮関数hの第2原像発見困難性とは、具体的には次のような性質を意味する。まず、攻撃者が決まった長さのデータWを選ぶ。次にデータの長さがm−|W|のデータXが任意に選ばれ、データXの値が攻撃者に知らされる。このとき、
h(X‖W)=h(X’) かつ X‖W≠X’
となるような長さmのデータX’を攻撃者がみつけることが困難だという性質が、圧縮関数hの第2原像発見困難性である。ただし、“‖”はビット列の結合を意味し、mは圧縮関数hに入力されるビット列の長さである。また、例えば、圧縮関数hの一方向性とは、具体的には次のような性質を意味する。まず、攻撃者が決まった長さのデータWを選ぶ。次にデータの長さがm−|W|のデータXが任意に選ばれ、h(X‖W)の値が攻撃者に知らされる。このとき、
h(X‖W)=h(X’) かつ X‖W≠X’
となるような長さmのデータX’を攻撃者がみつけることが困難だという性質が、圧縮関数hの一方向性である。
The second original image finding difficulty and unidirectionality will be further described with different expressions. For example, the second original image difficulty of finding the compression function h specifically means the following property. First, the attacker selects data W having a predetermined length. Next, data X whose length is m− | W | is arbitrarily selected, and the value of data X is notified to the attacker. At this time,
h (X‖W) = h (X ′) and X‖W ≠ X ′
The characteristic that it is difficult for an attacker to find data X ′ having a length m such that is the second original image difficulty of finding the compression function h. However, “‖” means the combination of bit strings, and m is the length of the bit string input to the compression function h. Further, for example, the unidirectionality of the compression function h specifically means the following property. First, the attacker selects data W having a predetermined length. Next, data X having a data length of m− | W | is arbitrarily selected, and the value of h (X‖W) is notified to the attacker. At this time,
h (X‖W) = h (X ′) and X‖W ≠ X ′
The characteristic that it is difficult for an attacker to find data X ′ having a length m such that

図1は従来のハッシュ値生成装置の機能構成例を示す図、図2は従来のハッシュ値生成装置の処理フローの例を示す図である。ハッシュ値生成装置900は、マークル・ダンガード構成のハッシュ関数を用いて、ハッシュ値を生成する。ハッシュ値生成装置900は、データ長調整部980とデータ圧縮部990とを備える。データ長調整部980は、データY分割手段981とデータZ生成手段982とを有し、入力された任意の長さのデータYにパディングを行い、データ長がm−nビットの倍数のデータZを出力する。データ圧縮部990は、データZ分割手段991と圧縮手段992とを有し、入力されたデータZを圧縮して、データ長がnビットのハッシュ値を求める。   FIG. 1 is a diagram illustrating a functional configuration example of a conventional hash value generation device, and FIG. 2 is a diagram illustrating an example of a processing flow of the conventional hash value generation device. The hash value generation device 900 generates a hash value using a hash function having a Merkle Dungard configuration. The hash value generation device 900 includes a data length adjustment unit 980 and a data compression unit 990. The data length adjusting unit 980 includes a data Y dividing unit 981 and a data Z generating unit 982, performs padding on the input data Y having an arbitrary length, and the data length is a multiple of mn bits. Is output. The data compression unit 990 includes a data Z dividing unit 991 and a compression unit 992, compresses the input data Z, and obtains a hash value having a data length of n bits.

具体的には、例えば、データY分割手段981は、任意長のデータYが入力されると、データYを、
Y→y[1]‖y[2]‖・・・‖y[B]
のように、B−1個のm−nビットのブロックy[1],…,y[B−1]と、1個のm−nビット以下のブロックy[B]に分割する(S981)。ここで、“→”は、左辺を右辺のように変換(分割)することを示している。また、Bは分割されたブロックの数であり、

Figure 2010128154
である。 Specifically, for example, when the data Y dividing unit 981 receives data Y having an arbitrary length,
Y → y [1] ‖y [2] ‖ ... ‖y [B]
As shown in FIG. 5, the block is divided into B-1 mn bit blocks y [1],..., Y [B-1] and one mn bit or less block y [B] (S981). . Here, “→” indicates that the left side is converted (divided) like the right side. B is the number of divided blocks,
Figure 2010128154
It is.

データZ生成手段982は、|y[B]|≦m−n−σ−1かを確認する(S983)。つまり、ブロックy[B]のデータ長がm−n−σ−1以下かを確認する。ステップS983がYesの場合、データZ生成手段982は、データZを、
Z←Y‖10m−n−σ−1−|y[B]|‖<|Y|>
のように生成する(S984)。ステップS983がNoの場合、データZ生成手段982は、データZを、
Z←Y‖10m−n−1−|y[B]|‖0m−n−σ‖<|Y|>
のように生成する(S985)。ただし、“0”は“0”がm個並んだビット列、<|Y|>はデータYのデータ長|Y|をσビットで表現したビット列である。例えば、σは64である。このようにデータZを生成するので、データZは、データ長がm−nの倍数となる。
The data Z generation unit 982 confirms whether | y [B] | ≦ mn−σ−1 (S983). That is, it is confirmed whether the data length of the block y [B] is equal to or less than mn-σ-1. When step S983 is Yes, the data Z generation means 982 converts the data Z into
Z ← Y‖10 mn-σ-1- | y [B] | ‖ <| Y |>
(S984). When step S983 is No, the data Z generation means 982 converts the data Z into
Z ← Y‖10 mn-1- | y [B] | ‖0 mn-σ ‖ <| Y |>
(S985). However, “0 m ” is a bit string in which m “0” s are arranged, and <| Y |> is a bit string in which the data length | Y | For example, σ is 64. Since the data Z is generated in this way, the data Z has a data length that is a multiple of mn.

データZ分割手段991は、データZを、
Z→z[1]‖z[2]‖・・・‖z[C]
のように、C個のm−nビットのブロックz[1],…,z[C]に分割する(S991)。また、Cは分割されたブロックの数であり、C=|Z|/(m−n)である。
Data Z dividing means 991 converts data Z into
Z → z [1] ‖z [2] ‖ ... ‖z [C]
As shown, the block is divided into C mn bit blocks z [1],..., Z [C] (S991). C is the number of divided blocks, and C = | Z | / (mn).

圧縮手段992は、nビットの変数v[0]に、nビットの初期値vを設定する(S993)。また、変数cに1を代入する(S994)。そして、圧縮手段992は、
v[c]←h(z(c)‖v[c−1])
のように圧縮関数hを用いた演算を行う(S995)。cがCと一致するかを確認し(S996)、Noの場合にはcの値を1増やし、ステップS995に戻る(S997)。ステップS996がYesの場合には、変数v[C]の値をハッシュ値として出力する(S998)。
Ralph C. Merkle, “One Way Hash Functions and DES,” CRYPTO 1989, LNCS vol.435, pp.428-446, Springer, Heidelberg(1990). Ivan Damgard, “A Design Principle for Hash Functions,” CRYPTO 1989, LNCS vol.435, pp.416-427, Springer, Heidelberg (1990).
The compression unit 992 sets an n-bit initial value v 0 to the n-bit variable v [0] (S993). Further, 1 is substituted into the variable c (S994). The compression means 992
v [c] ← h (z (c) ‖v [c−1])
As shown, the calculation using the compression function h is performed (S995). It is checked whether c matches C (S996). If No, the value of c is incremented by 1, and the process returns to step S995 (S997). If step S996 is Yes, the value of variable v [C] is output as a hash value (S998).
Ralph C. Merkle, “One Way Hash Functions and DES,” CRYPTO 1989, LNCS vol.435, pp.428-446, Springer, Heidelberg (1990). Ivan Damgard, “A Design Principle for Hash Functions,” CRYPTO 1989, LNCS vol.435, pp.416-427, Springer, Heidelberg (1990).

マークル・ダンガード構成のハッシュ値生成装置(ハッシュ関数)では、圧縮手段(圧縮関数)が衝突発見困難性を有していれば、ハッシュ値生成装置も衝突発見困難性が保証されることが知られている。しかし、従来のマークル・ダンガード構成のハッシュ値生成装置では、圧縮手段が第2原像発見困難性と一方向性とを有していたとしても、ハッシュ値生成装置の第2原像発見困難性と一方向性とを保証できなかった。   In the hash value generation device (hash function) of the Merkle Dungard configuration, it is known that if the compression means (compression function) has collision detection difficulty, the hash value generation device is also guaranteed to have collision detection difficulty. ing. However, in the hash value generation device having the conventional Merkle Dunguard configuration, even if the compression means has the second original image finding difficulty and the one-way, the second original image finding difficulty of the hash value generating device. And one-way could not be guaranteed.

これは、圧縮関数に入力されるブロックの中に、ハッシュ値生成装置への入力データを含まないブロックが存在する可能性があることが原因であった。本発明は、圧縮手段が第2原像発見困難性と一方向性とを有しているならば、第2原像発見困難性と一方向性とが保証できるハッシュ値生成装置を提供することを目的とする。   This is because there is a possibility that there is a block that does not include input data to the hash value generation device among the blocks input to the compression function. The present invention provides a hash value generation device capable of guaranteeing the second original image finding difficulty and the one-way if the compression means has the second original image finding difficulty and the one-way. With the goal.

本発明のハッシュ値生成装置は、mビットのデータをnビットに圧縮する圧縮関数を用いて、データXに対するnビットのハッシュ値を生成する。本発明のハッシュ値生成装置は、入力された任意長のデータXをデータYに変換する前処理部と、データYにパディングを行いデータ長がm−nビットの倍数のデータZを出力するデータ長調整部と、圧縮関数を用いてデータZを圧縮してハッシュ値を求めるデータ圧縮部とを備える。前処理部は、データYが次の2つの条件を満足するように、データXをデータYに変換する。   The hash value generation apparatus of the present invention generates an n-bit hash value for data X using a compression function that compresses m-bit data into n bits. The hash value generation device of the present invention includes a pre-processing unit that converts input arbitrary length data X into data Y, and data that outputs data Z that is padded with data Y and whose data length is a multiple of mn bits. A length adjustment unit, and a data compression unit that compresses the data Z using a compression function to obtain a hash value. The preprocessing unit converts the data X into the data Y so that the data Y satisfies the following two conditions.

(条件1)データXのデータ長がμビット以上のときに、データZを、C個のm−nビットのブロックz[1],…,z[C]に分割した場合に(ただし、CはデータZをm−nビットずつに分割した場合の分割の数)、すべてのブロックz[1],…,z[C]がデータX内のμビット(ただし、μはあらかじめ定めた整数)以上を含む。
(条件2)データXとデータYとは一対一に対応する。
(Condition 1) When the data length of the data X is μ bits or more, the data Z is divided into C mn-bit blocks z [1],..., Z [C] (provided that C Is the number of divisions when data Z is divided into mn bits), and all blocks z [1],..., Z [C] are μ bits in data X (where μ is a predetermined integer). Including the above.
(Condition 2) Data X and data Y have a one-to-one correspondence.

なお、本発明のハッシュ値生成装置の前処理部は、より具体的には、データX分割手段とデータY生成手段とを備えればよい。そして、データX分割手段は、データXを、A−1個のm−nビットのブロックx[1],…,x[A−1]と、1個のm−nビット以下のブロックx[A]に分割する(ただし、AはデータXをm−nビットずつに分割した場合の分割の数)。データY生成手段は、ブロックx[1],…,x[A]を、全てのブロックがデータX内のμビット(ただし、μはあらかじめ定めた整数)以上を含むように、A’−1個のm−nビットのブロックx’[1],…,x’[A’−1]と1個のm−nビット以下のブロックx’[A’]とに変換し(ただし、A’はA以上の整数)、x’[1]‖x’[2]‖…‖x’[A’](ただし、“‖”はビット列の結合を意味する記号)を含むビット列をデータYとする。このとき、データY生成手段は、ブロックx[1],…,x[A]の組合せとブロックx’[1],…,x’[A’]の組合せとが一対一に対応するようにする。また、データY生成手段は、x[A’]のデータ長を、データ長調整部の処理によって生成されるデータZのデータ長が、A’×(m−n)となるように調整する。例えば、データ長調整部がデータYのデータ長にかかわらずデータYに付加するビット数をσ+1ビットとすると、データY生成手段は、x[A’]のデータ長をm−n−σ−1以下となるようにすれば、データZのデータ長が、A’×(m−n)となる。ただし、この具体例に限定する必要はなく、データ長調整部とデータ圧縮部の処理を考慮して、A’=B=Cとなるようにブロックx’[1],…,x’[A’]に変換する方法であれば別の方法でもよい。   More specifically, the pre-processing unit of the hash value generation device of the present invention may include a data X dividing unit and a data Y generating unit. Then, the data X dividing means divides the data X into A-1 mn bit blocks x [1],..., X [A-1] and one mn bit block x [ (A is the number of divisions when the data X is divided into mn bits). The data Y generation means A′−1 so that the blocks x [1],..., X [A] include at least μ bits (where μ is a predetermined integer) in the data X. .., X ′ [A′−1] and one block x ′ [A ′] of mn bits or less (where A ′ Is an integer equal to or greater than A), and a bit string including x ′ [1] ‖x ′ [2] ‖... X ′ [A ′] (where “‖” is a symbol indicating a combination of bit strings) is data Y. . At this time, the data Y generating means makes a one-to-one correspondence between a combination of blocks x [1],..., X [A] and a combination of blocks x ′ [1],. To do. Further, the data Y generation unit adjusts the data length of x [A ′] so that the data length of the data Z generated by the processing of the data length adjustment unit is A ′ × (mn). For example, when the number of bits added to the data Y by the data length adjustment unit regardless of the data length of the data Y is σ + 1 bits, the data Y generation unit sets the data length of x [A ′] to mn−σ−1. If it is as follows, the data length of the data Z is A ′ × (mn). However, it is not necessary to limit to this specific example, and the blocks x ′ [1],..., X ′ [A are set so that A ′ = B = C in consideration of the processing of the data length adjustment unit and the data compression unit. Another method may be used as long as it is a method of converting to '].

データY生成手段は以下のような処理を行えばよい。例えば、データY生成手段は、μ≦|x[A]|≦m−n−σ―2ならば、データXにビット“0”を付加した結果を、データYとする。|x[A]|≦μ―1、かつ、A≧2ならば、ブロックx[A−1]をm−n−μビットのブロックx’[A−1]とμビットのブロックx”に分割し、x”‖x[A]をブロックx’[A]とし、x[1]‖…‖x[A−2]‖x’[A−1]‖10μ-1‖x’[A]‖1をデータYとする。|x[A]|≦μ―1、かつ、A=1ならば、x[1]‖1をデータYとする。|x[A]|≧m−n−σ―1ならば、ブロックx[A]を|x[A]|−μビットのブロックx’[A]とμビットのブロックx”に分割し、ブロックx”をブロックx[A+1]とし、x[1]‖…‖x[A−1]‖x’[A]‖10m−n−|x’[A]|−1‖x’[A+1]‖1をデータYとする。ただし、“|x[A]|”はx[A]のデータ長を示す記号、“‖”はビット列の結合を意味する記号、“0μ-1”は“0”がμ-1個並んだビット列、σはデータ長調整部内部がデータYのデータ長にかかわらず付加するビット数より1少ない数(データ長調整部がデータYのデータ長にかかわらず付加するビット数をσ+1ビット)とする。なお、この例のデータY生成手段は、最後の2つのブロックを変更することで、すべてのブロックz[1],…,z[C]がデータX内のμビット以上を含むようにしている。しかし、最後の2つに限定する必要はなく、3つ以上のブロックを変更してもよい。 The data Y generation means may perform the following processing. For example, the data Y generation means sets the data Y to the result of adding the bit “0” to the data X if μ ≦ | x [A] | ≦ m−n−σ−2. If | x [A] | ≦ μ−1 and A ≧ 2, the block x [A−1] is changed to an mn−μbit block x ′ [A−1] and a μbit block x ″. Then, x ″ ‖x [A] is divided into blocks x ′ [A], and x [1] ‖... ‖X [A-2] ‖x ′ [A−1] ‖10 μ−1 ‖x ′ [A ] Let ‖1 be data Y. If | x [A] | ≦ μ−1 and A = 1, x [1] ‖1 is the data Y. If | x [A] | ≧ mn−σ−1, block x [A] is divided into | x [A] | −μ-bit block x ′ [A] and μ-bit block x ″, Let block x ″ be block x [A + 1], x [1] ‖ ... ‖x [A−1] ‖x ′ [A] ‖10 mn− | x ′ [A] | −1 −1x ′ [A + 1 ] Let ‖1 be data Y. However, “| x [A] |” is a symbol indicating the data length of x [A], “‖” is a symbol indicating a combination of bit strings, “0 μ-1 ” is μ−1 of “0”. The bit string, σ is a number one less than the number of bits added inside the data length adjustment unit regardless of the data length of the data Y (the number of bits added by the data length adjustment unit regardless of the data length of the data Y is σ + 1 bits) To do. In this example, the data Y generation means changes the last two blocks so that all the blocks z [1],..., Z [C] include μ bits or more in the data X. However, it is not necessary to limit to the last two, and three or more blocks may be changed.

本発明のハッシュ値生成装置によれば、データXのデータ長がμビット以上のときに、データZを分割することで得られるC個のブロックz[1],…,z[C]のすべてが、データX内のμビット以上を含んでいる。したがって、圧縮関数を用いるときに、常に圧縮関数への入力の中にμビット以上のデータX内のビット列が含まれることになる。このことによって、圧縮関数が第2原像発見困難性と一方向性を有するならば、ハッシュ関数も第2原像発見困難性と一方向性を有することが保証できる。また、データXとデータYとは一対一に対応しているので、衝突発見困難性は維持することができる。また、本発明のハッシュ値生成装置は、従来のマークル・ダンガード構成のハッシュ値生成装置に前処理部を付加するだけで、第2原像発見困難性と一方向性を保証できるようになる。つまり、すでに広く普及しているマークル・ダンガード構成のハッシュ値生成装置をそのまま利用できるという利点がある。   According to the hash value generation device of the present invention, when the data length of the data X is μ bits or more, all of the C blocks z [1],..., Z [C] obtained by dividing the data Z are obtained. Includes μ bits or more in the data X. Therefore, when the compression function is used, the bit string in the data X of μ bits or more is always included in the input to the compression function. Thus, if the compression function has the second original image finding difficulty and the one-way property, it can be guaranteed that the hash function also has the second original image finding difficulty and the one-way property. Moreover, since the data X and the data Y correspond one-to-one, the collision detection difficulty can be maintained. In addition, the hash value generation device of the present invention can guarantee the second original image finding difficulty and unidirectionality only by adding a pre-processing unit to the conventional hash value generation device having the Merkle Dunguard configuration. In other words, there is an advantage that a hash value generation device having a Merkle Dungard configuration that is already widely used can be used as it is.

以下に、本発明の実施例を説明する。なお、同じ機能を有する構成部やステップには同じ番号を付し、重複説明を省略する。   Examples of the present invention will be described below. In addition, the same number is attached | subjected to the structure part and step which have the same function, and duplication description is abbreviate | omitted.

分析
まず、なぜ従来のマークル・ダンガード構成のハッシュ値生成装置では、圧縮手段が第2原像発見困難性と一方向性とを有していたとしても、ハッシュ値生成装置の第2原像発見困難性と一方向性とを保証できなかったかを説明する。
Analysis First, in the hash value generation device of the conventional Merkle Dungard configuration, even if the compression means has the second original image finding difficulty and one-way, the second original image finding of the hash value generation device Explain how difficult and one-way could not be guaranteed.

図2に示したように、従来のマークル・ダンガード構成のハッシュ値生成装置900では、データ長調整部980は、データZのデータ長がm−nビットの倍数となるようにビット列をデータYに付加する。ただし、データ長調整部980は、データYのデータ長にかかわらず少なくともσ+1ビットを付加する。したがって、データZのデータ長は、データYのデータ長よりもσ+1ビット以上長くなる。この結果、ブロックy[B]のデータ長がm−n−σ−1よりも長いときには、データZを分割したときのブロックの数の方が、データYを分割したときのブロックの数よりも多くなる(つまり、C=B+1となる。)。そして、最後のブロックz[C]には、データYの中のビット列がまったく含まれていない。また、ブロックy[B]のデータ長が短いときには、最後のブロックz[C]には、データYの中のビット列が少ししか含まれていない。   As shown in FIG. 2, in the hash value generating apparatus 900 having the conventional Merkle Dunguard configuration, the data length adjusting unit 980 converts the bit string into the data Y so that the data length of the data Z is a multiple of mn bits. Append. However, the data length adjustment unit 980 adds at least σ + 1 bits regardless of the data length of the data Y. Therefore, the data length of the data Z is longer than the data length of the data Y by σ + 1 bits or more. As a result, when the data length of the block y [B] is longer than mn-σ-1, the number of blocks when the data Z is divided is larger than the number of blocks when the data Y is divided. (In other words, C = B + 1). The last block z [C] does not include any bit string in the data Y. When the data length of the block y [B] is short, the last block z [C] includes only a small bit string in the data Y.

したがって、データ圧縮部990の圧縮手段992での圧縮関数hを用いた繰り返し演算の中で、最後の演算では、入力されるデータ(ブロックz[C])にデータYの中のビット列が十分含まれていない可能性がある。このことが、従来のマークル・ダンガード構成のハッシュ値生成装置では、圧縮手段が第2原像発見困難性と一方向性とを有していたとしても、ハッシュ値生成装置の第2原像発見困難性と一方向性とを保証できなかったことの原因である。   Therefore, among the repetitive operations using the compression function h in the compression unit 992 of the data compression unit 990, in the last operation, the input data (block z [C]) sufficiently includes the bit string in the data Y. It may not be. This is because in the conventional hash value generation device with the Merkle Dungard configuration, even if the compression means has the second original image finding difficulty and unidirectionality, the second original image finding of the hash value generation device This is the reason why difficulty and unidirectionality could not be guaranteed.

上記の分析から、本発明では、データXのデータ長がμビット以上のときに、圧縮関数に入力されるすべてのブロックが、ハッシュ値生成装置への入力データをμビット以上含むようにする。図3は、実施例1のハッシュ値生成装置の機能構成例を示す図である。図4は、実施例1のハッシュ値生成装置の処理フローを示す図である。   From the above analysis, in the present invention, when the data length of the data X is μ bits or more, all the blocks input to the compression function include input data to the hash value generation device of μ bits or more. FIG. 3 is a diagram illustrating a functional configuration example of the hash value generation device according to the first embodiment. FIG. 4 is a diagram illustrating a processing flow of the hash value generation device according to the first embodiment.

ハッシュ値生成装置100は、mビットのデータをnビットに圧縮する圧縮関数を用いて、データXに対するnビットのハッシュ値を生成する。ハッシュ値生成装置100は、前処理部110、データ長調整部980、データ圧縮部990を備える。前処理部110は、あらかじめ定めた条件を満足するように入力された任意長のデータXをデータYに変換する(S110)。データ長調整部980は、データYにパディングを行いデータ長がm−nビットの倍数のデータZを出力する(S980)。データ圧縮部990は、圧縮関数を用いてデータZを圧縮してハッシュ値を求める(S990)。データ長調整部980とデータ圧縮部990は、従来のハッシュ値生成装置900と同じである。なお、従来のハッシュ値生成装置900の説明では、入力データ(ハッシュ値を求める対象となるデータ)をデータYとしたが、ハッシュ値生成装置100の説明では、入力データ(ハッシュ値を求める対象となるデータ)はデータXであることに注意されたい。   The hash value generation device 100 generates an n-bit hash value for the data X using a compression function that compresses m-bit data into n bits. The hash value generation device 100 includes a preprocessing unit 110, a data length adjustment unit 980, and a data compression unit 990. The preprocessing unit 110 converts data X having an arbitrary length that is input so as to satisfy a predetermined condition into data Y (S110). The data length adjustment unit 980 performs padding on the data Y and outputs data Z whose data length is a multiple of mn bits (S980). The data compression unit 990 obtains a hash value by compressing the data Z using a compression function (S990). The data length adjustment unit 980 and the data compression unit 990 are the same as the conventional hash value generation device 900. In the description of the conventional hash value generation device 900, the input data (the data for which the hash value is obtained) is the data Y. However, in the description of the hash value generation device 100, the input data (the object for which the hash value is obtained) Note that data X is data X.

前処理部110は、データX分割手段120とデータY生成手段130とを備え、データYが次の2つの条件を満足するように、データXをデータYに変換する。
(条件1)データXのデータ長がμビット以上のときに、データ長調整部980が生成するデータZを、C個のm−nビットのブロックz[1],…,z[C]に分割した場合に(ただし、CはデータZをm−nビットずつに分割した場合の分割の数)、すべてのブロックz[1],…,z[C]がデータX内のμビット以上を含む。
(条件2)データXとデータYとは一対一に対応する。
ただし、μはあらかじめ定めた整数であって、セキュリティーレベルを決めるパラメータである。μ=nにすれば、第2原像発見困難性と一方向性の程度が、出力長nの難しさとなる。また、μ=n/2にすれば、第2原像発見困難性と一方向性の程度が、出力長nの半分の難しさ(衝突発見困難性と同じ程度)となる。したがって、μの値は、n/2〜nの範囲で決めることが適当である。
The preprocessing unit 110 includes a data X dividing unit 120 and a data Y generating unit 130, and converts the data X into data Y so that the data Y satisfies the following two conditions.
(Condition 1) When the data length of the data X is μ bits or more, the data Z generated by the data length adjustment unit 980 is converted into C mn bit blocks z [1],..., Z [C]. When divided (where C is the number of divisions when data Z is divided into mn bits), all the blocks z [1],..., Z [C] have more than μ bits in the data X. Including.
(Condition 2) Data X and data Y have a one-to-one correspondence.
However, μ is a predetermined integer and is a parameter for determining the security level. If μ = n, the difficulty of finding the second original image and the degree of unidirectionality become the difficulty of the output length n. If μ = n / 2, the second original image finding difficulty and the degree of unidirectionality are half the output length n (the same degree as the collision finding difficulty). Therefore, it is appropriate to determine the value of μ in the range of n / 2 to n.

前処理部110が、このようにデータYを生成するので、データZを分割することで得られるC個のブロックz[1],…,z[C]のすべてが、データX内のμビット以上を含んでいる。したがって、圧縮関数を用いるときに、常に圧縮関数への入力の中にμビット以上のデータX内のビット列が含まれることになる。このことによって、圧縮関数が第2原像発見困難性と一方向性を有するならば、ハッシュ関数も第2原像発見困難性と一方向性を有することが保証できる。また、データXとデータYとは一対一に対応しているので、衝突発見困難性は維持することができる。   Since the preprocessing unit 110 generates the data Y in this way, all of the C blocks z [1],..., Z [C] obtained by dividing the data Z are μ bits in the data X. Includes the above. Therefore, when the compression function is used, the bit string in the data X of μ bits or more is always included in the input to the compression function. Thus, if the compression function has the second original image finding difficulty and the one-way property, it can be guaranteed that the hash function also has the second original image finding difficulty and the one-way property. Moreover, since the data X and the data Y correspond one-to-one, the collision detection difficulty can be maintained.

さらに、本発明は、入力データ(ハッシュ値を求める対象となるデータ)に対して前処理部110があらかじめ定めた条件を満足するように変換を行い、変換後のデータを従来のハッシュ値生成装置900に入力する。そして、前処理部110を付加したことのみによって、広く普及している従来のハッシュ値生成装置900を利用しながら、圧縮関数が第2原像発見困難性と一方向性を有するならば、ハッシュ関数も第2原像発見困難性と一方向性を有することを保証できる。また、衝突発見困難性は維持する。従って、広く普及している技術を有効に利用できる。   Furthermore, the present invention converts the input data (data for which a hash value is obtained) so that the preprocessing unit 110 satisfies a predetermined condition, and converts the converted data into a conventional hash value generation device. Enter 900. If the compression function has the second original image finding difficulty and one-way while using the widely used conventional hash value generation device 900 only by adding the preprocessing unit 110, the hash It can be assured that the function also has the second original image finding difficulty and unidirectionality. Also, collision detection difficulty is maintained. Therefore, it is possible to effectively use widely spread technology.

前処理部110は、より具体的には、以下のように処理を行えばよい。データX分割手段120は、データXを、A−1個のm−nビットのブロックx[1],…,x[A−1]と、1個のm−nビット以下のブロックx[A]に分割する(ただし、AはデータXをm−nビットずつに分割した場合の分割の数)。データY生成手段130は、ブロックx[1],…,x[A]を、全てのブロックがデータX内のμビット(ただし、μはあらかじめ定めた整数)以上を含むように、A’−1個のm−nビットのブロックx’[1],…,x’[A’−1]と1個のm−nビット以下のブロックx’[A’]とに変換し(ただし、A’はA以上の整数)、x’[1]‖x’[2]‖…‖x’[A’](ただし、“‖”はビット列の結合を意味する記号)を含むビット列をデータYとする。このとき、データY生成手段は、ブロックx[1],…,x[A]の組合せとブロックx’[1],…,x’[A’]の組合せとが一対一に対応するようにする。また、データY生成手段は、x[A’]のデータ長を、データ長調整部980の処理によって生成されるデータZのデータ長が、A’×(m−n)となるように調整する。例えば、データ長調整部980がデータYのデータ長にかかわらずデータYに付加するビット数をσ+1ビットとすると、データY生成手段130が、x[A’]のデータ長をm−n−σ−1以下となるようにしておけば、データZのデータ長が、A’×(m−n)となる。ただし、このような処理を行うためには、mはn+σ+μ+2以上でなければならない。μ=n、σ=64とすると、広く普及している圧縮関数sha1もsha256もこの条件を満たす。なお、上述の具体例に限定する必要はなく、データ長調整部980とデータ圧縮部990の処理を考慮して、A’=B=Cとなるようにブロックx’[1],…,x’[A’]に変換する方法であれば別の方法でも同じ効果を得ることができる。   More specifically, the preprocessing unit 110 may perform processing as follows. The data X dividing means 120 divides the data X into A-1 mn bit blocks x [1],..., X [A-1] and one mn bit or less block x [A]. (Where A is the number of divisions when the data X is divided into mn bits). The data Y generating unit 130 includes blocks x [1],..., X [A] such that all blocks include μ bits (where μ is a predetermined integer) or more in the data X. Is converted into one mn bit block x ′ [1],..., X ′ [A′−1] and one block of mn bits or less x ′ [A ′] (where A ′ 'Is an integer greater than or equal to A), x' [1] ‖x '[2] ‖ ... ‖x' [A '] (where "‖" is a symbol indicating a combination of bit sequences) To do. At this time, the data Y generating means makes a one-to-one correspondence between a combination of blocks x [1],..., X [A] and a combination of blocks x ′ [1],. To do. Further, the data Y generation unit adjusts the data length of x [A ′] so that the data length of the data Z generated by the processing of the data length adjustment unit 980 is A ′ × (mn). . For example, if the number of bits that the data length adjustment unit 980 adds to the data Y regardless of the data length of the data Y is σ + 1 bits, the data Y generation unit 130 sets the data length of x [A ′] to mn−σ. If it is set to −1 or less, the data length of the data Z is A ′ × (mn). However, in order to perform such processing, m must be n + σ + μ + 2 or more. If μ = n and σ = 64, both the widely used compression functions sha1 and sha256 satisfy this condition. Note that it is not necessary to limit to the above-described specific example, and considering the processing of the data length adjustment unit 980 and the data compression unit 990, the blocks x ′ [1],. The same effect can be obtained by another method as long as it is a method for conversion to '[A'].

図5に、前処理部110の処理フローの具体例を示す。この処理フローは、図2に示したデータ長調整部980とデータ圧縮部990と組み合わせることを前提としたものである。データX分割手段120は、データXを、A−1個のm−nビットのブロックx[1],…,x[A−1]と、1個のm−nビット以下のブロックx[A]に分割する(ただし、AはデータXをm−nビットずつに分割した場合の分割の数)(S120)。   FIG. 5 shows a specific example of the processing flow of the preprocessing unit 110. This processing flow is premised on the combination of the data length adjustment unit 980 and the data compression unit 990 shown in FIG. The data X dividing means 120 divides the data X into A-1 mn bit blocks x [1],..., X [A-1] and one mn bit or less block x [A]. (Where A is the number of divisions when the data X is divided into mn bits) (S120).

データY生成手段130は、μ≦|x[A]|≦m−n−σ―2かを確認する(S131)。データY生成手段130は、ステップS131がYesならば、データXにビット“0”を付加した結果を、データYとする(S132)。この場合、A’=Aであり、x’[1],…,x’[A−1]はx[1],…,x[A−1]と同じであり、x’[A−1]はx[A−1]‖0である。   The data Y generation means 130 checks whether μ ≦ | x [A] | ≦ mn−σ−2 (S131). If step S131 is Yes, the data Y generation means 130 sets the result of adding the bit “0” to the data X as data Y (S132). In this case, A ′ = A, x ′ [1],..., X ′ [A−1] is the same as x [1],. ] Is x [A-1] ‖0.

データY生成手段130は、ステップS131がNoならば、データY生成手段130は、|x[A]|≦μ―1かを確認する(S133)。データY生成手段130は、ステップS133がYesならば、A≧2かを確認する(S134)。データY生成手段130は、ステップS134がYesならば、ブロックx[A−1]をm−n−μビットのブロックx’[A−1]とμビットのブロックx”に分割する(S135)。x”‖x[A]をブロックx’[A]とする(S136)。そして、x[1]‖…‖x[A−2]‖x’[A−1]‖10μ-1‖x’[A]‖1をデータYとする(S137)。この場合、A’=Aであり、x’[1],…,x’[A−2]はx[1],…,x[A−2]と同じである。データY生成手段130は、ステップS134がNoならば、x[1]‖1をデータYとする(S138)。この場合、A’=Aであり、x’[1],…,x’[A−1]はx[1],…,x[A−1]と同じであり、x’[A−1]はx[A−1]‖1である。 If the result in step S131 is No, the data Y generation means 130 checks whether | x [A] | ≦ μ−1 (S133). If the step S133 is Yes, the data Y generation means 130 checks whether A ≧ 2 (S134). If step S134 is Yes, the data Y generation means 130 divides the block x [A-1] into an mn-μbit block x ′ [A-1] and a μbit block x ″ (S135). X ″ ‖x [A] is set as a block x ′ [A] (S136). Then, x [1] ‖ ... ‖x [A-2] ‖x ′ [A-1] ‖10 μ- 1‖x ′ [A] ‖1 is set as data Y (S137). In this case, A ′ = A, and x ′ [1],..., X ′ [A−2] is the same as x [1],. The data Y generation unit 130 sets x [1] デ ー タ 1 as the data Y if step S134 is No (S138). In this case, A ′ = A, x ′ [1],..., X ′ [A−1] is the same as x [1],. ] Is x [A-1] ‖1.

データY生成手段130は、ステップS133がNo(つまり、|x[A]|≧m−n−σ―1)ならば、ブロックx[A]を|x[A]|−μビットのブロックx’[A]とμビットのブロックx”に分割する(S139)。ブロックx”をブロックx[A+1]とする(S140)。x[1]‖…‖x[A−1]‖x’[A]‖10m−n−|x’[A]|−1‖x’[A+1]‖1をデータYとする(S141)。この場合、A’=A+1であり、x’[1],…,x’[A−1]はx[1],…,x[A−1]と同じである。ただし、“|x[A]|”はx[A]のデータ長を示す記号、“‖”はビット列の結合を意味する記号、“0μ-1”は“0”がμ-1個並んだビット列、σはデータYのデータ長|Y|を表現したビット数であり、データ長調整部980がデータYのデータ長にかかわらず付加するビット数より1少ない数である。なお、この例のデータY生成手段130は、最後の2つのブロックを変更することで、すべてのブロックz[1],…,z[C]がデータX内のμビット以上を含むようにしている。しかし、最後の2つに限定する必要はなく、3つ以上のブロックを変更してもよい。 If the step S133 is No (that is, | x [A] | ≧ mn−σ−1), the data Y generation means 130 converts the block x [A] into a block x of | x [A] | −μ bits. '[A] and μ-bit block x ″ are divided (S139). Block x ″ is set as block x [A + 1] (S140). x [1] ‖ ... ‖x [A-1] ‖x ′ [A] ‖10 mn− | x ′ [A] | −1‖x ′ [A + 1] ‖1 is set as data Y (S141) . In this case, A ′ = A + 1, and x ′ [1],..., X ′ [A−1] is the same as x [1],. However, “| x [A] |” is a symbol indicating the data length of x [A], “‖” is a symbol indicating a combination of bit strings, “0 μ-1 ” is μ−1 of “0”. The bit string, σ, is the number of bits expressing the data length | Y | of the data Y, and is one less than the number of bits added by the data length adjusting unit 980 regardless of the data length of the data Y. Note that the data Y generation unit 130 of this example changes all the last two blocks so that all the blocks z [1],..., Z [C] include μ bits or more in the data X. However, it is not necessary to limit to the last two, and three or more blocks may be changed.

図6は、前処理部110を付加した場合のデータ圧縮部990(圧縮手段992)の処理を示す図である。上述のように、前処理部110の処理は、ブロックx[A]のデータ長によって異なる。したがって、データ圧縮部990の処理も、ブロックx[A]のデータ長によって異なる。μ≦|x[A]|≦m−n−σ―2の場合、圧縮関数hへの入力は、x[1],…,x[A−1],x[A]‖0‖10m−n−σ−1−|y[B]|‖<|Y|>となる。よって、すべての入力にデータXがμビット以上含まれている。|x[A]|≦μ―1かつA≧2の場合、圧縮関数hへの入力は、x[1],…,x’[A−1]‖10μ−1,x’[A]‖1‖10m−n−σ−1−|y[B]|‖<|Y|>となる。よって、すべての入力にデータXがμビット以上含まれている。|x[A]|≦μ―1かつA=1の場合、圧縮関数hへの入力は、x[1]‖1‖10m−n−σ−1−|y[B]|‖<|Y|>のみとなる。この場合は、データXがμビット以上含まれていない。しかし、入力されたデータX自体がμビットより短いので、本発明の解決すべき課題の対象外である。|x[A]|≧m−n−σ―1の場合、圧縮関数hへの入力は、x[1],…,x[A−1],x’[A]‖10m−n−|x’[A]|−1,x’[A+1]‖1‖10m−n−σ−1−|y[B]|‖<|Y|>となる。よって、すべての入力にデータXがμビット以上含まれている。したがって、入力されたデータXのデータ長がμビット以上であれば、常に圧縮関数への入力の中にμビット以上のデータX内のビット列が含まれることが分かる。 FIG. 6 is a diagram showing processing of the data compression unit 990 (compression unit 992) when the preprocessing unit 110 is added. As described above, the processing of the preprocessing unit 110 differs depending on the data length of the block x [A]. Therefore, the processing of the data compression unit 990 also differs depending on the data length of the block x [A]. When μ ≦ | x [A] | ≦ m−n−σ−2, the input to the compression function h is x [1],..., x [A-1], x [A] ‖0‖10 m −n−σ−1− | y [B] | ‖ <| Y |>. Therefore, data X is included in all inputs by μ bits or more. When | x [A] | ≦ μ−1 and A ≧ 2, the input to the compression function h is x [1],..., X ′ [A−1] ‖10 μ−1 , x ′ [A] ‖1‖10 mn-σ-1- | y [B] | ‖ <| Y |> Therefore, data X is included in all inputs by μ bits or more. When | x [A] | ≦ μ−1 and A = 1, the input to the compression function h is x [1] ‖1‖10 mn−σ−1− | y [B] | Only Y |>. In this case, the data X does not include more than μ bits. However, since the input data X itself is shorter than μ bits, it is not the subject of the problem to be solved by the present invention. | X [A] | For ≧ m-n-σ-1 , the input to the compression function h, x [1], ..., x [A-1], x '[A] ‖10 m-n- | X ′ [A] | −1 , x ′ [A + 1] ‖1‖10 mn-σ-1-−y [B] | ‖ <| Y |>. Therefore, data X is included in all inputs by μ bits or more. Therefore, if the data length of the input data X is μ bits or more, it can be seen that the bit string in the data X of μ bits or more is always included in the input to the compression function.

図7に本発明の検証装置の機能構成例を示す。また、図8に本発明の検証装置の処理フロー例を示す。検証装置500は、実施例1で示したハッシュ値生成装置100と比較部510と記録部590を備える。検証装置500は、データXとハッシュ値τが入力、検証結果が出力である。   FIG. 7 shows a functional configuration example of the verification apparatus of the present invention. FIG. 8 shows a processing flow example of the verification apparatus of the present invention. The verification device 500 includes the hash value generation device 100, the comparison unit 510, and the recording unit 590 described in the first embodiment. The verification device 500 receives data X and a hash value τ, and outputs a verification result.

検証装置500内のハッシュ値生成装置100は、データXからハッシュ値τ’を生成する(S100)。比較部510は、ハッシュ値τとハッシュ値τ’とを比較する。そして、τ=τ’ならば、データ内容の整合性が検証されたとする。τ≠τ’ならば、データの改ざんがあると判断する。そして、検証結果を出力する(S510)。なお、記録部590を備えず、その他の構成部でこれらの情報を記録してもよい。
このような構成なので、検証装置500でも、ハッシュ値生成装置100と同じ効果を得ることができる。
The hash value generation device 100 in the verification device 500 generates a hash value τ ′ from the data X (S100). The comparison unit 510 compares the hash value τ and the hash value τ ′. If τ = τ ′, the consistency of data contents is verified. If τ ≠ τ ′, it is determined that the data has been tampered with. Then, the verification result is output (S510). The recording unit 590 may not be provided, and these pieces of information may be recorded by other components.
With this configuration, the verification device 500 can obtain the same effects as the hash value generation device 100.

図9に、コンピュータの機能構成例を示す。なお、本発明のハッシュ値生成装置および検証装置は、コンピュータ2000の記録部2020に、本発明の各構成部としてコンピュータ2000を動作させるプログラムを読み込ませ、処理部2010、入力部2030、出力部2040などを動作させることで実現できる。また、コンピュータに読み込ませる方法としては、プログラムをコンピュータ読み取り可能な記録媒体に記録しておき、記録媒体からコンピュータに読み込ませる方法、サーバ等に記録されたプログラムを、電気通信回線等を通じてコンピュータに読み込ませる方法などがある。   FIG. 9 shows a functional configuration example of the computer. Note that the hash value generation device and the verification device of the present invention cause the recording unit 2020 of the computer 2000 to read a program that causes the computer 2000 to operate as each component of the present invention, and the processing unit 2010, the input unit 2030, and the output unit 2040. It can be realized by operating. In addition, as a method of causing the computer to read, the program is recorded on a computer-readable recording medium, and the program recorded on the server or the like is read into the computer through a telecommunication line or the like. There is a method to make it.

本発明のハッシュ値生成装置、検証装置、ハッシュ値生成方法、検証方法は、例えば携帯電話、パソコン、ルータ、サーバなどに組み込み、送受信されるデータや蓄積されたデータに対するハッシュ値を生成することまたは検証することに利用できる。   The hash value generation device, the verification device, the hash value generation method, and the verification method of the present invention are incorporated in, for example, a mobile phone, a personal computer, a router, a server, etc., and generate hash values for transmitted / received data or accumulated data, or It can be used for verification.

従来のハッシュ値生成装置の機能構成例を示す図。The figure which shows the function structural example of the conventional hash value production | generation apparatus. 従来のハッシュ値生成装置の処理フローの例を示す図。The figure which shows the example of the processing flow of the conventional hash value production | generation apparatus. 実施例1のハッシュ値生成装置の機能構成例を示す図。FIG. 3 is a diagram illustrating a functional configuration example of a hash value generation device according to the first embodiment. 実施例1のハッシュ値生成装置の処理フローを示す図。The figure which shows the processing flow of the hash value production | generation apparatus of Example 1. FIG. 前処理部110の処理フローの具体例を示す図。The figure which shows the specific example of the processing flow of the pre-processing part 110. FIG. 前処理部110を付加した場合のデータ圧縮部990の処理を示す図。The figure which shows the process of the data compression part 990 when the pre-processing part 110 is added. 本発明の検証装置の機能構成例を示す図。The figure which shows the function structural example of the verification apparatus of this invention. 本発明の検証装置の処理フロー例を示す図。The figure which shows the example of a processing flow of the verification apparatus of this invention. コンピュータの機能構成例を示す図。The figure which shows the function structural example of a computer.

符号の説明Explanation of symbols

100、900 ハッシュ値生成装置 110 前処理部
120 データX分割手段 130 データY生成手段
500 検証装置 510 比較部
590 記録部 980 データ長調整部
981 データY分割手段 982 データZ生成手段
990 データ圧縮部 991 データZ分割手段
992 圧縮手段
100, 900 Hash value generation device 110 Pre-processing unit 120 Data X division unit 130 Data Y generation unit 500 Verification unit 510 Comparison unit 590 Recording unit 980 Data length adjustment unit 981 Data Y division unit 982 Data Z generation unit 990 Data compression unit 991 Data Z dividing means 992 compression means

Claims (10)

mビットのデータをnビットに圧縮する圧縮関数を用いて、データXに対するnビットのハッシュ値を生成するハッシュ値生成装置であって、
前記データXをデータYに変換する前処理部と、
データYにパディングを行い、データ長がm−nビットの倍数のデータZを出力するデータ長調整部と、
前記圧縮関数を用いてデータZを圧縮して、ハッシュ値を求めるデータ圧縮部と
を備え、
前記前処理部は、
データZを、C個のm−nビットのブロックz[1],…,z[C]に分割した場合に(ただし、CはデータZをm−nビットずつに分割した場合の分割の数)、すべてのブロックz[1],…,z[C]がデータX内のμビット(ただし、μはあらかじめ定めた整数)以上を含むように、かつ、
データXとデータYとは一対一に対応するように
データXをデータYに変換する
ことを特徴とするハッシュ値生成装置。
A hash value generation device that generates an n-bit hash value for data X using a compression function that compresses m-bit data into n bits,
A preprocessing unit for converting the data X into data Y;
A data length adjustment unit that performs padding on data Y and outputs data Z having a data length that is a multiple of mn bits;
A data compression unit that compresses the data Z using the compression function and obtains a hash value;
The pre-processing unit is
When data Z is divided into C mn bit blocks z [1],..., Z [C] (where C is the number of divisions when data Z is divided into mn bits each) ), All blocks z [1],..., Z [C] include at least μ bits in data X (where μ is a predetermined integer), and
A hash value generation device, wherein data X and data Y are converted to data Y so that data X and data Y correspond one-to-one.
mビットのデータをnビットに圧縮する圧縮関数を用いて、データXに対するnビットのハッシュ値を生成するハッシュ値生成装置であって、
前記データXをデータYに変換する前処理部と、
データYにパディングを行い、データ長がm−nビットの倍数のデータZを出力するデータ長調整部と、
前記圧縮関数を用いてデータZを圧縮して、ハッシュ値を求めるデータ圧縮部と
を備え、
前記前処理部は、
データXを、A−1個のm−nビットのブロックx[1],…,x[A−1]と、1個のm−nビット以下のブロックx[A]に分割する(ただし、AはデータXをm−nビットずつに分割した場合の分割の数)データX分割手段と、
前記ブロックx[1],…,x[A]を、全てのブロックがデータX内のμビット(ただし、μはあらかじめ定めた整数)以上を含むように、A’−1個のm−nビットのブロックx’[1],…,x’[A’−1]と1個のm−nビット以下のブロックx’[A’]とに変換し(ただし、A’はA以上の整数)、x’[1]‖x’[2]‖…‖x’[A’](ただし、“‖”はビット列の結合を意味する記号)を含むビット列をデータYとするデータY生成手段と
を有し、
前記データY生成手段は、ブロックx[1],…,x[A]の組合せとブロックx’[1],…,x’[A’]の組合せとが一対一に対応するようにし、かつ
前記データY生成手段は、x[A’]のデータ長を、前記データ長調整部の処理によって生成されるデータZのデータ長が、A’×(m−n)となるようにする
ことを特徴とするハッシュ値生成装置。
A hash value generation device that generates an n-bit hash value for data X using a compression function that compresses m-bit data into n bits,
A preprocessing unit for converting the data X into data Y;
A data length adjustment unit that performs padding on data Y and outputs data Z having a data length that is a multiple of mn bits;
A data compression unit that compresses the data Z using the compression function and obtains a hash value;
The pre-processing unit is
The data X is divided into A-1 mn bit blocks x [1],..., X [A-1] and one mn bit or less block x [A]. A is the number of divisions when data X is divided into mn bits) Data X dividing means;
The block x [1],..., X [A] includes A′−1 m−n such that all the blocks include μ bits (where μ is a predetermined integer) in the data X. A block of bits x ′ [1],..., X ′ [A′−1] and a block x ′ [A ′] of mn bits or less are converted (where A ′ is an integer greater than or equal to A) ), X ′ [1] ‖x ′ [2] ‖... ‖X ′ [A ′] (where “‖” is a symbol indicating a combination of bit strings), and data Y generating means that uses data Y as a bit string. Have
The data Y generating means makes the combination of the blocks x [1],..., X [A] and the combination of the blocks x ′ [1],. The data Y generating means sets the data length of x [A ′] so that the data length of the data Z generated by the processing of the data length adjusting unit is A ′ × (mn). A hash value generation device characterized.
mビットのデータをnビットに圧縮する圧縮関数を用いて、データXに対するnビットのハッシュ値を生成するハッシュ値生成装置であって、
前記データXをデータYに変換する前処理部と、
データYにパディングを行い、データ長がm−nビットの倍数のデータZを出力するデータ長調整部と、
前記圧縮関数を用いてデータZを圧縮して、ハッシュ値を求めるデータ圧縮部と
を備え、
前記前処理部は、
データXを、A−1個のm−nビットのブロックx[1],…,x[A−1]と、1個のm−nビット以下のブロックx[A]に分割するデータX分割手段と、
μ≦|x[A]|≦m−n−σ―2ならば、
データXにビット“0”を付加した結果を、データYとし、
|x[A]|≦μ―1、かつ、A≧2ならば、
ブロックx[A−1]をm−n−μビットのブロックx’[A−1]とμビットのブロックx”に分割し、
x”‖x[A]をブロックx’[A]とし、
x[1]‖…‖x[A−2]‖x’[A−1]‖10μ-1‖x’[A]‖1をデータYとし、
|x[A]|≦μ―1、かつ、A=1ならば、
x[1]‖1をデータYとし、
|x[A]|≧m−n−σ―1ならば、
ブロックx[A]を|x[A]|−μビットのブロックx’[A]とμビットのブロックx”に分割し、
ブロックx”をブロックx[A+1]とし、
x[1]‖…‖x[A−1]‖x’[A]‖10m−n−|x’[A]|−1‖x’[A+1]‖1をデータYとするデータY生成手段と
を有す
(ただし、AはデータXをm−nビットずつに分割した場合の分割の数、μはあらかじめ定めた整数、“|x[A]|”はx[A]のデータ長を示す記号、“‖”はビット列の結合を意味する記号、“0μ-1”は“0”がμ-1個並んだビット列、前記データ長調整部がデータYのデータ長にかかわらず付加するビット数をσ+1ビットとする)
ことを特徴とするハッシュ値生成装置。
A hash value generation device that generates an n-bit hash value for data X using a compression function that compresses m-bit data into n bits,
A preprocessing unit for converting the data X into data Y;
A data length adjustment unit that performs padding on data Y and outputs data Z having a data length that is a multiple of mn bits;
A data compression unit that compresses the data Z using the compression function and obtains a hash value;
The pre-processing unit is
Data X division that divides the data X into A-1 mn bit blocks x [1], ..., x [A-1] and one mn bit block x [A] or less. Means,
If μ ≦ | x [A] | ≦ m−n−σ−2,
The result of adding bit “0” to data X is data Y,
If | x [A] | ≦ μ−1 and A ≧ 2,
The block x [A-1] is divided into an mn-μbit block x ′ [A-1] and a μbit block x ″.
Let x ″ ‖x [A] be a block x ′ [A],
x [1] ‖ ... ‖x [A-2] ‖x ′ [A-1] ‖10 μ−1 ‖x ′ [A] ‖1 is data Y,
If | x [A] | ≦ μ−1 and A = 1,
Let x [1] ‖1 be data Y,
If | x [A] | ≧ mn−σ−1,
The block x [A] is divided into | x [A] | −μbit block x ′ [A] and μbit block x ″.
Let block x ″ be block x [A + 1],
x [1] ‖ ... ‖x [A−1] ‖x ′ [A] ‖10 mn− | x ′ [A] | −1 Data Y generation with ‖x ′ [A + 1] ‖1 as data Y (Where A is the number of divisions when the data X is divided into mn bits, μ is a predetermined integer, and “| x [A] |” is the data length of x [A]. , “は” means a bit string combination, “0 μ-1 ” is a bit string in which μ-1 “0” s are arranged, and the data length adjustment unit is added regardless of the data length of data Y (The number of bits to be used is σ + 1 bits)
A hash value generation device characterized by that.
データXとハッシュ値τとを入力とし、データXの検証を行う検証装置であって、
データXに対するハッシュ値τ’を出力する請求項1から3のいずれかに記載のハッシュ生成装置と、
前記ハッシュ値τと前記ハッシュ値τ’とを比較してデータXの検証結果を出力する比較部と
を備える検証装置。
A verification device that receives data X and hash value τ as input and performs verification of data X,
The hash generation device according to any one of claims 1 to 3, which outputs a hash value τ 'for data X;
A verification device comprising: a comparison unit that compares the hash value τ and the hash value τ ′ and outputs a verification result of the data X.
mビットのデータをnビットに圧縮する圧縮関数を用いて、データXに対するnビットのハッシュ値を生成するハッシュ値生成方法であって、
前処理部で、前記データXをデータYに変換する前処理ステップと、
データ長調整部で、データYにパディングを行い、データ長がm−nビットの倍数のデータZを出力するデータ長調整ステップと、
データ圧縮部で、前記圧縮関数を用いてデータZを圧縮して、ハッシュ値を求めるデータ圧縮ステップと
を有し、
前記前処理ステップは、
データZを、C個のm−nビットのブロックz[1],…,z[C]に分割した場合に(ただし、CはデータZをm−nビットずつに分割した場合の分割の数)、すべてのブロックz[1],…,z[C]がデータX内のμビット(ただし、μはあらかじめ定めた整数)以上を含むように、かつ、
データXとデータYとは一対一に対応するように
データXをデータYに変換する
ことを特徴とするハッシュ値生成方法。
A hash value generation method for generating an n-bit hash value for data X using a compression function for compressing m-bit data to n bits,
A preprocessing step of converting the data X into data Y in a preprocessing unit;
A data length adjustment step of padding the data Y in the data length adjustment unit and outputting the data Z having a data length that is a multiple of mn bits;
A data compression unit that compresses the data Z using the compression function to obtain a hash value; and
The preprocessing step includes
When data Z is divided into C mn bit blocks z [1],..., Z [C] (where C is the number of divisions when data Z is divided into mn bits each) ), All blocks z [1],..., Z [C] include at least μ bits in data X (where μ is a predetermined integer), and
A method of generating a hash value, comprising: converting data X to data Y so that data X and data Y have a one-to-one correspondence.
mビットのデータをnビットに圧縮する圧縮関数を用いて、データXに対するnビットのハッシュ値を生成するハッシュ値生成方法であって、
前処理部で、前記データXをデータYに変換する前処理ステップと、
データ長調整部で、データYにパディングを行い、データ長がm−nビットの倍数のデータZを出力するデータ長調整ステップと、
データ圧縮部で、前記圧縮関数を用いてデータZを圧縮して、ハッシュ値を求めるデータ圧縮ステップと
を有し、
前記前処理ステップは、
データXを、A−1個のm−nビットのブロックx[1],…,x[A−1]と、1個のm−nビット以下のブロックx[A]に分割する(ただし、AはデータXをm−nビットずつに分割した場合の分割の数)データX分割サブステップと、
前記ブロックx[1],…,x[A]を、全てのブロックがデータX内のμビット(ただし、μはあらかじめ定めた整数)以上を含むように、A’−1個のm−nビットのブロックx’[1],…,x’[A’−1]と1個のm−nビット以下のブロックx’[A’]とに変換し(ただし、A’はA以上の整数)、x’[1]‖x’[2]‖…‖x’[A’](ただし、“‖”はビット列の結合を意味する記号)を含むビット列をデータYとするデータY生成サブステップと
を有し、
前記データY生成サブステップは、ブロックx[1],…,x[A]の組合せとブロックx’[1],…,x’[A’]の組合せとが一対一に対応するようにし、かつ
前記データY生成手段は、x[A’]のデータ長を、前記データ長調整ステップの処理によって生成されるデータZのデータ長が、A’×(m−n)となるようにする
ことを特徴とするハッシュ値生成方法。
A hash value generation method for generating an n-bit hash value for data X using a compression function for compressing m-bit data to n bits,
A preprocessing step of converting the data X into data Y in a preprocessing unit;
A data length adjustment step of padding the data Y in the data length adjustment unit and outputting the data Z having a data length that is a multiple of mn bits;
A data compression unit that compresses the data Z using the compression function to obtain a hash value; and
The preprocessing step includes
The data X is divided into A-1 mn bit blocks x [1],..., X [A-1] and one mn bit or less block x [A]. A is the number of divisions when data X is divided into mn bits) Data X division substep;
The block x [1],..., X [A] includes A′−1 m−n such that all the blocks include μ bits (where μ is a predetermined integer) in the data X. A block of bits x ′ [1],..., X ′ [A′−1] and a block x ′ [A ′] of mn bits or less are converted (where A ′ is an integer greater than or equal to A) ), X ′ [1] ‖x ′ [2] ‖... X ′ [A ′] (where “‖” is a symbol indicating a combination of bit strings), and a data Y generation sub-step in which the data Y is a bit string. And
In the data Y generation sub-step, a combination of blocks x [1],..., X [A] and a combination of blocks x ′ [1],. The data Y generating means sets the data length of x [A ′] so that the data length of the data Z generated by the processing of the data length adjusting step is A ′ × (mn). A hash value generation method characterized by
mビットのデータをnビットに圧縮する圧縮関数を用いて、データXに対するnビットのハッシュ値を生成するハッシュ値生成方法であって、
前処理部で、前記データXをデータYに変換する前処理ステップと、
データ長調整部で、データYにパディングを行い、データ長がm−nビットの倍数のデータZを出力するデータ長調整ステップと、
データ圧縮部で、前記圧縮関数を用いてデータZを圧縮して、ハッシュ値を求めるデータ圧縮ステップと
を有し、
前記前処理ステップは、
データXを、A−1個のm−nビットのブロックx[1],…,x[A−1]と、1個のm−nビット以下のブロックx[A]に分割するデータX分割サブステップと、
μ≦|x[A]|≦m−n−σ―2ならば、
データXにビット“0”を付加した結果を、データYとし、
|x[A]|≦μ―1、かつ、A≧2ならば、
ブロックx[A−1]をm−n−μビットのブロックx’[A−1]とμビットのブロックx”に分割し、
x”‖x[A]をブロックx’[A]とし、
x[1]‖…‖x[A−2]‖x’[A−1]‖10μ-1‖x’[A]‖1をデータYとし、
|x[A]|≦μ―1、かつ、A=1ならば、
x[1]‖1をデータYとし、
|x[A]|≧m−n−σ―1ならば、
ブロックx[A]を|x[A]|−μビットのブロックx’[A]とμビットのブロックx”に分割し、
ブロックx”をブロックx[A+1]とし、
x[1]‖…‖x[A−1]‖x’[A]‖10m−n−|x’[A]|−1‖x’[A+1]‖1をデータYとするデータY生成サブステップと
を有す
(ただし、AはデータXをm−nビットずつに分割した場合の分割の数、μはあらかじめ定めた整数、“|x[A]|”はx[A]のデータ長を示す記号、“‖”はビット列の結合を意味する記号、“0μ-1”は“0”がμ-1個並んだビット列、前記データ長調整部がデータYのデータ長にかかわらず付加するビット数をσ+1ビットとする)
ことを特徴とするハッシュ値生成方法。
A hash value generation method for generating an n-bit hash value for data X using a compression function for compressing m-bit data to n bits,
A preprocessing step of converting the data X into data Y in a preprocessing unit;
A data length adjustment step of padding the data Y in the data length adjustment unit and outputting the data Z having a data length that is a multiple of mn bits;
A data compression unit that compresses the data Z using the compression function to obtain a hash value; and
The preprocessing step includes
Data X division that divides the data X into A-1 mn bit blocks x [1], ..., x [A-1] and one mn bit block x [A] or less. Substeps,
If μ ≦ | x [A] | ≦ m−n−σ−2,
The result of adding bit “0” to data X is data Y,
If | x [A] | ≦ μ−1 and A ≧ 2,
The block x [A-1] is divided into an mn-μbit block x ′ [A-1] and a μbit block x ″.
Let x ″ ‖x [A] be a block x ′ [A],
x [1] ‖ ... ‖x [A-2] ‖x ′ [A-1] ‖10 μ−1 ‖x ′ [A] ‖1 is data Y,
If | x [A] | ≦ μ−1 and A = 1,
Let x [1] ‖1 be data Y,
If | x [A] | ≧ mn−σ−1,
The block x [A] is divided into | x [A] | −μbit block x ′ [A] and μbit block x ″.
Let block x ″ be block x [A + 1],
x [1] ‖ ... ‖x [A−1] ‖x ′ [A] ‖10 mn− | x ′ [A] | −1 Data Y generation with ‖x ′ [A + 1] ‖1 as data Y (Where A is the number of divisions when data X is divided into mn bits, μ is a predetermined integer, and “| x [A] |” is data of x [A]. Symbol indicating length, “‖” is a symbol indicating a combination of bit strings, “0 μ-1 ” is a bit string in which μ-1 “0” s are arranged, and the data length adjustment unit is independent of the data length of data Y (The number of bits to be added is σ + 1 bits)
A hash value generation method characterized by that.
データXとハッシュ値τとを入力とし、データXの検証を行う検証方法であって、
データXに対するハッシュ値τ’を出力する請求項5から7のいずれかに記載のハッシュ生成方法の各ステップと、
比較部で、前記ハッシュ値τと前記ハッシュ値τ’とを比較してデータXの検証結果を出力する比較ステップと
を有する検証方法。
A verification method in which data X and hash value τ are input and data X is verified,
Each step of the hash generation method in any one of Claim 5 to 7 which outputs hash value (tau) 'with respect to the data X,
A comparison method comprising: a comparison unit that compares the hash value τ and the hash value τ ′ and outputs a verification result of the data X in the comparison unit.
請求項1から3のいずれかに記載のハッシュ値生成装置、または4記載の検証装置として、コンピュータを動作させるプログラム。   A program that causes a computer to operate as the hash value generation device according to claim 1 or the verification device according to claim 4. 請求項9記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。


A computer-readable recording medium on which the program according to claim 9 is recorded.


JP2008302380A 2008-11-27 2008-11-27 Hash value generation device, verification device, hash value generation method, verification method, program, and recording medium Expired - Fee Related JP5079671B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008302380A JP5079671B2 (en) 2008-11-27 2008-11-27 Hash value generation device, verification device, hash value generation method, verification method, program, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008302380A JP5079671B2 (en) 2008-11-27 2008-11-27 Hash value generation device, verification device, hash value generation method, verification method, program, and recording medium

Publications (2)

Publication Number Publication Date
JP2010128154A true JP2010128154A (en) 2010-06-10
JP5079671B2 JP5079671B2 (en) 2012-11-21

Family

ID=42328594

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008302380A Expired - Fee Related JP5079671B2 (en) 2008-11-27 2008-11-27 Hash value generation device, verification device, hash value generation method, verification method, program, and recording medium

Country Status (1)

Country Link
JP (1) JP5079671B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012068436A (en) * 2010-09-24 2012-04-05 Mitsubishi Electric Corp Hash value arithmetic device, hash value arithmetic method and hash value arithmetic program
JP2015528681A (en) * 2012-09-14 2015-09-28 クアルコム,インコーポレイテッド Apparatus and method for protecting message data

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0488736A (en) * 1990-07-31 1992-03-23 Matsushita Electric Ind Co Ltd Data transmission system
JP2003051821A (en) * 2001-05-11 2003-02-21 Lucent Technol Inc Message processing method for authentication
JP2008233661A (en) * 2007-03-22 2008-10-02 Univ Of Electro-Communications Hash function device, hash value operation method, hash value operation program, electronic signature device, electronic signature method and electronic signature operation program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0488736A (en) * 1990-07-31 1992-03-23 Matsushita Electric Ind Co Ltd Data transmission system
JP2003051821A (en) * 2001-05-11 2003-02-21 Lucent Technol Inc Message processing method for authentication
JP2008233661A (en) * 2007-03-22 2008-10-02 Univ Of Electro-Communications Hash function device, hash value operation method, hash value operation program, electronic signature device, electronic signature method and electronic signature operation program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012068436A (en) * 2010-09-24 2012-04-05 Mitsubishi Electric Corp Hash value arithmetic device, hash value arithmetic method and hash value arithmetic program
JP2015528681A (en) * 2012-09-14 2015-09-28 クアルコム,インコーポレイテッド Apparatus and method for protecting message data

Also Published As

Publication number Publication date
JP5079671B2 (en) 2012-11-21

Similar Documents

Publication Publication Date Title
US8533483B2 (en) Data processing apparatus and digital signature method
JP6305642B2 (en) Message authenticator generating apparatus, message authenticator generating method, and message authenticator generating program
JP6453366B2 (en) Cryptographic checksum generation
JP6120961B2 (en) Generation and verification of alternative data with a specific format
TWI392267B (en) Methods and apparatus for providing linear erasure codes
Gorbenko et al. Post-quantum message authentication cryptography based on error-correcting codes
Yevseiev et al. Development of Niederreiter hybrid crypto-code structure on flawed codes
Kampanakis et al. LMS vs XMSS: Comparion of two hash-based signature standards
US20070277043A1 (en) Methods for Generating Identification Values for Identifying Electronic Messages
JP5079671B2 (en) Hash value generation device, verification device, hash value generation method, verification method, program, and recording medium
CN110995415A (en) Encryption algorithm based on MD5 algorithm
KR20160120062A (en) Quantum signature apparatus for quantum message
US20100111292A1 (en) Aggregate and parallelizable hash function
Al Shaikhli et al. Protection of integrity and ownership of PDF documents using invisible signature
JP2009169316A (en) Hash function operational device, signature device, program and hash function operational method
CN112184441A (en) Data processing method, data processing device, node equipment and storage medium
JP5427117B2 (en) Message authenticator generation device, message authenticator verification device, message authenticator generation method, message authenticator verification method, and program
Saldamli et al. Post-Quantum Cryptography on IoT: Merkle's Tree Authentication
JP4914381B2 (en) Message authenticator generation device, message authenticator verification device, message authenticator generation method, message authenticator verification method, program, and recording medium
JP2017073716A (en) Tag list generation device, tag list verification device, tag list updating device, tag list generation method, and program
US11336456B2 (en) Message authentication system, apparatus, and message verification method
JP6305643B2 (en) Message authenticator generating apparatus, message authenticator generating method, and message authenticator generating program
JP4914329B2 (en) Message authenticator generation device, message authenticator verification device, message authenticator generation method, message authenticator verification method, program, and recording medium
CN112184440A (en) Data processing method, data processing device, node equipment and storage medium
Samardjiska et al. Approaching maximum embedding efficiency on small covers using staircase-generator codes

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110228

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110810

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120810

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: 20120821

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120829

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150907

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees