JP5791562B2 - COMPRESSION FUNCTION OPERATION DEVICE, COMPRESSION FUNCTION OPERATION METHOD, AND PROGRAM - Google Patents

COMPRESSION FUNCTION OPERATION DEVICE, COMPRESSION FUNCTION OPERATION METHOD, AND PROGRAM Download PDF

Info

Publication number
JP5791562B2
JP5791562B2 JP2012108288A JP2012108288A JP5791562B2 JP 5791562 B2 JP5791562 B2 JP 5791562B2 JP 2012108288 A JP2012108288 A JP 2012108288A JP 2012108288 A JP2012108288 A JP 2012108288A JP 5791562 B2 JP5791562 B2 JP 5791562B2
Authority
JP
Japan
Prior art keywords
bit
internal variable
agitation
information
stirring
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.)
Expired - Fee Related
Application number
JP2012108288A
Other languages
Japanese (ja)
Other versions
JP2013235174A (en
Inventor
悠 佐々木
悠 佐々木
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 JP2012108288A priority Critical patent/JP5791562B2/en
Publication of JP2013235174A publication Critical patent/JP2013235174A/en
Application granted granted Critical
Publication of JP5791562B2 publication Critical patent/JP5791562B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、暗号学的圧縮関数を演算する技術に関し、特に、RIPEMD型二重構造を用いる圧縮関数の安全性を高める圧縮関数演算技術に関する。   The present invention relates to a technique for calculating a cryptographic compression function, and more particularly to a compression function calculation technique for increasing the security of a compression function using a RIPEMD type double structure.

暗号学的圧縮関数(以下、単に圧縮関数とも言う。)は、デジタル署名やメッセージ認証符号などのセキュリティ技術で利用されるハッシュ関数を構成するために用いられる関数である。圧縮関数H:{0,1}U→{0,1}V,U>Vは、Uビットの情報を入力として、Uビットよりも短いVビットの情報を出力する。入力値のビット長Uと出力値のビット長Vは、その圧縮関数Hに固有の固定値である。ある圧縮関数Hが高い安全性を実現するためには、圧縮関数Hへの2つの入力値I1とI2とで1ビットでも異なるビットがあれば、それぞれの出力値H(I1)とH(I2)とがランダムに振る舞うこと、つまり入力値の相関が出力値に一切反映されないことが望ましい。 A cryptographic compression function (hereinafter also simply referred to as a compression function) is a function used to construct a hash function used in a security technique such as a digital signature or a message authentication code. The compression function H: {0, 1} U → {0, 1} V , U> V inputs U-bit information and outputs V-bit information shorter than the U-bit. The bit length U of the input value and the bit length V of the output value are fixed values specific to the compression function H. In order for a certain compression function H to achieve high security, if there is a bit that differs between the two input values I 1 and I 2 to the compression function H, each output value H (I 1 ) and It is desirable that H (I 2 ) behaves randomly, that is, the correlation between the input values is not reflected in the output values.

一般的に圧縮関数Hは、nビットの内部変数cvとb(>n)ビットのメッセージmを入力にとる。まず、メッセージ拡大関数Eを用いてk(>b)ビットの拡大メッセージE(m)を計算する。次に、内部変数cvと拡大メッセージE(m)を入力とするデータ撹拌関数Dを計算することにより、撹拌情報Xを計算する。そして、内部変数cvと撹拌情報Xを入力とする出力関数Oを計算することにより、nビットの出力値oを出力する。このとき、データ撹拌関数Dは、拡大メッセージE(m)の一部を入力にとるラウンド関数Rを繰り返し実行することでデータを撹拌する。ラウンド関数Rは比較的簡単な演算であるが、演算回数を重ねることで全体としてランダムな関数を実現する。   Generally, the compression function H takes an n-bit internal variable cv and a b (> n) -bit message m as inputs. First, an expanded message E (m) of k (> b) bits is calculated using the message expansion function E. Next, the agitation information X is calculated by calculating the data agitation function D with the internal variable cv and the expanded message E (m) as inputs. Then, by calculating an output function O that receives the internal variable cv and the stirring information X, an n-bit output value o is output. At this time, the data agitation function D agitates the data by repeatedly executing a round function R that takes a part of the enlarged message E (m) as an input. The round function R is a relatively simple operation, but a random function is realized as a whole by repeating the number of operations.

圧縮関数の安全性を高めるために、二重構造を用いる圧縮関数が利用されている。二重構造を用いる圧縮関数は、通常の圧縮関数と同様に、nビットの内部変数cvとbビットのメッセージmを入力とし、メッセージ拡大関数Eとデータ撹拌関数Dにより撹拌情報Xを計算する。一方、二重構造を用いる圧縮関数は同時に、メッセージ拡大関数E’とデータ撹拌関数D’により撹拌情報X’も計算する。そして、内部変数cvと撹拌情報Xおよび撹拌情報X’を入力とする出力関数Oを計算して出力値oを計算する。二重構造を用いる圧縮関数では2つの独立なデータ撹拌を行うため、二重構造を用いない通常の圧縮関数よりも強い安全性を実現することができる。   In order to increase the security of the compression function, a compression function using a double structure is used. In the compression function using the double structure, the n-bit internal variable cv and the b-bit message m are input as in the normal compression function, and the agitation information X is calculated by the message expansion function E and the data agitation function D. On the other hand, the compression function using the double structure simultaneously calculates the agitation information X ′ by the message expansion function E ′ and the data agitation function D ′. Then, the output function O is calculated by calculating the output function O having the internal variable cv, the stirring information X, and the stirring information X ′ as inputs. Since the compression function using the double structure performs two independent data agitations, it is possible to realize stronger safety than the normal compression function not using the double structure.

二重構造を用いる圧縮関数として、RIPEMD型二重構造を用いる圧縮関数が提案されている。RIPEMD型二重構造を用いる圧縮関数は、ラウンド関数Rの処理に特徴がある。RIPEMD型二重構造を用いる圧縮関数におけるラウンド関数Rは、nビットの撹拌情報Xiと拡大メッセージE(m)の一部を入力にとり、撹拌情報Xi+1を計算する。ここで、iはラウンド関数Rの実行回数をカウントする変数である。通常の二重構造を用いる圧縮関数におけるラウンド関数Rでは、1回の関数実行においてnビットすべてを更新するが、RIPEMD型二重構造を用いる圧縮関数におけるラウンド関数Rでは、入力されたnビットの撹拌情報Xiのうち一部のみを更新する。 A compression function using a RIPEMD type double structure has been proposed as a compression function using a double structure. The compression function using the RIPEMD type double structure is characterized by processing of the round function R. The round function R in the compression function using the RIPEMD type double structure takes the n-bit stirring information X i and a part of the expanded message E (m) as input, and calculates the stirring information X i + 1 . Here, i is a variable for counting the number of executions of the round function R. In the round function R in the compression function using the normal double structure, all n bits are updated in one function execution, but in the round function R in the compression function using the RIPEMD type double structure, the input n bits are updated. Only a part of the stirring information X i is updated.

RIPEMD型二重構造を用いる圧縮関数の具体的な仕様としては、ハッシュ関数RIPEMDの仕様で規定されている圧縮関数(非特許文献1)と、ハッシュ関数RIPEMD128の仕様で規定されている圧縮関数(非特許文献2)が提案されている。非特許文献1に記載のハッシュ関数RIPEMDは、2つのメッセージ拡大関数E,E’に関しては同じ関数を利用し、2つのデータ撹拌関数D,D’に関してはラウンド関数R内で用いるパラメータであるラウンド定数以外は同一のものを利用する。非特許文献2に記載のハッシュ関数RIPEMD128は、2つのメッセージ拡大関数E,E’に関しては異なる関数を利用し、2つのデータ撹拌関数D,D’に関しては、基本構造は同一であるがラウンド関数R内で用いるパラメータがすべて異なるように構成されている。   As a specific specification of the compression function using the RIPEMD type double structure, a compression function (Non-Patent Document 1) defined by the specification of the hash function RIPEMD and a compression function defined by the specification of the hash function RIPEMD128 ( Non-patent document 2) has been proposed. The hash function RIPEMD described in Non-Patent Document 1 uses the same function for the two message expansion functions E and E ′, and the round that is a parameter used in the round function R for the two data mixing functions D and D ′. The same thing is used except for the constant. The hash function RIPEMD128 described in Non-Patent Document 2 uses different functions for the two message expansion functions E and E ′, and the two data mixing functions D and D ′ have the same basic structure but a round function. All parameters used in R are configured differently.

RIPE Integrity Primitives, “Integrity Primitives for Secure Information Systems”, Final Report of RACE Integrity Primitives Evaluation RIPE-RACE 1040, volume 1007 of Lecture Notes in Computer Science, pages 69-111, 1995.RIPE Integrity Primitives, “Integrity Primitives for Secure Information Systems”, Final Report of RACE Integrity Primitives Evaluation RIPE-RACE 1040, volume 1007 of Lecture Notes in Computer Science, pages 69-111, 1995. Hans Dobbertin and Antoon Bosselaers and Bart Preneel, “RIPEMD-160: A Strengthened Version of RIPEMD”, Fast Software Encryption Third International Workshop, volume 1039 of Lecture Notes in Computer Science, pages 71-82, 1996.Hans Dobbertin and Antoon Bosselaers and Bart Preneel, “RIPEMD-160: A Strengthened Version of RIPEMD”, Fast Software Encryption Third International Workshop, volume 1039 of Lecture Notes in Computer Science, pages 71-82, 1996.

RIPEMD型二重構造を用いる圧縮関数においては、二重構造の利点を活かすために、2つのデータ撹拌関数D,D’の演算をできるだけ相関がないものにする必要がある。非特許文献2に記載されている圧縮関数では、メッセージ拡大関数E,E’もデータ撹拌関数D,D’も異なる関数である。そのため、2つの演算の相関は低くなり、高い安全性を実現している。しかしながら、圧縮関数を構成する要素をすべて別々に実装する必要があるため、実装効率が悪いという問題がある。非特許文献1に記載されている圧縮関数は、2つのメッセージ拡大関数E,E’が同じ関数であるため実装効率は良いが、2つの演算の相関が高くなる。そのため、非特許文献2に記載の圧縮関数と比較して安全性が低い。また、2つのデータ撹拌関数D,D’の入力がいずれも内部変数cvと拡大メッセージE(m)であるため、最初の1ラウンドで更新される値に確定的な相関がある。つまり実質的に1ラウンド分の演算が無意味になっているという問題もある。   In the compression function using the RIPEMD type double structure, in order to take advantage of the double structure, it is necessary to make the operations of the two data agitation functions D and D 'as uncorrelated as possible. In the compression function described in Non-Patent Document 2, the message expansion functions E and E ′ and the data agitation functions D and D ′ are different functions. For this reason, the correlation between the two operations is low, and high safety is achieved. However, since it is necessary to separately implement all the elements constituting the compression function, there is a problem that the mounting efficiency is poor. The compression function described in Non-Patent Document 1 has good implementation efficiency because the two message expansion functions E and E 'are the same function, but the correlation between the two operations is high. Therefore, compared with the compression function described in Non-Patent Document 2, safety is low. In addition, since the inputs of the two data agitation functions D and D ′ are both the internal variable cv and the expanded message E (m), there is a definite correlation between the values updated in the first round. In other words, there is a problem that the operation for one round is practically meaningless.

この発明はこのような点に鑑みてなされたものであり、2つのデータ撹拌関数D,D’の間でラウンド関数Rが用いるパラメータであるラウンド定数以外の値を同一としながら、最初の1ラウンド後に内部変数cvとメッセージmに依存しない相関がなくなるように構成することで、圧縮関数の安全性を向上することができる圧縮関数演算技術を提供することを目的とする。   The present invention has been made in view of such points, and the same value other than the round constant, which is a parameter used by the round function R, between the two data agitation functions D and D ′, It is an object of the present invention to provide a compression function calculation technique capable of improving the safety of the compression function by configuring so that the correlation independent of the internal variable cv and the message m is eliminated later.

上記の課題を解決するために、この発明の圧縮関数演算装置は、内部変数撹拌部と拡大メッセージ生成部と第1撹拌情報生成部と第2撹拌情報生成部と出力値生成部とを備える。k,b,n,rは正の整数であり、k>b>n>rであるとして、内部変数撹拌部は、nビットの内部変数cvを入力として、上位rビットが内部変数cvの上位rビットと少なくとも1ビットが相違するか、もしくは下位n-rビットを入力とするあらかじめ定められた非線形関数NLの出力が内部変数cvの下位n-rビットを入力とする非線形関数NLの出力と少なくとも1ビットが相違するように、nビットの撹拌内部変数T(cv)を生成する。拡大メッセージ生成部は、bビットのメッセージmを入力として、kビットの拡大メッセージE(m)を生成する。第1撹拌情報生成部は、内部変数cvと拡大メッセージE(m)を入力として、あらかじめ定めた第1ラウンド定数constを用いて、nビットの第1撹拌情報Xを出力する。第2撹拌情報生成部は、撹拌内部変数T(cv)と拡大メッセージE(m)を入力として、あらかじめ定めた第2ラウンド定数const’を用いて、nビットの第2撹拌情報X’を出力する。出力値生成部は、内部変数cvと第1撹拌情報Xと第2撹拌情報X’とを入力として、nビットの出力値oを生成する。   In order to solve the above problems, a compression function computing device of the present invention includes an internal variable stirring unit, an enlarged message generating unit, a first stirring information generating unit, a second stirring information generating unit, and an output value generating unit. k, b, n, r are positive integers, and k> b> n> r, the internal variable agitation unit takes n bits of internal variable cv as input, and the upper r bits are higher than internal variable cv. At least 1 bit is different from the output of the non-linear function NL whose input is the lower nr bit of the internal variable cv. To make a difference, an n-bit agitation internal variable T (cv) is generated. The expansion message generation unit receives the b-bit message m and generates a k-bit expansion message E (m). The first agitation information generation unit receives the internal variable cv and the expanded message E (m), and outputs n-bit first agitation information X using a predetermined first round constant const. The second agitation information generation unit receives the agitation internal variable T (cv) and the expanded message E (m) as input, and outputs n-bit second agitation information X ′ using a predetermined second round constant const ′. To do. The output value generation unit receives the internal variable cv, the first stirring information X, and the second stirring information X ′ as input, and generates an n-bit output value o.

この発明の圧縮関数演算技術によれば、二重構造の圧縮関数において2つのデータ撹拌関数の演算の相関が低くなり、安全性を向上することができる。また、内部変数を撹拌する操作として、圧縮関数全体の演算量と比較して負荷の軽い演算を適用することができるため、計算コストを維持しながら安全性を向上することができる。   According to the compression function calculation technique of the present invention, the correlation between the calculations of the two data agitation functions is reduced in the double structure compression function, and the safety can be improved. In addition, as the operation of stirring the internal variable, it is possible to apply a calculation with a light load compared to the calculation amount of the entire compression function. Therefore, it is possible to improve safety while maintaining the calculation cost.

圧縮関数を説明する図。The figure explaining a compression function. ラウンド関数を用いた圧縮関数を説明する図。The figure explaining the compression function using a round function. 二重構造の圧縮関数を説明する図。The figure explaining the compression function of a double structure. 従来の圧縮関数演算装置の構成例を示すブロック図。The block diagram which shows the structural example of the conventional compression function calculating apparatus. 従来の第1撹拌情報生成部の構成例を示すブロック図。The block diagram which shows the structural example of the conventional 1st stirring information generation part. 従来の圧縮関数演算装置の動作例を示すフローチャート。The flowchart which shows the operation example of the conventional compression function calculating apparatus. 従来の第1撹拌情報生成部の動作例を示すフローチャート。The flowchart which shows the operation example of the conventional 1st stirring information generation part. 第1の実施形態に係る圧縮関数演算装置の構成例を示すブロック図。The block diagram which shows the structural example of the compression function calculating apparatus which concerns on 1st Embodiment. 第1の実施形態に係る第2撹拌情報生成部の構成例を示すブロック図。The block diagram which shows the structural example of the 2nd stirring information generation part which concerns on 1st Embodiment. 第1の実施形態に係る圧縮関数演算装置の動作例を示すフローチャート。The flowchart which shows the operation example of the compression function calculating apparatus which concerns on 1st Embodiment. 第1の実施形態に係る第2撹拌情報生成部の動作例を示すフローチャート。The flowchart which shows the operation example of the 2nd stirring information generation part which concerns on 1st Embodiment.

以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。実施形態の説明に先立って、従来の圧縮関数演算装置の課題について詳細に説明する。
[圧縮関数の説明]
図1を参照して、圧縮関数の基本的な構成について説明する。図中において矢印に交差する直線とその近傍の記号は、その入出力される情報のビット長を表している。例えば、データ撹拌関数Dに入力される内部変数cvはビット長がnビットであることを表している。圧縮関数は、nビットの内部変数cvとbビットのメッセージmを入力として、nビットの出力値oを出力する。メッセージ拡大関数Eは、bビットのメッセージmを入力として、メッセージmをkビットに拡大した拡大メッセージE(m)をデータ撹拌関数Dに対して出力する。一般的に、k>b>nの関係があるが、具体的なビット長は圧縮関数の実装において仕様として規定される。データ撹拌関数Dは、内部変数cvとメッセージ拡大関数Eの出力する拡大メッセージE(m)を入力として、nビットの撹拌情報Xを出力関数Oに対して出力する。出力関数Oは、内部変数cvとデータ撹拌関数Dの出力する撹拌情報Xを入力として、nビットの出力値oを出力する。
Hereinafter, embodiments of the present invention will be described in detail. In addition, the same number is attached | subjected to the component which has the same function in drawing, and duplication description is abbreviate | omitted. Prior to the description of the embodiments, the problems of the conventional compression function calculation device will be described in detail.
[Explanation of compression function]
The basic configuration of the compression function will be described with reference to FIG. In the figure, a straight line crossing the arrow and a symbol in the vicinity thereof indicate the bit length of the input / output information. For example, the internal variable cv input to the data mixing function D represents that the bit length is n bits. The compression function receives an n-bit internal variable cv and a b-bit message m, and outputs an n-bit output value o. The message expansion function E receives the b-bit message m as an input, and outputs an expansion message E (m) obtained by expanding the message m to k bits to the data mixing function D. In general, there is a relationship of k>b> n, but a specific bit length is defined as a specification in the implementation of the compression function. The data agitation function D receives the internal variable cv and the expanded message E (m) output from the message expansion function E, and outputs n-bit agitation information X to the output function O. The output function O receives the internal variable cv and the stirring information X output from the data stirring function D, and outputs an n-bit output value o.

[ラウンド関数を用いた圧縮関数の説明]
図2を参照して、ラウンド関数を用いた圧縮関数について説明する。ラウンド関数を用いた圧縮関数は、データ撹拌関数D以外の処理は図1を参照して説明した圧縮関数の基本的な構成と同一であるので、ここではデータ撹拌関数Dのみについて説明する。
ラウンド関数を用いた圧縮関数におけるデータ撹拌関数Dは、演算がラウンドという単位で分割される。ここでは、分割したラウンド1回の処理をラウンド関数Rという。ラウンド関数Rは拡大メッセージE(m)の一部とnビットの撹拌情報Xiを入力にとり、データを撹拌して撹拌情報Xi+1を出力する。データ撹拌関数Dは、内部変数cvを撹拌情報X0に設定し、ラウンド関数Rをt回繰り返し実行し、生成された撹拌情報Xtを出力する。したがって、ラウンド関数を用いた圧縮関数の処理は、以下の式で表すことができる。
[Description of compression function using round function]
A compression function using a round function will be described with reference to FIG. Since the compression function using the round function is the same as the basic configuration of the compression function described with reference to FIG. 1 except for the data agitation function D, only the data agitation function D will be described here.
The data agitation function D in the compression function using the round function is divided in units of operations called rounds. Here, the divided one round process is called a round function R. The round function R takes a part of the enlarged message E (m) and the n-bit stirring information X i as input, mixes the data, and outputs the stirring information X i + 1 . Data stirring function D sets the internal variable cv to stir information X 0, the round function R repeatedly executed t times, and outputs the generated stirred information X t. Therefore, the compression function processing using the round function can be expressed by the following equation.

Figure 0005791562
Figure 0005791562

一般的に、ラウンド関数Rは比較的簡単な演算であるが、演算回数を重ねることでデータ撹拌関数D全体としてランダムな関数を実現している。ラウンド関数Rの具体的な処理は、圧縮関数の実装により異なる。   Generally, the round function R is a relatively simple calculation, but a random function is realized as the entire data agitation function D by overlapping the number of calculations. The specific processing of the round function R varies depending on the implementation of the compression function.

[二重構造を用いた圧縮関数の説明]
図3を参照して、二重構造を用いた圧縮関数について説明する。二重構造を用いた圧縮関数は、ラウンド関数を用いた圧縮関数と同様に、nビットの内部変数cvとbビットのメッセージmを入力として、メッセージ拡大関数Eとデータ撹拌関数Dにより撹拌情報Xtを計算する。一方、二重構造を用いた圧縮関数は同時に、メッセージ拡大関数E’とデータ撹拌関数D’により撹拌情報X’tも計算する。そして、内部変数cvと撹拌情報XtおよびX’tを入力として、出力関数Oにより出力値oを計算する。したがって、二重構造を用いた圧縮関数の処理は、以下の式で表すことができる。
[Description of compression function using double structure]
A compression function using a double structure will be described with reference to FIG. The compression function using the double structure is similar to the compression function using the round function, with the n-bit internal variable cv and the b-bit message m as inputs, the message expansion function E and the data mixing function D, and the mixing information X Calculate t . On the other hand, the compression function using the double structure simultaneously calculates the agitation information X ′ t by the message expansion function E ′ and the data agitation function D ′. Then, the output value o is calculated by the output function O with the internal variable cv and the stirring information X t and X ′ t as inputs. Therefore, the compression function processing using the double structure can be expressed by the following equation.

Figure 0005791562
Figure 0005791562

二重構造を用いた圧縮関数では2つの独立なデータ撹拌を行うため、二重構造を用いない圧縮関数よりも強い安全性を実現することができる。   Since the compression function using the double structure performs two independent data agitation, it is possible to realize stronger safety than the compression function not using the double structure.

[従来の圧縮関数演算装置]
<構成>
図4を参照して、従来の圧縮関数演算装置19の構成例を詳細に説明する。圧縮関数演算装置19は、非特許文献1に記載されているRIPEMD型二重構造を用いる圧縮関数の演算を行う。圧縮関数演算装置19は、拡大メッセージ生成部110と第1撹拌情報生成部130と第2撹拌情報生成部131と出力値生成部140と第1ラウンド定数記憶部190と第2ラウンド定数記憶部191を備える。
[Conventional compression function arithmetic unit]
<Configuration>
With reference to FIG. 4, a configuration example of a conventional compression function arithmetic unit 19 will be described in detail. The compression function calculation device 19 performs a compression function calculation using the RIPEMD type double structure described in Non-Patent Document 1. The compression function calculation device 19 includes an enlarged message generation unit 110, a first agitation information generation unit 130, a second agitation information generation unit 131, an output value generation unit 140, a first round constant storage unit 190, and a second round constant storage unit 191. Is provided.

図5に第1撹拌情報生成部130の構成例を示す。第1撹拌情報生成部130は、カウンタ初期化手段13001と撹拌情報初期化手段13002と撹拌情報分割手段13003とメッセージ加算手段13004とラウンド定数加算手段13005と非線形関数演算手段13006と分割情報加算手段13007と左巡回シフト手段13008と分割情報結合手段13009とカウンタ加算手段13010と撹拌情報出力手段13011を備える。   FIG. 5 shows a configuration example of the first stirring information generation unit 130. The first agitation information generation unit 130 includes a counter initialization unit 13001, an agitation information initialization unit 13002, an agitation information division unit 13003, a message addition unit 13004, a round constant addition unit 13005, a nonlinear function calculation unit 13006, and a division information addition unit 13007. And a left cyclic shift means 13008, a division information combination means 13009, a counter addition means 13010, and an agitation information output means 13011.

図6を参照して、圧縮関数演算装置19の動作例を実際に行われる手続きの順に従って詳細に説明する。   With reference to FIG. 6, the operation example of the compression function arithmetic unit 19 will be described in detail according to the order of procedures actually performed.

第1ラウンド定数記憶部190には、あらかじめ定められたt個のランダムな整数であるラウンド定数consti(i=0,1,…,t-1)が記憶されている。ただし、t(≧1)はラウンド関数Rの実行回数であり、あらかじめ定められている。第2ラウンド定数記憶部191には、あらかじめ定められたt個のランダムな整数であるラウンド定数const’iが記憶されている。第1ラウンド定数constiと第2ラウンド定数const’iは含まれるすべての数が異なるものであることが望ましいが、この限りではない。 The first round constant storage unit 190 stores round constants const i (i = 0, 1,..., T−1) that are predetermined t random integers. However, t (≧ 1) is the number of executions of the round function R and is determined in advance. The second round constant storage unit 191 stores round constants const ′ i which are predetermined t random integers. Although it is desirable that the first round constant const i and the second round constant const ′ i are all different numbers, this is not restrictive.

拡大メッセージ生成部110は、bビットのメッセージmを入力として、メッセージ拡大関数Eを実行することにより、kビットの拡大メッセージE(m)を生成する(S110)。メッセージ拡大関数Eは、入力されたビット列をパディングして拡大したkビットのビット列を出力する。メッセージ拡大関数Eの具体的な処理内容は、周知のRIPEMD型二重構造を用いる圧縮関数で用いられるメッセージ拡大関数と同様である。処理の詳細は、非特許文献1や非特許文献2を参照されたい。   The expanded message generation unit 110 generates a k-bit expanded message E (m) by executing the message expansion function E with the b-bit message m as an input (S110). The message expansion function E outputs a k-bit bit string expanded by padding the input bit string. The specific processing content of the message expansion function E is the same as the message expansion function used in the compression function using the well-known RIPEMD type double structure. Refer to Non-Patent Document 1 and Non-Patent Document 2 for details of the processing.

第1撹拌情報生成部130は、nビットの内部変数cvとkビットの拡大メッセージE(m)を入力として、第1ラウンド定数記憶部190に記憶されている第1ラウンド定数constiを用いてデータ撹拌関数Dを実行することにより、nビットの撹拌情報Xtを出力する(S130)。第1撹拌情報生成部130の処理の詳細は後述する。 The first agitation information generation unit 130 receives the n-bit internal variable cv and the k-bit expansion message E (m) as input, and uses the first round constant const i stored in the first round constant storage unit 190. By executing the data agitation function D, n-bit agitation information Xt is output (S130). Details of the processing of the first stirring information generation unit 130 will be described later.

第2撹拌情報生成部131は、nビットの内部変数cvとkビットの拡大メッセージE(m)を入力として、第2ラウンド定数記憶部191に記憶されている第2ラウンド定数const’iを用いてデータ撹拌関数Dを実行することにより、nビットの撹拌情報X’tを出力する(S130)。第2撹拌情報生成部131の処理の詳細は後述する。 The second agitation information generation unit 131 receives the n-bit internal variable cv and the k-bit expansion message E (m) as input, and uses the second round constant const ′ i stored in the second round constant storage unit 191. By executing the data agitation function D, n-bit agitation information X ′ t is output (S130). Details of the processing of the second stirring information generation unit 131 will be described later.

出力値生成部140は、nビットの内部変数cvとnビットの撹拌情報Xとnビットの撹拌情報X’tを入力として、出力関数Oを実行することにより、nビットの出力値oを出力する(S140)。出力関数Oの具体的な処理内容は、周知のRIPEMD型二重構造を用いる圧縮関数で用いられる出力関数と同様である。処理の詳細は、非特許文献1や非特許文献2を参照されたい。 The output value generation unit 140 receives the n-bit internal variable cv, the n-bit agitation information X, and the n-bit agitation information X ′ t as input, and outputs an n-bit output value o by executing the output function O. (S140). The specific processing content of the output function O is the same as the output function used in the compression function using the well-known RIPEMD type double structure. Refer to Non-Patent Document 1 and Non-Patent Document 2 for details of the processing.

図7を参照して、第1撹拌情報生成部130の動作例を実際に行われる手続きの順に従って詳細に説明する。なお、第1撹拌情報生成部130と第2撹拌情報生成部131とはデータ撹拌関数Dを実行する際に用いるラウンド定数が異なる以外は相違点がないため、第2撹拌情報生成部131の動作例についての説明は省略する。   With reference to FIG. 7, the operation example of the 1st stirring information generation part 130 is demonstrated in detail according to the order of the procedure actually performed. The first agitation information generation unit 130 and the second agitation information generation unit 131 have no difference except that the round constant used when the data agitation function D is executed. The explanation about the example is omitted.

図7中における表記方法について説明する。E(m)|iは、拡大メッセージE(m)のうち、i回目のラウンド関数R実行時に撹拌情報Xiの更新に用いられる部分を表す。「<<<・」は、・ビットの左巡回シフトを表す。左巡回シフトとは、ビット列を上位方向に指定されたビット数だけ移動し、桁を超えたビットを下位に順次移動するビット操作である。例えば、8桁のビット列「11010100」を3ビット左巡回シフトしたのであれば、操作後のビット列は上位3ビット「110」が下位に移動して「10100110」となる。S13004,S13005,S13007に表される以下の記号は、算術加算を表す。 The notation method in FIG. 7 will be described. E (m) | i represents a part of the expanded message E (m) that is used for updating the stirring information X i when the i-th round function R is executed. “<<< •” represents a left cyclic shift of a bit. The left cyclic shift is a bit operation in which a bit string is moved by a designated number of bits in the upper direction, and bits exceeding digits are sequentially moved to the lower order. For example, if an 8-digit bit string “11010100” is 3-bit counterclockwise shifted, the upper three bits “110” are moved to the lower order in the bit string after the operation to “10100110”. The following symbols represented in S13004, S13005, and S13007 represent arithmetic addition.

Figure 0005791562
Figure 0005791562

カウンタ初期化手段13001は、カウンタ変数iを0に初期化する(13001)。撹拌情報初期化手段13002は、入力された内部変数cvを撹拌情報Xiとして設定する(13002)。撹拌情報分割手段13003は、撹拌情報Xiの上位r(≦n-1)ビットを分割情報XiAとして設定し、撹拌情報Xiの下位n-rビットを分割情報XiBとして設定する(S13003)。すなわち、分割情報XiAは、撹拌情報Xiの1ビット目からrビット目までが設定される。分割情報XiBは、撹拌情報Xiのr+1ビット目からnビット目までが設定される。rはあらかじめ定められた整数であり、撹拌情報Xiのうちラウンド関数において更新されるビット数である。rの具体的な値は圧縮関数の実装により規定される。メッセージ加算手段13004は、一時変数tempに、分割情報XiAに拡大メッセージの一部であるE(m)|iを加算して更新する(S13004)。ラウンド定数加算手段13005は、一時変数tempに、第1ラウンド定数記憶部190の記憶されている第1ラウンド定数constiを加算して更新する(S13005)。非線形関数演算手段13006は、分割情報XiBを入力として、あらかじめ定めた非線形関数NLを計算し、分割情報NL(XiB)を算出する(S13006)。非線形関数NLは、周知のRIPEMD型二重構造を用いる圧縮関数で用いられる非線形関数であればいずれでもよい。例えば、非特許文献1や非特許文献2に記載の非線形関数を適用することができる。分割情報加算手段13007は、一時変数tempに、分割情報NL(XiB)を加算して更新する(S13007)。左巡回シフト手段13008は、一時変数tempをsi(≧1)ビット左巡回シフトする(S13008)。siは、あらかじめ定められたt個のランダムな整数であり、i回目のラウンド関数における左巡回シフトのビット数である。左巡回シフトのビット数siは、含まれるすべての数が異なるものであることが望ましいが、この限りではない。左巡回シフトの結果、操作後の一時変数tempは、操作前の一時変数tempのsi+1ビット目からnビット目と、操作前の一時変数tempの1ビット目からsiビット目を順に結合したビット列となる。分割情報結合手段13009は、撹拌情報Xi+1に、分割情報XiBと一時変数tempを順に結合したビット列を設定する(S13009)。カウンタ加算手段13010は、カウンタ変数iに1を加算する(S13010)。撹拌情報出力手段13011は、カウンタ変数iとラウンド回数tを比較して、i<tであれば、S13003へ処理を戻す。i≧tであれば、撹拌情報Xiを出力する(S13011)。 The counter initialization unit 13001 initializes the counter variable i to 0 (13001). The stirring information initialization unit 13002 sets the input internal variable cv as the stirring information X i (13002). Stirred information dividing unit 13003 sets the upper r (≦ n-1) bit of agitation information X i as the division information X iA, sets a lower nr bits of agitation information X i as the division information X iB (S13003). That is, the division information X iA is set from the first bit to the r-th bit of the stirring information X i . The division information X iB is set from the (r + 1) -th bit to the n-th bit of the stirring information X i . r is a predetermined integer, and is the number of bits updated in the round function in the stirring information X i . The specific value of r is defined by the compression function implementation. The message addition means 13004 updates the temporary variable temp by adding E (m) | i , which is a part of the enlarged message, to the division information X iA (S13004). The round constant addition means 13005 adds the first round constant const i stored in the first round constant storage unit 190 to the temporary variable temp and updates it (S13005). The nonlinear function calculation means 13006 receives the division information X iB as input, calculates a predetermined nonlinear function NL, and calculates division information NL (X iB ) (S13006). The non-linear function NL may be any non-linear function used in a compression function using a well-known RIPEMD type double structure. For example, the nonlinear functions described in Non-Patent Document 1 and Non-Patent Document 2 can be applied. The division information adding means 13007 adds the division information NL (X iB ) to the temporary variable temp and updates it (S13007). The left cyclic shift means 13008 shifts the temporary variable temp by s i (≧ 1) bits left cyclically (S13008). s i is a predetermined random integer of t and is the number of bits of the left cyclic shift in the i-th round function. It is desirable that all the numbers included in the number of left cyclic shift bits s i are different, but this is not restrictive. As a result of the left cyclic shift, the temporary variable temp after the operation is in order from the s i +1 bit to the nth bit of the temporary variable temp before the operation, and from the first bit to the s i bit of the temporary variable temp before the operation. It becomes a combined bit string. The division information combining unit 13009 sets a bit string in which the division information X iB and the temporary variable temp are combined in order to the stirring information X i + 1 (S13009). The counter addition means 13010 adds 1 to the counter variable i (S13010). The agitation information output means 13011 compares the counter variable i with the number of rounds t, and if i <t, returns the process to S13003. If i ≧ t, the stirring information X i is output (S13011).

<課題>
上記を踏まえて、従来の圧縮関数演算装置19の課題について説明する。RIPEMD型二重構造を用いる圧縮関数においては、二重構造の利点を活かすために、第1撹拌情報生成部130と第2撹拌情報生成部131の処理ができるだけ相関がないものにする必要がある。圧縮関数演算装置19では、第1撹拌情報生成部130と第2撹拌情報生成部131に入力される拡大メッセージE(m)をいずれも拡大メッセージ生成部110が生成するため、実装効率はよいものの安全性に問題がある。また、第1撹拌情報生成部130と第2撹拌情報生成部131それぞれの1ラウンド目の処理で更新される値に確定的な相関があるため、実質的に1ラウンド分の演算が無意味になっているという問題がある。より具体的には、第1撹拌情報生成部130の1ラウンド目で更新された一時変数tempをtemp1とし、第2撹拌情報生成部131の1ラウンド目で更新された一時変数tempをtemp’1とし、非線形関数をNL(x)とすると、temp1とtemp’1の値は以下の式で表すことができる。
<Issues>
Based on the above, the problem of the conventional compression function calculation device 19 will be described. In the compression function using the RIPEMD type double structure, in order to take advantage of the double structure, the processes of the first stirring information generation unit 130 and the second stirring information generation unit 131 need to be as uncorrelated as possible. . In the compression function computing device 19, the expanded message generator 110 generates both the expanded message E (m) input to the first agitation information generation unit 130 and the second agitation information generation unit 131. There is a problem with safety. In addition, since there is a definite correlation between the values updated in the first round processing of the first stirring information generation unit 130 and the second stirring information generation unit 131, the calculation for one round is substantially meaningless. There is a problem of becoming. More specifically, the temporary variable temp updated in the first round of the first stirring information generation unit 130 is set as temp 1, and the temporary variable temp updated in the first round of the second stirring information generation unit 131 is set as temp ′. 1, and when the non-linear function and NL (x), the value of temp 1 and temp '1 can be expressed by the following equation.

Figure 0005791562
Figure 0005791562

ただし、

Figure 0005791562

は、算術加算を表す。 However,
Figure 0005791562

Represents an arithmetic addition.

したがって、第1撹拌情報生成部130と第2撹拌情報生成部131の違いは、以下の式で表すことができる。   Therefore, the difference between the first stirring information generation unit 130 and the second stirring information generation unit 131 can be expressed by the following equation.

Figure 0005791562
Figure 0005791562

ただし、

Figure 0005791562

は、算術減算を表す。 However,
Figure 0005791562

Represents an arithmetic subtraction.

このように、第1撹拌情報生成部130と第2撹拌情報生成部131の違いは、第1ラウンド定数constiと第2ラウンド定数const’iの違いだけであり、従来の圧縮関数演算装置19では、第1撹拌情報生成部130と第2撹拌情報生成部131の演算に確定的な相関があると言える。したがって、従来のRIPEMD型二重構造を用いる圧縮関数では、二重構造を用いてもデータの撹拌が十分でなく、安全性に問題がある。 As described above, the difference between the first agitation information generation unit 130 and the second agitation information generation unit 131 is only the difference between the first round constant const i and the second round constant const ′ i. Then, it can be said that there is a definite correlation in the calculations of the first stirring information generation unit 130 and the second stirring information generation unit 131. Therefore, in the conventional compression function using the RIPEMD type double structure, even if the double structure is used, there is a problem in safety because the data is not sufficiently stirred.

[第1の実施形態]
この発明の第1の実施形態では、第1撹拌情報生成部130の1ラウンド目の処理における撹拌情報X0と第2撹拌情報生成部131の1ラウンド目の処理における撹拌情報X’0に内部変数cvとメッセージmに依存しない相関がなくなるように構成する。
[First Embodiment]
In the first embodiment of the present invention, the stirring information X 0 in the first round processing of the first stirring information generation unit 130 and the stirring information X ′ 0 in the first round processing of the second stirring information generation unit 131 are internally included. Configure so that there is no correlation independent of variable cv and message m.

<構成>
図8を参照して、この実施形態に係る圧縮関数演算装置10の構成例を詳細に説明する。圧縮関数演算装置10は、従来の圧縮関数演算装置19と同様に、拡大メッセージ生成部110と第1撹拌情報生成部130と出力値生成部140と第1ラウンド定数記憶部190と第2ラウンド定数記憶部191を備え、第2撹拌情報生成部131の替わりに第2撹拌情報生成部132を備え、さらに、内部変数撹拌部120を備える。第1ラウンド定数記憶部190と第2ラウンド定数記憶部191は、例えば、ハードディスクや光ディスクもしくはフラッシュメモリ(Flash Memory)などの半導体メモリ素子により構成される補助記憶装置、またはリレーショナルデータベースやキーバリューストアなどのミドルウェアにより構成することができる。
<Configuration>
With reference to FIG. 8, the example of a structure of the compression function calculating apparatus 10 which concerns on this embodiment is demonstrated in detail. The compression function calculation device 10 is similar to the conventional compression function calculation device 19 in that the enlarged message generation unit 110, the first agitation information generation unit 130, the output value generation unit 140, the first round constant storage unit 190, and the second round constant. A storage unit 191, a second stirring information generation unit 132 instead of the second stirring information generation unit 131, and an internal variable stirring unit 120; The first round constant storage unit 190 and the second round constant storage unit 191 are, for example, an auxiliary storage device configured by a semiconductor memory device such as a hard disk, an optical disk, or a flash memory, or a relational database or a key value store. The middleware can be configured.

図9に第2撹拌情報生成部132の構成例を示す。第2撹拌情報生成部132は、従来の圧縮関数演算装置19の備える第1撹拌情報生成部130と同様に、カウンタ初期化手段13001と撹拌情報分割手段13003とメッセージ加算手段13004とラウンド定数加算手段13005と非線形関数演算手段13006と分割情報加算手段13007と左巡回シフト手段13008と分割情報結合手段13009とカウンタ加算手段13010と撹拌情報出力手段13011を備え、撹拌情報初期化手段13002の替わりに撹拌情報初期化手段13002’を備える。すなわち、第1撹拌情報生成部130と第2撹拌情報生成部132との相違点は、撹拌情報初期化手段の処理が異なる点のみである。   FIG. 9 shows a configuration example of the second stirring information generation unit 132. The second agitation information generation unit 132 is similar to the first agitation information generation unit 130 included in the conventional compression function calculation device 19, and includes a counter initialization unit 13001, an agitation information division unit 13003, a message addition unit 13004, and a round constant addition unit. 13005, a nonlinear function computing unit 13006, a division information addition unit 13007, a left cyclic shift unit 13008, a division information combination unit 13009, a counter addition unit 13010, and a stirring information output unit 13011. Initializing means 13002 ′ is provided. That is, the difference between the first stirring information generation unit 130 and the second stirring information generation unit 132 is only that the processing of the stirring information initialization unit is different.

図10を参照して、圧縮関数演算装置10の動作例を実際に行われる手続きの順に従って詳細に説明する。ただし、S110、S130、S140の処理は、従来の圧縮関数演算装置19と同様であるので、ここでは説明を省略する。   With reference to FIG. 10, the operation example of the compression function arithmetic unit 10 will be described in detail according to the order of procedures actually performed. However, since the processing of S110, S130, and S140 is the same as that of the conventional compression function calculation device 19, description thereof is omitted here.

内部変数撹拌部120は、nビットの内部変数cvを入力として操作関数Tを実行することにより、nビットの撹拌内部変数T(cv)を生成する(S120)。操作関数Tは、入力されたビット列と出力するビット列とで、出力するビット列の上位rビットが入力されたビット列の上位rビットと少なくとも1ビットが相違するか、もしくは出力するビット列の下位n-rビットを入力とする非線形関数NLの出力が、入力されたビット列の下位n-rビットを入力とする非線形関数NLの出力と少なくとも1ビットが相違するか、を満たす操作であればどのような操作でもよい。例えば、任意のビット位置の入れ替えを行なってもよいし、負荷の軽い線形演算であってもよい。   The internal variable stirring unit 120 generates the n-bit stirring internal variable T (cv) by executing the operation function T with the n-bit internal variable cv as an input (S120). The operation function T is an input bit string and an output bit string. The upper r bit of the output bit string is at least one bit different from the upper r bit of the input bit string, or the lower nr bit of the output bit string is Any operation satisfying whether the output of the nonlinear function NL as an input satisfies at least one bit different from the output of the nonlinear function NL having the lower nr bits of the input bit string as an input may be used. For example, arbitrary bit positions may be exchanged or a linear operation with a light load may be performed.

より具体的には、操作関数Tをビット位置の入れ替え操作とするのであれば、例えば、上位n/2ビットのビット列と下位n/2ビットのビット列を入れ替える操作が考えられる。すなわち、内部変数cvの1ビット目からn/2ビット目までを撹拌内部変数T(cv)のn/2+1ビット目からnビット目として設定し、内部変数cvのn/2+1ビット目からnビット目までを撹拌内部変数T(cv)の1ビット目からn/2ビット目として設定することで、撹拌内部変数T(cv)を生成する。ビット位置の入れ替え操作はハードウェアでの実装において計算コストが実質的に0である。したがって、内部変数撹拌部120を追加したことが圧縮関数演算装置10の計算コストへ影響することはない。   More specifically, if the operation function T is a bit position switching operation, for example, an operation of switching the upper n / 2-bit bit string and the lower n / 2-bit bit string can be considered. That is, the 1st bit to the n / 2th bit of the internal variable cv are set as the n / 2 + 1th bit to the nth bit of the stirring internal variable T (cv), and the n / 2 + 1 bit of the internal variable cv The stirring internal variable T (cv) is generated by setting the first to n / 2th bits from the first bit to the n / 2th bit of the stirring internal variable T (cv). The bit position swapping operation has substantially zero calculation cost in hardware implementation. Therefore, the addition of the internal variable stirring unit 120 does not affect the calculation cost of the compression function calculation device 10.

また、操作関数Tを軽い線形演算とするのであれば、例えば、内部変数cvと同じビット長のマスクと排他的論理和を計算することにより撹拌内部変数T(cv)を生成するように構成すればよい。このとき、すべてのビットが1であるマスクを利用し、内部変数cvのすべてのビットを反転させたビット列を撹拌内部変数T(cv)としてもよい。もしくは、内部変数cvの上位n/2ビットと下位n/2ビットを入れ替えたビット列をマスクとして利用して、撹拌内部変数T(cv)を生成するように構成してもよい。   Further, if the operation function T is a light linear operation, for example, it is configured to generate the stirring internal variable T (cv) by calculating the exclusive OR with the mask having the same bit length as the internal variable cv. That's fine. At this time, a bit string obtained by inverting all bits of the internal variable cv using a mask in which all bits are 1 may be used as the stirring internal variable T (cv). Alternatively, the stirring internal variable T (cv) may be generated using a bit string obtained by switching the upper n / 2 bits and the lower n / 2 bits of the internal variable cv as a mask.

第2撹拌情報生成部132は、nビットの撹拌内部変数T(cv)とkビットの拡大メッセージE(m)を入力として、第2ラウンド定数記憶部191に記憶されている第2ラウンド定数const’iを用いてデータ撹拌関数Dを実行することにより、nビットの撹拌情報X’tを出力する(S132)。 The second agitation information generation unit 132 receives the n-bit agitation internal variable T (cv) and the k-bit expansion message E (m) as inputs, and stores the second round constant const stored in the second round constant storage unit 191. By executing the data agitation function D using “ i” , n-bit agitation information X ′ t is output (S132).

図11を参照して、第2撹拌情報生成部132の動作例をより詳細に説明する。第2撹拌情報生成部132は、従来の圧縮関数演算装置19の備える第2撹拌情報生成部131と撹拌情報初期化手段の動作が異なる。撹拌情報初期化手段13002’は、入力された撹拌内部変数T(cv)を撹拌情報Xiに設定する(13002’)。以降の処理は、第1撹拌情報生成部130の処理と同様であるので説明は省略する。 With reference to FIG. 11, the operation example of the 2nd stirring information generation part 132 is demonstrated in detail. The second stirring information generation unit 132 is different from the second stirring information generation unit 131 included in the conventional compression function calculation device 19 in the operation of the stirring information initialization unit. The stirring information initialization unit 13002 ′ sets the input stirring internal variable T (cv) to the stirring information X i (13002 ′). Subsequent processing is the same as the processing of the first agitation information generation unit 130, and a description thereof will be omitted.

<効果>
第1の実施形態に係る圧縮関数演算装置10は、内部変数撹拌部120を備えることにより、入力された内部変数cvから撹拌内部変数T(cv)を生成する。そして、第1撹拌情報生成部130は、内部変数cvと拡大メッセージE(m)を入力として第1撹拌情報Xtを生成し、第2撹拌情報生成部132は、撹拌内部変数T(cv)と拡大メッセージE(m)を入力として第2撹拌情報X’tを生成する。このように構成することで、第1撹拌情報生成部130の1ラウンド目の処理における撹拌情報X0と第2撹拌情報生成部131の1ラウンド目の処理における撹拌情報X’0が異なるものとなる。そのため、第1撹拌情報生成部130と第2撹拌情報生成部132における分割情報X0A、および分割情報X0Bを入力として非線形関数NLの出力する分割情報NL(X0B)は等しくなることがない。したがって、第1撹拌情報生成部130と第2撹拌情報生成部132の処理とで、内部変数cvとメッセージmに依存しない相関がなくなる。
<Effect>
The compression function computing device 10 according to the first embodiment includes the internal variable stirring unit 120, thereby generating a stirring internal variable T (cv) from the input internal variable cv. The first stirring information generation unit 130 receives the internal variable cv and the enlarged message E (m) as input, and generates the first stirring information Xt . The second stirring information generation unit 132 sets the stirring internal variable T (cv). And the enlarged message E (m) are input, and the second stirring information X ′ t is generated. With this configuration, the agitation information X 0 in the first round process of the first agitation information generation unit 130 is different from the agitation information X ′ 0 in the first round process of the second agitation information generation unit 131. Become. Therefore, the division information X 0A and the division information X 0B in the first agitation information generation unit 130 and the second agitation information generation unit 132 are not input and the division information NL (X 0B ) output by the nonlinear function NL is not equal. . Accordingly, the processing of the first stirring information generation unit 130 and the second stirring information generation unit 132 eliminates the correlation independent of the internal variable cv and the message m.

第1撹拌情報生成部130と第2撹拌情報生成部132の違いは、以下の式で表すことができる。このように内部変数cvとメッセージmに依存しない相関が消えていることが確認できる。   The difference between the first stirring information generation unit 130 and the second stirring information generation unit 132 can be expressed by the following equation. Thus, it can be confirmed that the correlation independent of the internal variable cv and the message m disappears.

Figure 0005791562
Figure 0005791562

このように、この発明の圧縮関数演算装置10は、2つのデータ撹拌関数Dの演算の間で内部変数cvとメッセージmに依存しない相関がなく、RIPEMD型二重構造を用いた圧縮関数の安全性を向上することができる。また、内部変数撹拌部120が内部変数cvから撹拌内部変数T(cv)を生成する演算は負荷の軽い演算で実装できるため、圧縮関数全体での計算コストに与える影響が小さい。したがって、圧縮関数演算装置10は、従来の圧縮関数演算装置19と比較して、計算コストを維持しながら、安全性を向上することができる。   Thus, the compression function calculation device 10 of the present invention has no correlation between the calculation of the two data agitation functions D and does not depend on the internal variable cv and the message m, and the safety of the compression function using the RIPEMD type double structure. Can be improved. In addition, since the calculation that the internal variable stirring unit 120 generates the stirring internal variable T (cv) from the internal variable cv can be implemented with a light load calculation, the influence on the calculation cost of the entire compression function is small. Therefore, the compression function calculation device 10 can improve safety while maintaining the calculation cost as compared with the conventional compression function calculation device 19.

[プログラム、記録媒体]
この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。上記実施例において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
また、上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
[Program, recording medium]
The present invention is not limited to the above-described embodiment, and it goes without saying that modifications can be made as appropriate without departing from the spirit of the present invention. The various processes described in the above-described embodiments are not only executed in time series according to the order described, but may be executed in parallel or individually as required by the processing capability of the apparatus that executes the processes.
When various processing functions in each device described in the above embodiment are realized by a computer, the processing contents of the functions that each device should have are described by a program. Then, by executing this program on a computer, various processing functions in each of the above devices are realized on the computer.

この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
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.
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 own 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).
In this embodiment, the present apparatus is configured by executing a predetermined program on a computer. However, at least a part of these processing contents may be realized by hardware.

