JP2010256749A - Device and method for generating hash value, and program - Google Patents

Device and method for generating hash value, and program Download PDF

Info

Publication number
JP2010256749A
JP2010256749A JP2009108828A JP2009108828A JP2010256749A JP 2010256749 A JP2010256749 A JP 2010256749A JP 2009108828 A JP2009108828 A JP 2009108828A JP 2009108828 A JP2009108828 A JP 2009108828A JP 2010256749 A JP2010256749 A JP 2010256749A
Authority
JP
Japan
Prior art keywords
message
input
hash value
encryption
output
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.)
Pending
Application number
JP2009108828A
Other languages
Japanese (ja)
Inventor
Aritaka Nakano
有登 仲野
Atsushi Kurihara
淳 栗原
Shinsaku Kiyomoto
晋作 清本
Toshiaki Tanaka
俊昭 田中
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.)
KDDI Corp
Original Assignee
KDDI 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 KDDI Corp filed Critical KDDI Corp
Priority to JP2009108828A priority Critical patent/JP2010256749A/en
Publication of JP2010256749A publication Critical patent/JP2010256749A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To divide an input message into a plurality of message blocks, and to dynamically change the feedback and feedforward, when the hash value of a prior round is fed back and when the message block is fed forward. <P>SOLUTION: A message-dividing means divides the input message into a plurality of message blocks, and an input means inputs the input message block thus divided and hash values obtained in the prior round. Moreover, an encryption means encrypts the input message to generate a hash value, and an output means outputs the hash value thus generated. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、ハッシュ値生成装置、ハッシュ値生成方法およびプログラムに関する。   The present invention relates to a hash value generation device, a hash value generation method, and a program.

近年、情報セキュリティの重要性が高まるにつれ、ICカードやRFIDタグ等でも利用可能な安全な暗号学的ハッシュ関数が重要となっている。現在、最もよく使われているハッシュ関数としてMD5(例えば、非特許文献1参照。)やSHA−1(例えば、非特許文献2参照。)がある。   In recent years, as the importance of information security increases, safe cryptographic hash functions that can be used in IC cards, RFID tags, and the like have become important. Currently, there are MD5 (for example, see Non-Patent Document 1) and SHA-1 (for example, Non-Patent Document 2) as hash functions that are most often used.

しかし、MD5は安全性に問題があることが指摘されている。また、SHA−1はMD5に比べて安全であるものの、演算量が大きく、RFIDタグやICカード等の処理能力の低い機器では処理に時間がかかるという問題がある。   However, it has been pointed out that MD5 has a safety problem. In addition, although SHA-1 is safer than MD5, there is a problem that the amount of calculation is large, and it takes time to process in a device with low processing capability such as an RFID tag or an IC card.

一方で、近年、CPUのマルチコアが一般的になってきている。ところが、現在、複数コアを同時に利用することで高速化を可能とするようなハッシュ関数はほとんど提案されていない。   On the other hand, in recent years, CPU multi-core has become common. However, there are currently few proposals for hash functions that can increase the speed by simultaneously using multiple cores.

ところで、RFIDタグ等でも高速に処理が可能な手法として特許文献1に示されるようにストリーム暗号を基にしたハッシュ関数が知られている。さらに、特許文献1の方法では、メッセージをMNビット、ハッシュ値をMNビットとした時、Nビットのハッシュ値を生成するハッシュ関数をM個並列に接続することで処理回数を約1/Mに削減した手法が提案されている。この手法では前ブロックのハッシュ値をフィードバックする手法と前ブロックのハッシュ値をフィードフォワードする手法が提案されている。   Incidentally, a hash function based on a stream cipher is known as a technique capable of high-speed processing even with an RFID tag or the like, as shown in Patent Document 1. Furthermore, in the method of Patent Document 1, when the message is MN bits and the hash value is MN bits, the number of processes is reduced to about 1 / M by connecting M hash functions that generate N-bit hash values in parallel. A reduced approach has been proposed. In this method, a method of feeding back the hash value of the previous block and a method of feeding forward the hash value of the previous block are proposed.

特開2007−293147号公報JP 2007-293147 A

R.Rivest,“The MD5 Message Digest Algorithm,” RFC1321, 1992.R. Rivest, “The MD5 Message Digest Algorithm,” RFC 1321, 1992. NIST,“Secure Hash Standard,” FIPS180−1,1995.NIST, “Secure Hash Standard,” FIPS 180-1, 1995.

しかしながら、特許文献1に示される手法では、フィードフォワードとフィードバックする先が予め固定されており、ハッシュ値の計算途中で変更することはできない。つまり、フィードフォワードとフィードバックする先を能動的に変化させる場合に比べて、攪拌効率が低くなるという問題がある。   However, in the method disclosed in Patent Document 1, the feed-forward and the feedback destination are fixed in advance, and cannot be changed during the calculation of the hash value. That is, there is a problem that the stirring efficiency is lower than in the case where the feed-forward and the feedback destination are actively changed.

そこで、本発明は、上述の課題に鑑みてなされたものであり、入力メッセージを複数のメッセージブロックに分割するとともに、前のラウンドのハッシュ値をフィードバックする際とメッセージブロックをフィードフォワードする場合に、フィードバックとフィードフォワードを動的に変化させるハッシュ値生成装置、ハッシュ値生成方法およびプログラムを提供することを目的とする。   Therefore, the present invention has been made in view of the above-described problems, and divides an input message into a plurality of message blocks, and feeds back a hash value of the previous round and feeds forward a message block. An object of the present invention is to provide a hash value generation device, a hash value generation method, and a program that dynamically change feedback and feedforward.

本発明は、上記の課題を解決するために、以下の事項を提案している。   The present invention proposes the following matters in order to solve the above problems.

(1)本発明は、入力メッセージを複数のメッセージブロックに分割するメッセージ分割手段(例えば、図1のメッセージ分割部2に相当)と、該分割された入力メッセージブロックと前ラウンドで得られたハッシュ値とを入力する入力手段(例えば、図1のメッセージ入力部3a、3bに相当)と、該入力したメッセージを暗号化して、ハッシュ値を生成する暗号化手段(例えば、図1の暗号化部6a、6bに相当)と、該ハッシュ値を出力する出力手段と、を備えることを特徴とするハッシュ値生成装を提案している。   (1) The present invention provides message dividing means for dividing an input message into a plurality of message blocks (for example, corresponding to the message dividing unit 2 in FIG. 1), the divided input message blocks, and the hash obtained in the previous round. Input means (for example, corresponding to the message input units 3a and 3b in FIG. 1) and encryption means for encrypting the input message and generating a hash value (for example, the encryption unit in FIG. 1) 6a and 6b) and an output means for outputting the hash value, a hash value generator is proposed.

この発明によれば、メッセージ分割手段は、入力メッセージを複数のメッセージブロックに分割する。入力手段は、その分割された入力メッセージブロックと前ラウンドで得られたハッシュ値とを入力する。暗号化手段は、その入力したメッセージを暗号化して、ハッシュ値を生成する。そして、出力手段は、そのハッシュ値を出力する。したがって、入力メッセージを複数のメッセージブロックに分割することにより、使用メモリの削減が可能になりRFIDタグ等においても高速に処理が可能となる。   According to this invention, the message dividing means divides the input message into a plurality of message blocks. The input means inputs the divided input message block and the hash value obtained in the previous round. The encryption means encrypts the input message and generates a hash value. Then, the output means outputs the hash value. Therefore, by dividing the input message into a plurality of message blocks, it is possible to reduce the memory used, and the RFID tag or the like can be processed at high speed.

