欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于DS2432的嵌入式加密認(rèn)證方法及系統(tǒng)與流程

文檔序號(hào):12600410閱讀:1474來(lái)源:國(guó)知局
一種基于DS2432的嵌入式加密認(rèn)證方法及系統(tǒng)與流程

本發(fā)明涉及計(jì)算機(jī)系統(tǒng)及加密技術(shù)領(lǐng)域,更具體地說(shuō),涉及一種基于DS2432的嵌入式加密認(rèn)證方法及系統(tǒng)。



背景技術(shù):

目前,越來(lái)越多使用帶有加密認(rèn)證能力的電子設(shè)備去完成電子設(shè)備的身份識(shí)別。對(duì)于一個(gè)真正安全的認(rèn)證系統(tǒng),最苛刻的功能是鑒定,這是因?yàn)檎J(rèn)證必須能夠證明它是由發(fā)行者授權(quán),而且是可信的。認(rèn)證應(yīng)該可以簡(jiǎn)單地用其所包含發(fā)行者在內(nèi)才能生成的加密信息來(lái)證明其合法性,這就是所謂加密認(rèn)證。加密認(rèn)證是—個(gè)非常棘手的難題,這是由于設(shè)備必須能夠驗(yàn)證它不是偽造的或復(fù)制的,要做到這一點(diǎn),就需要設(shè)備有一些比較特殊的硬件功能。為此,若該設(shè)備的設(shè)計(jì)不允許自由檢查,那么該系統(tǒng)將是不可信的,其設(shè)計(jì)或功能上的加密幾乎也是不可取的。

因此,如何通過(guò)嵌入式認(rèn)證加密系統(tǒng),保護(hù)電子設(shè)備是本領(lǐng)域技術(shù)人員需要解決的問(wèn)題。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的在于提供一種基于DS2432的嵌入式加密認(rèn)證方法及系統(tǒng),以實(shí)現(xiàn)通過(guò)嵌入式認(rèn)證加密系統(tǒng),保護(hù)電子設(shè)備。

為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供了如下技術(shù)方案:

一種基于DS2432芯片的嵌入式加密認(rèn)證方法,包括:

當(dāng)系統(tǒng)運(yùn)行時(shí),DS2432芯片根據(jù)內(nèi)置的第一密鑰、第一數(shù)據(jù)和所述DS2432的序列號(hào),利用所述DS2432芯片內(nèi)置的SHA-1引擎計(jì)算第一MAC值;

DS2460芯片根據(jù)從微控制器獲取的所述DS2432芯片的序列號(hào)及所述DS2460芯片內(nèi)置的第二密鑰和第二數(shù)據(jù),利用所述DS2460芯片內(nèi)置的SHA-1引擎計(jì)算第二MAC值;

所述微控制器將所述第一MAC值寫(xiě)入所述DS2460芯片;若所述DS2460芯片判定所述第一MAC值和所述第二MAC值相同,則認(rèn)證成功;若不相同,則認(rèn)證失敗。

其中,在系統(tǒng)運(yùn)行之前,所述微控制器將所述第一密鑰寫(xiě)入DS2432芯片的密鑰存儲(chǔ)器,將所述第一數(shù)據(jù)寫(xiě)入所述DS2432芯片的數(shù)據(jù)存儲(chǔ)器。

其中,所述微控制器將所述第一數(shù)據(jù)寫(xiě)入所述DS2432芯片的數(shù)據(jù)存儲(chǔ)器,包括:

所述微控制器將所述第一數(shù)據(jù)寫(xiě)入暫存器;

所述DS2432芯片獲取授權(quán)碼,判斷所述授權(quán)碼與地址寄存器中的數(shù)據(jù)是否匹配;若匹配,則判斷所述數(shù)據(jù)存儲(chǔ)器是否加寫(xiě)保護(hù);若存在,則所述DS2432芯片計(jì)算第一驗(yàn)證MAC值,并接收所述微控制器計(jì)算的第二驗(yàn)證MAC值;

若所述第一驗(yàn)證MAC值和所述第二驗(yàn)證MAC值相同,則將所述暫存器內(nèi)的第一數(shù)據(jù)寫(xiě)入所述數(shù)據(jù)存儲(chǔ)器。

其中,在系統(tǒng)運(yùn)行之前,所述微控制器將所述第二密鑰寫(xiě)入所述DS2460芯片的E-Secret1;所述微控制器將所述第二數(shù)據(jù)寫(xiě)入所述DS2460芯片的輸入緩沖器;其中,所述第一密鑰與所述第二密鑰相同,所述第一數(shù)據(jù)與所述第二數(shù)據(jù)相同。

