WO2017056150A1 - メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム - Google Patents

メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム Download PDF

Info

Publication number
WO2017056150A1
WO2017056150A1 PCT/JP2015/077311 JP2015077311W WO2017056150A1 WO 2017056150 A1 WO2017056150 A1 WO 2017056150A1 JP 2015077311 W JP2015077311 W JP 2015077311W WO 2017056150 A1 WO2017056150 A1 WO 2017056150A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
message
bit
key
function
Prior art date
Application number
PCT/JP2015/077311
Other languages
English (en)
French (fr)
Inventor
祐介 内藤
Original Assignee
三菱電機株式会社
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 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to CN201580083257.0A priority Critical patent/CN108028756B/zh
Priority to PCT/JP2015/077311 priority patent/WO2017056150A1/ja
Priority to DE112015006865.1T priority patent/DE112015006865T5/de
Priority to JP2017518568A priority patent/JP6305642B2/ja
Priority to US15/754,431 priority patent/US10326589B2/en
Publication of WO2017056150A1 publication Critical patent/WO2017056150A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Definitions

  • the present invention relates to a technique for generating a message authenticator safely and efficiently using a block cipher.
  • the receiver can check whether or not the transmitted message has been tampered with.
  • the key K is shared in advance between the two parties.
  • the sender of the message generates an authenticator T of the message M from the message M and the key K, and transmits the message M and the authenticator T to the receiver.
  • the message recipient generates an authenticator T ′ from the received message M and key K. If the received authenticator T and the generated authenticator T ′ match, the receiver determines that the message has not been tampered with, and if the receiver does not match, the receiver determines that the message has been tampered with.
  • the security of the message authentication algorithm is indicated by the indistinguishability from the random function.
  • the message authentication algorithm F satisfies the indistinguishability, it means that the identifier D who interacts with either the real world or the ideal world cannot be considered, and the identifier D cannot interact with the identifier D. To do.
  • the discriminator D can select the message M and obtain the message authenticator of F (K, M).
  • the discriminator D can select the message M and obtain the output value of R (M).
  • the identifier D can select the message M many times, and can obtain an output value of F (K, M) or R (M) corresponding to the selected message M.
  • the indistinguishability of the message authentication algorithm F is evaluated by the difference between the probability that the discriminator D outputs 1 in the real world and the probability that the discriminator D outputs 1 in the ideal world.
  • the identifier D can obtain a plurality of outputs of the message authentication algorithm F in the real world, and can obtain a plurality of outputs of the random function R in the ideal world.
  • the message authentication algorithm F satisfies the indistinguishability when the above-described difference in probability is less than or equal to p and p is a small value that can be ignored. This p is called the identification probability.
  • the block cipher E becomes a permutation function having an input / output length of n bits when the key is fixed.
  • Non-Patent Documents 4 to 6 describe block ciphers.
  • Block cipher based message authentication algorithm There is a block cipher based message authentication algorithm.
  • the message M is divided into n-bit message blocks, and a block cipher calculation is performed for each divided message block.
  • the efficiency of the block cipher-based message authentication algorithm is affected by the number of calls, parallelism, and key size described below. Number of calls: Efficiency varies depending on how many times the block cipher is called to calculate an n-bit message block. If the block cipher is called x times for an n-bit message block, 1 / x is called the rate. The closer this rate is to 1, the lower the number of block cipher calls and the higher the efficiency.
  • Key size The key size of the message authentication algorithm depends on how many internal block cipher keys are used. The smallest key size is when there is only one block cipher key K. That is, the process is performed using only one k-bit key K.
  • the identification probability p is obtained by dividing n by the size n bits of the ciphertext c of the block cipher E, the number q of the output of the message authentication algorithm available to the identifier D, and the maximum length of the input message to the message authentication algorithm.
  • the value bmax is obtained.
  • bmax lmax / n.
  • Non-Patent Documents 1 and 2 describe block cipher-based message authentication algorithms with a key size of k bits, parallel processing, and rate 1.
  • Non-Patent Document 3 Although the message authentication algorithm described in Non-Patent Document 3 is more secure than the message authentication algorithm described in Non-Patent Documents 1 and 2, the key size is large.
  • An object of the present invention is to make it possible to implement a block cipher-based message authentication algorithm that improves safety and does not degrade efficiency compared to the message authentication algorithm described in Non-Patent Document 1.
  • a randomizing unit for calculating i 1,. . . , B with the value c [i] for each integer i as an input, the n-bit value w [1], the k-bit value w [2] and n maintaining the randomness of the value c [i].
  • FIG. 1 is a configuration diagram of a message authenticator generation device 10 according to Embodiment 1.
  • FIG. 5 is a flowchart showing the operation of the message authenticator generation device 10 according to the first embodiment.
  • 1 is a configuration diagram of a message authentication algorithm realized by a message authenticator generation device 10 according to Embodiment 1.
  • the block diagram of the message authentication algorithm implement
  • FIG. The block diagram of the message authentication algorithm implement
  • FIG. *** Explanation of configuration *** FIG. 1 is a configuration diagram of a message authenticator generation device 10 according to the first embodiment.
  • the message authenticator generation device 10 includes a processing circuit 11.
  • the processing circuit 11 includes a padding unit 110, a dividing unit 120, a sub key calculating unit 130, a processing unit 140, a randomizing unit 150, a compressing unit 160, an authenticator generating unit 170, and a control unit 180. It is a dedicated electronic circuit that realizes each function.
  • the processing circuit 11 is assumed to be a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, a logic IC, a GA, an ASIC, and an FPGA.
  • GA is an abbreviation for Gate Array.
  • ASIC is an abbreviation for Application Specific Integrated Circuit.
  • FPGA is an abbreviation for Field-Programmable Gate Array.
  • Each function may be realized by one processing circuit 11 or may be realized by distributing each function to a plurality of processing circuits 11.
  • Information, data, signal values, and variable values indicating the results of processing of each function realized by the processing circuit 11 are stored in a storage area such as a register in the processing circuit 11.
  • FIG. 2 is a flowchart showing the operation of the message authenticator generation device 10 according to the first embodiment.
  • FIG. 3 is a configuration diagram of a message authentication algorithm realized by the message authenticator generation device 10 according to the first embodiment. In FIG. 3, the process surrounded by the broken line is realized by the function indicated by the reference numeral attached to the broken line.
  • the operation of the message authenticator generating apparatus 10 according to the first embodiment corresponds to the message authenticator generating method according to the first embodiment.
  • the operation of the message authenticator generation device 10 according to the first embodiment corresponds to the processing of the message authenticator generation program according to the first embodiment.
  • the padding unit 110 receives a message M having an arbitrary length and generates a value M ′ of a bit number that is b times n bits by the injection function pad.
  • b is an integer of 1 or more.
  • means a combination of bit strings.
  • control unit 180 sets 1 as the initial value for the variable i.
  • step S104 the control unit 180 determines whether the variable i is equal to or less than b. If the variable i is equal to or less than b (YES in step S104), the control unit 180 advances the process to step S105. On the other hand, when variable i is larger than b (NO in step S104), control unit 180 advances the process to step S109.
  • the sub key calculation unit 130 receives the key K and the variable i and calculates an n-bit sub key L [i] using the function f.
  • the processing unit 140 receives the value m [i] generated in step S102 and the subkey L [i] generated in step S105, and fixes the subkey L [i]. Then, an n-bit value m ′ [i] is calculated by the function g serving as a replacement function.
  • the randomizing unit 150 receives the n-bit value m ′ [i] generated in step S106 and the k-bit key K for the variable i and inputs the block cipher E using the block cipher E.
  • An n-bit value c [i] having randomness is calculated.
  • the block cipher E is a block cipher function that receives a k-bit key K and an n-bit plaintext m and outputs an n-bit ciphertext c having randomness.
  • the block cipher E used in the calculation for each variable i may be the same function or a different function.
  • step S108 the control unit 180 adds 1 to the variable i. And the control part 180 returns a process to step S104.
  • the authenticator generation unit 170 receives the value w [2] calculated in step S109 and the key K as input, and uses a function e that becomes a replacement function when the key K is fixed.
  • the value K ′ of is calculated.
  • the authenticator generation unit 170 receives the value w [1] calculated in step S109 and the value K ′ calculated in step S110 as input, and uses the block cipher E to generate an n-bit value. Calculate the value c.
  • the block cipher E used in the calculation of step S111 may be the same function as the block cipher E used in the calculation of step S107, or may be a different function.
  • the authenticator generation unit 170 inputs the value w [3] calculated in step S109 and the value c calculated in step S111, and fixes the value w [3].
  • An n-bit value T ′ is calculated by a function d serving as a replacement function.
  • the authenticator generation unit 170 sets the t bits of the n-bit value T ′ as the authenticator T of the message M.
  • the t-bit of any part of the value T ′ may be extracted and used as the authenticator T. Note that t ⁇ n.
  • step S110 to step S112 is an authenticator generation process.
  • the message authenticator generation device 10 implements a block cipher-based message authentication algorithm.
  • the message authentication algorithm realized by the message authenticator generation device 10 according to Embodiment 1 uses only one k-bit key K as a key, the key size is k bits.
  • the message authentication algorithm is rate 1 because the block cipher is called only once for an n-bit message block. That is, the message authentication algorithm realized by the message authenticator generation device 10 according to the first embodiment can have a key size of k bits, parallel processing, and rate 1.
  • the message authenticator generation device 10 includes the processing circuit 11 which is a dedicated electronic circuit that implements each function.
  • the functions are the padding unit 110, the dividing unit 120, the sub key calculating unit 130, the processing unit 140, the randomizing unit 150, the compressing unit 160, the authenticator generating unit 170, and the control unit. It is a function with 180.
  • each function may be realized by software.
  • FIG. 4 is a configuration diagram of the message authenticator generation device 10 when each function is realized by software.
  • the message authenticator generation device 10 is a computer.
  • the message authenticator generation device 10 includes hardware of a processor 12 and a storage device 13.
  • the processor 11 is connected to other hardware via a signal line, and controls these other hardware.
  • the storage device 13 stores a program for realizing each function. This program is read into the processor 12 and executed by the processor 12.
  • the processor 12 is an IC that performs processing.
  • IC is an abbreviation for Integrated Circuit.
  • the processor 12 is a CPU, a DSP, or a GPU.
  • CPU is an abbreviation for Central Processing Unit.
  • DSP is an abbreviation for Digital Signal Processor.
  • GPU is an abbreviation for Graphics Processing Unit.
  • the storage device 13 is a ROM, a RAM, a flash memory, or an HDD.
  • ROM is an abbreviation for Read Only Memory.
  • RAM is an abbreviation for Random Access Memory.
  • HDD is an abbreviation for Hard Disk Drive.
  • Information, data, signal values, and variable values indicating the results of processing of each function realized by the processor 12 are stored in the storage device 13 or a storage area such as a register or cache memory in the processor 12.
  • a program for realizing each function realized by the processor 12 is stored in the storage device 13.
  • this program may be stored in a portable storage medium such as a magnetic disk, flexible disk, optical disk, compact disk, Blu-ray (registered trademark) disk, or DVD.
  • FIG. 4 only one processor 12 is shown. However, a plurality of processors 12 may be provided, and a plurality of processors 12 may execute programs that realize each function in cooperation with each other.
  • the processing circuit 11, the processor 12, and the storage device 13 are collectively referred to as “processing circuitries”. That is, each function is realized by a processing circuit.
  • Embodiment 2 a configuration in which each function in the first embodiment is embodied will be described. In the second embodiment, differences from the first embodiment will be described.
  • FIG. 5 is a configuration diagram of a message authentication algorithm realized by the message authenticator generation device 10 according to the second embodiment. Similar to FIG. 3, the processing surrounded by the broken line in FIG. 5 is realized by the function indicated by the reference numeral attached to the broken line.
  • the operation of the message authenticator generating apparatus 10 according to the second embodiment corresponds to the message authenticator generating method according to the second embodiment.
  • the operation of the message authenticator generation device 10 according to the second embodiment corresponds to the processing of the message authenticator generation program according to the second embodiment.
  • the padding unit 110 receives the message M and generates a value M ′ using the function pad.
  • padding section 110 adds 1 to the end of message M and then adds a bit string of 0 to generate a value M ′ having a bit number that is b times the length of n bits.
  • the number of 0s to be added is 0 or more, and is the minimum number in which the value M ′ is a multiple of n.
  • the padding unit 110 may reverse 1 and 0, add 0 after the message M, and then add 1 bit string.
  • step S102 to step S104 Since the processing from step S102 to step S104 is the same as that in the first embodiment, description thereof is omitted.
  • the sub key calculation unit 130 receives the key K and the variable i, and calculates the n-bit sub key L [i] using the function f.
  • the sub key calculation unit 130 receives the n-bit fixed value const [1] and the key K as input, and calculates the n-bit value L by the block cipher E.
  • N 2n
  • the multiplication here is a multiplication on a Galois field consisting of N elements.
  • the value x is an element on the Galois field and x, x 2 ,. .
  • step S105 may be the same function as the block cipher E used in the calculations of step S107 and step S111, or may be a different function.
  • the processing unit 140 receives the value m [i] generated in step S102 and the subkey L [i] generated in step S105 as input, and uses the function m to generate the value m ′ [ i].
  • the processing unit 140 calculates the value m ′ [i] by calculating the exclusive OR of the subkey L [i] and the value m [i].
  • step S107 to step S108 Since the processing from step S107 to step S108 is the same as that in the first embodiment, description thereof is omitted.
  • N 2n
  • the multiplication here is a multiplication on a Galois field consisting of N elements.
  • the value y is an element on the Galois field and y, y 2 ,. . .
  • Y N ⁇ 1 all have different values, and w can be expressed by an n-bit value.
  • the value y i is the value of the value y by multiplying i times on the Galois field.
  • the position to which const [2] is added may be other than after w.
  • the authenticator generation unit 170 receives the value w [2] calculated in step S109 and the key K, and calculates a k-bit value K ′ by the function e.
  • the authenticator generation unit 170 calculates the value K ′ by calculating the exclusive OR of the value w [2] and the key K.
  • step S111 Since the processing in step S111 is the same as that in the first embodiment, description thereof is omitted.
  • the authenticator generation unit 170 receives the value w [3] calculated in step S109 and the value c calculated in step S111 as inputs, and authenticates the message M using the function d. Calculate the child T.
  • the authenticator generation unit 170 calculates the value T ′ by calculating the exclusive OR of the value w [3] and the value c, and sets the t bit of the value T ′ as the authenticator T.
  • the t-bit of any part of the value T ′ may be extracted and used as the authenticator T.
  • the Galois field used in the function f in step S105 and the function h in step S109 may be the same or different.
  • the message authenticator generation device 10 according to Embodiment 2 implements a block cipher-based message authentication algorithm.
  • the message authentication algorithm realized by the message authenticator generation device 10 according to Embodiment 2 has a key size of k bits, parallel processing, and rate 1.
  • Embodiment 3 In the configuration described in the second embodiment, even when the message M has a bit number that is a multiple of n bits, the padding unit 110 adds bits to the message M.
  • the third embodiment is different from the second embodiment in that no bit is added to the message M when the message M has a bit number that is a multiple of n bits. In the third embodiment, differences from the second embodiment will be described.
  • FIG. 6 is a configuration diagram of a message authentication algorithm realized by the message authenticator generation device 10 according to the third embodiment. Similar to FIG. 5, the process surrounded by the broken line in FIG. 6 is realized by the function indicated by the reference numeral attached to the broken line.
  • the operation of the message authenticator generation device 10 according to the third embodiment corresponds to the message authenticator generation method according to the third embodiment. Further, the operation of the message authenticator generation device 10 according to the third embodiment corresponds to the processing of the message authenticator generation program according to the third embodiment.
  • the padding unit 110 receives the message M and generates a value M ′ using the function pad.
  • the padding unit 110 adds 1 to the end of the message M, and then adds a bit string of 0 to b b of length n bits.
  • a double-bit value M ′ is generated.
  • the number of 0s to be added is 0 or more, and is the minimum number in which the value M ′ is a multiple of n.
  • the padding unit 110 may add 0 after the message M and add a bit string of 1 after that.
  • the padding unit 110 uses the message M as it is as the value M ′.
  • step S102 to step S108 Since the processing from step S102 to step S108 is the same as that of the second embodiment, description thereof is omitted.
  • the values y and z are elements on the Galois field, and y, y 2 ,. . . , Y bmax , z, z ⁇ y, z ⁇ y 2 ,. . . , Z ⁇ y bmax ⁇ 1 all have different values, and w can be expressed by an n-bit value.
  • the value y i is a value obtained by multiplying the value y by i times on the Galois field. Note that the method of calculating the value w when the message M is a bit number that is a multiple of n bits and when the message M is not a bit number that is a multiple of n bits may be reversed. In addition, when calculating the value w [2], the position where const [2] is added may be other than after w.
  • step S110 to step S112 Since the processing from step S110 to step S112 is the same as that of the second embodiment, description thereof is omitted.
  • the message authenticator generation device 10 according to Embodiment 3 implements a block cipher-based message authentication algorithm.
  • the message authentication algorithm realized by the message authenticator generation device 10 according to Embodiment 3 does not add a bit to the message M when the message M has a bit number that is a multiple of n bits. Therefore, the bit length input to the processing after step S102 is shortened, and the processing speed can be increased.
  • the message authentication algorithm can also be used as a pseudo-random number generation algorithm if it satisfies the safety of indistinguishability.
  • the pseudo-random number generation algorithm is used as a function used in Key Derivation Function and stream cipher.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

