国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

面向云存儲的海量密鑰管理方案設(shè)計(jì)與實(shí)現(xiàn)

2023-09-06 11:12:52王佳慧馬利民
信息安全研究 2023年9期
關(guān)鍵詞:加解密門限密鑰

張 彤 張 偉 王佳慧 劉 珂 馬利民

1(北京信息科技大學(xué)計(jì)算機(jī)學(xué)院 北京 100101)

2(國家信息中心信息與網(wǎng)絡(luò)安全部 北京 100045)

(zhangtong9702@sina.com)

云存儲是云計(jì)算概念的延伸和衍生,云存儲將存儲資源放在云端供人們訪問,具有運(yùn)營成本低、存儲效率高、管理方便、訪問便捷等優(yōu)點(diǎn)[1].但云存儲因?yàn)閿?shù)據(jù)被外包到由不完全信任的云服務(wù)提供者(cloud service provider, CSP)維護(hù)的云服務(wù)器上[2]:一方面,半信任的CSP可能破壞數(shù)據(jù)的機(jī)密性,如將數(shù)據(jù)透露給其他用戶;另一方面,CSP一直遭受著大量的外部攻擊,如果數(shù)據(jù)在云服務(wù)器中以明文存儲,也會威脅到數(shù)據(jù)的保密性.為了保護(hù)云存儲中外包數(shù)據(jù)的機(jī)密性,在外包前使用對稱加密技術(shù)對大量數(shù)據(jù)進(jìn)行加密是一種直接可靠的做法[3-5].

現(xiàn)有的方法是采用對稱加密技術(shù)保護(hù)云存儲中外包數(shù)據(jù)的機(jī)密性,對數(shù)據(jù)塊加密后上傳.如此一來,每個數(shù)據(jù)塊需要1個相應(yīng)的數(shù)據(jù)密鑰,而云計(jì)算背景下的PB級數(shù)據(jù)需要海量的密鑰支持,如此龐大的密鑰數(shù)量將對密鑰的存儲產(chǎn)生巨大的壓力.

基于以上問題,本文貢獻(xiàn)如下:

1) 提出一種基于矩陣的密鑰派生方案,隨用隨派生,僅存儲根密鑰和矩陣結(jié)構(gòu)即可,本文方案對比傳統(tǒng)方案減少了約65%~80%的存儲開銷;

2) 提出基于SM2非對稱算法[6]的兩方門限數(shù)字分發(fā)方案,保證了密鑰分發(fā)過程中密鑰的機(jī)密性和可鑒別性;

3) 使用硬件密碼機(jī)對主密鑰進(jìn)行安全存儲,通過軟硬件結(jié)合提升了密鑰存儲的安全性.

1 相關(guān)工作

面向密鑰派生結(jié)構(gòu)的密鑰生成方案一直以來受到學(xué)者的廣泛關(guān)注.

Atallah等人[7]在2009年提出了一種基于狀態(tài)密鑰樹的組密鑰分發(fā)協(xié)議,該方案利用單層密鑰派生方法(single-layer derivation equation, SDE),建立一個基于用戶的樹型層次結(jié)構(gòu),基于密鑰派生圖,根據(jù)不同用戶對不同數(shù)據(jù)的訪問權(quán)限,為各個用戶生成1棵密鑰派生樹,并根據(jù)密鑰樹的結(jié)構(gòu),為不同加密對象分配不同的密鑰.因此,系統(tǒng)只用管理少量用戶密鑰,再由用戶密鑰派生出大量加解密所需的數(shù)據(jù)密鑰[7-9],該方案為數(shù)據(jù)密鑰共享提供了很好的解決思路.但是密鑰派生樹的容量具有局限性,在用戶數(shù)量、密鑰數(shù)量巨大的云存儲場景下,密鑰派生會產(chǎn)生很大的時間開銷[9].Vimercati等人[10]在SDE基礎(chǔ)上提出的雙層派生方案(double-layer derivation equation, DDE)減少了SDE方案中因權(quán)限更新造成的密鑰更新成本損耗[11-12],但是在海量用戶的場景下與SDE有相同的缺點(diǎn)[13].

