專利名稱:可保護(hù)只讀存儲(chǔ)器數(shù)據(jù)的密碼保護(hù)電路的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及密碼保護(hù)電路,且特別是涉及一種可保護(hù)只讀存儲(chǔ)器數(shù)據(jù)的密碼保護(hù)電路。它可以應(yīng)用于微處理器及微控制器等內(nèi)建有只讀存儲(chǔ)器的裝置中,使其儲(chǔ)存資料免于非法拷貝或使用。
目前,在8位單芯片微控制器中,密碼保護(hù)電路通常是由64字節(jié)或32字節(jié)的密碼表所組成。這些密碼表在芯片中占去極大面積,使得芯片面積變大且生產(chǎn)成本提高。另外,一旦微控制器的密碼表外泄,則芯片內(nèi)儲(chǔ)存的程序代碼亦會(huì)有被盜用的危險(xiǎn)。
為了克服現(xiàn)有技術(shù)的不足,本發(fā)明的主要目的在于提供一種可保護(hù)只讀存儲(chǔ)器資料的密碼保護(hù)電路,其僅需要2字節(jié)的密碼表,因此可大幅縮小芯片面積,使生產(chǎn)成本有效地降低。
本發(fā)明的另一目的在于提供一種可保護(hù)只讀存儲(chǔ)器數(shù)據(jù)的密碼保護(hù)電路,其更具有一演算邏輯電路(偽隨機(jī)產(chǎn)生器),其輸出內(nèi)容可同時(shí)參照初始值及只讀存儲(chǔ)器資料以進(jìn)行擾亂,故加密動(dòng)作的復(fù)雜性可進(jìn)一步提高。并且,由于這種密碼保護(hù)電路沒有譯碼電路提供,因此加密結(jié)果無(wú)法破解、具有極佳的保密能力。
本發(fā)明的目的可以通過以下措施來達(dá)到一種可保護(hù)只讀存儲(chǔ)器數(shù)據(jù)的密碼保護(hù)電路,包括一只讀存儲(chǔ)器,用以儲(chǔ)存資料;一偽隨機(jī)產(chǎn)生器,根據(jù)一初始值,加密該只讀存儲(chǔ)器資料;以及一加法器,將該偽隨機(jī)產(chǎn)生器的加密結(jié)果,及該只讀存儲(chǔ)器資料相加,藉以得到一擾亂資料。
一種可保護(hù)只讀存儲(chǔ)器數(shù)據(jù)的密碼保護(hù)電路,包括一初始值產(chǎn)生器,用以產(chǎn)生第一值域或第二值域的初始值;一移位緩存器,用以暫存該初始值、并選擇性地加載該只讀存儲(chǔ)器資料,藉以改變其資料內(nèi)容;一運(yùn)算電路,計(jì)算該移位緩存器的資料、并將結(jié)果送回該移位緩存器以進(jìn)行移位動(dòng)作;一加法器,相加該只讀存儲(chǔ)器資料及該移位緩存器中相同長(zhǎng)度的資料,藉以得到一擾亂資料;以及一閂鎖電路,閂鎖該加法器的輸出。
本發(fā)明相比現(xiàn)有技術(shù)具有如下優(yōu)點(diǎn)根據(jù)上述及其它目的,本發(fā)明乃同時(shí)以只讀存儲(chǔ)器的原始資料及初始值作為偽隨機(jī)產(chǎn)生器的輸入變量、并將偽隨機(jī)產(chǎn)生器的輸出與只讀存儲(chǔ)器的原始資料再進(jìn)行一次加法運(yùn)算,藉以擾亂原始資料,使加密結(jié)果無(wú)法破解。
在本發(fā)明中,可保護(hù)只讀存儲(chǔ)器數(shù)據(jù)的密碼保護(hù)電路主要是由初始值產(chǎn)生裝置、移位緩存器、運(yùn)算電路、加法器及閂鎖電路所組成。在這種密碼保護(hù)電路中,初始值產(chǎn)生裝置是用來產(chǎn)生兩種值域互斥的初始值。移位緩存器是用來暫存上述值域、并選擇性地加載只讀存儲(chǔ)器資料以變動(dòng)其中內(nèi)容。運(yùn)算電路是用來計(jì)算移位緩存器的資料、并將結(jié)果送回移位緩存器以進(jìn)行移位動(dòng)作。加法器是用來相加只讀存儲(chǔ)器資料及移位緩存器中相同長(zhǎng)度的資料,藉以得到一加密結(jié)果。而閂鎖電路則是在特定情況下閂鎖加法器,使其輸出維持在固定的高電壓或低電壓。
在這種密碼保護(hù)電路中,由于偽隨機(jī)產(chǎn)生器同時(shí)以不具規(guī)則性的原始資料及初始值產(chǎn)生裝置的初始值做為輸入變量,因此加密動(dòng)作極為復(fù)雜,其會(huì)隨原始資料的改變而不同、且沒有譯碼電路提供,藉以避免被破解的危險(xiǎn)。
另外,在這種密碼保護(hù)電路中,當(dāng)移位緩存器及初始值均為16位時(shí),運(yùn)算電路可依f(x)=x15+x12+x7+x+1運(yùn)算移位緩存器的內(nèi)容、并將處理結(jié)果送回移位緩存器的最低位,同時(shí),移位緩存器的其它內(nèi)容則朝最高位方向平移。在這種結(jié)構(gòu)下,當(dāng)初始值為FFFFH的值域時(shí),移位緩存器所儲(chǔ)存的內(nèi)容會(huì)維持不變(因?yàn)閒(x)=1),而當(dāng)初始值為OOOOH~FFFEH的值域時(shí),移位緩存器的內(nèi)容則會(huì)依據(jù)上述加密,使其中內(nèi)容改變。
再者,在這種密碼保護(hù)電路中,當(dāng)移位緩存器儲(chǔ)存的內(nèi)容滿足某一特定條件時(shí),移位緩存器可加載只讀存儲(chǔ)器資料以改變其中內(nèi)容,藉以提高加密動(dòng)作的復(fù)雜性。而加法器及閂鎖電路則分別用以相加只讀存儲(chǔ)器資料及移位緩存器中相同長(zhǎng)度的內(nèi)容,及用以閂鎖加法器的輸出,藉以進(jìn)一步擾亂加密結(jié)果。
為了使本發(fā)明前述的目的、特征與優(yōu)點(diǎn)得更易明了,乃列舉較佳實(shí)施例,并結(jié)合附圖,進(jìn)一步予以說明如下。
圖1是本發(fā)明可保護(hù)只讀存儲(chǔ)器數(shù)據(jù)的密碼保護(hù)電路的方塊圖;以及圖2是本發(fā)明可保護(hù)只讀存儲(chǔ)器數(shù)據(jù)的密碼保護(hù)電路的電路圖。
實(shí)施例為確保微控制器內(nèi)部只讀存儲(chǔ)器所儲(chǔ)存的原始程序代碼或其它資料不為非法拷貝及使用、并保障原著作者的知識(shí)產(chǎn)權(quán),微控制器通常會(huì)在內(nèi)部設(shè)計(jì)有密碼保護(hù)電路(Scramble circuit),用以加密被讀取的程序代碼,使其與原始程序代碼不同、無(wú)法復(fù)制使用。
請(qǐng)參考圖1,此為本發(fā)明可保護(hù)只讀存儲(chǔ)器數(shù)據(jù)的密碼保護(hù)電路的方塊圖。
在這個(gè)實(shí)施例中,微控制器的內(nèi)部只讀存儲(chǔ)器2中存放有欲保護(hù)的只讀存儲(chǔ)器資料(ROM DATA),如原始程序代碼或其它資料。參考時(shí)鐘產(chǎn)生器3是用以提供整個(gè)微控制器的系統(tǒng)時(shí)鐘(CLOCK)。而密碼保護(hù)電路1則用以加密欲保護(hù)的只讀存儲(chǔ)器數(shù)據(jù)(ROM DATA)、且具有初始值產(chǎn)生器10、偽隨機(jī)產(chǎn)生器20、加法器30及閂鎖電路40。
初始值產(chǎn)生器10是用以產(chǎn)生兩種值域互斥的初始值(Seed1/Seed2),用以作為偽隨機(jī)產(chǎn)生器20的輸入變量。
偽隨機(jī)產(chǎn)生器20則依據(jù)不同初始值(由初始值產(chǎn)生器10提供)產(chǎn)生不同序列的數(shù)值,用以與只讀存儲(chǔ)器資料(原始程序代碼或其它資料)進(jìn)行加密動(dòng)作并得到一加密結(jié)果(Encryption pattern)。為提高偽隨機(jī)產(chǎn)生器20在加密動(dòng)作時(shí)的復(fù)雜性、使其無(wú)法提供譯碼電路,偽隨機(jī)產(chǎn)生器20更以只讀存儲(chǔ)器資料(原始程序代碼或其它資料)為另一變量。只讀存儲(chǔ)器資料(原始程序代碼或其它資料)的內(nèi)容無(wú)法預(yù)測(cè),因此這種密碼保護(hù)電路1并無(wú)法提供解密電路、且加密只讀存儲(chǔ)器資料(原始程序代碼或其它資料)后,加密結(jié)果亦必須備分以利日后驗(yàn)證使用。
加法器30是用來相加偽隨機(jī)產(chǎn)生器20的加密結(jié)果(Encryptionpattern)與只讀存儲(chǔ)器資料(原始程序代碼或其它資料),藉以進(jìn)一步擾亂偽隨機(jī)產(chǎn)生器20的加密結(jié)果,用以作為被讀取數(shù)據(jù)(READ DATA)。
閂鎖電路40則根據(jù)一閂鎖控制信號(hào)(LOCK)、在特定情況下閂鎖加法器30,使其輸出固定于高電壓或低電壓。
接著,配合圖2仔細(xì)說明本發(fā)明的較佳實(shí)施例。請(qǐng)參考圖2,此為本發(fā)明可保護(hù)只讀存儲(chǔ)器數(shù)據(jù)的密碼保護(hù)電路的電路圖。
與圖1相同,在這個(gè)實(shí)施例中,微控制器的內(nèi)部只讀存儲(chǔ)器(圖中未示)是用來儲(chǔ)存欲保護(hù)的只讀存儲(chǔ)器資料,如原始程序代碼或其它資料。而密碼保護(hù)電路則依據(jù)不同初始值以加密只讀存儲(chǔ)器資料、其具有初始值產(chǎn)生器10、偽隨機(jī)產(chǎn)生器20、加法器30及閂鎖電路40。
初始值產(chǎn)生器10是由兩個(gè)8位輸入單元Seed1/Seed2所組成,用以產(chǎn)生兩種不同值域互斥的初始值,如FFFFH與OOOOH~FFFEH。
偽隨機(jī)產(chǎn)生器20則由兩個(gè)彼此串連的8位移位緩存器R1、R2,兩個(gè)緩沖器B1、B2,多任務(wù)器M1,或門O1及反向器I1所構(gòu)成。如圖中所示,初始值產(chǎn)生電路10的兩個(gè)輸入單元Seed1/Seed2分別經(jīng)由緩沖器B1及多任務(wù)器M1連接至8位移位緩存器R1、及經(jīng)由緩沖器B2連接至8位移位緩存器R2。另外,或門O1及反向器I1構(gòu)成的加載電路S1則設(shè)計(jì)于緩沖器B1與移位緩存器R1、R2之間。當(dāng)加密動(dòng)作開始時(shí),初始控制脈沖P(Init Load)會(huì)使輸入初始值產(chǎn)生器10輸入單元Seed1/Seed2的內(nèi)容經(jīng)由多任務(wù)器M1、緩沖器B1傳送至移位緩存器R1、以及經(jīng)由緩沖器B2傳送至移位緩存器R2。隨后,緩沖器B1、B2便關(guān)閉,使運(yùn)算電路L1得以根據(jù)兩個(gè)移位緩存器R1、R2的內(nèi)容進(jìn)行處理、并將結(jié)果送回移位緩存器R1、R2的最低位,同時(shí),兩個(gè)移位緩存器R1、R2的其它位置內(nèi)容則朝最高位方向平移。在這個(gè)實(shí)施例中,運(yùn)算電路L1與兩個(gè)移位緩存器R1、R2的內(nèi)容的關(guān)系可以是f(x)=x15+x12+x7+x+1。亦即,當(dāng)初始值為FFFFH時(shí),兩個(gè)移位緩存器R1、R2的內(nèi)容在移位后仍維持不變,因?yàn)閒(x)=1;而當(dāng)初始值為OOOOH~FFFFEH時(shí),兩個(gè)移位緩存器R1、R2的內(nèi)容則會(huì)依據(jù)初始值及加載只讀存儲(chǔ)器資料的改變而改變。
另外,為提高加密動(dòng)作的復(fù)雜性,偽隨機(jī)產(chǎn)生器20另外可設(shè)計(jì)一加載電路S1,用以在特定情況下將只讀存儲(chǔ)器資料加載移位緩存器R1、R2。在這個(gè)實(shí)施例中,若移位緩存器R1、R2的內(nèi)容滿足第6位等于0,則加載電路S1可控制多任務(wù)器M1及緩沖器B1、使8位的只讀存儲(chǔ)器資料傳送至移位緩存器R1。由于只讀存儲(chǔ)器資料的順序無(wú)法預(yù)測(cè),因此,在這個(gè)實(shí)施例中的移位緩存器R1、R2內(nèi)容可不規(guī)則地改變,使譯碼電路難以提供。
另外,加法器30則是相加8位只讀存儲(chǔ)器資料OD及自移位緩存器R1、R2中任意選取的等長(zhǎng)度資料{0..5,7,8}ED、并輸出一加密結(jié)果。
而閂鎖電路40則可由或門(OR gate)或其它邏輯電路組成,用以在特定情況下閂鎖加法器30,使其輸出固定于高電壓或低電壓。在這個(gè)實(shí)施例中,閂鎖電路40是以或門構(gòu)成,其輸入端分別連接加法器30輸出及一閂鎖控制信號(hào)L(LOCK)、而輸出端則用以作為讀取的資料RD(READ DATA)。
綜上所述,本發(fā)明可保護(hù)只讀存儲(chǔ)器資料的密碼保護(hù)電路僅需要2字節(jié)的密碼表搭配一演算邏輯電路,因此可大幅縮小芯片面積,使生產(chǎn)成本有效地降低。另外,讀取資料可同時(shí)參照初始值及只讀存儲(chǔ)器資料以進(jìn)行擾亂加密,因此,加密動(dòng)作的復(fù)雜性可進(jìn)一步提高、并且難以提供譯碼電路,具有極佳的保密能力。
雖然本發(fā)明已以較佳實(shí)施例披露如上,然其并非用以限定本發(fā)明,任何熟習(xí)此項(xiàng)技藝者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作少許的更動(dòng)與潤(rùn)飾,因此本發(fā)明的保護(hù)范圍當(dāng)視后附的權(quán)利要求并結(jié)合說明書和附圖所界定者為準(zhǔn)。
權(quán)利要求
1.一種可保護(hù)只讀存儲(chǔ)器數(shù)據(jù)的密碼保護(hù)電路,其特征是包括一只讀存儲(chǔ)器,用以儲(chǔ)存資料;一偽隨機(jī)產(chǎn)生器,根據(jù)一初始值,加密該只讀存儲(chǔ)器資料;以及一加法器,將該偽隨機(jī)產(chǎn)生器的加密結(jié)果,及該只讀存儲(chǔ)器資料相加,藉以得到一擾亂資料。
2.如權(quán)利要求1所述的可保護(hù)只讀存儲(chǔ)器數(shù)據(jù)的密碼保護(hù)電路,其特征是其中,該偽隨機(jī)產(chǎn)生器包括一移位緩存器,存放該初始值及該只讀存儲(chǔ)器資料;以及一運(yùn)算電路,運(yùn)算該移位緩存器存放的資料、并將處理結(jié)果送回該移位緩存器以進(jìn)行移位動(dòng)作。
3.如權(quán)利要求2所述的可保護(hù)只讀存儲(chǔ)器數(shù)據(jù)的密碼保護(hù)電路,其特征是其中,當(dāng)該移位緩存器及該初始值為16位時(shí),該運(yùn)算電路可根據(jù)f(x)=x16+x12+x7+x+1運(yùn)算該移位緩存器的資料、并將處理結(jié)果送回該移位緩存器的最低位,如此,當(dāng)該初始值為FFFFH時(shí),該移位緩存器存放的資料會(huì)維持不變,而當(dāng)該初始值為OOOOH~FFFEH時(shí),該移位緩存器的資料則會(huì)加密而改變。
4.如權(quán)利要求3所述的可保護(hù)只讀存儲(chǔ)器數(shù)據(jù)的密碼保護(hù)電路,其特征是其中,當(dāng)該移位緩存器存放的資料滿足一特定條件時(shí),該只讀存儲(chǔ)器資料是加載該移位緩存器以改變其內(nèi)容。
5.如權(quán)利要求1所述的可保護(hù)只讀存儲(chǔ)器數(shù)據(jù)的密碼保護(hù)電路,其特征是其中,該加法器是相加該只讀存儲(chǔ)器資料及該移位緩存器中相同長(zhǎng)度的資料,藉以得到該擾亂資料。
6.如權(quán)利要求1所述的可保護(hù)只讀存儲(chǔ)器數(shù)據(jù)的密碼保護(hù)電路,其特征是更包括一閂鎖電路,用以閂鎖該加法器的輸出。
7.一種可保護(hù)只讀存儲(chǔ)器數(shù)據(jù)的密碼保護(hù)電路,其特征是包括一初始值產(chǎn)生器,用以產(chǎn)生第一值域或第二值域的初始值;一移位緩存器,用以暫存該初始值、并選擇性地加載該只讀存儲(chǔ)器資料,藉以改變其資料內(nèi)容;一運(yùn)算電路,計(jì)算該移位緩存器的資料、并將結(jié)果送回該移位緩存器以進(jìn)行移位動(dòng)作;一加法器,相加該只讀存儲(chǔ)器資料及該移位緩存器中相同長(zhǎng)度的資料,藉以得到一擾亂資料;以及一閂鎖電路,閂鎖該加法器的輸出。
全文摘要
一種可保護(hù)只讀存儲(chǔ)器數(shù)據(jù)的密碼保護(hù)電路,有初始值產(chǎn)生裝置、移位緩存器、運(yùn)算電路、加法器及閂鎖電路。初始值產(chǎn)生器產(chǎn)生兩種值域互斥的初始值。移位緩存器暫存上述初始值、并選擇性地加載只讀存儲(chǔ)器資料變動(dòng)其中內(nèi)容。運(yùn)算電路處理移位緩存器的內(nèi)容、并將結(jié)果送回移位緩存器進(jìn)行移位動(dòng)作。加法器相加只讀存儲(chǔ)器資料及移位緩存器中相同長(zhǎng)度的資料,藉以得到一加密資料。而閂鎖電路在特定情況下閂鎖加法器,使其輸出固定維持在高電位或低電位。
文檔編號(hào)G06F12/14GK1378144SQ0110954
公開日2002年11月6日 申請(qǐng)日期2001年3月30日 優(yōu)先權(quán)日2001年3月30日
發(fā)明者許智仁, 黃裕欽, 許木機(jī) 申請(qǐng)人:華邦電子股份有限公司