WO2013065241A1 - インクリメンタルmacタグ生成装置、方法及びプログラム並びにメッセージ認証装置 - Google Patents

インクリメンタルmacタグ生成装置、方法及びプログラム並びにメッセージ認証装置 Download PDF

Info

Publication number
WO2013065241A1
WO2013065241A1 PCT/JP2012/006586 JP2012006586W WO2013065241A1 WO 2013065241 A1 WO2013065241 A1 WO 2013065241A1 JP 2012006586 W JP2012006586 W JP 2012006586W WO 2013065241 A1 WO2013065241 A1 WO 2013065241A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
plaintext
intermediate variable
tag
padding
Prior art date
Application number
PCT/JP2012/006586
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 US14/353,349 priority Critical patent/US20140317407A1/en
Publication of WO2013065241A1 publication Critical patent/WO2013065241A1/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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/20Manipulating the length of blocks of bits, e.g. padding or block truncation

Definitions

  • the present invention relates to an incremental MAC tag generation device, method and program used for message authentication using a common key, and a message authentication device.
  • the message authentication code (hereinafter referred to as MAC) method is a method for guaranteeing that a message is legitimate by attaching a tag that can be calculated only by a person who knows a secret key to the message. If the MAC method is used, for example, in communication between two parties sharing a secret key, it is possible to detect tampering by a third party performed during the communication.
  • a secret key shared between the sender and receiver of a message is K
  • the tag T ′′ is calculated from the key K shared with M ′. If the received tag T ′ matches the calculated T ′′, it is determined that the plaintext M ′ is sent from a legitimate sender.
  • the sent M ′ is a message obtained by performing a specific editing process on the previously sent M
  • the calculation result of the tag T performed on M is reused, and There is a method capable of processing the calculation of the tag T ′′ at high speed.
  • Such a MAC scheme is called incremental (for its processing).
  • the incremental MAC method In the incremental MAC method, the calculation result of the tag T is reused. Therefore, the incremental MAC method can greatly reduce the amount of calculation when the message changes partially or sequentially or when messages with relatively little change continue. As a specific application example, the incremental MAC method is used for guaranteeing the authenticity of documents on a computer, or for protecting a large-capacity memory in hardware such as a game machine from hacking.
  • FIG. 8 is a block diagram showing the operation of a general tag generation apparatus using PMAC.
  • n-bit block cipher E (K, *) be a part.
  • the tag T can be obtained as follows.
  • + represents a bitwise exclusive OR (XOR).
  • represents concatenation of bit sequences.
  • represents the bit length of M [L].
  • E (K, M [i]) is encryption of plaintext M [i] with the key K of the block cipher E, and U is ciphertext E (K, 0 ⁇ ) with a constant 0 ⁇ n (all-zero n-bit sequence). n).
  • the function f_i represents multiplication of an input value and a constant 2 ⁇ (i-1) on a finite field.
  • PMAC can be executed in parallel, unlike general CBC-MAC (Cipher Block Chaining-MAC).
  • V D (K, T) + ff_w (U)
  • V ′ V + E (K, f_1 (U) + M [1]) + E (K, f_1 (U) + M ′ [1])
  • T ′ E (K, V ′ + ff_w (U))
  • D (K, *) is a block cipher decryption function.
  • w (0 or 1) depends on the length of
  • the mask variable f_i stirs the input value M to E (K, *) before encryption.
  • processing other than block change for example, insertion, deletion, cut and paste, etc. of a block may be performed.
  • M ′ (M [2],.
  • the input values to E (K, *) at M and M ′ are respectively M: f_1 + M [1], f_2 + M [2],. . . , F_L-1 + M [L-1] M ': f_1 + M [2], f_2 + M [3],. . . , F_L-1 + M [L-2] It becomes.
  • Other existing incremental MACs such as XORMAC described in Non-Patent Document 2 and GMAC described in Non-Patent Document 3 have the same problem.
  • Non-Patent Document 5 describes a method in which a message is divided into n-bit blocks, and padding is performed when a block is less than n bits.
  • Non-Patent Document 6 describes a block cipher-based pseudo-random function as an example of an encryption function.
  • Non-Patent Document 7 describes a linear shift register as an example of processing used for a scramble function described later.
  • An object of the present invention is to provide an incremental MAC tag generation device, method and program, and a message authentication device capable of performing an incremental tag calculation that can cope with editing in every block unit without impairing the efficiency of normal tag calculation.
  • An incremental MAC tag generation device inputs a final block of plaintext M divided into a plurality of blocks, and performs padding when padding when the length of the final block of plaintext M is less than a predetermined number of bits.
  • the parallel encryption means with cache reference compares a block other than the last block of the plaintext M with each block of the plaintext M ′, and there is a block of the plaintext M ′ that matches the block of the plaintext
  • the block of the intermediate variable S ′ corresponding to the block of the plaintext M ′ is used as the intermediate variable S, and if there is no plaintext M ′ block that matches the block of the plaintext M, the block of the plaintext M is encrypted. It is used for the intermediate variable S.
  • the method for generating an incremental MAC tag inputs a final block of plaintext M divided into a plurality of blocks, performs padding when the length of the final block of plaintext M is less than a predetermined number of bits, A block other than the last block of M, the cached plaintext M ′, and an intermediate variable S ′ obtained by encrypting M ′ are input, and a block other than the last block of plaintext M is compared with each block of plaintext M ′.
  • the block of the intermediate variable S ′ corresponding to the block of plaintext M ′ is used as the intermediate variable S, and the plaintext M ′ that matches the block of plaintext M If there is no block, the plaintext M block is encrypted and the intermediate variable S is calculated.
  • the intermediate variable S is scrambled and scrambled.
  • Each block between variables S, and calculates a hash value V which is the exclusive OR of the last block of the plaintext M, a hash value V whether padding as a parameter, and calculates a tag is encrypted.
  • An incremental MAC tag generation program inputs a final block of plaintext M divided into a plurality of blocks to a computer, and performs padding when the length of the final block of plaintext M is less than a predetermined number of bits.
  • blocks other than the final block of plaintext M, cached plaintext M ′, and intermediate variable S ′ obtained by encrypting M ′ are input, and blocks other than the final block of plaintext M and each block of plaintext M ′ If there is a block of plaintext M ′ that matches the block of plaintext M, the block of the intermediate variable S ′ corresponding to the block of plaintext M ′ is used as the intermediate variable S to match the block of plaintext M If there is no plaintext M ′ block to be encrypted, the process of calculating the intermediate variable S by encrypting the plaintext M block and scrambling to the intermediate variable S Processing, calculating the hash value V that is the exclusive OR of each block of the intermediate variable S scrambled and the final block of the plaintext
  • FIG. FIG. 1 is a block diagram illustrating a configuration of an incremental MAC tag generation device according to a first embodiment of the present invention.
  • FIG. 2 is a block diagram illustrating processing of the incremental MAC tag generation device according to the first embodiment of the present invention.
  • FIG. 3 is a block diagram illustrating a data flow of the incremental MAC tag generation device according to the first embodiment of the present invention.
  • + represents an exclusive OR for each bit, and the length of one message block is n bits.
  • the incremental MAC tag generation device 10 of this embodiment includes padding means 101, parallel encryption means 102 with cache reference, scramble hash means 103, and tag generation means 104.
  • an input unit 100 and an output unit 105 are connected to the incremental MAC tag generation device 10.
  • the incremental MAC tag generation device 10 is realized by, for example, a CPU, a memory, a disk, and the like. Each means of the incremental MAC tag generation device 10 is realized, for example, by storing a program in a computer disk and operating the program on the CPU.
  • the plaintext M and the plaintext M ′ are divided into n-bit block units.
  • the input unit 100 is realized by a character input device such as a keyboard, for example.
  • the input unit 100 may be, for example, a communication interface such as a computer LAN or USB, or an input interface on a program.
  • the padding format of the padding means 101 is arbitrary, and for example, all zeros may be connected. However, if the last block is exactly n bits, no processing is performed.
  • the cache-referenced parallel encryption means 102 searches for all the cached plaintext M ′ [j] blocks that match the sent plaintext M [i] block, and matches them. Then, S ′ [j] corresponding to the M ′ [j] is used. Therefore, even if M [i] is subjected to processing other than the block unit change, for example, insertion, deletion, cut and paste, etc. of the block, it is possible to perform incremental tag calculation.
  • the input length of E is longer than the output length, and in this case, the processing of E may be CBC-MAC or CMAC using n-bit block cipher.
  • E is n-bit M [i]
  • the processing of E can be a key stream generation function of a stream cipher with IV (initialization vector)
  • M [i] can be input instead of IV
  • the output can be S [i].
  • a block cipher based pseudo-random function such as CENC described in Non-Patent Document 6. In either case, if there is no cached plaintext and intermediate variables, all plaintext blocks may be encrypted.
  • the scramble hash means 103 scrambles the intermediate variable S output from the parallel encryption means 102 for each block to obtain a hash value V.
  • Scramble function g_i 1,. . . , L ⁇ 1, u — 0 and u — 1 are determined so as to satisfy the conditions shown in the following equation scrcond in order to ensure safety.
  • Pr [sum_ ⁇ i in Gset ⁇ g_i (rand) + sum_ ⁇ j in Usage ⁇ u_j (rand) y]
  • the scramble function g_i can be expressed as any ⁇ 1,..., Excluding the zero set when rand is an n-bit uniform random number. . . , L ⁇ 1 ⁇ and any ⁇ 0,1 ⁇ subset (ie, ⁇ 0 ⁇ , ⁇ 1 ⁇ , ⁇ 0,1 ⁇ ) Uset including the zero set,
  • the n-bit value y may be a sufficiently small numerical value.
  • g_i and u_j are configured using cyclic shifts of n-bit prime-length partial sequences.
  • X is n bits
  • X [ab] is a partial sequence from the a-th bit to the b-th bit
  • rot (i, Y) is i-bit left (or right) cyclic shift of Y.
  • g_i (X), u_0 (X), and u_1 (X) can be defined as the following equation (+ in the following equation rot represents the sum).
  • G_i can be handled up to the maximum block length Lmax of the message by being determined in this way.
  • p is a prime number and needs to satisfy the relationship of p ⁇ Lmax + 1 ⁇ n.
  • Such a process can be executed at a very high speed because only a cyclic shift process is required as compared with a block cipher that repeats many complex operations.
  • X [p + 1 ⁇ n] in (Expression rot) may be an arbitrary fixed series such as all zeros.
  • cp ⁇ n for a positive integer c that is a divisor of n X is divided into c pieces, and the same processing as in (expression rot) is performed independently for each n / c bit subsequence. You may apply to.
  • g_i and u_j can be realized by multiplication with a constant on a finite field GF (2 ⁇ n), for example.
  • a_i and set ⁇ a_1,. . . , A_Lmax + 1 ⁇ form a basis on a finite field GF (2 ⁇ n) (linearly independent)
  • g_i (X), u_0 (X), and u_1 (X) can be defined as +
  • mul represents the sum).
  • mul (A, B) represents multiplication of elements A and B on a finite field.
  • g_i and u_j can be realized by, for example, a linear shift register (LFSR) as shown in the following equation (+ in the following equation LFSR represents the sum).
  • LFSR linear shift register
  • LFSR (i, X) is the content of the register after i times of operation, where X is the register of the linear shift register.
  • g_i the register of the linear shift register.
  • the calculation of g_i requires i times of LFSR operations.
  • Jump LFSR multiple operations are almost equivalent to one operation. It can be done by processing. Therefore, the efficiency can be improved by using such LFSR.
  • g_i is a cyclic shift represented by (Expression rot), a multiplication with a constant on a finite field GF (2 ⁇ n) represented by (Expression mul), or a linear shift represented by (Expression LFSR). Realized by registers. Thereby, g_i is determined so as to satisfy the condition shown in the expression scrcond, and safety is ensured.
  • the tag generation means 104 generates a tag T by encrypting the hash value V output from the scramble hash means 103, using whether or not the length of the final block M [L] of the plaintext M is n bits as a binary parameter. .
  • the tag generation means 104 outputs T obtained by the above (formula fin) as a tag.
  • U E (K, 0 ⁇ n).
  • the functions u — 0 and u — 1 for generating a mask are, for example, the cyclic shift shown in (Expression rot) described above, multiplication with a constant on the finite field GF (2 ⁇ n) shown in (Expression mul), or (Expression LFSR)
  • the tag generation means 104 encrypts whether or not the length of the final block M [L] of the plaintext M is n bits as a binary parameter. Do. As a result, the ambiguity caused by padding (that is, if only the intermediate variable S [L] is used, it is not known whether S [L] is M [L] itself or obtained by padding M [L]). Efficient processing can be realized while eliminating.
  • the processing shown in the above (formula fin) and (formula fin2) is a standard technique that is also used in the OMAC described in Non-Patent Document 5, similarly to the function of the padding means 101. Further, when the hash value V is longer than the block cipher block size used, a mode such as CBC-MAC or CMAC may be used.
  • the tag T generated by the tag generation unit 104 is output to the output unit 105.
  • the output unit 105 outputs the tag T generated by the tag generation unit 104 to, for example, a computer display or a printer.
  • FIG. 4 is a flowchart showing the operation of the incremental MAC tag generation device according to the first embodiment of the present invention.
  • the padding means 101 performs padding if the final block M [L] of the message is less than n bits, and sets the result as an intermediate variable S [L]. If M [L] is exactly n bits, M [L] is set to S [L] as it is (step G2).
  • the tag generation unit 104 encrypts the hash value V using the binary parameter as to whether or not padding is performed on the plaintext final block M [L] (that is, whether M [L] is n bits), and the tag T Is obtained (step G5). Finally, the output means 105 outputs the tag T (step G6).
  • the incremental MAC tag generation device 10 of the present embodiment can efficiently perform normal tag calculation while enabling incremental tag recalculation for every block processing.
  • the reason for this is that the result of encrypting the block M [i] of each message behaves transparently with respect to any block-by-block editing. Therefore, no new encryption calculation is required.
  • each M [i] process can be executed in parallel, and the scramble process is realized by a process that is much simpler than that of the block cipher, so that the overall speed can be significantly increased. If there is no cached plaintext, S can be obtained by encrypting all M [i].
  • each g_i process is a replacement (ie, there is an inverse function)
  • block insertion, deletion, cut and paste As for the update in units of blocks that do not involve, etc., as in the case of PMAC described in Non-Patent Document 1, even if intermediate variables are not cached, incremental tag calculation can be performed from messages and tags.
  • FIG. FIG. 5 is a block diagram showing a configuration of the message authentication device according to the second exemplary embodiment of the present invention.
  • the message authentication device according to the second embodiment includes an input unit 200, an incremental MAC tag generation device 10, a local tag verification unit 206, and an output unit 205.
  • the configuration and operation of the incremental MAC tag generation device 10 are the same as those shown in the first embodiment.
  • the input unit 200 is connected to the incremental MAC tag generation device 10 and the local tag verification unit 206.
  • the input unit 200 inputs the plaintext M to be authenticated, the tag T corresponding to the plaintext M, the cached plaintext M ′, and the cached intermediate variable S ′.
  • the input unit 200 is realized by a character input device such as a keyboard.
  • the input unit 200 may be a communication interface such as a computer LAN or USB, or an input interface on a program.
  • the incremental MAC tag generation device 10 is connected to the local tag verification unit 206 and has a function of generating a tag as described in the first embodiment.
  • a tag generated by the incremental MAC tag generation device 10 is referred to as a local tag Z.
  • the local tag verification unit 206 verifies the local tag Z by comparing the tag T input from the input unit 200 with the local tag Z input from the incremental MAC tag generation device 10.
  • the local tag verification unit 206 is connected to the output unit 205.
  • the local tag verification unit 206 sends the verification result to the output unit 205.
  • the output unit 205 outputs the verification result output from the local tag verification unit 206 to, for example, a computer display or a printer.
  • FIG. 6 is a flowchart showing the operation of the message authentication device according to the second exemplary embodiment of the present invention.
  • the plaintext M (M [1], M [2],..., M [L]) to be authenticated
  • the tag T corresponding to the plaintext M
  • the cached plaintext M ′ (M ′ [1],..., M ′ [N])
  • intermediate variables S ′ (S ′ [1],..., S ′ [N ⁇ 1]) corresponding to M ′. )
  • Is input step V1
  • the padding means 101 performs padding if the final block M [L] of the message is less than n bits, and sets the result as an intermediate variable S [L]. If M [L] is exactly n bits, the padding means 101 sets M [L] as S [L] as it is (step V2).
  • the tag generation means 104 encrypts the hash value V using the presence / absence of padding in the plaintext final block M [L] (that is, whether it is n bits) as a binary parameter, and obtains a local tag Z (step V5).
  • the local tag verification unit 206 verifies whether or not the local tag Z input from the tag generation unit 104 matches the tag T input from the input unit 200 (step V5). Finally, the output unit 205 outputs the verification result of the local tag verification unit 206 (step V6).
  • the message authentication device of this embodiment can obtain the same effects as those of the first embodiment. Therefore, message authentication can be performed efficiently.
  • FIG. 7 is a block diagram showing a main part of the incremental MAC tag generation device of the present invention.
  • the incremental MAC tag generation device 10 includes a cache-referenced parallel encryption unit 12, a padding unit 11, a scramble hash unit 13, and a tag generation unit 14 as minimum components.
  • the padding unit 11 inputs a final block of plaintext M divided into a plurality of blocks, and the length of the final block of plaintext M is less than a predetermined number of bits. Padding.
  • the parallel encryption unit with cache reference 12 receives a block other than the final block of the plaintext M, the cached plaintext M ′, and the intermediate variable S ′ obtained by encrypting M ′, and calculates the intermediate variable S.
  • the scramble hash unit 13 scrambles blocks other than the final block of the intermediate variable S.
  • the scramble hash unit 13 calculates a hash value V that is an exclusive OR of each block of the intermediate variable S that has been scrambled and the final block of the plaintext M that is padded by the padding unit 11.
  • the tag generation unit 14 calculates a tag by encrypting the hash value V using the presence or absence of padding by the padding unit 11 as a parameter.
  • the parallel encryption unit with cache reference 12 compares blocks other than the last block of plaintext M with each block of plaintext M ′.
  • the parallel encryption unit with cache reference 12 uses the block of the intermediate variable S ′ corresponding to the block of the plaintext M ′ as the intermediate variable S when there is a block of the plaintext M ′ that matches the block of the plaintext M.
  • the parallel encryption unit with cache reference 12 encrypts the plaintext M block and uses it as an intermediate variable S.
  • the incremental MAC tag generation device shown in FIG. 7 can perform an incremental tag calculation that can cope with editing in every block without impairing the efficiency of normal tag calculation.
  • an incremental MAC tag generation device and a message authentication device as shown in the following (1) to (5) are also disclosed.
  • An incremental MAC tag generation device (for example, incremental MAC tag generation device 10) inputs a final block of plaintext M divided into a plurality of blocks, and the length of the final block of plaintext M is a predetermined number of bits.
  • Input padding means (for example, padding means 101) that performs padding when less than the above, a block other than the last block of plaintext M, cached plaintext M ′, and intermediate variable S ′ obtained by encrypting M ′,
  • Parallel encryption means with cache reference for calculating the intermediate variable S (for example, parallel encryption means 102 with cache reference), each block of the scrambled intermediate variable S, and padding means that scramble the intermediate variable S
  • a hash value V that is an exclusive OR of the last block of the plaintext M padded by A scramble hash means for calculating (for example, scramble hash means 103), and a tag generation means (for example, tag generation means 104) for calculating a tag by encrypting the hash value V using the presence or absence of
  • the scramble process of the scramble hash means may be configured to cyclically shift a partial sequence having a specific prime length of each block of the input intermediate variable S.
  • the scramble process of the scramble hash means is configured to multiply each block of the input intermediate variable S by a specific numerical value that is a constant on a specific finite field. May be.
  • the scramble process of the scramble hash means is configured to apply each block of the input intermediate variable S to the linear shift register and operate the same number of times as the number of input blocks. It may be.
  • the message authentication device encrypts the incremental MAC tag generation device (for example, the incremental MAC tag generation device 10), the plaintext M, the tag T corresponding to the plaintext M, and the cached plaintext M ′ and M ′.
  • the input means for example, the input means 200 for inputting the intermediate variable S ′, the plain tag M, the plain text M ′, and the local tag Z generated by the incremental MAC tag generator using the intermediate variable S ′ and the input means.
  • Local tag verification means for example, local tag verification means 206) that compares and verifies the tag T, and output means (for example, output means 205) that outputs the verification result of the local tag verification means.
  • the present invention can be applied to uses such as authentication in wireless or wired data communication, detection of database falsification, and verification of the validity of memory on the device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

 通常のタグ計算の効率を損なうことなく、あらゆるブロック単位の編集に対応できるインクリメンタルなタグ計算を可能としたインクリメンタルMACタグ生成装置を提供する。パディング部11は、複数のブロックに分割された平文Mの最終ブロックのパディングを行う。キャッシュ参照付き並列暗号化部12は、平文Mの最終ブロック以外のブロック、キャッシュされた平文M'、及びM'を暗号化した中間変数S'を入力し、中間変数Sを算出する。スクランブルハッシュ部13は、スクランブル処理を行い、ハッシュ値Vを算出する。タグ生成部14は、ハッシュ値Vを暗号化してタグを算出する。

