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

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

Info

Publication number
WO2020044485A1
WO2020044485A1 PCT/JP2018/032082 JP2018032082W WO2020044485A1 WO 2020044485 A1 WO2020044485 A1 WO 2020044485A1 JP 2018032082 W JP2018032082 W JP 2018032082W WO 2020044485 A1 WO2020044485 A1 WO 2020044485A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
bit
message
generate
tweak
Prior art date
Application number
PCT/JP2018/032082
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 PCT/JP2018/032082 priority Critical patent/WO2020044485A1/ja
Priority to JP2020539941A priority patent/JP6797337B2/ja
Priority to CN201880096809.5A priority patent/CN112640359B/zh
Publication of WO2020044485A1 publication Critical patent/WO2020044485A1/ja
Priority to US17/175,391 priority patent/US11522712B2/en

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
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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/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
    • H04L9/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3242Cryptographic 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 using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Definitions

  • the present invention relates to a message authentication technique using a Tweakable block cipher.
  • the message authentication algorithm is a function that receives a message M of an arbitrary length and a secret key K and outputs a fixed-length authenticator Z for falsification detection.
  • the sender is Alice and the recipient is Bob.
  • Alice and Bob share a secret key K in advance.
  • Alice generates an authenticator Z of the message M from the message M and the key K using a message authentication algorithm, and transmits the message M and the authenticator Z to Bob.
  • Bob receives the message M and the authenticator Z, and generates an authenticator Z ′ from the message M and the key K using a message authentication algorithm.
  • Bob determines that the message M has not been tampered with if the received authenticator Z and the generated authenticator Z ′ match, and determines that the message M has been tampered with if it does not match.
  • Pseudo-randomness is used for the security of the message authentication algorithm. Pseudorandomness is based on the probability that the discriminator D accesses the message authentication algorithm, observes the output value, and outputs 1 after using the discriminator D that outputs a 1-bit value of 0 or 1; Is safety considering the difference from the probability of accessing the random function R and observing the output value and then outputting 1. This difference is called the advantage of pseudorandomness.
  • the key K is randomly selected.
  • Input random function R is an arbitrary length, the output is the same as the output length of F K.
  • the output of the random function R is randomly selected for a new input. If the same input has been given in the past, the output of the random function R has the same value as in the past.
  • D (F K ) is an output value when the discriminator D accesses the message authentication algorithm.
  • D (R) is an output value when the discriminator D accesses the random function R.
  • the size n of the plaintext and ciphertext of the Tweakable block cipher is called a block size.
  • n-bit replacement is performed. Further, changing the value T of the key K or Tweak is another replacement.
  • the Tweakable block cipher E is described in Non-Patent Documents 1 and 2.
  • Tweakable block cipher When designing a message authentication algorithm using a Tweakable block cipher, pseudo-randomness is used as the security of the message authentication algorithm.
  • tweakable block cipher E K using the key K is evaluated replaced by tweakable random permutation [pi.
  • the Tweakable random permutation ⁇ receives a Tweak value T, which is an element of Set (T), and an n-bit plaintext P, and outputs an n-bit ciphertext C.
  • Tweakable random permutation ⁇ is an n-bit random permutation when the Tweak value T is fixed, and another random permutation when the Tweak value T is changed.
  • is the bit length of the bit string X.
  • the operator shown in Expression 1 is defined as shown in Expression 2.
  • the operator shown in Expression 3 is a multiplication on the Galois field GF (2 n ), and x is a generator of the Galois field GF (2 n ).
  • Tweakable block cipher that uses two arguments (j, T) as Tweaks.
  • Tweakable block ciphers Set (T) [0, i] ⁇ ⁇ 0, Let 1tt . That is, the first argument j of Tweak is a value included in [0, i], and the second argument T of Tweak is a value represented by ⁇ 0, 1 ⁇ t . Also describes the first argument j ⁇ of Tweak [0, i], the Tweakable block cipher using a key K and E K j.
  • Tweak is the (j, T)
  • the plaintext is P
  • Set (T) ⁇ 0,1 ⁇ s
  • r bits out of s bits are [0,1]. i] and the remaining sr bits are used for ⁇ 0,1 ⁇ t .
  • Non-Patent Document 6 shows that the advantage of pseudo-randomness of the message authentication algorithm described in Non-Patent Document 3 is suppressed with the probability shown in Expression 4 when n ⁇ t.
  • F is the message authentication algorithm described in Non-Patent Document 3.
  • Non-Patent Document 4 shows a bound of a pseudorandom advantage shown in Expression 5 for the message authentication algorithm described in Non-Patent Document 4.
  • Non-Patent Document 5 describes a message authentication algorithm in which the operation amount of the message authentication algorithm described in Non-Patent Document 4 is reduced.
  • Non-Patent Document 5 shows a bound of a pseudorandom advantage shown in Expression 6 for the message authentication algorithm described in Non-Patent Document 5.
  • Non-Patent Document 3 is the most secure message authentication algorithm using a Tweakable block cipher.
  • a Tweakable block cipher that satisfies the condition of t ⁇ n for example, there is a method described in Non-Patent Document 1.
  • An object of the present invention is to enable a highly secure message authentication algorithm using a Tweakable block cipher.
  • the message authentication device comprises: A message authentication device that generates an authenticator Z of a message M using a Tweakable block cipher E that outputs an n-bit value with a t-bit Tweak as an input for integers t and n of 1 or more; A compression unit that compresses the message M into a 2n-bit value H, and divides the value H into two n-bit values H [1] and H [2]; The value H [1] is extracted into two values U [1] and U [2] of min ⁇ t, n / 2 ⁇ bits, and the message M and the value U [1] are input.
  • a Tweak calculating unit that generates a t-bit value V [1], and generates a t-bit value V [2] by using the message M and the value U [2] as inputs;
  • Using the value V [1] as a Tweak encrypting the value H [2] with the Tweakable block cipher E to generate a value Z [1], and using the value V [2] as a Tweak
  • a first encryption unit that encrypts H [2] with the Tweakable block cipher E to generate a value Z [2];
  • An authenticator generation unit that generates the authenticator Z from the value Z [1] and the value Z [2].
  • a highly secure message authentication algorithm using a Tweakable block cipher can be realized.
  • FIG. 1 is a configuration diagram of a message authentication device 10 according to a first embodiment.
  • 5 is a flowchart of an overall operation of the message authentication device 10 according to the first embodiment.
  • FIG. 4 is an explanatory diagram of a message authentication algorithm realized by the message authentication device 10 according to the first embodiment.
  • 5 is a flowchart of a compression process according to the first embodiment.
  • FIG. 4 is an explanatory diagram of a compression process according to the first embodiment.
  • 5 is a flowchart of a function F according to the first embodiment.
  • FIG. 9 is a configuration diagram of a message authentication device 10 according to a first modification. The figure which shows the example of a structure of the message authentication apparatus 10 concerning the modification 1.
  • Embodiment 1 FIG. *** Configuration description *** The configuration of the message authentication device 10 according to the first embodiment will be described with reference to FIG.
  • the message authentication device 10 includes hardware of a processor 11, a memory 12, a storage 13, and a communication interface 14.
  • the processor 11 is connected to other hardware via a signal line, and controls the other hardware.
  • the processor 11 is an IC (Integrated Circuit) that performs processing.
  • the processor 11 is a CPU (Central Processing Unit), a DSP (Digital Signal Processor), or a GPU (Graphics Processing Unit) as a specific example.
  • CPU Central Processing Unit
  • DSP Digital Signal Processor
  • GPU Graphics Processing Unit
  • the memory 12 is a storage device for temporarily storing data.
  • the memory 12 is, for example, an SRAM (Static Random Access Memory) or a DRAM (Dynamic Random Access Memory).
  • the storage 13 is a storage device for storing data.
  • the storage 13 is, as a specific example, an HDD (Hard ⁇ Disk ⁇ Drive).
  • the storage 13 includes an SD (registered trademark, Secure Digital) memory card, a CF (CompactFlash, registered trademark), a NAND flash, a flexible disk, an optical disk, a compact disk, a Blu-ray (registered trademark) disk, and a DVD (Digital Versatile Disk). It may be a portable recording medium.
  • the communication interface 14 is an interface for communicating with an external device.
  • the communication interface 14 is, as a specific example, a port of Ethernet (registered trademark), USB (Universal Serial Bus), or HDMI (registered trademark, High-Definition Multimedia Interface).
  • the message authentication device 10 includes a communication unit 21, a compression unit 22, a Tweak calculation unit 23, a first encryption unit 24, and an authentication code generation unit 25 as functional components.
  • the compression unit 22 includes an M * generation unit 31, a division unit 32, a second encryption unit 33, and an H calculation unit 34.
  • the Tweak calculation unit 23 includes a W generation unit 41, a U ′ generation unit 42, and a V generation unit 43.
  • the function of each functional component of the message authentication device 10 is realized by software.
  • the storage 13 stores a program for realizing the function of each functional component of the message authentication device 10. This program is read into the memory 12 by the processor 11 and executed by the processor 11. Thereby, the function of each functional component of the message authentication device 10 is realized.
  • FIG. 1 only one processor 11 is shown. However, a plurality of processors 11 may be provided, and the plurality of processors 11 may execute programs for realizing the respective functions in cooperation with each other.
  • the operation of the message authentication device 10 according to the first embodiment will be described with reference to FIGS.
  • the operation of the message authentication device 10 according to the first embodiment corresponds to the message authentication method according to the first embodiment.
  • the operation of the message authentication device 10 according to the first embodiment corresponds to the processing of the message authentication program according to the first embodiment.
  • the message authentication device 10 generates an authenticator Z of the message M by using a Tweakable block cipher E that outputs a t-bit Tweak and outputs an n-bit value for integers t and n of 1 or more.
  • the message authentication device 10 stores the key K shared with the transmission destination of the message M in the storage 13.
  • Step S1 input processing
  • the communication unit 21 receives an input message M via the communication interface 14 when an input device or the like is operated by a user of the message authentication device 10.
  • the communication unit 21 writes the message M into the memory 12.
  • Step S2 compression processing
  • the compression unit 22 reads the message M from the memory 12.
  • the compression unit 22 compresses the message M into a 2n-bit value H using the function Hash.
  • the compression unit 22 divides the value H into two n-bit values H [1] and H [2].
  • the compression unit 22 writes the value H [1] and the value H [2] into the memory 12.
  • Step S3 Tweak calculation processing
  • the Tweak calculation unit 23 reads the value H [1] from the memory 12.
  • the Tweak calculation unit 23 extracts two values U [1] and U [2] of min ⁇ t, n / 2 ⁇ bits from the value H [1].
  • the Tweak calculating unit 23 extracts min ⁇ t, n / 2 ⁇ bits from the beginning of the value H [1] as a value U [1], and extracts min ⁇ t, Extract n / 2 ⁇ bits as value U [2].
  • the value U [1] and the value U [2] may be extracted using the value p (H [1]) calculated using the b-bit replacement function p instead of the value H [1]. .
  • the Tweak calculation unit 23 generates a t-bit value V [1] by calculating a function F [1] using the message M and the value U [1] as inputs. Further, the Tweak calculation unit 23 generates a t-bit value V [2] by calculating a function F [2] using the message M and the value U [2] as inputs. The Tweak calculation unit 23 writes the value V [1] and the value V [2] into the memory 12.
  • Step S4 first encryption processing
  • the first encryption unit 24 reads the value V [1], the value V [2], and the value H [2] from the memory 12.
  • the first encryption unit 24 generates the value Z [1] by encrypting the value H [2] with the Tweakable block cipher E using the value V [1] as the Tweak.
  • the first encryption unit 24 generates the value Z [2] by encrypting the value H [2] with the Tweakable block cipher E using the value V [2] as the Tweak.
  • the first encryption unit 24 writes the value Z [1] and the value Z [2] into the memory 12.
  • the first encryption unit 24 uses index (i,
  • is the bit length of the message M.
  • the index is a function that receives the value of [1, s] and the bit length
  • the first encryption unit 24 generates the value Z [i] by encrypting the value H [2] with the Tweakable block cipher E.
  • Step S5 authenticator generation processing
  • the authenticator generation unit 25 reads the value Z [1] and the value Z [2] from the memory 12.
  • the authenticator generation unit 25 generates an authenticator Z of the message M from the value Z [1] and the value Z [2].
  • the authenticator generation unit 25 generates an exclusive OR of the value Z [1] and the value Z [2] as the authenticator Z.
  • the authentication code generation unit 25 writes the authentication code Z into the memory 12.
  • Step S6 Transmission processing
  • the communication unit 21 reads the message M and the authenticator Z from the memory 12.
  • the communication unit 21 transmits the message M and the authenticator Z to the transmission destination via the communication interface 14.
  • step S2 in FIG. 2 the compression process (step S2 in FIG. 2) according to the first embodiment will be described.
  • Step S21 M * generation processing
  • the M * generation unit 31 adds a bit string to the message M to generate a value M * having a bit length that is a multiple of n + d.
  • Step S22 division processing
  • the dividing unit 32 reads the value M * from the memory 12.
  • the dividing unit 32 converts the value M * into L values M [1],. . . , M [L].
  • the dividing unit 32 outputs the values M [1],. . . , And the value M [L] are written to the memory 12.
  • Step S23 second encryption processing
  • the second encryption unit 33 divides the value M [i] into an n-bit value A [i] and a d-bit value B [i].
  • the second encryption unit 33 uses the t-bit value T generated from the value B [i] and the value str c (i) representing the value i in c bits as a Tweak to convert the value A [i] to a Tweakable block.
  • a value C [i] is generated by encryption with the encryption E.
  • the second encryption unit 33 writes the value A [i], the value B [i], and the value C [i] into the memory 12.
  • the second encryption unit 33 uses 0 as the first argument of Tweak, and uses the value T of t bits as the second argument of Tweak.
  • the value T str c (i)
  • the value T ⁇ (B [i]
  • str c (i)) or the like may be obtained by using a t-bit substitution function ⁇ .
  • the second encryption unit 33 encrypts the value A [i] with the Tweakable block cipher E to generate the value C [i].
  • Step S24 H calculation processing
  • the H calculator 34 calculates a value H [1] and a value H [2] from the value H.
  • the H calculation unit 34 may calculate the value H [1] and the value H [2] without calculating the value H.
  • x is the generator of the Galois field GF (2 n ).
  • the function F is a function used in the Tweak calculation process (Step S3 in FIG. 2). In the following description, it is assumed that the method described with reference to FIGS. 4 and 5 is applied as the compression processing (step S2 in FIG. 2).
  • Step S31 W generation processing
  • the value B [i] is the value generated in step S23 in FIG.
  • the W generation unit 41 adds a bit to the value B to generate a t-bit value W. As a specific example, the W generation unit 41 adds one or more bits of 0 after the value B to generate a value W of t bits.
  • the W generation unit 41 writes the value W into the memory 12. Note that the W generation unit 41 is not limited to adding one or more 0 bits, and may add one or more 1 bits, or may add a bit string combining 0 and 1 . Also, the W generation unit 41 may add a bit before the value B instead of adding a bit after the value B, or may add a bit at any other position in the value B. .
  • Step S32 U ′ generation processing
  • the U ′ generation unit 42 adds a bit to the value U [i] to add a t-bit value U ′ [i ] Is generated.
  • the value U [i] is the value extracted in step S3 in FIG.
  • the U ′ generation unit 42 adds one or more 0 bits after the value U [i] to generate a t-bit value U ′ [i].
  • the U ′ generation unit 42 is not limited to adding one or more bits of 0, and may add one or more bits of 1 or may add a bit string combining 0 and 1 Good.
  • Step S33 V generation processing
  • the index function is a function used in the first encryption processing (Step S4 in FIG. 2).
  • the index function outputs i when the bit length
  • ) i; otherwise, index (i,
  • ) 2i.
  • the index function outputs 2i when the bit length
  • ) 2i; otherwise, index (i,
  • ) i.
  • the message authentication device 10 according to the first embodiment implements the message authentication algorithm using the Tweakable block cipher.
  • the Tweakable block cipher satisfying the condition of t ⁇ n has a shorter Tweak length than the Tweakable block cipher satisfying the condition of n ⁇ t. Therefore, the internal structure can be simplified, and at least one of the software size and the hardware size can be reduced.
  • each functional component is realized by software.
  • each functional component may be realized by hardware.
  • points different from the first embodiment will be described.
  • the message authentication device 10 includes an electronic circuit 15 instead of the processor 11.
  • the electronic circuit 15 is a dedicated circuit for realizing the function of each functional component.
  • the electronic circuit 15 includes a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, a logic IC, a GA (Gate Array), an ASIC (Application Specific Integrated Circuit), and an FPGA (Field-Programmable Gate Array). is assumed. Each functional component may be realized by one electronic circuit 15, or each functional component may be realized by being distributed to a plurality of electronic circuits 15.
  • the message authentication device 10 includes, as the electronic circuit 15, an electronic circuit 15A for a Tweakable block cipher, an electronic circuit 15B for a hash function, and an electronic circuit 15C for final processing.
  • An electronic circuit 15A for a Tweakable block cipher calculates a Tweakable block cipher E.
  • the hash function electronic circuit 15B performs a compression process (step S2 in FIG. 2).
  • the electronic circuit 15C for the final processing performs the Tweak calculation processing, the first encryption processing, and the authenticator generation processing (steps S3 to S5 in FIG. 2).
  • the electronic circuit 15C for the final processing causes the electronic circuit 15A for the Tweakable block cipher to execute the calculation of the Tweakable block cipher E.
  • ⁇ Modification 2> As a second modification, some of the functional components may be implemented by hardware, and other functional components may be implemented by software.
  • the processor 11, the memory 12, and the electronic circuit 15 are referred to as an electronic circuit. That is, the function of each functional component is realized by an electronic circuit.

Landscapes

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

Abstract

メッセージ認証装置は、メッセージMを2nビットの値Hに圧縮して、値Hをnビットの2つの値H[1]と値H[2]とに分割する。メッセージ認証装置は、値H[1]からmin{t,n/2}ビットの2つの値U[1]と値U[2]とに抽出して、メッセージMと値U[1]とを入力としてtビットの値V[1]を生成するとともに、メッセージMと値U[2]とを入力としてtビットの値V[2]を生成する。メッセージ認証装置は、値V[1]をTweakとして用いて値H[2]をTweakableブロック暗号Eにより暗号化して値Z[1]を生成するとともに、値V[2]をTweakとして用いて値H[2]をTweakableブロック暗号Eにより暗号化して値Z[2]を生成する。メッセージ認証装置は、値Z[1]と値Z[2]とから認証子Zを生成する。

Description

メッセージ認証装置、メッセージ認証方法及びメッセージ認証プログラム
 この発明は、Tweakableブロック暗号を用いるメッセージ認証技術に関する。
 メッセージ認証アルゴリズムを用いると、データの改ざんを検知することができる。メッセージ認証アルゴリズムで扱うデータをメッセージと呼ぶ。
 メッセージ認証アルゴリズムは、任意長のメッセージMと秘密鍵Kとを入力として、固定長の改ざん検知用の認証子Zを出力する関数である。
 送信者をAliceとし、受信者をBobとする。メッセージ認証アルゴリズムを用いた改ざん検知通信を行う場合、AliceとBobとはあらかじめ秘密鍵Kを共有しておく。
 Aliceは、メッセージMと鍵Kとから、メッセージ認証アルゴリズムを用いて、メッセージMの認証子Zを生成し、メッセージMと認証子ZとをBobに送信する。Bobは、メッセージMと認証子Zを受信し、メッセージMと鍵Kとからメッセージ認証アルゴリズムを用いて認証子Z’を生成する。Bobは、受信した認証子Zと生成した認証子Z’とが一致すれば、メッセージMは改ざんされていないと判断し、一致しなければ改ざんされていると判断する。
 メッセージ認証アルゴリズムの安全性は、疑似乱数性が用いられる。疑似乱数性は、0又は1の1ビットの値を出力する識別者Dを用いて、識別者Dがメッセージ認証アルゴリズムにアクセスして出力値を観測したのち1を出力する確率と、識別者Dがランダム関数Rにアクセスして出力値を観測したのち1を出力する確率との差を考える安全性である。この差は疑似乱数性のアドバンテージと呼ばれる。
 秘密鍵Kを用いるメッセージ認証アルゴリズムFに対して、識別者DのアドバンテージAdv(D)は、以下の通りである。
 Adv(D)=Pr[D(F)=1]-Pr[D(R)=1]
 鍵Kはランダムに選ばれる。ランダム関数Rの入力は任意長、出力はFの出力長と同じである。また、ランダム関数Rの出力は新規の入力に対し、ランダムに選ばれる。過去に同じ入力が与えられた場合は、ランダム関数Rの出力は過去と同じ値になる。D(F)は、識別者Dがメッセージ認証アルゴリズムにアクセスした場合の出力値である。D(R)は、識別者Dがランダム関数Rにアクセスした場合の出力値である。
 メッセージ認証アルゴリズムFの構成方法として、Tweakableブロック暗号を用いる方法がある。
 Set(K)及びSet(T)をある有限集合とする。Tweakableブロック暗号Eは、Set(K)の要素である鍵Kと、Set(T)の要素であるTweakの値Tと、nビットの平文Pとを入力とし、nビットの暗号文Cを出力する関数である。これをC=E(T,P)と書く。また、Tweakableブロック暗号の平文及び暗号文のサイズnはブロックサイズと呼ばれる。Tweakableブロック暗号Eは、鍵KとTweakの値Tとを固定するとnビットの置換となる。また、鍵K又はTweakの値Tを変更すると別の置換となる。
 Tweakableブロック暗号Eは、非特許文献1,2に記載されている。
 Tweakableブロック暗号を用いてメッセージ認証アルゴリズムを設計する場合には、メッセージ認証アルゴリズムの安全性として擬似乱数性が用いられる。擬似乱数性を評価する場合には、鍵Kを用いるTweakableブロック暗号EがTweakableランダム置換πに置き換えられて評価される。また、この際、識別者Dがメッセージ認証アルゴリズムにアクセスするクエリー回数qと、メッセージ認証アルゴリズムの計算でTweakableランダム置換が呼ばれる回数σとが用いられる。
 Tweakableランダム置換πは、Set(T)の要素であるTweakの値Tと、nビットの平文Pとを入力とし、nビットの暗号文Cを出力する。Tweakableランダム置換πは、Tweakの値Tを固定すると、nビットのランダム置換となり、Tweakの値Tを変えると、別のランダム置換となる。
 a≦bとなる整数a,bに対し、[a,b]をaからbまでの整数の集合、すなわち[a,b]={a,a+1,...,b-1,b}とする。ビット列Xに対し、|X|をビット列Xのビット長とする。a≦|X|を満たす正の整数aに対し、X[1,a]をXの上位aビットとする。正の整数a、bに対し、str(a)を、整数aをbビット表現した値とする。例えば、str(2)=010である。
 正の整数tとnビットの値Xとtビットの値Yとに対し、数1に示す演算子を数2に示すように定義する。
