国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      程序代碼確認系統(tǒng)及方法

      文檔序號:6649871閱讀:239來源:國知局
      專利名稱:程序代碼確認系統(tǒng)及方法
      技術領域
      本發(fā)明涉及一種程序代碼驗證的系統(tǒng)及方法,特別是涉及一種使用判斷電路以判斷程序代碼完整性的系統(tǒng)及方法。
      背景技術
      由于科技的進步,擅自復制軟件或是其它的數(shù)字媒體已經(jīng)不是一件困難的事,也使得這種情形越來越普遍。舉例來說,當一系統(tǒng)廠商針對一處理器而撰寫一程序代碼后,將此程序代碼存于一存儲器中而出售給其客戶,例如一硬件經(jīng)銷商。此硬件經(jīng)銷商分別向硬件制造商及系統(tǒng)廠商購買硬件及硬件所對應的程序代碼。然而,當程序代碼缺乏保護時,硬件經(jīng)銷商可能只購買數(shù)套程序代碼,而在未經(jīng)系統(tǒng)廠商的同意下,擅自復制此程序代碼,造成系統(tǒng)廠商的巨額損失。
      目前,已有許多方法用來防止這類數(shù)字數(shù)據(jù)盜拷的問題。例如,臺灣專利公開號588243,發(fā)明名稱為“認證系統(tǒng)及方法”,披露了一種用以保護存儲器中所儲存數(shù)據(jù)的方法,其系通過一微控制器執(zhí)行運算程序而確認一密碼,確認后才能對存儲器中的數(shù)據(jù)進行存取。然而,使用微控制器進行運算程序時,會造成系統(tǒng)功率的大量消耗,且密碼本身就是要被防止竄改的對象。
      針對有保護機制的程序,可以利用修改程序內容去避開保護機制。雖然可以利用多重的保護機制,拖延破解的時間,但如果不能即早檢測程序已遭修改,做出主動防范的行動,完全破解是遲早的問題。所以能立刻檢測程序的完整性,是更有效的方法。
      因此,有必要提供一種程序代碼驗證的系統(tǒng)方法,以有效地解決程序代碼被擅改或復制的問題。

      發(fā)明內容
      鑒于現(xiàn)有技術所存在的問題,本發(fā)明提供了一種程序代碼驗證系統(tǒng)及方法。
      根據(jù)本發(fā)明的一方面,提供了一種用以判斷一程序代碼是否與原始程序代碼相同的系統(tǒng)及方法,其判斷方法是使用一判斷電路,判斷對應于原始程序代碼的一認證序列與對應于程序代碼的一運算結果,其中,認證序列是由對原始程序代碼進行一預定算法而得,而運算結果是由對程序代碼進行此預定算法而得。
      根據(jù)本發(fā)明的另一方面,提供了一種使用一判斷電路以確認一程序代碼的系統(tǒng)及方法,此判斷電路可判斷程序代碼的完整性,且程序代碼中會檢測此判斷電路是否存在,其中此判斷電路利用一硬線邏輯(hardwire logic)。


      圖1示出了本發(fā)明一實施例的一計算機系統(tǒng);圖2示出了本發(fā)明一實施例的程序代碼的運算及處理示意圖;以及圖3示出了本發(fā)明一程序代碼確認方法的流程圖。
      附圖符號說明100、計算機系統(tǒng) 110、存儲器120、微控制器130、判斷電路200、原始程序代碼210、散列摘要220、認證序列230、240、金鑰300、程序代碼具體實施方式
      本發(fā)明披露了一種程序代碼確認系統(tǒng)及其方法。為了使本發(fā)明的敘述更加詳盡與完備,可結合圖1至圖2進行下面的描述。
      參考圖1,圖1示出了本發(fā)明一實施例的一計算機系統(tǒng)100,用以判斷一程序代碼300是否與一原始程序代碼200(示于圖2)相同,其中,原始程序代碼200針對一微控制器120而撰寫,供微控制器120執(zhí)行某種應用程序。此計算機系統(tǒng)100包含一存儲器110、一微控制器120及一判斷電路130,其中判斷電路130例如為一硬線邏輯(hard wire logic)結構。存儲器110用以儲存程序代碼300及認證序列220,其中認證序列220是藉由對原始程序代碼200(示于圖2)進行一算法而得。理想上,存儲器110中的程序代碼300應等于原始程序代碼200(示于圖2),然而由于程序代碼300有被盜改或復制的可能,因此程序代碼300亦可能不同于原始程序代碼200。根據(jù)本發(fā)明的一實施例,可確保程序代碼的完整性及原始性。判斷電路130使用序列界面(Serial Interface)而與微控制器120相互溝通,用以判斷程序代碼300的完整性與合法性,且當認證序列220為一加密訊息時,判斷電路130可包含一用以解密的金鑰(key)240。值得一提的是,本領域的技術人員應了解,本發(fā)明所提出的計算機系統(tǒng)100雖以此實施例說明,但本發(fā)明的計算機系統(tǒng)100的結構并不限于此,舉例來說,計算機系統(tǒng)100可包含其它儲存裝置或中央處理器等等,或是判斷電路130可直接與存儲器110連接。
      當微控制器120一開始運作,判斷電路130可通過微控制器120而讀取存儲器110中的程序代碼300及認證序列220。然而,在另一實施例中,判斷電路130亦可與存儲器110連結而直接讀取存儲器110中的程序代碼300及認證序列220。接著,判斷電路130對程序代碼300進行一運算,此運算是根據(jù)對原始程序代碼200(示于圖2)所進行而得認證序列220的運算而實施,且此運算程序內建于判斷電路130中。判斷電路130根據(jù)運算的結果,與從存儲器110傳送來的認證序列220做比較,而判斷出程序代碼300與原始程序代碼200是否相同,若相同,則判斷電路130傳送一訊息使微控制器120正常運作。若否,則判斷電路130傳送一訊息,用以中止微控制器120的動作。
      圖2顯示原始程序代碼200與認證序列220間的對應關系,即原始程序代碼200的運算及處理過程。首先,撰寫一原始程序代碼200,供圖1的微控制器120根據(jù)原始程序代碼200而執(zhí)行應用程序。接著,對原始程序代碼200進行散列(hash)運算,得到一個信息摘要(digest)210,再以一金鑰230對此信息摘要210進行加密而得到原始程序代碼200的認證序列220。此認證序列220接著傳送到圖1中的計算機系統(tǒng)100而儲存于存儲器110或其它類似的儲存單元,供后續(xù)認證程序使用。然而,對原始程序代碼200的運算并不限于上述,舉例來說,只對原始程序代碼200進行散列運算而得認證序列220,或是不經(jīng)散列運算而只以一金鑰230對原始程序代碼200而得認證序列220等運算過程皆包含在本發(fā)明的范圍內。
      理想的情況下,圖2的原始程序代碼200及認證序列220皆儲存于存儲器110中,供圖1的計算機系統(tǒng)100使用。然而,由于程序代碼有被擅改或非法拷貝的可能,而使得計算機系統(tǒng)100所使用的存儲器110中的程序代碼300與原始程序代碼200不同,或是使得程序代碼300為非法的版本。本發(fā)明提供了一種計算機系統(tǒng)及方法,用以判斷程序代碼300是否與原始程序代碼200相同,以確保程序代碼的完整性與合法性。
      當微控制器120一啟動而開始根據(jù)程序代碼300執(zhí)行一應用程序時,系統(tǒng)100便開始執(zhí)行對程序代碼300的認證程序。在此實施例中,認證序列220系原始程序代碼200經(jīng)hash運算后再以金鑰230加密而得。首先,程序代碼300及認證序列220傳送至判斷電路130,而在傳送過程中,微控制器120可進一步對所有傳送至判斷電路130的數(shù)據(jù)進行加密,其中此加密運算可例如為數(shù)據(jù)加密標準(Data Encryption Standard(DES))加密或是國際數(shù)據(jù)加密算法(International Data Encryption Algorithm(IDEA))加密等等,這樣的方式已可防止有心者對微控制器120與判斷電路130間數(shù)據(jù)交換的窺探。在使用DES對所有傳送至判斷電路130的數(shù)據(jù)(包括程序代碼300及認證序列220)加密的情況下,判斷電路130先對所收到的數(shù)據(jù)進行第一次解密。接著,當判斷電路130確定收到的是認證序列220后,即以金鑰240對認證序列220進行第二次解密,而得到原始程序代碼200的信息摘要210,其中金鑰240內建于判斷電路130中且與金鑰230互相對應,分別用以解密與加密,一般而言,金鑰240等同于金鑰230。接著,對程序代碼300進行散列(hash)運算,而得到程序代碼300的信息摘要(未示于圖中)。再來,比較信息摘要210與程序代碼300的信息摘要,若兩者相同,則判斷程序代碼300與原始程序代碼200相同,且判斷電路130依此判斷結果而回傳一訊息至微控制器120,供微控制器120正常運作。反之,若信息摘要210與程序代碼300的信息摘要不同,則判斷程序代碼300與原始程序代碼200不相同,且判斷電路130依此判斷結果而回傳一訊息至微控制器120,以中斷微控制器120的運作。其中,對于判斷電路130依判斷結果而回傳的訊息,也可進行加密運算,再將加密后的訊息傳至微控制器120。亦即,判斷電路130與微控制器120兩者之間的交換訊息皆經(jīng)過進一步的加密,以加強程序代碼的防盜性。需注意的是,針對判斷電路130與微控制器120之間交換訊息所進行的加密及解密運算(例如DES),可使用金鑰240,亦可使用其它不同的內建金鑰(未示于圖中)來進行。
      在本發(fā)明的另一實施例中,認證序列220是原始程序代碼200經(jīng)散列運算而得,而并無以金鑰230加密的步驟,即認證序列220本身即為原始程序代碼200的信息摘要210。在此實施例中,判斷電路130接收到程序代碼300及認證序列220后,對程序代碼300進行散列(hash)運算而得到程序代碼300的信息摘要,并藉由比較程序代碼300的信息摘要與認證序列220是否相同,而判斷程序代碼300與原始程序代碼200是否相同。接著,判斷電路130如前述依據(jù)判斷結果而動作。
      在本發(fā)明的又一實施例中,認證序列220直接以金鑰230加密原始程序代碼200而得,而并無經(jīng)過散列運算的步驟。在此實施例中,判斷電路130接收到程序代碼300及認證序列220后,以金鑰240對認證序列220進行解密,而得到原始程序代碼200,并比較程序代碼300與原始程序代碼200是否相同。接著,判斷電路130如前述依據(jù)判斷結果而操作。
      除了上述以判斷電路130來判斷程序代碼300與原始程序代碼200是否相同之外,微控制器可120根據(jù)程序代碼300而進一步的檢測判斷電路130是否存在,并依檢測結果產(chǎn)生一檢測訊息。若檢測結果為判斷電路130不存在,則檢測訊息供中斷微控制器120的運作,反之,若檢測到判斷電路130的存在,則檢測訊息不影響微控制器120的正常運作。
      在本發(fā)明中,判斷電路判斷微控制器的程序代碼的完整性,且微控制器通過程序代碼而檢測判斷電路的存在與否。藉由以一個判斷電路搭配一個程序代碼的方式,不但可確保程序代碼不被擅改,而且可確保程序代碼不被非法復制。此外,本發(fā)明的判斷電路可采硬線(hard-wire)形式,不內置微處理器來執(zhí)行其它程序,因而可達省電且安全的效果。
      圖3根據(jù)本發(fā)明,示出了一程序代碼確認方法的流程圖。首先,在步驟S302啟動一計算機系統(tǒng),使得一微控制器依據(jù)存儲器中的程序代碼而執(zhí)行一應用程序。接著在步驟S304中,微控制器依據(jù)程序代碼而檢測一判斷電路是否存在,若否,則進行到步驟S306,中斷控制器的運作。若判斷電路存在,則進行到步驟S308,傳送存儲器中的程序代碼及認證序列至判斷電路。其中,認證序列是依前述的運算過程而對應于一原始程序代碼。接著,在步驟S310中,判斷電路對所接收的程序代碼進行一運算,此運算對應于原始程序代碼與認證序列之間的運算過程。在步驟S312中,判斷電路將其運算結果與認證序列比較。若比較結果為不同,則進行到步驟S314,中斷微控制器的運作。若比較結果相同,則進行到步驟S316,微控制器正常運作并完成程序代碼的確認。使用此種機制,在更新系統(tǒng)100新軟件版本,也無需更改任何硬件配置。
      以上所述僅為本發(fā)明的較佳實施例而已,并非用以限定本發(fā)明的權利要求;凡其它未脫離本發(fā)明所揭示的精神下所完成的等效改變或修飾,均應包含在本發(fā)明的權利要求的范圍內。
      權利要求
      1.一種計算機系統(tǒng),用以確認一原始程序代碼與一程序代碼是否相同,該計算機系統(tǒng)包含一存儲器,供儲存該程序代碼與一認證序列,其中該認證序列根據(jù)一預定算法而對應于該原始程序代碼;一控制器,與該存儲器連結,供根據(jù)該程序代碼而執(zhí)行一應用程序;以及一判斷電路,與該控制器連結,該判斷電路接收該程序代碼與該認證序列,而根據(jù)該預定算法對該程序代碼進行運算而產(chǎn)生一運算結果;其中,該判斷電路藉該認證序列及該運算結果,而產(chǎn)生一判斷結果,并依該判斷結果傳送一判斷訊息至該控制器。
      2.如權利要求1所述的計算機系統(tǒng),其中該控制器根據(jù)該程序代碼而檢測該判斷電路是否存在,而產(chǎn)生一檢測結果,并依該檢測結果產(chǎn)生一檢測訊息。
      3.如權利要求2所述的計算機系統(tǒng),其中若該控制器檢測該判斷電路不存在,該檢測訊息使該控制器停止執(zhí)行該應用程序。
      4.如權利要求1所述的計算機系統(tǒng),其中該預定算法包含一散列算法,該認證序列是根據(jù)該散列運算對該原始程序代碼進行運算而產(chǎn)生;其中,若該判斷電路判斷該認證序列與該運算結果相同,則代表該原始程序代碼與該程序代碼相同。
      5.如權利要求1所述的計算機系統(tǒng),其中該預定算法包含一散列算法及使用一第一金鑰的一密碼算法,該認證序列為該原始程序代碼經(jīng)散列運算后,由該第一金鑰加密而得;其中,該判斷電路以對應該第一金鑰的一第二金鑰解密該認證序列而得一比對序列,若該判斷電路判斷該比對序列與該運算結果相同,則代表該原始程序代碼與該程序代碼相同。
      6.如權利要求5所述的計算機系統(tǒng),其中該控制器進一步加密該認證序列為一密文,并將該密文傳送至該判斷電路,該判斷電路將該密文解密后而獲得該認證序列。
      7.如權利要求6所述的計算機系統(tǒng),其中該控制器使用一第三金鑰對該認證序列進行數(shù)據(jù)加密標準加密,該判斷電路以對應該第三金鑰的一第四金鑰對所接收的該密文解密。
      8.如權利要求1所述的計算機系統(tǒng),其中該判斷電路利用硬線邏輯執(zhí)行該預定算法。
      9.如權利要求1所述的計算機系統(tǒng),其中若該判斷電路判斷該程序代碼與該原始碼不相同,則該判斷電路傳送該判斷訊息使該控制器停止執(zhí)行該應用程序。
      10.如權利要求1所述的計算機系統(tǒng),其中在該判斷電路與該控制器之間相互傳送的訊息,在傳輸前先經(jīng)過加密。
      11.一種程序代碼確認方法,包含以下步驟(a)以一預定算法對一原始程序代碼進行運算而產(chǎn)生一認證序列;(b)提供一程序代碼;(c)利用一判斷電路根據(jù)該預定算法對該程序代碼進行運算而產(chǎn)生一運算結果;以及(d)該判斷電路藉該認證序列及該運算結果來判斷該程序代碼與該原始程序代碼是否相同,并依判斷結果傳送一判斷訊息。
      12.如權利要求11所述的方法,其中在步驟(c)之前,還包含檢測該判斷電路是否存在,而產(chǎn)生一檢測結果,并依該檢測結果產(chǎn)生一檢測訊息。
      13.如權利要求12所述的方法,檢測該判斷電路是否存在的步驟還包含若該控制器檢測該判斷電路不存在,該檢測訊息使該程序代碼無法被執(zhí)行為一應用程序。
      14.如權利要求11所述的方法,其中該預定算法包含一散列算法,該認證序列是根據(jù)該散列算法對該原始程序代碼進行運算而產(chǎn)生;其中,在步驟(d)中,若判斷該認證序列與該運算結果相同,則代表該原始程序代碼與該程序代碼相同。
      15.如權利要求11所述的方法,其中該預定算法包含一散列算法及使用一第一金鑰的一密碼算法,該認證序列為該原始程序代碼經(jīng)散列運算后,由該第一金鑰加密而得;其中,在步驟(d)中,該判斷電路以對應該第一金鑰的一第二金鑰解密該認證序列而得一比對序列,若該判斷電路判斷該比對序列與該運算結果相同,則代表該原始程序代碼與該程序代碼相同。
      16.如權利要求15所述的方法,其中步驟(a)還包含加密該認證序列為一密文;以及在步驟(d)中,該判斷電路將該密文解密后而獲得該認證序列。
      17.如權利要求16所述的方法,其中在步驟(a)中使用一第三金鑰對該認證序列進行數(shù)據(jù)加密標準加密,而在步驟(d)中該判斷電路以對應該第三金鑰的一第四金鑰對所接收的該密文解密。
      18.如權利要求11所述的方法,其中步驟(c)中,該判斷電路利用硬線邏輯執(zhí)行該預定算法。
      19.如權利要求11所述的方法,還包含以下步驟若該判斷電路判斷該程序代碼與該原始碼不相同,該判斷訊息使該程序代碼無法被執(zhí)行為一應用程序。
      20.如權利要求11所述的方法,其中步驟(d)還包含該判斷電路在傳送該判斷訊息前,進一步將該判斷訊息加密。
      21.一種用以確認一原始程序代碼與一程序代碼是否相同的判斷電路,該判斷電路用以接收該程序代碼與一認證序列,而根據(jù)一預定算法對該程序代碼進行運算而產(chǎn)生一運算結果;其中,該程序代碼儲存于一存儲器中,供與該存儲器連結的一控制器執(zhí)行一應用程序,以及該認證序列儲存于該存儲器中且根據(jù)該預定算法而對應于該原始程序代碼;其中,該判斷電路藉該認證序列及該運算結果來判斷該程序代碼與該原始程序代碼是否相同,而產(chǎn)生一判斷結果,并依該判斷結果傳送一判斷訊息至該控制器。
      22.如權利要求21所述的判斷電路,其中該控制器根據(jù)該程序代碼而檢測該判斷電路是否存在,而產(chǎn)生一檢測結果,并依該檢測結果產(chǎn)生一檢測訊息。
      23.如權利要求22所述的判斷電路,其中若該控制器檢測該判斷電路不存在,該檢測訊息使該控制器停止執(zhí)行該應用程序。
      24.如權利要求21所述的判斷電路,該預定算法包含一散列算法,該認證序列根據(jù)該散列運算對該原始程序代碼進行運算而產(chǎn)生;其中,若該判斷電路判斷該認證序列與該運算結果相同,則代表該原始程序代碼與該程序代碼相同。
      25.如權利要求21所述的判斷電路,其中該預定算法包含一散列算法及使用一第一金鑰的一密碼算法,該認證序列為該原始程序代碼經(jīng)散列運算后,由該第一金鑰加密而得;其中,該判斷電路以對應該第一金鑰的一第二金鑰解密該認證序列而得一比對序列,若該判斷電路判斷該比對序列與該運算結果相同,則代表該原始程序代碼與該程序代碼相同。
      26.如權利要求25所述的判斷電路,其中該控制器進一步加密該認證序列為一密文,并將該密文傳送至該判斷電路,該判斷電路將該密文解密后而獲得該認證序列。
      27.如權利要求26所述的判斷電路,其中該控制器使用一第三金鑰對該認證序列進行數(shù)據(jù)加密標準加密,該判斷電路以對應該第三金鑰的一第四金鑰對所接收的該密文解密。
      28.如權利要求21所述的判斷電路,其中該判斷電路利用硬線邏輯執(zhí)行該預定算法。
      29.如權利要求21所述的判斷電路,其中若該判斷電路判斷該程序代碼與該原始碼不相同,則該判斷電路傳送該判斷訊息使該控制器停止執(zhí)行該應用程序。
      30.如權利要求21所述的判斷電路,其中在該判斷電路與該控制器之間相互傳送的訊息,在傳輸前先經(jīng)過加密。
      全文摘要
      本發(fā)明提供一種確認一程序代碼的計算機系統(tǒng)及方法。此計算機系統(tǒng)包含一存儲器,供儲存一程序代碼與一認證序列,其中認證序列根據(jù)一預定算法而對應于一原始程序代碼;一控制器,與存儲器連結,供根據(jù)程序代碼而執(zhí)行一應用程序;以及一判斷電路,用以接收程序代碼與認證序列,且根據(jù)預定算法對程序代碼進行運算而產(chǎn)生一運算結果;其中,判斷電路藉認證序列及運算結果,而產(chǎn)生一判斷結果,并依判斷結果傳送一判斷訊息至控制器。
      文檔編號G06F21/00GK1952948SQ200510113880
      公開日2007年4月25日 申請日期2005年10月21日 優(yōu)先權日2005年10月21日
      發(fā)明者許永桓 申請人:福華先進微電子股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1