Description

インクリメンタルMACタグ生成装置、方法及びプログラム並びにメッセージ認証装置
 本発明は、共通鍵を用いたメッセージ認証に用いられるインクリメンタルMACタグ生成装置、方法及びプログラム並びにメッセージ認証装置に関する。
 メッセージ認証コード(Message Authentication Code、以下、MACと呼ぶ)方式は、メッセージに対して秘密鍵を知るものだけが計算できるタグを付与することで、メッセージが正当であることを保証する方式である。MAC方式を用いれば、例えば、秘密鍵を共有した2者の通信において、通信の間に行われた、第3者による改ざんを検知することが可能となる。
 具体的には、例えば、メッセージの送信者と受信者で共有される秘密鍵をKとし、平文MについてMAC関数FへMとKを与えることで計算されるタグをT=MAC(K,M)とする。そして、受信者が例えば平文M’とタグT’を受け取った場合、M’と共有する鍵KとからタグT''を計算する。そして、受信したタグT'と計算したT''とが一致した場合、平文M'が正当な送信者から送られたものであると判断する。
 通常のMAC方式では、ある平文Mに対して既にタグT=MAC(K,M)を計算してあったとしても、他のいかなる平文M’についても、タグの再計算を一から行う必要がある。そのため、平文M’が平文Mの一部を変更したものであっても、平文M’に対応するタグT’=MAC(K,M)の計算を高速化することは難しい。
 一方、送られたM’が、予め送られていたMに特定の編集処理を施して得られたメッセージである場合、Mについて行ったタグTの計算結果を再利用して、M’についてのタグT''の計算を高速に処理することが可能となる方式がある。このようなMAC方式は、(その処理について)インクリメンタルであると呼ばれる。
 インクリメンタルMAC方式では、タグTの計算結果が再利用される。よって、インクリメンタルMAC方式は、メッセージが部分的、逐次的に変化していく場合や、比較的変化の少ないメッセージが連続する場合において、計算量の大幅な削減を可能とする。具体的な応用例として、インクリメンタルMAC方式は、コンピュータ上の書類の真正性保証や、ゲーム機などのハードウェアにおける大容量のメモリをハッキングから保護する用途などに用いられる。
 インクリメンタルMACとして、非特許文献1に記載されたPMAC(Parallelizable MAC)や非特許文献2に記載されたXORMACなどが知られている。ここで、非特許文献1に記載されているPMACを説明する。図8は、PMACを用いた一般的なタグ生成装置の動作を示すブロック図である。nビットブロック暗号E(K,*)を部品とする。メッセージがM=(M[1],M[2],...,M[L])、各ブロックM[1],...,M[L-1]がnビット、M[L]がnビット以下とする。その場合、タグTを下記のように求めることができる。