Figure JPOXMLDOC01-appb-M000001
Figure JPOXMLDOC01-appb-M000002
 数3に示す演算子をガロア体GF(2)上の掛け算とし、xをガロア体GF(2)の生成元とする。
Figure JPOXMLDOC01-appb-M000003
 Tweakとして2つの引数(j,T)を用いるTweakableブロック暗号がある。正の整数rと、i≦2-1を満たす正の整数iと、整数tとに対し、Tweakableブロック暗号の集合Set(T)をSet(T)=[0,i]×{0,1}とする。つまり、Tweakの第1引数jは、[0,i]に含まれる値であり、Tweakの第2引数Tは、{0,1}で表される値である。
 また、Tweakの第1引数j∈[0,i]と、鍵Kを用いるTweakableブロック暗号をE と記載する。つまり、Tweakが(j,T)であり、平文がPである場合、暗号文はC=E (T,P)となる。
 非特許文献1及び非特許文献2に記載されたTweakableブロック暗号は、ある整数sに対し、Set(T)={0,1}と定義されている。Set(T)={0,1}となるTweakableブロック暗号に対し、Set(T)=[0,i]×{0,1}とする場合、sビットのうちrビットが[0,i]のために用いられ、残りのs-rビットが{0,1}のために用いられる。
 Tweakableブロック暗号を用いたメッセージ認証アルゴリズムは、非特許文献3~5に記載されている。
 非特許文献3には、正の整数tに対し、Tweakの集合をSet(T)=[0,2]×{0,1}と定義したメッセージ認証アルゴリズムが記載されている。非特許文献6には、非特許文献3に記載されたメッセージ認証アルゴリズムの擬似乱数性のアドバンテージが、n≦tの場合に、数4に示す確率で抑えされることが示されている。数4では、Fが非特許文献3に記載されたメッセージ認証アルゴリズムである。
