1.一種基于云服務的模式串匹配驗證方法,其特征在于,所述方法包括:
預設云服務器接收到數(shù)據(jù)訪問端的模式串匹配查詢請求時,獲取所述模式匹配查詢請求中的待匹配模式串;
所述云服務器將所述待匹配模式串與預先存儲的文本串進行匹配;
當所述待匹配模式串在所述文本串中匹配成功時,所述云服務器根據(jù)所述文本串關聯(lián)的查詢數(shù)據(jù)結構和可驗證數(shù)據(jù)結構,獲取匹配成功的驗證證據(jù),并將所述匹配成功的結果和所述匹配成功的驗證證據(jù)發(fā)送給所述數(shù)據(jù)訪問端,所述可驗證數(shù)據(jù)結構由數(shù)據(jù)擁有端通過預設的哈希函數(shù)對所述文本串進行預處理得到;
所述數(shù)據(jù)訪問端根據(jù)所述待匹配模式串、所述匹配成功的驗證證據(jù)以及與所述文本串關聯(lián)的驗證參數(shù),確定所述匹配成功的結果是否正確。
2.如權利要求1所述的方法,其特征在于,數(shù)據(jù)訪問端接收到模式串匹配查詢請求之前,所述方法還包括:
所述數(shù)據(jù)擁有端根據(jù)所述文本串,生成所述查詢數(shù)據(jù)結構,所述查詢數(shù)據(jù)結構包括所述文本串的后綴數(shù)組和最長公共前綴數(shù)組;
所述數(shù)據(jù)擁有端根據(jù)所述哈希函數(shù),生成所述可驗證數(shù)據(jù)結構,所述可驗證數(shù)據(jù)結構包括第一累加值集合、第二累加值集合、第一哈希樹和第二哈希樹;
所述數(shù)據(jù)擁有端將所述查詢數(shù)據(jù)結構和所述可驗證數(shù)據(jù)結構發(fā)送給所述云服務器,并將所述哈希函數(shù)向所述數(shù)據(jù)訪問端發(fā)布,將所述第一哈希樹和所述第二哈希樹根節(jié)點的累加值設置為所述驗證參數(shù)并發(fā)送給所述數(shù)據(jù)訪問端。
3.如權利要求2所述的方法,其特征在于,所述數(shù)據(jù)擁有端根據(jù)所述哈希函數(shù),生成所述可驗證數(shù)據(jù)結構的步驟,包括:
所述數(shù)據(jù)擁有端通過所述哈希函數(shù)計算所述文本串中每個后綴字符串的累加值,并將所述所有后綴字符串的累加值存儲在所述第一累加值集合中;
所述數(shù)據(jù)擁有端根據(jù)所述后綴數(shù)組和所述第一累加值集合,生成多個后綴元組,根據(jù)所述后綴數(shù)組,構建所述第一哈希樹并獲取所述第一哈希樹根節(jié)點的累加值;
所述數(shù)據(jù)擁有端根據(jù)所述后綴數(shù)組和所述最長公共前綴數(shù)組,生成多個匹配元組,通過所述哈希函數(shù)計算所述匹配元組集合中每個匹配元組的累加值,并將所述所有匹配元組的累加值存儲在所述第二累加值集合中;
所述數(shù)據(jù)擁有端根據(jù)所述第二累加值集合,構建所述第二哈希樹并獲取所述第二哈希樹根節(jié)點的累加值。
4.如權利要求3所述的方法,其特征在于,當所述待匹配模式串在所述文本串中匹配成功時,所述云服務器根據(jù)所述文本串關聯(lián)的查詢數(shù)據(jù)結構和可驗證數(shù)據(jù)結構,獲取匹配成功的驗證證據(jù)的步驟,包括:
獲取所述待匹配模式串在所述文本串中的當前匹配位置,根據(jù)所述查詢數(shù)據(jù)結構,獲取預設數(shù)量個匹配元組,所述預設數(shù)量個匹配元組中包含所述待匹配模式串在所述文本串中所有匹配成功的匹配位置;
根據(jù)所述當前匹配位置和所述待匹配模式串,在所述第一累加值集合中查找相關后綴字符串的累加值,并根據(jù)所述第一哈希樹,獲取用于驗證所述待匹配模式串是否存在于所述文本串中的證據(jù),將所述證據(jù)設置為第一子證據(jù);
在所述第二累加值集合中查找所述預設數(shù)量個匹配元組中預設位置處匹配元組的累加值,并根據(jù)所述第二哈希樹,獲取用于驗證所述預設數(shù)量個匹配元組中開始位置處匹配元組是否真實的證據(jù),并將所述證據(jù)設置為第二子證據(jù);
根據(jù)所述當前匹配位置、預設數(shù)量個匹配元組、相關后綴字符串的累加值、第一子證據(jù)、預設位置處匹配元組的累加值以及所述第二子證據(jù),生成所述匹配成功的驗證證據(jù)。
5.如權利要求4所述的方法,其特征在于,所述數(shù)據(jù)訪問端根據(jù)所述待匹配模式串、所述匹配成功的驗證證據(jù)以及與所述文本串關聯(lián)的驗證參數(shù),確定所述匹配成功的結果是否正確的步驟,包括:
根據(jù)所述待匹配模式串、所述哈希函數(shù)以及所述相關后綴字符串的累加值,計算所述當前匹配位置在所述文本串中所對應后綴字符串的累加值,通過所述累加值、后綴數(shù)組、所述第一子證據(jù)以及所述第一哈希樹根節(jié)點的累加值,確定所述當前匹配位置是否正確;
根據(jù)所述待匹配模式串、所述哈希函數(shù)以及所述預設位置處匹配元組的累加值,計算所述預設數(shù)量個匹配元組中開始位置處匹配元組的累加值,并根據(jù)所述累加值、所述第二子證據(jù)以及所述第二哈希樹根節(jié)點的累加值,確定所述預設數(shù)量個匹配元組包含的所有匹配位置中剩余匹配位置是否正確;
當確定所述當前匹配位置和所述剩余匹配位置正確時,確定所述匹配成功的結果正確。
6.如權利要求5所述的方法,其特征在于,所述方法還包括:
當所述待匹配模式串與所述文本串匹配失敗時,獲取所述待匹配模式串在所述文本串中當前匹配失敗的位置;
根據(jù)所述當前匹配失敗的位置和所述后綴數(shù)組,分別獲取第一后綴字符串和第二后綴字符串在所述文本串所對應的位置,所述第一后綴字符串和所述第二后綴字符串在所述后綴數(shù)組中位置前后相鄰;
根據(jù)所述第一后綴字符串和所述待匹配模式串,獲取所述文本串中第一相關位置處的字符,在所述第一累加值集合中查找所述第一相關位置的下一位置所對應后綴字符串的累加值,并根據(jù)所述第一哈希樹,獲取用于驗證所述第一后綴字符串存在于所述文本串中的第三子證據(jù);
根據(jù)所述第二后綴字符串和所述待匹配模式串,獲取所述文本串中第二相關位置處的字符,在所述第一累加值集合中查找所述第二相關位置的下一位置所對應后綴字符串的累加值,并根據(jù)所述第一哈希樹,獲取用于驗證所述第二后綴字符串存在于所述文本串中的第四子證據(jù);
根據(jù)所述當前匹配失敗的位置、所述第一相關位置處的字符、所述第一相關位置的下一位置所對應后綴字符串的累加值、所述第三證據(jù)、所述第二相關位置處的字符、所述第二相關位置的下一位置所對應后綴字符串的累加值和所述第四證據(jù),生成匹配失敗的驗證證據(jù);
所述云服務器將所述匹配失敗的結果和所述匹配失敗的驗證證據(jù)發(fā)送給所述數(shù)據(jù)訪問端。
7.如權利要求6所述的方法,其特征在于,所述方法還包括:
所述數(shù)據(jù)訪問端根據(jù)所述匹配失敗的驗證證據(jù),確定所述第一后綴字符串和所述第二后綴字符串在所述后綴數(shù)組中的位置是否相鄰;
當所述第一后綴字符串與所述第二后綴字符串位置相鄰時,將所述第一相關位置處的字符與所述待匹配模式串中第一預設位置處的字符進行比較,以確定所述第一后綴字符串是否小于所述待匹配模式串,將所述第二相關位置處的字符與所述待匹配字符串中第二預設位置處的字符進行比較,以確定所述第二后綴字符串是否大于所述待匹配模式串;
當確定所述第一后綴字符串小于所述待匹配模式串、且所述第二后綴字符串大于所述待匹配模式串時,根據(jù)所述哈希函數(shù)、所述第一相關位置的下一位置所對應后綴字符串的累加值以及所述第二相關位置的下一位置所對應后綴字符串的累加值,分別計算所述第一后綴字符串、所述第二后綴字符串的累加值;
根據(jù)所述第三子證據(jù)和所述第一哈希樹根節(jié)點的累加值,確定所述第一后綴字符串是否存在于所述文本串中,根據(jù)所述第四子證據(jù)和所述第以哈希樹根節(jié)點的累加值,確定所述第二后綴字符串是否存在于在所述文本串中;
當確定所述第一后綴字符串和所述第二后綴字符串都存在于所述文本串中時,確定所述待匹配模式串與所述文本串匹配失敗。
8.一種基于云服務的模式串匹配驗證裝置,其特征在于,所述裝置包括:
模式串獲取模塊,用于預設云服務器接收到數(shù)據(jù)訪問端的模式串匹配查詢請求時,獲取所述模式串匹配查詢請求中的待匹配模式串;
模式串匹配模塊,用于所述云服務器將所述待匹配模式串與預先存儲的文本串進行匹配;
證據(jù)獲取模塊,用于當所述待匹配模式串在所述文本串中匹配成功時,所述云服務器根據(jù)所述文本串關聯(lián)的查詢數(shù)據(jù)結構和可驗證數(shù)據(jù)結構,獲取匹配成功的驗證證據(jù),并將所述匹配成功的結果和所述匹配成功的驗證證據(jù)發(fā)送給所述數(shù)據(jù)訪問端,所述可驗證數(shù)據(jù)結構由數(shù)據(jù)擁有端通過預設的哈希函數(shù)對所述文本串進行預處理得到;以及
驗證模塊,用于所述數(shù)據(jù)訪問端根據(jù)所述待匹配模式串、所述匹配成功的驗證證據(jù)以及與文本串關聯(lián)的驗證參數(shù),確定所述匹配成功的結果是否正確。
9.如權利要求8所述的裝置,其特征在于,所述裝置還包括:
查詢數(shù)據(jù)獲取模塊,用于所述數(shù)據(jù)擁有端根據(jù)所述文本串,生成所述查詢數(shù)據(jù)結構,所述查詢數(shù)據(jù)結構包括所述文本串的后綴數(shù)組和最長公共前綴數(shù)組;
可驗證數(shù)據(jù)獲取模塊,用于所述數(shù)據(jù)擁有端根據(jù)所述哈希函數(shù),生成所述可驗證數(shù)據(jù)結構,所述可驗證數(shù)據(jù)結構包括第一累加值集合、第二累加值集合、第一哈希樹和第二哈希樹;以及
數(shù)據(jù)擁有端發(fā)送模塊,用于所述數(shù)據(jù)擁有端將所述查詢數(shù)據(jù)結構和所述可驗證數(shù)據(jù)結構發(fā)送給所述云服務器,并將所述哈希函數(shù)向所述數(shù)據(jù)訪問端發(fā)布,將所述第一哈希樹根節(jié)點和所述第二哈希樹根節(jié)點的累加值設置為所述驗證參數(shù)并發(fā)送給所述數(shù)據(jù)訪問端。
10.如權利要求9所述的裝置,其特征在于,所述可驗證數(shù)據(jù)獲取模塊包括:
第一哈希計算模塊,用于所述數(shù)據(jù)擁有端通過所述哈希函數(shù)計算所述文本串中每個后綴字符串的累加值,并將所述所有后綴字符串的累加值存儲在所述第一累加值集合中;
第一哈希樹構建模塊,用于所述數(shù)據(jù)擁有端根據(jù)所述后綴數(shù)組和所述第一累加值集合,生成多個后綴元組,根據(jù)所述后綴數(shù)組,構建所述第一哈希樹并獲取所述第一哈希樹根節(jié)點的累加值;
第二哈希計算模塊,用于所述數(shù)據(jù)擁有端根據(jù)所述后綴數(shù)組和所述最長公共前綴數(shù)組,生成多個匹配元組,通過所述哈希函數(shù)計算所述匹配元組集合中每個匹配元組的累加值,并將所述所有匹配元組的累加值存儲在所述第二累加值集合中;以及
第二哈希樹建立模塊,用于所述數(shù)據(jù)擁有端根據(jù)所述第二累加值集合,構建所述第二哈希樹并獲取所述第二哈希函數(shù)根節(jié)點的累加值。