2011年,Lo等人[14]基于公鑰密碼和哈希函數(shù)提出了一種面向大型樹型結(jié)構(gòu)密文共享訪問的密鑰管理方案,與上述方案相比提高了訪問控制效率,但是隨著葉子節(jié)點(diǎn)數(shù)量的增長,密鑰生成的計(jì)算開銷較大,并且,在后續(xù)的研究中發(fā)現(xiàn),該方案在前向安全方面存在致命的安全隱患.

Horus[15]方案使用一種可擴(kuò)展的方法,利用哈希樹為大文件的不同區(qū)域生成不同的密鑰,支持更細(xì)粒度的安全.通過建立樹結(jié)構(gòu)為每個數(shù)據(jù)單元分配單獨(dú)密鑰,Horus使用密鑰哈希樹從每個文件的根密鑰KR中為各個塊導(dǎo)出唯一的加密密鑰,這是唯一需要存儲的密鑰.除根密鑰外的其他密鑰是由Kx,y=KH(Kparent,x‖y)計(jì)算得出的,其中Kparent是Kx,y父區(qū)域的密鑰,該方案能夠通過哈希運(yùn)算快速計(jì)算出數(shù)據(jù)密鑰.但是,在刪除數(shù)據(jù)時需要重新建立密鑰樹才能注銷密鑰,只有通過修改文件的根密鑰,然后讀取、重新加密和重寫所有數(shù)據(jù),才能在整個文件的粒度上撤銷加密密鑰,該操作會產(chǎn)生大量時間開銷.

因此,在云存儲環(huán)境多用戶和海量數(shù)據(jù)的背景下,上述方案隨著用戶所需密鑰的增多,密鑰派生樹深度和節(jié)點(diǎn)數(shù)量增長,密鑰派生算法的時間和存儲開銷會呈線性或指數(shù)增長.

2 問題分析及方案設(shè)計(jì)

2.1 問題分析

圖1為本文方案云存儲的場景圖,有3種不同的實(shí)體:云存儲服務(wù)商(cloud service providers, CSP)、數(shù)據(jù)所有者(date owner, DO)和數(shù)據(jù)用戶(data user, DU).

圖1 云存儲場景

云存儲服務(wù)商擁有大量的計(jì)算資源和足夠的存諸空間提供數(shù)據(jù)存儲服務(wù);數(shù)據(jù)所有者將數(shù)據(jù)存儲在由云存儲服務(wù)商維護(hù)的公有云服務(wù)器中,為了保護(hù)數(shù)據(jù)的機(jī)密性,數(shù)據(jù)所有者對數(shù)據(jù)進(jìn)行分塊,并在外包前用唯一的密鑰對每個塊進(jìn)行對稱加密;數(shù)據(jù)用戶從CSP檢索加密的數(shù)據(jù)塊,并要求數(shù)據(jù)所有者提供相應(yīng)的加密密鑰或密鑰規(guī)則訪問數(shù)據(jù).在這種情況下,加密通常是在塊級進(jìn)行,每個區(qū)塊都由1個唯一的密鑰加密.其結(jié)果需要多個不同的對稱密鑰.因此,本文的目標(biāo)是有效地生成和維護(hù)這些密鑰.本文方案中數(shù)據(jù)所有者負(fù)責(zé)密鑰管理,如密鑰的生成、更新和分發(fā),但只有少量的密鑰信息由DO存儲和維護(hù).其他的密鑰可以有效地即時生成,并被很好地組織,以方便管理.

數(shù)據(jù)加解密的流程如下:

1) 數(shù)據(jù)所有者將明文數(shù)據(jù)加密后發(fā)送到云服務(wù)器存儲并建立索引;

2) 當(dāng)用戶需要請求數(shù)據(jù)訪問時,先向數(shù)據(jù)所有者發(fā)送請求;

3) 數(shù)據(jù)所有者收到請求后,將密鑰派生規(guī)則和輔助信息發(fā)送給用戶;