メッセージ認証子生成装置(10)は、各整数iについて、メッセージMから生成された値m'[i]と鍵Kとを入力として、ブロック暗号Eにより、値c[i]を計算する。メッセージ認証子生成装置(10)は、各整数iについての値c[i]を入力として、値c[i]の乱数性を維持した値w[1]と値w[2]と値w[3]とを計算する。メッセージ認証子生成装置(10)は、値w[2]と、鍵Kとを入力として、鍵Kを固定すると置換関数となる関数eにより、値K'を計算し、値w[1]と値K'とを入力として、ブロック暗号Eにより、値cを計算し、値w[3]と値cとを入力として、値w[3]を固定すると置換関数となる関数dにより、認証子Tを計算する。

Description

メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム
 この発明は、ブロック暗号を用いて安全かつ効率的にメッセージの認証子を生成する技術に関する。
 メッセージ認証アルゴリズムを用いると、2者間でメッセージをやり取りする場合に、送信したメッセージが改ざんされているか否かを受信者が確認できる。
 メッセージ認証アルゴリズムを用いて改ざん検出する場合、2者間で予め鍵Kを共有しておく。メッセージの送信者は、メッセージMと鍵KとからメッセージMの認証子Tを生成し、メッセージMと認証子Tとを受信者に送信する。メッセージの受信者は受け取ったメッセージMと鍵Kとから認証子T’を生成する。受信者は、受信した認証子Tと生成した認証子T’とが一致すれば改ざんされていないと判断し、一致しなければ改ざんされていると判断する。
 メッセージ認証アルゴリズムの安全性は、ランダム関数との識別不可能性で示される。
 メッセージ認証アルゴリズムFが識別不可能性を満たすとは、現実世界または理想世界のどちらか一方と対話する識別者Dを考え、識別者Dがどちらと対話しているかを当てることができないことを意味する。
 現実世界では、鍵Kがランダムに選ばれ、識別者DはメッセージMを選んで、F(K,M)のメッセージ認証子を得ることができる。理想世界では、ランダム関数Rに対して、識別者DはメッセージMを選んで、R(M)の出力値を得ることができる。ここで、識別者DはメッセージMを何度も選択することができ、選択したメッセージMに対応するF(K,M)又はR(M)の出力値を得ることができる。
 より厳密には、1ビットの値を出力する識別者Dを考える。識別者Dが現実世界で1を出力する確率と、識別者Dが理想世界で1を出力する確率との差によってメッセージ認証アルゴリズムFの識別不可能性が評価される。
 識別者Dは、現実世界ではメッセージ認証アルゴリズムFの出力を複数得ることができ、理想世界ではランダム関数Rの出力を複数得ることができる。このとき、いかなる識別者Dに対しても、上述した確率の差がp以下となり、かつ、pが無視できる小さい値の場合、メッセージ認証アルゴリズムFが識別不可能性を満たす。このpは識別確率と呼ばれる。
 ブロック暗号Eは、kビットの鍵Kと、nビットの平文mとを入力として、nビットの暗号文cを出力する。つまり、c=E(K,m)である。以下、k≧nとする。ブロック暗号Eは、鍵を固定すると入出力長がnビットの置換関数となる。
 非特許文献4~6には、ブロック暗号について記載されている。
 ブロック暗号ベースのメッセージ認証アルゴリズムがある。ブロック暗号ベースのメッセージ認証アルゴリズムでは、メッセージMがnビット毎のメッセージブロックに分割されて、分割されたメッセージブロック毎にブロック暗号の計算が施される。
 ブロック暗号ベースのメッセージ認証アルゴリズムの効率性には、以下に説明する呼び出し回数と、並列性と、鍵サイズとが影響する。
 呼び出し回数:nビットのメッセージブロックについて計算するために何回ブロック暗号が呼び出されるかによって効率性が変わる。nビットのメッセージブロックに対して、ブロック暗号をx回呼び出す場合、1/xがレートと呼ばれる。このレートが1に近いほどブロック暗号の呼び出し回数が少なく、効率がよい。
 並列性:アルゴリズムが並列処理可能な場合、ハードウェア又はマルチコアでの演算を並列に行うことで計算時間を短くすることができ、効率がよい。
 鍵サイズ:メッセージ認証アルゴリズムの鍵サイズは、内部のブロック暗号の鍵をいくつ用いるかによって変わる。最も鍵サイズが小さいのは、ブロック暗号の鍵Kが1つだけの場合である。つまり、kビットの鍵Kを1つだけ用いて処理を行う場合である。
 ブロック暗号ベースのメッセージ認証アルゴリズムの識別確率を評価する場合には、ブロック暗号が理想的なブロック暗号である、又は、鍵Kを固定したブロック暗号E(K,・)がランダム置換であると仮定される。
 識別確率pは、ブロック暗号Eの暗号文cのサイズnビットと、識別者Dが入手できるメッセージ認証アルゴリズムの出力の個数qと、メッセージ認証アルゴリズムへの入力メッセージの最大の長さをnで割った値bmaxとから求められる。ここで、入力メッセージの最大の長さをlmaxビットとした場合、bmax=lmax/nとなる。メッセージ認証アルゴリズムの安全性は、p=1となるbmax×qの値で評価され、この値が大きいほど、安全なアルゴリズムとなる。
 非特許文献1,2には、鍵サイズがkビット、並列処理可能、レート1であるブロック暗号ベースのメッセージ認証アルゴリズムが記載されている。
 非特許文献1に記載されたメッセージ認証アルゴリズムは、鍵Kを固定したブロック暗号Eをランダム置換に置き換えた場合、p=(bmax×q)/2となることが示されている。すなわち、bmax×q=2n/2の場合、p=1となる。
 非特許文献3には、非特許文献1,2の安全性が改良されたブロック暗号ベースのメッセージ認証アルゴリズムが記載されている。非特許文献3に記載されたメッセージ認証アルゴリズムは、kビットの鍵を3つ用いるため鍵サイズが3kビット、並列処理可能、レート1である。
 非特許文献3に記載されたメッセージ認証アルゴリズムは、鍵Kを固定したブロック暗号Eをランダム置換に置き換えた場合、p=(bmax×q)/22nとなることが示されている。すなわち、bmax×q=22n/3の場合、p=1となる。
