本發(fā)明涉及計算機系統(tǒng)及加密技術(shù)領(lǐng)域,更具體地說,涉及一種基于DS2432的嵌入式加密認證方法及系統(tǒng)。
背景技術(shù):
目前,越來越多使用帶有加密認證能力的電子設(shè)備去完成電子設(shè)備的身份識別。對于一個真正安全的認證系統(tǒng),最苛刻的功能是鑒定,這是因為認證必須能夠證明它是由發(fā)行者授權(quán),而且是可信的。認證應(yīng)該可以簡單地用其所包含發(fā)行者在內(nèi)才能生成的加密信息來證明其合法性,這就是所謂加密認證。加密認證是—個非常棘手的難題,這是由于設(shè)備必須能夠驗證它不是偽造的或復(fù)制的,要做到這一點,就需要設(shè)備有一些比較特殊的硬件功能。為此,若該設(shè)備的設(shè)計不允許自由檢查,那么該系統(tǒng)將是不可信的,其設(shè)計或功能上的加密幾乎也是不可取的。
因此,如何通過嵌入式認證加密系統(tǒng),保護電子設(shè)備是本領(lǐng)域技術(shù)人員需要解決的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種基于DS2432的嵌入式加密認證方法及系統(tǒng),以實現(xiàn)通過嵌入式認證加密系統(tǒng),保護電子設(shè)備。
為實現(xiàn)上述目的,本發(fā)明實施例提供了如下技術(shù)方案:
一種基于DS2432芯片的嵌入式加密認證方法,包括:
當(dāng)系統(tǒng)運行時,DS2432芯片根據(jù)內(nèi)置的第一密鑰、第一數(shù)據(jù)和所述DS2432的序列號,利用所述DS2432芯片內(nèi)置的SHA-1引擎計算第一MAC值;
DS2460芯片根據(jù)從微控制器獲取的所述DS2432芯片的序列號及所述DS2460芯片內(nèi)置的第二密鑰和第二數(shù)據(jù),利用所述DS2460芯片內(nèi)置的SHA-1引擎計算第二MAC值;
所述微控制器將所述第一MAC值寫入所述DS2460芯片;若所述DS2460芯片判定所述第一MAC值和所述第二MAC值相同,則認證成功;若不相同,則認證失敗。
其中,在系統(tǒng)運行之前,所述微控制器將所述第一密鑰寫入DS2432芯片的密鑰存儲器,將所述第一數(shù)據(jù)寫入所述DS2432芯片的數(shù)據(jù)存儲器。
其中,所述微控制器將所述第一數(shù)據(jù)寫入所述DS2432芯片的數(shù)據(jù)存儲器,包括:
所述微控制器將所述第一數(shù)據(jù)寫入暫存器;
所述DS2432芯片獲取授權(quán)碼,判斷所述授權(quán)碼與地址寄存器中的數(shù)據(jù)是否匹配;若匹配,則判斷所述數(shù)據(jù)存儲器是否加寫保護;若存在,則所述DS2432芯片計算第一驗證MAC值,并接收所述微控制器計算的第二驗證MAC值;
若所述第一驗證MAC值和所述第二驗證MAC值相同,則將所述暫存器內(nèi)的第一數(shù)據(jù)寫入所述數(shù)據(jù)存儲器。
其中,在系統(tǒng)運行之前,所述微控制器將所述第二密鑰寫入所述DS2460芯片的E-Secret1;所述微控制器將所述第二數(shù)據(jù)寫入所述DS2460芯片的輸入緩沖器;其中,所述第一密鑰與所述第二密鑰相同,所述第一數(shù)據(jù)與所述第二數(shù)據(jù)相同。
其中,所述微控制器將所述第二密鑰寫入所述DS2460芯片的E-Secret1,包括:
所述微控制器以寫訪問模式將所述第二密鑰寫入所述DS2460芯片的E-Secret1。
其中,所述微控制器將所述第二數(shù)據(jù)寫入所述DS2460芯片的輸入緩沖器,包括:
所述微控制器以寫訪問模式將所述第二數(shù)據(jù)寫入所述DS2460芯片的輸入緩沖器。
其中,所述DS2432芯片根據(jù)內(nèi)置的第一密鑰、第一數(shù)據(jù)和所述DS2432的序列號,利用所述DS2432內(nèi)置的SHA-1引擎計算第一MAC值,包括:
獲取質(zhì)詢;
根據(jù)命令代碼指定的目的地址,選取所述第一數(shù)據(jù)中選定頁的32個數(shù)據(jù)字節(jié);
所述DS2460芯片內(nèi)置的SHA-1引擎根據(jù)所述第一密鑰、所述選定頁的32個數(shù)據(jù)字節(jié)、所述序列號和所述質(zhì)詢,計算所述第一MAC值。
其中,所述微控制器將所述第一MAC值寫入所述DS2460芯片之前,還包括:
所述微控制器從所述DS2432芯片內(nèi)獲取CRC發(fā)生器產(chǎn)生的CRC校驗碼,若所述CRC校驗碼與所述微控制器所計算出的CRC校驗碼一致,則將所述MAC值寫入所述DS2460芯片。
一種基于DS2432芯片的嵌入式加密認證系統(tǒng),包括:
微控制器,用于向DS2460芯片發(fā)送DS2432芯片的序列號;將所述DS2432芯片計算的第一MAC值寫入DS2460芯片;
與所述微控制器的1-Wire總線相連的DS2432芯片,用于在系統(tǒng)運行時,根據(jù)內(nèi)置的第一密鑰、第一數(shù)據(jù)和所述DS2432的序列號,利用所述DS2432芯片內(nèi)置的SHA-1引擎計算第一MAC值;
與所述微控制器的串行數(shù)據(jù)接口和串行時鐘接口相連的DS2460芯片,用于根據(jù)所述DS2432芯片的序列號及所述DS2460芯片內(nèi)置的第二密鑰和第二數(shù)據(jù),利用所述DS2460芯片內(nèi)置的SHA-1引擎計算第二MAC值;若判定所述第一MAC值和所述第二MAC值相同,則認證成功;若不相同,則認證失敗。
其中,所述微控制器為STC12C5406。
通過以上方案可知,本發(fā)明實施例提供的一種基于DS2432芯片的嵌入式加密認證方法及系統(tǒng),包括:當(dāng)系統(tǒng)運行時,DS2432芯片根據(jù)內(nèi)置的第一密鑰、第一數(shù)據(jù)和所述DS2432的序列號,利用所述DS2432芯片內(nèi)置的SHA-1引擎計算第一MAC值;DS2460芯片根據(jù)從微控制器獲取的所述DS2432芯片的序列號及所述DS2460芯片內(nèi)置的第二密鑰和第二數(shù)據(jù),利用所述DS2460芯片內(nèi)置的SHA-1引擎計算第二MAC值;所述微控制器將所述第一MAC值寫入所述DS2460芯片;若所述DS2460芯片判定所述第一MAC值和所述第二MAC值相同,則認證成功;若不相同,則認證失??;
可見,在本實施例中,若驗證兩個MAC值相同,就通過認證,即電子產(chǎn)品的電路板是原裝的,因為克隆后的DS2432的序列號與原序列號號不一樣,并且由于存入原電路板的密鑰是隱藏不可讀的,這就同樣能保證克隆后的電路板所計算的MAC值與原電路板的MAC值是不相等的,以實現(xiàn)對原電路板起到保護作用。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例公開的一種基于DS2432的嵌入式加密認證系統(tǒng)的硬件設(shè)計原理框圖;
圖2為本發(fā)明實施例公開的一種基于DS2432的嵌入式加密認證方法流程示意圖;
圖3為本發(fā)明實施例公開的DS2432的數(shù)據(jù)初始化程序流程圖;
圖4為本發(fā)明實施例公開的DS2432的MAC值的計算程序流程圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明實施例公開了一種基于DS2432的嵌入式加密認證方法及系統(tǒng),以實現(xiàn)通過嵌入式認證加密系統(tǒng),保護電子設(shè)備。
參見圖1,本發(fā)明實施例提供的一種基于DS2432芯片的嵌入式加密認證系統(tǒng),包括:
微控制器100,用于向DS2460芯片發(fā)送DS2432芯片的序列號;將所述DS2432芯片計算的第一MAC值寫入DS2460芯片;
與所述微控制器的1-Wire總線相連的DS2432芯片200,用于在系統(tǒng)運行時,根據(jù)內(nèi)置的第一密鑰、第一數(shù)據(jù)和所述DS2432的序列號,利用所述DS2432芯片內(nèi)置的SHA-1引擎計算第一MAC值;
與所述微控制器的串行數(shù)據(jù)接口和串行時鐘接口相連的DS2460芯片300,用于根據(jù)所述DS2432芯片的序列號及所述DS2460芯片內(nèi)置的第二密鑰和第二數(shù)據(jù),利用所述DS2460芯片內(nèi)置的SHA-1引擎計算第二MAC值;若判定所述第一MAC值和所述第二MAC值相同,則認證成功;若不相同,則認證失敗。其中,所述微控制器為STC12C5406。
具體的,參見圖1,為本實施例提供的一種基于DS2432的嵌入式加密認證系統(tǒng)的硬件設(shè)計原理框圖,可以看出硬件部分主要由微處理器STC12C5406,帶有SHA-1引擎保護的DS2432和帶有EEPROM的SHA-1協(xié)處理器DS2460組成。DS2432和微控制器STC12C5406是通過引腳2的1-Wire總線進行通信的,DS2460與其是通過引腳6(SDA)I2C串行數(shù)據(jù)輸入/輸出和引腳7(SCL)串行時鐘輸入進行通信。
在觸發(fā)認證系統(tǒng)進行認證時,微控制器STC12C5406把DS2432的ID號即序列號加載到DS2460的輸入緩存器中,再調(diào)用DS2432和DS2460的SHA-1引擎分別計算SHA-1算法的MAC值,并在DS2460中進行比較,如果MAC相等,就通過認證,即電子產(chǎn)品的電路板是原裝的??寺『蟮腄S2432的ID號與原ID號不一樣,并且存入原電路板的密鑰是隱藏不可讀的,這就保證克隆后的電路板所計算的MAC值與原電路板的MAC值是不相等的,起到了保護原電路板的作用。
參見圖2,本發(fā)明實施例提供的一種基于DS2432芯片的嵌入式加密認證方法,包括:
S101、當(dāng)系統(tǒng)運行時,DS2432芯片根據(jù)內(nèi)置的第一密鑰、第一數(shù)據(jù)和所述DS2432的序列號,利用所述DS2432芯片內(nèi)置的SHA-1引擎計算第一MAC值;
具體的,在本實施例中,在系統(tǒng)運行之前,首先對DS2432芯片和DS2460芯片的密鑰和數(shù)據(jù)初始化,把DS2432的ID號(序列號)存入微控制器STC12C5406中,將相同的密鑰和數(shù)據(jù)分別存入DS2432的密鑰存儲器和數(shù)據(jù)存儲器,和DS2460的EEPROM中的E-Secret1和輸入緩沖器中。當(dāng)受保護的系統(tǒng)要運行時,就會首先觸發(fā)所設(shè)計的認證系統(tǒng)進行認證。具體包括:
S1、在系統(tǒng)運行之前,所述微控制器將所述第一密鑰寫入所述DS2432芯片的密鑰存儲器,將所述第一數(shù)據(jù)寫入所述DS2432芯片的數(shù)據(jù)存儲器。
具體的,在本方案中,DS2432芯片的密鑰初始化,是微處理器STC12C5406通過1-Wire端口訪問DS2432的協(xié)議,具體如下:
①初始化;
②ROM操作命令;
③存儲器或SHA操作命令;
④交易/數(shù)據(jù)。
STC12C5406向DS2432存入第一密鑰按上述步驟進行。
其中,所述微控制器將所述第一數(shù)據(jù)寫入所述DS2432芯片的數(shù)據(jù)存儲器,包括:
所述微控制器將所述第一數(shù)據(jù)寫入暫存器;
所述DS2432芯片獲取授權(quán)碼,判斷所述授權(quán)碼與地址寄存器中的數(shù)據(jù)是否匹配;若匹配,則判斷所述數(shù)據(jù)存儲器是否加寫保護;若存在,則所述DS2432芯片計算第一驗證MAC值,并接收所述微控制器計算的第二驗證MAC值;
若所述第一驗證MAC值和所述第二驗證MAC值相同,則將所述暫存器內(nèi)的第一數(shù)據(jù)寫入所述數(shù)據(jù)存儲器。
具體的,在本實施例中DS2432芯片數(shù)據(jù)初始化和DS2432芯片密鑰初始化一樣,微處理器STC12C5406通過1-Wire端口向DS2432寫入數(shù)據(jù)就必須遵循訪問DS2432的協(xié)議:①初始化,②ROM操作命令,③存儲器或SHA操作命令,④交易/數(shù)據(jù)。數(shù)據(jù)初始化的前兩步是和密鑰初始化的前兩步是一樣,從第三步存儲器或SHA操作命令就不同了,下面進行詳細介紹:
首先要執(zhí)行Write Scratchpad(寫暫存器)命令,將要寫入數(shù)據(jù)存儲器的數(shù)據(jù)先寫入暫存器,SHA-1引擎計算MAC值所用的數(shù)據(jù)存貯器的數(shù)據(jù)一般是一頁存儲器數(shù)據(jù)即32個字節(jié),因為暫存器只能存8個字節(jié),所以要寫暫存器四次。寫暫存器的過程和密鑰的存入寫暫存器的過程是一樣的,不過寫入的一個是密鑰,一個是初始化數(shù)據(jù)存貯器的數(shù)據(jù)。
隨后執(zhí)行Copy Scratchpad(復(fù)制暫存器)命令向存儲器或寄存器頁寫入新的數(shù)據(jù),發(fā)出Copy Scratchpad命令后,主機必須提供一個3字節(jié)的授權(quán)碼,此數(shù)據(jù)通過Read Scratchpad命令獲得。Read Scratchpad執(zhí)行的過程和前面DS2432密鑰初始化時的Read Scratchpad過程是一樣的。其中,將密鑰寫到DS2432密鑰存儲器前,即DS2432密鑰初始化前要執(zhí)行Read Scratchpad,訪問存儲器和操作SHA引擎的命令有:Write Scratchpad[0Fh](寫暫存器命令),Read Scratchpad[AAh](讀暫存器命令)等,其中Read Scratchpad(讀暫存器)可以用來驗證目的地址和暫存器數(shù)據(jù)的完整性。
通過Read Scratchpad得到的這3個字節(jié)的數(shù)據(jù)必須與三個地址寄存器中(依次為TA1、TA2、E/S)的數(shù)據(jù)完全匹配。如果授權(quán)碼匹配,而且目的存儲器未加寫保護,在把整個暫存器的內(nèi)容拷貝到數(shù)據(jù)EEPROM之前還要進行寫認證,即DS2432啟動SHA引擎,基于當(dāng)前密鑰、暫存器內(nèi)所有數(shù)據(jù)、所尋址的存儲器頁的前28個字節(jié)和DS2432的序列號(不包括CRC校驗碼)計算一個160位MAC;其中所尋址的存儲器頁的前28個字節(jié)為初始化時的數(shù)據(jù)。
同時,主機也利用同樣的數(shù)據(jù)計算一個MAC,并把它發(fā)送給DS2432,以便證明它有權(quán)寫EEPROM。這里需要說明的是對于DS2432的序列號,主機可用Read Rom[33h]獲取。此命令允許主機讀取DS2432的8位家族碼、48位唯一的序列號和8位CRC校驗碼。并且此命令適用于總線上只有一個從機的情況,而所設(shè)計的系統(tǒng)就僅一個DS2432,所以適用。對于DS2432所尋址的存儲頁的數(shù)據(jù),主機可用ReadMemory(讀存儲器)命令來讀取。Read Memory可以用來讀取除密鑰之外的所有存儲器。主機發(fā)出命令后,必須提供2個字節(jié)的目的地址。在這兩個字節(jié)之后,主機從目的地址開始讀取數(shù)據(jù),可以一直讀到地址0097h。之后,如果主機繼續(xù)讀數(shù),結(jié)果將全是邏輯1,目的地址寄存器將指向最后一個讀取的字節(jié),并且偏移量/數(shù)據(jù)狀態(tài)字節(jié)和暫存器不受影響。其中,DS2432的數(shù)據(jù)初始化程序流程圖如圖3所示
S2、在系統(tǒng)運行之前,所述微控制器將所述第二密鑰寫入所述DS2460芯片的E-Secret1;所述微控制器將所述第二數(shù)據(jù)寫入所述DS2460芯片的輸入緩沖器;其中,所述第一密鑰與所述第二密鑰相同,所述第一數(shù)據(jù)與所述第二數(shù)據(jù)相同。
其中,所述微控制器以寫訪問模式將所述第二密鑰寫入所述DS2460芯片的E-Secret1;
所述微控制器以寫訪問模式將所述第二數(shù)據(jù)寫入所述DS2460芯片的輸入緩沖器。
具體的,DS2460有四個密鑰存儲區(qū)地址可以存儲密鑰,在認證系統(tǒng)設(shè)計中選擇密鑰E-Secret1地址存儲密鑰。在向DS2460的E-Secret1寫第二密鑰時,主機必須以寫訪問模式訪問器件,即:發(fā)送從地址時方向位必須設(shè)置為0。寫模式下發(fā)送的下一個字節(jié)是E-Secret1地址字節(jié),用來選擇要寫的密鑰存儲器地址。隨后的字節(jié)是送給E-Secret1地址存儲單元的密鑰數(shù)據(jù)。
具體的,本實施例中DS2460芯片數(shù)據(jù)初始化,由于DS2460芯片計算MAC值時需要用到輸入緩沖器的數(shù)據(jù),并且所得的MAC值必須和DS2432計算所得的MAC值要相等,所以存入DS2406輸入緩沖器的數(shù)據(jù)不但要和存入DS2432存儲器的數(shù)據(jù)要一致,并且一部分數(shù)據(jù)要和DS2432計算MAC時的存儲器和SHA操作命令中的Read Authenticated Page命令的SHA-1輸入數(shù)據(jù)相對應(yīng)。向DS2460的輸入緩沖器寫入數(shù)據(jù),主機必須以寫訪問模式訪問器件DS2460,也就是說發(fā)送從地址時方向位必須設(shè)置為0。寫模式下發(fā)送的下一個字節(jié)是地址字節(jié),用來選擇被寫的寄存器或存儲地址,在這里選擇輸入緩沖器的地址,跟在地址后的所有數(shù)據(jù)字節(jié)被直接寫入相應(yīng)的存儲器單元。每接收一個字節(jié),寫地址指針和讀指針即增加,直到寫完要存入的數(shù)據(jù)。
具體的,在本實施例中對微控制器STC12C5406數(shù)據(jù)初始化,即將DS2432芯片中全球唯一的序列號存儲在STC12C5406的程序中,在計算MAC值之前就送入DS2460的輸入緩沖器,以備計算MAC時使用。
其中,在本方案中,所述DS2432芯片根據(jù)內(nèi)置的第一密鑰、第一數(shù)據(jù)和所述DS2432的序列號,利用所述DS2432內(nèi)置的SHA-1引擎計算第一MAC值,包括:
獲取質(zhì)詢;
根據(jù)命令代碼指定的目的地址,選取所述第一數(shù)據(jù)中選定頁的32個數(shù)據(jù)字節(jié);
所述DS2460芯片內(nèi)置的SHA-1引擎根據(jù)所述第一密鑰、所述選定頁的32個數(shù)據(jù)字節(jié)、所述序列號和所述質(zhì)詢,計算所述第一MAC值。
所述微控制器將所述第一MAC值寫入所述DS2460芯片之前,還包括:
所述微控制器從所述DS2432芯片內(nèi)獲取CRC發(fā)生器產(chǎn)生的CRC校驗碼,若所述CRC校驗碼與所述微控制器所計算出的CRC校驗碼一致,則將所述MAC值寫入所述DS2460芯片。
具體的,在本實施例中利用命令Read Authenticated Page(讀驗證頁),主機可以獲得全部或部分存儲器頁的數(shù)據(jù)和一個MAC。
主機發(fā)出命令代碼并指定了目的地址(TA1和TA2)后,它將接收從目的地址開始到數(shù)據(jù)頁末尾的存儲器頁數(shù)據(jù)、一個FFh字節(jié)和一個反碼的CRC,該CRC碼由命令代碼、目的地址、已傳送的數(shù)據(jù)和FFh字節(jié)產(chǎn)生。CRC校驗碼接收完畢后,DS2432的SHA引擎利用自己的密鑰、指定存儲器頁的所有數(shù)據(jù)(選定頁的32個數(shù)據(jù)字節(jié))、自身的序列號((不包括CRC校驗碼))和一個3字節(jié)的質(zhì)詢來計算MAC,這個3字節(jié)質(zhì)詢是由主機在發(fā)Read Authenticated Page命令之前提前寫入暫存器的。
然后,主機就可讀取160位MAC,隨后是一個反碼的CRC,以確保數(shù)據(jù)傳輸?shù)目煽啃?。如果在CRC校驗碼后主機繼續(xù)讀取數(shù)據(jù),在它發(fā)送復(fù)位脈沖前將收到交替的“1”和“0”碼。具體的,DS2432的MAC值的計算程序流程圖見圖4;需要說明的是,圖4中的注冊碼即為本方案中的序列號。
具體的,本實施例中的DS2432芯片內(nèi)部的CRC(循環(huán)冗余校驗)發(fā)生器是16位的,根據(jù)標(biāo)準(zhǔn)的CRC16多項式函數(shù)產(chǎn)生。該CRC校驗碼用于檢測執(zhí)行Read Authenticated Page命令(見存儲器和SHA操作命令單元)時的錯誤,或者在讀、寫或更新暫存器的時候,快速檢驗數(shù)據(jù)傳送的正確性。16位CRC校驗碼通常是以反碼的形式發(fā)送或回送。DS2432芯片內(nèi)部的CRC發(fā)生器用于在命令流程中計算一個新的16位CRC校驗碼。總線主機通過比較由器件讀來的CRC校驗碼和自己根據(jù)數(shù)據(jù)計算出的CRC校驗碼,來決定是繼續(xù)某一操作還是重讀有CRC錯誤的數(shù)據(jù)部分。這一部分是根據(jù)執(zhí)行Write Scratchpad命令時,DS2432內(nèi)部的CRC發(fā)生器隨著主機的發(fā)送過程,計算整個數(shù)據(jù)流的CRC校驗碼,始于命令碼,止于最后一個數(shù)據(jù)字節(jié)。用于驗證發(fā)送數(shù)據(jù)正確性。
S102、DS2460芯片根據(jù)從微控制器獲取的所述DS2432芯片的序列號及所述DS2460芯片內(nèi)置的第二密鑰和第二數(shù)據(jù),利用所述DS2460芯片內(nèi)置的SHA-1引擎計算第二MAC值;
具體的,在本實施例中紅DS2460芯片計算MAC值之前,主機首先把DS2432的唯一序列號對照Authenticated Page命令的SHA-1輸入數(shù)據(jù)格式輸入到DS2460SHA引擎輸入緩沖器輸入信息格式中的輸入緩沖器。然后將命令字節(jié)寫入地址5Ch處的命令寄存器。命令字節(jié)寫入命令寄存器后,命令碼被應(yīng)答,一旦主機發(fā)出停止條件,SHA-1引擎激活,就會根據(jù)初始化的數(shù)據(jù)計算出一個MAC值。
S103、所述微控制器將所述第一MAC值寫入所述DS2460芯片;若所述DS2460芯片判定所述第一MAC值和所述第二MAC值相同,則認證成功;若不相同,則認證失敗。
具體的,在本實施例中,為了比較MAC值的同時不暴露它,DS2460芯片包括一個連續(xù)工作的比較器,可以對寫入匹配MAC寄存器的數(shù)據(jù)和MAC輸出緩沖器中的數(shù)據(jù)進行比較。使用比較功能時,主機以寫模式訪問DS2460,指定匹配MAC寄存器地址,并把從DS2432發(fā)送到主機的MAC按照MAC輸出緩沖器的格式發(fā)送字節(jié),直到傳送完全部20字節(jié)的MAC。比較器把第一字節(jié)同MB+0中的數(shù)據(jù)進行比較,比較下個字節(jié)時轉(zhuǎn)到下個更高的地址。最后一個字節(jié)同MB+19中的數(shù)據(jù)比較。該字節(jié)序列與從1-Wire SHA器件中讀出的MAC相同。無論是否匹配,DS2460應(yīng)答它接收的MAC的全部前19個字節(jié)。只有當(dāng)兩個MAC(即MAC輸出緩沖器中的MAC和主機發(fā)送的MAC)都匹配時才應(yīng)答最后一個(第20個)字節(jié)。如果不匹配,則不會應(yīng)答第20個字節(jié)。主機發(fā)出的第20個字節(jié)得不到應(yīng)答,即兩個MAC值不匹配,也就是認證不通過。
由于原電路板的認證系統(tǒng)的設(shè)計的初始化的數(shù)據(jù)是對照DS2432的Read Authenticated Page命令的SHA-1輸入數(shù)據(jù)格式輸入到DS2460中的SHA引擎輸入緩沖器的,所以計算的MAC值應(yīng)該和DS2432相同。而克隆過的電路板由于不知道原電路板認證系統(tǒng)的密鑰,并且DS2432計算MAC必須要用自己的序列號進行計算,而每個DS2432的序列號是唯一,所以計算后的MAC值不會匹配。
本發(fā)明實施例提供的一種基于DS2432芯片的嵌入式加密認證方法及系統(tǒng),包括:當(dāng)系統(tǒng)運行時,DS2432芯片根據(jù)內(nèi)置的第一密鑰、第一數(shù)據(jù)和所述DS2432的序列號,利用所述DS2432芯片內(nèi)置的SHA-1引擎計算第一MAC值;DS2460芯片根據(jù)從微控制器獲取的所述DS2432芯片的序列號及所述DS2460芯片內(nèi)置的第二密鑰和第二數(shù)據(jù),利用所述DS2460芯片內(nèi)置的SHA-1引擎計算第二MAC值;所述微控制器將所述第一MAC值寫入所述DS2460芯片;若所述DS2460芯片判定所述第一MAC值和所述第二MAC值相同,則認證成功;若不相同,則認證失?。?/p>
可見,在本實施例中,通過利用加密的微控制器STC12C5406編程控制帶有SHA-1算法引擎的芯片DS2432和DS2460進行嵌入式認證系統(tǒng)設(shè)計,通過克隆后的電路板所計算的MAC值與原電路板計算的MAC值是否相等進行原電路板的保護。
并且本方案中加密的微控制器STC12C5406的用戶程序是ISP/IAP機制寫入,編程的時候是一邊校驗一邊寫,無法讀出命令,增加了解密難度。STC空間分為:①BOOTLOAD,②應(yīng)用代碼,③EEPROM。最新版本的STC芯片去掉BOOTLOAD區(qū),并且使用SST89E564的電路,所以STC解密很難。其芯片的特點具有加密性強,很難解密或破解,超強抗干擾的特點。
其次,本方案中帶有SHA-1算法引擎的芯片DS2432和DS2460,DS2432在單個芯片內(nèi)集成了1024位EEPROM、64位密鑰、512位SHA-1引擎,以極低的成本提供了一個安全的高級認證方案。該器件還提供永久性的寫保護模式。每個DS2432具有自身的、由工廠刻入的64位ROM序列號,為其所嵌入的產(chǎn)品或系統(tǒng)提供唯一的ID。這個唯一的64位碼也是SHA-1的輸入組成之一。帶EEPROM的SHA-1引擎協(xié)處理器DS2460是ISO/IEC10118-3安全散列算法SHA-1的硬件實施方案,無需開發(fā)執(zhí)行復(fù)雜SHA計算的軟件,即可鑒別SHA器件以及驗證數(shù)字簽名服務(wù)數(shù)據(jù)的有效性。DS2460能計算1-Wire SHA器件的SHA-1信息認證代碼(MAC)。該器件還能比較MAC。
在本方案中通過分別計算克隆后電路板的MAC值和原電路板MAC是否相等對電路板進行保護,是指DS2432SHA-1引擎計算MAC時只能利用本身的ID號進行計算,克隆后的DS2432的ID號與原ID號不一樣,并且存入的密鑰是隱藏不可讀的,這就保證克隆后的電路板所計算的MAC值與原電路板計算的MAC值是不相等的,則克隆后的電路板認證失敗不能進行下一步系統(tǒng)的功能,起到了保護原電路板的作用。
本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。
對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。