JP2013097161A - Algorithm variable mac generation device, algorithm variable hash function generation device, algorithm variable mac generation method, algorithm variable hash function generation method and program - Google Patents
Algorithm variable mac generation device, algorithm variable hash function generation device, algorithm variable mac generation method, algorithm variable hash function generation method and program Download PDFInfo
- Publication number
- JP2013097161A JP2013097161A JP2011239651A JP2011239651A JP2013097161A JP 2013097161 A JP2013097161 A JP 2013097161A JP 2011239651 A JP2011239651 A JP 2011239651A JP 2011239651 A JP2011239651 A JP 2011239651A JP 2013097161 A JP2013097161 A JP 2013097161A
- Authority
- JP
- Japan
- Prior art keywords
- exclusive
- data group
- cyclic shift
- algorithm
- data groups
- 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
Links
Images
Abstract
Description
本発明は、安全性を確保しつつ、アルゴリズムを変化させるアルゴリズム可変型MAC生成装置、アルゴリズム可変型ハッシュ関数生成装置、アルゴリズム可変型MAC生成方法、アルゴリズム可変型ハッシュ関数生成方法、およびプログラムに関する。 The present invention relates to an algorithm variable MAC generation device, an algorithm variable hash function generation device, an algorithm variable MAC generation method, an algorithm variable hash function generation method, and a program that change an algorithm while ensuring safety.
近年、インターネットの目覚しい普及により、コンピュータを利用した様々なサービスが提供されている。こうして提供されるサービスの多くは、送信者と受信者との相互認証を実現するため、データの改ざんの有無を検知することができるMAC(Message Authentication Codes:メッセージ認証コード)アルゴリズムおよびハッシュ関数を用いている。 In recent years, various services using computers have been provided due to the remarkable spread of the Internet. Many of the services provided in this way use a MAC (Message Authentication Code) algorithm and a hash function that can detect whether or not data has been tampered with in order to realize mutual authentication between a sender and a receiver. ing.
ところで、近年、暗号化アルゴリズムは、アルゴリズムを公開しても鍵を秘匿することにより安全性は保たれ、さらに、アルゴリズムを公開することにより信頼性を高めることができることから、公開型のアルゴリズムが一般的である。例えば、MACアルゴリズムでは、AES−CMACのアルゴリズムが公開され(例えば、非特許文献1参照。)、ハッシュ関数で、SHA−224のアルゴリズムが公開されている(例えば、非特許文献2参照。)。一方で、暗号化アルゴリズムの中には、安全性を確保するためにアルゴリズムを秘匿する秘匿型のアルゴリズムもある。 By the way, in recent years, the encryption algorithm is kept safe by keeping the key secret even if the algorithm is disclosed, and since the reliability can be improved by releasing the algorithm, the public algorithm is generally used. Is. For example, in the MAC algorithm, the AES-CMAC algorithm is disclosed (for example, see Non-Patent Document 1), and the SHA-224 algorithm is disclosed in a hash function (for example, see Non-Patent Document 2). On the other hand, among encryption algorithms, there is also a secret type algorithm that conceals the algorithm in order to ensure safety.
しかしながら、秘匿型のアルゴリズムの場合、一度アルゴリズムがばれてしまうと2度と使えないという問題点があった。そこで、秘匿型のアルゴリズムの場合においては、リバースエンジニアリングを考慮し、アルゴリズムを固定とせず、アルゴリズムを変更するアルゴリズム可変型暗号にしたいという要求があった。ところが、MACアルゴリズムおよびハッシュ関数においては、回路のごく一部を変更する場合にも、安全性を保障するためには専門家による詳細な検証が必要となること等から、アルゴリズムの変更は極めて困難であるという問題点があった。 However, in the case of a secret type algorithm, there is a problem that once the algorithm is broken, it cannot be used again. Therefore, in the case of a secret type algorithm, there has been a demand for variable algorithm encryption that changes the algorithm without considering the algorithm in consideration of reverse engineering. However, in the MAC algorithm and the hash function, even if only a part of the circuit is changed, it is extremely difficult to change the algorithm because detailed verification by an expert is required to ensure safety. There was a problem that.
そこで、本発明は、上述の課題に鑑みてなされたものであり、安全性を確保しつつ、鍵のビット情報によりアルゴリズムを変化させることができるアルゴリズム可変型MAC生成装置、アルゴリズム可変型ハッシュ関数生成装置、アルゴリズム可変型MAC生成方法、アルゴリズム可変型ハッシュ関数生成方法、およびプログラムを提供することを目的とする。 Therefore, the present invention has been made in view of the above-described problems, and an algorithm variable MAC generation device and algorithm variable hash function generation capable of changing an algorithm according to key bit information while ensuring safety. An object is to provide an apparatus, an algorithm variable MAC generation method, an algorithm variable hash function generation method, and a program.
本発明は、上記の課題を解決するために、以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。 The present invention proposes the following matters in order to solve the above problems. In addition, in order to make an understanding easy, although the code | symbol corresponding to embodiment of this invention is attached | subjected and demonstrated, it is not limited to this.
(1) 本発明は、入力データを所定ビット毎に区切った複数のデータ群それぞれに、所定の処理を1回以上実行するラウンド関数処理手段(例えば、図1のラウンド関数処理部100に相当)と、前記ラウンド関数処理手段で処理が実行された複数のデータ群に対して排他的論理和演算を実行し、所定長のMACを生成する終端処理手段(例えば、図1の終端処理部200に相当)と、を備え、前記ラウンド関数処理手段が、入力される鍵のビット情報に応じてアルゴリズムが可変する部分と、常にアルゴリズムが固定の部分とから構成されることを特徴とするアルゴリズム可変型MAC生成装置を提案している。
(1) The present invention is a round function processing means for executing predetermined processing at least once for each of a plurality of data groups obtained by dividing input data into predetermined bits (for example, equivalent to the round
この発明によれば、ラウンド関数処理手段は、入力される鍵のビット情報に応じてアルゴリズムが可変する部分と、常にアルゴリズムが固定の部分とから構成され、入力データを所定ビット毎に区切った複数のデータ群それぞれに、所定の処理を1回以上実行する。終端処理手段は、ラウンド関数処理手段で処理が実行された複数のデータ群に対して排他的論理和演算を実行し、所定長のMACを生成する。したがって、ラウンド関数処理手段が、鍵のビット情報によりアルゴリズムを可変する部分と、常にアルゴリズムが可変しない固定の部分とから構成されることにより安全性を確保することができる。また、終端処理手段を備えることにより、MACの特性である一方向性を確保することができる。 According to the present invention, the round function processing means includes a part in which the algorithm is variable according to the bit information of the input key and a part in which the algorithm is always fixed, and a plurality of pieces of input data divided into predetermined bits. A predetermined process is executed at least once for each data group. The termination processing unit performs an exclusive OR operation on the plurality of data groups processed by the round function processing unit to generate a MAC having a predetermined length. Therefore, safety can be ensured by the round function processing means comprising the part where the algorithm is changed by the bit information of the key and the fixed part where the algorithm is not always changed. In addition, by providing the termination processing means, it is possible to ensure unidirectionality that is a characteristic of the MAC.
(2) 本発明は、(1)のアルゴリズム可変型MAC生成装置について、前記ラウンド関数処理手段が、前記区切った複数のデータ群それぞれに、前記鍵のビット情報に応じて決定したビットの巡回シフトを行う巡回シフト手段(例えば、図1の巡回シフト部110a〜110dに相当)と、前記巡回シフト手段に接続され、当該巡回シフト手段で巡回シフトが行われた複数のデータ群の一方の端のデータ群から他方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行し、当該他方の端のデータ群まで達すると、当該他方の端のデータ群から当該一方の端のデータ群まで隣に位置するデータ群に対して排他的論理和演算を実行する排他的論理和演算手段(例えば、図1の排他的論理和演算部120a〜120fに相当)と、前記排他的論理和演算手段による演算の実行の有無を前記鍵のビット情報に応じて決定する演算決定手段(例えば、図1のスイッチ部130a〜130fに相当)と、前記排他的論理和演算手段から出力された複数のデータ群それぞれに非線形置換および線形変換を行う攪拌手段(例えば、図1の攪拌部140a〜140dに相当)と、からなり、前記巡回シフト手段、前記排他的論理和演算手段、前記演算決定手段、および前記攪拌手段の処理を所定回数実行することを特徴とするアルゴリズム可変型MAC生成装置を提案している。
(2) In the algorithm variable MAC generation device according to (1), the present invention provides a cyclic shift of bits determined by the round function processing unit according to bit information of the key for each of the plurality of divided data groups. Cyclic shift means (for example, equivalent to the
この発明によれば、巡回シフト手段は、区切った複数のデータ群それぞれに、鍵のビット情報に応じて決定したビットの巡回シフトを行う。排他的論理和演算手段は、巡回シフト手段に接続され、巡回シフト手段で巡回シフトが行われた複数のデータ群の一方の端のデータ群から他方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行し、他方の端のデータ群まで達すると、他方の端のデータ群から一方の端のデータ群まで隣に位置するデータ群に対して排他的論理和演算を実行する。演算決定手段は、排他的論理和演算手段による演算の実行の有無を鍵のビット情報に応じて決定する。攪拌手段は、排他的論理和演算手段から出力された複数のデータ群それぞれに非線形置換および線形変換を行う。そして、ラウンド関数処理手段は、巡回シフト手段、排他的論理和演算手段、演算決定手段、および攪拌手段の処理を所定回数実行する。したがって、アルゴリズムの可変部分を、安全性と性能に影響を与えない巡回シフト手段、排他的論理和演算手段、および演算決定手段で構成することによって、鍵のビット情報によりアルゴリズムを可変しても、安全性や性能を確保することができる。 According to this invention, the cyclic shift means performs a cyclic shift of bits determined according to the bit information of the key for each of the plurality of divided data groups. The exclusive OR operation means is connected to the cyclic shift means and is located next to each other in order from the data group at one end to the data group at the other end of the plurality of data groups subjected to the cyclic shift by the cyclic shift means. When an exclusive OR operation is performed on a data group and the data group at the other end is reached, exclusive logic is performed on the data group located next to the data group at the other end from the data group at the other end. Perform a sum operation. The operation determining means determines whether or not the operation by the exclusive OR operation means is executed according to the bit information of the key. The agitation unit performs non-linear replacement and linear conversion on each of the plurality of data groups output from the exclusive OR operation unit. Then, the round function processing unit executes the processes of the cyclic shift unit, the exclusive OR calculation unit, the calculation determination unit, and the stirring unit a predetermined number of times. Therefore, by configuring the variable part of the algorithm with a cyclic shift means that does not affect safety and performance, an exclusive OR operation means, and an operation determination means, even if the algorithm is varied according to the bit information of the key, Safety and performance can be ensured.
(3) 本発明は、(2)のアルゴリズム可変型MAC生成装置について、前記ラウンド関数処理手段が、前記攪拌手段の処理を実行する前に、前記排他的論理和演算手段より出力された複数のデータ群をデータ群単位で巡回シフトを行うことを特徴とするアルゴリズム可変型MAC生成装置を提案している。 (3) The present invention relates to the algorithm variable MAC generation device according to (2), wherein the round function processing unit outputs a plurality of outputs from the exclusive OR operation unit before executing the processing of the stirring unit. An algorithm variable type MAC generating apparatus characterized by cyclically shifting data groups in units of data groups has been proposed.
この発明によれば、ラウンド関数処理手段が、攪拌手段の処理を実行する前に、排他的論理和演算手段より出力された複数のデータ群をデータ群単位で巡回シフトを行う。したがって、複数のデータ群をデータ群単位で巡回シフト、すなわち、データ群の順番を入れ替えることによって、より高い安全性を確保することができる。 According to this invention, the round function processing means cyclically shifts a plurality of data groups output from the exclusive OR operation means in units of data groups before executing the processing of the agitation means. Therefore, it is possible to ensure higher safety by cyclically shifting a plurality of data groups in units of data groups, that is, by changing the order of the data groups.
(4) 本発明は、(2)または(3)のアルゴリズム可変型MAC生成装置について、前記演算決定手段が、「1」あるいは「0」である前記鍵の所定位置のビット情報により、前記排他的論理和演算手段における演算の実行の有無を決定することを特徴とするアルゴリズム可変型MAC生成装置を提案している。 (4) The present invention relates to the algorithm variable MAC generation device according to (2) or (3), wherein the calculation determining means uses the bit information at a predetermined position of the key that is “1” or “0”. An algorithm variable MAC generating device is proposed that determines whether or not to execute an operation in a logical OR operation means.
この発明によれば、演算決定手段が、「1」あるいは「0」である鍵の所定位置のビット情報により、排他的論理和演算手段における演算の実行を決定する。したがって、排他的論理和演算手段における演算の有無を鍵の所定位置のビット情報により決定することができる。 According to this invention, the operation determining means determines the execution of the operation in the exclusive OR operation means based on the bit information at a predetermined position of the key that is “1” or “0”. Therefore, the presence / absence of the operation in the exclusive OR operation means can be determined by the bit information at the predetermined position of the key.
(5) 本発明は、(2)から(4)のアルゴリズム可変型MAC生成装置について、前記攪拌手段が、AESのラウンド関数を用いて、非線形置換および線形変換を行うことを特徴とするアルゴリズム可変型MAC生成装置を提案している。 (5) The present invention provides the variable algorithm according to (2) to (4), wherein the agitation means performs non-linear replacement and linear conversion using an AES round function. Type MAC generator is proposed.
この発明によれば、攪拌手段が、AESのラウンド関数を用いて、非線形置換および線形変換を行う。したがって、一定の安全性を確保しているAESのラウンド関数を用いることにより、より高い安全性をアルゴリズム可変型MAC生成装置に確保することができる。 According to the present invention, the agitation means performs nonlinear replacement and linear transformation using the AES round function. Therefore, by using an AES round function that ensures a certain level of security, higher security can be ensured in the algorithm variable MAC generation device.
(6) 本発明は、入力データを所定ビット毎に区切った複数のデータ群それぞれに、所定の処理を1回以上実行するラウンド関数処理手段(例えば、図1のラウンド関数処理部100に相当)と、前記ラウンド関数処理手段で処理が実行された複数のデータ群に対して排他的論理和演算を実行し、所定長のハッシュ関数を生成する終端処理手段(例えば、図1の終端処理部200に相当)と、を備え、前記ラウンド関数処理手段が、入力される任意の固定値のビット情報に応じてアルゴリズムが可変する部分と、常にアルゴリズムが固定の部分とから構成されることを特徴とするアルゴリズム可変型ハッシュ関数生成装置を提案している。
(6) The present invention is a round function processing means (for example, equivalent to the round
この発明によれば、ラウンド関数処理手段は、入力される任意の固定値のビット情報に応じてアルゴリズムが可変する部分と、常にアルゴリズムが固定の部分とから構成され、入力データを所定ビット毎に区切った複数のデータ群それぞれに、所定の処理を1回以上実行する。終端処理手段は、ラウンド関数処理手段で処理が実行された複数のデータ群に対して排他的論理和演算を実行し、所定長のハッシュ関数を生成する。したがって、ラウンド関数処理手段が、任意の固定値のビット情報によりアルゴリズムを可変する部分と、常にアルゴリズムが可変しない固定の部分とから構成されることにより安全性を確保することができる。また、終端処理手段を備えることにより、ハッシュ関数の特性である一方向性を確保することができる。 According to the present invention, the round function processing means is composed of a portion where the algorithm is variable in accordance with bit information of an arbitrary fixed value inputted and a portion where the algorithm is always fixed, and the input data is inputted every predetermined bit. A predetermined process is executed once or more for each of the plurality of divided data groups. The termination processing unit performs an exclusive OR operation on the plurality of data groups processed by the round function processing unit to generate a hash function having a predetermined length. Therefore, safety can be ensured by the round function processing means comprising a part where the algorithm is changed by bit information of an arbitrary fixed value and a fixed part where the algorithm is not always changed. Further, by providing the termination processing means, it is possible to ensure the unidirectionality that is the characteristic of the hash function.
(7) 本発明は、所定の処理を1回以上実行し、巡回シフト手段、前記巡回シフト手段に接続される排他的論理和演算手段、演算決定手段、および攪拌手段からなるラウンド関数処理手段、並びに終端処理手段により構成されるアルゴリズム可変型MAC生成装置におけるアルゴリズム可変型MAC生成方法であって、前記巡回シフト手段が、入力データを所定ビット毎に区切った複数のデータ群それぞれに、入力される鍵のビット情報に応じて決定したビットの巡回シフトを行う第1のステップ(例えば、図4のステップS1)と、前記演算決定手段が、前記排他的論理和演算手段による演算の実行の有無を前記鍵のビット情報に応じて決定する第2のステップ(例えば、図4のステップS2)と、前記排他的論理和演算手段が、前記第2のステップで決定された演算の実行の有無に基づいて、前記第1のステップで巡回シフトが行われた複数のデータ群の一方の端のデータ群から他方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行し、当該他方の端のデータ群まで達すると、当該他方の端のデータ群から当該一方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行する第3のステップ(例えば、図4のステップS3)と、前記攪拌手段が、前記第3のステップから出力された複数のデータ群それぞれに非線形置換および線形変換を行う第4のステップ(例えば、図4のステップS4)と、前記ラウンド関数処理手段が、前記第4のステップから出力された複数のデータ群を前記入力データとして、前記第1のステップから前記第4のステップまでの処理を所定回数実行する第5のステップ(例えば、図4のステップS5)と、前記終端処理手段が、前記第5のステップの後に、前記第4のステップから出力された複数のデータ群に対して排他的論理和演算を実行し、所定長のMACを生成する第6のステップ(例えば、図4のステップS6)と、を含むことを特徴とするアルゴリズム可変型MAC生成方法を提案している。 (7) The present invention executes a predetermined process one or more times, and includes a round function processing means comprising a cyclic shift means, an exclusive OR operation means connected to the cyclic shift means, an operation determination means, and a stirring means, And an algorithm variable MAC generation method in an algorithm variable MAC generation apparatus configured by termination processing means, wherein the cyclic shift means is input to each of a plurality of data groups obtained by dividing input data into predetermined bits. A first step (for example, step S1 in FIG. 4) for performing a cyclic shift of the bit determined according to the bit information of the key, and whether or not the operation determination unit performs the operation by the exclusive OR operation unit A second step (for example, step S2 in FIG. 4) determined according to the bit information of the key, and the exclusive OR operation means include the first step In order from the data group at one end to the data group at the other end of the plurality of data groups subjected to the cyclic shift in the first step, based on whether or not the operation determined in the step is performed. When the exclusive OR operation is performed on the data group located and the data group at the other end is reached, the data located next to the data group at the other end in order from the data group at the other end A third step of performing an exclusive OR operation on the group (for example, step S3 in FIG. 4), and the agitation means performs non-linear replacement on each of the plurality of data groups output from the third step. A fourth step (for example, step S4 in FIG. 4) for performing linear transformation, and the round function processing means uses the plurality of data groups output from the fourth step as the input data, and the first step. A fifth step (for example, step S5 in FIG. 4) for executing the processing from the step to the fourth step a predetermined number of times, and the termination processing means from the fourth step after the fifth step A sixth variable (for example, step S6 in FIG. 4) that performs an exclusive OR operation on the plurality of output data groups to generate a MAC having a predetermined length. A type MAC generation method is proposed.
この発明によれば、アルゴリズム可変型MAC生成装置は、所定の処理を1回以上実行し、巡回シフト手段、巡回シフト手段に接続される排他的論理和演算手段、演算決定手段、および攪拌手段からなるラウンド関数処理手段、並びに終端処理手段により構成される。まず、第1のステップにおいて、巡回シフト手段が、入力データを所定ビット毎に区切った複数のデータ群それぞれに、入力される鍵のビット情報に応じて決定したビットの巡回シフトを行う。次に、第2のステップにおいて、演算決定手段が、排他的論理和演算手段による演算の実行の有無を鍵のビット情報に応じて決定する。次に、第3のステップにおいて、排他的論理和演算手段が、第2のステップで決定された演算の実行の有無に基づいて、第1のステップで巡回シフトが行われた複数のデータ群の一方の端のデータ群から他方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行し、他方の端のデータ群まで達すると、他方の端のデータ群から一方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行する。次に、第4のステップにおいて、攪拌手段が、第3のステップから出力された複数のデータ群それぞれに非線形置換および線形変換を行う。次に、第5のステップにおいて、ラウンド関数処理手段が、第4のステップから出力された複数のデータ群を入力データとして、第1のステップから第4のステップまでの処理を所定回数実行する。次に、第6のステップにおいて、終端処理手段が、第5のステップの後に、第4のステップから出力された複数のデータ群に対して排他的論理和演算を実行し、所定長のMACを生成する。したがって、ラウンド関数処理手段が、鍵のビット情報によりアルゴリズムを可変する部分と、常にアルゴリズムが可変しない固定の部分とから構成されることにより安全性を確保することができる。また、終端処理手段を備えることにより、MACの特性である一方向性を確保することができる。 According to this invention, the algorithm variable MAC generation device executes predetermined processing one or more times, and includes a cyclic shift unit, an exclusive OR operation unit connected to the cyclic shift unit, an operation determination unit, and an agitation unit. Round function processing means and termination processing means. First, in a first step, the cyclic shift means performs a cyclic shift of bits determined according to bit information of an input key for each of a plurality of data groups obtained by dividing input data into predetermined bits. Next, in the second step, the operation determining means determines whether or not the exclusive OR operation means is to be executed according to the bit information of the key. Next, in the third step, the exclusive OR operation means determines whether or not the plurality of data groups subjected to the cyclic shift in the first step based on the execution of the operation determined in the second step. In order from one end data group to the other end data group, an exclusive OR operation is performed on the adjacent data group, and when the other end data group is reached, the other end data group To the data group at one end in order, an exclusive OR operation is performed on the adjacent data group. Next, in the fourth step, the agitation means performs nonlinear replacement and linear transformation on each of the plurality of data groups output from the third step. Next, in the fifth step, the round function processing means executes the processing from the first step to the fourth step a predetermined number of times using the plurality of data groups output from the fourth step as input data. Next, in the sixth step, the termination processing means performs an exclusive OR operation on the plurality of data groups output from the fourth step after the fifth step, and obtains a MAC having a predetermined length. Generate. Therefore, safety can be ensured by the round function processing means comprising the part where the algorithm is changed by the bit information of the key and the fixed part where the algorithm is not always changed. In addition, by providing the termination processing means, it is possible to ensure unidirectionality that is a characteristic of the MAC.
(8) 本発明は、所定の処理を1回以上実行し、巡回シフト手段、前記巡回シフト手段に接続される排他的論理和演算手段、演算決定手段、および攪拌手段からなるラウンド関数処理手段、並びに終端処理手段により構成されるアルゴリズム可変型ハッシュ関数生成装置におけるアルゴリズム可変型ハッシュ関数生成方法であって、前記巡回シフト手段が、入力データを所定ビット毎に区切った複数のデータ群それぞれに、入力される任意の固定値のビット情報に応じて決定したビットの巡回シフトを行う第1のステップ(例えば、図4のステップS1)と、前記演算決定手段が、前記排他的論理和演算手段による演算の実行の有無を前記固定値のビット情報に応じて決定する第2のステップ(例えば、図4のステップS2)と、前記排他的論理和演算手段が、前記第2のステップで決定された演算の実行の有無に基づいて、前記第1のステップで巡回シフトが行われた複数のデータ群の一方の端のデータ群から他方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行し、当該他方の端のデータ群まで達すると、当該他方の端のデータ群から当該一方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行する第3のステップ(例えば、図4のステップS3)と、前記攪拌手段が、前記第3のステップから出力された複数のデータ群それぞれに非線形置換および線形変換を行う第4のステップ(例えば、図4のステップS4)と、前記ラウンド関数処理手段が、前記第4のステップから出力された複数のデータ群を前記入力データとして、前記第1のステップから前記第4のステップまでの処理を所定回数実行する第5のステップ(例えば、図4のステップS5)と、前記終端処理手段が、前記第5のステップの後に、前記第4のステップから出力された複数のデータ群に対して排他的論理和演算を実行し、所定長のハッシュ関数を生成する第6のステップ(例えば、図4のステップS6)と、を含むことを特徴とするアルゴリズム可変型ハッシュ関数生成方法を提案している。 (8) The present invention executes a predetermined process one or more times, and includes a round function processing means comprising a cyclic shift means, an exclusive OR operation means connected to the cyclic shift means, an operation determination means, and a stirring means, And an algorithm variable hash function generation method in an algorithm variable hash function generation device configured by termination processing means, wherein the cyclic shift means inputs each of a plurality of data groups obtained by dividing input data into predetermined bits. A first step (for example, step S1 in FIG. 4) for performing a cyclic shift of the bit determined according to the bit information of an arbitrary fixed value to be performed, and the operation determining means performs an operation by the exclusive OR operation means A second step (for example, step S2 in FIG. 4) for determining whether or not to execute according to the bit information of the fixed value, and the exclusive The logical sum operation means, based on whether or not the operation determined in the second step is executed, from the data group at one end of the plurality of data groups subjected to the cyclic shift in the first step to the other The exclusive OR operation is performed on the adjacent data group in order up to the data group at the end, and when the data group at the other end is reached, the data at the one end from the data group at the other end A third step (for example, step S3 in FIG. 4) for performing an exclusive OR operation on the adjacent data group in order up to the group, and the stirring means are output from the third step. A fourth step (for example, step S4 in FIG. 4) for performing non-linear replacement and linear transformation on each of the plurality of data groups, and the round function processing means outputs the plurality of data groups output from the fourth step input As data, a fifth step (for example, step S5 in FIG. 4) for executing the processing from the first step to the fourth step a predetermined number of times, and the termination processing means after the fifth step A sixth step (for example, step S6 in FIG. 4) that performs an exclusive OR operation on the plurality of data groups output from the fourth step to generate a hash function of a predetermined length, This paper proposes an algorithm variable hash function generation method characterized in that
この発明によれば、アルゴリズム可変型ハッシュ関数生成装置は、所定の処理を1回以上実行し、巡回シフト手段、巡回シフト手段に接続される排他的論理和演算手段、演算決定手段、および攪拌手段からなるラウンド関数処理手段、並びに終端処理手段により構成される。まず、第1のステップにおいて、巡回シフト手段が、入力データを所定ビット毎に区切った複数のデータ群それぞれに、入力される任意の固定値のビット情報に応じて決定したビットの巡回シフトを行う。次に、第2のステップにおいて、演算決定手段が、排他的論理和演算手段による演算の実行の有無を固定値のビット情報に応じて決定する。次に、第3のステップにおいて、排他的論理和演算手段が、第2のステップで決定された演算の実行の有無に基づいて、第1のステップで巡回シフトが行われた複数のデータ群の一方の端のデータ群から他方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行し、他方の端のデータ群まで達すると、他方の端のデータ群から一方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行する。次に、第4のステップにおいて、攪拌手段が、第3のステップから出力された複数のデータ群それぞれに非線形置換および線形変換を行う。次に、第5のステップにおいて、ラウンド関数処理手段が、第4のステップから出力された複数のデータ群を入力データとして、第1のステップから第4のステップまでの処理を所定回数実行する。次に、第6のステップにおいて、終端処理手段が、第5のステップの後に、第4のステップから出力された複数のデータ群に対して排他的論理和演算を実行し、所定長のハッシュ関数を生成する。したがって、ラウンド関数処理手段が、任意の固定値のビット情報によりアルゴリズムを可変する部分と、常にアルゴリズムが可変しない固定の部分とから構成されることにより安全性を確保することができる。また、終端処理手段を備えることにより、ハッシュ関数の特性である一方向性を確保することができる。 According to this invention, the algorithm variable hash function generation device executes predetermined processing one or more times, and performs cyclic shift means, exclusive OR operation means connected to the cyclic shift means, operation determination means, and agitation means. The round function processing means and the termination processing means. First, in the first step, the cyclic shift means performs cyclic shift of bits determined according to bit information of an arbitrary fixed value inputted to each of a plurality of data groups obtained by dividing input data into predetermined bits. . Next, in the second step, the operation determining means determines whether or not the operation by the exclusive OR operation means is performed according to the fixed bit information. Next, in the third step, the exclusive OR operation means determines whether or not the plurality of data groups subjected to the cyclic shift in the first step based on the execution of the operation determined in the second step. In order from one end data group to the other end data group, an exclusive OR operation is performed on the adjacent data group, and when the other end data group is reached, the other end data group To the data group at one end in order, an exclusive OR operation is performed on the adjacent data group. Next, in the fourth step, the agitation means performs nonlinear replacement and linear transformation on each of the plurality of data groups output from the third step. Next, in the fifth step, the round function processing means executes the processing from the first step to the fourth step a predetermined number of times using the plurality of data groups output from the fourth step as input data. Next, in a sixth step, the termination processing means performs an exclusive OR operation on the plurality of data groups output from the fourth step after the fifth step, and a hash function having a predetermined length Is generated. Therefore, safety can be ensured by the round function processing means comprising a part where the algorithm is changed by bit information of an arbitrary fixed value and a fixed part where the algorithm is not always changed. Further, by providing the termination processing means, it is possible to ensure the unidirectionality that is the characteristic of the hash function.
(9) 本発明は、所定の処理を1回以上実行し、巡回シフト手段、前記巡回シフト手段に接続される排他的論理和演算手段、演算決定手段、および攪拌手段からなるラウンド関数処理手段、並びに終端処理手段により構成されるアルゴリズム可変型MAC生成装置におけるアルゴリズム可変型MAC生成方法をコンピュータに実行させるプログラムであって、前記巡回シフト手段が、入力データを所定ビット毎に区切った複数のデータ群それぞれに、入力される鍵のビット情報に応じて決定したビットの巡回シフトを行う第1のステップ(例えば、図4のステップS1)と、前記演算決定手段が、前記排他的論理和演算手段による演算の実行の有無を前記鍵のビット情報に応じて決定する第2のステップ(例えば、図4のステップS2)と、前記排他的論理和演算手段が、前記第2のステップで決定された演算の実行の有無に基づいて、前記第1のステップで巡回シフトが行われた複数のデータ群の一方の端のデータ群から他方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行し、当該他方の端のデータ群まで達すると、当該他方の端のデータ群から当該一方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行する第3のステップ(例えば、図4のステップS3)と、前記攪拌手段が、前記第3のステップから出力された複数のデータ群それぞれに非線形置換および線形変換を行う第4のステップ(例えば、図4のステップS4)と、前記ラウンド関数処理手段が、前記第4のステップから出力された複数のデータ群を前記入力データとして、前記第1のステップから前記第4のステップまでの処理を所定回数実行する第5のステップ(例えば、図4のステップS5)と、前記終端処理手段が、前記第5のステップの後に、前記第4のステップから出力された複数のデータ群に対して排他的論理和演算を実行し、所定長のMACを生成する第6のステップ(例えば、図4のステップS6)と、をコンピュータに実行させるプログラムを提案している。 (9) The present invention executes a predetermined process one or more times, and a round function processing means comprising a cyclic shift means, an exclusive OR operation means connected to the cyclic shift means, an operation determination means, and a stirring means, In addition, a program for causing a computer to execute an algorithm variable MAC generation method in an algorithm variable MAC generation apparatus configured by termination processing means, wherein the cyclic shift means includes a plurality of data groups in which input data is divided into predetermined bits A first step (for example, step S1 in FIG. 4) for performing a cyclic shift of a bit determined according to the bit information of the input key, and the operation determination means are performed by the exclusive OR operation means. A second step (for example, step S2 in FIG. 4) for determining whether or not to perform an operation according to the bit information of the key; A data group at one end of the plurality of data groups on which the cyclic shift is performed in the first step based on whether or not the exclusive OR operation means performs the operation determined in the second step To the other end data group, the exclusive OR operation is performed on the adjacent data group, and when the other end data group is reached, the other end data group starts to the one end data group. A third step (for example, step S3 in FIG. 4) for performing an exclusive OR operation on the adjacent data group in order up to the end data group, and the stirring means from the third step A fourth step (for example, step S4 in FIG. 4) for performing non-linear replacement and linear transformation on each of the plurality of output data groups, and the round function processing means, a plurality of data output from the fourth step group As the input data, a fifth step (for example, step S5 in FIG. 4) for executing the processing from the first step to the fourth step a predetermined number of times, and the termination processing means, After the step, a sixth step (for example, step S6 in FIG. 4) that performs an exclusive OR operation on the plurality of data groups output from the fourth step to generate a predetermined length MAC; A program for causing a computer to execute is proposed.
この発明によれば、アルゴリズム可変型MAC生成装置は、所定の処理を1回以上実行し、巡回シフト手段、巡回シフト手段に接続される排他的論理和演算手段、演算決定手段、および攪拌手段からなるラウンド関数処理手段、並びに終端処理手段により構成される。まず、第1のステップにおいて、巡回シフト手段が、入力データを所定ビット毎に区切った複数のデータ群それぞれに、入力される鍵のビット情報に応じて決定したビットの巡回シフトを行う。次に、第2のステップにおいて、演算決定手段が、排他的論理和演算手段による演算の実行の有無を鍵のビット情報に応じて決定する。次に、第3のステップにおいて、排他的論理和演算手段が、第2のステップで決定された演算の実行の有無に基づいて、第1のステップで巡回シフトが行われた複数のデータ群の一方の端のデータ群から他方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行し、他方の端のデータ群まで達すると、他方の端のデータ群から一方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行する。次に、第4のステップにおいて、攪拌手段が、第3のステップから出力された複数のデータ群それぞれに非線形置換および線形変換を行う。次に、第5のステップにおいて、ラウンド関数処理手段が、第4のステップから出力された複数のデータ群を入力データとして、第1のステップから第4のステップまでの処理を所定回数実行する。次に、第6のステップにおいて、終端処理手段が、第5のステップの後に、第4のステップから出力された複数のデータ群に対して排他的論理和演算を実行し、所定長のMACを生成する。したがって、ラウンド関数処理手段が、鍵のビット情報によりアルゴリズムを可変する部分と、常にアルゴリズムが可変しない固定の部分とから構成されることにより安全性を確保することができる。また、終端処理手段を備えることにより、MACの特性である一方向性を確保することができる。 According to this invention, the algorithm variable MAC generation device executes predetermined processing one or more times, and includes a cyclic shift unit, an exclusive OR operation unit connected to the cyclic shift unit, an operation determination unit, and an agitation unit. Round function processing means and termination processing means. First, in a first step, the cyclic shift means performs a cyclic shift of bits determined according to bit information of an input key for each of a plurality of data groups obtained by dividing input data into predetermined bits. Next, in the second step, the operation determining means determines whether or not the exclusive OR operation means is to be executed according to the bit information of the key. Next, in the third step, the exclusive OR operation means determines whether or not the plurality of data groups subjected to the cyclic shift in the first step based on the execution of the operation determined in the second step. In order from one end data group to the other end data group, an exclusive OR operation is performed on the adjacent data group, and when the other end data group is reached, the other end data group To the data group at one end in order, an exclusive OR operation is performed on the adjacent data group. Next, in the fourth step, the agitation means performs nonlinear replacement and linear transformation on each of the plurality of data groups output from the third step. Next, in the fifth step, the round function processing means executes the processing from the first step to the fourth step a predetermined number of times using the plurality of data groups output from the fourth step as input data. Next, in the sixth step, the termination processing means performs an exclusive OR operation on the plurality of data groups output from the fourth step after the fifth step, and obtains a MAC having a predetermined length. Generate. Therefore, safety can be ensured by the round function processing means comprising the part where the algorithm is changed by the bit information of the key and the fixed part where the algorithm is not always changed. In addition, by providing the termination processing means, it is possible to ensure unidirectionality that is a characteristic of the MAC.
(10) 本発明は、所定の処理を1回以上実行し、巡回シフト手段、前記巡回シフト手段に接続される排他的論理和演算手段、演算決定手段、および攪拌手段からなるラウンド関数処理手段、並びに終端処理手段により構成されるアルゴリズム可変型ハッシュ関数生成装置におけるアルゴリズム可変型ハッシュ関数生成方法をコンピュータに実行させるプログラムであって、前記巡回シフト手段が、入力データを所定ビット毎に区切った複数のデータ群それぞれに、入力される任意の固定値のビット情報に応じて決定したビットの巡回シフトを行う第1のステップ(例えば、図4のステップS1)と、前記演算決定手段が、前記排他的論理和演算手段による演算の実行の有無を前記固定値のビット情報に応じて決定する第2のステップ(例えば、図4のステップS2)と、前記排他的論理和演算手段が、前記第2のステップで決定された演算の実行の有無に基づいて、前記第1のステップで巡回シフトが行われた複数のデータ群の一方の端のデータ群から他方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行し、当該他方の端のデータ群まで達すると、当該他方の端のデータ群から当該一方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行する第3のステップ(例えば、図4のステップS3)と、前記攪拌手段が、前記第3のステップから出力された複数のデータ群それぞれに非線形置換および線形変換を行う第4のステップ(例えば、図4のステップS4)と、前記ラウンド関数処理手段が、前記第4のステップから出力された複数のデータ群を前記入力データとして、前記第1のステップから前記第4のステップまでの処理を所定回数実行する第5のステップ(例えば、図4のステップS5)と、前記終端処理手段が、前記第5のステップの後に、前記第4のステップから出力された複数のデータ群に対して排他的論理和演算を実行し、所定長のハッシュ関数を生成する第6のステップ(例えば、図4のステップS6)と、をコンピュータに実行させるプログラムを提案している。 (10) The present invention executes a predetermined process one or more times, and includes a round function processing means comprising a cyclic shift means, an exclusive OR operation means connected to the cyclic shift means, an operation determination means, and a stirring means, In addition, a program that causes a computer to execute an algorithm variable hash function generation method in an algorithm variable hash function generation device configured by termination processing means, wherein the cyclic shift means includes a plurality of input data divided into predetermined bits. A first step (for example, step S1 in FIG. 4) for performing a cyclic shift of bits determined according to bit information of an arbitrary fixed value input to each data group; A second step of determining whether or not to execute an operation by an OR operation means according to the bit information of the fixed value (example) For example, step S2) of FIG. 4 and the exclusive OR operation means is a plurality of the cyclic shifts performed in the first step based on whether or not the operation determined in the second step is executed. In order from the data group at one end of the data group to the data group at the other end, an exclusive OR operation is performed on the adjacent data group, and when the data group at the other end is reached, A third step (for example, step S3 in FIG. 4) for performing an exclusive OR operation on the adjacent data group in order from the other end data group to the one end data group; A fourth step (eg, step S4 in FIG. 4) in which the agitation unit performs nonlinear replacement and linear transformation on each of the plurality of data groups output from the third step, and the round function processing unit includes the first step. 4 steps A fifth step (for example, step S5 in FIG. 4) for executing the processing from the first step to the fourth step a predetermined number of times using the plurality of data groups output from the input data, and the termination A sixth step (6) in which the processing means performs an exclusive OR operation on the plurality of data groups output from the fourth step after the fifth step to generate a hash function having a predetermined length. For example, a program for causing a computer to execute step S6) of FIG. 4 is proposed.
この発明によれば、アルゴリズム可変型ハッシュ関数生成装置は、所定の処理を1回以上実行し、巡回シフト手段、巡回シフト手段に接続される排他的論理和演算手段、演算決定手段、および攪拌手段からなるラウンド関数処理手段、並びに終端処理手段により構成される。まず、第1のステップにおいて、巡回シフト手段が、入力データを所定ビット毎に区切った複数のデータ群それぞれに、入力される任意の固定値のビット情報に応じて決定したビットの巡回シフトを行う。次に、第2のステップにおいて、演算決定手段が、排他的論理和演算手段による演算の実行の有無を固定値のビット情報に応じて決定する。次に、第3のステップにおいて、排他的論理和演算手段が、第2のステップで決定された演算の実行の有無に基づいて、第1のステップで巡回シフトが行われた複数のデータ群の一方の端のデータ群から他方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行し、他方の端のデータ群まで達すると、他方の端のデータ群から一方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行する。次に、第4のステップにおいて、攪拌手段が、第3のステップから出力された複数のデータ群それぞれに非線形置換および線形変換を行う。次に、第5のステップにおいて、ラウンド関数処理手段が、第4のステップから出力された複数のデータ群を入力データとして、第1のステップから第4のステップまでの処理を所定回数実行する。次に、第6のステップにおいて、終端処理手段が、第5のステップの後に、第4のステップから出力された複数のデータ群に対して排他的論理和演算を実行し、所定長のハッシュ関数を生成する。したがって、ラウンド関数処理手段が、任意の固定値のビット情報によりアルゴリズムを可変する部分と、常にアルゴリズムが可変しない固定の部分とから構成されることにより安全性を確保することができる。また、終端処理手段を備えることにより、ハッシュ関数の特性である一方向性を確保することができる。 According to this invention, the algorithm variable hash function generation device executes predetermined processing one or more times, and performs cyclic shift means, exclusive OR operation means connected to the cyclic shift means, operation determination means, and agitation means. The round function processing means and the termination processing means. First, in the first step, the cyclic shift means performs cyclic shift of bits determined according to bit information of an arbitrary fixed value inputted to each of a plurality of data groups obtained by dividing input data into predetermined bits. . Next, in the second step, the operation determining means determines whether or not the operation by the exclusive OR operation means is performed according to the fixed bit information. Next, in the third step, the exclusive OR operation means determines whether or not the plurality of data groups subjected to the cyclic shift in the first step based on the execution of the operation determined in the second step. In order from one end data group to the other end data group, an exclusive OR operation is performed on the adjacent data group, and when the other end data group is reached, the other end data group To the data group at one end in order, an exclusive OR operation is performed on the adjacent data group. Next, in the fourth step, the agitation means performs nonlinear replacement and linear transformation on each of the plurality of data groups output from the third step. Next, in the fifth step, the round function processing means executes the processing from the first step to the fourth step a predetermined number of times using the plurality of data groups output from the fourth step as input data. Next, in a sixth step, the termination processing means performs an exclusive OR operation on the plurality of data groups output from the fourth step after the fifth step, and a hash function having a predetermined length Is generated. Therefore, safety can be ensured by the round function processing means comprising a part where the algorithm is changed by bit information of an arbitrary fixed value and a fixed part where the algorithm is not always changed. Further, by providing the termination processing means, it is possible to ensure the unidirectionality that is the characteristic of the hash function.
本発明によれば、安全性を確保しつつ、鍵のビット情報または任意の固定値のビット情報によりアルゴリズムを可変にすることができる。 According to the present invention, it is possible to make an algorithm variable by using bit information of a key or bit information of an arbitrary fixed value while ensuring safety.
以下、図面を用いて、本発明の実施形態について詳細に説明する。なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。 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.
<アルゴリズム可変型MAC生成装置の機能構成>
図1を用いて、本発明に係るアルゴリズム可変型MAC生成装置1の機能構成について説明する。
<Functional configuration of algorithm variable MAC generation device>
A functional configuration of the algorithm variable
本実施形態に係るアルゴリズム可変型MAC生成装置1は、図1に示すように、ラウンド関数処理部100と、終端処理部200とから構成される。
The algorithm variable
ラウンド関数処理部100は、入力される鍵のビット情報に応じて、アルゴリズムが可変する部分と常にアルゴリズムが固定の部分とから構成され、入力された認証対象データ(以下、単にデータという)を所定ビット毎に区切った複数のデータ群(以下、ブロックという)それぞれに所定の処理を1回以上実行する。なお、この処理1回を1ラウンドと数える。
The round
本実施形態において、入力される鍵のビット情報にはMAC(Message Authentication Codes:メッセージ認証コード)鍵のビット情報を用い、MAC鍵のビット情報により可変部分のアルゴリズムの構造を決定する。具体的には、1ラウンドにMAC鍵うち14ビットを用い、複数ラウンド行う場合には、MAC鍵の先頭から順に14ビットずつ用いる。MAC鍵の鍵長が14の倍数でない場合は、14の倍数になるように、0をパディングする。 In this embodiment, bit information of a MAC (Message Authentication Code) key is used as bit information of an input key, and the structure of the algorithm of the variable part is determined by the bit information of the MAC key. Specifically, 14 bits of the MAC key are used for one round, and when performing multiple rounds, 14 bits are used in order from the top of the MAC key. When the key length of the MAC key is not a multiple of 14, 0 is padded so as to be a multiple of 14.
入力される鍵のビット情報に、任意の固定値のビット情報を用いることにより、アルゴリズム可変型MAC生成装置1をアルゴリズム可変型ハッシュ関数生成装置にすることができる。
By using bit information of an arbitrary fixed value for the input bit information of the key, the algorithm variable
ラウンド関数処理部100は、図1に示すように、巡回シフト部(N1、N2、N3、N4)110a、110b、110c、110dと、排他的論理和演算部120a、120b、120c、120d、120e、120fと、スイッチ部(S1、S2、S3、S4、S5、S6)130a、130b、130c、130d、130e、130fと、攪拌部140a、140b、140c、140dとから構成される。巡回シフト部N1〜N4、排他的論理和演算部120a〜120f、およびスイッチ部S1〜S6が、入力されるMAC鍵のビット情報に応じて、アルゴリズムが可変する部分であって、攪拌部140a〜140dが、常にアルゴリズムが固定の部分である。
As shown in FIG. 1, the round
図1では、512ビットのデータからMACを生成するアルゴリズム可変型MAC生成装置1を例示して説明する。なお、512ビット未満および512ビットを超えるデータの場合には、事前に512ビット出力のハッシュ関数(SHA−512等)を適用することで、本構成を利用することができる。
In FIG. 1, an algorithm variable
巡回シフト部N1〜N4は、入力されたデータを所定ビット毎に区切ったブロックそれぞれに、MAC鍵のビット情報に応じて決定したビットの巡回シフトを行う。本実施形態においては、データが512ビットであるので、巡回シフト部N1〜N4は、128ビット毎に区切られた4ブロックそれぞれに、巡回シフトを行う。巡回シフトは、32ビットの倍数分左にシフトするものとし、巡回シフトのパターンには、巡回シフトなし、32ビット巡回シフト、64ビット巡回シフト、および96ビット巡回シフトの4通りあるとする。 Cyclic shift units N1 to N4 perform cyclic shift of bits determined according to the bit information of the MAC key on each block obtained by dividing input data into predetermined bits. In the present embodiment, since the data is 512 bits, the cyclic shift units N1 to N4 perform a cyclic shift on each of the four blocks divided every 128 bits. The cyclic shift is shifted to the left by a multiple of 32 bits, and there are four cyclic shift patterns: no cyclic shift, 32-bit cyclic shift, 64-bit cyclic shift, and 96-bit cyclic shift.
上述したように、MAC鍵のうち14ビットが可変部分のアルゴリズムの構造を決定するが、具体的には、MAC鍵のうち14ビットが、巡回シフト部N1〜N4および後述するスイッチ部S1〜S6に割り当てられ、各ビット情報より巡回シフト部N1〜N4であればシフトパターンを、スイッチ部S1〜S6であればスイッチの開閉が決定される。 As described above, the structure of the algorithm in which 14 bits of the MAC key are variable is determined. Specifically, 14 bits of the MAC key are cyclic shift units N1 to N4 and switch units S1 to S6 described later. From each bit information, the shift pattern is determined for cyclic shift units N1 to N4, and the switch opening and closing is determined for switch units S1 to S6.
図2に、MAC鍵のうち14ビットの各ビットと巡回シフト部N1〜N4およびスイッチ部S1〜S6との対応を示す。図2に示すように巡回シフト部N1〜N4は、0から7ビット目までの2ビットずつによりシフトパターンが決定される。例えば、巡回シフト部N1は、N1に割り当てられている0および1ビット目が「00」であれば巡回シフトなし、「01」であれば32ビット巡回シフト、「10」であれば64ビット巡回シフト、「11」であれば96ビット巡回シフトと決定する。スイッチ部S1〜S6については後述する。 FIG. 2 shows the correspondence between each 14 bits of the MAC key and the cyclic shift units N1 to N4 and the switch units S1 to S6. As shown in FIG. 2, in the cyclic shift units N1 to N4, the shift pattern is determined by 2 bits from 0 to the 7th bit. For example, the cyclic shift unit N1 has no cyclic shift if the 0th and first bits assigned to N1 are “00”, the 32-bit cyclic shift if “01”, and the 64-bit cyclic if “10”. If the shift is “11”, it is determined as a 96-bit cyclic shift. The switch units S1 to S6 will be described later.
図1に戻って、スイッチ部S1〜S6は、MAC鍵のビット情報に応じてスイッチを開閉することにより、各巡回シフト部N1〜N4に接続された排他的論理和演算部120a〜120fにおける演算の実行の有無を決定する。具体的には、図2に示すようにMAC鍵の8〜13ビット目までの各1ビットがスイッチ部S1〜S6に割り当てられており、各1ビットの値によって、スイッチ部S1〜S6の開閉を決定する。例えば、1ビットの値が「0」である場合に、スイッチを開け、排他的論理和演算部に演算を実行させず、「1」である場合に、スイッチを閉じ、排他的論理和演算部に演算を実行させる。
Returning to FIG. 1, the switch units S1 to S6 open and close the switches in accordance with the bit information of the MAC key, thereby calculating in the exclusive OR
排他的論理和演算部120a〜120fは、入力された2つのブロックに対して、排他的論理和演算を実行する。上述したように、排他的論理和演算部120a〜120eにおいて排他的論理和演算を実行するか否かは、スイッチ部S1〜S6それぞれにより決定される。スイッチが開いている場合には、排他的論理和演算部は入力されたブロックをそのまま出力する。一方、スイッチが閉じている場合には、入力された2つのブロックに対して、排他的論理和演算部は排他的論理和演算を実行し、演算結果のブロックを出力する。以下に、各排他的論理和演算部について詳細に説明する。
The exclusive OR
排他的論理和演算部120aは、スイッチ部S1が開いている場合には、排他的論理和演算を実行せず、巡回シフト部N2から入力されたブロックをそのまま出力する。一方、排他的論理和演算部120aは、スイッチ部S1が閉じている場合には、巡回シフト部N1から入力されたブロックと巡回シフト部N2から入力されたブロックとの排他的論理和演算を実行し、演算結果のブロックを出力する。
When the switch unit S1 is open, the exclusive OR
同様に、排他的論理和演算部120bは、スイッチ部S2が開いている場合には、巡回シフト部N3から入力されたブロックをそのまま出力し、スイッチ部S2が閉じている場合には、排他的論理和演算部120aの演算結果のブロックと巡回シフト部N3から入力されたブロックとの排他的論理和演算を実行し、演算結果として新たなブロックを出力する。また、排他的論理和演算部120cは、スイッチ部S3が開いている場合には、巡回シフト部N4から入力されたブロックをそのまま出力し、スイッチ部S3が閉じている場合には、排他的論理和演算部120bの演算結果のブロックと巡回シフト部N4から入力されたブロックとの排他的論理和演算を実行し、演算結果として新たなブロックを出力する。
Similarly, the exclusive OR
排他的論理和演算部120dは、スイッチ部S4が開いている場合には、排他的論理和演算を実行せず、排他的論理和演算部120bの演算結果のブロックをそのまま出力する。一方、排他的論理和演算部120dは、スイッチ部S4が閉じている場合には、排他的論理和演算部120cの演算結果のブロックと排他的論理和演算部120bの演算結果のブロックとの排他的論理和演算を実行し、演算結果として新たなブロックを出力する。
When the switch unit S4 is open, the exclusive OR
同様に、排他的論理和演算部120eは、スイッチ部S5が開いている場合には、排他的論理和演算部120aの演算結果のブロックをそのまま出力し、スイッチ部S5が閉じている場合には、排他的論理和演算部120dの演算結果のブロックと排他的論理和演算部120aの演算結果のブロックとの排他的論理和演算を実行し、演算結果として新たなブロックを出力する。また、排他的論理和演算部120fは、スイッチ部S6が開いている場合には、巡回シフト部N1から入力されたブロックをそのまま出力し、スイッチ部S6が閉じている場合には、排他的論理和演算部120eの演算結果のブロックと巡回シフト部N1から入力されたブロックとの排他的論理和演算を実行し、演算結果として新たなブロックを出力する。
Similarly, the exclusive OR operation unit 120e outputs the operation result block of the exclusive OR
攪拌部140a〜140dは、攪拌関数によって、排他的論理和演算部120c〜120fから出力されたブロックに対し、攪拌処理を行う。攪拌関数は、非線形置換と線形変換とから構成される関数であれば、任意の関数を用いることができる。なお、攪拌関数として、AESのラウンド関数を用いた場合には高い安全性を確保できる。また、上述したように、攪拌部140a〜140dのアルゴリズムは固定であるので、MAC鍵のビット情報に依存しない。
The
本実施形態において、図1に示すように、ラウンド関数処理部100は、攪拌部140a〜140dの前に、排他的論理和演算部120c〜120fから出力されたブロックを、ブロック単位に右に1ブロック巡回シフトさせてもよい。これにより、安全性をより高めることができる。
In the present embodiment, as shown in FIG. 1, the round
終端処理部200は、攪拌部140a〜140dそれぞれから出力されたブロックを排他的論理和演算し、予め決定された所定長のMACを生成する。本実施形態においては256ビットのMACを生成し、図3を用いて説明する。攪拌部140aから出力されたデータを出力ブロック1とし、同様に、攪拌部140b〜eから出力されたデータをそれぞれ出力ブロック2、出力ブロック3、および出力ブロック4とする。
The
終端処理部200は、出力ブロック1と出力ブロック2との排他的論理和演算を実行し、128ビットのブロックを出力する。また、終端処理部200は、出力ブロック3と出力ブロック4との排他的論理和演算を実行し、128ビットのブロックを出力する。そして、終端処理部200は、出力ブロック1と出力ブロック2との排他的論理和演算から出力されたブロックと、出力ブロック3と出力ブロック4との排他的論理和演算から出力されたブロックとを連結し、256ビットのMACを生成する。
The
このように、各攪拌部140a〜140dから出力されたブロック同士を排他的論理和演算することにより、MACの特徴である一方向性を確保することができる。MAC鍵の替わりに任意の固定値を用いてハッシュ関数を生成する場合においても、同様に、ハッシュ関数の特徴である一方向性を確保することができる。
In this way, by performing an exclusive OR operation on the blocks output from the stirring
<アルゴリズム可変MAC生成処理>
図4は、本実施形態に係るアルゴリズム可変型MAC生成装置1におけるアルゴリズム可変型MAC生成処理のフローを示す図である。入力されたデータを所定ビット毎に区切った複数のブロック、本実施形態においては、128ビットの4つのブロックがラウンド関数処理部100に入力されると処理が開始する。
<Algorithm variable MAC generation processing>
FIG. 4 is a diagram illustrating a flow of algorithm variable MAC generation processing in the algorithm variable
まず、ステップS1において、巡回シフト部N1〜N4それぞれは、MAC鍵の0〜7ビットまでの2ビットずつの値に基づいて巡回シフトするシフトパターンを決定し、決定したシフトパターンに応じて、各ブロックのビット値を巡回シフトさせる。なお、アルゴリズム可変型ハッシュ関数生成装置におけるアルゴリズム可変型ハッシュ関数生成処理では、MAC鍵の替わりに任意の固定値を用いる。 First, in step S1, each of the cyclic shift units N1 to N4 determines a shift pattern to be cyclically shifted based on a 2-bit value from 0 to 7 bits of the MAC key, and according to the determined shift pattern, The bit value of the block is cyclically shifted. In the algorithm variable hash function generation process in the algorithm variable hash function generation device, an arbitrary fixed value is used instead of the MAC key.
次に、ステップS2において、スイッチ部S1〜S6それぞれは、MAC鍵の8〜13ビットまでの1ビットずつの値に基づいて、開閉を決定する。 Next, in step S2, each of the switch units S1 to S6 determines opening and closing based on the value of each bit from 8 to 13 bits of the MAC key.
次に、ステップS3において、排他的論理和演算部120a〜120fは、ステップS2で決定されたスイッチの開閉に従って、ステップS1で巡回シフトが行われた4つのブロックの先頭のブロックから末尾のブロックまで順に、隣に位置するブロックに対して排他的論理和演算を実行し、末尾のブロックまで達すると、末尾のブロックから先頭のブロックまで順に、隣に位置するブロックに対して排他的論理和演算を実行する。
Next, in step S3, the exclusive OR
次に、ステップS4において、攪拌手段は、ステップS3から出力された4つのブロックそれぞれに非線形処理および線形変換を行う。 Next, in step S4, the stirring means performs nonlinear processing and linear transformation on each of the four blocks output from step S3.
次に、ステップS5において、ラウンド関数処理手段は、ステップS1からステップS4までの処理を所定回数繰り返したか否か判断する。所定回数繰り返した場合には、ステップS6に処理を進め、一方、所定回数繰り返していない場合には、ステップS4から出力された4つのブロックを入力データとして、ステップS1に処理を戻す。 Next, in step S5, the round function processing means determines whether or not the processing from step S1 to step S4 has been repeated a predetermined number of times. If it has been repeated a predetermined number of times, the process proceeds to step S6. On the other hand, if it has not been repeated a predetermined number of times, the process returns to step S1 with the four blocks output from step S4 as input data.
次に、ステップS6において、終端処理手段は、ステップS4で出力された4つのブロックを排他的論理和演算し、128ビットのMACを生成する。なお、アルゴリズム可変型ハッシュ関数生成装置におけるアルゴリズム可変型ハッシュ関数生成処理では、MACの替わりにハッシュ関数が生成される。 Next, in step S6, the termination processing means performs an exclusive OR operation on the four blocks output in step S4 to generate a 128-bit MAC. In the algorithm variable hash function generation process in the algorithm variable hash function generation device, a hash function is generated instead of the MAC.
したがって、以上説明したように、本実施形態によれば、ラウンド関数処理部100が、MAC鍵のビット情報によりアルゴリズムを可変する部分(巡回シフト部N1〜N4、排他的論理和演算部120a〜120f、およびスイッチ部S1〜S6)と、常にアルゴリズムが可変しない固定の部分(攪拌部140a〜140d)とから構成されることにより安全性を確保することができる。また、終端処理部200を備えることにより、MACの特性である一方向性を確保することができる。さらに、MAC鍵の替わりに、任意の固定値を用いることにより、アルゴリズム可変型ハッシュ関数を生成することができる。
Therefore, as described above, according to the present embodiment, the round
なお、アルゴリズム可変型MAC生成装置の処理をコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをアルゴリズム可変型MAC生成装置に読み込ませ、実行することによって本発明のアルゴリズム可変型MAC生成装置を実現することができる。ここでいうコンピュータシステムとは、OSや周辺装置等のハードウェアを含む。 Note that the algorithm variable type MAC generating apparatus of the present invention is recorded by recording the processing of the algorithm variable type MAC generating apparatus on a computer-readable recording medium, and causing the algorithm variable type MAC generating apparatus to read and execute the program recorded on the recording medium. A MAC generation device can be realized. The computer system here includes an OS and hardware such as peripheral devices.
また、「コンピュータシステム」は、WWW(World Wide Web)システムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されても良い。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。 Further, the “computer system” includes a homepage providing environment (or display environment) if a WWW (World Wide Web) system is used. The program may be transmitted from a computer system storing the program in a storage device or the like to another computer system 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 system, and what is called a difference file (difference program) may be sufficient.
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。 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 アルゴリズム可変型MAC生成装置
100 ラウンド関数処理部
110a〜110d 巡回シフト部N1、N2、N3、N4
120a〜120f 排他的論理和演算部
130a〜130f スイッチ部S1、S2、S3、S4、S5、S6
140a〜140d 攪拌部
200 終端処理部
1 Algorithm variable type
120a to 120f Exclusive OR
140a-
Claims (10)
前記ラウンド関数処理手段で処理が実行された複数のデータ群に対して排他的論理和演算を実行し、所定長のMACを生成する終端処理手段と、
を備え、
前記ラウンド関数処理手段が、入力される鍵のビット情報に応じてアルゴリズムが可変する部分と、常にアルゴリズムが固定の部分とから構成されることを特徴とするアルゴリズム可変型MAC生成装置。 Round function processing means for executing predetermined processing at least once for each of a plurality of data groups obtained by dividing input data into predetermined bits;
Termination processing means for performing exclusive OR operation on a plurality of data groups processed by the round function processing means to generate a MAC having a predetermined length;
With
The algorithm variable MAC generating apparatus, wherein the round function processing means is composed of a portion where the algorithm is variable according to bit information of the input key and a portion where the algorithm is always fixed.
前記区切った複数のデータ群それぞれに、前記鍵のビット情報に応じて決定したビットの巡回シフトを行う巡回シフト手段と、
前記巡回シフト手段に接続され、当該巡回シフト手段で巡回シフトが行われた複数のデータ群の一方の端のデータ群から他方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行し、当該他方の端のデータ群まで達すると、当該他方の端のデータ群から当該一方の端のデータ群まで隣に位置するデータ群に対して排他的論理和演算を実行する排他的論理和演算手段と、
前記排他的論理和演算手段による演算の実行の有無を前記鍵のビット情報に応じて決定する演算決定手段と、
前記排他的論理和演算手段から出力された複数のデータ群それぞれに非線形置換および線形変換を行う攪拌手段と、
からなり、
前記巡回シフト手段、前記排他的論理和演算手段、前記演算決定手段、および前記攪拌手段の処理を所定回数実行することを特徴とする請求項1に記載のアルゴリズム可変型MAC生成装置。 The round function processing means is
Cyclic shift means for performing a cyclic shift of bits determined according to the bit information of the key for each of the plurality of divided data groups;
Connected to the cyclic shift means and exclusive to the adjacent data group in order from one end data group to the other end data group of the plurality of data groups subjected to the cyclic shift by the cyclic shift means When the other end data group is reached, an exclusive OR operation is performed on the data group located next to the one end data group from the other end data group. An exclusive OR operation means to be executed;
Calculation determining means for determining whether or not the exclusive OR calculation means performs the operation according to the bit information of the key;
Agitation means for performing non-linear replacement and linear transformation on each of a plurality of data groups output from the exclusive OR operation means;
Consists of
2. The algorithm variable MAC generation apparatus according to claim 1, wherein the cyclic shift unit, the exclusive OR operation unit, the operation determination unit, and the agitation unit are executed a predetermined number of times.
前記攪拌手段の処理を実行する前に、前記排他的論理和演算手段より出力された複数のデータ群をデータ群単位で巡回シフトを行うことを特徴とする請求項2に記載のアルゴリズム可変型MAC生成装置。 The round function processing means is
3. The algorithm-variable MAC according to claim 2, wherein the plurality of data groups output from the exclusive OR operation unit are cyclically shifted in units of data groups before executing the processing of the agitation unit. Generator.
前記ラウンド関数処理手段で処理が実行された複数のデータ群に対して排他的論理和演算を実行し、所定長のハッシュ関数を生成する終端処理手段と、
を備え、
前記ラウンド関数処理手段が、入力される任意の固定値のビット情報に応じてアルゴリズムが可変する部分と、常にアルゴリズムが固定の部分とから構成されることを特徴とするアルゴリズム可変型ハッシュ関数生成装置。 Round function processing means for executing predetermined processing at least once for each of a plurality of data groups obtained by dividing input data into predetermined bits;
Terminal processing means for performing exclusive OR operation on a plurality of data groups processed by the round function processing means to generate a hash function of a predetermined length;
With
An algorithm variable hash function generation device, wherein the round function processing means includes a part where the algorithm is variable according to bit information of an arbitrary fixed value inputted, and a part where the algorithm is always fixed .
前記巡回シフト手段が、入力データを所定ビット毎に区切った複数のデータ群それぞれに、入力される鍵のビット情報に応じて決定したビットの巡回シフトを行う第1のステップと、
前記演算決定手段が、前記排他的論理和演算手段による演算の実行の有無を前記鍵のビット情報に応じて決定する第2のステップと、
前記排他的論理和演算手段が、前記第2のステップで決定された演算の実行の有無に基づいて、前記第1のステップで巡回シフトが行われた複数のデータ群の一方の端のデータ群から他方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行し、当該他方の端のデータ群まで達すると、当該他方の端のデータ群から当該一方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行する第3のステップと、
前記攪拌手段が、前記第3のステップから出力された複数のデータ群それぞれに非線形置換および線形変換を行う第4のステップと、
前記ラウンド関数処理手段が、前記第4のステップから出力された複数のデータ群を前記入力データとして、前記第1のステップから前記第4のステップまでの処理を所定回数実行する第5のステップと、
前記終端処理手段が、前記第5のステップの後に、前記第4のステップから出力された複数のデータ群に対して排他的論理和演算を実行し、所定長のMACを生成する第6のステップと、
を含むことを特徴とするアルゴリズム可変型MAC生成方法。 A predetermined process is executed one or more times, and is constituted by a round function processing means including a cyclic shift means, an exclusive OR operation means connected to the cyclic shift means, an operation determination means, and a stirring means, and a termination processing means. An algorithm variable MAC generation method in an algorithm variable MAC generation apparatus,
A first step in which the cyclic shift means performs a cyclic shift of bits determined according to bit information of an input key for each of a plurality of data groups obtained by dividing input data into predetermined bits;
A second step in which the operation determining means determines whether or not to perform an operation by the exclusive OR operation means according to bit information of the key;
A data group at one end of the plurality of data groups on which the cyclic shift is performed in the first step based on whether or not the exclusive OR operation means performs the operation determined in the second step To the other end data group, the exclusive OR operation is performed on the adjacent data group, and when the other end data group is reached, the other end data group starts to the one end data group. A third step of performing an exclusive OR operation on the adjacent data group in order to the end data group;
A fourth step in which the stirring means performs non-linear replacement and linear transformation on each of the plurality of data groups output from the third step;
A fifth step in which the round function processing means executes the processing from the first step to the fourth step a predetermined number of times using the plurality of data groups output from the fourth step as the input data; ,
A sixth step in which the termination processing means performs an exclusive OR operation on the plurality of data groups output from the fourth step after the fifth step to generate a MAC having a predetermined length. When,
An algorithm variable MAC generation method comprising:
前記巡回シフト手段が、入力データを所定ビット毎に区切った複数のデータ群それぞれに、入力される任意の固定値のビット情報に応じて決定したビットの巡回シフトを行う第1のステップと、
前記演算決定手段が、前記排他的論理和演算手段による演算の実行の有無を前記固定値のビット情報に応じて決定する第2のステップと、
前記排他的論理和演算手段が、前記第2のステップで決定された演算の実行の有無に基づいて、前記第1のステップで巡回シフトが行われた複数のデータ群の一方の端のデータ群から他方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行し、当該他方の端のデータ群まで達すると、当該他方の端のデータ群から当該一方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行する第3のステップと、
前記攪拌手段が、前記第3のステップから出力された複数のデータ群それぞれに非線形置換および線形変換を行う第4のステップと、
前記ラウンド関数処理手段が、前記第4のステップから出力された複数のデータ群を前記入力データとして、前記第1のステップから前記第4のステップまでの処理を所定回数実行する第5のステップと、
前記終端処理手段が、前記第5のステップの後に、前記第4のステップから出力された複数のデータ群に対して排他的論理和演算を実行し、所定長のハッシュ関数を生成する第6のステップと、
を含むことを特徴とするアルゴリズム可変型ハッシュ関数生成方法。 A predetermined process is executed one or more times, and is constituted by a round function processing means including a cyclic shift means, an exclusive OR operation means connected to the cyclic shift means, an operation determination means, and a stirring means, and a termination processing means. An algorithm variable hash function generation method in an algorithm variable hash function generation device
A first step in which the cyclic shift means performs a cyclic shift of bits determined in accordance with bit information of an arbitrary fixed value input to each of a plurality of data groups obtained by dividing input data into predetermined bits;
A second step in which the operation determining means determines whether or not to perform an operation by the exclusive OR operation means according to bit information of the fixed value;
A data group at one end of the plurality of data groups on which the cyclic shift is performed in the first step based on whether or not the exclusive OR operation means performs the operation determined in the second step To the other end data group, the exclusive OR operation is performed on the adjacent data group, and when the other end data group is reached, the other end data group starts to the one end data group. A third step of performing an exclusive OR operation on the adjacent data group in order to the end data group;
A fourth step in which the stirring means performs non-linear replacement and linear transformation on each of the plurality of data groups output from the third step;
A fifth step in which the round function processing means executes the processing from the first step to the fourth step a predetermined number of times using the plurality of data groups output from the fourth step as the input data; ,
The termination processing means performs an exclusive OR operation on the plurality of data groups output from the fourth step after the fifth step to generate a hash function having a predetermined length. Steps,
An algorithm variable hash function generation method characterized by comprising:
前記巡回シフト手段が、入力データを所定ビット毎に区切った複数のデータ群それぞれに、入力される鍵のビット情報に応じて決定したビットの巡回シフトを行う第1のステップと、
前記演算決定手段が、前記排他的論理和演算手段による演算の実行の有無を前記鍵のビット情報に応じて決定する第2のステップと、
前記排他的論理和演算手段が、前記第2のステップで決定された演算の実行の有無に基づいて、前記第1のステップで巡回シフトが行われた複数のデータ群の一方の端のデータ群から他方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行し、当該他方の端のデータ群まで達すると、当該他方の端のデータ群から当該一方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行する第3のステップと、
前記攪拌手段が、前記第3のステップから出力された複数のデータ群それぞれに非線形置換および線形変換を行う第4のステップと、
前記ラウンド関数処理手段が、前記第4のステップから出力された複数のデータ群を前記入力データとして、前記第1のステップから前記第4のステップまでの処理を所定回数実行する第5のステップと、
前記終端処理手段が、前記第5のステップの後に、前記第4のステップから出力された複数のデータ群に対して排他的論理和演算を実行し、所定長のMACを生成する第6のステップと、
をコンピュータに実行させるプログラム。 A predetermined process is executed one or more times, and is constituted by a round function processing means including a cyclic shift means, an exclusive OR operation means connected to the cyclic shift means, an operation determination means, and a stirring means, and a termination processing means. A program for causing a computer to execute an algorithm variable MAC generation method in an algorithm variable MAC generation apparatus,
A first step in which the cyclic shift means performs a cyclic shift of bits determined according to bit information of an input key for each of a plurality of data groups obtained by dividing input data into predetermined bits;
A second step in which the operation determining means determines whether or not to perform an operation by the exclusive OR operation means according to bit information of the key;
A data group at one end of the plurality of data groups on which the cyclic shift is performed in the first step based on whether or not the exclusive OR operation means performs the operation determined in the second step To the other end data group, the exclusive OR operation is performed on the adjacent data group, and when the other end data group is reached, the other end data group starts to the one end data group. A third step of performing an exclusive OR operation on the adjacent data group in order to the end data group;
A fourth step in which the stirring means performs non-linear replacement and linear transformation on each of the plurality of data groups output from the third step;
A fifth step in which the round function processing means executes the processing from the first step to the fourth step a predetermined number of times using the plurality of data groups output from the fourth step as the input data; ,
A sixth step in which the termination processing means performs an exclusive OR operation on the plurality of data groups output from the fourth step after the fifth step to generate a MAC having a predetermined length. When,
A program that causes a computer to execute.
前記巡回シフト手段が、入力データを所定ビット毎に区切った複数のデータ群それぞれに、入力される任意の固定値のビット情報に応じて決定したビットの巡回シフトを行う第1のステップと、
前記演算決定手段が、前記排他的論理和演算手段による演算の実行の有無を前記固定値のビット情報に応じて決定する第2のステップと、
前記排他的論理和演算手段が、前記第2のステップで決定された演算の実行の有無に基づいて、前記第1のステップで巡回シフトが行われた複数のデータ群の一方の端のデータ群から他方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行し、当該他方の端のデータ群まで達すると、当該他方の端のデータ群から当該一方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行する第3のステップと、
前記攪拌手段が、前記第3のステップから出力された複数のデータ群それぞれに非線形置換および線形変換を行う第4のステップと、
前記ラウンド関数処理手段が、前記第4のステップから出力された複数のデータ群を前記入力データとして、前記第1のステップから前記第4のステップまでの処理を所定回数実行する第5のステップと、
前記終端処理手段が、前記第5のステップの後に、前記第4のステップから出力された複数のデータ群に対して排他的論理和演算を実行し、所定長のハッシュ関数を生成する第6のステップと、
をコンピュータに実行させるプログラム。 A predetermined process is executed one or more times, and is constituted by a round function processing means including a cyclic shift means, an exclusive OR operation means connected to the cyclic shift means, an operation determination means, and a stirring means, and a termination processing means. A program for causing a computer to execute an algorithm variable hash function generation method in an algorithm variable hash function generator,
A first step in which the cyclic shift means performs a cyclic shift of bits determined in accordance with bit information of an arbitrary fixed value input to each of a plurality of data groups obtained by dividing input data into predetermined bits;
A second step in which the operation determining means determines whether or not to perform an operation by the exclusive OR operation means according to bit information of the fixed value;
A data group at one end of the plurality of data groups on which the cyclic shift is performed in the first step based on whether or not the exclusive OR operation means performs the operation determined in the second step To the other end data group, the exclusive OR operation is performed on the adjacent data group, and when the other end data group is reached, the other end data group starts to the one end data group. A third step of performing an exclusive OR operation on the adjacent data group in order to the end data group;
A fourth step in which the stirring means performs non-linear replacement and linear transformation on each of the plurality of data groups output from the third step;
A fifth step in which the round function processing means executes the processing from the first step to the fourth step a predetermined number of times using the plurality of data groups output from the fourth step as the input data; ,
The termination processing means performs an exclusive OR operation on the plurality of data groups output from the fourth step after the fifth step to generate a hash function having a predetermined length. Steps,
A program that causes a computer to execute.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011239651A JP2013097161A (en) | 2011-10-31 | 2011-10-31 | Algorithm variable mac generation device, algorithm variable hash function generation device, algorithm variable mac generation method, algorithm variable hash function generation method and program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011239651A JP2013097161A (en) | 2011-10-31 | 2011-10-31 | Algorithm variable mac generation device, algorithm variable hash function generation device, algorithm variable mac generation method, algorithm variable hash function generation method and program |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2013097161A true JP2013097161A (en) | 2013-05-20 |
Family
ID=48619153
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2011239651A Pending JP2013097161A (en) | 2011-10-31 | 2011-10-31 | Algorithm variable mac generation device, algorithm variable hash function generation device, algorithm variable mac generation method, algorithm variable hash function generation method and program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2013097161A (en) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63278438A (en) * | 1987-05-11 | 1988-11-16 | Hitachi Ltd | Cryptographic system by secret cryptograph procedure |
| JPH07177139A (en) * | 1993-12-20 | 1995-07-14 | Fujitsu Ltd | Data disturbance circuit |
| JP2000047580A (en) * | 1998-05-29 | 2000-02-18 | Hitachi Ltd | Encryption conversion device, decryption conversion device, encryption communication device, and automatic fee collection device |
| JP2000506620A (en) * | 1995-12-08 | 2000-05-30 | ノーザン・テレコム・リミテッド | Symmetric cryptography construction method using CAST design procedure |
| WO2010020910A2 (en) * | 2008-08-19 | 2010-02-25 | Nxp B.V. | Method for generating a cipher-based message authentication code |
-
2011
- 2011-10-31 JP JP2011239651A patent/JP2013097161A/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63278438A (en) * | 1987-05-11 | 1988-11-16 | Hitachi Ltd | Cryptographic system by secret cryptograph procedure |
| JPH07177139A (en) * | 1993-12-20 | 1995-07-14 | Fujitsu Ltd | Data disturbance circuit |
| JP2000506620A (en) * | 1995-12-08 | 2000-05-30 | ノーザン・テレコム・リミテッド | Symmetric cryptography construction method using CAST design procedure |
| JP2000047580A (en) * | 1998-05-29 | 2000-02-18 | Hitachi Ltd | Encryption conversion device, decryption conversion device, encryption communication device, and automatic fee collection device |
| WO2010020910A2 (en) * | 2008-08-19 | 2010-02-25 | Nxp B.V. | Method for generating a cipher-based message authentication code |
Non-Patent Citations (2)
| Title |
|---|
| CSNG200700881005; 廣瀬勝一: 'ハッシュ関数の構成と証明可能安全性' 電子情報通信学会誌 第90巻第6号, 20070601, p.447-450 * |
| JPN6013042755; 廣瀬勝一: 'ハッシュ関数の構成と証明可能安全性' 電子情報通信学会誌 第90巻第6号, 20070601, p.447-450 * |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Paul et al. | Towards post-quantum security for cyber-physical systems: Integrating PQC into industrial M2M communication | |
| Shivaramakrishna et al. | A novel hybrid cryptographic framework for secure data storage in cloud computing: Integrating AES-OTP and RSA with adaptive key management and Time-Limited access control | |
| Velliangiri et al. | An efficient lightweight privacy-preserving mechanism for industry 4.0 based on elliptic curve cryptography | |
| Bernstein | Cryptographic competitions | |
| KR20190039850A (en) | Methods for constructing secure hash functions from bit-mixers | |
| Chen et al. | Data privacy in trigger-action systems | |
| Qiqieh et al. | DNA cryptography based security framework for health-cloud data | |
| CN103973439B (en) | A kind of multi-variable public key ciphering method | |
| CN1592190B (en) | Hardware cryptographic engine and encryption method | |
| Huang et al. | A secure data encryption method employing a sequential–logic style mechanism for a cloud system | |
| Bhandiwad et al. | Enhancing the security of IOT enabled systems using light weight hybrid cryptography models | |
| Grassi et al. | Practical low data-complexity subspace-trail cryptanalysis of round-reduced PRINCE | |
| Nwaga et al. | Post-quantum cryptographic algorithms for secure communication in decentralized blockchain and cloud infrastructure | |
| CN116915407A (en) | Electronic public certificate verification method and system based on block chain | |
| Nugroho | Performance and security evaluation of quantum-secure symmetric key agreement | |
| Kulkarni et al. | A study on data security in cloud computing: Traditional cryptography to the quantum age cryptography | |
| Aveem et al. | Construction of S-boxes from cyclic group of residue class of noncommutative quaternion integers | |
| JP2013097161A (en) | Algorithm variable mac generation device, algorithm variable hash function generation device, algorithm variable mac generation method, algorithm variable hash function generation method and program | |
| JP6261493B2 (en) | Zero knowledge proof system and method, certifier device, verifier device, and program | |
| Bertram et al. | Nomenclatura-Encyclopedia of modern Cryptography and Internet Security: From AutoCrypt and Exponential Encryption to Zero-Knowledge-Proof Keys [Paperback] | |
| Kumar et al. | Cryptanalytic performance appraisal of improved CCH2 proxy multisignature scheme | |
| Schmied | Cryptology for engineers: An application-oriented mathematical introduction | |
| CN111885056A (en) | Zero knowledge proving method and device based on block chain and electronic equipment | |
| JP4891035B2 (en) | Cryptographic protocol generation apparatus, cryptographic protocol generation method and program | |
| Rasheed et al. | Creating a new Cryptographic algorithm using Collatz Conjecture |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140731 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150212 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150217 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150420 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20150630 |