(式PMAC)
S[i]=E(K,f_i(U)+M[i]) for i=1,...,L-1
S[L]=M[L] if|M[L]|=n, S[L]=M[L]||0* otherwise
V=S[1]+S[1]+...+S[L]
T=E(K,V+ff_0(U)) if|M[L]|=n, T=E(K,V+ff_1(U)) otherwise
 ここで、+はビットごとの排他的論理和(XOR)を表す。||はビット系列の連結を表す。|M[L]|はM[L]のビット長を表す。また、E(K,M[i])はブロック暗号Eの鍵Kによる平文M[i]の暗号化、Uは定数0^n(オールゼロのnビット系列)の暗号文E(K,0^n)を表す。関数f_iは入力値と有限体上の定数2^(i-1)との乗算を表す。関数ff_i(ただし、i=0,1)は入力値と有限体上の定数3^(i+1)との乗算に相当する。なお、PMACは一般的なCBC-MAC(Cipher Block Chaining-MAC)とは異なり、並列実行可能である。
 上述したようにPMACにおいては、ブロックの変更に関してインクリメンタルな処理が可能である。ただし、M’のあるブロックが、予め与えられたMの該当するブロックと異なる場合、再計算を行う必要がある。例えば、(M=(M[1],M[2],...,M[L]),T=MAC(K,M))が与えられたもとで、M’=(M’[1],M[2],...,M[L]), M’[1]≠M[1]なる平文M’のタグT’は、次式のように求められる。
(式PMAC-inc)
V=D(K,T)+ff_w(U)
V’=V+E(K,f_1(U)+M[1])+E(K,f_1(U)+M’[1])
T’=E(K,V’+ff_w(U))
 D(K,*)は、ブロック暗号の復号関数である。w(0又は1)は、|M[L]|の長さに依存する。従って、再計算にはブロック暗号による1回の復号及び数回の暗号化処理のみを要する。一般には、再計算のコストは、元のメッセージと処理したいメッセージでの、ブロック単位でのハミング重み(違い)に比例する。
