JP2010286781A - Bit string generating device, bit string generating method, and program - Google Patents

Bit string generating device, bit string generating method, and program Download PDF

Info

Publication number
JP2010286781A
JP2010286781A JP2009142479A JP2009142479A JP2010286781A JP 2010286781 A JP2010286781 A JP 2010286781A JP 2009142479 A JP2009142479 A JP 2009142479A JP 2009142479 A JP2009142479 A JP 2009142479A JP 2010286781 A JP2010286781 A JP 2010286781A
Authority
JP
Japan
Prior art keywords
hash
value
bit string
bit
input
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
JP2009142479A
Other languages
Japanese (ja)
Other versions
JP5276526B2 (en
Inventor
Kotaro Suzuki
幸太郎 鈴木
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 JP2009142479A priority Critical patent/JP5276526B2/en
Publication of JP2010286781A publication Critical patent/JP2010286781A/en
Application granted granted Critical
Publication of JP5276526B2 publication Critical patent/JP5276526B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To perform an arithmetic operation of a mask generation function for certifying whether the function is safe or not in the sense of Indifferentiability which is one of the criteria for evaluation of the safety of a mask generating function. <P>SOLUTION: For each count value i, a hash value y(i) of hash input information u(i) including an optional value x is generated. Each hash value y(i) and/or a bit string of a part of the hash value y(i) are bit-connected to generate a bit string having optional bit length L. The hash input information u(i) corresponding to at least some of the count value i further includes a hash chain value v(j(i)) corresponding to the count value j(i) (j(i) belong to ä0, ..., Max}). The hash chain value v(j(i)) is the hash value of the information including the hash chain value v(m(i)) corresponding to the count value m(i) (m(i)≠j(i)) or a bit string of a part of it. Hash input information u(p(i)) corresponding to the count value p(i) (p(i)≠i) further includes a hash chain value v(m(i)). Fig.1 is a block diagram for explaining the constitution of a bit string generating device in the first embodiment. The bit string generating device 100 in this embodiment includes a control section 101, a memory 102a, an initial value memory 102b, an input section 103, a parameter computing section 104, a counter 105, hash operation sections 106, bit cut-out sections 107, and a bit connecting section 108. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、情報セキュリティ技術の応用技術に関し、特に、任意長のランダムなビット列を出力する技術に関する。   The present invention relates to an application technology of information security technology, and more particularly to a technology for outputting a random bit string of an arbitrary length.

任意長のランダムなビット列であるマスクを生成する従来のマスク生成関数としてMFG1がある(例えば、非特許文献1参照)。以下にMFG1:{0,1}*×N→{0,1}nの構成を示す。なお、{0,1}*は任意長のビット列を示し、{0,1}nはビット長nのビット列を示し、Nは0以上の整数の集合を示し、α→βはαからβへの写像を示し、α||βはαとβとのビット結合(ビット連結)を示し、[α]βは、αから切り出された上位βビットを示し、CEIL(α)は、α以上の最小の整数(αのCeil関数値)を示し、<i>32はiを32ビットでエンコーディングしたビット列を示し、Hはハッシュ関数H:{0,1}*→{0,1}nを示し、x∈{0,1}*, L∈{1,...,n・232}である。
MFG1(x,L)=H(x||<0>32)||...||H(x||<CEIL(L/n)-2>32)
||[H(x||<CEIL(L/n)-1>32)]L-n(CEIL(L/n)-1) …(1)
As a conventional mask generation function for generating a mask that is a random bit string of arbitrary length, there is MFG1 (see, for example, Non-Patent Document 1). The structure of MFG1: {0,1} * × N → {0,1} n is shown below. Note that {0,1} * indicates a bit string of arbitrary length, {0,1} n indicates a bit string of bit length n, N indicates a set of integers greater than or equal to 0, and α → β changes from α to β Α || β indicates the bit combination (bit concatenation) of α and β, [α] β indicates the upper β bits cut out from α, and CEIL (α) is greater than or equal to α. Indicates the smallest integer (Ceil function value of α), <i> 32 indicates a bit string obtained by encoding i in 32 bits, H indicates a hash function H: {0,1} * → {0,1} n , X∈ {0,1} * , L∈ {1, ..., n · 2 32 }.
MFG1 (x, L) = H (x || <0> 32 ) || ... || H (x || <CEIL (L / n) -2> 32 )
|| [H (x || <CEIL (L / n) -1> 32 )] Ln (CEIL (L / n) -1) … (1)

また、マスク生成関数の安全性の評価基準のひとつにIndifferentiabilityがある(例えば、非特許文献2参照)。この評価基準では、理想的なマスク生成関数のオラクルΦを利用できるシミュレータが存在すると仮定する。なお、このシミュレータは攻撃者に依存しないで構成される。そして、攻撃者が、理想的なハッシュ関数等のオラクルφを利用できる正規なマスク生成関数にクエリーを与えて得られる値と、クエリーを当該シミュレータに与えて得られる値とを識別できる確率が、無視できる関数以下となる場合、当該マスク生成関数は、オラクルΦに対してIndifferentiable(Indifferentiabilityな意味で安全)であるとする(例えば、非特許文献2参照)。なお、マスク生成関数がIndifferentiabilityな意味で安全であることの証明は、セキュリティパラメータkに依存する多項式によって攻撃者の資源範囲(演算時間の上限、クエリー数の上限、クエリー等の最大ビット数)を仮定し、その仮定のもとで行われる。   One of the evaluation criteria for the safety of the mask generation function is Indifferentiability (see, for example, Non-Patent Document 2). This evaluation criterion assumes that there is a simulator that can use the ideal mask generation function Oracle Φ. This simulator is configured without depending on the attacker. The probability that an attacker can discriminate between a value obtained by giving a query to a regular mask generation function that can use Oracle φ such as an ideal hash function and a value obtained by giving the query to the simulator, If the function is less than or equal to a negligible function, the mask generation function is assumed to be Indifferentiable (safe in terms of Indifferentiability) with respect to Oracle Φ (for example, see Non-Patent Document 2). The proof that the mask generation function is safe in the Indifferentiability sense is that the attacker's resource range (upper limit of calculation time, upper limit of the number of queries, maximum number of bits of queries, etc.) is determined by a polynomial that depends on the security parameter k. Assumptions are made under that assumption.

ISO/IEC 9796-3 : Information technology -- Security techniques -- Digital signature schemes giving message recovery -- Part 3: Discrete logarithm based mechanismsISO / IEC 9796-3: Information technology-Security techniques-Digital signature schemes giving message recovery-Part 3: Discrete logarithm based mechanisms Ueli M. Maurer, Renato Renner, and Clements Holenstein, "Indifferentiability, Impossibility Results on Reductions, and Applications to the Random Oracle Methodology," In Moni Naor, editor, TCC 2004, Volume 2951 of LNCS, pages 21-39, Heidelberg, 2004. Springer.Ueli M. Maurer, Renato Renner, and Clements Holenstein, "Indifferentiability, Impossibility Results on Reductions, and Applications to the Random Oracle Methodology," In Moni Naor, editor, TCC 2004, Volume 2951 of LNCS, pages 21-39, Heidelberg, 2004. Springer.

式(1)に示すように、MFG1は、入力値x,Lに対し、ハッシュ値H(x||<0>32),...,H(x||<CEIL(L/n)-2>32)及びハッシュ値H(x||<CEIL(L/n)-1>32)から切り出された値 [H(x||<CEIL(L/n)-1>32)]L-n(CEIL(L/n)-1)のビット結合値H(x||<0>32)||...||H(x||<CEIL(L/n)-2>32)||[H(x||<CEIL(L/n)-1>32)]L-n(CEIL(L/n)-1)を出力する関数である。よって、MFG1を構成する各ブロックH(x||<0>32),...,H(x||<CEIL(L/n)-2>32)及び[H(x||<CEIL(L/n)-1>32)]L-n(CEIL(L/n)-1)は、それぞれ、x||<i>32(i∈{0,...,CEIL(L/n)-1})をクエリーとして理想的なハッシュ関数等のオラクルに与えて得られる値であるといえる。このクエリーx||<i>32は各iの間で互いに独立であり、攻撃者はどんなに大きなiに対応するクエリーx||<i>32であってもほぼ同様に生成できる。 As shown in Equation (1), MFG1 has the hash values H (x || <0> 32 ), ..., H (x || <CEIL (L / n) − for the input values x and L. 2> 32 ) and a value extracted from the hash value H (x || <CEIL (L / n) -1> 32 ) [H (x || <CEIL (L / n) -1> 32 )] Ln ( CEIL (L / n) -1) bit combination value H (x || <0> 32 ) || ... || H (x || <CEIL (L / n) -2> 32 ) || [ H (x || <CEIL (L / n) -1> 32 )] This function outputs Ln (CEIL (L / n) -1) . Therefore, each block H (x || <0> 32 ), ..., H (x || <CEIL (L / n) -2> 32 ) and [H (x || <CEIL ( L / n) -1> 32 )] Ln (CEIL (L / n) -1) is x || <i> 32 (i∈ {0, ..., CEIL (L / n) -1 }) Can be said to be a value obtained by giving Oracle an ideal hash function or the like as a query. This query x || <i> 32 is mutually independent between each i, and an attacker can generate a query x || <i> 32 corresponding to how large i is almost the same.

前述のように、マスク生成関数がIndifferentiabilityな意味で安全であることの証明は攻撃者の資源範囲を仮定して行われる。この仮定における安全性の評価は、上述のシミュレータが、与えられたクエリーが攻撃者の資源範囲内あれば正規な処理を実行し、与えられたクエリーが攻撃者の資源を超えるものであった場合には乱数を返答することで実現できる。ここで、上述のシミュレータは、攻撃者についての情報を知らないため、攻撃者から送られたクエリーから当該クエリーが攻撃者の資源範囲内のものであるか否かを判定しなければならない。しかし、上述のように、MFG1に対するクエリーx||<i>32は各iの間で互いに独立であり、上述のシミュレータは、クエリーx||<i>32のみから当該クエリーが攻撃者の資源範囲内のものであるか否かを判定することはできない。よって、従来のMFG1では、マスク生成関数がIndifferentiabilityな意味で安全であることを証明することができなかった。 As described above, the proof that the mask generation function is safe in the Indifferentiability sense is performed assuming the resource range of the attacker. The safety evaluation under this assumption is based on the case where the above-mentioned simulator executes normal processing if the given query is within the attacker's resource range, and the given query exceeds the attacker's resource. Can be realized by returning a random number. Here, since the above-mentioned simulator does not know information about the attacker, it must determine whether or not the query is within the resource range of the attacker from the query sent from the attacker. However, as described above, the query x || <i> 32 for MFG1 is independent of each other between i, and the simulator described above uses only the query x || <i> 32 as the query. It cannot be determined whether or not it is within the range. Therefore, in the conventional MFG1, it has not been possible to prove that the mask generation function is safe in an indifferentiable sense.