其中,所述微控制器將所述第二密鑰寫(xiě)入所述DS2460芯片的E-Secret1,包括:

所述微控制器以寫(xiě)訪問(wèn)模式將所述第二密鑰寫(xiě)入所述DS2460芯片的E-Secret1。

其中,所述微控制器將所述第二數(shù)據(jù)寫(xiě)入所述DS2460芯片的輸入緩沖器,包括:

所述微控制器以寫(xiě)訪問(wèn)模式將所述第二數(shù)據(jù)寫(xiě)入所述DS2460芯片的輸入緩沖器。

其中,所述DS2432芯片根據(jù)內(nèi)置的第一密鑰、第一數(shù)據(jù)和所述DS2432的序列號(hào),利用所述DS2432內(nèi)置的SHA-1引擎計(jì)算第一MAC值,包括:

獲取質(zhì)詢;

根據(jù)命令代碼指定的目的地址,選取所述第一數(shù)據(jù)中選定頁(yè)的32個(gè)數(shù)據(jù)字節(jié);

所述DS2460芯片內(nèi)置的SHA-1引擎根據(jù)所述第一密鑰、所述選定頁(yè)的32個(gè)數(shù)據(jù)字節(jié)、所述序列號(hào)和所述質(zhì)詢,計(jì)算所述第一MAC值。

其中,所述微控制器將所述第一MAC值寫(xiě)入所述DS2460芯片之前,還包括:

所述微控制器從所述DS2432芯片內(nèi)獲取CRC發(fā)生器產(chǎn)生的CRC校驗(yàn)碼,若所述CRC校驗(yàn)碼與所述微控制器所計(jì)算出的CRC校驗(yàn)碼一致,則將所述MAC值寫(xiě)入所述DS2460芯片。

一種基于DS2432芯片的嵌入式加密認(rèn)證系統(tǒng),包括:

微控制器,用于向DS2460芯片發(fā)送DS2432芯片的序列號(hào);將所述DS2432芯片計(jì)算的第一MAC值寫(xiě)入DS2460芯片;

與所述微控制器的1-Wire總線相連的DS2432芯片,用于在系統(tǒng)運(yùn)行時(shí),根據(jù)內(nèi)置的第一密鑰、第一數(shù)據(jù)和所述DS2432的序列號(hào),利用所述DS2432芯片內(nèi)置的SHA-1引擎計(jì)算第一MAC值;

與所述微控制器的串行數(shù)據(jù)接口和串行時(shí)鐘接口相連的DS2460芯片,用于根據(jù)所述DS2432芯片的序列號(hào)及所述DS2460芯片內(nèi)置的第二密鑰和第二數(shù)據(jù),利用所述DS2460芯片內(nèi)置的SHA-1引擎計(jì)算第二MAC值;若判定所述第一MAC值和所述第二MAC值相同,則認(rèn)證成功;若不相同,則認(rèn)證失敗。

其中,所述微控制器為STC12C5406。

通過(guò)以上方案可知,本發(fā)明實(shí)施例提供的一種基于DS2432芯片的嵌入式加密認(rèn)證方法及系統(tǒng),包括:當(dāng)系統(tǒng)運(yùn)行時(shí),DS2432芯片根據(jù)內(nèi)置的第一密鑰、第一數(shù)據(jù)和所述DS2432的序列號(hào),利用所述DS2432芯片內(nèi)置的SHA-1引擎計(jì)算第一MAC值;DS2460芯片根據(jù)從微控制器獲取的所述DS2432芯片的序列號(hào)及所述DS2460芯片內(nèi)置的第二密鑰和第二數(shù)據(jù),利用所述DS2460芯片內(nèi)置的SHA-1引擎計(jì)算第二MAC值;所述微控制器將所述第一MAC值寫(xiě)入所述DS2460芯片;若所述DS2460芯片判定所述第一MAC值和所述第二MAC值相同,則認(rèn)證成功;若不相同,則認(rèn)證失??;

可見(jiàn),在本實(shí)施例中,若驗(yàn)證兩個(gè)MAC值相同,就通過(guò)認(rèn)證,即電子產(chǎn)品的電路板是原裝的,因?yàn)榭寺『蟮腄S2432的序列號(hào)與原序列號(hào)號(hào)不一樣,并且由于存入原電路板的密鑰是隱藏不可讀的,這就同樣能保證克隆后的電路板所計(jì)算的MAC值與原電路板的MAC值是不相等的,以實(shí)現(xiàn)對(duì)原電路板起到保護(hù)作用。

附圖說(shuō)明

為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本發(fā)明實(shí)施例公開(kāi)的一種基于DS2432的嵌入式加密認(rèn)證系統(tǒng)的硬件設(shè)計(jì)原理框圖;

圖2為本發(fā)明實(shí)施例公開(kāi)的一種基于DS2432的嵌入式加密認(rèn)證方法流程示意圖;

圖3為本發(fā)明實(shí)施例公開(kāi)的DS2432的數(shù)據(jù)初始化程序流程圖;

圖4為本發(fā)明實(shí)施例公開(kāi)的DS2432的MAC值的計(jì)算程序流程圖。

具體實(shí)施方式

下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

本發(fā)明實(shí)施例公開(kāi)了一種基于DS2432的嵌入式加密認(rèn)證方法及系統(tǒng),以實(shí)現(xiàn)通過(guò)嵌入式認(rèn)證加密系統(tǒng),保護(hù)電子設(shè)備。

參見(jiàn)圖1,本發(fā)明實(shí)施例提供的一種基于DS2432芯片的嵌入式加密認(rèn)證系統(tǒng),包括:

微控制器100,用于向DS2460芯片發(fā)送DS2432芯片的序列號(hào);將所述DS2432芯片計(jì)算的第一MAC值寫(xiě)入DS2460芯片;

與所述微控制器的1-Wire總線相連的DS2432芯片200,用于在系統(tǒng)運(yùn)行時(shí),根據(jù)內(nèi)置的第一密鑰、第一數(shù)據(jù)和所述DS2432的序列號(hào),利用所述DS2432芯片內(nèi)置的SHA-1引擎計(jì)算第一MAC值;

與所述微控制器的串行數(shù)據(jù)接口和串行時(shí)鐘接口相連的DS2460芯片300,用于根據(jù)所述DS2432芯片的序列號(hào)及所述DS2460芯片內(nèi)置的第二密鑰和第二數(shù)據(jù),利用所述DS2460芯片內(nèi)置的SHA-1引擎計(jì)算第二MAC值;若判定所述第一MAC值和所述第二MAC值相同,則認(rèn)證成功;若不相同,則認(rèn)證失敗。其中,所述微控制器為STC12C5406。

具體的,參見(jiàn)圖1,為本實(shí)施例提供的一種基于DS2432的嵌入式加密認(rèn)證系統(tǒng)的硬件設(shè)計(jì)原理框圖,可以看出硬件部分主要由微處理器STC12C5406,帶有SHA-1引擎保護(hù)的DS2432和帶有EEPROM的SHA-1協(xié)處理器DS2460組成。DS2432和微控制器STC12C5406是通過(guò)引腳2的1-Wire總線進(jìn)行通信的,DS2460與其是通過(guò)引腳6(SDA)I2C串行數(shù)據(jù)輸入/輸出和引腳7(SCL)串行時(shí)鐘輸入進(jìn)行通信。

在觸發(fā)認(rèn)證系統(tǒng)進(jìn)行認(rèn)證時(shí),微控制器STC12C5406把DS2432的ID號(hào)即序列號(hào)加載到DS2460的輸入緩存器中,再調(diào)用DS2432和DS2460的SHA-1引擎分別計(jì)算SHA-1算法的MAC值,并在DS2460中進(jìn)行比較,如果MAC相等,就通過(guò)認(rèn)證,即電子產(chǎn)品的電路板是原裝的??寺『蟮腄S2432的ID號(hào)與原ID號(hào)不一樣,并且存入原電路板的密鑰是隱藏不可讀的,這就保證克隆后的電路板所計(jì)算的MAC值與原電路板的MAC值是不相等的,起到了保護(hù)原電路板的作用。

參見(jiàn)圖2,本發(fā)明實(shí)施例提供的一種基于DS2432芯片的嵌入式加密認(rèn)證方法,包括:

S101、當(dāng)系統(tǒng)運(yùn)行時(shí),DS2432芯片根據(jù)內(nèi)置的第一密鑰、第一數(shù)據(jù)和所述DS2432的序列號(hào),利用所述DS2432芯片內(nèi)置的SHA-1引擎計(jì)算第一MAC值;

具體的,在本實(shí)施例中,在系統(tǒng)運(yùn)行之前,首先對(duì)DS2432芯片和DS2460芯片的密鑰和數(shù)據(jù)初始化,把DS2432的ID號(hào)(序列號(hào))存入微控制器STC12C5406中,將相同的密鑰和數(shù)據(jù)分別存入DS2432的密鑰存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,和DS2460的EEPROM中的E-Secret1和輸入緩沖器中。當(dāng)受保護(hù)的系統(tǒng)要運(yùn)行時(shí),就會(huì)首先觸發(fā)所設(shè)計(jì)的認(rèn)證系統(tǒng)進(jìn)行認(rèn)證。具體包括:

