WO2018232554A1 - Pattern string matching verification method, device, device and storage medium - Google Patents
Pattern string matching verification method, device, device and storage medium Download PDFInfo
- Publication number
- WO2018232554A1 WO2018232554A1 PCT/CN2017/088959 CN2017088959W WO2018232554A1 WO 2018232554 A1 WO2018232554 A1 WO 2018232554A1 CN 2017088959 W CN2017088959 W CN 2017088959W WO 2018232554 A1 WO2018232554 A1 WO 2018232554A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- text
- string
- suffix
- verification
- text string
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
Definitions
- the invention belongs to the technical field of computers, and in particular relates to a method, device, device and storage medium for pattern string matching verification.
- Pattern string matching means that the specified short string is found in a long string and can be widely used in practical applications such as intrusion detection, firewall filtering, database query and biometric calculation.
- practical applications due to the limited local computing resources and the rapid development of cloud computing, enterprises or individuals usually choose to outsource pattern string matching to cloud computing to save manpower and resources.
- the method of outsourcing pattern string matching to cloud computing faces the problem of result authenticity and data update.
- the user cannot determine whether the matching result returned by the cloud server is true, when the cloud server is required to be updated.
- the cloud server is required to be updated.
- the user cannot determine if the cloud server has updated its own data.
- the current solution is mainly that the cloud server generates verification evidence for verifying the authenticity of the matching result while calculating the matching result, and the user can use the pattern string and the evidence to verify whether the result returned by the cloud server is correct, that is, whether it is true.
- the existing solutions of this type have low verification efficiency and lack of dynamic update functions.
- the suffix tree scheme does not support efficient data update functions, and the verification result of matching results is not high.
- Papadopoulos et al.'s verifiable pattern string matching SuffixTree scheme has excellent search performance and evidence communication overhead, supports public verification, but does not support efficient data dynamic update, and only adopts data segmentation processing to reduce data update band.
- the refactoring cost comes from, and at the same time, the device side of the user needs to store a large amount of public key data during verification, and the verification efficiency is not high.
- the object of the present invention is to provide a mode string matching verification method, device, device and storage medium, which aims to solve the problem that the effective verification of the mode string matching verification is not efficient because the prior art cannot provide an effective mode string matching verification method. And the problem of dynamic update of data is not possible.
- the present invention provides a mode string matching verification method, the method comprising the following steps:
- the cloud server When the cloud server receives the pattern string matching verification request of the data access end, the cloud server acquires the to-be-matched pattern string sent by the data access end, and matches the to-be-matched pattern string with the pre-stored text string according to the pre-stored suffix array. Matching result
- the cloud server searches for the verification evidence corresponding to the matching result according to the text string, the suffix array, and the pre-stored random number set of the text string, the text proof set, and the suffix proof set, and the matching result and the verification result.
- Evidence is sent to the data access end;
- the data access end verifies the matching result according to the verification evidence, the text accumulated value and the suffix accumulated value of the text string stored in advance, and a pre-stored public key, and generates and outputs a verification result
- the text proof set, the suffix proof set, the text accumulating value and the suffix accumulating value of the text string constitute a dynamic verifiable data structure obtained by the data possessor preprocessing the text string.
- the present invention provides a mode string matching verification apparatus, the apparatus comprising:
- the mode string matching unit is configured to: when the cloud server receives the mode string matching verification request of the data access end, acquire the to-be-matched mode string sent by the data access end, and store the to-be-matched mode string and the pre-storage according to the pre-stored suffix array The text string is matched to obtain a matching result;
- An evidence search unit configured to search, according to the text string, the suffix array, the pre-stored random number set of the text string, the text proof set, and the suffix proof set, the verification evidence corresponding to the matching result, The matching result and verification evidence are sent to the data access end;
- a matching verification unit configured to: verify, according to the verification evidence, a text accumulated value and a suffix accumulated value of the text string stored in advance, and a pre-stored public key, verify the matching result, generate and Outputting a verification result, a text proof set of the text string, a suffix proof set,
- the text accumulated value and the suffix accumulated value constitute a dynamic verifiable data structure obtained by the data owner preprocessing the text string.
- the present invention also provides a mode string matching verification device comprising a memory, a processor, and a computer program stored in the memory and operable on the processor, the processor executing the computer
- the program implements the steps as described in one of the pattern string matching verification methods described above.
- the present invention provides a computer readable storage medium storing a computer program, the computer program being executed by a processor to implement the mode string matching verification method as described above A step of.
- the cloud server when the cloud server receives the pattern string matching verification request of the data access end, acquires the to-be-matched pattern string sent by the data access end, and matches the pattern string to be matched with the pre-stored text string according to the pre-stored suffix array.
- the data access end verifies the matching result according to the verification evidence, the text accumulated value of the pre-stored text string and the accumulated value of the suffix, and the pre-stored public key, and generates and outputs the verification result, wherein the text of the text string
- the verification set, the suffix proof set, the text accumulating value and the suffix accumulating value constitute a dynamic verifiable data structure obtained by preprocessing the text string by the data possession end, thereby effectively improving the search index data structure by using the suffix array as the pattern string matching.
- FIG. 1 is a flowchart of an implementation of a mode string matching verification method according to Embodiment 1 of the present invention
- FIG. 2 is a diagram showing an example of a suffix array generation process in a pattern string matching verification method according to Embodiment 1 of the present invention
- FIG. 3 is a schematic structural diagram of a mode string matching verification apparatus according to Embodiment 2 of the present invention.
- FIG. 4 is a schematic diagram of a preferred structure of a mode string matching verification apparatus according to Embodiment 2 of the present invention.
- FIG. 5 is a schematic structural diagram of a mode string matching apparatus according to Embodiment 3 of the present invention.
- Embodiment 1 is a diagrammatic representation of Embodiment 1:
- FIG. 1 is a flowchart showing an implementation process of a mode string matching verification method according to Embodiment 1 of the present invention. For convenience of description, only parts related to the embodiment of the present invention are shown, which are as follows:
- step S101 when the cloud server receives the mode string matching verification request of the data access end, the cloud server acquires the to-be-matched pattern string sent by the data access end, and matches the to-be-matched pattern string with the pre-stored text string according to the pre-stored suffix array. Get the match.
- the mode string matching verification may include three execution entities: a cloud server, a data access end, and a data possession end, wherein the data access end may be the user's end, and the user hands over the pattern string matching work to the cloud.
- the data owner can be a third-party server trusted by the user.
- the data access end may send the mode string matching verification request and the to-be-matched mode string to the cloud server.
- the cloud server obtains the to-be-matched pattern string when receiving the pattern string matching verification request, and matches the to-be-matched pattern string with the pre-stored text string in the cloud server according to the suffix array.
- the suffix array is used to store the position of the start character of all suffixes in the text string in the text string.
- the position is referred to as the position of the suffix in the text string, for example, as shown in FIG. 2, when the text string is At the same time, all suffixes SFi of the text string are obtained, all suffixes are sorted in order of character size, and the starting suffixes of the sorted suffixes in the text string are stored in the suffix array SA[i].
- the substring is obtained from the corresponding position of the text string according to the suffix array to match the pattern string to be matched, thereby improving the efficiency of pattern string matching in the cloud server.
- the data owner needs to perform data processing, and the processed data is separately sent to the cloud server and the data access end to improve the efficiency of the matching verification.
- the step of data processing by the data owner may include:
- the data owner may first generate a public-private key pair according to the preset security parameters, and publicize the public key in the public-private key pair.
- the data owner generates a suffix array and a random number set of the text string according to the text string.
- the process of generating the suffix array of the text string by the data owner may be as shown in FIG. 2 .
- the data owner generates a dynamic verifiable data structure according to the text string, the suffix array, the random number set of the text string, the random number set of the suffix array, and the public key.
- the text proof set, the suffix proof set, the text accumulated value and the suffix accumulated value of the text string constitute a dynamic verifiable data structure, so as to implement dynamic update of data in the pattern string matching query through the dynamically verifiable data structure.
- the data owner sends the text string, the suffix array, and the random number set of the text string, the text proof set, and the suffix proof set to the cloud server, and sends the text accumulated value and the suffix accumulated value of the text string to the data access end, and the data possession end Retains the text string, the suffix array, and the random number set of the text string, the text accumulated value, and the suffix accumulated value.
- step S102 the cloud server searches for the verification evidence corresponding to the matching result according to the text string, the suffix array, the pre-stored random number set of the text string, the text proof set, and the suffix proof set, and sends the matching result and the verification evidence to the data access. end.
- the verification evidence can be used by the data access end to verify whether the matching result of the cloud server is correct.
- T[i]T[i+1]...T[i+m-1] T is a text string, and m is the length of the pattern string to be matched.
- the first suffix and the second suffix satisfying the preset condition may be obtained according to the suffix array, and the preset condition may be SF SA[j] ⁇ P ⁇ SF SA[j+ 1] , SF SA[j] is the first suffix, and SF SA[j+1] is the second suffix. Therefore, it is necessary to find evidence for verifying that the first suffix is smaller than the to-be-matched mode string, the second suffix is greater than the to-be-matched mode string, and the first suffix is adjacent to the second suffix.
- step S103 the data access terminal verifies the matching result according to the verification evidence, the text accumulated value of the pre-stored text string and the suffix accumulated value, and the pre-stored public key, and generates and outputs the verification result.
- the matching result when the matching result is a matching failure, it may first determine whether the character c 1 in the verification evidence of the first matching failure is less than P[m 1 +1], and P[m 2 + 1) Whether it is smaller than the character c 2 , verify whether the first suffix is smaller than the pattern string to be matched, and whether the pattern string to be matched is smaller than the second suffix, and then verify whether the first suffix and the second suffix are correct.
- the suffix tuple is generated.
- the verification process of the pattern string matching result the power operation of the large integer is used, which reduces the calculation amount of the matching process, and only needs to store the fixed-size public key and combine the mode.
- the string, the random number set, and the proof set can be verified, simplifying the verification step of the data access end.
- the data possession end receives the data update instruction (including the insertion, deletion, and/or replacement update instruction) of the data access end, respectively, according to the character string to be inserted, the character string to be deleted in the text string, and/or Or the string to be replaced, and the public key, the text string of the data owner, the suffix array, and the random number set of the text string, the text accumulated value, the suffix accumulated value are updated, and the auxiliary information for the cloud server update is generated. .
- the data owner sends the text accumulation value and the suffix accumulated value of the updated text string to the data access terminal, and sends the auxiliary information to the cloud server, thereby realizing dynamic update of the data of the data owner and the data.
- the computational overhead of owning end-of-data updates is small.
- the insertion position in the text string, the length of the string to be inserted, and the character string to be inserted are obtained, and the following operations are performed:
- the cloud server when the cloud server receives the data update instruction, according to the character string to be inserted, the character string to be deleted in the text string, and/or the character string to be replaced, and the public key and the auxiliary information, the cloud server is pre- The stored text string, the suffix array, and the random number set of the text string, the text proof set, and the suffix proof set are updated to implement dynamic update of the cloud server data.
- the cloud server when the cloud server receives the data insertion instruction, it acquires the insertion position in the text string, the length of the character string to be inserted, and the character string to be inserted, and performs the following operations:
- the cloud server, the data access end, and the data Owner cooperate to complete the matching verification of the pattern string, and the suffix array is used as the index of the cloud server matching process in the matching verification process, thereby improving the efficiency of the pattern string matching.
- the textual proof set and the suffix proof set in the dynamic verifiable data structure complete the verification of the evidence, and the verification result is completed by the text accumulating value and the suffix accumulating value in the dynamically verifiable data structure, and the data access end stores the fixed size.
- the public key makes the verification more concise.
- the dynamic verifiable structure generated by the data owner realizes the dynamic update of data on the data owner and the cloud server, and effectively reduces the calculation overhead of the data owner and the communication overhead between the data owner and the cloud server in the update process.
- Embodiment 2 is a diagrammatic representation of Embodiment 1:
- FIG. 3 is a diagram showing the structure of a mode string matching verification apparatus according to Embodiment 2 of the present invention. For the convenience of description, only parts related to the embodiment of the present invention are shown, including:
- the mode string matching unit 31 is configured to: when the cloud server receives the mode string matching verification request of the data access end, obtain the to-be-matched mode string sent by the data access end, and wait for the suffix array according to the pre-stored The matching pattern string is matched with the pre-stored text string to obtain a matching result.
- the cloud server when the cloud server receives the pattern string matching verification request, acquires the to-be-matched pattern string, and matches the to-be-matched pattern string with the pre-stored text string in the cloud server according to the suffix array.
- the substring is obtained from the corresponding position of the text string according to the suffix array to match the pattern string to be matched, thereby improving the efficiency of pattern string matching in the cloud server.
- the evidence searching unit 32 is configured to: the cloud server searches for the verification evidence corresponding to the matching result according to the text string, the suffix array, the random number set of the pre-stored text string, the text proof set, and the suffix proof set, and sends the matching result and the verification evidence to the verification evidence. Data access side.
- the cloud server may obtain, from the suffix array, a position where the matching pattern string matches successfully in the text string, and according to the position, the text string can be matched with the to-be-matched pattern string.
- the successful substring P T[i]T[i+1]...T[i+m-1], T is a text string, and m is the length of the pattern string to be matched.
- the first suffix and the second suffix satisfying the preset condition may be obtained according to the suffix array, and the preset condition may be SF SA[j] ⁇ P ⁇ SF SA[j+ 1] , SF SA[j] is the first suffix, and SF SA[j+1] is the second suffix. Therefore, it is necessary to find evidence for verifying that the first suffix is smaller than the to-be-matched mode string, the second suffix is greater than the to-be-matched mode string, and the first suffix is adjacent to the second suffix.
- the matching verification unit 33 is configured to verify, by the data access terminal, the verification result according to the verification evidence, the text accumulated value and the suffix accumulated value of the pre-stored text string, and the pre-stored public key, and generate and output the verification result.
- the matching result when the matching result is a matching failure, it may first determine whether the character c 1 in the verification evidence of the first matching failure is less than P[m 1 +1], and P[m 2 + 1] Whether it is smaller than the character c 2 , whether the first suffix is smaller than the pattern string to be matched, and whether the pattern string to be matched is smaller than the second suffix. Then verify whether the first suffix and the second suffix are correct.
- the suffix tuple is generated.
- the verification process of the pattern string matching result the power operation of the large integer is used, which reduces the calculation amount of the matching process, and only needs to store the fixed-size public key, and combines the pattern string, the random number set, and the proof set. Verification simplifies the verification steps for the data access side.
- the pattern string matching verification apparatus further includes a key generation unit 41, a verifiable data generation unit 42, and a data transmission unit 43, wherein:
- the key generation unit 41 is configured to generate a public and private key password according to the preset security parameter by the data owner. Yes, publicize the public key of the public-private key pair;
- the verifiable data generating unit 42 is configured to generate a suffix array according to the text string, bind a random number to each character of the text string, generate a random number set of the text string, according to the text string, the random number set of the text string, the suffix array, a set of random numbers and a public key of the suffix array to generate a dynamically verifiable data structure;
- the data sending unit 43 is configured to send the text string, the suffix array, and the random number set of the text string, the text proof set, and the suffix proof set to the cloud server, and send the text accumulated value and the suffix accumulated value of the text string to the data possession end. Data access side.
- the data possession end needs to perform data processing, and the processed data is separately sent to the cloud server and the data access end to improve the efficiency of the matching verification.
- the step of performing data processing on the data end may include:
- the data owner may first generate a public-private key pair according to the preset security parameters, and publicize the public key in the public-private key pair.
- the data owner generates a suffix array and a random number set of the text string according to the text string.
- the process of generating the suffix array of the text string by the data owner may be as shown in FIG. 2 .
- the data owner generates a dynamic verifiable data structure according to the text string, the suffix array, the random number set of the text string, the random number set of the suffix array, and the public key.
- the text proof set, the suffix proof set, the text accumulated value and the suffix accumulated value of the text string constitute a dynamic verifiable data structure, so as to implement dynamic update of data in the pattern string matching query through the dynamically verifiable data structure.
- the data owner sends the text string, the suffix array, and the random number set of the text string, the text proof set, and the suffix proof set to the cloud server, and sends the text accumulated value and the suffix accumulated value of the text string to the data access end, and the data possession end Retains the text string, the suffix array, and the random number set of the text string, the text accumulated value, and the suffix accumulated value.
- the mode string matching verification apparatus further includes a data side updating unit 47, an update data transmitting unit 48, and a cloud updating unit 49, wherein:
- the data end updating unit 47 is configured to: when the data owner receives the update instruction for inserting, deleting, and/or replacing, according to the character string to be inserted, the character string to be deleted in the text string, and/or the replacement a string, and a public key, updating the text string, the suffix array, and the random number set of the text string, the text accumulated value, and the suffix accumulated value, and generating auxiliary information for the cloud server update;
- the update data sending unit 48 is configured to send, by the data owner, the text accumulated value and the suffix accumulated value of the updated text string to the data access end, and send the auxiliary information to the cloud server;
- the cloud update unit 49 is configured to: when the cloud server receives the update instruction for inserting, deleting, and/or replacing, according to the character string to be inserted, the character string to be deleted in the text string, and/or the character string to be replaced, And public key and auxiliary information, pre-stored text strings, suffix arrays, texts in the cloud server The string's random number set, text proof set, and suffix proof set are updated.
- the insertion position in the text string, the length of the string to be inserted, and the character string to be inserted are obtained, and the following operations are performed:
- the cloud server when the cloud server receives the data update instruction, according to the character string to be inserted, the character string to be deleted in the text string, and/or the character string to be replaced, and the public key and the auxiliary information, the cloud server
- the pre-stored text string, the suffix array, and the random number set of the text string, the text proof set, and the suffix proof set are updated to implement dynamic update of the cloud server data.
- the cloud server when the cloud server receives the data insertion instruction, it acquires the insertion position in the text string, the length of the character string to be inserted, and the character string to be inserted, and performs the following operations:
- the cloud server, the data access end, and the data Owner cooperate to complete the matching verification of the pattern string, and the suffix array is used as the index of the cloud server matching process in the matching verification process, thereby improving the efficiency of the pattern string matching.
- the textual proof set and the suffix proof set in the dynamic verifiable data structure complete the verification of the evidence, and the verification result is completed by the text accumulating value and the suffix accumulating value in the dynamically verifiable data structure, and the data access end stores the fixed size.
- the public key makes the verification more concise.
- the dynamic verifiable structure generated by the data owner realizes the dynamic update of data on the data owner and the cloud server, and effectively reduces the calculation overhead of the data owner and the communication overhead between the data owner and the cloud server in the update process.
- each unit of the pattern string matching verification apparatus may be implemented by a corresponding hardware or software unit, and each unit may be an independent software and hardware unit, or may be integrated into one soft and hardware unit, and is not limited thereto. this invention.
- Embodiment 3 is a diagrammatic representation of Embodiment 3
- FIG. 3 shows the structure of a mode string matching verification apparatus according to Embodiment 3 of the present invention. For the convenience of description, only parts related to the embodiment of the present invention are shown.
- the pattern string matching verification apparatus 5 of the embodiment of the present invention includes a processor 50, a memory 51, and a computer program 52 stored in the memory 51 and operable on the processor 50.
- the processor 50 when executing the computer program 52, implements the steps in the above-described method embodiments, such as steps S101 through S103 shown in FIG.
- processor 50 when executing computer program 52, implements the functions of the various units of the apparatus embodiments described above, such as the functions of units 31 through 33 shown in FIG.
- the cloud server, the data access end, and the data Owner cooperate to complete the matching verification of the pattern string, and the suffix array is used as the index of the cloud server matching process in the matching verification process.
- the efficiency of the pattern string matching is improved, the verification evidence is searched through the text proof set and the suffix proof set in the dynamic verifiable data structure, and the matching result is verified by the text accumulating value and the suffix accumulating value in the dynamically verifiable data structure.
- the data access side stores a fixed-size public key, making verification more concise.
- the dynamic verifiable structure generated by the data owner realizes the dynamic update of data on the data owner and the cloud server, and effectively reduces the calculation overhead of the data owner and the communication overhead between the data owner and the cloud server in the update process.
- Embodiment 4 is a diagrammatic representation of Embodiment 4:
- a computer readable storage medium storing a computer program, which when executed by a processor, implements the steps in the foregoing method embodiments, for example, FIG. Steps S101 to S103 are shown.
- the computer program when executed by the processor, implements the functions of the various units of the apparatus embodiments described above, such as the functions of units 31 through 33 shown in FIG.
- the cloud server, the data access end, and the data Owner cooperate to complete the matching verification of the pattern string, and the suffix array is used as the index of the cloud server matching process in the matching verification process, thereby improving the efficiency of the pattern string matching.
- the textual proof set and the suffix proof set in the dynamic verifiable data structure complete the verification of the evidence, and the verification result is completed by the text accumulating value and the suffix accumulating value in the dynamically verifiable data structure, and the data access end stores the fixed size.
- the public key makes the verification more concise.
- the dynamic verifiable structure generated by the data owner realizes the dynamic update of data on the data owner and the cloud server, and effectively reduces the calculation overhead of the data owner and the communication overhead between the data owner and the cloud server in the update process.
- the computer readable storage medium of the embodiments of the present invention may include any entity or device capable of carrying computer program code, a recording medium such as a ROM/RAM, a magnetic disk, an optical disk, a flash memory, or the like.
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本发明属于计算机技术领域,尤其涉及一种模式串匹配验证方法、装置、设备及存储介质。The invention belongs to the technical field of computers, and in particular relates to a method, device, device and storage medium for pattern string matching verification.
模式串匹配即搜索指定的短字符串是否出现在长字符串中,可广泛应用于实际应用(如入侵检测、防火墙过滤、数据库查询和生物计算)中。在实际应用中,由于本地计算资源有限以及云计算的快速发展,企业或个人通常选择将模式串匹配外包给云计算,以节省人力物力。Pattern string matching means that the specified short string is found in a long string and can be widely used in practical applications such as intrusion detection, firewall filtering, database query and biometric calculation. In practical applications, due to the limited local computing resources and the rapid development of cloud computing, enterprises or individuals usually choose to outsource pattern string matching to cloud computing to save manpower and resources.
将模式串匹配外包给云计算的方式面临着结果真实性和数据更新的问题,当接收到云服务器返回的查询结果时,用户无法确定云服务器返回的匹配结果是否真实,当要求更新云服务器中的数据时,用户无法确定云服务器是否更新了自身的数据。The method of outsourcing pattern string matching to cloud computing faces the problem of result authenticity and data update. When receiving the query result returned by the cloud server, the user cannot determine whether the matching result returned by the cloud server is true, when the cloud server is required to be updated. When the data is available, the user cannot determine if the cloud server has updated its own data.
目前的解决方案主要是云服务器在计算出匹配结果的同时生成用于验证匹配结果真实性的验证证据,用户可以利用模式串和证据验证云服务器返回的结果是否是正确,即是否真实。然而,现有的这类解决方案真实性验证效率低、动态更新功能缺失,例如,Martel et al.提出的可验证数据结构的通用解决方案和Papadopoulos et al.提出的可验证模式串匹配SuffixTree(后缀树)方案,不支持高效的数据更新功能,匹配结果的验证效率也不高。其中,Papadopoulos et al.提出的可验证模式串匹配SuffixTree方案搜索性能和证据通信开销效果优异,支持公开验证,但是并不支持高效的数据动态更新,仅仅采取数据分割处理的方式来降低数据更新带来的重构成本,同时用户所在设备端在验证时需要存储大量的公钥数据,验证效率也不高。 The current solution is mainly that the cloud server generates verification evidence for verifying the authenticity of the matching result while calculating the matching result, and the user can use the pattern string and the evidence to verify whether the result returned by the cloud server is correct, that is, whether it is true. However, the existing solutions of this type have low verification efficiency and lack of dynamic update functions. For example, the universal solution for verifiable data structures proposed by Martel et al. and the verifiable pattern string matching SuffixTree proposed by Papadopoulos et al. The suffix tree scheme does not support efficient data update functions, and the verification result of matching results is not high. Among them, Papadopoulos et al.'s verifiable pattern string matching SuffixTree scheme has excellent search performance and evidence communication overhead, supports public verification, but does not support efficient data dynamic update, and only adopts data segmentation processing to reduce data update band. The refactoring cost comes from, and at the same time, the device side of the user needs to store a large amount of public key data during verification, and the verification efficiency is not high.
发明内容Summary of the invention
本发明的目的在于提供一种模式串匹配验证方法、装置、设备及存储介质,旨在解决由于现有技术无法提供一种有效的模式串匹配验证方法,导致模式串匹配验证的验证效率不高,且无法进行数据的动态更新的问题。The object of the present invention is to provide a mode string matching verification method, device, device and storage medium, which aims to solve the problem that the effective verification of the mode string matching verification is not efficient because the prior art cannot provide an effective mode string matching verification method. And the problem of dynamic update of data is not possible.
一方面,本发明提供了一种模式串匹配验证方法,所述方法包括下述步骤:In one aspect, the present invention provides a mode string matching verification method, the method comprising the following steps:
云服务器接收到数据访问端的模式串匹配验证请求时,获取所述数据访问端发送的待匹配模式串,根据预先存储的后缀数组将所述待匹配模式串与预先存储的文本串进行匹配,获得匹配结果;When the cloud server receives the pattern string matching verification request of the data access end, the cloud server acquires the to-be-matched pattern string sent by the data access end, and matches the to-be-matched pattern string with the pre-stored text string according to the pre-stored suffix array. Matching result
所述云服务器根据所述文本串、后缀数组和预先存储的所述文本串的随机数集合、文本证明集合、后缀证明集合,查找所述匹配结果对应的验证证据,将所述匹配结果和验证证据发送给所述数据访问端;The cloud server searches for the verification evidence corresponding to the matching result according to the text string, the suffix array, and the pre-stored random number set of the text string, the text proof set, and the suffix proof set, and the matching result and the verification result. Evidence is sent to the data access end;
所述数据访问端根据所述验证证据、预先存储的所述文本串的文本累加值和后缀累加值、以及预先存储的公钥,对所述匹配结果进行验证,生成并输出验证结果,所述文本串的文本证明集合、后缀证明集合、文本累加值和后缀累加值构成数据拥有端对所述文本串进行预处理得到的动态可验证数据结构。The data access end verifies the matching result according to the verification evidence, the text accumulated value and the suffix accumulated value of the text string stored in advance, and a pre-stored public key, and generates and outputs a verification result, The text proof set, the suffix proof set, the text accumulating value and the suffix accumulating value of the text string constitute a dynamic verifiable data structure obtained by the data possessor preprocessing the text string.
另一方面,本发明提供了一种模式串匹配验证装置,所述装置包括:In another aspect, the present invention provides a mode string matching verification apparatus, the apparatus comprising:
模式串匹配单元,用于云服务器接收到数据访问端的模式串匹配验证请求时,获取所述数据访问端发送的待匹配模式串,根据预先存储的后缀数组将所述待匹配模式串与预先存储的文本串进行匹配,获得匹配结果;And the mode string matching unit is configured to: when the cloud server receives the mode string matching verification request of the data access end, acquire the to-be-matched mode string sent by the data access end, and store the to-be-matched mode string and the pre-storage according to the pre-stored suffix array The text string is matched to obtain a matching result;
证据查找单元,用于所述云服务器根据所述文本串、后缀数组和预先存储的所述文本串的随机数集合、文本证明集合、后缀证明集合,查找所述匹配结果对应的验证证据,将所述匹配结果和验证证据发送给所述数据访问端;以及An evidence search unit, configured to search, according to the text string, the suffix array, the pre-stored random number set of the text string, the text proof set, and the suffix proof set, the verification evidence corresponding to the matching result, The matching result and verification evidence are sent to the data access end;
匹配验证单元,用于所述数据访问端根据所述验证证据、预先存储的所述文本串的文本累加值和后缀累加值、以及预先存储的公钥,对所述匹配结果进行验证,生成并输出验证结果,所述文本串的文本证明集合、后缀证明集合、 文本累加值和后缀累加值构成数据拥有端对所述文本串进行预处理得到的动态可验证数据结构。a matching verification unit, configured to: verify, according to the verification evidence, a text accumulated value and a suffix accumulated value of the text string stored in advance, and a pre-stored public key, verify the matching result, generate and Outputting a verification result, a text proof set of the text string, a suffix proof set, The text accumulated value and the suffix accumulated value constitute a dynamic verifiable data structure obtained by the data owner preprocessing the text string.
另一方面,本发明还提供了一种模式串匹配验证设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述一种模式串匹配验证方法所述的步骤。In another aspect, the present invention also provides a mode string matching verification device comprising a memory, a processor, and a computer program stored in the memory and operable on the processor, the processor executing the computer The program implements the steps as described in one of the pattern string matching verification methods described above.
另一方面,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述一种模式串匹配验证方法所述的步骤。In another aspect, the present invention provides a computer readable storage medium storing a computer program, the computer program being executed by a processor to implement the mode string matching verification method as described above A step of.
本发明中云服务器接收到数据访问端的模式串匹配验证请求时,获取数据访问端发送的待匹配模式串,根据预先存储的后缀数组将待匹配模式串将待匹配模式串与预先存储的文本串进行匹配,获取匹配结果,根据文本串、后缀数组和预先存储的文本串的随机数集合、文本证明集合、后缀证明集合,查找匹配结果对应的验证证据,云服务器将匹配结果和验证证据发送给数据访问端,数据访问端根据验证证据、预先存储的文本串的文本累加值和后缀累加值、以及预先存储的公钥,对匹配结果进行验证,生成并输出验证结果,其中,文本串的文本验证集合、后缀证明集合、文本累加值和后缀累加值构成数据拥有端对文本串进行预处理得到的动态可验证数据结构,从而通过采用后缀数组作为模式串匹配的搜索索引数据结构有效地提高了模式串匹配的效率,用户所在的数据访问端存储固定大小的公钥便可实现匹配验证,有效地提到了模式串匹配的验证效率,此外,通过动态可验证数据结构实现了模式串匹配验证的动态更新。In the present invention, when the cloud server receives the pattern string matching verification request of the data access end, the cloud server acquires the to-be-matched pattern string sent by the data access end, and matches the pattern string to be matched with the pre-stored text string according to the pre-stored suffix array. Perform matching, obtain matching results, and according to the text string, the suffix array and the pre-stored random number set of the text string, the text proof set, the suffix proof set, find the verification evidence corresponding to the matching result, and the cloud server sends the matching result and the verification evidence to The data access end verifies the matching result according to the verification evidence, the text accumulated value of the pre-stored text string and the accumulated value of the suffix, and the pre-stored public key, and generates and outputs the verification result, wherein the text of the text string The verification set, the suffix proof set, the text accumulating value and the suffix accumulating value constitute a dynamic verifiable data structure obtained by preprocessing the text string by the data possession end, thereby effectively improving the search index data structure by using the suffix array as the pattern string matching. The efficiency of pattern string matching, Data access terminal of the storage of a fixed size can be realized where the user public key matching verification, verification efficiency effectively mentioned pattern matching, in addition, dynamic verifiable data structure enables dynamic update of the pattern matching verification.
图1是本发明实施例一提供的模式串匹配验证方法的实现流程图;1 is a flowchart of an implementation of a mode string matching verification method according to
图2是本发明实施例一提供的模式串匹配验证方法中后缀数组生成过程的示例图;
2 is a diagram showing an example of a suffix array generation process in a pattern string matching verification method according to
图3是本发明实施例二提供的模式串匹配验证装置的结构示意图;3 is a schematic structural diagram of a mode string matching verification apparatus according to
图4是本发明实施例二提供的模式串匹配验证装置的优选结构示意图;以及4 is a schematic diagram of a preferred structure of a mode string matching verification apparatus according to
图5是本发明实施例三提供的模式串匹配设备的结构示意图。FIG. 5 is a schematic structural diagram of a mode string matching apparatus according to
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。The present invention will be further described in detail below with reference to the accompanying drawings and embodiments. It is understood that the specific embodiments described herein are merely illustrative of the invention and are not intended to limit the invention.
以下结合具体实施例对本发明的具体实现进行详细描述:The specific implementation of the present invention is described in detail below in conjunction with specific embodiments:
实施例一:Embodiment 1:
图1示出了本发明实施例一提供的模式串匹配验证方法的实现流程,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:FIG. 1 is a flowchart showing an implementation process of a mode string matching verification method according to
在步骤S101中,云服务器接收到数据访问端的模式串匹配验证请求时,获取数据访问端发送的待匹配模式串,根据预先存储的后缀数组将待匹配模式串与预先存储的文本串进行匹配,获得匹配结果。In step S101, when the cloud server receives the mode string matching verification request of the data access end, the cloud server acquires the to-be-matched pattern string sent by the data access end, and matches the to-be-matched pattern string with the pre-stored text string according to the pre-stored suffix array. Get the match.
在本发明实施例中,模式串匹配验证可包括三个执行主体:云服务器、数据访问端、数据拥有端,其中,数据访问端可为用户所在端,用户将模式串匹配的工作交给云计算,数据拥有端可为用户信任的第三方服务器。用户需要进行模式串匹配并对模式串匹配的结果进行验证时,可通过数据访问端向云服务器发送模式串匹配验证请求和待匹配模式串。云服务器接收到模式串匹配验证请求时获取该待匹配模式串,根据后缀数组将待匹配模式串与云服务器中预先存储的文本串进行匹配。后缀数组用来存储着文本串中所有后缀的开始字符在文本串中的位置,为了简洁,将该位置称为后缀在文本串中的位置,例如,如图2所示,当文本串为时,获取文本串所有后缀SFi,将所有后缀按照字符大小顺序进行排序,将排序后的后缀在文本串中的开始字符位置存储 在后缀数组SA[i]中。在匹配的过程中,根据后缀数组从文本串的相应位置处获取子串与待匹配模式串进行匹配,从而提高了云服务器中模式串匹配的效率。In the embodiment of the present invention, the mode string matching verification may include three execution entities: a cloud server, a data access end, and a data possession end, wherein the data access end may be the user's end, and the user hands over the pattern string matching work to the cloud. Calculated, the data owner can be a third-party server trusted by the user. When the user needs to perform the mode string matching and verify the result of the mode string matching, the data access end may send the mode string matching verification request and the to-be-matched mode string to the cloud server. The cloud server obtains the to-be-matched pattern string when receiving the pattern string matching verification request, and matches the to-be-matched pattern string with the pre-stored text string in the cloud server according to the suffix array. The suffix array is used to store the position of the start character of all suffixes in the text string in the text string. For the sake of brevity, the position is referred to as the position of the suffix in the text string, for example, as shown in FIG. 2, when the text string is At the same time, all suffixes SFi of the text string are obtained, all suffixes are sorted in order of character size, and the starting suffixes of the sorted suffixes in the text string are stored in the suffix array SA[i]. In the matching process, the substring is obtained from the corresponding position of the text string according to the suffix array to match the pattern string to be matched, thereby improving the efficiency of pattern string matching in the cloud server.
优选地,在进行模式串的匹配验证之前,数据拥有端需进行数据处理,将处理后的数据分别发送给云服务器和数据访问端,以提高匹配验证的效率。其中,数据拥有端进行数据处理的步骤可包括:Preferably, before the matching verification of the mode string is performed, the data owner needs to perform data processing, and the processed data is separately sent to the cloud server and the data access end to improve the efficiency of the matching verification. The step of data processing by the data owner may include:
(1)数据拥有端可先根据预设的安全参数生成公私钥密码对,将公私钥密码对中的公钥进行公开。(1) The data owner may first generate a public-private key pair according to the preset security parameters, and publicize the public key in the public-private key pair.
具体地,可根据安全参数生成RSA累加器(RSA Accumulator)的公私钥密码对,公私钥密码对可包括私钥和公钥,私钥为sk={p,q,φ(N)},公钥为pk={N=pq,g←RQRN,PG(·)},其中,p、q为大素数,φ(N)为N的欧拉函数,φ(N)=(p-1)(q-1),QR为模N的二次剩余群,g为模N的二次剩余群中的一个随机元素,PG(·)为数据拥有端预先定义的素数生成函数。Specifically, the public-private key pair of the RSA Accumulator may be generated according to the security parameter, and the public-private key pair may include a private key and a public key, and the private key is sk={p, q, φ(N)}. The key is pk={N=pq,g← R QR N , PG(·)}, where p and q are large prime numbers, φ(N) is an Euler function of N, and φ(N)=(p-1 (q-1), QR is the quadratic residual group of modulo N, g is a random element in the quadratic residual group of modulo N, and PG(·) is a pre-defined prime number generating function of the data possession end.
(2)数据拥有端根据文本串,生成后缀数组、以及该文本串的随机数集合。(2) The data owner generates a suffix array and a random number set of the text string according to the text string.
具体地,数据拥有端生成文本串的后缀数组的过程可如图2所示。另外,为文本串的每个字符T[i]绑定一个随机数ri,进而得到文本串的随机数集合R={ri|1≤i≤n},n为文本串的长度。Specifically, the process of generating the suffix array of the text string by the data owner may be as shown in FIG. 2 . In addition, a random number r i is bound to each character T[i] of the text string, thereby obtaining a random number set R={r i |1≤i≤n} of the text string, where n is the length of the text string.
(3)数据拥有端根据文本串、后缀数组、文本串的随机数集合、后缀数组的随机数集合以及公钥,生成动态可验证数据结构。(3) The data owner generates a dynamic verifiable data structure according to the text string, the suffix array, the random number set of the text string, the random number set of the suffix array, and the public key.
具体地,对文本串中所有相邻的字符进行两两关联得到对应的文本元组ti=<T[i],ri,T[i+1],ri+1>,计算每个文本元组的文本素数pti=PG(ti),得到文本串的文本素数集合PT={pti,1≤i<n},计算文本素数集合的文本累加值(为了便于描述,将其称为文本串的文本累加值)计算每个文本素数的文本证明得到文本串的文本证明集合同样地,生成后缀元组sj=('neb',T[SA[j]],rSA[j],T[SA[j+1]],rSA[j+1]),计算每个后缀元组对应的后缀素数psj=PG(sj),得到后缀素数集合PS={psj,1≤j<n},计算文本串的后 缀累加值计算每个后缀素数的后缀证明获得文本串的后缀证明集合 Specifically, performing pairwise association on all adjacent characters in the text string to obtain a corresponding text tuple t i =<T[i], r i , T[i+1], r i+1 >, and calculating each The text prime of the text tuple pt i = PG(t i ), obtain the text prime number set PT={pt i , 1≤i<n} of the text string, and calculate the text accumulated value of the text prime number set (for convenience of description, a text accumulating value called a text string) Calculate text proof of each text prime Get a text proof collection of text strings Similarly, generate a suffix tuple s j = ('neb', T[SA[j]], r SA[j] , T[SA[j+1]], r SA[j+1] ), calculate each The suffix tuple corresponds to the suffix prime number ps j = PG(s j ), and obtains the suffix prime number set PS={ps j , 1≤j<n}, and calculates the suffix accumulated value of the text string. Calculate the suffix proof of each suffix prime number Get the suffix proof set of the text string
在本发明实施例中,由文本串的文本证明集合、后缀证明集合、文本累加值和后缀累加值构成动态可验证数据结构,以通过动态可验证数据结构实现模式串匹配查询中数据的动态更新。数据拥有端将文本串、后缀数组、以及文本串的随机数集合、文本证明集合、后缀证明集合发送给云服务器,将文本串的文本累加值、后缀累加值发送给数据访问端,数据拥有端保留文本串、后缀数组、以及文本串的随机数集合、文本累加值、后缀累加值。In the embodiment of the present invention, the text proof set, the suffix proof set, the text accumulated value and the suffix accumulated value of the text string constitute a dynamic verifiable data structure, so as to implement dynamic update of data in the pattern string matching query through the dynamically verifiable data structure. . The data owner sends the text string, the suffix array, and the random number set of the text string, the text proof set, and the suffix proof set to the cloud server, and sends the text accumulated value and the suffix accumulated value of the text string to the data access end, and the data possession end Retains the text string, the suffix array, and the random number set of the text string, the text accumulated value, and the suffix accumulated value.
在步骤S102中,云服务器根据文本串、后缀数组和预先存储的文本串的随机数集合、文本证明集合、后缀证明集合,查找匹配结果对应的验证证据,将匹配结果和验证证据发送给数据访问端。In step S102, the cloud server searches for the verification evidence corresponding to the matching result according to the text string, the suffix array, the pre-stored random number set of the text string, the text proof set, and the suffix proof set, and sends the matching result and the verification evidence to the data access. end.
在本发明实施例中,验证证据可被数据访问端用来验证云服务器的匹配结果是否正确。当匹配结果为匹配成功时,云服务器可从后缀数组中获取待匹配模式串在文本串中匹配成功的位置i,根据该位置可获得文本串中与待匹配模式串匹配成功的子串P=T[i]T[i+1]...T[i+m-1],T为文本串,m为待匹配模式串的长度。接着,可从文本串的随机数集合R中获取该子串的随机数集合R'={r'k=ri+k-1,1≤k≤m},从文本串的文本证明集合中找出该子串的所有文本证明,生成该子串的文本证明集合从而由该子串的随机数集合、文本证明集合构成匹配成功的验证证据。In the embodiment of the present invention, the verification evidence can be used by the data access end to verify whether the matching result of the cloud server is correct. When the matching result is that the matching is successful, the cloud server may obtain, from the suffix array, the location i of the matching pattern string to be successfully matched in the text string, according to which the substring P= in the text string that matches the to-be-matched pattern string is obtained. T[i]T[i+1]...T[i+m-1], T is a text string, and m is the length of the pattern string to be matched. Then, the random number set R'={r' k =r i+k-1 , 1≤k≤m} of the substring can be obtained from the random number set R of the text string, from the text proof set of the text string Find all text proofs for the substring, and generate a text proof set for the substring Therefore, the set of random numbers and the set of text proofs of the substring constitute verification evidence of successful matching.
在本发明实施例,当匹配结果为匹配失败时,可根据后缀数组获取满足预设条件的第一后缀和第二后缀,预设条件可为SFSA[j]<P<SFSA[j+1],SFSA[j]为第一后缀,SFSA[j+1]为第二后缀。因此,需要查找用来分别验证第一后缀小于待匹配模式串、第二后缀大于待匹配模式串、第一后缀与第二后缀相邻的证据。In the embodiment of the present invention, when the matching result is a matching failure, the first suffix and the second suffix satisfying the preset condition may be obtained according to the suffix array, and the preset condition may be SF SA[j] <P<SF SA[j+ 1] , SF SA[j] is the first suffix, and SF SA[j+1] is the second suffix. Therefore, it is necessary to find evidence for verifying that the first suffix is smaller than the to-be-matched mode string, the second suffix is greater than the to-be-matched mode string, and the first suffix is adjacent to the second suffix.
具体地,查找用来验证第一后缀小于待匹配模式串的证据时,可获取第一后缀与待匹配模式串的公共前缀的长度m1=lcp(P,SFSA[j])、以及第一后缀的字符 c1=T[SA[j]+m1],在文本串的随机数集合、文本证明集合中查找该公共前缀的随机数集合文本证明集合 Specifically, when the identifier used to verify that the first suffix is smaller than the to-be-matched mode string is obtained, the length of the common prefix of the first suffix and the to-be-matched mode string, m 1 =lcp(P, SF SA[j] ), and A suffix character c 1 =T[SA[j]+m 1 ], find the common prefix in the random number set of the text string, the text proof set Random number set Text proof collection
同样地,查找用来验证第一后缀小于待匹配模式串的证据时,可获得第二后缀与待匹配模式串的公共前缀的长度字符c2=T[SA[j+1]+m2]、公共前缀T[SA[j+1]]T[SA[j+1]+1]...T[SA[j+1]+m2]的随机数集合文本证明集合 Similarly, when searching for evidence for verifying that the first suffix is smaller than the pattern string to be matched, the length of the common prefix of the second suffix and the pattern string to be matched can be obtained. The character c 2 =T[SA[j+1]+m 2 ], the common prefix T[SA[j+1]]T[SA[j+1]+1]...T[SA[j+1] +m 2 ] random number set Text proof collection
具体地,查找用来验证第一后缀与第二后缀相邻的证据时,在文本串的后缀证明集合中获取相应的后缀证明,即该后缀证明结合上对应的随机数和字符即可验证第一后缀和第二后缀在后缀数组的排序上是否相邻。将这些数据组合构成匹配失败的验证证据Γ={m1,m2,c1,c2,R1,WT1,R2,WT2,ws'},将匹配结果和匹配失败的验证证据发送给数据访问端。Specifically, when searching for evidence for verifying that the first suffix is adjacent to the second suffix, obtaining a corresponding suffix certificate in the suffix proof set of the text string, that is, The suffix proves that the first suffix and the second suffix are adjacent to each other in the order of the suffix array by combining the corresponding random number and character. Combine these data to form the proof of failure of the matching failure Γ={m 1 , m 2 , c 1 , c 2 , R 1 , WT 1 , R 2 , WT 2 , ws'}, and the matching result and the verification evidence of the matching failure Send to the data access side.
在步骤S103中,数据访问端根据验证证据、预先存储的文本串的文本累加值和后缀累加值、以及预先存储的公钥,对匹配结果进行验证,生成并输出验证结果。In step S103, the data access terminal verifies the matching result according to the verification evidence, the text accumulated value of the pre-stored text string and the suffix accumulated value, and the pre-stored public key, and generates and outputs the verification result.
在本发明实施例中,当接收到的匹配结果为匹配成功时,先根据匹配成功的验证证据中的随机数集合,计算相应的文本元组t'k=(P[k],r'k,P[k+1],r'k+1),1≤k<m,计算这些文本元组对应的文本素数pt'k=PG(t'k),根据验证证据中的文本证明集合验证所有的这些文本素数是否正确,验证公式为即验证该公式中等号两端是否相等。当所有文本素数都被验证正确时,认为云服务器返回的匹配成功的匹配结果正确。In the embodiment of the present invention, when the matching result is successful, the corresponding text tuple t' k =(P[k], r' k is first calculated according to the random number set in the verification evidence of the matching success. , P[k+1], r' k+1 ), 1≤k<m, calculate the text prime number pt' k = PG(t' k ) corresponding to these text tuples, and verify the set according to the text proof in the verification evidence Whether all of these text primes are correct, the verification formula is That is, verify that the middle of the formula is equal. When all the text primes are verified to be correct, it is considered that the matching result returned by the cloud server is correct.
在本发明实施例中,当接收到的匹配结果为匹配失败时,可先通过判断第一匹配失败的验证证据中的字符c1是否小于P[m1+1]、以及P[m2+1]是否小于字符c2,验证第一后缀是否小于待匹配模式串、以及待匹配模式串是否小于第二 后缀,再验证第一后缀和第二后缀是否正确。In the embodiment of the present invention, when the matching result is a matching failure, it may first determine whether the character c 1 in the verification evidence of the first matching failure is less than P[m 1 +1], and P[m 2 + 1) Whether it is smaller than the character c 2 , verify whether the first suffix is smaller than the pattern string to be matched, and whether the pattern string to be matched is smaller than the second suffix, and then verify whether the first suffix and the second suffix are correct.
具体地,在验证第一后缀是否正确时,可根据第一后缀与待匹配模式串的公共前缀的随机数集合R1生成对应的文本元组1≤k<m1,当k=m1时对应的文本元组为进而计算这些文本元组的文本素数根据这些文本元组的文本素数、匹配失败的验证证据中的WT1和数据访问端预先存储的文本累加值,验证第一后缀是否正确,验证公式为即验证该公式中等号两端是否相等,若都相等,则可确定第一后缀正确。Specifically, when verifying whether the first suffix is correct, the corresponding text tuple may be generated according to the random number set R 1 of the common prefix of the first suffix and the to-be-matched pattern string. 1≤k<m 1 , when k=m 1 the corresponding text tuple is Then calculate the text primes of these text tuples According to the text prime of the text tuple, the WT 1 in the verification evidence of the matching failure, and the text accumulated value pre-stored by the data access end, verify whether the first suffix is correct, and the verification formula is That is to verify whether the two ends of the formula are equal. If they are equal, the first suffix can be determined to be correct.
同样地,在验证第二后缀是否正确时,可通过第二后缀与待匹配模式串的公共前缀的随机数集合R2生成对应的文本元组1≤k<m2,当k=m2时对应的文本元组为进而计算这些文本元组的文本素数根据这些文本元组的文本素数、匹配失败的验证证据中的WT2和数据访问端预先存储的文本累加值,验证第二后缀是否正确,验证公式为即验证该公式中等号两端是否相等,若都相等,则可确定第二后缀正确。Similarly, when verifying whether the second suffix is correct, the corresponding text tuple may be generated by the second suffix and the random number set R 2 of the common prefix of the pattern string to be matched. 1≤k<m 2 , when k=m 2 the corresponding text tuple is Then calculate the text primes of these text tuples According to the text prime of the text tuple, the WT 2 in the verification evidence of the matching failure, and the text accumulated value pre-stored by the data access end, verify whether the second suffix is correct, and the verification formula is That is, it is verified whether the two ends of the formula are equal, and if they are equal, it can be determined that the second suffix is correct.
在本发明实施例中,还需验证第一后缀和第二后缀在后缀数组的排序上是否连续。具体地,当第一后缀与待匹配模式串的公共前缀的长度为零时,第一后缀的首字符hc1为匹配失败的验证证据中的字符c1,否则为字符P[1],当第二后缀与待匹配模式串的公共前缀的长度为零时,第二后缀的首字符hc2为匹配失败的验证证据中的字符c2,否则为字符P[1],进而生成后缀元组计算该后缀元组的后缀素数ps'=PG(s'),最后通过匹配失败的验证证据中的后缀证明对该后缀素数进行验证。In the embodiment of the present invention, it is also required to verify whether the first suffix and the second suffix are consecutive in the order of the suffix array. Specifically, when the length of the common prefix of the first suffix and the to-be-matched mode string is zero, the first character hc 1 of the first suffix is the character c 1 in the verification evidence of the failed match, otherwise the character P[1], when When the length of the common prefix of the second suffix and the pattern string to be matched is zero, the first character hc 2 of the second suffix is the character c 2 in the verification evidence of the failed match, otherwise the character P[1], and the suffix tuple is generated. The suffix prime number ps'=PG(s') of the suffix tuple is calculated, and finally the suffix prime number is verified by the suffix proof in the verification evidence of the failed match.
在本发明实施例中,当匹配失败中所有验证都正确时,确定云服务器返回的匹配失败的匹配结果正确。在模式串匹配结果的验证过程中,采用了大整数的幂运算,减小了匹配过程的计算量,只需要存储大小固定的公钥、并结合模 式串、随机数集合、证明集合即可进行验证,简化了数据访问端的验证步骤。In the embodiment of the present invention, when all the verifications in the matching failure are correct, it is determined that the matching result of the matching failure returned by the cloud server is correct. In the verification process of the pattern string matching result, the power operation of the large integer is used, which reduces the calculation amount of the matching process, and only needs to store the fixed-size public key and combine the mode. The string, the random number set, and the proof set can be verified, simplifying the verification step of the data access end.
优选地,数据拥有端在接收到数据访问端的数据更新指令(包括插入、删除和/或替换的更新指令)时,分别根据用来需插入的字符串、文本串中需要删除的字符串和/或用来替换的字符串、以及公钥,对数据拥有端的文本串、后缀数组、以及文本串的随机数集合、文本累加值、后缀累加值进行更新,同时生成用于云服务器更新的辅助信息。在数据拥有端更新完后,数据拥有端将更新后的文本串的文本累加值、后缀累加值发送给数据访问端,将辅助信息发送给云服务器,从而实现数据拥有端数据的动态更新并且数据拥有端数据更新的计算开销小。Preferably, when the data possession end receives the data update instruction (including the insertion, deletion, and/or replacement update instruction) of the data access end, respectively, according to the character string to be inserted, the character string to be deleted in the text string, and/or Or the string to be replaced, and the public key, the text string of the data owner, the suffix array, and the random number set of the text string, the text accumulated value, the suffix accumulated value are updated, and the auxiliary information for the cloud server update is generated. . After the data ownership end is updated, the data owner sends the text accumulation value and the suffix accumulated value of the updated text string to the data access terminal, and sends the auxiliary information to the cloud server, thereby realizing dynamic update of the data of the data owner and the data. The computational overhead of owning end-of-data updates is small.
作为示例地,当数据拥有端接收到数据插入指令时,获取文本串中的插入位置、需插入的字符串的长度以及需插入的字符串,并执行下列操作:As an example, when the data owner receives the data insertion instruction, the insertion position in the text string, the length of the string to be inserted, and the character string to be inserted are obtained, and the following operations are performed:
(1)将需插入的字符串s插入到文本串中:T'=T[1:i-1]||s||T[i:n],其中,T'为插入字符串后得到的文本串,T[i,j]=T[i]T[i+1]...T[j],i为插入位置。(1) Insert the string s to be inserted into the text string: T'=T[1:i-1]||s||T[i:n], where T' is obtained after inserting the string Text string, T[i,j]=T[i]T[i+1]...T[j], where i is the insertion position.
(2)在文本串的随机数集合R中添加需插入的字符串中字符对应的随机数:R'={r1...ri-1,r'1...r'l,ri...rn},其中,r'1...r'l为添加到随机数集合R中的需插入的字符串s中字符对应的随机数,l为需插入的字符串s的长度。(2) Add the random number corresponding to the character in the string to be inserted in the random number set R of the text string: R'={r 1 ... r i-1 , r' 1 ... r' l , r i ... r n }, where r' 1 ... r' l is a random number corresponding to the character in the string s to be inserted added to the random number set R, and l is the string s to be inserted length.
(3)为更新后的文本串计算新的素数,计算新素数的公式可为:pt'0=PG(T[i-1],ri-1,s[1],r'1),pt'i=PG(s[i],r'i,s[i+1],r'i+1),pt'l=PG(s[l],r'l,T[i],ri),其中,1≤i<l,集合成TIS={pt'j|0≤j≤l}。(3) Calculate a new prime number for the updated text string. The formula for calculating the new prime number can be: pt' 0 = PG(T[i-1], r i-1 , s[1], r' 1 ), Pt' i = PG(s[i],r' i ,s[i+1],r' i+1 ),pt' l =PG(s[l],r' l ,T[i],r i ), where 1 ≤ i < 1, aggregated into TIS = {pt' j | 0 ≤ j ≤ l}.
(4)删除<T[i-1],T[i]>关联的素数pti-1,集合成TDS={pti-1},并得到辅助信息AuxData={r'1,...,r'l}。(4) Delete the prime number pt i-1 associated with <T[i-1], T[i]>, assemble into TDS={pt i-1 }, and obtain auxiliary information AuxData={r' 1 ,... ,r' l }.
(5)更新文本串的文本累加值,并计算文本串的文本辅助累加值,对文本串的文本累加值进行更新的公式可为:其中,It=∏pt∈TISpt,Dt=∏pt∈TDSpt。文本辅助累加值的计算公式为:其中,wit为witness 的简写,用来表示数据的辅助作用。(5) updating the text accumulated value of the text string and calculating the text auxiliary accumulated value of the text string, and the formula for updating the text accumulated value of the text string may be: Where I t = ∏ pt ∈ TIS pt, D t = ∏ pt ∈ TDS pt. The text-assisted accumulated value is calculated as: Among them, wit is shorthand for witness, used to represent the auxiliary role of data.
(6)生成更新后的文本串T'的后缀数组SA',对比更新前的文本串的后缀数组SA与更新后的后缀数组SA'上关联字符的不同,确定需要删除的素数集合SDS,并计算需要添加的素数集合SIS。(6) generating an suffix array SA' of the updated text string T', comparing the difference between the suffix array SA of the text string before the update and the updated suffix array SA', determining the prime set SDS to be deleted, and Calculate the set of prime numbers SIS that need to be added.
(7)更新文本串的后缀累加值,并计算后缀辅助累加值。后缀累加值的更新公式为:其中,Is=∏ps∈SISps,Ds=∏ps∈SDSps。后缀辅助累加值的计算公式为:获得辅助信息
优选地,云服务器接收到数据更新指令时,根据用来插入的字符串、文本串中需要删除的字符串和/或用来替换的字符串、以及公钥和辅助信息,对云服务器中预先存储的文本串、后缀数组、以及文本串的随机数集合、文本证明集合和后缀证明集合进行更新,从而实现云服务器数据的动态更新。Preferably, when the cloud server receives the data update instruction, according to the character string to be inserted, the character string to be deleted in the text string, and/or the character string to be replaced, and the public key and the auxiliary information, the cloud server is pre- The stored text string, the suffix array, and the random number set of the text string, the text proof set, and the suffix proof set are updated to implement dynamic update of the cloud server data.
作为示例地,当云服务器接收到数据插入指令时,获取文本串中的插入位置、需插入的字符串的长度、以及需插入的字符串,并执行下列操作:As an example, when the cloud server receives the data insertion instruction, it acquires the insertion position in the text string, the length of the character string to be inserted, and the character string to be inserted, and performs the following operations:
(1)将需插入的字符串s插入到文本串中:T'=T[1:i-1]||s||T[i:n],其中,T'为插入字符串后得到的文本串,T[i,j]=T[i]T[i+1]...T[j],i为插入位置。(1) Insert the string s to be inserted into the text string: T'=T[1:i-1]||s||T[i:n], where T' is obtained after inserting the string Text string, T[i,j]=T[i]T[i+1]...T[j], where i is the insertion position.
(2)在文本串的随机数集合R中添加需插入的字符串中字符对应的随机数:R'={r1...ri-1,r'1...r'l,ri...rn},其中,r′1...r'l为添加到随机数集合R中的需插入的字符串s中字符对应的随机数,l为需插入的字符串s的长度。(2) Add the random number corresponding to the character in the string to be inserted in the random number set R of the text string: R'={r 1 ... r i-1 , r' 1 ... r' l , r i ... r n }, where r' 1 ... r' l is a random number corresponding to the character in the string s to be inserted added to the random number set R, and l is the string s to be inserted length.
(3)为更新后的文本串计算新的素数,计算新素数的公式可为:pt'0=PG(T[i-1],ri-1,s[1],r'1),pt'i=PG(s[i],r'i,s[i+1],r'i+1),pt'l=PG(s[l],r'l,T[i],ri),其中,1≤i<l,集合成TIS={pt'j|0≤j≤l}。(3) Calculate a new prime number for the updated text string. The formula for calculating the new prime number can be: pt' 0 = PG(T[i-1], r i-1 , s[1], r' 1 ), Pt' i = PG(s[i],r' i ,s[i+1],r' i+1 ),pt' l =PG(s[l],r' l ,T[i],r i ), where 1 ≤ i < 1, aggregated into TIS = {pt' j | 0 ≤ j ≤ l}.
(4)删除<T[i-1],T[i]>关联的素数pti-1,集合成TDS={pti-1}。(4) Delete the prime numbers pt i-1 associated with <T[i-1], T[i]>, and assemble them into TDS={pt i-1 }.
(5)从文本串的文本证明集合WT中删除每个素数pt∈TDS对应的文本证明 wtpt。对于每个新的素数pt'∈TIS,计算计算新的文本证明并添加到WT中。根据文本证明集合WT中剩余的素数pt,对对应的文本证明进行更新:其中,a*pt+b*Dt=1。最后得到新的文本证明集合WT'。(5) Delete the text proof wt pt corresponding to each prime number pt∈TDS from the text proof set WT of the text string. For each new prime pt'∈TIS, calculate Calculate a new text proof And added to the WT. Update the corresponding text proof according to the remaining prime number pt in the text proof set WT: Where a*pt+b*D t =1. Finally, a new text proof set WT' is obtained.
(6)生成更新后的文本串T'的后缀数组SA',对比更新前的文本串的后缀数组SA与更新后的后缀数组SA'上关联字符的不同,确定需要删除的素数集合SDS,并计算需要添加的素数集合SIS。(6) generating an suffix array SA' of the updated text string T', comparing the difference between the suffix array SA of the text string before the update and the updated suffix array SA', determining the prime set SDS to be deleted, and Calculate the set of prime numbers SIS that need to be added.
(7)从文本串T的后缀证明集合中WS中删除每个素数ps∈SDS对应的wsps,对于每个素数ps'∈SIS,计算新的后缀证明并添加到后缀证明集合WS中,其中,I's=∏ps∈SIS-ps'ps。根据后缀证明集合WS中剩余的素数ps,对对应的后缀证明进行更新:其中,a*pt+b*Dt=1。最后得到新的后缀证明集合WS'。(7) Delete the ws ps corresponding to each prime number ps∈SDS from the WS in the suffix proof set of the text string T, and calculate a new suffix proof for each prime number ps'∈SIS And added to the suffix proof set WS, where I 's = ∏ ps ∈ SIS-ps' ps. The corresponding suffix proof is updated according to the remaining prime number ps in the set WS according to the suffix: Where a*pt+b*D t =1. Finally, a new suffix proof set WS' is obtained.
在本发明实施例中,云服务器、数据访问端、数据拥有端协同完成模式串的匹配验证,在匹配验证过程中采用后缀数组作为云服务器匹配过程的索引,提高了模式串匹配的效率,通过动态可验证数据结构中的文本证明集合、后缀证明集合完成验证证据的查找,通过动态可验证数据结构中的文本累加值、后缀累加值完成匹配结果的验证,此外,数据访问端存储着固定大小的公钥,使得验证更为简洁。数据拥有端生成的动态可验证结构,实现了数据拥有端、云服务器上数据的动态更新,在更新过程中有效地降低了数据拥有端的计算开销、以及数据拥有端与云服务器的通信开销。In the embodiment of the present invention, the cloud server, the data access end, and the data Owner cooperate to complete the matching verification of the pattern string, and the suffix array is used as the index of the cloud server matching process in the matching verification process, thereby improving the efficiency of the pattern string matching. The textual proof set and the suffix proof set in the dynamic verifiable data structure complete the verification of the evidence, and the verification result is completed by the text accumulating value and the suffix accumulating value in the dynamically verifiable data structure, and the data access end stores the fixed size. The public key makes the verification more concise. The dynamic verifiable structure generated by the data owner realizes the dynamic update of data on the data owner and the cloud server, and effectively reduces the calculation overhead of the data owner and the communication overhead between the data owner and the cloud server in the update process.
实施例二:Embodiment 2:
图3示出了本发明实施例二提供的模式串匹配验证装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分,其中包括:FIG. 3 is a diagram showing the structure of a mode string matching verification apparatus according to
模式串匹配单元31,用于云服务器接收到数据访问端的模式串匹配验证请求时,获取数据访问端发送的待匹配模式串,根据预先存储的后缀数组将待匹
配模式串与预先存储的文本串进行匹配,获得匹配结果。The mode
在本发明实施例中,云服务器接收到模式串匹配验证请求时获取该待匹配模式串,根据后缀数组将待匹配模式串与云服务器中预先存储的文本串进行匹配。在匹配的过程中,根据后缀数组从文本串的相应位置处获取子串与待匹配模式串进行匹配,从而提高了云服务器中模式串匹配的效率。In the embodiment of the present invention, when the cloud server receives the pattern string matching verification request, the cloud server acquires the to-be-matched pattern string, and matches the to-be-matched pattern string with the pre-stored text string in the cloud server according to the suffix array. In the matching process, the substring is obtained from the corresponding position of the text string according to the suffix array to match the pattern string to be matched, thereby improving the efficiency of pattern string matching in the cloud server.
证据查找单元32,用于云服务器根据文本串、后缀数组和预先存储的文本串的随机数集合、文本证明集合、后缀证明集合,查找匹配结果对应的验证证据,将匹配结果和验证证据发送给数据访问端。The
在本发明实施例中,当匹配结果为匹配成功时,云服务器可从后缀数组中获取待匹配模式串在文本串中匹配成功的位置,根据该位置可获得文本串中与待匹配模式串匹配成功的子串P=T[i]T[i+1]...T[i+m-1],T为文本串,m为待匹配模式串的长度。接着,可从文本串的随机数集合R中获取该子串的随机数集合R'={r'k=ri+k-1,1≤k≤m},从文本串的文本证明集合中找出该子串的所有文本证明,生成该子串的文本证明集合从而由该子串的随机数集合、文本证明集合构成匹配成功的验证证据。In the embodiment of the present invention, when the matching result is that the matching is successful, the cloud server may obtain, from the suffix array, a position where the matching pattern string matches successfully in the text string, and according to the position, the text string can be matched with the to-be-matched pattern string. The successful substring P=T[i]T[i+1]...T[i+m-1], T is a text string, and m is the length of the pattern string to be matched. Then, the random number set R'={r' k =r i+k-1 , 1≤k≤m} of the substring can be obtained from the random number set R of the text string, from the text proof set of the text string Find all text proofs for the substring, and generate a text proof set for the substring Therefore, the set of random numbers and the set of text proofs of the substring constitute verification evidence of successful matching.
在本发明实施例,当匹配结果为匹配失败时,可根据后缀数组获取满足预设条件的第一后缀和第二后缀,预设条件可为SFSA[j]<P<SFSA[j+1],SFSA[j]为第一后缀,SFSA[j+1]为第二后缀。因此需要查找用来分别验证第一后缀小于待匹配模式串、第二后缀大于待匹配模式串、第一后缀与第二后缀相邻的证据。In the embodiment of the present invention, when the matching result is a matching failure, the first suffix and the second suffix satisfying the preset condition may be obtained according to the suffix array, and the preset condition may be SF SA[j] <P<SF SA[j+ 1] , SF SA[j] is the first suffix, and SF SA[j+1] is the second suffix. Therefore, it is necessary to find evidence for verifying that the first suffix is smaller than the to-be-matched mode string, the second suffix is greater than the to-be-matched mode string, and the first suffix is adjacent to the second suffix.
具体地,查找用来验证第一后缀小于待匹配模式串的证据时,可获取第一后缀与待匹配模式串的公共前缀的长度m1=lcp(P,SFSA[j])、以及第一后缀的字符c1=T[SA[j]+m1],在文本串的随机数集合、文本证明集合中查找该公共前缀T[SA[j]]T[SA[j]+1]...T[SA[j]+m1]的随机数集合文本证明集合 Specifically, when the identifier used to verify that the first suffix is smaller than the to-be-matched mode string is obtained, the length of the common prefix of the first suffix and the to-be-matched mode string, m 1 =lcp(P, SF SA[j] ), and A suffix character c 1 =T[SA[j]+m 1 ], find the common prefix T[SA[j]]T[SA[j]+1] in the random number set of the text string and the text proof set. a set of random numbers for ...T[SA[j]+m 1 ] Text proof collection
同样地,查找用来验证第一后缀小于待匹配模式串的证据时,可获得第二 后缀与待匹配模式串的公共前缀的长度m2=lcp(P,SFSA[j+1])、字符c2=T[SA[j+1]+m2]、公共前缀T[SA[j+1]]T[SA[j+1]+1]...T[SA[j+1]+m2]的随机数集合文本证明集合 Similarly, when searching for evidence for verifying that the first suffix is smaller than the pattern string to be matched, the length of the common prefix of the second suffix and the pattern string to be matched, m 2 = lcp (P, SF SA[j+1] ), The character c 2 =T[SA[j+1]+m 2 ], the common prefix T[SA[j+1]]T[SA[j+1]+1]...T[SA[j+1] +m 2 ] random number set Text proof collection
具体地,查找用来验证第一后缀与第二后缀相邻的证据时,在文本串的后缀证明集合中获取相应的后缀证明,即该后缀证明结合上对应的随机数和字符即可验证第一后缀和第二后缀在后缀数组的排序上是否相邻。将这些数据组合构成匹配失败的验证证据Γ={m1,m2,c1,c2,R1,WT1,R2,WT2,ws'},将匹配结果和匹配失败的验证证据发送给数据访问端。Specifically, when searching for evidence for verifying that the first suffix is adjacent to the second suffix, obtaining a corresponding suffix certificate in the suffix proof set of the text string, that is, The suffix proves that the first suffix and the second suffix are adjacent to each other in the order of the suffix array by combining the corresponding random number and character. Combine these data to form the proof of failure of the matching failure Γ={m 1 , m 2 , c 1 , c 2 , R 1 , WT 1 , R 2 , WT 2 , ws'}, and the matching result and the verification evidence of the matching failure Send to the data access side.
匹配验证单元33,用于数据访问端根据验证证据、预先存储的文本串的文本累加值和后缀累加值、以及预先存储的公钥,对匹配结果进行验证,生成并输出验证结果。The matching
在本发明实施例中,当接收到的匹配结果为匹配成功时,先根据匹配成功的验证证据中的随机数集合,计算相应的文本元组t'k=(P[k],r'k,P[k+1],r'k+1),1≤k<m,计算这些文本元组对应的文本素数pt'k=PG(t'k),根据验证证据中的文本证明集合验证所有的这些文本素数是否正确,验证公式为即验证该公式中等号两端是否相等。当所有文本素数都被验证正确时,认为云服务器返回的匹配成功的匹配结果正确。In the embodiment of the present invention, when the matching result is successful, the corresponding text tuple t' k =(P[k], r' k is first calculated according to the random number set in the verification evidence of the matching success. , P[k+1], r' k+1 ), 1≤k<m, calculate the text prime number pt' k = PG(t' k ) corresponding to these text tuples, and verify the set according to the text proof in the verification evidence Whether all of these text primes are correct, the verification formula is That is, verify that the middle of the formula is equal. When all the text primes are verified to be correct, it is considered that the matching result returned by the cloud server is correct.
在本发明实施例中,当接收到的匹配结果为匹配失败时,可先通过判断第一匹配失败的验证证据中的字符c1是否小于P[m1+1]、以及P[m2+1]是否小于字符c2,验证第一后缀是否小于待匹配模式串、以及待匹配模式串是否小于第二后缀。再进行第一后缀和第二后缀是否正确的验证。In the embodiment of the present invention, when the matching result is a matching failure, it may first determine whether the character c 1 in the verification evidence of the first matching failure is less than P[m 1 +1], and P[m 2 + 1] Whether it is smaller than the character c 2 , whether the first suffix is smaller than the pattern string to be matched, and whether the pattern string to be matched is smaller than the second suffix. Then verify whether the first suffix and the second suffix are correct.
具体地,在验证第一后缀是否正确时,可根据第一后缀与待匹配模式串的公共前缀的随机数集合R1生成对应的文本元组1≤k<m1,当k=m1时对应的文本元组为进而计算这些文本 元组的文本素数根据这些文本元组的文本素数、匹配失败的验证证据中的WT1和数据访问端预先存储的文本累加值,验证第一后缀是否正确,验证公式为即验证该公式中等号两端是否相等,若都相等,则可确定第一后缀正确。Specifically, when verifying whether the first suffix is correct, the corresponding text tuple may be generated according to the random number set R 1 of the common prefix of the first suffix and the to-be-matched pattern string. 1≤k<m 1 , when k=m 1 the corresponding text tuple is Then calculate the text primes of these text tuples According to the text prime of the text tuple, the WT1 in the verification evidence of the matching failure, and the text accumulated value pre-stored by the data access end, verify whether the first suffix is correct, and the verification formula is That is to verify whether the two ends of the formula are equal. If they are equal, the first suffix can be determined to be correct.
同样地,在验证第二后缀是否正确时,可通过第二后缀与待匹配模式串的公共前缀的随机数集合R2生成对应的文本元组1≤k<m2,当k=m2时对应的文本元组为进而计算这些文本元组的文本素数根据这些文本元组的文本素数、匹配失败的验证证据中的WT2和数据访问端预先存储的文本累加值,验证第二后缀是否正确,验证公式为即验证该公式中等号两端是否相等,若都相等,则可确定第二后缀正确。Similarly, when verifying whether the second suffix is correct, the corresponding text tuple may be generated by the second suffix and the random number set R 2 of the common prefix of the pattern string to be matched. 1≤k<m 2 , when k=m 2 the corresponding text tuple is Then calculate the text primes of these text tuples According to the text prime of the text tuple, the WT 2 in the verification evidence of the matching failure, and the text accumulated value pre-stored by the data access end, verify whether the second suffix is correct, and the verification formula is That is, it is verified whether the two ends of the formula are equal, and if they are equal, it can be determined that the second suffix is correct.
在本发明实施例中,还需验证第一后缀和第二后缀在后缀数组的排序上是否连续。具体地,当第一后缀与待匹配模式串的公共前缀的长度为零时,第一后缀的首字符hc1为匹配失败的验证证据中的字符c1,否则为字符P[1],当第二后缀与待匹配模式串的公共前缀的长度为零时,第二后缀的首字符hc2为匹配失败的验证证据中的字符c2,否则为字符P[1],进而生成后缀元组计算该后缀元组的后缀素数ps'=PG(s'),最后通过匹配失败的验证证据中的后缀证明对该后缀素数进行验证。In the embodiment of the present invention, it is also required to verify whether the first suffix and the second suffix are consecutive in the order of the suffix array. Specifically, when the length of the common prefix of the first suffix and the to-be-matched mode string is zero, the first character hc 1 of the first suffix is the character c 1 in the verification evidence of the failed match, otherwise the character P[1], when When the length of the common prefix of the second suffix and the pattern string to be matched is zero, the first character hc 2 of the second suffix is the character c 2 in the verification evidence of the failed match, otherwise the character P[1], and the suffix tuple is generated. The suffix prime number ps'=PG(s') of the suffix tuple is calculated, and finally the suffix prime number is verified by the suffix proof in the verification evidence of the failed match.
在本发明实施例中,当匹配失败中所有验证都正确时,确定云服务器返回的匹配失败的匹配结果正确。在模式串匹配结果的验证过程中,采用了大整数的幂运算,减小了匹配过程的计算量,只需要存储大小固定的公钥、并结合模式串、随机数集合、证明集合即可进行验证,简化了数据访问端的验证步骤。In the embodiment of the present invention, when all the verifications in the matching failure are correct, it is determined that the matching result of the matching failure returned by the cloud server is correct. In the verification process of the pattern string matching result, the power operation of the large integer is used, which reduces the calculation amount of the matching process, and only needs to store the fixed-size public key, and combines the pattern string, the random number set, and the proof set. Verification simplifies the verification steps for the data access side.
优选地,如图4所示,模式串匹配验证装置还包括密钥生成单元41、可验证数据生成单元42和数据发送单元43,其中:Preferably, as shown in FIG. 4, the pattern string matching verification apparatus further includes a
密钥生成单元41,用于数据拥有端根据预设的安全参数生成公私钥密码
对,将公私钥密码对中的公钥进行公开;The
可验证数据生成单元42,用于根据文本串生成后缀数组,为文本串的每个字符绑定随机数,生成文本串的随机数集合,根据文本串、文本串的随机数集合、后缀数组、后缀数组的随机数集合和公钥,生成动态可验证数据结构;以及The verifiable
数据发送单元43,用于数据拥有端将文本串、后缀数组、以及文本串的随机数集合、文本证明集合、后缀证明集合发送给云服务器,将文本串的文本累加值和后缀累加值发送给数据访问端。The
在本发明实施例中,在进行模式串的匹配验证之前,数据拥有端需进行数据处理,将处理后的数据分别发送给云服务器和数据访问端,以提高匹配验证的效率。其中,数据端进行数据处理的步骤可包括:In the embodiment of the present invention, before the matching verification of the mode string is performed, the data possession end needs to perform data processing, and the processed data is separately sent to the cloud server and the data access end to improve the efficiency of the matching verification. The step of performing data processing on the data end may include:
(1)数据拥有端可先根据预设的安全参数生成公私钥密码对,将公私钥密码对中的公钥进行公开。(1) The data owner may first generate a public-private key pair according to the preset security parameters, and publicize the public key in the public-private key pair.
具体地,可根据安全参数生成RSA累加器(RSA Accumulator)的公私钥密码对,公私钥密码对可包括私钥和公钥,私钥为sk={p,q,φ(N)},公钥为pk={N=pq,g←RQRN,PG(·)},其中,p、q为大素数,φ(N)为N的欧拉函数,φ(N)=(p-1)(q-1),QR为模N的二次剩余群,g为模N的二次剩余群中的一个随机元素,PG(·)为数据拥有端预先定义的素数生成函数。Specifically, the public-private key pair of the RSA Accumulator may be generated according to the security parameter, and the public-private key pair may include a private key and a public key, and the private key is sk={p, q, φ(N)}. The key is pk={N=pq,g← R QR N , PG(·)}, where p and q are large prime numbers, φ(N) is an Euler function of N, and φ(N)=(p-1 (q-1), QR is the quadratic residual group of modulo N, g is a random element in the quadratic residual group of modulo N, and PG(·) is a pre-defined prime number generating function of the data possession end.
(2)数据拥有端根据文本串,生成后缀数组、以及该文本串的随机数集合。(2) The data owner generates a suffix array and a random number set of the text string according to the text string.
具体地,数据拥有端生成文本串的后缀数组的过程可如图2所示。另外,为文本串的每个字符T[i]绑定一个随机数ri,进而得到文本串的随机数集合R={ri|1≤i≤n},n为文本串的长度。Specifically, the process of generating the suffix array of the text string by the data owner may be as shown in FIG. 2 . In addition, a random number r i is bound to each character T[i] of the text string, thereby obtaining a random number set R={r i |1≤i≤n} of the text string, where n is the length of the text string.
(3)数据拥有端根据文本串、后缀数组、文本串的随机数集合、后缀数组的随机数集合以及公钥,生成动态可验证数据结构。(3) The data owner generates a dynamic verifiable data structure according to the text string, the suffix array, the random number set of the text string, the random number set of the suffix array, and the public key.
具体地,对文本串中所有相邻的字符进行两两关联得到对应的文本元组 ti=<T[i],ri,T[i+1],ri+1>,计算每个文本元组的文本素数pti=PG(ti),得到文本串的文本素数集合PT={pti,1≤i<n},计算文本素数集合的文本累加值(为了便于描述,将其称为文本串的文本累加值)计算每个文本素数的文本证明得到文本串的文本证明集合同样地,生成后缀元组sj=('neb',T[SA[j]],rSA[j],T[SA[j+1]],rSA[j+1]),计算每个后缀元组对应的后缀素数psj=PG(sj),得到后缀素数集合PS={psj,1≤j<n},计算文本串的后缀累加值计算每个后缀素数的后缀证明获得文本串的后缀证明集合 Specifically, performing a pairwise association on all adjacent characters in the text string to obtain a corresponding text tuple t i =<T[i], r i , T[i+1], r i+1 >, and calculating each The text prime of the text tuple pt i = PG(t i ), obtain the text prime number set PT={pt i , 1≤i<n} of the text string, and calculate the text accumulated value of the text prime number set (for convenience of description, a text accumulating value called a text string) Calculate text proof of each text prime Get a text proof collection of text strings Similarly, generate a suffix tuple s j = ('neb', T[SA[j]], r SA[j] , T[SA[j+1]], r SA[j+1] ), calculate each The suffix tuple corresponds to the suffix prime number ps j = PG(s j ), and the suffix prime number set PS={ps j , 1≤j<n} is obtained, and the suffix accumulated value of the text string is calculated. Calculate the suffix proof of each suffix prime number Get the suffix proof set of the text string
在本发明实施例中,由文本串的文本证明集合、后缀证明集合、文本累加值和后缀累加值构成动态可验证数据结构,以通过动态可验证数据结构实现模式串匹配查询中数据的动态更新。数据拥有端将文本串、后缀数组、以及文本串的随机数集合、文本证明集合、后缀证明集合发送给云服务器,将文本串的文本累加值、后缀累加值发送给数据访问端,数据拥有端保留文本串、后缀数组、以及文本串的随机数集合、文本累加值、后缀累加值。In the embodiment of the present invention, the text proof set, the suffix proof set, the text accumulated value and the suffix accumulated value of the text string constitute a dynamic verifiable data structure, so as to implement dynamic update of data in the pattern string matching query through the dynamically verifiable data structure. . The data owner sends the text string, the suffix array, and the random number set of the text string, the text proof set, and the suffix proof set to the cloud server, and sends the text accumulated value and the suffix accumulated value of the text string to the data access end, and the data possession end Retains the text string, the suffix array, and the random number set of the text string, the text accumulated value, and the suffix accumulated value.
优选地,模式串匹配验证装置还包括数据端更新单元47、更新数据发送单元48和云端更新单元49,其中:Preferably, the mode string matching verification apparatus further includes a data
数据端更新单元47,用于数据拥有端接收到插入、删除和/或替换的更新指令时,分别根据用来需插入的字符串、文本串中需要删除的字符串和/或用来替换的字符串、以及公钥,对文本串、后缀数组、以及文本串的随机数集合、文本累加值和后缀累加值进行更新,同时生成用于云服务器更新的辅助信息;The data end updating
更新数据发送单元48,用于数据拥有端将更新后文本串的文本累加值和后缀累加值发送给数据访问端,将辅助信息发送给云服务器;以及The update
云端更新单元49,用于云服务器接收到插入、删除和/或替换的更新指令时,根据用来需插入的字符串、文本串中需要删除的字符串和/或用来替换的字符串、以及公钥和辅助信息,对云服务器中预先存储的文本串、后缀数组、文本
串的随机数集合、文本证明集合和后缀证明集合进行更新。The
作为示例地,当数据拥有端接收到数据插入指令时,获取文本串中的插入位置、需插入的字符串的长度以及需插入的字符串,并执行下列操作:As an example, when the data owner receives the data insertion instruction, the insertion position in the text string, the length of the string to be inserted, and the character string to be inserted are obtained, and the following operations are performed:
(1)将需插入的字符串s插入到文本串中:T'=T[1:i-1]||s||T[i:n],其中,T'为插入字符串后得到的文本串,T[i,j]=T[i]T[i+1]...T[j],i为插入位置。(1) Insert the string s to be inserted into the text string: T'=T[1:i-1]||s||T[i:n], where T' is obtained after inserting the string Text string, T[i,j]=T[i]T[i+1]...T[j], where i is the insertion position.
(2)在文本串的随机数集合R中添加需插入的字符串中字符对应的随机数:R'={r1...ri-1,r'1...r'l,ri...rn},其中,r'1...r'l为添加到随机数集合R中的需插入的字符串s中字符对应的随机数,l为需插入的字符串s的长度。(2) Add the random number corresponding to the character in the string to be inserted in the random number set R of the text string: R'={r 1 ... r i-1 , r' 1 ... r' l , r i ... r n }, where r' 1 ... r' l is a random number corresponding to the character in the string s to be inserted added to the random number set R, and l is the string s to be inserted length.
(3)为更新后的文本串计算新的素数,计算新素数的公式可为:pt'0=PG(T[i-1],ri-1,s[1],r'1),pt'i=PG(s[i],r'i,s[i+1],r'i+1),pt'l=PG(s[l],r'l,T[i],ri),其中,1≤i<l,集合成TIS={pt'j|0≤j≤l}。(3) Calculate a new prime number for the updated text string. The formula for calculating the new prime number can be: pt' 0 = PG(T[i-1], r i-1 , s[1], r' 1 ), Pt' i = PG(s[i],r' i ,s[i+1],r' i+1 ),pt' l =PG(s[l],r' l ,T[i],r i ), where 1 ≤ i < 1, aggregated into TIS = {pt' j | 0 ≤ j ≤ l}.
(4)删除<T[i-1],T[i]>关联的素数pti-1,集合成TDS={pti-1},并得到辅助信息AuxData={r′1,...,r'l}。(4) Delete the <t[i-1], T[i]> associated prime number pt i-1 , aggregate into TDS={pt i-1 }, and get the auxiliary information AuxData={r' 1 ,... ,r' l }.
(5)更新文本串的文本累加值,并计算文本串的文本辅助累加值,对文本串的文本累加值进行更新的公式可为:其中,It=∏pt∈TISpt,Dt=∏pt∈TDSpt。文本辅助累加值的计算公式为:其中,wit为witness的简写,用来表示数据的辅助作用。(5) updating the text accumulated value of the text string and calculating the text auxiliary accumulated value of the text string, and the formula for updating the text accumulated value of the text string may be: Where I t = ∏ pt ∈ TIS pt, D t = ∏ pt ∈ TDS pt. The text-assisted accumulated value is calculated as: Among them, wit is shorthand for witness, used to represent the auxiliary role of data.
(6)生成更新后的文本串T'的后缀数组SA',对比更新前的文本串的后缀数组SA与更新后的后缀数组SA'上关联字符的不同,确定需要删除的素数集合SDS,并计算需要添加的素数集合SIS。(6) generating an suffix array SA' of the updated text string T', comparing the difference between the suffix array SA of the text string before the update and the updated suffix array SA', determining the prime set SDS to be deleted, and Calculate the set of prime numbers SIS that need to be added.
(7)更新文本串的后缀累加值,并计算后缀辅助累加值。后缀累加值的更新公式为:其中,Is=∏ps∈SISps,Ds=∏ps∈SDSps。后缀辅助累加值的计算公式为:获得辅助信息
优选地,云服务器接收到数据更新指令时,根据用来需插入的字符串、文本串中需要删除的字符串和/或用来替换的字符串、以及公钥和辅助信息,对云服务器中预先存储的文本串、后缀数组、以及文本串的随机数集合、文本证明集合和后缀证明集合进行更新,从而实现云服务器数据的动态更新。Preferably, when the cloud server receives the data update instruction, according to the character string to be inserted, the character string to be deleted in the text string, and/or the character string to be replaced, and the public key and the auxiliary information, the cloud server The pre-stored text string, the suffix array, and the random number set of the text string, the text proof set, and the suffix proof set are updated to implement dynamic update of the cloud server data.
作为示例地,当云服务器接收到数据插入指令时,获取文本串中的插入位置、需插入的字符串的长度、以及需插入的字符串,并执行下列操作:As an example, when the cloud server receives the data insertion instruction, it acquires the insertion position in the text string, the length of the character string to be inserted, and the character string to be inserted, and performs the following operations:
(1)将需插入的字符串s插入到文本串中:T'=T[1:i-1]||s||T[i:n],其中,T'为插入字符串后得到的文本串,T[i,j]=T[i]T[i+1]...T[j],i为插入位置。(1) Insert the string s to be inserted into the text string: T'=T[1:i-1]||s||T[i:n], where T' is obtained after inserting the string Text string, T[i,j]=T[i]T[i+1]...T[j], where i is the insertion position.
(2)在文本串的随机数集合R中添加需插入的字符串中字符对应的随机数:R'={r1...ri-1,r'1...r'l,ri...rn},其中,r'1...r'l为添加到随机数集合R中的需插入的字符串s中字符对应的随机数,l为需插入的字符串s的长度。(2) Add the random number corresponding to the character in the string to be inserted in the random number set R of the text string: R'={r 1 ... r i-1 , r' 1 ... r' l , r i ... r n }, where r' 1 ... r' l is a random number corresponding to the character in the string s to be inserted added to the random number set R, and l is the string s to be inserted length.
(3)为更新后的文本串计算新的素数,计算新素数的公式可为:pt'0=PG(T[i-1],ri-1,s[1],r'1),pt'i=PG(s[i],r'i,s[i+1],r'i+1),pt'l=PG(s[l],r'l,T[i],ri),其中,1≤i<l,集合成TIS={pt'j|0≤j≤l}。(3) Calculate a new prime number for the updated text string. The formula for calculating the new prime number can be: pt' 0 = PG(T[i-1], r i-1 , s[1], r' 1 ), Pt' i = PG(s[i],r' i ,s[i+1],r' i+1 ),pt' l =PG(s[l],r' l ,T[i],r i ), where 1 ≤ i < 1, aggregated into TIS = {pt' j | 0 ≤ j ≤ l}.
(4)删除<T[i-1],T[i]>关联的素数pti-1,集合成TDS={pti-1}。(4) Delete the prime numbers pt i-1 associated with <T[i-1], T[i]>, and assemble them into TDS={pt i-1 }.
(5)从文本串的文本证明集合WT中删除每个素数pt∈TDS对应的文本证明wtpt。对于每个新的素数pt'∈TIS,计算计算新的文本证明并添加到WT中。根据文本证明集合WT中剩余的素数pt,对对应的文本证明进行更新:其中,a*pt+b*Dt=1。最后得到新的文本证明集合WT'。(5) Delete the text proof wt pt corresponding to each prime number pt∈TDS from the text proof set WT of the text string. For each new prime pt'∈TIS, calculate Calculate a new text proof And added to the WT. Update the corresponding text proof according to the remaining prime number pt in the text proof set WT: Where a*pt+b*D t =1. Finally, a new text proof set WT' is obtained.
(6)生成更新后的文本串T'的后缀数组SA',对比更新前的文本串的后缀数组SA与更新后的后缀数组SA'上关联字符的不同,确定需要删除的素数集合SDS,并计算需要添加的素数集合SIS。(6) generating an suffix array SA' of the updated text string T', comparing the difference between the suffix array SA of the text string before the update and the updated suffix array SA', determining the prime set SDS to be deleted, and Calculate the set of prime numbers SIS that need to be added.
(7)从文本串T的后缀证明集合中WS中删除每个素数ps∈SDS对应的wsps, 对于每个素数ps'∈SIS,计算新的后缀证明并添加到后缀证明集合WS中,其中,I's=∏ps∈SIS-ps'ps。根据后缀证明集合WS中剩余的素数ps,对对应的后缀证明进行更新:其中,a*pt+b*Dt=1。最后得到新的后缀证明集合WS'。(7) Delete the ws ps corresponding to each prime number ps∈SDS from the WS in the suffix proof set of the text string T, and calculate a new suffix proof for each prime number ps'∈SIS And added to the suffix proof set WS, where I 's = ∏ ps ∈ SIS-ps' ps. The corresponding suffix proof is updated according to the remaining prime number ps in the set WS according to the suffix: Where a*pt+b*D t =1. Finally, a new suffix proof set WS' is obtained.
在本发明实施例中,云服务器、数据访问端、数据拥有端协同完成模式串的匹配验证,在匹配验证过程中采用后缀数组作为云服务器匹配过程的索引,提高了模式串匹配的效率,通过动态可验证数据结构中的文本证明集合、后缀证明集合完成验证证据的查找,通过动态可验证数据结构中的文本累加值、后缀累加值完成匹配结果的验证,此外,数据访问端存储着固定大小的公钥,使得验证更为简洁。数据拥有端生成的动态可验证结构,实现了数据拥有端、云服务器上数据的动态更新,在更新过程中有效地降低了数据拥有端的计算开销、以及数据拥有端与云服务器的通信开销。In the embodiment of the present invention, the cloud server, the data access end, and the data Owner cooperate to complete the matching verification of the pattern string, and the suffix array is used as the index of the cloud server matching process in the matching verification process, thereby improving the efficiency of the pattern string matching. The textual proof set and the suffix proof set in the dynamic verifiable data structure complete the verification of the evidence, and the verification result is completed by the text accumulating value and the suffix accumulating value in the dynamically verifiable data structure, and the data access end stores the fixed size. The public key makes the verification more concise. The dynamic verifiable structure generated by the data owner realizes the dynamic update of data on the data owner and the cloud server, and effectively reduces the calculation overhead of the data owner and the communication overhead between the data owner and the cloud server in the update process.
在本发明实施例中,模式串匹配验证装置的各单元可由相应的硬件或软件单元实现,各单元可以为独立的软、硬件单元,也可以集成为一个软、硬件单元,在此不用以限制本发明。In the embodiment of the present invention, each unit of the pattern string matching verification apparatus may be implemented by a corresponding hardware or software unit, and each unit may be an independent software and hardware unit, or may be integrated into one soft and hardware unit, and is not limited thereto. this invention.
实施例三:Embodiment 3:
图3示出了本发明实施例三提供的模式串匹配验证设备的结构,为了便于说明,仅示出了与本发明实施例相关的部分。FIG. 3 shows the structure of a mode string matching verification apparatus according to
本发明实施例的模式串匹配验证设备5包括处理器50、存储器51以及存储在存储器51中并可在处理器50上运行的计算机程序52。该处理器50执行计算机程序52时实现上述方法实施例中的步骤,例如图1所示的步骤S101至S103。或者,处理器50执行计算机程序52时实现上述装置实施例中各单元的功能,例如图3所示单元31至33的功能。The pattern string matching
在本发明实施例中,云服务器、数据访问端、数据拥有端协同完成模式串的匹配验证,在匹配验证过程中采用后缀数组作为云服务器匹配过程的索引, 提高了模式串匹配的效率,通过动态可验证数据结构中的文本证明集合、后缀证明集合完成验证证据的查找,通过动态可验证数据结构中的文本累加值、后缀累加值完成匹配结果的验证,此外,数据访问端存储着固定大小的公钥,使得验证更为简洁。数据拥有端生成的动态可验证结构,实现了数据拥有端、云服务器上数据的动态更新,在更新过程中有效地降低了数据拥有端的计算开销、以及数据拥有端与云服务器的通信开销。In the embodiment of the present invention, the cloud server, the data access end, and the data Owner cooperate to complete the matching verification of the pattern string, and the suffix array is used as the index of the cloud server matching process in the matching verification process. The efficiency of the pattern string matching is improved, the verification evidence is searched through the text proof set and the suffix proof set in the dynamic verifiable data structure, and the matching result is verified by the text accumulating value and the suffix accumulating value in the dynamically verifiable data structure. In addition, the data access side stores a fixed-size public key, making verification more concise. The dynamic verifiable structure generated by the data owner realizes the dynamic update of data on the data owner and the cloud server, and effectively reduces the calculation overhead of the data owner and the communication overhead between the data owner and the cloud server in the update process.
实施例四:Embodiment 4:
在本发明实施例中,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述方法实施例中的步骤,例如,图1所示的步骤S101至S103。或者,该计算机程序被处理器执行时实现上述装置实施例中各单元的功能,例如图3所示单元31至33的功能。In an embodiment of the present invention, there is provided a computer readable storage medium storing a computer program, which when executed by a processor, implements the steps in the foregoing method embodiments, for example, FIG. Steps S101 to S103 are shown. Alternatively, the computer program, when executed by the processor, implements the functions of the various units of the apparatus embodiments described above, such as the functions of
在本发明实施例中,云服务器、数据访问端、数据拥有端协同完成模式串的匹配验证,在匹配验证过程中采用后缀数组作为云服务器匹配过程的索引,提高了模式串匹配的效率,通过动态可验证数据结构中的文本证明集合、后缀证明集合完成验证证据的查找,通过动态可验证数据结构中的文本累加值、后缀累加值完成匹配结果的验证,此外,数据访问端存储着固定大小的公钥,使得验证更为简洁。数据拥有端生成的动态可验证结构,实现了数据拥有端、云服务器上数据的动态更新,在更新过程中有效地降低了数据拥有端的计算开销、以及数据拥有端与云服务器的通信开销。In the embodiment of the present invention, the cloud server, the data access end, and the data Owner cooperate to complete the matching verification of the pattern string, and the suffix array is used as the index of the cloud server matching process in the matching verification process, thereby improving the efficiency of the pattern string matching. The textual proof set and the suffix proof set in the dynamic verifiable data structure complete the verification of the evidence, and the verification result is completed by the text accumulating value and the suffix accumulating value in the dynamically verifiable data structure, and the data access end stores the fixed size. The public key makes the verification more concise. The dynamic verifiable structure generated by the data owner realizes the dynamic update of data on the data owner and the cloud server, and effectively reduces the calculation overhead of the data owner and the communication overhead between the data owner and the cloud server in the update process.
本发明实施例的计算机可读存储介质可以包括能够携带计算机程序代码的任何实体或装置、记录介质,例如,ROM/RAM、磁盘、光盘、闪存等存储器。The computer readable storage medium of the embodiments of the present invention may include any entity or device capable of carrying computer program code, a recording medium such as a ROM/RAM, a magnetic disk, an optical disk, a flash memory, or the like.
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。 The above is only the preferred embodiment of the present invention, and is not intended to limit the present invention. Any modifications, equivalent substitutions and improvements made within the spirit and principles of the present invention should be included in the protection of the present invention. Within the scope.
Claims (10)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2017/088959 WO2018232554A1 (en) | 2017-06-19 | 2017-06-19 | Pattern string matching verification method, device, device and storage medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2017/088959 WO2018232554A1 (en) | 2017-06-19 | 2017-06-19 | Pattern string matching verification method, device, device and storage medium |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2018232554A1 true WO2018232554A1 (en) | 2018-12-27 |
Family
ID=64736185
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2017/088959 Ceased WO2018232554A1 (en) | 2017-06-19 | 2017-06-19 | Pattern string matching verification method, device, device and storage medium |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2018232554A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12019701B2 (en) | 2021-07-27 | 2024-06-25 | International Business Machines Corporation | Computer architecture for string searching |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060104518A1 (en) * | 2004-11-15 | 2006-05-18 | Tzu-Jian Yang | System and method of string matching for uniform data classification |
| CN104102714A (en) * | 2014-07-16 | 2014-10-15 | 上海交通大学 | Outsourcing data inquiry and verification method and system based on accumulator and Bloom filter |
| CN104394155A (en) * | 2014-11-27 | 2015-03-04 | 暨南大学 | Multi-user cloud encryption keyboard searching method capable of verifying integrity and completeness |
| CN106776791A (en) * | 2016-11-23 | 2017-05-31 | 深圳大学 | A kind of pattern matching verification method and device based on cloud service |
-
2017
- 2017-06-19 WO PCT/CN2017/088959 patent/WO2018232554A1/en not_active Ceased
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060104518A1 (en) * | 2004-11-15 | 2006-05-18 | Tzu-Jian Yang | System and method of string matching for uniform data classification |
| CN104102714A (en) * | 2014-07-16 | 2014-10-15 | 上海交通大学 | Outsourcing data inquiry and verification method and system based on accumulator and Bloom filter |
| CN104394155A (en) * | 2014-11-27 | 2015-03-04 | 暨南大学 | Multi-user cloud encryption keyboard searching method capable of verifying integrity and completeness |
| CN106776791A (en) * | 2016-11-23 | 2017-05-31 | 深圳大学 | A kind of pattern matching verification method and device based on cloud service |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12019701B2 (en) | 2021-07-27 | 2024-06-25 | International Business Machines Corporation | Computer architecture for string searching |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN114048448B (en) | Dynamic searchable encryption method and device based on block chain | |
| CN102938767B (en) | The fuzzy keyword search methodology that efficiently can verify that based on the outer packet system of cloud data | |
| CN106776904B (en) | The fuzzy query encryption method of dynamic authentication is supported in a kind of insincere cloud computing environment | |
| CN106776791B (en) | Pattern string matching verification method and device based on cloud service | |
| JP7778897B2 (en) | METHOD AND APPARATUS FOR PROPAGATING BLOCKS IN A BLOCKCHAIN NETWORK | |
| CN103607405B (en) | A cloud storage-oriented ciphertext search authentication method | |
| CN112182630B (en) | Symmetric searchable encryption method, device, equipment and medium | |
| CN108197499B (en) | Verifiable ciphertext data range query method | |
| AU2018355092B2 (en) | Witness blocks in blockchain applications | |
| CN103067363B (en) | Index conversion method for public data integrity checking | |
| CN106991148B (en) | A database verification system and method supporting full update operation | |
| CN111177225A (en) | Account state existence proving method and device and state inquiring method and device | |
| CN115438230B (en) | Safe and efficient multi-dimensional range query method for dynamic encryption cloud data | |
| CN115225409A (en) | Cloud data safety deduplication method based on multi-backup joint verification | |
| CN110908959A (en) | A Dynamic Searchable Encryption Method Supporting Multiple Keywords and Result Sorting | |
| CN110460447B (en) | Hash binary tree-based edge calculation data auditing system and auditing method | |
| Ray et al. | A new lightweight symmetric searchable encryption scheme for string identification | |
| CN116579026A (en) | Cloud data integrity auditing method, device, equipment and storage medium | |
| CN109783456B (en) | Deduplication structure construction method, deduplication method, file retrieval method, deduplication system | |
| CN119675860B (en) | A multi-user revocable and searchable encryption method based on blockchain | |
| WO2018232554A1 (en) | Pattern string matching verification method, device, device and storage medium | |
| CN117972747A (en) | Searchable encryption method, storage medium and computer device with forward security based on blockchain | |
| CN112732789A (en) | Searchable encryption method based on block chain and electronic equipment | |
| CN103309973A (en) | Method and system for inquiring verifiable outsourced data | |
| CN112671712A (en) | Cloud data integrity verification method and system supporting efficient dynamic update |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17914184 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 15/05/2020) |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 17914184 Country of ref document: EP Kind code of ref document: A1 |