(2)本発明は、(1)のハッシュ値生成装置について、前記暗号化手段の出力に演算手段を有し、前記入力手段と暗号化手段と演算手段とがn(nは、2以上の整数)段並列になって構成され、前記暗号化手段が出力する前記ハッシュ値を入力し、該ハッシュ値を前記入力手段に戻すフィードバック手段(例えば、図1のフィードバック部5に相当)と、前記入力手段からの出力されるメッセージを入力し、該メッセージを前記演算手段に出力するフィードフォワード手段(例えば、図1のフィードフォワード部4に相当)と、を備えたことを特徴とするハッシュ値生成装置を提案している。   (2) The present invention relates to the hash value generation device of (1), wherein the output of the encryption means has a calculation means, and the input means, the encryption means, and the calculation means are n (n is 2 or more). (Integer) stages in parallel, the hash value output from the encryption means is input, and feedback means (for example, equivalent to the feedback unit 5 in FIG. 1) for returning the hash value to the input means; Hash value generation characterized by comprising feedforward means (for example, equivalent to the feedforward unit 4 in FIG. 1) that inputs a message output from the input means and outputs the message to the computing means A device is proposed.

この発明によれば、暗号化手段の出力に演算手段を有し、入力手段と暗号化手段と演算手段とがn(nは、2以上の整数)段並列になって構成されている。また、フィードバック手段は、暗号化手段が出力するハッシュ値を入力し、そのハッシュ値を入力手段に戻し、フィードフォワード手段は、入力手段からの出力されるメッセージを入力し、そのメッセージを演算手段に出力する。したがって、n段の並列構成により、並列して処理を行うことができるため、高速に処理が可能となる。   According to the present invention, the output of the encryption means is provided with a calculation means, and the input means, the encryption means, and the calculation means are configured in n (n is an integer of 2 or more) stages in parallel. The feedback means inputs the hash value output from the encryption means, returns the hash value to the input means, the feedforward means inputs the message output from the input means, and the message is input to the arithmetic means. Output. Therefore, since the processing can be performed in parallel with the n-stage parallel configuration, the processing can be performed at high speed.

(3)本発明は、(1)または(2)のハッシュ値生成装置について、入力メッセージが前記並列段数と前記暗号化手段の出力ビット長の整数倍になるように、パディング処理を行う前処理手段(例えば、図1の前処理部1に相当)を前記メッセージ分割手段の入力側に備えたことを特徴とするハッシュ値生成装置を提案している。   (3) The present invention provides preprocessing for performing padding processing on the hash value generation device of (1) or (2) so that the input message is an integral multiple of the number of parallel stages and the output bit length of the encryption means A hash value generating apparatus is proposed, characterized in that means (for example, equivalent to the preprocessing unit 1 in FIG. 1) is provided on the input side of the message dividing means.

この発明によれば、前処理手段は、入力メッセージが前記並列段数と前記暗号化手段の出力ビット長の整数倍になるように、パディング処理を行う。したがって、適正なビット長を持ったメッセージを分割して処理することができる。   According to this invention, the preprocessing means performs the padding process so that the input message is an integral multiple of the number of parallel stages and the output bit length of the encryption means. Therefore, a message having an appropriate bit length can be divided and processed.

(4)本発明は、(2)のハッシュ値生成装置について、前記フィードバック手段は、入力したハッシュ値をどの入力手段に戻すかを能動的に決定するとともに、前記フィードフォワード手段は、入力したメッセージをどの演算手段(例えば、図1の演算部7a、7bに相当)に出力するのかを能動的に決定することを特徴とするハッシュ値生成装置を提案している。   (4) In the hash value generation device according to (2), the feedback unit actively determines to which input unit the input hash value is to be returned, and the feedforward unit receives the input message. Has been proposed to determine which computing means (for example, equivalent to the computing units 7a and 7b in FIG. 1) is to be output.

この発明によれば、フィードバック手段は、入力したハッシュ値をどの入力手段に戻すかを能動的に決定する。また、フィードフォワード手段は、入力したメッセージをどの演算手段に出力するのかを能動的に決定する。したがって、フィードバック先あるいはフィードフォワード先が予め固定されている場合に比べて、さらに、攪拌効率を向上させることができる。   According to this invention, the feedback means actively determines to which input means the input hash value is to be returned. The feedforward means actively determines to which computing means the inputted message is output. Therefore, the stirring efficiency can be further improved as compared with the case where the feedback destination or the feedforward destination is fixed in advance.

(5)本発明は、(1)のハッシュ値生成装置について、前記暗号化手段が、ストリーム暗号によりハッシュ値を生成することを特徴とするハッシュ値生成装置を提案している。   (5) The present invention proposes a hash value generation device characterized in that the encryption means generates a hash value by stream ciphering for the hash value generation device of (1).

この発明によれば、暗号化手段は、ストリーム暗号によりハッシュ値を生成する。したがって、暗号化手段としてストリーム暗号を用いたことから、従来に比べて、処理速度の向上を図ることができる。なお、ここで、ストリーム暗号は、特定のストリーム暗号である必要はない。   According to the present invention, the encryption means generates a hash value by stream encryption. Therefore, since the stream cipher is used as the encryption means, the processing speed can be improved as compared with the conventional case. Here, the stream cipher need not be a specific stream cipher.

(6)本発明は、(1)のハッシュ値生成装置について、前記暗号化手段が、ブロック暗号によりハッシュ値を生成することを特徴とするハッシュ値生成装置を提案している。   (6) The present invention proposes a hash value generation device in which the encryption unit generates a hash value by block cipher with respect to the hash value generation device of (1).

この発明によれば、暗号化手段が、ブロック暗号によりハッシュ値を生成する。したがって、暗号化手段としてブロック暗号を用いたことから、ストリーム暗号に比べて、鍵のサイズを減らすことができる。なお、ここで、ブロック暗号は、特定のブロック暗号である必要はない。   According to the present invention, the encryption means generates a hash value by block cipher. Therefore, since the block cipher is used as the encryption means, the key size can be reduced as compared with the stream cipher. Here, the block cipher need not be a specific block cipher.

(7)本発明は、(2)のハッシュ値生成装置について、前記演算手段が排他的論理和演算器であることを特徴とするハッシュ値生成装置を提案している。   (7) The present invention proposes a hash value generation device according to (2), wherein the calculation means is an exclusive OR calculator.

この発明によれば、演算手段が排他的論理和演算器である。したがって、簡易な演算でラウンドごとのハッシュ値を結合させることができる。   According to this invention, the computing means is an exclusive OR calculator. Therefore, the hash values for each round can be combined with a simple calculation.

(8)本発明は、入力メッセージが並列段数と暗号化手段の出力ビット長の整数倍となるようにパディングを行う第1のステップ(例えば、図3のステップS101に相当)と、メッセージ分割手段が入力メッセージを複数のメッセージブロックに分割する第2のステップ(例えば、図3のステップS102に相当)と、メッセージ入力手段が分割されたメッセージブロックと前ラウンドのハッシュ値をそれぞれ暗号化手段に出力する第3のステップ(例えば、図3のステップS103に相当)と、該入力されたメッセージブロックと前ブロックのハッシュ値とを暗号化して、ハッシュ値を生成する第4のステップ(例えば、図3のステップS104に相当)と、フィードバック手段が、該得られたハッシュ値を入力し、フィードバック先のメッセージ入力手段を決定して、出力する第5のステップ(例えば、図3のステップS105に相当)と、フィードフォワード手段が入力メッセージのフィードフォワード先の演算手段を決定して、出力する第6のステップ(例えば、図3のステップS106に相当)と、入力メッセージがまだあるか否かを確認する第7のステップと(例えば、図3のステップS107に相当)、入力メッセージがまだある場合に、入力メッセージがなくなるまで、上記第3のステップから第6のステップまでを繰り返す第8のステップと、すべてのメッセージの処理が終了したときに、出力手段からハッシュ値を出力する第9のステップ(例えば、図3のステップS108に相当)と、該得られた複数のハッシュ値を演算手段によって結合する第10のステップ(例えば、図3のステップS109に相当)と、を備えたことを特徴とするハッシュ値生成方法を提案している。   (8) The present invention includes a first step (for example, corresponding to step S101 in FIG. 3) and a message dividing unit that performs padding so that the input message is an integral multiple of the number of parallel stages and the output bit length of the encryption unit. Divides the input message into a plurality of message blocks (for example, corresponding to step S102 in FIG. 3), and the message input means outputs the divided message block and the hash value of the previous round to the encryption means, respectively. And a fourth step (for example, FIG. 3) that encrypts the inputted message block and the hash value of the previous block to generate a hash value. And the feedback means inputs the obtained hash value, and the feedback destination A fifth step of determining and outputting a message input means (e.g., corresponding to step S105 in FIG. 3), and a sixth step of determining and outputting the calculation means of the feedforward destination of the input message by the feedforward means Step (for example, equivalent to step S106 in FIG. 3), a seventh step for confirming whether there is still an input message (for example, equivalent to step S107 in FIG. 3), and when there is still an input message, An eighth step that repeats the third to sixth steps until there are no more input messages, and a ninth step that outputs a hash value from the output means when all messages have been processed (for example, , Corresponding to step S108 in FIG. 3) and a tenth step of combining the obtained plurality of hash values by an arithmetic means. -Up (e.g., corresponding to step S109 in FIG. 3) proposes a hash value generation method characterized by comprising a, a.