S1、在系統(tǒng)運(yùn)行之前,所述微控制器將所述第一密鑰寫(xiě)入所述DS2432芯片的密鑰存儲(chǔ)器,將所述第一數(shù)據(jù)寫(xiě)入所述DS2432芯片的數(shù)據(jù)存儲(chǔ)器。

具體的,在本方案中,DS2432芯片的密鑰初始化,是微處理器STC12C5406通過(guò)1-Wire端口訪問(wèn)DS2432的協(xié)議,具體如下:

①初始化;

②ROM操作命令;

③存儲(chǔ)器或SHA操作命令;

④交易/數(shù)據(jù)。

STC12C5406向DS2432存入第一密鑰按上述步驟進(jìn)行。

其中,所述微控制器將所述第一數(shù)據(jù)寫(xiě)入所述DS2432芯片的數(shù)據(jù)存儲(chǔ)器,包括:

所述微控制器將所述第一數(shù)據(jù)寫(xiě)入暫存器;

所述DS2432芯片獲取授權(quán)碼,判斷所述授權(quán)碼與地址寄存器中的數(shù)據(jù)是否匹配;若匹配,則判斷所述數(shù)據(jù)存儲(chǔ)器是否加寫(xiě)保護(hù);若存在,則所述DS2432芯片計(jì)算第一驗(yàn)證MAC值,并接收所述微控制器計(jì)算的第二驗(yàn)證MAC值;

若所述第一驗(yàn)證MAC值和所述第二驗(yàn)證MAC值相同,則將所述暫存器內(nèi)的第一數(shù)據(jù)寫(xiě)入所述數(shù)據(jù)存儲(chǔ)器。

具體的,在本實(shí)施例中DS2432芯片數(shù)據(jù)初始化和DS2432芯片密鑰初始化一樣,微處理器STC12C5406通過(guò)1-Wire端口向DS2432寫(xiě)入數(shù)據(jù)就必須遵循訪問(wèn)DS2432的協(xié)議:①初始化,②ROM操作命令,③存儲(chǔ)器或SHA操作命令,④交易/數(shù)據(jù)。數(shù)據(jù)初始化的前兩步是和密鑰初始化的前兩步是一樣,從第三步存儲(chǔ)器或SHA操作命令就不同了,下面進(jìn)行詳細(xì)介紹:

首先要執(zhí)行Write Scratchpad(寫(xiě)暫存器)命令,將要寫(xiě)入數(shù)據(jù)存儲(chǔ)器的數(shù)據(jù)先寫(xiě)入暫存器,SHA-1引擎計(jì)算MAC值所用的數(shù)據(jù)存貯器的數(shù)據(jù)一般是一頁(yè)存儲(chǔ)器數(shù)據(jù)即32個(gè)字節(jié),因?yàn)闀捍嫫髦荒艽?個(gè)字節(jié),所以要寫(xiě)暫存器四次。寫(xiě)暫存器的過(guò)程和密鑰的存入寫(xiě)暫存器的過(guò)程是一樣的,不過(guò)寫(xiě)入的一個(gè)是密鑰,一個(gè)是初始化數(shù)據(jù)存貯器的數(shù)據(jù)。

隨后執(zhí)行Copy Scratchpad(復(fù)制暫存器)命令向存儲(chǔ)器或寄存器頁(yè)寫(xiě)入新的數(shù)據(jù),發(fā)出Copy Scratchpad命令后,主機(jī)必須提供一個(gè)3字節(jié)的授權(quán)碼,此數(shù)據(jù)通過(guò)Read Scratchpad命令獲得。Read Scratchpad執(zhí)行的過(guò)程和前面DS2432密鑰初始化時(shí)的Read Scratchpad過(guò)程是一樣的。其中,將密鑰寫(xiě)到DS2432密鑰存儲(chǔ)器前,即DS2432密鑰初始化前要執(zhí)行Read Scratchpad,訪問(wèn)存儲(chǔ)器和操作SHA引擎的命令有:Write Scratchpad[0Fh](寫(xiě)暫存器命令),Read Scratchpad[AAh](讀暫存器命令)等,其中Read Scratchpad(讀暫存器)可以用來(lái)驗(yàn)證目的地址和暫存器數(shù)據(jù)的完整性。

