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 PDFInfo
- 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
Links
Images
Abstract
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}n
をハッシュ関数という。ただし、“{0,1}*”は、0または1が任意の長さ並んだビット列を、“{0,1}n”は、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
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の出力は2n通りあるので、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
具体的には、例えば、データ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は分割されたブロックの数であり、
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,
データ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)。ただし、“0m”は“0”がm個並んだビット列、<|Y|>はデータYのデータ長|Y|をσビットで表現したビット列である。例えば、σは64である。このようにデータZを生成するので、データZは、データ長がm−nの倍数となる。
The data
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ビットの初期値v0を設定する(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)。
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).
マークル・ダンガード構成のハッシュ値生成装置(ハッシュ関数)では、圧縮手段(圧縮関数)が衝突発見困難性を有していれば、ハッシュ値生成装置も衝突発見困難性が保証されることが知られている。しかし、従来のマークル・ダンガード構成のハッシュ値生成装置では、圧縮手段が第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
したがって、データ圧縮部990の圧縮手段992での圧縮関数hを用いた繰り返し演算の中で、最後の演算では、入力されるデータ(ブロックz[C])にデータYの中のビット列が十分含まれていない可能性がある。このことが、従来のマークル・ダンガード構成のハッシュ値生成装置では、圧縮手段が第2原像発見困難性と一方向性とを有していたとしても、ハッシュ値生成装置の第2原像発見困難性と一方向性とを保証できなかったことの原因である。
Therefore, among the repetitive operations using the compression function h in the
上記の分析から、本発明では、データ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
前処理部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
(Condition 1) When the data length of the data X is μ bits or more, the data Z generated by the data
(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
さらに、本発明は、入力データ(ハッシュ値を求める対象となるデータ)に対して前処理部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
前処理部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
図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
データ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生成手段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
図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
図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
検証装置500内のハッシュ値生成装置100は、データXからハッシュ値τ’を生成する(S100)。比較部510は、ハッシュ値τとハッシュ値τ’とを比較する。そして、τ=τ’ならば、データ内容の整合性が検証されたとする。τ≠τ’ならば、データの改ざんがあると判断する。そして、検証結果を出力する(S510)。なお、記録部590を備えず、その他の構成部でこれらの情報を記録してもよい。
このような構成なので、検証装置500でも、ハッシュ値生成装置100と同じ効果を得ることができる。
The hash
With this configuration, the verification device 500 can obtain the same effects as the hash
図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
本発明のハッシュ値生成装置、検証装置、ハッシュ値生成方法、検証方法は、例えば携帯電話、パソコン、ルータ、サーバなどに組み込み、送受信されるデータや蓄積されたデータに対するハッシュ値を生成することまたは検証することに利用できる。 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.
100、900 ハッシュ値生成装置 110 前処理部
120 データX分割手段 130 データY生成手段
500 検証装置 510 比較部
590 記録部 980 データ長調整部
981 データY分割手段 982 データZ生成手段
990 データ圧縮部 991 データZ分割手段
992 圧縮手段
100, 900 Hash
Claims (10)
前記データ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.
前記データ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.
前記データ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に対するハッシュ値τ’を出力する請求項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.
前処理部で、前記データ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.
前処理部で、前記データ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
前処理部で、前記データ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に対するハッシュ値τ’を出力する請求項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.
A computer-readable recording medium on which the program according to claim 9 is recorded.
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)
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)
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 |
-
2008
- 2008-11-27 JP JP2008302380A patent/JP5079671B2/en not_active Expired - Fee Related
Patent Citations (3)
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)
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 |