この発明によれば、入力メッセージが並列段数と暗号化手段の出力ビット長の整数倍となるようにパディングを行い、メッセージ分割手段が入力メッセージを複数のメッセージブロックに分割する。メッセージ入力手段は、分割されたメッセージブロックと前ラウンドのハッシュ値をそれぞれ暗号化手段に出力し、暗号化手段は、その入力されたメッセージブロックと前ブロックのハッシュ値とを暗号化して、ハッシュ値を生成する。フィードバック手段は、その得られたハッシュ値を入力し、フィードバック先のメッセージ入力手段を決定して、出力し、フィードフォワード手段は、入力メッセージのフィードフォワード先の演算手段を決定して、出力する。次に、入力メッセージがまだあるか否かを確認し、入力メッセージがまだある場合に、入力メッセージがなくなるまで、上記の処理を繰り返す。そして、すべてのメッセージの処理が終了したときに、出力手段からハッシュ値を出力し、その得られた複数のハッシュ値を演算手段によって結合する。したがって、入力メッセージを複数のメッセージブロックに分割することにより、使用メモリの削減が可能になりRFIDタグ等においても高速に処理が可能となる。また、n段の並列構成により、並列して処理を行うことができるため、高速に処理が可能となる。さらに、フィードバック手段およびフィードフォワード手段が、フィードバック先およびフィードフォワード先を能動的に決定するため、フィードバック先あるいはフィードフォワード先が予め固定されている場合に比べて、さらに、攪拌効率を向上させることができる。   According to the present invention, padding is performed so that the input message is an integral multiple of the number of parallel stages and the output bit length of the encryption means, and the message dividing means divides the input message into a plurality of message blocks. The message input means outputs the divided message block and the hash value of the previous round to the encryption means, respectively, and the encryption means encrypts the input message block and the hash value of the previous block to obtain the hash value Is generated. The feedback means inputs the obtained hash value, determines and outputs a feedback message input means, and the feedforward means determines and outputs a feedforward destination calculation means of the input message. Next, it is confirmed whether or not there is an input message. If there are still input messages, the above processing is repeated until there are no more input messages. When processing of all messages is completed, the hash value is output from the output unit, and the obtained plurality of hash values are combined by the calculation unit. Therefore, by dividing the input message into a plurality of message blocks, it is possible to reduce the memory used, and the RFID tag or the like can be processed at high speed. In addition, the n-stage parallel configuration allows processing to be performed in parallel, thus enabling high-speed processing. Furthermore, since the feedback means and the feedforward means actively determine the feedback destination and the feedforward destination, the stirring efficiency can be further improved as compared with the case where the feedback destination or the feedforward destination is fixed in advance. it can.

(9)本発明は、コンピュータに、入力メッセージが並列段数と暗号化手段の出力ビット長の整数倍となるようにパディングを行う第1のステップ(例えば、図3のステップS101に相当)と、メッセージ分割手段が入力メッセージを複数のメッセージブロックに分割する第2のステップ(例えば、図3のステップS102に相当)と、メッセージ入力手段が分割されたメッセージブロックと前ラウンドのハッシュ値をそれぞれ暗号化手段に出力する第3のステップ(例えば、図3のステップS103に相当)と、該入力されたメッセージブロックと前ブロックのハッシュ値とを暗号化して、ハッシュ値を生成する第4のステップ(例えば、図3のステップS104に相当)と、フィードバック手段が、該得られたハッシュ値を入力し、フィードバック先のメッセージ入力手段を決定して、出力する第5のステップ(例えば、図3のステップS105に相当)と、フィードフォワード手段が入力メッセージのフィードフォワード先の演算手段を決定して、出力する第6のステップ(例えば、図3のステップS106に相当)と、入力メッセージがまだあるか否かを確認する第7のステップと(例えば、図3のステップS107に相当)、入力メッセージがまだある場合に、入力メッセージがなくなるまで、上記第3のステップから第6のステップまでを繰り返す第8のステップと、すべてのメッセージの処理が終了したときに、出力手段からハッシュ値を出力する第9のステップ(例えば、図3のステップS108に相当)と、該得られた複数のハッシュ値を演算手段によって結合する第10のステップ(例えば、図3のステップS109に相当)と、を実行させるためのプログラムを提案している。   (9) The present invention provides a computer with a first step (for example, corresponding to step S101 in FIG. 3) of padding so that the input message is an integral multiple of the number of parallel stages and the output bit length of the encryption means; A second step (for example, corresponding to step S102 in FIG. 3) in which the message dividing unit divides the input message into a plurality of message blocks, and the message block into which the message input unit is divided and the hash value of the previous round are encrypted. A fourth step (for example, corresponding to step S103 in FIG. 3) to be output to the means and a hash value are generated by encrypting the inputted message block and the hash value of the previous block (for example, , Corresponding to step S104 in FIG. 3), the feedback means inputs the obtained hash value, and The fifth step of determining and outputting the message input means of the feedback destination (for example, corresponding to step S105 in FIG. 3) and the feed forward means determine the calculation means of the feed forward destination of the input message and output it. A sixth step (for example, corresponding to step S106 in FIG. 3), a seventh step for confirming whether there is still an input message (for example, corresponding to step S107 in FIG. 3), and an input message still exist In this case, an eighth step that repeats the third step to the sixth step until there are no more input messages, and a ninth value that outputs a hash value from the output means when processing of all messages is completed. Steps (e.g., corresponding to step S108 in FIG. 3) and the obtained plurality of hash values are combined by an arithmetic means. Tenth step of (e.g., corresponding to step S109 in FIG. 3) proposes a program for executing a, a.

