[go: up one dir, main page]

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 PDF

Info

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
Application number
JP2011239651A
Other languages
Japanese (ja)
Inventor
Kazuhide Fukushima
和英 福島
Shinsaku Kiyomoto
晋作 清本
Masaru Miyake
優 三宅
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 JP2011239651A priority Critical patent/JP2013097161A/en
Publication of JP2013097161A publication Critical patent/JP2013097161A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide 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 which can change algorithm by bit information of a key while ensuring security.SOLUTION: An algorithm variable MAC generation device 1 comprises a round function processing part 100 which executes prescribed processing once or more to each of a plurality of data groups in which inputted data is delimited by a prescribed bit, and a termination processing part 200 which executes exclusive OR operation to the plurality of data groups to which processing is executed in the round function processing part 100 and generates MAC with a prescribed length. The round function processing part 100 is composed of a part in which algorithm changes corresponding to bit information of an inputted key and a part in which algorithm is always fixed.

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.

JH.Song,R.Poovendran,J.Lee,T.Iwata,The AES−CMAC Algorithm,Request for Comments:4493,http://tools.ietf.org/html/rfc4493[2011年10月28日検索]JH. Song, R.A. Poovendran, J. et al. Lee, T .; Iwata, The AES-CMAC Algorithm, Request for Comments: 4493, http: // tools. ietf. org / html / rfc4493 [searched October 28, 2011] R.Housley,A 224−bit One−way Hash Function:SHA−224,Request for Comments:3874,http://tools.ietf.org/html/rfc3874[2011年10月28日検索]R. Houseley, A 224-bit One-way Hash Function: SHA-224, Request for Comments: 3874, http: // tools. ietf. org / html / rfc3874 [retrieved on October 28, 2011]

しかしながら、秘匿型のアルゴリズムの場合、一度アルゴリズムがばれてしまうと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 function processing unit 100 in FIG. 1). And a termination processing unit (for example, the termination processing unit 200 in FIG. 1) that performs an exclusive OR operation on a plurality of data groups processed by the round function processing unit and generates a predetermined length MAC. And the round function processing means is composed of a part where the algorithm is variable according to bit information of the input key and a part where the algorithm is always fixed. A MAC generator is proposed.

この発明によれば、ラウンド関数処理手段は、入力される鍵のビット情報に応じてアルゴリズムが可変する部分と、常にアルゴリズムが固定の部分とから構成され、入力データを所定ビット毎に区切った複数のデータ群それぞれに、所定の処理を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 cyclic shift units 110a to 110d in FIG. 1) and one end of a plurality of data groups connected to the cyclic shift means and subjected to cyclic shift by the cyclic shift means. In order from the 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 starts from the other end data group. Exclusive OR operation means (for example, exclusive OR operation units 120a to 120 in FIG. 1) that performs an exclusive OR operation on a data group located adjacent to one end data group. 1), an operation determining means (for example, corresponding to the switch units 130a to 130f in FIG. 1) for determining whether or not the exclusive OR operation means is executed according to the bit information of the key, and the exclusive And agitation means (for example, equivalent to the agitation units 140a to 140d in FIG. 1) that performs nonlinear replacement and linear transformation on each of a plurality of data groups output from the logical OR operation means, and the cyclic shift means, the exclusive An algorithm variable MAC generating apparatus is proposed in which the processes of the logical OR operation means, the operation determination means, and the stirring means are executed a predetermined number of times.

この発明によれば、巡回シフト手段は、区切った複数のデータ群それぞれに、鍵のビット情報に応じて決定したビットの巡回シフトを行う。排他的論理和演算手段は、巡回シフト手段に接続され、巡回シフト手段で巡回シフトが行われた複数のデータ群の一方の端のデータ群から他方の端のデータ群まで順に、隣に位置するデータ群に対して排他的論理和演算を実行し、他方の端のデータ群まで達すると、他方の端のデータ群から一方の端のデータ群まで隣に位置するデータ群に対して排他的論理和演算を実行する。演算決定手段は、排他的論理和演算手段による演算の実行の有無を鍵のビット情報に応じて決定する。攪拌手段は、排他的論理和演算手段から出力された複数のデータ群それぞれに非線形置換および線形変換を行う。そして、ラウンド関数処理手段は、巡回シフト手段、排他的論理和演算手段、演算決定手段、および攪拌手段の処理を所定回数実行する。したがって、アルゴリズムの可変部分を、安全性と性能に影響を与えない巡回シフト手段、排他的論理和演算手段、および演算決定手段で構成することによって、鍵のビット情報によりアルゴリズムを可変しても、安全性や性能を確保することができる。   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 function processing unit 100 in FIG. 1) that executes predetermined processing at least once for each of a plurality of data groups obtained by dividing input data into predetermined bits. And a termination processing unit (for example, termination processing unit 200 in FIG. 1) that 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. And the round function processing means is composed of a part in which the algorithm is variable according to bit information of an arbitrary fixed value input, and a part in which the algorithm is always fixed. We propose an algorithm variable hash function generator.

