两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

具有用于改善時間估值的精確度的電路系統(tǒng)的存儲器裝置及其使用的方法

文檔序號:6477490閱讀:165來源:國知局
專利名稱:具有用于改善時間估值的精確度的電路系統(tǒng)的存儲器裝置及其使用的方法
技術領域
背景技術
—些存儲器裝置,如SanDisk公司的TrustedFlashTM存儲器裝置,需要知道時間以 便進行基于時間的操作,如數(shù)字權利管理(DRM)許可證驗證(license validation)。由于 這樣的操作中涉及的安全性問題,存儲器裝置可能不能信任(trust)主機裝置來提供正確 的時間。盡管存儲器裝置可能能夠從網(wǎng)絡中的可信(trusted)組件獲得正確時間,容納存 儲器裝置的主機裝置在存儲器裝置需要知道時間時可能沒有連接到網(wǎng)絡。存儲器裝置可被 設計為測量其激活時間,但是如果存儲器裝置不連續(xù)測量激活時間(例如,如果存儲器裝 置在開始測量之后斷電),則從測得的激活時間生成的時間估值將不是實際時間的真實測 值。因此,從測得的激活時間生成的時間估值實際上僅僅表示實際時間可能的下限,這樣的 時間估值不能提供某些基于時間的操作中所期望的精確度。盡管存儲器裝置可配有后備電 池時鐘,以便即使存儲器裝置未激活時也連續(xù)保持對時間的跟蹤,這樣的時鐘可能增加存 儲器裝置的成本。

發(fā)明內(nèi)容
本發(fā)明由權利要求所限定,并且此部分中的任何內(nèi)容不應被當作對那些權利要求 的限制。 通過介紹,下述實施例提供了具有用于改善時間估值的精確度的電路系統(tǒng)的存儲 器裝置和其使用的方法。在一個實施例中,存儲器裝置接收時間戳,并相對于所接收的時間戳測量激活時間。存儲器裝置確定先前測量的激活時間的精確度,并使用測量的激活時間、
先前測量的激活時間的精確度、和所接收的時間戳,來生成時間估值。在另一實施例中,調(diào)
整測量的激活時間,生成或不生成時間估值。公開了其他實施例,并且每個實施例可單獨使
用或一起組合使用。 現(xiàn)在將參照附圖描述實施例。