この発明によれば、入力メッセージが並列段数と暗号化手段の出力ビット長の整数倍となるようにパディングを行い、メッセージ分割手段が入力メッセージを複数のメッセージブロックに分割する。メッセージ入力手段は、分割されたメッセージブロックと前ラウンドのハッシュ値をそれぞれ暗号化手段に出力し、暗号化手段は、その入力されたメッセージブロックと前ブロックのハッシュ値とを暗号化して、ハッシュ値を生成する。フィードバック手段は、その得られたハッシュ値を入力し、フィードバック先のメッセージ入力手段を決定して、出力し、フィードフォワード手段は、入力メッセージのフィードフォワード先の演算手段を決定して、出力する。次に、入力メッセージがまだあるか否かを確認し、入力メッセージがまだある場合に、入力メッセージがなくなるまで、上記の処理を繰り返す。そして、すべてのメッセージの処理が終了したときに、出力手段からハッシュ値を出力し、その得られた複数のハッシュ値を演算手段によって結合する。したがって、入力メッセージを複数のメッセージブロックに分割することにより、使用メモリの削減が可能になりRFIDタグ等においても高速に処理が可能となる。また、n段の並列構成により、並列して処理を行うことができるため、高速に処理が可能となる。さらに、フィードバック手段およびフィードフォワード手段が、フィードバック先およびフィードフォワード先を能動的に決定するため、フィードバック先あるいはフィードフォワード先が予め固定されている場合に比べて、より攪拌効率を向上させることができる。   According to the present invention, padding is performed so that the input message is an integral multiple of the number of parallel stages and the output bit length of the encryption means, and the message dividing means divides the input message into a plurality of message blocks. The message input means outputs the divided message block and the hash value of the previous round to the encryption means, respectively, and the encryption means encrypts the input message block and the hash value of the previous block to obtain the hash value Is generated. The feedback means inputs the obtained hash value, determines and outputs a feedback message input means, and the feedforward means determines and outputs a feedforward destination calculation means of the input message. Next, it is confirmed whether or not there is an input message. If there are still input messages, the above processing is repeated until there are no more input messages. When processing of all messages is completed, the hash value is output from the output unit, and the obtained plurality of hash values are combined by the calculation unit. Therefore, by dividing the input message into a plurality of message blocks, it is possible to reduce the memory used, and the RFID tag or the like can be processed at high speed. In addition, the n-stage parallel configuration allows processing to be performed in parallel, thus enabling high-speed processing. Furthermore, since the feedback unit and the feedforward unit actively determine the feedback destination and the feedforward destination, the stirring efficiency can be further improved as compared with the case where the feedback destination or the feedforward destination is fixed in advance. .

本発明によれば、入力メッセージを複数のメッセージブロックに分割することにより、使用メモリの削減が可能になりRFIDタグ等においても高速に処理が可能となるという効果がある。   According to the present invention, by dividing an input message into a plurality of message blocks, it is possible to reduce the memory used, and it is possible to perform high-speed processing even in an RFID tag or the like.

また、n段の並列構成により、並列して処理を行うことができるため、高速に処理が可能となるという効果がある。   In addition, since the n-stage parallel configuration allows the processing to be performed in parallel, the processing can be performed at high speed.

さらに、フィードバック手段およびフィードフォワード手段が、フィードバック先およびフィードフォワード先を能動的に決定するため、フィードバック先あるいはフィードフォワード先が予め固定されている場合に比べて、より攪拌効率を向上させることができるという効果がある。   Furthermore, since the feedback unit and the feedforward unit actively determine the feedback destination and the feedforward destination, the stirring efficiency can be further improved as compared with the case where the feedback destination or the feedforward destination is fixed in advance. There is an effect.

第1の実施形態に係る構成図である。It is a lineblock diagram concerning a 1st embodiment. 第1の実施形態に係る暗号化部の構成を示す図である。It is a figure which shows the structure of the encryption part which concerns on 1st Embodiment. 第1の実施形態に係る処理フローである。It is a processing flow concerning a 1st embodiment. 第2の実施形態に係る暗号化部の構成を示す図である。It is a figure which shows the structure of the encryption part which concerns on 2nd Embodiment. 第2の実施形態に係る暗号化部の構成を示す図である。It is a figure which shows the structure of the encryption part which concerns on 2nd Embodiment. 応用例に係る構成図である。It is a block diagram concerning an application example. 従来例に係る構成図である。It is a block diagram concerning a prior art example.

以下、図面を用いて、本発明の実施形態について詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
Note that the constituent elements in the present embodiment can be appropriately replaced with existing constituent elements and the like, and various variations including combinations with other existing constituent elements are possible. Therefore, the description of the present embodiment does not limit the contents of the invention described in the claims.

<第1の実施形態>
図1から図3を用いて、本発明に係る第1の実施形態について説明する。
<First Embodiment>
A first embodiment according to the present invention will be described with reference to FIGS. 1 to 3.

<ハッシュ値生成装置の構成>
図1に示すように、本実施形態に係るハッシュ値生成装置は、前処理部1と、メッセージ分割部2と、メッセージ入力部3a、3bと、フィードフォワード部4と、フィードバック部5と、暗号化部6a、6bと、演算部7a、7bとから構成されている。つまり、図1に示すように、メッセージ入力部、暗号化部、演算部の構成が2段の並列接続となっている。
<Configuration of hash value generation device>
As shown in FIG. 1, the hash value generation device according to the present embodiment includes a preprocessing unit 1, a message division unit 2, message input units 3a and 3b, a feedforward unit 4, a feedback unit 5, and an encryption unit. It is comprised from the conversion parts 6a and 6b and the calculating parts 7a and 7b. That is, as shown in FIG. 1, the structure of the message input unit, the encryption unit, and the calculation unit is a two-stage parallel connection.

ここで、前処理部1は、入力メッセージが並列段数と暗号化部6a、6bの出力ビット長の整数倍になるように、パディング処理を行う。メッセージ分割部2は、入力メッセージを複数のメッセージブロックに分割する。   Here, the preprocessing unit 1 performs padding processing so that the input message is an integral multiple of the number of parallel stages and the output bit length of the encryption units 6a and 6b. The message dividing unit 2 divides the input message into a plurality of message blocks.

メッセージ入力部3a、3bは、メッセージ分割部2において分割されたメッセージを入力して、暗号化部6a、6bに出力する。暗号化部6a、6bは、入力したメッセージを暗号化して、ハッシュ値を生成する。なお、暗号化部6a、6bの構成の詳細については、後述する。演算部7a、7bは、暗号化部6a、6bから出力される複数のハッシュ値を結合する。なお、演算部7a、7bは、排他的論理和演算器で構成することが好ましいがこれに限るものではない。なお、排他的論理和演算器で構成した場合には、簡易な演算でラウンドごとのハッシュ値を結合させることができる。   The message input units 3a and 3b input the messages divided by the message dividing unit 2 and output them to the encryption units 6a and 6b. The encryption units 6a and 6b encrypt the input message and generate a hash value. The details of the configuration of the encryption units 6a and 6b will be described later. The calculation units 7a and 7b combine a plurality of hash values output from the encryption units 6a and 6b. The arithmetic units 7a and 7b are preferably composed of exclusive OR calculators, but are not limited thereto. In the case of an exclusive OR calculator, hash values for each round can be combined with a simple calculation.

フィードフォワード部4は、メッセージ入力部3a、3bからの出力されるメッセージを入力し、そのメッセージを演算部7a、7bにフィードフォワードする。フィードバック部5は、暗号化部6a、6bが出力するハッシュ値を入力し、そのハッシュ値をメッセージ入力部3a、3bにフィードバックする。なお、フィードフォワード部4およびフィードバック部5が、データをフィードフォワードあるいはフィードバックする箇所は、一定である必要はなく、フィードフォワード部4およびフィードバック部5が、ハッシュ値やメッセージのあるビットの値等により動的に決定する。これによって、攪拌効率を向上させることができる。   The feedforward unit 4 inputs a message output from the message input units 3a and 3b, and feeds the message to the arithmetic units 7a and 7b. The feedback unit 5 inputs the hash value output from the encryption units 6a and 6b, and feeds back the hash value to the message input units 3a and 3b. It should be noted that the feedforward unit 4 and the feedback unit 5 need not feed the data forward or feedback, and the feedforward unit 4 and the feedback unit 5 may use a hash value or a bit value of a message. Determine dynamically. Thereby, the stirring efficiency can be improved.

<暗号化部の構成>
本実施形態に係る暗号化部は、ストリーム暗号を用いたものであり、その構成は、例えば、図2に示すようになっている。具体的には、ストリーム暗号部10と、XOR11とからなり、ストリーム暗号部10には、メッセージデータ入力端子と前ラウンドのハッシュ値をメッセージ入力部3a、3bを介して、入力するハッシュ値入力端子を備えている。
<Configuration of encryption unit>
The encryption unit according to the present embodiment uses a stream cipher, and its configuration is, for example, as shown in FIG. Specifically, the stream cipher unit 10 and the XOR 11 include a hash value input terminal that inputs a message data input terminal and a previous round hash value via the message input units 3a and 3b. It has.

ストリーム暗号部10は、Nビットのメッセージデータと前ラウンドのハッシュ値とを入力し、ストリーム暗号による暗号化を実施する。なお、最初のラウンドでは、前ラウンドのハッシュ値が存在しないため、任意の初期ベクトルを使用する。   The stream encryption unit 10 inputs N-bit message data and the hash value of the previous round, and performs encryption by stream encryption. In the first round, since the hash value of the previous round does not exist, an arbitrary initial vector is used.

XOR11は、ストリーム暗号部10の出力データとメッセージデータ、前ラウンドのハッシュ値の排他的論理和を演算し、出力する。これにより、Nビットのハッシュ値が出力されることになる。   The XOR 11 calculates and outputs an exclusive OR of the output data of the stream cipher unit 10, the message data, and the hash value of the previous round. As a result, an N-bit hash value is output.

暗号化部の詳細な処理については、以下のようになる。なお、説明の前提として、メッセージ長をL、ストリーム暗号部の内部状態の長さをT、ハッシュ出力をNビットとする。   Detailed processing of the encryption unit is as follows. It is assumed that the message length is L, the length of the internal state of the stream cipher part is T, and the hash output is N bits.

ストリーム暗号部10の内部状態へハッシュ値を計算したいメッセージ長LのメッセージをM_iとして先頭から入力する。なお、入力されるメッセージは、前処理部1によりNビット単位とされている。   A message having a message length L whose hash value is to be calculated is input to the internal state of the stream cipher unit 10 as M_i from the top. Note that the input message is set in N-bit units by the preprocessing unit 1.

次に、初回のラウンドにおいては、前ラウンドのハッシュ値が存在しないため、例えば、1001・・・等の任意の初期ベクトルをH_i−1として入力する。ストリーム暗号部は、入力したM_iとH_i−1に基づいて、ストリーム暗号による暗号化を実施し、その結果を出力する。   Next, since the hash value of the previous round does not exist in the first round, an arbitrary initial vector such as 1001... Is input as H_i−1. Based on the input M_i and H_i−1, the stream cipher unit performs encryption by the stream cipher and outputs the result.

次に、ストリーム暗号部10の出力と入力メッセージM_i、任意の初期ベクトルH_i−1がXOR11に入力されると、これらの排他的論理和がとられハッシュ値H_iが出力される。そして、次のメッセージM_iと前ラウンドのハッシュ値H_i−1とが順次、ストリーム暗号部10に入力され、ハッシュ値H_iが出力される。   Next, when the output of the stream cipher unit 10, the input message M_i, and an arbitrary initial vector H_i-1 are input to the XOR 11, the exclusive OR of these is taken and the hash value H_i is output. Then, the next message M_i and the hash value H_i-1 of the previous round are sequentially input to the stream encryption unit 10, and the hash value H_i is output.

こうした処理を(L−T)/N回実行して、最終的なハッシュ値を得て、その値をメッセージのハッシュ値とする。なお、処理回数が(L−T)/N回に満たない場合には、例えば、101010・・・等の固定メッセージを入力して、空回しを行うことにより、十分な安全性を確保する。   Such a process is executed (L−T) / N times to obtain a final hash value, which is used as the hash value of the message. When the number of processing times is less than (L−T) / N times, for example, a fixed message such as 101010... Is input and idled to ensure sufficient safety.

<ハッシュ値生成装置の処理>
図3を用いて、本実施形態に係るハッシュ値生成装置の処理について、説明する。
<Processing of hash value generation device>
The process of the hash value generation device according to this embodiment will be described with reference to FIG.

まず、前処理として、入力メッセージが並列段数と暗号化部6a、6bの出力ビット長の整数倍となるようにパディングを行う(ステップS101)。メッセージ分割部2は、入力メッセージを複数のメッセージブロックに分割する(ステップS102)。   First, as preprocessing, padding is performed so that the input message is an integral multiple of the number of parallel stages and the output bit length of the encryption units 6a and 6b (step S101). The message dividing unit 2 divides the input message into a plurality of message blocks (step S102).

メッセージ入力部3a、3bは、分割されたメッセージブロックと前ラウンドのハッシュ値とをそれぞれ暗号化部6a、6bに出力する(ステップS103)。暗号化部6a、6bは、入力されたメッセージブロックと前ブロックのハッシュ値とを暗号化して、ハッシュ値を生成する(ステップS104)。   The message input units 3a and 3b output the divided message block and the hash value of the previous round to the encryption units 6a and 6b, respectively (step S103). The encryption units 6a and 6b encrypt the input message block and the hash value of the previous block to generate a hash value (step S104).

フィードバック部5は、その得られたハッシュ値を入力し、フィードバック先のメッセージ入力部3a、3bを決定して、出力する(ステップS105)。フィードフォワード部4は、入力メッセージのフィードフォワード先の演算部7a、7bを決定して、出力する(ステップS106)。   The feedback unit 5 inputs the obtained hash value, determines the feedback destination message input units 3a and 3b, and outputs them (step S105). The feedforward unit 4 determines and outputs the feedforward destination calculation units 7a and 7b of the input message (step S106).

次に、入力メッセージがまだあるか否かを確認し(ステップS107)、入力メッセージがまだある場合に(ステップS107の「Yes」)、入力メッセージがなくなるまで、ステップS103からステップS106までを繰り返す。すべてのメッセージの処理が終了したとき(ステップS107の「No」)は、ハッシュ値を出力し(ステップS108)、その得られた複数のハッシュ値を演算部7a、7bによって結合する(ステップS109)。   Next, it is confirmed whether or not there is an input message (step S107). If there is still an input message (“Yes” in step S107), steps S103 to S106 are repeated until there are no more input messages. When all the messages have been processed (“No” in step S107), a hash value is output (step S108), and the obtained plurality of hash values are combined by the arithmetic units 7a and 7b (step S109). .

したがって、本実施形態によれば、ストリーム暗号を用いたハッシュ値生成装置において、入力メッセージを複数のメッセージブロックに分割することにより、使用メモリの削減が可能になりRFIDタグ等においても高速に処理が可能となる。また、2段の並列構成により、並列して処理を行うことができるため、高速に処理が可能となる。さらに、フィードバック手段およびフィードフォワード手段が、フィードバック先およびフィードフォワード先を能動的に決定するため、フィードバック先あるいはフィードフォワード先が予め固定されている場合に比べて、より攪拌効率を向上させることができる。   Therefore, according to the present embodiment, in the hash value generation device using the stream cipher, it is possible to reduce the memory used by dividing the input message into a plurality of message blocks, and the RFID tag or the like can perform processing at high speed. It becomes possible. In addition, since the processing can be performed in parallel by the two-stage parallel configuration, processing can be performed at high speed. Furthermore, since the feedback unit and the feedforward unit actively determine the feedback destination and the feedforward destination, the stirring efficiency can be further improved as compared with the case where the feedback destination or the feedforward destination is fixed in advance. .

<第2の実施形態>
図4および図5を用いて、第2の実施形態について説明する。なお、第1の実施形態においては、暗号化部において、ストリーム暗号を用いる例について、説明したが、本実施形態においては、暗号化部において、ブロック暗号を用いる例について、説明する。また、暗号化部の以外の構成要素については、第1の実施形態と同様であるため、詳細な説明は、省略する。
<Second Embodiment>
The second embodiment will be described with reference to FIGS. 4 and 5. In the first embodiment, an example in which the stream cipher is used in the encryption unit has been described. However, in the present embodiment, an example in which a block cipher is used in the encryption unit will be described. The constituent elements other than the encryption unit are the same as those in the first embodiment, and thus detailed description thereof is omitted.

