專利名稱:軟件按次使用收費(fèi)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及保護(hù)計(jì)算機(jī)軟件免遭非法拷貝,更具體地說,本發(fā)明涉及一種按次使用收費(fèi)的保護(hù)技術(shù),在這種技術(shù)中,用戶為了使用被保護(hù)的軟件,必須撥一次電話。
軟件剽竊,即商品化計(jì)算機(jī)程序的非法拷貝,是個人計(jì)算機(jī)工業(yè)中存在的一個主要問題。軟件開發(fā)人員通常用三種一般的技術(shù)來防止他們的軟件被非法拷貝。第一種使用了硬件“鑰匙”,這些鑰匙是一些裝在計(jì)算機(jī)的打印機(jī)端口上的裝置。在啟動之前,軟件企圖查詢鑰匙,若沒有響應(yīng)或不正確的響應(yīng),該軟件將不啟動。第二種技術(shù)使用了鑰匙盤,這種方法類似硬件鑰匙,區(qū)別在于這里的鑰匙是一個必須插在計(jì)算機(jī)的磁盤驅(qū)動器中的軟盤片。第三種技術(shù)是出售防拷貝軟件,在這種技術(shù)中,開發(fā)人員以這樣一個形式把程序放在軟盤上,使得對該軟盤的直接拷貝將產(chǎn)生軟件的一個不正確的拷貝。
上述的所有技術(shù)都存在某些問題,這些技術(shù)都要求開發(fā)人員把剽竊保護(hù)功能加入其程序中,這樣做并不保險(xiǎn),因?yàn)橐坏┏霈F(xiàn)了一個被破除保護(hù)功能的拷貝,其保護(hù)功能也就失去了作用。另外,這樣做會使軟件的合法用戶感到不方便。一種理想的保護(hù)方案應(yīng)該使人們不可能非法使用商品化的軟件,而不會給軟件的開發(fā)人員和用戶帶來任何不方便。
一般來說,本發(fā)明提供了一種近乎理想的技術(shù),它是基于這樣一種的軟件銷售方式的用戶必須撥一個電話號碼才能使軟件開始工作。如果所撥的電話號碼是按次服務(wù)收費(fèi)的,例如某個“900”號碼,則電話保證用戶為軟件的使用支付費(fèi)用。
更具體來說,加密程序把任一現(xiàn)有的程序轉(zhuǎn)換為所謂被加密軟件的一種新程序。被加密軟件是一種包含按被編碼形式出現(xiàn)的原始軟件的程序。在構(gòu)造加密軟件時,加密程序?qū)υ汲绦蜻M(jìn)行壓縮和編碼,壓縮消除了大部分冗余,使代碼破譯更加困難,并且減少了加密軟件的長度,其結(jié)果程序包含了某種完全不可讀形式的原始軟件。
這樣,開發(fā)人員就可以隨意散發(fā)這種被加密軟件了。為了使用這種軟件,用戶撥一個電話號碼,通過這個電話,用戶得到一個號碼,被加密軟件再用這個號碼對被加密的計(jì)算機(jī)程序解碼。這個電話號碼可以是按次服務(wù)收費(fèi)的號碼,這樣,撥電話就能保證用戶支付使用軟件的費(fèi)用。
可以有幾種修改,例如,被加密軟件可以通過一個調(diào)制解調(diào)器來控制撥號,并且自動執(zhí)行代碼處置功能。一次電話可以對軟件中的計(jì)數(shù)器增1,這樣就能允許多次使用。免費(fèi)的電話服務(wù),例如某個“800”號碼,可以方便提供,使?jié)撛诘挠脩裟芟卵b被加密軟件。還可以方便地提供其他的服務(wù)。
對軟件開發(fā)人員來說,本發(fā)明提供了一種附加的銷售渠道,這種銷售渠道幾乎不需要什么費(fèi)用軟件中甚至不必要加入最簡單的加密程序。對于用戶來說,沒有備份的困難和失去硬件或軟盤鑰匙的危險(xiǎn)。執(zhí)行軟件所需的一切就是打一個電話。用戶還可以選擇在花費(fèi)一筆可觀的資金購買軟件之前,先徹底檢驗(yàn)一下這個軟件。
圖1是實(shí)現(xiàn)本發(fā)明系統(tǒng)的一個簡圖。
圖2是一個簡圖,說明被加密軟件的軟件注冊和生成。
圖3是使用軟件按次收費(fèi)確認(rèn)技術(shù)的第一個實(shí)施例簡圖。
圖4是使用軟件按次收費(fèi)確認(rèn)技術(shù)的第二個實(shí)施例簡圖,增加了由確認(rèn)系統(tǒng)產(chǎn)生的隨機(jī)數(shù)。
圖5是使用軟件按次收費(fèi)確認(rèn)技術(shù)的第三個實(shí)施例簡圖,增加了對被產(chǎn)生隨機(jī)數(shù)的加密。
本發(fā)明在描述中引用了各種數(shù)據(jù)編碼和解碼技術(shù),因此,先簡單介紹基本的密碼技術(shù)。
密碼系統(tǒng)變換數(shù)據(jù)通常使用了兩種基本元素密碼算法和密鑰。密碼算法包括對數(shù)據(jù)編碼和譯碼的子程序,這些編碼和譯碼子程序通常是一致的,也可以包括按相反次序執(zhí)行的相同步驟。密鑰是由用戶選擇的,由數(shù)字或字符的序列組成,被密碼算法用來對數(shù)據(jù)進(jìn)行編碼和譯碼。在下面詳細(xì)描述中,將討論兩類密碼系統(tǒng)。
第一類系統(tǒng)是單密鑰系統(tǒng),在這類系統(tǒng)中,單個密鑰同時用于數(shù)據(jù)的編碼和譯碼。因此,為了確保安全,這個密鑰必須保密。在這里的描述中,引用了數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)單密鑰技術(shù),這是一種已經(jīng)被國家標(biāo)準(zhǔn)局接受為標(biāo)準(zhǔn)的數(shù)據(jù)加密技術(shù),并且對于掌握密碼技術(shù)的人來說都是很熟悉的。
另一類系統(tǒng)是一種公用密鑰系統(tǒng),在這類系統(tǒng)中,在數(shù)據(jù)編碼和譯碼中不是使用同一個密鑰,而是使用兩個密鑰,其中一個用來對數(shù)據(jù)編碼,而另一個用來對數(shù)據(jù)譯碼。通常一個密鑰被公開,而另一個則為專用的。如果公用密鑰用來對數(shù)據(jù)編碼,則專用密鑰用來對數(shù)據(jù)譯碼,或反之。這類系統(tǒng)重要的一點(diǎn)是由公用密鑰推斷出專用密鑰是不可能的。公用密鑰密碼技術(shù)對于掌握密碼板技術(shù)的人來說也是熟悉的。
這里所討論的數(shù)據(jù)加密和解密技術(shù)只是用于說明問題,因此,也可以用其他的技術(shù)來替代而不脫離本發(fā)明的范圍和原理。
圖1說明了根據(jù)本發(fā)明實(shí)現(xiàn)的一種可能的系統(tǒng)。軟件確認(rèn)系統(tǒng)100包括中央處理器102、存貯器110和調(diào)制解調(diào)器104、中央處理器102與調(diào)制解調(diào)器104和存貯器110連接。存貯器110包括實(shí)現(xiàn)軟件注冊處理過程期間所需功能的軟件注冊程序代碼111、實(shí)現(xiàn)軟件確認(rèn)過程中所需功能的軟件確認(rèn)程序代碼112,以及用于存貯軟件標(biāo)識信息和有關(guān)密鑰的存儲區(qū)域113。調(diào)制解調(diào)器104用于在軟件開發(fā)人員系統(tǒng)120和軟件用戶系統(tǒng)140之間傳送和接收數(shù)據(jù)。
軟件開發(fā)人員系統(tǒng)120包括中央處理器124,調(diào)制解調(diào)器122和存儲器130。中央處理器124與調(diào)制解調(diào)器122和存儲器130連接。存儲器130包括原始軟件131、加密程序132和被生成后的被加密軟件133。原始軟件131是開發(fā)人員希望注冊和保護(hù)的軟件。加密程序132在被加密軟件133的軟件注冊和生成期間與軟件確認(rèn)系統(tǒng)100相互作用和通信。被加密軟件133包括原始軟件131的一個被加密版本和用戶確認(rèn)軟件。這個用戶確認(rèn)軟件是程序代碼,將在軟件確認(rèn)期間與軟件確認(rèn)系統(tǒng)100相互作用和通信。這些功能將在后面結(jié)合圖2到圖5進(jìn)行描述。
軟件確認(rèn)系統(tǒng)100和軟件開發(fā)人員系統(tǒng)120通過調(diào)制解調(diào)器102和122在通信網(wǎng)絡(luò)160上相互通信。在一個實(shí)施例中,通信網(wǎng)絡(luò)160是一條公用電話線。
用戶系統(tǒng)140包括中央處理器144、調(diào)制解調(diào)器142和存儲器150,中央處理器連接調(diào)制解調(diào)器142和存儲器150。存儲器150包括被加密軟件151的一個拷貝,其中包括上面已經(jīng)討論過的被加密原始軟件和用戶確認(rèn)軟件。這里的被加密軟件151是由軟件開發(fā)人員系統(tǒng)120生成的被加密軟件133的一個拷貝。
確認(rèn)系統(tǒng)100和用戶系統(tǒng)140通過調(diào)制解調(diào)器104和142在通信網(wǎng)絡(luò)170上相互通信。在一個實(shí)施例中,這個通信網(wǎng)絡(luò)170是一條公用電話線,而這種通信是由用戶系統(tǒng)140撥一個每次通話服務(wù)收費(fèi)(如撥一個“900”號碼的費(fèi)用)的電話號碼來啟動的。這種通話保證用戶為每次使用軟件付費(fèi)。
被加密軟件133的生成和具有軟件確認(rèn)系統(tǒng)的軟件注冊是結(jié)合圖2描述的。虛線202表示把軟件開發(fā)人員系統(tǒng)120和軟件確認(rèn)系統(tǒng)100分開。在線202上方所示的部分圖表示通過軟件確認(rèn)系統(tǒng)100執(zhí)行軟件注冊代碼111所實(shí)現(xiàn)的功能,而線202下方的部分圖則表示由軟件開發(fā)人員系統(tǒng)120執(zhí)行加密程序132實(shí)現(xiàn)的功能。在這兩個系統(tǒng)之間傳送的數(shù)據(jù)必須經(jīng)過通信網(wǎng)絡(luò)160。通信網(wǎng)絡(luò)160上的數(shù)據(jù)傳送在圖2中由穿過虛線202的線表示。
軟件開發(fā)者系統(tǒng)的第一步210是收集軟件標(biāo)識信息,這種信息包括軟件名、軟件開發(fā)者的姓名、軟件開發(fā)者的地址和任何其他所需的信息。這些信息經(jīng)過網(wǎng)絡(luò)160被送到軟件確認(rèn)系統(tǒng)100。在204步中,軟件確認(rèn)系統(tǒng)100將把軟件標(biāo)識信息存在存儲器113中,并且將為軟件選擇下一個標(biāo)識符(ID)號。這個ID號是該軟件的任一唯一性標(biāo)識符。然后確認(rèn)系統(tǒng)100產(chǎn)生一個隨機(jī)公用/專用密鑰對,并且在206步中產(chǎn)生一個隨機(jī)數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)密鑰。
在208步中被產(chǎn)生的隨機(jī)專用密鑰和隨機(jī)DES密鑰同軟件ID號一塊被存放在軟件注冊系統(tǒng)存儲器113中?,F(xiàn)在回到軟件開發(fā)者系統(tǒng)120上,原始軟件220在218步中被轉(zhuǎn)換為一個封裝文件,用來封裝原始軟件的方法可以是任何適當(dāng)?shù)臄?shù)據(jù)壓縮技術(shù),例如哈夫曼(Huffman)編碼技術(shù),這是一種公知的技術(shù)。這種壓縮技術(shù)消除了軟件中的大部分冗余,使得代碼難以被破譯,并且縮短了被加密軟件的長度。接著在212步用由軟件確認(rèn)系統(tǒng)產(chǎn)生的DES密鑰對來自該封裝文件的文件頭進(jìn)行加密。只需對文件頭進(jìn)行加密是因?yàn)闆]有文件頭就不能對被封裝的文件解除封裝。因此,只對文件頭加密就能保證得到足夠的保護(hù)。由軟件開發(fā)者系統(tǒng)120產(chǎn)生的被封裝文件體和DES被加密文件頭、以及由軟件確認(rèn)系統(tǒng)100產(chǎn)生的公用密鑰和軟件ID在214步中接著被用來建立被加密軟件。然后,被加密軟件216就可以被出售給用戶,按照本發(fā)明的要求使用。為了讓用戶使用被加密軟件,必須根據(jù)本發(fā)明把它轉(zhuǎn)換為一個可執(zhí)行模塊。
每次使用收費(fèi)確認(rèn)技術(shù)的第一個實(shí)施例將結(jié)合圖3加以描述。虛線302表示在軟件確認(rèn)系統(tǒng)100和用戶系統(tǒng)140之間的一條分界線。虛線302上方部分的圖表示由軟件確認(rèn)系統(tǒng)100執(zhí)行軟件確認(rèn)代碼112所實(shí)現(xiàn)的功能,而其下部分的圖則表示由用戶系統(tǒng)140執(zhí)行被加密軟件151的用戶確認(rèn)軟件部分所實(shí)現(xiàn)的功能。在每次使用收費(fèi)確認(rèn)系統(tǒng)100和用戶系統(tǒng)140之間傳送的任何數(shù)據(jù)由穿過虛線302的線表示,并且必須在通信網(wǎng)絡(luò)170上傳輸。當(dāng)數(shù)據(jù)在通信網(wǎng)絡(luò)170上傳送時,最容易受到未授權(quán)用戶的越權(quán)存取。
第一步316把軟件的ID號送到確認(rèn)系統(tǒng)100上,這是在被加密軟件的生成期間(結(jié)合圖2描述)分配給該軟件的唯一性ID號。在308步中,確認(rèn)系統(tǒng)100將用這個ID號把對該軟件的使用登記在軟件開發(fā)者的帳戶上。如上所述,在本發(fā)明的一個實(shí)施例中,用戶必須撥一個每次通話服務(wù)收費(fèi)的電話號碼,以便初始化通信網(wǎng)絡(luò)170上的通信聯(lián)系。因此,該ID號允許確認(rèn)系統(tǒng)100在被確認(rèn)軟件的開發(fā)人員的帳戶上登記(入貸方)。該ID號還在304步中被用來查找專用密鑰,以及在306步中被用來查找DES密鑰,這兩個密鑰都是在被加密軟件的注冊和生成期間被產(chǎn)生并存入確認(rèn)系統(tǒng)存儲器113中的。
用戶系統(tǒng)在320步中產(chǎn)生一個隨機(jī)數(shù)(R1)并且在318步中用公用密鑰對該隨機(jī)數(shù)加密。該隨機(jī)數(shù)被加密,使得當(dāng)它通過通信網(wǎng)絡(luò)170被傳送到確認(rèn)系統(tǒng)100時,企圖破除保護(hù)方案的人將無法解釋該隨機(jī)數(shù)。確認(rèn)系統(tǒng)100將使用在304步中得到的專用密鑰對在310步中由被加密軟件產(chǎn)生的隨機(jī)數(shù)解密。接著,在312步中,被解密的隨機(jī)數(shù)(R1)和DES密鑰被執(zhí)行異或運(yùn)算,其結(jié)果是被由用戶系統(tǒng)產(chǎn)生的隨機(jī)數(shù)遮蔽的DES密鑰。然后,這個被遮蔽的DES密鑰在314步中用專用密鑰加密,并且通過通信網(wǎng)絡(luò)170被送到用戶系統(tǒng)140中。用戶系統(tǒng)將在322步中用公用密鑰對被遮蔽的DES密鑰解密,其結(jié)果是由隨機(jī)數(shù)(R1)遮蔽的DES密鑰。接著,這個被遮蔽的DES密鑰在324步中通過和隨機(jī)數(shù)(R1)的異或而被解除遮蔽,其結(jié)果是一個不遮蔽和不加密的DES密鑰,是被用來加密原始軟件的同一個DES密鑰。接著,在326步中,該DES密鑰被用來對被加密的文件頭解密,其結(jié)果是一個不加密的文件頭,在328步中被用來對被封裝的文件體解除封裝,其結(jié)果是一個軟件可執(zhí)行文件,然后在用戶系統(tǒng)上的330步中被執(zhí)行。
正如上面所討論的,這種確認(rèn)處理的最大弱點(diǎn)就在于數(shù)據(jù)是由通信網(wǎng)絡(luò)170傳送的,因?yàn)檎窃谶@些地方,未授權(quán)用戶最容易企圖破譯并記錄正在被傳送的數(shù)據(jù)。破除被加密軟件保護(hù)的一種方法是替換被加密軟件151中用戶確認(rèn)代碼的隨機(jī)數(shù)生成部分,使之總是產(chǎn)生相同的隨機(jī)數(shù),然后,用戶撥一次電話,給出該固定的隨機(jī)數(shù)并記錄下返回的信息。因?yàn)槌绦蛞呀?jīng)被修改為總是產(chǎn)生這一相同的隨機(jī)數(shù),因此,在隨后的每次執(zhí)行時,被記錄的信息都被提供給被加密軟件。防止這種越權(quán)使用的一種方案將在下面結(jié)合按次使用收費(fèi)確認(rèn)技術(shù)的第二個實(shí)施例進(jìn)行描述。
這第二個實(shí)施例結(jié)合圖4來描述。在該實(shí)施例中,在確認(rèn)系統(tǒng)100中產(chǎn)生第二個隨機(jī)數(shù),這個隨機(jī)數(shù)同來自用戶系統(tǒng)140的隨機(jī)數(shù)并置(連妝),接著,該組合的隨機(jī)數(shù)被用來遮蔽和去遮蔽DES密鑰。從下面結(jié)合圖4對第二實(shí)施例的描述中這將是很清楚的。這第二個實(shí)施例類似圖3所示的第一個實(shí)施例,因此,在這里只討論這兩個實(shí)施例之間的區(qū)別。在圖3和圖4中相同編號的元素執(zhí)行相同的功能。
在第二個實(shí)施例中,確認(rèn)系統(tǒng)100和用戶系統(tǒng)140都在320步和332步中產(chǎn)生隨機(jī)數(shù)。在334步中,確認(rèn)系統(tǒng)100把它產(chǎn)生的隨機(jī)數(shù)(R1)和由用戶系統(tǒng)產(chǎn)生的隨機(jī)數(shù)(R2)并置,所得到的隨機(jī)數(shù)(R1R2)在312步中和DES密鑰進(jìn)行異或運(yùn)算,產(chǎn)生一個象結(jié)合圖3所討論那樣的被遮蔽密鑰。同確認(rèn)系統(tǒng)100一樣,用戶系統(tǒng)在336步中并置隨機(jī)數(shù)121和122。然后在324步中,所得的隨機(jī)數(shù)用來對DES密鑰解除遮蔽(如上面結(jié)合圖3所述的一樣)。第二個實(shí)施例的其余部分功能同結(jié)合圖3的第一實(shí)施例中所描述的一樣。
圖4所示的第二實(shí)施例在結(jié)合圖3討論的第一實(shí)施例上增加了另外的保護(hù)功能。因?yàn)榇_認(rèn)系統(tǒng)100也產(chǎn)生一個隨機(jī)數(shù)并且把該隨機(jī)數(shù)同用戶系統(tǒng)140產(chǎn)生的隨機(jī)數(shù)并置,DES密鑰的遮蔽取決于這兩個被產(chǎn)生的隨機(jī)數(shù),因此,即使用戶能把被加密軟件產(chǎn)生的隨機(jī)數(shù)固定為每次都是一樣的,而由確認(rèn)模式產(chǎn)生的隨機(jī)數(shù)還是不同的,所以,用戶將無法正確地對DES密鑰解除遮蔽。
根據(jù)本發(fā)明的確認(rèn)技術(shù)的第三個實(shí)施例結(jié)合圖5討論,這個實(shí)施例在圖3和圖4所示的實(shí)施例上增加了幾個特征。在確認(rèn)系統(tǒng)100中產(chǎn)生的隨機(jī)數(shù)(R1)在被送到用戶系統(tǒng)140之前先被加密,另外,由用戶系統(tǒng)140產(chǎn)生的隨機(jī)數(shù)(122)也不是把它本身送到確認(rèn)系統(tǒng)100中的。從下面結(jié)合圖5的討論中,這些細(xì)節(jié)將會清楚的。圖5中那些和已經(jīng)在圖3和圖4中討論過的部分相同的,在這里將不作詳細(xì)討論,下面只討論圖5中所示實(shí)施例的新增加步驟。圖5中那些和圖3和圖4中的元素具有相同編號的元素將實(shí)現(xiàn)相同的功能。
現(xiàn)在看圖5,在332步中由確認(rèn)系統(tǒng)產(chǎn)生的隨機(jī)數(shù)(R1)在被送到用戶系統(tǒng)之前,先在340步中用專用密鑰加密。這個被加密的隨機(jī)數(shù)在346步中由用戶系統(tǒng)解密,然后在336步中同在320步中由用戶系統(tǒng)產(chǎn)生的隨機(jī)數(shù)(R2)并置,結(jié)果得到的隨機(jī)數(shù)(R1R2)在318步中用公用密鑰加密,并送到確認(rèn)系統(tǒng)中。在310步中,這個被加密的隨機(jī)數(shù)由確認(rèn)系統(tǒng)解密。在342步中,確認(rèn)系統(tǒng)檢查決定它在332步中產(chǎn)生的隨機(jī)數(shù)是否同由被加軟件返回的隨機(jī)數(shù)的R1部分是一樣的。如果R1已經(jīng)被修改,說明該隨機(jī)數(shù)已經(jīng)被企圖破壞保護(hù)的用戶用某種方式處理過,則停止處理過程。否則在312步中,確認(rèn)系統(tǒng)用被并置的隨機(jī)數(shù)來遮蔽DES密鑰。系統(tǒng)繼續(xù)執(zhí)行的方式類似圖3和圖4實(shí)施例中所說明的情況。
在圖5的實(shí)施例中,隨機(jī)數(shù)(R1)在被從確認(rèn)系統(tǒng)送到用戶系統(tǒng)之前被加密,同理,被并置的隨機(jī)數(shù)R1R2在被從用戶系統(tǒng)送到確認(rèn)系統(tǒng)之前也被加密。注意,由用戶系統(tǒng)產(chǎn)生的隨機(jī)數(shù)(R2)決不是把自己本身送到確認(rèn)系統(tǒng)中的。這些技術(shù)使得非法用戶通過替換由用戶系統(tǒng)140產(chǎn)生的隨機(jī)數(shù)來破除保護(hù)模式的企圖變得更加困難。
還有其他一些可能的技術(shù)能防止通過替換隨機(jī)數(shù)的生成來剽竊軟件。一種方法是不在用戶系統(tǒng)中產(chǎn)生或保留一個直接的、完整的隨機(jī)數(shù)拷貝,這種方法使用戶難以通過直接檢測內(nèi)存來準(zhǔn)確地確定當(dāng)前的隨機(jī)數(shù)。例如,隨機(jī)數(shù)可以通過在存儲器中增加或異或幾個字節(jié),僅當(dāng)需要并且某個時間內(nèi)在系統(tǒng)中只有一個字節(jié)(或字)是可讀的,才在用戶系統(tǒng)中產(chǎn)生隨機(jī)數(shù)。另一種防止替換隨機(jī)數(shù)產(chǎn)生的技術(shù)是對被加密的程序代碼進(jìn)行周期性的冗余檢查,保證還沒有被修改為在一個固定的隨機(jī)數(shù)。另一種技術(shù)是把某些容易被驗(yàn)證的信息做為隨機(jī)數(shù)的一部分,如近似時間,然后,當(dāng)被加密軟件代碼使用該隨機(jī)數(shù)時,它可以判定該時間信息是否正確。如果不正確,說明隨機(jī)數(shù)可能已經(jīng)被替換,則系統(tǒng)將異常中止。通過隨機(jī)數(shù)的產(chǎn)生來防止剽竊的這些技術(shù)僅僅是給出一些例子而已,并不是全部。熟悉這一技術(shù)的人都能實(shí)現(xiàn)這些技術(shù)以及其他的通過對由用戶系統(tǒng)140和軟件確認(rèn)系統(tǒng)100產(chǎn)生的隨機(jī)數(shù)的操作來防止剽竊的技術(shù)。
另一種企圖破除軟件保護(hù)的可能方式是在DES密鑰被接收并解碼后檢查用戶系統(tǒng)的內(nèi)存。這種方法可能揭示DES密鑰的內(nèi)容并使得系統(tǒng)的安全特征失效。有幾種技術(shù)能防止這種剽竊。一種技術(shù)是把程序代碼劃分為幾段,每段都有一個單獨(dú)的DES密鑰,上述的解密技術(shù)可以被重復(fù)幾次,以防止同時在內(nèi)存中具有所有必需的DES密鑰。另一種技術(shù)可以把DES密鑰的幾個段存在內(nèi)存中的幾個地方,使得找到完整的DES密鑰更加困難。另一種技術(shù)利用了這樣的事實(shí)以間接的方式把DES密鑰的段存在存貯器將使得難以決定該密鑰。例如當(dāng)需要時,用存儲器的其他隨機(jī)段和該密鑰的段進(jìn)行異或運(yùn)算,能夠防止DES密鑰的任一部分的準(zhǔn)確拷貝曾經(jīng)留在存儲器中。決定DES密鑰的每個字節(jié)需要檢查內(nèi)存的幾個地址。熟悉這一技術(shù)的人能實(shí)現(xiàn)這些技術(shù)以及防止通過檢查存儲器來決定DES密鑰的剽竊行為的其他技術(shù)。
另一種可能的剽竊技術(shù)可以在被加密軟件被解碼之后檢查并拷貝用戶系統(tǒng)的內(nèi)存。這種情況下,原始軟件以可執(zhí)行的格式存在用戶系統(tǒng)中。有幾種可能的技術(shù)能防止這種剽竊。例如,可以把基于定時器中斷的中斷子程度加到被加密的軟件中,這個子程序?qū)z查用戶系統(tǒng)中央處理器中的程序計(jì)數(shù)器,一旦該程序計(jì)數(shù)器的信息表示該程序不再運(yùn)行,就從內(nèi)存中刪除或改寫該程序。另一種技術(shù)是對程序所在的盤上的扇區(qū)任意求反,表明該程序正在運(yùn)行,當(dāng)該程序執(zhí)行完畢后,為了恢復(fù)這些扇區(qū)再一次對其求反。這樣做將使得來自存儲器的程序拷貝不能走完正常的啟動/結(jié)束程序而損害磁盤上的信息。在任一點(diǎn)上都無法得到程序的狀態(tài),該程序狀態(tài)被保存起來,以后為進(jìn)一步執(zhí)行再恢復(fù)。其缺點(diǎn)是斷電、重置或其他的非正常終止將使磁盤處于被替換的狀態(tài)。另一種方法是把系統(tǒng)時間編碼進(jìn)入程序的內(nèi)存映象,并按照某一頻率基數(shù)用當(dāng)前的系統(tǒng)時間對其進(jìn)行檢查,若系統(tǒng)時間有大的間斷,說明該程序可能已經(jīng)被保存起來等后面執(zhí)行時再被恢復(fù),則刪去該程序。還有另一種方法是把有關(guān)用戶的敏感信息編碼進(jìn)入程序的內(nèi)存映象,這可能是信用卡號碼或用戶的電話號碼。這不僅使人們不敢隨意散發(fā)非法保存的可執(zhí)行內(nèi)存映象的拷貝,而且還能追究泄密或修改軟件的根源。熟悉這一技術(shù)的人都能實(shí)現(xiàn)這些技術(shù)以及其他能防止從內(nèi)存中拷貝程序的可執(zhí)行拷貝來剽竊軟件的技術(shù)。
除了上述的技術(shù),還有其他各種提高安全性的方法。例如,開發(fā)人員的工具箱能提供不是基于每次使用的收費(fèi)方法,即可以按所建立文件的個數(shù)、使用的小時或天數(shù)等來收費(fèi)。另外,也可以一次撥更貴的電話號碼來獲得多次使用的權(quán)利。例如,如果在按次使用的基礎(chǔ)上,每次使用花$0.75,則撥另一個號碼可能花$5,00并得到使用10次的權(quán)利,而撥另一個號碼可能花$50.00使用500次,給用戶打一個可觀的數(shù)量折扣。這些從被加密軟件的版本中導(dǎo)出的“開發(fā)人員工具箱”,應(yīng)該能把自己比半加密的形式和一個軟件計(jì)數(shù)器一塊保存在磁盤上,計(jì)數(shù)器跟蹤剩下的執(zhí)行/操作次數(shù)。把“計(jì)數(shù)器”置到高值而未授權(quán)拷貝和非法散發(fā)軟件也是比較容易的,把用戶的信用卡號和電話號碼嵌入軟件中能防止大部分人非法散發(fā)拷貝。另一種跟蹤半加密拆扣量使用軟件非法拷貝(如每5至10次執(zhí)行為一次)的方法是從內(nèi)存和磁盤中隨意刪去程序映象的一個字節(jié),然后再要求用戶撥一次電話。用戶將提供顯示在屏幕上的號碼,如程序標(biāo)識符(ID)和被刪除的地址,而電話確認(rèn)響應(yīng)系統(tǒng)將送回丟失的信息。在這種方法中,產(chǎn)生了具有半加密數(shù)量使用軟件的用戶的電話號碼記錄,如果從不在按次通話服務(wù)收費(fèi)號碼表上的號碼產(chǎn)生大量的通話,則這些號碼可能具有不加密軟件的非法拷貝。利用某個開發(fā)人員工具箱,安全方法的隨機(jī)組合可以被應(yīng)用到軟件的某個具體的塊,因此,對軟件不同塊加密的方法是不同的。開發(fā)一個能對一個軟件包解密的方法并不適用于同一軟件的較新版本或不同的軟件包。這些和其他能防止對被加密軟件非法解密的技術(shù)可由熟悉這一技術(shù)的人容易地實(shí)現(xiàn)。
在上述的每個實(shí)施例中,對于確認(rèn)系統(tǒng)100和用戶系統(tǒng)140之間的數(shù)據(jù)傳送有幾種可能的修改。最簡單的情況是,用戶可以撥一個電話并且同已經(jīng)進(jìn)入該確認(rèn)系統(tǒng)的人對話,這兩個操作員可以口頭傳送信息,然后,軟件用戶把所要的信息提供給用戶系統(tǒng)。另一種修改是用戶撥一個電話,通過電話把用戶同連接到確認(rèn)系統(tǒng)的自動響應(yīng)系統(tǒng)聯(lián)系起來。在這種情況下,用戶可以用電話鍵盤把信息送到確認(rèn)系統(tǒng)上,而確認(rèn)系統(tǒng)也可以借助語言合成或錄音把信息送回給用戶。一個進(jìn)一步的改進(jìn)是供助調(diào)制解調(diào)器在系統(tǒng)之間傳送數(shù)據(jù)。在這種情況下,用戶系統(tǒng)可通過電子通信直接和確認(rèn)系統(tǒng)進(jìn)行通信。于是被加密軟件的確認(rèn)對于用戶來說幾乎是透明的。
應(yīng)該指出的是,這里給出和描述的實(shí)施例及其變動都僅僅是為了說明本發(fā)明的原理,熟悉這一技術(shù)的人都可進(jìn)行各種改進(jìn),而不離開本發(fā)明的范圍和精神。
權(quán)利要求
1.確認(rèn)和使用被加密計(jì)算機(jī)軟件的系統(tǒng),其特征在于包括軟件確認(rèn)系統(tǒng);包括被加密軟件的軟件用戶系統(tǒng);連接軟件確認(rèn)系統(tǒng)和軟件用戶系統(tǒng)并且用于在這兩個系統(tǒng)之間傳送數(shù)據(jù)的通信網(wǎng)絡(luò);所述的軟件確認(rèn)系統(tǒng)包括存儲至少一個解密密鑰的裝置,通過所述的通信網(wǎng)絡(luò)從所述用戶系統(tǒng)中接收所述被加密軟件的標(biāo)識符的裝置,記錄所述被加密軟件標(biāo)識符數(shù)據(jù)的裝置,通過所述通信網(wǎng)絡(luò)把從所述的至少一個被存貯的解密密鑰中選擇出來的一個解密密鑰送到所述用戶系統(tǒng)的裝置,其中,所述被選擇的解密密鑰能對所述被識別的被加密軟件解密;所述軟件用戶系統(tǒng)進(jìn)一步包括把所述被加密軟件的標(biāo)識符通過所述通信網(wǎng)絡(luò)送到軟件確認(rèn)系統(tǒng)的裝置,通過所述通信網(wǎng)絡(luò)、從所述軟件確認(rèn)系統(tǒng)中接收能對所述被識別被加密軟件解密的所述被選擇解密密鑰的裝置,以及用所述被選擇解密密鑰對所述被加密軟件解密的裝置。
2.權(quán)利要求1的系統(tǒng),其特征在于,在所述通信網(wǎng)絡(luò)上的通信是由導(dǎo)致按次收費(fèi)的一次電話撥號啟動的。
3.軟件確認(rèn)系統(tǒng)包括存放至少一個解密密鑰的裝置;從通信網(wǎng)絡(luò)中接收被加密軟件標(biāo)識符的裝置;記錄所述標(biāo)識符收據(jù)的裝置;以及把從所述至少一個被存貯解密密鑰中選擇出來的一個解密密鑰送到通信網(wǎng)絡(luò)的裝置,其中,所述被選的解密密鑰能對所述被識別的被加密軟件解密,并且其中,收費(fèi)用于在通信網(wǎng)絡(luò)上建立通信聯(lián)系。
4.權(quán)利要求3的系統(tǒng),其特征在于,在通信網(wǎng)絡(luò)上建立通信聯(lián)系是通過撥一個導(dǎo)致按次通話服務(wù)收費(fèi)的電話號碼來實(shí)現(xiàn)的。
5.權(quán)利要求3的軟件確認(rèn)系統(tǒng)進(jìn)一步包括在把所述解密密鑰送到通信網(wǎng)絡(luò)之前,用一個隨機(jī)數(shù)遮蔽所述解密密鑰的裝置。
6.權(quán)利要求5的軟件確認(rèn)系統(tǒng)進(jìn)一步包括在把所述被遮蔽解密密鑰送到通信網(wǎng)絡(luò)之前加密所述被遮蔽解密密鑰的裝置。
7.權(quán)利要求6的軟件確認(rèn)系統(tǒng),其特征在于,所述加密裝置使用了公用密鑰加密算法。
8.權(quán)利要求5的軟件確認(rèn)系統(tǒng)進(jìn)一步包括從通信網(wǎng)絡(luò)中接收所述隨機(jī)數(shù)的裝置。
9.權(quán)利要求3的軟件確認(rèn)系統(tǒng)進(jìn)一步包括產(chǎn)生第一隨機(jī)數(shù)的裝置;從通信網(wǎng)絡(luò)中接收第二隨機(jī)數(shù)的裝置;通過并置所述第一隨機(jī)數(shù)和所述第二隨機(jī)數(shù)而產(chǎn)生第三隨機(jī)數(shù)的裝置;以及在把所述解密密鑰送到通信網(wǎng)絡(luò)之前,用所述第三隨機(jī)數(shù)遮蔽所述解密密鑰的裝置。
10.權(quán)利要求9的軟件確認(rèn)系統(tǒng)進(jìn)一步包括,在把所述被遮蔽的解密密鑰送到通信網(wǎng)絡(luò)之前加密所述被遮蔽解密密鑰的裝置。
11.權(quán)利要求10的軟件確認(rèn)系統(tǒng),其特征在于,所述加密裝置使用了公用密鑰加密算法。
12.權(quán)利要求3的軟件確認(rèn)系統(tǒng)進(jìn)一步包括產(chǎn)生第一隨機(jī)數(shù)的裝置;加密所述第一隨機(jī)數(shù)的裝置;把所述被加密的第一隨機(jī)數(shù)送到通信網(wǎng)絡(luò)的裝置;從通信網(wǎng)絡(luò)中接收被加密的第二隨機(jī)數(shù)的裝置,其中,所述第二隨機(jī)數(shù)包括第一段和第二段;對所述第二隨機(jī)數(shù)解密的裝置;以及在把所述解密密鑰送到通信網(wǎng)絡(luò)之前,用所述第二隨機(jī)數(shù)遮蔽所述解密密鑰的裝置。
13.權(quán)利要求12的軟件確認(rèn)系統(tǒng)進(jìn)一步包括;決定所述第二隨機(jī)數(shù)的所述第一或第二段是否等于所述第一隨機(jī)數(shù)的裝置;以及僅當(dāng)所述第二隨機(jī)數(shù)的所述第一或第二段等于所述第一隨機(jī)數(shù)時,在傳送之前,用所述第二隨機(jī)數(shù)遮蔽所述解密密鑰的裝置。
14.執(zhí)行被加密軟件的軟件用戶計(jì)算機(jī)系統(tǒng),其特征在于包括被加密的計(jì)算機(jī)程序代碼;把被加密計(jì)算機(jī)程序代碼的標(biāo)識送到通信網(wǎng)絡(luò)的裝置;從通信網(wǎng)絡(luò)中接收解密密鑰的裝置,所述解密密鑰能對所述被加密的計(jì)算機(jī)程序代碼解密;以及用所述解密密鑰對所述被加密的計(jì)算機(jī)程序代碼解密的裝置;其中,收費(fèi)用于啟動通信網(wǎng)絡(luò)上的通信聯(lián)系。
15.權(quán)利要求14的系統(tǒng),其特征在于,通信網(wǎng)絡(luò)上的通信是由導(dǎo)致每次通話服務(wù)收費(fèi)的一次電話啟動的。
16.權(quán)利要求14的軟件用戶計(jì)算機(jī)系統(tǒng),其特征在于,所述被接收的解密密鑰在接收之前已經(jīng)被遮蔽了,該系統(tǒng)進(jìn)一步包括產(chǎn)生隨機(jī)數(shù)的裝置;把所述的隨機(jī)數(shù)送到通信網(wǎng)絡(luò)的裝置;以及用所述隨機(jī)數(shù)對所述被遮蔽解密密鑰解除遮蔽的裝置。
17.權(quán)利要求14的軟件用戶計(jì)算機(jī)系統(tǒng),其特征在于,所述被接收的解密密鑰在接收之前已經(jīng)被遮蔽和加密,該系統(tǒng)進(jìn)一步包括對所述被加密被遮蔽解密密鑰解密的裝置;產(chǎn)生隨機(jī)數(shù)的裝置;把所述隨機(jī)數(shù)送到通信網(wǎng)絡(luò)上的裝置;以及用所述隨機(jī)數(shù)對所述被遮蔽解密密鑰解除遮蔽的裝置。
18.權(quán)利要求15的軟件用戶計(jì)算機(jī)系統(tǒng)進(jìn)一步包括,當(dāng)通信網(wǎng)絡(luò)上的通信沒有由導(dǎo)致每次通話服務(wù)收費(fèi)的電話啟動時,防止對所述被加密計(jì)算機(jī)程序代碼非法解密的裝置。
19.權(quán)利要求18的軟件用戶計(jì)算機(jī)系統(tǒng),其特征在于,所述解密密鑰在接收之前已被遮蔽,防止對所述被加密計(jì)算機(jī)程序非法解密的所述裝置進(jìn)一步包括產(chǎn)生一個包括可驗(yàn)證信息的偽隨機(jī)數(shù)的裝置;把所述偽隨機(jī)數(shù)送到通信網(wǎng)絡(luò)的裝置;僅當(dāng)所述可驗(yàn)證信息被驗(yàn)證時,用所述偽隨機(jī)數(shù)對所述被遮蔽解密密鑰解除遮蔽的裝置。
20.權(quán)利要求19的系統(tǒng),其中所述的可驗(yàn)證信息是產(chǎn)生所述偽隨機(jī)數(shù)的近似時間。
21.權(quán)利要求18的軟件用戶計(jì)算機(jī)系統(tǒng)進(jìn)一步包括中央處理器;以及連接所述中央處理器的存儲器,所述存儲器包括若干內(nèi)存地址,其中,防止對所述被加密的計(jì)算機(jī)程序非法解密的所述裝置進(jìn)一步包括把所述解密密鑰的第一部分存放在第一內(nèi)存地址的裝置;以及把所述解密密鑰的第二部分存放在第二內(nèi)存地址的裝置。
22.權(quán)利要求21的系統(tǒng)進(jìn)一步包括在存貯之前遮蔽解密密鑰的所述第一和第二部分的裝置。
23.權(quán)利要求18的軟件用戶計(jì)算機(jī)系統(tǒng)進(jìn)一步包括一個用于存放被解密的計(jì)算機(jī)程序代碼的存儲器和用于執(zhí)行所述被解密的程序代碼的中央處理器,其中,防止對所述被加密計(jì)算機(jī)程序非法解密的所述裝置進(jìn)一步包括;決定被解密程序代碼的所述執(zhí)行是否停止的裝置;以及當(dāng)所述計(jì)算機(jī)程序代碼的執(zhí)行停止時從所述存儲器中刪去所述被解密程序代碼的裝置。
24.執(zhí)行被加密軟件的軟件用戶計(jì)算機(jī)系統(tǒng),該系統(tǒng)包括被加密的計(jì)算機(jī)程序代碼;把標(biāo)識被加密計(jì)算機(jī)程序代碼的軟件標(biāo)識符送到通信網(wǎng)絡(luò)的裝置;產(chǎn)生第一隨機(jī)數(shù)的裝置;接收第二隨機(jī)數(shù)的裝置;組合所述第一和第二隨機(jī)數(shù)、產(chǎn)生第三隨機(jī)數(shù)的裝置;接收一個能對所述被加密計(jì)算機(jī)程序代碼解密的被遮蔽解密密鑰的裝置;用所述第三隨機(jī)數(shù)對所述被遮蔽解密密鑰解除遮蔽的裝置;以及用所述解密密鑰對所述被加密計(jì)算機(jī)程序代碼解密的裝置,其中,收費(fèi)用于啟動通信網(wǎng)絡(luò)上的通信聯(lián)系。
25.權(quán)利要求24的系統(tǒng),其特征在于通信網(wǎng)絡(luò)上的通信是由導(dǎo)致按次使用服務(wù)收費(fèi)的一次電話啟動的。
26.權(quán)利要求24的軟件用戶計(jì)算機(jī)系統(tǒng),其特征在于所述被遮蔽解密密鑰在接收之前被加密,所述系統(tǒng)進(jìn)一步包括在對所述密鑰解除遮蔽之前先對所述被加密被遮蔽密鑰解密的裝置。
27.權(quán)利要求24的軟件用戶計(jì)算機(jī)系統(tǒng),其特征在于,所述第二隨機(jī)數(shù)在接收之前被加密,并且所述被遮蔽解密密鑰在接收之前也被加密,所述系統(tǒng)進(jìn)一步包括在對所述密鑰解除遮蔽之前先對所述被加密被遮蔽密鑰解密的裝置;以及在組合所述第一隨機(jī)數(shù)和第二隨機(jī)數(shù)之前先對所述被加密的第二隨機(jī)數(shù)解密的裝置。
28.軟件注冊并產(chǎn)生被加密軟件的計(jì)算機(jī)系統(tǒng)包括把軟件標(biāo)識信息送給通信網(wǎng)絡(luò)的裝置;從通信網(wǎng)絡(luò)中接收至少一個密鑰和一個唯一性軟件標(biāo)識的裝置;以及用所述的至少一個密鑰加密可執(zhí)行軟件文件以建立被加密軟件模塊的裝置,其中,所述可執(zhí)行軟件文件僅在接收到所述的至少一個密鑰后才能由用戶執(zhí)行。
29.權(quán)利要求28的計(jì)算機(jī)系統(tǒng),其特征在于所述被加密軟件模塊包括被加密的可執(zhí)行軟件文件和計(jì)算機(jī)程序代碼,所述計(jì)算機(jī)程序代碼包括使用所述至少一個密鑰對可執(zhí)行軟件文件解密的所述裝置,并且其中,僅在所述用戶撥了一個導(dǎo)致每次通話服務(wù)收費(fèi)的電話之后,所述至少一個密鑰被用戶收到。
30.為被保護(hù)軟件注冊的軟件確認(rèn)系統(tǒng),該系統(tǒng)包括從通信網(wǎng)絡(luò)上接收軟件標(biāo)識信息的裝置;對所述被接收的軟件標(biāo)識產(chǎn)生唯一性軟件標(biāo)識代碼的裝置;產(chǎn)生至少一個密碼密鑰的裝置;把所述唯一性軟件標(biāo)識代碼和至少一個密碼密鑰送到通信網(wǎng)絡(luò)的裝置;以及存放所述唯一性軟件標(biāo)識和至少一個密碼密鑰的裝置;其中,所述的至少一個密碼密鑰將被用來產(chǎn)生被加密的軟件模塊,所述被加密軟件模塊僅在通過通信網(wǎng)絡(luò)接收到所述至少一個密碼密鑰之后才能由用戶計(jì)算機(jī)系統(tǒng)執(zhí)行,其中,所述至少一個密碼密鑰的所述接收是由導(dǎo)致每次通話服務(wù)收費(fèi)的一次電話啟動的。
31.被加密保護(hù)軟件的確認(rèn)和使用方法包括步驟被加密軟件的用戶撥一個電話,該電話將導(dǎo)致每次服務(wù)收費(fèi),所述電話通過通信網(wǎng)絡(luò)建立所述用戶和軟件確認(rèn)系統(tǒng)之間的通信聯(lián)系。被加密軟件的所述用戶通過通信網(wǎng)絡(luò)把被加密軟件的標(biāo)識送到軟件確認(rèn)系統(tǒng);所述軟件確認(rèn)系統(tǒng)通過通信網(wǎng)絡(luò)把能夠?qū)λ霰患用苘浖饷艿囊粋€解密密鑰送給所述用戶;用所述解密密鑰對所述被加密軟件解密。
32.權(quán)利要求31的方法進(jìn)一步包括步驟;在用戶計(jì)算機(jī)系統(tǒng)中產(chǎn)生一個隨機(jī)數(shù);把所述隨機(jī)數(shù)送到軟件確認(rèn)系統(tǒng);在把解密密鑰送到用戶之前,用所述軟件確認(rèn)系統(tǒng)中的隨機(jī)數(shù)遮蔽所述解密密鑰;用用戶計(jì)算機(jī)系統(tǒng)中的所述隨機(jī)數(shù)對所述解密密鑰解除遮蔽。
33.確認(rèn)被加密計(jì)算機(jī)軟件的方法包括步驟存放至少一個解密密鑰;從通信網(wǎng)絡(luò)中接收被加密軟件的標(biāo)識;記錄所述標(biāo)識的數(shù)據(jù);把從所述至少一個被存放的解密密鑰中選擇出來的一個解密密鑰送到通信網(wǎng)絡(luò)上,其中,所述被選擇的解密密鑰能對所述被識別的被加密軟件解密,其中,收費(fèi)用于在通信網(wǎng)絡(luò)上建立通信。
34.權(quán)利要求33的方法,其中,在通信網(wǎng)絡(luò)上的通信的所述建立是通過撥一次導(dǎo)致接收服務(wù)收費(fèi)的電話建立起來的。
35.權(quán)利要求33的方法進(jìn)一步包括在把所述解密密鑰送到通信網(wǎng)絡(luò)之前用一個隨機(jī)數(shù)對其遮蔽的步驟。
36.權(quán)利要求35的方法進(jìn)一步包括在把所述被遮蔽解密密鑰送到通信網(wǎng)絡(luò)之前先對其加密的步驟。
37.權(quán)利要求36的方法,其特征在于所述的加密步驟使用了一種公用密鑰加密算法。
38.權(quán)利要求35的方法進(jìn)一步包括從通信網(wǎng)絡(luò)上接收所述隨機(jī)數(shù)的步驟。
39.權(quán)利要求33的方法進(jìn)一步包括步驟產(chǎn)生第一隨機(jī)數(shù);從通信網(wǎng)絡(luò)上接收第二隨機(jī)數(shù);通過并置所述第一隨機(jī)數(shù)和所述第二隨機(jī)數(shù)產(chǎn)生第三隨機(jī)數(shù);在把所述解密密鑰送到通信網(wǎng)絡(luò)之前先用所述第三隨機(jī)數(shù)遮蔽所述的解密密鑰。
40.權(quán)利要求39的方法進(jìn)一步包括在把所述被遮蔽解密密鑰送到通信網(wǎng)絡(luò)之前先對其加密的步驟。
41.權(quán)利要求40的方法,其中所述的加密步驟使用了公用密鑰加密算法。
42.權(quán)利要求33的方法進(jìn)一步包括步驟產(chǎn)生第一隨機(jī)數(shù);加密所述的第一隨機(jī)數(shù);把所述被加密的第一隨機(jī)數(shù)送到通信網(wǎng)絡(luò);從通信網(wǎng)絡(luò)上接收被加密的第二隨機(jī)數(shù),其中,所述第二隨機(jī)數(shù)包括第一段和第二段;對所述第二隨機(jī)數(shù)解密;在把所述解密密鑰送到通信網(wǎng)絡(luò)之前先用所述的第二隨機(jī)數(shù)對其遮蔽。
43.權(quán)利要求42的方法進(jìn)一步包括步驟決定所述第二隨機(jī)數(shù)的所述第一和第二段是否等于所述的第一隨機(jī)數(shù);僅當(dāng)所述第二隨機(jī)數(shù)的所述第一或第二段等于所述的第一隨機(jī)數(shù)時,在傳送之前先用所述第二隨機(jī)數(shù)遮蔽所述的解密密鑰。
44.執(zhí)行被加密保護(hù)軟件的方法包括步驟啟動導(dǎo)致服務(wù)收費(fèi)的通信網(wǎng)絡(luò)上的通信聯(lián)系;把被加密軟件的標(biāo)識送到通信網(wǎng)絡(luò)上;從通信網(wǎng)絡(luò)中接收解密密鑰,所述解密密鑰能對所述被加密軟件進(jìn)行解密;以及用所述解密密鑰對所述被加密軟件解密。
45.權(quán)利要求44的方法,其中,啟動通信網(wǎng)絡(luò)上的通信的所述步驟包括撥一個導(dǎo)致每次通話服務(wù)收費(fèi)的電話的步驟。
46.權(quán)利要求44的方法,其中,所述被接收的解密密鑰在接收之前已經(jīng)被遮蔽,該方法進(jìn)一步包括步驟產(chǎn)生一個隨機(jī)數(shù);把所述的隨機(jī)數(shù)送到通信網(wǎng)絡(luò)上;用所述隨機(jī)數(shù)解除所述被遮蔽解密密鑰的遮蔽。
47.權(quán)利要求44的方法,其中,所述被接收的解密密鑰在接收之前已經(jīng)被遮蔽和加密,該方法進(jìn)一步包括步驟對所述被加密被遮蔽的解密密鑰進(jìn)行解密;產(chǎn)生一個隨機(jī)數(shù);把所述隨機(jī)數(shù)送到通信網(wǎng)絡(luò)上;用所述隨機(jī)數(shù)對所述被加密被遮蔽的解密密鑰解除遮蔽。
48.權(quán)利要求45的方法進(jìn)一步包括步驟如果通信網(wǎng)絡(luò)上的通信沒有被一個導(dǎo)致每次通話服務(wù)收費(fèi)的電話啟動,防止對所述被加密計(jì)算機(jī)程序代碼的非法解密。
49.權(quán)利要求48的方法,其中,所述解密密鑰在接收之前已經(jīng)被遮蔽,所述防止對所述被加密計(jì)算機(jī)程序的非法解密步驟進(jìn)一步包括步驟產(chǎn)生一個包括可驗(yàn)證信息的偽隨機(jī)數(shù);把所述的偽隨機(jī)數(shù)送到通信網(wǎng)絡(luò)上;僅當(dāng)所述可驗(yàn)證信息被驗(yàn)證時,用所述偽隨機(jī)數(shù)對所述被遮蔽的解密密鑰解除遮蔽。
50.權(quán)利要求49的方法,其中,所述的可驗(yàn)證信息是產(chǎn)生所述偽隨機(jī)數(shù)的近似時間。
51.執(zhí)行被加密保護(hù)軟件的方法包括步驟啟動導(dǎo)致服務(wù)收費(fèi)的通信網(wǎng)絡(luò)上的通信;把識別被加密軟件的軟件標(biāo)識送到通信網(wǎng)絡(luò);產(chǎn)生第一隨機(jī)數(shù);接收第二隨機(jī)數(shù);組合所述第一和第二隨機(jī)數(shù)而產(chǎn)生第三機(jī)數(shù);接收一個能對所述被加密軟件解密的被遮蔽解密密鑰;用所述第三隨機(jī)數(shù)對所述被遮蔽的解密密鑰解除遮蔽;用所述解密密鑰對所述被加密軟件解密。
52.權(quán)利要求51的方法,其中,啟動通信網(wǎng)絡(luò)上的通信的所述步驟包括撥一個導(dǎo)致每次通話服務(wù)收費(fèi)的電話的步驟。
53.權(quán)利要求51的方法,其中,所述被遮蔽解密密鑰在接收之前被加密,所述方法進(jìn)一步包括在對所述密鑰解除遮蔽之前先對所述被加密被遮蔽密鑰解密的步驟。
54.權(quán)利要求51的方法,其中,所述的第二隨機(jī)數(shù)在接收之前先被加密,并且所述被遮蔽的解密密鑰在接收之前被加密,所述方法進(jìn)一步包括步驟在對所述密鑰解除遮蔽之前先對所述被加密被遮蔽的密鑰解密;并且在組合所述第一機(jī)數(shù)和第二隨機(jī)數(shù)之前先對所述被加密的第二隨機(jī)數(shù)解密。
55.軟件注冊和產(chǎn)生被加密軟件的方法包括步驟把軟件標(biāo)識信息送到通信網(wǎng)絡(luò)上;從通信網(wǎng)絡(luò)上接收至少一個密鑰和一個唯一性的軟件標(biāo)識;以及用所述的一個密鑰加密可執(zhí)行軟件文件以建立被加密軟件模塊,僅在接收到至少一個所述的密鑰后,其中所述的可執(zhí)行文件才能由某個用戶執(zhí)行。
56.權(quán)利要求55的方法,其中,僅在所述用戶撥了一個導(dǎo)致每次通信服務(wù)收費(fèi)的電話號碼之后,所述的至少一個密鑰才能被用戶接收到。
57.被保護(hù)軟件注冊的軟件確認(rèn)方法包括步驟從通信網(wǎng)絡(luò)上接收軟件標(biāo)識信息;對所述被接收的軟件標(biāo)識產(chǎn)生唯一的軟件標(biāo)識代碼;產(chǎn)生至少一個密碼密鑰;把所述的唯一性軟件標(biāo)識代碼和至少一個密碼密鑰送到通信網(wǎng)絡(luò)上;存放所述唯一性軟件標(biāo)識和至少一個密碼密鑰,其中,所述的至少一個密碼密鑰將被用來產(chǎn)生被加密軟件模塊,所述被加密軟件模塊僅在通過通信網(wǎng)絡(luò)接收到所述的至少一個密碼密鑰后才能被某個用戶計(jì)算機(jī)系統(tǒng)執(zhí)行,其中所述的至少一個密碼密鑰的所述接收是通過撥一個導(dǎo)致每次通話服務(wù)收費(fèi)的電話啟動的。
全文摘要
防止對計(jì)算機(jī)軟件非法使用的一種按次使用計(jì)費(fèi)系統(tǒng)。加密程序?qū)υ架浖M(jìn)行編碼而產(chǎn)生被加密軟件,這種編碼過程是利用密碼技術(shù)實(shí)現(xiàn)的。為了使用這種軟件,用戶必須撥一個電話號碼,才能接收到對被加密軟件解密所需的密碼密鑰。因此,用戶必須為每次使用被加密軟件付費(fèi)。該系統(tǒng)允許軟件開發(fā)商隨意出售其被加密軟件,該加密軟件也可以隨意拷貝,因?yàn)槭召M(fèi)是基于該軟件的使用次數(shù),而不是該軟件的拷貝個數(shù)。
文檔編號G06F21/22GK1139324SQ9411801
公開日1997年1月1日 申請日期1994年11月11日 優(yōu)先權(quán)日1993年11月15日
發(fā)明者阿蘭·D·米查爾, 羅伯特·E·瑞克 申請人:美國電報(bào)電話公司