This application is a National Stage of International Application No. PCT/JP2017/015494 filed Apr. 17, 2017, the disclosure of which is incorporated herein in its entirety by reference.
The present invention relates to an authentication tag generation apparatus, an authentication tag verification apparatus, method and program.
There is a hash function that inputs an arbitrary message and outputs a short fixed-length hash value. Collision-difficulty (Collision-resistance: CR) may be given as cryptographic security of a hash function. Collision-resistance indicates with respect to a hash function H, difficulty to find H(x)=H(x′) for arbitrary different two inputs x and x′, that is, to find two inputs that hash to the same output. Assume, for example, that an authentication tag generation apparatus holds a hash value T=H(D) of a hash function H( ) having collision-resistance with respect to data D to be protected, as an authentication tag that is a tag for data authentication. Then, if the data D has been later altered to data D′, the alteration can be securely detected by comparison between T′=H(D′) and the original hash value T by a verification apparatus. A commonly used cryptographic hash function such as SHA (Secure Hash Algorithm)-2 is regarded to have the collision-resistance and is used for detection of the alteration as mentioned above.
In association with an alteration (tampering) detection technology using the hash function H( ), technologies that have been disclosed in Non Patent Literatures 1 to 3, for example, are known. Non Patent Literatures 1 to 3 each disclose an example of a message alteration (tampering) detection technology using a combinatorial problem that is referred to as combinatorial group test (Combinatorial Group Testing: CGT). Non Patent Literature 4 discloses a method for determining an appropriate number of tests and an item for each test in the group testing, using a coding theory.
Generally, in case of a method (also referred to as “one-tag method”) that generates one authentication tag by applying a hash function to an entirety of a message one time, it is impossible to obtain information of an altered position in the message. This is because, a hash value, which is a random value, becomes completely different from a proper value, when the message gets altered. To cope with this problem, there is, for example, a method of dividing the message into arbitrary portions and applying a hash function to each portion rather than applying a hash function to the entirety of the message one time.
According to this method, it becomes possible to perform checking for each segment. That is, it becomes possible to identify an altered position of the message, within a range of a divided portion. To take an example, there may be given an example in which, when a message M is composed of m items M[1], . . . M[m], a hash function is applied to each item to obtaining authentication tags T[1]=H(M[1]), . . . , T[m]=H(M[m]). The obtained m number of authentication tags (T[1], . . . , T[m]) may preferably be held in a location where there is no danger of alteration, for example. Each item is also referred to as a “block”.
A method of applying a hash function to each item that is a minimum unit from which alteration is to be detected to generate an authentication tag for each item, may be referred to as “each-tag method”. As examples of message division, division of data on a hard disk for each file or for each disk sector, for example, may be given. However, in the each-tag method, since m authentication tags are generated for m items, there is a problem that an increase in an amount of data to be stored is large.
Then, as disclosed in each of Non Patent Literature 1 and Non Patent Literature 2, a technique in which a message is decomposed into a plurality of partial strings that permit mutual overlapping, using CGT and a hash function is applied to each of these partial strings, may be used. When the message M is composed of seven items as in the message M=(M[1], . . . , M[7]), for example, the message M may be decomposed into three partial strings S[1], . . . , S[3].
S[1]=(M[1],M[2],M[3],M[4]),
S[2]=(M[1],M[2],M[5],M[6]),
S[3]=(M[1],M[3],M[5],M[7]) (1)
Here, a case is assumed where a hash function H( ) is applied to each of the partial strings to compute the following three authentication tags T[1] to T[3]:
T[1]=H(S[1]),
T[2]=H(S[2]),
T[3]=H(S[3]) (2)
In this case, the number of the authentication tags of m (seven) that is required in each-tag method can be reduced to three of T[1] to T[3]. An altered position is identified or confined by using a result of verification of each (T[i], S[i]), based on a CGT theory. Hereinafter, the above-listed partial strings S[1] to S[3] will also be referred to as a “first decomposition example” when example of partial strings are given.
In CGT, when the number of items that have been altered is a predetermined number or less, even the items that have been altered can be identified by devising a way to obtain partial strings. What partial strings the message is decomposed into, and what kind of alteration item is able to be identified as a result of the decomposition, are closely associated with the combinatorial problem (CGT), as has been disclosed in Non Patent Literature 1, for example. Non Patent Literature 1 discloses a method of generating a CGT matrix using random numbers having a specific distribution. Non Patent Literature 2 discloses a method of generating a CGT matrix using a circulant matrix. Non Patent Literature 3 discloses a method of more explicitly using the CGT and a hash function. Non Patent Literature 4 discloses a method of generating a group testing matrix using a coding theory so that the number of tests s achieves 0 (d2 log2 (m)).
A group testing matrix (also referred to as a “CGT matrix”) is a binary matrix that represents partial strings (a combination of items) for each test that is used for group testing. In the CGT composed of r items and s tests, for example, a CGT matrix W that is a binary matrix of s rows and r columns is generated, and the tests are performed according to the generated CGT matrix W. It only suffices that a case where a value of an element in an ith row and a jth column of the CGT matrix W is “1”, indicates that an ith item in a jth test is included in a test. Hereinafter, the method of applying a hash function for each group test using the CGT, as described in each of Non Patent Literatures 1 to 3, may be referred to as “simple CGT-tag method”.
When alteration detection of a data group stored in a database system or the like is to be performed using an authentication tag, an illegal personnel is unlikely to alter a large amount of items (of files and disk sectors) all at once due to an actual system constraint or the like. According to simple CGT-tag method by which an authentication tag is generated for each test (more specifically, for each partial string) using the CGT, a database system can be constructed in which an location of an alteration that may actually happen can be identified, while reducing a total number of authentication tags. It is noted that as for an arbitrary alteration, a property of being able to detect a fact that there was alteration, remains unchanged, even if a hash function is applied to each test of the CGT, as in the case of applying a hash function to each item.
Non Patent Literature 1 discloses an example where a message authentication code (Message Authentication Code: MAC) that is an output value of a keyed hash function is used as an authentication tag. Non Patent Literature 2 discloses an example where a hash value that is an output value of a keyless hash function is used. In the case of the keyless hash function, anyone can perform a tag computation, so that, generally, it is needed to store an obtained tag (hash value) in a secure location different from the location of a message. An effect (alteration detection effect) that can be obtained is basically the same irrespective of whether a hash function is with key or without key. When the simple CGT-tag method as disclosed in each of Non Patent Literatures 1 to 3 is used, identification or confinement of an alteration location as well as determination of presence or absence of an alteration can be performed, while reducing the total number of authentication tags as compared with the each-tag method.
However, the method (simple CGT-tag method) which generates an authentication tag for each test by simply using CGT, has a problem that computational complexity will greatly increase as compared with one-tag method.
A description will be given about an example where each item corresponding to an element (component) whose value is “1” is extracted and connected (also referred to concatenated). When an index of each test is indicated by i=1, . . . , s, and an index of each item is indicated by j=1, . . . , m, this method includes:
finding a column j in an ith row of a CGW matrix W that has a value of “1” is found for each i,
calculating, for each j that has been found, an output which is obtained by providing a corresponding item M[j] to a first hash function H( ),
concatenating all outputs that have been obtained and then inputting a result of the concatenation to a second hash function H′( ), and
setting an output that has been obtained to an authentication tag T[i] corresponding to the ith test.
The above operation is performed for each I to obtain an authentication tag list TL=(T[1], . . . , T[s]).
i=1
[First Hash Function Application Process]
Z[i]=H(M[1])∥H(M[2])∥H(M[3])∥H(M[4]) (3)
[Second Hash Function Application Process]
T[i]=H′(Z[i]) (4)
i=2
[First Hash Function Application Process]
Z[i]=H(M[1])∥H(M[2])∥H(M[5])∥H(M[6]) (5)
[Second Hash Function Application Process]
T[i]=H′(Z[i]) (6)
i=3
[First Hash Function Application Process]
Z[i]=H(M[1])∥H(M[3])∥H(M[5])∥H(M[7]) (7)
[Second Hash Function Application Process]
T[i]=H′(Z[i]) (8)
An authentication tag list
TL=(T[1],T[2],T[3]) (9)
is obtained by the above operations.
In this method, the number of calling the first hash function H( ) in order to obtain the authentication tag list TL needs to be approximately (the number of items m)×(the number of tests s)=ms times (refer to those enclosed by broken lines in
Patent Literature 1 discloses a configuration in which the number of calling a first hash function H( ) for obtaining an authentication tag list TL has just been needed to be the same as the number of items m. In the disclosure of Patent Literature 1, when a message that is targeted for alteration detection is decomposed into M=(M[1], . . . , M[m]) (where m is the number of items) and the number of combinatorial group tests is indicated by s, two-layered hash tree application means prepares s initialized state variables Z[1], . . . , Z[s]. The two-layer hash tree application means applies an jth item M[j], where j=1, . . . , m, to the first hash function H( ) to obtain an intermediate hash value H(M[j]). When there is a test i (where i=1, . . . , s) that uses the item, the two-layer hash tree application means performs a process of concatenating the intermediate hash value H(M[j]) to the state variable Z[i], for each j, and applies each of state variables Z[1], . . . , Z[s] that have been finally obtained to a second hash function H′( ) to generate s number of authentication tags.
A function that is used for standard block encryption such as AES (Advanced Encryption Standard) or a hash function such as SHA (Secure Hash Algorithm)-2 may be used as each of the first hash function H( ) and the second hash function H′( ). Each of The first hash function H( ) and the second hash function H′( ) may be so configured as to include (concatenate) different constants (such as 0 and 1) in an input item, using a single function.
[PTL 1]
“Indexing Information for Data Forensics”, Applied Cryptography and Network Security, Third International Conference, ACNS 2005, New York, N.Y., USA, Jun. 7-10, 2005, p. 206-221.
[NPL2]
An analysis of the related art will be given below.
Computational complexity is large in the example disclosed in Patent Literature 1 or the like, in which the two-layer hash tree is applied. A common hash function has a linear order of computational complexity with respect to an input length. As illustrated in
Z[i]=H(M[1])∥H(M[2])∥ . . . ∥H(M[a])
T[i]=H′(Z[i]) (10)
In the CGT that enables to identify an alteration of an arbitrary single item in a message M whose number of items is a, the input Z[i] for the second hash function H′( ) is O(a).
The present invention has been devised in view of the above-mentioned problem. An object of the present invention is to provide an authentication tag generation apparatus, an authentication tag verification apparatus, an authentication tag generation method, an authentication tag verification method, and a program, each enabling to suppress an increase in a calculation amount.
According to an aspect of the present invention, there is provided an authentication tag generation apparatus comprising:
a hash function application part configured to compute a hash function for each item included in a partial string obtained by dividing a message received according to a group testing matrix representing combinatorial group testing relating to the message, and generate an authentication tag for the partial strings using a value obtained by a combining operation of individual hash values by a combiner, the combiner performing the combining operation of the individual hash values using a hash value of an item of an empty string as an identity element of the operation.
According to another aspect of the present invention, there is provided an authentication tag verification apparatus comprising:
a data input part configured to receive a message to be verified, an authentication tag for each of partial strings obtained by division of the message according to a group testing matrix representing combinatorial group testing relating to the message, and the group testing matrix, as inputs;
a verification-use authentication tag generation part configured to compute a hash function for each item included in a partial string obtained by division according to the group testing matrix and generate an authentication tag for the partial string using a value obtained by a combining operation of individual hash values by a combiner, wherein the combiner performs the combining operation of the individual hash values by using a hash value of an item of an empty string as an identity element of the operation;
an authentication tag verification part configured to compare the verification-use authentication tag generated by the verification-use authentication tag generation part and the authentication tag received by the data input part to perform verification as to whether an alteration is present; and
a verification result output part configured to output a result of the verification by the authentication tag generation part.
According to still another aspect of the present invention, there is provided an authentication tag generation method by a computer, the method comprising:
computing a hash function for each item included in a partial string obtained by dividing a message received according to a group testing matrix representing combinatorial group testing relating to the message; and
generating an authentication tag for the partial string using a value obtained by a combining operation of individual hash values by a combiner, wherein the combiner performs the combining operation of the individual hash values, by using a hash value of an item of an empty string as an identity element of the operation.
According to yet another aspect of the present invention, there is provided an authentication tag verification method comprising:
receiving a message to be verified, an authentication tag for each of partial strings obtained by division of the message according to a group testing matrix representing combinatorial group testing relating to the message, and the group testing matrix, as inputs;
computing a hash function for each item included in each of partial strings obtained by division according to the group testing matrix and generating a verification-use authentication tag for each of the partial strings using a value obtained by a combining operation of individual hash values by a combiner, wherein the combiner performs the combining operation of the individual hash values by using a hash value of an item of an empty string as an identity element of the operation;
comparing the verification-use authentication tag and the authentication tag received to perform verification as to whether an alteration is present; and
outputting a result of the verification.
According to still another aspect of the present invention, there is provided a program causing a computer to execute processing comprising:
computing a hash function for each item included in a partial string obtained by dividing a message received according to a group testing matrix representing combinatorial group testing relating to the message; and
generating an authentication tag for the partial string using a value obtained by a combining operation of individual hash values, in the combining operation, the individual hash values being combined by using a hash value of an item of an empty string as an identity element of the operation.
According to still another aspect of the present invention, there is provided a program to cause a computer to execute processing comprising:
receiving a message to be verified, an authentication tag for each of partial strings obtained by division of the message according to a group testing matrix representing combinatorial group testing relating to the message, and the group testing matrix, as inputs;
computing a hash function for each item included in each of partial strings obtained by division according to the group testing matrix and generating a verification-use authentication tag for each of the partial strings using a value obtained by a combining operation of individual hash value, in the combining operation, the individual hash values being combined by using a hash value of an item of an empty string as an identity element of the operation;
comparing the verification-use authentication tag and the authentication tag received to perform verification as to whether an alteration is present; and
outputting a result of the verification.
According to yet a further another aspect of the present invention, there is provided a non-transitory computer readable recording medium, such as a semiconductor storage (e.g., RAM (Random Access Memory), a ROM (Read Only Memory), or an EEPROM (Electrically Erasable and Programmable ROM)), an HDD (Hard Disk Drive), a CD (Compact Disc), or a DVD (Digital Versatile Disc), which is a computer readable recording medium that has stored therein the program according to the aspect described above.
According to an aspect of the present invention, an authentication tag generation apparatus, it is possible to provide an authentication tag generation method, an authentication tag verification method, and a program, each enabling suppression of an increase in an amount of computation. Still other features and advantages of the present invention will become readily apparent to those skilled in this art from the following detailed description in conjunction with the accompanying drawings where only exemplary embodiments of the invention are shown and described, simply by way of illustration of the best mode contemplated of carrying out this invention. As will be realized, the invention is capable of other and different embodiments, and its several details are capable of modifications in various obvious respects, all without departing from the invention. Accordingly, the drawing and description are to be regarded as illustrative in nature, and not as restrictive.
Example embodiments of the present invention will be described. First, a basic concept will be described.
When a message X is composed of n concatenated blocks (items) x[1], . . . , x[n] (X=x[1], . . . , x[n]), the hash function H( ) is applied to each augmented block <i>. x[i] which is obtained by concatenating an individual block index (item index) i=1, . . . n, to each x[i] (i=1, . . . , n).
<i>.x[i] (11)
y[i]=H(<i>.x[i]) (i=1, . . . ,n) (12)
A combining operation for n hash values y[i] (i=1, . . . , n) is performed, as expressed by the following expression:
Y=HASH(X)=y[1]⊗, . . . ,⊗y[n] (13)
Hash values y[1], . . . , y[n] may constitute elements of a group G with respect to an operation ⊗.
Arbitrary two elements a and b that belong to the G are closed under a binary operation. That is, with respect to ∀a, b∈G,
a⊗b and b⊗a (14-1)
are included in the G.
The following associativity law holds with respect to three elements a, b, and c of the group G:
(a⊗b)⊗c=a⊗(b⊗c) (14-2)
When the expressions (14-1) and (14-2) are satisfied, the G constitutes a semigroup with respect to a binary operation ⊗.
An identity element e is included in the group G, so that the following expression holds:
a⊗e=e⊗a=a (14-3)
When the expressions (14-1) to (14-3) are satisfied, the G constitutes a monoid with respect to the operation ⊗.
An inverse element a−1 is present for any element a that belongs to the group G, and the following expression holds:
a⊗a−1=a−1⊗a=e (14-4)
where e is an identity element.
When expressions (14-1) to (14-4) are satisfied, the G constitutes a group with respect to the binary operation ⊗.
A combiner combines a hash value of an element of the group G via the operation ⊗.
It is assumed that the hash function H( ) is an incremental hash function and a hash value Y=HASH(X) is already computed with respect to X=x[1], . . . , x[n]. When a block x[i] is changed to x′[i] (i=1, . . . , n), a new hash value is given by the following expression (15). The expression (15) indicates incrementality.
HASH(X′)=Y⊗H(<i>.x[i])−1⊗H(<i>.x′[i]) (15)
Non Patent Literature 5 assumes that a hash function HASH ( ) is ideal, that is, a random oracle.
As an example of the combining operation by the combiner, MuHASH is given by the following expression, for example:
MuHASHG,H(x[1], . . . ,x[n])=Π<i=1,n>H(<i>.x[i]) (16)
MuHASH uses integer multiplication modulo p in a group whose order is a prime number p. That is, a block is randomized by H to obtain Zp*=Zp−{0}={1, 2, . . . , p−1}, and the integer multiplication modulo p is performed on these obtained results. It is known that security of MuHASH against a collision attack can come to difficulty of a discrete log problem (discrete log problem) in the group G, for example.
AdHasH uses addition modulo a k-bit integer M (mod M), and is given by the following expression:
AdHASHM,H(x[1], . . . ,x[n])=Σ<i=1,n>H(<i>.xi)mod M (17)
It is known that when the integer M composed of k bits and q numbers of 0<a[1], . . . , a[q]<M are given, security of AdHASH is related to (k-q)-weight knapsack problem of finding q weights w=(w[1], . . . , w[q]), each of which is in {−1, 0, +1}) and which are not all zero, such that
Σ<i=1,q>w[i]a[i]=0(mod M) (18)
As long as the weight knapsack problem is difficult, the hash function is collision-free.
Further, it is known that the security of hash function comes to a problem of finding w=(w[1], . . . , w[q]), (w[i] (i=1, . . . , q)∈{−1, 0, +1} that satisfy the following expression, with respect to the operation in the group G:
a[1]w[1]⊗a[2]w[2]⊗, . . . ,⊗a[n]w[n]=e (19)
This relates to a balance problem of finding disjoint subsets (disjoint subsets) which are expressed as follows and having no overlap to satisfy the following expression when the elements a[1], . . . a[n] of the group G are given:
⊕i∈Ia[i]=⊕j∈Ja[j] (20)
I,J⊆{1, . . . ,n}, I∩J=ϕ (21)
LtHASH uses vector addition and an output is set to Zpk by setting the modulo M of AdHASH to a prime number p.
LtHASHp,h(x1, . . . ,xn)=Σi h(<i>.xi)mod p (22)
(i, M[i]) indicates an item in which an item index i and an item M[i] are concatenated (that may be referred to as an augmented item corresponding to an augmented block). According to the notation in
<i>.M[i] (23)
In case of MuHASH, the output of the combiner is, for example, expressed by:
Y=Π<i=1,4>H(i,M[i]) (24)
As illustrated as (2, es) in
G′=G∪{es} (25)
It is noted that collision resistance of operation on the group G′ is a security requirement.
With respect to the empty string, (x[1]) and (x[1], es) are different elements.
Further, (es, es) and (es) are also different elements.
In the combining operation of hash values by the combiner, a hash value of (i, es) is treated as an identity element of the group G′ irrespective of an index i of an item in the partial string.
H(i,es)=e (26)
In MUHASH, an identity element is: e=1,
In AdHash, an identity element becomes e=0, and
In LtHASH, an identity element becomes e=(0, . . . , 0).
Referring to
The message input part 101 may be configured to include a hardware interface and software configured to receive a target message M. Though not limited thereto, the message input part 101 may be configured to include a character input apparatus such as a keyboard, a disk interface (controller/driver) configured to read data or a file from a hard disk drive apparatus (HDD), or a solid state drive (solid state drive, SSD), and a apparatus to receive, from a memory apparatus, a network interface, or the like, a communication message to be transmitted to a destination node, for example.
It is assumed herein that the message M is composed of m (>1) individual items M[1], . . . , M[m]. The items may respectively have lengths (variable lengths) that are mutually different, or a same length. Though not limited thereto, content of each sector (such as 512 bytes, 4K (kilo=1024) bytes) of the HDD (Hard Disk Drive), one entry that is the minimum unit of a database, several bits, several bytes, several words, or one or more characters of text information (such as one character) may be set as each item.
The group test generation part 102 generates combinatorial group tests (CGTs) for identifying an altered position. The group test generation part 102 generates a binary group testing matrix W of s rows and m columns (m corresponding to the number of items), according to the number of tests s and a maximum value d of the number of altered items that can be identified.
It is assumed herein that, as an example, the group test generation part 102 has output the following binary 3×7 matrix as the group testing matrix W indicating the combinatorial group tests (CGT) when s=3 and d=1 with respect to the message M (M[1], M[2], . . . , M[7]).
The group testing matrix W, as expressed by the expression (27), indicates that when a value of a jth column in an ith row is “1”, an item M[j] is used for an ith test, and the item M[j] is not used for the ith test when the value of the jth column in the ith row is “0”.
For example, a row vector [1, 1, 1, 1, 0, 0, 0] in the first row of the group testing matrix W in the expression (27) indicates that a total of four items which are the items M[1], M[2], M[3], and M[4] are to be used for the first test. Further, a row vector [1, 1, 0, 0, 1, 1, 0] in the second row of the group testing matrix W in the expression (27) indicates that a total of four items which are the items M[1], M[2], M[5], and M[6] are to be used for the second test. As mentioned above, the role of the group testing matrix W is to indicate which item in the message is to be used for computation of a tag associated with each test, according to the value of each element.
An arbitrary existing method can be used as a method of generating the group testing matrix or a method of determining a partial string to be used in each group test. The group test generation part 102 may generate the group testing matrix W by using the method disclosed in each of Non Patent Literatures 1 to 4, for example.
It may be so configured that when each item is set to a sector of the HDD, the message M is set to a cluster (such as 8 sectors) which is a minimum capacity to be assigned to a file or a directory, and the s and the d are set to be fixed, the binary matrix W obtained by the group test generation part 102 is supplied, is stored, and is held in the authentication tag generation apparatus 100.
As illustrated in
The authentication tag output part 104 receives authentication tags T[1], T[2], and T[3], and outputs an authentication tag list TL=[T[1], T[2], T[3]]. The authentication tag output part 104 may output the authentication tag list to a display apparatus, a printer apparatus, a file apparatus, a predetermined network node (such as a database or a management server) or the like, for example.
The message input part 101 receives a message M (step S1).
The hash function application part 103 decomposes the message M into the partial strings (where the number of the items=m, and the number of the partial strings=s) according to the group testing matrix W (step S2).
The hash function application part 103 computes a hash function for each item of individual partial strings (step S3), performs the combining operation of hash values to generate the authentication tag (step S4).
The authentication tag output part 104 outputs the authentication tag list composed of s authentication tag lists.
In the present example embodiment, when each partial string terminates in n items, a hash value H((n, end)) of (n, end) adjacent to the hash values of the n items may be supplied to the combiner. It is assumed that “end” is a reserved word which is different from es or a non-es. (n, end) indicates a concatenation of an item index n and the reserved word of end.
The hash function application part 103 decomposes the message M (M[1], M[2], . . . , M[7]) into the following partial strings, according to the group testing matrix W in the expression (27). In this case, an alternation of d=1 item can be identified.
S[1]=(M[1],M[2],M[3],M[4]);
S[2]=(M[1],M[2],M[5],M[6]);
S[3]=(M[1],M[3],M[5],M[7]); (28)
Referring to
Referring to
Referring to
In the example of
In the example of
In the diagrams of
Referring to
Referring to
Referring to
In
When a cryptographic hash function such as an elliptic curve is used, for example, an output bit width of the hash function is small, but a calculation cost in the combiners is increased.
Output bits of each combiner is reduced to predetermined bits, or output n hash values of each of the combiners (combiners 1 to 3) using a hash function H′( ) are used for each of authentication tags T[1] to T[3]. It may be configured that when an output of each of the combiners (combiners 1 to 3) is 2K bits to 4K bits in the example in
In the above-mentioned example embodiment, a routine of generating a MAC tag list, for example, can be used.
A two-input combiner C11 performs the operation on two hash values H(1, M[1]) and H(2, M[2]).
Y1=H(1,M[1])⊗H(2,M[2]) (29)
A two-input combiner C12, performs the operation on the Y1 and a hash function H(3, M[3]). A result of the operation is given as follows:
Y2=Y1⊗H(3,M[3])=(H(1,M[1])⊗H(2,M[2]))⊗H(3,M[3])=H(1,M[1])⊗H(2,M[2])⊗H(3,M[3]) (30)
An output of a two-input combiner C13 is given as follows:
Y3=Y2 ⊗H(4,M[4])=(H(1,M[1])⊗H(2,M[2])⊗H(3,M[3])⊗H(4,M[4]) (31)
An output Y4 of a two-input combiner C14 is given as follows:
Y4=Y3 ⊗H(4,end)=H(1,M[1])⊗H(2,M[2])⊗H(3,M[3])⊗H(4,M[4])⊗H(4,end) (32)
The output Y4 of the combiner C14 becomes an authentication tag T[1] of a partial string S[1]. Similar operations are performed for each of the partial strings S[2] and S[3].
In this example embodiment, proof of security of the hash function based on the CGT can take over the result of Non Patent Literature 5 substantially as it is. That is, security evaluation of the existing incremental hash can be used substantially without alteration. The collision-finding probability of CGT hash (block input space G′=G ∪{es}) becomes less than or equal to (less than) a probability of solving a balance problem on the group G.
Further, by using the incremental hash, a cost of updating data that once gets hashed can be reduced.
A hash function H( ) in this example embodiment for computing a hash value to be input to each combiner is not, however, limited to the incremental hash function having incrementality (in expression (15)) that assumes existence of an inverse element, and may constitute, for example, an element of a monoid G that does not presuppose existence of an inverse element.
A hash function having homomorphism, for example, may be used. Homomorphism means that with respect to ∀a, b∈X, mapping f: X→Y′ satisfies the following expression:
f(a⋅b)=f(a)⋅f(b) (33)
This corresponds to a case where, with respect to the hash function H( ) the following expression holds:
H(a⋅b)=H(a)⋅H(b) (34)
Herein, the operation ⋅ may be a modulo operation (addition or multiplication).
According to this example embodiment, if the data size of each item increases, an operation cost of each combiner is relatively reduced, so that the operation asymptotically approaches a speed of the hash function H( ) itself.
The speed of the operation in this example embodiment is considered to be higher than that of a simple combination of CGT and hash (if an amount of data is equal to or more than a certain amount).
The data input part 201 receives a message M that is a target for alteration detection, an authentication tag list TL that has been already generated for the message M, and a group testing matrix (CGT matrix) W as information indicating partial strings for combinatorial group testing (CGT) that has been used for generation of the authentication tag list TL. The authentication tag list TL and the CGT matrix W received by the data input part 201 are the authentication tag list TL and the group testing matrix W that have been generated for the message M by the authentication tag generation apparatus 100 of the first example embodiment. The data input part 201 may be implemented by including an interface configured to receive the authentication tag list TL from a database, a management server, or the like, and a communication interface configured to receive, from the authentication tag generation apparatus 100, the message M received by the authentication tag generation apparatus 100.
Hereinafter, it is assumed that the message M is composed of m individual items, as in the first example embodiment. That is, it is assumed that M=(M[1], . . . , M[m]).
The verification-use authentication tag generation part 202 computes a hash function H( ) for an individual partial string of the message M targeted for the alteration detection, based on the received group testing matrix W, generates a value obtained by combining hash values, as a verification-use authentication tag, and generates a verification-use authentication tag list including s number of verification-use authentication tags. A manner of generating the verification-use authentication tags is the same as the process by the hash function application part 103 in the first example embodiment.
The authentication tag verification part 203 compares the received authentication tag list TL and the generated verification-use authentication tag list TL′ to determine presence or absence of an alteration for the message M, and identifies or limits an altered position (an altered item in this example embodiment) when it has been determined that the alteration is present. The authentication tag verification part 203 outputs information indicating the presence or absence of the alteration and the altered position. The authentication tag verification part 203 may output an index for the altered item or the like, for example, as the information indicating the altered position. It may be so configured that when there is no alteration, the presence or the absence of the alteration is indicated by setting information indicating an altered position to an invalid value.
The authentication tag verification part 203 can determine the presence or the absence of the alteration and identify or limit the altered position in the following manner, for example. That is, a difference between respective entries (such as T[i] and T′ [i], where i=1, . . . , s) is taken between the TL and the TL′, and the following binary vector using an element b corresponding an index i of the entries, which assumes 0 when the difference is zero and assumes 1 when the difference is not zero, may be generated:
B=(b[1], . . . ,b[s]) (35)
Then, a predetermined procedure (that is decoding, more specifically, processing of solving a solution in the group testing) is performed for the generated binary vector B, and a result of the predetermined procedure may be output.
The authentication tag verification part 203 may, for example, determine that there is no alteration when all the entries of the binary vector B are zero. Otherwise, the authentication tag verification part 203 may determine that there is an alteration in at least one item in the entirety of the message. In the latter case (when one of the entries is 1), the authentication tag verification part 203 may extract an ith raw vector (wi1, . . . , wik) of the received group testing matrix W with respect to every i (where i=1, . . . , s) that satisfies b [i]=0, and may determine that, with respect to each j that satisfies wij=1, M[j] is not altered. The authentication tag verification part 203 may perform the above described process to determine that alteration is present in every item other than those determined not to be altered.
The verification result output part 204 outputs information indicating a result of the verification by the authentication tag verification part 203, i.e., more specifically, the verification result output part 204 outputs information indicating presence or absence of an alteration and an altered position if there is an alteration. The verification result output part 204 may output the information indicating the result of the verification, for example, to a display apparatus, a printer apparatus, a predetermined network node (such as a database or a management server), or the like.
First, the data input part 201 receives a message M targeted for alteration detection, an authentication tag list TL that has been generated for the message M, and a group testing matrix W of s rows and m columns (step S11).
Then, the verification-use authentication tag generation part 202 generates (decomposes) s partial strings S[i] (i=1, . . . , s) from the message M, based on the received group testing matrix W (step S12).
Then, the verification-use authentication tag generation part 202 generates a verification-use authentication tag list TL′=(T′[1] . . . , T′[s]) composed of s verification-use authentication tags for the s partial strings S[i] (i=1, . . . , s) (step S13).
Then, the authentication tag verification part 203 compares the generated verification-use authentication tag list TL′ and the authentication tag list TL received in step S11, and identifies presence or absence of an alteration and identifies an item that has been altered if the item has been altered, as a result of verification.
Finally, the verification result output part 204 outputs information indicating a result of the verification by the authentication tag verification part 203 (presence or absence of an alteration and a result of identification of an altered item) (step S15).
The authentication tag storage apparatus 300 stores an authentication tag list TL that has been generated by the authentication tag generation apparatus 100. The authentication tag storage apparatus 300 may store an identifier for a message M for which the authentication tag list TL has been generated and a group testing matrix W that has been used for the generation of the authentication tag list TL, together with the authentication tag list TL, for example. When a hash function with key is used as a hash function H( ) to be used for generation of an authentication tag, the authentication tag storage apparatus 300 may be omitted. In that case, the authentication tag list TL that has been generated by the authentication tag generation apparatus 100 may be transmitted to the authentication tag verification apparatus 200 or an arbitrary apparatus that is set to the destination of the message M, together with the message M.
It may be so configured that the authentication tag generation apparatus 100 and the authentication tag verification apparatus 200 are connected via a communication network or the like such as a LAN (Local Area Network) or a WAN (Wide Area Network), or may be implemented by being integrated in one unit. That is, one apparatus may include functions (respective means) of the authentication tag generation apparatus 100 and functions (respective means) of the authentication tag verification apparatus 200. In such a case, the hash function application part 103 can also generate a verification-use authentication tag in that apparatus. It is noted that in this case, the verification-use authentication tag generation part 202 of the authentication tag verification apparatus 200 can be omitted. Further, the authentication tag generation apparatus 100 and the authentication tag verification apparatus 200 may be referred to as a data authentication apparatus, with no particular distinction made between the authentication tag generation apparatus 100 and the authentication tag verification apparatus 200.
As illustrated in
(Compact Disc), a DVD (Digital Versatile Disc), and so on, a display apparatus 403, and an interface 404. By executing a program stored in the storage apparatus 402 by the processor 401, the function of at least one of the authentication tag generation apparatus 100 and the authentication tag verification apparatus 200 that have been described above may be implemented. The storage apparatus 402 may be used as the authentication tag storage apparatus 300 in
The above-mentioned example embodiments each can be applied to an alteration detection system. To take an example, a computer system as a whole may be targeted, or each of the above-mentioned example embodiments may be used for alteration detection or the like by performing hash computation of a file or the like by an agent in a client PC (Personal Computer) and then by performing hash comparison by a server.
The above-mentioned example embodiments may be applied to application whitelisting (to permit use of only a good application to be used). To take an example, each of the above-mentioned example embodiments may be used when only a permitted file is executed by a CPU (Central Processing Unit), when a file is checked with a hash database generated in advance before execution of the file, or in an environment having a great attack risk (e.g., a POS (Point Of Sale) terminal or the like).
Alternatively, the above-mentioned example embodiments may be applied to a Web application firewall (Web Application Firewall: WAF) and may be used against alteration of a Web site and unauthorized access. Alternatively, it may be so configured, when white list management is performed, fine setting of an input character type for each parameter, an input pattern in regular expression, and so on is performed for each target URL (Uniform Resource Locator).
Alternatively, the above-mentioned example embodiments may be applied to software for log and trace management having a log alteration detection function implemented therein.
Alternatively, the above-mentioned example embodiments may be applied to a sensor network or the like. The number of MAC (Message Authentication Code) tag transmissions can be greatly reduced.
The number of hashes can be reduced in secure boot (configured to check whether a hash value is an expected value and stop start-up when the hash value is not the expected value).
Alternatively, the above-mentioned example embodiments may be applied to malware similarity determination or the like. The above-mentioned example embodiments may be applied to construction of an existing malware hash database.
Each disclosure of the above-listed Patent Literatures 1 and 2 and Non Patent Literatures 1 to 5 is incorporated herein by reference. Modification and adjustment of each example embodiment and each example are possible within the scope of the overall disclosure (including the claims) of the present invention and based on the technical concept of the present invention. Various combinations and selections of various disclosed elements (including each element in each claim, each element in each example, each element in each drawing, and the like) are possible within the scope of the claims of the present invention. That is, the present invention naturally includes various variations and modifications that could be made by those skilled in the art according to the overall disclosure including the claims and the technical concept.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2017/015494 | 4/17/2017 | WO | 00 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2018/193507 | 10/25/2018 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
9594928 | Langhammer | Mar 2017 | B1 |
9680653 | Bradbury | Jun 2017 | B1 |
10341088 | Minematsu | Jul 2019 | B2 |
10355862 | Minematsu | Jul 2019 | B2 |
20020051537 | Rogaway | May 2002 | A1 |
20070069860 | Akiyama | Mar 2007 | A1 |
20070189524 | Rogaway | Aug 2007 | A1 |
20090138710 | Minematsu | May 2009 | A1 |
20130073865 | Kornafeld | Mar 2013 | A1 |
20140344227 | Grube | Nov 2014 | A1 |
20160173276 | Minematsu | Jun 2016 | A1 |
20180013550 | Minematsu | Jan 2018 | A1 |
Number | Date | Country |
---|---|---|
2017-005409 | Jan 2017 | JP |
2017-073716 | Apr 2017 | JP |
2015015702 | Feb 2015 | WO |
2016063512 | Apr 2016 | WO |
Entry |
---|
Michael T. Goodrich, et al., “Indexing Information for Data Forensics”, ACNS, LNCS, 2005, pp. 206-221. |
Giovanni Di Crescenzo, et al., “Corruption-Localizing Hashing”, ESORICS, LNCS, 2009, pp. 489-504. |
Annalisa De Bonis, et al., “Combinatorial Group Testing for Corruption Localizing Hashing”, COCOON, LNCS, 2011, pp. 579-591. |
Ely Porat, et al., “Explicit Non-Adaptive Combinatorial Group Testing Schemes”, ICALP, 2008, pp. 1-15. |
Mihir Bellare, et al., “A New Paradigm for Collision-free Hashing: Incrementality at Reduced Cost”, Advances in Cryptology—Eurocrypt, LNCS, 1997, pp. 163-192, vol. 1233. |
Kazuhiko Minematsu, “Efficient Message Authentication Codes with Combinatorial Group Testing”, ESORICS, LNCS, 2015, pp. 185-202, vol. 9326. |
Annalisa De Bonis, et al., “A Group Testing Approach to Improved Corruption Localizing Hashing”, Cryptology ePrint Archive, 2011, 18 pages. |
International Search Report for PCT/JP2017/015494 dated Jul. 11, 2017 (PCT/ISA/210). |
Notice of Reasons for Refusal dated Jun. 16, 2020, from the Japanese Patent Office in Application No. 2019-513520. |
Number | Date | Country | |
---|---|---|---|
20200076609 A1 | Mar 2020 | US |