<暗号化部の構成>
図4および図5は、本実施形態に係る暗号化部の構成を示すブロック図である。図4は、ブロック暗号のデータランダム化部、図5は、鍵生成部の構成であって、所定長のビット列からなる入力ブロックを、あるビット長のビット列からなる所望の鍵に基づいて、ある入力ブロックと同長の出力ブロックに変換するものであって、データランダム化部21と、鍵生成部22とを有する。
<Configuration of encryption unit>
4 and 5 are block diagrams showing the configuration of the encryption unit according to this embodiment. FIG. 4 shows the configuration of a block cipher data randomization unit, and FIG. 5 shows the configuration of a key generation unit. An input block consisting of a bit string of a predetermined length is based on a desired key consisting of a bit string of a certain bit length. It converts to an output block having the same length as the input block, and has a data randomizing unit 21 and a key generating unit 22.

データランダム化部21は、初期転置部23と、非線形関数部24と、逆初期転置部25とから構成されている。初期転置部23は、入力ブロックを所定の区間に分割し、鍵の各区間に対応するように定める位置の各ビット列の値を、その入力ブロック内の区間位置アドレスとし、各区間のビット列を対応するその区間位置アドレスによって定まる区間と所定の位置関係を有する区間に順次移動して、移動した結果のブロックを非線形関数部24に渡し、その移動の前後のその区間相互間の対応を示す情報を逆初期転置部25に渡すものである。   The data randomizing unit 21 includes an initial transposing unit 23, a nonlinear function unit 24, and an inverse initial transposing unit 25. The initial transposing unit 23 divides the input block into predetermined sections, uses the value of each bit string at a position determined to correspond to each section of the key as the section position address in the input block, and corresponds the bit string of each section Sequentially move to a section determined by the section position address and a section having a predetermined positional relationship, pass the resulting block to the non-linear function unit 24, and indicate information indicating correspondence between the sections before and after the movement. This is passed to the reverse initial transposition unit 25.

非線形関数部24は、複数段のインボリューション処理部26a〜26cを有し、初期転置部23から受け取るブロックを等しい長さの左ビット列及び右ビット列に2等分し、その左ビット列を左入力Lとし、その左ビット列と右ビット列との排他的論理和を右入力Rとして、第1段のインボリューション処理部26aに入力し、順次各段のインボリューション処理部26a〜26cの左出力を次段の右入力Rとし、右出力を左入力Lとして、最終段の左出力と、その左出力と右出力との排他的論理和とを結合したビット列のブロックを逆初期転置部25に渡すものである。   The non-linear function unit 24 includes a plurality of stages of involution processing units 26a to 26c, and divides the block received from the initial transposition unit 23 into two equal bit strings of the left bit string and the right bit string, and the left bit string is input to the left input L The exclusive OR of the left bit string and the right bit string is input to the first involution processing unit 26a as the right input R, and the left outputs of the respective involution processing units 26a to 26c are sequentially output to the next stage. And the right output is the left input L, and a block of bit strings obtained by combining the left output of the final stage and the exclusive OR of the left output and the right output is passed to the inverse initial transposition unit 25. is there.

各インボリューション処理部26は、関数部27a〜27cを有し、鍵生成部22が生成する中間鍵の各所定の1つと右入力Rとを入力として関数部27が生成するビット列と、左入力Lとの排他的論理和をその左出力とし、右入力Rをその右出力とするものである。   Each involution processing unit 26 includes function units 27a to 27c, a bit string generated by the function unit 27 using each predetermined one of the intermediate keys generated by the key generation unit 22 and the right input R as input, and a left input The exclusive OR with L is the left output, and the right input R is the right output.

各関数部27は、右入力Rを所定の区間に分割し、その中間鍵の各区間に対応するように定める位置の各ビット列の値を、その右入力内の区間位置アドレスとし、各区間のビット列を対応するその区間位置アドレスによって定まる区間と所定の位置関係を有する区間に順次移動して、移動した結果のビット列について所定の変換を実行するものである。   Each function unit 27 divides the right input R into predetermined sections, uses the value of each bit string at a position determined to correspond to each section of the intermediate key as a section position address in the right input, and The bit string is sequentially moved to a section determined by the corresponding section position address and a section having a predetermined positional relationship, and predetermined conversion is performed on the bit string resulting from the movement.

逆初期転置部25は、非線形関数部24から受け取るブロックについて、初期転置部23から受け取るその区間相互間の対応情報に従って、初期転置部23の行ったその区間間の移動と逆の移動を行ったブロックを、その出力ブロックとして出力するものである。   The inverse initial transposition unit 25 performs the movement opposite to the movement between the sections performed by the initial transposition section 23 according to the correspondence information between the sections received from the initial transposition section 23 for the block received from the nonlinear function section 24. A block is output as its output block.

鍵生成部22は、非線形関数部24と同じ段数の鍵処理部28a〜28cを有し、その鍵を等しい長さの左ビット列及び右ビット列に2等分し、その左ビット列を左鍵入力KLとし、その左ビット列と右ビット列との排他的論理和を右鍵入力KRとして、第1段の鍵処理部28aに入力し、順次各段の鍵処理部28の左鍵出力を次段の右鍵入力KRとし、右鍵出力を左鍵入力KLとして、各段のその左鍵出力を各中間鍵として非線形関数部24に渡すものである。   The key generation unit 22 includes key processing units 28a to 28c having the same number of stages as the non-linear function unit 24. The key generation unit 22 bisects the key into a left bit string and a right bit string of equal length, and the left bit string is input to the left key input KL. The exclusive OR of the left bit string and the right bit string is input to the first key processing unit 28a as the right key input KR, and the left key output of each stage key processing unit 28 is sequentially input to the next right key input KR, the right key output is the left key input KL, and the left key output of each stage is passed to the nonlinear function unit 24 as each intermediate key.

各鍵処理部28は、鍵関数部29a〜29cを有し、所望の初期ベクトルと右鍵入力KRとを入力として鍵関数部29a〜29cが生成するビット列と、左鍵入力KLとの排他的論理和をその左鍵出力とし、右鍵入力KRをその右鍵出力とするものである。   Each key processing unit 28 has key function units 29a to 29c, and an exclusive logic of the bit string generated by the key function units 29a to 29c with the desired initial vector and the right key input KR as inputs, and the left key input KL. The sum is the left key output, and the right key input KR is the right key output.

各鍵関数部29は、右鍵入力KRを所定の区間に分割し、その初期ベクトルの各区間に対応するように定める位置の各ビット列の値を、右鍵入力KR内の区間位置アドレスとし、各区間のビット列を対応するその区間位置アドレスによって定まる区間と所定の位置関係を有する区間に順次移動して、移動した結果のビット列について所定の変換を実行するものである。   Each key function unit 29 divides the right key input KR into predetermined sections, sets the value of each bit string at a position determined to correspond to each section of the initial vector as a section position address in the right key input KR, and sets each section Are sequentially moved to a section determined by the corresponding section position address and a section having a predetermined positional relationship, and a predetermined conversion is performed on the bit string resulting from the movement.

したがって、本実施形態によれば、ブロック暗号を用いたハッシュ値生成装置においても、入力メッセージを複数のメッセージブロックに分割することにより、使用メモリの削減が可能になりRFIDタグ等においても高速に処理が可能となる。   Therefore, according to the present embodiment, even in a hash value generation device using block cipher, by dividing an input message into a plurality of message blocks, it is possible to reduce the memory used, and processing at high speed even in an RFID tag or the like Is possible.

<応用例>
図6を用いて、本発明の応用例について説明する。本応用例は、図6に示すように、メッセージ入力部、暗号化部、演算部の構成がn段の並列接続となっている。なお、それ以外の構成については、第1および第2の実施形態と同様であるため、詳細な説明は省略する。
<Application example>
An application example of the present invention will be described with reference to FIG. In this application example, as shown in FIG. 6, the message input unit, the encryption unit, and the calculation unit have n stages of parallel connections. Since other configurations are the same as those in the first and second embodiments, detailed description thereof is omitted.

このような構成によれば、装置の規模はやや大きくなるものの、上記実施形態の構成に比べて、より攪拌効率を高めることができる。また、ここで、nは、2以上の整数である。   According to such a configuration, the scale of the apparatus is slightly increased, but the stirring efficiency can be further increased as compared with the configuration of the above embodiment. Here, n is an integer of 2 or more.

なお、上述の一連の処理をプログラムとしてコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをハッシュ値生成装置に読み込ませ、実行することによって本発明のハッシュ値生成装置を実現することができる。   The above-described series of processing is recorded on a computer-readable recording medium as a program, and the hash value generating apparatus of the present invention is realized by causing the hash value generating apparatus to read and execute the program recorded on the recording medium. can do.

また、WWW(World Wide Web)システムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。   In addition, if a WWW (World Wide Web) system is used, a homepage providing environment (or display environment) is also included. Further, the program may be transmitted from a computer storing the program in a storage device or the like to another computer via a transmission medium or by a transmission wave in the transmission medium. Here, the “transmission medium” for transmitting the program refers to a medium having a function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line.

また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。   The program may be for realizing a part of the functions described above. Furthermore, what can implement | achieve the function mentioned above in combination with the program already recorded on the computer, what is called a difference file (difference program) may be sufficient.

なお、本発明は、UIMカード等に適用しても、高速なハッシュ演算を可能とすることができる。したがって、ストリーム暗号やブロック暗号を使用するようなブロードバンド事業や携帯電話をはじめとするモバイル通信におけるシステム構築に広く利用することが可能である。   Note that the present invention can enable high-speed hash calculation even when applied to a UIM card or the like. Therefore, the present invention can be widely used for system construction in mobile communications including mobile phones and broadband businesses using stream ciphers and block ciphers.

以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。   The embodiments of the present invention have been described in detail with reference to the drawings. However, the specific configuration is not limited to the embodiments, and includes designs and the like that do not depart from the gist of the present invention.

1・・・前処理部
2・・・メッセージ分割部
3a・・・メッセージ入力部
3b・・・メッセージ入力部
4・・・フィードフォワード部
5・・・フィードバック部
6a・・・暗号化部
6b・・・暗号化部
7a・・・演算部
7b・・・演算部
10・・・ストリーム暗号部
11・・・XOR
21・・・データランダム化部
22・・・鍵生成部
23・・・初期転置部
24・・・非線形関数部
25・・・逆初期転置部
26a・・・インボリューション処理部
26b・・・インボリューション処理部
26c・・・インボリューション処理部
27a・・・関数部
27b・・・関数部
27c・・・関数部
28a・・・鍵処理部
28b・・・鍵処理部
28c・・・鍵処理部
29a・・・鍵関数部
29b・・・鍵関数部
29c・・・鍵関数部
DESCRIPTION OF SYMBOLS 1 ... Pre-processing part 2 ... Message division part 3a ... Message input part 3b ... Message input part 4 ... Feed forward part 5 ... Feedback part 6a ... Encryption part 6b ..Encryption unit 7a ... Calculation unit 7b ... Calculation unit 10 ... Stream encryption unit 11 ... XOR
DESCRIPTION OF SYMBOLS 21 ... Data randomization part 22 ... Key generation part 23 ... Initial transposition part 24 ... Nonlinear function part 25 ... Inverse initial transposition part 26a ... Involution processing part 26b ... In Involution processing unit 27c ... Functional unit 27b ... Functional unit 27c ... Functional unit 28a ... Key processing unit 28b ... Key processing unit 28c ... Key processing unit 29a: Key function part 29b: Key function part 29c: Key function part

Claims (9)

入力メッセージを複数のメッセージブロックに分割するメッセージ分割手段と、
該分割された入力メッセージブロックと前ラウンドで得られたハッシュ値とを入力する入力手段と、
該入力したメッセージを暗号化して、ハッシュ値を生成する暗号化手段と、
該ハッシュ値を出力する出力手段と、
を備えることを特徴とするハッシュ値生成装置。
Message dividing means for dividing an input message into a plurality of message blocks;
Input means for inputting the divided input message block and the hash value obtained in the previous round;
Encryption means for encrypting the input message to generate a hash value;
An output means for outputting the hash value;
A hash value generation device comprising:
前記暗号化手段の出力に演算手段を有し、
前記入力手段と暗号化手段と演算手段とがn(nは、2以上の整数)段並列になって構成され、
前記暗号化手段が出力する前記ハッシュ値を入力し、該ハッシュ値を前記入力手段に戻すフィードバック手段と、
前記入力手段からの出力されるメッセージを入力し、該メッセージを前記演算手段に出力するフィードフォワード手段と、
を備えたことを特徴とする請求項1に記載のハッシュ値生成装置。
A calculation means at the output of the encryption means;
The input means, the encryption means, and the calculation means are configured in parallel (n is an integer of 2 or more) stages,
Feedback means for inputting the hash value output by the encryption means and returning the hash value to the input means;
A feedforward means for inputting a message output from the input means and outputting the message to the computing means;
The hash value generation device according to claim 1, further comprising:
入力メッセージが前記並列段数と前記暗号化手段の出力ビット長の整数倍になるように、パディング処理を行う前処理手段を前記メッセージ分割手段の入力側に備えたことを特徴とする請求項1または請求項2に記載のハッシュ値生成装置。   The preprocessing means for performing padding processing is provided on the input side of the message dividing means so that the input message is an integral multiple of the number of parallel stages and the output bit length of the encryption means. The hash value generation device according to claim 2. 前記フィードバック手段は、入力したハッシュ値をどの入力手段に戻すかを能動的に決定するとともに、前記フィードフォワード手段は、入力したメッセージをどの演算手段に出力するのかを能動的に決定することを特徴とする請求項2に記載のハッシュ値生成装置。   The feedback means actively determines to which input means the input hash value is returned, and the feedforward means actively determines to which calculation means the input message is output. The hash value generation device according to claim 2. 前記暗号化手段が、ストリーム暗号によりハッシュ値を生成することを特徴とする請求項1に記載のハッシュ値生成装置。   The hash value generation apparatus according to claim 1, wherein the encryption unit generates a hash value by stream encryption. 前記暗号化手段が、ブロック暗号によりハッシュ値を生成することを特徴とする請求項1に記載のハッシュ値生成装置。   The hash value generation apparatus according to claim 1, wherein the encryption unit generates a hash value by block cipher. 前記演算手段が排他的論理和演算器であることを特徴とする請求項2に記載のハッシュ値生成装置。   The hash value generation device according to claim 2, wherein the calculation means is an exclusive OR calculator. 入力メッセージが並列段数と暗号化手段の出力ビット長の整数倍となるようにパディングを行う第1のステップと、
メッセージ分割手段が入力メッセージを複数のメッセージブロックに分割する第2のステップと、
メッセージ入力手段が分割されたメッセージブロックと前ラウンドのハッシュ値をそれぞれ暗号化手段に出力する第3のステップと、
該入力されたメッセージブロックと前ブロックのハッシュ値とを暗号化して、ハッシュ値を生成する第4のステップと、
フィードバック手段が、該得られたハッシュ値を入力し、フィードバック先のメッセージ入力手段を決定して、出力する第5のステップと、
フィードフォワード手段が入力メッセージのフィードフォワード先の演算手段を決定して、出力する第6のステップと、
入力メッセージがまだあるか否かを確認する第7のステップと、
入力メッセージがまだある場合に、入力メッセージがなくなるまで、上記第3のステップから第6のステップまでを繰り返す第8のステップと、
すべてのメッセージの処理が終了したときに、出力手段からハッシュ値を出力する第9のステップと、
該得られた複数のハッシュ値を演算手段によって結合する第10のステップと、
を備えたことを特徴とするハッシュ値生成方法。
A first step of performing padding so that the input message is an integral multiple of the number of parallel stages and the output bit length of the encryption means;
A second step in which the message dividing means divides the input message into a plurality of message blocks;
A third step in which the message input means outputs the divided message block and the hash value of the previous round to the encryption means;
A fourth step of encrypting the input message block and the hash value of the previous block to generate a hash value;
A feedback means for inputting the obtained hash value, determining a feedback destination message input means, and outputting the fifth step;
A sixth step in which the feedforward means determines and outputs a feedforward destination computing means of the input message; and
A seventh step to check if there is still an input message;
An eighth step that repeats the third to sixth steps until there are no more input messages if there are more input messages;
A ninth step of outputting a hash value from the output means when processing of all messages is completed;
A tenth step of combining the obtained plurality of hash values by an arithmetic means;
A hash value generation method characterized by comprising:
コンピュータに、
入力メッセージが並列段数と暗号化手段の出力ビット長の整数倍となるようにパディングを行う第1のステップと、
メッセージ分割手段が入力メッセージを複数のメッセージブロックに分割する第2のステップと、
メッセージ入力手段が分割されたメッセージブロックと前ラウンドのハッシュ値をそれぞれ暗号化手段に出力する第3のステップと、
該入力されたメッセージブロックと前ブロックのハッシュ値とを暗号化して、ハッシュ値を生成する第4のステップと、
フィードバック手段が、該得られたハッシュ値を入力し、フィードバック先のメッセージ入力手段を決定して、出力する第5のステップと、
フィードフォワード手段が入力メッセージのフィードフォワード先の演算手段を決定して、出力する第6のステップと、
入力メッセージがまだあるか否かを確認する第7のステップと、
入力メッセージがまだある場合に、入力メッセージがなくなるまで、上記第3のステップから第6のステップまでを繰り返す第8のステップと、
すべてのメッセージの処理が終了したときに、出力手段からハッシュ値を出力する第9のステップと、
該得られた複数のハッシュ値を演算手段によって結合する第10のステップと、
を実行させるためのプログラム。
On the computer,
A first step of performing padding so that the input message is an integral multiple of the number of parallel stages and the output bit length of the encryption means;
A second step in which the message dividing means divides the input message into a plurality of message blocks;
A third step in which the message input means outputs the divided message block and the hash value of the previous round to the encryption means;
A fourth step of encrypting the input message block and the hash value of the previous block to generate a hash value;
A feedback means for inputting the obtained hash value, determining a feedback destination message input means, and outputting the fifth step;
A sixth step in which the feedforward means determines and outputs a feedforward destination computing means of the input message; and
A seventh step to check if there is still an input message;
An eighth step that repeats the third to sixth steps until there are no more input messages if there are more input messages;
A ninth step of outputting a hash value from the output means when processing of all messages is completed;
A tenth step of combining the obtained plurality of hash values by an arithmetic means;
A program for running
JP2009108828A 2009-04-28 2009-04-28 Device and method for generating hash value, and program Pending JP2010256749A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009108828A JP2010256749A (en) 2009-04-28 2009-04-28 Device and method for generating hash value, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009108828A JP2010256749A (en) 2009-04-28 2009-04-28 Device and method for generating hash value, and program