通過(guò)Read Scratchpad得到的這3個(gè)字節(jié)的數(shù)據(jù)必須與三個(gè)地址寄存器中(依次為TA1、TA2、E/S)的數(shù)據(jù)完全匹配。如果授權(quán)碼匹配,而且目的存儲(chǔ)器未加寫(xiě)保護(hù),在把整個(gè)暫存器的內(nèi)容拷貝到數(shù)據(jù)EEPROM之前還要進(jìn)行寫(xiě)認(rèn)證,即DS2432啟動(dòng)SHA引擎,基于當(dāng)前密鑰、暫存器內(nèi)所有數(shù)據(jù)、所尋址的存儲(chǔ)器頁(yè)的前28個(gè)字節(jié)和DS2432的序列號(hào)(不包括CRC校驗(yàn)碼)計(jì)算一個(gè)160位MAC;其中所尋址的存儲(chǔ)器頁(yè)的前28個(gè)字節(jié)為初始化時(shí)的數(shù)據(jù)。

同時(shí),主機(jī)也利用同樣的數(shù)據(jù)計(jì)算一個(gè)MAC,并把它發(fā)送給DS2432,以便證明它有權(quán)寫(xiě)EEPROM。這里需要說(shuō)明的是對(duì)于DS2432的序列號(hào),主機(jī)可用Read Rom[33h]獲取。此命令允許主機(jī)讀取DS2432的8位家族碼、48位唯一的序列號(hào)和8位CRC校驗(yàn)碼。并且此命令適用于總線上只有一個(gè)從機(jī)的情況,而所設(shè)計(jì)的系統(tǒng)就僅一個(gè)DS2432,所以適用。對(duì)于DS2432所尋址的存儲(chǔ)頁(yè)的數(shù)據(jù),主機(jī)可用ReadMemory(讀存儲(chǔ)器)命令來(lái)讀取。Read Memory可以用來(lái)讀取除密鑰之外的所有存儲(chǔ)器。主機(jī)發(fā)出命令后,必須提供2個(gè)字節(jié)的目的地址。在這兩個(gè)字節(jié)之后,主機(jī)從目的地址開(kāi)始讀取數(shù)據(jù),可以一直讀到地址0097h。之后,如果主機(jī)繼續(xù)讀數(shù),結(jié)果將全是邏輯1,目的地址寄存器將指向最后一個(gè)讀取的字節(jié),并且偏移量/數(shù)據(jù)狀態(tài)字節(jié)和暫存器不受影響。其中,DS2432的數(shù)據(jù)初始化程序流程圖如圖3所示

S2、在系統(tǒng)運(yùn)行之前,所述微控制器將所述第二密鑰寫(xiě)入所述DS2460芯片的E-Secret1;所述微控制器將所述第二數(shù)據(jù)寫(xiě)入所述DS2460芯片的輸入緩沖器;其中,所述第一密鑰與所述第二密鑰相同,所述第一數(shù)據(jù)與所述第二數(shù)據(jù)相同。

其中,所述微控制器以寫(xiě)訪問(wèn)模式將所述第二密鑰寫(xiě)入所述DS2460芯片的E-Secret1;

所述微控制器以寫(xiě)訪問(wèn)模式將所述第二數(shù)據(jù)寫(xiě)入所述DS2460芯片的輸入緩沖器。

具體的,DS2460有四個(gè)密鑰存儲(chǔ)區(qū)地址可以存儲(chǔ)密鑰,在認(rèn)證系統(tǒng)設(shè)計(jì)中選擇密鑰E-Secret1地址存儲(chǔ)密鑰。在向DS2460的E-Secret1寫(xiě)第二密鑰時(shí),主機(jī)必須以寫(xiě)訪問(wèn)模式訪問(wèn)器件,即:發(fā)送從地址時(shí)方向位必須設(shè)置為0。寫(xiě)模式下發(fā)送的下一個(gè)字節(jié)是E-Secret1地址字節(jié),用來(lái)選擇要寫(xiě)的密鑰存儲(chǔ)器地址。隨后的字節(jié)是送給E-Secret1地址存儲(chǔ)單元的密鑰數(shù)據(jù)。

具體的,本實(shí)施例中DS2460芯片數(shù)據(jù)初始化,由于DS2460芯片計(jì)算MAC值時(shí)需要用到輸入緩沖器的數(shù)據(jù),并且所得的MAC值必須和DS2432計(jì)算所得的MAC值要相等,所以存入DS2406輸入緩沖器的數(shù)據(jù)不但要和存入DS2432存儲(chǔ)器的數(shù)據(jù)要一致,并且一部分?jǐn)?shù)據(jù)要和DS2432計(jì)算MAC時(shí)的存儲(chǔ)器和SHA操作命令中的Read Authenticated Page命令的SHA-1輸入數(shù)據(jù)相對(duì)應(yīng)。向DS2460的輸入緩沖器寫(xiě)入數(shù)據(jù),主機(jī)必須以寫(xiě)訪問(wèn)模式訪問(wèn)器件DS2460,也就是說(shuō)發(fā)送從地址時(shí)方向位必須設(shè)置為0。寫(xiě)模式下發(fā)送的下一個(gè)字節(jié)是地址字節(jié),用來(lái)選擇被寫(xiě)的寄存器或存儲(chǔ)地址,在這里選擇輸入緩沖器的地址,跟在地址后的所有數(shù)據(jù)字節(jié)被直接寫(xiě)入相應(yīng)的存儲(chǔ)器單元。每接收一個(gè)字節(jié),寫(xiě)地址指針和讀指針即增加,直到寫(xiě)完要存入的數(shù)據(jù)。

