JP5791562B2 - COMPRESSION FUNCTION OPERATION DEVICE, COMPRESSION FUNCTION OPERATION METHOD, AND PROGRAM - Google Patents
COMPRESSION FUNCTION OPERATION DEVICE, COMPRESSION FUNCTION OPERATION METHOD, AND PROGRAM Download PDFInfo
- 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
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
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
この発明はこのような点に鑑みてなされたものであり、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.
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。実施形態の説明に先立って、従来の圧縮関数演算装置の課題について詳細に説明する。
[圧縮関数の説明]
図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.
一般的に、ラウンド関数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.
二重構造を用いた圧縮関数では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
図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
図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
拡大メッセージ生成部110は、bビットのメッセージmを入力として、メッセージ拡大関数Eを実行することにより、kビットの拡大メッセージE(m)を生成する(S110)。メッセージ拡大関数Eは、入力されたビット列をパディングして拡大したkビットのビット列を出力する。メッセージ拡大関数Eの具体的な処理内容は、周知のRIPEMD型二重構造を用いる圧縮関数で用いられるメッセージ拡大関数と同様である。処理の詳細は、非特許文献1や非特許文献2を参照されたい。
The expanded
第1撹拌情報生成部130は、nビットの内部変数cvとkビットの拡大メッセージE(m)を入力として、第1ラウンド定数記憶部190に記憶されている第1ラウンド定数constiを用いてデータ撹拌関数Dを実行することにより、nビットの撹拌情報Xtを出力する(S130)。第1撹拌情報生成部130の処理の詳細は後述する。
The first agitation
第2撹拌情報生成部131は、nビットの内部変数cvとkビットの拡大メッセージE(m)を入力として、第2ラウンド定数記憶部191に記憶されている第2ラウンド定数const’iを用いてデータ撹拌関数Dを実行することにより、nビットの撹拌情報X’tを出力する(S130)。第2撹拌情報生成部131の処理の詳細は後述する。
The second agitation
出力値生成部140は、nビットの内部変数cvとnビットの撹拌情報Xとnビットの撹拌情報X’tを入力として、出力関数Oを実行することにより、nビットの出力値oを出力する(S140)。出力関数Oの具体的な処理内容は、周知のRIPEMD型二重構造を用いる圧縮関数で用いられる出力関数と同様である。処理の詳細は、非特許文献1や非特許文献2を参照されたい。
The output
図7を参照して、第1撹拌情報生成部130の動作例を実際に行われる手続きの順に従って詳細に説明する。なお、第1撹拌情報生成部130と第2撹拌情報生成部131とはデータ撹拌関数Dを実行する際に用いるラウンド定数が異なる以外は相違点がないため、第2撹拌情報生成部131の動作例についての説明は省略する。
With reference to FIG. 7, the operation example of the 1st stirring
図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.
カウンタ初期化手段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
<課題>
上記を踏まえて、従来の圧縮関数演算装置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
ただし、
は、算術加算を表す。
However,
Represents an arithmetic addition.
したがって、第1撹拌情報生成部130と第2撹拌情報生成部131の違いは、以下の式で表すことができる。
Therefore, the difference between the first stirring
ただし、
は、算術減算を表す。
However,
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
[第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
<構成>
図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
図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
図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
より具体的には、操作関数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
また、操作関数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
図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
<効果>
第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
第1撹拌情報生成部130と第2撹拌情報生成部132の違いは、以下の式で表すことができる。このように内部変数cvとメッセージmに依存しない相関が消えていることが確認できる。
The difference between the first stirring
このように、この発明の圧縮関数演算装置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
[プログラム、記録媒体]
この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。上記実施例において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
また、上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
[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
Claims (7)
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:
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. .
内部変数撹拌部が、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
内部変数撹拌部が、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
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)
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)
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 |
-
2012
- 2012-05-10 JP JP2012108288A patent/JP5791562B2/en not_active Expired - Fee Related
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 |