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

軟件按次使用收費系統(tǒng)的制作方法

文檔序號:6408149閱讀:546來源:國知局
專利名稱:軟件按次使用收費系統(tǒng)的制作方法
技術領域
本發(fā)明一般涉及保護計算機軟件免遭非法拷貝,更具體地說,本發(fā)明涉及一種按次使用收費的保護技術,在這種技術中,用戶為了使用被保護的軟件,必須撥一次電話。
軟件剽竊,即商品化計算機程序的非法拷貝,是個人計算機工業(yè)中存在的一個主要問題。軟件開發(fā)人員通常用三種一般的技術來防止他們的軟件被非法拷貝。第一種使用了硬件“鑰匙”,這些鑰匙是一些裝在計算機的打印機端口上的裝置。在啟動之前,軟件企圖查詢鑰匙,若沒有響應或不正確的響應,該軟件將不啟動。第二種技術使用了鑰匙盤,這種方法類似硬件鑰匙,區(qū)別在于這里的鑰匙是一個必須插在計算機的磁盤驅動器中的軟盤片。第三種技術是出售防拷貝軟件,在這種技術中,開發(fā)人員以這樣一個形式把程序放在軟盤上,使得對該軟盤的直接拷貝將產生軟件的一個不正確的拷貝。
上述的所有技術都存在某些問題,這些技術都要求開發(fā)人員把剽竊保護功能加入其程序中,這樣做并不保險,因為一旦出現了一個被破除保護功能的拷貝,其保護功能也就失去了作用。另外,這樣做會使軟件的合法用戶感到不方便。一種理想的保護方案應該使人們不可能非法使用商品化的軟件,而不會給軟件的開發(fā)人員和用戶帶來任何不方便。
一般來說,本發(fā)明提供了一種近乎理想的技術,它是基于這樣一種的軟件銷售方式的用戶必須撥一個電話號碼才能使軟件開始工作。如果所撥的電話號碼是按次服務收費的,例如某個“900”號碼,則電話保證用戶為軟件的使用支付費用。
更具體來說,加密程序把任一現有的程序轉換為所謂被加密軟件的一種新程序。被加密軟件是一種包含按被編碼形式出現的原始軟件的程序。在構造加密軟件時,加密程序對原始程序進行壓縮和編碼,壓縮消除了大部分冗余,使代碼破譯更加困難,并且減少了加密軟件的長度,其結果程序包含了某種完全不可讀形式的原始軟件。
這樣,開發(fā)人員就可以隨意散發(fā)這種被加密軟件了。為了使用這種軟件,用戶撥一個電話號碼,通過這個電話,用戶得到一個號碼,被加密軟件再用這個號碼對被加密的計算機程序解碼。這個電話號碼可以是按次服務收費的號碼,這樣,撥電話就能保證用戶支付使用軟件的費用。
可以有幾種修改,例如,被加密軟件可以通過一個調制解調器來控制撥號,并且自動執(zhí)行代碼處置功能。一次電話可以對軟件中的計數器增1,這樣就能允許多次使用。免費的電話服務,例如某個“800”號碼,可以方便提供,使?jié)撛诘挠脩裟芟卵b被加密軟件。還可以方便地提供其他的服務。
對軟件開發(fā)人員來說,本發(fā)明提供了一種附加的銷售渠道,這種銷售渠道幾乎不需要什么費用軟件中甚至不必要加入最簡單的加密程序。對于用戶來說,沒有備份的困難和失去硬件或軟盤鑰匙的危險。執(zhí)行軟件所需的一切就是打一個電話。用戶還可以選擇在花費一筆可觀的資金購買軟件之前,先徹底檢驗一下這個軟件。