Figure JPOXMLDOC01-appb-M000004
 このアドバンテージの上界値をバウンドと呼ぶ。識別者Dのクエリー回数がq=O(2)となるまで、このバウンドが1とならない。そのため、n≦tの場合に、クエリー回数がq=O(2)となるまで擬似乱数性を保証できることになる。
 非特許文献4には、正の整数tに対し、Set(T)=[0,5]×{0,1}と定義したメッセージ認証アルゴリズムが提案されている。非特許文献4には、非特許文献4に記載されたメッセージ認証アルゴリズムについて、数5に示す擬似乱数性のアドバンテージのバウンドが示されている。数5では、Fが非特許文献4に記載されたメッセージ認証アルゴリズムである。
Figure JPOXMLDOC01-appb-M000005
 よって、n≦tの場合に、Tweakableランダム置換の呼び出し回数がσ=O(2)となるまで擬似乱数性を保証できることになる。
 非特許文献5には、非特許文献4に記載されたメッセージ認証アルゴリズムの演算量を削減したメッセージ認証アルゴリズムが記載されている。非特許文献5には、非特許文献5に記載されたメッセージ認証アルゴリズムについて、数6に示す擬似乱数性のアドバンテージのバウンドが示されている。数6では、Fが非特許文献5に記載されたメッセージ認証アルゴリズムである。
Figure JPOXMLDOC01-appb-M000006
 よって、n≦tの場合に、Tweakableランダム置換の呼び出し回数がσ=O(2n+min{n,t}/q)、つまりO(22n/q)、又は、クエリー回数がq=O(2)となるまで擬似乱数性を保証できる。
 ここで、q≦σなので、非特許文献3がTweakableブロック暗号を用いたメッセージ認証アルゴリズムで、最も安全なアルゴリズムとなる。
Jeremy Jean, Ivica Nikolic, Thomas Peyrin. Tweaks and Keys for Block Ciphers: The TWEAKEY Framework. ASIACRYPT 2014. pp.274-288. LNCS volume 8874. Springer. Christof Beierle, Jeremy Jean, Stefan Kolbl, Gregor Leander, Amir Moradi, Thomas Peyrin, Yu Sasaki, Pascal Sasdrich, Siang Meng Sim. The SKINNY Family of Block Ciphers and Its Low-Latency Variant MANTIS. CRYPTO 2016. pp.123-153. LNCS volume 9815. Springer. Yusuke Naito. Full PRF-Secure Message Authentication Code Based on Tweakable Block Cipher. ProvSec 2015. pp.167-182. LNCS volume 9451. Springer. Tetsu Iwata, Kazuhiko Minematsu, Thomas Peyrin, Yannick Seurin. ZMAC: A Fast Tweakable Block Cipher Mode for Highly Secure Message Authentication. CRYPTO 2017. pp.34-65. LNCS volume 10403. Springer. Eik List, Mridul Nandi. ZMAC+ - An Efficient Variable-output-length Variant of ZMAC. IACR Trans. Symmetric Cryptol. 2017 volume 4. pp.306-325. Eik List, Mridul Nandi. Revisiting Full-PRF-Secure PMAC and Using It for Beyond-Birthday Authenticated Encryption. CT-RSA 2017. pp.258-274. LNCS volume 10159. Springer.
 既存のTweakableブロック暗号を用いたメッセージ認証アルゴリズムは、識別者Dのクエリー回数がq=O(2)となるまで擬似乱数性を保証するために、n≦tを満たすTweakableブロック暗号が必要となる。
 t<nの条件を満たすTweakableブロック暗号としては、例えば、非特許文献1に記載されている方式がある。しかし、t<nを満たし、かつ、識別者Dのクエリー回数がq=O(2)となるまで擬似乱数性を保証するメッセージ認証アルゴリズムは存在しない。
 この発明は、Tweakableブロック暗号を用いた、安全性の高いメッセージ認証アルゴリズムを実現可能にすることを目的とする。
 この発明に係るメッセージ認証装置は、
 1以上の整数t,nについて、tビットのTweakを入力としてnビットの値を出力するTweakableブロック暗号Eを用いてメッセージMの認証子Zを生成するメッセージ認証装置であり、
 前記メッセージMを2nビットの値Hに圧縮して、値Hをnビットの2つの値H[1]と値H[2]とに分割する圧縮部と、
 前記値H[1]からmin{t,n/2}ビットの2つの値U[1]と値U[2]とに抽出して、前記メッセージMと前記値U[1]とを入力としてtビットの値V[1]を生成するとともに、前記メッセージMと前記値U[2]とを入力としてtビットの値V[2]を生成するTweak計算部と、
 前記値V[1]をTweakとして用いて前記値H[2]を前記Tweakableブロック暗号Eにより暗号化して値Z[1]を生成するとともに、前記値V[2]をTweakとして用いて前記値H[2]を前記Tweakableブロック暗号Eにより暗号化して値Z[2]を生成する第1暗号化部と、
 前記値Z[1]と前記値Z[2]とから前記認証子Zを生成する認証子生成部と
