利用XC2300系列微控制器實(shí)現(xiàn)CAN網(wǎng)絡(luò)安全
CRC或存儲(chǔ)檢查模塊
本文引用地址:http://www.ex-cimer.com/article/93434.htm為保證程序和數(shù)據(jù)等存儲(chǔ)信息的完整性,需要進(jìn)行CRC(循環(huán)冗余檢查)。CRC的值通常針對(duì)信息塊進(jìn)行計(jì)算,并被儲(chǔ)存在某個(gè)存儲(chǔ)區(qū)域。在檢查信息時(shí),重新計(jì)算CRC的值,并與儲(chǔ)存的CRC值對(duì)比。這既可在啟動(dòng)等時(shí)點(diǎn)單次進(jìn)行,也可在運(yùn)行期間定期進(jìn)行。CRC也能像CAN協(xié)議那樣保護(hù)數(shù)據(jù)通信,還能保護(hù)要求最高數(shù)據(jù)完整性的單個(gè)關(guān)鍵安全數(shù)據(jù)或變量。當(dāng)然,軟件也能非常靈活地完成CRC計(jì)算,但使用專用硬件的效率更高,因?yàn)楹笳呖商岣哂?jì)算速度并將CPU從此類任務(wù)中解放出來。利用DMA(直接內(nèi)存存取)等讀寫功能,可以在無需CPU參與的情況下,在后臺(tái)進(jìn)行CRC檢查,將CRC檢查與外設(shè)初始化分開。
FLASH 和RAM上的ECC
在存儲(chǔ)區(qū)域使用CRC機(jī)制并由CPU啟動(dòng)的同時(shí),可以延伸CRC存儲(chǔ)內(nèi)容保護(hù)理念,在存儲(chǔ)模塊本身增加這類機(jī)制。由特殊ECC(糾錯(cuò)碼)多項(xiàng)式生成的附加存儲(chǔ)校檢和來保護(hù)單個(gè)存儲(chǔ)數(shù)據(jù)。通過這個(gè)校檢和,能檢測(cè)到數(shù)據(jù)的意外變化,并在將數(shù)據(jù)提交CPU之前自動(dòng)予以糾正。這是CRC和ECC的主要區(qū)別。例如,可以檢測(cè)到兩個(gè)比特錯(cuò)誤,其中一個(gè)比特可被糾正,具體取決于所采用的多項(xiàng)式和存儲(chǔ)ECC值的長(zhǎng)度。在進(jìn)行寫入訪問時(shí),生成ECC值,除存儲(chǔ)所寫入的數(shù)據(jù)外,所生成的ECC值也被存儲(chǔ)。在進(jìn)行讀取訪問時(shí),數(shù)據(jù)的ECC被重新計(jì)算,并自主地與所存儲(chǔ)的值對(duì)比。該機(jī)制由硬件執(zhí)行,從系統(tǒng)的角度來看,不需要增加總線周期。目前,ECC一般用于閃存,但出于安全需要,RAM存儲(chǔ)器也采用ECC。
圖4 利用分析器模式構(gòu)建低成本冗余路徑,檢測(cè)被阻斷或受到干擾的報(bào)文傳輸
評(píng)論