本発明はこのような点に鑑みてなされたものであり、Indifferentiabilityな意味で安全であるか否かを証明することが可能なマスク生成関数の演算を行う装置、方法、及びそのプログラムを提供することを目的とする。   The present invention has been made in view of these points, and provides an apparatus, a method, and a program for performing a mask generation function operation that can prove whether or not it is safe in an indifferentiable sense. For the purpose.

本発明では、少なくとも任意値xが入力され、各カウント値i∈{0,...,Max}(iは整数、MAXは1以上の整数)に対し、それぞれ、任意値xを含むハッシュ入力情報u(i)のハッシュ値y(i)を生成し、各ハッシュ値y(i)及び/又は当該ハッシュ値y(i)の一部のビット列をビット結合し、任意ビット長Lのビット列を生成する。少なくとも一部のカウント値iに対応するハッシュ入力情報u(i)は、さらに、カウント値j(i)(j(i)∈{0,...,Max})に対応するハッシュ連鎖値v(j(i))を含む。ハッシュ連鎖値v(j(i))は、カウント値m(i)(m(i)∈{0,...,Max},m(i)≠j(i))に対応するハッシュ連鎖値v(m(i))を含む情報のハッシュ値又はその一部のビット列であり、カウント値p(i)(p(i)∈{0,...,Max},p(i)≠i)に対応するハッシュ入力情報u(p(i))は、さらに、ハッシュ連鎖値v(m(i))を含む。   In the present invention, at least an arbitrary value x is input, and for each count value i∈ {0, ..., Max} (i is an integer, MAX is an integer of 1 or more), a hash input including the arbitrary value x, respectively. A hash value y (i) of information u (i) is generated, each hash value y (i) and / or a bit string of a part of the hash value y (i) is bit-combined, and a bit string having an arbitrary bit length L is obtained. Generate. The hash input information u (i) corresponding to at least a part of the count value i is further converted into a hash chain value v corresponding to the count value j (i) (j (i) ∈ {0, ..., Max}). (j (i)) is included. The hash chain value v (j (i)) is a hash chain value corresponding to the count value m (i) (m (i) ∈ {0, ..., Max}, m (i) ≠ j (i)) It is a hash value of information including v (m (i)) or a bit string of a part thereof, and count value p (i) (p (i) ∈ {0, ..., Max}, p (i) ≠ i ) Corresponding to the hash input information u (p (i)) further includes a hash chain value v (m (i)).

ここで、少なくとも一部のカウント値iに対応するハッシュ入力情報u(i)は、カウント値j(i)(j(i)∈{0,...,Max})に対応するハッシュ連鎖値v(j(i))を含む。この場合、少なくとも一部のカウント値iに対応するハッシュ入力情報u(i)は、他のカウント値j(i)に対応するハッシュ連鎖値v(j(i))を求めた後でなければ生成できない。ハッシュ入力情報u(i)はクエリーに相当するが、攻撃者はハッシュ入力情報u(i)を生成するためにそれに対応するハッシュ連鎖値v(j(i))を得る必要がある。そして、そのために上述のオラクルにさらにクエリーを送る必要があり、その回数はハッシュ連鎖値v(j(i))のハッシュ連鎖回数に依存する。そのため、上述のシミュレータは、攻撃者から送られたハッシュ入力情報u(i)を判定することによって、ハッシュ入力情報u(i)が何回のハッシュ連鎖によって得られたかを知ることができる。このハッシュ連鎖回数は、攻撃者の演算時間やクエリーの数に対応する。よって、上述のシミュレータは、攻撃者から送られたクエリーから当該クエリーが攻撃者の資源範囲内のものであるか否かを知ることができる。その結果、上述のシミュレータは、与えられたクエリーが正しくハッシュ連鎖によって得られたものであれば正規な処理を実行し、与えられたクエリーが正しくハッシュ連鎖によって得られたものでなければ乱数を返答することができる。よって、本発明のマスク生成関数では、Indifferentiabilityな意味で安全であることを証明することができる。   Here, the hash input information u (i) corresponding to at least a part of the count value i is a hash chain value corresponding to the count value j (i) (j (i) ∈ {0, ..., Max}) v (j (i)) is included. In this case, the hash input information u (i) corresponding to at least a part of the count value i is not after the hash chain value v (j (i)) corresponding to the other count value j (i) is obtained. Cannot be generated. Although the hash input information u (i) corresponds to a query, the attacker needs to obtain the corresponding hash chain value v (j (i)) in order to generate the hash input information u (i). For this purpose, it is necessary to further send a query to the above-mentioned Oracle, and the number of times depends on the number of hash chains of the hash chain value v (j (i)). Therefore, the simulator described above can know how many hash chains the hash input information u (i) was obtained by determining the hash input information u (i) sent from the attacker. The number of hash chains corresponds to an attacker's computation time and the number of queries. Therefore, the above-described simulator can know whether or not the query is within the attacker's resource range from the query sent from the attacker. As a result, the simulator described above executes normal processing if the given query is correctly obtained by the hash chain, and returns a random number if the given query is not correctly obtained by the hash chain. can do. Therefore, it can be proved that the mask generation function of the present invention is safe in terms of Indifferentiability.

以上のように、本発明のマスク生成関数では、Indifferentiabilityな意味で安全であることを証明することができる。   As described above, the mask generation function of the present invention can prove that it is safe in an indifferentiable sense.

第1実施形態のビット列生成装置の構成を説明するためのブロック図。The block diagram for demonstrating the structure of the bit string production | generation apparatus of 1st Embodiment. 第1実施形態の処理を説明するためのフローチャート。The flowchart for demonstrating the process of 1st Embodiment. 第2実施形態のビット列生成装置の構成を説明するためのブロック図。The block diagram for demonstrating the structure of the bit string production | generation apparatus of 2nd Embodiment. 第2実施形態の処理を説明するためのフローチャート。The flowchart for demonstrating the process of 2nd Embodiment. 第3実施形態の処理を説明するためのフローチャート。The flowchart for demonstrating the process of 3rd Embodiment. 第3実施形態の処理を説明するためのフローチャート。The flowchart for demonstrating the process of 3rd Embodiment.

以下、図面を参照して本発明の実施形態を説明する。
〔定義〕
まず、以下で共通に使用する用語・記号を定義する。
{0,1}*:任意長のビット列。
{0,1}n:ビット長nのビット列。
N:0以上の整数の集合。
α→β:αからβへの写像。
α||β:αとβとのビット結合(ビット連結)。
[α]β:αから切り出された上位βビット。例えば、[11101001]3=111。
[α]β:αから切り出された下位βビット。例えば、[11101001]5=01001。
CEIL(α):α以上の最小の整数(αのCeil関数値)。
<i>:iを所定のビットでエンコーディングしたビット列。
k:1以上の整数定数であるセキュリティパラメータ。
H,G:ハッシュ関数。ハッシュ関数の例はSHA-1などである。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[Definition]
First, terms and symbols commonly used in the following are defined.
{0,1} * : Bit string of arbitrary length.
{0,1} n : Bit string of bit length n.
N: A set of integers greater than or equal to zero.
α → β: Mapping from α to β.
α || β: Bit combination (bit concatenation) of α and β.
[Α] β : Higher β bits cut out from α. For example, [11101001] 3 = 111.
[Α] β : Lower β bits cut out from α. For example, [11101001] 5 = 01001.
CEIL (α): The smallest integer greater than or equal to α (the Ceil function value of α).
<i>: A bit string obtained by encoding i with predetermined bits.
k: A security parameter that is an integer constant of 1 or more.
H, G: Hash function. An example of a hash function is SHA-1.

〔第1実施形態〕
第1実施形態では、まず、入力部に、少なくとも任意値xが入力される。次に、ハッシュ演算部が、各カウント値i∈{0,...,Max}(iは整数、MAXは1以上の整数)に対し、それぞれ、任意値xを含むハッシュ入力情報u(i)のハッシュ値y(i)を生成する。本形態のハッシュ演算部は、ハッシュ入力情報u(i)を第1ハッシュ関数Hに入力してハッシュ値y(i)=H(u(i))を生成する。その後、ビット結合部が、ハッシュ値y(i)及び/又はハッシュ値y(i)の一部のビット列をビット結合し、任意ビット長Lのビット列を生成する。
[First Embodiment]
In the first embodiment, first, at least an arbitrary value x is input to the input unit. Next, for each count value i∈ {0,..., Max} (i is an integer, MAX is an integer of 1 or more), hash input information u (i ) To generate a hash value y (i). The hash calculation unit of this embodiment inputs the hash input information u (i) to the first hash function H and generates a hash value y (i) = H (u (i)). Thereafter, the bit combination unit bit-combines a part of the bit string of the hash value y (i) and / or the hash value y (i) to generate a bit string having an arbitrary bit length L.

ここで、少なくとも一部のカウント値iに対応するハッシュ入力情報u(i)は、さらに、カウント値j(i)(j(i)∈{0,...,Max})に対応するハッシュ連鎖値v(j(i))を含む。当該ハッシュ連鎖値v(j(i))は、カウント値m(i)(m(i)∈{0,...,Max},m(i)≠j(i))に対応するハッシュ連鎖値v(m(i))を含む情報のハッシュ値又はその一部のビット列である。本形態の場合、当該ハッシュ連鎖値v(j(i))は、カウント値p(i)(p(i)∈{0,...,Max},p(i)≠i)に対応するハッシュ入力情報u(p(i))(ハッシュ連鎖値v(m(i))を含む)を第1ハッシュ関数Hに入力して得られたハッシュ値y(p(i))=H(u(p(i)))又はその一部のビット列である。   Here, the hash input information u (i) corresponding to at least a part of the count value i further includes a hash corresponding to the count value j (i) (j (i) ε {0, ..., Max}). Contains the chain value v (j (i)). The hash chain value v (j (i)) is a hash chain corresponding to the count value m (i) (m (i) ∈ {0, ..., Max}, m (i) ≠ j (i)). A hash value of information including a value v (m (i)) or a bit string of a part thereof. In this embodiment, the hash chain value v (j (i)) corresponds to the count value p (i) (p (i) ∈ {0, ..., Max}, p (i) ≠ i). Hash value y (p (i)) = H (u obtained by inputting hash input information u (p (i)) (including hash chain value v (m (i))) into the first hash function H (p (i))) or a part of the bit string.