を備える。
 この発明では、Tweakableブロック暗号を用いた、安全性の高いメッセージ認証アルゴリズムを実現可能である。
実施の形態1に係るメッセージ認証装置10の構成図。 実施の形態1に係るメッセージ認証装置10の全体的な動作のフローチャート。 実施の形態1に係るメッセージ認証装置10により実現されるメッセージ認証アルゴリズムの説明図。 実施の形態1に係る圧縮処理のフローチャート。 実施の形態1に係る圧縮処理の説明図。 実施の形態1に係る関数Fのフローチャート。 変形例1に係るメッセージ認証装置10の構成図。 変形例1に係るメッセージ認証装置10の構成例を示す図。
 実施の形態1.
 ***構成の説明***
 図1を参照して、実施の形態1に係るメッセージ認証装置10の構成を説明する。
 メッセージ認証装置10は、プロセッサ11と、メモリ12と、ストレージ13と、通信インタフェース14とのハードウェアを備える。プロセッサ11は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
 プロセッサ11は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ11は、具体例としては、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
 メモリ12は、データを一時的に記憶する記憶装置である。メモリ12は、具体例としては、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)である。
 ストレージ13は、データを保管する記憶装置である。ストレージ13は、具体例としては、HDD(Hard Disk Drive)である。また、ストレージ13は、SD(登録商標,Secure Digital)メモリカード、CF(CompactFlash,登録商標)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital Versatile Disk)といった可搬記録媒体であってもよい。
 通信インタフェース14は、外部の装置と通信するためのインタフェースである。通信インタフェース14は、具体例としては、Ethernet(登録商標)、USB(Universal Serial Bus)、HDMI(登録商標,High-Definition Multimedia Interface)のポートである。
 メッセージ認証装置10は、機能構成要素として、通信部21と、圧縮部22と、Tweak計算部23と、第1暗号化部24と、認証子生成部25とを備える。圧縮部22は、M生成部31と、分割部32と、第2暗号化部33と、H計算部34とを備える。Tweak計算部23は、W生成部41と、U’生成部42と、V生成部43とを備える。メッセージ認証装置10の各機能構成要素の機能はソフトウェアにより実現される。
 ストレージ13には、メッセージ認証装置10の各機能構成要素の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ11によりメモリ12に読み込まれ、プロセッサ11によって実行される。これにより、メッセージ認証装置10の各機能構成要素の機能が実現される。
 図1では、プロセッサ11は、1つだけ示されていた。しかし、プロセッサ11は、複数であってもよく、複数のプロセッサ11が、各機能を実現するプログラムを連携して実行してもよい。
 ***動作の説明***
 図2から図6を参照して、実施の形態1に係るメッセージ認証装置10の動作を説明する。
 実施の形態1に係るメッセージ認証装置10の動作は、実施の形態1に係るメッセージ認証方法に相当する。また、実施の形態1に係るメッセージ認証装置10の動作は、実施の形態1に係るメッセージ認証プログラムの処理に相当する。
 図2及び図3を参照して、実施の形態1に係るメッセージ認証装置10の全体的な動作を説明する。
 メッセージ認証装置10は、1以上の整数t,nについて、tビットのTweakを入力としてnビットの値を出力するTweakableブロック暗号Eを用いてメッセージMの認証子Zを生成する。ここでは、メッセージ認証装置10は、Tweakとして2つの引数(j,T)を用いるTweakableブロック暗号E を用いる。また、2≦sである整数sに対し、Tweakの集合がSet(T)=[0,s]×{0,1}と定義される。
 以下の動作の前提として、メッセージ認証装置10は、メッセージMの送信先と共有した鍵Kをストレージ13に記憶している。
 (ステップS1:入力処理)
 通信部21は、メッセージ認証装置10の利用者によって入力装置等が操作され、入力されたメッセージMを、通信インタフェース14を介して受け付ける。通信部21は、メッセージMをメモリ12に書き込む。
 (ステップS2:圧縮処理)
 圧縮部22は、メッセージMをメモリ12から読み出す。圧縮部22は、関数Hashを用いて、メッセージMを2nビットの値Hに圧縮する。圧縮部22は、値Hをnビットの2つの値H[1]と値H[2]とに分割する。圧縮部22は、値H[1]と値H[2]とをメモリ12に書き込む。
 (ステップS3:Tweak計算処理)
 Tweak計算部23は、値H[1]をメモリ12から読み出す。
 Tweak計算部23は、値H[1]からmin{t,n/2}ビットの2つの値U[1]と値U[2]とを抽出する。具体例としては、Tweak計算部23は、値H[1]の先頭からmin{t,n/2}ビットを値U[1]として抽出し、値H[1]の後からmin{t,n/2}ビットを値U[2]として抽出する。なお、値H[1]の代わりにbビットの置換関数pを用いて計算した値p(H[1])を用いて、値U[1]と値U[2]を抽出してもよい。
 Tweak計算部23は、メッセージMと値U[1]とを入力として関数F[1]を計算することにより、tビットの値V[1]を生成する。また、Tweak計算部23は、メッセージMと値U[2]とを入力として関数F[2]を計算することにより、tビットの値V[2]を生成する。
 Tweak計算部23は、値V[1]と値V[2]とをメモリ12に書き込む。
 (ステップS4:第1暗号化処理)
 第1暗号化部24は、値V[1]と値V[2]と値H[2]とをメモリ12から読み出す。
 第1暗号化部24は、値V[1]をTweakとして用いて値H[2]をTweakableブロック暗号Eにより暗号化することにより、値Z[1]を生成する。また、第1暗号化部24は、値V[2]をTweakとして用いて値H[2]をTweakableブロック暗号Eにより暗号化することにより、値Z[2]を生成する。第1暗号化部24は、値Z[1]と値Z[2]とをメモリ12に書き込む。
 具体的には、i=1,2の各整数iについて、第1暗号化部24は、index(i,|M|)をTweakの第1引数とし、値V[i]をTweakの第2引数として用いる。ここで、|M|は、メッセージMのビット長である。indexは、[1,s]の値とメッセージのビット長|M|とを入力として、[1,s]の値を出力する関数である。そして、第1暗号化部24は、値H[2]をTweakableブロック暗号Eにより暗号化することにより、値Z[i]を生成する。この際、第1暗号化部24は、ストレージ13に記憶された鍵Kを用いる。つまり、第1暗号化部24は、Z[i]=E index(i,|M|)(V[i],H[2])を計算する。
 (ステップS5:認証子生成処理)
 認証子生成部25は、値Z[1]と値Z[2]とをメモリ12から読み出す。認証子生成部25は、値Z[1]と値Z[2]とからメッセージMの認証子Zを生成する。具体例としては、認証子生成部25は、値Z[1]と値Z[2]との排他的論理和を認証子Zとして生成する。認証子生成部25は、認証子Zをメモリ12に書き込む。
 (ステップS6:送信処理)
 通信部21は、メッセージMと認証子Zとをメモリ12から読み出す。通信部21は、メッセージMと認証子Zとを、通信インタフェース14を介して送信先に送信する。
 図4及び図5を参照して、実施の形態1に係る圧縮処理(図2のステップS2)を説明する。
 以下の説明では、値cを0≦c≦tを満たす整数とする。また、値d=t-cとする。
 (ステップS21:M生成処理)
 M生成部31は、メッセージMのビット長|M|がn+dの倍数でない場合には、メッセージMにビット列を付加して、n+dの倍数のビット長の値Mを生成する。具体例としては、M生成部31は、メッセージMの後に1のビットを付加し、さらにその後ろに0のビットを1つ以上付加して、n+dの倍数の値Mを生成する。つまり、M=M||1||0...0である。
 M生成部31は、メッセージMのビット長|M|がn+dの倍数である場合には、メッセージMを値Mに設定する。つまり、M=Mである。
 M生成部31は、値Mをメモリ12に書き込む。
 (ステップS22:分割処理)
 分割部32は、値Mをメモリ12から読み出す。分割部32は、値Mを先頭からn+dビット毎にL個の値M[1],...,値M[L]に分割する。分割部32は、値M[1],...,値M[L]をメモリ12に書き込む。
 (ステップS23:第2暗号化処理)
 i=1,...,Lの各整数iについて、第2暗号化部33は、値M[i]をメモリ12から読み出す。第2暗号化部33は、値M[i]をnビットの値A[i]とdビットの値B[i]とに分割する。第2暗号化部33は、値B[i]と値iをcビット表現した値str(i)とから生成されたtビットの値TをTweakとして用いて値A[i]をTweakableブロック暗号Eにより暗号化して値C[i]を生成する。第2暗号化部33は、値A[i]と値B[i]と値C[i]とをメモリ12に書き込む。
 具体的には、第2暗号化部33は、0をTweakの第1引数とし、tビットの値TをTweakの第2引数として用いる。例えば、値T=str(i)||B[i]である。なお、tビットの置換関数πを用いて、値T=π(B[i]||str(i))等としてもよい。そして、第2暗号化部33は、値A[i]をTweakableブロック暗号Eにより暗号化して値C[i]を生成する。この際、第2暗号化部33は、ストレージ13に記憶された鍵Kを用いる。つまり、第2暗号化部33は、C[i]=E (T,A[i])を計算する。
 (ステップS24:H計算処理)
 H計算部34は、i=1,...,Lの各整数iについての値C[i]をメモリ12から読み出す。H計算部34は、i=1,...,Lの各整数iについての前記値C[i]を用いて、値Hを計算する。そして、H計算部34は、値Hから値H[1]と値H[2]とを計算する。なお、H計算部34は、値Hを計算せずに、値H[1]と値H[2]とを計算してもよい。
 具体例としては、H計算部34は、i=1,...,Lの各整数iについての値C[i]の排他的論理和を計算して値H[1]を生成する。つまり、H計算部34は、数7に示すように値H[1]を計算する。
