CN106991148B - Database verification system and method supporting full-update operation - Google Patents

Database verification system and method supporting full-update operation Download PDF

Info

Publication number
CN106991148B
CN106991148B CN201710190195.4A CN201710190195A CN106991148B CN 106991148 B CN106991148 B CN 106991148B CN 201710190195 A CN201710190195 A CN 201710190195A CN 106991148 B CN106991148 B CN 106991148B
Authority
CN
China
Prior art keywords
database
data
server
client
verification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710190195.4A
Other languages
Chinese (zh)
Other versions
CN106991148A (en
Inventor
马建峰
陈晓峰
习宁
张志为
杨昌松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
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 Xidian University filed Critical Xidian University
Priority to CN201710190195.4A priority Critical patent/CN106991148B/en
Publication of CN106991148A publication Critical patent/CN106991148A/en
Application granted granted Critical
Publication of CN106991148B publication Critical patent/CN106991148B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

The invention belongs to the technical field of databases, discloses a database verification system and a database verification method supporting full-update operation, provides an incremental reversible bloom filter with commitment, and solves the problem of rapid data reverse index in a limited range; on the basis, a database verification system and a method supporting full-update operation (insertion, deletion and replacement) are provided, the defect that the traditional verification method only supports the verification of a static database with a fixed size is overcome, the expense of vector commitment recalculation and verification in the database expansion process is eliminated, the database verification efficiency is improved, the method is suitable for most dynamic database systems used in the existing network, and the integrity of a cloud database is guaranteed.

Description

Database verification system and method supporting full-update operation
Technical Field
The invention belongs to the technical field of databases, and particularly relates to a database verification system and a database verification method supporting full-update operation.
Background
With the rapid development of communication networks and cloud computing technologies, enterprises and individuals subjected to resource constraints outsource large databases of the enterprises and individuals to cloud storage servers. The storage, organization, management, reliability and availability of the data are all ensured by the cloud service provider, so that the user does not need to construct a data center of the user, and the cost of the user is reduced. However, the cloud storage technology brings great storage convenience to people and also brings great security challenges. Because the position and the organization mode of the data are transparent to the user, in an incompletely trusted cloud storage environment of a cloud platform and a cloud service provider, the data stored on the cloud server is likely to be deleted, tampered and polluted by a malicious attacker, or the stored data is lost due to damage and breakdown of the cloud storage server.
At present, there are many achievements for integrity verification and recovery of cloud storage data, methods such as Merkle hash trees (CN201310185462.0, CN201310246856.0), dynamic pors (of retrievability) (CN201410350589.8) and the like are used for verification, but an effective verification method is still lacked for the whole cloud database. In order to realize integrity verification of cloud databases, Benabbas, Gennaro and Vahlis introduced for the first time a concept of verifiable databases (VDB for short), so that resource-constrained clients can verify a very large database stored in the cloud under a limited resource environment, and convenience is provided for efficient retrieval and update of database records in the future (backs M, fire D, Reischuk R M. verifiable distribution of computing on output data [ C ]. Proceedings of the 2013 ACM SIGSAC conference Computer & communications security. acm,2013:863 @.). If the server attempts to tamper with the database, it will be detected by the user. Meanwhile, the computation and storage resources used by the client in the VDB scheme do not depend on the size of the database. The first practical VDB scheme is constructed by using a primitive of a verifiable delegate of a polynomial. However, this scheme does not have publicly verifiable properties. That is, only the owner of the database can verify the correctness of the data, and third party arbitration verification is not supported. To this end, Catalano and fiere propose to construct publicly verifiable VDB schemes based on original Vector commitments (d.catalano and d.fiere, Vector recommendations and the applications, PKC 2013, LNCS 7778, Springer-Verlag, pp.55-72,2013.). On the basis of the scheme, Chen points out the security weakness of the VDB framework of Catalano-Fiore, and then proposes a new VDB scheme which can be publicly verified by using the idea of commitment constraint. Wherein all computational structures are based on standard size assumptions in bilinear groups and are therefore Efficient for real world applications (x.chen, j.li, x.huang, j.ma, and w.lou, New public Verifiable Databases with Efficient Updates, IEEE Transactions on dependent and Secure Computing, press, 2015).
However, existing VDB schemes only support replacement of such update operations, mainly because the number of data records of the outsourced database must be fixed, when the database is subjected to an insert operation, the newly added data cannot be verified, the common parameters and the commitment vector need to be recalculated and generated, and the complexity is at a power level of o (q) (where q represents the size of the database), which will bring huge additional overhead to the configuration phase of the client. In 2016, Miao proposed a hierarchical commitment vector-based VDB method to support full-update operations (insert, delete, replace) (m.miao, j.wang, j.ma, and w.susilo, public vertical data bases with efficiency operations, Journal of Computer and System Sciences). However, the number of levels in the hierarchical commitment increases linearly as the client inserts data records consecutively at the same location of the database. Thus, the computing and storage overload of the cloud server (rather than the client) will also increase linearly, and this reduces the efficiency of the VDB scheme.
In order to ensure that data cannot be modified by an illegal user, an untrusted third party and an untrusted cloud server in the storage process, the integrity of the database needs to be verified. Conventional database verification schemes may support alternative update operations, but are limited to fixed-size databases and require recalculation of vector commitments when an insert update operation occurs, incurring significant overhead. However, there are increasing application requirements that users frequently insert, replace, delete, and the like data stored in the cloud, and when data is dynamically updated, the overhead caused by dynamic update of data is required to be as small as possible. Therefore, the existing database verification method cannot be directly applied in the storage environment of the dynamic cloud database.
In summary, the problems of the prior art are as follows: because the common parameters and vector commitment cost required by regeneration verification are large, the traditional database verification scheme limited by fixed size only supports replacement operation and cannot support insertion and deletion operation. Today, with the rapid development of informatization, the fixed size of the database cannot meet the increasing data storage requirement. For this reason, how to implement support (insertion, deletion, and replacement) for full update operations of dynamic databases under the requirement of ensuring client performance is a main contribution point of the present invention.
Disclosure of Invention
Aiming at the problems in the prior art, the invention provides a database verification system and a database verification method supporting full-update operation.
The invention is realized by designing a new data index structure based on the bloom filter, namely an incremental reversible bloom filter with commitments, in order to eliminate the additional overhead of recalculation of common parameter and vector commitments in a database caused by insertion operation. The present invention provides a reversible bloom filter with commitment, which is defined as follows:
order to
Figure BDA0001255683850000031
Two random hash functions; defining each CIBF Unit B [ i ]](1. ltoreq. i. ltoreq. q) comprises three fields:
a "count" field, with an initial value of 0: a counter field in which the number of all elements in the memory cell B [ i ] is 1. ltoreq. i.ltoreq.q; the insertion or deletion of element x in B [ i ] is equal to B [ i ] count plus 1 or minus 1;
an "idHash" field having an initial value χ (0): a commitment value field storing hash values χ (-) of all ordered elements in B [ i ];
b [ q +1]. count and B [ q +1]. idHash fields represent vector commitments of f (count) and idHash of the first q items of data of the database, respectively, i.e., B [ q +1]. count ═ VC (f (B [0]. count),..., f (B [ q ]. count)), B [ q +1]. idHash ═ VC (χ (B [0]. count),. χ (B [ q ]. count)), and. Based on the above definitions, another object of the present invention is to design an incremental reversible bloom filter with commitment, the incremental reversible bloom filter with commitment is specifically extended as follows:
definition of
Figure BDA0001255683850000041
Defining the "count" field as an incrementing sequence (b)1,b2,...,bq) (ii) a The indexing process of the data is as follows:
1) indexing for queries
Figure BDA0001255683850000042
Figure BDA0001255683850000043
The server firstly determines a unit index x, x is more than or equal to 1 and less than or equal to q
Figure BDA0001255683850000044
2) The server sends bx-1And bxThe information and the corresponding authentication credential are handed to the client;
3) if the proof of certification is legal, the client determines the index
Figure BDA0001255683850000045
Is the l-th element in the x-th unit, i.e.
Figure BDA0001255683850000046
Wherein
Figure BDA0001255683850000047
It is another object of the present invention to provide a database validation method using the incremental reversible bloom filter with commitment, the database validation method comprising:
(1) a configuration stage: initialization Setup (1) of verifiable databases by clientskDB), defining common parameters PP, computing vector commitments CCGenerating verification parameters (a public key PK, a database code S and a private key SK), uploading relevant information together with the database to a server for verifying the integrity of the database in the subsequent data query process of a user; configuration function Setup (1)kDB) where k denotes the security parameter and DB denotes the database operated, i.e. DB ═ x, vx),1≤x≤q;
(2) And (3) an inquiry stage: client submitting query request
Figure BDA0001255683850000048
The database locates the data inquired by the client, calculates the verification credential according to the verification parameters and then sends the data together to the client;query operations
Figure BDA0001255683850000049
Where PK represents the public key, S represents the database code,
Figure BDA00012556838500000410
querying an index of data on behalf of a client;
(3) a verification stage: client-side authentication of server credentials
Figure BDA00012556838500000411
Verifying the legally output inquired data; otherwise, outputting a verification error;
(4) and (3) an updating stage: when the client side is subjected to replacement, deletion and insertion operations, the database at the server side is updated, and meanwhile, the client side is cooperated with the server to correct the verification parameters.
Further, the specific configuration process of (1) is as follows:
1) defining common parameters PP
Order to
Figure BDA00012556838500000412
And
Figure BDA00012556838500000413
the cyclic multiplication group expressing prime order p has bilinear correspondence
Figure BDA00012556838500000414
g represents
Figure BDA0001255683850000051
The generating function of (a) is to be used,
Figure BDA0001255683850000052
representing a cryptographic hash function;
from prime space
Figure BDA0001255683850000053
Randomly selecting q elements
Figure BDA0001255683850000054
And calculate
Figure BDA0001255683850000055
I is more than or equal to 1, j is more than or equal to q, and i is not equal to j;
generating common parameters
Figure BDA0001255683850000056
Wherein the message space
Figure BDA0001255683850000057
2) Computing vector commitment CCGenerating subsequent verification parameters
Calculating a vector commitment for the count field (1, 2.., q) from the common parameter PP
Figure BDA0001255683850000058
And data recording (v)1,v2,...,vq) Vector commitment of
Figure BDA0001255683850000059
Client randomly selects 1 element
Figure BDA00012556838500000510
G is formedyThen calculate
Figure BDA00012556838500000511
And reacting H0Sending the data to a server; wherein T represents a counter and the initial value is 0;
if H is0Legally, the server will (H)0,CC,CRT) information is added to the auxiliary information aux;
after the calculation is completed, the following verification parameters are configured: public key PK ═ (PP, Y, C)C,CR) The database code S ═ (PP, aux, DB), and the private key SK ═ y.
Further, the specific process of (2) is as follows:
the number of current count fields isb1,b2,...,bq) Wherein
Figure BDA00012556838500000512
Definition of
Figure BDA00012556838500000513
Then there is
Figure BDA00012556838500000514
And is
Figure BDA00012556838500000515
Given a query index
Figure BDA00012556838500000516
The server firstly determines that x is more than or equal to 1 and less than or equal to q of the unit index and satisfies
Figure BDA00012556838500000517
(definition b)0=0);
Then the server calculates
Figure BDA00012556838500000518
And
Figure BDA00012556838500000519
generating authentication credentials
Figure BDA00012556838500000520
The server returns the authentication credentials to the client along with the data.
Further, the specific process of (3) is as follows: the client calculates e (H) according to the information in the server certificate0G) and
Figure BDA00012556838500000521
and
Figure BDA00012556838500000522
and e (pi)xG); and the following three conditions were verifiedWhether or not:
1)e(H0g) is equal to
Figure BDA0001255683850000061
2)
Figure BDA0001255683850000062
Is equal to
Figure BDA0001255683850000063
3)
Figure BDA0001255683850000064
Is equal to e (pi)x,g);
When the three conditions are simultaneously met, the database is not tampered, and the verification is passed; client-side basis
Figure BDA0001255683850000065
Obtaining data to be accessed
Figure BDA0001255683850000066
Further, the replacing operation in (4) includes:
the client first obtains the current record from the server
Figure BDA0001255683850000067
Namely, the client obtains the certificate tau from the server and verifies the certificate tau;
then, T +1 is updated,
Figure BDA0001255683850000068
at the same time, the client calculates CC′=CC
Figure BDA0001255683850000069
And
Figure BDA00012556838500000610
the client side will
Figure BDA00012556838500000611
Sending the data to a server;
if tx' legal, server use
Figure BDA00012556838500000612
To replace the data stored in the data unit x in the database, i.e.
Figure BDA00012556838500000613
Meanwhile, the server updates the public key PK ═ (PP, Y, C)C′,CR') and encodes the auxiliary information in the database S (H)0,CC,CRT) is updated to (T)x′,CC′,CR′,T)。
Further, the update procedure of the delete operation in (4) is v in the replace operationx' is the case.
Further, the inserting operation of (4) includes:
when the client is in data unit x
Figure BDA00012556838500000614
After which the data v is inserted*I.e. by
Figure BDA00012556838500000615
Then, updating T-T + 1; at the same time, the client calculates
Figure BDA00012556838500000616
And
Figure BDA00012556838500000617
the client side will
Figure BDA00012556838500000618
Sending the data to a server;
if tx' legal, server use
Figure BDA00012556838500000619
To replace the data stored in the data unit x in the database, i.e.
Figure BDA00012556838500000620
At the same time, the server updates the count fields of all units i (x ≦ i ≦ q) after data unit x in the bloom filter, i.e., bi=bi+ 1; finally, the server updates the public key PK ═ as (PP, Y, C)C′,CR') and encodes the auxiliary information in the database S (H)0,CC,CRT) is updated to (T)x′,CC′,CR′,T)。
It is another object of the present invention to provide a dynamic database system that applies the reversible bloom filter with commitment.
The invention has the advantages and positive effects that: the reversible bloom filter with commitment and the incremental reversible bloom filter with commitment are provided, and the problem of reverse index of data in a limited range is solved; on the basis, a bloom filter and a commitment vector calculation method are combined, a VDB method supporting full update operation (insertion, replacement and deletion) is provided, the extra overhead of recalculation of public parameters and vector commitments caused by the fixed size of a database in the traditional verification system and method is avoided, the efficiency of the VDB system and method is improved, the dynamic change of the size of the VDB system is supported, and the VDB system is more suitable for most dynamic database systems used in the current network. Technical support is provided for safety verification of the dynamic cloud database, and integrity of the cloud database is guaranteed.
Drawings
Fig. 1 is a flowchart of a database verification method supporting a full update operation according to an embodiment of the present invention.
Fig. 2 is a schematic diagram of operations of inserting and deleting a CIBF according to an embodiment of the present invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the present invention more apparent, the present invention is further described in detail with reference to the following embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the invention and are not intended to limit the invention.
The following detailed description of the principles of the invention is provided in connection with the accompanying drawings.
As shown in fig. 1, the database verification method supporting full update operation according to the embodiment of the present invention includes the following steps:
s101: a configuration stage: initializing, by a client, a Verifiable Database (VDB): defining public parameters, calculating vector commitment, generating verification parameters, uploading relevant information and the database to a server together, and verifying the integrity of the database in the subsequent data query process of a user;
s102: and (3) an inquiry stage: the client submits a query request, the database locates the data queried by the client, calculates a verification credential according to the verification parameter, and then sends the data together to the client;
s103: a verification stage: the client verifies the server certificate and outputs the inquired data in a legal way; otherwise, outputting a verification error;
s104: and (3) an updating stage: when the client side carries out replacement, deletion and insertion operations (updating operations), the database at the server side is updated, and meanwhile, the client side is cooperated with the server to correct the verification parameters.
The application of the principles of the present invention will now be described in further detail with reference to the accompanying drawings.
In order to expand the database verification method with fixed size, the invention mainly comprises two parts, namely a reversible bloom filter with commitment firstly, and a database verification method supporting full operation secondly.
1. Reversible bloom filter with commitment
(1) Reversible bloom filter definition with commitment
The reversible bloom filter with Commitment (CIBF) is a data structure after expanding the bloom filter, and has both the functions of element query and vector commitment, and is used for querying elements in a large data set S in which insertion and deletion operations exist. The specific definition is as follows:
order to
Figure BDA0001255683850000081
Two random hash functions. Defining each CIBF Cell (Cell) B [ i ]](1. ltoreq. i. ltoreq. q) comprises three fields:
a "count" field (initial value 0): a counter field in which the number of all elements in the memory cell B [ i ] is 1. ltoreq. i.ltoreq.q. Note that the insertion (or deletion) of element x in B [ i ] is equal to B [ i ]. count plus 1 (or minus 1).
"idHash" field (with initial value χ (0)): the commitment value field, which stores the hash value χ (·) of all ordered elements in B [ i ].
B [ q +1]. count and B [ q +1]. idHash fields represent vector commitments of f (count) and idHash of the first q items of data of the database, respectively, i.e., B [ q +1]. count ═ VC (f (B [0]. count),..., f (B [ q ]. count)), B [ q +1]. idHash ═ VC (χ (B [0]. count),. χ (B [ q ]. count)), and.
An example of the insertion and deletion operations of a CIBF is shown in fig. 2.
Note that insert/delete is an ordered operation. The data records (x, y) and (y, x) in a CIBF unit (Cell) are different. Here, the record (x, y) indicates that y is inserted behind x. In addition, under this structure, it is allowed to constantly perform the same operation insertion operation (for example, insert x in the same unit a plurality of times). In contrast to the IBF model, when x is already an element in the set, no more insertion operations can be done. On the other hand, if we want to delete a record y from a CIBF unit, then y must be an element of this unit. Also for the IBF model, elements y that are not present in the set cannot be deleted.
When some update (delete/insert/replace) operations are performed on the database DB, the representation of the CIBF is in the form shown in table 1.
TABLE 1
Figure BDA0001255683850000091
Figure BDA0001255683850000092
Wherein, aiI is more than or equal to 0, and i is more than or equal to 1 and less than or equal to q represents the number of data records in a determination unit;
Figure BDA0001255683850000093
a vector of all (ordered) data records in the same unit i is represented.
(2) Incremental reversible bloom filter with commitment
The efficient and safe updating of the large database is realized under the support of the promised reversible bloom filter. In order to ensure correct indexing of data records in the verification process, an incremental reversible bloom filter with commitment (incremental CIBF) is designed, i.e. the count is an incremental sequence for B [ i ] in a unit. The specific extension is defined as follows:
for a generic CIBF data structure as shown in FIG. 2, definitions are provided
Figure BDA0001255683850000094
On this basis, the "count" field is defined as the increment sequence (b)1,b2,...,bq) As shown in table 2.
For the database described with the incremental reversible bloom filter with commitment, the indexing process of the data is as follows:
TABLE 2
Figure BDA0001255683850000101
Figure BDA0001255683850000102
1) Indexing for queries
Figure BDA0001255683850000103
The server firstly determines a unit index x, x is more than or equal to 1 and less than or equal to q
Figure BDA0001255683850000104
2) The server sends bx-1And bxAnd the corresponding authentication credential is handed to the client.
3) If the validation credentials are valid, the client may determine the index
Figure BDA00012556838500001013
Is the l-th element in the x-th unit, i.e.
Figure BDA0001255683850000105
Wherein
Figure BDA0001255683850000106
2. Database validation process supporting full update operations
The incremental CIBF structure enables efficient indexing of database data, however, directly updating the vector commitment on the counter field is very inefficient. If an insert operation is performed in element x, then for all x ≦ j ≦ q, its counter and hash value fields need to be updated. Wherein the counter field is bj←bj+1 update operation, while the hash value field needs to be executed by the client
Figure BDA0001255683850000107
The computational overhead of exponentiation of q-x +1 in (1).
Here, split hashing (Hash Splitting) is used to solve this problem. Here, the commit operation on the counter field (i.e., VC (f (b)) is ordered1),...,f(b2),...,f(bq) ))) is:
Figure BDA0001255683850000108
the commitment of the updated counter field is defined as:
Figure BDA0001255683850000109
so that there are
Figure BDA00012556838500001010
In this way, remove
Figure BDA00012556838500001011
Except for the multiplication of q-x +1, only the power of 1 operation is needed. In addition to this, in order to reduce client computing overhead,
Figure BDA00012556838500001012
the value of (c) may be calculated in advance as a common parameter. Therefore, the client can efficiently update the commitment value corresponding to the counter field.
Consider now the general case of updating the counter field. Note that the original counter field of the DB is (1, 1., 1), so the incremental bloom filter is denoted as (1, 2., q). Assume updated counter field (b)1,b2,...,bq) We can recursively calculate the commitment value
Figure BDA0001255683850000111
Thus, the client can be based on x, bx-x and corresponding information such as authentication credentials, etc. to calculate the counting section b of unit x to be updatedx
The database verification process supporting the full update operation includes the following 4 stages:
(1) a configuration stage: initialization Setup (1) of a Verifiable Database (VDB) by a clientkDB), defining common parameters PP, computing vector commitments CCAnd CRAnd generating verification parameters (a public key PK, a database code S and a private key SK), uploading the relevant information and the database to a server together, and verifying the integrity of the database in the subsequent data query process of the user. This stage is mainly performed by the client. Therein, the configuration function Setup (1)kDB) where k denotes the security parameter and DB denotes the database operated, i.e. DB ═ x, vx) And x is more than or equal to 1 and less than or equal to q. The specific configuration process is as follows:
1) defining common parameters PP
Order to
Figure BDA0001255683850000112
And
Figure BDA0001255683850000113
a cyclic multiplication set representing prime order p and having bilinear correspondence
Figure BDA0001255683850000114
g represents
Figure BDA0001255683850000115
The generating function of (a) is to be used,
Figure BDA0001255683850000116
representing a cryptographic hash function.
From prime space
Figure BDA0001255683850000117
Of q elements (i.e. database size)
Figure BDA0001255683850000118
And calculate
Figure BDA0001255683850000119
Figure BDA00012556838500001110
I is not less than 1, j is not less than q, and i is not equal to j.
Generating common parameters
Figure BDA00012556838500001111
Wherein the message space
Figure BDA00012556838500001112
2) Computing vector commitment CCGenerating subsequent verification parameters
Calculating a vector commitment for the count field (1, 2.., q) from the common parameter PP
Figure BDA00012556838500001113
And data recording (v)1,v2,...,vq) Vector commitment of
Figure BDA00012556838500001114
Client randomly selects 1 element
Figure BDA00012556838500001115
G is formedyThen calculate
Figure BDA00012556838500001116
And reacting H0And sending the data to a server side. Wherein T represents a counter and the initial value is 0.
If H is0Legally, the server will (H)0,CC,CRT) information is added to the auxiliary information aux.
After the calculation is completed, the following verification parameters are configured: let public key PK be (PP, Y, C)C,CR) The database code S ═ (PP, aux, DB), and the private key SK ═ y.
Thus, the database verification configuration is completed, and the client can verify the integrity of the database in the subsequent query process.
(2) And (3) an inquiry stage: client submitting query request
Figure BDA0001255683850000121
The database locates the data queried by the client, calculates the authentication credential according to the public parameter, and then sends the authentication credential together with the data to the client. Query operations
Figure BDA0001255683850000122
Where PK represents the public key, S represents the database code,
Figure BDA0001255683850000123
an index of data is queried on behalf of the client.
Assume that the number of current count fields is (b)1,b2,...,bq) Wherein
Figure BDA0001255683850000124
Definition of
Figure BDA0001255683850000125
Then there is
Figure BDA0001255683850000126
And is
Figure BDA0001255683850000127
Given a query index
Figure BDA0001255683850000128
The server firstly determines that x is more than or equal to 1 and less than or equal to q of the unit index and satisfies
Figure BDA0001255683850000129
(definition b)0=0)。
Then the server calculates
Figure BDA00012556838500001210
And
Figure BDA00012556838500001211
generating authentication credentials
Figure BDA00012556838500001212
The server returns the authentication credentials to the client along with the data.
(3) A verification stage: client-side authentication of server credentials
Figure BDA00012556838500001213
Verifying the legally output inquired data; otherwise, the verification error is output.
The client calculates e (H) according to the information in the server certificate0G) and
Figure BDA00012556838500001214
Figure BDA00012556838500001215
and
Figure BDA00012556838500001216
and e (pi)xG); and verifying whether the following three conditions are satisfied:
1)e(H0g) is equal to
Figure BDA00012556838500001217
2)
Figure BDA00012556838500001218
Is equal to
Figure BDA00012556838500001219
3)
Figure BDA00012556838500001220
Is equal to e (pi)x,g)。
When the three conditions are simultaneously met, the database is not tampered, and the verification is passed. Client-side basis
Figure BDA00012556838500001221
Obtaining data to be accessed
Figure BDA00012556838500001222
(4) And (3) an updating stage: when the client side carries out replacement, deletion and insertion operations (updating operations), the database at the server side is updated, and meanwhile, the client side is cooperated with the server to correct the verification parameters.
1) Replacement operation
To replace the index
Figure BDA0001255683850000131
The client first obtains the current record from the server
Figure BDA0001255683850000132
I.e. the client gets the certificate from the server and verifies it.
Then, T +1 is updated,
Figure BDA0001255683850000133
at the same time, the client calculates CC′=CC
Figure BDA0001255683850000134
And
Figure BDA0001255683850000135
the client side will
Figure BDA0001255683850000136
And sending the data to a server.
If tx' legal, server use
Figure BDA0001255683850000137
To replace the data stored in the data unit x in the database, i.e.
Figure BDA0001255683850000138
Meanwhile, the server updates the public key PK ═ (PP, Y, C)C′,CR') and encodes the auxiliary information in the database S (H)0,CC,CRT) is updated to (T)x′,CC′,CR′,T)。
At this point, the replacement operation data and the verification parameter update are complete and the new verification parameters will be used in subsequent data accesses.
2) Delete operation
The updating process of the deletion operation is basically consistent with the replacement operation, namely v in the replacement operationx' is the case.
3) Insertion operation
When the client is in data unit x
Figure BDA0001255683850000139
After which the data v is inserted*I.e. by
Figure BDA00012556838500001310
Then, updating T-T + 1; at the same time, the client calculates
Figure BDA00012556838500001311
And
Figure BDA00012556838500001312
the client side will
Figure BDA00012556838500001313
And sending the data to a server.
If tx' legal, server use
Figure BDA00012556838500001314
To replace the data stored in the data unit x in the database, i.e.
Figure BDA00012556838500001315
At the same time, the server updates the count fields of all units i (x ≦ i ≦ q) after data unit x in the bloom filter, i.e., bi=bi+1. Finally, the server updates the public key PK ═ as (PP, Y, C)C′,CR') and encodes the auxiliary information in the database S (H)0,CC,CRT) is updated to (T)x′,CC′,CR′,T)。
At this point, the insertion operation data and the verification parameter update are completed, and the new verification parameter will be used in the subsequent data access.
The above description is only for the purpose of illustrating the preferred embodiments of the present invention and is not to be construed as limiting the invention, and any modifications, equivalents and improvements made within the spirit and principle of the present invention are intended to be included within the scope of the present invention.