以下では、一例として、Max=t-1, t=CEIL(L/(n-k)), i∈{0,...,t-1}, j(i)=i-1, p(i)=i-1, m(i)=i-2, u(i)=v(i-1)||x||<i>, y(i)=H(v(i-1)||x||<i>), z(i)=[y(i)]n-k, v(i-1)=[y(i-1)]k=[H(v(i-2)||x||<i-1>)]k(i≧1の場合), v(i-1)=v(-1)=0k∈{0,1}k(i=0の場合)とし、入力(x,L)∈{0,1}*×N(N≧1)に対して任意ビット長Lのビット列F(x,L)=z(0)||...||z(t-2)||[z(t-1)]r(r=L-(n-k)(t-1))を出力する場合を例示する。なお、本形態では、nはkを変数とする多項式でありn>kを満たす。また、第1ハッシュ関数HはH:{0,1}*→{0,1}nである。 In the following, as an example, Max = t-1, t = CEIL (L / (nk)), i∈ {0, ..., t-1}, j (i) = i-1, p (i) = i-1, m (i) = i-2, u (i) = v (i-1) || x || <i>, y (i) = H (v (i-1) || x || <i>), z (i) = [y (i)] nk , v (i-1) = [y (i-1)] k = [H (v (i-2) || x | | <i-1>)] k (if i ≧ 1), v (i-1) = v (-1) = 0 k ∈ {0,1} k (if i = 0) and input ( x, L) ∈ {0,1} * × N (N ≧ 1), bit string F (x, L) = z (0) || ... || z (t−2) of arbitrary bit length L ) || [z (t−1)] r (r = L− (nk) (t−1)) is output. In this embodiment, n is a polynomial with k as a variable and satisfies n> k. The first hash function H is H: {0,1} * → {0,1} n .

<構成>
図1は、第1実施形態のビット列生成装置100の構成を説明するためのブロック図である。
図1に例示するように、本形態のビット列生成装置100は、制御部101と、メモリ102aと、初期値メモリ102bと、入力部103と、パラメータ算出部104と、カウンタ105と、ハッシュ演算部106と、ビット切出し部107と、ビット結合部108とを有する。
<Configuration>
FIG. 1 is a block diagram for explaining the configuration of the bit string generation device 100 of the first embodiment.
As illustrated in FIG. 1, the bit string generation device 100 of this embodiment includes a control unit 101, a memory 102a, an initial value memory 102b, an input unit 103, a parameter calculation unit 104, a counter 105, and a hash calculation unit. 106, a bit cutout unit 107, and a bit combination unit 108.

本形態のビット列生成装置100は、例えば、CPU(central processing unit)、RAM(random-access memory)、ROM(read-only memory)等を備えた公知のコンピュータに所定のプログラムが読み込まれ、CPUがこのプログラムを実行することで構築されるものである。制御部101、パラメータ算出部104、カウンタ105、ハッシュ演算部106、ビット切出し部107及びビット結合部108は、例えば、CPUが所定のプログラムを実行することで構築される処理部である。なお、これらの処理部の少なくとも一部が集積回路によって構成されてもよい。また、メモリ102aや初期値メモリ102bは、補助記憶装置、RAM、キャッシュメモリ、レジスタ、集積回路の素子、又は、それらの少なくとも一部を結合した記憶領域である。また、入力部103は、例えば、マウス、キーボード、入力ポート、データ受信装置、記憶装置からのデータ読み出し装置などである。   The bit string generation device 100 according to this embodiment is configured such that a predetermined program is read into a known computer including, for example, a CPU (central processing unit), a RAM (random-access memory), a ROM (read-only memory), and the like. It is constructed by executing this program. The control unit 101, the parameter calculation unit 104, the counter 105, the hash calculation unit 106, the bit cutout unit 107, and the bit combination unit 108 are, for example, processing units that are constructed when the CPU executes a predetermined program. Note that at least a part of these processing units may be configured by an integrated circuit. The memory 102a and the initial value memory 102b are auxiliary storage devices, RAMs, cache memories, registers, integrated circuit elements, or storage areas obtained by combining at least some of them. The input unit 103 is, for example, a mouse, a keyboard, an input port, a data receiving device, a data reading device from a storage device, or the like.

なお、図1では、複数のハッシュ演算部106やビット切出し部107が図示されているが、これは表記の便宜上からであり、必ずしも複数のハッシュ演算部106やビット切出し部107が存在しなくてもよい。また、ビット列生成装置100は、制御部101の制御のもと各処理を実行する。また、以下では説明を簡略化するが、各処理部から出力されたデータは、逐一、メモリ102aに格納される。メモリ102aに格納されたデータは、必要に応じて各処理部に入力されてその処理に利用される。   In FIG. 1, a plurality of hash calculation units 106 and bit cutout units 107 are illustrated, but this is for convenience of description, and a plurality of hash calculation units 106 and bit cutout units 107 do not necessarily exist. Also good. The bit string generation device 100 executes each process under the control of the control unit 101. Although the description is simplified below, the data output from each processing unit is stored in the memory 102a one by one. The data stored in the memory 102a is input to each processing unit as necessary and used for the processing.

<処理>
図2は、第1実施形態の処理を説明するためのフローチャートである。以下、この図を用いて、本形態の処理を説明する。なお、以下の処理の前提として、k,nの値が設定され、初期値メモリ102bにハッシュ連鎖値の初期値v(-1)=0kが格納されているものとする。
<Processing>
FIG. 2 is a flowchart for explaining the processing of the first embodiment. Hereinafter, the processing of this embodiment will be described with reference to this drawing. As a premise for the following processing, it is assumed that the values of k and n are set and the initial value v (−1) = 0 k of the hash chain value is stored in the initial value memory 102b.

まず、入力部103に(x,L)∈{0,1}*×Nが入力される(ステップS101)。Lはパラメータ算出部104に入力され、パラメータ算出部104は、
t=CEIL(L/(n-k)) …(2)
の演算を行い、その演算結果tを出力する(ステップS102)。
First, (x, L) ε {0,1} * × N is input to the input unit 103 (step S101). L is input to the parameter calculation unit 104, and the parameter calculation unit 104
t = CEIL (L / (nk))… (2)
The calculation result t is output and the calculation result t is output (step S102).

また、パラメータ算出部104は、
r=L-(n-k)(t-1) …(3)
の演算を行い、その演算結果rを出力する(ステップS103)。パラメータ算出部104から出力された演算結果tは制御部101に入力され、演算結果rはビット切出し部107に入力される。
In addition, the parameter calculation unit 104
r = L- (nk) (t-1) (3)
And the calculation result r is output (step S103). The calculation result t output from the parameter calculation unit 104 is input to the control unit 101, and the calculation result r is input to the bit cutout unit 107.

次に、カウンタ105がカウント値iを0に設定する(ステップS104)。
次に、ハッシュ演算部106に、初期値メモリ102b又はビット切出し部107から出力されたハッシュ連鎖値v(i-1)と、入力部103に入力されたxと、カウンタ105から出力されたカウント値iとが入力される。ハッシュ演算部106は、
y(i)=H(v(i-1)||x||<i>) …(4)
の演算を行い、そのハッシュ値y(i)を出力する(ステップS105)。
Next, the counter 105 sets the count value i to 0 (step S104).
Next, the hash calculation unit 106 has the hash chain value v (i−1) output from the initial value memory 102b or the bit cutout unit 107, x input to the input unit 103, and the count output from the counter 105. The value i is entered. The hash calculation unit 106
y (i) = H (v (i-1) || x || <i>)… (4)
And the hash value y (i) is output (step S105).

ハッシュ値y(i)は、ビット切出し部107に入力される。ビット切出し部107は、
z(i)=[y(i)]n-k …(5)
v(i)=[y(i)]k …(6)
の演算によってハッシュ値y(i)から一部のビット列を切り出し、それによって得られたビット列z(i)とハッシュ連鎖値v(i)とを出力する(ステップS106、S107)。
The hash value y (i) is input to the bit cutout unit 107. The bit cutout unit 107
z (i) = [y (i)] nk … (5)
v (i) = [y (i)] k … (6)
A part of the bit string is cut out from the hash value y (i) by the above operation, and the bit string z (i) and the hash chain value v (i) obtained thereby are output (steps S106 and S107).

次に、制御部101が、カウンタ105から出力されたカウント値iがt-2であるか否かを判定する(ステップS108)。ここで、i=t-2でないと判定されたならば、カウンタ105がi+1を新たなiとしてカウントアップを行い(ステップS109)、処理がステップS105に戻される。一方、i=t-2であると判定されたならば、ハッシュ演算部106に、ビット切出し部107から出力されたハッシュ連鎖値v(t-2)と、入力部103に入力されたxと、カウンタ105から出力されたカウントアップされたカウント値i=t-1とが入力される。ハッシュ演算部106は、カウント値i=t-1に対応する
y(t-1)=H(v(t-2)||x||<t-1>) …(7)
の演算を行い、そのハッシュ値y(t-1)を出力する(ステップS110)。
Next, the control unit 101 determines whether or not the count value i output from the counter 105 is t-2 (step S108). If it is determined that i = t−2 is not satisfied, the counter 105 counts up i + 1 as a new i (step S109), and the process returns to step S105. On the other hand, if it is determined that i = t-2, the hash chain value v (t-2) output from the bit cutout unit 107 and the x input to the input unit 103 are sent to the hash calculation unit 106. The counted up value i = t−1 output from the counter 105 is input. The hash calculator 106 corresponds to the count value i = t−1.
y (t-1) = H (v (t-2) || x || <t-1>)… (7)
And the hash value y (t-1) is output (step S110).

ハッシュ演算部106から出力されたハッシュ値y(t-1)は、ビット切出し部107に入力される。ビット切出し部107は、カウント値i=t-1に対応する
z(t-1)=[y(t-1)]r …(8)
の演算を行い、ハッシュ値y(t-1)から一部のビット列を切り出し、それによって得られたビット列z(t-1)を出力する(ステップS111)。
The hash value y (t−1) output from the hash calculation unit 106 is input to the bit cutout unit 107. The bit cutout unit 107 corresponds to the count value i = t−1.
z (t-1) = [y (t-1)] r … (8)
A part of the bit string is cut out from the hash value y (t-1), and the bit string z (t-1) obtained thereby is output (step S111).

ビット切出し部107から出力された各ビット列z(i)(i∈{0,...,t-1})は、ビット結合部108に入力される。ビット結合部108は、
F(x,L)=z(0)||...||z(t-2)||z(t-1) …(9)
の演算によって各ビット列z(i)のビット結合し、ビット長Lのビット列F(x,L)を生成して出力する(ステップS112)。
Each bit string z (i) (iε {0,..., T−1}) output from the bit cutout unit 107 is input to the bit combination unit 108. The bit combining unit 108
F (x, L) = z (0) || ... || z (t-2) || z (t-1)… (9)
The bit string of each bit string z (i) is combined by the above operation to generate and output a bit string F (x, L) having a bit length L (step S112).