4) 用戶收到信息后,執(zhí)行相應(yīng)規(guī)則派生密鑰對數(shù)據(jù)進(jìn)行解密,得到明文數(shù)據(jù).

另外,本文方案數(shù)據(jù)塊加解密使用的SM4對稱密碼算法[16]是對稱密碼算法中的迭代分組密碼算法,它將明文劃分為若干個固定長度的組,在密鑰的控制下轉(zhuǎn)換為對應(yīng)的密文分組.其本質(zhì)是從明文空間到密文空間的一一映射,算法過程由加解密和密鑰擴(kuò)展組成,密鑰擴(kuò)展算法與加密算法可共用,資源利用率高,適合數(shù)據(jù)批量加解密場景;加密算法流程和解密算法流程一樣,軟硬件實(shí)現(xiàn)方便.缺點(diǎn)是密鑰管理難度大,對密鑰的依賴性大,密鑰一旦被破解隱患極大.

基于以上云存儲加密的場景和算法,海量用戶需要派生出海量密鑰,如何制定派生方式減少密鑰存儲的開銷,同時確保密鑰的安全是一個亟待解決的問題.若使用哈希樹的方案進(jìn)行存儲,固定的密鑰樹結(jié)構(gòu),當(dāng)密鑰數(shù)量超過容量時,會導(dǎo)致樹的深度加大,密鑰存儲會給服務(wù)器帶來巨大的開銷.

本文設(shè)計(jì)基于矩陣形式的派生密鑰,針對云存儲場景對密鑰樹進(jìn)行優(yōu)化,不需要額外存儲中間密鑰,只需存儲和管理根密鑰以及派生配置矩陣,實(shí)現(xiàn)數(shù)據(jù)密鑰的隨用隨派生,當(dāng)加密密鑰需求量大時,可以減輕存儲負(fù)擔(dān).

在密鑰管理系統(tǒng)(key manage system, KMS)根據(jù)用戶提供的主密鑰和密鑰派生規(guī)則派生出一定數(shù)量的數(shù)據(jù)密鑰后,需要將密鑰分發(fā)給客戶端進(jìn)行加解密操作,在密鑰分發(fā)過程中存在以下安全威脅:

1) 機(jī)密性威脅.雖然在本文方案中默認(rèn)密鑰分發(fā)通道為專有的安全通道,其信息難以被第三方截取,但不能完全保證其安全性,一旦通道被攻擊,會導(dǎo)致密鑰被截獲,嚴(yán)重威脅用戶數(shù)據(jù)的機(jī)密性.

2) 鑒別性威脅.當(dāng)系統(tǒng)規(guī)模擴(kuò)大時,可能涉及分層密鑰管理,有多個密鑰管理中心負(fù)責(zé)密鑰派生,用戶若不能鑒別KMS身份的合法性,則會導(dǎo)致數(shù)據(jù)被非法加密,同時,若KMS不能鑒別請求密鑰的用戶身份,將密鑰分發(fā)給非法用戶,會導(dǎo)致數(shù)據(jù)直接失密,帶來安全威脅.

因此,為了保證密鑰分發(fā)的機(jī)密性和雙方身份的可鑒別性,本文采用SM2非對稱算法實(shí)現(xiàn)門限算法,設(shè)置數(shù)字信封,保證密鑰分發(fā)過程中密鑰的機(jī)密性;并通過SM2門限簽名算法實(shí)現(xiàn)雙方的身份互認(rèn),避免鑒別性威脅.

2.2 本文方案總體架構(gòu)設(shè)計(jì)

本文方案的密鑰由私有云上的密鑰管理系統(tǒng)(KMS)管理,KMS負(fù)責(zé)安全、高效和可擴(kuò)展的密鑰管理.所涉及的密鑰體系如圖2所示:

圖2 密鑰分層保護(hù)體系

1) 主密鑰MK.用于保護(hù)用戶密鑰.在密碼機(jī)設(shè)備初始化時生成,規(guī)定數(shù)量的密鑰管理員分別輸入或隨機(jī)生成自己的秘密值,加密機(jī)主密鑰(根密鑰)由3段組件組成,每段組件分成3個成分,每個密鑰成分由不同的人員生成,采用數(shù)字和字母隨機(jī)組合.