この発明によれば、ラウンド関数処理手段は、入力される任意の固定値のビット情報に応じてアルゴリズムが可変する部分と、常にアルゴリズムが固定の部分とから構成され、入力データを所定ビット毎に区切った複数のデータ群それぞれに、所定の処理を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.

本実施形態に係るアルゴリズム可変型MAC生成装置の機能構成を示す図である。It is a figure which shows the function structure of the algorithm variable type MAC production | generation apparatus which concerns on this embodiment. 本実施形態に係るMAC鍵の鍵ビット情報と巡回シフト部N1〜N4およびスイッチ部S1〜S6との対応を示す表である。It is a table | surface which shows a response | compatibility with the key bit information of the MAC key which concerns on this embodiment, cyclic shift part N1-N4, and switch part S1-S6. 本実施形態に係る終端処理部の処理を示す図である。It is a figure which shows the process of the termination | terminus process part which concerns on this embodiment. 本実施形態に係るアルゴリズム可変型MAC生成装置のアルゴリズム可変型MAC生成処理のフロー図である。It is a flowchart of the algorithm variable type MAC production | generation process of the algorithm variable type MAC production | generation apparatus which concerns on this embodiment.

以下、図面を用いて、本発明の実施形態について詳細に説明する。なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。   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 generation device 1 according to the present invention will be described with reference to FIG.

本実施形態に係るアルゴリズム可変型MAC生成装置1は、図1に示すように、ラウンド関数処理部100と、終端処理部200とから構成される。   The algorithm variable MAC generation device 1 according to the present embodiment includes a round function processing unit 100 and a termination processing unit 200, as shown in FIG.

ラウンド関数処理部100は、入力される鍵のビット情報に応じて、アルゴリズムが可変する部分と常にアルゴリズムが固定の部分とから構成され、入力された認証対象データ(以下、単にデータという)を所定ビット毎に区切った複数のデータ群(以下、ブロックという)それぞれに所定の処理を1回以上実行する。なお、この処理1回を1ラウンドと数える。   The round function processing unit 100 is composed of a part where the algorithm is variable and a part where the algorithm is always fixed according to the bit information of the input key, and the input authentication target data (hereinafter simply referred to as data) is predetermined. Predetermined processing is executed once or more for each of a plurality of data groups (hereinafter referred to as blocks) divided for each bit. One process is counted as one 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 MAC generation device 1 can be made an algorithm variable hash function generation device.

ラウンド関数処理部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 function processing unit 100 includes cyclic shift units (N1, N2, N3, and N4) 110a, 110b, 110c, and 110d, and exclusive OR operation units 120a, 120b, 120c, 120d, and 120e. 120f, switch sections (S1, S2, S3, S4, S5, S6) 130a, 130b, 130c, 130d, 130e, 130f, and stirring sections 140a, 140b, 140c, 140d. The cyclic shift units N1 to N4, the exclusive OR operation units 120a to 120f, and the switch units S1 to S6 are portions where the algorithm varies according to the bit information of the input MAC key, and the mixing units 140a to 140a 140d is a part where the algorithm is always fixed.

図1では、512ビットのデータからMACを生成するアルゴリズム可変型MAC生成装置1を例示して説明する。なお、512ビット未満および512ビットを超えるデータの場合には、事前に512ビット出力のハッシュ関数(SHA−512等)を適用することで、本構成を利用することができる。   In FIG. 1, an algorithm variable MAC generation device 1 that generates a MAC from 512-bit data will be described as an example. In the case of data less than 512 bits and more than 512 bits, this configuration can be used by applying a 512-bit output hash function (such as SHA-512) in advance.

巡回シフト部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 operation units 120a to 120f connected to the cyclic shift units N1 to N4. Determine whether to execute. Specifically, as shown in FIG. 2, each bit from the 8th to 13th bits of the MAC key is allocated to the switch units S1 to S6, and the switch units S1 to S6 are opened and closed according to the value of each 1 bit. To decide. For example, when the value of 1 bit is “0”, the switch is opened and the exclusive OR operation unit is not executed, and when it is “1”, the switch is closed and the exclusive OR operation unit. To perform the operation.