<第1実施形態の変形例>
本発明は第1実施形態に限定されない。
例えば、本形態のハッシュ入力情報u(i)は、ハッシュ連鎖値v(i-1)と、任意値xと、カウント値iのエンコーディングビット列<i>とのビット結合であった。しかし、少なくとも一部にカウント値iに対応するハッシュ入力情報u(i)が、カウント値iのエンコーディングビット列<i>を含まない構成でもよい。また、少なくとも一部にカウント値iに対応するハッシュ入力情報u(i)が、ハッシュ連鎖値v(i-1)と、任意値xと、その他の情報(例えば、乱数や装置の固有情報など)とのビット結合であってもよいし、ハッシュ連鎖値v(i-1)と、任意値xと、エンコーディングビット列<i>と、当該その他の情報とのビット結合であってもよい。
<Modification of First Embodiment>
The present invention is not limited to the first embodiment.
For example, the hash input information u (i) of this embodiment is a bit combination of the hash chain value v (i−1), the arbitrary value x, and the encoding bit string <i> of the count value i. However, the hash input information u (i) corresponding to the count value i may not include the encoding bit string <i> of the count value i at least partially. In addition, hash input information u (i) corresponding at least in part to the count value i includes a hash chain value v (i-1), an arbitrary value x, and other information (for example, random numbers, device specific information, etc. May be a bit combination of the hash chain value v (i−1), the arbitrary value x, the encoding bit string <i>, and the other information.

また、各ビット列z(i)(i∈{0,...,t-1})が、式(9)以外の順序でビット結合されてもよい。また、本形態では、各カウント値iに対するハッシュ入力情報u(i),u(p(i))(i≠p(i))とハッシュ連鎖値v(j(i)),v(m(i))とが、j(i)=i-1, p(i)=i-1, m(i)=i-2の関係を満たすこととしたが、例えば、j(i)=i+1, p(i)=i+1, m(i)=i+2など、j(i),p(i)(i≠p(i)),m(i)がカウント値iに対するその他の関数であってもよい。この場合、それに応じてカウント値の更新方法が異なる。本形態では、j(i)=i-1, p(i)=i-1, m(i)=i-2としたため、カウント値iを0からt-1まで1ずつ増加させながら繰り返し処理を実行したが、例えば、j(i)=i+1, p(i)=i+1, m(i)=i+2の場合には、カウント値iをt-1から0まで1ずつ減少させながら繰り返し処理を実行すればよい。   Also, each bit string z (i) (iε {0,..., T−1}) may be bit-coupled in an order other than that in Equation (9). Also, in this embodiment, hash input information u (i), u (p (i)) (i ≠ p (i)) and hash chain values v (j (i)), v (m ( i)) satisfies the relationship j (i) = i-1, p (i) = i-1, m (i) = i-2, for example, j (i) = i + 1, p (i) = i + 1, m (i) = i + 2, etc., j (i), p (i) (i ≠ p (i)), m (i) It may be a function. In this case, the count value update method differs accordingly. In this embodiment, since j (i) = i-1, p (i) = i-1, m (i) = i-2, iterative processing is performed while incrementing the count value i by 1 from 0 to t-1. For example, if j (i) = i + 1, p (i) = i + 1, m (i) = i + 2, the count value i is incremented by 1 from t-1 to 0. What is necessary is just to perform a repeating process, decreasing.

また、本形態では、ハッシュ連鎖値の初期値がv(-1)=0kであったが、ハッシュ連鎖値の初期値が任意の定数、または任意値xの関数値であるなど、その他の値をハッシュ連鎖値の初期値v(-1)としてもよい。また、本形態では、j(i)=i-1, p(i)=i-1, m(i)=i-2としたため、ハッシュ連鎖値v(-1)に初期値を設定したが、j(i),p(i)(i≠p(i)),m(i)がその他の関数である場合には、それに応じて初期値が設定されるハッシュ連鎖値が異なる。例えば、j(i)=i+1, p(i)=i+1, m(i)=i+2の場合には、v(t+1)に初期値を設定する。 In this embodiment, the initial value of the hash chain value is v (-1) = 0 k , but the initial value of the hash chain value is an arbitrary constant or a function value of the arbitrary value x. The value may be the initial value v (-1) of the hash chain value. In this embodiment, since j (i) = i-1, p (i) = i-1, m (i) = i-2, an initial value is set for the hash chain value v (-1). , J (i), p (i) (i ≠ p (i)), and m (i) are other functions, the hash chain values to which initial values are set differ accordingly. For example, when j (i) = i + 1, p (i) = i + 1, m (i) = i + 2, an initial value is set to v (t + 1).

また、本形態では、ハッシュ値y(i)の上位n-kビット又はrビットをビット列z(i)=[y(i)]n-kとしたが、ハッシュ値y(i)のその他のビット位置(例えば、下位n-kビット又はrビット、離散的に切出したn-kビット又はrビット)をビット列z(i)としてもよい。また、ハッシュ値y(i)(i≠t-1)そのものをビット列z(i)(i≠t-1)とし、ハッシュ値y(i)(i=t-1)から切出したrビットをビット列z(i)(i=t-1)としてもよい。この場合、t=CEIL(L/n),r=L-n(t-1)となる。また、本形態では、z(t-1)=[y(t-1)]rと演算したが、[y(t-1)]n-kを計算した後にz(t-1)=[[y(t-1)]n-k]rを計算してもよい。また、本形態では、nがkを変数とする多項式であったがnが定数でもよい。 In this embodiment, the upper nk bits or r bits of the hash value y (i) are set to the bit string z (i) = [y (i)] nk , but other bit positions of the hash value y (i) (for example, , Lower nk bits or r bits, or discretely extracted nk bits or r bits) may be used as the bit string z (i). Also, the hash value y (i) (i ≠ t-1) itself is set to a bit string z (i) (i ≠ t-1), and r bits extracted from the hash value y (i) (i = t-1) are The bit string z (i) (i = t−1) may be used. In this case, t = CEIL (L / n) and r = Ln (t−1). In this embodiment, z (t-1) = [y (t-1)] r is calculated, but after calculating [y (t-1)] nk , z (t-1) = [[y (t-1)] nk ] r may be calculated. In this embodiment, n is a polynomial with k as a variable, but n may be a constant.

また、本形態では、入力部103にxとLとが入力されることとしたが、Lを固定とし、入力部103にxのみが入力される構成でもよい。   In this embodiment, x and L are input to the input unit 103. However, a configuration in which L is fixed and only x is input to the input unit 103 may be employed.

〔第2実施形態〕
第2実施形態は、第1実施形態の変形例であり、第1ハッシュ関数Hのハッシュ値からハッシュ連鎖値を生成するのではなく、別途計算される第2ハッシュ関数Gのハッシュ値からハッシュ連鎖値を生成する。
[Second Embodiment]
The second embodiment is a modification of the first embodiment, and does not generate a hash chain value from the hash value of the first hash function H, but instead generates a hash chain from the hash value of the second hash function G that is calculated separately. Generate a value.

第2実施形態でも、まず、入力部に、少なくとも任意値xが入力される。次に、ハッシュ演算部が、各カウント値i∈{0,...,Max}(iは整数、MAXは1以上の整数)に対し、それぞれ、任意値xを含むハッシュ入力情報u(i)のハッシュ値y(i)を生成する。本形態のハッシュ演算部は、ハッシュ入力情報u(i)を第1ハッシュ関数Hに入力してハッシュ値y(i)=H(u(i))を生成する。その後、ビット結合部が、ハッシュ値y(i)及び/又はハッシュ値y(i)の一部のビット列をビット結合し、任意ビット長Lのビット列を生成する。   Also in the second embodiment, first, at least an arbitrary value x is input to the input unit. Next, for each count value i∈ {0,..., Max} (i is an integer, MAX is an integer of 1 or more), hash input information u (i ) To generate a hash value y (i). The hash calculation unit of this embodiment inputs the hash input information u (i) to the first hash function H and generates a hash value y (i) = H (u (i)). Thereafter, the bit combination unit bit-combines a part of the bit string of the hash value y (i) and / or the hash value y (i) to generate a bit string having an arbitrary bit length L.

ここで、少なくとも一部のカウント値iに対応するハッシュ入力情報u(i)は、さらに、カウント値j(i)(j(i)∈{0,...,Max})に対応するハッシュ連鎖値v(j(i))を含む。当該ハッシュ連鎖値v(j(i))は、カウント値m(i)(m(i)∈{0,...,Max},m(i)≠j(i))に対応するハッシュ連鎖値v(m(i))を含む情報のハッシュ値又はその一部のビット列である。本形態の場合、当該ハッシュ連鎖値v(j(i))は、ハッシュ連鎖値v(m(i))を含む情報を第2ハッシュ関数Gに入力して得られたハッシュ値又はその一部のビット列であり、当該「ハッシュ連鎖値v(m(i))を含む情報」は、任意値xに依存しない情報である。また、カウント値p(i)(p(i)∈{0,...,Max},p(i)≠i)に対応するハッシュ入力情報u(p(i))は、さらに、ハッシュ連鎖値v(m(i))を含む。   Here, the hash input information u (i) corresponding to at least a part of the count value i further includes a hash corresponding to the count value j (i) (j (i) ε {0, ..., Max}). Contains the chain value v (j (i)). The hash chain value v (j (i)) is a hash chain corresponding to the count value m (i) (m (i) ∈ {0, ..., Max}, m (i) ≠ j (i)). A hash value of information including a value v (m (i)) or a bit string of a part thereof. In the case of this embodiment, the hash chain value v (j (i)) is a hash value obtained by inputting information including the hash chain value v (m (i)) to the second hash function G or a part thereof. The “information including the hash chain value v (m (i))” is information that does not depend on the arbitrary value x. The hash input information u (p (i)) corresponding to the count value p (i) (p (i) ∈ {0, ..., Max}, p (i) ≠ i) Contains the value v (m (i)).

以下では、一例として、Max=t-1, t=CEIL(L/n), i∈{0,...,t-1}, j(i)=i-1, p(i)=i-1, m(i)=i-2, u(i)=v(i-1)||x||<i>, y(i)=H(v(i-1)||x||<i>), v(i-1)=G(v(i-2)||<i-1>)(i≧1の場合), v(i-1)=v(-1)=0k∈{0,1}k(i=0の場合)とし、入力(x,L)∈{0,1}*×N(N≧1)に対して任意ビット長Lのビット列F(x,L)=y(0)||...||y(t-2)||[y(t-1)]r(r=L-n(t-1))を出力する場合を例示する。なお、本形態では、nはkを変数とする多項式でありn>kを満たす。また、第1ハッシュ関数HはH:{0,1}*→{0,1}nであり、第2ハッシュ関数GはG:{0,1}*→{0,1}kである。また、以下では、第1実施形態との相違点を中心に説明し、第1実施形態と共通する事項については説明を省略する。 Below, as an example, Max = t-1, t = CEIL (L / n), i∈ {0, ..., t-1}, j (i) = i-1, p (i) = i -1, m (i) = i-2, u (i) = v (i-1) || x || <i>, y (i) = H (v (i-1) || x || <i>), v (i-1) = G (v (i-2) || <i-1>) (if i ≧ 1), v (i-1) = v (-1) = 0 k ∈ {0,1} k (when i = 0), and an input (x, L) ∈ {0,1} * × N (N ≧ 1), and a bit string F (x, L) = y (0) || ... || y (t-2) || [y (t-1)] r (r = Ln (t-1)) is output as an example. In this embodiment, n is a polynomial with k as a variable and satisfies n> k. The first hash function H is H: {0,1} * → {0,1} n , and the second hash function G is G: {0,1} * → {0,1} k . In the following description, differences from the first embodiment will be mainly described, and description of matters common to the first embodiment will be omitted.

<構成>
図3は、第2実施形態のビット列生成装置200の構成を説明するためのブロック図である。なお、図3において、第1実施形態と共通する部分については、第1実施形態と同じ符号を用いた。
<Configuration>
FIG. 3 is a block diagram for explaining the configuration of the bit string generation device 200 of the second embodiment. In FIG. 3, the same reference numerals as those in the first embodiment are used for portions common to the first embodiment.

図3に例示するように、本形態のビット列生成装置200は、制御部101と、メモリ102aと、初期値メモリ102bと、入力部103と、パラメータ算出部204と、カウンタ105と、ハッシュ演算部106,209と、ビット切出し部207と、ビット結合部208とを有する。   As illustrated in FIG. 3, the bit string generation device 200 of this embodiment includes a control unit 101, a memory 102 a, an initial value memory 102 b, an input unit 103, a parameter calculation unit 204, a counter 105, and a hash calculation unit. 106, 209, bit cutout unit 207, and bit combination unit 208.

本形態のビット列生成装置200は、例えば、CPU、RAM、ROM等を備えた公知のコンピュータに所定のプログラムが読み込まれ、CPUがこのプログラムを実行することで構築されるものである。例えば、パラメータ算出部204、ハッシュ演算部209、ビット切出し部207、ビット結合部208は、例えば、CPUが所定のプログラムを実行することで構築される処理部である。なお、これらの処理部の少なくとも一部が集積回路によって構成されてもよい。   The bit string generation device 200 of this embodiment is constructed by reading a predetermined program into a known computer having a CPU, a RAM, a ROM, and the like and executing the program by the CPU. For example, the parameter calculation unit 204, the hash calculation unit 209, the bit cutout unit 207, and the bit combination unit 208 are, for example, processing units that are constructed when the CPU executes a predetermined program. Note that at least a part of these processing units may be configured by an integrated circuit.

なお、図1では、複数のハッシュ演算部106,209が図示されているが、これは表記の便宜上からであり、必ずしも複数のハッシュ演算部106,209が存在しなくてもよい。また、ビット列生成装置200は、制御部101の制御のもと各処理を実行する。また、以下では説明を簡略化するが、各処理部から出力されたデータは、逐一、メモリ102aに格納される。メモリ102aに格納されたデータは、必要に応じて各処理部に入力されてその処理に利用される。   In FIG. 1, the plurality of hash calculation units 106 and 209 are illustrated, but this is for convenience of description, and the plurality of hash calculation units 106 and 209 may not necessarily exist. The bit string generation device 200 executes each process under the control of the control unit 101. Although the description is simplified below, the data output from each processing unit is stored in the memory 102a one by one. The data stored in the memory 102a is input to each processing unit as necessary and used for the processing.

<処理>
図4は、第2実施形態の処理を説明するためのフローチャートである。以下、この図を用いて、本形態の処理を説明する。なお、以下の処理の前提として、k,nの値が設定され、初期値メモリ102bにハッシュ連鎖値の初期値v(-1)=0kが格納されているものとする。
<Processing>
FIG. 4 is a flowchart for explaining the processing of the second embodiment. Hereinafter, the processing of this embodiment will be described with reference to this drawing. As a premise for the following processing, it is assumed that the values of k and n are set and the initial value v (−1) = 0 k of the hash chain value is stored in the initial value memory 102b.

まず、入力部103に(x,L)∈{0,1}*×Nが入力される(ステップS101)。Lはパラメータ算出部104に入力され、パラメータ算出部204は、
t=CEIL(L/n) …(10)
の演算を行い、その演算結果tを出力する(ステップS202)。
First, (x, L) ε {0,1} * × N is input to the input unit 103 (step S101). L is input to the parameter calculation unit 104, and the parameter calculation unit 204
t = CEIL (L / n)… (10)
And the calculation result t is output (step S202).

また、パラメータ算出部204は、
r=L-n(t-1) …(11)
の演算を行い、その演算結果rを出力する(ステップS203)。パラメータ算出部104から出力された演算結果tは制御部101に入力され、演算結果rはビット切出し部207に入力される。
In addition, the parameter calculation unit 204
r = Ln (t-1)… (11)
The calculation result r is output (step S203). The calculation result t output from the parameter calculation unit 104 is input to the control unit 101, and the calculation result r is input to the bit cutout unit 207.

次に、カウンタ105がカウント値iを0に設定する(ステップS104)。
次に、ハッシュ演算部106に、初期値メモリ102b又はハッシュ演算部209から出力されたハッシュ連鎖値v(i-1)と、入力部103に入力されたxと、カウンタ105から出力されたカウント値iとが入力される。ハッシュ演算部106は、
y(i)=H(v(i-1)||x||<i>) …(12)
の演算を行い、そのハッシュ値y(i)を出力する(ステップS105)。
Next, the counter 105 sets the count value i to 0 (step S104).
Next, the hash calculation unit 106 has the hash chain value v (i−1) output from the initial value memory 102 b or the hash calculation unit 209, x input to the input unit 103, and the count output from the counter 105. The value i is entered. The hash calculation unit 106
y (i) = H (v (i-1) || x || <i>)… (12)
And the hash value y (i) is output (step S105).

次に、ハッシュ演算部209に、初期値メモリ102b又はハッシュ演算部209から出力されたハッシュ連鎖値v(i-1)と、カウンタ105から出力されたカウント値iとが入力される。ハッシュ演算部209は、
v(i)=G(v(i-1)||<i>) …(13)
の演算を行い、そのハッシュ値v(i)をハッシュ連鎖値v(i)として出力する(ステップS207)。
Next, the hash chain value v (i−1) output from the initial value memory 102 b or the hash calculation unit 209 and the count value i output from the counter 105 are input to the hash calculation unit 209. The hash calculation unit 209
v (i) = G (v (i-1) || <i>)… (13)
The hash value v (i) is output as the hash chain value v (i) (step S207).

次に、制御部101が、カウンタ105から出力されたカウント値iがt-2であるか否かを判定する(ステップS108)。ここで、i=t-2でないと判定されたならば、カウンタ105がi+1を新たなiとしてカウントアップを行い(ステップS109)、処理がステップS105に戻される。一方、i=t-2であると判定されたならば、ハッシュ演算部106に、ハッシュ演算部209から出力されたハッシュ連鎖値v(t-2)と、入力部103に入力されたxと、カウンタ105から出力されたカウントアップされたカウント値i=t-1とが入力される。ハッシュ演算部106は、カウント値i=t-1に対応する
y(t-1)=H(v(t-2)||x||<t-1>) …(14)
の演算を行い、そのハッシュ値y(t-1)を出力する(ステップS110)。
Next, the control unit 101 determines whether or not the count value i output from the counter 105 is t-2 (step S108). If it is determined that i = t−2 is not satisfied, the counter 105 counts up i + 1 as a new i (step S109), and the process returns to step S105. On the other hand, if it is determined that i = t-2, the hash chain value v (t-2) output from the hash calculator 209 and the x input to the input unit 103 are sent to the hash calculator 106. The counted up value i = t−1 output from the counter 105 is input. The hash calculator 106 corresponds to the count value i = t−1.
y (t-1) = H (v (t-2) || x || <t-1>)… (14)
And the hash value y (t-1) is output (step S110).

ハッシュ演算部209から出力されたハッシュ値y(t-1)は、ビット切出し部207に入力される。ビット切出し部207は、カウント値i=t-1に対応する
z(t-1)=[y(t-1)]r …(15)
の演算を行い、ハッシュ値y(t-1)から一部のビット列を切り出し、それによって得られたビット列z(t-1)を出力する(ステップS211)。
The hash value y (t−1) output from the hash calculation unit 209 is input to the bit cutout unit 207. The bit cutout unit 207 corresponds to the count value i = t−1.
z (t-1) = [y (t-1)] r … (15)
A part of the bit string is cut out from the hash value y (t-1), and the bit string z (t-1) obtained thereby is output (step S211).

ハッシュ演算部106から出力されたハッシュ値y(0),...,y(t-2)と、ビット切出し部207から出力されたビット列z(t-1)とは、ビット結合部208に入力される。ビット結合部208は、
F(x,L)=y(0)||...||y(t-2)||z(t-1) …(16)
の演算によって各ハッシュ値y(0),...,y(t-2)とビット列z(t-1)とをビット結合し、ビット長Lのビット列F(x,L)を生成して出力する(ステップS212)。
The hash values y (0),..., Y (t-2) output from the hash calculation unit 106 and the bit string z (t−1) output from the bit cutout unit 207 are sent to the bit combination unit 208. Entered. The bit combination unit 208
F (x, L) = y (0) || ... || y (t-2) || z (t-1)… (16)
Each hash value y (0), ..., y (t-2) and bit string z (t-1) are bit-combined by the operation of to generate a bit string F (x, L) of bit length L Output (step S212).

<第2実施形態の変形例>
本発明は第2実施形態に限定されない。
例えば、本形態では、カウント値iを増加させながら行われる繰り返し処理の中でハッシュ連鎖値v(i)を計算することとした(ステップS207)。しかし、本形態のハッシュ連鎖値v(i)は入力される任意値xに依存しない。そのため、必要となるすべてのハッシュ連鎖値v(i)をまとめて計算してもよく、また、ハッシュ連鎖値v(j)がステップS101より前に事前計算されハッシュ値y(i)が並列計算されていてもよい。これにより、演算速度を向上させることができる。
<Modification of Second Embodiment>
The present invention is not limited to the second embodiment.
For example, in this embodiment, the hash chain value v (i) is calculated in an iterative process performed while increasing the count value i (step S207). However, the hash chain value v (i) in this embodiment does not depend on the input arbitrary value x. Therefore, all necessary hash chain values v (i) may be calculated together, or the hash chain value v (j) is pre-calculated before step S101 and the hash value y (i) is calculated in parallel. May be. Thereby, calculation speed can be improved.

また、本形態のハッシュ入力情報u(i)は、ハッシュ連鎖値v(i-1)と、任意値xと、カウント値iのエンコーディングビット列<i>とのビット結合であった。しかし、少なくとも一部にカウント値iに対応するハッシュ入力情報u(i)が、カウント値iのエンコーディングビット列<i>を含まない構成でもよい。また、少なくとも一部にカウント値iに対応するハッシュ入力情報u(i)が、ハッシュ連鎖値v(i-1)と、任意値xと、その他の情報(例えば、乱数や装置の固有情報など)とのビット結合であってもよいし、ハッシュ連鎖値v(i-1)と、任意値xと、エンコーディングビット列<i>と、当該その他の情報とのビット結合であってもよい。   Also, the hash input information u (i) of this embodiment is a bit combination of the hash chain value v (i−1), the arbitrary value x, and the encoding bit string <i> of the count value i. However, the hash input information u (i) corresponding to the count value i may not include the encoding bit string <i> of the count value i at least partially. In addition, hash input information u (i) corresponding at least in part to the count value i includes a hash chain value v (i-1), an arbitrary value x, and other information (for example, random numbers, device specific information, etc. May be a bit combination of the hash chain value v (i−1), the arbitrary value x, the encoding bit string <i>, and the other information.

また、本形態のハッシュ連鎖値v(i)は、ハッシュ連鎖値v(i-1)とエンコーディングビット列<i>とのビット結合のハッシュ値G(v(i-1)||<i>)であった。しかし、少なくとも一部にカウント値iに対応するハッシュ連鎖値v(i)が、カウント値iのエンコーディングビット列<i>を含まない値のハッシュ値(例えば、v(i)=G(v(i-1)))であってもよい。また、少なくとも一部にカウント値iに対応するハッシュ連鎖値v(i)が、ハッシュ連鎖値v(i-1)と、エンコーディングビット列<i>と、その他の情報(例えば、乱数や装置の固有情報など)とのビット結合のハッシュ値であってもよいし、ハッシュ連鎖値v(i-1)と、当該その他の情報とのビット結合のハッシュ値であってもよい。また、ハッシュ値G(v(i-1)||<i>)などのハッシュ値の一部のビットをハッシュ連鎖値v(i)としてもよい。   Further, the hash chain value v (i) of this embodiment is a hash value G (v (i-1) || <i>) of bit combination between the hash chain value v (i-1) and the encoding bit string <i>. Met. However, the hash chain value v (i) corresponding at least in part to the count value i is a hash value of a value that does not include the encoding bit string <i> of the count value i (for example, v (i) = G (v (i -1))). In addition, the hash chain value v (i) corresponding to the count value i at least in part, the hash chain value v (i-1), the encoding bit string <i>, and other information (for example, random numbers or device-specific Or a hash value of bit combination with the other information, or a hash value of bit combination with the other information. Also, some bits of the hash value such as the hash value G (v (i−1) || <i>) may be used as the hash chain value v (i).

また、各ビット列y(0),...,y(t-2),z(t-1)が式(16)以外の順序でビット結合されてもよい。また、本形態では、各カウント値iに対するハッシュ入力情報u(i),u(p(i))(i≠p(i))とハッシュ連鎖値v(j(i)),v(m(i))とが、j(i)=i-1, p(i)=i-1, m(i)=i-2の関係を満たすこととしたが、例えば、j(i)=i+1, p(i)=i+1, m(i)=i+2など、j(i),p(i)(i≠p(i)),m(i)がカウント値iに対するその他の関数であってもよい。この場合、それに応じてカウント値の更新方法が異なる。本形態では、j(i)=i-1, p(i)=i-1, m(i)=i-2としたため、カウント値iを0からt-1まで1ずつ増加させながら繰り返し処理を実行したが、例えば、j(i)=i+1, p(i)=i+1, m(i)=i+2の場合には、カウント値iをt-1から0まで1ずつ減少させながら繰り返し処理を実行すればよい。   Also, each bit string y (0),..., Y (t-2), z (t-1) may be bit-coupled in an order other than Expression (16). Also, in this embodiment, hash input information u (i), u (p (i)) (i ≠ p (i)) and hash chain values v (j (i)), v (m ( i)) satisfies the relationship j (i) = i-1, p (i) = i-1, m (i) = i-2, for example, j (i) = i + 1, p (i) = i + 1, m (i) = i + 2, etc., j (i), p (i) (i ≠ p (i)), m (i) It may be a function. In this case, the count value update method differs accordingly. In this embodiment, since j (i) = i-1, p (i) = i-1, m (i) = i-2, iterative processing is performed while incrementing the count value i by 1 from 0 to t-1. For example, if j (i) = i + 1, p (i) = i + 1, m (i) = i + 2, the count value i is incremented by 1 from t-1 to 0. What is necessary is just to perform a repeating process, decreasing.

また、本形態では、ハッシュ連鎖値の初期値がv(-1)=0kであったが、ハッシュ連鎖値の初期値が任意の定数、または任意値xの関数値であるなど、その他の値をハッシュ連鎖値の初期値v(-1)としてもよい。また、本形態では、j(i)=i-1, p(i)=i-1, m(i)=i-2としたため、ハッシュ連鎖値v(-1)に初期値を設定したが、j(i),p(i)(i≠p(i)),m(i)がその他の関数である場合には、それに応じて初期値が設定されるハッシュ連鎖値が異なる。例えば、j(i)=i+1, p(i)=i+1, m(i)=i+2の場合には、v(t+1)に初期値を設定する。 In this embodiment, the initial value of the hash chain value is v (-1) = 0 k , but the initial value of the hash chain value is an arbitrary constant or a function value of the arbitrary value x. The value may be the initial value v (-1) of the hash chain value. In this embodiment, since j (i) = i-1, p (i) = i-1, m (i) = i-2, an initial value is set for the hash chain value v (-1). , J (i), p (i) (i ≠ p (i)), and m (i) are other functions, the hash chain values to which initial values are set differ accordingly. For example, when j (i) = i + 1, p (i) = i + 1, m (i) = i + 2, an initial value is set to v (t + 1).

また、本形態では、ハッシュ値y(0),...,y(t-2)とビット列z(t-1)とのビット結合をビット列F(x,L)としたが、各ハッシュ値y(0),...,y(t-2)のそれぞれ一部のビット列とビット列z(t-1)とのビット結合をビット列F(x,L)としてもよい。この場合、tやrは、ビット列F(x,L)のビット長がLとなるように算出される。   In this embodiment, the bit combination of the hash value y (0), ..., y (t-2) and the bit string z (t-1) is the bit string F (x, L). Bit combinations of a part of bit strings y (0),..., y (t-2) and the bit string z (t-1) may be defined as a bit string F (x, L). In this case, t and r are calculated so that the bit length of the bit string F (x, L) is L.

また、本形態では、nがkを変数とする多項式であったがnが定数でもよい。また、本形態では、入力部103にxとLとが入力されることとしたが、Lを固定とし、入力部103にxのみが入力される構成でもよい。   In this embodiment, n is a polynomial with k as a variable, but n may be a constant. In this embodiment, x and L are input to the input unit 103. However, a configuration in which L is fixed and only x is input to the input unit 103 may be employed.

〔第3実施形態〕
次に本発明の第3実施形態を説明する。
本形態は、第1,2実施形態の変形例であり、一部のカウント値iに対応するハッシュ入力情報u(i)のみがハッシュ連鎖値v(j(i))を含む形態である。これにより、ハッシュ連鎖値v(j(i))の演算コストを削減できるとともに、ハッシュ連鎖値v(j(i))を含まないハッシュ入力情報u(i)やそのハッシュ値を同時並列に計算でき、演算速度を向上させることができる。
なお、本形態の構成は第1,2実施形態と同様であるため、以下では構成の説明を省略し、処理を中心に説明を行う。
[Third Embodiment]
Next, a third embodiment of the present invention will be described.
The present embodiment is a modification of the first and second embodiments, in which only hash input information u (i) corresponding to a part of count values i includes a hash chain value v (j (i)). As a result, the calculation cost of the hash chain value v (j (i)) can be reduced, and the hash input information u (i) that does not include the hash chain value v (j (i)) and its hash value are calculated in parallel. And the calculation speed can be improved.
In addition, since the structure of this form is the same as that of 1st, 2 embodiment, description of a structure is abbreviate | omitted below and it demonstrates centering around a process.

<実施例1>
図5は、第3実施形態の処理を説明するためのフローチャートである。
図5の例では、カウント値i∈{0,...,t-1}のうち、i=w・q(wは2以上の整数、qは正の整数)を満たす場合にのみ、入力情報u(i)がハッシュ連鎖値v(j(i))を含む。一方、i≠w・qとなるカウント値iに対応する入力情報u(i)はハッシュ連鎖値v(j(i))を含まない。なお、本形態でも第1実施形態と同様、j(i)=i-1, p(i)=i-1, m(i)=i-2の場合を例にとって説明する。
<Example 1>
FIG. 5 is a flowchart for explaining the processing of the third embodiment.
In the example of FIG. 5, input is performed only when the count value i∈ {0, ..., t-1} satisfies i = w · q (w is an integer of 2 or more, q is a positive integer). The information u (i) includes the hash chain value v (j (i)). On the other hand, the input information u (i) corresponding to the count value i where i ≠ w · q does not include the hash chain value v (j (i)). In the present embodiment, as in the first embodiment, a case where j (i) = i−1, p (i) = i−1, and m (i) = i−2 will be described as an example.

まず、第1実施形態と同様のステップS101からS103の処理が実行される。次に、ハッシュ演算部106(図1)に、入力部103に入力されたxと、カウンタ105から出力されたカウント値i(i∈{0,...t-1}, i≠w・q)とが入力される。ハッシュ演算部106は、これらの各カウント値i(i∈{0,...t-1}, i≠w・q)に対して
y(i)=H(x||<i>) …(17)
の演算を行い、そのハッシュ値y(i)を出力する(ステップS304)。この各カウント値iについての式(17)の演算は同時並列に実行されてもよいし、直列的に実行されてもよい。
First, the same processing of steps S101 to S103 as in the first embodiment is executed. Next, the hash calculation unit 106 (FIG. 1) inputs x input to the input unit 103 and the count value i (i∈ {0,... T−1}, i ≠ w · q) is entered. The hash calculator 106 calculates the count values i (i∈ {0,... T-1}, i ≠ w · q).
y (i) = H (x || <i>)… (17)
The hash value y (i) is output (step S304). The calculation of Expression (17) for each count value i may be executed simultaneously in parallel or serially.

これらのハッシュ値y(i)のうち、カウント値i(i∈{0,...t-1}, i=w・q-1)に対応するものがビット切出し部107に入力される。ビット切出し部107は、カウント値i(i∈{0,...t-1}, i=w・q-1)に対し、
v(i)=[y(i)]k …(18)
の演算によってハッシュ値y(i)から一部のビット列を切り出し、それによって得られたビット列z(i)とハッシュ連鎖値v(i)とを出力する(ステップS305)。この各カウント値iについての式(18)の演算は同時並列に実行されてもよいし、直列的に実行されてもよい。
Among these hash values y (i), the one corresponding to the count value i (iε {0,... T−1}, i = w · q−1) is input to the bit cutout unit 107. The bit cutout unit 107 calculates the count value i (i∈ {0, ... t-1}, i = w · q-1)
v (i) = [y (i)] k … (18)
A part of the bit string is cut out from the hash value y (i) by the above operation, and the bit string z (i) and the hash chain value v (i) obtained thereby are output (step S305). The calculation of Expression (18) for each count value i may be executed simultaneously in parallel or serially.

次に、ハッシュ演算部106に、初期値メモリ102b又はビット切出し部107から出力されたハッシュ連鎖値v(i-1) (i∈{0,...t-1}, i=w・q)と、入力部103に入力されたxと、カウンタ105から出力されたカウント値i(i∈{0,...t-1}, i=w・q)とが入力される。ハッシュ演算部106は、これらの各カウント値i(i∈{0,...t-1}, i=w・q)に対して
y(i)=H(v(i-1)||x||<i>) …(19)
の演算を行い、そのハッシュ値y(i)を出力する(ステップS306)。この各カウント値iについての式(19)の演算は同時並列に実行されてもよいし、直列的に実行されてもよい。
Next, the hash chain value v (i−1) (i∈ {0,... T−1}, i = w · q output from the initial value memory 102b or the bit cutout unit 107 is sent to the hash calculator 106. ), X input to the input unit 103, and the count value i (iε {0,... T−1}, i = w · q) output from the counter 105 are input. The hash calculator 106 calculates the count values i (i∈ {0, ... t-1}, i = w · q).
y (i) = H (v (i-1) || x || <i>)… (19)
The hash value y (i) is output (step S306). The calculation of Equation (19) for each count value i may be executed simultaneously in parallel or serially.

各カウント値i∈{0,...t-2}に対応するハッシュ値y(i)は、ビット切出し部107に入力される。ビット切出し部107は、
z(i)=[y(i)]n-k …(20)
の演算によってハッシュ値y(i)から一部のビット列を切り出し、それによって得られたビット列z(i)(i∈{0,...t-2})を出力する(ステップS307)。
その後、第1実施形態と同様のステップS111及びS112の処理が実行される。
The hash value y (i) corresponding to each count value i∈ {0,... T−2} is input to the bit cutout unit 107. The bit cutout unit 107
z (i) = [y (i)] nk … (20)
A part of the bit string is cut out from the hash value y (i) by the above operation, and the bit string z (i) (iε {0,... T−2}) obtained thereby is output (step S307).
Thereafter, the processes of steps S111 and S112 similar to those of the first embodiment are executed.

<実施例2>
図6は、第3実施形態の処理を説明するためのフローチャートである。
図6の例では、カウント値i∈{0,...,t-1}のうち、i=w・q(wは2以上の整数、qは正の整数)を満たす場合にのみ、入力情報u(i)がハッシュ連鎖値v(j(i))を含む。一方、i≠w・qとなるカウント値iに対応する入力情報u(i)はハッシュ連鎖値v(j(i))を含まない。なお、本形態でも第1実施形態と同様、j(i)=i-1, p(i)=i-1, m(i)=i-2の場合を例にとって説明する。また、以下の処理の前提として、初期値メモリ102bにハッシュ連鎖値の初期値v(-w)=0kが格納されているものとする。
<Example 2>
FIG. 6 is a flowchart for explaining the processing of the third embodiment.
In the example of FIG. 6, input is performed only when the count value i∈ {0, ..., t-1} satisfies i = w · q (w is an integer of 2 or more, q is a positive integer). The information u (i) includes the hash chain value v (j (i)). On the other hand, the input information u (i) corresponding to the count value i where i ≠ w · q does not include the hash chain value v (j (i)). In the present embodiment, as in the first embodiment, a case where j (i) = i−1, p (i) = i−1, and m (i) = i−2 will be described as an example. Further, it is assumed that the initial value v (−w) = 0 k of the hash chain value is stored in the initial value memory 102b as a premise of the following processing.

まず、第2実施形態と同様のステップS101,S202,S203の処理が実行される。次に、ハッシュ演算部106(図3)に、入力部103に入力されたxと、カウンタ105から出力されたカウント値i(i∈{0,...t-1}, i≠w・q)とが入力される。ハッシュ演算部106は、これらの各カウント値i(i∈{0,...t-1}, i≠w・q)に対して式(17)の演算を行い、そのハッシュ値y(i)を出力する(ステップS304)。この各カウント値iについての式(17)の演算は同時並列に実行されてもよいし、直列的に実行されてもよい。   First, the same processes of steps S101, S202, and S203 as in the second embodiment are executed. Next, the hash calculation unit 106 (FIG. 3) inputs x input to the input unit 103 and the count value i (i∈ {0,... T−1}, i ≠ w · q) is entered. The hash calculation unit 106 performs the calculation of Expression (17) on each count value i (i∈ {0,... T-1}, i ≠ w · q), and the hash value y (i ) Is output (step S304). The calculation of Expression (17) for each count value i may be executed simultaneously in parallel or serially.

次に、カウンタ105がカウント値iを0に設定する(ステップS315)。
次に、ハッシュ演算部106に、初期値メモリ102b又はハッシュ演算部209から出力されたハッシュ連鎖値v(i-1)と、入力部103に入力されたxと、カウンタ105から出力されたカウント値iとが入力される。ハッシュ演算部106は、
y(i)=H(v(i-w)||x||<i>) …(21)
の演算を行い、そのハッシュ値y(i)を出力する(ステップS316)。
Next, the counter 105 sets the count value i to 0 (step S315).
Next, the hash calculation unit 106 has the hash chain value v (i−1) output from the initial value memory 102 b or the hash calculation unit 209, x input to the input unit 103, and the count output from the counter 105. The value i is entered. The hash calculation unit 106
y (i) = H (v (iw) || x || <i>)… (21)
The hash value y (i) is output (step S316).

次に、ハッシュ演算部209に、初期値メモリ102b又はハッシュ演算部209から出力されたハッシュ連鎖値v(i-w)と、カウンタ105から出力されたカウント値iとが入力される。ハッシュ演算部209は、
v(i)=G(v(i-w)||<i>) …(22)
の演算を行い、そのハッシュ値v(i)をハッシュ連鎖値v(i)として出力する(ステップS317)。
Next, the hash chain value v (iw) output from the initial value memory 102 b or the hash calculation unit 209 and the count value i output from the counter 105 are input to the hash calculation unit 209. The hash calculation unit 209
v (i) = G (v (iw) || <i>)… (22)
The hash value v (i) is output as the hash chain value v (i) (step S317).

次に、制御部101が、カウンタ105から出力されたカウント値iがt-1以上であるか否かを判定する(ステップS318)。ここで、i≧t−1でないと判定されたならば、カウンタ105がi+wを新たなiとしてカウントアップを行い(ステップS319)、処理がステップS316に戻される。一方、i≧t−1であると判定されたならば、第2実施形態のステップS211,S212の処理が実行される。   Next, the control unit 101 determines whether or not the count value i output from the counter 105 is equal to or greater than t−1 (step S318). If it is determined that i ≧ t−1 does not hold, the counter 105 counts up i + w as a new i (step S319), and the process returns to step S316. On the other hand, if it is determined that i ≧ t−1, the processes of steps S211 and S212 of the second embodiment are executed.

<第3実施形態の変形例>
本発明は第3実施形態に限定されない。例えば、第3実施形態の実施例1,2では、カウント値i∈{0,...,t-1}のうち、i=w・q(wは2以上の整数、qは正の整数)を満たす場合にのみ、入力情報u(i)がハッシュ連鎖値v(j(i))を含む例を説明した。しかし、その他のカウント値i∈{0,...,t-1}の部分集合についてのみ、入力情報u(i)がハッシュ連鎖値v(j(i))を含むこととしてもよい。また、上記の各処理において、前述の第1実施形態の変形例や第2実施形態の変形例で述べた変形がなされてもよい。
<Modification of Third Embodiment>
The present invention is not limited to the third embodiment. For example, in Examples 1 and 2 of the third embodiment, among the count values i∈ {0,..., T−1}, i = w · q (w is an integer of 2 or more, q is a positive integer) ), The example in which the input information u (i) includes the hash chain value v (j (i)) has been described. However, the input information u (i) may include the hash chain value v (j (i)) only for a subset of other count values i∈ {0,..., T−1}. In each of the above processes, the modifications described in the modification of the first embodiment and the modification of the second embodiment may be made.

〔その他の変形例等〕
上述の各実施形態の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
[Other variations, etc.]
The processing of each of the above-described embodiments is not only executed in time series according to the description, but may be executed in parallel or individually according to the processing capability of the apparatus that executes the processing or as necessary. Needless to say, other modifications are possible without departing from the spirit of the present invention.
Further, when the above-described configuration is realized by a computer, processing contents of functions that each device should have are described by a program. The processing functions are realized on the computer by executing the program on the computer.
The program describing the processing contents can be recorded on a computer-readable recording medium. As the computer-readable recording medium, for example, any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may be used.

また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。   The program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.

このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。   A computer that executes such a program first stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its storage device. When executing the process, the computer reads a program stored in its own recording medium and executes a process according to the read program. As another execution form of the program, the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer. Each time, the processing according to the received program may be executed sequentially. Also, the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good. Note that the program in this embodiment includes information that is used for processing by an electronic computer and that conforms to the program (data that is not a direct command to the computer but has a property that defines the processing of the computer).

本発明の利用分野としては、暗号鍵の生成処理や電子署名などの暗号通信分野を例示できる。   Examples of the application field of the present invention include encryption communication fields such as encryption key generation processing and electronic signatures.

100,200 ビット列生成装置 100,200 bit string generator

Claims (7)

少なくとも任意値xが入力される入力部と、
各カウント値i∈{0,...,Max}(iは整数、MAXは1以上の整数)に対し、それぞれ、前記任意値xを含むハッシュ入力情報u(i)のハッシュ値y(i)を生成するハッシュ演算部と、
前記ハッシュ値y(i)及び/又は前記ハッシュ値y(i)の一部のビット列をビット結合し、任意ビット長Lのビット列を生成するビット結合部と、を有し、
少なくとも一部のカウント値iに対応する前記ハッシュ入力情報u(i)は、さらに、カウント値j(i)(j(i)∈{0,...,Max})に対応するハッシュ連鎖値v(j(i))を含み、
前記ハッシュ連鎖値v(j(i))は、カウント値m(i)(m(i)∈{0,...,Max},m(i)≠j(i))に対応するハッシュ連鎖値v(m(i))を含む情報のハッシュ値又はその一部のビット列であり、
カウント値p(i)(p(i)∈{0,...,Max},p(i)≠i)に対応するハッシュ入力情報u(p(i))は、さらに、前記ハッシュ連鎖値v(m(i))を含む、
ことを特徴とするビット列生成装置。
An input unit for inputting at least an arbitrary value x;
For each count value i∈ {0,..., Max} (i is an integer, MAX is an integer of 1 or more), the hash value y (i) of the hash input information u (i) including the arbitrary value x, respectively. ) To generate a hash calculation unit,
A bit combination unit that bit-combines a part of the hash value y (i) and / or a part of the hash value y (i) and generates a bit string of an arbitrary bit length L, and
The hash input information u (i) corresponding to at least a part of the count value i further includes a hash chain value corresponding to the count value j (i) (j (i) ∈ {0, ..., Max}). including v (j (i))
The hash chain value v (j (i)) is a hash chain corresponding to the count value m (i) (m (i) ε {0, ..., Max}, m (i) ≠ j (i)). A hash value of information including the value v (m (i)) or a bit string of a part thereof,
The hash input information u (p (i)) corresponding to the count value p (i) (p (i) ε {0, ..., Max}, p (i) ≠ i) is further the hash chain value including v (m (i)),
A bit string generation device characterized by that.
請求項1のビット列生成装置であって、
前記ハッシュ演算部は、前記ハッシュ入力情報u(i)を第1ハッシュ関数Hに入力して前記ハッシュ値y(i)を生成し、
前記ハッシュ連鎖値v(m(i))を含む情報は、前記ハッシュ入力情報u(p(i))であり、
前記ハッシュ連鎖値v(j(i))は、前記ハッシュ入力情報u(p(i))を前記第1ハッシュ関数Hに入力して得られたハッシュ値y(p(i))又はその一部のビット列である、
ことを特徴とするビット列生成装置。
The bit string generation device according to claim 1,
The hash calculation unit inputs the hash input information u (i) to a first hash function H to generate the hash value y (i),
Information including the hash chain value v (m (i)) is the hash input information u (p (i)),
The hash chain value v (j (i)) is a hash value y (p (i)) obtained by inputting the hash input information u (p (i)) to the first hash function H or one of the hash values y (p (i)). Part bit string,
A bit string generation device characterized by that.
請求項1のビット列生成装置であって、
前記ハッシュ演算部は、前記ハッシュ入力情報u(i)を第1ハッシュ関数Hに入力して前記ハッシュ値y(i)=H(u(i))を生成し、
前記ハッシュ連鎖値v(j(i))は、前記ハッシュ連鎖値v(m(i))を含む情報を第2ハッシュ関数Gに入力して得られたハッシュ値又はその一部のビット列であり、
前記ハッシュ連鎖値v(m(i))を含む情報は、前記任意値xに依存しない情報である、
ことを特徴とするビット列生成装置。
The bit string generation device according to claim 1,
The hash calculation unit inputs the hash input information u (i) to a first hash function H to generate the hash value y (i) = H (u (i)),
The hash chain value v (j (i)) is a hash value obtained by inputting information including the hash chain value v (m (i)) to the second hash function G or a bit string of a part thereof. ,
The information including the hash chain value v (m (i)) is information that does not depend on the arbitrary value x.
A bit string generation device characterized by that.
請求項3のビット列生成装置であって、
前記ハッシュ連鎖値v(j)は、前記任意値xが前記入力部に入力される前に事前計算された値である、
ことを特徴とするビット列生成装置。
The bit string generation device according to claim 3, wherein
The hash chain value v (j) is a value calculated in advance before the arbitrary value x is input to the input unit.
A bit string generation device characterized by that.
請求項1から4の何れかのビット列生成装置であって、
一部のカウント値iに対応する前記ハッシュ入力情報u(i)のみが前記ハッシュ連鎖値v(j(i))を含む、
ことを特徴とするビット列生成装置。
The bit string generation device according to any one of claims 1 to 4,
Only the hash input information u (i) corresponding to some count values i includes the hash chain value v (j (i)),
A bit string generation device characterized by that.
入力部とハッシュ演算部とビット結合部とビット結合部とを有するビット列生成装置が実行するビット列生成方法であって、
前記入力部に、少なくとも任意値xが入力されるステップと、
前記ハッシュ演算部が、各カウント値i∈{0,...,Max}(iは整数、MAXは1以上の整数)に対し、それぞれ、前記任意値xを含むハッシュ入力情報u(i)のハッシュ値y(i)を生成するステップと、
前記ビット結合部が、前記ハッシュ値y(i)及び/又は前記ハッシュ値y(i)の一部のビット列をビット結合し、任意ビット長Lのビット列を生成するステップと、を有し、
少なくとも一部のカウント値iに対応する前記ハッシュ入力情報u(i)は、さらに、カウント値j(i)(j(i)∈{0,...,Max})に対応するハッシュ連鎖値v(j(i))を含み、
前記ハッシュ連鎖値v(j(i))は、カウント値m(i)(m(i)∈{0,...,Max},m(i)≠j(i))に対応するハッシュ連鎖値v(m(i))を含む情報のハッシュ値又はその一部のビット列であり、
カウント値p(i)(p(i)∈{0,...,Max},p(i)≠i)に対応するハッシュ入力情報u(p(i))は、さらに、前記ハッシュ連鎖値v(m(i))を含む、
ことを特徴とするビット列生成方法。
A bit string generation method executed by a bit string generation device having an input unit, a hash calculation unit, a bit combination unit, and a bit combination unit,
At least an arbitrary value x is input to the input unit;
For each count value i∈ {0,..., Max} (i is an integer, MAX is an integer of 1 or more), hash input information u (i) that includes the arbitrary value x, respectively. Generating a hash value y (i) of
The bit combining unit bit-combining part of the hash value y (i) and / or the hash value y (i) to generate a bit string having an arbitrary bit length L, and
The hash input information u (i) corresponding to at least a part of the count value i further includes a hash chain value corresponding to the count value j (i) (j (i) ∈ {0, ..., Max}). including v (j (i))
The hash chain value v (j (i)) is a hash chain corresponding to the count value m (i) (m (i) ε {0, ..., Max}, m (i) ≠ j (i)). A hash value of information including the value v (m (i)) or a bit string of a part thereof,
The hash input information u (p (i)) corresponding to the count value p (i) (p (i) ε {0, ..., Max}, p (i) ≠ i) is further the hash chain value including v (m (i)),
A bit string generation method characterized by the above.
請求項1から5の何れかのビット列生成装置としてコンピュータを機能させるためのプログラム。   A program for causing a computer to function as the bit string generation device according to any one of claims 1 to 5.
JP2009142479A 2009-06-15 2009-06-15 Bit string generation device, bit string generation method and program Active JP5276526B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009142479A JP5276526B2 (en) 2009-06-15 2009-06-15 Bit string generation device, bit string generation method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009142479A JP5276526B2 (en) 2009-06-15 2009-06-15 Bit string generation device, bit string generation method and program

Publications (2)

Publication Number Publication Date
JP2010286781A true JP2010286781A (en) 2010-12-24
JP5276526B2 JP5276526B2 (en) 2013-08-28

Family

ID=43542503

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009142479A Active JP5276526B2 (en) 2009-06-15 2009-06-15 Bit string generation device, bit string generation method and program

Country Status (1)

Country Link
JP (1) JP5276526B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113496762A (en) * 2021-05-20 2021-10-12 山东大学 Biological gene sequence summary data generation method and system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002304121A (en) * 2001-04-09 2002-10-18 Nippon Telegr & Teleph Corp <Ntt> Hash function operation device, its program, and its recording medium
JP2006337429A (en) * 2005-05-31 2006-12-14 Nippon Telegr & Teleph Corp <Ntt> Operating device for mask generating function, and program and recording medium for the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002304121A (en) * 2001-04-09 2002-10-18 Nippon Telegr & Teleph Corp <Ntt> Hash function operation device, its program, and its recording medium
JP2006337429A (en) * 2005-05-31 2006-12-14 Nippon Telegr & Teleph Corp <Ntt> Operating device for mask generating function, and program and recording medium for the same

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSNG200900085007; 太田和夫,國廣昇,王磊: '"安全性を証明可能なハッシュ関数の設計論"' 電子情報通信学会誌 第92巻,第3号, 20090301, p.218-223, 社団法人電子情報通信学会 *
CSNG201000363014; 太田和夫,王磊,崎山一男: '"強識別不可能性理論とSHA-3プロジェクト"' 電子情報通信学会技術研究報告 Vol.109,No.445, 20100225, p.159-166, 社団法人電子情報通信学会 *
JPN6013021059; 太田和夫,國廣昇,王磊: '"安全性を証明可能なハッシュ関数の設計論"' 電子情報通信学会誌 第92巻,第3号, 20090301, p.218-223, 社団法人電子情報通信学会 *
JPN6013021062; 太田和夫,王磊,崎山一男: '"強識別不可能性理論とSHA-3プロジェクト"' 電子情報通信学会技術研究報告 Vol.109,No.445, 20100225, p.159-166, 社団法人電子情報通信学会 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113496762A (en) * 2021-05-20 2021-10-12 山东大学 Biological gene sequence summary data generation method and system
CN113496762B (en) * 2021-05-20 2022-09-27 山东大学 Biological gene sequence summary data generation method and system

Also Published As

Publication number Publication date
JP5276526B2 (en) 2013-08-28

Similar Documents

Publication Publication Date Title
Wang et al. FPGA-based Niederreiter cryptosystem using binary Goppa codes
US11159305B2 (en) Homomorphic data decryption method and apparatus for implementing privacy protection
Barker et al. Recommendation for random bit generator (RBG) constructions
US20150262074A1 (en) Solving digital logic constraint problems via adiabatic quantum computation
Özkaynak An analysis and generation toolbox for chaotic substitution boxes: A case study based on chaotic labyrinth rene thomas system
US20200052913A1 (en) Reducing amount of helper data in silicon physical unclonable functions via lossy compression without production-time error characterization
JP5429502B2 (en) Range search system, range search method, and range search program
JP2017508173A (en) Digital value processing apparatus and method
Saarinen et al. Shorter messages and faster post-quantum encryption with Round5 on Cortex M
CN115310125A (en) Encrypted data retrieval system, method, computer equipment and storage medium
Liu et al. A novel security key generation method for SRAM PUF based on Fourier analysis
JP5276526B2 (en) Bit string generation device, bit string generation method and program
CN112466032A (en) Electronic voting method and device and electronic equipment
Ebrahimzadeh et al. On longest paths and diameter in random Apollonian networks
US11070354B2 (en) System and method for generating a symmetrically balanced output
WO2018193507A1 (en) Authentication tag generation device, authentication tag verification device, method and program
JP6980154B2 (en) Data user key generator, key generation method and key generation program
CN114911851B (en) Data query method, device and storage medium
CN115801228B (en) Interactive information encryption method and device, electronic equipment and storage medium
Di Crescenzo et al. Cryptographic password obfuscation
CN103678334A (en) Method and equipment for calculating digital digests of geographic information
US11379449B2 (en) Method, electronic device and computer program product for creating metadata index
KR20230061028A (en) Apparatus and method for ciphertext comparison capable of preventing side channel attack
Shi et al. Improved Key-Recovery Attacks Under Imperfect SCA Oracle for Lattice-Based KEMs
Lingeshwaran et al. Performance Evaluation of Classic McEliece Post Quantum Cryptography

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110720

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110922

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130424

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130517

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5276526

Country of ref document: JP

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