2) 用戶密鑰UK.是用戶專用的密鑰,由用戶自選或由系統(tǒng)分配,可用于標(biāo)識用戶身份.

3) 數(shù)據(jù)加密密鑰DK.用于加密明文數(shù)據(jù),不進(jìn)行保存,由用戶密鑰UK隨用隨派生.

密鑰使用流程如圖3所示,密碼機(jī)內(nèi)部的隨機(jī)數(shù)芯片產(chǎn)生指定長度的隨機(jī)數(shù)充當(dāng)KMS根密鑰,并將其存儲于安全芯片內(nèi)部,并返回密鑰的索引;業(yè)務(wù)系統(tǒng)調(diào)用加解密接口,提交服務(wù)至密碼SDK,密碼SDK提供派生規(guī)則,如密鑰的個數(shù)等信息,申請密鑰派生;KMS會對密碼SDK的合法性進(jìn)行驗(yàn)證,驗(yàn)證通過之后,通過基于矩陣的密鑰派生和基于SM2兩方門限密碼算法的數(shù)字信封進(jìn)行密鑰分發(fā).密碼SDK使用派生的密鑰對數(shù)據(jù)進(jìn)行加密,返還給業(yè)務(wù)系統(tǒng)加密結(jié)果.

圖3 密鑰使用流程

2.3 基于矩陣的密鑰派生方案

在一般的安全云存儲系統(tǒng)中,數(shù)據(jù)訪問層執(zhí)行數(shù)據(jù)加密操作,然后通過應(yīng)用接口層的公有API接口上傳至云存儲管理服務(wù)器,即基礎(chǔ)管理層;基礎(chǔ)管理層提供數(shù)據(jù)分塊存儲、數(shù)據(jù)索引建立、數(shù)據(jù)密文搜索等功能,最后將數(shù)據(jù)密文及其附加信息(一般為元數(shù)據(jù))保存至存儲層;存儲層對傳入數(shù)據(jù)進(jìn)行壓縮、刪冗,從而減少成本,提高存儲空間的利用率[17].

如圖4所示,其中加解密客戶端屬于訪問層,為用戶提供文件的上傳、下載、刪除等基本功能,同時提供訪問權(quán)限控制、數(shù)據(jù)加解密以及完整性檢驗(yàn)等功能.密鑰管理服務(wù)系統(tǒng)KMS是基礎(chǔ)管理層,負(fù)責(zé)客戶端和云端之間的身份認(rèn)證和密鑰管理,其對用戶所存儲數(shù)據(jù)沒有訪問權(quán)限和使用權(quán)限.云端屬于存儲層,提供客戶端文件的分布式管理,并將其存儲到集群存儲服務(wù)器(chunk servers).

圖4 密鑰使用場景

本文假設(shè)在KMS和用戶之間有一個可信的安全通道,KMS使用這個通道向用戶分發(fā)密鑰;KMS和CSP公有云之間的信道以及客戶端和CSP之間的信道是不可信的.對手能夠竊聽或破壞在這些不可信信道上發(fā)送的數(shù)據(jù).

當(dāng)數(shù)據(jù)所有者需要上傳數(shù)據(jù)時,數(shù)據(jù)加密的流程中密鑰使用的步驟如下:

1) 數(shù)據(jù)所有者將數(shù)據(jù)明文和包含密鑰派生規(guī)則的密鑰配置通過安全通道發(fā)送到私有云的加解密客戶端,密鑰配置包括數(shù)據(jù)所有者或用戶的UK、密鑰派生矩陣的行列值、數(shù)據(jù)塊加密索引和訪問權(quán)限列表等信息;

2) 加解密客戶端收到數(shù)據(jù)后,向KMS發(fā)送密鑰配置,請求密鑰;

3) KMS收到請求后,根據(jù)密鑰配置和UK派生出數(shù)據(jù)加密密鑰DK,發(fā)送至加解密客戶端;

4) 加解密客戶端收到DK密鑰后,根據(jù)密鑰和索引加密相應(yīng)的數(shù)據(jù)塊,并使用KMS的公鑰對密鑰配置進(jìn)行加密,將加密后的密文數(shù)據(jù)塊和密文密鑰配置通過公共通道上傳至公有云進(jìn)行存儲.

當(dāng)數(shù)據(jù)用戶需要下載數(shù)據(jù)時,數(shù)據(jù)解密的流程中密鑰使用的步驟如下:

1) 數(shù)據(jù)用戶向客戶端發(fā)送下載訪問某數(shù)據(jù)塊的請求;

2) 客戶端收到請求后,向公有云下載對應(yīng)數(shù)據(jù)的密文,并向KMS發(fā)送對應(yīng)密鑰請求;

3) KMS收到請求后,向公有云下載對應(yīng)的密鑰配置,并用自己的私鑰解密判斷其訪問權(quán)限,通過后根據(jù)解密后的密鑰配置派生出對應(yīng)的密鑰,發(fā)送給加解密客戶端;

4) 客戶端收到密鑰后,用對應(yīng)密鑰解密對應(yīng)密文數(shù)據(jù)塊,將明文規(guī)定通過安全通道發(fā)送給用戶.

在此密鑰使用流程中,密碼配置包括用戶密鑰UK、密鑰派生矩陣的行數(shù)M、列數(shù)N,該用戶數(shù)據(jù)塊總數(shù)量應(yīng)不大于密鑰派生矩陣的行列乘積,從而確保每個數(shù)據(jù)塊擁有不同的密鑰.

密鑰派生矩陣如下:

(1)

該矩陣中,第x行第y列節(jié)點(diǎn)的密鑰值計(jì)算公式為

kx,y=hash_SM3(UK,x‖y),

(2)

其中UK為用戶密鑰,即該派生過程中的根密鑰,x‖y表示該矩陣某位置坐標(biāo)的串聯(lián)運(yùn)算,通過式(2)可以派生出矩陣K所需的所有密鑰,密鑰個數(shù)為M×N,密鑰值互不相同.

2.4 基于SM2兩方門限密碼算法的密鑰分發(fā)

本節(jié)結(jié)合門限密碼算法實(shí)現(xiàn)數(shù)字信封,同時實(shí)現(xiàn)隱式數(shù)字簽名,SM2非對稱密碼算法是本文方案的安全基礎(chǔ).門限密碼算法是Shamir[18]基于多項(xiàng)式插值法提出的,在一個(t,n)門限算法方案中,通過構(gòu)造1個t-1次多項(xiàng)式,將需共享的秘密作為該多項(xiàng)式的常數(shù)項(xiàng),將秘密分成n部分分別給n個參與者,t個或以上參與者聯(lián)合可恢復(fù)秘密,但少于t個參與者聯(lián)合則不能得到共享秘密的任何信息.使用門限算法進(jìn)行簽名相比普通簽名的好處是顯而易見的,即密鑰不會在客戶端和KMS端完整出現(xiàn),對于具備攻破用戶終端能力的攻擊者來說,他只能獲取到密鑰的一部分,無法在KMS端不參與的情況下偽造簽名或數(shù)字信封,從而提高簽名和信封的可靠性.

但是,門限算法的實(shí)現(xiàn)往往交互次數(shù)多,過程復(fù)雜,而在云計(jì)算環(huán)境低延遲、少交互的需求下,并沒有優(yōu)勢.因此,本文采用基于SM2的兩方門限密碼算法,即t=2,n=2的(2,2)門限方案,將密鑰拆分成2份,使得任意一方密鑰被竊取的情況下都不會導(dǎo)致密鑰泄露.

本文方案密鑰分發(fā)過程分為以下幾個步驟:

1) 客戶端與KMS交互協(xié)商產(chǎn)生用戶公鑰;

2) KMS通過SM3哈希算法計(jì)算需要分發(fā)的密鑰的摘要值e,并與客戶端合作產(chǎn)生簽名值(r,s);

3) KMS使用用戶的公鑰對密鑰及其摘要值e進(jìn)行加密,產(chǎn)生數(shù)字信封并發(fā)送給客戶端;

4) 客戶端收到信封后,使用自己的私鑰進(jìn)行解密,得到分發(fā)的密鑰及其摘要值e;

5) 客戶端發(fā)起簽名驗(yàn)證,與KMS合作驗(yàn)證該密鑰為KMS發(fā)送的合法密鑰.

其中,用戶公鑰的協(xié)商產(chǎn)生流程如圖5所示,分為以下幾個步驟:

圖5 協(xié)商用戶公鑰流程

1) 用戶登錄客戶端發(fā)起密鑰生成請求,并產(chǎn)生自己的私鑰分量D1;

3) 客戶端收到后,保存密鑰標(biāo)識,計(jì)算完整的公鑰P并公開.

數(shù)字信封的實(shí)現(xiàn)流程如圖6所示,分為以下幾個步驟:

圖6 數(shù)字信封的實(shí)現(xiàn)流程

1) 客戶端和KMS分別輸入各自的私鑰分量D1,D2;

2) 客戶端生成隨機(jī)數(shù)n1,計(jì)算簽名分量Q1發(fā)送給KMS;

3) KMS使用SM3算法計(jì)算需要分發(fā)的密鑰組K的摘要值e,生成隨機(jī)數(shù)n2,n3,利用Q1和摘要值e計(jì)算部分簽名r,然后根據(jù)自己的私鑰分量D2生成s2,s3,將r,s2,s3發(fā)送給客戶端;

4) 客戶端通過計(jì)算得到s,從而得到完整的簽名(r,s);

5) KMS使用公開的用戶公鑰進(jìn)行數(shù)字信封計(jì)算,使用公鑰加密需要分發(fā)的密鑰組K和摘要值e,并將信封發(fā)送給客戶端,完成密鑰分發(fā).

簽名的驗(yàn)證過程同樣需要雙方合作完成,分為以下幾個步驟:

1) 客戶端和KMS分別輸入各自的私鑰分量D1,D2;

2) 客戶端從收到的密文C中提取比特串C1,C=C1‖C2‖C3,‖表示拼接,驗(yàn)證C1是否為橢圓曲線上的非無窮遠(yuǎn)點(diǎn),如果是,則計(jì)算T1=D1C1,將T1發(fā)送至KMS;

4) 客戶端根據(jù)T2計(jì)算出點(diǎn)(x2,y2),并根據(jù)SM2橢圓曲線進(jìn)行驗(yàn)證.

以上流程通過SM2兩方門限密碼算法實(shí)現(xiàn)密鑰分發(fā)的數(shù)字信封.此流程的好處是客戶端和KMS之間的通信不需要專門保護(hù),兩者在簽名過程中完成隱式的身份鑒別,不持有相應(yīng)的私鑰分量無法合作計(jì)算出合法的簽名值,防止了鑒別性威脅;兩者交互發(fā)送的r,s2,s3等數(shù)據(jù),即使明文傳輸被攔截也不會泄露私鑰信息;對需要分發(fā)的密鑰使用數(shù)字信封保護(hù),杜絕了分發(fā)過程中的機(jī)密性威脅.

3 安全性與性能分析

3.1 安全性分析

1) 數(shù)據(jù)安全.對于CSP公有云節(jié)點(diǎn)面臨的攻擊,云端的訪問控制策略可以抵擋一部分攻擊能力較弱的外部攻擊者,若攻擊者通過偽裝等方式繞過訪問控制,竊取了存在云中的數(shù)據(jù),由于數(shù)據(jù)是密文存放,數(shù)據(jù)的密鑰由多種因子聯(lián)合派生,并且不存儲,攻擊者無法在沒有密鑰的情況下,即使得到數(shù)據(jù)也無法獲取其中的機(jī)密明文信息,從而最大程度保障了云中數(shù)據(jù)的安全性和機(jī)密性.

2) 主密鑰安全.主密鑰的安全存儲是整個系統(tǒng)安全性的核心保障.本文方案的主密鑰基于硬件密碼機(jī)生成并負(fù)責(zé)保護(hù).相比軟件保護(hù),硬件實(shí)現(xiàn)了相對獨(dú)立、受控的運(yùn)算環(huán)境,保證了密鑰的安全存儲.一方面,硬件環(huán)境功能單一,不運(yùn)行其他應(yīng)用,具有良好的隔離特性,斷絕了同一環(huán)境中惡意應(yīng)用攻擊的可能性,并且硬件運(yùn)行環(huán)境封閉,僅提供必要的數(shù)據(jù)輸入和輸出,不允許外部控制輸入,從而控制了外部威脅;另一方面,硬件密碼機(jī)配備專門的安全存儲區(qū)域,有額外的空間用于存儲長期密鑰,從而對主密鑰的安全存儲提供了更高的安全性.

3) 數(shù)據(jù)密鑰安全.對于用戶客戶端節(jié)點(diǎn)面臨的攻擊,用戶密鑰對采用SM2(2,2)兩方門限密碼算法生成,僅攻擊用戶端并不能得到完整的密鑰,從而保證了用戶密鑰的安全,進(jìn)一步保障了數(shù)據(jù)密鑰的安全.另外,每個用戶對云上數(shù)據(jù)的訪問權(quán)限不一,即使用戶節(jié)點(diǎn)被完全控制也只能獲取其權(quán)限下的小部分?jǐn)?shù)據(jù),且由于哈希函數(shù)的單向性,通過該用戶節(jié)點(diǎn)的用戶密鑰和數(shù)據(jù)密鑰也無法推導(dǎo)出其他用戶的密鑰信息.

3.2 性能分析

本文實(shí)驗(yàn)使用個人PC端模擬用戶端,用多臺服務(wù)器搭建云環(huán)境模擬不同的云節(jié)點(diǎn),測試配置如表1所示:

表1 測試配置

對比存儲每個加密密鑰的傳統(tǒng)方案,本文方案大大減少了存儲開銷,如表2所示:

表2 存儲開銷對比 b

其中,b為密鑰樹的分支數(shù),d為密鑰樹的深度.可以看出當(dāng)分枝數(shù)目相同時,隨著深度的增加,本文的存儲開銷優(yōu)勢越來越明顯.圖7為本文密鑰派生方案存儲開銷占傳統(tǒng)方案存儲開銷的比重,圖7中走勢與表2中理論一致,隨著樹的深度的增加,其開銷占比減小,直至0.19后趨于穩(wěn)定,因此本文方案相比傳統(tǒng)方案,減少了約65%~80%的存儲開銷.

圖7 存儲開銷占比

在密鑰派生過程中產(chǎn)生的計(jì)算開銷包括密鑰派生I/O和密鑰分發(fā)I/O.

密鑰派生I/O如圖8所示,密鑰派生I/O與密鑰樹的深度有關(guān),深度越深,需要進(jìn)行的摘要計(jì)算次數(shù)越多,因此派生I/O越小.本文方案使用的密鑰派生將樹的深度降為2層,在大幅減少存儲空間的前提下,相比Horus密鑰樹方案,兩者在密鑰深度為2時I/O幾乎相近,但密鑰深度增加后,本文方案帶來一定的派生I/O損耗,但仍在可以接受的范圍內(nèi).

圖8 密鑰派生I/O

密鑰分發(fā)過程主要通過SM2兩方門限密碼算法實(shí)現(xiàn),該算法與普通門限算法的計(jì)算量對比如下:SM2算法計(jì)算過程中的主要開銷來自于橢圓曲線上的基點(diǎn)G的點(diǎn)乘kG和非固定點(diǎn)的點(diǎn)乘kp,對于算法本身而言,kG的計(jì)算比kp快約1個數(shù)量級.如表3所示,假設(shè)KMS服務(wù)端的性能遠(yuǎn)高于客戶端,因?yàn)榭梢院雎苑?wù)端的計(jì)算負(fù)載,在密鑰生成過程中,本文方案的計(jì)算開銷比標(biāo)準(zhǔn)SM2方案約降低了1個數(shù)量級,在數(shù)字信封和簽名過程中也減少一半開銷,在解密和驗(yàn)簽過程中也略有減少.因此,在不考慮網(wǎng)絡(luò)交互損耗的情況下,本文SM2兩方門限密碼算法的密鑰分發(fā)方案相比標(biāo)準(zhǔn)SM2方案,計(jì)算開銷大幅降低.