具體的,在本實(shí)施例中對(duì)微控制器STC12C5406數(shù)據(jù)初始化,即將DS2432芯片中全球唯一的序列號(hào)存儲(chǔ)在STC12C5406的程序中,在計(jì)算MAC值之前就送入DS2460的輸入緩沖器,以備計(jì)算MAC時(shí)使用。

其中,在本方案中,所述DS2432芯片根據(jù)內(nèi)置的第一密鑰、第一數(shù)據(jù)和所述DS2432的序列號(hào),利用所述DS2432內(nèi)置的SHA-1引擎計(jì)算第一MAC值,包括:

獲取質(zhì)詢;

根據(jù)命令代碼指定的目的地址,選取所述第一數(shù)據(jù)中選定頁(yè)的32個(gè)數(shù)據(jù)字節(jié);

所述DS2460芯片內(nèi)置的SHA-1引擎根據(jù)所述第一密鑰、所述選定頁(yè)的32個(gè)數(shù)據(jù)字節(jié)、所述序列號(hào)和所述質(zhì)詢,計(jì)算所述第一MAC值。

所述微控制器將所述第一MAC值寫(xiě)入所述DS2460芯片之前,還包括:

所述微控制器從所述DS2432芯片內(nèi)獲取CRC發(fā)生器產(chǎn)生的CRC校驗(yàn)碼,若所述CRC校驗(yàn)碼與所述微控制器所計(jì)算出的CRC校驗(yàn)碼一致,則將所述MAC值寫(xiě)入所述DS2460芯片。

具體的,在本實(shí)施例中利用命令Read Authenticated Page(讀驗(yàn)證頁(yè)),主機(jī)可以獲得全部或部分存儲(chǔ)器頁(yè)的數(shù)據(jù)和一個(gè)MAC。

主機(jī)發(fā)出命令代碼并指定了目的地址(TA1和TA2)后,它將接收從目的地址開(kāi)始到數(shù)據(jù)頁(yè)末尾的存儲(chǔ)器頁(yè)數(shù)據(jù)、一個(gè)FFh字節(jié)和一個(gè)反碼的CRC,該CRC碼由命令代碼、目的地址、已傳送的數(shù)據(jù)和FFh字節(jié)產(chǎn)生。CRC校驗(yàn)碼接收完畢后,DS2432的SHA引擎利用自己的密鑰、指定存儲(chǔ)器頁(yè)的所有數(shù)據(jù)(選定頁(yè)的32個(gè)數(shù)據(jù)字節(jié))、自身的序列號(hào)((不包括CRC校驗(yàn)碼))和一個(gè)3字節(jié)的質(zhì)詢來(lái)計(jì)算MAC,這個(gè)3字節(jié)質(zhì)詢是由主機(jī)在發(fā)Read Authenticated Page命令之前提前寫(xiě)入暫存器的。

然后,主機(jī)就可讀取160位MAC,隨后是一個(gè)反碼的CRC,以確保數(shù)據(jù)傳輸?shù)目煽啃浴H绻贑RC校驗(yàn)碼后主機(jī)繼續(xù)讀取數(shù)據(jù),在它發(fā)送復(fù)位脈沖前將收到交替的“1”和“0”碼。具體的,DS2432的MAC值的計(jì)算程序流程圖見(jiàn)圖4;需要說(shuō)明的是,圖4中的注冊(cè)碼即為本方案中的序列號(hào)。