排他的論理和演算部120a〜120fは、入力された2つのブロックに対して、排他的論理和演算を実行する。上述したように、排他的論理和演算部120a〜120eにおいて排他的論理和演算を実行するか否かは、スイッチ部S1〜S6それぞれにより決定される。スイッチが開いている場合には、排他的論理和演算部は入力されたブロックをそのまま出力する。一方、スイッチが閉じている場合には、入力された2つのブロックに対して、排他的論理和演算部は排他的論理和演算を実行し、演算結果のブロックを出力する。以下に、各排他的論理和演算部について詳細に説明する。   The exclusive OR operation units 120a to 120f execute an exclusive OR operation on the two input blocks. As described above, whether or not to execute the exclusive OR operation in the exclusive OR operation units 120a to 120e is determined by each of the switch units S1 to S6. When the switch is open, the exclusive OR operation unit outputs the input block as it is. On the other hand, when the switch is closed, the exclusive OR operation unit performs the exclusive OR operation on the two input blocks, and outputs the operation result block. Below, each exclusive OR operation part is demonstrated in detail.

排他的論理和演算部120aは、スイッチ部S1が開いている場合には、排他的論理和演算を実行せず、巡回シフト部N2から入力されたブロックをそのまま出力する。一方、排他的論理和演算部120aは、スイッチ部S1が閉じている場合には、巡回シフト部N1から入力されたブロックと巡回シフト部N2から入力されたブロックとの排他的論理和演算を実行し、演算結果のブロックを出力する。   When the switch unit S1 is open, the exclusive OR operation unit 120a does not execute the exclusive OR operation and outputs the block input from the cyclic shift unit N2 as it is. On the other hand, when the switch unit S1 is closed, the exclusive OR operation unit 120a performs an exclusive OR operation between the block input from the cyclic shift unit N1 and the block input from the cyclic shift unit N2. Then, the operation result block is output.

同様に、排他的論理和演算部120bは、スイッチ部S2が開いている場合には、巡回シフト部N3から入力されたブロックをそのまま出力し、スイッチ部S2が閉じている場合には、排他的論理和演算部120aの演算結果のブロックと巡回シフト部N3から入力されたブロックとの排他的論理和演算を実行し、演算結果として新たなブロックを出力する。また、排他的論理和演算部120cは、スイッチ部S3が開いている場合には、巡回シフト部N4から入力されたブロックをそのまま出力し、スイッチ部S3が閉じている場合には、排他的論理和演算部120bの演算結果のブロックと巡回シフト部N4から入力されたブロックとの排他的論理和演算を実行し、演算結果として新たなブロックを出力する。   Similarly, the exclusive OR operation unit 120b outputs the block input from the cyclic shift unit N3 as it is when the switch unit S2 is open, and exclusive when the switch unit S2 is closed. An exclusive OR operation of the block of the operation result of the OR operation unit 120a and the block input from the cyclic shift unit N3 is executed, and a new block is output as the operation result. The exclusive OR operation unit 120c outputs the block input from the cyclic shift unit N4 as it is when the switch unit S3 is open, and the exclusive logical unit when the switch unit S3 is closed. An exclusive OR operation is performed on the operation result block of the sum operation unit 120b and the block input from the cyclic shift unit N4, and a new block is output as the operation result.

排他的論理和演算部120dは、スイッチ部S4が開いている場合には、排他的論理和演算を実行せず、排他的論理和演算部120bの演算結果のブロックをそのまま出力する。一方、排他的論理和演算部120dは、スイッチ部S4が閉じている場合には、排他的論理和演算部120cの演算結果のブロックと排他的論理和演算部120bの演算結果のブロックとの排他的論理和演算を実行し、演算結果として新たなブロックを出力する。   When the switch unit S4 is open, the exclusive OR operation unit 120d does not execute the exclusive OR operation and outputs the block of the operation result of the exclusive OR operation unit 120b as it is. On the other hand, when the switch unit S4 is closed, the exclusive OR operation unit 120d excludes the operation result block of the exclusive OR operation unit 120c from the operation result block of the exclusive OR operation unit 120b. A logical OR operation is executed, and a new block is output as the operation result.

同様に、排他的論理和演算部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 operation unit 120a as it is when the switch unit S5 is open, and when the switch unit S5 is closed. Then, an exclusive OR operation is performed on the operation result block of the exclusive OR operation unit 120d and the operation result block of the exclusive OR operation unit 120a, and a new block is output as the operation result. The exclusive OR operation unit 120f outputs the block input from the cyclic shift unit N1 as it is when the switch unit S6 is open, and the exclusive logical unit when the switch unit S6 is closed. The exclusive OR operation of the block of the operation result of the sum operation unit 120e and the block input from the cyclic shift unit N1 is executed, and a new block is output as the operation result.

