操作系統(tǒng)核心加密及其解密方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種加密及其解密方法,尤其是指一種操作系統(tǒng)核心加密及其解密方法。
【背景技術(shù)】
[0002]目前對(duì)于開(kāi)機(jī)程序以及操作系統(tǒng)核心的驗(yàn)證開(kāi)機(jī)過(guò)程是分開(kāi)進(jìn)行的,亦即是需要分別進(jìn)行開(kāi)機(jī)程序的驗(yàn)證流程以及操作系統(tǒng)核心的驗(yàn)證流程,才能進(jìn)行開(kāi)機(jī)。
[0003]對(duì)于開(kāi)機(jī)程序的驗(yàn)證流程,是先運(yùn)算完的摘要(Digest)存入一次性可編程區(qū)域(OTP Area),之后每次開(kāi)機(jī)皆會(huì)取出一次性寫(xiě)入的空間中的摘要進(jìn)行運(yùn)算比對(duì)以驗(yàn)證開(kāi)機(jī)程序之正確性。
[0004]對(duì)于操作系統(tǒng)核心的驗(yàn)證流程,則是需要簽章(signature)、憑證(certificate)以及根公鑰(root public key)預(yù)先存在主要儲(chǔ)存區(qū)域(Main Area)中,并且利用操作系統(tǒng)核心自有的私金鑰(private key)進(jìn)行數(shù)字簽章(digital signature)流程以進(jìn)行層層驗(yàn)證的動(dòng)作。
[0005]在開(kāi)機(jī)程序與操作系統(tǒng)核心的驗(yàn)證流程中,皆需比對(duì)憑證以及簽章,以驗(yàn)證其正確性與完整性,但是現(xiàn)有開(kāi)機(jī)程序與其他操作系統(tǒng)核心的驗(yàn)證流程在摘要、簽章、憑證以及根公鑰被偽造(偽造摘要、簽章、憑證以及根公鑰遠(yuǎn)比破解開(kāi)機(jī)程序以及操作系統(tǒng)核心來(lái)的簡(jiǎn)單)時(shí),則依然會(huì)通過(guò)現(xiàn)有的驗(yàn)證流程,而造成開(kāi)啟被竄改或是被替換操作系統(tǒng)核心的風(fēng)險(xiǎn)。
[0006]綜上所述,可知現(xiàn)有技術(shù)中長(zhǎng)期以來(lái)一直存在現(xiàn)有開(kāi)機(jī)程序以及操作系統(tǒng)核心需要個(gè)別驗(yàn)證,將驗(yàn)證運(yùn)算結(jié)果預(yù)先寫(xiě)入一次性可編程區(qū)域以進(jìn)行比對(duì),需多次比對(duì)驗(yàn)證且需大量額外儲(chǔ)存空間,過(guò)程復(fù)雜,耗費(fèi)時(shí)間且不安全的問(wèn)題,因此有必要提出改進(jìn)的技術(shù)手段,來(lái)解決此一問(wèn)題。
【發(fā)明內(nèi)容】
[0007]有鑒于現(xiàn)有技術(shù)存在現(xiàn)有開(kāi)機(jī)程序以及操作系統(tǒng)核心需要個(gè)別驗(yàn)證,將驗(yàn)證運(yùn)算結(jié)果預(yù)先寫(xiě)入一次性可編程區(qū)域以進(jìn)行比對(duì),需多次比對(duì)驗(yàn)證且需大量額外儲(chǔ)存空間,過(guò)程復(fù)雜,耗費(fèi)時(shí)間且不安全的問(wèn)題,本發(fā)明遂揭露一種操作系統(tǒng)核心加密及其解密方法,其中:
[0008]本發(fā)明所揭露第一實(shí)施態(tài)樣的操作系統(tǒng)核心加密方法,適用于儲(chǔ)存有開(kāi)機(jī)程序以及操作系統(tǒng)核心的裝置,其包含下列步驟:
[0009]首先,于開(kāi)機(jī)程序內(nèi)預(yù)先建立定義表,定義表儲(chǔ)存有多數(shù)個(gè)代碼;接著,當(dāng)開(kāi)機(jī)程序第一次被執(zhí)行時(shí),開(kāi)機(jī)程序自定義表中隨機(jī)取出多個(gè)代碼,以及開(kāi)機(jī)程序記錄被取出的多個(gè)代碼;接著,開(kāi)機(jī)程序依據(jù)被取出的多個(gè)代碼分別自儲(chǔ)存空間中開(kāi)機(jī)程序找出對(duì)應(yīng)的至少一組開(kāi)機(jī)位元值組,以及自儲(chǔ)存空間中操作系統(tǒng)核心找出對(duì)應(yīng)的至少一組核心位元值組以及對(duì)應(yīng)的核心位元位置,且每一組開(kāi)機(jī)位元值組與每一組核心位元值組依序?qū)?yīng);接著,開(kāi)機(jī)程序分別將對(duì)應(yīng)的開(kāi)機(jī)位元值組與核心位元值組進(jìn)行可逆運(yùn)算的哈希算法(HashFunct1n)以分別得到對(duì)應(yīng)的哈希值;最后,開(kāi)機(jī)程序依據(jù)每一個(gè)核心位元位置將對(duì)應(yīng)的哈希值取代核心位元值并重新儲(chǔ)存操作系統(tǒng)核心,以提供操作系統(tǒng)核心加密,且加密后的操作系統(tǒng)核心無(wú)法被執(zhí)行。
[0010]本發(fā)明所揭露第一實(shí)施態(tài)樣的操作系統(tǒng)核心解密方法,適用于儲(chǔ)存有開(kāi)機(jī)程序以及經(jīng)過(guò)對(duì)應(yīng)加密處理后的操作系統(tǒng)核心的裝置,其包含下列步驟:
[0011]首先,開(kāi)機(jī)程序取出被紀(jì)錄的多個(gè)代碼;接著,開(kāi)機(jī)程序依據(jù)被取出的多個(gè)代碼分別自儲(chǔ)存空間中開(kāi)機(jī)程序找出對(duì)應(yīng)的至少一組開(kāi)機(jī)位元值組,以及自儲(chǔ)存空間中操作系統(tǒng)核心找出對(duì)應(yīng)的至少一組核心位元值組以及對(duì)應(yīng)的核心位元位置,且每一組開(kāi)機(jī)位元值組與每一組核心位元值組依序?qū)?yīng);接著,開(kāi)機(jī)程序分別將對(duì)應(yīng)的開(kāi)機(jī)位元值組與核心位元值組進(jìn)行可逆運(yùn)算的哈希算法的逆運(yùn)算以分別得到對(duì)應(yīng)的逆運(yùn)算哈希值;最后,開(kāi)機(jī)程序依據(jù)每一個(gè)核心位元位置將對(duì)應(yīng)的逆運(yùn)算哈希值取代核心位元值,以提供操作系統(tǒng)核心解密,且執(zhí)行解密后的操作系統(tǒng)核心。
[0012]本發(fā)明所揭露第二實(shí)施態(tài)樣的操作系統(tǒng)核心加密方法,適用于儲(chǔ)存有開(kāi)機(jī)程序以及操作系統(tǒng)核心的裝置,其包含下列步驟:
[0013]首先,于開(kāi)機(jī)程序內(nèi)預(yù)先建立定義表,定義表儲(chǔ)存有多數(shù)個(gè)代碼;接著,當(dāng)開(kāi)機(jī)程序第一次被執(zhí)行時(shí),開(kāi)機(jī)程序自定義表中隨機(jī)取出多個(gè)代碼,以及開(kāi)機(jī)程序記錄被取出的多個(gè)代碼;接著,開(kāi)機(jī)程序依據(jù)被取出的多個(gè)代碼分別自儲(chǔ)存空間中開(kāi)機(jī)程序找出對(duì)應(yīng)的至少一組開(kāi)機(jī)位元值組,以及自儲(chǔ)存空間中操作系統(tǒng)核心找出對(duì)應(yīng)的至少一組核心位元值組以及對(duì)應(yīng)的核心位元位置,且每一組開(kāi)機(jī)位元值組與每一組核心位元值組依序?qū)?yīng);接著,開(kāi)機(jī)程序分別將對(duì)應(yīng)的開(kāi)機(jī)位元值組與核心位元值組進(jìn)行不可逆運(yùn)算的哈希算法(Hash Funct1n)以分別得到對(duì)應(yīng)的二進(jìn)制哈希值,以及開(kāi)機(jī)程序記錄經(jīng)過(guò)運(yùn)算的二進(jìn)制哈希值位元數(shù);最后,開(kāi)機(jī)程序依據(jù)每一個(gè)核心位元位置將對(duì)應(yīng)的二進(jìn)制哈希值插入于操作系統(tǒng)核心并重新儲(chǔ)存操作系統(tǒng)核心,以提供操作系統(tǒng)核心加密,且加密后的操作系統(tǒng)核心無(wú)法被執(zhí)行。
[0014]本發(fā)明所揭露第二實(shí)施態(tài)樣的操作系統(tǒng)核心解密方法,適用于儲(chǔ)存有開(kāi)機(jī)程序以及經(jīng)過(guò)對(duì)應(yīng)加密處理后的操作系統(tǒng)核心的裝置,其包含下列步驟:
[0015]首先,開(kāi)機(jī)程序取出被紀(jì)錄的多個(gè)代碼以及被紀(jì)錄的二進(jìn)制哈希值位元數(shù);接著,開(kāi)機(jī)程序依據(jù)被取出的多個(gè)代碼以及被紀(jì)錄的二進(jìn)制哈希值位元數(shù)分別自儲(chǔ)存空間中開(kāi)機(jī)程序找出對(duì)應(yīng)的至少一組開(kāi)機(jī)位元值組,以及自儲(chǔ)存空間中操作系統(tǒng)核心找出對(duì)應(yīng)的至少一組核心位元值組以及對(duì)應(yīng)的核心位元位置,且每一組開(kāi)機(jī)位元值組與每一組核心位元值組依序?qū)?yīng);接著,開(kāi)機(jī)程序分別將對(duì)應(yīng)的開(kāi)機(jī)位元值組與核心位元值組進(jìn)行不可逆運(yùn)算的哈希算法(Hash Funct1n)以分別得到對(duì)應(yīng)的二進(jìn)制哈希值;最后,開(kāi)機(jī)程序依據(jù)每一個(gè)核心位元位置對(duì)應(yīng)的核心位元值組與對(duì)應(yīng)的二進(jìn)制哈希值比對(duì)一致時(shí),將核心位元值組刪除,以提供操作系統(tǒng)核心解密,且執(zhí)行解密后的操作系統(tǒng)核心。
[0016]本發(fā)明所揭露的加密與解密方法如上,與現(xiàn)有技術(shù)之間的差異在于本發(fā)明通過(guò)定義表將開(kāi)機(jī)程序以及操作系統(tǒng)核心進(jìn)行哈希算法的運(yùn)算,并將運(yùn)算結(jié)果與操作系統(tǒng)核心進(jìn)行結(jié)合,以提供操作系統(tǒng)核心的加密,并當(dāng)開(kāi)機(jī)程序、操作系統(tǒng)核心或是開(kāi)機(jī)程序與操作系統(tǒng)核心遭到竄改或是替換,則無(wú)法進(jìn)行操作系統(tǒng)核心的解密以進(jìn)行開(kāi)機(jī)。
[0017]通過(guò)上述的技術(shù)手段,本發(fā)明可以達(dá)成開(kāi)機(jī)程序與操作系統(tǒng)核心雙向認(rèn)證以進(jìn)行安全開(kāi)機(jī)的技術(shù)功效。
【附圖說(shuō)明】
[0018]圖1繪示為本發(fā)明操作系統(tǒng)核心加密方法第一實(shí)施態(tài)樣的方法流程圖。
[0019]圖2繪示為本發(fā)明操作系統(tǒng)核心解密方法第一實(shí)施態(tài)樣的方法流程圖。
[0020]圖3繪示為本發(fā)明操作系統(tǒng)核心加密方法的定義表示意圖。
[0021]圖4繪示為本發(fā)明操作系統(tǒng)核心加密方法第二實(shí)施態(tài)樣的方法流程圖。
[0022]圖5繪示為本發(fā)明操作系統(tǒng)核心解密方法第二實(shí)施態(tài)樣的方法流程圖。
[0023]【符號(hào)說(shuō)明】
[0024]10定義表
[0025]11代碼
【具體實(shí)施方式】
[0026]以下將配合圖式及實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明的實(shí)施方式,藉此對(duì)本發(fā)明如何應(yīng)用技術(shù)手段來(lái)解決技術(shù)問(wèn)題并達(dá)成技術(shù)功效的實(shí)現(xiàn)過(guò)程能充分理解并據(jù)以實(shí)施。
[0027]本發(fā)明第一實(shí)施態(tài)樣的操作系統(tǒng)核心加密方法適用于儲(chǔ)存有開(kāi)機(jī)程序以及操作系統(tǒng)核心的裝置,并以一個(gè)實(shí)施例來(lái)解說(shuō)本發(fā)明第一實(shí)施態(tài)樣的運(yùn)作方式及流程,以下的實(shí)施例說(shuō)明將同步配合「圖1」以及「圖2」所示進(jìn)行說(shuō)明,「圖1」繪示為本發(fā)明操作系統(tǒng)核心加密方法第一實(shí)施態(tài)樣的方法流程圖;「圖2」繪示為本發(fā)明操作系統(tǒng)核心解密方法第一實(shí)施態(tài)樣的方法流程圖。
[0028]請(qǐng)參考「圖3」所示,「圖3」繪示為本發(fā)明操作系統(tǒng)核心加密方法的定義表示意圖。
[0029]于開(kāi)機(jī)程序內(nèi)預(yù)先建立定義表10,定義表10中儲(chǔ)存有多數(shù)個(gè)代碼11(步驟101),在「圖2」中,代碼11為所代表的意義為“選取4位元”,代碼11為“Shift”所代表的意義為“第10位元”,代碼11為“End”所代表的意義為“第50位元”,代碼11為“DDD”所代表的意義為“向前位移”,代碼11為“XYZ”所代表的意義為“向后位移”,代碼11為“135”所代表的意義為“位移20位元”,亦即定義表10中儲(chǔ)存的每一個(gè)代碼11所代表的意義至少由選取位元數(shù)、指定位元、向前位移、向后位移以及移動(dòng)位元數(shù)選擇其中之一,在此僅為舉例說(shuō)明之,并不以此局限本發(fā)明的應(yīng)用范疇。
[0030]當(dāng)開(kāi)機(jī)程序第一次被執(zhí)行時(shí),開(kāi)機(jī)程序會(huì)先自定義表10中隨機(jī)取出第一代碼為“ 第二代碼為“Shift”、第三代碼為“XYZ”以及第四代碼為“135”,依據(jù)上述代碼即表示“自第10位元選取4位元,并自第10位元起向后位移20位元再選取4位元”,在此僅為舉例說(shuō)明之,并不以此局限本發(fā)明的應(yīng)用范疇,并且開(kāi)機(jī)程序會(huì)記錄被選取的第一代碼為“!_”、第二代碼為“51^代”、第三代碼為‘1¥2”以及第四代碼為“135”(步驟102)。
[0031]接著,假設(shè)儲(chǔ)存空間中原始的開(kāi)機(jī)程序的第10位元至第13位元為“1010”以及第30位元至第33位元為“0110”,開(kāi)機(jī)程序依據(jù)被選取出的第一代碼為“ 第二代碼為“Shift”、第三代碼為“XYZ”以及第四代碼為“135”會(huì)自儲(chǔ)存空間中開(kāi)機(jī)程序自第10位元選取4位元以找出第一組開(kāi)機(jī)位元值組為“1010”(即開(kāi)機(jī)程序的第10位元至第13位元的位元值)(步驟103)。
[0032]接著,開(kāi)機(jī)程序依據(jù)被選取出的第一代碼為第二代碼為“Shift”、第三代碼為“XYZ”以及第四代碼為“135”會(huì)自儲(chǔ)存空間中開(kāi)機(jī)程序自第10位元起向后位移20位元再選取4位元以找出第二組開(kāi)機(jī)位元值組為“0110”(即開(kāi)機(jī)程序的第30位元至第33位元的位元值)(步驟103)。
[0033]接著,假設(shè)儲(chǔ)存空間中原始的操作系統(tǒng)核心的第10位元至第13位元為“1111”以及第30位元至第33位元為“0011”,開(kāi)機(jī)程序依據(jù)被選取出的第一代碼為“ 第二代碼為“Shift”、第三代碼為“XYZ”以及第四代碼為“135”會(huì)自儲(chǔ)存空間中操作系統(tǒng)核心自第10位元選取4位元以找出第一組核心位元值組為“1111”(即操作系統(tǒng)核心的第10位元至第