本發(fā)明涉及數(shù)字身份驗(yàn)證領(lǐng)域,尤其涉及一種混合表達(dá)生成方法、裝置、電子設(shè)備及介質(zhì)。
背景技術(shù):
1、可驗(yàn)證表達(dá)(verifiable?presentation,簡稱vp)是可驗(yàn)證憑證持有方(holder)方向驗(yàn)證方(verifier)表明自己身份的數(shù)據(jù),可驗(yàn)證表達(dá)由vp元數(shù)據(jù)(presentationmetadata)、vc列表(verifiable?credentials)和證明(proofs)三部分組成。通常每個vc可包含關(guān)于subject的多條聲明claims,而每個vp又可包含多個vc。在一些業(yè)務(wù)場景中,holder需要向verifier證明多個屬性,即需要同時出示多條claims,然而這些claims很有可能分別包含于holder所持有的多個vc中,因此holder需要將不同的vc組合從而生成最終的vp,然而組合vc生成vp方式有很多,針對復(fù)雜vc及復(fù)雜vp選擇合理的方式組合vc生成適宜的vp即可驗(yàn)證表達(dá)成為亟需解決的問題。
2、為了便于理解,不妨假設(shè)holder需要向verifier出示5條claims,即,,,和。holder所持有的vc及其包含的claims分別為:,,,,。holder在生成vp時,可以選擇將和同時包含在一個vp中,也可以選擇將,和同時包含在一個vp中,還有其它的組合方式在此不再枚舉。如果每個vc的驗(yàn)證成本相同,則第二種方式生成的vp會導(dǎo)致verifier多執(zhí)行一次vc驗(yàn)證操作;如果每個vc驗(yàn)證成本不同,則holder需要先考慮不同vc組合方式生成vp時所帶來的驗(yàn)證成本,然后從中選擇驗(yàn)證成本盡可能低的方式生成vp,從而節(jié)省verifier的驗(yàn)證開銷。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提供一種混合表達(dá)生成方法、裝置、電子設(shè)備及介質(zhì),用以解決現(xiàn)有技術(shù)中生成可驗(yàn)證表達(dá)生成不合理的問題,實(shí)現(xiàn)了通過分析和找出證書之間的內(nèi)在關(guān)聯(lián),減少可驗(yàn)證表達(dá)所需要包含的證書數(shù)量,從而降低驗(yàn)證開銷,提高驗(yàn)證效率。
2、根據(jù)本發(fā)明的第一方面,本發(fā)明提供了一種混合表達(dá)生成方法,應(yīng)用于持有方,所述方法包括:
3、從驗(yàn)證方獲取需要出示聲明集合和驗(yàn)證需求;
4、基于隱私集合求交協(xié)議和所述需要出示聲明集合從持有方所有依賴聲明的證書中選取證書集合,其中,所述證書包括可驗(yàn)證憑證和/或傳統(tǒng)數(shù)字證書;
5、根據(jù)所述驗(yàn)證需求從最優(yōu)證書組合算法和近似最優(yōu)證書組合算法中選取一個作為目標(biāo)算法;
6、對所述證書集合應(yīng)用所述目標(biāo)算法查找能夠覆蓋所述需要出示聲明集合的證書集合子集;
7、為所述證書集合子集生成包括元數(shù)據(jù)、可驗(yàn)證表達(dá)和傳統(tǒng)數(shù)字證書的混合表達(dá)并發(fā)送給驗(yàn)證方。
8、根據(jù)本發(fā)明的混合表達(dá)生成方法,所述基于隱私集合求交協(xié)議和所述需要出示聲明集合從持有方所有依賴聲明的證書中選取證書集合,包括:
9、獲取持有方和驗(yàn)證方共同選取的隱私集合求交協(xié)議,以及持有方和驗(yàn)證方各自的頒發(fā)方集合;
10、利用選取的隱私集合求交協(xié)議確定兩個頒發(fā)方集合的交集得到頒發(fā)方交集;
11、從持有方的所有可驗(yàn)證憑證和/或傳統(tǒng)數(shù)字證書中選取符合預(yù)設(shè)條件的證書,并將所選取的證書組成集合得到證書集合,其中,所述預(yù)設(shè)條件為證書同時滿足所包括的聲明中至少一個屬于所述需要出示聲明集合且頒發(fā)方屬于所述頒發(fā)方交集。
12、根據(jù)本發(fā)明的混合表達(dá)生成方法,所述根據(jù)所述驗(yàn)證需求從最優(yōu)證書組合算法和近似最優(yōu)證書組合算法中選取一個作為目標(biāo)算法,包括:
13、在所述驗(yàn)證需求為要可驗(yàn)證表達(dá)驗(yàn)證成本最低的情況下,則選取所述最優(yōu)證書組合算法作為目標(biāo)算法;
14、在所述驗(yàn)證需求為要求可驗(yàn)證表達(dá)生成速度最快的情況下,則選取所述近似最優(yōu)證書組合算法作為目標(biāo)算法。
15、根據(jù)本發(fā)明的混合表達(dá)生成方法,所述最優(yōu)證書組合算法包括:
16、將所述需要出示聲明集合、所述證書集合以及可用cpu數(shù)作為算法輸入;
17、步驟a1,令可用cpu的編號為,令等于證書集合所包括的元素?cái)?shù),將所述證書集合記作,使用來表示編號為的證書;
18、步驟a2,對于編號為的cpu,,令,,,執(zhí)行以下步驟a21至步驟a26:
19、步驟a21,如果,則跳轉(zhuǎn)至步驟a3;
20、步驟a22,令表示的長度為的二進(jìn)制表示;
21、步驟a23,令,,;
22、步驟a24,對于,如果,則,,,其中表示所包括聲明構(gòu)成的集合,表示的驗(yàn)證成本;
23、步驟a25,如果并且,則,,其中表示需要出示聲明集合;
24、步驟a26,,跳回步驟a21;
25、步驟a3,在所有cpu完成計(jì)算任務(wù)之后,選擇編號,滿足,;
26、步驟a4,將集合作為所述證書集合子集輸出。
27、根據(jù)本發(fā)明的混合表達(dá)生成方法,所述近似最優(yōu)證書組合算法包括:
28、將所述需要出示聲明集合、所述證書集合作為算法輸入;
29、步驟b1,令,,,將所述證書集合記作,使用表示證書集合,使用來表示編號為的證書;
30、步驟b2,當(dāng)時,其中表示需要出示聲明集合,重復(fù)執(zhí)行以下步驟b21至步驟b24:
31、步驟b21,查找證書,滿足對于任意證書,都有,其中表示證書的驗(yàn)證成本,表示證書所包括聲明構(gòu)成的集合,表示證書的驗(yàn)證成本,表示證書所包括聲明構(gòu)成的集合,符號表示對兩個集合做減法,符號表示取集合元素個數(shù);
32、步驟b22,令;
33、步驟b23,令;
34、步驟b24,令;
35、步驟b3,將集合作為所述證書集合子集輸出。
36、根據(jù)本發(fā)明的混合表達(dá)生成方法,所述為所述證書集合子集生成包括元數(shù)據(jù)、可驗(yàn)證表達(dá)和傳統(tǒng)數(shù)字證書的混合表達(dá)并發(fā)送給驗(yàn)證方,包括:
37、基于所述證書集合子集的創(chuàng)建可驗(yàn)證表達(dá);
38、獲取描述生成混合表達(dá)屬性的信息得到混合表達(dá)元數(shù)據(jù);
39、對所述混合表達(dá)元數(shù)據(jù)、可驗(yàn)證表達(dá)以及傳統(tǒng)數(shù)字證書進(jìn)行打包生成混合表達(dá);
40、將所述混合表達(dá)發(fā)送給驗(yàn)證方。
41、根據(jù)本發(fā)明的混合表達(dá)生成方法,所述方法還包括:
42、從驗(yàn)證方獲取所述混合表達(dá)的驗(yàn)證結(jié)果;
43、在所述驗(yàn)證結(jié)果表征所述混合表達(dá)中的所述可驗(yàn)證表達(dá)和所述傳統(tǒng)數(shù)字證書均通過驗(yàn)證的情況下,則允許與驗(yàn)證方進(jìn)行數(shù)據(jù)交互;
44、在所述驗(yàn)證結(jié)果表征所述混合表達(dá)中的任一可驗(yàn)證表達(dá)或任一傳統(tǒng)數(shù)字證書未通過驗(yàn)證的情況下,則禁止與驗(yàn)證方進(jìn)行數(shù)據(jù)交互。
45、根據(jù)本發(fā)明的第二方面,本發(fā)明還提供了一種混合表達(dá)生成裝置,應(yīng)用于持有方,所述裝置包括:
46、獲取模塊,用于從驗(yàn)證方獲取需要出示聲明集合和驗(yàn)證需求;
47、證書選取模塊,用于基于隱私集合求交協(xié)議和所述需要出示聲明集合從持有方所有依賴聲明的證書中選取證書集合,其中,所述證書包括可驗(yàn)證憑證和/或傳統(tǒng)數(shù)字證書;
48、算法選取模塊,用于根據(jù)所述驗(yàn)證需求從最優(yōu)證書組合算法和近似最優(yōu)證書組合算法中選取一個作為目標(biāo)算法;
49、查找模塊,用于對所述證書集合應(yīng)用所述目標(biāo)算法查找能夠覆蓋所述需要出示聲明集合的證書集合子集;
50、生成模塊,用于為所述證書集合子集生成包括元數(shù)據(jù)、可驗(yàn)證表達(dá)和傳統(tǒng)數(shù)字證書的混合表達(dá)并發(fā)送給驗(yàn)證方。
51、根據(jù)本發(fā)明的第三方面,本發(fā)明還提供一種電子設(shè)備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述程序時實(shí)現(xiàn)如上述任一種所述混合表達(dá)生成方法。
52、根據(jù)本發(fā)明的第四方面,本發(fā)明還提供一種非暫態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時實(shí)現(xiàn)如上述任一種所述混合表達(dá)生成方法。
53、本發(fā)明提供的一種混合表達(dá)生成方法,持有方先從驗(yàn)證方獲取需要出示聲明集合和驗(yàn)證需求,然后基于隱私集合求交協(xié)議和需要出示聲明集合實(shí)現(xiàn)對持有方所有依賴聲明的證書的選取,還依據(jù)驗(yàn)證需求從最優(yōu)證書組合算法和近似最優(yōu)證書組合算法中選取一個目標(biāo)算法,接著應(yīng)用目標(biāo)算法對所選取的證書集合實(shí)現(xiàn)覆蓋需要出示聲明集合的證書組合查找,從而得到證書集合子集,最后依據(jù)證書集合子集生成混合表達(dá),為證書的組合提供了選擇性的查找算法,不僅具有更好的靈活性還能提高驗(yàn)證效率,所提出混合表達(dá)還能夠兼顧可驗(yàn)證表達(dá)和傳統(tǒng)數(shù)字證書二者的特點(diǎn),使得各類證書的組合形式更加豐富、靈活。
54、此外,本發(fā)明提供的一種混合表達(dá)生成裝置、一種電子設(shè)備和一種非暫態(tài)計(jì)算機(jī)可讀存儲介質(zhì),同樣能實(shí)現(xiàn)上述技術(shù)效果,這里不再贅述。