具體的,本實(shí)施例中的DS2432芯片內(nèi)部的CRC(循環(huán)冗余校驗(yàn))發(fā)生器是16位的,根據(jù)標(biāo)準(zhǔn)的CRC16多項(xiàng)式函數(shù)產(chǎn)生。該CRC校驗(yàn)碼用于檢測(cè)執(zhí)行Read Authenticated Page命令(見(jiàn)存儲(chǔ)器和SHA操作命令單元)時(shí)的錯(cuò)誤,或者在讀、寫(xiě)或更新暫存器的時(shí)候,快速檢驗(yàn)數(shù)據(jù)傳送的正確性。16位CRC校驗(yàn)碼通常是以反碼的形式發(fā)送或回送。DS2432芯片內(nèi)部的CRC發(fā)生器用于在命令流程中計(jì)算一個(gè)新的16位CRC校驗(yàn)碼??偩€主機(jī)通過(guò)比較由器件讀來(lái)的CRC校驗(yàn)碼和自己根據(jù)數(shù)據(jù)計(jì)算出的CRC校驗(yàn)碼,來(lái)決定是繼續(xù)某一操作還是重讀有CRC錯(cuò)誤的數(shù)據(jù)部分。這一部分是根據(jù)執(zhí)行Write Scratchpad命令時(shí),DS2432內(nèi)部的CRC發(fā)生器隨著主機(jī)的發(fā)送過(guò)程,計(jì)算整個(gè)數(shù)據(jù)流的CRC校驗(yàn)碼,始于命令碼,止于最后一個(gè)數(shù)據(jù)字節(jié)。用于驗(yàn)證發(fā)送數(shù)據(jù)正確性。

S102、DS2460芯片根據(jù)從微控制器獲取的所述DS2432芯片的序列號(hào)及所述DS2460芯片內(nèi)置的第二密鑰和第二數(shù)據(jù),利用所述DS2460芯片內(nèi)置的SHA-1引擎計(jì)算第二MAC值;

具體的,在本實(shí)施例中紅DS2460芯片計(jì)算MAC值之前,主機(jī)首先把DS2432的唯一序列號(hào)對(duì)照Authenticated Page命令的SHA-1輸入數(shù)據(jù)格式輸入到DS2460SHA引擎輸入緩沖器輸入信息格式中的輸入緩沖器。然后將命令字節(jié)寫(xiě)入地址5Ch處的命令寄存器。命令字節(jié)寫(xiě)入命令寄存器后,命令碼被應(yīng)答,一旦主機(jī)發(fā)出停止條件,SHA-1引擎激活,就會(huì)根據(jù)初始化的數(shù)據(jù)計(jì)算出一個(gè)MAC值。

S103、所述微控制器將所述第一MAC值寫(xiě)入所述DS2460芯片;若所述DS2460芯片判定所述第一MAC值和所述第二MAC值相同,則認(rèn)證成功;若不相同,則認(rèn)證失敗。

具體的,在本實(shí)施例中,為了比較MAC值的同時(shí)不暴露它,DS2460芯片包括一個(gè)連續(xù)工作的比較器,可以對(duì)寫(xiě)入匹配MAC寄存器的數(shù)據(jù)和MAC輸出緩沖器中的數(shù)據(jù)進(jìn)行比較。使用比較功能時(shí),主機(jī)以寫(xiě)模式訪問(wèn)DS2460,指定匹配MAC寄存器地址,并把從DS2432發(fā)送到主機(jī)的MAC按照MAC輸出緩沖器的格式發(fā)送字節(jié),直到傳送完全部20字節(jié)的MAC。比較器把第一字節(jié)同MB+0中的數(shù)據(jù)進(jìn)行比較,比較下個(gè)字節(jié)時(shí)轉(zhuǎn)到下個(gè)更高的地址。最后一個(gè)字節(jié)同MB+19中的數(shù)據(jù)比較。該字節(jié)序列與從1-Wire SHA器件中讀出的MAC相同。無(wú)論是否匹配,DS2460應(yīng)答它接收的MAC的全部前19個(gè)字節(jié)。只有當(dāng)兩個(gè)MAC(即MAC輸出緩沖器中的MAC和主機(jī)發(fā)送的MAC)都匹配時(shí)才應(yīng)答最后一個(gè)(第20個(gè))字節(jié)。如果不匹配,則不會(huì)應(yīng)答第20個(gè)字節(jié)。主機(jī)發(fā)出的第20個(gè)字節(jié)得不到應(yīng)答,即兩個(gè)MAC值不匹配,也就是認(rèn)證不通過(guò)。

由于原電路板的認(rèn)證系統(tǒng)的設(shè)計(jì)的初始化的數(shù)據(jù)是對(duì)照DS2432的Read Authenticated Page命令的SHA-1輸入數(shù)據(jù)格式輸入到DS2460中的SHA引擎輸入緩沖器的,所以計(jì)算的MAC值應(yīng)該和DS2432相同。而克隆過(guò)的電路板由于不知道原電路板認(rèn)證系統(tǒng)的密鑰,并且DS2432計(jì)算MAC必須要用自己的序列號(hào)進(jìn)行計(jì)算,而每個(gè)DS2432的序列號(hào)是唯一,所以計(jì)算后的MAC值不會(huì)匹配。

