專利名稱:控制數(shù)字內(nèi)容的分發(fā)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及控制數(shù)字內(nèi)容的分發(fā)(distn:bution)。
背景技術(shù):
互聯(lián)網(wǎng)給用戶提供了對于數(shù)字內(nèi)容的方便的和無處不在的訪問。因為 互聯(lián)網(wǎng)的作為有力的分發(fā)渠道的潛力,許多消費電子(CE)產(chǎn)品力求直接訪 問互聯(lián)網(wǎng)或與PC平臺——到互聯(lián)網(wǎng)的最主要門戶——進行交互。CE產(chǎn)品 包括,但不限于數(shù)字機頂盒、數(shù)字電視、游戲控制臺、PC和越來越多 的手持設(shè)備,諸如PDA、移動電話和移動存儲及再現(xiàn)設(shè)備,諸如Apple (蘋 果)的1P0d。將互聯(lián)網(wǎng)作為對有版權(quán)的內(nèi)容的分發(fā)介質(zhì)使用,對于保護內(nèi) 容供應(yīng)者的利益造成強有力的挑戰(zhàn)。具體地,要求保證內(nèi)容供應(yīng)者的版權(quán) 和商業(yè)模型。CE平臺越來越多地通過使用裝載有適當軟件的處理器而被 運行。這樣的軟件可包括用于再現(xiàn)(回放)諸如音頻和/或視頻的數(shù)字內(nèi)容的 功能性的主要部分。對回放軟件的控制是支持內(nèi)容擁有者的利益的一種方 式,包括內(nèi)容可被使用的期限和條件。在傳統(tǒng)地許多CE平臺(除了 PC和 PDA以外)慣常是封閉的地方,現(xiàn)今越來越多的平臺至少部分是開放的。 具體地,對于PC平臺,可假設(shè)某些用戶對于提供對內(nèi)容的訪問的硬件和 軟件具有完全的控制,并有大量的時間和資源來攻擊和繞過任何內(nèi)容保護-機制。結(jié)果,內(nèi)容供應(yīng)者必須把給合法用戶的內(nèi)容途經(jīng)有敵意的網(wǎng)絡(luò)遞送 到其中并非所有的用戶或設(shè)備都可信任的團體。
保護有版權(quán)數(shù)據(jù)的一種方式是加密數(shù)據(jù)、或以私有格式編碼數(shù)據(jù),以 使得僅僅通過私有程序才可以使用該內(nèi)容。私有程序包含用來強制實行數(shù) 字權(quán)利管理政策的代碼。如果用戶被允許訪問數(shù)據(jù),則可以允許他/她經(jīng)由 私有程序訪問密鑰,以便解密或譯碼該數(shù)據(jù)。
發(fā)明概要
具有一種控制數(shù)字內(nèi)容的分發(fā)的改進方法將是有利的。為了更好地解 決這一關(guān)注之事,在本發(fā)明的第一方面給出一種方法,其中需要程序(IOO)
4的一個版本(106)以使用內(nèi)容,該方法包括通過以下方式生成程序(100)的多 個版本,每個版本就被合并的代碼段和/或其相關(guān)聯(lián)的位置而言是獨特的,
即,對于每個版本(106):
識別已被授予許可(permission)的內(nèi)容項目的一個或多個數(shù)據(jù)特征; 確定多個分別的代碼段(l 18),每個代碼段使得處理器對要由程序處理
的內(nèi)容執(zhí)行分別的、關(guān)于數(shù)據(jù)特征中至少一個的測試,以便限制未4皮授予
許可的內(nèi)容的處理;
把每個分別的代碼段(l 18)與在程序中的各自的位置相關(guān)聯(lián);以及 把分別的代碼段(118)合并到程序(100)中各自相關(guān)聯(lián)的位置處,以便
獲得程序(100)的版本(106)。
因為內(nèi)容項目僅僅可以通過程序的指定版本(們)而被使用,所以分
發(fā)得以控制。程序的版本的生成可以例如由內(nèi)容供應(yīng)者執(zhí)行。也有可能自
由地分發(fā)帶有對許多內(nèi)容項目的限制的"基本"程序,并通過供應(yīng)對該程
序的適當升級而生成程序的版本。
由于程序的每個版本當被應(yīng)用到尚未被授予許可的內(nèi)容時具有減少
的功能性,所以在以下意義上分發(fā)被控制,即僅僅具有用于特定內(nèi)容項
目的正確版本的特權(quán)用戶才可以使用該內(nèi)容項目達到它全部的潛力。當?shù)?br>
一用戶要把內(nèi)容轉(zhuǎn)發(fā)到無特權(quán)的第二用戶時,該第二用戶將不能完全利用
用內(nèi)容可包括再現(xiàn)內(nèi)容和/或處理內(nèi)容。內(nèi)容可包括音頻和/或視頻數(shù)據(jù)和/ 或交互或非交互多i某體內(nèi)容(例如,HTML, JavaScript)。內(nèi)容還可^皮加密, 在這種情形下,使用內(nèi)容可包括解密內(nèi)容。對內(nèi)容處理的限制可包括只 能看項目的一部分、只能看該項目一次、或只能看有限的持續(xù)時間的限制, 在觀看和/或存儲內(nèi)容項目上的限制,以及在再現(xiàn)的音頻和/或視頻質(zhì)量(例 如,高清晰度(HTDV)相對低清晰度(PAL))上的限制。
如果由代碼段執(zhí)行的測試的結(jié)果對應(yīng)于用戶沒有特權(quán)去使用的內(nèi)容, 則代碼段可以例如通過使用異常中止(abort)指令或用來切換到具有減少 的功能性的模式的指令,從而使得程序執(zhí)行的流程改變。
共享同 一 用戶特定的程序版本的用戶數(shù)量越少,對分發(fā)的控制就越 好。例如,通過向至多1%或10%的用戶提供同一版本,盜版者將分別有 至多1 %或10 %的可能性讓潛在地有興趣從盜版者處購買內(nèi)容的用戶將能 夠使用從盜版者處獲得的內(nèi)容。通過向每個用戶提供獨特的程序版本可達到相當大程度的控制。被合并的代碼段可以按各種可能方式中的一種方式 來選擇,例如,代碼段的內(nèi)容可以是不同的,代碼段可以被插入到程序中 不同的地方,代碼段在程序中的次序可以是不同的,和/或代碼段可以測試 內(nèi)容的不同方面。功能性的減少可包括拒絕內(nèi)容的使用。它也可以包括再 現(xiàn)警告消息、限制可被使用的內(nèi)容的量、和/或?qū)?nèi)容的交互可能性施加限 制。
因為僅僅有特權(quán)的用戶可以使用內(nèi)容,所以內(nèi)容可被自由地分發(fā)到多 個用戶中的每一位。然而,也有可能只向每個用戶提供他被允許使用的內(nèi)容。
因為程序的每個版本就被合并的代碼段和/或其相關(guān)聯(lián)的位置而言是 獨特的,所以程序的非法拷貝可被跟蹤到該程序的獨特版本的擁有者。
本發(fā)明的一個方面包括在對于特定內(nèi)容項目的許可被授予/撤銷后, 生成一個升級,用于對多個代碼段中的至少 一 個代碼段和/或其相關(guān)聯(lián)的位 置施加改變,以避免/使得該特定內(nèi)容項目的處理被限制。
因為升級只改變被合并到程序的 一個特定版本中的代碼段,所以不可 能把該升級成功地施加到程序的另一個版本。這改進了對分發(fā)的控制,因 為當用戶把內(nèi)容和升級轉(zhuǎn)發(fā)到不具有使用該內(nèi)容的特權(quán)的第二用戶時,第 二用戶仍舊不能使用該內(nèi)容,因為升級在被施加到第二用戶的程序版本時 不能正確地起作用。
本發(fā)明的一個方面包括識別已被授予部分許可的特定內(nèi)容項目的一 個或多個數(shù)據(jù)特征;以及
確定多個分別的代碼段(118),以使得該特定內(nèi)容項目的處理按照該部 分許可被限制。
這改進了可被授予的許可的靈活性。
本發(fā)明的一個方面包括在部分許可被改變后,生成一個升級,用于 對多個代碼段中的至少 一個代碼段和/或其相關(guān)聯(lián)的位置施加改變,以使得 對于特定內(nèi)容項目的處理的限制按照許可的改變而被改變。
這改進了改變許可的靈活性。
本發(fā)明的一個方面包括對于程序(100)的版本(106), 將許可授予與該版本相關(guān)聯(lián)的用戶;以及 把該程序的版本只提供給與該版本相關(guān)聯(lián)的用戶。 例如,首先向用戶授予許可,然后把該用戶與程序的版本相關(guān)聯(lián),之后按照許可生成版本,再然后把程序提供給該用戶。使得版本是用戶特定 的,增加了內(nèi)容分發(fā)的可控制性水平。具有同一程序版本的用戶的數(shù)量越 低,盜版者分發(fā)內(nèi)容就越困難。
本發(fā)明的一個方面包括對于程序(100)的版本(106), 將許可授予與該版本相關(guān)聯(lián)的用戶;以及 把已被授予許可的內(nèi)容項目提供給該用戶。
例如,首先向用戶授予許可,然后把用戶與程序的版本相關(guān)聯(lián),之后 按照許可生成版本??梢栽谌魏蜗胍臅r間把內(nèi)容提供給用戶。內(nèi)容項目 即使在沒有給予許可時也可以被提供,因為這些項目可以只在已經(jīng)提供適 當?shù)陌姹净蛏壓蟛疟皇褂谩O蛴脩籼峁┧褳橹玫皆S可的內(nèi)容是方便 的,因為需要所述內(nèi)容以便使用(例如,再現(xiàn))該內(nèi)容。
本發(fā)明的一個方面包括把用于提供附加功能性或用于修補程序中錯 誤的指令包括在升級中。這樣的附加功能性或錯誤修補可以方便地與許可 升級相組合。把這樣的升級組合成單個升級可能是更經(jīng)濟或有效的。
本發(fā)明的一個方面包括將程序的版本安排為具有用于讀取參考值的 輸入;以及
將多個代碼段中的至少 一個代碼段安排成使得處理器比較從內(nèi)容導(dǎo) 出的值與參考值,以作為測試的一部分。
把這樣的導(dǎo)出值用作為數(shù)據(jù)特征是特別有效的。從內(nèi)容導(dǎo)出的值例如 是校驗和、散列值或密碼運算的結(jié)果。參考值例如是對于被允許內(nèi)容的導(dǎo)
容的值。、在這種情^下,如果要處理其導(dǎo)出值等于參考值的一段內(nèi)容:則 會發(fā)現(xiàn)沒有許可??梢杂写罅康拇a段被包括在用戶特定的程序版本中, 每個代碼段把導(dǎo)出值與一個或多個預(yù)定義的值或一個范圍內(nèi)的預(yù)定義的
值進行比較。代碼段對于不同的程序版本可以是不同的,以使得對于相同 的內(nèi)容項目、不同的程序版本,需要不同的參考值。參考值可被存儲在單 獨的文件中或存儲在運行該程序版本的計算機的記錄中。它也可以按要求 經(jīng)由外部服務(wù)器被提供。它也可以被包括在程序代碼中。由于在程序的單 個版本中有多個被合并來的代碼段,所以有可能安排更多的或所有的被合 并的代碼段來使用輸入?yún)⒖贾怠R灿锌赡芫哂卸鄠€輸入,以用于讀取對應(yīng) 于多個代碼段的多個參考值。
本發(fā)明的一個方面包括在用戶被授予對于另外的內(nèi)容項目的許可后,
識別依賴于該另外的內(nèi)容項目的另外的參考值;以及
提供該另外的參考值到輸入,由此使得處理器比較從內(nèi)容導(dǎo)出的值與 該另外的參考值,以作為測試的一部分。
這可以是一種用來提供附加許可的方便的方式。由于在程序的不同版 本中被合并的代碼段可以是不同的,所以該另外的參考值不能被程序的一 個不同的版本使用。另外的參考值可以以包含新參考值的文件的形式、或 以用來改變現(xiàn)有文件或改變記錄的程序的形式被提供。
附圖簡述
現(xiàn)在參照附圖進一步闡明和描述本發(fā)明的這些和其它方面。其中:
圖1是顯示代碼和內(nèi)容的流程的圖;以及 圖2是本發(fā)明的實施例的圖。
實施例詳細il明
公司可能由于諸如電影、音樂、電子圖書那樣的有版權(quán)的數(shù)據(jù)的盜版, 而損失大量的金錢。在盜版時,人們試圖復(fù)制數(shù)據(jù),然后例如經(jīng)由互聯(lián)網(wǎng) 分發(fā)數(shù)據(jù)。
通常的慣例是通過加密有版權(quán)的數(shù)據(jù)而保護它。如果用戶被允許訪問 數(shù)據(jù),則他/她被提供以在解密數(shù)據(jù)時所需要的密鑰。然而,這很難保護不 被盜版。除了加密數(shù)據(jù)的拷貝以外,人們僅必須向非法用戶提供這個密鑰 以便讓他/她訪問有版權(quán)的數(shù)據(jù)。
圖1圖示本發(fā)明的實施例。圖上顯示多個用戶(USR1,USR2,USR3)。 內(nèi)容用方塊116象征性地代表。圖上還顯示了程序100以利用內(nèi)容。具有 標號1-9的方塊被象征性地使用來代表程序中的指令或代碼塊。程序100 例如可包括用于使得處理器解密、再現(xiàn)和/或處理內(nèi)容116的指令。箭頭 108指示多個不同的版本102、 104、 106是從程序IOO得出的。字母a-d 指示被合并到原始程序100中的代碼段??赡鼙仨殞颂枮?-9的原始程 序塊做出某些修改,以便容納插入的代碼段。箭頭IIO和114指示程序和 內(nèi)容如何被提供給用戶。給每個用戶分派特權(quán),指明用戶被允許使用的內(nèi) 容116的項目。例如,內(nèi)容供應(yīng)者可以保持用戶的數(shù)據(jù)庫,其包含對于每 個用戶的、用戶可以訪問的標題的列表和/或用戶不可以訪問的標題的列
8表。
對于用戶112,內(nèi)容供應(yīng)者通過把多個代碼段合并在程序中、連同當
100的用戶特定的版本106。當程序被應(yīng)用于允許用戶使用的內(nèi)容時,則 該代碼段不阻止內(nèi)容的完全使用。該代碼段可以使用內(nèi)容的數(shù)據(jù)來決定該 內(nèi)容是否要被使用。該代碼段也可以訪問許可的數(shù)據(jù)庫,以便決定這一點。 該多個代碼段被選擇成使得不同的用戶得到程序的不同版本(102, 104, 106)。例如,每個用戶被提供以程序的獨特的版本。例如,不同的代碼段 可被插入到不同的版本(在圖上被例示為在版本102和104中的a和c),或 代碼段被插入的位置可以是不同的(通過相比于版本102中的a的、版本 106中a的不同位置118來舉例說明)。由于用戶112僅僅被提供以程序的
內(nèi)容。內(nèi)容供應(yīng)者可以把所有的內(nèi)容遞送給所有的用戶,或可以向每個用 戶只遞送允許他訪問的內(nèi)容。
在一個實施例中,當用戶的許可改變時把程序升級提供給該用戶。例 如,代碼段118可以由不同的代碼段e取代,以允許訪問內(nèi)容的新標題。 軟件升級具體地改變被插入在相關(guān)用戶的程序版本106中的代碼段。所以, 該軟件升級可能不能被使用來藉助于程序的另一個版本102、 104而允許 訪問內(nèi)容。如果每個用戶被提供以獨特的程序版本,則尤其如此。
在一個實施例中,許多代碼段被插入到被使用來訪問數(shù)據(jù)的軟件程序 中。插入的代碼段具有依賴于不同數(shù)據(jù)特征的值的功能性,所述值諸如象 校驗和或散列值。更精確地,這樣的代碼段強制軟件程序?qū)τ跀?shù)據(jù)特征的 某些值正確地工作,而對于其它值不正確地工作,其中不正確地工作意味 著程序或者被異常中止,或者以減少的功能性或以從盜版者的觀點看來 不合需要的功能性運行。比喻性地,代碼段的插入可被看作為在鐵路網(wǎng)絡(luò) 中插入許多轉(zhuǎn)轍器(switch),其中正確的程序執(zhí)行對應(yīng)于在這個網(wǎng)絡(luò)中 的特定進路(route)。轉(zhuǎn)轍器的位置取決于特征的值,以及轉(zhuǎn)轍器的僅僅 一個設(shè)置值導(dǎo)致正確的進路。對于每個用戶,代碼段的插入以獨特的方式 完成。這并不意味著,每個個別的代碼段也是獨特的。只有代碼段和它們 被插入的位置的集合才是對每個用戶獨特的?,F(xiàn)在,如果用戶想要訪問數(shù) 據(jù),不管數(shù)據(jù)是否被加密,那么這只能在數(shù)據(jù)的特征意指插入的代碼段 導(dǎo)致程序的正確功能性的情況下,即,如果鐵路網(wǎng)絡(luò)的轉(zhuǎn)轍器被適當?shù)卦O(shè)置的話,由程序來完成。
在一個實施例中,用戶還被供應(yīng)以程序升級,其校正對于特定的數(shù)據(jù) 組或數(shù)據(jù)流導(dǎo)致程序的不正確工作的所有代碼段。程序升級可被看作為對 于給定的數(shù)據(jù)、在軟件程序中獲得正確的控制流所需要的密鑰。這樣,用 戶被準予訪問數(shù)據(jù)庫或數(shù)據(jù)流,而不必向用戶供應(yīng)程序的完整的版本。
這個方法在以下的意義中保護不被盜版。假設(shè)盜版者想要復(fù)制數(shù)據(jù),
并想要把它非法地賣給用戶A。由于對于用戶A,是與用于盜版者的不同 的其它代碼段被插入到用于訪問數(shù)據(jù)的程序中,所以盜版者的程序升級不 能被用戶A使用來訪問復(fù)制的數(shù)據(jù)。盜版者可以給予用戶A訪問該數(shù)據(jù)的 機會的唯一方式是通過給用戶A也提供對于訪問該數(shù)據(jù)所需要的、他的 完整的軟件程序拷貝。在許多情形下,這對于用戶A從盜版者處購買非法 的拷貝將是足夠的障礙。如果不是這種情形,則被插入到盜版者的軟件程 序的拷貝中的獨特代碼段組可被使用來跟蹤盜版者。這意味著,可以采取 適當?shù)拇胧?,諸如拒絕他訪問將來的數(shù)據(jù)。如果代碼段以對于每個用戶獨 特的方式被插入到程序中,則跟蹤可以非常有效地完成。因此,從軟件程 序的拷貝,可以判定誰分發(fā)了它,即,誰是盜版者。除了插入的代碼段以 外,也可以使用其它的個性化技術(shù)來追溯分發(fā)了非法拷貝的用戶。
在一個實施例中,依賴于作為對程序的輸入而給出的數(shù)據(jù)而進行程序 的控制流程。而且,這種依賴性對于每個用戶是不同的,即,對于不同的 用戶,相同的數(shù)據(jù)導(dǎo)致程序的不同功能性(控制流程)。為了使用程序,合 法地獲取的數(shù)據(jù)可能必須伴隨以軟件升級,它以這樣的一種方式改變了依 賴性,即為那個數(shù)據(jù)獲得程序的正確的功能性(控制流程)。
下面描述一個相對較簡單的實施例。假設(shè)用戶A具有用于觀看有版權(quán) 的電影的程序P,以及假設(shè)該用戶想要觀看電影H。考慮數(shù)據(jù)特征'校驗和, 使數(shù)據(jù)流的頭n個比特的全部k比特值相加。大量的if語句(條件語句) 可被插入到程序P中。每個if語句由'if checksum-v then abort else skip (如 果校驗和-v,則異常中止,否則跳過),給出,其中值v是對于每個if語句 而被隨機地選擇的。if語句和它們被放置的地方的集合對于每個用戶是不 同的。所述集合被選擇為足夠大,以使得對于每個可能的校驗和值,在程 序中有許多if語句。
如果用戶A現(xiàn)在想要觀看具有校驗和x的電影H,那么這是不可能的, 因為程序P將在if語句'if checksum=x then abort else skip (如果校驗和二x,
10則異常中止否則跳過),時異常中止,所以,內(nèi)容供應(yīng)者給用戶A提供程 序升級,該程序升級把在'校驗和-X,時異常中止的所有if語句替換成在某
個其它校驗和值異常中止的if語句。在安裝該程序升級后,用戶A可以觀 看電影H。然而,另一個用戶B不能使用該程序升級來觀看電影H,因為 用戶B具有的軟件程序帶有不同的if語句或帶有在代碼中處于不同位置的 if語句。而且,通過檢查if語句,內(nèi)容供應(yīng)者可以識別軟件程序的擁有者, 這樣,如果用戶A向用戶B提供他的全部的軟件程序P的話,則用戶A 可被追溯。
這個相對較簡單的實施例在這里主要是為了解釋的目的而描述的。實 際上,插入的代碼段可以是不太統(tǒng)一的、更精巧的,并被混淆(obfuscate ) 進入程序中。數(shù)據(jù)的許多不同的特征和它們的組合(經(jīng)由布爾表達式)可以 同時被使用。而且,更好的可以是讓程序以減少的或不正確的功能性運行, 而不是異常中止程序。這可以使得盜版者更難以去除依賴性,以及可以使 該方法對于無意中試圖使用非法分發(fā)的數(shù)據(jù)的用戶更加可接受?;煜夹g(shù) 可被使用來把插入的代碼段隱藏在軟件程序中。還應(yīng)當指出,被給予用戶 的程序升級也可以在拷貝保護機制中插入新的代碼段、去除代碼段、修補 錯誤、或修理中斷(break)。校驗和的示例性替換例是解密密鑰。代碼段 可以對于不同的用戶不同地操控解密密鑰,以使得不同的用戶需要不同的 解密密鑰來解密相同的內(nèi)容項目。密鑰的操控的例子是用預(yù)定義的值執(zhí)行 XOR (異或)運算。該預(yù)定義的值可以例如通過使用偽隨機算法對于不同 的用戶來不同地選擇。
圖2圖示本發(fā)明的實施例。圖上顯示具有處理器222和存儲器221的 系統(tǒng),例如是服務(wù)器。存儲器221包含用于使得處理器執(zhí)行所闡述的方法 的指令。特別是,它包含用于生成程序的多個版本的指令202。在這些指 令202當中是指令204-210。指令204用于識別已被授予許可的內(nèi)容項目 的一個或多個數(shù)據(jù)特征。這些內(nèi)容項目也可以通過識別未被授予許可的內(nèi) 容項目而被識別。存儲器221還存儲指令206,用以確定用于引起處理 器執(zhí)行有關(guān)數(shù)據(jù)特征的測試的多個代碼段;和指令208,用于把每個分別 的代碼段與在程序中的各自位置相關(guān)聯(lián)。存儲器221還存儲指令210,用 于把該分別的代碼段合并到程序中各自相關(guān)聯(lián)的位置處。應(yīng)理解,塊 202-210中的一個或多個例如可以在處理器222的控制下神皮實施為硬件部 件或分開的設(shè)備或服務(wù)器。該系統(tǒng)還可訪問大容量存儲介質(zhì)226,以便訪問數(shù)字內(nèi)容。圖上還顯示了通信端口 225,用于把程序的版本和內(nèi)容經(jīng)由 網(wǎng)絡(luò)(諸如TCP/IP或Wifi網(wǎng)絡(luò))或其它連接提供給用戶。交互裝置224 可包括計算機鼠標、鍵盤和/或監(jiān)視器,以便允許用戶操作該系統(tǒng)。這樣的 大容量介質(zhì)226、通信端口 225和交互裝置224在本領(lǐng)域是已知的。
以上主要對于每個用戶按照用戶許可獲得用戶特定的程序版本的情 形描述了方法。許可也可以直接與程序版本相關(guān)聯(lián)。原則上,可向一組用 戶提供相同的版本。此外,可以向單個用戶提供幾個版本。對于內(nèi)容項目
也有可能,許可不僅僅頭見定簡單的是/否,而且還更詳細地頭見定對于內(nèi) 容項目可以完成什么。例如,它可以規(guī)定,項目可以被使用達預(yù)定的持續(xù) 時間,可以被再現(xiàn)預(yù)定的次數(shù),可以僅僅對于內(nèi)容項目的預(yù)定部分進行再 現(xiàn),或僅僅可以以有限的質(zhì)量或以低分辨率被再現(xiàn)。代碼段可被使用來強 制實行由許可規(guī)定的這些限制。這些許可的改變可以通過提供適當?shù)纳?而被實現(xiàn),所述升級用于對多個代碼段中的至少一個代碼段和Z或其相關(guān)聯(lián) 的位置施加改變。對代碼段的改變造成對于特定內(nèi)容項目的處理的限制按 照許可的改變而^C改變。
在一個實施例中,被合并到程序中的至少一個代碼段被安排成使得處 理器把從內(nèi)容導(dǎo)出的值與參考值進行比較,以作為測試的一部分。參考值 可以被硬編碼在代碼段中,或者它可以被存儲在單獨的文件中。參考值可 以是校驗和,或例如是散列碼。為了作出獨特的程序版本,可以對于不同 的用戶不同地計算校驗和。這樣,每個用戶將需要一個具有不同參考值的 不同的文件。在用戶被授予對于另一個內(nèi)容項目的許可后,識別依賴于該 另一個內(nèi)容項目的另一個參考值。例如,對于那個內(nèi)容項目計算校驗和值。 代碼段被安排成使得處理器把從內(nèi)容導(dǎo)出的值與該另一個參考值進行比 較,以作為測試的一部分。例如,文件被提供給用戶,以便通過用另一個 參考值替換現(xiàn)有的參考值、或通過把另一個參考值加到現(xiàn)有的參考值而替 換或擴展現(xiàn)有的文件。由于代碼段使用文件中的參考值,所以用新參考值 替換或擴展文件將足以安排代碼段在測試中使用另一個參考值。
應(yīng)意識到,本發(fā)明還擴展到計算機程序,特別是在載體上或載體中的、 適合于把本發(fā)明付諸實踐的計算機程序。所述程序可以具有源代碼、目標 代碼、在源代碼與目標碼中間的代碼的形式——諸如部分匯編的形式,或 者具有適合于在按照本發(fā)明的方法的實現(xiàn)中使用的任何其它形式。所述載體可以是能夠承栽程序的任何實體或設(shè)備。例如,栽體可包括諸如ROM 的存儲介質(zhì),例如CDROM或半導(dǎo)體ROM;或磁記錄介質(zhì),例如軟盤或 硬盤。另外,載體可以是可傳輸載體,諸如電信號或光信號,其可以經(jīng)由 電纜或光纜或通過無線電或其它手段被輸送。當程序被以這樣的信號體現(xiàn) 時,所述栽體可以由這樣的線纜或者其它設(shè)備或裝置來構(gòu)成。替換地,所 迷載體可以是嵌入程序的集成電路,該集成電路適合于執(zhí)行相關(guān)的方法、 或在執(zhí)行相關(guān)的方法時使用。
應(yīng)當指出,上述的實施例是舉例說明而不是限制本發(fā)明,本領(lǐng)域技術(shù) 人員將能夠設(shè)計出許多替換的實施例,而不背離所附權(quán)利要求的范圍。在 權(quán)利要求中,被放置在括號之間的任何參考標號不應(yīng)當被解釋為限制權(quán)利
不同的單元或步驟的存在。在單元前面的冠詞"a"或"an"("—"或"一 個,,)并不排除多個這樣的單元的存在。本發(fā)明可以藉助于包括幾個不同 的單元的硬件和藉助于被適當編程的計算機而被實施。在枚舉幾個裝置的 設(shè)備權(quán)利要求中,這些裝置中的若干個可以由同一個硬件項目來體現(xiàn)。某 些措施在互相不同的從屬權(quán)利要求中被陳述的純粹事實并不表示這些措 施的組合不能被使用來獲益。
權(quán)利要求
1. 一種控制數(shù)字內(nèi)容(116)的分發(fā)的方法,其中需要程序(100)的一個版本(106)以使用內(nèi)容,,該方法包括通過以下方式生成程序(100)的多個版本,每個版本相對于被合并的代碼段和/或其相關(guān)聯(lián)的位置是獨特的,即,對于每個版本(106)識別已被授予許可的內(nèi)容項目的一個或多個數(shù)據(jù)特征;確定多個分別的代碼段(118),每個代碼段使得處理器對要由程序處理的內(nèi)容執(zhí)行分別的、關(guān)于數(shù)據(jù)特征中至少一個的測試,以便限制未被授予許可的內(nèi)容的處理;把每個分別的代碼段(118)與在程序中的各自位置相關(guān)聯(lián);以及把分別的代碼段(118)合并到程序(100)中各自的相關(guān)聯(lián)的位置處,以便獲得程序(100)的版本(106)。
2. 按照權(quán)利要求1的方法,還包括在對于另外的內(nèi)容項目的許可被 授予后,生成一個升級,用于對多個代碼段中的至少一個代碼段和/或其相 關(guān)聯(lián)的位置施加改變,以避免該另外的內(nèi)容項目的處理-故限制。
3. 按照權(quán)利要求1的方法,還包括在對于特定內(nèi)容項目的許可被撤 銷后,生成一個升級,用于對多個代碼段中的至少一個代碼段和/或其相關(guān) 聯(lián)的位置施加改變,以使得該特定內(nèi)容項目的處理被限制。
4. 按照權(quán)利要求1的方法,還包括識別已被授予部分許可的特定內(nèi)容項目的一個或多個數(shù)據(jù)特征;以及 確定多個分別的代碼段(118),以使得該特定內(nèi)容項目的處理按照部分 許可被限制。
5. 按照權(quán)利要求4的方法,還包括在部分許可被改變后,生成一個 升級,用于對多個代碼段中的至少一個代碼段和/或其相關(guān)聯(lián)的位置施加改 變,以使得對于該特定內(nèi)容項目的處理的限制按照許可的改變而被改變。
6. 按照權(quán)利要求l的方法,還包括對于程序(100)的版本(106), 將許可授予與該版本相關(guān)聯(lián)的用戶;以及 把該程序的版本只提供給與該版本相關(guān)聯(lián)的用戶。
7. 按照權(quán)利要求l的方法,還包括對于程序(100)的版本(106), 將許可授予與該版本相關(guān)聯(lián)的用戶;以及 把已被授予許可的內(nèi)容項目提供給該用戶。
8. 按照權(quán)利要求2、 3或5的方法,還包括把用于提供附加功能性或用于修補程序中的錯誤的指令包括在升級中。
9. 按照權(quán)利要求1的方法,還包括 將程序版本安排為具有用于讀取參考值的輸入;以及將多個代碼段中的至少 一 個代碼段安排成使得處理器對從內(nèi)容導(dǎo)出 的值與參考值進行比較,以作為測試的一部分。
10. 按照權(quán)利要求9的方法,還包括在用戶被授予對于另外的內(nèi)容 項目的許可后,識別依賴于該另外的內(nèi)容項目的另外的參考值;以及 提供該另外的參考值到輸入,由此使得處理器對從內(nèi)容導(dǎo)出的值與該 另外的參考值進行比較,以作為測試的一部分。
11. 一種用于控制數(shù)字內(nèi)容(116)的分發(fā)的系統(tǒng),其中需要程序(100) 的一個版本(106)以使用內(nèi)容,該系統(tǒng)包括用于生成程序(100)的多個版本的 裝置(202),每個版本相對于被合并的代碼段和/或其相關(guān)聯(lián)的位置是獨特 的,該用于生成的裝置包括用于識別已被授予許可的內(nèi)容項目的一個或多個數(shù)據(jù)特征的裝置 (204);用于確定多個分別的代碼段(118)的裝置(206),每個代碼段使得處理 器對要由程序處理的內(nèi)容執(zhí)行分別的、關(guān)于數(shù)據(jù)特征中至少 一個的測試, 以便限制未被授予許可的內(nèi)容的處理;(208);以及用于把分別的代碼段(U8)合并到程序(100)中各自的相關(guān)聯(lián)的位置處 以便獲得程序(100)的版本(106)的裝置(210)。
12. 為使用內(nèi)容而需要的程序(100)的版本(106),該版本在程序(IOO) 的多個版本當中相對于被合并的代碼段和/或其相關(guān)聯(lián)的位置是獨特的,該 版本包括被合并到程序(100)中各自相關(guān)聯(lián)的位置處的多個分別的代碼段 (118),每個代碼段使得處理器對要由程序處理的內(nèi)容執(zhí)行分別的、關(guān)于各 個數(shù)據(jù)特征的測試,以便限制未被授予許可的內(nèi)容的處理。
全文摘要
提出了一種控制數(shù)字內(nèi)容(116)的分發(fā)的方法。需要程序(100)的一個版本(106)以使用內(nèi)容。生成程序(100)的多個版本,每個版本就被合并的代碼段和/或其相關(guān)聯(lián)的位置而言是唯一的。多個分別的代碼段(118)每個都使得處理器對要由程序處理的內(nèi)容執(zhí)行分別的、關(guān)于數(shù)據(jù)特征的測試,以便限制未被授予許可的內(nèi)容的處理。各個代碼段(118)被合并到程序(100)中的相應(yīng)的位置處,以便獲得程序(100)的版本(106)。
文檔編號G06F21/12GK101506817SQ200780031268
公開日2009年8月12日 申請日期2007年8月16日 優(yōu)先權(quán)日2006年8月21日
發(fā)明者P·M·H·M·A·戈里森, W·P·A·J·米基爾斯 申請人:皇家飛利浦電子股份有限公司