Figure JPOXMLDOC01-appb-M000007
 また、H計算部34は、i=1,...,Lの各整数iについて値C[i]と値xL-i+1とのガロア体GF(2)上の積を計算して値C[i]を生成し、i=1,...,Lの各整数iについての値C[i]の排他的論理和を計算して値H[2]を生成する。つまり、H計算部34は、数8に示すように値H[2]を計算する。xは、ガロア体GF(2)の生成元である。
Figure JPOXMLDOC01-appb-M000008
 図6を参照して、実施の形態1に係る関数Fを説明する。
 関数Fは、Tweak計算処理(図2のステップS3)で用いられた関数である。以下の説明では、圧縮処理(図2のステップS2)として、図4及び図5を参照して説明した方法が適用されているものとする。
 (ステップS31:W生成処理)
 W生成部41は、i=1,...,Lの各整数iについての値B[i]をメモリ12から読み出す。値B[i]は、図4のステップS23で生成された値である。
 W生成部41は、i=1,...,Lの各整数iについての値B[i]の排他的論理和を計算して値Bを生成する。つまり、W生成部41は、数9に示すように値Bを計算する。
Figure JPOXMLDOC01-appb-M000009
 W生成部41は、値Bにビットを付加してtビットの値Wを生成する。具体例としては、W生成部41は、値Bの後に、0のビットを1つ以上付加して、tビットの値Wを生成する。つまり、W=B||0...0である。W生成部41は、値Wをメモリ12に書き込む。
 なお、W生成部41は、0のビットを1つ以上付加することに限らず、1のビットを1つ以上付加してもよいし、0と1とを組み合わせたビット列を付加してもよい。また、W生成部41は、値Bの後にビットを付加するのではなく、値Bの前にビットを付加してもよいし、値Bにおける他の任意の位置にビットを付加してもよい。
 (ステップS32:U’生成処理)
 i=1,2の各整数iについて、U’生成部42は、値U[i]がtビットでない場合には、値U[i]にビットを付加してtビットの値U’[i]を生成する。値U[i]は、図2のステップS3で抽出された値である。具体例としては、U’生成部42は、値U[i]の後に0のビットを1つ以上付加して、tビットの値U’[i]を生成する。
 なお、U’生成部42は、0のビットを1つ以上付加することに限らず、1のビットを1つ以上付加してもよいし、0と1とを組み合わせたビット列を付加してもよい。また、U’生成部42は、値Uの後にビットを付加するのではなく、値Uの前にビットを付加してもよいし、値Uにおける他の任意の位置にビットを付加してもよい。
 また、i=1,2の各整数iについての、U’生成部42は、値U[i]がtビットである場合には、値U[i]を値U’[i]に設定する。
 U’生成部42は、i=1,2の各整数iについての値U’[i]をメモリ12に書き込む。
 (ステップS33:V生成処理)
 V生成部43は、値Wとi=1,2の各整数iについての値U’[i]とをメモリ12から読み出す。
 i=1,2の各整数iについて、V生成部43は、値Wと値U’[i]との排他的論理和を計算して値V[i]を生成する。つまり、V生成部43は、数10に示すように、値V[i]を計算する。
Figure JPOXMLDOC01-appb-M000010
 実施の形態1に係るindex関数を説明する。
 index関数は、第1暗号化処理(図2のステップS4)で用いられた関数である。以下の説明では、圧縮処理(図2のステップS2)として、図4及び図5を参照して説明した方法が適用されているものとする。また、ここでは、s=4とする。つまり、Set(T)=[0,4]×{0,1}とする。
 index関数は、入力である整数iとビット長|M|とに対して、ビット長|M|がn+dの倍数の場合には、iを出力し、そうでない場合には、2iを出力する。つまり、ビット長|M|がn+dの倍数の場合には、index(i,|M|)=iであり、そうでない場合には、index(i,|M|)=2iである。
 又は、index関数は、入力である整数iとビット長|M|とに対して、ビット長|M|がn+dの倍数の場合には、2iを出力し、そうでない場合には、iを出力する。つまり、ビット長|M|がn+dの倍数の場合には、index(i,|M|)=2iであり、そうでない場合には、index(i,|M|)=iである。
 ***実施の形態1の効果***
 以上のように、実施の形態1に係るメッセージ認証装置10は、Tweakableブロック暗号を用いたメッセージ認証アルゴリズムを実現する。
 実施の形態1に係るメッセージ認証装置10によって実現されるメッセージ認証アルゴリズムは、数11に示す擬似乱数性のアドバンテージのバウンドであることを示すことが可能である。