攪拌部140a〜140dは、攪拌関数によって、排他的論理和演算部120c〜120fから出力されたブロックに対し、攪拌処理を行う。攪拌関数は、非線形置換と線形変換とから構成される関数であれば、任意の関数を用いることができる。なお、攪拌関数として、AESのラウンド関数を用いた場合には高い安全性を確保できる。また、上述したように、攪拌部140a〜140dのアルゴリズムは固定であるので、MAC鍵のビット情報に依存しない。   The agitation units 140a to 140d perform agitation processing on the blocks output from the exclusive OR operation units 120c to 120f by an agitation function. As the stirring function, any function can be used as long as it is a function composed of nonlinear replacement and linear transformation. In addition, when the AES round function is used as the stirring function, high safety can be ensured. Further, as described above, the algorithm of the agitation units 140a to 140d is fixed and does not depend on the bit information of the MAC key.

本実施形態において、図1に示すように、ラウンド関数処理部100は、攪拌部140a〜140dの前に、排他的論理和演算部120c〜120fから出力されたブロックを、ブロック単位に右に1ブロック巡回シフトさせてもよい。これにより、安全性をより高めることができる。   In the present embodiment, as shown in FIG. 1, the round function processing unit 100 sets the blocks output from the exclusive OR operation units 120 c to 120 f to 1 on the right in block units before the stirring units 140 a to 140 d. You may make a block cyclic shift. Thereby, safety can be improved more.

終端処理部200は、攪拌部140a〜140dそれぞれから出力されたブロックを排他的論理和演算し、予め決定された所定長のMACを生成する。本実施形態においては256ビットのMACを生成し、図3を用いて説明する。攪拌部140aから出力されたデータを出力ブロック1とし、同様に、攪拌部140b〜eから出力されたデータをそれぞれ出力ブロック2、出力ブロック3、および出力ブロック4とする。   The termination processing unit 200 performs an exclusive OR operation on the blocks output from the agitation units 140a to 140d, and generates a predetermined length MAC. In the present embodiment, a 256-bit MAC is generated and described with reference to FIG. The data output from the stirring unit 140a is referred to as an output block 1, and similarly, the data output from the stirring units 140b to 140e are referred to as an output block 2, an output block 3, and an output block 4, respectively.

終端処理部200は、出力ブロック1と出力ブロック2との排他的論理和演算を実行し、128ビットのブロックを出力する。また、終端処理部200は、出力ブロック3と出力ブロック4との排他的論理和演算を実行し、128ビットのブロックを出力する。そして、終端処理部200は、出力ブロック1と出力ブロック2との排他的論理和演算から出力されたブロックと、出力ブロック3と出力ブロック4との排他的論理和演算から出力されたブロックとを連結し、256ビットのMACを生成する。   The termination processing unit 200 performs an exclusive OR operation between the output block 1 and the output block 2 and outputs a 128-bit block. In addition, the termination processing unit 200 performs an exclusive OR operation between the output block 3 and the output block 4, and outputs a 128-bit block. Then, the termination processing unit 200 includes a block output from the exclusive OR operation of the output block 1 and the output block 2 and a block output from the exclusive OR operation of the output block 3 and the output block 4. Concatenate to generate a 256-bit MAC.

このように、各攪拌部140a〜140dから出力されたブロック同士を排他的論理和演算することにより、MACの特徴である一方向性を確保することができる。MAC鍵の替わりに任意の固定値を用いてハッシュ関数を生成する場合においても、同様に、ハッシュ関数の特徴である一方向性を確保することができる。   In this way, by performing an exclusive OR operation on the blocks output from the stirring units 140a to 140d, it is possible to ensure the unidirectionality that is a feature of the MAC. Similarly, when a hash function is generated using an arbitrary fixed value instead of the MAC key, the one-way characteristic that is a feature of the hash function can be ensured.

<アルゴリズム可変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 MAC generation device 1 according to the present embodiment. When a plurality of blocks obtained by dividing input data into predetermined bits, in this embodiment, four 128-bit blocks are input to the round function processing unit 100, the processing starts.

まず、ステップ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 operation units 120a to 120f follow the opening and closing of the switch determined in step S2, from the first block to the last block of the four blocks subjected to the cyclic shift in step S1. In order, the exclusive OR operation is performed on the adjacent block, and when the last block is reached, the exclusive OR operation is performed on the adjacent block in order from the last block to the first block. Run.

