本技術(shù)涉及計算機(jī),尤其涉及區(qū)塊鏈領(lǐng)域,具體涉及一種數(shù)據(jù)處理方法、一種數(shù)據(jù)處理裝置、一種計算機(jī)設(shè)備、一種計算機(jī)可讀存儲介質(zhì)及一種計算機(jī)程序產(chǎn)品。
背景技術(shù):
1、mpc(multi-party?computation,安全多方計算)是一種重要的加密安全方式。
2、目前,mpc主要通過將秘鑰打碎成多個秘鑰份額(或者稱為秘鑰分片),并由去中心化網(wǎng)絡(luò)中的各參與方持有單個秘鑰份額,來實現(xiàn)多方協(xié)商簽名,達(dá)到分散風(fēng)險的目的。然而,去中心化網(wǎng)絡(luò)中的一個或多個參與方可能會丟失秘鑰份額,給秘鑰的安全性帶來較大的威脅;例如,在3分片場景下,參與方丟失了一個秘鑰分片后雖然仍然能夠基于剩余兩個參與方持有的秘鑰份額實現(xiàn)協(xié)商簽名,但是一旦剩余兩個參與方中的任一參與方也丟失秘鑰份額,則導(dǎo)致完整秘鑰丟失,意味著數(shù)字資產(chǎn)的丟失。
3、因此,如何提升秘鑰的安全性成為數(shù)字資產(chǎn)保護(hù)領(lǐng)域的重要研究話題。
技術(shù)實現(xiàn)思路
1、本技術(shù)實施例提供一種數(shù)據(jù)處理方法、裝置、設(shè)備、介質(zhì)及程序產(chǎn)品,能夠通過恢復(fù)秘鑰分片的方式,提升秘鑰的安全性,從而高效保護(hù)數(shù)字資產(chǎn)。
2、一方面,本技術(shù)實施例提供了一種數(shù)據(jù)處理方法,該方法包括:
3、響應(yīng)于第一參與方集合的秘鑰重分配需求,獲取第一參與方集合中的第i參與方持有的秘鑰份額對應(yīng)的秘鑰碎片;第一參與方集合中包含多個參與方,其中部分參與方丟失其所持有的秘鑰份額;第i參與方為未丟失秘鑰份額的任一參與方;
4、對秘鑰碎片進(jìn)行秘鑰重分配處理,生成秘鑰碎片對應(yīng)的多個子秘鑰份額和承諾信息;承諾信息用于指示第i參與方持有的公鑰和秘鑰碎片的真實性,且秘鑰碎片與公鑰具有匹配關(guān)系;
5、將秘鑰對應(yīng)的公鑰和承諾信息廣播至第二參與方集合中進(jìn)行校驗處理,使得第二參與方集合中的參與方返回校驗結(jié)果;
6、若校驗結(jié)果指示針對公鑰和承諾信息均校驗成功,則基于多個子秘鑰份額為第二參與方集合中的第j參與方分配子秘鑰份額,使得第j參與方成為持有秘鑰的新的參與方;第j參與方為第二參與方集合中的任一參與方。
7、本技術(shù)實施例中,第一參與方集合中未丟失秘鑰份額的第i參與方,在確定第一參與方集合中產(chǎn)生秘鑰重分配需求(如第一參與方集合中存在一個或多個參與方丟失其持有的秘鑰份額)時,可以先基于其持有的秘鑰份額計算該秘鑰份額對應(yīng)的秘鑰碎片,該秘鑰碎片是組成密鑰的一部分;然后,第i參與方對該秘鑰碎片進(jìn)行秘鑰重分配處理,生成多個子秘鑰份額和承諾信息。進(jìn)一步的,第i參與方先將秘鑰對應(yīng)的公鑰和承諾信息廣播至第二參與方集合,以便于第二參與方集合中的參與方先對公鑰和承諾信息進(jìn)行校驗,以此確保第i參與方不是作惡方,從而維護(hù)數(shù)據(jù)安全性;第i參與方在接收到第二參與方集合返回的校驗結(jié)果,且該校驗結(jié)果為校驗成功的情況下,第i參與方再基于多個子秘鑰份額為第二參與方集合中的第j參與方分配子秘鑰份額,從而使得該第j參與方基于被分配的子秘鑰份額稱為持有秘鑰的新的參與方。由此可見,本技術(shù)實施例在檢測到第一參與方集合中存在秘鑰重分配需求時,可以基于第i參與方持有的秘鑰份額,幫助恢復(fù)原本數(shù)量的秘鑰份額,從而確保秘鑰的安全性。例如,秘鑰原本被劃分為3個秘鑰份額,但存在一個秘鑰份額丟失,則采用本方案提供的秘鑰找回能力,從丟失后只剩余2個秘鑰份額恢復(fù)回?fù)碛?個秘鑰份額,以此保障秘鑰的安全性。
8、另一方面,本技術(shù)實施例提供了一種數(shù)據(jù)處理裝置,該裝置包括:
9、獲取單元,用于響應(yīng)于第一參與方集合的秘鑰重分配需求,獲取第一參與方集合中的第i參與方持有的秘鑰份額對應(yīng)的秘鑰碎片;第一參與方集合中包含多個參與方,其中部分參與方丟失其所持有的秘鑰份額;第i參與方為未丟失秘鑰份額的任一參與方;
10、處理單元,用于對秘鑰碎片進(jìn)行秘鑰重分配處理,生成秘鑰碎片對應(yīng)的多個子秘鑰份額和承諾信息;承諾信息用于指示第i參與方持有的公鑰和秘鑰碎片的真實性,且秘鑰碎片與公鑰具有匹配關(guān)系;
11、處理單元,還用于將秘鑰對應(yīng)的公鑰和承諾信息廣播至第二參與方集合中進(jìn)行校驗處理,使得第二參與方集合中的參與方返回校驗結(jié)果;
12、處理單元,還用于若校驗結(jié)果指示針對公鑰和承諾信息均校驗成功,則基于多個子秘鑰份額為第二參與方集合中的第j參與方分配子秘鑰份額,使得第j參與方成為持有秘鑰的新的參與方;第j參與方為第二參與方集合中的任一參與方。
13、在一種實現(xiàn)方式中,第一參與方集合的秘鑰重分配需求的產(chǎn)生條件,包括:
14、若第一參與方集合中丟失秘鑰份額的參與方的數(shù)量,小于或等于第一參與方集合關(guān)聯(lián)的簽名閾值,則確定第一參與方集合產(chǎn)生秘鑰重分配需求;
15、其中,簽名閾值用于指示第一參與方集合最大允許丟失秘鑰份額的數(shù)量;若第一參與方集合中丟失秘鑰份額的參與方的數(shù)量大于簽名閾值,則第一參與方集合中未丟失秘鑰份額的參與方的數(shù)量不滿足協(xié)商簽名所需參與方的數(shù)量要求。
16、在一種實現(xiàn)方式中,處理單元,用于獲取第一參與方集合中的第i參與方持有的秘鑰份額對應(yīng)的秘鑰碎片時,具體用于:
17、獲取秘鑰對應(yīng)的拉格朗日插值多項式;拉格朗日插值多項式的自變量為第一參與方集合中參與方的參與方標(biāo)識,拉格朗日插值多項式的因變量為第一參與方集合中參與方持有的秘鑰份額;
18、獲取第一參與方集合中除第i參與方外,且參與協(xié)商簽名的其他參與方的參與方標(biāo)識;
19、基于參與協(xié)商簽名的其他參與方的參與方標(biāo)識,第i參與方的參與方標(biāo)識,以及秘鑰對應(yīng)的拉格朗日插值多項式,計算第i參與方持有的秘鑰份額的拉格朗日插值系數(shù);
20、根據(jù)第i參與方持有的秘鑰份額和拉格朗日插值系數(shù),得到第i參與方持有的秘鑰份額對應(yīng)的秘鑰碎片;其中,第i參與方持有的秘鑰碎片是組成秘鑰的多個秘鑰碎片中的一個。
21、在一種實現(xiàn)方式中,處理單元,用于對秘鑰碎片進(jìn)行秘鑰重分配處理,生成秘鑰碎片對應(yīng)的多個子秘鑰份額和承諾信息時,具體用于:
22、獲取第一參與方集合關(guān)聯(lián)的簽名閾值,和第二參與方集合所包含參與方的數(shù)量;
23、基于拉格朗日插值算法、簽名閾值和第二參與方集合所包含參與方的數(shù)量,構(gòu)建第i參與方持有的秘鑰碎片對應(yīng)的拉格朗日插值多項式;
24、獲取第二參與方集合中待分配子秘鑰份額的各參與方的參與方標(biāo)識,并將各參與方的參與方標(biāo)識分別輸入至秘鑰碎片對應(yīng)的拉格朗日插值多項式,生成秘鑰碎片對應(yīng)的多個子秘鑰份額;參與方標(biāo)識與子秘鑰份額具有對應(yīng)關(guān)系;以及,
25、基于秘鑰碎片對應(yīng)的拉格朗日插值多項式,生成秘鑰碎片的承諾信息。
26、在一種實現(xiàn)方式中,處理單元,用于若目標(biāo)校驗結(jié)果指示針對公鑰和承諾信息均校驗成功,則基于多個子秘鑰份額為第二參與方集合中的第j參與方分配子秘鑰份額時,具體用于:
27、獲取第一超時時限;
28、若在第一超時時限內(nèi)接收到第二參與方集合中待分配子秘鑰份額的各參與方返回的目標(biāo)校驗結(jié)果,且每個目標(biāo)校驗結(jié)果均指示針對公鑰和承諾信息均校驗成功,則將多個子秘鑰份額中,與第二參與方集合中第j參與方的參與方標(biāo)識具有對應(yīng)關(guān)系的子秘鑰份額分配至第j參與方。
29、在一種實現(xiàn)方式中,處理單元,還用于:
30、若在第一超時時限內(nèi),第二參與方集合中待分配子秘鑰份額的參與方中至少一個參與方未返回的目標(biāo)校驗結(jié)果,或者存在目標(biāo)校驗結(jié)果指示對公鑰和承諾信息中的至少一項校驗失敗,則輸出重分配提示信息;
31、重分配提示信息用于提示本次秘鑰重分配失敗。
32、在一種實現(xiàn)方式中,處理單元,還用于:
33、獲取第二超時時限;
34、若在第二超時時限內(nèi)接收到第二參與方集合中待分配子秘鑰份額的各參與方返回的份額確認(rèn)消息,則銷毀第i參與方持有的秘鑰份額;份額確認(rèn)消息用于指示:參與方對接收到的子秘鑰份額校驗成功;
35、將第i參與方退出所述第一參與方集合。
36、本技術(shù)實施例中,第i參與方在檢測到第一參與方集合中存在秘鑰重分配需求時,可以基于第i參與方持有的秘鑰份額,幫助恢復(fù)原本數(shù)量的秘鑰份額,從而確保秘鑰的安全性。例如,秘鑰原本被劃分為3個秘鑰份額,但存在一個秘鑰份額丟失,則采用本方案提供的秘鑰找回能力,從丟失后只剩余2個秘鑰份額恢復(fù)回?fù)碛?個秘鑰份額,以此保障秘鑰的安全性。
37、另一方面,本技術(shù)實施例提供了一種數(shù)據(jù)處理方法,該方法包括:
38、接收第一參與方集合中第i參與方廣播的公鑰和承諾信息;其中,第i參與方是第一參與方集合所包含的多個參與方中,未丟失秘鑰份額的參與方;承諾信息是第i參與方對持有的秘鑰份額對應(yīng)的秘鑰碎片進(jìn)行秘鑰重分配處理得到的;
39、分別對公鑰和所述承諾信息進(jìn)行校驗處理,得到校驗結(jié)果,并將校驗結(jié)果返回至第i參與方;使得第i參與方在確定校驗結(jié)果指示第二參與方集合中的參與方針對公鑰和所述承諾信息均校驗成功時,基于多個子秘鑰份額為第二參與方集合中的第j參與方分配子秘鑰份額;
40、接收第i參與方發(fā)送的子秘鑰份額,并基于子秘鑰份額將第二參與方集合中的第j參與方作為持有秘鑰的新的參與方。
41、本技術(shù)實施例中,第二參與方中的第j參與方可以先接收第一參與方集合中未丟失秘鑰份額的參與方,如第i參與方,發(fā)送的公鑰和承諾信息;然后,對該公鑰和承諾信息進(jìn)行校驗,以確定第i參與方的身份是安全可靠的;最后,第j參與方才從第i參與方獲取子秘鑰份額,并基于該子秘鑰份額將第j參與方作為持有秘鑰的新的參與方。由此可見,本技術(shù)實施例在秘鑰重分配的過程中,通過先校驗待發(fā)送子秘鑰份額的第i參與方的身份,再校驗成功后才發(fā)送子秘鑰份額的方式,可以確保第j參與方是從安全的第i參與方中獲取子秘鑰份額,從而確?;谧用罔€份額所得到的秘鑰份額的正確性,從而避免作惡方破壞秘鑰,有效保障秘鑰的安全性。
42、另一方面,本技術(shù)實施例提供了一種數(shù)據(jù)處理裝置,該裝置包括:
43、接收單元,用于接收第一參與方集合中第i參與方廣播的公鑰和承諾信息;其中,第i參與方是第一參與方集合所包含的多個參與方中,未丟失秘鑰份額的參與方;承諾信息是第i參與方對持有的秘鑰份額對應(yīng)的秘鑰碎片進(jìn)行秘鑰重分配處理得到的;
44、處理單元,用于分別對公鑰和所述承諾信息進(jìn)行校驗處理,得到校驗結(jié)果,并將校驗結(jié)果返回至第i參與方;使得第i參與方在確定校驗結(jié)果指示第二參與方集合中的參與方針對公鑰和所述承諾信息均校驗成功時,基于多個子秘鑰份額為第二參與方集合中的第j參與方分配子秘鑰份額;
45、處理單元,還用于接收第i參與方發(fā)送的子秘鑰份額,并基于子秘鑰份額將第二參與方集合中的第j參與方作為持有秘鑰的新的參與方。
46、在一種實現(xiàn)方式中,第一參與方集合中未丟失秘鑰份額的參與方的數(shù)量為多個;承諾信息中包含公鑰;處理單元,用于分別對公鑰和承諾信息進(jìn)行校驗處理,得到目標(biāo)校驗結(jié)果時,具體用于:
47、獲取第一參與方集合中未丟失秘鑰份額的每個參與方廣播的公鑰,并驗證每個參與方廣播的公鑰是否相同,生成第一校驗結(jié)果;其中,若每個參與方廣播的公鑰相同,則第一校驗結(jié)果指示針對公鑰校驗成功;若存在參與方發(fā)送的公鑰與其他參與方發(fā)送的公鑰不同,則第一校驗結(jié)果指示針對公鑰校驗失??;
48、以及,驗證第一參與方集合中第i參與方發(fā)送的公鑰,和第i參與方發(fā)送的承諾信息中包含的公鑰是否相同,生成第二校驗結(jié)果;其中,若第i參與方發(fā)送的公鑰和第i參與方發(fā)送的承諾信息中包含的公鑰,則第二校驗結(jié)果指示針對第i參與方發(fā)送的承諾信息校驗成功;
49、基于第一校驗結(jié)果和第二校驗結(jié)果,生成目標(biāo)校驗結(jié)果。
50、在一種實現(xiàn)方式中,承諾信息中包含第一參與方集合關(guān)聯(lián)的簽名閾值,以及第一參與方集合包含的參與方的數(shù)量;
51、處理單元,用于基于子秘鑰份額將第二參與方集合中的第j參與方作為持有秘鑰的新的參與方時,具體用于:
52、基于拉格朗日插值算法、簽名閾值和第一參與方集合包含的參與方的數(shù)量,構(gòu)建秘鑰的拉格朗日插值多項式;
53、校驗接收到的子秘鑰份額是否為秘鑰對應(yīng)的拉格朗日插值多項式中的坐標(biāo)點;
54、若是,則基于子秘鑰份額確定第j參與方持有的秘鑰份額;
55、基于第j參與方持有的秘鑰份額生成份額確認(rèn)消息,并將份額確認(rèn)消息發(fā)送給第一參與方集合中每個參與方,以及第二參與方集合中每個參與方;以及,
56、若接收到第二參與方集合中各參與方發(fā)送的份額確認(rèn)消息,則將第二參與方集合中的第j參與方作為持有秘鑰的新的參與方。
57、在一種實現(xiàn)方式中,處理單元,用于基于子秘鑰份額確定第j參與方持有的秘鑰份額時,具體用于:
58、獲取第一參與方集合中除第i參與方外的,其他未丟失秘鑰份額的參與方發(fā)送的子秘鑰份額;
59、將接收到的各子秘鑰份額相加,得到相加秘鑰分額;
60、將相加秘鑰份額作為第j參與方持有的秘鑰份額。
61、本技術(shù)實施例中,第二參與方中的第j參與方可以先接收第一參與方集合中未丟失秘鑰份額的參與方,如第i參與方,發(fā)送的公鑰和承諾信息;然后,對該公鑰和承諾信息進(jìn)行校驗,以確定第i參與方的身份是安全可靠的;最后,第j參與方才從第i參與方獲取子秘鑰份額,并基于該子秘鑰份額將第j參與方作為持有秘鑰的新的參與方。由此可見,本技術(shù)實施例在秘鑰重分配的過程中,通過先校驗待發(fā)送子秘鑰份額的第i參與方的身份,再校驗成功后才發(fā)送子秘鑰份額的方式,可以確保第j參與方是從安全的第i參與方中獲取子秘鑰份額,從而確保基于子秘鑰份額所得到的秘鑰份額的正確性,從而避免作惡方破壞秘鑰,有效保障秘鑰的安全性。
62、另一方面,本技術(shù)實施例提供了一種計算機(jī)設(shè)備,該設(shè)備包括:
63、處理器,用于加載并執(zhí)行計算機(jī)程序;
64、計算機(jī)可讀存儲介質(zhì),該計算機(jī)可讀存儲介質(zhì)中存儲有計算機(jī)程序,該計算機(jī)程序被處理器執(zhí)行時,實現(xiàn)上述數(shù)據(jù)處理方法。
65、另一方面,本技術(shù)實施例提供了一種計算機(jī)可讀存儲介質(zhì),計算機(jī)可讀存儲介質(zhì)存儲有計算機(jī)程序,該計算機(jī)程序適于由處理器加載并執(zhí)行上述數(shù)據(jù)處理方法。
66、另一方面,本技術(shù)實施例提供了一種計算機(jī)程序產(chǎn)品或計算機(jī)程序,該計算機(jī)程序產(chǎn)品或計算機(jī)程序包括計算機(jī)指令,該計算機(jī)指令存儲在計算機(jī)可讀存儲介質(zhì)中。計算機(jī)設(shè)備的處理器從計算機(jī)可讀存儲介質(zhì)讀取該計算機(jī)指令,計算機(jī)指令被處理器執(zhí)行時實現(xiàn)上述的數(shù)據(jù)處理方法。