亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于SHA-1身份認(rèn)證的Flash程序燒寫(xiě)系統(tǒng)

        2021-12-08 02:03:00蔣炯煒
        信息安全研究 2021年12期
        關(guān)鍵詞:機(jī)軟件下位存儲(chǔ)器

        張 鉚 洪 澤 蔣炯煒

        (中國(guó)電子科技集團(tuán)公司第五十八研究所 江蘇無(wú)錫 214072)

        隨著互聯(lián)網(wǎng)、物聯(lián)網(wǎng)等技術(shù)的飛速發(fā)展,嵌入式應(yīng)用已日漸普及,無(wú)論是從高清電視到機(jī)器人,還是從汽車到飛機(jī),都離不開(kāi)Flash的使用[1].Flash由于其存儲(chǔ)容量大、密度高等特性,已經(jīng)在嵌入式系統(tǒng)中得到廣泛的應(yīng)用.

        目前,F(xiàn)lash存儲(chǔ)器主要用于存放用戶自行開(kāi)發(fā)的應(yīng)用程序.但由于近幾年封裝技術(shù)的突破,給用戶對(duì)Flash存儲(chǔ)器的燒寫(xiě)帶來(lái)極大不便,特別是Flash芯片已經(jīng)焊接在電路上[2].針對(duì)上述問(wèn)題,本文采用FTDI的USB2.0通信芯片F(xiàn)T2232H和SOC設(shè)計(jì)了一種高效的存儲(chǔ)器燒寫(xiě)系統(tǒng).為了進(jìn)一步提升燒寫(xiě)系統(tǒng)的安全性,該系統(tǒng)利用SHA-1算法完成了上位機(jī)與下位機(jī)的身份認(rèn)證.

        1 系統(tǒng)結(jié)構(gòu)

        系統(tǒng)結(jié)構(gòu)如圖1所示,包含上位機(jī)、JTAG仿真器、下位機(jī).其中上位機(jī)部分包含應(yīng)用層APP以及FT2232H提供的動(dòng)態(tài)鏈接庫(kù)FTCJTAG.dll和驅(qū)動(dòng)程序ftd2xx.dll;JTAG仿真器包含JTAG Porbe的物理接口,內(nèi)部主要集成了FT2232H芯片,信號(hào)經(jīng)過(guò)電平轉(zhuǎn)換芯片后與下位機(jī)TAP通信;下位機(jī)部分包含測(cè)試端口控制器TAP、片上調(diào)試器OCD以及SOC核.上位機(jī)軟件通過(guò)控制JTAG仿真器,給下位機(jī)TAP發(fā)指令,TAP收到指令后繼續(xù)給OCD發(fā)指令,上位機(jī)軟件和下位機(jī)軟件就是通過(guò)OCD實(shí)現(xiàn)數(shù)據(jù)的交互.

        圖1 系統(tǒng)結(jié)構(gòu)圖

        1.1 TAP控制器

        邊界掃描測(cè)試核心控制器是TAP控制器.通過(guò)TMS和TCK,選取使用數(shù)據(jù)寄存器掃描、指令寄存器掃描及邊界測(cè)試各個(gè)狀態(tài)的控制器[3].在TCK的上升沿采樣TDI和TMS,在TCK的下降沿采樣TDO[4].TAP控制器的狀態(tài)機(jī)如圖2所示.TAP控制器分為4個(gè)部分,分別為復(fù)位、自檢、指令寄存器掃描和數(shù)據(jù)寄存器掃描,一共有16個(gè)狀態(tài)[5].

        圖2 TAP控制器狀態(tài)機(jī)

        表1所示為T(mén)AP指令,TAP模塊內(nèi)部集成了這些寄存器,JTAG通過(guò)訪問(wèn)這些寄存器就可以控制TAP模塊.

        表1 TAP指令表

        圖3所示為JTAG接口時(shí)序圖,TDI數(shù)據(jù)流格式從低向高發(fā)送,其狀態(tài)機(jī)描述如下:

        1)圖3處在Run-Test-Idle模式.

        圖3 JTAG接口時(shí)序圖

        2)TMS經(jīng)過(guò)1100后,進(jìn)入Shift-IR模式,即TAP命令模式;TDI發(fā)送0x1C,即NARSEL命令.

        3)TMS經(jīng)過(guò)1,進(jìn)入Exit1-IR模式.

        4)TMS經(jīng)過(guò)10,進(jìn)入Run-Test-Idle模式.

        5)TMS經(jīng)過(guò)100,進(jìn)入Shift-DR模式,即TAP數(shù)據(jù)模式;TDI發(fā)送0x8F,即NAR=0x8F.

        6)TMS經(jīng)過(guò)1,進(jìn)入Exit1-DR模式.

        7)TMS經(jīng)過(guò)10,進(jìn)入Run-Test-Idle模式.

        8)TMS經(jīng)過(guò)100,進(jìn)入Shift-DR模式;TDI發(fā)送0x000072F0,即NDR=0x000072F0.

        9)TMS經(jīng)過(guò)1,進(jìn)入Exit1-DR模式.

        1.2 OCD調(diào)試器

        OCD(on chip debugger)即片上調(diào)試器.在調(diào)試過(guò)程中,將實(shí)時(shí)跟蹤功能和運(yùn)行控制功能分開(kāi)實(shí)現(xiàn),用戶通過(guò)專用的串行信號(hào)接口訪問(wèn)CPU核內(nèi)的調(diào)試控制邏輯模塊,獲取片內(nèi)各種資源,并實(shí)現(xiàn)CPU運(yùn)行的停止和繼續(xù)[6-7].

        OCD模塊初始化每條命令占用6個(gè)字節(jié),第1個(gè)字節(jié)表示命令和數(shù)據(jù)標(biāo)識(shí),其中2表示命令,1表示數(shù)據(jù);第2個(gè)字節(jié)表示位寬;第3~6個(gè)字節(jié)表示命令信息或者數(shù)據(jù)信息,低字節(jié)在前.如TAP指令“Bypass”:0x02,0x05,0x1F,0x00,0x00,0x00;TAP指令“讀取設(shè)備ID”:0x02,0x05,0x1F,0x00,0x00,0x00;TAP指令讀“取32字節(jié)設(shè)備ID號(hào)”:0x01,0x32,0x00,0x00,0x00,0x00;TAP指令“讀電源和復(fù)位狀態(tài)”:0x02,0x05,0x09,0x00,0x00,0x00;TAP指令“讀取8位電源和復(fù)位狀態(tài)”:0x01,0x08,0x00,0x00,0x00,0x00.OCD指令“置Debug控制寄存器”:0x01,0x08,0x87,0x00,0x00,0x00;OCD指令“使能OCD”:0x01,0x32,0x01,0x00,0x00,0x00;TAP指令“進(jìn)入NARSEL模式”:0x02,0x05,0x1C,0x00,0x00,0x00.

        當(dāng)進(jìn)入NARSEL狀態(tài)后,無(wú)需再配置NAREL指令,直接NAR,NDR,NAR,NDR循環(huán).其中NAR代表7位地址寄存器和1位讀寫(xiě)狀態(tài),NDR代表32位數(shù)據(jù)寄存器.

        2 SHA-1原理及加密認(rèn)證設(shè)計(jì)

        2.1 SHA-1算法原理

        SHA-1算法能夠?qū)?12位的輸入數(shù)據(jù)壓縮成160位的MAC輸出.SHA-1算法運(yùn)算過(guò)程大體可分為2個(gè)部分:

        1)消息填充.

        SHA-1算法將512位數(shù)據(jù)分為1組,對(duì)不滿512位的數(shù)據(jù)進(jìn)行填充,使填充后的數(shù)據(jù)長(zhǎng)度為512的整數(shù)倍[8].數(shù)據(jù)填充的規(guī)則是在消息末尾填充“100…0”,使其長(zhǎng)度為448,再填充上64位的消息長(zhǎng)度.填充后的消息正好是512的倍數(shù),按512位劃分為n塊數(shù)據(jù),每一塊數(shù)據(jù)按32位可以分為16組M0,M1,…,M15.

        2)消息摘要計(jì)算.

        SHA-1算法先將消息塊的16組數(shù)據(jù)M0,M1,…,M15擴(kuò)展得到80組數(shù)據(jù)W0,W1,…,W79,擴(kuò)充方法如下[9]:

        Wt=Mt, 0≤t≤15,

        Wt=(Wt-3⊕Wt-8⊕Wt-14⊕Wt-16)<<<1,

        16≤t≤79.

        SHA-1設(shè)置了5個(gè)32位寄存器,分別標(biāo)記為A,B,C,D,E,用于存儲(chǔ)MAC計(jì)算值.這5個(gè)寄存器的初始值如下所示:

        A=0x67452301;

        B=0xEFCDAB89;

        C=0x98BADCFE;

        D=0x10325476;

        E=0xC3D2E1F0.

        SHA-1需要經(jīng)過(guò)4輪運(yùn)算,共80個(gè)步驟才能得到MAC值.0≤t≤79,A,B,C,D,E循環(huán)迭代操作步驟如下:

        At=(At-1)<<<5+ft(Bt-1,Ct-1,Dt-1)+

        Et-1+Wt+Kt;

        Bt=At-1;

        Ct=(Bt-1)<<<30;

        Dt=Ct-1;

        Et=Dt-1.

        其中Kt和ft(x,y,z)分別是定義好的常數(shù)和邏輯函數(shù),經(jīng)過(guò)80輪循環(huán)迭代以后,由A,B,C,D,E構(gòu)成160位MAC值.

        2.2 加密認(rèn)證設(shè)計(jì)

        本文的燒寫(xiě)安全系統(tǒng)在保持燒寫(xiě)設(shè)備原有硬件結(jié)構(gòu)不變的情況下,通過(guò)加入SHA-1加密算法模塊提高嵌入式設(shè)備的安全性[10].

        如圖4所示,上位機(jī)和下位機(jī)有相同的ID號(hào),大小64位,上位機(jī)隨機(jī)生成448位大小的隨機(jī)值,并把隨機(jī)值發(fā)給下位機(jī);上位機(jī)和下位機(jī)分別使用SHA-1加密算法生成160位的MAC值1、MAC值2,下位機(jī)把MAC值2發(fā)送給上位機(jī),上位機(jī)對(duì)比2個(gè)MAC值是否相等,如果相等則執(zhí)行燒寫(xiě)程序,不相等則進(jìn)行報(bào)錯(cuò).下位機(jī)設(shè)置超時(shí)等待時(shí)間,如果上位機(jī)在規(guī)定時(shí)間內(nèi)發(fā)出燒寫(xiě)程序,則下位機(jī)執(zhí)行燒寫(xiě),否則不執(zhí)行.

        圖4 加密認(rèn)證構(gòu)架圖

        3 系統(tǒng)軟件設(shè)計(jì)

        3.1 上位機(jī)軟件設(shè)計(jì)

        應(yīng)用層使用C#編寫(xiě)基于FTCJTAG.dll的函數(shù)接口.圖5所示為上位機(jī)主程序流程圖,主要包含對(duì)FT2232H的初始化、TAP的初始化和OCD的初始化,初始化完畢后才能控制OCD模塊操作SOC核進(jìn)行身份驗(yàn)證及燒寫(xiě)程序.

        圖5 上位機(jī)主程序流程圖

        以擦除過(guò)程為例,需要先設(shè)置擦除的包數(shù)據(jù),把包下載到下位機(jī)指定包處理區(qū)域,清除下位機(jī)給上位機(jī)的應(yīng)答信號(hào);然后運(yùn)行下位機(jī)程序,下位機(jī)讀到包的信息后,根據(jù)指令操作擦除命令,等擦完后給上位機(jī)發(fā)送應(yīng)答信號(hào);上位機(jī)接收到應(yīng)答信號(hào)后停止下位機(jī)的運(yùn)行,結(jié)束擦除線程.

        3.2 下位機(jī)軟件設(shè)計(jì)

        下位機(jī)軟件主要負(fù)責(zé)驅(qū)動(dòng)程序的設(shè)計(jì),包括下位機(jī)的正常初始化以及各種存儲(chǔ)器的燒寫(xiě)驅(qū)動(dòng),下位機(jī)的初始化需要啟動(dòng)更快的CPU時(shí)鐘,這樣可以提高JTAG的訪問(wèn)速度和燒寫(xiě)Flash的速度.各種存儲(chǔ)器的燒寫(xiě)驅(qū)動(dòng)根據(jù)SOC生成本身的驅(qū)動(dòng)代碼定制而成.

        圖6所示為下位機(jī)主程序流程圖,主要處理SOC核的初始化、身份真實(shí)性識(shí)別和包命令判斷.其中Flash的子程序又可以根據(jù)上位機(jī)的需要添加如ID讀取、整片擦除、扇區(qū)擦除、空檢測(cè)、讀、編程等命令.

        圖6 下位機(jī)主程序流程圖

        4 調(diào) 試

        本文針對(duì)市面上比較常見(jiàn)的片上Flash,SPI Flash和NORFlash進(jìn)行了實(shí)驗(yàn)[11].上位機(jī)和下位機(jī)在進(jìn)行身份認(rèn)證后,對(duì)JTAG加載時(shí)間、存儲(chǔ)器擦除時(shí)間、存儲(chǔ)器加載時(shí)間、燒寫(xiě)等待時(shí)間進(jìn)行計(jì)算.本實(shí)驗(yàn)把SOC運(yùn)行時(shí)鐘設(shè)置為300 MHz,JTAG速率設(shè)置為30 MHz,通過(guò)上位機(jī)燒寫(xiě)1 MB數(shù)據(jù)到Flash上,具體時(shí)間如表2所示:

        表2 不同存儲(chǔ)器實(shí)驗(yàn)結(jié)果對(duì)照

        5 結(jié) 論

        本文介紹了一種基于SHA-1身份認(rèn)證的Flash程序燒寫(xiě)系統(tǒng).系統(tǒng)采用SHA-1算法進(jìn)行身份認(rèn)證,有效地提高了燒寫(xiě)的安全性;采用FTDI的USB2.0通信芯片F(xiàn)T2232H,快速地完成對(duì)SOC的Flash程序燒寫(xiě).該系統(tǒng)方法在實(shí)驗(yàn)中得到有效的認(rèn)證,且實(shí)驗(yàn)結(jié)果和理論較為接近,下載速度也已經(jīng)達(dá)到極限,同時(shí)也適用于其他嵌入式芯片.

        猜你喜歡
        機(jī)軟件下位存儲(chǔ)器
        靜態(tài)隨機(jī)存儲(chǔ)器在軌自檢算法
        發(fā)射機(jī)房監(jiān)控系統(tǒng)之下位機(jī)
        道岔監(jiān)測(cè)系統(tǒng)上位機(jī)軟件設(shè)計(jì)
        景洪電廠監(jiān)控系統(tǒng)下位機(jī)數(shù)據(jù)傳輸網(wǎng)絡(luò)改造
        圍觀黨“下位”,吐槽帝“登基”
        基于正交試驗(yàn)法的北斗用戶機(jī)軟件測(cè)試用例設(shè)計(jì)
        PCI-e高速數(shù)據(jù)采集卡的驅(qū)動(dòng)與上位機(jī)軟件設(shè)計(jì)
        電子器件(2015年5期)2015-12-29 08:43:12
        CAN總線并發(fā)通信時(shí)下位機(jī)應(yīng)用軟件設(shè)計(jì)
        存儲(chǔ)器——安格爾(墨西哥)▲
        基于Nand Flash的高速存儲(chǔ)器結(jié)構(gòu)設(shè)計(jì)
        国产短视频精品区第一页| 国产三区三区三区看三区| 亚洲美女av一区二区在线| 国产狂喷水潮免费网站www| 天天躁日日躁狠狠很躁| 97影院在线午夜| 国产午夜精品电影久久| 色偷偷亚洲av男人的天堂| 亚洲av高清天堂网站在线观看| 精品无码无人网站免费视频| 天堂…在线最新版资源| 久久av无码精品人妻糸列| 国产福利小视频91| 美腿丝袜中文字幕在线观看| 亚洲最大av在线精品国产| 成 人 免 费 黄 色| 1717国产精品久久| JIZZJIZZ国产| 女人天堂av免费在线| 国产亚洲精品精品综合伦理| 午夜精品射精入后重之免费观看| 人妻被黑人粗大的猛烈进出| 伊人一道本| 国产乱人伦AⅤ在线麻豆A| 青青草绿色华人播放在线视频| 日韩人妻系列在线观看| 激烈的性高湖波多野结衣| 久久精品re| 粗大挺进孕妇人妻在线| 四虎影在永久在线观看| www国产亚洲精品久久网站| 国色天香精品亚洲精品| 久久中文字幕亚洲综合| 最新国产福利在线观看精品| 91伊人久久| av天堂吧手机版在线观看| 国产三级视频不卡在线观看| 蜜臀av色欲a片无码精品一区| 最新四色米奇影视777在线看| 国产精品久久久久久久专区| 人妻少妇偷人精品视频|