Figure JPOXMLDOC01-appb-M000011
 よって、n/2≦tの場合に、クエリー回数がq=O(2)となるまで擬似乱数性を保証できる。
 ここで、nを固定した場合、n≦tの条件を満たすTweakableブロック暗号より、t<nの条件を満たすTweakableブロック暗号の方が、扱うTweakの長さが短い。そのため、内部構造を簡単にすることができ、ソフトウェアサイズとハードウェアサイズとの少なくともいずれかを小さくすることができる。
 ***他の構成***
 <変形例1>
 実施の形態1では、各機能構成要素がソフトウェアで実現された。しかし、変形例1として、各機能構成要素はハードウェアで実現されてもよい。この変形例1について、実施の形態1と異なる点を説明する。
 図7を参照して、変形例1に係るメッセージ認証装置10の構成を説明する。
 各機能構成要素がハードウェアで実現される場合には、メッセージ認証装置10は、プロセッサ11に代えて、電子回路15を備える。電子回路15は、各機能構成要素の機能を実現する専用の回路である。
 電子回路15としては、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)が想定される。
 各機能構成要素を1つの電子回路15で実現してもよいし、各機能構成要素を複数の電子回路15に分散させて実現してもよい。
 例えば、図8に示すように、メッセージ認証装置10は、電子回路15として、Tweakableブロック暗号用の電子回路15Aと、ハッシュ関数用の電子回路15Bと、最終処理用の電子回路15Cとを備える。
 Tweakableブロック暗号用の電子回路15Aは、Tweakableブロック暗号Eの計算を行う。ハッシュ関数用の電子回路15Bは、圧縮処理(図2のステップS2)を行う。最終処理用の電子回路15Cは、Tweak計算処理と、第1暗号化処理と、認証子生成処理と(図2のステップS3からステップS5)を行う。但し、最終処理用の電子回路15Cは、Tweakableブロック暗号Eの計算については、Tweakableブロック暗号用の電子回路15Aに実行させる。
 <変形例2>
 変形例2として、一部の各機能構成要素がハードウェアで実現され、他の各機能構成要素がソフトウェアで実現されてもよい。
 プロセッサ11とメモリ12と電子回路15とを電子回路という。つまり、各機能構成要素の機能は、電子回路により実現される。
 10 メッセージ認証装置、11 プロセッサ、12 メモリ、13 ストレージ、14 通信インタフェース、21 通信部、22 圧縮部、23 Tweak計算部、24 第1暗号化部、25 認証子生成部、31 M生成部、32 分割部、33 第2暗号化部、34 H計算部、41 W生成部、42 U’生成部、43 V生成部。

Claims (8)

  1.  1以上の整数t,nについて、tビットのTweakを入力としてnビットの値を出力するTweakableブロック暗号Eを用いてメッセージMの認証子Zを生成するメッセージ認証装置であり、
     前記メッセージMからnビットの2つの値H[1]と値H[2]とを生成する圧縮部と、
     前記値H[1]の上位min{t,n/2}ビットと下位min{t,n/2}ビットから2つの値U[1]と値U[2]とを抽出して、前記メッセージMと前記値U[1]とを入力としてtビットの値V[1]を生成するとともに、前記メッセージMと前記値U[2]とを入力としてtビットの値V[2]を生成するTweak計算部と、
     前記値V[1]をTweakとして用いて前記値H[2]を前記Tweakableブロック暗号Eにより暗号化して値Z[1]を生成するとともに、前記値V[2]をTweakとして用いて前記値H[2]を前記Tweakableブロック暗号Eにより暗号化して値Z[2]を生成する第1暗号化部と、
     前記値Z[1]と前記値Z[2]とから前記認証子Zを生成する認証子生成部と
    を備えるメッセージ認証装置。
  2.  前記圧縮部は、
     0以上t以下の整数cと、整数d=t-cとについて、前記メッセージMがn+dの倍数ビットでない場合には、前記メッセージMにビットを付加してn+dの倍数ビットの値Mを生成し、前記メッセージMがn+dの倍数ビットである場合には、前記メッセージMを値Mに設定するM生成部と、
     前記値Mを先頭からn+dビット毎にL個の値M[1],...,値M[L]に分割する分割部と、
     i=1,...,Lの各整数iについて、値M[i]をnビットの値A[i]とdビットの値B[i]とに分割し、前記値B[i]と前記値iをcビット表現した値とから生成されたtビットの値をTweakとして用いて前記値A[i]を前記Tweakableブロック暗号Eにより暗号化して値C[i]を生成する第2暗号化部と、
     i=1,...,Lの各整数iについての前記値C[i]を用いて、前記値H[1]と前記値H[2]とを計算するH計算部と
    を備える請求項1に記載のメッセージ認証装置。
  3.  前記H計算部は、i=1,...,Lの各整数iについての前記値C[i]の排他的論理和を計算して前記値H[1]を生成し、i=1,...,Lの各整数iについて前記値C[i]と値xL-i+1とのガロア体GF(2)上の積を計算して値C[i]を生成し、i=1,...,Lの各整数iについての値C[i]の排他的論理和を計算して前記値H[2]を生成する
    請求項2に記載のメッセージ認証装置。
  4.  前記Tweak計算部は、
     i=1,...,Lの各整数iについての前記値B[i]の排他的論理和を計算して値Bを生成し、前記値Bにビットを付加してtビットの値Wを生成するW生成部と、
     i=1,2の各整数iについての前記値U[i]がtビットでない場合には、前記値U[i]にビットを付加してtビットの値U’[i]を生成し、前記値U[i]がtビットである場合には、前記値U[i]を値U’[i]に設定するU’生成部と、
     i=1,2の各整数iについて、前記値Wと前記値U’[i]との排他的論理和を計算して前記値V[i]を生成するV生成部と
    を備える請求項2又は3に記載のメッセージ認証装置。
  5.  前記Tweakableブロック暗号Eは、前記Tweakとして、第1引数と、tビットの第2引数とが入力され、
     前記第1暗号化部は、i=1,2の各整数iについて、前記メッセージと前記整数iとから決められるインデックスを第1引数とし、前記値V[i]を第2引数として用いて前記値H[2]を前記Tweakableブロック暗号Eにより暗号化して値Z[i]を生成する
    請求項1から4までのいずれか1項に記載のメッセージ認証装置。
  6.  前記認証子生成部は、前記値Z[1]と前記値Z[2]との排他的論理和を計算して、前記認証子Zを生成する
    請求項1から5までのいずれか1項に記載のメッセージ認証装置。
  7.  1以上の整数t,nについて、tビットのTweakを入力としてnビットの値を出力するTweakableブロック暗号Eを用いてメッセージMの認証子Zを生成するメッセージ認証方法であり、
     圧縮部が、前記メッセージMからnビットの2つの値H[1]と値H[2]とを生成し、
     Tweak計算部が、前記値H[1]の上位min{t,n/2}ビットと下位min{t,n/2}ビットから2つの値U[1]と値U[2]とを抽出して、前記メッセージMと前記値U[1]とを入力としてtビットの値V[1]を生成するとともに、前記メッセージMと前記値U[2]とを入力としてtビットの値V[2]を生成し、
     第1暗号化部が、前記値V[1]をTweakとして用いて前記値H[2]を前記Tweakableブロック暗号Eにより暗号化して値Z[1]を生成するとともに、前記値V[2]をTweakとして用いて前記値H[2]を前記Tweakableブロック暗号Eにより暗号化して値Z[2]を生成し、
     認証子生成部が、前記値Z[1]と前記値Z[2]とから前記認証子Zを生成するメッセージ認証方法。
  8.  1以上の整数t,nについて、tビットのTweakを入力としてnビットの値を出力するTweakableブロック暗号Eを用いてメッセージMの認証子Zを生成するメッセージ認証プログラムであり、
     圧縮部が、前記メッセージMからnビットの2つの値H[1]と値H[2]とを生成する圧縮処理と、
     Tweak計算部が、前記値H[1]の上位min{t,n/2}ビットと下位min{t,n/2}ビットからから2つの値U[1]と値U[2]とを抽出して、前記メッセージMと前記値U[1]とを入力としてtビットの値V[1]を生成するとともに、前記メッセージMと前記値U[2]とを入力としてtビットの値V[2]を生成するTweak計算処理と、
     第1暗号化部が、前記値V[1]をTweakとして用いて前記値H[2]を前記Tweakableブロック暗号Eにより暗号化して値Z[1]を生成するとともに、前記値V[2]をTweakとして用いて前記値H[2]を前記Tweakableブロック暗号Eにより暗号化して値Z[2]を生成する第1暗号化処理と、
     認証子生成部が、前記値Z[1]と前記値Z[2]とから前記認証子Zを生成する認証子生成処理と
    を行うメッセージ認証装置としてコンピュータを機能させるメッセージ認証プログラム。
