計算機加密訪問論文
時間:2022-09-17 05:50:00
導語:計算機加密訪問論文一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。
摘要訪問控制是一種很流行的信息保護機制,被廣泛應用在信息系統中。十多年來,在這個領域已取得了很多成就。傳統的訪問控制已經被更加靈活強大的系統代替了,如基于角色的訪問控制(RBAC)和靈活授權框架(FAF)。但是,在訪問控制系統中,對系統管理員的絕對信賴一直是對信息安全的潛在威脅。為了克服這個威脅,分等級的加密被發展作為訪問控制的替補方法。通過使用分等級的加密,信息系統中的所有信息被加密:由低層安全類加密的數據可以被高層的安全類解密。文章描述了基于數據和基于密鑰的兩種加密方法實現加密的訪問控制。
關鍵詞加密;解密;訪問控制;等級
1引言
分等級進行加密的想法最早是由Akl和Taylor提出的[1],多級系統中的主體(用戶)和客體(數據)有各自的安全級,用戶對數據的訪問必須滿足一定的安全性要求。安全級是一個二元組<密級,分類集合>。用戶間的安全級的比較是按偏序進行的。如果安全級U1=密級l1分類集合s1,U2=密級l2分類集合s2。稱U1<=U2當且僅當l1<l2且s1⊆s2。
假設有主體S,客體O1、O2和O3,如果安全級Uo1<=Us,Us=Uo2,Us<=Uo3,則S對O1只能讀,對O3只能寫,對同安全級別的客體O2可以進行讀寫兩種操作。在這種多級安全模型中,一個主體(用戶)訪問其它主體的數據時,只需要與被訪問主體的安全級進行比較,如果訪問主體的安全級比被訪問主體的安全級高,則允許訪問,否則,訪問被禁止。從中可以看到,如果非法用戶篡改安全級,則很容易實現對其它(高安全級)用戶數據的非法訪問。可見這種比較安全級的訪問控制方法具有潛在的不安全性。通過加密方法可以有效消除這種不安全性。首先,在對用戶身份鑒別時,不僅生成用戶密碼,同時還為用戶生成一個公鑰、私鑰對,利用密鑰對來加強對用戶身份鑒別,再利用用戶的私鑰為用戶生成一個訪問密鑰,由此來實現訪問控制。
2基于數據的解決方法
找到足夠安全的保護數據的方法或者安全的產生訪問密鑰的方法,就可以解決訪問控制的問題,這是實現加密訪問控制時的重點。
非常流行的加強訪問控制的方法是通過訪問控制列表。每個數據都與一個ACL表相關,表中列舉出授權的用戶組和相對應的訪問模式。通過查看ACL,很容易決定允許誰對相關數據進行對應操作。ACL包含通常情況下的所有訪問控制。例如,它支持等級訪問控制。如果我們根據等級結構或者組織產生ACL。那么等級訪問控制就能夠被加強。也就是說,一個數據擁有這和它所有的祖先都被在它的數據ACL中列舉出來。
圖1訪問控制列表(ACL)
從加密的角度來講,為了加強通用的訪問控制,每個數據必須被加密,這樣只有ACL中的主體有能力解密數據。假設每個主體被分配一對密鑰:公鑰和私鑰。K個主體共享消息m:s1,s2,…sk,對于每個主體si∈{s1,s2,…sk},m被si的公鑰加密。加之它所有者的密文,m被加密(k+1)次。為了共享一個單一的信息m系統保存(k+1)個密文。這種方法的消極面出現確定了,也就是存
儲加密數據的多個副本可能會產生矛盾(不一致性)。
2.1系統元素
我們的基于數據的解決方法包括以下元素:
主體S={s1,s2,…sl},主體既可以是用戶也可以是組。
公鑰密碼系統包括三個功能函數:
(1)密鑰生成函數KG:∀si∈S,KG生成一對密鑰:公開密鑰Ksi和它的對應的私有密鑰Ksi-1。
(2)加密函數E:c=Ek(m),其中c是密文,m代表信息,K表示公開密鑰(加密密鑰)。
(3)解密函數D:c=Dk-1(c),K-1表示私有密鑰(解密密鑰)。
2.2加密的訪問控制
假設主體si想與k個用戶si1,si2,…,sik∈S共享信息m,si執行下面的操作(為簡單起見,我們假設m<ns1,ns2,…nsl)。如果是長信息,可以一塊一塊的進行加密。
(1)首先,si計算k個單一的密文,也就是說,對于∀sj∈{si1,si2,…,sik},計算Eksj(m)。
(2)然后,si用加納法則計算出CRT的解x,0≤x≤nsi1,nsi2,…,nsik,x同時滿足以下k個式子:
(1)x≡Eks1(m)modnsi1.
(2)x≡Eks2(m)modnsi2.
…
(k)x≡Eksk(m)modnsik。
(3)把si保存在SDB里。對每個訪問m的主體sj,sj∈{si1,si2,…,sik},sj需要計算Eksj(m)=xmodnsj。然后sj使用私鑰Eksj-1恢復m。
2.3授權變更
數據項授權的變更,如一個主體被授權/撤消對數據項的訪問,在信息系統中是很常見的事情。我們的基于數據的解法根據受到影響的數據狀態來控制授權變更。如果數據項是動態的(也就是說數據在授權變更時有變化),A1到A3的所有操作基于授權主體新的組再執行一次。如果數據是靜態的(也就是說授權更改時數據項不發生改變)。
圖2中SCS1包括k個同時滿足的等式,它的CRT解是x;給SCS1增加一個條件等式得到SCS2,它的CRT解是x′;從SCS1去除一個條件等式得到SCS3,它的CRT解是x″。假設x的值已經算出來了,為得到x′的值,我們只需要找到x′≡xmodn1n2和x′≡ak+1modnk+1兩個等式的CRT解。為得到x″的值,我們只需要一個模運算:x″=xmodn1n2…nk+1??傊?,x′和x″的值可以很容易得從x得出[2]。
在我們的基于數據的解法中,準予一個主體對一個靜態數據項進行訪問與從SCS1到SCS2的轉換是等價的。新的共享密文x′可以從舊的共享密文x有效得到。撤消一個主體對一個靜態數據的訪問與從SCS1到SCS3的轉換是等價的。通過一個模運算可以簡單的從舊的密文x得到新的密文x″。
3基于密鑰的解法
3.1實現
在基于數據的解法中,k個共享者共同分享信息m,共享密文的大小是原始信息m大小的k倍。因此基于數據的解法在m或者k很大的情況下是不可取的。而且,基于數據的解法是基于公開密碼系統的。這樣的話,共享一個數據項,數據項的所有者必須知道所有分享者的加密密鑰。為保護解密密鑰的機密性,我們只能使用公開密鑰加密系統。公開密鑰加密系統比對稱加密體制慢。
我們的基于密鑰的解法的主要思想是:不是分享信息,而是分享加密密鑰[3]。除了在基于數據的解法中列舉的元素外,基于密鑰的解法還需要一個對稱密鑰加密系統。這里,我們用SE表示加密函數,SD表示解密函數。
如果一個主體si想與主體si1,si2,…,sik∈S分享信息m,執行如下操作:
(1)隨機選擇一個對稱密鑰KR。
(2)使用KR加密m:c=SEKR(m)。
(3)∀s∈{si1,si2,…,sik},計算EKsj(KR)。
(4)找到同時滿足下面等式的CRT解:
(1)x≡Eksi1(KR)modnsi1.
(2)x≡Eksi2(KR)modnsi2.
…
(k)x≡Eksik(KR)modnsi。
(5)把x||c保存到SDB中,其中符號“||”的意思是“串聯”。
主體sj∈{si1,si2,…,sik}訪問m,sj需要計算Eksij(KR)=xmodnsj;然后用私鑰Ksj-1取回對稱密鑰KR,也就是KR=DKsj-1(Eksij(KR));最后,使用KR恢復明文m,m=SDKR(c)。
3.2授權變更
對于動態數據,任何時候只要授權發生更改,從(1)到(5)的步驟都要被基于新的主體組重新執行一次。對于靜態數據,如果主體被撤消了對數據的訪問,為組織主體使用舊的對稱密鑰獲取數據,從(1)到(5)的步驟都要被基于新的主體組重新做一遍。如果一個主體被準予對數據的訪問,不需要對數據重新進行加密,因為舊的對稱密鑰仍然可以使用。因此從SCS1到SCS2的轉換可以被使用來從舊的對稱密鑰產生新的共享密文。新的授權主體可以獲取舊的對稱密鑰來截密數據[4]。
因為對稱密鑰的大小通常比數據項小得多,公開密鑰加密比基于數據的解法更加有效。由于同樣的原因,共享密文的大小比基于數據的方法小很多??傊?,當數據或者分享者數目較大時基于密鑰的解法更可取。
3.3SIFF函數實現
如果能找到足夠安全的產生訪問密鑰的方法,則可以容易解決訪問控制的問題,可以利用SIFF函數實現[5]。
先作如下假設:
(1)用IDi表示節點Ni的標識,設IDi能用l(n)位長的串描述,l是多項式。
(2)F={Fn|n∈N}是偽隨機函數族,其中Fn={fk|fk:∑l(n)→∑n,k∈∑n},用n位的串k來標識fk。
(3)H={Hn|n∈N}是k-SIFF,將n位的輸入映射為n位的輸出。設k足夠大,足以表示一個節點擁有的父節點數。
下面給出一個生成訪問密鑰的算法:
算法:訪問密鑰生成算法
輸入:用戶節點集{N1,…Ni,…Np(n)}輸出:各用戶對應的訪問密鑰{K1,…Ki,…Kp(n)}
(1)如果節點N0是最大節點,K0=fpk0(ID0);其中pk0是節點N0對應的用戶的私鑰。否則轉(2)。
(2)如果節點Nj只有一個父節點Ni,Ni已經有了訪問密鑰Ki,則Nj的訪問密鑰Kj(n位長):Kj=fKi(IDi)。
(3)如果節點Nj有多個(如:p個)父節點:Ni1,Ni2,…,Nip,對應有各自的訪問密鑰Ki1,Ki2,…Kip,則Kj為從隨機選取的n位串:Kj∈R∑n,再從Hn中隨機的選取一個哈希函數hi,使得將fKj1(IDj),fKj2(IDj)…,fKjk(IDj)都映射到Kj。即:
hi((fKj1(IDj))=hi((fKj2(IDj))=…=hi((fKjp(IDj))=Kj。然后公開哈希函數hi,使之對Nj所有的祖先節點都可用。
(4)如果節點集中的節點全部訪問完畢則輸出訪問密鑰,算法結束;否則轉(1)。
由算法可知,如果Ni≥Nj,則Kj總可以由Ki得到。當Ni是Nj的的單一父節點時,Kj=fKi(IDi);當Ni不是Nj的父節點時,通過從上往下的一條路徑Ni最終也能得到Kj。
4結論
文章綜述了用加密來解決訪問控制的方法,描述了基于數據的和基于密鑰的解決方法。文中系統的安全性是基于不同的函數:中國余數定理和SIFF函數實現的。
參考文獻
[1]王元珍,魏勝杰,朱虹.安全DBMS中訪問控制的一種加密解決方法.計算機工程與應用.2003(16),pp:195-197
[2]YibingKong,JenniferSeberry.ACryptographicSolutionforGeneralAccessControl.JanuszR.Getta,Springer-VerlagBerlinHeidelberg2005.pp:461-473
[3]Ray,I.,Ray,I.,Narasimhamurthi,N..ACryptographicSolutiontoImplementAccessControlinaHierarchyandMore.ProceedingsoftheSeventhACMSymposiumonAccessControlModelsandTechnologies.ACMPress(2002),pp:65-73
[4]Jajodia,S.,Samarati,P.,Sapino,M.L.,Subrahmanian,V.S.:FlexibleSupportforMultipleAccessControlPolicies.ACMTransactionsonDatabaseSystems,Vol.26,No.2.ACMPress(2001),pp:214-260
[5]Akl,S.G.,Taylor,P.D.:CryptographicSolutiontoaMultilevelSecurityProblem.AdvancesinCryptology:ProceedingsofCrypto’82.PlenumPress(1982),pp:237-249
- 上一篇:數字化校園中Web集群技術的應用論文
- 下一篇:高校教育資源系統整合研究論文