John Black and Phillip Rogaway. A Block-Cipher Mode of Operation for Parallelizable Message Authentication. EUROCRYPT 2002. p384-397. Phillip Rogaway. Efficient Instantiations of Tweakable Blockciphers and Refinements to Modes OCB and PMAC. ASIACRYPT 2004. p16-31. Kan Yasuda. A New Variant of PMAC: Beyond the Birthday Bound. CRYPTO 2011. p596-609. AES - Advanced Encryption Standard - FIPS PUB 197. Camellia http://www.cryptrec.go.jp/cryptrec_03_spec_cypherlist_files/PDF/06_01jspec.pdf MISTY1 http://www.mitsubishielectric.co.jp/corporate/randd/information_technology/security/code/pdf/misty_j.pdf
 非特許文献3に記載されたメッセージ認証アルゴリズムは、非特許文献1,2に記載されたメッセージ認証アルゴリズムよりも、安全性は高くなっているものの、鍵サイズが大きくなっている。
 この発明は、非特許文献1に記載されたメッセージ認証アルゴリズムよりも、安全性を高めつつ、効率を劣化させることのないブロック暗号ベースのメッセージ認証アルゴリズムを実現可能とすることを目的とする。
 この発明に係るメッセージ認証子生成装置は、
 i=1,...,bの各整数iについて、メッセージMから生成されたnビットの値m’[i]とkビットの鍵Kとを入力として、ブロック暗号により、乱数性を有するnビットの値c[i]を計算するランダム化部と、
 i=1,...,bの各整数iについての前記値c[i]を入力として、前記値c[i]の乱数性を維持した、nビットの値w[1]とkビットの値w[2]とnビットの値w[3]とを計算する圧縮部と、
 前記値w[2]と、前記鍵Kとを入力として、前記鍵Kを固定すると置換関数となる関数eにより、kビットの値K’を計算し、前記値w[1]と前記値K’とを入力として、ブロック暗号により、nビットの値cを計算し、前記値w[3]と前記値cとを入力として、前記値w[3]を固定すると置換関数となる関数dにより、前記メッセージMの認証子Tを計算する認証子生成部と