表3 密鑰分發(fā)開銷對比

4 總 結(jié)

為了解決云存儲數(shù)據(jù)加密背景下海量密鑰存儲造成的存儲空間損耗等問題,本文調(diào)研了當(dāng)前密鑰派生方案的優(yōu)缺點(diǎn),分析了公共衛(wèi)生系統(tǒng)云存儲場景的現(xiàn)實(shí)需求,提出了基于矩陣的數(shù)據(jù)密鑰派生方法,減少了密鑰存儲開銷,采用基于SM2的兩方門限密碼算法實(shí)現(xiàn)了門限數(shù)字信封,防止了機(jī)密性威脅和鑒別性威脅,并將其應(yīng)用到實(shí)際場景中,設(shè)計(jì)并實(shí)現(xiàn)了面向云存儲的綜合密鑰管理系統(tǒng).本文方案的優(yōu)點(diǎn)如下:

1) 存儲開銷更低.基于矩陣的密鑰派生方案通過用戶密鑰和密鑰派生矩陣實(shí)現(xiàn)數(shù)據(jù)密鑰的隨用隨派生,云中只需要存儲派生規(guī)則的密文即可,不需要對海量的數(shù)據(jù)密鑰進(jìn)行存儲,比傳統(tǒng)方案減少65%~80%的存儲開銷.

2) 安全性更高.基于SM2兩方門限密碼算法的門限數(shù)字信封使用數(shù)字信封對需要分發(fā)的密鑰進(jìn)行加密保護(hù),防止了機(jī)密性威脅;并使用SM2兩方門限簽名完成隱式的身份鑒別,保證密鑰分發(fā)的合法性,防止了鑒別性威脅;與標(biāo)準(zhǔn)SM2算法相比減少了一定的計(jì)算開銷.

雖然本文方案在密鑰存儲開銷方面有所優(yōu)化,但因減少存儲空間帶來了可接受范圍內(nèi)的派生I/O損耗,以時間換空間.在后續(xù)的研究中,可以優(yōu)化該派生方案,盡量做到空間和時間的平衡,更好地助力云場景下的數(shù)據(jù)存儲與共享.

猜你喜歡
加解密門限密鑰
探索企業(yè)創(chuàng)新密鑰
基于規(guī)則的HEV邏輯門限控制策略
地方債對經(jīng)濟(jì)增長的門限效應(yīng)及地區(qū)差異研究
中國西部(2021年4期)2021-11-04 08:57:32
密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
隨機(jī)失效門限下指數(shù)退化軌道模型的分析與應(yīng)用
一種對稱密鑰的密鑰管理方法及系統(tǒng)
基于ECC的智能家居密鑰管理機(jī)制的實(shí)現(xiàn)
PDF中隱私數(shù)據(jù)的保護(hù)方法
電子取證中常見數(shù)據(jù)加解密理論與方法研究
基于FPGA的LFSR異步加解密系統(tǒng)
桑植县| 蒙阴县| 黑龙江省| 彰化市| 曲麻莱县| 永平县| 江永县| 邵武市| 临江市| 司法| 阿图什市| 东莞市| 莱州市| 公安县| 定日县| 永修县| 苍梧县| 于田县| 呼和浩特市| 阜宁县| 平原县| 惠州市| 米易县| 仁寿县| 周至县| 册亨县| 大关县| 丹寨县| 益阳市| 吉首市| 原平市| 年辖:市辖区| 蓬安县| 巨鹿县| 岑巩县| 沈阳市| 四会市| 西充县| 武隆县| 江口县| 宽城|