圖1是實施例的系統(tǒng)的圖示。 圖2是實施例的存儲器裝置的框圖。 圖3是用于獲得時間戳的實施例的系統(tǒng)圖。 圖4是用于獲得時間戳的實施例的方法的流程圖。 圖5是用于改善存儲器裝置的時間估值的精確度的實施例的方法的流程圖。 圖6-8是用來圖示實施例的時間表。
具體實施例方式
下面描述的實施例涉及用于改善時間估值的精確度的存儲器裝置和方法。圖1是 將用來圖示這些實施例的系統(tǒng)10的圖示。如圖1所示,系統(tǒng)10包括多個存儲器裝置20、 30、40,可移除地連接相應的多個主機裝置個人計算機(PC)50、數(shù)字媒體(例如MP3)播放 器60和蜂窩電話70。主機裝置是能從存儲器裝置讀取數(shù)據(jù)和/或向存儲器裝置寫入數(shù)據(jù) 的裝置。數(shù)據(jù)可包括但不限于諸如音頻文件或視頻文件(有或沒有音頻)的數(shù)字媒體內(nèi)容、 圖像、游戲、書、地圖、數(shù)據(jù)文件、或軟件程序。例如,數(shù)據(jù)可從網(wǎng)絡中的服務器下載到存儲器 裝置上,由制造商或其他第三方預加載,或從另一裝置側載(side-load)。
主機裝置可采用任何適當?shù)男问?,不限于圖1所示的例子。例如,主機裝置可采用 筆記本計算機、手持計算機、手持電子郵件/文本消息裝置、手持游戲控制臺、視頻播放器 (例如,DVD播放器或便攜式視頻播放器)、音頻和/或視頻記錄器、數(shù)字照相機、機頂盒、顯 示裝置(例如,電視機)、打印機、車載音響、和導航系統(tǒng)的形式。而且,主機裝置可包含混合 功能性。例如,主機裝置可以是蜂窩電話,除了能夠發(fā)起和接收電話呼叫之外,還能夠播放 數(shù)字媒體(例如,音樂和/或視頻)文件。 類似于PC 50和蜂窩電話70的主機裝置可具有可通信地連接到網(wǎng)絡(如因特網(wǎng) 80或無線網(wǎng)絡90,但也可使用其他類型的網(wǎng)絡)的能力。下面將具有這樣的能力的主機裝 置稱為"聯(lián)接裝置(connected device)"。應注意,"聯(lián)接裝置"可以不總是實際連接到網(wǎng)絡, 如當蜂窩電話70在未連接模式下操作時,或當PC 50沒有建立因特網(wǎng)連接時。自身不具有 可通信地連接到網(wǎng)絡的能力的主機裝置(諸如數(shù)字媒體播放器60)下面將被稱為"未聯(lián)接 裝置(unconnected device)"。通過把未聯(lián)接裝置與聯(lián)接裝置連接,未聯(lián)接裝置能夠被置為 與網(wǎng)絡通信,如圖1所示,其中數(shù)字媒體播放器60連接到PC 50。即使按這樣的方式連接, 如果未聯(lián)接裝置未針對這樣的功能來設計(例如,單純的MP3播放器),未聯(lián)接裝置也可能 不能從網(wǎng)絡得到信息。在這樣的情形下,網(wǎng)絡中的組件可將信息推送給該裝置。應注意,盡 管圖1示出了數(shù)字媒體播放器60經(jīng)由有線連接而連接到PC 50,但也可使用無線連接。類 似地,術語"連接"和"耦接"不必一定表示有線連接或直接連接。
5
網(wǎng)絡(例如,因特網(wǎng)80或無線網(wǎng)絡90)可允許聯(lián)接裝置(或連接到聯(lián)接裝置的未 聯(lián)接裝置)訪問外部組件,外部組件例如但不限于可提供時間戳的時間服務器100、以及可 提供DRM保護的內(nèi)容和用于訪問這樣內(nèi)容的許可證的數(shù)字權利管理服務器(DRM)llO。下面 將更詳細地描述這兩個服務器。盡管時間服務器100和DRM服務器110在圖1中被示出為 分離的裝置,但這兩個服務器可被組合為單個裝置。另外,這些服務器可包含其他功能性。 而且,如有需要,可經(jīng)由因特網(wǎng)80和無線網(wǎng)絡90,訪問除了時間服務器100和DRM服務器 IIO之外的組件。 在各種情形下,存在知道何時的需要。例如,如果存儲器裝置上對DRM保護的內(nèi)容 的許可證表明對內(nèi)容的訪問在某時間到期,則負責驗證許可證的實體需要比較當前時間和 到期時間,以確定訪問是否過期。在一些情況下,存儲器裝置是"啞(dumb)"存儲裝置,而主 機裝置負責進行基于時間的處理(例如,利用主機專用DRM密鑰來驗證DRM許可證)。在這 些情況下,如果主機裝置是聯(lián)接裝置,如在連接模式下操作的PC 50或蜂窩電話70,則主機 裝置可從作為可信時間源的時間服務器IOO得到具有當前時間的時間戳。未連接的主機裝 置,如在未連接模式下操作的數(shù)字媒體播放器60或蜂窩電話70,可配有將保持對時間的跟 蹤的電池后備時鐘。在時鐘在長時間段上損失精確度的情況下,這些裝置仍可使用時間戳 以重新校準它們的電池后備時鐘。 這樣的主機裝置的一個缺點是用于驗證DRM許可證的主機專用DRM密鑰不能移 動。這有效地將受保護的內(nèi)容綁定到特定主機裝置。為了克服該缺點,可向存儲器裝置發(fā) 布DRM密鑰和許可證。因為DRM密鑰和許可證與存儲器裝置一起移動,所以受保護的內(nèi)容 被有效地綁定到存儲器裝置而不是主機裝置,由此使得受保護內(nèi)容便攜化并能由任何可向 存儲器裝置證明其是授權裝置的主機裝置訪問。在此情形下,存儲器裝置可包含利用存儲 器裝置中存儲的DRM密鑰驗證DRM許可證的功能性??商鎿Q地,存儲器裝置可將DRM密鑰 提供給主機裝置,讓它用DRM密鑰驗證DRM許可證。SanDisk公司的TrustedFlash 存儲 器裝置是在存儲器裝置上存儲DRM密鑰和許可證從而使得受保護內(nèi)容能隨著存儲器裝置 一起移動的存儲器裝置的例子。 在此情況下,不是作為"啞"存儲裝置,而是存儲器裝置具有如下處理能力僅僅在 詢問內(nèi)容的實體是授權實體的情況下及在驗證了用于該內(nèi)容的許可證項目的情況下,才允 許內(nèi)容從存儲器裝置讀出。對于這兩個功能,存儲器裝置需要知道當前時間。例如,在公共 密鑰基礎設施(PKI)認證中,實體的認證基于具有到期時間的證明書(例如,RSA證書)。 因此,為了驗證實體提供的RSA證書,存儲器裝置需要知道何時。類似地,內(nèi)容使用許可證 可具有時間限制(例如,歌曲只能播放一個月,電影只能觀看一天等),并且存儲器裝置需 要知道時間以驗證許可證。因此,存儲器裝置需要某機制來保持對時間的跟蹤。
—個選項是每次在存儲器裝置需要知道時間時,讓存儲器裝置經(jīng)由主機裝置從可 信的時間服務器請求時間戳。該方案適合于聯(lián)接裝置;然而,因為存儲器裝置可用于聯(lián)接 裝置以及未聯(lián)接裝置二者(例如,未連接到因特網(wǎng)的家用PC、MP3播放器、脫離網(wǎng)絡的蜂窩 電話(例如在飛機上)),所以存儲器裝置不能依賴于在需要知道時間時連接性可用。另一 選項是為存儲器裝置配電池后備時鐘。然而,這可能是不期望的,因為它將增加存儲器裝置 的成本。再一選項是依賴于主機裝置向存儲器裝置提供時間(從其自身的內(nèi)部時鐘或從 外部源)。然而,在許多情形下,存儲器裝置不能信任主機裝置提供精確的時間。如果允許用戶"倒填(back date)"主機裝置上的時鐘(即,將主機裝置上的時鐘設置為比當前時間 更早的時間),則用戶將能夠繞過存儲器裝置需要施行的那種時間限制。另一方面,如果存 儲器裝置能信任主機裝置,則存儲器裝置將能夠在時間方面依賴主機裝置。"Method for UsingTime from a Trusted Host Device"美國專利申請序列號11/811, 346 ;禾口 "Memory Device Using Time from a Trust Host Device"美國專利申請序列號11/811, 345,每一 個隨此提交并且通過引用合并于此,描述了用于判斷存儲器裝置是否在時間方面依賴主機 裝置的技術。另一選項是施行存儲器裝置的有限時間跟蹤能力。在轉到此選項之前,提供 實施例的存儲器裝置的總體概況。 再次轉到附圖,圖2是實施例的存儲器裝置200的框圖,其可采用存儲卡或棒的形 式。如圖2所示,存儲器裝置200包括非易失性存儲器陣列(如閃存)210和電路系統(tǒng)集合 220。在該實施例中,非易失性存儲器陣列210采用固態(tài)存儲器,具體是閃存210的形式。 應注意,也可取代閃存而使用其他類型的固態(tài)存儲器。還應注意,可使用除了固態(tài)存儲器 之外的存儲器,例如但不限于磁盤和光學CD。而且,為了簡潔,這里使用的術語"電路系統(tǒng) (circuitry)"是指純硬件實施方式和/或組合的硬件/軟件(或固件)實施方式。因此, "電路系統(tǒng)"可采用特定用途集成電路(ASIC)、可編程邏輯控制器、嵌入式微控制器、和單板 計算機、以及處理器和存儲可由處理器執(zhí)行的計算機可讀程序代碼(例如,軟件或固件)的 計算機可讀介質的形式。 圖2中的電路系統(tǒng)集合210包含多個組件主機接口模塊(HM)230、閃存接口模 塊(FM)240、緩沖器管理單元(BMU)250、CPU 260、和硬件計時器塊270。 HM 230提供對主 機裝置300的接口功能性,F(xiàn)IM 240提供對閃存210的接口功能性。BMU 250包括用于提供 加密/解密功能性的密碼引擎252、以及用于分別與HM 230和FM 240通信的主機直接 存儲器存取(DMA)組件254和閃存DMA組件256。 CPU 260執(zhí)行CPU RAMS 260和/或閃存 210中存儲的軟件和固件。下面將結合存儲器裝置測量時間的能力描述硬件計時器塊270。
為簡化附圖,圖2中未示出存儲器裝置200的其他組件,如用于將存儲器裝置200 可移除地連接到主機裝置300的電氣和物理連接器。關于存儲器裝置200及其操作的更多 信息可在美國專利申請系列號11/314, 411和11/557,028中找到,它們均通過引用合并于 此。其他信息可在美國專利申請系列號11/322, 812和美國專利申請系列號11/322,766中 找到,它們均通過引用合并于此。然而應注意,除非這里明確指出,這些文檔中描述的組件 和功能性不應被曲解到后面的權利要求中。 已經(jīng)描述了存儲器裝置200的概況,現(xiàn)在將討論存儲器裝置200測量時間的能力。 在此實施例中,存儲器裝置基于相對于時間戳測量的激活時間來生成時間估值。換言之,時 間戳作用為"起始線",存儲器裝置測量的激活時間被添加到時間戳。時間戳可采用任何形 式,并表示任何期望精度的時間(例如,年、月、日、小時、分鐘、秒等)。優(yōu)選地,從存儲器裝 置200信任給它精確時間的實體(例如,時間服務器100或可信的主機裝置)向存儲器裝 置200提供時間戳。時間戳可采用任何形式,并且自身發(fā)送或被包括在其他信息中。優(yōu)選 地,存儲器裝置經(jīng)由密碼引擎(crypto-engine) 252安全地存儲時間戳,使得它不能被容易 地篡改。 圖3和圖4分別是圖示存儲器裝置200可獲得時間戳的一個具體方式的系統(tǒng)圖和 流程圖。應理解,存儲器裝置200可按不同方式獲得時間戳,并且時間戳可采用不同形式。還應理解,與多個服務器或主機接口的單個存儲器裝置可同時處理多個形式。因此,除非這 里明確指出,該例子的細節(jié)不應被曲解到權利要求中。 如圖3所示,存儲器裝置200經(jīng)由存儲器裝置_主機裝置通信信道305與主機裝 置300通信,并且主機裝置300經(jīng)由主機裝置-時間服務器通信信道315與時間服務器100 通信。盡管時間服務器100可包括單個服務器,但在該實施例中,時間服務器100包括經(jīng)由 服務器間通信信道325彼此同步的多個服務器102、 104、 106。 在該實施例中,由主機裝置300啟動請求時間戳的過程,主機裝置300向存儲器 裝置200發(fā)送取得現(xiàn)時(nonce)命令(動作405)(見圖3和圖4)。在該實施例中,現(xiàn)時是 存儲器裝置200用來在以后檢驗時間服務器100生成的時間戳的真實性的160位隨機數(shù)。 存儲器裝置200生成隨機數(shù)(現(xiàn)時)(動作410),并將其存儲在CPU RAMS(即,易失性存儲 器)262(或者,可替換地,存儲器210)中,用于以后的檢驗步驟。然后存儲器裝置200向主 機裝置300發(fā)送現(xiàn)時(動作415)。存儲器裝置200還開始測量時間(如下所述),以便在 以后確定是否發(fā)生超時(time-out)。 當主機裝置300接收到現(xiàn)時時,其向時間服務器100發(fā)送包含該現(xiàn)時的取得時間 戳請求(動作420)。時間服務器100用其私有密鑰對時間(例如,UTC Zulu格式的世界時 間)和現(xiàn)時簽字。然后時間服務器100向主機裝置300發(fā)送時間戳響應(動作425),在本 實施例中,該時間戳響應包括現(xiàn)時、時間戳、證書鏈、和證書調(diào)用列表("CRL")鏈。然后,主 機裝置300向存儲器裝置200發(fā)送具有此響應的時間更新命令(動作430)。響應于該命 令,存儲器裝置200嘗試檢驗證書和CRL(動作435)。如果檢驗失敗,則存儲器裝置200重 置易失性存儲器262并返回到空閑進程(動作440)。如果證書和CRL的檢驗通過(動作 445),則存儲器裝置200比較響應中的現(xiàn)時和易失性存儲器262中的現(xiàn)時(動作450)。如 果該比較失敗,則存儲器裝置重置易失性存儲器262并返回到空閑進程(動作455)。如果 該比較成功,則存儲器裝置200在存儲器210中存儲新的時間戳,優(yōu)選地,按照安全方式以 保護來防止篡改。 應注意,在存儲器裝置200生成現(xiàn)時410并且等待響應(動作460)之后,有可能 的是,主機裝置300可向主機裝置200發(fā)送另一取得現(xiàn)時命令(動作465)。如上所述,存儲 器裝置200在生成現(xiàn)時之后開始測量時間。如果在測量的時間到達某超時限度之前接收到 新的現(xiàn)時命令(465),則優(yōu)選的是,存儲器裝置200忽略新的現(xiàn)時命令(465)。然而,如果在 超時限度之后接收到新的現(xiàn)時命令(465),則存儲器裝置200將重置易失性存儲器262并生 成新現(xiàn)時(動作470)。因此,現(xiàn)時僅僅在有限的時間內(nèi)有效,并且超時限度("行程時間錯 誤(travel time error)")是存儲器裝置200認為從時間服務器100等待時間戳合理的最 大時間。 因為存儲器裝置200中存儲的時間戳包含時間服務器100對數(shù)據(jù)串簽字的時間, 所以取決于時間戳的精度(例如,年、月、日、小時、分鐘、秒等)及發(fā)送請求和接收響應所涉 及的延遲,時間戳中指示的時間可能不是主機裝置300請求時間戳的實際、真實的世界時 間、或存儲器裝置200存儲時間戳的實際、真實的世界時間。上述現(xiàn)時超時時間段可被設置 為確保時間戳將具有存儲器裝置200所要求的精度的時間。因此,存儲器裝置200可控制時 間戳請求中的最大可接受延遲。而且,在替代實施例中,時間服務器100生成的時間戳可指 示某其他時間,如主機裝置300請求時間戳的估計時間、時間戳將被存儲在存儲器裝置200
8中的預期時間、或某其他時間。 以上協(xié)議允許存儲器裝置200在不安全的連接性系統(tǒng)(例如,因特網(wǎng),WiFi網(wǎng)絡、 GSM網(wǎng)絡等)中與時間服務器100通信。在存儲器裝置200不能假設時間服務器100發(fā)送 的時間戳不會在傳輸期間被篡改的意義上,連接性網(wǎng)絡是不安全的。因為不能依賴網(wǎng)絡來 保護時間戳,所以能夠在時間服務器100和存儲器裝置200之間使用以上保護機制(或某 其他保護機制)。加密協(xié)議使得如果時間戳被篡改則存儲器裝置200可檢測到。換言之,因 為連接性系統(tǒng)不安全,所以系統(tǒng)本身不能防止人們改變時間戳中的比特;然而,存儲器裝置 200可檢測到篡改并拒絕該時間戳。在替代實施例中,使用安全的通信系統(tǒng)(即,保護數(shù)據(jù) 通信線路),并且因為沒人能篡改時間戳,可簡單地作為明文發(fā)送時間戳。
現(xiàn)在已經(jīng)解釋了時間戳的接收,將討論存儲卡跟蹤時間的能力。如上所述,存儲器 裝置200具有有限的時間跟蹤能力;具體地,存儲器裝置200能夠測量其激活時間。激活時 間可以指存儲器裝置200連接到主機裝置并實際使用的時間量(即,當與空閑或休眠模式 相比,存儲器裝置200和主機裝置300之間的總線上有激活)。可替換地,激活時間可以指 存儲器裝置200連接到并從主機裝置300接收功率的總時間量。術語"激活時間"和"使用 時間"在這里可互換使用。如下所述,在該實施例中,當硬件計時器塊270能生成時鐘節(jié)拍 (clock tick)作為對CPU 260的中斷時存儲器裝置200是激活的,并且CPU 260能遞增激 活時間計數(shù)器。 操作中,硬件計時器塊270 (例如,ASIC控制器)包含生成周期性時鐘節(jié)拍的振蕩 器,并將這樣的節(jié)拍提供給CPU 260作為中斷。(優(yōu)選地,振蕩器以非常低的頻率操作,并 且在CPU 260休眠時運行)。因此,硬件計時器塊270周期性地(例如,每毫秒或微秒)中 斷CPU 260。當CPU 260得到中斷時,特殊時鐘中斷服務例程(例如,在CPU 260運行的固 件中)被調(diào)用,并向在CPU RAMS 262中并且還在非易失性閃存210中存儲的激活時間計數(shù) 器增加一個時間段/單位,從而在功率損失的情況下不會丟失計數(shù)器值。為避免存儲器210 的過度損耗,優(yōu)選的是,取代響應于每個時鐘節(jié)拍,而是周期性地(例如,每分鐘等,只要存 儲器裝置200被加電即可)更新存儲器210中的激活時間計數(shù)器。盡管如果在更新激活 時間計數(shù)器之前發(fā)生功率損失,這能夠導致測量時間的額外的不精確性,但是從對存儲器 耐久性的好處而言,此犧牲可能認為是可接受的。(為了進一步保護存儲器耐久性,存儲到 激活時間計數(shù)器的值可包括表示已經(jīng)寫入計數(shù)器多少次的字段。如果寫入值超過某量,則 計數(shù)器能夠被存儲在存儲器中的另一位置。如果有助于耐久性,計數(shù)器內(nèi)的比特也可以移 位。)還優(yōu)選的是,對激活時間計數(shù)器的寫入不影響存儲器裝置200的性能(除進行寫入 的功耗以外)和正常激活性。例如,對激活時間計數(shù)器的寫入可被當作后臺任務,并在維護 (servicing)主機裝置命令之前執(zhí)行。在主機裝置命令的結尾處,存儲器裝置200中的固件 可通過從存儲器讀出數(shù)據(jù)并將其與期望值進行比較,來檢驗激活時間計數(shù)器的編程成功。
而且,優(yōu)選地,激活時間計數(shù)器的值被安全地存儲在存儲器210中(例如,經(jīng)由使 用密鑰散列(key-hashed)消息認證碼(HMAC)的密碼引擎252簽字),所以它不能被容易地 篡改。在簽字不匹配的情況下,數(shù)據(jù)可被當作非初始的,比如攻擊者篡改了它。另外,應注 意,可使用用于測量激活時間的其他機制。 為了將激活時間計數(shù)器中存儲的值轉換為實際時間,CPU 260將所存儲的值乘以 硬件計時器塊270生成時鐘節(jié)拍的頻率。例如,如果值500被存儲在激活時間計數(shù)器中,并且硬件計時器塊270每5毫秒生成時鐘節(jié)拍,則CPU 260將計算出2, 500毫秒(500乘 以5)的激活時間。為了生成時間估值,將轉變的激活時間加到最新的時間戳。當存儲器裝 置200接收到新的時間戳時,新時間戳被存儲在存儲器裝置200中,并且重置激活時間計數(shù) 器。由此,此后將相對于新時間戳而不是舊時間戳來測量激活時間。取代重置(因而,"回 滾(rolling back)")計數(shù)器,而是在新時間戳時存在的激活時間計數(shù)器值可被記錄并從當 前時間減去,以便測量激活時間。 不幸的是,如果存儲器裝置200沒有連續(xù)地測量激活時間,則從測量的激活時間 生成的時間估值將不是實際時間的真實測值。由此,如果存儲器裝置200 "未激活"(例如, 當存儲器裝置200空閑或處于休眠模式時,或當存儲器裝置200斷電時或當存儲器裝置200 從主機裝置300移除時-在此實施例中,無論什么事件導致硬件計時器塊270停止生成時 鐘節(jié)拍和/或導致CPU260停止對這樣的節(jié)拍作出反應),則測得的激活時間將比從開始測 量時經(jīng)過的實際時間少,因為當存儲器裝置200未激活時,存儲器裝置200中不能告訴它經(jīng) 過了該時間。 例如,我們說時間戳在l月1日接收到,并且存儲器裝置200測量了兩天的激活時 間。(為了簡化,在該例子中,以天為單位測量時間。然而,如上所述,可使用任何期望的時 間單位。)因此,此時存儲器裝置200生成的時間估值將表示日期是1月3日(即,通過將 兩天的激活時間加到最后的時間戳l月1日)。如果存儲器裝置200連續(xù)測量激活時間,則 該時間估值將精確地表示實際時間(假設硬件計時器塊270和CPU 260精確地工作)。然 而,如果存儲器裝置200沒有連續(xù)測量激活時間(即,如果存儲器裝置200在其開始測量激 活時間之后的任何點上未激活),則時間估值不會精確地表示實際時間。最好,時間估值將 表示實際時間至少是1月3日。實際時間可能是1月4日或者某更晚的時間(6月29日、 11月2日、12月5日、下一年等)。 如果時間限制基于激活時間,則這不會造成問題。不幸的是,時間限制(例如,用 于認證或DRM用途)通常構建于真實世界日歷時間-不是存儲器裝置200的激活時間。即 使如此,如果特定應用的時間限制在1月3日前,則這樣的不精確性在此例子中不一定成 為問題。即,如果對歌曲的訪問在1月2日到期,并且存儲器裝置200的時間估值是1月3 日,則禁止訪問該歌曲,無論時間估值是否是精確的(B卩,是否真的是1月3日)或時間估 值是否是不精確的(即,是否是1月3日之后的某個時間)。然而,如果時間限制是1月4 日(或更晚),則該不精確性會導致問題_實際上是1月3日(因而,應準許訪問)還是實 際上晚于1月3日(因而,應禁止訪問)。 為解決此問題,該實施例提供了用于改善存儲器裝置200的時間估值的精確度的 方法。將結合圖5的流程示該方法。如圖5所示,接收時間戳(動作510),并且相對于 所接收的時間戳來測量存儲器裝置200的激活時間(動作520)。前面已經(jīng)描述了這些動 作。然而,為了改善時間估值的精確度,在該方法中,存儲器裝置200(例如,使用CPU 260) 確定先前測量的激活時間的精確度(動作530)。(盡管動作530在流程圖中被示出為在動 作510和520之后,但動作530可以在任何時間執(zhí)行。)將參照圖6-7中的時間表圖示該動 作。 圖6示出了用于上述例子的時間表,其中在1月1日接收了時間戳(TS》,并且存儲 器裝置200測量了2天的激活時間。如上所述,從該測量的激活時間生成的時間估值將表示
10它至少是1月3日。然而,當接收到下一時間戳(TS2)時(見圖7),因為實際時間是兩個時 間戳之間的差(即,實際時間=TS廠TS》,存儲器裝置200將得知從該先前時間戳開始已經(jīng) 經(jīng)過的實際時間。第二時間戳還允許存儲器裝置200計算其"關機時間(down time)"(關 機時間=實際時間_激活時間)。在該例子中,關機時間也是兩天。因為存儲器裝置200知 道時間戳之間的實際時間(4天)、測量的激活時間(2天)、和計算的關機時間(2天),所 以存儲器裝置200能確定測量的激活時間如何程度精確地表示這些時間戳之間的實際時 間。例如,存儲器裝置200可比較測量的激活時間和實際時間,用實際時間比較計算的關機 時間,比較測量的激活時間和計算的關機時間等。如這些例子看到的,如當通過比較關機時 間(從測量的激活時間計算得到)和實際時間確定精確度時,可確定先前測量的激活時間 的精確度,而無需直接在計算中使用先前測量的激活時間。在此圖示中,測量的激活時間對 實際時間的精確度是50%。如上所述,盡管在此實施例中通過比較測量的激活時間和兩個 時間戳之間的實際時間而確定先前測量的激活時間的精確度,但可使用其他確定精確度的 方法。 利用該精確度信息,存儲器裝置200可調(diào)整測量的激活時間(動作540)。例如,圖 8示出了存儲器裝置200從最后的時間戳(TS2)開始測量3天的激活時間。(如上所述,優(yōu) 選地,當接收到新時間戳(這里,TS2)時,重置激活時間計數(shù)器。)存儲器裝置200知道上 次它測量激活時間時,產(chǎn)生實際時間50%的值。因此,這次不是使用測量的激活時間,而是 存儲器裝置200可基于它之前的精確度的知識,來調(diào)整(或"延長")測量的激活時間。以 此方式,將3天的測量的激活時間調(diào)整(或"延長")因子2(因為測量的激活時間是實際時 間的50% )以得到6天。 可按照任何合適的方式進行測量的激活時間的調(diào)整(或"延長")。在一個實施 例中,通過改變CPU 260用來轉變激活時間計數(shù)器中的值的乘數(shù),進行此"延長"。(盡管 可代替原始乘數(shù),但優(yōu)選的是,存儲新舊兩個乘數(shù)。)如上所述,在"未延長"的情況下,CPU 260將激活時間計數(shù)器中的值乘以硬件計時器塊270生成時鐘節(jié)拍的頻率。例如,如果硬 件計時器塊270每5毫秒生成時鐘節(jié)拍并且激活時間計數(shù)器存儲值500,則CPU 260將生 成2,500毫秒(即,500乘以5)的時間值。如果先前的時間估值脫離了因子2(即,"延長因 子"),則CPU 260將雙倍乘數(shù)的值(即,一個時鐘節(jié)拍代表10毫秒而不是5毫秒),以得到 "延長"的時間值5, 000毫秒??商鎿Q地,取代改變乘數(shù)值,可使用原始乘數(shù)值,可以用"延 長"因子"延長"乘數(shù)和激活時間計數(shù)器中的值的乘積。當然,可使用任何其他期望的機制 以基于先前測量的激活時間的精確度來調(diào)整測量的激活時間。 應注意,盡管圖6-8中的圖示出了先前測量的激活時間的精確度的確定僅僅基于 一個先前的精確度測值,但優(yōu)選的是,先前測量的激活時間的精確度的確定基于多個先前 的精確度測值。在一個實施例中,先前精確度測值的移動平均值(running average)被采 用并存儲在存儲器210中作為"延長"因子??商鎿Q地,取代存儲表示先前確定的"延長"因 子的移動平均值的單個"延長"因子,而是,存儲器裝置200可存儲所有先前的延長因子(或 所有的先前的激活和實際時間(或關機時間等))的歷史記錄,并動態(tài)地(on the fly)計 算平均值。然而,可優(yōu)選的是,存儲單個"延長"因子,因為存儲歷史記錄會消耗更多的存儲 器。無論使用哪種方法,應清楚,越頻繁地更新時間戳,延長的激活時間表示實際時間的精 確度越高(因為將收集到更精確的數(shù)據(jù))。相反,越不頻繁地更新時間戳,延長的激活時間表示實際時間的精確度越低。另外,即使當不使用時間延長時,因為當接收到新時間戳時重 置了激活時間計數(shù)器(由此,該測量的激活時間中的任何不精確度也是如此),所以頻繁的 時間更新也能增加測量的激活時間的精確度。即使存儲器裝置200包含內(nèi)置的電池后備時 鐘,頻繁的時間戳更新能改善這樣的時鐘的精確度,因為時鐘能夠隨著時間漂移。
盡管以上例子采用"延長"因子(即,確定的時間戳之間的精確度)的簡單平均值,
但在其他實施例中,可使用加權平均值(或某其他函數(shù))。在再一實施例中,可使用僅僅一 個延長因子。因此,除非這里明確指出,否則"平均值"不應被曲解到權利要求中。當使用 平均值時,可以從每個前一時間戳對或在某一子集上提取數(shù)據(jù)。即,在精確度確定中,可跳 過或丟棄某些時間戳對(例如,如下所述,因為供電周期信息表示某時間段的激活時間非 常不精確)。而且,可計算"延長"因子的標準偏差,以確定是否應調(diào)整測量的激活時間。例 如,如果"延長"因子收斂到同一數(shù),則可將"延長"因子當作是有意義的,并且存儲器裝置 200可基于"延長"因子的平均值調(diào)整測量的激活時間。另一方面,如果"延長"因子的標準 偏差大于某閾值量,則存儲器裝置200可決定"延長"因子的平均值不可靠,并且不調(diào)整測 量的激活時間,在此情況下,將僅僅使用測得的"未延長"的激活時間。 如上所述,可按照任何合適的方式執(zhí)行方法中的動作。例如,可在接收到最新近的 時間戳和/或測量當前激活時間之前或之后進行先前的激活時間測值的精確度確定。而 且,當前時間測值的時間戳可以,但不必一定用于確定先前測量的激活時間的精確度(即, 動作510中接收的時間戳可以是,但不必一定是用于計算在動作530中與先前測量的激活 時間進行比較的實際時間的時間戳之一 )。另外,在以上實施例中,假設存儲器裝置200精 確地測量激活時間(即,硬件計時器塊270可靠地按給定頻率生成中斷)。如果存在不精確 性,則可使用例如上述技術中的變型來應對它們。如果主機裝置生成的時間可以信賴,或者 如果存儲器裝置具有自己的電池后備時鐘(例如,如果主機裝置或存儲卡中的時鐘隨著時 間變得不精確),則甚至可使用"時間延長"。 在某些情形下,知道調(diào)整后的激活時間是足夠的,例如當激活時間是時間更新策 略的因子時。然而,在其他情形下,例如當驗證DRM許可證或認證在實際世界日期和時間 到期的證書時,需要生成時間估值。為了改善時間估值的精確度,可使用測量的激活時間、 先前測量的激活時間的精確度、和所接收的時間戳,來生成時間估值(圖5中的動作550)。 可按照任何合適的方式生成這樣的時間估值。例如,可使用延長的激活時間生成時間估值。 返回圖8所示的例子,測量的激活時間是3天。取代生成1月8日的時間估值(即,1月5 日加上作為測得的激活時間的3天),而是可將測量的激活時間調(diào)整為6天(基于先前測 量的激活時間的50%精確度),并且可將調(diào)整后的測量的激活時間加到時間戳以生成1月 11日的時間估值(即,l月5日加上"延長"的激活時間6天)??商鎿Q地,取代使用"延長" 的激活時間生成時間估值,而是可通過使用測量的激活時間生成時間估值,并且可通過"延 長"因子"延長"該時間估值。在任一替代(以及其他)實施例中,使用測量的激活時間、先 前測量的激活時間的精確度、和所接收的時間戳生成時間估值。因此,該語句不應曲解為需 要"延長"的激活時間或任何其他特定具體實施方式
。 存在某些情形,其中可能期望獲得新時間戳或使用"未延長"的激活時間,而不 是"延長"的激活時間。上面描述的一個例子是當"延長"因子的標準偏差超出某閾值 時。作為另一例子,如果測量的激活時間超出某閾值并因而不在預期使用模式(pattern)之內(nèi)使用,則使用"延長"因子可能導致與"過于延長"相比過度的"延長不足"(under stretching)。在這樣的情形下,可能期望獲得新時間戳或使用"未延長"的激活時間。存 儲器裝置100從最后時間戳開始的供電周期的數(shù)目是在預期使用模式之外使用存儲器裝 置100的另一指標。供電周期的數(shù)目是存儲器裝置200被開機多少次的計數(shù),其表示存儲器 裝置200被關機多少次(即,對于每次開機,必然有關機)。供電周期的數(shù)目可由CPU 260 測量。每次存儲器裝置200經(jīng)過供電周期時,CPU260可調(diào)用固件中的裝置重置例程。如 在CPU 260向激活時間計數(shù)器增加一個單位的情形,利用裝置重置例程,CPU 260將向CPU RAMS 262和/或存儲器210中的供電周期計數(shù)器增加一個單位。如同激活時間計數(shù)器,可 周期性地更新供電周期計數(shù)器以減少存儲器損耗。 當存儲器裝置200關機時,至少有一些實際時間未由激活時間表示。因為存儲器 裝置200不知道在供電周期之間經(jīng)過了多少時間,所以供電周期的數(shù)目不提供時間信息。 然而,它提供了存儲器裝置200的使用模式的意義,其可粗略地表示測量的激活時間可能 有多不精確。例如,在存儲器裝置200從最后的時間戳起具有IO個供電周期時產(chǎn)生的時間 估值可能不如在存儲器裝置200從最后的時間戳起僅具有單個供電周期時產(chǎn)生的時間估 值精確。而且,在某些實施例中,存儲器裝置200可以在空閑/休眠模式(因而不測量激活 時間)下開機。保持對供電周期的數(shù)目的跟蹤以提供關于該不精確性的信息,否則關于該 不精確性的信息可能檢測不到。由于所有這些原因,供電周期的數(shù)目可表示激活時間有多 不精確。 存儲器裝置200可被設計為在時間估計中考慮供電周期的數(shù)目。具體地,如果供 電周期的數(shù)目超出某閾值數(shù),則存儲器裝置200可要求新時間戳,而不是基于測量的激活 時間生成時間估值(使用或不使用"時間延長")。例如,如果時間操作非常敏感,并且需 要確保到期日期還未過去,則可將閾值數(shù)設置為1。因此,如果存儲器裝置200被關閉一次 (因而,至少有某時間量不能由測量的激活時間所應對),則存儲器裝置200將不會依賴測 量的激活時間來生成時間估值,但是反而會請求新時間戳。以此方式,作為測量的激活時間 的不精確性的指標的供電周期的數(shù)目用于施行與時間服務器100的時間同步。與之相比, 如果從最后時間戳起的供電周期的數(shù)目是零,則基于測量的激活時間的時間估值將是精確 的,不需要新時間戳。在這樣的情形下,例如,測量的激活時間可乘以原始乘數(shù)(硬件計時 器塊270生成時鐘節(jié)拍的頻率)而不是平均的"延長"因子。以此方式,確定供電周期的數(shù) 目是確定是否要使用"時間延長"的閾值步驟。如果另一方面,時間操作沒有那么敏感并且 "延長"激活時間被認為足夠應對在關機時間期間損失的時間,則供電周期的數(shù)目可被設置 為較高的數(shù),或者甚至根本不考慮。如果供電周期的數(shù)目低于閾值(但如上所述,如果為 零,可能不),則存儲器裝置200執(zhí)行"時間延長"操作。如果供電周期的數(shù)目大于或等于閾 值,則存儲器裝置200將請求新時間戳并且不執(zhí)行"時間延長"操作。 供電周期的數(shù)目也可用于"延長"操作。取代確定"延長"因子,或在確定"延長" 因子之外另外地,存儲器裝置200能夠確定每供電周期的"延長"因子。隨著時間經(jīng)過,存 儲器裝置200未計數(shù)的時間量增加。因而,不精確性隨著時間增加。每供電周期的"延長" 因子的使用可用來解決該不精確性趨勢。例如,如果確定平均"延長"因子是50%,并且時 間戳之間平均有10個供電周期,則將會有每供電周期的"延長"因子5%。因此,當在存在 5個供電周期的時間段期間需要"延長"激活時間時,激活時間將會被"延長"25% (5%乘以
135)而不是50%。以此方式向供電周期賦予權重,能幫助改善"延長"的時間的精確度。(因 為先前測量的激活時間的精確度被用于計算每供電周期的"延長"因子,因此在基于先前測 量的激活時間的精確度來調(diào)整測量的激活時間(或生成時間估值)的保障下,仍會出現(xiàn)每 供電周期的"延長"因子的使用。) 供電周期的數(shù)目還可用于保護存儲器210的耐久性。為了避免激活時間計數(shù)器 "耗完"的情形,可基于如供電周期的數(shù)目所表示的存儲器裝置200的使用模型,使用速率縮 放(rate-scaling)算法以適應對激活時間計數(shù)器的寫入頻率。例如,可能有四種記錄激活 時間的速率(例如,每2分鐘、每4分鐘、每8分鐘和每16分鐘),基于從最后時間戳起的供 電周期的數(shù)目來選擇其中之一。 因為可使用時間戳、測量的激活時間、計算的關機時間、供電周期的數(shù)目、和/或 "延長"因子來生成時間估值,所以優(yōu)選的是,在存儲器裝置200中按照安全的方式存儲這些 值,以防止有人篡改這些值。例如,在存儲到存儲器陣列210中之前,可使用密碼引擎252 按加密形式對這些值簽字(例如,使用密鑰散列消息認證碼(HMAC))。在簽字不匹配的情況 下,可如同攻擊者篡改了數(shù)據(jù)那樣,按照非初始的情況來處理數(shù)據(jù)。 應注意,可在任何合適的應用中使用這些實施例。這樣的應用的例子包括但不限 于認證、主機調(diào)用操作(例如,驗證主機的CRL) 、DRM許可證驗證、和存儲器裝置200內(nèi)部 的其他應用。另外,盡管目前優(yōu)選的是這些實施例在SanDisk公司的TrustedFlashTM存儲器 裝置中實施,但應理解,這些實施例可用于任何類型的存儲器裝置。另外,這些"時間延長" 實施例可用于非存儲器裝置領域,其中一個遇到具有不精確時鐘并需要知道時間的一般問 題。此外,上述動作中的一些或全部可在主機裝置(或某一其他裝置)上執(zhí)行,而不是排他 性地在存儲器裝置上執(zhí)行。 意圖前述具體描述被理解為本發(fā)明可采用的所選形式的例示,而不是本發(fā)明的限 定。僅僅所附權利要求,包括其等價物,意圖限定本發(fā)明的范圍。應理解,權利要求中描述 的動作可按任何順序執(zhí)行_不必按照描述它們的順序。最后,應理解,這里描述的任何優(yōu)選 實施例的任何方面可單獨使用或彼此組合使用。
權利要求
一種用于改善來自存儲器裝置的時間估值的精確度的方法,該方法包括接收時間戳;相對于所接收的時間戳測量存儲器裝置的激活時間;確定先前測量的激活時間的精確度;以及使用測量的激活時間、先前測量的激活時間的精確度、和所接收的時間戳,來生成時間估值。
2. 如權利要求1所述的方法,還包括 相對于所接收的時間戳來測量供電周期的數(shù)目;以及 如果供電周期的數(shù)目超出閾值,則請求新時間戳,而取代生成時間估值。
3. 如權利要求1所述的方法,還包括 相對于所接收的時間戳來測量供電周期的數(shù)目;以及如果供電周期的數(shù)目等于零,則使用所測量的激活時間和所接收的時間戳,而不使用 先前測量的激活時間的精確度,來生成時間估值。
4. 如權利要求l所述的方法,還包括如果所測量的激活時間超出閾值,則請求新時間戳,而取代生成時間估值。
5. 如權利要求1所述的方法,其中,確定先前測量的激活時間的精確度包括確定多個 延長因子,以及其中,該方法還包括測量所述多個延長因子的標準偏差;以及如果所述多個延長因子的標準偏差超出閾值,則執(zhí)行以下之一 請求新時間戳,而取代生成時間估值;以及使用所測量的激活時間和所接收的時間戳,而不使用先前測量的激活時間的精確度, 來生成時間估值。
6. 如權利要求1所述的方法,其中,確定先前測量的激活時間的精確度包括確定多個 延長因子以及計算所述多個延長因子的移動平均值。
7. 如權利要求1所述的方法,其中,確定先前測量的激活時間的精確度包括比較先前 測量的激活時間與在時間戳之間的實際時間。
8. 如權利要求1所述的方法,其中,確定先前測量的激活時間的精確度包括比較關機 時間與在時間戳之間的實際時間。
9. 如權利要求1所述的方法,其中,確定先前測量的激活時間的精確度包括比較先前 測量的激活時間與關機時間。
10. 如權利要求1所述的方法,其中,確定先前測量的激活時間的精確度包括確定存儲 器裝置每個供電周期的延長因子,其中,該方法還包括相對于所接收的時間戳來測量供電 周期的數(shù)目,以及其中,基于每個供電周期的延長因子、和供電周期的數(shù)目來生成所述時間 估值。
11. 一種存儲器裝置,包括 存儲器陣列;以及電路系統(tǒng),與所述存儲器陣列通信,并操作來 測量存儲器裝置的激活時間; 確定先前測量的激活時間的精確度;以及基于先前測量的激活時間的精確度來調(diào)整所測量的激活時間。
12. 如權利要求11所述的存儲器裝置,其中所述電路系統(tǒng)還操作來 使用所調(diào)整的測量的激活時間,來生成時間估值。
13. 如權利要求11所述的存儲器裝置,其中所述電路系統(tǒng)還操作來 相對于所接收的時間戳來測量供電周期的數(shù)目;以及如果供電周期的數(shù)目超出閾值,則請求新時間戳,而取代調(diào)整所測量的激活時間。
14. 如權利要求11所述的存儲器裝置,其中所述電路系統(tǒng)還操作來 相對于所接收的時間戳來測量供電周期的數(shù)目;其中如果供電周期的數(shù)目等于零,則所述電路系統(tǒng)不調(diào)整所測量的激活時間。
15. 如權利要求11所述的存儲器裝置,其中如果所測量的激活時間超出閾值,則所述 電路系統(tǒng)不調(diào)整所測量的激活時間。
16. 如權利要求11所述的存儲器裝置,其中所述電路系統(tǒng)通過確定多個延長因子來確 定先前測量的激活時間的精確度,以及其中所述電路系統(tǒng)還操作來測量所述多個延長因子的標準偏差;以及 執(zhí)行以下之一僅僅在所述多個延長因子的標準偏差不超出閾值的情況下,才調(diào)整所測量的激活時 間;以及如果所述多個延長因子的標準偏差超出閾值,則請求新時間戳,而取代調(diào)整所測量的 激活時間。
17. 如權利要求11所述的存儲器裝置,其中所述電路系統(tǒng)通過確定多個延長因子以及 計算所述多個延長因子的移動平均值,來確定先前測量的激活時間的精確度。
18. 如權利要求11所述的存儲器裝置,其中所述電路系統(tǒng)通過比較先前測量的激活時 間與在時間戳之間的實際時間,來確定先前測量的激活時間的精確度。
19. 如權利要求11所述的存儲器裝置,其中所述電路系統(tǒng)通過比較關機時間與在時間 戳之間的實際時間,來確定先前測量的激活時間的精確度。
20. 如權利要求11所述的存儲器裝置,其中所述電路系統(tǒng)通過比較先前測量的激活時 間與關機時間,來確定先前測量的激活時間的精確度。
全文摘要
公開了具有用于改善時間估值的精確度的電路系統(tǒng)的存儲器裝置和其使用的方法。在一個實施例中,存儲器裝置接收時間戳,并相對于所接收的時間戳測量激活時間。存儲器裝置確定先前測量的激活時間的精確度,并使用測量的激活時間、先前測量的激活時間的精確度、和所接收的時間戳,來生成時間估值。在另一實施例中,調(diào)整測量的激活時間,生成或不生成時間估值。公開了其他實施例,并且每個實施例可單獨使用或一起組合使用。
文檔編號G06F21/72GK101720455SQ200880019347
公開日2010年6月2日 申請日期2008年6月5日 優(yōu)先權日2007年6月8日
發(fā)明者法布里斯·E·喬甘德-庫洛姆, 羅恩·巴爾齊萊, 羅特姆·西拉, 邁克爾·霍爾茨曼 申請人:桑迪士克公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
图木舒克市| 上虞市| 海晏县| 长丰县| 横峰县| 万源市| 阆中市| 博客| 新乐市| 吉林省| 什邡市| 尉犁县| 海晏县| 胶州市| 乐昌市| 南阳市| 宜兴市| 奎屯市| 莱阳市| 渝中区| 同江市| 沧州市| 美姑县| 澜沧| 喜德县| 昆明市| 会泽县| 芷江| 塘沽区| 高淳县| 洛扎县| 安吉县| 北海市| 舟山市| 绥阳县| 房产| 垦利县| 宜城市| 赤城县| 新野县| 开封县|