を備える。
 この発明では、非特許文献1に記載されたメッセージ認証アルゴリズムよりも安全性を高めつつ、同等の効率としたメッセージ認証アルゴリズムを実現可能である。
実施の形態1に係るメッセージ認証子生成装置10の構成図。 実施の形態1に係るメッセージ認証子生成装置10の動作を示すフローチャート。 実施の形態1に係るメッセージ認証子生成装置10によって実現されるメッセージ認証アルゴリズムの構成図。 各機能をソフトウェアで実現した場合のメッセージ認証子生成装置10の構成図。 実施の形態2に係るメッセージ認証子生成装置10によって実現されるメッセージ認証アルゴリズムの構成図。 実施の形態3に係るメッセージ認証子生成装置10によって実現されるメッセージ認証アルゴリズムの構成図。
 実施の形態1.
 ***構成の説明***
 図1は、実施の形態1に係るメッセージ認証子生成装置10の構成図である。
 メッセージ認証子生成装置10は、処理回路11を備える。処理回路11は、パディング部110と、分割部120と、副鍵計算部130と、加工部140と、ランダム化部150と、圧縮部160と、認証子生成部170と、制御部180との各機能を実現する専用の電子回路である。
 処理回路11は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、FPGAが想定される。GAは、Gate Arrayの略である。ASICは、Application Specific Integrated Circuitの略である。FPGAは、Field-Programmable Gate Arrayの略である。
 各機能を1つの処理回路11で実現してもよいし、各機能を複数の処理回路11に分散させて実現してもよい。
 処理回路11によって実現される各機能の処理の結果を示す情報とデータと信号値と変数値は、処理回路11内のレジスタのような記憶領域に記憶される。
 ***動作の説明***
 図2は、実施の形態1に係るメッセージ認証子生成装置10の動作を示すフローチャートである。
 図3は、実施の形態1に係るメッセージ認証子生成装置10によって実現されるメッセージ認証アルゴリズムの構成図である。図3において破線で囲まれた処理が破線に付された符号が示す機能によって実現される。
 実施の形態1に係るメッセージ認証子生成装置10の動作は、実施の形態1に係るメッセージ認証子生成方法に相当する。また、実施の形態1に係るメッセージ認証子生成装置10の動作は、実施の形態1に係るメッセージ認証子生成プログラムの処理に相当する。
 ステップS101のパディング処理では、パディング部110は、任意長のメッセージMを入力として、単射関数padにより、nビットのb倍のビット数の値M’を生成する。bは、1以上の整数である。
 ステップS102の分割処理では、分割部120は、ステップS101で生成された値M’を入力として、関数divにより、値M’を先頭からnビット毎に分割して、i=1,...,bの各整数iについての値m[i]を生成する。つまり、M’=m[1]||m[2]||...||m[b]である。||は、ビット列の結合を意味する。
 ステップS103の変数設定処理では、制御部180は、変数iに初期値として1を設定する。
 ステップS104の変数判定処理では、制御部180は、変数iがb以下であるか否かを判定する。変数iがb以下である場合(ステップS104でYES)、制御部180は処理をステップS105に進める。一方、変数iがbより大きい場合(ステップS104でNO)、制御部180は処理をステップS109に進める。
 ステップS105の副鍵計算処理では、副鍵計算部130は、鍵Kと変数iとを入力として、関数fにより、nビットの副鍵L[i]を計算する。
 ステップS106の加工処理では、加工部140は、ステップS102で生成された値m[i]と、ステップS105で生成された副鍵L[i]とを入力として、副鍵L[i]を固定すると置換関数となる関数gにより、nビットの値m’[i]を計算する。
 ステップS107のランダム化処理では、ランダム化部150は、変数iについて、ステップS106で生成されたnビットの値m’[i]と、kビットの鍵Kとを入力として、ブロック暗号Eにより、乱数性を有するnビットの値c[i]を計算する。
 ブロック暗号Eは、kビットの鍵Kとnビットの平文mとを入力として、乱数性を有するnビットの暗号文cを出力するブロック暗号の関数である。各変数iについての演算で用いられるブロック暗号Eは同じ関数であってもよいし、異なる関数であってもよい。
 ステップS108の変数加算処理では、制御部180は、変数iに1加算する。そして、制御部180は、処理をステップS104に戻す。
 つまり、ステップS105では、副鍵計算部130は、i=1,...,bの各整数iについて、鍵Kと整数iとを入力として、関数fにより、副鍵L[i]を計算する。
 また、ステップS106では、加工部140は、メッセージMから生成された、i=1,...,bの各整数iについてのnビットの値m[i]と、鍵Kから生成された、i=1,...,bの各整数iについてのnビットの副鍵L[i]とを用いる。そして、加工部140は、i=1,...,bの各整数iについて、値m[i]と副鍵L[i]とを入力として、副鍵L[i]を固定すると置換関数となる関数gにより、値m’[i]を計算する。
 また、ステップS107では、ランダム化部150は、i=1,...,bの各整数iについて、メッセージMから生成されたnビットの値m’[i]とkビットの鍵Kとを入力として、ブロック暗号Eにより、乱数性を有するnビットの値c[i]を計算する。
 続いて、ステップS109の圧縮処理では、圧縮部160は、i=1,...,bの各整数iについての値c[i]を入力として、関数hにより、値c[i]の乱数性を維持した、nビットの値w[1]とkビットの値w[2]とnビットの値w[3]とを計算する。
 なお、圧縮部160は、i=1,...,bの各整数iについての値c[i]に加え、メッセージMを入力として、値w[1]とkビットの値w[2]とnビットの値w[3]とを計算してもよい。
 ステップS110の鍵変換処理では、認証子生成部170は、ステップS109で計算された値w[2]と、鍵Kとを入力として、鍵Kを固定すると置換関数となる関数eにより、kビットの値K’を計算する。
 ステップS111の暗号化処理では、認証子生成部170は、ステップS109で計算された値w[1]と、ステップS110で計算された値K’とを入力として、ブロック暗号Eにより、nビットの値cを計算する。
 ステップS111の演算で用いられるブロック暗号Eは、ステップS107の演算で用いられるブロック暗号Eと同じ関数であってもよいし、異なる関数であってもよい。
 ステップS112の認証子計算処理では、認証子生成部170は、ステップS109で計算された値w[3]と、ステップS111で計算された値cとを入力として、値w[3]を固定すると置換関数となる関数dにより、nビットの値T’を計算する。認証子生成部170は、nビットの値T’のうちのtビットをメッセージMの認証子Tとする。値T’のどの部分のtビットを抽出して認証子Tとしてもよい。なお、t≦nである。
 なお、ステップS110からステップS112の処理が認証子生成処理である。
 ***実施の形態1の効果***
 以上のように、実施の形態1に係るメッセージ認証子生成装置10は、ブロック暗号ベースのメッセージ認証アルゴリズムを実現する。
 特に、実施の形態1に係るメッセージ認証子生成装置10が実現するメッセージ認証アルゴリズムは、鍵としてはkビットの鍵Kを1つだけ用いるため、鍵サイズはkビットである。また、メッセージ認証アルゴリズムは、i=1,...,bの各整数iについて一部の処理を並列に実行することができる。また、メッセージ認証アルゴリズムは、nビットのメッセージブロックに対して、ブロック暗号を1回だけ呼び出すため、レート1である。
 つまり、実施の形態1に係るメッセージ認証子生成装置10が実現するメッセージ認証アルゴリズムは、鍵サイズがkビット、並列処理可能、レート1とすることができる。
 また、実施の形態1に係るメッセージ認証子生成装置10が実現するメッセージ認証アルゴリズムは、以下の条件の下で、安全性は、p=(bmax×q)/2となる。条件は、ブロック暗号Eが理想的なブロック暗号であり、かつ、鍵Kを固定した関数fの出力がbmax×q<2ならば乱数と識別できず、かつ、関数hの出力がbmax×q<2の場合に乱数と識別できない場合である。
 つまり、実施の形態1に係るメッセージ認証子生成装置10が実現するメッセージ認証アルゴリズムは、bmax×q=2の場合、p=1となる。
 ***他の構成***
 上記説明では、メッセージ認証子生成装置10は、各機能を実現する専用の電子回路である処理回路11を備えるとした。ここで、各機能とは、パディング部110と、分割部120と、副鍵計算部130と、加工部140と、ランダム化部150と、圧縮部160と、認証子生成部170と、制御部180との機能である。しかし、各機能は、ソフトウェアによって実現されてもよい。
 図4は、各機能をソフトウェアで実現した場合のメッセージ認証子生成装置10の構成図である。
 メッセージ認証子生成装置10は、コンピュータである。
 メッセージ認証子生成装置10は、プロセッサ12と、記憶装置13とのハードウェアを備える。プロセッサ11は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
 記憶装置13には、各機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ12に読み込まれ、プロセッサ12によって実行される。
 プロセッサ12は、プロセッシングを行うICである。ICは、Integrated Circuitの略である。プロセッサ12は、具体的には、CPU、DSP、GPUである。CPUは、Central Processing Unitの略である。DSPは、Digital Signal Processorの略である。GPUは、Graphics Processing Unitの略である。
 記憶装置13は、具体的には、ROM、RAM、フラッシュメモリ、HDDである。ROMは、Read Only Memoryの略である。RAMは、Random Access Memoryの略である。HDDは、Hard Disk Driveの略である。
 プロセッサ12によって実現される各機能の処理の結果を示す情報とデータと信号値と変数値は、記憶装置13、又は、プロセッサ12内のレジスタ又はキャッシュメモリのような記憶領域に記憶される。
 なお、上記説明では、プロセッサ12によって実現される各機能を実現するプログラムは、記憶装置13に記憶されているとした。しかし、このプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記憶媒体に記憶されてもよい。
 また、図4では、プロセッサ12は、1つだけ示されていた。しかし、プロセッサ12は、複数であってもよく、複数のプロセッサ12が、各機能を実現するプログラムを連携して実行してもよい。
 また、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。また、各機能をファームウェアで実現してもよい。
 処理回路11と、プロセッサ12と、記憶装置13とを、総称して「プロセッシングサーキットリー」という。つまり、各機能は、プロセッシングサーキットリーにより実現される。
 また、上記説明における「部」を「工程」又は「手順」又は「処理」に読み替えてもよい。
 実施の形態2.
 実施の形態2では、実施の形態1における各関数を具体化した構成を説明する。
 実施の形態2では、実施の形態1と異なる点を説明する。
 図2に基づき、実施の形態2に係るメッセージ認証子生成装置10の動作を説明する。
 図5は、実施の形態2に係るメッセージ認証子生成装置10によって実現されるメッセージ認証アルゴリズムの構成図である。図3と同様に、図5において破線で囲まれた処理が破線に付された符号が示す機能によって実現される。
 実施の形態2に係るメッセージ認証子生成装置10の動作は、実施の形態2に係るメッセージ認証子生成方法に相当する。また、実施の形態2に係るメッセージ認証子生成装置10の動作は、実施の形態2に係るメッセージ認証子生成プログラムの処理に相当する。
 ステップS101のパディング処理では、パディング部110は、メッセージMを入力として、関数padにより、値M’を生成する。ここでは、パディング部110は、メッセージMの後ろに1を付加し、その後に0のビット列を付加して、長さがnビットのb倍のビット数の値M’を生成する。付加する0の個数は、0個以上であり、かつ、値M’がnの倍数となる最小の数である。パディング部110は、1と0とを逆にして、メッセージMの後ろに0を付加し、その後に1のビット列を付加してもよい。
 ステップS102からステップS104の処理は、実施の形態1と同じであるため説明を省略する。
 ステップS105の副鍵計算処理では、副鍵計算部130は、鍵Kと変数iとを入力として、関数fにより、nビットの副鍵L[i]を計算する。ここでは、まず、副鍵計算部130は、nビットの固定値const[1]と鍵Kとを入力として、ブロック暗号Eにより、nビットの値Lを計算する。次に、副鍵計算部130は、変数iについて、値xを用いて、(L×x)を計算して、副鍵L[i]とする。
 N=2とした場合、ここでの掛け算はN個の元からなるガロア体上の掛け算である。また、値xは、ガロア体上の元で、x,x,...,xN-1が全て異なる値となる性質を持ち、L[i]はnビットの値で表現可能である。値xは、このガロア体上で値xをi回掛けた値である。
 ステップS105の演算で用いられるブロック暗号Eは、ステップS107及びステップS111の演算で用いられるブロック暗号Eと同じ関数であってもよいし、異なる関数であってもよい。
 ステップS106の加工処理では、加工部140は、ステップS102で生成された値m[i]と、ステップS105で生成された副鍵L[i]とを入力として、関数gにより、値m’[i]を計算する。ここでは、加工部140は、副鍵L[i]と値m[i]との排他的論理和を計算して値m’[i]を計算する。
 ステップS107からステップS108の処理は、実施の形態1と同じであるため説明を省略する。
 ステップS109の圧縮処理では、圧縮部160は、i=1,...,bの各整数iについての値c[i]を入力として、関数hにより、nビットの値w[1]とkビットの値w[2]とnビットの値w[3]とを計算する。
 ここでは、まず、圧縮部160は、値yを用いて、i=1,...,bの各整数iについての(c[i]×yb-(i-1))の排他的論理和を計算して値wとする。そして、圧縮部160は、i=1,...,bの各整数iについての値c[i]と値wとの排他的論理和を計算して値w[1]とする。また、圧縮部160は、値wに(k-n)ビットの固定値const[2]を連結して値w[2]とする。また、圧縮部160は、値wを前記値w[3]とする。
 つまり、まず、圧縮部160は、w=(c[1]×y) xor (c[2]×yb-1) xor...xor (c[b-1]×y) xor (c[b]×y)を計算する。そして、圧縮部160は、w[1]=c[1] xor c[2] xor...xor c[b-1] xor c[b] xor wを計算する。また、圧縮部160は、(k-n)ビットの固定値const[2]を用いて、w[2]=w||const[2]を計算する。また、圧縮部160は、w[3]=wとする。
 N=2とした場合、ここでの掛け算はN個の元からなるガロア体上の掛け算である。また、値yはガロア体上の元で、y,y,...,yN-1が全て異なる値となる性質を持ち、wはnビットの値で表現可能である。値yはこのガロア体上で値yをi回掛けた値である。
 なお、値w[2]の計算の際、const[2]を付加する位置は、wの後ろ以外でもよい。
 ステップS110の鍵変換処理では、認証子生成部170は、ステップS109で計算された値w[2]と、鍵Kとを入力として、関数eにより、kビットの値K’を計算する。ここでは、認証子生成部170は、値w[2]と鍵Kとの排他的論理和を計算して値K’を計算する。
 ステップS111の処理は、実施の形態1と同じであるため説明を省略する。
 ステップS112の認証子計算処理では、認証子生成部170は、ステップS109で計算された値w[3]と、ステップS111で計算された値cとを入力として、関数dにより、メッセージMの認証子Tを計算する。ここでは、認証子生成部170は、値w[3]と値cとの排他的論理和を計算して値T’を計算し、値T’のtビットを認証子Tとする。値T’のどの部分のtビットを抽出して認証子Tとしてもよい。
 なお、ステップS105の関数fと、ステップS109の関数hとで用いるガロア体は同じ体でもよいし、異なる体でもよい。
 ***実施の形態2の効果***
 以上のように、実施の形態2に係るメッセージ認証子生成装置10は、ブロック暗号ベースのメッセージ認証アルゴリズムを実現する。
 実施の形態2に係るメッセージ認証子生成装置10が実現するメッセージ認証アルゴリズムは、鍵サイズがkビット、並列処理可能、レート1である。また、実施の形態2に係るメッセージ認証子生成装置10が実現するメッセージ認証アルゴリズムは、実施の形態1で述べた条件の下で、bmax×q=2の場合、p=1となる。
 実施の形態3.
 実施の形態2で説明した構成では、メッセージMがnビットの倍数のビット数である場合であっても、パディング部110によってメッセージMにビットが付加された。実施の形態3は、メッセージMがnビットの倍数のビット数である場合には、メッセージMにビットを付加しない点が実施の形態2と異なる。
 実施の形態3では、実施の形態2と異なる点を説明する。
 図2に基づき、実施の形態3に係るメッセージ認証子生成装置10の動作を説明する。
 図6は、実施の形態3に係るメッセージ認証子生成装置10によって実現されるメッセージ認証アルゴリズムの構成図である。図5と同様に、図6において破線で囲まれた処理が破線に付された符号が示す機能によって実現される。
 実施の形態3に係るメッセージ認証子生成装置10の動作は、実施の形態3に係るメッセージ認証子生成方法に相当する。また、実施の形態3に係るメッセージ認証子生成装置10の動作は、実施の形態3に係るメッセージ認証子生成プログラムの処理に相当する。
 ステップS101のパディング処理では、パディング部110は、メッセージMを入力として、関数padにより、値M’を生成する。
 ここでは、パディング部110は、メッセージMがnビットの倍数のビット数でない場合には、メッセージMの後ろに1を付加し、その後に0のビット列を付加して、長さがnビットのb倍のビット数の値M’を生成する。付加する0の個数は、0個以上であり、かつ、値M’がnの倍数となる最小の数である。パディング部110は、メッセージMの後ろに0を付加し、その後に1のビット列を付加してもよい。
 一方、パディング部110は、メッセージMがnビットの倍数のビット数である場合には、メッセージMをそのまま値M’とする。
 ステップS102からステップS108の処理は、実施の形態2と同じであるため説明を省略する。
 ステップS109の圧縮処理では、圧縮部160は、i=1,...,bの各整数iについての値c[i]を入力として、関数hにより、nビットの値w[1]とkビットの値w[2]とnビットの値w[3]とを計算する。
 ここでは、まず、圧縮部160は、メッセージMがnビットの倍数のビット数である場合には、値y,zを用いて、i=1,...,bの各整数iについての(c[i]×z×yb-i)の排他的論理和を計算して値wとする。一方、圧縮部160は、メッセージMがnビットの倍数のビット数でない場合には、値yを用いて、i=1,...,bの各整数iについての(c[i]×yb-(i-1))の排他的論理和を計算して値wとする。
 そして、圧縮部160は、i=1,...,bの各整数iについての値c[i]と値wとの排他的論理和を計算して値w[1]とする。また、圧縮部160は、値wに(k-n)ビットの固定値const[2]を連結して値w[2]とする。また、圧縮部160は、値wを前記値w[3]とする。
 つまり、まず、圧縮部160は、メッセージMがnビットの倍数のビット数である場合、w=(c[1]×z×yb-1) xor (c[2]×z×yb-2) xor...xor (c[b-1]×z×y) xor (c[b]×z)を計算する。一方、圧縮部160は、メッセージMがnビットの倍数のビット数でない場合、w=(c[1]×y) xor (c[2]×yb-1) xor...xor (c[b-1]×y) xor (c[b]×y)を計算する。そして、圧縮部160は、w[1]=c[1] xor c[2] xor...xor c[b-1] xor c[b] xor wを計算する。また、圧縮部160は、k-nビットの固定値const[2]を用いて、w[2]=w||const[2]を計算する。また、圧縮部160は、w[3]=wとする。
 N=2とした場合、ここでの掛け算はN個の元からなるガロア体上の掛け算である。また、値y,zはガロア体上の元で、y,y,...,ybmax,z,z×y,z×y,...,z×ybmax-1が全て異なる値となる性質を持ち、wはnビットの値で表現可能である。値yはこのガロア体上で値yをi回掛けた値である。
 なお、メッセージMがnビットの倍数のビット数である場合と、メッセージMがnビットの倍数のビット数でない場合との値wの計算方法を、逆にしてもよい。また、値w[2]の計算の際、const[2]を付加する位置は、wの後ろ以外でもよい。
 ステップS110からステップS112の処理は、実施の形態2と同じであるため説明を省略する。
 ***実施の形態3の効果***
 以上のように、実施の形態3に係るメッセージ認証子生成装置10は、ブロック暗号ベースのメッセージ認証アルゴリズムを実現する。
 実施の形態3に係るメッセージ認証子生成装置10が実現するメッセージ認証アルゴリズムは、メッセージMがnビットの倍数のビット数である場合には、メッセージMにビットを付加しない。そのため、ステップS102以降の処理に入力されるビット長が短くなり、処理速度を早くすることができる。
 メッセージ認証アルゴリズムは、識別不可能性の安全性を満たす場合、疑似乱数生成アルゴリズムとしても使うことができる。疑似乱数生成アルゴリズムは、Key Derivation Functionやストリーム暗号で用いる関数として使われる。
 10 メッセージ認証子生成装置、11 処理回路、12 プロセッサ、13 記憶装置、110 パディング部、120 分割部、130 副鍵計算部、140 加工部、150 ランダム化部、160 圧縮部、170 認証子生成部、180 制御部。

