屬性加密技術及基于屬性的ABE算法的訪問控制技術介紹

屬性加密技術

基于身份的加密體制簡介

  • 基于身份的加密體制可以看作一種特殊的公鑰加密,它有如下特點:系統中用戶的公鑰可以由任意的字符串組成。這些字符串可以是用戶在現實中的身份信息,如:身份證號碼、用戶姓名、電話號碼、Email地址等,因為用戶的公鑰是通過用戶現實中的相關信息計算得到的,公鑰本質上就是用戶在系統中的身份信息,所以公鑰真實性問題和證書管理問題在基于身份加密的系統中就不再需要。

基于身份加密體制的優勢在于

  • 用戶的公鑰可以是描述用戶身份信息的字符串,也可以是通過這些字符串計算得到的相關信息。
  • 不需要存儲公鑰字典和處理公鑰證書。
  • 加密消息只需要知道解密者的身份信息就可以進行加密,而驗證簽名也只需要知道簽名者的身份就可以進行驗證。

基于屬性的加密體制的研究背景和意義

  • Sahai和Waters兩位密碼學家為了改善基于生物信息的身份加密系統的容錯性能,在2005年歐洲密碼年會上發表了《模糊基于身份加密方案》一文,并在這篇文章中首次提出了基于屬性加密(Attribute-Based Encryption? ABE)的概念。? 在基于屬性加密的體制中用屬性集合表示用戶的身份,這是與基于身份加密(Identity-Based Encryption,IBE )根本的區別。在基于身份加密系統中,只能用唯一的標識符表示用戶的的身份。而在基于屬性加密系統中,通過屬性集合表示用戶的身份,其中的屬性集合由一個或多個屬性構成。從用戶身份的表達方式來看,基于屬性加密的屬性集合比基于身份加密的唯一標識符具有更強、更豐富的表達能力。
  • 基于屬性加密可以看作是基于身份加密的擴展和延伸。基于屬性加密把基于身份加密中表示用戶身份的唯一標識,擴展成為由多個屬性組成的屬性集合。從基于身份加密體制發展到基于屬性加密體制,這不僅是用戶身份的表達形式從唯一標識符擴展到多個屬性,還將訪問結構融入到屬性集合中,使公鑰密碼體制具備了細粒度訪問控制的能力(如:通過密文策略和密鑰策略來限制用戶對密文的訪問和解密能力)。
  • 從唯一標識符擴展成屬性集合,不僅是用戶身份信息表示方式上的改變,而且屬性集合能夠非常方便地和訪問結構相結合,實現對密文和密鑰的訪問控制。屬性集合同時還可以方便地表示某些用戶組的身份(即:實現了一對多通信),這也是基于屬性加密方案所具備的優勢。
  • 密文和密鑰中引入訪問結構,這是基于屬性加密體制的一大特征,也是與基于身份加密體制本質區別之處。訪問結構嵌入到密鑰和密文中的好處在于:系統可以根據訪問結構生成密鑰策略或者密文策略,只有密文的屬性集合滿足了密鑰策略,或者用戶的屬性集合滿足了密文策略,用戶才能解密。這樣一方面限制用戶的解密能力,另一方面也保護了密文。在基于屬性加密系統中,密鑰生成中心(負責生成用戶的密鑰)由于用戶的身份信息通過屬性集合表示,而用戶組也具備一些相同屬性也可以用屬性集合表示。因此在基于屬性加密方案中屬性集合既可以表示單獨的用戶,也可以表示多個用戶組成的用戶組。密文和密鑰也是根據屬性集合生成的,相對應地密文的解密者和密鑰的接收者既可以是單獨的用戶也可以是用戶組。在基于屬性加密方案中,可以通過描述用戶身份信息的具體或概括,來靈活調整屬性集合是代表單獨用戶還是某個用戶組。
  • 在Sahai和Waters方案中引入了秘密共享的門限訪問結構,如果一個用戶能夠解密一個密文,當且僅當該用戶的屬性集和密文的屬性集合共有屬性的數量達到門限要求。在基于屬性加密方案中加密密文需要在屬性集合參與下才能進行,參與加密的屬性集合所表示的身份信息就是解密者的身份,也是解密密文需要滿足的條件。在上述過程中,由于用戶的私鑰和密文都是根據各自屬性集合生成的,因此在基于屬性加密方案中,一方面密文是在屬性集合參與下生成的,這個屬性集合隱含地限定了解密者所要滿足的條件。另一方面,一個用戶私鑰也是根據屬性集合生成的,這個屬性集合也隱含地確定了用戶可以解密的范圍,如果密文是以這個屬性集合生成的,那么用戶就可以解密文。

例子

  • 假設系統中門限為3的門限結構,因此只有用戶的屬性集合中至少有3個屬性與密文屬性集合相同,用戶才能解密。設a,b…h;表示系統中的屬性,若系統中有三個用戶分別為:A(a,b,c,d,e)、B(b,c,e,f)、C(a,d,g)他們從認證中心獲取各自的私鑰。現有一個密文,其密義的屬性集合為(b,c,d,f)。因為系統的門限是3,這就要求解密用戶的屬性集合至少含其中三個或三個以上的屬性。從ABC三個用戶的屬性集合可以看出A和B滿足條件,他們的屬性集合滿足了解密條件,能夠解密密文。而用戶C屬性集合不滿足要求,因此不能解密。
  • 通過上面的例子可以看出,基于屬性加密方案中加密和解密具有動態、靈活的特性,能夠實現對系統中用戶的解密能力和密文的保護方而的細粒度控制,因此屬性加密方案有著廣闊的應用前景。

基于屬性加密的研究現狀

基于屬性的密鑰策略加密方案

過程:

①系統初始化:

  • 系統初始化只需要一個隱含的安全參數作為輸入參數,不需要其它輸入參數。輸出系統公共參數PK和系統主密鑰MK 。

②消息的加密:

  • 以消息M,系統的公共參數PK和一個屬性集合S為輸入參數。輸出消息M加密后的密文E。

③密鑰的生成:

  • 以一個訪問結構A,系統的公共參數PK和系統的主密鑰MK為輸入的參數。生成一個解密密鑰D。

④密文的解密:

  • 以密文E,解密密鑰D和系統的公共參數PK為輸入參數,其中密文E是屬性集合S參與下生成的,D是訪問結構A的解密密鑰。如果S∈A,則解密并輸出明文M。

現狀

  • 在基于屬性的密鑰策略加密的方案中,通過引入訪問樹結構,將密鑰策略表示成一個訪問樹,并且把訪問樹結構部署在密鑰中。密文仍然是在一個簡單的屬性集合參與下生成的,所以如果一個用戶能解密密文當且僅當該密文的屬性集合滿足用戶密鑰中的密鑰策略。通過訪問樹的引入,非常方便地實現了屬性之間的邏輯與和邏輯或操作,增強了密鑰策略的邏輯表達能力,更好地實現細粒度的訪問控制。
  • 2007年,Ostrovsky等提出了一個可以實現邏輯非的基于屬性加密方案(屬性之間的邏輯關系可以表達邏輯非),豐富了保護策略的邏輯表達能力,完善了文獻不能表示邏輯非的空白。該方案中不但構成一個完整的邏輯表達系統,而且也將基于屬性加密方案中的訪問結構從單調的擴展成非單調的。
  • 該方案中訪問結構的功能相當于一個線性秘密共享方案的訪問結構。另外該方案的安全性證明是在選擇屬性集合的攻擊模型和基于判定雙線性困難問題下完成的。
  • 基于屬性的密鑰策略加密方案可以應用在服務器的審計日志方面。服務器的審計日志是電子取證分析中的一個重要環節。通過基于屬性的密鑰策略加密方案中的方法,可以使取證分析師只能提取與目標有關的日志內容,從而避免了日志中全部內容的暴露。基于屬性的密鑰策略加密方案的另一個用途就是有針對性的廣播加密,特別是在一些收費的電視節目中,用戶可以根據個人喜好制定接受的節目。

基于屬性的密文策略加密方案

  • 2007年,Bethencourt等首次提出了基于屬性的密文策略加密方案。在該方案中,用戶的私鑰仍然是根據用戶的屬性集合生成,密文策略表示成一個訪問樹并部署在密文中,這種部署方式和基于屬性的密鑰策略加密方案相反。當且僅當用戶的屬性集合滿足密文中密文策略時,用戶才能解密密文。

過程

  • 系統初始化:以一個隱含的安全參數為輸入,而不需要其它輸入參數,輸出系統公共參數PK和系統主密鑰MK。
  • 消息的加密:以加密消息M,系統的公共參數PK和訪問結構A為算法的輸入參數,其中A是在全局屬性集合上構建的。該算法的輸出消息M用A加密后的密文CT。
  • 密鑰的生成:以一個屬性集合S,系統的公共參數PK和系統的主密鑰MK作為算法的輸入參數。該算法輸出私鑰SK。
  • 密文的解密:以密文CT,系統的公共參數PK和解密密鑰SK作為算法的輸入參數,其中密文CT包含訪問結構A,SK是S的解密密鑰。如果屬性集合S滿足訪問結構A,則解密密文。

現狀

  • 根據以上描述,可以看出基于屬性的密文策略加密和廣播加密非常相似。該方案還支持密切代理機制,即:如果用戶A的訪問結構要包含用戶B的訪問結構,那么A可以為B生成私鑰。另外,該方案中通過cp-abe程序包,對方案的性能和效率進行了實驗分析。但方案的缺陷在于:方案的安全性證明是在通用群模型和隨機預言模型下完成的。

基于屬性的雙策略加密方案

  • 2009年,基于屬性的雙策略加密方案由Attrapapdung等首先提出,該方案是基于屬性的密鑰策略加密方案和基于屬性的密文策略加密方案的組合。即:方案中的加密消息同時具備兩種訪問控制策略,在密鑰和密文中同時部署兩種策略。密文的兩種訪問控制策略一個表示加密數據自身客觀性質的屬性,另一個表示對解密者需要滿足條件的主觀性質屬性。密鑰的兩種訪問策略一個表示用戶憑證的主觀屬性,另一個表示用戶解密能力的客觀屬性。只有當用戶的主觀屬性和客觀屬性滿足了密文的主觀屬性和客觀屬性時,用戶才能解密密文。

過程:

  • 系統初始化:以一個隱含的安全參數作為輸入,而不需要其它輸入參數。輸出系統公共參數PK和系統主密鑰MK。
  • 消息的加密:以輸入消息M,系統的公共參數PK,一個主觀的訪問結構S和一個客觀的屬性集合。為輸入參數。輸出密文CT。
  • 密鑰的生成:這是個隨機化算法,以系統的公共參數PK,系統的主密鑰MK,一個訪問結構O和一個主觀的屬性集合為輸入參數。輸出一個解密密鑰D。
  • 密文的解密:以系統的公共參數PK,解密密鑰D和與密鑰對應的訪問結構O和屬性集合,密文CT以及密文對應的訪問結構s和屬性集合作為輸入參數。如果密鑰的屬性集合必滿足密文的訪問結構S,同時密文的屬性集合。滿足密鑰的訪問結構,則解密密文輸出消息M。

現狀

  • 因為基于屬性的雙策略加密方案可以看做是基于屬性的密鑰策略加密方案和基于屬性的密文策略加密方案的結合,所以基于屬性的雙策略加密方案可以根據實際需要轉換成單個策略的基于屬性加密方案(KP-ABE或CP-ABE )。另外該方案的安全性證明是基于判定雙線性Diffie-Hellman指數困難問題完成的。( Bilinear Diffie-Hellman Exponent? BDHE)。

其它相關研究

  • ??? Pirretti等提出一種新的安全信息管理體系結構,該系統對基于屬性加密方案的實際應用做了專門的研究。該文通過基于屬性加密系統作為核心組件,構建了一個安全的信息系統。同時還優化了基于屬性加密方案中加密算法和解密算法,明顯提高了算法的運行效率。另外,該文還實現了基于屬性加密的兩個重要應用。

基于屬性的訪問控制技術

基于屬性的訪問控制介紹

  • 基于屬性的加密(Attribute-Based Encryption, ABE),又稱為屬性基加密,是公鑰加密和基于身份加密(Identity-Based Encryption, IBE)的一種擴展,由Sahai和Waters兩位密碼學家在2005年歐洲密碼年會上提出,他們為了解決基于生物特征的身份認證系統的容錯問題,基于雙線性對困難問題,提出了基于模糊身份的加密方案《Fuzzy identity based encryption》一文,在該文獻中,基于屬性加密的概念第一次被提出。在該方案中,用屬性集合描述用戶身份信息特征,打破了以往的身份“完全匹配”關系,這也是它區別于基于身份加密的特征之一
  • 一個基于屬性的加密機制一般包含四個實體:密鑰生成中心(權威Authority) ,加密者(數據所有者DataOwner, DO)、解密者(用戶User)和數據存儲服務器,具體如下圖所示。密鑰生成中心負責產生公共參數PK和主密鑰MK。當有用戶User發出請求時,為其分配屬性,生成與權限索引相關的解密鑰SK。數據所有者DO根據密文索引A和自己要共享的數據Data的安全需要生成密文C,然后發送給數據存儲服務器。User想獲取某個被共享的數據時,向服務器發起請求,服務器為User發送請求訪問的密文數據C。當用戶User滿足A的要求時,可以利用Authority分配的解密鑰SK和收到的密文C,得到授權并獲得Data。

?

  • 在屬性加密體制中,訪問結構被引入到密文和密鑰中,密文和密鑰根據屬性集合生成,即用戶私鑰與屬性集關聯,密文與訪問結構關聯,或者用戶私鑰與訪問結構關聯,而密文與屬性集關聯,用戶的解密能力通過用戶屬性集與訪問結構之間的匹配關系確定,從而實現數據擁有者對密文和密鑰的訪問控制。數據擁有者無需要為每一用戶分發屬性密鑰,只需要通過訪問結構進行權限管理,大幅度地降低了權限管理的復雜度,提供了更加靈活的訪問控制,從功能上實現了“一對多”的加密文件訪問控制,解決了這一應用瓶頸問題。由于用戶的身份信息表示為屬性集合,由兩個或以上的用戶組成的用戶組也可以具備相同的屬性集,所以既可以用屬性集合表示單獨的用戶,也可以表示多個用戶組成的用戶組,因此可以通過對用戶身份信息的全方位描述,靈活調整屬性集合,讓其表示一個單獨的用戶還是一個用戶組,即單獨的用戶和用戶組都可以成為屬性密鑰的接收者和對應密文的解密者,這也是基于屬性加密方案所具備的優勢。所以,基于屬性加密的屬性集合具有更強、更豐富表達能力。
  • 在屬性加密機制中,不僅用戶權限的可描述性和加密策略的靈活性被極大地豐富了,加解密模式也被從以往的一對一模式擴展成了一對多模式,而且,它還具有下述四個卓越的特點:
  • 高效性,加解密計算花費和密文長度與系統中用戶的數量無關,只與相應屬性個數相關;
  • 動態性,用戶的解密能力僅取決于他的屬性集合是否滿足密文的訪問策略,而與他在密文生成之前或之后加入這個系統無關;
  • 靈活性,該類方案中的訪問策略支持復雜的訪問結構;
  • 隱私性,數據所有者在加密數據時無需獲悉解密者的身份信息。

屬性加密方案的形式化定義和安全模型

屬性加密方案的形式化定義

一個屬性加密方案包含以下四個基本算法:

  • Setup(K, U):該算法輸入安全參數K和系統屬性全集U,輸出公共參數Params和主密鑰MK。
  • KeyGen(MK,X):該算法輸入主密鑰MK和一個權限索引X,輸出一個密鑰skx。
  • Enc(Params, Y, M):該算法輸入公共參數Params,一個密文索引Y和一個要加密的消息M,輸出一個密文CTy。
  • Dec(Params, skX, C界):該算法輸入公共參數Params,密鑰skx和密文CTy,輸出解密結果M'。

如果一個屬性加密方案是正確的,當且僅當對任意用戶權限X和密文索引Y,且X滿足Y,則

  • Dec(Params, KeyGen(MK, X), Enc(Params, Y,M))=M
  • 其中,公共參數Params和主密鑰MK都是正確生成的。
  • 在CP-ABE方案中,X表示用戶的屬性集合,密文索引Y表示一個訪問結構,X滿足Y當且僅當X是Y的授權集;在KP-ABE方案中則反過來了,即Y表示一個屬性集合,X表示一個訪問結構,y滿足X當且僅當Y是X的授權集。

屬性加密方案的安全模型

  • 在公鑰密碼方案中,根據要實現的安全目標不同,密碼體制通常被分為四類:語義安全性(Semantic Security, SEM)、不可區分性(Indistinguishablity, IND)、不可展性(Non-malleable, NM)和明文可意識性(Plaintext-aware, PA)。當前公鑰密碼方案的證明一般都采用的形式化模型為不可區分性的安全模型,屬性密碼學中的方案證明也在此基礎上進行。
  • 基于屬性加密系統的安全性,一般由一個攻擊者和一個挑戰者之間的交互游戲來刻畫。當且僅當任意多項式攻擊者的優勢都是可忽略的,則稱一個屬性加密方案是自適應安全的。但是,在實際證明中,由于在屬性加密方案中,其屬性集的空間要比基于身份的身份空間大很多,復雜性比較高,所以通常會考慮一種弱化了的安全模型,稱為選擇模型。在選擇安全模型中,通常要求攻擊者必須提前選擇自己的攻擊目標,即挑戰權限索引X,在此模型下的安全則稱為選擇安全。
  • Init:攻擊者選擇自己的攻擊目標,即挑戰權限索引X;
  • Setup:挑戰者運行屬性加密的Setup算法,將生成的公共參數發給攻擊者;
  • Phase 1:攻擊者對權限索引X進行私鑰詢問,
  • Challenge:攻擊者提交兩個等長的消息M0和M1。挑戰者進行隨機擲幣b,并根據密文索引Y加密Mb,然后把密文發送給攻擊者。
  • Phase 2:重復Phase 1中的步驟;
  • Guess:攻擊者輸出對b的猜測b'。
  • 在上述游戲中,如果不存在多項式時間的攻擊者以不可忽略的優勢攻破上述游戲,則一個基于屬性加密方案在選擇模型下是安全的。

訪問結構

  • 在屬性密碼學中,訪問結構用于描述訪問控制策略的邏輯結構,占有很重要的位置。訪問結構定義為:
  • 定義訪問結構):設P={P0,p1…pn}一個用戶集。集合A包含于2{p0,p1..,pn}是單調的,如果B, C:如果B∈A且B包含于C,則C∈A。一個訪問結構(單獨地,單調的訪問結構)是{P1,p2, ..., Pn}的一個非空子集A(單獨地,單調的訪問結構)。
  • 屬性密碼系統中,一般采用一些訪問結構表示訪問策略,比如門限訪問結構、基于樹的訪問結構、基于正負屬性值的“與,門結構、基于多屬性值的“與”結構、支持通配符的基于多屬性值的“與’,門結構和線性訪問結構。基于門限的訪問結構實際表達的含義是:擁有不同屬性集的用戶可以通過不同的路徑到達該門限所在節點的路徑的數目;在基于樹的訪問結構中,樹的每一個非葉子節點由一個門限值和它的孩子節點來描述,而樹的每一個葉子節點都對應一個屬性;在基于正負屬性值的“與”門結構中,如果一個用戶擁有某個屬性,則表示為正屬性,如果不用有某個屬性,則表示為負屬性。

訪問樹的構造

  • 在CP-ABE方案中,訪問樹用于隱藏源數據的加密密鑰,其形狀結構如其名一樣,是一棵樹。其葉子節點為數據所有者設定的屬性和屬性值以及父節點傳于此節點的秘密值,并對其加密處理,只有數據訪問者擁有此屬性方可解密出此節點的秘密值;非葉子節點為門限節點,數據訪問者需滿足此門限最低值方可解密此節點秘密值,例如門限為3/5,此節點有5個子節點,數據訪問者需至少滿足3個子節點才能解密出秘密值。

例子

  • 如下圖所構造的訪問樹,能解密此訪問樹加密的源數據,數據訪問者需滿足的屬性是:第一種:(“計算機學院” 且 “碩士” 且 “研二”)和 “教師”(此屬性結合可能不存在,因為教師和研二不存在且關系) ,第二種:“教師” 和(“網絡實驗室” 或 “云實驗室”),第三者:(“計算機學院” 且 “碩士” 且 “研二”)和(“網絡實驗室” 或 “云實驗室”);否則無法訪問。

如何構造這樣的一棵訪問樹

  • 從根節點開始,其門限值為2,孩子節點有3個,隨機生成一個多項式,其最高次數為門限值少1,故根節點的最高次數為1,然后將常數項設置為秘密數(秘密數為需要秘密保存的數);如此根節點隨機的多項式為f(x)=5+3x,秘密數為5。此外,將根節點的孩子節點從左至右依次標記為1,2,3,.....,將節點標記值代入f(x)函數中,所得值(即生成新的秘密值)傳給該標記的孩子節點秘密保存;故“3/3”節點(左邊第一個節點)標記為1,傳給“3/3”節點的秘密值f(1)=5+3*1=8,中間“教師”節點(中間節點)標記為2,傳給“教師”節點的秘密值f(2)=5+3*2=11,“1/2”節點(右邊節點)標記為3,傳給“1/2”節點的秘密值為f(3)=5+3*3=14。
  • ?“3/3”節點和“1/2”節點在接收到父節點傳來的值后,按照上述方式生成隨機多項式,將常數項設置為父節點傳來的值,此外也按照上述方式生成新的秘密值并將它傳給子節點,數據如圖所示(對于非葉子節點,都按照此方式進行)。對于葉子節點,在接受到父節點的秘密值后,用此葉子節點的屬性對秘密值進行加密處理。
  • 至此,訪問樹已構造完成!

從訪問樹中解密出訪問樹的秘密數

  • 數據訪問者需滿足訪問樹方可解密出訪問樹的秘密值,對于上述訪問樹,數據訪問者需滿足以下屬性集中的一個:(計算機學院、碩士、研二、教師(此屬性結合可能不存在,因為教師和研二不存在且關系))、(計算機學院、碩士、研二、網絡實驗室)、(計算機學院、碩士、研二、云實驗室)、(教師、網絡實驗室)、(教師、云實驗室)。若上述屬性集中某一個或多個(至少一個)為數據訪問者屬性集的子集,則能解密出秘密值,下面開始解密處理。
  • 對于葉子節點,在數據訪問者屬性集中尋找出和此節點屬性與屬性值一致的屬性,用找出的屬性解密出此節點的秘密值(即公式1),當然不能完全解密出,他是秘密值和加密時對此屬性設置的加密值的乘積。
  • 解密出葉子節點后,開始解密其父節點(非葉子節點),在解密出葉子節點后,即可得到多對值;如在上述訪問樹的“3/3”節點,其孩子節點解密出三個值19,44,83(推理過程忽略隨機數),在生成這三個數時,f(1)=19,f(2)=44,f(3)=83,其中f(x)=8+4x+7x^2(解密時并不知道此多項式,只知道后面的三個點),因此在f(x)上有三個點是(1,19),(2,44),(3,83);因為此節點存儲的秘密值是多項式的常數項,即f(0)=秘密值,故我們需要根據這三個點得到0所對應的值是多少,根據拉格朗日公式就能求出0所對應的值,即解密出秘密值(即公式2);對于非葉子節點均可按照上述方式解密出秘密值,在根節點處解密出整個樹所隱藏的秘密值(是秘密值和加密時對此屬性設置的加密值的乘積,所有節點解密出的秘密都存在一個隨機數,解密出的值都是隨機數和秘密值的乘積,只是講述過程中為了方便忽略了隨機數,最后根節點解密出的隨機數在最后的解密過程中會抵消掉(公式3))。
  • 另外需要說明的是“3/3”節點是一個3個孩子節點、門限值為3的節點,相當于且關系,數據訪問者需解密出所有的孩子節點方可用拉格朗日公式解密出常數項(即秘密值);“1/2”節點是一個2個孩子節點、門限值為1的節點,故為或關系,數據訪問者只滿足其中一個孩子節點即可解密出秘密值(秘密值就是孩子節點解密出的秘密值,因為根據隨機多項式生成規則,多項式的最高次數為門限值少1,門限值為1,故最高次數為0,即常數項);若如“2/3”這樣的節點,既非且關系,也非或關系,3個孩子節點,門限值為2,若需解密出此節點的秘密值,數據訪問者需解密出三個孩子節點中的兩個節點即可解密出孩子節點。

參考鏈接

  • 屬性加密技術及基于屬性的訪問控制技術
  • 線性秘密共享方案構造與解密
  • 密文策略基于屬性加密(CP-ABE)訪問樹構造與解密
  • 一種基于屬性加密技術(ABE)的輕量級數據共享方案

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/447121.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/447121.shtml
英文地址,請注明出處:http://en.pswp.cn/news/447121.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

面經:http協議

總結HTTPS傳輸過程 客戶端先從服務器獲取到證書,證書中包含公鑰 客戶端將證書進行校驗 客戶端生成一個對稱密鑰,用證書中的公鑰進行加密,發送給服務器 服務器得到這個請求后用私鑰進行解密,得到該密鑰 客戶端以后發出后續的請求&…

基于屬性加密的ABE算法的應用場景思考展望

ABE算法先前使用在云計算場景中,和區塊鏈存在交叉應用場景,具體問題體現在 數據的異地存儲、云服務器提供商的不可信、管理員能否對自身數據擁有足夠的控制能力以及如何保證數據的安全有效共享都是亟需解決的問題。 研究背景: 云計算越來越…

面經:設計模式

什么是接口隔離原則(Interface Segregation Principle) 定義:客戶端不應該依賴它不需要的接口;一個類對另一個類的依賴應該建立在最小的接口上。概括的說就是:建立單一接口,不要建立臃腫龐大的接口。&…

區塊鏈、密碼和銀行之間的衍生關系

銀行場景中密碼服務 設置密碼 用戶在注冊的時候,如果使用弱密碼,系統會檢測出來。我的猜測是將弱密碼的hash運算和用戶輸入的密碼hash比對,如果一致,禁止用戶注冊。 1、不要設置簡單密碼,您設置的密碼必須符合中信銀…

面經:多線程 線程池

使用線程池 當進程被初始化后,主線程就被創建了。對于絕大多數的應用程序來說,通常僅要求有一個主線程,但也可以在進程內創建多個順序執行流,這些順序執行流就是線程,每一個線程都是獨立的。 線程是進程的組成部分&am…

AIgorand區塊鏈中VRF隨機函數的應用

VRF(Verifiable Random Function) 可驗證隨機函數可以看作是一個隨機預言機,即可以通過任意的一個輸入,獲得一個隨機數輸出:輸出的結果(Output)是一個隨機數,其數值會均勻分布在值域…

AIgorand的相關學習參考鏈接

相關具體的開發者與SDK鏈接如下: GoSDKJavaScript SDK 網頁鏈接 測試網申請鏈接Github存儲庫鏈接開發者網址AIgorand官網Telegram電報群綜合白皮書MediumNaver Blog領英Linkedin區塊鏈瀏覽器INC公示錢包地址基金會公示錢包地址Telegram電報群官方 Github地址 相關…

操作系統 內核棧

視頻哈工大李治軍老師:https://www.bilibili.com/video/BV1d4411v7u7?p12 參考文檔:https://blog.csdn.net/SakuraA6/article/details/108810916 學長在我大一推薦我看,p12和p13的內容真的有那么難嗎,現在已經是我看的第三遍了還…

區塊鏈技術指南 序章理解感悟

序二 誤區一: 區塊鏈是一種顛覆性的新技術。區塊鏈不是一個新的技術,而是一個新的技術的組合。其關鍵的技術,包括P2P動態組網、基于密碼學的共享賬本、共識機制(拜占庭將軍問題,分布式場景下的一致性問題&#xff09…

面經:紅黑樹 B樹 B+樹 哈希表

1.對于插入,刪除,查找 以及 輸出有序序列 這幾個操作,紅黑樹也可以完成,時間復雜度 與 用跳表實現是相同的。 但是,對于按照區間查找數據這個操作(比如 [20,300]),紅黑樹的效率沒有跳表高&#…

回溯法和dfs的區別

值得注意,回溯法以深度優先搜索的方式搜索解空間,并且在搜索過程中用剪枝函數避免無效搜索。那為何 回溯算法 深度優先搜索 剪枝函數這一說法沒有錯? 因為樹是特殊的圖。簡單來說,樹是廣義的圖。再簡單來說,樹是圖。…

C++學習筆記 簡單部分

C 數據類型 使用變量來存儲各種信息,變量保留的是它所存儲的值的內存位置。這意味著,當創建一個變量時,就會在內存中保留一些空間。這段內存空間可以用于存儲各種數據類型(比如字符型、寬字符型、整型、浮點型、雙浮點型、布爾型…

Redis kqeue相關源碼

mask 或delmask :添加或者刪除的事件類型,AE_NONE表示沒有任何事件;AE_READABLE表示可讀事件;AE_WRITABLE表示可寫事件; 如aeCreateFileEvent(loop,e->fd,AE_READABLE,redisAeReadEvent,e); static int aeApiAddEv…

C++學習筆記章節中 面向對象詳解

C 類&對象 C類定義 本質上是一個數據類型的藍圖,定義了類的對象包含的信息,以及可以在這個類對象上執行哪些操作。類的定義是以class開頭,后面接類的名稱。類的主體是包含在一個花括號中,類的定義之后,必須跟著一…

Mac 破解軟件打不開沒有權限

Mac 破解軟件打不開沒有權限 sudo codesign -fs - /Applications/CleanMyMac\ X.app文件損壞 xxx sudo xattr -r -d /Applications/MarginNote\ 3.app sudo xattr -r -d com.apple.quarantine xxxx sudo codesign --force --deep --sign - /Applications/MarginNote\ 3\…

條件變量之虛假喚醒

當線程從等待已發出信號的條件變量中醒來,卻發現它等待的條件不滿足時,就會發生虛假喚醒。之所以稱為虛假,是因為該線程似乎無緣無故地被喚醒了。但是虛假喚醒不會無緣無故發生:它們通常是因為在發出條件變量信號和等待線程最終運…

拷貝構造函數和拷貝賦節省代碼最好用一個私有的函數

令 copy assignment操作符調用copy構造函數是不合理的,因為這就像試圖構造一個已經存在的對象。這件事如此荒涔,乃至于根本沒有相關語法。是有一些看似如你所愿的語法,但其實不是;也的確有些語法背后真正做了它,但它們…

解決Dr.com上不了網的問題

如果軟件安裝之后上不了網,會顯示出錯的信息,可以針對所顯示的問題,去定向搜索。 如果是軟件自身的問題,進入終端頁面,可以使用一下這條命令 netsh winsock reset 然后需要重啟電腦

terminate called after throwing an instance of ‘std::logic_error‘ what(): basic_string::_M_constr

terminate called after throwing an instance of ‘std::logic_error’ what(): basic_string::_M_construct null not valid 用0初始化字符串 編譯不報錯

密鑰協商(密鑰交換)機制的講解

國標文件涉及密鑰協商算法的函數 生成密鑰協商參數并輸出計算會話密鑰產生協商數據并且計算會話密鑰 密鑰協商(交換)算法及其原理 密鑰交換/協商目的 “密鑰協商機制”是:(在身份認證的前提下)規避【偷窺】的風險。…