專(zhuān)利名稱(chēng):軟件編碼、譯碼方法及軟件編碼、譯碼系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于對(duì)字符、語(yǔ)音、動(dòng)畫(huà)、靜止圖像、程序或其它數(shù)據(jù)進(jìn)行編碼的技術(shù),還涉及用于對(duì)這類(lèi)編碼數(shù)據(jù)進(jìn)行譯碼的技術(shù)。
就軟件銷(xiāo)售方式而言,可能運(yùn)用的方法是對(duì)字符、語(yǔ)音、動(dòng)畫(huà)、靜止圖像、程序或其它數(shù)據(jù)編碼,并將這種數(shù)據(jù)存儲(chǔ)在軟盤(pán)、只讀光盤(pán)(CD-ROM)、磁光盤(pán)(MO)或其它媒體上,然后出售這些媒體;還可能使用的方法是對(duì)所述數(shù)據(jù)編碼并通過(guò)通信線路將這種數(shù)據(jù)傳送給用戶。當(dāng)然還可以采用一些其它方法。
在現(xiàn)有的這類(lèi)編碼方法中,供應(yīng)者例如用單一的算法對(duì)程序進(jìn)行編碼,然后再將其提供給用戶,而用戶必須使用由所述供應(yīng)者提供的所謂“密鑰”程序進(jìn)行譯碼操作。
然而,當(dāng)非法用戶破譯了用戶所擁有的“密鑰”程序時(shí),就有可能出現(xiàn)基于譯碼結(jié)果的備份工具。如果大量的這種備份工具得以傳播,就會(huì)使供應(yīng)者損失慘重。
本發(fā)明旨在解決上述問(wèn)題,其借助于這類(lèi)軟件具有僅經(jīng)過(guò)很短周期就面臨升級(jí)這一特殊特性而產(chǎn)生。因此,本發(fā)明提供一種編碼組合方法,用此方法可以周期性地或在每次軟件升級(jí)時(shí)改變編碼算法。
本發(fā)明運(yùn)用兩種或更多編碼基本算法對(duì)軟件進(jìn)行編碼。相反地,也需要為軟件譯碼處理(軟件譯碼設(shè)備)準(zhǔn)備與所述的兩種或更多編碼基本算法相對(duì)應(yīng)的譯碼基本算法。然后,軟件編碼設(shè)備將關(guān)于編碼算法的組合信息連同已編碼的軟件一起,傳送到軟件譯碼裝置(軟件譯碼設(shè)備)。
上述編碼基本算法意味著在將輸入數(shù)據(jù)行轉(zhuǎn)換成隨機(jī)數(shù)據(jù)行時(shí)所需的處理最少。例如,將輸入數(shù)據(jù)行轉(zhuǎn)換成重排數(shù)據(jù)行或置換數(shù)據(jù)行。此外,可以輸出輸入數(shù)據(jù)行與其它隨機(jī)數(shù)據(jù)行的“異或”。
軟件譯碼裝置基于前述的算法組合信息,選擇它擁有的譯碼基本算法,并對(duì)前述已編碼的軟件譯碼。
在前述編碼裝置中,當(dāng)把軟件輸入到軟件編碼設(shè)備中,運(yùn)用自愿選擇的基本算法組合(例如A1和A3)對(duì)其進(jìn)行編碼。以只讀光盤(pán)的形式或通過(guò)通信線路將已按此方式編碼的軟件銷(xiāo)售給用戶。用戶借助于他/她所擁有的譯碼設(shè)備對(duì)這類(lèi)已編碼的軟件進(jìn)行譯碼。此時(shí),用戶根據(jù)編碼設(shè)備所使用的編碼組合信息(例如 )對(duì)相關(guān)編碼軟件進(jìn)行譯碼。可以將這一組合信息與已編碼軟件在同一媒體上或不同媒體上交付給用戶,或者與非描述性密鑰信息(K)一起傳送給用戶。
此外,可以在更新之前使用一種算法對(duì)組合信息進(jìn)行編碼。
用此方式,例如,若每個(gè)算法都相對(duì)較容易分析,那么這些算法的組合就會(huì)增加分析的難度。于是,例如,若每個(gè)算法本身都比較容易被識(shí)破,但由于存在許多種可能的算法組合,所以就需要大量時(shí)間與努力來(lái)分析算法的組合,從而使實(shí)際的分析工作變得相當(dāng)困難。即使分析有可能成功,但因?yàn)槊看诬浖?jí)時(shí)都運(yùn)用了新的算法組合對(duì)軟件編碼,同時(shí)軟件升級(jí)周期也相當(dāng)短,所以足以覆蓋這種分析成功的可能性。
事實(shí)上,很多冒險(xiǎn)者總是對(duì)無(wú)數(shù)的編碼算法組合進(jìn)行挑戰(zhàn),他們不可能放棄破譯軟件的嗜好。
圖1是本發(fā)明的原理圖;圖2是本發(fā)明較佳實(shí)施例的硬件配置圖;圖3是本發(fā)明較佳實(shí)施例系統(tǒng)配置的功能性方框圖;圖4是表示本發(fā)明較佳實(shí)施例的一種算法表的解釋性示意圖;圖5是表示一種轉(zhuǎn)置型算法的一個(gè)具體實(shí)例的示意圖;圖6是表示一種字符轉(zhuǎn)換型算法的一個(gè)具體實(shí)例的示意圖;圖7是表示一種“異”(exclusive)算法的一個(gè)具體實(shí)例的示意圖;圖8是表示一種乘法型算法的一個(gè)具體實(shí)例的示意圖;圖9是表示DES型組合處理的一個(gè)具體實(shí)例的示意圖;圖10是表示ENIGMA組合的一個(gè)具體實(shí)例的示意圖;圖11是表示將轉(zhuǎn)置算型算法(A1)與字符轉(zhuǎn)換型算法(A3)相組合以進(jìn)行ENI GMA型組合處理的一個(gè)具體實(shí)例的示意圖;圖12是表示對(duì)已經(jīng)經(jīng)過(guò)圖11所示的組合處理編碼后的軟件進(jìn)行譯碼的一個(gè)具體實(shí)例的示意圖;圖13表示本發(fā)明硬件配置的示意圖;在詳細(xì)解釋本發(fā)明的較佳實(shí)施例之前,先介紹一下本發(fā)明的基本原理。
如圖1所示,在本發(fā)明中,在需要對(duì)軟件編碼時(shí)使用兩種或兩種以上編碼基本算法;反之,對(duì)于軟件的譯碼處理(軟件譯碼設(shè)備),則準(zhǔn)備有與這些編碼基本算法相對(duì)應(yīng)的譯碼基本算法。此外,軟件編碼設(shè)備將關(guān)于編碼基本算法的組合信息,連同已編碼的軟件一起,傳送給軟件譯碼裝置(軟件譯碼設(shè)備)。
軟件譯碼裝置根據(jù)前述的基本算法組合信息,選擇它所擁有的譯碼基本算法,并對(duì)上述已編碼的軟件進(jìn)行譯碼。
用此方法,當(dāng)把軟件輸入到軟件編碼設(shè)備之中時(shí),運(yùn)用自愿選擇的基本算法組合(例如A1和A3)對(duì)其進(jìn)行編碼。以只讀光盤(pán)的形式或通過(guò)通信線路將已按此方式編碼的軟件銷(xiāo)售給用戶。用戶借助他所擁有的譯碼設(shè)備,對(duì)這類(lèi)已編碼的軟件進(jìn)行譯碼。這時(shí),用戶根據(jù)編碼設(shè)備所使用的編碼組合信息(例如 ),對(duì)相關(guān)編碼軟件進(jìn)行譯碼??梢詫⒋私M合信息與已編碼軟件在同一媒體上或在不同媒體上交付給用戶,或者與非描述性密鑰信息(K)一起傳送給用戶。
圖2和圖13表示了本發(fā)明一個(gè)較佳實(shí)施例的軟件編碼設(shè)備的硬件配置。
在計(jì)算機(jī)的主體(BDY)上安裝有IC卡槽(ICR)、軟盤(pán)驅(qū)動(dòng)器(FD)和硬盤(pán)驅(qū)動(dòng)器(圖中未示出)。
可以將調(diào)制解調(diào)器(MDM)與接收器(圖中未示出)做在計(jì)算機(jī)主體(BDY)之內(nèi),并通過(guò)電纜或經(jīng)過(guò)ANT的無(wú)線路由發(fā)送與接收數(shù)據(jù)。
鍵盤(pán)(KEY)和鼠標(biāo)器(MOU)可作為輸入設(shè)備與計(jì)算機(jī)主體(BDY)相連。
顯示器(CRT)和打印機(jī)(PRN)作為輸出設(shè)備與計(jì)算機(jī)主體(BDY)相連。
光盤(pán)驅(qū)動(dòng)器(MOD)作為另一外部存儲(chǔ)設(shè)備與計(jì)算機(jī)主體(BDY)相連。
在圖中,BUS是總線,代表控制總線與數(shù)據(jù)總線。CPU是使用32位或64位處理器的中央處理單元。MEM是存儲(chǔ)器,其由后續(xù)將要描述的編碼組合表及一個(gè)由操作域所規(guī)定的地址所設(shè)定。KEY是鍵盤(pán),它用來(lái)將命令輸入到該設(shè)備,亦用于輸入密鑰信息(K)。FD是軟盤(pán)設(shè)備,其讀出軟件執(zhí)行編碼處理。
盡管圖中只表示了用軟盤(pán)作為軟件供應(yīng)裝置,但是不應(yīng)將其局限于此,也可以使用磁光盤(pán)或通信線路等。此外,存儲(chǔ)器MEM或中央處理單元CPU中的緩沖器也可以作為軟件供應(yīng)裝置。
ICR是IC卡讀入器;可以用符合JEIDA(日本電子工業(yè)發(fā)展協(xié)會(huì))標(biāo)準(zhǔn)的PCMCIA卡來(lái)裝備本系統(tǒng)。在本發(fā)明較佳實(shí)施例中,以下將要描述的算法A1,A2,A3…An是通過(guò)將其存儲(chǔ)在該IC卡上來(lái)提供的。較為理想的是對(duì)該IC卡進(jìn)行物理保護(hù),例如由于用戶錯(cuò)誤地打開(kāi)該卡造成算法數(shù)據(jù)被完全擦掉、或者阻止卡的讀出。此外,可按一預(yù)先固定的周期改變?cè)摽ㄉ系亩嗨惴ㄅ渲?。如果周期性地更新存?chǔ)在該卡上的算法配置或內(nèi)容,就可以將軟件的譯碼限制在一給定周期,使其可作為演示軟件,或是某些限定用戶的特殊系統(tǒng)軟件來(lái)使用。
MOD是磁光盤(pán)設(shè)備,它能夠?qū)θ萘繛?00兆字節(jié)或容量更大的磁光盤(pán)進(jìn)行讀/寫(xiě)操作。而且,IF是通信接口,它與一外部通信線路相連。
降以上述設(shè)備配置之外,也可連接其它設(shè)備,如CD-ROM采樣設(shè)備。
盡管以上只解釋了圖2中的軟件編碼設(shè)備,但軟件譯碼設(shè)備也具有相同的配置。但是,當(dāng)該設(shè)備被用作為軟件譯碼設(shè)備時(shí),可能還需提供CD-ROM驅(qū)動(dòng)器。換句話說(shuō),CD-ROM更適合作為分送語(yǔ)音、靜止圖像、動(dòng)畫(huà)和其它大量數(shù)據(jù)的媒體。
圖3表示了本發(fā)明較佳實(shí)施例系統(tǒng)配置的功能性方框圖。圖中上半部分表示了軟件編碼設(shè)備的功能,而下半部分表示了軟件譯碼設(shè)備的功能。
以下內(nèi)容可用于解釋圖3中所示的功能與圖2中所示的硬件之間的關(guān)系。圖3所示的算法程序(A1,A2,…An)通過(guò)存儲(chǔ)在IC卡上來(lái)提供;而選擇處理、組合處理和組合程序處理則是一些通過(guò)使用中央處理單元(CPU)來(lái)實(shí)現(xiàn)的功能;密鑰信息(K)是利用鍵盤(pán)(KEY)輸入的;軟件存儲(chǔ)文件是通過(guò)軟盤(pán)設(shè)備(FD)或磁光盤(pán)設(shè)備(MOD)輸入的,并被寫(xiě)到存儲(chǔ)器(MEM)之中。
下面結(jié)合圖3中解釋軟件編碼處理。
首先,中央處理單元(CPU)通過(guò)選擇處理確定那些用于軟件編碼處理的基于算法。在此,執(zhí)行處理從而確定出兩種或更多種的算法程序。例如,可以通過(guò)利用一些算法表,如圖4所示的、已建立在存儲(chǔ)器(MEM)之中的那些算法表,來(lái)完成算法的確定。
如圖4所示,在算法表中以矩陣形式提供n個(gè)算法(A1,A2,…An)。按此方法,當(dāng)使用n個(gè)基本元素(算法)形成兩種算法的獨(dú)立組合時(shí),在允許重疊時(shí),則可以形成n2種算組合。
反之,在對(duì)n個(gè)基本元素(算法)的任意數(shù)目按串接(tandemconnection)方式組合的情況下,當(dāng)對(duì)每一元素(算法)進(jìn)行不同行組合時(shí),則可以獲得最大值為n!種的算法組合。此外,當(dāng)允許行重疊組合(交換)時(shí),則可以形成最大值為nn種的算法組合。
例如,算法A1和A2可以組合形成 ;三種算法可以組合成(例如) 。而且,同一算法也可以按L步形成組合,例如。 按此方式,在本發(fā)明較佳實(shí)施例中,由于可以形成多種算法組合,所以即使單獨(dú)的基本算法本身比較容易分析,但將它們組合在一起就可以形成一種難于分析的算法。
下面解釋一個(gè)具體的算法例子。圖5表示轉(zhuǎn)置型基本算法的例子。換言之,在此算法中,建立密鑰連接交換開(kāi)關(guān)程序,對(duì)每8位數(shù)據(jù)各個(gè)位的位置進(jìn)行轉(zhuǎn)置,然后再將其輸出。由外部信息源提供的密鑰信息(K)對(duì)轉(zhuǎn)置位置進(jìn)行控制。此外,盡管在圖中輸入/輸出按8一位配置來(lái)表示,但并不局限于這種配置。例如,可以將這類(lèi)轉(zhuǎn)置型算法作為“A1”寄存在前述的算法表中。
圖6表示了字符轉(zhuǎn)換型基本算法的一個(gè)具體例子。在此算法中,與輸入數(shù)據(jù)相對(duì)應(yīng)的輸出數(shù)據(jù)被放置在一個(gè)表中,并被保存起來(lái)。此外,盡管在圖中輸入/輸出按3一位配置來(lái)表示,實(shí)際上并不局于于這種配置。例如,可以將這類(lèi)字符轉(zhuǎn)換型算法作為“A2”寄存在前述的算法表中。
圖7表示了“異”算法的一個(gè)具體例子。在此算法中,例如,可以對(duì)每位數(shù)據(jù),使用密鑰信息(K)進(jìn)行“異”邏輯處理。此外,盡管在圖中輸入/輸出按3一位配置來(lái)表示,實(shí)際上并不局限于這種配置。例如,可以將這類(lèi)“異”算法作為“A3”寄存在前述的算法表中。
圖8表示了乘法型算法的一個(gè)具體例子。在此算法中,當(dāng)輸入8位數(shù)據(jù)時(shí),在經(jīng)過(guò)使用密鑰信息(K)的乘法器設(shè)備進(jìn)行乘運(yùn)算之后,再由輸出屏蔽電路時(shí)其進(jìn)行屏蔽,然后將其輸出。例如可以將這類(lèi)乘法型算法作為“A4”寄存在前述的算法表中。
當(dāng)中央處理單元(CPU)的“選擇處理”從上述多個(gè)算法中選擇了算法時(shí),就可以進(jìn)行組合處理(編碼執(zhí)行裝置)。圖9和圖10表示了這種組合處理的具體例子。
圖9表示DES型組合的例子。
在該算法中,當(dāng)輸入了軟件數(shù)據(jù)時(shí),將其按預(yù)先確定的位數(shù)(例如在每8位之后)劃分成組,并對(duì)這些組進(jìn)行處理。在此,將所述8位數(shù)據(jù)劃分成包含高4位的左半部分?jǐn)?shù)據(jù)(D1)和包含低4位的右半部分?jǐn)?shù)據(jù)(D2)。
然后用算法A1處理右半部分?jǐn)?shù)據(jù)(D2),并將其作為已編碼數(shù)據(jù)C1加以輸出。
將左半部分?jǐn)?shù)據(jù)(D1)與前述已編碼的數(shù)據(jù)(C1)一起經(jīng)過(guò)“異”邏輯處理,并作為已編碼數(shù)據(jù)(D1+C1)加以輸出。
反之,用A2算法對(duì)包含左半部分?jǐn)?shù)據(jù)D1和A1算法輸出數(shù)據(jù)(C1)的異邏輯處理輸出數(shù)據(jù)進(jìn)行處理,然后作為已編碼的數(shù)據(jù)C2加以輸出。對(duì)已編碼的數(shù)據(jù)C2與右半部分?jǐn)?shù)據(jù)D2一起進(jìn)行“異”邏輯處理,并作為已編碼的數(shù)據(jù)(D2+C2)加以輸出。
盡管在圖9中未給出譯碼處理,但通過(guò)用A1譯碼算法代替圖9中的A1程序、A2譯碼算法代替A2程序,就足以形成一個(gè)譯碼處理系統(tǒng)。
圖10表示一個(gè)ENIGMA組合的例子。在該例子中,先用算法A1對(duì)輸入的軟件初步施以變化之后,再用算法A2程序?qū)ζ涫┮远?jí)變化。
如圖10的右半部分所示,在譯碼時(shí)先用算法A2的譯碼算法A2-1對(duì)其進(jìn)行初步譯碼,再用算法A1的譯碼算法A1-1對(duì)其進(jìn)行二級(jí)譯碼,這樣軟件就可以恢復(fù)到其原始狀態(tài)。
下面利用圖11解釋一個(gè)算法的更具體的較佳實(shí)施例。在該例子中,置換型算法(A1)與字符轉(zhuǎn)換型算法(A2)相組合,并進(jìn)行ENIGMA型組合處理。
首先為密鑰連接交換開(kāi)關(guān)提供密鑰信息(K)。該密鑰信息(K)是描述如何對(duì)輸入的8位數(shù)據(jù)的每一位針對(duì)輸出進(jìn)行轉(zhuǎn)置的信息。在圖中,將下列密鑰信息(K)的設(shè)定提供給密鑰連接交換開(kāi)關(guān)位#1→位#7、位#2→位#3、位#3→位#2、位#4→位#5、位#5→位#1、位#6→位#8、位#7→位#6、位#8→位#4。
在此,當(dāng)把軟件數(shù)據(jù)(常規(guī)的字符數(shù)據(jù))“0Fh”,即“00001111”,提供給具有上述密鑰信息(K)的密鑰連接交換開(kāi)關(guān)時(shí),發(fā)生下列置換位#1的“0”成為位#7、位#2的“0”成為位#3、位#3的“0”成為位#2、位#4的“0”成為位#5、位#5的“1”成為位#1、位#6的“1”成為位#8、位#7的“1”成為位#6、#8的“1”成為位#4、結(jié)果,算法A1產(chǎn)生的交換結(jié)果是“10010101”,即“95h”。
接著,用字符轉(zhuǎn)換型算法A2,對(duì)已由算法A1編碼的初步編碼數(shù)據(jù)“95h”進(jìn)行二級(jí)編碼。
在此,先將輸入數(shù)據(jù)(95h)劃分成包含4位的左半部分和包含低4位的右半部分。然后根據(jù)每個(gè)轉(zhuǎn)換表對(duì)其施以轉(zhuǎn)換。結(jié)果,二級(jí)編碼輸出數(shù)據(jù)變?yōu)椤?0100000”,即“20h”。
接下來(lái)執(zhí)行如圖3所示的上部分選擇處理、組合處理與組合程序處理,并產(chǎn)生編碼的軟件。然后將該編碼軟件保存在諸如MO、CD-ROM、或者軟盤(pán)等媒體上,并由供應(yīng)者交付給用戶,也可以經(jīng)通信線路通過(guò)接口(I/O)發(fā)送給用戶。同時(shí)也將算法選擇次序代碼(例如前述的代碼“ ”)與已編碼軟件一起存儲(chǔ)在MO、CD-ROM、軟盤(pán)等媒體上;而對(duì)于通過(guò)通信線路傳送的情況,還可以將代碼與編碼軟件一起沿通信路由發(fā)送給用戶。此外,也可以通過(guò)與前述編碼軟件不同的獨(dú)立傳送路由發(fā)送選擇次序代碼,例如可以通過(guò)電話口頭解釋選擇次序代碼。此外,可將選擇次序代碼與密鑰信息(K)一起提供給用戶。
用戶接收到前述的編碼軟件與選擇次序代碼之后,使用用戶方面的譯碼設(shè)備,根據(jù)前述的選擇次序代碼信息選擇譯碼算法,并進(jìn)行組合處理與組合程序處理,從而獲得譯碼的軟件。
圖12表示譯碼處理的一個(gè)具體例子。
在圖中,在把編碼軟件的編碼數(shù)據(jù)(20h)每8位的高4位劃分成左半部分、低4位劃分成右半部分之后,先用算法A2-1對(duì)其進(jìn)行字符轉(zhuǎn)換。用置換型基本算法A1-1對(duì)由字符轉(zhuǎn)換算法得到的初級(jí)編碼數(shù)據(jù)(95h)進(jìn)行置換,從而獲得譯碼數(shù)據(jù)“00001111”,即“0Fh”。
權(quán)利要求
1.一種軟件/數(shù)據(jù)編碼系統(tǒng),包括設(shè)置部分,用于設(shè)置軟件/數(shù)據(jù);劃分部分,用于將軟件/數(shù)據(jù)劃分成預(yù)定數(shù)目的第一位組和第二位組;第一處理部分,處理預(yù)定數(shù)目的第二位組并且輸出第一編碼軟件/數(shù)據(jù);第一邏輯處理部分,對(duì)于預(yù)定數(shù)目的第一位組以及第一編碼的軟件/數(shù)據(jù)進(jìn)行“異或”邏輯處理,并輸出第一組合的軟件/數(shù)據(jù);第二處理部分,處理第一組合的軟件/數(shù)據(jù)并且輸出第二編碼的軟件/數(shù)據(jù);第二邏輯處理部分,對(duì)于預(yù)定數(shù)目的第二位組以及第二編碼的軟件/數(shù)據(jù)進(jìn)行“異或”邏輯處理,并輸出第二組合的軟件/數(shù)據(jù);以及密鑰提供部分,為第一和第二處理部分提供密鑰信息。
2.一種軟件編碼系統(tǒng),包括設(shè)置部分,用于設(shè)置軟件/數(shù)據(jù);密鑰提供部分,用于提供密鑰,密鑰是描述如何對(duì)提供的軟件/數(shù)據(jù)進(jìn)行轉(zhuǎn)換以進(jìn)行輸出的信息;密鑰鏈交換部分,使用密鑰提供部分提供的密鑰對(duì)從設(shè)置部分讀出的軟件/數(shù)據(jù)進(jìn)行編碼,并且輸出初級(jí)編碼的軟件/數(shù)據(jù);轉(zhuǎn)換初級(jí)編碼的軟件/數(shù)據(jù)的字符轉(zhuǎn)換部分,包括劃分部分,將初級(jí)編碼的軟件/數(shù)據(jù)劃分成多個(gè)軟件/數(shù)據(jù)部分,以及轉(zhuǎn)換表,對(duì)應(yīng)于劃分的初級(jí)編碼軟件/數(shù)據(jù),并且輸出編碼的軟件/數(shù)據(jù);以及輸出部分,輸出來(lái)自字符轉(zhuǎn)換部分的編碼的軟件/數(shù)據(jù),并且輸出用于標(biāo)識(shí)密鑰鏈交換部分和字符轉(zhuǎn)換部分的編碼標(biāo)識(shí)信息。
3.一種軟件編碼系統(tǒng),包括輸入部分,輸入編碼的軟件/數(shù)據(jù);轉(zhuǎn)換編碼的軟件/數(shù)據(jù)的字符轉(zhuǎn)換部分,包括劃分部分,將編碼的軟件/數(shù)據(jù)劃分成多個(gè)軟件/數(shù)據(jù)部分,以及一個(gè)轉(zhuǎn)換表,對(duì)應(yīng)于部分軟件/數(shù)據(jù),并且輸出初級(jí)譯碼的部分軟件/數(shù)據(jù);組合部分,組合部分譯碼的軟件/數(shù)據(jù);密鑰提供部分,提供用于描述應(yīng)如何轉(zhuǎn)換組合的部分軟件/數(shù)據(jù)的每一位以用于輸出的密鑰;以及密鑰鏈交換部分,使用密鑰提供部分提供的密鑰對(duì)來(lái)自組合部分的組合的部分譯碼軟件/數(shù)據(jù)進(jìn)行譯碼并且輸出譯碼的輸出軟件/數(shù)據(jù)。
4.一種軟件編碼系統(tǒng),包括設(shè)置部分,設(shè)置軟件/數(shù)據(jù);算法生成部分,根據(jù)至少兩個(gè)編碼算法,響應(yīng)請(qǐng)求生成或重組一個(gè)新的編碼算法;編碼執(zhí)行部分,用算法生成部分生成的新的編碼算法對(duì)設(shè)置部分設(shè)置的軟件進(jìn)行編碼;以及輸出部分,輸出由編碼執(zhí)行部分編碼的軟件/數(shù)據(jù)。
5.根據(jù)權(quán)利要求4的軟件編碼系統(tǒng),還包括算法生成過(guò)程記錄部分,記錄編碼算法生成部分如何組合至少兩個(gè)基本算法;其中輸出部分輸出編碼的軟件/數(shù)據(jù)以及由算法生成過(guò)程記錄部分記錄的算法生成信息。
全文摘要
使用兩種或更多種編碼算法的軟件編碼方法,同時(shí)使用與之對(duì)應(yīng)的譯碼算法進(jìn)行譯碼處理。在軟件編碼過(guò)程中,將編碼算法組合信息與編碼軟件一同傳送給用戶。而在譯碼過(guò)程中,根據(jù)前述的算法組合信息選擇譯碼裝置所擁有的相對(duì)應(yīng)算法,對(duì)前述已編碼軟件進(jìn)行譯碼。還提供了相應(yīng)的軟件編碼及譯碼系統(tǒng),利用兩種以上算法的組合,防止對(duì)軟件的非法譯碼。
文檔編號(hào)G06F21/60GK1323115SQ0110463
公開(kāi)日2001年11月21日 申請(qǐng)日期2001年2月19日 優(yōu)先權(quán)日1995年2月14日
發(fā)明者秋山良太, 吉岡誠(chéng) 申請(qǐng)人:富士通株式會(huì)社