Claims (10)

  1.  i=1,...,bの各整数iについて、メッセージMから生成されたnビットの値m’[i]とkビットの鍵Kとを入力として、ブロック暗号により、乱数性を有するnビットの値c[i]を計算するランダム化部と、
     i=1,...,bの各整数iについての前記値c[i]を入力として、前記値c[i]の乱数性を維持した、nビットの値w[1]とkビットの値w[2]とnビットの値w[3]とを計算する圧縮部と、
     前記値w[2]と、前記鍵Kとを入力として、前記鍵Kを固定すると置換関数となる関数eにより、kビットの値K’を計算し、前記値w[1]と前記値K’とを入力として、ブロック暗号により、nビットの値cを計算し、前記値w[3]と前記値cとを入力として、前記値w[3]を固定すると置換関数となる関数dにより、前記メッセージMの認証子Tを計算する認証子生成部と
    を備えるメッセージ認証子生成装置。
  2.  前記圧縮部は、
     値yを用いて、i=1,...,bの各整数iについての(c[i]×yb-(i-1))の排他的論理和を計算して値wとし、
     i=1,...,bの各整数iについての前記値c[i]と前記値wとの排他的論理和を計算して前記値w[1]とし、前記値wに(k-n)ビットの固定値const[2]を連結して前記値w[2]とし、前記値wを前記値w[3]とする
    請求項1に記載のメッセージ認証子生成装置。
  3.  前記圧縮部は、
     前記メッセージMがnビットの倍数のビット数である場合と、nビットの倍数のビット数でない場合との一方の場合には、値yを用いて、i=1,...,bの各整数iについての(c[i]×yb-(i-1))の排他的論理和を計算して値wとし、他方の場合には、値y,zを用いて、i=1,...,bの各整数iについての(c[i]×z×yb-i)の排他的論理和を計算して値wとし、
     i=1,...,bの各整数iについての前記値c[i]と前記値wとの排他的論理和を計算して前記値w[1]とし、前記値wに(k-n)ビットの固定値const[2]を連結して前記値w[2]とし、前記値wを前記値w[3]とする
    請求項1に記載のメッセージ認証子生成装置。
  4.  前記メッセージ認証子生成装置は、さらに、
     前記メッセージMから生成された、i=1,...,bの各整数iについてのnビットの値m[i]と、前記鍵Kから生成された、i=1,...,bの各整数iについてのnビットの副鍵L[i]とを用いて、i=1,...,bの各整数iについて、値m[i]と副鍵L[i]とを入力として、前記副鍵L[i]を固定すると置換関数となる関数gにより、前記値m’[i]を計算する加工部
    を備える請求項1から3までのいずれか1項に記載のメッセージ認証子生成装置。
  5.  前記メッセージ認証子生成装置は、さらに、
     前記メッセージMを入力として、nビットのb倍のビット数の値M’を生成するパディング部と、
     前記値M’をnビット毎に分割して、i=1,...,bの各整数iについての前記値m[i]を生成する分割部と
    を備える請求項4に記載のメッセージ認証子生成装置。
  6.  前記メッセージ認証子生成装置は、さらに、
     i=1,...,bの各整数iについて、前記鍵Kと整数iとを入力として、関数fにより、前記副鍵L[i]を計算する副鍵計算部
    を備える請求項4に記載のメッセージ認証子生成装置。
  7.  前記副鍵計算部は、
     nビットの固定値const[1]と前記鍵Kとを入力として、ブロック暗号により、nビットの値Lを計算し、値xを用いて、(L×x)を計算して、前記副鍵L[i]とする
    請求項6に記載のメッセージ認証子生成装置。
  8.  前記認証子生成部は、前記値w[2]と前記鍵Kとの排他的論理和を計算して前記値K’を計算し、前記値w[3]と前記値cとの排他的論理和を計算して前記認証子Tを計算する
    請求項1に記載のメッセージ認証子生成装置。
  9.  i=1,...,bの各整数iについて、メッセージMから生成されたnビットの値m’[i]とkビットの鍵Kとを入力として、ブロック暗号により、乱数性を有するnビットの値c[i]を計算し、
     i=1,...,bの各整数iについての前記値c[i]を入力として、前記値c[i]の乱数性を維持した、nビットの値w[1]とkビットの値w[2]とnビットの値w[3]とを計算し、
     前記値w[2]と、前記鍵Kとを入力として、前記鍵Kを固定すると置換関数となる関数eにより、kビットの値K’を計算し、前記値w[1]と前記値K’とを入力として、ブロック暗号により、nビットの値cを計算し、前記値w[3]と前記値cとを入力として、前記値w[3]を固定すると置換関数となる関数dにより、前記メッセージMの認証子Tを計算する
    メッセージ認証子生成方法。
  10.  i=1,...,bの各整数iについて、メッセージMから生成されたnビットの値m’[i]とkビットの鍵Kとを入力として、ブロック暗号により、乱数性を有するnビットの値c[i]を計算するランダム化処理と、
     i=1,...,bの各整数iについての前記値c[i]を入力として、前記値c[i]の乱数性を維持した、nビットの値w[1]とkビットの値w[2]とnビットの値w[3]とを計算する圧縮処理と、
     前記値w[2]と、前記鍵Kとを入力として、前記鍵Kを固定すると置換関数となる関数eにより、kビットの値K’を計算し、前記値w[1]と前記値K’とを入力として、ブロック暗号により、nビットの値cを計算し、前記値w[3]と前記値cとを入力として、前記値w[3]を固定すると置換関数となる関数dにより、前記メッセージMの認証子Tを計算する認証子生成処理と
    をコンピュータに実行させるメッセージ認証子生成プログラム。
