1%作為身份密鑰請求信息發(fā)送給身份管理中心30中身份密鑰生成模塊31,其中I為串接符。
[0043]可選地,
[0044]所述步驟S2包括:
[0045]S21.身份密鑰生成模塊31首先選取兩個素數(shù)P和q,并且滿足q | p_l,然后選取使得等式Imod P成立的a(a # I)。
[0046]S22.收到身份密鑰管理模塊11發(fā)送的身份密鑰生成請求后,身份密鑰生成模塊31通過偽隨機數(shù)生成算法生成隨機數(shù)s (s < q)作為數(shù)據(jù)使用者10身份密鑰的私鑰,將V=a s mod P作為數(shù)據(jù)使用者10身份密鑰的公鑰。
[0047]S23.身份管理中心30中用戶身份管理模塊32將數(shù)據(jù)使用者10的身份信息IDu存入數(shù)據(jù)使用者信息表中,身份密鑰生成模塊31將數(shù)據(jù)使用者10的身份密鑰對(S,V)發(fā)送給身份密鑰管理模塊11。
[0048]可選地,
[0049]所述步驟S3包括:
[0050]S31.數(shù)據(jù)使用者10的第一零知識證明模塊12通過偽隨機數(shù)生成算法生成滿足安全強度要求的隨機數(shù)t。
[0051]S32.第一零知識證明模塊12與大數(shù)據(jù)發(fā)布平臺20中的第二零知識證明模塊21將隨機數(shù)t、數(shù)據(jù)使用者10的身份公鑰V、身份管理中心30生成的(p,q, a)作為共享的公共參數(shù)。
[0052]可選地,
[0053]所述步驟S4包括:
[0054]S41.第一零知識證明模塊12通過偽隨機數(shù)生成算法生成滿足條件KrSq-1的隨機數(shù)r,計算X = a1 mod p,并將x發(fā)送給第二零知識證明模塊21。
[0055]S42.第二零知識證明模塊21通過偽隨機數(shù)生成算法生成滿足條件I < e < 21 1的隨機數(shù)e,并且e之前未被使用過,第二零知識證明模塊21將e發(fā)送給第一零知識證明模塊12。
[0056]S43.第一零知識證明模塊12計算y = (r+se)mod p,并將y發(fā)送給第二零知識證明模塊21。
[0057]S44.第二零知識證明模塊21驗證等式x = ayve mod p是否成立,成立則表明數(shù)據(jù)使用者10擁有身份管理中心30為其生成的身份密鑰S,數(shù)據(jù)使用者10為合法用戶;不成立則表明數(shù)據(jù)使用者10為非法用戶。
[0058]可選地,
[0059]所述步驟S5包括:
[0060]S51.數(shù)據(jù)使用者10的第一共享密鑰管理模塊13通過偽隨機數(shù)生成算法生成隨機數(shù) Nonceskey0
[0061]S52.第一共享密鑰管理模塊13將IDu | | Nonceslrey作為共享密鑰生成請求發(fā)送給身份管理中心30的共享密鑰生成模塊33,其中I I為串接符。
[0062]可選地,
[0063]所述步驟S6包括:
[0064]S61.收到第一共享密鑰管理模塊13發(fā)送的共享密鑰生成請求后,共享密鑰生成模塊33解析得到1%和Nonce skey,用戶身份管理模塊32以1%和Nonce skey為索引字段在本地維護的數(shù)據(jù)使用者信息表中查詢是否有相同的記錄。
[0065]S62.若沒有與當前的IDjPNonceskey相同的記錄,共享密鑰生成模塊33為數(shù)據(jù)使用者10和大數(shù)據(jù)發(fā)布平臺20生成滿足安全強度要求的隨機共享密鑰skey,用戶身份管理模塊32將skey存入數(shù)據(jù)使用者信息表中;若有相同的記錄,表明發(fā)生了重放攻擊,共享密鑰生成模塊33對當前的共享密鑰生成請求不予響應。
[0066]S63.共享密鑰生成模塊33通過安全信道將共享密鑰skey發(fā)送給共享密鑰管理模塊和共享密鑰管理模塊。
[0067]可選地,
[0068]所述步驟S7包括:
[0069]S71.大數(shù)據(jù)發(fā)布平臺20的賬號口令生成模塊22為數(shù)據(jù)使用者10生成能夠正常登錄大數(shù)據(jù)發(fā)布平臺20的臨時賬號和對應的口令。
[0070]S72.第二共享密鑰管理模塊23采用對稱加密算法用共享密鑰skey加密臨時賬號和口令,并將加密后的臨時賬號和口令發(fā)送給第一共享密鑰管理模塊13。
[0071]S73.第一共享密鑰管理模塊13用共享密鑰skey解密從第二共享密鑰管理模塊23處接收到的加密后的臨時賬號和口令。
[0072]S74.數(shù)據(jù)使用者10用臨時賬號和口令登錄大數(shù)據(jù)發(fā)布平臺20,正常分析和使用數(shù)據(jù)。
[0073]以上方法實施例的原理如下:
[0074]本發(fā)明實施例的原理如下:
[0075]數(shù)據(jù)使用者10將身份信息發(fā)送給可信的身份管理中心30,請求身份管理中心30為其生成唯一代表其身份的身份密鑰。身份管理中心30驗證數(shù)據(jù)使用者10的身份信息后,為其生成唯一證明其合法身份的身份密鑰,并發(fā)送給數(shù)據(jù)使用者10。之后,數(shù)據(jù)使用者10根據(jù)該身份密鑰生成相應的公共參數(shù),并發(fā)送給大數(shù)據(jù)發(fā)布平臺20。大數(shù)據(jù)發(fā)布平臺20與該數(shù)據(jù)使用者10根據(jù)公共參數(shù)執(zhí)行一個交互式的零知識證明協(xié)議,以使得大數(shù)據(jù)發(fā)布平臺20相信該數(shù)據(jù)使用者10是一個合法可信的用戶,確實擁有身份管理中心30為其頒發(fā)的身份密鑰,但同時又無法知道該身份密鑰也即該數(shù)據(jù)使用者10的具體信息。大數(shù)據(jù)發(fā)布平臺20驗證數(shù)據(jù)使用者10為合法有效的用戶后,為該數(shù)據(jù)使用者10臨時生成一個隨機賬號和口令,以供數(shù)據(jù)使用者10登錄。為保證隨機賬號和口令是通過安全信道傳輸?shù)模瑪?shù)據(jù)使用者10需要向身份管理中心30發(fā)送一個隨機數(shù)請求身份管理中心30為數(shù)據(jù)使用者10與大數(shù)據(jù)發(fā)布平臺20生成共享密鑰。為將數(shù)據(jù)使用者10的身份信息與共享密鑰能夠對應起來,身份管理中心30需要維護一張數(shù)據(jù)使用者信息表(User Informat1n Table,UIT),數(shù)據(jù)使用者信息表用于管理維護用戶身份信息、共享密鑰生成請求隨機數(shù)與共享密鑰的對應關系,并將生成的共享密鑰分別通過安全信道發(fā)送給數(shù)據(jù)使用者10和大數(shù)據(jù)發(fā)布平臺20。其中,身份管理中心30與大數(shù)據(jù)發(fā)布平臺20、身份管理中心30與數(shù)據(jù)使用者10之間的安全信道可基于證書的方式建立,不屬于本發(fā)明的討論范圍。擁有共享密鑰后,大數(shù)據(jù)發(fā)布平臺20和數(shù)據(jù)使用者10之間就可以基于該共享密鑰建立安全信道,大數(shù)據(jù)發(fā)布平臺20通過安全信道將臨時賬號和口令發(fā)送給數(shù)據(jù)使用者10,數(shù)據(jù)使用者10獲取到賬號和口令后就可以普通方式登錄大數(shù)據(jù)發(fā)布平臺20,正常分析使用大數(shù)據(jù),并且大數(shù)據(jù)發(fā)布平臺20不知道數(shù)據(jù)使用者10的真實身份,從而有效地保護了用戶的身份隱私。
[0076]如圖3所示,本發(fā)明實施例還提供一種基于零知識證明的用戶身份隱私保護系統(tǒng),其包括身份管理中心30、大數(shù)據(jù)發(fā)布平臺20以及數(shù)據(jù)使用者(即用戶)10 ;身份管理中心30、大數(shù)據(jù)發(fā)布平臺20、數(shù)據(jù)使用者10之間均有公共信道或安全信道;
[0077]數(shù)據(jù)使用者10包括身份密鑰管理模塊11、第一零知識證明模塊12、第一共享密鑰管理模塊13等模塊;第一零知識證明模塊12分別與身份密鑰管理模塊11、第一共享密鑰管理模塊13連接。
[0078]大數(shù)據(jù)發(fā)布平臺20包括第二零知識證明模塊21、賬號口令生成模塊22、第二共享密鑰管理模塊23等模塊;賬號口令生成模塊22分別與第二零知識證明模塊21、第二共享密鑰管理模塊23連接。
[0079]身份管理中心30包括身份密鑰生成模塊31、用戶身份管理模塊32、共享密鑰生成模塊33等模塊;用戶身份管理模塊32分別與身份密鑰生成模塊31、共享密鑰生成模塊33連接。
[0080]身份密鑰管理模塊11,用于向身份管理中心30發(fā)起身份密鑰請求,請求身份管理中心30為數(shù)據(jù)使用者10生成唯一代表其身份信息的身份密鑰,并存儲和管理身份管理中心30返回的身份密鑰。
[0081]身份密鑰生成模塊31,用于根據(jù)身份密鑰請求為數(shù)據(jù)使用者10生成唯一代表其身份信息的身份密鑰,并將身份密鑰發(fā)送給數(shù)據(jù)使用者10。
[0082]用戶身份管理模塊32,用于管理數(shù)據(jù)使用者10的身份信息、共享密鑰生成請求隨機數(shù)、共享密鑰之間的對應關系,使得根據(jù)數(shù)據(jù)使用者10的共享密鑰生成請求生成的共享密鑰能夠發(fā)送給該數(shù)據(jù)使用者10。
[0083]第一零知識證明模塊12,用于根據(jù)公共參數(shù)執(zhí)行交互式零知識證明協(xié)議向大數(shù)據(jù)發(fā)布平臺20證明數(shù)據(jù)使用者的合法身份。
[0084]第二零知識證明模塊21,用于根據(jù)公共參數(shù)執(zhí)行交互式零知識證明協(xié)議對數(shù)據(jù)使用者10的身份進行驗證。
[0085]賬號口令生成模塊22,用于為數(shù)據(jù)使用者10生成臨時的賬號和賬號對應的口令;
[0086]共享密鑰生成模塊33,用于在接收到數(shù)據(jù)使用者10的隨機數(shù)請求后,為數(shù)據(jù)使用者10和大數(shù)據(jù)發(fā)布平臺20生成共享密鑰,并將共享密鑰通過安全信道發(fā)送給數(shù)據(jù)使用者10和大數(shù)據(jù)發(fā)布平臺20。
[0087]第一共享密鑰管理模塊13,用于生成隨機數(shù),并將隨機數(shù)發(fā)送給共享密鑰生成模塊33,存儲并管理從共享密鑰生成模塊33處獲得的共享密鑰,并用于解密從第二共享密鑰管理模塊23處接收到的加密臨時賬號和口令;
[0088]第二共享密鑰管理模塊23,用于存儲并管理從共享密鑰生成模塊33處獲得的共享密鑰,并用于加密臨時賬號和口令,并將加密后的臨時賬號和口令發(fā)送給第一共享密鑰管理模塊13。
[0089]結合本文中所公開的實施例描述的