欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種密鑰生成方法、設(shè)備及服務(wù)器的制作方法

文檔序號:7866711閱讀:338來源:國知局
專利名稱:一種密鑰生成方法、設(shè)備及服務(wù)器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及密鑰協(xié)商相關(guān)技術(shù)領(lǐng)域,特別是涉及一種密鑰生成方法、設(shè)備及服務(wù)器。
背景技術(shù)
密鑰協(xié)商是一個基本的密碼學(xué)協(xié)議,最早的有效密鑰協(xié)商協(xié)議是DifTie-Hellman協(xié)議。Diffie和Hellman已經(jīng)在不安全的信道上研究了密鑰交換的問題。密鑰協(xié)商的目標(biāo)是在兩個具有計算能力的參與者中間安全交換一個密鑰,該密鑰能夠用來作為一個密碼系統(tǒng)的加密和解密密鑰。Diffie-Hellman密鑰協(xié)商協(xié)議在離散對數(shù)問題是難處理的假設(shè)下,這個方案是安全的。方案在Zp中運(yùn)行,其中P是一個素數(shù)。假設(shè)g是Zp的一個生成元,g,p都是公開的。在這個協(xié)議中,因為A和B都有較強(qiáng)的計算能力,所以他們能夠自己計算模指數(shù)。Diffie-Hellman密鑰協(xié)商協(xié)議a) A 隨機(jī)選擇一個數(shù) a e
;b) A計算gamodp,并把它發(fā)送給B;c) B 隨機(jī)選擇一個數(shù) β e [O, p-2];d) B計算gemodp,并把它發(fā)送給A;e) A 計算 K= (ge) amodp, B 計算 K = (ga)emodp。則A與B獲得相同的密鑰K,并采用該密鑰K對A與B之間的通信進(jìn)行加密。然而在不安全的環(huán)境,特別是在云計算環(huán)境中,如果A和B的計算能力太弱而無法實現(xiàn)模指數(shù)的計算,它們不得不求助于云計算服務(wù)器來計算模指數(shù)。把計算任務(wù)外包給一個不誠實的云計算服務(wù)商,則用戶可能得到不誠實的外包服務(wù)。在一個外包計算任務(wù)的方案中,安全性應(yīng)該由如下的兩個方面構(gòu)成(1)私有性。一旦用戶提供一個詢問,服務(wù)器能使用該詢問計算一個結(jié)果。對于服務(wù)器和外部攻擊者,詢問和結(jié)果都是在加密或隱藏的形式。(2)正確性。服務(wù)器為用戶需求所計算的結(jié)果是正確的,而且用戶能夠有效地驗證服務(wù)器返回的計算結(jié)果的正確性。除此之外,用戶正確的驗證應(yīng)該比直接地計算結(jié)果更有效。但是,云計算服務(wù)器執(zhí)行DifTie-Hellman密鑰協(xié)商協(xié)議要求A和B把他們的密鑰α,β以及密鑰K泄露給云計算服務(wù)器。如果用戶對于抵抗內(nèi)部和外部攻擊者的安全性非常敏感,則在云計算中執(zhí)行傳統(tǒng)的DifTie-Hellman密鑰協(xié)商協(xié)議是不可行的。