10,19 圧縮関数演算装置
110 拡大メッセージ生成部
120 内部変数撹拌部
130 第1撹拌情報生成部
131,132 第2撹拌情報生成部
140 出力値生成部
190 第1ラウンド定数記憶部
191 第2ラウンド定数記憶部
13001 カウンタ初期化手段
13002,13002’ 撹拌情報初期化手段
13003 撹拌情報分割手段
13004 メッセージ加算手段
13005 ラウンド定数加算手段
13006 非線形関数演算手段
13007 分割情報加算手段
13008 左巡回シフト手段
13009 分割情報結合手段
13010 カウンタ加算手段
13011 撹拌情報出力手段
10, 19 Compression function arithmetic unit 110 Enlarged message generation unit 120 Internal variable stirring unit 130 First stirring information generation unit 131, 132 Second stirring information generation unit 140 Output value generation unit 190 First round constant storage unit 191 Second round constant Storage unit 13001 Counter initialization means 13002, 13002 'Agitation information initialization means 13003 Agitation information division means 13004 Message addition means 13005 Round constant addition means 13006 Nonlinear function calculation means 13007 Division information addition means 13008 Left cyclic shift means 13009 Division information combination means 13010 Counter addition means 13011 Agitation information output means

Claims (7)

k,b,n,rは正の整数であり、k>b>n>rであるとして、
nビットの内部変数cvを入力として、前記内部変数cvの上位n/2ビットと下位n/2ビットを入れ替えることで、nビットの撹拌内部変数T(cv)を生成する内部変数撹拌部と、
bビットのメッセージmを入力として、kビットの拡大メッセージE(m)を生成する拡大メッセージ生成部と、
前記内部変数cvと前記拡大メッセージE(m)を入力として、あらかじめ定めた第1ラウンド定数constを用いて、nビットの第1撹拌情報Xを出力する第1撹拌情報生成部と、
前記撹拌内部変数T(cv)と前記拡大メッセージE(m)を入力として、あらかじめ定めた第2ラウンド定数const’を用いて、nビットの第2撹拌情報X’を出力する第2撹拌情報生成部と、
前記内部変数cvと前記第1撹拌情報Xと前記第2撹拌情報X’とを入力として、nビットの出力値oを生成する出力値生成部と、
を備える圧縮関数演算装置。
k, b, n, r are positive integers, and k>b>n> r,
An internal variable agitation unit that generates an n-bit agitation internal variable T (cv) by replacing an upper n / 2 bit and a lower n / 2 bit of the internal variable cv with an n-bit internal variable cv as input,
An expanded message generator that generates a k-bit expanded message E (m) with a b-bit message m as input,
A first agitation information generating unit that outputs the n-bit first agitation information X using the internal variable cv and the expanded message E (m) as inputs and using a predetermined first round constant const;
Second agitation information generation that outputs n-bit second agitation information X ′ using the predetermined second round constant const ′, with the agitation internal variable T (cv) and the expanded message E (m) as inputs And
An output value generator for generating an n-bit output value o, using the internal variable cv, the first stirring information X, and the second stirring information X ′ as inputs;
A compression function computing device comprising:
k,b,n,rは正の整数であり、k>b>n>rであるとして、
nビットの内部変数cvを入力として、前記内部変数cvと少なくとも1つのビットに1が設定されたnビットのマスクとの排他的論理和を計算することにより、nビットの撹拌内部変数T(cv)を生成する内部変数撹拌部と、
bビットのメッセージmを入力として、kビットの拡大メッセージE(m)を生成する拡大メッセージ生成部と、
前記内部変数cvと前記拡大メッセージE(m)を入力として、あらかじめ定めた第1ラウンド定数constを用いて、nビットの第1撹拌情報Xを出力する第1撹拌情報生成部と、
前記撹拌内部変数T(cv)と前記拡大メッセージE(m)を入力として、あらかじめ定めた第2ラウンド定数const’を用いて、nビットの第2撹拌情報X’を出力する第2撹拌情報生成部と、
前記内部変数cvと前記第1撹拌情報Xと前記第2撹拌情報X’とを入力として、nビットの出力値oを生成する出力値生成部と、
を備える圧縮関数演算装置。
k, b, n, r are positive integers, and k>b>n> r,
By taking an n-bit internal variable cv as an input and calculating an exclusive OR of the internal variable cv and an n-bit mask in which at least one bit is set to 1, an n-bit agitation internal variable T (cv An internal variable stirring unit that generates
An expanded message generator that generates a k-bit expanded message E (m) with a b-bit message m as input,
A first agitation information generating unit that outputs the n-bit first agitation information X using the internal variable cv and the expanded message E (m) as inputs and using a predetermined first round constant const;
Second agitation information generation that outputs n-bit second agitation information X ′ using the predetermined second round constant const ′, with the agitation internal variable T (cv) and the expanded message E (m) as inputs And
An output value generator for generating an n-bit output value o, using the internal variable cv, the first stirring information X, and the second stirring information X ′ as inputs;
A compression function computing device comprising:
請求項に記載の圧縮関数演算装置であって、
前記内部変数cvは、少なくとも1つのビットに1が設定されたnビットのビット列であり、
前記内部変数撹拌部は、
前記内部変数cvと、前記内部変数cvの上位n/2ビットと下位n/2ビットを入れ替えたビット列との排他的論理和を計算することにより、前記撹拌内部変数T(cv)を生成する
ことを特徴とする圧縮関数演算装置。
The compression function calculation device according to claim 2 ,
The internal variable cv is an n-bit bit string in which 1 is set to at least one bit,
The internal variable stirring unit is
Generating the agitation internal variable T (cv) by calculating an exclusive OR of the internal variable cv and a bit string obtained by switching the upper n / 2 bits and the lower n / 2 bits of the internal variable cv. A compression function arithmetic device characterized by the above.
請求項に記載の圧縮関数演算装置であって、
前記内部変数撹拌部は、
前記内部変数cvとすべてのビットに1が設定されたnビットのマスクとの排他的論理和を計算することにより、前記撹拌内部変数T(cv)を生成する
ことを特徴とする圧縮関数演算装置。
The compression function calculation device according to claim 2 ,
The internal variable stirring unit is
A compression function computing device that generates the agitation internal variable T (cv) by calculating an exclusive OR of the internal variable cv and an n-bit mask in which all bits are set to 1. .
k,b,n,rは正の整数であり、k>b>n>rであるとして、
内部変数撹拌部が、nビットの内部変数cvを入力として、前記内部変数cvの上位n/2ビットと下位n/2ビットを入れ替えることで、nビットの撹拌内部変数T(cv)を生成する内部変数撹拌ステップと、
拡大メッセージ生成部が、bビットのメッセージmを入力として、kビットの拡大メッセージE(m)を生成する拡大メッセージ生成ステップと、
第1撹拌情報生成部が、前記内部変数cvと前記拡大メッセージE(m)を入力として、あらかじめ定めた第1ラウンド定数constを用いて、nビットの第1撹拌情報Xを出力する第1撹拌情報生成ステップと、
第2撹拌情報生成部が、前記撹拌内部変数T(cv)と前記拡大メッセージE(m)を入力として、あらかじめ定めた第2ラウンド定数const’を用いて、nビットの第2撹拌情報X’を出力する第2撹拌情報生成ステップと、
出力値生成部が、前記内部変数cvと前記第1撹拌情報Xと前記第2撹拌情報X’とを入力として、nビットの出力値oを生成する出力値生成ステップと、
を含む圧縮関数演算方法。
k, b, n, r are positive integers, and k>b>n> r,
The internal variable agitation unit receives the n-bit internal variable cv as input and generates an n-bit agitation internal variable T (cv) by switching the upper n / 2 bit and lower n / 2 bit of the internal variable cv. An internal variable agitation step;
An expanded message generation unit generates a k-bit expanded message E (m) using b-bit message m as an input, and
The first agitation information generation unit outputs the first agitation information X of n bits by using the internal variable cv and the expanded message E (m) as inputs and using a predetermined first round constant const. An information generation step;
The second agitation information generation unit receives the agitation internal variable T (cv) and the enlarged message E (m) as input, and uses a predetermined second round constant const ′, and uses n-bit second agitation information X ′. A second stirring information generating step for outputting
An output value generating step for generating an n-bit output value o by using the internal variable cv, the first stirring information X, and the second stirring information X ′ as inputs;
A compression function calculation method including
k,b,n,rは正の整数であり、k>b>n>rであるとして、
内部変数撹拌部が、nビットの内部変数cvを入力として、前記内部変数cvと少なくとも1つのビットに1が設定されたnビットのマスクとの排他的論理和を計算することにより、nビットの撹拌内部変数T(cv)を生成する内部変数撹拌ステップと、
拡大メッセージ生成部が、bビットのメッセージmを入力として、kビットの拡大メッセージE(m)を生成する拡大メッセージ生成ステップと、
第1撹拌情報生成部が、前記内部変数cvと前記拡大メッセージE(m)を入力として、あらかじめ定めた第1ラウンド定数constを用いて、nビットの第1撹拌情報Xを出力する第1撹拌情報生成ステップと、
第2撹拌情報生成部が、前記撹拌内部変数T(cv)と前記拡大メッセージE(m)を入力として、あらかじめ定めた第2ラウンド定数const’を用いて、nビットの第2撹拌情報X’を出力する第2撹拌情報生成ステップと、
出力値生成部が、前記内部変数cvと前記第1撹拌情報Xと前記第2撹拌情報X’とを入力として、nビットの出力値oを生成する出力値生成ステップと、
を含む圧縮関数演算方法。
k, b, n, r are positive integers, and k>b>n> r,
The internal variable agitation unit takes an n-bit internal variable cv as an input and calculates an exclusive OR of the internal variable cv and an n-bit mask with 1 set to at least one bit. An internal variable stirring step for generating an internal stirring variable T (cv);
An expanded message generation unit generates a k-bit expanded message E (m) using b-bit message m as an input, and
The first agitation information generation unit outputs the first agitation information X of n bits by using the internal variable cv and the expanded message E (m) as inputs and using a predetermined first round constant const. An information generation step;
The second agitation information generation unit receives the agitation internal variable T (cv) and the enlarged message E (m) as input, and uses a predetermined second round constant const ′, and uses n-bit second agitation information X ′. A second stirring information generating step for outputting
An output value generating step for generating an n-bit output value o by using the internal variable cv, the first stirring information X, and the second stirring information X ′ as inputs;
A compression function calculation method including
請求項1からのいずれかに記載の圧縮関数演算装置としてコンピュータを機能させるためのプログラム。 Program for causing a computer to function as a compression function calculation apparatus according to any one of claims 1 to 4.
JP2012108288A 2012-05-10 2012-05-10 COMPRESSION FUNCTION OPERATION DEVICE, COMPRESSION FUNCTION OPERATION METHOD, AND PROGRAM Expired - Fee Related JP5791562B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012108288A JP5791562B2 (en) 2012-05-10 2012-05-10 COMPRESSION FUNCTION OPERATION DEVICE, COMPRESSION FUNCTION OPERATION METHOD, AND PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012108288A JP5791562B2 (en) 2012-05-10 2012-05-10 COMPRESSION FUNCTION OPERATION DEVICE, COMPRESSION FUNCTION OPERATION METHOD, AND PROGRAM

Publications (2)

Publication Number Publication Date
JP2013235174A JP2013235174A (en) 2013-11-21
JP5791562B2 true JP5791562B2 (en) 2015-10-07

Family

ID=49761328

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012108288A Expired - Fee Related JP5791562B2 (en) 2012-05-10 2012-05-10 COMPRESSION FUNCTION OPERATION DEVICE, COMPRESSION FUNCTION OPERATION METHOD, AND PROGRAM

Country Status (1)

Country Link
JP (1) JP5791562B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10142103B2 (en) * 2015-12-07 2018-11-27 The Boeing Company Hardware assisted fast pseudorandom number generation

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998031122A1 (en) * 1997-01-08 1998-07-16 Bell Communications Research, Inc. A method and apparatus for generating secure hash functions

Also Published As

Publication number Publication date
JP2013235174A (en) 2013-11-21

Similar Documents

Publication Publication Date Title
EP3096309A1 (en) Secure computation method, secure computation system, sorting device, and program
CN104919754B (en) Tampering detection apparatus, altering detecting method and program
JP5929905B2 (en) Order-preserving encryption system, apparatus, method, and program
US10805090B1 (en) Address whitelisting using public/private keys and ring signature
EP3127271B1 (en) Obfuscated performance of a predetermined function
WO2021124519A1 (en) Secure random number generating system, secure computing device, secure random number generating method, and program
JP5972181B2 (en) Tamper detection device, tamper detection method, and program
WO2019190411A1 (en) Method and system for generating a keccak message authentication code (kmac) based on white-box implementation
JP5791562B2 (en) COMPRESSION FUNCTION OPERATION DEVICE, COMPRESSION FUNCTION OPERATION METHOD, AND PROGRAM
CN111262707B (en) Digital signature method, verification method, device and storage medium
US9288041B2 (en) Apparatus and method for performing compression operation in hash algorithm
CN111585579B (en) Block cipher S-box quick implementation method and device based on Boolean function
JP6067596B2 (en) Pairing arithmetic device, multi-pairing arithmetic device, program
JP5354914B2 (en) Encryption processing device, decryption processing device, and program
JP3907976B2 (en) Arithmetic apparatus and arithmetic method using SPN structure in F function
Lu et al. White-box implementation of the KMAC message authentication code
CN113971015B (en) UIA2 computing circuit, data processing method, chip, electronic device and storage medium
CN111756538B (en) Method and device for realizing ECC scalar multiplier based on prime preprocessing
WO2023053458A1 (en) Hash value calculation device, hash value calculation method, and hash value calculation program
KR20090090881A (en) Method and apparatus of elliptic curve cryptography processing in sensor mote and recording medium using it
JP3881273B2 (en) ENCRYPTION KEY GENERATION DEVICE, ENCRYPTION KEY GENERATION PROGRAM, AND RECORDING MEDIUM CONTAINING THE PROGRAM
JP6876423B2 (en) Internal state initializer, method and program in stream cipher
JP2021081592A (en) Safety evaluation device, safety evaluation method, and safety evaluation program
KR20240073510A (en) Method for calculating using an one-way function effienct in a zero knowledge proof, and apparatus implementing the same method
JP5421861B2 (en) Hash function security evaluation apparatus, method and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140826

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150512

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150619

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150804

R150 Certificate of patent or registration of utility model

Ref document number: 5791562

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees