專利名稱::安全存儲(chǔ)系統(tǒng)以及安全存儲(chǔ)方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及安全存儲(chǔ)系統(tǒng)、安全存儲(chǔ)方法、用于獲取安全存儲(chǔ)的消息的方法、計(jì)算機(jī)可讀介質(zhì)、以及程序單元,具體涉及不只基于基本密碼學(xué)原理的計(jì)算復(fù)雜度的安全存儲(chǔ)系統(tǒng)。
背景技術(shù):
:大多數(shù)加密系統(tǒng)基于破解這些加密系統(tǒng)的計(jì)算復(fù)雜度。最終,總有一天可以破解所有這些加密系統(tǒng)。也就是說,幾乎所有目前使用的加密系統(tǒng)都基于強(qiáng)力(bmteforce)攻擊的計(jì)算復(fù)雜度。這些加密系統(tǒng)假設(shè)加密函數(shù)在計(jì)算上是不可逆的,然而已知至少存在一個(gè)逆函數(shù)解密函數(shù)。每個(gè)使用密鑰的加密算法都可以通過嘗試所有可能的密鑰的方式予以破解。這只是等待足夠長的時(shí)間以完成計(jì)算或計(jì)算機(jī)處理速度變得足夠快的問題。根據(jù)摩爾定律(Moore'sLaw),計(jì)算機(jī)的處理能力每18個(gè)月翻一番。因此,現(xiàn)在看來不可破解的加密算法未來最終會(huì)被破解。由于隨著時(shí)間的流逝多數(shù)數(shù)據(jù)將逐漸失去價(jià)值和保密的必要,因此這通常不會(huì)引起問題。然而,其他一些數(shù)據(jù)永遠(yuǎn)都是十分敏感的。例如,永遠(yuǎn)不應(yīng)將醫(yī)用數(shù)據(jù)公之于眾。即使某人于數(shù)年前就已經(jīng)去世,如果將此人的患病信息公之于眾,也會(huì)使可能已繼承了此人的某些疾病的后代感到很不自在。
發(fā)明內(nèi)容可能令人滿意的方案是,提供一種替代性的安全存儲(chǔ)系統(tǒng)、安全存儲(chǔ)方法、用于獲取安全存儲(chǔ)的消息的方法、計(jì)算機(jī)可讀介質(zhì)、以及程序單元。該需要可由根據(jù)獨(dú)立權(quán)利要求的一種替代性的安全存儲(chǔ)系統(tǒng)、安全存儲(chǔ)方法、用于獲取安全存儲(chǔ)的消息的方法、計(jì)算機(jī)可讀介質(zhì)、以及程序單元得以滿足。根據(jù)一典型實(shí)施例,一種用于安全存儲(chǔ)消息的方法包括將第一消息劃分為多個(gè)部分;以及將第一組多個(gè)部分與至少第二消息的第二組多個(gè)部分一起存儲(chǔ)在存儲(chǔ)主機(jī)上,其中,所述存儲(chǔ)是以混合方式實(shí)現(xiàn)的。根據(jù)一典型實(shí)施例的一種用于獲取安全存儲(chǔ)的消息的方法,其中所述安全存儲(chǔ)消息被劃分為以混合方式存儲(chǔ)在存儲(chǔ)主機(jī)上的第一組多個(gè)部分,其中,每個(gè)部分都進(jìn)行了標(biāo)記,所述方法包括將包含第四組多個(gè)標(biāo)簽的列表從客戶端發(fā)送至存儲(chǔ)主機(jī);以及將與第四組多個(gè)標(biāo)簽相關(guān)的部分從存儲(chǔ)主機(jī)傳輸至客戶主機(jī)。根據(jù)一典型實(shí)施例,一種用于私人消息的安全存儲(chǔ)系統(tǒng)包括存儲(chǔ)主機(jī);其中,所述存儲(chǔ)主機(jī)適于以混合方式存儲(chǔ)多個(gè)私人消息,其中,所述每個(gè)私人消息被劃分為多個(gè)消息部分。根據(jù)一典型實(shí)施例,提供了一種計(jì)算機(jī)可讀介質(zhì),其中存儲(chǔ)著用于安全存儲(chǔ)私人消息的程序,當(dāng)處理器執(zhí)行所述程序時(shí),所述程序適于控制一方法,所述方法包括將第一消息劃分為第一組多個(gè)部分;以及以混合方式將第一組多個(gè)部分與至少第二消息的第二組多個(gè)部分一起存儲(chǔ)在存儲(chǔ)主機(jī)上。根據(jù)一典型實(shí)施例,提供了一種計(jì)算機(jī)可讀介質(zhì),其中存儲(chǔ)著用于獲取安全存儲(chǔ)的私人消息的程序,當(dāng)處理器執(zhí)行所述程序時(shí),所述程序適于控制一方法,所述方法包括將包含第四組多個(gè)標(biāo)簽的列表從客戶端發(fā)送至存儲(chǔ)主機(jī);以及將與第四組多個(gè)標(biāo)簽的標(biāo)簽相關(guān)的部分從存儲(chǔ)主機(jī)傳輸至客戶主機(jī)。根據(jù)一典型實(shí)施例,提供了一種用于安全存儲(chǔ)私人消息的程序單元,當(dāng)處理器執(zhí)行所述程序單元時(shí),所述程序單元適于控制一方法,所述方法包括將第一消息劃分為第一組多個(gè)部分;以及以混合方式將第一組多個(gè)部分與至少第二消息的第二組多個(gè)部分一起存儲(chǔ)在存儲(chǔ)主機(jī)上。根據(jù)一典型實(shí)施例,提供了一種用于獲取安全存儲(chǔ)的私人消息的程序單元,當(dāng)處理器執(zhí)行所述程序單元時(shí),所述程序單元適于控制一方法,所述方法包括將第一消息劃分為第一組多個(gè)部分;以及以混合方式將第一組多個(gè)部分與至少第二消息的第二組多個(gè)部分一起存儲(chǔ)在存儲(chǔ)主機(jī)上??梢钥闯鲎鳛楸景l(fā)明的典型實(shí)施例的要旨在于,提出了一種用于安全存儲(chǔ)和/或獲取消息的方法以及一種相應(yīng)的安全存儲(chǔ)系統(tǒng),所述方法和安全存儲(chǔ)系統(tǒng)與標(biāo)準(zhǔn)加密方法的不同之處在于,它不只基于基本密碼學(xué)原理的計(jì)算復(fù)雜度。即使假設(shè)對(duì)手具有無窮的計(jì)算能力,根據(jù)典型實(shí)施例的存儲(chǔ)方法仍然可以比已知方法更加安全。形象地說,可以認(rèn)為安全存儲(chǔ)系統(tǒng)將數(shù)據(jù)和/消息撕裂成多片段(部分),將它們與其它數(shù)據(jù)(消息)的片段混合,并將所有上述片段放入所謂摸獎(jiǎng)桶的大型存儲(chǔ)設(shè)備中。當(dāng)然,具有無窮計(jì)算機(jī)能力的攻擊者可以根據(jù)所有片段重建原始數(shù)據(jù)(消息)。然而,攻擊者還會(huì)"重建出"那些永遠(yuǎn)不會(huì)被放入摸獎(jiǎng)桶中的消息。由于無法從假消息中辨別出真消息,因此攻擊者找出正確消息的概率很低。這樣的消息可以是電子文檔或文件??梢园l(fā)現(xiàn)本發(fā)明的另一方案提供了一種用于在位于不屬于數(shù)據(jù)所有者的不可靠的主機(jī)中的數(shù)據(jù)庫中存儲(chǔ)私人信息的方法。優(yōu)選地,該方法不只基于通常用于傳統(tǒng)加密方案的計(jì)算假設(shè),還基于信息論的假設(shè)。舉例而言,這樣的方法可以使用機(jī)密共享機(jī)制將每個(gè)數(shù)據(jù)單元(消息)分裂成與可能來自其它用戶的其它數(shù)據(jù)元素(消息)的部分混合在一起的多個(gè)部分。該方法可有助于一種高效的用于在不可靠的主機(jī)上安全存儲(chǔ)消息的方法??梢詫⑾澐譃榕c其它消息的其它部分一起(也就是以混合方式)存儲(chǔ)在不可靠的主機(jī)上的多個(gè)消息部分。具體而言,未在存儲(chǔ)消息的主機(jī)(也就是存儲(chǔ)主機(jī))上存儲(chǔ)有關(guān)哪個(gè)部分屬于哪個(gè)特定消息的信息。因此,該方法特別有利于在不可靠的主機(jī)上存儲(chǔ)消息。特別地,術(shù)語"混合方式"可以指未在存儲(chǔ)主機(jī)上存儲(chǔ)與存儲(chǔ)在存儲(chǔ)主機(jī)上的哪個(gè)部分屬于哪個(gè)消息有關(guān)的信息。因此,對(duì)于存儲(chǔ)主機(jī)而言,不同部分可能不屬于某一特定消息。優(yōu)選地,例如,通過一次傳輸若干組多個(gè)消息部分的方式將多個(gè)消息一起添加至存儲(chǔ)主機(jī)。因此,由于存儲(chǔ)主機(jī)不知道所述多個(gè)消息部分屬于多少個(gè)消息以及哪些多消息部分屬于哪個(gè)原始消息,因此有可能進(jìn)一步提高安全級(jí)別。以下,將對(duì)安全存儲(chǔ)方法的其他典型實(shí)施例進(jìn)行描述。然而,這些實(shí)施例還適用于安全存儲(chǔ)系統(tǒng)、用于獲取安全存儲(chǔ)的消息的方法、計(jì)算機(jī)可讀介質(zhì)、以及程序單元。根據(jù)存儲(chǔ)方法的另一典型實(shí)施例,存儲(chǔ)主機(jī)是遠(yuǎn)程主機(jī),并且所述方法還包括將第一組多個(gè)部分傳輸至遠(yuǎn)程主機(jī)。根據(jù)另一典型實(shí)施例,方法還包括在將第一組多個(gè)部分存儲(chǔ)在存儲(chǔ)主機(jī)上之前,利用第三組多個(gè)標(biāo)簽中的各標(biāo)簽標(biāo)記第一組多個(gè)部分中的每個(gè)部分。優(yōu)選地,所述標(biāo)記是在傳輸?shù)谝唤M多個(gè)部分之前完成的。通過采用在將消息也就是消息部分傳輸至存儲(chǔ)主機(jī)之前進(jìn)行的標(biāo)記,可以提供一種有效的方法,以確保一方面能夠在存儲(chǔ)主機(jī)上安全地進(jìn)行存儲(chǔ),另一方面不需要在存儲(chǔ)主機(jī)上存儲(chǔ)有關(guān)哪個(gè)部分屬于哪個(gè)特定消息的信息。這可能特別適合將若干消息一起傳輸至存儲(chǔ)主機(jī)的情況。根據(jù)一典型方案,可以將添加的標(biāo)簽看作用于使得數(shù)據(jù)所有者易于獲取數(shù)據(jù)單元(消息部分)的、數(shù)據(jù)單元(消息部分)的私鑰。根據(jù)另一典型實(shí)施例,從存儲(chǔ)主機(jī)接收第三組多個(gè)標(biāo)記。通過從存儲(chǔ)主機(jī)接收多個(gè)標(biāo)簽,可以確保每個(gè)標(biāo)簽僅在存儲(chǔ)主機(jī)上使用一次,從而使標(biāo)簽不產(chǎn)生歧義。特別地,請(qǐng)求比必要數(shù)量更多的標(biāo)簽,也就是接收標(biāo)簽的數(shù)量大于消息被劃分成的部分的數(shù)量可能是有利的。這樣一來,就可以對(duì)存儲(chǔ)主機(jī)隱藏哪些標(biāo)簽被用作單個(gè)消息的標(biāo)簽。根據(jù)另一典型實(shí)施例,所述方法還包括將第一組多個(gè)部分中的至少一個(gè)部分與第二組多個(gè)部分的各部分進(jìn)行比較。如果第一組多個(gè)部分中的所述至少一個(gè)部分與第二組多個(gè)部分的一個(gè)部分相同,該方法就包括不將所述第一組多個(gè)部分中的至少一個(gè)部分存儲(chǔ)在存儲(chǔ)主機(jī)上;以及將所述第一組多個(gè)部分中的至少一個(gè)部分的標(biāo)簽與第二組多個(gè)部分的所述部分相關(guān)聯(lián)。本發(fā)明的該典型方案還可以被描述為,一種重用來自其它數(shù)據(jù)單元和/或用戶的消息部分的方法。也就是,相同的部分或數(shù)據(jù)單元僅在存儲(chǔ)主機(jī)上存儲(chǔ)一次,但卻用于不同的消息。這樣做可以減小存儲(chǔ)主機(jī)上必要的存儲(chǔ)空間,而基本不降低存儲(chǔ)方法的安全性??梢栽谙虼鎯?chǔ)主機(jī)傳輸消息部分之前(例如在客戶主機(jī)上)或在存儲(chǔ)主機(jī)自身上執(zhí)行這一比較。如果由主機(jī)執(zhí)行比較,則優(yōu)選將未存儲(chǔ)的相同部分的標(biāo)簽添加至已存儲(chǔ)的部分,使存儲(chǔ)部分包括兩個(gè)標(biāo)簽。如果在客戶主機(jī)上執(zhí)行比較,則優(yōu)選不再次向存儲(chǔ)主機(jī)傳輸特定部分(也就是已經(jīng)存儲(chǔ)在存儲(chǔ)主機(jī)上的部分)。根據(jù)另一典型實(shí)施例,所述方法還包括如果第一組多個(gè)部分中的所述至少一個(gè)部分與第二組多個(gè)部分中的一個(gè)部分相同,就令所述多個(gè)部分中至少一個(gè)部分的參考計(jì)數(shù)器增加。提供這樣的參考計(jì)數(shù)器可能是用于確保刪除單個(gè)部分不會(huì)導(dǎo)致大量消息遭到破壞的適當(dāng)措施。這在允許部分重用的情況下可能特別有利。由于可能不存在知曉哪個(gè)部分是屬于哪個(gè)消息的單獨(dú)實(shí)體,所以不可能在不采取額外措施的情況下安全刪除消息部分。一種這樣的措施可以是,為每個(gè)部分添加參考計(jì)數(shù)器。每當(dāng)將某一部分用作新添加的消息的一部分時(shí),可以令計(jì)數(shù)器增加,每當(dāng)刪除相應(yīng)的消息時(shí)可以令計(jì)數(shù)器減小。為了避免能夠在某一時(shí)刻或每一時(shí)刻觀察摸獎(jiǎng)桶的通過探察增加和減小操作識(shí)別出哪些部分相關(guān),可以將這些操作的執(zhí)行分散在不同的時(shí)刻。例如,客戶端可以通過要求存儲(chǔ)主機(jī)(服務(wù)器)增大一批消息部分的參考計(jì)數(shù)器的方式,提前預(yù)定這些部分。每次客戶想要添加消息時(shí),可以使用所述預(yù)定部分中的某些部分,而不將其告知服務(wù)器。在刪除時(shí),客戶端可以將真正的部分與足夠的預(yù)定(而未使用過的)部分混合,從而提供足夠的安全性。摸獎(jiǎng)桶可能無法區(qū)分預(yù)定部分和使用部分。摸獎(jiǎng)桶在參考計(jì)數(shù)器達(dá)o時(shí)才可以真正刪除消息部分。其它措施可以使用超時(shí)機(jī)制或分布式垃圾回收技術(shù)。以下,將對(duì)接收方法的另外的典型實(shí)施例進(jìn)行描述。然而,這些實(shí)施例還適用于安全存儲(chǔ)系統(tǒng)、用于安全存儲(chǔ)消息的方法、計(jì)算機(jī)可讀介質(zhì)、以及程序單元。根據(jù)接收方法的另一典型實(shí)施例,第四組包含的元素多于第一組中元素的個(gè)數(shù)。換言之,這可以意味著,要求比組成消息本身的部分更多的部分,使得還可以從存儲(chǔ)主機(jī)傳輸某些假的部分。這樣一來,由于攻擊者不知道哪些部分真正屬于接收消息以及哪些部分不屬于消息本身,因而可以提高安全級(jí)別。因此,能夠獲知傳輸內(nèi)容的攻擊者可能無法組合所傳輸?shù)牟糠忠垣@得原始消息。根據(jù)接收方法的另一典型實(shí)施例,將參考計(jì)數(shù)器與存儲(chǔ)在存儲(chǔ)主機(jī)上的每個(gè)部分相關(guān)聯(lián),其中,所述參考計(jì)數(shù)器計(jì)算相關(guān)部分被用作消息的一部分的次數(shù)。所述方法還包括在每次要求刪除相應(yīng)特定部分時(shí),令相應(yīng)特定部分的參考計(jì)數(shù)器減小。優(yōu)選地,僅當(dāng)參考計(jì)數(shù)器為O時(shí)刪除存儲(chǔ)主機(jī)上的特定部分。提供這樣的參考計(jì)數(shù)器可能是用于確保刪除單個(gè)部分不會(huì)導(dǎo)致大量消息遭到破壞的適當(dāng)措施。這在允許部分重用的情況下可能特別有利。由于可能不存在知曉哪個(gè)部分是屬于哪個(gè)消息的單獨(dú)實(shí)體,所以不可能在不采取額外措施的情況下安全刪除消息部分。一種這樣的措施可以是,為每個(gè)部分添加參考計(jì)數(shù)器。每當(dāng)將某一部分用作新添加的消息的一部分時(shí),可以令計(jì)數(shù)器增加,每當(dāng)刪除相應(yīng)的消息時(shí)可以令計(jì)數(shù)器減小。以下,將對(duì)安全存儲(chǔ)系統(tǒng)的另外的典型實(shí)施例進(jìn)行描述。然而,這些實(shí)施例還適用于接收方法、用于安全存儲(chǔ)消息的方法、計(jì)算機(jī)可讀介質(zhì)、以及程序單元。根據(jù)另一典型實(shí)施例,安全存儲(chǔ)系統(tǒng)還包括可連接至存儲(chǔ)主機(jī)的客戶端,其中,所述客戶端適于將私人消息劃分為第一組多個(gè)消息部分。優(yōu)選地,所述客戶端適于將所述多個(gè)標(biāo)簽中的各個(gè)標(biāo)簽與第一組多個(gè)消息部分中的每個(gè)部分相關(guān)聯(lián),還適于存儲(chǔ)與私人消息相關(guān)的各標(biāo)簽的列表。優(yōu)選地,所述客戶端還適于將假標(biāo)簽添加到所述列表中。由于沒有在存儲(chǔ)主機(jī)上存儲(chǔ)有關(guān)哪個(gè)部分屬于哪個(gè)特定消息的信息,所以通過優(yōu)選地僅在客戶端存儲(chǔ)每個(gè)消息的標(biāo)簽列表能夠提高存儲(chǔ)系統(tǒng)的安全性。當(dāng)在接收存儲(chǔ)消息的同時(shí)使用假標(biāo)簽時(shí),為了提高存儲(chǔ)的安全性,每次從存儲(chǔ)主機(jī)獲取特定消息時(shí)都使用相同的假標(biāo)簽,可能是十分有利的。由此,有可能降低估得哪些部分真正屬于特定消息而哪些部分屬于假標(biāo)簽(也就是不屬于實(shí)際消息)的可能性。根據(jù)安全存儲(chǔ)系統(tǒng)的另一典型實(shí)施例,所述客戶端具有比存儲(chǔ)主機(jī)更高的安全級(jí)別。具體地,消息的所有者可以更加信賴客戶端。例如,客戶端可以是屬于消息所有者自己的計(jì)算機(jī)系統(tǒng),而存儲(chǔ)主機(jī)可以是屬于另一實(shí)體的數(shù)據(jù)庫。因此,盡管消息所有者不能直接獲知存儲(chǔ)主機(jī)自身的安全級(jí)別,然而消息所有者負(fù)責(zé)并對(duì)客戶主機(jī)的安全性予以響應(yīng),因而可以獲知客戶端的安全程度??偠灾?,可以看出典型實(shí)施例的要旨在于,提供一種數(shù)據(jù)庫,該數(shù)據(jù)庫將屬于不同用戶的若干消息存儲(chǔ)至一個(gè)單獨(dú)的摸獎(jiǎng)桶中。每個(gè)消息被分為多個(gè)部分,同其它消息的部分混合,使攻擊者無法識(shí)別哪些部分是相關(guān)的。在不采用附加信息的情況下,很難通過計(jì)算獲取消息。唯一重建消息的方式是執(zhí)行強(qiáng)力搜索,嘗試所有可能的子集。猜測的次數(shù)隨消息部分?jǐn)?shù)量成指數(shù)增長。此外,消息部分可以很多方式加以組合,以至于雖然這些重組中的許多組合看上去是合理的,但實(shí)際從未被放入摸獎(jiǎng)桶中。對(duì)手或攻擊者充其量只能猜到哪個(gè)重組是真哪個(gè)重組是假。為了使合法用戶能夠高效地獲取消息,用標(biāo)簽對(duì)消息部分進(jìn)行注釋。標(biāo)簽可由用戶產(chǎn)生和/或由用戶將其與消息部分相關(guān)聯(lián),并充當(dāng)私人密鑰。通常在客戶端(clientsite)存儲(chǔ)標(biāo)簽,標(biāo)簽比消息占用空間少,并將用于獲取屬于同一消息的消息部分。為了對(duì)竊聽者隱藏標(biāo)簽之間的關(guān)系,可以將真標(biāo)簽與假標(biāo)簽加以混合。優(yōu)選地,在確定真標(biāo)簽的數(shù)目時(shí),使其大到足以使攻擊者能夠重建原始消息的危險(xiǎn)最小化。假標(biāo)簽數(shù)量的選擇可以在系統(tǒng)和/或方法的安全性和有效性之間加以折中。優(yōu)選地,該方法實(shí)現(xiàn)了標(biāo)準(zhǔn)數(shù)據(jù)庫操作讀取、添加以及刪除。通過參考以下描述的實(shí)施例對(duì)本發(fā)明的上述以及其它方面加以闡述,本發(fā)明的上述以及其它方面加以闡述將變得更加明顯。下面將參考以下附圖對(duì)本發(fā)明的典型實(shí)施例進(jìn)行描述。圖l示出了根據(jù)典型實(shí)施例的安全存儲(chǔ)系統(tǒng)的簡化示意圖2示出了根據(jù)典型實(shí)施例的存儲(chǔ)和接收方法的簡化示意流程圖。附圖中的圖示是示意性的。在不同的附圖中,相似或相同的單元使用相似或相同的參考標(biāo)記。具體實(shí)施例方式圖1示出了安全存儲(chǔ)系統(tǒng)100的簡化示意圖。安全存儲(chǔ)系統(tǒng)100包括存儲(chǔ)主機(jī)或數(shù)據(jù)庫101,以及多個(gè)客戶主機(jī),如102、103、104、105??蛻糁鳈C(jī)與數(shù)據(jù)庫100連接并屬于不同的所有者??蛻舳说拇鎯?chǔ)容量通常比存儲(chǔ)主機(jī)的存儲(chǔ)容量要小。存儲(chǔ)主機(jī)100可由中央服務(wù)器或數(shù)據(jù)庫構(gòu)成。存儲(chǔ)主機(jī)100包括諸如硬盤106或類似的存儲(chǔ)介質(zhì)。在該存儲(chǔ)介質(zhì)中,將存儲(chǔ)器分配用于存儲(chǔ)屬于不同主機(jī)的所有者的多個(gè)消息。根據(jù)該典型實(shí)施例,將存儲(chǔ)在存儲(chǔ)器中的每個(gè)消息劃分為多個(gè)消息部分(messageshares),并且將所有消息部分以混合方式存儲(chǔ)在該分配存儲(chǔ)器中,即,消息部分彼此混合從而形成所謂的摸獎(jiǎng)桶(lucky-dip),并且存儲(chǔ)主機(jī)和存儲(chǔ)主機(jī)的所有者不知道哪個(gè)消息部分屬于哪個(gè)原始消息。因此,即使是有權(quán)訪問數(shù)據(jù)庫的攻擊者也不知道哪個(gè)消息部分屬于哪個(gè)實(shí)際消息。圖2示出了根據(jù)一典型實(shí)施例的存儲(chǔ)和接收方法的簡化示意流程圖。在存儲(chǔ)方法的第一步驟中,從存儲(chǔ)主機(jī)接收多個(gè)標(biāo)簽201。然后,消息所有者將消息劃分為多個(gè)消息部分202。優(yōu)選地,在屬于消息所有者的客戶主機(jī)上執(zhí)行該劃分。將每個(gè)消息部分同多個(gè)標(biāo)簽中的一個(gè)標(biāo)簽相關(guān)聯(lián)203。然后,將帶標(biāo)記的消息部分發(fā)送至存儲(chǔ)主機(jī)204。此外,可以將一些假的消息部分與真正屬于消息的消息部分一起發(fā)送。優(yōu)選地,在向存儲(chǔ)主機(jī)傳輸消息時(shí),不應(yīng)該僅僅將與單個(gè)消息相關(guān)的部分添加至存儲(chǔ)主機(jī),特別地,如果"摸獎(jiǎng)桶"是空的,更應(yīng)如此。反之,應(yīng)該將第一消息作為一批不同消息的混合部分添加至存儲(chǔ)主機(jī)。如果用戶只有一個(gè)單個(gè)消息需要存儲(chǔ),用戶可以創(chuàng)建一批垃圾消息或與其他用戶合作。最終,可以在稍后刪除這些垃圾部分。在傳輸消息部分時(shí),在客戶端上存儲(chǔ)一個(gè)列表,該列表記錄哪個(gè)消息部分屬于存儲(chǔ)消息。然后將消息部分與同一用戶和/或不同用戶的其它消息部分一起存儲(chǔ)在存儲(chǔ)主機(jī)上205。從而在存儲(chǔ)主機(jī)上形成所謂的"摸獎(jiǎng)桶"??蛇x地,在存儲(chǔ)主機(jī)上,將傳輸?shù)南⒉糠峙c已經(jīng)存儲(chǔ)在存儲(chǔ)主機(jī)上的部分相比較。倘若已經(jīng)在存儲(chǔ)主機(jī)上存儲(chǔ)了相同的部分,則不再將這些相同的消息部分存儲(chǔ)在存儲(chǔ)主機(jī)上,而是重用這些相同的消息部分。也就是,僅將特定的消息部分存儲(chǔ)一次,并且將各個(gè)標(biāo)簽與己經(jīng)存儲(chǔ)的消息部分進(jìn)行關(guān)聯(lián)。可選地,可能已在客戶主機(jī)上執(zhí)行了所述比較,由此需要注意的是,在這樣的情況下,僅能夠用同一用戶的消息部分進(jìn)行比較。相反,如果在存儲(chǔ)主機(jī)上進(jìn)行比較,就可以在所有存儲(chǔ)消息部分間(也就是,使用其它用戶的消息部分)進(jìn)行比較。如果執(zhí)行了消息重用,就將參考計(jì)數(shù)器與每個(gè)消息部分進(jìn)行關(guān)聯(lián),計(jì)算該消息部分被用作消息的一部分的次數(shù)。每次要求將各消息(也就是消息部分)從存儲(chǔ)主機(jī)上刪除時(shí),就令參考計(jì)數(shù)器減小。當(dāng)消息的所有者期望從存儲(chǔ)主機(jī)獲取消息時(shí),就將要求和應(yīng)被傳輸?shù)乃袠?biāo)簽的列表一起轉(zhuǎn)發(fā)至存儲(chǔ)主機(jī)206。然后,存儲(chǔ)主機(jī)將所要求的消息部分傳輸至客戶端207,在客戶端,能夠通過使用在將消息分為消息部分時(shí)被存儲(chǔ)在客戶端的標(biāo)簽列表,對(duì)原始消息進(jìn)行重新組合。優(yōu)選地,不僅要求真正屬于消息的消息部分,還要求不屬于實(shí)際消息的假消息部分,以提高安全級(jí)別。同將要獲取的消息的"真實(shí)"消息部分一起要求的假消息部分可以是與真實(shí)消息一起傳輸至存儲(chǔ)主機(jī)的假消息部分相同的假消息部分,還可以是其它使用中的已知假消息部分,如,同一用戶的不同消息的消息部分或其它用戶的消息部分。因此,攻擊者不知道哪個(gè)消息部分屬于實(shí)際消息。為了將安全級(jí)別提高至更高水平,當(dāng)再次將特定消息傳輸至客戶端(也就是特定消息的所有者)時(shí),始終要求相同的假部分是十分有利的。以下,對(duì)根據(jù)典型實(shí)施例的方法做進(jìn)一步考慮??杉僭O(shè)各消息被劃分為有限域F中的數(shù)字塊。在典型應(yīng)用中,該有限域是二進(jìn)制有限域,也就是采用二進(jìn)制加法的{0;1}。每個(gè)這樣的數(shù)字塊都是"的元素,其中n是塊長度。為便于討論,假設(shè)所有消息具有與消息部分的塊長度相等的固定長度。也就是,所有消息m,都取自MeF"。利用任意機(jī)密共享機(jī)制將每個(gè)mi劃分為"7V個(gè)部分,W,=mf)④...,其中N是一組自然數(shù)的集合。部分m,("獲得標(biāo)簽/y)。標(biāo)簽可以是任何類型的,然而最切合實(shí)際的是標(biāo)簽為丄£,的元素的情況,其中s是標(biāo)簽的大小,通常遠(yuǎn)小于n。服務(wù)器存儲(chǔ)含有元組(/W,m,(勺的摸獎(jiǎng)桶,客戶端記錄哪些標(biāo)簽相關(guān)(/,"(",...,/,)}),也就是標(biāo)簽"('),...,/,(,屬于消息1^。在從數(shù)據(jù)庫獲取消息mi時(shí),用戶首先從其自身數(shù)據(jù)存儲(chǔ)器中獲取相應(yīng)的標(biāo)簽/,('),...,/,("。在將這些真實(shí)標(biāo)簽發(fā)送至服務(wù)器之前,將它們同假標(biāo)簽混合。優(yōu)選地,在摸獎(jiǎng)桶中使用假標(biāo)簽,例如,同一用戶的以前消息的使用過的標(biāo)簽或同一用戶產(chǎn)生的假標(biāo)簽,也就是,與跟真正的或?qū)嶋H消息無關(guān)的垃圾消息部分相關(guān)的標(biāo)簽以及用于同以前的消息一起傳輸而產(chǎn)生的標(biāo)簽。這樣就對(duì)服務(wù)器隱藏了/,('),...,/,("相關(guān)的事實(shí)。服務(wù)器既傳輸真實(shí)部分一)又傳輸假消息部分。由于在客戶端存儲(chǔ)了與單個(gè)消息的消息部分相關(guān)的標(biāo)簽列表,因而能夠客戶端可以很容易地將假消息部分濾除。令所請(qǐng)求的標(biāo)簽總數(shù)是A(ceA0,其中僅k個(gè)是真的。然后,攻擊者具有(f)種將部分放在一起的可能方式(也就是-(9((ck)k)種選擇)。由于如果攻擊者知道用戶兩次獲取同一消息這一事實(shí),那么攻擊者將僅僅取第一次和第二次發(fā)送標(biāo)簽的交集,因此每次獲取同一mi時(shí)同與實(shí)際標(biāo)簽一起發(fā)送以獲取mi的(c-l)k個(gè)標(biāo)簽都不相同的情況是不利的。為了避免這種情況,在兩次請(qǐng)求同一消息時(shí),優(yōu)選確保對(duì)于特定消息所請(qǐng)求的ck個(gè)標(biāo)簽始終相同。存在多種用于實(shí)現(xiàn)該目的的方式。例如,可以將每個(gè)可能的標(biāo)簽放在一預(yù)置的含c個(gè)標(biāo)簽的標(biāo)簽組中;在期望該組中的標(biāo)簽之一時(shí),請(qǐng)求與該組中各標(biāo)簽相關(guān)的數(shù)據(jù)。例如,如果請(qǐng)求與標(biāo)簽l(/e{0,l}5。)相關(guān)的數(shù)據(jù),則始終請(qǐng)求與前40個(gè)比特相同的整個(gè)標(biāo)簽r相關(guān)的數(shù)據(jù)。為了進(jìn)一步增加摸獎(jiǎng)桶的混亂狀態(tài),也許屬于不同用戶的不同消息可以共享彼此的部分。例如,令"-^"em尸e^",則可以重用"w和<),通過附,mf"④^"④一"定義^。重用消息部分具有雙重目的。一方面,由于需要存儲(chǔ)更少的部分,因而減小了摸獎(jiǎng)桶的大小。另一方面提高了安全性。為了量化重用消息部分的效果,對(duì)兩個(gè)摸獎(jiǎng)桶(一個(gè)利用重用機(jī)制,另一個(gè)不采用重用機(jī)制)加以比較。假設(shè)除了第一消息以外,每個(gè)消息均包括已經(jīng)處于摸獎(jiǎng)桶(dip)(或箱(bin))中的(k-l)個(gè)部分,以及新的部分。在這種情況下,摸獎(jiǎng)桶重用部分存儲(chǔ)k+h-l個(gè)部分(其中h是消息的總數(shù)),反之非重用摸獎(jiǎng)桶存儲(chǔ)全部hk個(gè)部分。因此,重用消息部分的機(jī)制可以將存儲(chǔ)量減小至不采用重用機(jī)制的大約1/k。另一方面,由于可以從較小的箱中取得的k元組更少,因此數(shù)量較少的部分降低了安全性。然而,這并不像其看上去的那樣糟糕。在不進(jìn)行重用的情況下,摸獎(jiǎng)桶隨機(jī)將其hk個(gè)部分劃分為h個(gè)分區(qū),然而在重用的情況下,攻擊者不具備良好分區(qū)的優(yōu)勢。以下,對(duì)安全更新加以重用在不采用重用的情況下攻擊者不知道選擇了哪個(gè)特定分區(qū),因此攻擊者需要檢查所有可能的分區(qū)。按以下方式計(jì)算可能情況的數(shù)目第一k元組(f),第二k元組C第ik元組(,')"第hk元組1這使得可能分區(qū)的總數(shù)是n^c*)=n^(f)。在采用重用的情況下在重用的情況下,攻擊者無法利用良好的分區(qū)。攻擊者必須從大小為k+h-l的摸獎(jiǎng)桶取出h個(gè)獨(dú)立的k元組。因而,可能情況的總數(shù)是(",。該數(shù)目小于不采用重用機(jī)制的情況下可能情況的數(shù)目,然而仍然十分巨大。對(duì)存儲(chǔ)系統(tǒng)的可能的威脅可能取決于攻擊者的能力??梢詫⒐粽邉澐譃槿N類型。<table>tableseeoriginaldocumentpage16</column></row><table>類型I的攻擊者(例如竊取硬盤的員工)無法觀察到任何通信,而類型n的攻擊者(例如能夠?qū)?shù)據(jù)庫進(jìn)行頻繁拷貝的備份操作員)能夠觀察到更新,類型m的攻擊者(例如完全控制整個(gè)系統(tǒng)的系統(tǒng)操作員)既能觀察到更新又能讀取操作。在該模型中的所有攻擊者都是被動(dòng)的。不考慮對(duì)傳輸數(shù)據(jù)或存儲(chǔ)在摸獎(jiǎng)桶中的數(shù)據(jù)進(jìn)行修改的主動(dòng)攻擊者。在數(shù)據(jù)庫中,可以執(zhí)行某些標(biāo)準(zhǔn)數(shù)據(jù)庫操作。這些標(biāo)準(zhǔn)數(shù)據(jù)庫操作是*讀?。?添加;刪除;*(修改),其中,可以將修改建模為<刪除,添加>序列,因而以下將不對(duì)修改予以說明。優(yōu)選地,基于摸獎(jiǎng)桶原理的數(shù)據(jù)庫系統(tǒng)盡力對(duì)所有這些操作保持很低的信息泄漏量。優(yōu)選地,在安全性和有效性間加以折中。摸獎(jiǎng)桶參數(shù)可以精確地指定所述折中。所有操作都存在自己的安全威脅以及安全威脅后果。以下分別對(duì)這些操作加以概述讀取當(dāng)僅僅防范類型i和n(見上文表格)的攻擊者時(shí),不需要特殊的預(yù)防措施。然而,如果周圍存在類型m的攻擊者,則只要請(qǐng)求k個(gè)部分就可以泄漏整個(gè)消息。為了隱藏k個(gè)部分是相關(guān)的這一事實(shí),可以通過向查詢中添加b個(gè)假標(biāo)簽的方式引入噪聲。這樣一來,信息泄漏就受限于將消息隱藏在k+b個(gè)部分內(nèi)(被分為k個(gè)部分)這一事實(shí)。然而,可能消息的總數(shù)是C,并且對(duì)于足夠大的b而言這個(gè)數(shù)目將非常巨大,所述b可用作安全性與有效性之間的折中參數(shù)。在多次獲取消息時(shí),最好每次使用同樣的k+b個(gè)部分的集合。如果不這樣做,攻擊者可以對(duì)屬于兩個(gè)經(jīng)猜測認(rèn)為是同一消息的消息的兩個(gè)消息部分的集合取交集。如果消息確實(shí)是相同的,那么交集將幾乎可以肯定地獲取k個(gè)部分。添加類型I的攻擊者無法觀察到任何更新。因此,不需要對(duì)其采取預(yù)防措施。通過支持部分重用可以很好地誤導(dǎo)類型II的攻擊者。當(dāng)從已位于摸獎(jiǎng)桶內(nèi)的部分中獲取k-s個(gè)部分時(shí),僅需要添加s個(gè)(例如f1)部分。類型n的攻擊者沒有關(guān)于這s個(gè)部分屬于哪些其它部分的線索。由于類型ni的攻擊者能夠在更新前觀察到k-s個(gè)部分的獲取,因此對(duì)于類型m的攻擊者而言并非如此。為了誤導(dǎo)類型in的攻擊者,優(yōu)選一次添加多個(gè)消息?;旌蟭個(gè)消息將產(chǎn)生tk個(gè)部分。重組的總數(shù)是n"tf),當(dāng)t足夠大時(shí)這是足夠大的。在將要添加的消息數(shù)量較少的情況下,將真正的消息與假消息部分加以混合可以提高安全性。為了防止假消息部分占用珍貴的存儲(chǔ)空間,可以從已經(jīng)位于摸獎(jiǎng)桶內(nèi)的消息部分中選擇假消息部分。當(dāng)摸獎(jiǎng)桶支持部分重用時(shí),攻擊者無法區(qū)分假消息部分和重用部分。刪除雖然將要?jiǎng)h除的消息是舊的或不正確的(這是刪除消息的可能的原因),但是公開舊消息仍然是不明智的。如果將要?jiǎng)h除的消息的數(shù)量(t)足夠大,那么將消息混合得足夠好就可以不用將tk個(gè)部分重新劃分為t個(gè)原始消息。當(dāng)允許進(jìn)行部分重用時(shí),刪除單個(gè)部分就可能使許多消息遭到破壞。由于可能不存在知曉哪個(gè)部分是屬于哪個(gè)消息的單獨(dú)實(shí)體,所以不可能在不采取額外措施的情況下安全刪除消息部分。一種這樣的措施可以是,為每個(gè)部分添加參考計(jì)數(shù)器。每當(dāng)將某一部分用作新添加的消息的一部分時(shí),可以令計(jì)數(shù)器增加,每當(dāng)刪除相應(yīng)的消息時(shí)可以令計(jì)數(shù)器減小。為了避免能夠在某一時(shí)刻或每一時(shí)刻觀察摸獎(jiǎng)桶的攻擊者通過觀查增加和減小操作識(shí)別出哪些部分相關(guān),可以將這些操作的執(zhí)行分散在不同的時(shí)刻。例如,客戶端可以通過要求存儲(chǔ)主機(jī)(服務(wù)器)增大一批消息部分的參考計(jì)數(shù)器的方式,提前預(yù)定這些部分。每次客戶想要添加消息時(shí),可以使用所述預(yù)定部分中的某些部分,而不將其告知服務(wù)器。在刪除時(shí),客戶端可以將真正的部分與足夠的預(yù)定(而未使用過的)部分混合,從而提供足夠的安全性。摸獎(jiǎng)桶可能無法區(qū)分預(yù)定部分和使用部分。摸獎(jiǎng)桶在參考計(jì)數(shù)器達(dá)0時(shí)才可以真正刪除消息部分。其它措施可以使用超時(shí)機(jī)制或分布式垃圾回收技術(shù)。總而言之,可以看出典型實(shí)施例的要旨在于,提供一種數(shù)據(jù)庫,該數(shù)據(jù)庫將屬于不同用戶的若干消息存儲(chǔ)至一個(gè)單獨(dú)的摸獎(jiǎng)桶中。每個(gè)消息被分為多個(gè)部分,同其它消息的部分混合,使攻擊者無法識(shí)別哪些部分是相關(guān)的。在不采用附加信息的情況下,很難通過計(jì)算獲取消息。應(yīng)當(dāng)注意的是,術(shù)語"包括"不排除其它元件或步驟,"一"或"一個(gè)"不排除多個(gè)。還可以將結(jié)合不同實(shí)施例予以說明的元件加以組合。還應(yīng)當(dāng)注意的是,不應(yīng)將權(quán)利要求中的參考標(biāo)記解釋為限制了權(quán)利要求的范圍。權(quán)利要求1、一種用于安全地存儲(chǔ)消息的方法,包括將第一消息劃分為多個(gè)部分;以及將第一組多個(gè)部分與至少第二消息的第二組多個(gè)部分一起存儲(chǔ)在存儲(chǔ)主機(jī)上,其中,所述存儲(chǔ)是以混合方式實(shí)現(xiàn)的。2、根據(jù)權(quán)利要求l所述的方法,其中,所述存儲(chǔ)主機(jī)是遠(yuǎn)程主機(jī),并且所述方法還包括.-將第一組多個(gè)部分傳輸至遠(yuǎn)程主機(jī)。3、根據(jù)權(quán)利要求1或2所述的方法,還包括在將第一組多個(gè)部分存儲(chǔ)在存儲(chǔ)主機(jī)上之前,利用第三組多個(gè)標(biāo)簽中的相應(yīng)標(biāo)簽標(biāo)記第一組多個(gè)部分中的每個(gè)部分。4、根據(jù)權(quán)利要求3所述的方法,其中,所述標(biāo)記是在傳輸?shù)谝唤M多個(gè)部分之前完成的。5、根據(jù)權(quán)利要求3或4所述的方法,還包括從存儲(chǔ)主機(jī)接收第三組多個(gè)標(biāo)簽。6、根據(jù)權(quán)利要求1至5中任意一項(xiàng)所述的方法,還包括將第一組多個(gè)部分中的至少一個(gè)部分與第二組多個(gè)部分的各部分進(jìn)行比較,以及如果第一組多個(gè)部分中的所述至少一個(gè)部分與第二組多個(gè)部分中的一個(gè)部分相同不將第一組多個(gè)部分中的所述至少一個(gè)部分存儲(chǔ)在存儲(chǔ)主機(jī)上;以及將第一組多個(gè)部分中的所述至少一個(gè)部分的標(biāo)簽與第二組多個(gè)部分中的所述一個(gè)部分相關(guān)聯(lián)。7、根據(jù)權(quán)利要求6所述的方法,還包括如果第一組多個(gè)部分中的所述至少一個(gè)部分與第二組多個(gè)部分中的一個(gè)部分相同令用于第一組多個(gè)部分中的所述至少一個(gè)部分的參考計(jì)數(shù)器增加。8、一種用于獲取安全存儲(chǔ)的消息的方法,其中,所述安全存儲(chǔ)消息被劃分為以混合方式存儲(chǔ)在存儲(chǔ)主機(jī)上的第一組多個(gè)部分,其中,每個(gè)部分都進(jìn)行了標(biāo)記將包含第四組多個(gè)標(biāo)簽的列表從客戶端發(fā)送至存儲(chǔ)主機(jī);以及將與第四組多個(gè)標(biāo)簽相關(guān)的部分從存儲(chǔ)主機(jī)傳輸至客戶主機(jī)。9、根據(jù)權(quán)利要求8所述的方法,其中,第四組包含比第一組更多的元素。10、根據(jù)權(quán)利要求8或9所述的方法,其中,將參考計(jì)數(shù)器與存儲(chǔ)在存儲(chǔ)主機(jī)上的每個(gè)部分相關(guān)聯(lián),所述參考計(jì)數(shù)器計(jì)算相關(guān)部分被用作消息的一部分的次數(shù),所述方法還包括在每次要求刪除相應(yīng)特定部分時(shí),令用于相應(yīng)特定部分的參考計(jì)數(shù)器減小。11、根據(jù)權(quán)利要求10所述的方法,還包括僅當(dāng)參考計(jì)數(shù)器為0時(shí),刪除存儲(chǔ)主機(jī)上的特定部分。12、一種用于私人消息的安全存儲(chǔ)系統(tǒng),包括存儲(chǔ)主機(jī);其中,所述存儲(chǔ)主機(jī)適于以混合方式存儲(chǔ)多個(gè)私人消息,其中,所述每個(gè)私人消息被劃分為多個(gè)消息部分。13、根據(jù)權(quán)利要求12所述的安全存儲(chǔ)系統(tǒng),還包括可連接至存儲(chǔ)主機(jī)的客戶端;其中,所述客戶端適于將私人消息劃分為第一組多個(gè)消息部分。14、根據(jù)權(quán)利要求13所述的安全存儲(chǔ)系統(tǒng)其中,所述客戶端適于將所述多個(gè)標(biāo)簽中的各個(gè)標(biāo)簽與第一組多個(gè)消息部分中的每個(gè)部分相關(guān)聯(lián);并且其中,所述客戶端還適于存儲(chǔ)與私人消息相關(guān)的各標(biāo)簽的列表。15、根據(jù)權(quán)利要求14所述的安全存儲(chǔ)系統(tǒng),其中,所述客戶端還適于將假標(biāo)簽添加到所述列表中。16、根據(jù)權(quán)利要求13至15中任意一項(xiàng)所述的安全存儲(chǔ)系統(tǒng),其中,所述客戶端具有比存儲(chǔ)主機(jī)更高的安全級(jí)別。17、一種計(jì)算機(jī)可讀介質(zhì),其中存儲(chǔ)著用于安全地存儲(chǔ)私人消息的程序,當(dāng)處理器執(zhí)行所述程序時(shí),所述程序適于控制一方法,所述方法包括將第一消息劃分為第一組多個(gè)部分;以及以混合方式將第一組多個(gè)部分與至少第二消息的第二組多個(gè)部分一起存儲(chǔ)在存儲(chǔ)主機(jī)上。18、一種計(jì)算機(jī)可讀介質(zhì),其中存儲(chǔ)著用于獲取安全存儲(chǔ)的私人消息的程序,當(dāng)處理器執(zhí)行所述程序時(shí),所述程序適于控制一方法,所述方法包括將包含第四組多個(gè)標(biāo)簽的列表從客戶端發(fā)送至存儲(chǔ)主機(jī);以及將與第四組多個(gè)標(biāo)簽的標(biāo)簽相關(guān)的部分從存儲(chǔ)主機(jī)傳輸至客戶19、一種用于安全地存儲(chǔ)私人消息的程序單元,當(dāng)處理器執(zhí)行所述程序單元時(shí),所述程序單元適于控制一方法,所述方法包括.-將第一消息劃分為第一組多個(gè)部分;以及以混合方式將第一組多個(gè)部分與至少第二消息的第二組多個(gè)部分一起存儲(chǔ)在存儲(chǔ)主機(jī)上。20、一種用于獲取安全存儲(chǔ)的私人消息的程序單元,當(dāng)處理器執(zhí)行所述程序單元時(shí),所述程序單元適于控制一方法,所述方法包括將第一消息劃分為第一組多個(gè)部分;以及以混合方式將第一組多個(gè)部分與至少第二消息的第二組多個(gè)部分一起存儲(chǔ)在存儲(chǔ)主機(jī)上。全文摘要根據(jù)一典型實(shí)施例,一種用于安全存儲(chǔ)消息的方法包括將第一消息劃分為第一組多個(gè)部分;以及將第一組多個(gè)部分與至少第二消息的第二組多個(gè)部分一起存儲(chǔ)在存儲(chǔ)主機(jī)上,其中,所述存儲(chǔ)是以混合方式實(shí)現(xiàn)的。文檔編號(hào)G06F21/62GK101432756SQ200780015294公開日2009年5月13日申請(qǐng)日期2007年4月17日優(yōu)先權(quán)日2006年4月27日發(fā)明者威廉·瓊格爾,斯蒂芬·毛巴赫,理查德·布林克曼申請(qǐng)人:Nxp股份有限公司