次に、ステップ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 function processing unit 100 changes the algorithm based on the bit information of the MAC key (cyclic shift units N1 to N4, exclusive OR operation units 120a to 120f). , And switch portions S1 to S6) and a fixed portion (stirring portions 140a to 140d) where the algorithm is not always changed, can ensure safety. In addition, by providing the termination processing unit 200, it is possible to ensure unidirectionality that is a characteristic of the MAC. Furthermore, an algorithm variable hash function can be generated by using an arbitrary fixed value instead of the MAC key.

なお、アルゴリズム可変型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 MAC generation device 100 Round function processing units 110a to 110d Cyclic shift units N1, N2, N3, N4
120a to 120f Exclusive OR operation unit 130a to 130f Switch units S1, S2, S3, S4, S5, S6
140a-140d Stirring unit 200 Termination unit

Claims (10)

入力データを所定ビット毎に区切った複数のデータ群それぞれに、所定の処理を1回以上実行するラウンド関数処理手段と、
前記ラウンド関数処理手段で処理が実行された複数のデータ群に対して排他的論理和演算を実行し、所定長の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.
前記演算決定手段が、「1」あるいは「0」である前記鍵の所定位置のビット情報により、前記排他的論理和演算手段における演算の実行の有無を決定することを特徴とする請求項2または3に記載のアルゴリズム可変型MAC生成装置。   The operation determining means determines whether or not to perform an operation in the exclusive OR operation means based on bit information at a predetermined position of the key that is "1" or "0". 4. The algorithm variable MAC generation device according to 3. 前記攪拌手段が、AESのラウンド関数を用いて、非線形置換および線形変換を行うことを特徴とする請求項2から請求項4のいずれか1項に記載のアルゴリズム可変型MAC生成装置。   5. The algorithm variable MAC generation device according to claim 2, wherein the agitation unit performs nonlinear substitution and linear transformation using an AES round function. 6. 入力データを所定ビット毎に区切った複数のデータ群それぞれに、所定の処理を1回以上実行するラウンド関数処理手段と、
前記ラウンド関数処理手段で処理が実行された複数のデータ群に対して排他的論理和演算を実行し、所定長のハッシュ関数を生成する終端処理手段と、
を備え、
前記ラウンド関数処理手段が、入力される任意の固定値のビット情報に応じてアルゴリズムが可変する部分と、常にアルゴリズムが固定の部分とから構成されることを特徴とするアルゴリズム可変型ハッシュ関数生成装置。
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回以上実行し、巡回シフト手段、前記巡回シフト手段に接続される排他的論理和演算手段、演算決定手段、および攪拌手段からなるラウンド関数処理手段、並びに終端処理手段により構成されるアルゴリズム可変型MAC生成装置におけるアルゴリズム可変型MAC生成方法であって、
前記巡回シフト手段が、入力データを所定ビット毎に区切った複数のデータ群それぞれに、入力される鍵のビット情報に応じて決定したビットの巡回シフトを行う第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回以上実行し、巡回シフト手段、前記巡回シフト手段に接続される排他的論理和演算手段、演算決定手段、および攪拌手段からなるラウンド関数処理手段、並びに終端処理手段により構成されるアルゴリズム可変型ハッシュ関数生成装置におけるアルゴリズム可変型ハッシュ関数生成方法であって、
前記巡回シフト手段が、入力データを所定ビット毎に区切った複数のデータ群それぞれに、入力される任意の固定値のビット情報に応じて決定したビットの巡回シフトを行う第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回以上実行し、巡回シフト手段、前記巡回シフト手段に接続される排他的論理和演算手段、演算決定手段、および攪拌手段からなるラウンド関数処理手段、並びに終端処理手段により構成されるアルゴリズム可変型MAC生成装置におけるアルゴリズム可変型MAC生成方法をコンピュータに実行させるプログラムであって、
前記巡回シフト手段が、入力データを所定ビット毎に区切った複数のデータ群それぞれに、入力される鍵のビット情報に応じて決定したビットの巡回シフトを行う第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回以上実行し、巡回シフト手段、前記巡回シフト手段に接続される排他的論理和演算手段、演算決定手段、および攪拌手段からなるラウンド関数処理手段、並びに終端処理手段により構成されるアルゴリズム可変型ハッシュ関数生成装置におけるアルゴリズム可変型ハッシュ関数生成方法をコンピュータに実行させるプログラムであって、
前記巡回シフト手段が、入力データを所定ビット毎に区切った複数のデータ群それぞれに、入力される任意の固定値のビット情報に応じて決定したビットの巡回シフトを行う第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.
JP2011239651A 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 Pending JP2013097161A (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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