專利名稱:用于解決名稱沖突的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于在加密的軟件組件中解決名稱沖突的方法和一種用于名稱無沖突地集成來自于不同的軟件組件制造商OEM (OriginalEquipment Manufacturer原始設(shè)備制造商)的軟件組件的系統(tǒng)。
背景技術(shù):
在應(yīng)用加密的軟件或者軟件組件的情況下,可能出現(xiàn)名稱沖突。由于相應(yīng)的軟件組件僅僅加密地存在,因此在常用的系統(tǒng)中不容易解決這種名稱沖突。如果例如由不同的軟件組件制造商OEM生成或者說生成了軟件組件或者軟件包,并且隨后對其加密,則在以后集成軟件組件時不能排除名稱沖突。如果例如兩個軟件包在功能名稱相同的情況下調(diào)用特定的功能,然而該功能在兩個軟件組件中以不同的子程序或者說Subroutine命名,則存在名稱沖突。由于對于兩個軟件包或者說軟件組件的用戶而言,源代碼并不以未加密的形式存在,因此其不能解決名稱沖突。
發(fā)明內(nèi)容
因此本發(fā)明的目的在于,提出用于在加密的軟件組件中解決名稱沖突的一種方法和一種系統(tǒng)。該目的根據(jù)本發(fā)明通過一種具有根據(jù)權(quán)利要求1所述的特征的方法來實現(xiàn)。本發(fā)明提出了一種用于在加密的軟件組件中解決名稱沖突的方法,包括以下步驟(a)在加密的軟件組件(ENC-SWK)中識別名稱沖突;(b)利用用于解決名稱沖突的名稱沖突解決規(guī)則來擴(kuò)展其中一個識別了名稱沖突的加密的軟件組件(ENC-SWK);(c)在將加密的軟件組件傳輸至目標(biāo)系統(tǒng)裝置和在目標(biāo)系統(tǒng)裝置上對其進(jìn)行解密之后,根據(jù)一同傳輸?shù)拿Q沖突解決規(guī)則解決名稱沖突。在根據(jù)本發(fā)明的方法的一個實施方式中,當(dāng)軟件組件具有至少一個用于功能調(diào)用、常量、變量、數(shù)據(jù)類型或其它數(shù)據(jù)對象的名稱與不同的功能、常量、變量、數(shù)據(jù)類型或其它對象的名稱相同時,則識別在兩個加密的軟件組件之間的名稱沖突。在根據(jù)本發(fā)明的方法的一個可能的實施方式中,根據(jù)相應(yīng)的加密的軟件組件的未加密的頭數(shù)據(jù)識別在加密的軟件組件之間的名稱沖突。在根據(jù)本發(fā)明的方法的一個可替換的實施方式中,根據(jù)在加密的軟件組件中所應(yīng)用的、用于軟件組件調(diào)用、常量、變量、數(shù)據(jù)類型或?qū)ο蟮拿Q的表格識別在加密的軟件組件之間的名稱沖突。在根據(jù)本發(fā)明的方法的一個可能的實施方式中,在兩個軟件組件之一中,在對該軟件組件進(jìn)行針對所有包含在軟件組件中的、應(yīng)用那個引起名稱沖突的名稱的功能調(diào)用和訪問解密之后,通過替代該名稱來替換那個引起該名稱沖突的名稱,以解決在兩個加密的軟件組件之間的名稱沖突。在根據(jù)本發(fā)明的方法的一個可能的實施方式中,替代名稱包含在一同傳輸?shù)拿Q沖突解決規(guī)則中。在一個可替換的實施方式中,替代名稱在目標(biāo)系統(tǒng)裝置中生成。在根據(jù)本發(fā)明的方法的一個可能的實施方式中,替代名稱由生成的隨機(jī)數(shù)或者由計數(shù)值構(gòu)成。在根據(jù)本發(fā)明的方法的一個可能的實施方式中,用于另一個軟件組件的功能調(diào)用、常量、變量、數(shù)據(jù)類型或者其它對象的名稱包括一系列符號、字母和數(shù)字。在根據(jù)本發(fā)明的方法的一個可能的實施方式中,被開發(fā)軟件組件在應(yīng)用混合加密方法時利用公開的密鑰加密。在根據(jù)本發(fā)明的方法的一個可能的實施方式中,加密的軟件組件在應(yīng)用混合加密方法時利用私人密鑰解密,該私人密鑰集成在目標(biāo)系統(tǒng)裝置中。在根據(jù)本發(fā)明的方法的一個實施方式中,公開密鑰和私人密鑰作為密鑰對通過目標(biāo)系統(tǒng)裝置的制造商生成。在根據(jù)本發(fā)明的方法的一個可能的實施方式中,目標(biāo)系統(tǒng)裝置由程序存儲控制器構(gòu)成。在根據(jù)本發(fā)明的方法的一個可能的實施方式中,自動地執(zhí)行名稱沖突識別、利用名稱沖突解決規(guī)則來擴(kuò)展加密的軟件組件以及解決名稱沖突。本發(fā)明還提出了一種用于名稱無沖突地集成來自于不同的軟件組件制造商的軟件組件的系統(tǒng),具有不同的軟件組件制造商的軟件開發(fā)裝置,其制造軟件組件并且利用其相應(yīng)的帶密碼的密鑰進(jìn)行加密,其中在集成加密的軟件組件時出現(xiàn)名稱沖突的情況下,利用名稱沖突解決規(guī)則來擴(kuò)展其中出現(xiàn)了名稱沖突的至少一個加密的軟件組件,和傳輸裝置,用于將加密的軟件組件連同通過名稱沖突解決規(guī)則擴(kuò)展的加密的軟件組件傳輸至目標(biāo)系統(tǒng)裝置,其在接收到傳輸?shù)募用艿能浖M件之后首先將其解密并且隨后根據(jù)一同傳輸?shù)拿Q沖突解決規(guī)則自動地解決出現(xiàn)的名稱沖突。在根據(jù)本發(fā)明的系統(tǒng)的一個可能的實施方式中,傳輸裝置具有數(shù)據(jù)網(wǎng)。在根據(jù)本發(fā)明的系統(tǒng)的一個可替換的實施方式中,傳輸裝置由數(shù)據(jù)載體或者存儲器構(gòu)成。本發(fā)明還提出了一種目標(biāo)系統(tǒng)裝置,用于解決軟件組件中的名稱沖突,具有用于接收加密的軟件組件的接口,其中,當(dāng)利用名稱沖突解決規(guī)則來擴(kuò)展至少一個接收的加密的軟件組件時,目標(biāo)系統(tǒng)裝置在對加密的軟件組件解密之后,根據(jù)接收的名稱沖突解決規(guī)則自動地解決出現(xiàn)的名稱沖突。
下面參照
根據(jù)本發(fā)明的方法和根據(jù)本發(fā)明的系統(tǒng)的實施方式。其示出圖1是流程圖,用于說明根據(jù)本發(fā)明的用于在加密的軟件組件中解決名稱沖突的方法的一個可能的實施方式;圖2是框圖,用于說明根據(jù)本發(fā)明的用于名稱無沖突地集成軟件組件的系統(tǒng)的一個可能的實施方式。
具體實施例方式如在圖1中可識別出地,根據(jù)本發(fā)明的用于在加密的軟件組件中解決名稱沖突的方法基本上具有三個步驟Si,S2,S3。在第一步驟Sl中,首先識別或者說探測了在加密的軟件組件中出現(xiàn)名稱沖突的情況,該軟件組件來自于相同的或者不同的軟件組件制造商OEM。在此,特別當(dāng)軟件組件具有至少一個用于功能調(diào)用、常量、變量、數(shù)據(jù)類型或其它對象的名稱與或者不同的功能、常量、變量、數(shù)據(jù)類型的其它對象的名稱相同時,則識別了在加密的軟件組件之間的名稱沖突。如果例如兩個軟件組件在針對不同的功能的功能調(diào)用中具有相同的名稱,則存在名稱沖突,該名稱沖突在步驟Sl中被識別。在一個可能的實施變體中可以根據(jù)相應(yīng)的加密的軟件組件的未加密的頭數(shù)據(jù)來識別該名稱沖突。在一個可替換的實施方式中,根據(jù)在加密的軟件組件中所應(yīng)用的、用于軟件組件調(diào)用、常量、變量、數(shù)據(jù)類型或?qū)ο蟮拿Q的表格識別了在加密的軟件組件之間的名稱沖突。一旦在步驟Sl中識別了名稱沖突,則在步驟S2中進(jìn)行對加密的軟件組件中任一個的擴(kuò)展,其中利用用于解決名稱沖突的名稱沖突解決規(guī)則來識別名稱沖突。最后,在步驟S3中將加密的軟件組件傳輸至目標(biāo)系統(tǒng)裝置。在傳輸之后才在目標(biāo)系統(tǒng)裝置上對軟件組件行解密之后,根據(jù)一同傳輸?shù)膶τ谀繕?biāo)系統(tǒng)裝置在明文中可讀取的名稱沖突解決規(guī)則解決名稱沖突。因此,在第三方不會看到軟件組件制造商OEM的源代碼的情況下解決名稱沖突。在兩個軟件組件之一中,在對軟件組件進(jìn)行針對所有包含在軟件組件中的、應(yīng)用那個引起名稱沖突的名稱的功能調(diào)用和訪問解密之后,通過替代該名稱來替換那個引起名稱沖突的名稱,以解決在兩個所述加密的軟件組件之間的名稱沖突。在根據(jù)本發(fā)明的方法的一個可能的實施方式中,替代名稱包含在一同傳輸?shù)拿Q沖突解決規(guī)則中。名稱沖突解決規(guī)則因此例如稱為通過“替代名稱”替換軟件組件χ的“功能名稱”??商鎿Q地,替代名稱也可以通過目標(biāo)系統(tǒng)裝置生成。替代名稱例如可以是生成的隨機(jī)數(shù)或通過計數(shù)器形成的計數(shù)值。用于功能調(diào)用、常量、變量、數(shù)據(jù)類型或其它對象或者說數(shù)據(jù)對象的名稱例如可以是一系列符號,該符號包括字母和數(shù)字。在根據(jù)本發(fā)明的方法的一個可能的實施方式中,通過軟件組件制造商OEM開發(fā)的軟件組件SWK在應(yīng)用混合加密方法時利用公開密鑰Kpub加密。在從發(fā)射裝置傳輸至接收裝置之后,在接收側(cè)在應(yīng)用混合加密方法的情況下利用私人密鑰Kphv對加密的軟件組件ENC-SffK解密,該私人密鑰可以集成在目標(biāo)系統(tǒng)裝置中。在此,私人密鑰Kphv優(yōu)選地防人為篡改地存儲在目標(biāo)系統(tǒng)裝置中。在根據(jù)本發(fā)明的方法的一個可能的實施方式中,公開密鑰Kpub和私人密鑰作為密鑰對通過目標(biāo)系統(tǒng)裝置的制造商生成,其中目標(biāo)系統(tǒng)裝置可以是程序存儲控制器SPS。
圖2示出了框圖,用于說明根據(jù)本發(fā)明的用于名稱無沖突地集成軟件組件SWK的系統(tǒng)1的一個可能的實施方式,該系統(tǒng)可以來自于不同的軟件組件制造商OEM。在圖2中示出的實例中,兩個不同的軟件組件制造商OEMa* OEMb例如借助于相應(yīng)的開發(fā)工具生成兩個不同的軟件組件SWKa和SWKB。軟件開發(fā)裝置2A,2B利用相應(yīng)的軟件組件制造商OEMa和OEMb的相應(yīng)帶有密碼的密鑰Kra對軟件組件SWK加密。軟件組件SWK例如可以是程序或子程序,但也可以是其他軟件模塊,例如文件。軟件組件SWK利用相應(yīng)的開發(fā)工具首先被生成或者說編程,并且作為資源或者說源代碼存在。為了保護(hù)軟件組件SWK不被不期望的未被授權(quán)的第三方訪問,該軟件組件或者說源代碼借助于帶有密碼的密鑰Kcjema或者Kmb通過加密單元在軟件開發(fā)裝置2A,2B內(nèi)被相應(yīng)地加密,并且隨后以被加密的形式存在。在圖2中示出的實施例中隨后將兩個加密的軟件組件ENC-SWKa和ENC-SWKb例如通過第三軟件組件制造商C集成在軟件開發(fā)裝置2C或軟件集成裝置中。在圖2中示出的實例中,兩個軟件組件制造商OEMa和OEMb例如是另一個軟件組件制造商OEM。的供應(yīng)商。在第三軟件組件制造商OEMc的裝置2C中,當(dāng)集成兩個加密的軟件組件ENC-SWKa, ENC-SWKb時出現(xiàn)名稱沖突時,其中出現(xiàn)了名稱沖突的兩個加密的軟件組件中的至少一個利用名稱沖突解決規(guī)則來擴(kuò)展。在完成對兩個加密的軟件組件中的一個、例如加密的軟件組件ENC-SWKb的擴(kuò)展之后,兩個加密的軟件組件通過傳輸裝置3被傳輸至目標(biāo)系統(tǒng)裝置4。在此,實現(xiàn)了將加密的軟件組件連同通過名稱沖突解決規(guī)則來擴(kuò)展的加密的軟件組件一起傳輸。在圖2中示出的實施例中,傳輸裝置3是數(shù)據(jù)線或數(shù)據(jù)網(wǎng)。在一個可替換的實施方式中,傳輸裝置是數(shù)據(jù)載體或者說存儲器。在通過數(shù)據(jù)網(wǎng)進(jìn)行傳輸時,傳輸可以有線地但也可以無線地進(jìn)行。在目標(biāo)系統(tǒng)裝置4的一側(cè)上,在接收到傳輸?shù)募用艿能浖M件之后首先對其進(jìn)行解密并且隨后根據(jù)一同傳輸?shù)拿Q沖突解決規(guī)則,在接收側(cè)自動解決出現(xiàn)的名稱沖突。隨后執(zhí)行軟件組件。目標(biāo)系統(tǒng)裝置4例如可以是可編程存儲控制器SPS。在根據(jù)本發(fā)明的方法和系統(tǒng)中,目標(biāo)系統(tǒng)裝置4接收到信息,該信息是有關(guān)于需替換的功能調(diào)用,用于根據(jù)一同傳輸?shù)拿Q沖突解決規(guī)則解決名稱沖突。根據(jù)本發(fā)明的系統(tǒng)使得用戶可以靈活地重新命名加密地提供的軟件或者說軟件組件的調(diào)用的功能。在此,盡管為了解決名稱沖突可以存在重新命名的可能性,但是也可以被保護(hù)相應(yīng)的軟件組件制造商OEM的技術(shù)秘密(Know-how),使第三方無法對其訪問,這是因為用戶可以在其目標(biāo)系統(tǒng)上解密之后在目標(biāo)系統(tǒng)裝置4上執(zhí)行加密的軟件,然而不能以未加密的形式知曉。根據(jù)本發(fā)明的方法和系統(tǒng)對于各種類型制成的軟件組件SWK或者說軟件模塊是通用可替換的。根據(jù)本發(fā)明的方法也可以應(yīng)用在不同軟件組件的多級的集成中。在一個可能的實施方式中,可用于解決名稱沖突的替代名稱包含在一同傳輸?shù)拿Q沖突解決規(guī)則中。在一個可替換的實施方式中,替代名稱在用戶的目標(biāo)系統(tǒng)裝置4中生成。在此涉及生成的隨機(jī)數(shù)、生成的計數(shù)值或者生成的一系列字母。替代名稱的字寬可以變化或預(yù)設(shè)。在一個可能的實施方式中進(jìn)行安全性檢查,即替代名稱是否就其而言解決了名稱沖突。在這種情況下,例如借助于隨機(jī)發(fā)生器或計數(shù)器生成了另一個替代名稱。
權(quán)利要求
1.一種用于在加密的軟件組件(ENC-SWK)中解決名稱沖突的方法,包括以下步驟(a)在所述加密的軟件組件(ENC-SWK)中識別(Si)名稱沖突;(b)利用用于解決名稱沖突的名稱沖突解決規(guī)則來擴(kuò)展(S2)其中一個識別了所述名稱沖突的所述加密的軟件組件(ENC-SWK);(c)在將所述加密的軟件組件(ENC-SWK)傳輸至目標(biāo)系統(tǒng)裝置(4)和在所述目標(biāo)系統(tǒng)裝置(4)上對所述加密的軟件組件進(jìn)行解密之后,根據(jù)一同傳輸?shù)乃雒Q沖突解決規(guī)則解決(S3)所述名稱沖突。
2.根據(jù)權(quán)利要求1所述的方法,其中當(dāng)所述軟件組件(SWK)具有的至少ー個用于功能調(diào)用、常量、變量、數(shù)據(jù)類型或其它對象的名稱與不同的功能、常量、變量、數(shù)據(jù)類型或其它對象的名稱相同時,則識別在所述加密的軟件組件(ENC-SWK)之間的名稱沖突。
3.根據(jù)權(quán)利要求1或2所述的方法,其中根據(jù)相應(yīng)的所述加密的軟件組件(ENC-SWK) 的未加密的頭數(shù)據(jù)識別在所述加密的軟件組件(ENC-SWK)之間的名稱沖突。
4.根據(jù)權(quán)利要求1或2所述的方法,其中根據(jù)在所述加密的軟件組件(ENC-SWK)中所應(yīng)用的、用于軟件組件調(diào)用、常量、變量、數(shù)據(jù)類型或?qū)ο蟮拿Q的表格識別在所述加密的軟件組件(ENC-SWK)之間的名稱沖突。
5.根據(jù)權(quán)利要求1-4所述的方法,其中在兩個所述軟件組件之一中,在對所述軟件組件進(jìn)行針對所有包含在軟件組件中的、應(yīng)用那個引起所述名稱沖突的名稱的功能調(diào)用和訪問解密之后,通過替代所述名稱來替換那個引起所述名稱沖突的名稱,以解決在兩個所述加密的軟件組件(ENC-SWK)之間的名稱沖突。
6.根據(jù)權(quán)利要求5所述的方法,其中所述替代名稱包含在所述一同傳輸?shù)拿Q沖突解決規(guī)則中,或者在所述目標(biāo)系統(tǒng)裝置(4)中生成。
7.根據(jù)權(quán)利要求6所述的方法,其中所述替代名稱由生成的隨機(jī)數(shù)或者由計數(shù)值構(gòu)成。
8.根據(jù)權(quán)利要求1-7所述的方法,其中用于另ー個軟件組件的功能調(diào)用、常量、變量、 數(shù)據(jù)類型或者其它對象的名稱包括一系列符號,所述符號包括字母和數(shù)字。
9.根據(jù)權(quán)利要求1-8所述的方法,其中被開發(fā)軟件組件(SWK)在應(yīng)用混合加密方法時利用公開密鑰(Kpub)加密。
10.根據(jù)權(quán)利要求1-9所述的方法,其中所述加密的軟件組件(ENC-SWK)在應(yīng)用混合加密方法時利用私人密鑰(κ_ν)解密,所述私人密鑰集成在所述目標(biāo)系統(tǒng)裝置(4)中。
11.根據(jù)權(quán)利要求1-10所述的方法,其中所述公開密鑰(Kpub)和私人密鑰(Kphv)作為密鑰對通過所述目標(biāo)系統(tǒng)裝置(4)的制造商生成。
12.根據(jù)權(quán)利要求11所述的方法,其中所述目標(biāo)系統(tǒng)裝置(4)由程序存儲控制器構(gòu)成。
13.根據(jù)權(quán)利要求1-12所述的方法,其中自動地執(zhí)行所述名稱沖突識別、利用所述名稱沖突解決規(guī)則來擴(kuò)展所述加密的軟件組件(ENC-SWK)以及解決所述名稱沖突。
14.一種用于名稱無沖突地集成來自于軟件組件制造商(OEM)的軟件組件的系統(tǒng)(1), 具有不同的軟件組件制造商(OEMA,OEMB)的軟件開發(fā)裝置(2A,2B),所述軟件開發(fā)裝置制造軟件組件(SWKA, SffKB)并且利用所述軟件組件的相應(yīng)的帶密碼的密鑰(KOEMA,KOEMB)進(jìn)行加密,其中在集成所述加密的軟件組件(ENC-SWK)時出現(xiàn)名稱沖突的情況下,利用名稱沖突解決規(guī)則來擴(kuò)展其中出現(xiàn)所述名稱沖突的至少一個加密的軟件組件(ENC-SWKA,ENC-SffKB),^P傳輸裝置(3),用于將所述加密的軟件組件(ENC-SWK)連同通過所述名稱沖突解決規(guī)則擴(kuò)展的所述加密的軟件組件(ENC-SWKA,ENC-SffKB)傳輸至目標(biāo)系統(tǒng)裝置(4),所述目標(biāo)系統(tǒng)裝置在接收到傳輸?shù)乃黾用艿能浖M件(ENC-SWKA,ENC-SWKB)之后首先將所述加密的軟件組件解密,并且隨后根據(jù)一同傳輸?shù)乃雒Q沖突解決規(guī)則自動地解決出現(xiàn)的所述名稱沖突。
15.根據(jù)權(quán)利要求14所述的系統(tǒng),其中,所述傳輸裝置(3)具有數(shù)據(jù)網(wǎng)或者數(shù)據(jù)載體。
16.一種目標(biāo)系統(tǒng)裝置(4),用于解決特別用于根據(jù)權(quán)利要求14或15所述的系統(tǒng)(1)的軟件組件中的名稱沖突,具有用于接收加密的軟件組件(ENC-SWK)的接口,其中,當(dāng)利用名稱沖突解決規(guī)則來擴(kuò)展至少一個接收的所述加密的軟件組件(ENC-SffK)時,所述目標(biāo)系統(tǒng)裝置(4)在對所述加密的軟件組件(ENC-SWKA, ENC-SffKB)解密之后,根據(jù)接收的所述名稱沖突解決規(guī)則自動地解決出現(xiàn)的名稱沖突。
17.一種計算機(jī)程序,具有用于實施根據(jù)權(quán)利要求1-13所述的方法的程序指令。
18.一種數(shù)據(jù)載體,所述數(shù)據(jù)載體存儲根據(jù)權(quán)利要求17所述的計算機(jī)程序。
全文摘要
本發(fā)明涉及用于名稱無沖突地集成來自于軟件組件制造商(OEM)的軟件組件的一種方法和一種系統(tǒng),具有制造軟件組件(SWK)并利用其相應(yīng)的帶密碼的密鑰進(jìn)行加密的不同軟件組件制造商(OEM)的軟件開發(fā)裝置,其中在集成加密的軟件組件(ENC-SWK)時出現(xiàn)名稱沖突的情況下,利用名稱沖突解決規(guī)則來擴(kuò)展其中出現(xiàn)了名稱沖突的至少一個加密的軟件組件(ENC-SWK);并且具有傳輸裝置,用于將加密的軟件組件(ENC-SWK)連同通過名稱沖突解決規(guī)則擴(kuò)展的加密的軟件組件傳輸至目標(biāo)系統(tǒng)裝置,其在接收到傳輸?shù)募用艿能浖M件(ENC-SWK)之后首先將其解密并且隨后根據(jù)一同傳輸?shù)拿Q沖突解決規(guī)則自動地解決出現(xiàn)的名稱沖突。本發(fā)明實現(xiàn)了解決在可能來自于不同的軟件組件制造商的軟件組件加密時的名稱沖突,而第三方不會看到軟件組件的源代碼。
文檔編號G06F9/445GK102598013SQ201080050757
公開日2012年7月18日 申請日期2010年10月6日 優(yōu)先權(quán)日2009年11月9日
發(fā)明者貝恩德·邁爾, 邁克爾·布勞恩, 馬庫斯·迪希特 申請人:西門子公司