Publications (1)

Publication Number Publication Date
JP2010256749A true JP2010256749A (en) 2010-11-11

Family

ID=43317705

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009108828A Pending JP2010256749A (en) 2009-04-28 2009-04-28 Device and method for generating hash value, and program

Country Status (1)

Country Link
JP (1) JP2010256749A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012168220A (en) * 2011-02-10 2012-09-06 Kddi Corp Hash function device, processing method of hash function device, and program
JP2013098722A (en) * 2011-10-31 2013-05-20 Kddi Corp Ciphering device of stream cipher, deciphering device of stream cipher, ciphering method of stream cipher, deciphering method of stream cipher, and program
JP2015512231A (en) * 2012-03-15 2015-04-23 アルカテル−ルーセント Method and system for fast and large longest prefix matching

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007293147A (en) * 2006-04-27 2007-11-08 Kddi Corp Hash function processing apparatus, hash function generation method in same apparatus, and program

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007293147A (en) * 2006-04-27 2007-11-08 Kddi Corp Hash function processing apparatus, hash function generation method in same apparatus, and program

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSNG200700881005; 廣瀬勝一: 'ハッシュ関数の構成と証明可能安全性' 電子情報通信学会誌 第90巻第6号, 20070601, p.447-450 *
JPN6013042754; Ryan Glabb, et al.: 'Multi-mode operator for SHA-2 hash functions' JOURNAL OF SYSTEMS ARCHITECTURE Vol.53 No.2-3, 2007, p.127-138 *
JPN6013042755; 廣瀬勝一: 'ハッシュ関数の構成と証明可能安全性' 電子情報通信学会誌 第90巻第6号, 20070601, p.447-450 *
JPN6013042756; Lars R. Knudsen and Xuejia Lai: 'New Attacks on all Double Block Length Hash Functions of Hash Rate 1, including the Parallel-DM' Lecture Notes in Computer Science Vol.950, 1995, p.410-418 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012168220A (en) * 2011-02-10 2012-09-06 Kddi Corp Hash function device, processing method of hash function device, and program
JP2013098722A (en) * 2011-10-31 2013-05-20 Kddi Corp Ciphering device of stream cipher, deciphering device of stream cipher, ciphering method of stream cipher, deciphering method of stream cipher, and program
JP2015512231A (en) * 2012-03-15 2015-04-23 アルカテル−ルーセント Method and system for fast and large longest prefix matching
US9729669B2 (en) 2012-03-15 2017-08-08 Alcatel Lucent Method and system for fast and large-scale longest prefix matching

Similar Documents

Publication Publication Date Title
JP5402632B2 (en) Common key block encryption apparatus, common key block encryption method, and program
JP4735644B2 (en) Message authentication apparatus, message authentication method, message authentication program and recording medium thereof
JP5229315B2 (en) Encryption device and built-in device equipped with a common key encryption function
JP5000365B2 (en) Hash value generation device, program, and hash value generation method
JPWO2015015702A1 (en) Authentication encryption apparatus, authentication encryption method, and authentication encryption program
JPWO2016027454A1 (en) Authentication encryption method, authentication decryption method, and information processing apparatus
US20120314857A1 (en) Block encryption device, block decryption device, block encryption method, block decryption method and program
KR100800468B1 (en) Hardware cryptographic engine and method improving power consumption and operation speed
WO2013065241A1 (en) Incremental mac tag generation device, method, and program, and message authentication device
US11463235B2 (en) Encryption device, encryption method, program, decryption device, and decryption method
US20180241544A1 (en) Message authenticator generating apparatus, message authenticator generating method, and computer readable recording medium
WO2021129470A1 (en) Polynomial-based system and method for fully homomorphic encryption of binary data
US20150349951A1 (en) Protecting Cryptographic Operations Using Conjugacy Class Functions
US20130243191A1 (en) Encryption key generating apparatus
JP2012215814A (en) Encryption processing device, encryption processing method, and program
JP6028798B2 (en) ENCRYPTION DEVICE, ENCRYPTION METHOD, AND PROGRAM
KR100949538B1 (en) Apparatus and method for improving rate encryption and decryption using aes rijndael algorithm
JP2010256749A (en) Device and method for generating hash value, and program
JP2010044251A (en) Hash value generator, program and hash value generation method
JP2014240921A (en) Encryption device, encryption processing method and encryption processing program
JP5056860B2 (en) Data conversion function processor
JP4938430B2 (en) Nonlinear function unit, stream cipher encryption apparatus, decryption apparatus, MAC generation apparatus, stream cipher encryption method, decryption method, MAC generation method, and program
JP6033504B1 (en) Message authenticator generator
JP4819576B2 (en) Self-synchronous stream cipher encryption apparatus, decryption apparatus, self-synchronous stream cipher system, MAC generation apparatus, encryption method, decryption method, MAC generation method, and program
Labbi et al. Symmetric encryption algorithm for RFID systems using a dynamic generation of key

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130821

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130903

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140107