發(fā)明內(nèi)容
基于此,有必要針對兩個計算能力很弱的用戶在服務(wù)器不誠實的情形下無法安全實現(xiàn)密鑰協(xié)商的技術(shù)問題,提供一種密鑰生成方法。一種密鑰生成方法,包括獲取一個隨機(jī)數(shù)作為第一根隨機(jī)數(shù),獲取多個隨機(jī)數(shù)作為第一隨機(jī)數(shù),得到包括多個第一隨機(jī)數(shù)的第一隨機(jī)數(shù)組;
計算多個第一相關(guān)數(shù),得到包括多個第一相關(guān)數(shù)的第一相關(guān)數(shù)組,其中,所述每個第一相關(guān)數(shù)由一個第一隨機(jī)數(shù)與第一根隨機(jī)數(shù)計算得到;根據(jù)第一隨機(jī)數(shù)計算得到第一設(shè)備中間參數(shù),并發(fā)送給第二設(shè)備;接收第二設(shè)備發(fā)送的第二設(shè)備中間參數(shù),所述第二設(shè)備中間參數(shù)由第二設(shè)備隨機(jī)獲取的多個第二隨機(jī)數(shù)計算得到;將第一隨機(jī)數(shù)組分為第一隨機(jī)數(shù)組第一部分和第一隨機(jī)數(shù)組第二部分,將第一相關(guān)數(shù)組分為第一相關(guān)數(shù)組第一部分和第一相關(guān)數(shù)組第二部分,將第一隨機(jī)數(shù)組第一部分和第一相關(guān)數(shù)組第二部分發(fā)送給第一服務(wù)器,將第一隨機(jī)數(shù)組第二部分和第一相關(guān)數(shù)組第一部分發(fā)送給第二服務(wù)器;接收第一服務(wù)器發(fā)送的第一服務(wù)器參數(shù),其中,所述第一服務(wù)器參數(shù)由第一服務(wù) 器對第一隨機(jī)數(shù)組第一部分、第一相關(guān)數(shù)組第二部分進(jìn)行計算得到;接收第二服務(wù)器發(fā)送的第二服務(wù)器參數(shù),其中,所述第二服務(wù)器參數(shù)由第二服務(wù)器對第一隨機(jī)數(shù)組第二部分和第一相關(guān)數(shù)組第一部分進(jìn)行計算得到;通過第一服務(wù)器和第二服務(wù)器根據(jù)第一相關(guān)數(shù)及第二設(shè)備中間參數(shù)執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算得到第一設(shè)備參數(shù),并發(fā)送到第二設(shè)備;接收第二設(shè)備發(fā)送的第二設(shè)備參數(shù),其中,所述第二設(shè)備參數(shù)由第二設(shè)備通過第一服務(wù)器和第二服務(wù)器根據(jù)第二相關(guān)數(shù)及第一設(shè)備中間參數(shù)執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算得到,所述第二相關(guān)數(shù)由第二設(shè)備根據(jù)第二隨機(jī)數(shù)與第二根隨機(jī)數(shù)計算得到,所述第二根隨機(jī)數(shù)由第二設(shè)備隨機(jī)選擇;采用第一服務(wù)器參數(shù)、第二服務(wù)器參數(shù)、第一設(shè)備參數(shù)及第二設(shè)備參數(shù)生成密鑰。在其中一個實施例中,第一相關(guān)數(shù)組第一部分中的任意一個第一相關(guān)數(shù),由第一根隨機(jī)數(shù)及第一隨機(jī)數(shù)組第一部分中的一個第一隨機(jī)數(shù)計算得到;第一相關(guān)數(shù)組第二部分中的任意一個第一相關(guān)數(shù),由第一根隨機(jī)數(shù)及第一隨機(jī)數(shù)組第二部分中的一個第一隨機(jī)數(shù)計算得到。在其中一個實施例中,具體包括初始化選擇一個有限域Zp,其中,P是一個素數(shù),從Zp中選擇一個生成元g ;獲取一個隨機(jī)數(shù)α作為第一根隨機(jī)數(shù),獲取兩個隨機(jī)數(shù)a i和α /作為第一隨機(jī)數(shù),得到包括CtjP Ct1'的第一隨機(jī)數(shù)組,其中,a,Ct1, a / e [O, p-2];計算兩個第一相關(guān)數(shù)α 2和α 2’,得到包括α 2和α 2’的第一相關(guān)數(shù)組,其中,α 2
=Ct-Ct1Iiiod(P-1), ct 2,= α - a / mod (ρ-1);計算兩個第一設(shè)備中間參數(shù)f mod "和g·*1 modp,祀If modp和if'' mod/>發(fā)給
第二設(shè)備;接收第二設(shè)備發(fā)送的兩個第二設(shè)備中間參數(shù)?1 mod/^PgA'modp,其中,β !和β/為第二設(shè)備隨機(jī)獲取的兩個第二隨機(jī)數(shù),β1; β/ e [O, p-2];將第一隨機(jī)數(shù)組分為第一隨機(jī)數(shù)組第一部分和第一隨機(jī)數(shù)組第二部分,第一隨機(jī)數(shù)組第一部分為Ci1,第一隨機(jī)數(shù)組第二部分為α/,將第一相關(guān)數(shù)組分為第一相關(guān)數(shù)組第一部分和第一相關(guān)數(shù)組第二部分,第一相關(guān)數(shù)組第一部分為α2,第一相關(guān)數(shù)組第二部分為α 2’,將a i和α 2’發(fā)送給第一服務(wù)器,將α 2和α /發(fā)送給第二服務(wù)器;接收由第一服務(wù)器發(fā)送的第一服務(wù)器參數(shù)K11和Κ22’,其中,K11由第一服務(wù)器根MKu =PAm0dj5得到,K22’由第一服務(wù)器根據(jù)[22'=fA mod/)計算得到,其中,β2’由第二設(shè)備根據(jù)β2’ = β-β/mocKp-l)得到,β為第二設(shè)備隨機(jī)獲取的第二根隨機(jī)數(shù),β e
;接收由第二服務(wù)器發(fā)送的第二服務(wù)器參數(shù)Kn’和K22,其中,Κη’由第二服務(wù)器根據(jù)[^=8°^’1110(^計算得到,K22由第二服務(wù)器根據(jù)I22計算得到,其中,β2由第二設(shè)備根據(jù)= β - β ^od (ρ-1)得到;與第一服務(wù)器和第二服務(wù)器共同執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算,分別得至Ij兩個第一設(shè)備參數(shù)K21和K21 ’,其中,人=(,W2 mod;;,人%’=(,)< mod/;,并發(fā)送K21
和K21 ’給第二設(shè)備;接收第二設(shè)備發(fā)送的兩個第二設(shè)備參數(shù)K12和K12’,K12和K12’由第二設(shè)備、第一服務(wù)器和第二服務(wù)器共同執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算得到,其中, Kn = (μ'λ· : mod P -Kr'= (g"<: )/v mod p ;如果K11K12K21K22 = K11' K12’ K21 ’ K22’,則采用 K = K11K12K21K22 作為密鑰?!N密鑰生成設(shè)備,包括隨機(jī)數(shù)選擇模塊、相關(guān)數(shù)計算模塊、第一設(shè)備中間參數(shù)計算模塊、第二設(shè)備中間參數(shù)接收模塊、服務(wù)器發(fā)送模塊、第一服務(wù)器參數(shù)接收模塊、第二服務(wù)器參數(shù)接收模塊、設(shè)備安全多方計算協(xié)議執(zhí)行模塊、第二設(shè)備參數(shù)接收模塊和密鑰生成模塊隨機(jī)數(shù)選擇模塊,用于獲取一個隨機(jī)數(shù)作為第一根隨機(jī)數(shù),獲取多個隨機(jī)數(shù)作為第一隨機(jī)數(shù),得到包括多個第一隨機(jī)數(shù)的第一隨機(jī)數(shù)組;相關(guān)數(shù)計算模塊,用于計算多個第一相關(guān)數(shù),得到包括多個第一相關(guān)數(shù)的第一相關(guān)數(shù)組;其中,所述每個第一相關(guān)數(shù)由一個第一隨機(jī)數(shù)與第一根隨機(jī)數(shù)計算得到;第一設(shè)備中間參數(shù)計算模塊,用于根據(jù)第一隨機(jī)數(shù)計算得到第一設(shè)備中間參數(shù),并發(fā)送給第二設(shè)備;第二設(shè)備中間參數(shù)接收模塊,用于接收第二設(shè)備發(fā)送的第二設(shè)備中間參數(shù),所述第二設(shè)備中間參數(shù)由第二設(shè)備隨機(jī)獲取的多個第二隨機(jī)數(shù)計算得到;服務(wù)器發(fā)送模塊,用于將第一隨機(jī)數(shù)組分為第一隨機(jī)數(shù)組第一部分和第一隨機(jī)數(shù)組第二部分,將第一相關(guān)數(shù)組分為第一相關(guān)數(shù)組第一部分和第一相關(guān)數(shù)組第二部分,將第一隨機(jī)數(shù)組第一部分和第一相關(guān)數(shù)組第二部分發(fā)送給第一服務(wù)器,將第一隨機(jī)數(shù)組第二部分和第一相關(guān)數(shù)組第一部分發(fā)送給第二服務(wù)器;第一服務(wù)器參數(shù)接收模塊,用于接收第一服務(wù)器發(fā)送的第一服務(wù)器參數(shù),其中,所述第一服務(wù)器參數(shù)由第一服務(wù)器對第一隨機(jī)數(shù)組第一部分、第一相關(guān)數(shù)組第二部分進(jìn)行計算得到;第二服務(wù)器參數(shù)接收模塊,用于接收第二服務(wù)器發(fā)送的第二服務(wù)器參數(shù),其中,所述第二服務(wù)器參數(shù)由第二服務(wù)器對第一隨機(jī)數(shù)組第二部分和第一相關(guān)數(shù)組第一部分進(jìn)行計算得到;設(shè)備安全多方計算協(xié)議執(zhí)行模塊,用于通過第一服務(wù)器和第二服務(wù)器根據(jù)第一相關(guān)數(shù)及第二設(shè)備中間參數(shù)執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算得到第一設(shè)備參數(shù),并發(fā)送到第二設(shè)備;第二設(shè)備參數(shù)接收模塊,用于接收第二設(shè)備發(fā)送的第二設(shè)備參數(shù),其中,所述第二設(shè)備參數(shù)由第二設(shè)備通過第一服務(wù)器和第二服務(wù)器根據(jù)第二相關(guān)數(shù)及第一設(shè)備中間參數(shù)執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算得到,所述第二相關(guān)數(shù)由第二設(shè)備根據(jù)第二隨機(jī)數(shù)與第二根隨機(jī)數(shù)計算得到,所述第二根隨機(jī)數(shù)由第二設(shè)備隨機(jī)選擇;密鑰生成模塊,用于采用第一服務(wù)器參數(shù)、第二服務(wù)器參數(shù)、第一設(shè)備參數(shù)及第二設(shè)備參數(shù)生成密鑰。一種密鑰生成方法,包括接收由第一設(shè)備生成的第一隨機(jī)數(shù)組第一部分和第一相關(guān)數(shù)組第二部分;接收由第二設(shè)備生成的第二隨機(jī)數(shù)組第一部分和第二相關(guān)數(shù)第二部分組;對接收到的第一隨機(jī)數(shù)第一部分、第一相關(guān)數(shù)第二部分 、第二隨機(jī)數(shù)第一部分和第二相關(guān)數(shù)第二部分進(jìn)行計算得到第一服務(wù)器參數(shù),并發(fā)送給第一設(shè)備和第二設(shè)備;與第一設(shè)備、第二服務(wù)器共同執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算,以生成第一設(shè)備參數(shù),所述第一設(shè)備參數(shù)與第一服務(wù)器參數(shù)用于第一設(shè)備生成密鑰;與第二設(shè)備、第二服務(wù)器共同執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算,以生成第二設(shè)備參數(shù),所述第二設(shè)備參數(shù)與第一服務(wù)器參數(shù)用于第二設(shè)備生成密鑰。在其中一個實施例中,具體包括選擇一個有限域Zp,其中,P是一個素數(shù),從Zp中選擇一個生成元g ;接收由第一設(shè)備生成的第一隨機(jī)數(shù)組第一部分α i和第一相關(guān)數(shù)組第二部分α2,;接收由第二設(shè)備生成的第二隨機(jī)數(shù)組第一部分P1和第二相關(guān)數(shù)組第二部分β2,;計算第一服務(wù)器參數(shù)= g* modp和產(chǎn)mod/),并把K11和K22’發(fā)送給
第一設(shè)備和第二設(shè)備;與第一設(shè)備和第二服務(wù)器共同執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算,以生成兩個第一設(shè)備參數(shù)K21和V,其中,[21 =(#尸動#,[21’=(^廣'麵忭^中,# niod;;和mod P為第一設(shè)備從第二設(shè)備接收的兩個第二設(shè)備中間參數(shù),Ci2和α2’由第一設(shè)備根據(jù) α2= α-a Pod(P-1)和 α 2’ = α - a / mod (ρ_1)計算得到,ajP a / 為第一設(shè)備隨機(jī)選擇的第一隨機(jī)數(shù),α為第一設(shè)備隨機(jī)選擇的第一根隨機(jī)數(shù),a, QljQ1' e [O, p-2];與第二設(shè)備和第二服務(wù)器共同執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算,以生成兩個第二設(shè)備參數(shù) K12 和 K12,,其中,[12 = w: mod" Κ12'={ ζ,ι ' 2 η\ο ρ ,其中mod/
和mod p為第二設(shè)備從第一設(shè)備接收的兩個第一設(shè)備中間參數(shù),02和β2’由第二設(shè)備根據(jù) β 2 = β-^1Hiod(P-1)和 β 2,= β-β / mod(p-l)得到,和 β / 為第二設(shè)備隨機(jī)選擇的第二隨機(jī)數(shù),β為第二設(shè)備隨機(jī)選擇的第二根隨機(jī)數(shù),β/ e [O, p-2] 0—種密鑰生成服務(wù)器,包括第一設(shè)備接收模塊、第二設(shè)備接收模塊、第一服務(wù)器參數(shù)生成模塊、協(xié)調(diào)第一設(shè)備安全多方計算協(xié)議執(zhí)行模塊和協(xié)調(diào)第二設(shè)備安全多方計算協(xié)議執(zhí)行模塊第一設(shè)備接收模塊,用于接收由第一設(shè)備生成的第一隨機(jī)數(shù)組第一部分和第一相關(guān)數(shù)組第二部分;第二設(shè)備接收模塊,用于接收由第二設(shè)備生成的第二隨機(jī)數(shù)組第一部分和第二相關(guān)數(shù)組第二部分;第一服務(wù)器參數(shù)生成模塊,用于對接收到的第一隨機(jī)數(shù)組第一部分、第一相關(guān)數(shù)組第二部分、第二隨機(jī)數(shù)組第一部分和第二相關(guān)數(shù)組第二部分進(jìn)行計算得到第一服務(wù)器參數(shù),并發(fā)送給第一設(shè)備和第二設(shè)備;協(xié)調(diào)第一設(shè)備安全多方計算協(xié)議執(zhí)行模塊,用于與第一設(shè)備、第二服務(wù)器共同執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算,以生成第一設(shè)備參數(shù),所述第一設(shè)備參數(shù)與第一服務(wù)器參數(shù)用于第一設(shè)備生成密鑰;協(xié)調(diào)第二設(shè)備安全多方計算協(xié)議執(zhí)行模塊,用于與第二設(shè)備、第二服務(wù)器共同執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算,以生成第二設(shè)備參數(shù),所述第二設(shè)備參數(shù)與第一服務(wù)器參數(shù)用于第二設(shè)備生成密鑰。一種密鑰生成方法,包括 第一設(shè)備獲取一個隨機(jī)數(shù)作為第一根隨機(jī)數(shù),獲取多個隨機(jī)數(shù)作為第一隨機(jī)數(shù),得到包括多個第一隨機(jī)數(shù)的第一隨機(jī)數(shù)組;計算多個第一相關(guān)數(shù),得到包括多個第一相關(guān)數(shù)的第一相關(guān)數(shù)組,其中,所述每個第一相關(guān)數(shù)由一個第一隨機(jī)數(shù)與第一根隨機(jī)數(shù)計算得到;第二設(shè)備獲取一個隨機(jī)數(shù)作為第二根隨機(jī)數(shù),獲取多個隨機(jī)數(shù)作為第二隨機(jī)數(shù),得到包括多個第二隨機(jī)數(shù)的第二隨機(jī)數(shù)組;計算多個第二相關(guān)數(shù),得到包括多個第二相關(guān)數(shù)的第二相關(guān)數(shù)組,其中,所述每個第二相關(guān)數(shù)由一個第二隨機(jī)數(shù)與第二根隨機(jī)數(shù)計算得到;第一設(shè)備將第一隨機(jī)數(shù)組分為第一隨機(jī)數(shù)組第一部分和第一隨機(jī)數(shù)組第二部分,將第一相關(guān)數(shù)組分為第一相關(guān)數(shù)組第一部分和第一相關(guān)數(shù)組第二部分,將第一隨機(jī)數(shù)組第一部分和第一相關(guān)數(shù)組第二部分發(fā)送給第一服務(wù)器,將第一隨機(jī)數(shù)組第二部分和第一相關(guān)數(shù)組第一部分發(fā)送給第二服務(wù)器;第二設(shè)備將第二隨機(jī)數(shù)組分為第二隨機(jī)數(shù)組第一部分和第二隨機(jī)數(shù)組第二部分,將第二相關(guān)數(shù)組分為第二相關(guān)數(shù)組第一部分和第二相關(guān)數(shù)組第二部分,將第二隨機(jī)數(shù)組第一部分和第二相關(guān)數(shù)組第二部分發(fā)送給第一服務(wù)器,將第二隨機(jī)數(shù)組第二部分和第二相關(guān)數(shù)組第一部分發(fā)送給第二服務(wù)器;第一服務(wù)器對接收到的第一隨機(jī)數(shù)組第一部分、第一相關(guān)數(shù)組第二部分、第二隨機(jī)數(shù)組第一部分和第二相關(guān)數(shù)組第二部分進(jìn)行計算得到第一服務(wù)器參數(shù),并發(fā)送給第一設(shè)備和第二設(shè)備;第二服務(wù)器對接收到的第一隨機(jī)數(shù)組第二部分、第一相關(guān)數(shù)組第一部分、第二隨機(jī)數(shù)組第二部分和第二相關(guān)數(shù)組第一部分進(jìn)行計算得到第二服務(wù)器參數(shù),并發(fā)送給第一設(shè)備和第二設(shè)備;第一設(shè)備通過第一服務(wù)器和第二服務(wù)器執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算得到第一設(shè)備參數(shù),并發(fā)送給第二設(shè)備;第二設(shè)備通過第一服務(wù)器和第二服務(wù)器執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算得到第二設(shè)備參數(shù),并發(fā)送給第一設(shè)備;第一設(shè)備和第二設(shè)備采用第一服務(wù)器參數(shù)、第二服務(wù)器參數(shù)、第一設(shè)備參數(shù)及第二設(shè)備參數(shù)的組合作為密鑰。
在其中一個實施例中第一相關(guān)數(shù)組第一部分中的任意一個第一相關(guān)數(shù),由第一根隨機(jī)數(shù)及第一隨機(jī)數(shù)組第一部分中的一個第一隨機(jī)數(shù)計算得到,第一相關(guān)數(shù)組第二部分中的任意一個第一相關(guān)數(shù),由第一根隨機(jī)數(shù)及第一隨機(jī)數(shù)組第二部分中的一個第一隨機(jī)數(shù)計算得到;第二相關(guān)數(shù)組第一部分中的任意一個第二相關(guān)數(shù),由第二根隨機(jī)數(shù)及第二隨機(jī)數(shù)組第一部分中的一個第二隨機(jī)數(shù)計算得到,第二相關(guān)數(shù)組第二部分中的任意一個第二相關(guān)數(shù),由第二根隨機(jī)數(shù)及第二隨機(jī)數(shù)第二部分中的一個第二隨機(jī)數(shù)計算得到。在其中一個實施例中,具體包括初始化選擇一個有限域Zp,其中,P是一個素數(shù),從Zp中選擇一個生成元g ;第一設(shè)備獲取一個隨機(jī)數(shù)α作為第一根隨機(jī)數(shù),獲取兩個隨機(jī)數(shù)a i和α /作為第一隨機(jī)數(shù),得到包括a JP α /的第一隨機(jī)數(shù)組,其中,α,Ci1, < e
,計算兩個 第一相關(guān)數(shù)α 2和α 2’,得到包括α 2和α 2’的第一相關(guān)數(shù)組,其中,α 2 = a -a ^0(1 (ρ-1),α 2 = α - α / mod (ρ_1),計算兩個第一設(shè)備中間參數(shù),e" mod "和f mod p ^gn- mod p.和mod p發(fā)給第二設(shè)備;第二設(shè)備獲取一個隨機(jī)數(shù)β作為第二根隨機(jī)數(shù),獲取兩個隨機(jī)數(shù)β i和β /作為第二隨機(jī)數(shù),得到包括β JP β/的第二隨機(jī)數(shù)組,其中,β,βρβ/ e
,計算兩個第二相關(guān)數(shù)β 2和β 2’,得到包括β 2和β 2’的第二相關(guān)數(shù)組其中,β ο = β - β Pod(P-1),β 2 = ^-^/!!!。(^-。,計算兩個第二設(shè)備中間參數(shù)兄〃1! ^/^、modp把尺爲(wèi)modp和尺~ mod p發(fā)給第一設(shè)備;第一設(shè)備將第一隨機(jī)數(shù)組分為第一隨機(jī)數(shù)組第一部分和第一隨機(jī)數(shù)組第二部分,第一隨機(jī)數(shù)組第一部分為Ci1,第一隨機(jī)數(shù)組第二部分為α/,將第一相關(guān)數(shù)組分為第一相關(guān)數(shù)組第一部分和第一相關(guān)數(shù)組第二部分,第一相關(guān)數(shù)組第一部分為α 2,第一相關(guān)數(shù)組第二部分為α 2’,將a i和α 2’發(fā)送給第一服務(wù)器,將α 2和α /發(fā)送給第二服務(wù)器;第二設(shè)備將第二隨機(jī)數(shù)組分為第二隨機(jī)數(shù)組第一部分和第二隨機(jī)數(shù)組第二部分,第二隨機(jī)數(shù)組第一部分為P1,第二隨機(jī)數(shù)組第二部分為β/,將第二相關(guān)數(shù)組分為第二相關(guān)數(shù)組第一部分和第二相關(guān)數(shù)組第二部分,第二相關(guān)數(shù)組第一部分為β 2,第二相關(guān)數(shù)組第二部分為β2’,將^和β2’發(fā)送給第一服務(wù)器,將32和β/發(fā)送給第二服務(wù)器;第一服務(wù)器計算第一服務(wù)器參數(shù)尤,,=g· mod和尤22'= gW ^Odp,第二服務(wù)
器計算第二服務(wù)器參數(shù)尤mod i 和二 ga+- ^odp,然后第一服務(wù)器將K11和K22 ’發(fā)送給第一設(shè)備和第二設(shè)備,第二服務(wù)器將Kn’和K22發(fā)送給第一設(shè)備和第二設(shè)備;第一設(shè)備、第一服務(wù)器和第二服務(wù)器共同執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算,得到兩個第一設(shè)備參數(shù) K21 和 K21 ’,其中,[21 = (EfhT1 mod P Ji1^igfscY1' moA P ;第二設(shè)備、第一服務(wù)器和第二服務(wù)器共同執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算,得到兩個第二設(shè)備參數(shù)K12和K12’,其中人=(^*)A mod/ ^2'=(g^)^moAp\第一設(shè)備發(fā)送K21和K21 ’給第二設(shè)備,第二設(shè)備發(fā)送K12和K12’給第一設(shè)備;第一設(shè)備驗證如果K11K12K21K22 = Kn’ K12’ K21 ’ K22’,則采用 K = K11K12K21K22 作為密鑰;第二設(shè)備驗證如果K11K12K21K22 = Kn’ K12’ K21 ’ K22’,則采用 K = K11K12K21K22 作為密鑰。在其中一個實施例中,所述第一服務(wù)器與第二服務(wù)器通信隔斷。以避免第一服務(wù)器與第二服務(wù)器之間互相通信交互第一設(shè)備與第二設(shè)備的安全信息。上述的安全多方計算協(xié)議可以使用S. Hohenbergei^PA. Lysyanskaya提出的模指數(shù)外包計算協(xié)議。本發(fā)明的密鑰生成方法,在密鑰生成的過程中,兩個不誠實的服務(wù)器只能獲得密鑰生成過程中的部分信息,兩個服務(wù)器的任何一方都不可能獲得完整的秘密信息,從而保證密鑰生成的安全性。因此兩個計算能力很弱的設(shè)備用戶,即使在服務(wù)器不可信的情形下,也能借助服務(wù)器實現(xiàn)模指數(shù)的外包計算,得到一個共同的密鑰用于信息的加密和解密。


圖1為本發(fā)明的密鑰生成系統(tǒng)100的方框示意圖;圖2為由本發(fā)明的密鑰生成設(shè)備和密鑰生成服務(wù)器執(zhí)行的密鑰生成方法的流程圖; 圖3為本發(fā)明的密鑰生成設(shè)備300的方框示意圖;圖4為本發(fā)明的密鑰服務(wù)器400的方框示意圖;圖5為由本發(fā)明的密鑰生成設(shè)備和密鑰生成服務(wù)器執(zhí)行的密鑰生成方法的信息交互圖。
具體實施例方式下面結(jié)合附圖和具體實施例對本發(fā)明做進(jìn)一步詳細(xì)的說明。如圖1示出了根據(jù)本發(fā)明的密鑰生成系統(tǒng)100的方框示意圖。如圖1所示,所述密鑰生成系統(tǒng)100包括第一設(shè)備101、第二設(shè)備102、第一服務(wù)器103和第二服務(wù)器104。這里要說明的是,所述第一設(shè)備101、第二設(shè)備102、第一服務(wù)器103和第二服務(wù)器104應(yīng)該包括本文中所公開的各種變型。如圖2示出了根據(jù)本發(fā)明的由本發(fā)明的密鑰生成設(shè)備和密鑰生成服務(wù)器執(zhí)行的密鑰生成方法的流程圖。如圖2所示,結(jié)合圖2的密鑰生成系統(tǒng)100在步驟S201,初始化選擇一個有限域Zp,其中,P是一個素數(shù),從Zp中選擇一個生成元g,P, g是公開的,設(shè)定一個離線的快速計算指數(shù)算法Randl,然后轉(zhuǎn)到步驟S102 ;算法Randl被一個素數(shù)p,一個生成元g e Z;;和一些其他的值初始化,它的每一次運(yùn)算都產(chǎn)生一個獨立的、隨機(jī)的對(b,gbmodp),其中b e
。一個可以替換的方法是使用一個可信任的服務(wù)器去提前多次執(zhí)行算法Randl,得到一個由獨立、隨機(jī)的對組成的表格,然后嵌入到要調(diào)用的設(shè)備的內(nèi)存中。設(shè)備每一次運(yùn)行Randl,都輸出表中的一個值。在步驟S202,第一設(shè)備101選擇一個隨機(jī)數(shù)α作為第一根隨機(jī)數(shù),選擇兩個隨機(jī)數(shù)、和Ct1'作為第一隨機(jī)數(shù),得到包括^和α /的第一隨機(jī)數(shù)組,其中a,Ct1,a/ e
,計算兩個第一相關(guān)數(shù)%和^’,得到包括^和α2’的第一相關(guān)數(shù)組,其中 Ct2= a - a jmocKp-l), α 2' = α - α / mod (ρ_1),然后運(yùn)行 Randl 兩次,計算尺…mod/)和gai' mod p,把mod 和f modp發(fā)給第二設(shè)備 102 ;在步驟S203,第二設(shè)備102選擇一個隨機(jī)數(shù)β作為第二根隨機(jī)數(shù),選擇兩個隨機(jī)數(shù)^和β /作為第二隨機(jī)數(shù),得到包括P1和β /的第二隨機(jī)數(shù)組,其中β,β1;β/ e [O,p-2],計算兩個第二相關(guān)數(shù)32和β2’,得到包括@2和β2’的第二相關(guān)數(shù)組,其中 β 2 = β - β ^od (ρ-1), β 2' = β - β / mod (ρ-1),計算尺Α modp^WgPi' mod ρ,把gΑ modρ和gA' mod/; 發(fā)給第一設(shè)備101 ;在步驟S204,第一設(shè)備101把兩個第一隨機(jī)數(shù)組分為第一隨機(jī)數(shù)組第一部分α !和第一隨機(jī)數(shù)組第二部分α/,把兩個第一相關(guān)數(shù)組分為第一相關(guān)數(shù)組第一部分Ci2和第一相關(guān)數(shù)組第二部分α2’,把第一隨機(jī)數(shù)組第一部分a i和第一相關(guān)數(shù)組第二部分Ci2’發(fā) 送給第一服務(wù)器103,把第一隨機(jī)數(shù)組第二部分α /和第一相關(guān)數(shù)組第一部分α2發(fā)送給第二服務(wù)器104,由于α 2’僅與α /及α有關(guān),α 2僅與a i及α有關(guān),且第一服務(wù)器103和第二服務(wù)器104均不知道α,因此,第一服務(wù)器103和第二服務(wù)器104分別拿到第一設(shè)備101的部分秘密信息;在步驟S205,第二設(shè)備102把兩個第二隨機(jī)數(shù)組分為第二隨機(jī)數(shù)組第一部分和第二隨機(jī)數(shù)組第二部分β/,把兩個第二相關(guān)數(shù)組分為第二相關(guān)數(shù)組第一部分β2和第二相關(guān)數(shù)組第二部分β2’,把第二隨機(jī)數(shù)組第一部分β i和第二相關(guān)數(shù)組第二部分β2’發(fā)送給第一服務(wù)器103,把第二隨機(jī)數(shù)組第二部分β/和第二相關(guān)數(shù)組第一部分β2發(fā)送給第二服務(wù)器104,由于β2’僅與P1’及β有關(guān),β2僅與^及β有關(guān),由于第一服務(wù)器103和第二服務(wù)器104均不知道β,因此,第一服務(wù)器103和第二服務(wù)器104分別拿到第二設(shè)備104的部分秘密信息;在步驟S206,第一服務(wù)器103計算第一服務(wù)器參數(shù)= ga'Pi mod^和gaiW modi ,第二服務(wù)器104計算第二服務(wù)器參數(shù)mod ρ和人=mod然后第一服務(wù)器103把K11和Κ22,發(fā)送給第一設(shè)備101和第二設(shè)備102,第二服務(wù)器104把Κη’和K22發(fā)送給第一設(shè)備101和第二設(shè)備102 ;在步驟S207,第一設(shè)備101、第一服務(wù)器103和第二服務(wù)器104共同執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算兩次,分別得到兩個第一設(shè)備參數(shù)K21和K21 ’,其中K21根據(jù)α 2和
生成,K21 ’根據(jù)α2’和生成;在步驟S208,第二設(shè)備102、第一服務(wù)器103和第二服務(wù)器104共同執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算兩次,分別得到兩個第二設(shè)備參數(shù)K12和K12’,其中K12根據(jù)β 2和P生成,K12’根據(jù)β2’和f生成;在步驟S209,第一設(shè)備101驗證K21和K21 ’的正確性,第二設(shè)備102驗證K12和K12’的正確性。如果任何一個驗證出錯,則輸出“錯誤”。否則,第一設(shè)備101發(fā)送K21和K21 ’給第二設(shè)備102,第二設(shè)備102發(fā)送K12和K12’給第一設(shè)備101 ;在步驟S210,第一設(shè)備 101 和第二設(shè)備 102 各自驗證 K11K12K21K22 = K11' K12’ K21 ’ K22’是否成立,如果不成立,輸出“錯誤”,否則,第一設(shè)備101和第二設(shè)備102得到密鑰K =KnK12K21K22O在后續(xù)第一設(shè)備101與第二設(shè)備102之間的通信,均采用各自的密鑰進(jìn)行加密和解密,由于兩個設(shè)備的密鑰相同,則第一設(shè)備101和第二設(shè)備102能實現(xiàn)正常通信。必須指出的是,在上述步驟S202和S203中,采用兩個第一隨機(jī)數(shù)作為第一隨機(jī)數(shù)組、采用兩個第一相關(guān)數(shù)作為第一相關(guān)數(shù)組、采用兩個第二隨機(jī)數(shù)作為第二隨機(jī)數(shù)組以及采用兩個第二相關(guān)數(shù)作為第二相關(guān)數(shù)組均是出于算法簡單的考慮,實際上可以采用多于兩個的第一隨機(jī)數(shù)、第一相關(guān)數(shù)、第二隨機(jī)數(shù)和第二相關(guān)數(shù)進(jìn)行組合,只要滿足以下條件,即“第一相關(guān)數(shù)組第一部分中的任意一個第一相關(guān)數(shù),由第一根隨機(jī)數(shù)及第一隨機(jī)數(shù)組第一部分中的一個第一隨機(jī)數(shù)計算得到,第一相關(guān)數(shù)組第二部分中的任意一個第一相關(guān)數(shù),由第一根隨機(jī)數(shù)及第一隨機(jī)數(shù)組第二部分中的一個第一隨機(jī)數(shù)計算得到;第二相關(guān)數(shù)組第一部分中的任意一個第二相關(guān)數(shù),由第二根隨機(jī)數(shù)及第二隨機(jī)數(shù)組第一部分中的一個第二隨機(jī)數(shù)計算得到,第二相關(guān)數(shù)組第二部分中的任意一個第二相關(guān)數(shù),由第二根隨機(jī)數(shù)及第二隨機(jī)數(shù)第二部分中的一個第二隨機(jī)數(shù)計算得到?!眲t第一服務(wù)器和第二服務(wù)器僅獲得第一設(shè)備和第二設(shè)備的部分信息,從而保證安全性。當(dāng)采用多于兩個的第一隨機(jī)數(shù)、第一相關(guān)數(shù)、第二隨機(jī)數(shù)和第二相關(guān)數(shù)時,需要對后續(xù)步驟做相應(yīng)的修改。本領(lǐng)域技術(shù)人員在經(jīng)過有限次計算后可以得到相應(yīng)的修改步驟。在上述步驟S207和S208中,安全多方計算協(xié)議可以使用S. Hohenberger和A. Lysyanskaya提出的模指數(shù)外包計算協(xié)議,即— EXPifi2H、K21'^ ΕΧΡ(α2\8β') ^ K1 t EXPifiH、£^(爲(wèi)’,0。該模指數(shù)外包計算協(xié)議具體如下 通過使用快速的離線指數(shù)計算和不可信的輔助服務(wù)器計算的預(yù)處理過程,S. Hohenberger和A. Lysyanskaya提出了一個使用不信任指數(shù)計算盒子U’ = (U1W)去計算和檢測模指數(shù)運(yùn)算的外包計算協(xié)議,其中一旦協(xié)議開始,則U/和U2’就不能交互。在這個不信任的程序模型中,攻擊者E為U/和U2’寫好代碼,并把它們給誠實的用戶T。如果是云計算環(huán)境中,U/和U2’就是兩個不信任的云計算服務(wù)器,而T就是一個用戶。在本實施例中,第一服務(wù)器103和第二服務(wù)器104即所述的兩個不可信的云計算服務(wù)器U/和U2’,而第一設(shè)備101和第二設(shè)備102即所述的誠實的用戶T。在該協(xié)議中,假設(shè)存在一個算法Randl計算(b, gbmodp)。算法Randl被一個素數(shù)P,一個生成元geZ:和一些其他的值初始化,它的每一次都產(chǎn)生一個獨立的、隨機(jī)的(b, gbmodp),其中b e [O, p-2]。一個可以替換的方法是使用一個可信任的服務(wù)器去提前計算一個由獨立、隨機(jī)的對組成的表格,然后嵌入到T的內(nèi)存中。每一次激活Randl,它都輸出表中的一個值。對于Randl,至關(guān)重要的是它的輸出與真實的隨機(jī)數(shù)應(yīng)該是不可區(qū)分的。模指數(shù)外包計算算式EXP(a, u) — uamodp,該算式表示,輸入兩個參數(shù)(a, u),經(jīng)過運(yùn)算后,輸出UaHiodp,具體算法如下初始化p,q是兩個大素數(shù),Zp*的階是q。I T 運(yùn)行 Randl 兩次,輸出(α,gamodp), ( β , gVodp),其中 v = ga, vb = ge,且b = β / a。2 :T 進(jìn)行兩次分解,一個分解是 ua = (Vw) a =vawa = V1Vwa ,其中 w = u/v, c =a -b ;另一個分解是 vbvcwa = vb (fh) cwd+e = vbfchcwdwe,其中 h = v/f, e = a -d。3 :對于每個程序,T固定兩個測試詢問運(yùn)行Randl得到O1^gh ) , H ),
(nD, (d)
15-ο第一次測試詢問,T詢問 U1, U1 (d, w) wd, U1 (c, f) — fc, U ^tl I r{,gr') gh,第二次測試詢問,T詢問 U2, U2 (e, w) — we, U2 (c, h) — hc, U2 lr\->Sh)^ Sh ,U1(t1ir2,gr2)^· gh。4 T檢查給U1和U2的測試詢問是不是產(chǎn)生正確的輸出(即#和#)。如果不成立,則輸出“錯誤”,否則,他通過如下等式計算出u'vbfchcwdwe = vb+cwd+e = vawa = (vw) a = Ua。作為一個例子,一種密鑰協(xié)商協(xié)議初始化Zp是一個有限域,P是一個素數(shù),g是Zp的一個生成元。p,g是公開的。1:用戶 A 選擇隨機(jī)數(shù) a, Ct1, a / e
,計算 a 2 = a - a pod (p_l) , a 2’=a-a Jmod(P-1),然后運(yùn)行 Randl 兩次,得到Oi, g" mod/7), ,f _ mod/)),并送Wl mod p , gmod /;給用戶 B ;2:用戶 B 選擇隨機(jī)數(shù) β, β 1; β / e [O, p-2],計算 β 2 = β _ β !mod (ρ_1), β 2’=β -β /mocKp-l),然后運(yùn)行 Randl 兩次,得到(A.f mod, ),(汊mod/ ),并送g'' modp,片/V mod/;給用戶 A ;3 :用戶 A送(a ” a2’)給 Ul, ( a 2, a / )給 U2 ;4 :用戶 B 送(β η β 2’)給 U1, ( β 2,β / )給 U2 ;5 =U1 計算 Z11 = gaA modp 和[22'二 g°2'A'mod/ , U2 計算 ^ll’= mod/ 和K22 = modp。然后 U1 送 Kn,Κ22,給 A 和 B,U2 送 Kn,,K22 給 A 和 B。6 :用戶A和U1, U2運(yùn)行模指數(shù)的外包計算兩次,分別得到K21和K21’,其中K21 KXl\a..y'··) K21'KXPia^gii ')
O7 :用戶B和U1, U2運(yùn)行模指數(shù)的外包計算兩次,分別得到K12和K12’,其中
人Κ' ΚΧΡ(β )
*■5—ο8 Α驗證K21和K21 ’的正確性,B驗證K12和K12’的正確性。如果任何一個驗證出錯,則輸出“錯誤”。否則,A發(fā)送K21和K21 ’給B, B發(fā)送K12和K12’給A09 :Α和B各自驗證K11K12K21K22 = K11' K12' K21' K22'是否成立,如果不成立,輸出“錯誤”,否則雙方得到一個共同的密鑰K = K11K12K21K220圖3示出了根據(jù)本發(fā)明的密鑰生成設(shè)備300的方框示意圖。如圖3所示,密鑰生成設(shè)備300包括隨機(jī)數(shù)選擇模塊301、相關(guān)數(shù)計算模塊302、第一設(shè)備中間參數(shù)計算模塊303、第二設(shè)備中間參數(shù)接收模塊304、服務(wù)器發(fā)送模塊305、第一服務(wù)器參數(shù)接收模塊306、第二服務(wù)器參數(shù)接收模塊307、設(shè)備安全多方計算協(xié)議執(zhí)行模塊308、第二設(shè)備參數(shù)接收模塊309和密鑰生成模塊310 隨機(jī)數(shù)選擇模塊301,用于選擇一個隨機(jī)數(shù)作為第一根隨機(jī)數(shù),選擇多個隨機(jī)數(shù)作為第一隨機(jī)數(shù),得到包括多個第一隨機(jī)數(shù)的第一隨機(jī)數(shù)組;相關(guān)數(shù)計算模塊302,用于計算多個第一相關(guān)數(shù),得到包括多個第一相關(guān)數(shù)的第一相關(guān)數(shù)組,所述每個第一相關(guān)數(shù)由一個第一隨機(jī)數(shù)與第一根隨機(jī)數(shù)計算得到;第一設(shè)備中間參數(shù)計算模塊303,用于根據(jù)第一隨機(jī)數(shù)計算得到第一設(shè)備中間參數(shù),并發(fā)送給第二設(shè)備;第二設(shè)備中間參數(shù)接收模塊304,用于接收第二設(shè)備發(fā)送的第二設(shè)備中間參數(shù),所述第二設(shè)備中間參數(shù)由第二設(shè)備隨機(jī)選擇的多個第二隨機(jī)數(shù)計算得到;
服務(wù)器發(fā)送模塊305,用于把第一隨機(jī)數(shù)組分為第一隨機(jī)數(shù)組第一部分和第一隨機(jī)數(shù)組第二部分,把第一相關(guān)數(shù)組分為第一相關(guān)數(shù)組第一部分和第一相關(guān)數(shù)組第二部分,把第一隨機(jī)數(shù)組第一部分和第一相關(guān)數(shù)組第二部分發(fā)送給第一服務(wù)器,把第一隨機(jī)數(shù)組第二部分和第一相關(guān)數(shù)組第一部分發(fā)送給第二服務(wù)器;第一服務(wù)器參數(shù)接收模塊306,用于接收第一服務(wù)器發(fā)送的第一服務(wù)器參數(shù),所述第一服務(wù)器參數(shù)由第一服務(wù)器對接收到的第一隨機(jī)數(shù)組第一部分、第一相關(guān)數(shù)組第二部分進(jìn)行計算得到;第二服務(wù)器參數(shù)接收模塊307,用于接收第二服務(wù)器發(fā)送的第二服務(wù)器參數(shù),所述第二服務(wù)器參數(shù)由第二服務(wù)器對接收到的第一隨機(jī)數(shù)組第二部分和第一相關(guān)數(shù)組第一部分進(jìn)行計算得到;設(shè)備安全多方計算協(xié)議執(zhí)行模塊308,用于通過第一服務(wù)器和第二服務(wù)器根據(jù)第一相關(guān)數(shù)及第二設(shè)備中間參數(shù)執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算得到第一設(shè)備參數(shù),并發(fā)送到第二設(shè)備; 第二設(shè)備參數(shù)接收模塊309,用于接收第二設(shè)備發(fā)送的第二設(shè)備參數(shù),所述第二設(shè)備參數(shù)由第二設(shè)備通過第一服務(wù)器和第二服務(wù)器根據(jù)第二相關(guān)數(shù)及第一設(shè)備中間參數(shù)執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算得到,所述第二相關(guān)數(shù)由第二設(shè)備根據(jù)第二隨機(jī)數(shù)與第二根隨機(jī)數(shù)計算得到,所述第二根隨機(jī)數(shù)由第二設(shè)備隨機(jī)選擇;密鑰生成模塊310,用于采用第一服務(wù)器參數(shù)、第二服務(wù)器參數(shù)、第一設(shè)備參數(shù)及第二設(shè)備參數(shù)的組合作為密鑰。圖4示出了根據(jù)本發(fā)明的密鑰生成服務(wù)器400的方框示意圖?!N密鑰生成服務(wù)器400,包括第一設(shè)備接收模塊401、第二設(shè)備接收模塊402、第一服務(wù)器參數(shù)生成模塊403、協(xié)調(diào)第一設(shè)備安全多方計算協(xié)議執(zhí)行模塊404和協(xié)調(diào)第二設(shè)備安全多方計算協(xié)議執(zhí)行模塊405 第一設(shè)備接收模塊401,用于從第一設(shè)備接收由第一設(shè)備生成的第一隨機(jī)數(shù)組第一部分和第一相關(guān)數(shù)組第二部分;第二設(shè)備接收模塊402,用于從第二設(shè)備接收由第二設(shè)備生成的第二隨機(jī)數(shù)組第一部分和第二相關(guān)數(shù)組第二部分;第一服務(wù)器參數(shù)生成模塊403,用于對接收到的第一隨機(jī)數(shù)組第一部分、第一相關(guān)數(shù)組第二部分、第二隨機(jī)數(shù)組第一部分和第二相關(guān)數(shù)組第二部分進(jìn)行計算得到第一服務(wù)器參數(shù),并發(fā)送給第一設(shè)備和第二設(shè)備;協(xié)調(diào)第一設(shè)備安全多方計算協(xié)議執(zhí)行模塊404,用于與第一設(shè)備、第二服務(wù)器共同執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算,以生成第一設(shè)備參數(shù),所述第一設(shè)備參數(shù)與第一服務(wù)器參數(shù)用于第一設(shè)備生成密鑰;協(xié)調(diào)第二設(shè)備安全多方計算協(xié)議執(zhí)行模塊405,用于與第二設(shè)備、第二服務(wù)器共同執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算,以生成第二設(shè)備參數(shù),所述第二設(shè)備參數(shù)與第一服務(wù)器參數(shù)用于第二設(shè)備生成密鑰。如圖5示出了根據(jù)本發(fā)明的由本發(fā)明的密鑰生成設(shè)備和密鑰生成服務(wù)器執(zhí)行的密鑰生成方法的信息交互圖。步驟S510 :第一設(shè)備101給第二設(shè)備102信息mod/),f ' mod/;.
步驟S520 :第二設(shè)備 102 給第一設(shè)備 101 信息mod/ , gK mod ρ .步驟S531 :第一設(shè)備101給第一月艮務(wù)器103信息(α ” α 2,);步驟S532 :第一設(shè)備101給第二服務(wù)器104信息(α 2,α / );步驟S541 :第二設(shè)備102給第一服務(wù)器103信息(β1; β;);步驟S542 :第二設(shè)備102給第二服務(wù)器104信息(β 2,β / );步驟S551 :第一服務(wù)器103給第一設(shè)備101信息K11, K22’ ;步驟S552 :第一服務(wù)器103給第二設(shè)備102信息K11, K22’ ;
步驟S553 :第二服務(wù)器104給第一設(shè)備101信息Kn’,K22 ;步驟S554 :第二服務(wù)器104給第二設(shè)備102信息Kn’,K22 ;步驟S560 :在第一設(shè)備101、第一服務(wù)器103和第二服務(wù)器104中執(zhí)行模指數(shù)的外包計算兩次。第一服務(wù)器103和第二服務(wù)器104之間的虛線表示兩個服務(wù)器沒有交互;步驟S570 :在第二設(shè)備102、第一服務(wù)器103和第二服務(wù)器104中執(zhí)行模指數(shù)的外包計算兩次。第一服務(wù)器103和第二服務(wù)器104之間的虛線表示兩個服務(wù)器沒有交互;步驟S581 :第一設(shè)備101給第二設(shè)備102信息K21和K21 ’ ;步驟S582 :第二設(shè)備102給第一設(shè)備101信息K12和K12’ ;步驟S590 :第一設(shè)備101計算K1 = K11K12K21K22,第二設(shè)備102各自計算K2 =KnK12K21K22O對于第一服務(wù)器103和第二服務(wù)器104來說,第一服務(wù)器103缺少Kn’,K22,而第二服務(wù)器104缺少Kn,K22’,因此均無法計算出K1或者K2,從而保證了密鑰生成的安全性。作為一種具體的應(yīng)用,兩個服務(wù)器103和104可以為云服務(wù)器,云服務(wù)器的計算能力較強(qiáng),但具有不安全性,特別適合本發(fā)明所提供的密鑰生成方法。本發(fā)明提供的密鑰生成方法,使得計算能力很弱的第一設(shè)備和第二設(shè)備得到一個公共的密鑰K,但是云服務(wù)器沒有得到K的任何信息。在密鑰生成的過程中,兩個不可信的服務(wù)器只能獲得密鑰生成過程中的部分信息,在兩個服務(wù)器不能串通,即兩個服務(wù)器隔絕通信的條件下,任何一方都不可能獲得完整的秘密信息,從而保證密鑰生成的安全性。以上所述實施例僅表達(dá)了本發(fā)明的幾種實施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
權(quán)利要求
1.一種密鑰生成方法,其特征在于,包括獲取一個隨機(jī)數(shù)作為第一根隨機(jī)數(shù),獲取多個隨機(jī)數(shù)作為第一隨機(jī)數(shù),得到包括多個第一隨機(jī)數(shù)的第一隨機(jī)數(shù)組;計算多個第一相關(guān)數(shù),得到包括多個第一相關(guān)數(shù)的第一相關(guān)數(shù)組,其中,所述每個第一相關(guān)數(shù)由一個第一隨機(jī)數(shù)與第一根隨機(jī)數(shù)計算得到;根據(jù)第一隨機(jī)數(shù)計算得到第一設(shè)備中間參數(shù),并發(fā)送給第二設(shè)備;接收第二設(shè)備發(fā)送的第二設(shè)備中間參數(shù),所述第二設(shè)備中間參數(shù)由第二設(shè)備隨機(jī)獲取的多個第二隨機(jī)數(shù)計算得到;將第一隨機(jī)數(shù)組分為第一隨機(jī)數(shù)組第一部分和第一隨機(jī)數(shù)組第二部分,將第一相關(guān)數(shù)組分為第一相關(guān)數(shù)組第一部分和第一相關(guān)數(shù)組第二部分,將第一隨機(jī)數(shù)組第一部分和第一相關(guān)數(shù)組第二部分發(fā)送給第一服務(wù)器,將第一隨機(jī)數(shù)組第二部分和第一相關(guān)數(shù)組第一部分發(fā)送給第二服務(wù)器;接收第一服務(wù)器發(fā)送的第一服務(wù)器參數(shù),其中,所述第一服務(wù)器參數(shù)由第一服務(wù)器對第一隨機(jī)數(shù)組第一部分、第一相關(guān)數(shù)組第二部分進(jìn)行計算得到;接收第二服務(wù)器發(fā)送的第二服務(wù)器參數(shù),其中,所述第二服務(wù)器參數(shù)由第二服務(wù)器對第一隨機(jī)數(shù)組第二部分和第一相關(guān)數(shù)組第一部分進(jìn)行計算得到;通過第一服務(wù)器和第二服務(wù)器根據(jù)第一相關(guān)數(shù)及第二設(shè)備中間參數(shù)執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算得到第一設(shè)備參數(shù),并發(fā)送到第二設(shè)備;接收第二設(shè)備發(fā)送的第二設(shè)備參數(shù),其中,所述第二設(shè)備參數(shù)由第二設(shè)備通過第一服務(wù)器和第二服務(wù)器根據(jù)第二相關(guān)數(shù)及第一設(shè)備中間參數(shù)執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算得到,所述第二相關(guān)數(shù)由第二設(shè)備根據(jù)第二隨機(jī)數(shù)與第二根隨機(jī)數(shù)計算得到,所述第二根隨機(jī)數(shù)由第二設(shè)備隨機(jī)選擇;采用第一服務(wù)器參數(shù)、第二服務(wù)器參數(shù)、第一設(shè)備參數(shù)及第二設(shè)備參數(shù)生成密鑰。
2.根據(jù)權(quán)利要求1所述的密鑰生成方法,其特征在于,第一相關(guān)數(shù)組第一部分中的任意一個第一相關(guān)數(shù),由第一根隨機(jī)數(shù)及第一隨機(jī)數(shù)組第一部分中的一個第一隨機(jī)數(shù)計算得到;第一相關(guān)數(shù)組第二部分中的任意一個第一相關(guān)數(shù),由第一根隨機(jī)數(shù)及第一隨機(jī)數(shù)組第二部分中的一個第一隨機(jī)數(shù)計算得到。
3.根據(jù)權(quán)利要求1所述的密鑰生成方法,其特征在于,具體包括初始化選擇一個有限域Zp,其中,P是一個素數(shù),從Zp中選擇一個生成元g ;獲取一個隨機(jī)數(shù)α作為第一根隨機(jī)數(shù),獲取兩個隨機(jī)數(shù)\和α/作為第一隨機(jī)數(shù), 得到包括£^和a /的第一隨機(jī)數(shù)組,其中,a,Ct1, a / e
;計算兩個第一相關(guān)數(shù)%和a2’,得到包括%和a2’的第一相關(guān)數(shù)組,其中,Ci2 = α-αρο Κρ-Ι), ct 2,= a - a J mod (p-1);計算兩個第一設(shè)備中間參數(shù)f mod"和gei mod/ ,把& mod/;和f mod/;發(fā)給第二設(shè)備;接收第二設(shè)備發(fā)送的兩個第二設(shè)備中間參數(shù)f1 mod/;和兒A’mod/ ,其中,P1和β / 為第二設(shè)備隨機(jī)獲取的兩個第二隨機(jī)數(shù),β/ e [O, p-2];將第一隨機(jī)數(shù)組分為第一隨機(jī)數(shù)組第一部分和第一隨機(jī)數(shù)組第二部分,第一隨機(jī)數(shù)組第一部分為h,第一隨機(jī)數(shù)組第二部分為a/,將第一相關(guān)數(shù)組分為第一相關(guān)數(shù)組第一部分和第一相關(guān)數(shù)組第二部分,第一相關(guān)數(shù)組第一部分為α 2,第一相關(guān)數(shù)組第二部分為 α 2’,將a i和α 2’發(fā)送給第一服務(wù)器,將α 2和α /發(fā)送給第二服務(wù)器;接收由第一服務(wù)器發(fā)送的第一服務(wù)器參數(shù)K11和Κ22’,其中,K11由第一服務(wù)器根據(jù) =W1 mo卸得到,K22 ’由第一服務(wù)器根據(jù)[=Pvv modp計算得到,其中,β2’由第二設(shè)備根據(jù)β2’ = β-β/mocKp-l)得到,β為第二設(shè)備隨機(jī)獲取的第二根隨機(jī)數(shù),β e [O, p-2];接收由第二服務(wù)器發(fā)送的第二服務(wù)器參數(shù)Kn’和K22,其中,Κη’由第二服務(wù)器根據(jù) AV=Pvvmod/;計算得到,K22由第二服務(wù)器根據(jù)I22計算得到,其中,β2由第二設(shè)備根據(jù)= β - β ^od (ρ-1)得到;與第一服務(wù)器和第二服務(wù)器共同執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算,分別得到兩個第一設(shè)備參數(shù)K21和K21 ’,其中,人,i =CV1廣:mod P ,Κ,],= ( ξ ''γ<2 mod p,并發(fā)送K21和 K21 ’給第二設(shè)備;接收第二設(shè)備發(fā)送的兩個第二設(shè)備參數(shù)K12和K12’,1(12和1(12’由第二設(shè)備、第一服務(wù)器和第二服務(wù)器共同執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算得到,其中,[,2 =C "1 mod,如果 K11K12K21K22 = Kn’ K12’ K21 ’ K22’,則采用 K = K11K12K21K22 作為密鑰。
4.一種密鑰生成設(shè)備,其特征在于,包括隨機(jī)數(shù)選擇模塊、相關(guān)數(shù)計算模塊、第一設(shè)備中間參數(shù)計算模塊、第二設(shè)備中間參數(shù)接收模塊、服務(wù)器發(fā)送模塊、第一服務(wù)器參數(shù)接收模塊、第二服務(wù)器參數(shù)接收模塊、設(shè)備安全多方計算協(xié)議執(zhí)行模塊、第二設(shè)備參數(shù)接收模塊和密鑰生成模塊隨機(jī)數(shù)選擇模塊,用于獲取一個隨機(jī)數(shù)作為第一根隨機(jī)數(shù),獲取多個隨機(jī)數(shù)作為第一隨機(jī)數(shù),得到包括多個第一隨機(jī)數(shù)的第一隨機(jī)數(shù)組;相關(guān)數(shù)計算模塊,用于計算多個第一相關(guān)數(shù),得到包括多個第一相關(guān)數(shù)的第一相關(guān)數(shù)組;其中,所述每個第一相關(guān)數(shù)由一個第一隨機(jī)數(shù)與第一根隨機(jī)數(shù)計算得到;第一設(shè)備中間參數(shù)計算模塊,用于根據(jù)第一隨機(jī)數(shù)計算得到第一設(shè)備中間參數(shù),并發(fā)送給第二設(shè)備;第二設(shè)備中間參數(shù)接收模塊,用于接收第二設(shè)備發(fā)送的第二設(shè)備中間參數(shù),所述第二設(shè)備中間參數(shù)由第二設(shè)備隨機(jī)獲取的多個第二隨機(jī)數(shù)計算得到;服務(wù)器發(fā)送模塊,用于將第一隨機(jī)數(shù)組分為第一隨機(jī)數(shù)組第一部分和第一隨機(jī)數(shù)組第二部分,將第一相關(guān)數(shù)組分為第一相關(guān)數(shù)組第一部分和第一相關(guān)數(shù)組第二部分,將第一隨機(jī)數(shù)組第一部分和第一相關(guān)數(shù)組第二部分發(fā)送給第一服務(wù)器,將第一隨機(jī)數(shù)組第二部分和第一相關(guān)數(shù)組第一部分發(fā)送給第二服務(wù)器;第一服務(wù)器參數(shù)接收模塊,用于接收第一服務(wù)器發(fā)送的第一服務(wù)器參數(shù),其中,所述第一服務(wù)器參數(shù)由第一服務(wù)器對第一隨機(jī)數(shù)組第一部分、第一相關(guān)數(shù)組第二部分進(jìn)行計算得到;第二服務(wù)器參數(shù)接收模塊,用于接收第二服務(wù)器發(fā)送的第二服務(wù)器參數(shù),其中,所述第二服務(wù)器參數(shù)由第二服務(wù)器對第一隨機(jī)數(shù)組第二部分和第一相關(guān)數(shù)組第一部分進(jìn)行計算得到;設(shè)備安全多方計算協(xié)議執(zhí)行模塊,用于通過第一服務(wù)器和第二服務(wù)器根據(jù)第一相關(guān)數(shù)及第二設(shè)備中間參數(shù)執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算得到第一設(shè)備參數(shù),并發(fā)送到第二設(shè)備;第二設(shè)備參數(shù)接收模塊,用于接收第二設(shè)備發(fā)送的第二設(shè)備參數(shù),其中,所述第二設(shè)備參數(shù)由第二設(shè)備通過第一服務(wù)器和第二服務(wù)器根據(jù)第二相關(guān)數(shù)及第一設(shè)備中間參數(shù)執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算得到,所述第二相關(guān)數(shù)由第二設(shè)備根據(jù)第二隨機(jī)數(shù)與第二根隨機(jī)數(shù)計算得到,所述第二根隨機(jī)數(shù)由第二設(shè)備隨機(jī)選擇;密鑰生成模塊,用于采用第一服務(wù)器參數(shù)、第二服務(wù)器參數(shù)、第一設(shè)備參數(shù)及第二設(shè)備參數(shù)生成密鑰。
5.一種密鑰生成方法,其特征在于,包括接收由第一設(shè)備生成的第一隨機(jī)數(shù)組第一部分和第一相關(guān)數(shù)組第二部分;接收由第二設(shè)備生成的第二隨機(jī)數(shù)組第一部分和第二相關(guān)數(shù)第二部分組;對接收到的第一隨機(jī)數(shù)第一部分、第一相關(guān)數(shù)第二部分、第二隨機(jī)數(shù)第一部分和第二相關(guān)數(shù)第二部分進(jìn)行計算得到第一服務(wù)器參數(shù),并發(fā)送給第一設(shè)備和第二設(shè)備;與第一設(shè)備、第二服務(wù)器共同執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算,以生成第一設(shè)備參數(shù),所述第一設(shè)備參數(shù)與第一服務(wù)器參數(shù)用于第一設(shè)備生成密鑰;與第二設(shè)備、第二服務(wù)器共同執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算,以生成第二設(shè)備參數(shù),所述第二設(shè)備參數(shù)與第一服務(wù)器參數(shù)用于第二設(shè)備生成密鑰。
6.根據(jù)權(quán)利要求5所述的密鑰生成方法,其特征在于,具體包括選擇一個有限域Zp,其中,P是一個素數(shù),從Zp中選擇一個生成元g ;接收由第一設(shè)備生成的第一隨機(jī)數(shù)組第一部分a i和第一相關(guān)數(shù)組第二部分α2’ ; 接收由第二設(shè)備生成的第二隨機(jī)數(shù)組第一部分β i和第二相關(guān)數(shù)組第二部分β2’ ; 計算第一服務(wù)器參數(shù)二gaM modPmKn'=g',-L modp,并把K1^K2/發(fā)送給第一設(shè)備和第二設(shè)備;與第一設(shè)備和第二服務(wù)器共同執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算,以生成兩個第一設(shè)備參數(shù)K21和K21,,其中,[21 =(#Γ mo卻,人V=mod P,其中,勵d/)和mod P為第一設(shè)備從第二設(shè)備接收的兩個第二設(shè)備中間參數(shù),Ci2和α2’由第一設(shè)備根據(jù) Ct2= a - a Pod(P-1)和 α 2’ = a - a / mod (ρ_1)計算得到,(^和 α / 為第一設(shè)備隨機(jī)選擇的第一隨機(jī)數(shù),α為第一設(shè)備隨機(jī)選擇的第一根隨機(jī)數(shù),α,αι,a / e [O, p-2]; 與第二設(shè)備和第二服務(wù)器共同執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算,以生成兩個第二設(shè)備參數(shù)K12和K12,,其中,[丨2 f2 mod/ ;2'=Wfmod/ ,其中,P咖#和 mod P為第二設(shè)備從第一設(shè)備接收的兩個第一設(shè)備中間參數(shù),02和β2’由第二設(shè)備根據(jù)β 2 = β _β Pod(P-1)和β 2’ = β _β / mod(p-l)得到,P1和β /為第二設(shè)備隨機(jī)選擇的第二隨機(jī)數(shù),β為第二設(shè)備隨機(jī)選擇的第二根隨機(jī)數(shù),β/ e [O, p-2] 0
7.—種密鑰生成服務(wù)器,其特征在于,包括第一設(shè)備接收模塊、第二設(shè)備接收模塊、第一服務(wù)器參數(shù)生成模塊、協(xié)調(diào)第一設(shè)備安全多方計算協(xié)議執(zhí)行模塊和協(xié)調(diào)第二設(shè)備安全多方計算協(xié)議執(zhí)行模塊第一設(shè)備接收模塊,用于接收由第一設(shè)備生成的第一隨機(jī)數(shù)組第一部分和第一相關(guān)數(shù)組第二部分;第二設(shè)備接收模塊,用于接收由第二設(shè)備生成的第二隨機(jī)數(shù)組第一部分和第二相關(guān)數(shù)組第二部分;第一服務(wù)器參數(shù)生成模塊,用于對接收到的第一隨機(jī)數(shù)組第一部分、第一相關(guān)數(shù)組第二部分、第二隨機(jī)數(shù)組第一部分和第二相關(guān)數(shù)組第二部分進(jìn)行計算得到第一服務(wù)器參數(shù), 并發(fā)送給第一設(shè)備和第二設(shè)備;協(xié)調(diào)第一設(shè)備安全多方計算協(xié)議執(zhí)行模塊,用于與第一設(shè)備、第二服務(wù)器共同執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算,以生成第一設(shè)備參數(shù),所述第一設(shè)備參數(shù)與第一服務(wù)器參數(shù)用于第一設(shè)備生成密鑰;協(xié)調(diào)第二設(shè)備安全多方計算協(xié)議執(zhí)行模塊,用于與第二設(shè)備、第二服務(wù)器共同執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算,以生成第二設(shè)備參數(shù),所述第二設(shè)備參數(shù)與第一服務(wù)器參數(shù)用于第二設(shè)備生成密鑰。
8.—種密鑰生成方法,其特征在于,包括第一設(shè)備獲取一個隨機(jī)數(shù)作為第一根隨機(jī)數(shù),獲取多個隨機(jī)數(shù)作為第一隨機(jī)數(shù),得到包括多個第一隨機(jī)數(shù)的第一隨機(jī)數(shù)組;計算多個第一相關(guān)數(shù),得到包括多個第一相關(guān)數(shù)的第一相關(guān)數(shù)組,其中,所述每個第一相關(guān)數(shù)由一個第一隨機(jī)數(shù)與第一根隨機(jī)數(shù)計算得到;第二設(shè)備獲取一個隨機(jī)數(shù)作為第二根隨機(jī)數(shù),獲取多個隨機(jī)數(shù)作為第二隨機(jī)數(shù),得到包括多個第二隨機(jī)數(shù)的第二隨機(jī)數(shù)組;計算多個第二相關(guān)數(shù),得到包括多個第二相關(guān)數(shù)的第二相關(guān)數(shù)組,其中,所述每個第二相關(guān)數(shù)由一個第二隨機(jī)數(shù)與第二根隨機(jī)數(shù)計算得到;第一設(shè)備將第一隨機(jī)數(shù)組分為第一隨機(jī)數(shù)組第一部分和第一隨機(jī)數(shù)組第二部分,將第一相關(guān)數(shù)組分為第一相關(guān)數(shù)組第一部分和第一相關(guān)數(shù)組第二部分,將第一隨機(jī)數(shù)組第一部分和第一相關(guān)數(shù)組第二部分發(fā)送給第一服務(wù)器,將第一隨機(jī)數(shù)組第二部分和第一相關(guān)數(shù)組第一部分發(fā)送給第二服務(wù)器;第二設(shè)備將第二隨機(jī)數(shù)組分為第二隨機(jī)數(shù)組第一部分和第二隨機(jī)數(shù)組第二部分,將第二相關(guān)數(shù)組分為第二相關(guān)數(shù)組第一部分和第二相關(guān)數(shù)組第二部分,將第二隨機(jī)數(shù)組第一部分和第二相關(guān)數(shù)組第二部分發(fā)送給第一服務(wù)器,將第二隨機(jī)數(shù)組第二部分和第二相關(guān)數(shù)組第一部分發(fā)送給第二服務(wù)器;第一服務(wù)器對接收到的第一隨機(jī)數(shù)組第一部分、第一相關(guān)數(shù)組第二部分、第二隨機(jī)數(shù)組第一部分和第二相關(guān)數(shù)組第二部分進(jìn)行計算得到第一服務(wù)器參數(shù),并發(fā)送給第一設(shè)備和第二設(shè)備;第二服務(wù)器對接收到的第一隨機(jī)數(shù)組第二部分、第一相關(guān)數(shù)組第一部分、第二隨機(jī)數(shù)組第二部分和第二相關(guān)數(shù)組第一部分進(jìn)行計算得到第二服務(wù)器參數(shù),并發(fā)送給第一設(shè)備和第二設(shè)備;第一設(shè)備通過第一服務(wù)器和第二服務(wù)器執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算得到第一設(shè)備參數(shù),并發(fā)送給第二設(shè)備;第二設(shè)備通過第一服務(wù)器和第二服務(wù)器執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算得到第二設(shè)備參數(shù),并發(fā)送給第一設(shè)備;第一設(shè)備和第二設(shè)備采用第一服務(wù)器參數(shù)、第二服務(wù)器參數(shù)、第一設(shè)備參數(shù)及第二設(shè)備參數(shù)的組合作為密鑰。
9.根據(jù)權(quán)利要求8所述的密鑰生成方法,其特征在于第一相關(guān)數(shù)組第一部分中的任意一個第一相關(guān)數(shù),由第一根隨機(jī)數(shù)及第一隨機(jī)數(shù)組第一部分中的一個第一隨機(jī)數(shù)計算得到,第一相關(guān)數(shù)組第二部分中的任意一個第一相關(guān)數(shù), 由第一根隨機(jī)數(shù)及第一隨機(jī)數(shù)組第二部分中的一個第一隨機(jī)數(shù)計算得到;第二相關(guān)數(shù)組第一部分中的任意一個第二相關(guān)數(shù),由第二根隨機(jī)數(shù)及第二隨機(jī)數(shù)組第一部分中的一個第二隨機(jī)數(shù)計算得到,第二相關(guān)數(shù)組第二部分中的任意一個第二相關(guān)數(shù), 由第二根隨機(jī)數(shù)及第二隨機(jī)數(shù)第二部分中的一個第二隨機(jī)數(shù)計算得到。
10.根據(jù)權(quán)利要求8所述的密鑰生成方法,其特征在于,具體包括初始化選擇一個有限域Zp,其中,P是一個素數(shù),從Zp中選擇一個生成元g ;第一設(shè)備獲取一個隨機(jī)數(shù)α作為第一根隨機(jī)數(shù),獲取兩個隨機(jī)數(shù)\和α /作為第一隨機(jī)數(shù),得到包括\和α/的第一隨機(jī)數(shù)組,其中,a,Q1, a/ e
,計算兩個第一相關(guān)數(shù)%和α2’,得到包括02和α2’的第一相關(guān)數(shù)組,其中,Ct2= Ct-Ct1Inod(P-1), α 2 = α - a / mod (p_l),計算兩個第一設(shè)備中間參數(shù)f: mod /)和f mod μ,把mod μ 和mod ρ發(fā)給第二設(shè)備;第二設(shè)備獲取一個隨機(jī)數(shù)β作為第二根隨機(jī)數(shù),獲取兩個隨機(jī)數(shù)^和β/作為第二隨機(jī)數(shù),得到包括^和β/的第二隨機(jī)數(shù)組,其中,β,β/ e
,計算兩個第二相關(guān)數(shù)和β/,得到包括和@2’的第二相關(guān)數(shù)組其中,β - β jmocKp-l), β 2 = β _β / mod(p-l),計算兩個第二設(shè)備中間參數(shù)mod"和mod/ ,把mod p 和mod p發(fā)給第一設(shè)備;第一設(shè)備將第一隨機(jī)數(shù)組分為第一隨機(jī)數(shù)組第一部分和第一隨機(jī)數(shù)組第二部分,第一隨機(jī)數(shù)組第一部分為h,第一隨機(jī)數(shù)組第二部分為α/,將第一相關(guān)數(shù)組分為第一相關(guān)數(shù)組第一部分和第一相關(guān)數(shù)組第二部分,第一相關(guān)數(shù)組第一部分為α2,第一相關(guān)數(shù)組第二部分為α2’,將\和α2’發(fā)送給第一服務(wù)器,將%和α /發(fā)送給第二服務(wù)器;第二設(shè)備將第二隨機(jī)數(shù)組分為第二隨機(jī)數(shù)組第一部分和第二隨機(jī)數(shù)組第二部分,第二隨機(jī)數(shù)組第一部分為P1,第二隨機(jī)數(shù)組第二部分為β/,將第二相關(guān)數(shù)組分為第二相關(guān)數(shù)組第一部分和第二相關(guān)數(shù)組第二部分,第二相關(guān)數(shù)組第一部分為β2,第二相關(guān)數(shù)組第二部分為β2’,將^和β2’發(fā)送給第一服務(wù)器,將32和β/發(fā)送給第二服務(wù)器;第一服務(wù)器計算第一服務(wù)器參數(shù)A11 二 g· mod,第二服務(wù)器計算第二服務(wù)器參數(shù)尤J=廣丨1' mod和A2 = ^";/; mod/;,然后第一服務(wù)器將K11和K22’發(fā)送給第一設(shè)備和第二設(shè)備,第二服務(wù)器將Kn’和K22發(fā)送給第一設(shè)備和第二設(shè)備;第一設(shè)備、第一服務(wù)器和第二服務(wù)器共同執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算,得到兩個第一設(shè)備參數(shù) K21 和 K21 ’,其中,[21 = (V: Γ: Hiodi ,K2]'=(g/rr modp ;第二設(shè)備、第一服務(wù)器和第二服務(wù)器共同執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算,得到兩個第二設(shè)備參數(shù) K12 和 K12 ’,其中,[丨2 =(gei)Am0dp JCu'=(g^')A'modp;第一設(shè)備發(fā)送K21和K21 ’給第二設(shè)備,第二設(shè)備發(fā)送K12和K12’給第一設(shè)備;第一設(shè)備驗證如果 K11K12K21K22 = Kn’ K12’ K21 ’ K22’,則采用 K = K11K12K21K22 作為密鑰; 第二設(shè)備驗證如果 K11K12K21K22 = Kn’ K12’ K21 ’ K22’,則采用 K = K11K12K21K22 作為密鑰。
全文摘要
本發(fā)明涉及密鑰協(xié)商相關(guān)技術(shù)領(lǐng)域,特別是涉及一種密鑰生成方法、設(shè)備及服務(wù)器。該密鑰生成方法包括第一設(shè)備和第二設(shè)備分別選擇多個隨機(jī)數(shù),計算多個相關(guān)數(shù);發(fā)送一部分的隨機(jī)數(shù)和一部分的相關(guān)數(shù)到第一服務(wù)器,以及發(fā)送另一部分的隨機(jī)數(shù)和相關(guān)數(shù)到第二服務(wù)器;第一服務(wù)器和第二服務(wù)器分別根據(jù)接收到的隨機(jī)數(shù)和相關(guān)數(shù)進(jìn)行計算得到服務(wù)器參數(shù);第一設(shè)備、第二設(shè)備通過第一服務(wù)器和第二服務(wù)器執(zhí)行安全多方計算協(xié)議進(jìn)行模指數(shù)運(yùn)算得到設(shè)備參數(shù);第一設(shè)備和第二設(shè)備采用服務(wù)器參數(shù)和設(shè)備參數(shù)的組合作為密鑰。本發(fā)明的密鑰生成方法,使得兩個計算能力很弱的設(shè)備,在服務(wù)器不可信的情形下,也能借助服務(wù)器實現(xiàn)模指數(shù)的外包計算,得到一個共同的密鑰。
文檔編號H04L29/06GK103001957SQ201210489040
公開日2013年3月27日 申請日期2012年11月26日 優(yōu)先權(quán)日2012年11月26日
發(fā)明者唐春明, 張永強(qiáng), 劉 申請人:廣州大學(xué), 廣東數(shù)字證書認(rèn)證中心有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
永康市| 灵丘县| 工布江达县| 龙泉市| 石河子市| 孟津县| 武夷山市| 鹤峰县| 镶黄旗| 长春市| 濉溪县| 郴州市| 靖州| 武汉市| 洛浦县| 北京市| 当涂县| 贺州市| 石屏县| 恭城| 科技| 开阳县| 乐至县| 临沧市| 太白县| 肥西县| 巴中市| 山西省| 咸宁市| 天全县| 登封市| 夏邑县| 孟津县| 菏泽市| 吉木萨尔县| 胶州市| 德江县| 黎城县| 长汀县| 汉中市| 佛教|