PCT/JP2018/032082 2018-08-30 2018-08-30 メッセージ認証装置、メッセージ認証方法及びメッセージ認証プログラム WO2020044485A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/JP2018/032082 WO2020044485A1 (ja) 2018-08-30 2018-08-30 メッセージ認証装置、メッセージ認証方法及びメッセージ認証プログラム
JP2020539941A JP6797337B2 (ja) 2018-08-30 2018-08-30 メッセージ認証装置、メッセージ認証方法及びメッセージ認証プログラム
CN201880096809.5A CN112640359B (zh) 2018-08-30 2018-08-30 消息认证装置、消息认证方法及计算机可读取的存储介质
US17/175,391 US11522712B2 (en) 2018-08-30 2021-02-12 Message authentication apparatus, message authentication method, and computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/032082 WO2020044485A1 (ja) 2018-08-30 2018-08-30 メッセージ認証装置、メッセージ認証方法及びメッセージ認証プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/175,391 Continuation US11522712B2 (en) 2018-08-30 2021-02-12 Message authentication apparatus, message authentication method, and computer readable medium

Publications (1)

Publication Number Publication Date
WO2020044485A1 true WO2020044485A1 (ja) 2020-03-05

Family

ID=69643535

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/032082 WO2020044485A1 (ja) 2018-08-30 2018-08-30 メッセージ認証装置、メッセージ認証方法及びメッセージ認証プログラム

Country Status (4)

Country Link
US (1) US11522712B2 (ja)
JP (1) JP6797337B2 (ja)
CN (1) CN112640359B (ja)
WO (1) WO2020044485A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112640359B (zh) * 2018-08-30 2024-05-03 三菱电机株式会社 消息认证装置、消息认证方法及计算机可读取的存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008018303A1 (fr) * 2006-08-10 2008-02-14 Nec Corporation Dispositif de chiffrage de bloc équipé d'une fonction d'ajustement, procédé et programme
WO2017056151A1 (ja) * 2015-09-28 2017-04-06 三菱電機株式会社 メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200227B2 (en) * 2001-07-30 2007-04-03 Phillip Rogaway Method and apparatus for facilitating efficient authenticated encryption
EP1856837A1 (en) * 2005-03-01 2007-11-21 Nxp B.V. Generator for generating a message authentication code, method of generating a message authentication code, program element and computer-readable medium
CA2627136A1 (en) 2005-11-04 2007-05-10 Nec Corporation Message authentication device, message authentication method, message authentication program and storage medium therefor
WO2008009826A2 (fr) * 2006-07-19 2008-01-24 Advanced Track & Trace Procedes et dispositifs de securisation et d'authentification de documents
JP5333450B2 (ja) 2008-08-29 2013-11-06 日本電気株式会社 調整値付きブロック暗号化装置、方法及びプログラム並びに復号装置、方法及びプログラム
DE102012201164B4 (de) * 2012-01-26 2017-12-07 Infineon Technologies Ag Vorrichtung und verfahren zur erzeugung eines nachrichtenauthentifizierungscodes
US20140133656A1 (en) * 2012-02-22 2014-05-15 Qualcomm Incorporated Preserving Security by Synchronizing a Nonce or Counter Between Systems
CN102594566B (zh) * 2012-03-12 2014-11-05 浙江工业大学 一种面向无线传感器网络的混沌消息认证码实现方法
US9571270B2 (en) * 2013-11-29 2017-02-14 Portland State University Construction and uses of variable-input-length tweakable ciphers
JPWO2016067524A1 (ja) 2014-10-30 2017-08-10 日本電気株式会社 認証付暗号化装置、認証付復号装置、認証付暗号システム、認証付暗号化方法、プログラム
US10326589B2 (en) * 2015-09-28 2019-06-18 Mitsubishi Electric Corporation Message authenticator generating apparatus, message authenticator generating method, and computer readable recording medium
US9794062B2 (en) * 2015-10-08 2017-10-17 The Boeing Company Scrambled tweak mode of blockciphers for differential power analysis resistant encryption
US11106821B2 (en) * 2018-03-20 2021-08-31 Micro Focus Llc Determining pseudonym values using tweak-based encryption
CN112640359B (zh) * 2018-08-30 2024-05-03 三菱电机株式会社 消息认证装置、消息认证方法及计算机可读取的存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008018303A1 (fr) * 2006-08-10 2008-02-14 Nec Corporation Dispositif de chiffrage de bloc équipé d'une fonction d'ajustement, procédé et programme
WO2017056151A1 (ja) * 2015-09-28 2017-04-06 三菱電機株式会社 メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IWATA, T. ET AL.: "ZMAC: A Fast Tweakable Block Cipher Mode for Highly Secure Message Authentication", CRYPTOLOGY EPRINT ARCHIVE, 15 December 2017 (2017-12-15), pages 1 - 36, XP061023964 *

Also Published As

Publication number Publication date
US11522712B2 (en) 2022-12-06
US20210167968A1 (en) 2021-06-03
CN112640359B (zh) 2024-05-03
JPWO2020044485A1 (ja) 2020-12-17
CN112640359A (zh) 2021-04-09
JP6797337B2 (ja) 2020-12-09

Similar Documents

Publication Publication Date Title
US20120269340A1 (en) Hierarchical encryption/decryption device and method thereof
JP6575532B2 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
US11349668B2 (en) Encryption device and decryption device
JP6735926B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム
WO2020044485A1 (ja) メッセージ認証装置、メッセージ認証方法及びメッセージ認証プログラム
CN112236974B (zh) 解密装置、加密装置以及密码系统
US11876888B2 (en) Encryption device, decryption device, encryption method, decryption method, and computer readable medium
US11177936B2 (en) Message authenticator generation apparatus
JP6631989B2 (ja) 暗号化装置、制御方法、及びプログラム
JP7317261B2 (ja) 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム
JP6033504B1 (ja) メッセージ認証子生成装置
JP6949276B2 (ja) 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム
WO2022239163A1 (ja) 認証暗号化装置、認証復号装置、認証暗号システム、方法及びコンピュータ可読媒体
CN117981269A (zh) 哈希值计算装置、哈希值计算方法以及哈希值计算程序
JP2012014077A (ja) ハッシュ値演算装置、ハッシュ値演算方法及びハッシュ値演算プログラム

Legal Events

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

Ref document number: 18931795

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020539941

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18931795

Country of ref document: EP

Kind code of ref document: A1