P. Rogaway. Efficient Instantiations of Tweakable Blockciphers and Refinements to Modes OCB and PMAC. Advances in Cryptology- ASIACRYPT'04. LNCS 3329, pp. 16-31, 2004. M. Bellare, O. Goldreich, and S. Goldwasser. Incremental Cryptography and Application to Virus Protection. Proceedings of the 27th ACM Symposium on the Theory of Computing, May 1995 David McGrew, Efficient Authentication of large, dynamic data sets using Galois/Counter Mode (GCM), 3rd International IEEE Security in Storage Workshop, December 13, 2005. Marc Fischlin: Incremental Cryptography and Memory Checkers. EUROCRYPT 1997: 293-408 T. Iwata, K. Kurosawa, OMAC: One-Key CBC MAC、Fast Software Encryption, Internatioanl Workshop, FSE 2003, Lecture Notes in Computer Science; Vol. 2887, Feb. 2003 T. Iwata: New Blockcipher Modes of Operation with Beyond the Birthday Bound Security. FSE 2006: 310-327. Cees J.A. Jansen,Stream Cipher Design based on Jumping Finite State Machines, Cryptology ePrint Archive: Report 2005/267
 しかし、上記PMACの例において、マスク変数f_iがE(K,*)への入力値Mを暗号化の前に攪拌する。具体的には、PMACでは、ブロックの変更以外の処理、例えばブロックの挿入、削除、カットアンドペーストなどが行われる場合がある。その場合、PMACでは、インクリメンタルな処理ができない。例えば、M=(M[1],M[2],...,M[L])のタグ計算を行ったのち、先頭ブロックを削除したM’=(M[2],...,M[L])についてタグ計算を行う場合、MとM’でのE(K,*)への入力値はそれぞれ、
M:f_1+M[1],f_2+M[2],...,f_L-1+M[L-1]
M’:f_1+M[2],f_2+M[3],...,f_L-1+M[L-2]
となる。
 上記の例において、M及びM’のそれぞれの対応するブロックの値は、M[1]=M[2]=M[3]などの特殊な関係がない限り、異なる値となる。従って、Mでのタグ計算結果をM’でのタグ計算に使用することは一般に不可能であるという問題点がある。これは、メッセージ受信者の装置内部での各ブロックの暗号化結果をキャッシュしておいたとしても同様である。非特許文献2に記載されたXORMAC及び非特許文献3に記載されたGMACなどの他の既存のインクリメンタルMACにおいても同様の問題点がある。
 また,非特許文献4に記載されたIncXMACCなどのように、ブロック単位の変更以外のいくつかの処理に対応した方法もある。しかし、インクリメンタルでない通常のタグ計算において、一般的な方式と比べ効率が悪いなどの問題点がある上、ブロック単位の編集全てに対応はできていない。
 なお、非特許文献5には、メッセージをnビット単位のブロックに分割し、あるブロックがnビットに満たない場合にパディングを行う方法が記載されている。また、非特許文献6には、暗号化関数の例として、ブロック暗号ベースの擬似ランダム関数が記載されている。また、非特許文献7には、後述するスクランブル関数に用いられる処理の例として、線形シフトレジスタが記載されている。
 以上のように、一般的なメッセージ認証方法としては、効率は良いがブロック単位の変更にのみ対応する方法、又はブロック単位での変更以外の処理にも対応可能であるが通常のタグ計算の効率が悪い方法しか知られていない。
 本発明は、通常のタグ計算の効率を損なうことなく、あらゆるブロック単位の編集に対応できるインクリメンタルなタグ計算を可能としたインクリメンタルMACタグ生成装置、方法及びプログラム並びにメッセージ認証装置を提供することを目的とする。
 本発明によるインクリメンタルMACタグ生成装置は、複数のブロックに分割された平文Mの最終ブロックを入力し、当該平文Mの最終ブロックの長さが所定のビット数に満たない場合にパディングを行うパディング手段と、平文Mの最終ブロック以外のブロック、キャッシュされた平文M’、及びM’を暗号化した中間変数S’を入力し、中間変数Sを算出するキャッシュ参照付き並列暗号化手段と、中間変数Sへスクランブル処理を行い、スクランブル処理された中間変数Sの各ブロック、及びパディング手段により出力された平文Mの最終ブロックの排他的論理和であるハッシュ値Vを算出するスクランブルハッシュ手段と、パディング手段によるパディングの有無をパラメータとしてハッシュ値Vを暗号化してタグを算出するタグ生成手段とを備え、キャッシュ参照付き並列暗号化手段は、平文Mの最終ブロック以外のブロックと平文M’の各ブロックとを比較し、平文Mのブロックと一致する平文M’のブロックが存在する場合、当該平文M’のブロックに対応する中間変数S’のブロックを中間変数Sに用い、平文Mのブロックと一致する平文M’のブロックが存在しない場合、当該平文Mのブロックを暗号化して中間変数Sに用いることを特徴とする。
 本発明によるインクリメンタルMACタグ生成方法は、複数のブロックに分割された平文Mの最終ブロックを入力し、当該平文Mの最終ブロックの長さが所定のビット数に満たない場合にパディングを行い、平文Mの最終ブロック以外のブロック、キャッシュされた平文M’、及びM’を暗号化した中間変数S’を入力し、平文Mの最終ブロック以外のブロックと平文M’の各ブロックとを比較し、平文Mのブロックと一致する平文M’のブロックが存在する場合、当該平文M’のブロックに対応する中間変数S’のブロックを中間変数Sに用い、平文Mのブロックと一致する平文M’のブロックが存在しない場合、当該平文Mのブロックを暗号化して中間変数Sを算出し、中間変数Sへスクランブル処理を行い、スクランブル処理された中間変数Sの各ブロック、及び平文Mの最終ブロックの排他的論理和であるハッシュ値Vを算出し、パディングの有無をパラメータとしてハッシュ値Vを暗号化してタグを算出することを特徴とする。
 本発明によるインクリメンタルMACタグ生成プログラムは、コンピュータに、複数のブロックに分割された平文Mの最終ブロックを入力し、当該平文Mの最終ブロックの長さが所定のビット数に満たない場合にパディングを行う処理と、平文Mの最終ブロック以外のブロック、キャッシュされた平文M’、及びM’を暗号化した中間変数S’を入力し、平文Mの最終ブロック以外のブロックと平文M’の各ブロックとを比較し、平文Mのブロックと一致する平文M’のブロックが存在する場合、当該平文M’のブロックに対応する中間変数S’のブロックを中間変数Sに用い、平文Mのブロックと一致する平文M’のブロックが存在しない場合、当該平文Mのブロックを暗号化して中間変数Sを算出する処理と、中間変数Sへスクランブル処理を行い、スクランブル処理された中間変数Sの各ブロック、及び平文Mの最終ブロックの排他的論理和であるハッシュ値Vを算出する処理と、パディングの有無をパラメータとしてハッシュ値Vを暗号化してタグを算出する処理とを実行させることを特徴とする。
 本発明によれば、通常のタグ計算の効率を損なうことなく、あらゆるブロック単位の編集に対応できるインクリメンタルなタグ計算を可能とすることができる。
本発明の実施形態1のインクリメンタルMACタグ生成装置の構成を示すブロック図である。 本発明の実施形態1のインクリメンタルMACタグ生成装置の処理を示すブロック図である。 本発明の実施形態1のインクリメンタルMACタグ生成装置のデータの流れを示すブロック図である。 本発明の実施形態1のインクリメンタルMACタグ生成装置の動作を示すフローチャートである。 本発明の実施形態2のメッセージ認証装置の構成を示すブロック図である。 本発明の実施形態2のメッセージ認証装置の動作を示すフローチャートである。 本発明のインクリメンタルMACタグ生成装置の主要部を示すブロック図である。 PMACを用いた一般的なタグ生成装置の動作を示すブロック図である。
 以下、本発明の実施形態を図面を参照して説明する。
実施形態1.
 図1は、本発明の実施形態1のインクリメンタルMACタグ生成装置の構成を示すブロック図である。図2は、本発明の実施形態1のインクリメンタルMACタグ生成装置の処理を示すブロック図である。図3は、本発明の実施形態1のインクリメンタルMACタグ生成装置のデータの流れを示すブロック図である。なお、以下の説明において、特に指定しない限り、+はビットごとの排他的論理和を表すものとし、メッセージの1ブロックの長さはnビットとする。
 本実施形態のインクリメンタルMACタグ生成装置10は、パディング手段101と、キャッシュ参照付き並列暗号化手段102と、スクランブルハッシュ手段103と、タグ生成手段104とを含む。また、インクリメンタルMACタグ生成装置10には、入力手段100と、出力手段105とが接続されている。インクリメンタルMACタグ生成装置10は、例えばCPU、メモリ及びディスク等により実現される。インクリメンタルMACタグ生成装置10の各手段は、例えば、プログラムをコンピュータのディスクに格納しておき、このプログラムをCPU上で動作させることにより実現される。
 入力手段100は、認証の対象となる平文M=(M[1],...,M[L])と、キャッシュされた平文M’=(M’[1],...,M’[N])と、キャッシュされた中間変数S’=(S’[1],...,S’[N])とを入力する。平文M及び平文M’は、nビットのブロック単位に分割されている。入力手段100は、例えばキーボードなどの文字入力装置により実現される。また、入力手段100は、例えば、コンピュータのLANやUSBなどの通信インタフェース、又はプログラム上の入力インタフェースであってもよい。
 パディング手段101は、入力手段100から、平文Mの最終ブロックM[L]を入力し、ブロックM[L]のブロック長がn未満であった場合、nビットまでパディングを行う。具体的には、パディング関数をpadとし、メッセージの最終ブロックをM[L]とした場合、パディング手段101は、中間変数の最終ブロックをS[L]=pad(M[L])とし、これを出力する。パディング手段101のパディングの形式は任意であり、例えば、全ゼロを連結するものでよい。ただし、最後のブロックがnビットちょうどであった場合には何も処理を行わない。具体的には、M[L]がnビットの場合、S[L]=M[L]とし、nビット未満の場合、例えばS[L]=M[L]||0*(||0*はゼロ詰めを表す)とする。これは、非特許文献5に記載されたOMAC等で用いられる、標準的なパディングの形式である。
 キャッシュ参照付き並列暗号化手段102は、キャッシュを参照しつつ、入力した平文Mを必要なブロックについてのみブロック単位で並列に暗号化する。具体的には、まず入力手段100から、平文M=(M[1],...,M[L-1])、キャッシュされた平文M’及びキャッシュされた中間変数S’=(S’[1],...,S’[N])を入力する。
 そして、秘密鍵をKとし、暗号化関数をE(K,*)とした場合、キャッシュ参照付き並列暗号化手段102は、Mの各ブロックM[1],...,M[L-1]について、キャッシュされた平文M’=(M’[1],...,M’[N])(ただしM’[1],...,M’[N]は全てnビット)及びキャッシュされた中間変数S’=(S’[1],...,S’[N])(ただしS’[i]=E(K,M’[i]), for all i=1,...,N)を用いて次式Scompのように中間変数S[i]を計算する。