PCT/JP2015/077311 2015-09-28 2015-09-28 メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム WO2017056150A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201580083257.0A CN108028756B (zh) 2015-09-28 2015-09-28 消息认证码生成装置、消息认证码生成方法和记录介质
PCT/JP2015/077311 WO2017056150A1 (ja) 2015-09-28 2015-09-28 メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム
DE112015006865.1T DE112015006865T5 (de) 2015-09-28 2015-09-28 Vorrichtung zum Erzeugen eines Nachrichten-Authenticators, Verfahren zum Erzeugen eines Nachrichten-Authenticators und Programm zum Erzeugen eines Nachrichten-Authenticators
JP2017518568A JP6305642B2 (ja) 2015-09-28 2015-09-28 メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム
US15/754,431 US10326589B2 (en) 2015-09-28 2015-09-28 Message authenticator generating apparatus, message authenticator generating method, and computer readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/077311 WO2017056150A1 (ja) 2015-09-28 2015-09-28 メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム

Publications (1)

Publication Number Publication Date
WO2017056150A1 true WO2017056150A1 (ja) 2017-04-06

Family

ID=58422784

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/077311 WO2017056150A1 (ja) 2015-09-28 2015-09-28 メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム

Country Status (5)

Country Link
US (1) US10326589B2 (ja)
JP (1) JP6305642B2 (ja)
CN (1) CN108028756B (ja)
DE (1) DE112015006865T5 (ja)
WO (1) WO2017056150A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11824993B2 (en) 2019-04-18 2023-11-21 Nec Corporation MAC tag list generation apparatus, MAC tag list verification apparatus, method, and program

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108028756B (zh) * 2015-09-28 2019-04-09 三菱电机株式会社 消息认证码生成装置、消息认证码生成方法和记录介质
JP6305658B1 (ja) 2017-02-22 2018-04-04 三菱電機株式会社 メッセージ認証子生成装置
EP3661115B1 (en) * 2017-09-01 2024-01-17 Mitsubishi Electric Corporation Encryption device, decryption device, encryption method, decryption method, encryption program, and decryption program
JP6797337B2 (ja) * 2018-08-30 2020-12-09 三菱電機株式会社 メッセージ認証装置、メッセージ認証方法及びメッセージ認証プログラム
JP7253470B2 (ja) * 2019-07-31 2023-04-06 株式会社デンソーテン 情報処理装置
EP4064607B1 (en) * 2020-02-06 2023-10-18 Mitsubishi Electric Corporation Encryption device, decryption device, encryption method, decryption method, encryption program, and decryption program
CN112737767B (zh) * 2020-12-30 2022-03-15 山东大学 抗差分功耗分析与时间攻击的消息认证码生成方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5757913A (en) * 1993-04-23 1998-05-26 International Business Machines Corporation Method and apparatus for data authentication in a data communication environment
US20020051537A1 (en) * 2000-09-13 2002-05-02 Rogaway Phillip W. Method and apparatus for realizing a parallelizable variable-input-length pseudorandom function
WO2010131563A1 (ja) * 2009-05-11 2010-11-18 日本電気株式会社 タグ生成装置、タグ検証装置、通信システム、タグ生成方法、タグ検証方法および記録媒体
JP2011259389A (ja) * 2010-06-11 2011-12-22 Nippon Telegr & Teleph Corp <Ntt> メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、およびプログラム
WO2014136386A1 (ja) * 2013-03-04 2014-09-12 日本電気株式会社 タグ生成装置、タグ生成方法およびタグ生成プログラム

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218637A (en) * 1987-09-07 1993-06-08 L'etat Francais Represente Par Le Ministre Des Postes, Des Telecommunications Et De L'espace Method of transferring a secret, by the exchange of two certificates between two microcomputers which establish reciprocal authorization
US5140634A (en) * 1987-09-07 1992-08-18 U.S Philips Corporation Method and apparatus for authenticating accreditations and for authenticating and signing messages
US5319705A (en) * 1992-10-21 1994-06-07 International Business Machines Corporation Method and system for multimedia access control enablement
US5651069A (en) * 1994-12-08 1997-07-22 International Business Machines Corporation Software-efficient message authentication
US5664016A (en) * 1995-06-27 1997-09-02 Northern Telecom Limited Method of building fast MACS from hash functions
JP2002374239A (ja) * 2001-05-30 2002-12-26 World Top Technology Co Ltd 情報暗号化方法
DE60322338D1 (de) * 2003-04-07 2008-09-04 St Microelectronics Srl Verschlüsselungsverfahren unter Verwendung von chaotischen Abbildungen und digitale Unterschriftsverfahren
CA2627136A1 (en) 2005-11-04 2007-05-10 Nec Corporation Message authentication device, message authentication method, message authentication program and storage medium therefor
US8577032B2 (en) 2007-08-06 2013-11-05 Nec Corporation Common key block encryption device, common key block encryption method, and program
JP4914381B2 (ja) 2008-02-07 2012-04-11 日本電信電話株式会社 メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体
US8452984B2 (en) * 2008-08-28 2013-05-28 Alcatel Lucent Message authentication code pre-computation with applications to secure memory
WO2010024004A1 (ja) 2008-08-29 2010-03-04 日本電気株式会社 調整値付きブロック暗号化装置、調整値付きブロック暗号化方法及び調整値付きブロック暗号化プログラム並びに調整値付きブロック復号装置、調整値付きブロック復号方法及び調整値付きブロック復号プログラム
US8190892B2 (en) * 2008-12-29 2012-05-29 King Fahd University Of Petroleum & Minerals Message authentication code with blind factorization and randomization
JP2011040932A (ja) 2009-08-10 2011-02-24 Nippon Telegr & Teleph Corp <Ntt> 認証付き暗号化装置、認証付き暗号化方法、検証付き復号装置、検証付き復号方法、暗号システム、プログラム、記録媒体
US20120314857A1 (en) 2010-02-24 2012-12-13 Kazuhiko Minematsu Block encryption device, block decryption device, block encryption method, block decryption method and program
JP5367023B2 (ja) 2011-07-29 2013-12-11 日本電信電話株式会社 情報暗号化方法、情報暗号化装置、プログラム、および記録媒体
US9571270B2 (en) * 2013-11-29 2017-02-14 Portland State University Construction and uses of variable-input-length tweakable ciphers
US9584310B2 (en) * 2014-03-19 2017-02-28 Nxp B.V. Protecting a white-box implementation against attacks
CN108028756B (zh) * 2015-09-28 2019-04-09 三菱电机株式会社 消息认证码生成装置、消息认证码生成方法和记录介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5757913A (en) * 1993-04-23 1998-05-26 International Business Machines Corporation Method and apparatus for data authentication in a data communication environment
US20020051537A1 (en) * 2000-09-13 2002-05-02 Rogaway Phillip W. Method and apparatus for realizing a parallelizable variable-input-length pseudorandom function
WO2010131563A1 (ja) * 2009-05-11 2010-11-18 日本電気株式会社 タグ生成装置、タグ検証装置、通信システム、タグ生成方法、タグ検証方法および記録媒体
JP2011259389A (ja) * 2010-06-11 2011-12-22 Nippon Telegr & Teleph Corp <Ntt> メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、およびプログラム
WO2014136386A1 (ja) * 2013-03-04 2014-09-12 日本電気株式会社 タグ生成装置、タグ生成方法およびタグ生成プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KEN YASUDA: "A New Variant of PMAC: Beyond the Birthday Bound", LECTURE NOTES IN COMPUTER SCIENCE, vol. 6841, 2011, pages 596 - 609, XP047309777 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11824993B2 (en) 2019-04-18 2023-11-21 Nec Corporation MAC tag list generation apparatus, MAC tag list verification apparatus, method, and program

