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