(式Scomp)
S[i]=S’[j] if M[i]=M’[j] for some j,S[i]=E(K,M[i]) otherwise
 キャッシュ参照付き並列暗号化手段102は、この処理をi=1,...,L-1について行い、中間変数S=(S[1],...,S[L-1])を出力する。この場合、S[i]もM[i]もnビットであり、Eの処理としてはnビットブロック暗号の暗号化が考えられる。この処理は、M[1],...,M[L-1]に対するECB(Electric Code Book)モードに相当する。
 このように、キャッシュ参照付き並列暗号化手段102は、キャッシュされた平文M’[j]の全てのブロックの中から、送られた平文M[i]のブロックと一致するものを探して、一致すればそのM’[j]に該当するS’[j]を使用する。従って、M[i]がブロック単位の変更以外の処理、例えばブロックの挿入、削除、カットアンドペーストなどが行われていたとしても、インクリメンタルなタグ計算を行うことが可能になる。
 あるいは、Mのブロックを複数、c個まとめてS[i]=E(K,(M[c×(i-1)+1],M[(c×(i-1))+2],..,M[(c×(i-1))+c])としてもよい(ここで、+は和を表している)。キャッシュ参照付き並列暗号化手段102は、この処理をi=1,...,L/c-1について行い、中間変数S=(S[1],...,S[L/c-1])を出力する。S[i]もM[i]もnビットであるが、Eの入力長は出力長よりも長い。このような場合、Eの処理としてはnビットブロック暗号によるCBC-MACやCMACなどが考えられる。
 さらに、Eの入力はnビットのM[i]であるが、出力であるS[i]の長さがnビットより長いケースも考えられる。このような場合、Eの処理としてはIV(initialization vector)付きストリーム暗号の鍵ストリーム生成関数とし、IVの代わりにM[i]を入力とし、出力をS[i]とすることが可能である。あるいは、非特許文献6に記載されているCENCなど、ブロック暗号ベースの疑似ランダム関数を用いることも可能である。いずれの場合においても、キャッシュされた平文と中間変数が存在しない場合はすべての平文ブロックを暗号化すればよい。
 スクランブルハッシュ手段103は、並列暗号化手段102が出力した中間変数Sをブロックごとにスクランブルし、ハッシュ値Vを求める。スクランブルハッシュ手段103は、具体的には、S=(S[1],...,S[L-1])であった場合、スクランブル関数g_i for i=1,...,L-1を用いて次式のようにハッシュ値Vを求め、出力する。
(式scrm)
V=g_1(S[1])+g_2(S[2])+...+g_L-1(S[L-1])+S[L]
 ここでS[L]は、パディング手段101から出力されたものであり、メッセージの最終ブロックM[L]へ必要に応じパディングを行った値である。
 ここで、スクランブル関数g_iについて、具体的な例を用いて詳細に説明する。スクランブル関数g_i for i=1,...,L-1、u_0及びu_1は、安全性を確保するために次の式scrcondに示される条件を満たすように定められる。
(式scrcond)
Pr[sum_{i in Gset}g_i(rand) + sum_{j in Uset} u_j(rand)=y]
 ここで、Pr[X=x]という表記は、確率変数Xが値xをとる確率を表す。スクランブル関数g_iは、この式が、randをnビット一様乱数としたとき、ゼロ集合を除いたあらゆる{1,...,L-1}の部分集合Gsetと、ゼロ集合を含めたあらゆる{0,1}の部分集合(すなわち{0},{1},{0,1})Usetとに対して得られる、あらゆるnビット値yが十分小さい数値となればよい。
 上記の式scrcondに示すような条件を満たすには、例えばg_i,u_jは、nビットの素数長の部分系列の巡回シフトを用いて構成する。例えば、Xをnビットとし、X[a-b]をそのaビット目からbビット目までの部分系列、rot(i,Y)をYのiビット左(ないし右)巡回シフトとする。その場合、g_i(X)、u_0(X)及びu_1(X)を次式のように定めることができる(次式rotの+は、和を表している)。
(式rot)
g_i(X)=rot(i,X[1-p])||X[p+1-n], for i=1,...,Lmax-1
u_0(X)=rot(Lmax,X[1-p])||X[p+1-n]
u_1(X)=rot(Lmax+1,X[1-p])||X[p+1-n] 
 g_iは、このように定められることで、メッセージのブロック長最大Lmaxまで対応が可能である。ただしpは素数で、p≦Lmax+1≦nの関係を満たす必要がある。このような処理は、複雑な演算を多数繰り返すブロック暗号と比べ、巡回シフトのみの処理で済むので非常に高速に実行可能である。また、(式rot)におけるX[p+1-n]は全ゼロなど任意の固定系列でもよい。さらにnの約数である正整数cについてcp≦nの場合には、Xをc個に分割しておき、各n/cビットの部分系列に対して(式rot)と同様の処理を独立に適用してもよい。
 また、g_i,u_jは、例えば有限体GF(2^n)上の定数との乗算によっても実現可能である。適当な定数a_iを定め、集合{a_1,...,a_Lmax+1}が有限体GF(2^n)上で基底をなす(線形独立)ならば、g_i(X)、u_0(X)及びu_1(X)を次式のように定めることができる(次式mulの+は、和を表している)。
(式mul)
g_i(X)=mul(a_i,X) for i=1,...,Lmax-1
u_0(X)=mul(a_Lmax,X)
u_1(X)=mul(a_Lmax+1,X)
 ここで、mul(A,B)は有限体上の要素A,Bの乗算を表す。g_iは、このように定めることで、メッセージのブロック長最大Lmaxまで対応が可能である。
 また、g_i,u_jは、例えば次式に示すような線形シフトレジスタ(LFSR)によっても実現可能である(次式LFSRの+は、和を表している)。
(式LFSR)
g_i(X)=LFSR(i,X) for i=1,...,Lmax-1
u_0(X)=LFSR(Lmax,X)
u_1(X)=LFSR(Lmax+1,X)
 このようにg_iを定めることで、メッセージのブロック長最大Lmaxまで対応が可能である。
 ここで、LFSR(i,X)は、線形シフトレジスタのレジスタをXとして、i回動作後のレジスタの内容である。一般にg_iの計算にはi回のLFSR動作が必要となるが、非特許文献7に記載されているように、Jump LFSRと呼ばれるタイプのLFSRでは複数回の動作がほぼ1回の動作と同等の処理でできる。そのため、このようなLFSRを用いることで効率を良くすることができる。
 以上のように、g_iは、(式rot)に示される巡回シフト、(式mul)に示される有限体GF(2^n)上の定数との乗算、又は(式LFSR)に示される線形シフトレジスタによって実現される。これにより、g_iは、式scrcondに示される条件を満たすように定められ、安全性が確保される。
 タグ生成手段104は、平文Mの最終ブロックM[L]の長さがnビットであるかどうかを2値のパラメータとして、スクランブルハッシュ手段103が出力するハッシュ値Vを暗号化しタグTを生成する。 
 具体的には、Vがnビットの場合、ブロック暗号の暗号化関数E(K,*)を用いて、タグTを次式のように定める。
(式fin)
T=E(K,u_0(U)+V) if |M[L]|=n,T=E(K,u_1(U)+V) otherwise
 そして、タグ生成手段104は、上記(式fin)で得られたTをタグとして出力する。ここでU=E(K,0^n)である。マスクを生成する関数u_0,u_1は、例えば、上述した(式rot)に示される巡回シフト、(式mul)に示される有限体GF(2^n)上の定数との乗算、又は(式LFSR)に示される線形シフトレジスタによって実現される。
 また、タグTは、次式のように単純に鍵を二つ用意しておくことで単純に定められうる。 
(式fin2)
T=E(K1,V) if |M[L]|=n,T=E(K2,V) otherwise
 上記(式fin)、(式fin2)のいずれを用いるにしても、タグ生成手段104は、平文Mの最終ブロックM[L]の長さがnビットであるかどうかを2値のパラメータとして暗号化を行う。これにより、パディングにより生じるあいまいさ(すなわち、中間変数S[L]のみでは、S[L]がM[L]そのものなのか、M[L]へパディングして得られたものか分からない)を排除しつつ、効率的な処理を実現することができる。
 上記(式fin)、(式fin2)に示したような処理は、パディング手段101の機能と同様に、非特許文献5に記載されているOMACでも用いられている標準的なテクニックである。さらに、ハッシュ値Vが用いるブロック暗号のブロックサイズよりも長い場合は、CBC-MACやCMACなどのモードを利用すればよい。
 タグ生成手段104により生成されたタグTは、出力手段105に出力される。出力手段105は、タグ生成手段104が生成したタグTを例えばコンピュータディスプレイやプリンターなどへ出力する。
 次に、本発明の実施形態1のインクリメンタルMACタグ生成装置の動作を説明する。図4は、本発明の実施形態1のインクリメンタルMACタグ生成装置の動作を示すフローチャートである。
 インクリメンタルMACタグ生成装置10は、初めに、入力手段100から認証する対象の平文M=(M[1],M[2],...,M[L])と、キャッシュされた平文M’=(M’[1],...,M’[N])、及びM’に対応したキャッシュされた中間変数S’=(S’[1],...,S’[N-1])を入力する(ステップG1)。
 次に、パディング手段101が、メッセージの最終ブロックM[L]がnビット未満ならばパディングし、その結果を中間変数S[L]とする。M[L]がnビットちょうどであればそのままM[L]をS[L]とする(ステップG2)。
 次に、キャッシュ参照付き並列暗号化手段102は、i=1,...,L-1について平文ブロックM[i]から中間変数S[i]を得る。ただし、もしM[i]=M’[j]となるjが存在すれば、キャッシュ参照付き並列暗号化手段102は、S’[j]のコピーをS[j]とする。もしそのようなjが存在しないのであれば、キャッシュ参照付き並列暗号化手段102は、S[i]をM[i]の暗号化によって得る(ステップG3)。
 次に、スクランブルハッシュ手段103は、中間変数S[i]をスクランブル関数g_iへ適用する。そして、スクランブルハッシュ手段103は、g_i(S[i])の排他的論理和をi=1,...,L-1についてとり、これとさらにS[L]との和をとりハッシュ値Vとして生成し、出力する(ステップG4)。
 次に、タグ生成手段104は、平文最終ブロックM[L]へのパディングの有無(すなわちM[L]がnビットであるか否か)をバイナリのパラメータとしてハッシュ値Vを暗号化し、タグTを得る(ステップG5)。最後に、出力手段105がタグTを出力する(ステップG6)。
 本実施形態のインクリメンタルMACタグ生成装置10は、あらゆるブロック単位の処理に対してインクリメンタルなタグ再計算を可能としつつ、通常のタグ計算も効率的に行える。その理由は、あらゆるブロック単位の編集に対して各メッセージのブロックM[i]を暗号化した結果が透過的に振る舞うためである。そのため、新たな暗号化の計算は不要である。
 また、各M[i]の処理は並列に実行されることが可能であり、スクランブル処理はブロック暗号よりも非常に簡素な処理で実現されるため、全体として大幅な高速化が実現できる。もし、キャッシュされた平文が存在しない場合には、すべてのM[i]を暗号化することでSを得ることができる。
 また、本実施形態の処理のようにハッシュ値の暗号化に復号処理が存在し、さらに各g_iの処理が置換である(すなわち逆関数が存在する)場合、ブロックの挿入、削除、カットアンドペースト等を伴わないブロック単位の更新に関しては、非特許文献1に記載されているPMACと同様に、中間変数をキャッシュしていなくとも、メッセージとタグからインクリメンタルなタグ計算が可能である。
実施形態2.
 図5は、本発明の実施形態2のメッセージ認証装置の構成を示すブロック図である。図5に示すように、実施形態2のメッセージ認証装置は、入力手段200、インクリメンタルMACタグ生成装置10、ローカルタグ検証手段206及び出力手段205を含む。なお、インクリメンタルMACタグ生成装置10の構成及び動作は実施形態1に示したものと同様である。
 入力手段200は、インクリメンタルMACタグ生成装置10とローカルタグ検証手段206に接続されている。入力手段200は、認証の対象となる平文M、平文Mに対応するタグT、キャッシュされた平文M’及びキャッシュされた中間変数S’を入力する。また、入力手段200は、例えばキーボードなどの文字入力装置により実現される。また、入力手段200は、例えば、コンピュータのLANやUSBなどの通信インタフェース、又はプログラム上の入力インタフェースであってもよい。
 インクリメンタルMACタグ生成装置10は、ローカルタグ検証手段206に接続されており、実施形態1に記載したようにタグを生成する機能を有する。本実施形態において、インクリメンタルMACタグ生成装置10が生成したタグをローカルタグZと呼ぶ。
 ローカルタグ検証手段206は、入力手段200から入力したタグTと、インクリメンタルMACタグ生成装置10から入力したローカルタグZとを比較することでローカルタグZの検証を行う。また、ローカルタグ検証手段206は、出力手段205に接続されている。ローカルタグ検証手段206は、検証結果を出力手段205に送る。出力手段205は、ローカルタグ検証手段206から出力された検証結果を、例えばコンピュータディスプレイやプリンターなどへ出力する。
 図6は、本発明の実施形態2のメッセージ認証装置の動作を示すフローチャートである。まず、入力手段200により、認証する対象の平文M=(M[1],M[2],...,M[L])、平文Mに対応したタグT、キャッシュされた平文M’=(M’[1],...,M’[N])、及びM’に対応しキャッシュされた中間変数S’=(S’[1],...,S’[N-1])が入力される(ステップV1)。
 次に、パディング手段101は、メッセージの最終ブロックM[L]がnビット未満ならばパディングし、その結果を中間変数S[L]とする。パディング手段101は、M[L]がnビットちょうどであればそのままM[L]をS[L]とする(ステップV2)。
 次に、キャッシュ参照付き並列暗号化手段102は、i=1,...,L-1について平文ブロックM[i]から中間変数S[i]を得る。もし、M[i]=M’[j]となるjが存在する場合、キャッシュ参照付き並列暗号化手段102は、S’[j]のコピーをS[i]とする。もしそのようなjが存在しないのであれば、キャッシュ参照付き並列暗号化手段102は、S[i]をM[i]の暗号化によって得る(ステップV3)。
 次に、スクランブルハッシュ手段103は、中間変数S[i]をスクランブル関数g_iへ適用する。そして、スクランブルハッシュ手段103は、g_i(S[i])の排他的論理和をi=1,...,L-1についてとり、これとさらにS[L]との排他的論理和をとりハッシュ値Vを生成する(ステップV4)。
 次に、タグ生成手段104は、平文最終ブロックM[L]へのパディングの有無(すなわちnビットであるか否か)をバイナリのパラメータとしてハッシュ値Vを暗号化し、ローカルタグZを得る(ステップV5)。
 次に、ローカルタグ検証手段206は、タグ生成手段104から入力したローカルタグZと入力手段200から入力したタグTとが一致するか否かを検証する(ステップV5)。最後に、出力手段205が、ローカルタグ検証手段206の検証結果を出力する(ステップV6)。
 本実施形態のメッセージ認証装置は、実施形態1と同様の効果が得られる。従って、効率的にメッセージの認証を行うことができる。
 図7は、本発明のインクリメンタルMACタグ生成装置の主要部を示すブロック図である。図7に示すように、インクリメンタルMACタグ生成装置10は、最小の構成要素として、キャッシュ参照付き並列暗号化部12と、パディング部11と、スクランブルハッシュ部13と、タグ生成部14とを備える。
 図7に示すインクリメンタルMACタグ生成装置では、パディング部11は、複数のブロックに分割された平文Mの最終ブロックを入力し、当該平文Mの最終ブロックの長さが所定のビット数に満たない場合にパディングを行う。キャッシュ参照付き並列暗号化部12は、平文Mの最終ブロック以外のブロック、キャッシュされた平文M’、及びM’を暗号化した中間変数S’を入力し、中間変数Sを算出する。スクランブルハッシュ部13は、中間変数Sの最終ブロック以外のブロックへスクランブル処理を行う。スクランブルハッシュ部13は、スクランブル処理された中間変数Sの各ブロック、及びパディング部11によりパディングされた平文Mの最終ブロックの排他的論理和であるハッシュ値Vを算出する。タグ生成部14は、パディング部11によるパディングの有無をパラメータとしてハッシュ値Vを暗号化してタグを算出する。
 キャッシュ参照付き並列暗号化部12は、平文Mの最終ブロック以外のブロックと平文M’の各ブロックとを比較する。キャッシュ参照付き並列暗号化部12は、平文Mのブロックと一致する平文M’のブロックが存在する場合、当該平文M’のブロックに対応する中間変数S’のブロックを中間変数Sに用いる。キャッシュ参照付き並列暗号化部12は、平文Mのブロックと一致する平文M’のブロックが存在しない場合、当該平文Mのブロックを暗号化して中間変数Sに用いる。
 従って、図7に示すインクリメンタルMACタグ生成装置は、通常のタグ計算の効率を損なうことなく、あらゆるブロック単位の編集に対応できるインクリメンタルなタグ計算を可能とすることができる。
 また、上記の各実施形態には、以下の(1)~(5)に示すようなインクリメンタルMACタグ生成装置及びメッセージ認証装置も開示されている。
(1)インクリメンタルMACタグ生成装置(例えば、インクリメンタルMACタグ生成装置10)は、複数のブロックに分割された平文Mの最終ブロックを入力し、当該平文Mの最終ブロックの長さが所定のビット数に満たない場合にパディングを行うパディング手段(例えば、パディング手段101)と、平文Mの最終ブロック以外のブロック、キャッシュされた平文M’、及びM’を暗号化した中間変数S’を入力し、中間変数Sを算出するキャッシュ参照付き並列暗号化手段(例えば、キャッシュ参照付き並列暗号化手段102)と、中間変数Sへスクランブル処理を行い、スクランブル処理された中間変数Sの各ブロック、及びパディング手段によりパディングされた前記平文Mの最終ブロックの排他的論理和であるハッシュ値Vを算出するスクランブルハッシュ手段(例えば、スクランブルハッシュ手段103)と、パディング手段によるパディングの有無をパラメータとしてハッシュ値Vを暗号化してタグを算出するタグ生成手段(例えば、タグ生成手段104)とを備え、キャッシュ参照付き並列暗号化手段は、平文Mの最終ブロック以外のブロックと平文M’の各ブロックとを比較し、平文Mのブロックと一致する平文M’のブロックが存在する場合、当該平文M’のブロックに対応する中間変数S’のブロックを中間変数Sに用い、平文Mのブロックと一致する平文M’のブロックが存在しない場合、当該平文Mのブロックを暗号化して中間変数Sに用いる。
(2)インクリメンタルMACタグ生成装置において、スクランブルハッシュ手段のスクランブル処理は、入力された中間変数Sの各ブロックの特定の素数長の部分系列を巡回シフトさせるように構成されていてもよい。
(3)インクリメンタルMACタグ生成装置において、スクランブルハッシュ手段のスクランブル処理は、入力された中間変数Sの各ブロックに、特定の有限体上の定数であってそれぞれ異なる数値を乗算するように構成されていてもよい。
(4)インクリメンタルMACタグ生成装置において、スクランブルハッシュ手段のスクランブル処理は、入力された中間変数Sの各ブロックを、線形シフトレジスタへ与え、入力されたブロックの数と同数回動作させるように構成されていてもよい。
(5)メッセージ認証装置は、インクリメンタルMACタグ生成装置(例えば、インクリメンタルMACタグ生成装置10)と、平文M、当該平文Mに対応したタグT、キャッシュされた平文M’及びM’を暗号化した中間変数S’を入力する入力手段(例えば、入力手段200)と、平文M、平文M’及び中間変数S’を用いてインクリメンタルMACタグ生成装置により生成されたローカルタグZと入力手段により入力したタグTとを比較し検証するローカルタグ検証手段(例えば、ローカルタグ検証手段206)と、ローカルタグ検証手段の検証結果を出力する出力手段(例えば、出力手段205)とを備えている。
 この出願は、2011年10月31日に出願された日本出願特願2011-239232を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
産業上の利用の可能性
 本発明によれば、無線もしくは有線のデータ通信における認証、データベースの改ざん検知、装置上のメモリの正当性検証などの用途に適用できる。
10 インクリメンタルMACタグ生成装置
11 パディング部
12 キャッシュ参照付き並列暗号化部
13 スクランブルハッシュ部
14 タグ生成部
100 入力手段
101 パディング手段
102 キャッシュ参照付き並列暗号化手段
103 スクランブルハッシュ手段
104 タグ生成手段
105 出力手段
200 入力手段
205 出力手段
206 ローカルタグ検証手段

Claims (7)

  1.  複数のブロックに分割された平文Mの最終ブロックを入力し、当該平文Mの最終ブロックの長さが所定のビット数に満たない場合にパディングを行うパディング手段と、
     前記平文Mの最終ブロック以外のブロック、キャッシュされた平文M’、及びM’を暗号化した中間変数S’を入力し、中間変数Sを算出するキャッシュ参照付き並列暗号化手段と、
     前記中間変数Sのスクランブル処理を行い、スクランブル処理された前記中間変数Sの各ブロック、及び前記パディング手段により出力された前記平文Mの最終ブロックの排他的論理和であるハッシュ値Vを算出するスクランブルハッシュ手段と、
     前記パディング手段によるパディングの有無をパラメータとして前記ハッシュ値Vを暗号化してタグを算出するタグ生成手段とを備え、
     前記キャッシュ参照付き並列暗号化手段は、
     前記平文Mの最終ブロック以外のブロックと前記平文M’の各ブロックとを比較し、
     前記平文Mのブロックと一致する前記平文M’のブロックが存在する場合、当該平文M’のブロックに対応する前記中間変数S’のブロックを前記中間変数Sに用い、
     前記平文Mのブロックと一致する前記平文M’のブロックが存在しない場合、当該平文Mのブロックを暗号化して前記中間変数Sに用いる
     ことを特徴とするインクリメンタルMACタグ生成装置。
  2.  スクランブルハッシュ手段のスクランブル処理は、
     入力された中間変数Sの各ブロックの特定の素数長の部分系列を巡回シフトさせる
     請求項1に記載のインクリメンタルMACタグ生成装置。
  3.  スクランブルハッシュ手段のスクランブル処理は、
     入力された中間変数Sの各ブロックに、特定の有限体上の定数であってそれぞれ異なる数値を乗算する
     請求項1に記載のインクリメンタルMACタグ生成装置。
  4.  スクランブルハッシュ手段のスクランブル処理は、
     入力された中間変数Sの各ブロックを、線形シフトレジスタへ与え、入力されたブロックの数と同数回動作させる
     請求項1に記載のインクリメンタルMACタグ生成装置。
  5.  請求項1から請求項4のうちのいずれか1項に記載されたインクリメンタルMACタグ生成装置と、
     平文M、当該平文Mに対応したタグT、キャッシュされた平文M’及びM’を暗号化した中間変数S’を入力する入力手段と、
     前記平文M、前記平文M’及び前記中間変数S’を用いて前記インクリメンタルMACタグ生成装置により生成されたローカルタグZと前記入力手段により入力されたタグTとを比較し検証するローカルタグ検証手段と、
     前記ローカルタグ検証手段の検証結果を出力する出力手段とを備えた
     ことを特徴とするメッセージ認証装置。
  6.  複数のブロックに分割された平文Mの最終ブロックを入力し、当該平文Mの最終ブロックの長さが所定のビット数に満たない場合にパディングを行い、
     前記平文Mの最終ブロック以外のブロック、キャッシュされた平文M’、及びM’を暗号化した中間変数S’を入力し、
     前記平文Mの最終ブロック以外のブロックと前記平文M’の各ブロックとを比較し、
     前記平文Mのブロックと一致する前記平文M’のブロックが存在する場合、当該平文M’のブロックに対応する前記中間変数S’のブロックを前記中間変数Sに用い、
     前記平文Mのブロックと一致する前記平文M’のブロックが存在しない場合、当該平文Mのブロックを暗号化して中間変数Sを算出し、
     前記中間変数Sへスクランブル処理を行い、スクランブル処理された前記中間変数Sの各ブロック、及び前記平文Mの最終ブロックの排他的論理和であるハッシュ値Vを算出し、
     パディングの有無をパラメータとして前記ハッシュ値Vを暗号化してタグを算出する
     ことを特徴とするインクリメンタルMACタグ生成方法。
  7.  コンピュータに、
     複数のブロックに分割された平文Mの最終ブロックを入力し、当該平文Mの最終ブロックの長さが所定のビット数に満たない場合にパディングを行う処理と、
     前記平文Mの最終ブロック以外のブロック、キャッシュされた平文M’、及びM’を暗号化した中間変数S’を入力し、
     前記平文Mの最終ブロック以外のブロックと前記平文M’の各ブロックとを比較し、
     前記平文Mのブロックと一致する前記平文M’のブロックが存在する場合、当該平文M’のブロックに対応する前記中間変数S’のブロックを前記中間変数Sに用い、
     前記平文Mのブロックと一致する前記平文M’のブロックが存在しない場合、当該平文Mのブロックを暗号化して中間変数Sを算出する処理と、
     前記中間変数Sへスクランブル処理を行い、スクランブル処理された前記中間変数Sの各ブロック、及び前記平文Mの最終ブロックの排他的論理和であるハッシュ値Vを算出する処理と、
     パディングの有無をパラメータとして前記ハッシュ値Vを暗号化してタグを算出する処理と
     を実行させることを特徴とするインクリメンタルMACタグ生成プログラム。
PCT/JP2012/006586 2011-10-31 2012-10-15 インクリメンタルmacタグ生成装置、方法及びプログラム並びにメッセージ認証装置 WO2013065241A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/353,349 US20140317407A1 (en) 2011-10-31 2012-10-15 Incremental mac tag generation device, method, and program, and message authentication device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011239232 2011-10-31
JP2011-239232 2011-10-31

Publications (1)

Publication Number Publication Date
WO2013065241A1 true WO2013065241A1 (ja) 2013-05-10

Family

ID=48191623

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/006586 WO2013065241A1 (ja) 2011-10-31 2012-10-15 インクリメンタルmacタグ生成装置、方法及びプログラム並びにメッセージ認証装置

Country Status (3)

Country Link
US (1) US20140317407A1 (ja)
JP (1) JPWO2013065241A1 (ja)
WO (1) WO2013065241A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014136386A1 (ja) * 2013-03-04 2014-09-12 日本電気株式会社 タグ生成装置、タグ生成方法およびタグ生成プログラム
JP2017073716A (ja) * 2015-10-09 2017-04-13 日本電気株式会社 タグリスト生成装置、タグリスト検証装置、タグリスト更新装置、タグリスト生成方法及びプログラム
JPWO2016063512A1 (ja) * 2014-10-23 2017-08-03 日本電気株式会社 Macタグリスト生成装置、macタグリスト検証装置、macタグリスト生成方法、macタグリスト検証方法およびプログラム記録媒体
JP2019041228A (ja) * 2017-08-24 2019-03-14 株式会社デンソー 電子制御装置
WO2021214922A1 (ja) * 2020-04-23 2021-10-28 日本電気株式会社 メモリ処理装置、メモリ検証装置、メモリ更新装置、メモリ保護システム、方法及びコンピュータ可読媒体

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10015152B2 (en) * 2014-04-02 2018-07-03 International Business Machines Corporation Securing data in a dispersed storage network
EP3228044B1 (en) * 2014-12-03 2019-02-20 Nagravision S.A. Block cryptographic method for encrypting/decrypting messages and cryptographic devices for implementing this method
CN111052670B (zh) * 2017-09-01 2024-02-09 三菱电机株式会社 加密装置、解密装置、加密方法、解密方法和计算机能读取的存储介质
US10944568B2 (en) * 2017-10-06 2021-03-09 The Boeing Company Methods for constructing secure hash functions from bit-mixers
US11552782B2 (en) * 2019-07-15 2023-01-10 University Of Florida Research Foundation, Incorporated Securing system-on-chip (SoC) using incremental cryptography

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2675806B2 (ja) * 1987-03-03 1997-11-12 ヒューレット・パッカード・カンパニー 情報記憶システム
US20020051537A1 (en) * 2000-09-13 2002-05-02 Rogaway Phillip W. Method and apparatus for realizing a parallelizable variable-input-length pseudorandom function

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6246767B1 (en) * 1995-04-03 2001-06-12 Scientific-Atlanta, Inc. Source authentication of download information in a conditional access system
US6424717B1 (en) * 1995-04-03 2002-07-23 Scientific-Atlanta, Inc. Encryption devices for use in a conditional access system
BR9815610A (pt) * 1997-08-01 2004-06-22 Scientific Atlanta Verificação da fonte de informações de programa em sistema de acesso condicional
US7430670B1 (en) * 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
US7362864B2 (en) * 2003-09-11 2008-04-22 Xilinx, Inc. Framing of transmit encoded data and linear feedback shifting
US7487194B2 (en) * 2006-04-05 2009-02-03 Peter Lablans Binary and n-valued LFSR and LFCSR based scramblers, descramblers, sequence generators and detectors in Galois configuration
US8468244B2 (en) * 2007-01-05 2013-06-18 Digital Doors, Inc. Digital information infrastructure and method for security designated data and with granular data stores
WO2010086855A2 (en) * 2009-01-29 2010-08-05 Fortress Applications Ltd. System and methods for encryption with authentication integrity
US8776214B1 (en) * 2009-08-12 2014-07-08 Amazon Technologies, Inc. Authentication manager

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2675806B2 (ja) * 1987-03-03 1997-11-12 ヒューレット・パッカード・カンパニー 情報記憶システム
US20020051537A1 (en) * 2000-09-13 2002-05-02 Rogaway Phillip W. Method and apparatus for realizing a parallelizable variable-input-length pseudorandom function

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BELLARE, M. ET AL.: "Incremental Cryptography and Application to Virus Protection", PROCEEDINGS OF THE 27TH ANNUAL ACM SYMPOSIUM ON THEORY OF COMPUTING, 1995, pages 45 - 56, XP000536465, DOI: doi:10.1145/225058.225080 *
BONEH, D. ET AL.: "A Survey of Two Signature Aggregation Techniques", CRYPTO BYTES, vol. 6, no. 2, 2003, pages 1 - 10, XP007908032 *
MARC FISCHLIN: "Incremental Cryptography and Memory Checkers", LECTURE NOTES IN COMPUTER SCIENCE, vol. 1233, 1997, pages 393 - 408 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014136386A1 (ja) * 2013-03-04 2014-09-12 日本電気株式会社 タグ生成装置、タグ生成方法およびタグ生成プログラム
US9787475B2 (en) 2013-03-04 2017-10-10 Nec Corporation Device, method, and program for message authentication tag generation
JPWO2016063512A1 (ja) * 2014-10-23 2017-08-03 日本電気株式会社 Macタグリスト生成装置、macタグリスト検証装置、macタグリスト生成方法、macタグリスト検証方法およびプログラム記録媒体
JP2017073716A (ja) * 2015-10-09 2017-04-13 日本電気株式会社 タグリスト生成装置、タグリスト検証装置、タグリスト更新装置、タグリスト生成方法及びプログラム
JP2019041228A (ja) * 2017-08-24 2019-03-14 株式会社デンソー 電子制御装置
WO2021214922A1 (ja) * 2020-04-23 2021-10-28 日本電気株式会社 メモリ処理装置、メモリ検証装置、メモリ更新装置、メモリ保護システム、方法及びコンピュータ可読媒体
JP7428239B2 (ja) 2020-04-23 2024-02-06 日本電気株式会社 メモリ処理装置、メモリ検証装置、メモリ更新装置、メモリ保護システム、方法及びプログラム

Also Published As

Publication number Publication date
US20140317407A1 (en) 2014-10-23
JPWO2013065241A1 (ja) 2015-04-02

Similar Documents

Publication Publication Date Title
WO2013065241A1 (ja) インクリメンタルmacタグ生成装置、方法及びプログラム並びにメッセージ認証装置
US10009171B2 (en) Construction and uses of variable-input-length tweakable ciphers
KR101809386B1 (ko) 인증 암호 장치, 인증 암호 방법 및 컴퓨터 판독가능한 기록 매체
US8107620B2 (en) Simple and efficient one-pass authenticated encryption scheme
US8509427B2 (en) Hybrid mode cryptographic method and system with message authentication
JP5704159B2 (ja) ブロック暗号化装置、ブロック復号装置、ブロック暗号化方法、ブロック復号方法及びプログラム
JP2008122967A (ja) ストリーム暗号を利用したメッセージ認証コード生成方法とストリーム暗号を利用した認証暗号化方法及びストリーム暗号を利用した認証復号化方法
WO2014136386A1 (ja) タグ生成装置、タグ生成方法およびタグ生成プログラム
US11463235B2 (en) Encryption device, encryption method, program, decryption device, and decryption method
JP2004363739A (ja) 改竄検知可能な、共通鍵暗号の暗号化装置または復号化装置
WO2020213114A1 (ja) Macタグリスト生成装置、macタグリスト検証装置、方法及びプログラム
WO2009115824A1 (en) Encryption method
CN102946315B (zh) 一种采用分组方式构造mac码的方法及***
Andreeva et al. AES-COPA v.
WO2021084507A1 (en) System and method for encryption and decryption using logic synthesis
KR20080044150A (ko) 블록암호 해쉬 운영모드의 압축함수 설계 장치 및 방법
Elkamchouchi et al. A new Secure Hash Dynamic Structure Algorithm (SHDSA) for public key digital signature schemes
CN114124354B (zh) 确定性鉴别加解密装置及方法
Hawkes et al. The mundja streaming mac
Pandey et al. Architecture based on MD5 and MD5-512 Bit Applications
Nu1L Team Crypto
Hasan et al. Context-Committing Authenticated Encryptions using Tweakable Stream Cipher
Lukács et al. BITMIX: A hardware accelerated randomized symmetric encryption method
KR20030001888A (ko) 키를 사용하지 않고 블록 정보만을 이용하는 암호알고리즘 설계 방법
JP5818768B2 (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: 12845875

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013541601

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14353349

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12845875

Country of ref document: EP

Kind code of ref document: A1