專利名稱:存儲元素列表的設(shè)備和在一個這樣的設(shè)備中存儲元素的方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及需要記憶安全日志的系統(tǒng)中的安全領(lǐng)域。特別地,涉及一種記憶項(xiàng)目列表的設(shè)備和在這樣的設(shè)備中記憶項(xiàng)目的方法。
背景技術(shù):
為了防止非法嘗試訪問數(shù)據(jù)或?qū)?shù)據(jù)的欺騙性操作,通常,認(rèn)為是“安全的”的系統(tǒng)保存事件日志或執(zhí)行的操作列表。
典型示例涉及一種記錄設(shè)備,僅授權(quán)制作其可以記錄的任何內(nèi)容的一個副本(或有限數(shù)量的副本)。這需要數(shù)字記錄設(shè)備在授權(quán)針對個人使用的復(fù)制的同時,防止非法副本的擴(kuò)散。對此進(jìn)行確保的直接方案在于在記錄設(shè)備中保持已經(jīng)由其記錄的所有內(nèi)容的列表(或者,更具體地,所有內(nèi)容的標(biāo)識符列表)。每一次當(dāng)記錄設(shè)備接收到記錄指定內(nèi)容的命令時,其實(shí)現(xiàn)檢查該內(nèi)容是否存在于已經(jīng)記錄的內(nèi)容列表中。如果該內(nèi)容(或更具體地,其標(biāo)識符)包含在該列表中,則記錄設(shè)備拒絕記錄其。
在上述示例中所產(chǎn)生的問題在于記錄的內(nèi)容的潛在數(shù)量是無限的。因此,為了使系統(tǒng)的安全得以確保,已經(jīng)記錄的內(nèi)容列表還必須沒有限制,這對于消費(fèi)電子設(shè)備而言是不可能的。在該類型的設(shè)備中,通常,使用FIFO(“先入先出”的首字母縮寫詞)來記憶上述列表。
然而,如果該列表的目的是在系統(tǒng)中提供一定的安全性,如同保持列表以防止對內(nèi)容的非法復(fù)制的上述示例,或者針對撤消列表,其包含不再由可信組織看作適合或合法的密碼密鑰或設(shè)備的標(biāo)識符,則在FIFO存儲器中記憶這樣的列表的解決方案并不令人滿意。事實(shí)上,如果存儲器的尺寸使其能夠記憶n項(xiàng),則所有偷盜者必須做的是向記憶該列表的設(shè)備展示n+1項(xiàng),以確保從列表中刪除了所記憶的第一項(xiàng),這明顯是對系統(tǒng)安全的折中。
發(fā)明內(nèi)容
本發(fā)明的目的是解決上述問題。
本發(fā)明的主題是一種記憶項(xiàng)目列表的設(shè)備,用于記憶最后展示給所述設(shè)備的任意項(xiàng)。該設(shè)備包括第一存儲器,并且根據(jù)本發(fā)明,還包括當(dāng)?shù)谝淮鎯ζ饕褲M時且當(dāng)必須對新項(xiàng)進(jìn)行記憶時,負(fù)責(zé)隨機(jī)地選擇記憶在第一存儲器中的項(xiàng)以刪除該所選項(xiàng),并記憶所展示的新項(xiàng)的裝置。
根據(jù)本發(fā)明的特定特征,所述設(shè)備能夠記憶N項(xiàng),其中N是自然數(shù),并且所述設(shè)備還包括第二存儲器,設(shè)計用于連續(xù)地記憶最后展示給所述設(shè)備的M項(xiàng),M是小于N的自然數(shù),所述第一存儲器用于記憶N-M個其他項(xiàng)。
利用根據(jù)本發(fā)明的設(shè)備,即使將要記憶的多于N個的項(xiàng)展示給其,也不會在最終才知道哪些項(xiàng)無法再在該設(shè)備中找到。
根據(jù)另一特征,所述設(shè)備還適合于提供表示展示給所述設(shè)備的項(xiàng)是否已經(jīng)存在于所述設(shè)備中的信息。
根據(jù)另一特征,所述設(shè)備僅包含所記憶的每一項(xiàng)的一個副本。
根據(jù)本發(fā)明的一個特定方面,對于每一項(xiàng),所述設(shè)備還記憶將該項(xiàng)已經(jīng)展示給其的次數(shù)。
根據(jù)本發(fā)明的另一方面,所述設(shè)備適合于提供表示最后展示給其的項(xiàng)是否已經(jīng)展示給其超過預(yù)定數(shù)量的次數(shù)的信息。
本發(fā)明還涉及一種在如上所述的設(shè)備中記憶項(xiàng)目的方法。所述方法包括以下步驟(a)接收展示給設(shè)備的項(xiàng);(b)驗(yàn)證所述項(xiàng)是否已經(jīng)存在于所述設(shè)備中;以及-如果所述驗(yàn)證為肯定的,則將所述項(xiàng)指定為最后記憶的項(xiàng);以及-如果所述驗(yàn)證為否定的,則將所述項(xiàng)記憶在所述設(shè)備中。
根據(jù)一個特定實(shí)施例,在步驟(b)中的否定驗(yàn)證的情況下-如果第二存儲器未滿,則將接收到的項(xiàng)記憶在第二存儲器中;
以及-如果第二存儲器已滿i)將所述第二存儲器中所記憶的最早項(xiàng)傳送給第一存儲器;以及ii)將接收到的項(xiàng)記憶在所述第二存儲器中;以及iii)如果第一存儲器已滿,則隨機(jī)地選擇記憶在所述第一存儲器中的項(xiàng)以進(jìn)行刪除,從而能夠?qū)⒂洃浽谒龅诙鎯ζ髦械淖钤珥?xiàng)傳送給所述第一存儲器。
通過結(jié)合單幅附圖所闡明的本發(fā)明的非限定性具體實(shí)施例的描述,本發(fā)明的其他特征和優(yōu)點(diǎn)將顯而易見,所述單幅附圖示意地示出了根據(jù)本發(fā)明的記憶設(shè)備。
具體實(shí)施例方式
本發(fā)明的記憶設(shè)備設(shè)計為包含最大N項(xiàng),例如要記錄的內(nèi)容的標(biāo)識符。典型地將單幅附圖中的參考符號為5的該設(shè)備集成到數(shù)字記錄設(shè)備中。
該設(shè)備5包括兩個存儲器A和B。參考符號為2的存儲器A包含最大M項(xiàng),而參考符號為3的存儲器B包含最大P項(xiàng),從而N=M+P,其中N、M和P是自然數(shù)。
存儲器A總是包含在設(shè)備中記憶的最后M項(xiàng)。對于存儲器B,其包含在最后M項(xiàng)之前所記憶的項(xiàng)。
當(dāng)將新項(xiàng)J展示給該設(shè)備時,例如當(dāng)記錄設(shè)備接收到記錄新內(nèi)容的命令時,將內(nèi)容標(biāo)識符(對應(yīng)于項(xiàng)J)展示給記憶設(shè)備5以驗(yàn)證其是否已經(jīng)包含在設(shè)備5中所記憶的列表中。
如果項(xiàng)J已經(jīng)存在于存儲器A中,則在存儲器A中將其標(biāo)記為所記憶的最后項(xiàng)。如果項(xiàng)J已經(jīng)存在于存儲器B中,則將其移到存儲器A中、所記憶的最后項(xiàng)的位置上。在兩個情況下,因此,設(shè)備5返回項(xiàng)J存在的信息。
如果項(xiàng)J未存在于存儲器A或存儲器B中,則將J記憶在存儲器A中。如果存儲器A已經(jīng)包含M項(xiàng),則將存儲器A中所記憶的最早項(xiàng)傳送到存儲器B以將其記錄在其中。同時從存儲器A中刪除其以創(chuàng)建針對項(xiàng)J的空間。如果存儲器B也已滿,即如果其已經(jīng)包含P項(xiàng),則隨機(jī)地選擇在存儲器B中已記憶的項(xiàng),刪除其并由存儲器A中的最早項(xiàng)來替代。然后,設(shè)備5根據(jù)項(xiàng)J并不存在但是現(xiàn)在被記憶到其中的情況來返回信息。
更具體地,通過參考該單幅圖,記憶設(shè)備5包括控制設(shè)備1和參考符號分別為2和3的兩個存儲器A和B。
控制設(shè)備1具有三個輸入10、13和15、以及三個輸出11、12和14。輸入10接收項(xiàng)J以記憶其,然后將其發(fā)送到控制設(shè)備的輸出12。
輸出11是布爾型信號,表示項(xiàng)J是否已經(jīng)記憶在記憶設(shè)備5中。如果已經(jīng)記憶了項(xiàng)J,則在輸出11處的信號是“1”(表示“真”),否則,該信號為“0”(表示“假”)。輸入13和15和輸出14也是布爾型信號,下面將對其進(jìn)行描述。
存儲器A具有兩個輸入20和21、以及兩個輸出22和23。輸入20接收控制設(shè)備的輸出12,向其發(fā)送要記憶的項(xiàng)J,或者必須確定其存在于存儲器A中。與控制設(shè)備1的輸出14相連的輸入21是布爾型信號,表示當(dāng)其值為“1”(“真”)時,必須將輸入20處接收到的項(xiàng)J記憶在存儲器A中。
存儲器A的輸出22也是布爾型信號,表示當(dāng)其值是“1”(“真”)時,在輸入20處出現(xiàn)的項(xiàng)J已經(jīng)存在于存儲器A中。該輸出22與控制設(shè)備1的輸入15相關(guān)聯(lián)。
僅當(dāng)存儲器A已滿時,且當(dāng)必須對輸入20處出現(xiàn)的新項(xiàng)進(jìn)行記憶時,使用存儲器A的輸出23。在這種情況下,該輸出23提供存儲器A中所記憶的最早項(xiàng)。否則,輸出23不提供任何信號。
對于存儲器B,其具有兩個輸入30和32和一個輸出31。輸入30與控制設(shè)備1的輸出12相關(guān)聯(lián),且接收必須對其存在于存儲器B中進(jìn)行驗(yàn)證的項(xiàng)J。輸出31是布爾型信號,當(dāng)在輸入30處接收到的項(xiàng)J存在于存儲器B時,值為1(“真”);其與控制設(shè)備1的輸入13相關(guān)聯(lián)。
對于存儲器B的輸入32,當(dāng)該存儲器已滿時,其接收來自存儲器A的要記憶的項(xiàng)。出于此目的,輸入32與存儲器A的輸出23相關(guān)聯(lián)。
按照以下方式來操作組件。當(dāng)控制設(shè)備1在其輸入10處接收到項(xiàng)J時,其在其輸出12處提供該項(xiàng)J。如果該項(xiàng)J存在于存儲器A中,則在控制設(shè)備1的輸入15處接收信號“1”(表示“真”)。如果項(xiàng)J存在于存儲器B中,則在控制設(shè)備的輸入13處接收信號“1”(表示“真”)。
如果在控制設(shè)備的輸入13和15處接收到的兩個布爾型信號具有值“0”(即“假”),表示在輸入10處接收到的項(xiàng)J并未存在于存儲器A或存儲器B中。在這種情況下,控制設(shè)備1在其輸出11處提供“0”信號(“假”),在其輸出14處提供“1”信號,表示必須將項(xiàng)J記錄在存儲器A中。
如果在輸入15處接收到的布爾型信號具有值“1”(“真”),表示項(xiàng)J已經(jīng)存在于存儲器A中,則控制設(shè)備1在其輸出11處提供“1”信號而在其輸出14處提供“0”信號。
如果在輸入13處接收到的布爾型信號具有值“1”(“真”),表示項(xiàng)J已經(jīng)存在于存儲器B中,則控制設(shè)備1在其輸出11處提供“1”信號而在其輸出14處提供“1”信號。
當(dāng)存儲器A在其輸入20處接收到項(xiàng)J時,其首先驗(yàn)證其是否已經(jīng)具有該項(xiàng)。如果該項(xiàng)J已經(jīng)存在于存儲器A中,則在輸出22處的信號取值“1”(“真”)。然后,將該項(xiàng)J指定為由存儲器A最后記憶的項(xiàng)。例如,如果存儲器A具有堆棧結(jié)構(gòu),則將項(xiàng)J放置在堆棧的頂部,否則,對存儲器中所存儲的項(xiàng)的索引表保持更新。
否則(J并不存在于存儲器A中),輸出22取值“0”(“假”)。
當(dāng)在存儲器A的輸入21處接收到的信號為值“1”(“真”),表示必須在存儲器A中記憶輸入20處出現(xiàn)的項(xiàng)J,則存在兩種可能。或者存儲器A包含少于M項(xiàng),并記憶變?yōu)樽詈笥洃浀捻?xiàng)的新項(xiàng)J?;蛘撸鎯ζ鰽已經(jīng)包含M項(xiàng),在后一種情況下,其將最早的項(xiàng)放在其輸出23上,并從其存儲器中刪除其以將新項(xiàng)J記憶為最近項(xiàng)。
存儲器B具有不同于存儲器A的行為。當(dāng)在存儲器B的輸入30處接收到項(xiàng)J時,該存儲器檢查其是否已經(jīng)包含該項(xiàng)J。如果情況如此,則輸出31取值“1”,否則(J并不存在于存儲器B中),輸出31取值“0”。
如果在存儲器B的輸入32處接收到來自存儲器A的項(xiàng)J,則存在兩種可能或者信號31為“真”(值“1”),或者信號31為“假”(值“0”)。
如果信號31為“真”,則存儲器B的輸入32處接收到的新項(xiàng)替代其數(shù)值出現(xiàn)在輸入30處的項(xiàng)(其被移到存儲器A中)。
如果信號31為“假”,仍然存在兩種可能或者存儲器B包含少于P項(xiàng),并記憶新項(xiàng)J;或者存儲器B已經(jīng)包含P項(xiàng),即其已滿。在后一種情況下,其隨機(jī)地選擇在存儲器B中已存在的項(xiàng),并刪除其以記憶在其輸入32處接收到的新項(xiàng)來替代隨機(jī)選擇的項(xiàng)。
因此,存儲器B以隨機(jī)的方式清空。因此,想要消除記憶設(shè)備5中的項(xiàng)的偷盜者必須比在簡單FIFO存儲類型的情況進(jìn)行多得多的嘗試。事實(shí)上,如果存儲器的總尺寸為N項(xiàng),則偷盜者平均必須實(shí)現(xiàn)比N多得多的嘗試來從存儲器中消除項(xiàng)目。
應(yīng)該注意,在單幅圖中分離表示的存儲器A和B在實(shí)際中可以是相同物理存儲器的兩個子組件。
本發(fā)明并不局限于以上已經(jīng)描述的實(shí)施例。作為變體,實(shí)際上,記憶設(shè)備5可以包括空尺寸的存儲器A。在另一變體中,用戶能夠以給定次數(shù)向記憶設(shè)備展示每一項(xiàng)。例如,如果將該設(shè)備集成到記錄設(shè)備中,并且授權(quán)該記錄設(shè)備對每一個內(nèi)容制作數(shù)量為x的副本,則對于已經(jīng)由設(shè)備記錄的每一個內(nèi)容標(biāo)識符,該存儲器將存儲把該內(nèi)容展示給該設(shè)備進(jìn)行記錄的y次。當(dāng)給定內(nèi)容展示數(shù)量y達(dá)到數(shù)量x時,則不能再記錄該內(nèi)容,并且記憶設(shè)備5將向記錄設(shè)備返回相應(yīng)的信息項(xiàng)。
權(quán)利要求
1.一種記憶項(xiàng)目列表的設(shè)備(5),用于記憶最后展示給其的任意項(xiàng)(J)且包括第一存儲器(3),其特征在于其額外包括當(dāng)?shù)谝淮鎯ζ饕褲M時且當(dāng)必須對新項(xiàng)進(jìn)行記憶時,負(fù)責(zé)隨機(jī)地選擇記憶在第一存儲器中的項(xiàng)以刪除該所選項(xiàng),并記憶所展示的新項(xiàng)的裝置。
2.根據(jù)權(quán)利要求1所述的設(shè)備,能夠記憶N項(xiàng),其中N是自然數(shù),其特征在于所述設(shè)備還包括第二存儲器(2),設(shè)計用于連續(xù)地記憶最后展示給所述設(shè)備的M項(xiàng),M是小于N的自然數(shù),所述第一存儲器(3)用于記憶N-M個其他項(xiàng)。
3.根據(jù)權(quán)利要求1或2所述的設(shè)備,其特征在于所述設(shè)備還適合于提供表示最后展示給其的項(xiàng)(J)是否已經(jīng)存在于所述設(shè)備中的信息。
4.根據(jù)權(quán)利要求1到3任一項(xiàng)所述的設(shè)備,其特征在于所述設(shè)備僅包含所記憶的每一項(xiàng)的一個副本。
5.根據(jù)前述權(quán)利要求任一項(xiàng)所述的設(shè)備,其特征在于對于每一項(xiàng),所述設(shè)備還記憶將該項(xiàng)已經(jīng)展示給其的次數(shù)。
6.根據(jù)權(quán)利要求5所述的設(shè)備,其特征在于所述設(shè)備適合于提供表示最后展示給其的項(xiàng)是否已經(jīng)展示給其超過預(yù)定數(shù)量的次數(shù)的信息。
7.一種在根據(jù)權(quán)利要求2到4任一項(xiàng)所述的設(shè)備(5)中記憶項(xiàng)(J)的方法,其特征在于所述方法包括以下步驟(a)接收展示給設(shè)備(5)的項(xiàng)(J);(b)驗(yàn)證所述項(xiàng)(J)是否已經(jīng)存在于所述設(shè)備(5)中;以及-如果所述驗(yàn)證為肯定的,則將所述項(xiàng)(J)指定為最后記憶的項(xiàng);以及-如果所述驗(yàn)證為否定的,則將所述項(xiàng)(J)記憶在所述設(shè)備中。
8.根據(jù)權(quán)利要求7所述的設(shè)備,其特征在于在步驟(b)中的否定驗(yàn)證的情況下-如果第二存儲器(2)未滿,則將接收到的項(xiàng)(J)記憶在第二存儲器(2)中;以及-如果第二存儲器(2)已滿i)將所述第二存儲器中所記憶的最早項(xiàng)傳送給第一存儲器(3);ii)將接收到的項(xiàng)(J)記憶在所述第二存儲器(2)中;以及iii)如果第一存儲器(3)已滿,則隨機(jī)地選擇記憶在所述第一存儲器中的項(xiàng)以進(jìn)行刪除,從而能夠?qū)⒂洃浽谒龅诙鎯ζ髦械淖钤珥?xiàng)傳送給所述第一存儲器(3)。
全文摘要
本發(fā)明涉及一種記憶項(xiàng)目列表的設(shè)備(5),用于記憶最后展示給其的任意項(xiàng)(J)。其包括第一存儲器(3)、以及當(dāng)?shù)谝淮鎯ζ饕褲M時且當(dāng)必須對新項(xiàng)進(jìn)行記憶時,負(fù)責(zé)隨機(jī)地選擇記憶在第一存儲器中的項(xiàng)以刪除該所選項(xiàng),并記憶所展示的新項(xiàng)的裝置。本發(fā)明還涉及一種在這樣的設(shè)備(5)中記憶項(xiàng)(J)的方法。
文檔編號G06F21/80GK1705931SQ200380101643
公開日2005年12月7日 申請日期2003年10月14日 優(yōu)先權(quán)日2002年10月16日
發(fā)明者埃里克·迪爾 申請人:湯姆森許可貿(mào)易公司