Also Published As

Publication number Publication date
US10326589B2 (en) 2019-06-18
JPWO2017056150A1 (ja) 2017-10-05
DE112015006865T5 (de) 2018-05-17
CN108028756B (zh) 2019-04-09
CN108028756A (zh) 2018-05-11
JP6305642B2 (ja) 2018-04-04
US20180241544A1 (en) 2018-08-23

Similar Documents

Publication Publication Date Title
JP6305642B2 (ja) メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム
JP6519473B2 (ja) 認証暗号装置、認証暗号方法および認証暗号用プログラム
JP6035459B2 (ja) 暗号化装置、復号化装置、及びプログラム
US20130195266A1 (en) Apparatus and Method for Producing a Message Authentication Code
US20120314857A1 (en) Block encryption device, block decryption device, block encryption method, block decryption method and program
KR20140051163A (ko) 암호 해쉬 함수들의 실행을 보호하는 방법 및 시스템
JP6386198B1 (ja) 暗号化装置及び復号装置
US8526602B2 (en) Adjustment-value-attached block cipher apparatus, cipher generation method and recording medium
Walia et al. Implementation of new modified MD5-512 bit algorithm for cryptography
Gorbenko et al. Post-quantum message authentication cryptography based on error-correcting codes
Alemami et al. Advanced approach for encryption using advanced encryption standard with chaotic map
KR101445339B1 (ko) 기밀성과 무결성을 제공하는 통합 암호화 장치 및 그 방법
Dobraunig et al. Ascon v1
JP6305643B2 (ja) メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム
US20230134515A1 (en) Authentication encryption device, authentication decryption device, authentication encryption method, authentication decryption method, and storage medium
JP6631989B2 (ja) 暗号化装置、制御方法、及びプログラム
WO2020095382A1 (ja) 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム
Sarkar et al. Sycon v1. 0 Submission to Lightweight Cryptographic Standards
JP4914329B2 (ja) メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体
RP Keyed-CAHASH: a new fast keyed hash function based on cellular automata for authentication
JP6033504B1 (ja) メッセージ認証子生成装置
JP5293612B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法およびプログラム
Koroglu et al. Can There Be A Two Way Hash Function?
Lei et al. The FCM Scheme for Authenticated Encryption
Lukács et al. BITMIX: A hardware accelerated randomized symmetric encryption method

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2017518568

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15905305

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15754431

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 112015006865

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15905305

Country of ref document: EP

Kind code of ref document: A1