本發(fā)明實(shí)施例提供的一種基于DS2432芯片的嵌入式加密認(rèn)證方法及系統(tǒng),包括:當(dāng)系統(tǒng)運(yùn)行時(shí),DS2432芯片根據(jù)內(nèi)置的第一密鑰、第一數(shù)據(jù)和所述DS2432的序列號(hào),利用所述DS2432芯片內(nèi)置的SHA-1引擎計(jì)算第一MAC值;DS2460芯片根據(jù)從微控制器獲取的所述DS2432芯片的序列號(hào)及所述DS2460芯片內(nèi)置的第二密鑰和第二數(shù)據(jù),利用所述DS2460芯片內(nèi)置的SHA-1引擎計(jì)算第二MAC值;所述微控制器將所述第一MAC值寫(xiě)入所述DS2460芯片;若所述DS2460芯片判定所述第一MAC值和所述第二MAC值相同,則認(rèn)證成功;若不相同,則認(rèn)證失??;

可見(jiàn),在本實(shí)施例中,通過(guò)利用加密的微控制器STC12C5406編程控制帶有SHA-1算法引擎的芯片DS2432和DS2460進(jìn)行嵌入式認(rèn)證系統(tǒng)設(shè)計(jì),通過(guò)克隆后的電路板所計(jì)算的MAC值與原電路板計(jì)算的MAC值是否相等進(jìn)行原電路板的保護(hù)。

并且本方案中加密的微控制器STC12C5406的用戶程序是ISP/IAP機(jī)制寫(xiě)入,編程的時(shí)候是一邊校驗(yàn)一邊寫(xiě),無(wú)法讀出命令,增加了解密難度。STC空間分為:①BOOTLOAD,②應(yīng)用代碼,③EEPROM。最新版本的STC芯片去掉BOOTLOAD區(qū),并且使用SST89E564的電路,所以STC解密很難。其芯片的特點(diǎn)具有加密性強(qiáng),很難解密或破解,超強(qiáng)抗干擾的特點(diǎn)。

其次,本方案中帶有SHA-1算法引擎的芯片DS2432和DS2460,DS2432在單個(gè)芯片內(nèi)集成了1024位EEPROM、64位密鑰、512位SHA-1引擎,以極低的成本提供了一個(gè)安全的高級(jí)認(rèn)證方案。該器件還提供永久性的寫(xiě)保護(hù)模式。每個(gè)DS2432具有自身的、由工廠刻入的64位ROM序列號(hào),為其所嵌入的產(chǎn)品或系統(tǒng)提供唯一的ID。這個(gè)唯一的64位碼也是SHA-1的輸入組成之一。帶EEPROM的SHA-1引擎協(xié)處理器DS2460是ISO/IEC10118-3安全散列算法SHA-1的硬件實(shí)施方案,無(wú)需開(kāi)發(fā)執(zhí)行復(fù)雜SHA計(jì)算的軟件,即可鑒別SHA器件以及驗(yàn)證數(shù)字簽名服務(wù)數(shù)據(jù)的有效性。DS2460能計(jì)算1-Wire SHA器件的SHA-1信息認(rèn)證代碼(MAC)。該器件還能比較MAC。

在本方案中通過(guò)分別計(jì)算克隆后電路板的MAC值和原電路板MAC是否相等對(duì)電路板進(jìn)行保護(hù),是指DS2432SHA-1引擎計(jì)算MAC時(shí)只能利用本身的ID號(hào)進(jìn)行計(jì)算,克隆后的DS2432的ID號(hào)與原ID號(hào)不一樣,并且存入的密鑰是隱藏不可讀的,這就保證克隆后的電路板所計(jì)算的MAC值與原電路板計(jì)算的MAC值是不相等的,則克隆后的電路板認(rèn)證失敗不能進(jìn)行下一步系統(tǒng)的功能,起到了保護(hù)原電路板的作用。

本說(shuō)明書(shū)中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見(jiàn)即可。

對(duì)所公開(kāi)的實(shí)施例的上述說(shuō)明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來(lái)說(shuō)將是顯而易見(jiàn)的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開(kāi)的原理和新穎特點(diǎn)相一致的最寬的范圍。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
垣曲县| 铁岭县| 镇宁| 三台县| 安西县| 西贡区| 苍山县| 尚志市| 杭锦后旗| 孙吴县| 阿克陶县| 荥阳市| 新和县| 易门县| 礼泉县| 南溪县| 沿河| 桑日县| 宁乡县| 雅安市| 辽中县| 乌兰浩特市| 额济纳旗| 富川| 台东市| 房产| 敦化市| 霍林郭勒市| 杭锦后旗| 青阳县| 怀宁县| 承德县| 南溪县| 永修县| 太谷县| 郁南县| 务川| 安多县| 恩施市| 建湖县| 出国|