圖1是實現本發(fā)明系統(tǒng)的一個簡圖。
圖2是一個簡圖,說明被加密軟件的軟件注冊和生成。
圖3是使用軟件按次收費確認技術的第一個實施例簡圖。
圖4是使用軟件按次收費確認技術的第二個實施例簡圖,增加了由確認系統(tǒng)產生的隨機數。
圖5是使用軟件按次收費確認技術的第三個實施例簡圖,增加了對被產生隨機數的加密。
本發(fā)明在描述中引用了各種數據編碼和解碼技術,因此,先簡單介紹基本的密碼技術。
密碼系統(tǒng)變換數據通常使用了兩種基本元素密碼算法和密鑰。密碼算法包括對數據編碼和譯碼的子程序,這些編碼和譯碼子程序通常是一致的,也可以包括按相反次序執(zhí)行的相同步驟。密鑰是由用戶選擇的,由數字或字符的序列組成,被密碼算法用來對數據進行編碼和譯碼。在下面詳細描述中,將討論兩類密碼系統(tǒng)。
第一類系統(tǒng)是單密鑰系統(tǒng),在這類系統(tǒng)中,單個密鑰同時用于數據的編碼和譯碼。因此,為了確保安全,這個密鑰必須保密。在這里的描述中,引用了數據加密標準(DES)單密鑰技術,這是一種已經被國家標準局接受為標準的數據加密技術,并且對于掌握密碼技術的人來說都是很熟悉的。
另一類系統(tǒng)是一種公用密鑰系統(tǒng),在這類系統(tǒng)中,在數據編碼和譯碼中不是使用同一個密鑰,而是使用兩個密鑰,其中一個用來對數據編碼,而另一個用來對數據譯碼。通常一個密鑰被公開,而另一個則為專用的。如果公用密鑰用來對數據編碼,則專用密鑰用來對數據譯碼,或反之。這類系統(tǒng)重要的一點是由公用密鑰推斷出專用密鑰是不可能的。公用密鑰密碼技術對于掌握密碼板技術的人來說也是熟悉的。
這里所討論的數據加密和解密技術只是用于說明問題,因此,也可以用其他的技術來替代而不脫離本發(fā)明的范圍和原理。
圖1說明了根據本發(fā)明實現的一種可能的系統(tǒng)。軟件確認系統(tǒng)100包括中央處理器102、存貯器110和調制解調器104、中央處理器102與調制解調器104和存貯器110連接。存貯器110包括實現軟件注冊處理過程期間所需功能的軟件注冊程序代碼111、實現軟件確認過程中所需功能的軟件確認程序代碼112,以及用于存貯軟件標識信息和有關密鑰的存儲區(qū)域113。調制解調器104用于在軟件開發(fā)人員系統(tǒng)120和軟件用戶系統(tǒng)140之間傳送和接收數據。
軟件開發(fā)人員系統(tǒng)120包括中央處理器124,調制解調器122和存儲器130。中央處理器124與調制解調器122和存儲器130連接。存儲器130包括原始軟件131、加密程序132和被生成后的被加密軟件133。原始軟件131是開發(fā)人員希望注冊和保護的軟件。加密程序132在被加密軟件133的軟件注冊和生成期間與軟件確認系統(tǒng)100相互作用和通信。被加密軟件133包括原始軟件131的一個被加密版本和用戶確認軟件。這個用戶確認軟件是程序代碼,將在軟件確認期間與軟件確認系統(tǒng)100相互作用和通信。這些功能將在后面結合圖2到圖5進行描述。
軟件確認系統(tǒng)100和軟件開發(fā)人員系統(tǒng)120通過調制解調器102和122在通信網絡160上相互通信。在一個實施例中,通信網絡160是一條公用電話線。
用戶系統(tǒng)140包括中央處理器144、調制解調器142和存儲器150,中央處理器連接調制解調器142和存儲器150。存儲器150包括被加密軟件151的一個拷貝,其中包括上面已經討論過的被加密原始軟件和用戶確認軟件。這里的被加密軟件151是由軟件開發(fā)人員系統(tǒng)120生成的被加密軟件133的一個拷貝。
確認系統(tǒng)100和用戶系統(tǒng)140通過調制解調器104和142在通信網絡170上相互通信。在一個實施例中,這個通信網絡170是一條公用電話線,而這種通信是由用戶系統(tǒng)140撥一個每次通話服務收費(如撥一個“900”號碼的費用)的電話號碼來啟動的。這種通話保證用戶為每次使用軟件付費。
被加密軟件133的生成和具有軟件確認系統(tǒng)的軟件注冊是結合圖2描述的。虛線202表示把軟件開發(fā)人員系統(tǒng)120和軟件確認系統(tǒng)100分開。在線202上方所示的部分圖表示通過軟件確認系統(tǒng)100執(zhí)行軟件注冊代碼111所實現的功能,而線202下方的部分圖則表示由軟件開發(fā)人員系統(tǒng)120執(zhí)行加密程序132實現的功能。在這兩個系統(tǒng)之間傳送的數據必須經過通信網絡160。通信網絡160上的數據傳送在圖2中由穿過虛線202的線表示。
軟件開發(fā)者系統(tǒng)的第一步210是收集軟件標識信息,這種信息包括軟件名、軟件開發(fā)者的姓名、軟件開發(fā)者的地址和任何其他所需的信息。這些信息經過網絡160被送到軟件確認系統(tǒng)100。在204步中,軟件確認系統(tǒng)100將把軟件標識信息存在存儲器113中,并且將為軟件選擇下一個標識符(ID)號。這個ID號是該軟件的任一唯一性標識符。然后確認系統(tǒng)100產生一個隨機公用/專用密鑰對,并且在206步中產生一個隨機數據加密標準(DES)密鑰。
在208步中被產生的隨機專用密鑰和隨機DES密鑰同軟件ID號一塊被存放在軟件注冊系統(tǒng)存儲器113中?,F在回到軟件開發(fā)者系統(tǒng)120上,原始軟件220在218步中被轉換為一個封裝文件,用來封裝原始軟件的方法可以是任何適當的數據壓縮技術,例如哈夫曼(Huffman)編碼技術,這是一種公知的技術。這種壓縮技術消除了軟件中的大部分冗余,使得代碼難以被破譯,并且縮短了被加密軟件的長度。接著在212步用由軟件確認系統(tǒng)產生的DES密鑰對來自該封裝文件的文件頭進行加密。只需對文件頭進行加密是因為沒有文件頭就不能對被封裝的文件解除封裝。因此,只對文件頭加密就能保證得到足夠的保護。由軟件開發(fā)者系統(tǒng)120產生的被封裝文件體和DES被加密文件頭、以及由軟件確認系統(tǒng)100產生的公用密鑰和軟件ID在214步中接著被用來建立被加密軟件。然后,被加密軟件216就可以被出售給用戶,按照本發(fā)明的要求使用。為了讓用戶使用被加密軟件,必須根據本發(fā)明把它轉換為一個可執(zhí)行模塊。
每次使用收費確認技術的第一個實施例將結合圖3加以描述。虛線302表示在軟件確認系統(tǒng)100和用戶系統(tǒng)140之間的一條分界線。虛線302上方部分的圖表示由軟件確認系統(tǒng)100執(zhí)行軟件確認代碼112所實現的功能,而其下部分的圖則表示由用戶系統(tǒng)140執(zhí)行被加密軟件151的用戶確認軟件部分所實現的功能。在每次使用收費確認系統(tǒng)100和用戶系統(tǒng)140之間傳送的任何數據由穿過虛線302的線表示,并且必須在通信網絡170上傳輸。當數據在通信網絡170上傳送時,最容易受到未授權用戶的越權存取。
第一步316把軟件的ID號送到確認系統(tǒng)100上,這是在被加密軟件的生成期間(結合圖2描述)分配給該軟件的唯一性ID號。在308步中,確認系統(tǒng)100將用這個ID號把對該軟件的使用登記在軟件開發(fā)者的帳戶上。如上所述,在本發(fā)明的一個實施例中,用戶必須撥一個每次通話服務收費的電話號碼,以便初始化通信網絡170上的通信聯系。因此,該ID號允許確認系統(tǒng)100在被確認軟件的開發(fā)人員的帳戶上登記(入貸方)。該ID號還在304步中被用來查找專用密鑰,以及在306步中被用來查找DES密鑰,這兩個密鑰都是在被加密軟件的注冊和生成期間被產生并存入確認系統(tǒng)存儲器113中的。
用戶系統(tǒng)在320步中產生一個隨機數(R1)并且在318步中用公用密鑰對該隨機數加密。該隨機數被加密,使得當它通過通信網絡170被傳送到確認系統(tǒng)100時,企圖破除保護方案的人將無法解釋該隨機數。確認系統(tǒng)100將使用在304步中得到的專用密鑰對在310步中由被加密軟件產生的隨機數解密。接著,在312步中,被解密的隨機數(R1)和DES密鑰被執(zhí)行異或運算,其結果是被由用戶系統(tǒng)產生的隨機數遮蔽的DES密鑰。然后,這個被遮蔽的DES密鑰在314步中用專用密鑰加密,并且通過通信網絡170被送到用戶系統(tǒng)140中。用戶系統(tǒng)將在322步中用公用密鑰對被遮蔽的DES密鑰解密,其結果是由隨機數(R1)遮蔽的DES密鑰。接著,這個被遮蔽的DES密鑰在324步中通過和隨機數(R1)的異或而被解除遮蔽,其結果是一個不遮蔽和不加密的DES密鑰,是被用來加密原始軟件的同一個DES密鑰。接著,在326步中,該DES密鑰被用來對被加密的文件頭解密,其結果是一個不加密的文件頭,在328步中被用來對被封裝的文件體解除封裝,其結果是一個軟件可執(zhí)行文件,然后在用戶系統(tǒng)上的330步中被執(zhí)行。
正如上面所討論的,這種確認處理的最大弱點就在于數據是由通信網絡170傳送的,因為正是在這些地方,未授權用戶最容易企圖破譯并記錄正在被傳送的數據。破除被加密軟件保護的一種方法是替換被加密軟件151中用戶確認代碼的隨機數生成部分,使之總是產生相同的隨機數,然后,用戶撥一次電話,給出該固定的隨機數并記錄下返回的信息。因為程序已經被修改為總是產生這一相同的隨機數,因此,在隨后的每次執(zhí)行時,被記錄的信息都被提供給被加密軟件。防止這種越權使用的一種方案將在下面結合按次使用收費確認技術的第二個實施例進行描述。
這第二個實施例結合圖4來描述。在該實施例中,在確認系統(tǒng)100中產生第二個隨機數,這個隨機數同來自用戶系統(tǒng)140的隨機數并置(連妝),接著,該組合的隨機數被用來遮蔽和去遮蔽DES密鑰。從下面結合圖4對第二實施例的描述中這將是很清楚的。這第二個實施例類似圖3所示的第一個實施例,因此,在這里只討論這兩個實施例之間的區(qū)別。在圖3和圖4中相同編號的元素執(zhí)行相同的功能。
在第二個實施例中,確認系統(tǒng)100和用戶系統(tǒng)140都在320步和332步中產生隨機數。在334步中,確認系統(tǒng)100把它產生的隨機數(R1)和由用戶系統(tǒng)產生的隨機數(R2)并置,所得到的隨機數(R1R2)在312步中和DES密鑰進行異或運算,產生一個象結合圖3所討論那樣的被遮蔽密鑰。同確認系統(tǒng)100一樣,用戶系統(tǒng)在336步中并置隨機數121和122。然后在324步中,所得的隨機數用來對DES密鑰解除遮蔽(如上面結合圖3所述的一樣)。第二個實施例的其余部分功能同結合圖3的第一實施例中所描述的一樣。
圖4所示的第二實施例在結合圖3討論的第一實施例上增加了另外的保護功能。因為確認系統(tǒng)100也產生一個隨機數并且把該隨機數同用戶系統(tǒng)140產生的隨機數并置,DES密鑰的遮蔽取決于這兩個被產生的隨機數,因此,即使用戶能把被加密軟件產生的隨機數固定為每次都是一樣的,而由確認模式產生的隨機數還是不同的,所以,用戶將無法正確地對DES密鑰解除遮蔽。
根據本發(fā)明的確認技術的第三個實施例結合圖5討論,這個實施例在圖3和圖4所示的實施例上增加了幾個特征。在確認系統(tǒng)100中產生的隨機數(R1)在被送到用戶系統(tǒng)140之前先被加密,另外,由用戶系統(tǒng)140產生的隨機數(122)也不是把它本身送到確認系統(tǒng)100中的。從下面結合圖5的討論中,這些細節(jié)將會清楚的。圖5中那些和已經在圖3和圖4中討論過的部分相同的,在這里將不作詳細討論,下面只討論圖5中所示實施例的新增加步驟。圖5中那些和圖3和圖4中的元素具有相同編號的元素將實現相同的功能。
現在看圖5,在332步中由確認系統(tǒng)產生的隨機數(R1)在被送到用戶系統(tǒng)之前,先在340步中用專用密鑰加密。這個被加密的隨機數在346步中由用戶系統(tǒng)解密,然后在336步中同在320步中由用戶系統(tǒng)產生的隨機數(R2)并置,結果得到的隨機數(R1R2)在318步中用公用密鑰加密,并送到確認系統(tǒng)中。在310步中,這個被加密的隨機數由確認系統(tǒng)解密。在342步中,確認系統(tǒng)檢查決定它在332步中產生的隨機數是否同由被加軟件返回的隨機數的R1部分是一樣的。如果R1已經被修改,說明該隨機數已經被企圖破壞保護的用戶用某種方式處理過,則停止處理過程。否則在312步中,確認系統(tǒng)用被并置的隨機數來遮蔽DES密鑰。系統(tǒng)繼續(xù)執(zhí)行的方式類似圖3和圖4實施例中所說明的情況。
在圖5的實施例中,隨機數(R1)在被從確認系統(tǒng)送到用戶系統(tǒng)之前被加密,同理,被并置的隨機數R1R2在被從用戶系統(tǒng)送到確認系統(tǒng)之前也被加密。注意,由用戶系統(tǒng)產生的隨機數(R2)決不是把自己本身送到確認系統(tǒng)中的。這些技術使得非法用戶通過替換由用戶系統(tǒng)140產生的隨機數來破除保護模式的企圖變得更加困難。
還有其他一些可能的技術能防止通過替換隨機數的生成來剽竊軟件。一種方法是不在用戶系統(tǒng)中產生或保留一個直接的、完整的隨機數拷貝,這種方法使用戶難以通過直接檢測內存來準確地確定當前的隨機數。例如,隨機數可以通過在存儲器中增加或異或幾個字節(jié),僅當需要并且某個時間內在系統(tǒng)中只有一個字節(jié)(或字)是可讀的,才在用戶系統(tǒng)中產生隨機數。另一種防止替換隨機數產生的技術是對被加密的程序代碼進行周期性的冗余檢查,保證還沒有被修改為在一個固定的隨機數。另一種技術是把某些容易被驗證的信息做為隨機數的一部分,如近似時間,然后,當被加密軟件代碼使用該隨機數時,它可以判定該時間信息是否正確。如果不正確,說明隨機數可能已經被替換,則系統(tǒng)將異常中止。通過隨機數的產生來防止剽竊的這些技術僅僅是給出一些例子而已,并不是全部。熟悉這一技術的人都能實現這些技術以及其他的通過對由用戶系統(tǒng)140和軟件確認系統(tǒng)100產生的隨機數的操作來防止剽竊的技術。
另一種企圖破除軟件保護的可能方式是在DES密鑰被接收并解碼后檢查用戶系統(tǒng)的內存。這種方法可能揭示DES密鑰的內容并使得系統(tǒng)的安全特征失效。有幾種技術能防止這種剽竊。一種技術是把程序代碼劃分為幾段,每段都有一個單獨的DES密鑰,上述的解密技術可以被重復幾次,以防止同時在內存中具有所有必需的DES密鑰。另一種技術可以把DES密鑰的幾個段存在內存中的幾個地方,使得找到完整的DES密鑰更加困難。另一種技術利用了這樣的事實以間接的方式把DES密鑰的段存在存貯器將使得難以決定該密鑰。例如當需要時,用存儲器的其他隨機段和該密鑰的段進行異或運算,能夠防止DES密鑰的任一部分的準確拷貝曾經留在存儲器中。決定DES密鑰的每個字節(jié)需要檢查內存的幾個地址。熟悉這一技術的人能實現這些技術以及防止通過檢查存儲器來決定DES密鑰的剽竊行為的其他技術。
另一種可能的剽竊技術可以在被加密軟件被解碼之后檢查并拷貝用戶系統(tǒng)的內存。這種情況下,原始軟件以可執(zhí)行的格式存在用戶系統(tǒng)中。有幾種可能的技術能防止這種剽竊。例如,可以把基于定時器中斷的中斷子程度加到被加密的軟件中,這個子程序將檢查用戶系統(tǒng)中央處理器中的程序計數器,一旦該程序計數器的信息表示該程序不再運行,就從內存中刪除或改寫該程序。另一種技術是對程序所在的盤上的扇區(qū)任意求反,表明該程序正在運行,當該程序執(zhí)行完畢后,為了恢復這些扇區(qū)再一次對其求反。這樣做將使得來自存儲器的程序拷貝不能走完正常的啟動/結束程序而損害磁盤上的信息。在任一點上都無法得到程序的狀態(tài),該程序狀態(tài)被保存起來,以后為進一步執(zhí)行再恢復。其缺點是斷電、重置或其他的非正常終止將使磁盤處于被替換的狀態(tài)。另一種方法是把系統(tǒng)時間編碼進入程序的內存映象,并按照某一頻率基數用當前的系統(tǒng)時間對其進行檢查,若系統(tǒng)時間有大的間斷,說明該程序可能已經被保存起來等后面執(zhí)行時再被恢復,則刪去該程序。還有另一種方法是把有關用戶的敏感信息編碼進入程序的內存映象,這可能是信用卡號碼或用戶的電話號碼。這不僅使人們不敢隨意散發(fā)非法保存的可執(zhí)行內存映象的拷貝,而且還能追究泄密或修改軟件的根源。熟悉這一技術的人都能實現這些技術以及其他能防止從內存中拷貝程序的可執(zhí)行拷貝來剽竊軟件的技術。
除了上述的技術,還有其他各種提高安全性的方法。例如,開發(fā)人員的工具箱能提供不是基于每次使用的收費方法,即可以按所建立文件的個數、使用的小時或天數等來收費。另外,也可以一次撥更貴的電話號碼來獲得多次使用的權利。例如,如果在按次使用的基礎上,每次使用花$0.75,則撥另一個號碼可能花$5,00并得到使用10次的權利,而撥另一個號碼可能花$50.00使用500次,給用戶打一個可觀的數量折扣。這些從被加密軟件的版本中導出的“開發(fā)人員工具箱”,應該能把自己比半加密的形式和一個軟件計數器一塊保存在磁盤上,計數器跟蹤剩下的執(zhí)行/操作次數。把“計數器”置到高值而未授權拷貝和非法散發(fā)軟件也是比較容易的,把用戶的信用卡號和電話號碼嵌入軟件中能防止大部分人非法散發(fā)拷貝。另一種跟蹤半加密拆扣量使用軟件非法拷貝(如每5至10次執(zhí)行為一次)的方法是從內存和磁盤中隨意刪去程序映象的一個字節(jié),然后再要求用戶撥一次電話。用戶將提供顯示在屏幕上的號碼,如程序標識符(ID)和被刪除的地址,而電話確認響應系統(tǒng)將送回丟失的信息。在這種方法中,產生了具有半加密數量使用軟件的用戶的電話號碼記錄,如果從不在按次通話服務收費號碼表上的號碼產生大量的通話,則這些號碼可能具有不加密軟件的非法拷貝。利用某個開發(fā)人員工具箱,安全方法的隨機組合可以被應用到軟件的某個具體的塊,因此,對軟件不同塊加密的方法是不同的。開發(fā)一個能對一個軟件包解密的方法并不適用于同一軟件的較新版本或不同的軟件包。這些和其他能防止對被加密軟件非法解密的技術可由熟悉這一技術的人容易地實現。
在上述的每個實施例中,對于確認系統(tǒng)100和用戶系統(tǒng)140之間的數據傳送有幾種可能的修改。最簡單的情況是,用戶可以撥一個電話并且同已經進入該確認系統(tǒng)的人對話,這兩個操作員可以口頭傳送信息,然后,軟件用戶把所要的信息提供給用戶系統(tǒng)。另一種修改是用戶撥一個電話,通過電話把用戶同連接到確認系統(tǒng)的自動響應系統(tǒng)聯系起來。在這種情況下,用戶可以用電話鍵盤把信息送到確認系統(tǒng)上,而確認系統(tǒng)也可以借助語言合成或錄音把信息送回給用戶。一個進一步的改進是供助調制解調器在系統(tǒng)之間傳送數據。在這種情況下,用戶系統(tǒng)可通過電子通信直接和確認系統(tǒng)進行通信。于是被加密軟件的確認對于用戶來說幾乎是透明的。
應該指出的是,這里給出和描述的實施例及其變動都僅僅是為了說明本發(fā)明的原理,熟悉這一技術的人都可進行各種改進,而不離開本發(fā)明的范圍和精神。
權利要求
1.確認和使用被加密計算機軟件的系統(tǒng),其特征在于包括軟件確認系統(tǒng);包括被加密軟件的軟件用戶系統(tǒng);連接軟件確認系統(tǒng)和軟件用戶系統(tǒng)并且用于在這兩個系統(tǒng)之間傳送數據的通信網絡;所述的軟件確認系統(tǒng)包括存儲至少一個解密密鑰的裝置,通過所述的通信網絡從所述用戶系統(tǒng)中接收所述被加密軟件的標識符的裝置,記錄所述被加密軟件標識符數據的裝置,通過所述通信網絡把從所述的至少一個被存貯的解密密鑰中選擇出來的一個解密密鑰送到所述用戶系統(tǒng)的裝置,其中,所述被選擇的解密密鑰能對所述被識別的被加密軟件解密;所述軟件用戶系統(tǒng)進一步包括把所述被加密軟件的標識符通過所述通信網絡送到軟件確認系統(tǒng)的裝置,通過所述通信網絡、從所述軟件確認系統(tǒng)中接收能對所述被識別被加密軟件解密的所述被選擇解密密鑰的裝置,以及用所述被選擇解密密鑰對所述被加密軟件解密的裝置。
2.權利要求1的系統(tǒng),其特征在于,在所述通信網絡上的通信是由導致按次收費的一次電話撥號啟動的。
3.軟件確認系統(tǒng)包括存放至少一個解密密鑰的裝置;從通信網絡中接收被加密軟件標識符的裝置;記錄所述標識符收據的裝置;以及把從所述至少一個被存貯解密密鑰中選擇出來的一個解密密鑰送到通信網絡的裝置,其中,所述被選的解密密鑰能對所述被識別的被加密軟件解密,并且其中,收費用于在通信網絡上建立通信聯系。
4.權利要求3的系統(tǒng),其特征在于,在通信網絡上建立通信聯系是通過撥一個導致按次通話服務收費的電話號碼來實現的。
5.權利要求3的軟件確認系統(tǒng)進一步包括在把所述解密密鑰送到通信網絡之前,用一個隨機數遮蔽所述解密密鑰的裝置。
6.權利要求5的軟件確認系統(tǒng)進一步包括在把所述被遮蔽解密密鑰送到通信網絡之前加密所述被遮蔽解密密鑰的裝置。
7.權利要求6的軟件確認系統(tǒng),其特征在于,所述加密裝置使用了公用密鑰加密算法。
8.權利要求5的軟件確認系統(tǒng)進一步包括從通信網絡中接收所述隨機數的裝置。
9.權利要求3的軟件確認系統(tǒng)進一步包括產生第一隨機數的裝置;從通信網絡中接收第二隨機數的裝置;通過并置所述第一隨機數和所述第二隨機數而產生第三隨機數的裝置;以及在把所述解密密鑰送到通信網絡之前,用所述第三隨機數遮蔽所述解密密鑰的裝置。
10.權利要求9的軟件確認系統(tǒng)進一步包括,在把所述被遮蔽的解密密鑰送到通信網絡之前加密所述被遮蔽解密密鑰的裝置。
11.權利要求10的軟件確認系統(tǒng),其特征在于,所述加密裝置使用了公用密鑰加密算法。
12.權利要求3的軟件確認系統(tǒng)進一步包括產生第一隨機數的裝置;加密所述第一隨機數的裝置;把所述被加密的第一隨機數送到通信網絡的裝置;從通信網絡中接收被加密的第二隨機數的裝置,其中,所述第二隨機數包括第一段和第二段;對所述第二隨機數解密的裝置;以及在把所述解密密鑰送到通信網絡之前,用所述第二隨機數遮蔽所述解密密鑰的裝置。
13.權利要求12的軟件確認系統(tǒng)進一步包括;決定所述第二隨機數的所述第一或第二段是否等于所述第一隨機數的裝置;以及僅當所述第二隨機數的所述第一或第二段等于所述第一隨機數時,在傳送之前,用所述第二隨機數遮蔽所述解密密鑰的裝置。
14.執(zhí)行被加密軟件的軟件用戶計算機系統(tǒng),其特征在于包括被加密的計算機程序代碼;把被加密計算機程序代碼的標識送到通信網絡的裝置;從通信網絡中接收解密密鑰的裝置,所述解密密鑰能對所述被加密的計算機程序代碼解密;以及用所述解密密鑰對所述被加密的計算機程序代碼解密的裝置;其中,收費用于啟動通信網絡上的通信聯系。
15.權利要求14的系統(tǒng),其特征在于,通信網絡上的通信是由導致每次通話服務收費的一次電話啟動的。
16.權利要求14的軟件用戶計算機系統(tǒng),其特征在于,所述被接收的解密密鑰在接收之前已經被遮蔽了,該系統(tǒng)進一步包括產生隨機數的裝置;把所述的隨機數送到通信網絡的裝置;以及用所述隨機數對所述被遮蔽解密密鑰解除遮蔽的裝置。
17.權利要求14的軟件用戶計算機系統(tǒng),其特征在于,所述被接收的解密密鑰在接收之前已經被遮蔽和加密,該系統(tǒng)進一步包括對所述被加密被遮蔽解密密鑰解密的裝置;產生隨機數的裝置;把所述隨機數送到通信網絡上的裝置;以及用所述隨機數對所述被遮蔽解密密鑰解除遮蔽的裝置。
18.權利要求15的軟件用戶計算機系統(tǒng)進一步包括,當通信網絡上的通信沒有由導致每次通話服務收費的電話啟動時,防止對所述被加密計算機程序代碼非法解密的裝置。
19.權利要求18的軟件用戶計算機系統(tǒng),其特征在于,所述解密密鑰在接收之前已被遮蔽,防止對所述被加密計算機程序非法解密的所述裝置進一步包括產生一個包括可驗證信息的偽隨機數的裝置;把所述偽隨機數送到通信網絡的裝置;僅當所述可驗證信息被驗證時,用所述偽隨機數對所述被遮蔽解密密鑰解除遮蔽的裝置。
20.權利要求19的系統(tǒng),其中所述的可驗證信息是產生所述偽隨機數的近似時間。
21.權利要求18的軟件用戶計算機系統(tǒng)進一步包括中央處理器;以及連接所述中央處理器的存儲器,所述存儲器包括若干內存地址,其中,防止對所述被加密的計算機程序非法解密的所述裝置進一步包括把所述解密密鑰的第一部分存放在第一內存地址的裝置;以及把所述解密密鑰的第二部分存放在第二內存地址的裝置。
22.權利要求21的系統(tǒng)進一步包括在存貯之前遮蔽解密密鑰的所述第一和第二部分的裝置。
23.權利要求18的軟件用戶計算機系統(tǒng)進一步包括一個用于存放被解密的計算機程序代碼的存儲器和用于執(zhí)行所述被解密的程序代碼的中央處理器,其中,防止對所述被加密計算機程序非法解密的所述裝置進一步包括;決定被解密程序代碼的所述執(zhí)行是否停止的裝置;以及當所述計算機程序代碼的執(zhí)行停止時從所述存儲器中刪去所述被解密程序代碼的裝置。
24.執(zhí)行被加密軟件的軟件用戶計算機系統(tǒng),該系統(tǒng)包括被加密的計算機程序代碼;把標識被加密計算機程序代碼的軟件標識符送到通信網絡的裝置;產生第一隨機數的裝置;接收第二隨機數的裝置;組合所述第一和第二隨機數、產生第三隨機數的裝置;接收一個能對所述被加密計算機程序代碼解密的被遮蔽解密密鑰的裝置;用所述第三隨機數對所述被遮蔽解密密鑰解除遮蔽的裝置;以及用所述解密密鑰對所述被加密計算機程序代碼解密的裝置,其中,收費用于啟動通信網絡上的通信聯系。
25.權利要求24的系統(tǒng),其特征在于通信網絡上的通信是由導致按次使用服務收費的一次電話啟動的。
26.權利要求24的軟件用戶計算機系統(tǒng),其特征在于所述被遮蔽解密密鑰在接收之前被加密,所述系統(tǒng)進一步包括在對所述密鑰解除遮蔽之前先對所述被加密被遮蔽密鑰解密的裝置。
27.權利要求24的軟件用戶計算機系統(tǒng),其特征在于,所述第二隨機數在接收之前被加密,并且所述被遮蔽解密密鑰在接收之前也被加密,所述系統(tǒng)進一步包括在對所述密鑰解除遮蔽之前先對所述被加密被遮蔽密鑰解密的裝置;以及在組合所述第一隨機數和第二隨機數之前先對所述被加密的第二隨機數解密的裝置。
28.軟件注冊并產生被加密軟件的計算機系統(tǒng)包括把軟件標識信息送給通信網絡的裝置;從通信網絡中接收至少一個密鑰和一個唯一性軟件標識的裝置;以及用所述的至少一個密鑰加密可執(zhí)行軟件文件以建立被加密軟件模塊的裝置,其中,所述可執(zhí)行軟件文件僅在接收到所述的至少一個密鑰后才能由用戶執(zhí)行。
29.權利要求28的計算機系統(tǒng),其特征在于所述被加密軟件模塊包括被加密的可執(zhí)行軟件文件和計算機程序代碼,所述計算機程序代碼包括使用所述至少一個密鑰對可執(zhí)行軟件文件解密的所述裝置,并且其中,僅在所述用戶撥了一個導致每次通話服務收費的電話之后,所述至少一個密鑰被用戶收到。
30.為被保護軟件注冊的軟件確認系統(tǒng),該系統(tǒng)包括從通信網絡上接收軟件標識信息的裝置;對所述被接收的軟件標識產生唯一性軟件標識代碼的裝置;產生至少一個密碼密鑰的裝置;把所述唯一性軟件標識代碼和至少一個密碼密鑰送到通信網絡的裝置;以及存放所述唯一性軟件標識和至少一個密碼密鑰的裝置;其中,所述的至少一個密碼密鑰將被用來產生被加密的軟件模塊,所述被加密軟件模塊僅在通過通信網絡接收到所述至少一個密碼密鑰之后才能由用戶計算機系統(tǒng)執(zhí)行,其中,所述至少一個密碼密鑰的所述接收是由導致每次通話服務收費的一次電話啟動的。
31.被加密保護軟件的確認和使用方法包括步驟被加密軟件的用戶撥一個電話,該電話將導致每次服務收費,所述電話通過通信網絡建立所述用戶和軟件確認系統(tǒng)之間的通信聯系。被加密軟件的所述用戶通過通信網絡把被加密軟件的標識送到軟件確認系統(tǒng);所述軟件確認系統(tǒng)通過通信網絡把能夠對所述被加密軟件解密的一個解密密鑰送給所述用戶;用所述解密密鑰對所述被加密軟件解密。
32.權利要求31的方法進一步包括步驟;在用戶計算機系統(tǒng)中產生一個隨機數;把所述隨機數送到軟件確認系統(tǒng);在把解密密鑰送到用戶之前,用所述軟件確認系統(tǒng)中的隨機數遮蔽所述解密密鑰;用用戶計算機系統(tǒng)中的所述隨機數對所述解密密鑰解除遮蔽。
33.確認被加密計算機軟件的方法包括步驟存放至少一個解密密鑰;從通信網絡中接收被加密軟件的標識;記錄所述標識的數據;把從所述至少一個被存放的解密密鑰中選擇出來的一個解密密鑰送到通信網絡上,其中,所述被選擇的解密密鑰能對所述被識別的被加密軟件解密,其中,收費用于在通信網絡上建立通信。
34.權利要求33的方法,其中,在通信網絡上的通信的所述建立是通過撥一次導致接收服務收費的電話建立起來的。
35.權利要求33的方法進一步包括在把所述解密密鑰送到通信網絡之前用一個隨機數對其遮蔽的步驟。
36.權利要求35的方法進一步包括在把所述被遮蔽解密密鑰送到通信網絡之前先對其加密的步驟。
37.權利要求36的方法,其特征在于所述的加密步驟使用了一種公用密鑰加密算法。
38.權利要求35的方法進一步包括從通信網絡上接收所述隨機數的步驟。
39.權利要求33的方法進一步包括步驟產生第一隨機數;從通信網絡上接收第二隨機數;通過并置所述第一隨機數和所述第二隨機數產生第三隨機數;在把所述解密密鑰送到通信網絡之前先用所述第三隨機數遮蔽所述的解密密鑰。
40.權利要求39的方法進一步包括在把所述被遮蔽解密密鑰送到通信網絡之前先對其加密的步驟。
41.權利要求40的方法,其中所述的加密步驟使用了公用密鑰加密算法。
42.權利要求33的方法進一步包括步驟產生第一隨機數;加密所述的第一隨機數;把所述被加密的第一隨機數送到通信網絡;從通信網絡上接收被加密的第二隨機數,其中,所述第二隨機數包括第一段和第二段;對所述第二隨機數解密;在把所述解密密鑰送到通信網絡之前先用所述的第二隨機數對其遮蔽。
43.權利要求42的方法進一步包括步驟決定所述第二隨機數的所述第一和第二段是否等于所述的第一隨機數;僅當所述第二隨機數的所述第一或第二段等于所述的第一隨機數時,在傳送之前先用所述第二隨機數遮蔽所述的解密密鑰。
44.執(zhí)行被加密保護軟件的方法包括步驟啟動導致服務收費的通信網絡上的通信聯系;把被加密軟件的標識送到通信網絡上;從通信網絡中接收解密密鑰,所述解密密鑰能對所述被加密軟件進行解密;以及用所述解密密鑰對所述被加密軟件解密。
45.權利要求44的方法,其中,啟動通信網絡上的通信的所述步驟包括撥一個導致每次通話服務收費的電話的步驟。
46.權利要求44的方法,其中,所述被接收的解密密鑰在接收之前已經被遮蔽,該方法進一步包括步驟產生一個隨機數;把所述的隨機數送到通信網絡上;用所述隨機數解除所述被遮蔽解密密鑰的遮蔽。
47.權利要求44的方法,其中,所述被接收的解密密鑰在接收之前已經被遮蔽和加密,該方法進一步包括步驟對所述被加密被遮蔽的解密密鑰進行解密;產生一個隨機數;把所述隨機數送到通信網絡上;用所述隨機數對所述被加密被遮蔽的解密密鑰解除遮蔽。
48.權利要求45的方法進一步包括步驟如果通信網絡上的通信沒有被一個導致每次通話服務收費的電話啟動,防止對所述被加密計算機程序代碼的非法解密。
49.權利要求48的方法,其中,所述解密密鑰在接收之前已經被遮蔽,所述防止對所述被加密計算機程序的非法解密步驟進一步包括步驟產生一個包括可驗證信息的偽隨機數;把所述的偽隨機數送到通信網絡上;僅當所述可驗證信息被驗證時,用所述偽隨機數對所述被遮蔽的解密密鑰解除遮蔽。
50.權利要求49的方法,其中,所述的可驗證信息是產生所述偽隨機數的近似時間。
51.執(zhí)行被加密保護軟件的方法包括步驟啟動導致服務收費的通信網絡上的通信;把識別被加密軟件的軟件標識送到通信網絡;產生第一隨機數;接收第二隨機數;組合所述第一和第二隨機數而產生第三機數;接收一個能對所述被加密軟件解密的被遮蔽解密密鑰;用所述第三隨機數對所述被遮蔽的解密密鑰解除遮蔽;用所述解密密鑰對所述被加密軟件解密。
52.權利要求51的方法,其中,啟動通信網絡上的通信的所述步驟包括撥一個導致每次通話服務收費的電話的步驟。
53.權利要求51的方法,其中,所述被遮蔽解密密鑰在接收之前被加密,所述方法進一步包括在對所述密鑰解除遮蔽之前先對所述被加密被遮蔽密鑰解密的步驟。
54.權利要求51的方法,其中,所述的第二隨機數在接收之前先被加密,并且所述被遮蔽的解密密鑰在接收之前被加密,所述方法進一步包括步驟在對所述密鑰解除遮蔽之前先對所述被加密被遮蔽的密鑰解密;并且在組合所述第一機數和第二隨機數之前先對所述被加密的第二隨機數解密。
55.軟件注冊和產生被加密軟件的方法包括步驟把軟件標識信息送到通信網絡上;從通信網絡上接收至少一個密鑰和一個唯一性的軟件標識;以及用所述的一個密鑰加密可執(zhí)行軟件文件以建立被加密軟件模塊,僅在接收到至少一個所述的密鑰后,其中所述的可執(zhí)行文件才能由某個用戶執(zhí)行。
56.權利要求55的方法,其中,僅在所述用戶撥了一個導致每次通信服務收費的電話號碼之后,所述的至少一個密鑰才能被用戶接收到。
57.被保護軟件注冊的軟件確認方法包括步驟從通信網絡上接收軟件標識信息;對所述被接收的軟件標識產生唯一的軟件標識代碼;產生至少一個密碼密鑰;把所述的唯一性軟件標識代碼和至少一個密碼密鑰送到通信網絡上;存放所述唯一性軟件標識和至少一個密碼密鑰,其中,所述的至少一個密碼密鑰將被用來產生被加密軟件模塊,所述被加密軟件模塊僅在通過通信網絡接收到所述的至少一個密碼密鑰后才能被某個用戶計算機系統(tǒng)執(zhí)行,其中所述的至少一個密碼密鑰的所述接收是通過撥一個導致每次通話服務收費的電話啟動的。
全文摘要
防止對計算機軟件非法使用的一種按次使用計費系統(tǒng)。加密程序對原始軟件進行編碼而產生被加密軟件,這種編碼過程是利用密碼技術實現的。為了使用這種軟件,用戶必須撥一個電話號碼,才能接收到對被加密軟件解密所需的密碼密鑰。因此,用戶必須為每次使用被加密軟件付費。該系統(tǒng)允許軟件開發(fā)商隨意出售其被加密軟件,該加密軟件也可以隨意拷貝,因為收費是基于該軟件的使用次數,而不是該軟件的拷貝個數。
文檔編號G06F21/22GK1139324SQ9411801
公開日1997年1月1日 申請日期1994年11月11日 優(yōu)先權日1993年11月15日
發(fā)明者阿蘭·D·米查爾, 羅伯特·E·瑞克 申請人:美國電報電話公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
错那县| 沿河| 正蓝旗| 阿巴嘎旗| 桐城市| 辉南县| 黄石市| 金山区| 尉氏县| 昆明市| 台北市| 顺昌县| 万年县| 永丰县| 贵阳市| 武山县| 阿克陶县| 汉沽区| 吴旗县| 巴中市| 华亭县| 万年县| 延长县| 浙江省| 河间市| 南和县| 格尔木市| 岚皋县| 平江县| 缙云县| 综艺| 开阳县| 高邑县| 浏阳市| 卓资县| 吉木萨尔县| 白水县| 泰兴市| 稻城县| 翼城县| 淮滨县|