Claims (6)

1. An incremental reversible bloom filter with commitment, wherein the incremental reversible bloom filter with commitment extension is defined as follows:
let f, χ: {0,1}*→ZpTwo random hash functions; defining each reversible bloom filter with commitment, CIBF Unit B [ i ]]The method comprises the following steps: i is more than or equal to 1 and less than or equal to q;
a "count" field, with an initial value of 0: a counter field in which the number of all elements in the memory cell B [ i ] is 1. ltoreq. i.ltoreq.q; the insertion or deletion of element x in B [ i ] is equal to B [ i ] count plus 1 or minus 1;
an "idHash" field having an initial value χ (0): a commitment value field storing hash values χ (-) of all ordered elements in B [ i ];
defining B [ q +1]. count and B [ q +1]. idHash fields to represent the vector commitments of f (count) and idHash of the first q items of data of the database, respectively, i.e. B [ q +1]. count ═ VC (f (B [0]. count),..., f (B [ q ]. count)), B [ q +1]. idHash ═ VC (χ (B [0]. count),. χ (B [ q ]. count));
definition of
Figure FDA0002740877070000011
Defining the "count" field as an incrementing sequence (b)1,b2,...,bq) (ii) a The database indexing process is as follows:
Figure FDA0002740877070000012
1) indexing for queries
Figure FDA0002740877070000013
The server firstly determines a unit index x, x is more than or equal to 1 and less than or equal to q
Figure FDA0002740877070000014
2) The server sends bx-1And bxThe information and the corresponding authentication credential are handed to the client;
3) if the validation credentials are valid, the client may determine the index
Figure FDA0002740877070000015
Is the l-th element in the x-th unit, i.e.
Figure FDA0002740877070000016
Wherein
Figure FDA0002740877070000017
2. A database validation method using the incremental reversible bloom filter with commitment as defined in claim 1, the database validation method comprising:
(1) a configuration stage: initialization Setup (1) of verifiable databases by clientskDB), defining common parameters PP, computing vector commitments CCGenerating a verification parameter public key PK, a database code S and a private key SK, uploading relevant information together with the database to a server for verifying the integrity of the database in the subsequent data query process of a user; configuration function Setup (1)kDB) where k denotes the security parameter and DB denotes the database operated, i.e. DB ═ x, vx) X is more than or equal to 1 and less than or equal to q; the specific configuration process of (1) is as follows:
1) defining common parameters PP
Let G1And G2The cyclic multiplication group representing prime order p has bilinear correspondence e: G1×G1→G2(ii) a G represents G1G of1×G1×{{0,1}*→G1Representing a cryptographic hash function;
from prime space ZpIn the random selection of q elements ziRZpAnd calculate
Figure FDA0002740877070000021
Figure FDA0002740877070000022
And i is not equal to j;
generating a common parameter PP ═ p, q, G1,G2,H,e,g,{hi}1≤i≤q,{hi,j}1≤i,j≤q,i≠j) Wherein the message space M ═ Zp
2) Computing vector commitment CCGenerate, generateSubsequent verification parameters
Calculating a vector commitment for the count field (1, 2.., q) from the common parameter PP
Figure FDA0002740877070000023
And data recording (v)1,v2,...,vq) Vector commitment of
Figure FDA0002740877070000024
The client randomly selects 1 element y belonging to the ERZpGenerating Y ═ gyThen calculate H0=H(CC,CR,T)yAnd is combined with H0Sending the data to a server; wherein T represents a counter and the initial value is 0;
if H is0Legally, the server will (H)0,CC,CRT) information is added to the auxiliary information aux;
after the calculation is completed, the following verification parameters are configured: public key PK ═ (PP, Y, C)C,CR) The database code S ═ (PP, aux, DB), and the private key SK ═ y;
y∈RZpis e ofRFor symbols common to cryptography, the representation is from the set ZpRandomly selecting an element y; parameter hi,hi,j
Figure FDA0002740877070000025
G, Y are both bilinear pairs G1The calculation result after the operation of the generating function g is jointly used for representing the public parameter PP; wherein
Figure FDA0002740877070000026
Figure FDA0002740877070000027
And
Figure FDA0002740877070000028
to generate a power operation of the function g; g is a bilinear pairMiddle G1A generating function of (a); g represents Yy
(2) And (3) an inquiry stage: client submitting query request
Figure FDA0002740877070000031
The database locates the data inquired by the client, calculates the verification credential according to the verification parameters and then sends the data together to the client; query operations
Figure FDA0002740877070000032
Where PK represents the public key, S represents the database code,
Figure FDA0002740877070000033
querying an index of data on behalf of a client;
the specific process of (2) is as follows:
the number of the current counting field is (b)1,b2,...,bq) Wherein
Figure FDA0002740877070000034
Definition of
Figure FDA0002740877070000035
Then there is
Figure FDA0002740877070000036
And is
Figure FDA0002740877070000037
Given a query index
Figure FDA0002740877070000038
The server firstly determines that x is more than or equal to 1 and less than or equal to q of the unit index and satisfies
Figure FDA0002740877070000039
Definition b0=0;
Then the server calculates
Figure FDA00027408770700000310
And
Figure FDA00027408770700000311
generating authentication credentials
Figure FDA00027408770700000312
The server returns the verification certificate and the data to the client together;
(3) a verification stage: client-side authentication of server credentials
Figure FDA00027408770700000313
Verifying the legally output inquired data; otherwise, outputting a verification error; the parameter t represents an authentication credential, wherein
Figure FDA00027408770700000314
(4) And (3) an updating stage: when the client side is subjected to replacement, deletion and insertion operations, the database at the server side is updated, and meanwhile, the client side is cooperated with the server to correct verification parameters;
the replacing operation in (4) comprises:
the client first obtains the current record from the server
Figure FDA00027408770700000319
The client obtains the certificate t from the server and verifies the certificate t;
then, T +1 is updated,
Figure FDA00027408770700000315
at the same time, the client calculates CC′=CC
Figure FDA00027408770700000316
And tx′=H(CC′,CR′,T)y(ii) a CustomerEnd will
Figure FDA00027408770700000317
Sending the data to a server; v. ofxIs an original record in a data unit x
Figure FDA00027408770700000318
Replaced data record, x represents index in database DB, vxRepresenting the data record corresponding to the index;
if tx' legal, server use
Figure FDA0002740877070000041
To replace the data stored in the data unit x in the database, i.e.
Figure FDA0002740877070000042
Meanwhile, the server updates the public key PK ═ (PP, Y, C)C′,CR') and encodes the auxiliary information in the database S (H)0,CC,CRT) is updated to (T)x′,CC′,CR′,T)。
3. The database verification method according to claim 2, wherein the specific process of (3) is as follows: the client respectively calculates e (H) according to the information in the server certificate t0G) and e (H (C)C,CR,T),Y),
Figure FDA0002740877070000043
And
Figure FDA0002740877070000044
and e (pi)xG); and verifying whether the following three conditions are satisfied:
1)e(H0g) is equal to e (H (C)C,CR,T),Y);
2)
Figure FDA0002740877070000045
Is equal to
Figure FDA0002740877070000046
3)
Figure FDA0002740877070000047
Is equal to e (pi)x,g);
When the three conditions are simultaneously met, the database is not tampered, and the verification is passed; client-side basis
Figure FDA0002740877070000048
Obtaining data to be accessed
Figure FDA0002740877070000049
e denotes a bilinear correspondence e: G1×G1→G2
4. The database verification method according to claim 2, wherein the update procedure of the delete operation in (4) is v in replace operationx' is the case.
5. The database verification method of claim 2, wherein the insert operation of (4) comprises:
when the client is in data unit x
Figure FDA00027408770700000415
After which the data v is inserted*I.e. by
Figure FDA00027408770700000410
Then, updating T-T + 1; at the same time, the client calculates
Figure FDA00027408770700000411
And tx′=H(CC′,CR′,T)y(ii) a The client side will
Figure FDA00027408770700000412
Sending the data to a server;
if tx' legal, server use
Figure FDA00027408770700000413
To replace the data stored in the data unit x in the database, i.e.
Figure FDA00027408770700000414
Meanwhile, the server updates the counting fields of all units i behind the data unit x in the bloom filter, wherein x is more than or equal to i and less than or equal to q, namely bi=bi+ 1; finally, the server updates the public key PK ═ as (PP, Y, C)C′,CR') and encodes the auxiliary information in the database S (H)0,CC,CRT) is updated to (T)x′,CC′,CR′,T);
x denotes an index in the database DB, vxIndicating the data record to which the index corresponds,
Figure FDA0002740877070000051
an index representing the location of the inserted location in the database,
Figure FDA0002740877070000052
representation index
Figure FDA0002740877070000053
Corresponding data record, v*Indicating that the new data is being inserted and,
Figure FDA0002740877070000054
indicating the recording state of the data unit x after new data is inserted;
t represents a counter and has an initial value of 0, CC' vector commitment representing updated count field, the calculation formula of which is derived as
Figure FDA0002740877070000055
CRVector commitment for original data record, CRFor a new vector commitment after insertion of an update data record, the calculation formula is
Figure FDA0002740877070000056
Figure FDA0002740877070000057
Representing data records
Figure FDA0002740877070000058
The hash value of (a);
H:G1×G1×{{0,1}*→G1representing a cryptographic hash function, formula tx′=H(CC′,CR′,T)yRepresents a pair CC′、CR' and T carries out exponentiation operation on the value after encryption and hashing, and T is obtained through calculationx' value; t is tx' for authentication;
Figure FDA0002740877070000059
indicating that the data stored in the x cells after replacement in the database is
Figure FDA00027408770700000510
biRepresents an incremented count value of the ith data unit,
Figure FDA00027408770700000511
i.e. the sum of the first i cell counts; after adding 1 strip to the data record, inserting all the increment count values b after the positioniPlus 1, i.e. bi=bi+1;
Public key PK ═ (PP, Y, C)C′,CR') where PP denotes the common parameter, Y denotes the parameter generated by g, CC' vector commitment to represent updated count field, CR' update data for insertedA new vector commitment after logging;
(H0,CC,CRt) is auxiliary information for subsequent verification and updating, where H0=H(CC,CR,T)yIndicating that the exponent operation is performed after the vector commitment of the initial count field, the vector commitment of the data record and the counter value are encrypted and hashed, and the calculated value is taken as H0A value;
(tx′,CC′,CR', T) represents updated auxiliary information for subsequent verification and update use, where Tx′、CC′、CRThe meaning of' and T is consistent with the above explanation.
6. A dynamic database system applying the incremental reversible bloom filter with commitment of claim 1.
CN201710190195.4A 2017-03-27 2017-03-27 Database verification system and method supporting full-update operation Active CN106991148B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710190195.4A CN106991148B (en) 2017-03-27 2017-03-27 Database verification system and method supporting full-update operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710190195.4A CN106991148B (en) 2017-03-27 2017-03-27 Database verification system and method supporting full-update operation

Publications (2)

Publication Number Publication Date
CN106991148A CN106991148A (en) 2017-07-28
CN106991148B true CN106991148B (en) 2020-11-27

Family

ID=59412942

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710190195.4A Active CN106991148B (en) 2017-03-27 2017-03-27 Database verification system and method supporting full-update operation

Country Status (1)

Country Link
CN (1) CN106991148B (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111919416B (en) * 2018-04-09 2021-11-19 华为技术有限公司 Method and system for zero knowledge range attestation with reversible commitments
CN108737069A (en) * 2018-04-18 2018-11-02 西安电子科技大学 A kind of detection method for supporting error logging positioning to can verify that database
CN108874604B (en) * 2018-06-28 2021-07-06 郑州云海信息技术有限公司 Method and system for verifying authenticity of encrypted data of encryption equipment
CN108959035A (en) * 2018-07-10 2018-12-07 佛山伊苏巨森科技有限公司 A kind of method of entry validity in test block chain database data structure
CN114881233B (en) * 2022-04-20 2023-03-24 深圳市魔数智擎人工智能有限公司 Distributed model reasoning service method based on container
CN117134993B (en) * 2023-10-24 2024-01-05 武汉大学 Search ciphertext detectable method and equipment based on accumulated promise verification

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8032529B2 (en) * 2007-04-12 2011-10-04 Cisco Technology, Inc. Enhanced bloom filters
CN103095453A (en) * 2011-07-08 2013-05-08 Sap股份公司 Public-key Encrypted Bloom Filters With Applications To Private Set Intersection
CN105681280A (en) * 2015-12-29 2016-06-15 西安电子科技大学 Searchable encryption method based on Chinese in cloud environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8032529B2 (en) * 2007-04-12 2011-10-04 Cisco Technology, Inc. Enhanced bloom filters
CN103095453A (en) * 2011-07-08 2013-05-08 Sap股份公司 Public-key Encrypted Bloom Filters With Applications To Private Set Intersection
CN105681280A (en) * 2015-12-29 2016-06-15 西安电子科技大学 Searchable encryption method based on Chinese in cloud environment

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Publicly verifiable databases with efficient insertion/deletion operations;MeixiaMiao 等;《Journal of Computer and System Sciences》;20160919;全文 *
Verifiable Search for Dynamic Outsourced Database in Cloud Computing;Jianfeng Wang 等;《10th International Conference on Broadband and Wireless Computing, Communication and Applications》;20151231;全文 *

Also Published As

Publication number Publication date
CN106991148A (en) 2017-07-28

Similar Documents

Publication Publication Date Title
CN106991148B (en) Database verification system and method supporting full-update operation
US11228452B2 (en) Distributed certificate authority
Garg et al. An efficient data integrity auditing protocol for cloud computing
Chen et al. Verifiable computation over large database with incremental updates
Li et al. Privacy-preserving public auditing protocol for low-performance end devices in cloud
CN110912706B (en) Identity-based dynamic data integrity auditing method
Chen et al. New publicly verifiable databases with efficient updates
Wang et al. Enabling public auditability and data dynamics for storage security in cloud computing
Papamanthou et al. Authenticated hash tables
Li et al. OPoR: Enabling proof of retrievability in cloud computing with resource-constrained devices
Wang et al. Enabling public verifiability and data dynamics for storage security in cloud computing
CN106897368B (en) Merkle Hash summation tree and verifiable database updating operation method thereof
Anagnostopoulos et al. Persistent authenticated dictionaries and their applications
CN109525403B (en) Anti-leakage public cloud auditing method supporting full-dynamic parallel operation of user
Li et al. Integrity-verifiable conjunctive keyword searchable encryption in cloud storage
Chen et al. Publicly verifiable databases with all efficient updating operations
Rabaninejad et al. An identity-based online/offline secure cloud storage auditing scheme
Zhao et al. Distributed machine learning oriented data integrity verification scheme in cloud computing environment
Yang et al. Efficient data integrity auditing supporting provable data update for secure cloud storage
Miao et al. Verifiable database supporting keyword searches with forward security
Mishra et al. Dynamic large branching hash tree based secure and efficient dynamic auditing protocol for cloud environment
Gudeme et al. Review of remote data integrity auditing schemes in cloud computing: taxonomy, analysis, and open issues
Luo et al. MHB* T based dynamic data integrity auditing in cloud storage
CN113448515A (en) Verifiable deletion method supporting outsourcing data fine-grained insertion in cloud storage
Ma et al. Authenticating query results in data publishing

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant