何緒金
摘 要:主流超聲廠商都面臨著低價(jià)偽劣仿冒探頭問(wèn)題。劣質(zhì)的仿冒探頭對(duì)廠家和用戶(hù)利益會(huì)造成嚴(yán)重?fù)p害。為此,本文給出了一種基于SHA-256算法的超聲探頭身份認(rèn)證方法,使得超聲主機(jī)在訪(fǎng)問(wèn)超聲探頭之前,先對(duì)超聲探頭進(jìn)行身份認(rèn)證,認(rèn)證通過(guò)才會(huì)系統(tǒng)才會(huì)工作;如果是仿冒的超聲探頭,就不能通過(guò)身份認(rèn)證,系統(tǒng)不會(huì)工作,從而保證超聲主機(jī)只能使用原廠超聲探頭。
關(guān)鍵詞:SHA-256 Hash 身份認(rèn)證 超聲探頭
1.引言
超聲探頭是醫(yī)學(xué)超聲影像系統(tǒng)中的關(guān)鍵部件,對(duì)超聲系統(tǒng)對(duì)圖像性能和安全性起著關(guān)鍵作用。但由于其市場(chǎng)價(jià)值很高,主流超聲廠商都面臨著低價(jià)偽劣仿冒探頭問(wèn)題。劣質(zhì)的仿冒探頭導(dǎo)致劣質(zhì)的圖像質(zhì)量,并對(duì)系統(tǒng)的安全帶來(lái)隱患,對(duì)廠家和用戶(hù)利益造成嚴(yán)重?fù)p害。為此,實(shí)現(xiàn)超聲主機(jī)對(duì)超聲探頭的身份認(rèn)證,識(shí)別和禁止仿冒探頭是非常必要的。本文提供了一種使用SHA-256算法的超聲探頭進(jìn)行身份認(rèn)證的方法。
2.身份認(rèn)證理論分析
最常見(jiàn)的身份認(rèn)證方法是使用加密算法,認(rèn)證過(guò)程中不直接傳輸密碼?;趯?duì)稱(chēng)加密算法的身份認(rèn)證基本模型如圖 1所示:B方使用秘鑰B和明文消息(Message)作為輸入,執(zhí)行認(rèn)證加密算法B,計(jì)算出認(rèn)證碼B(Message Authentication Code,MAC);然后把Message和MAC B作為發(fā)送給A方,請(qǐng)求認(rèn)證;A方收到Message和MAC B后,使用Message和秘鑰A,執(zhí)行認(rèn)證加密算法A,計(jì)算出認(rèn)證碼MAC A,A方比較2個(gè)認(rèn)證碼;如果2個(gè)認(rèn)證碼匹配,那么B方就通過(guò)身份認(rèn)證,否則B方就被A方拒絕。
“質(zhì)詢(xún)—應(yīng)答”身份認(rèn)證模型如圖 2所示,可以有效的解決這個(gè)問(wèn)題。A方產(chǎn)生隨機(jī)質(zhì)詢(xún)(Random Challenge)作為輸入Message,發(fā)送給B方;A方使用秘鑰A和隨機(jī)質(zhì)詢(xún)作為輸入,執(zhí)行身份認(rèn)證算法A,計(jì)算出認(rèn)證碼A;B方收到隨機(jī)質(zhì)詢(xún)后,使用隨機(jī)質(zhì)詢(xún)和秘鑰B作為輸入,執(zhí)行認(rèn)證機(jī)密算法B,計(jì)算出認(rèn)證碼B,發(fā)送給A方,作為應(yīng)答;A方收到應(yīng)答后,比較2個(gè)認(rèn)證碼;如果2個(gè)認(rèn)證碼匹配,那么B方就通過(guò)身份認(rèn)證,否則B方就被拒絕。
在工廠加載密碼階段,主機(jī)使用部分秘鑰和綁定數(shù)據(jù)作為輸入,執(zhí)行認(rèn)證加密算法,計(jì)算出認(rèn)證碼,發(fā)送給認(rèn)證協(xié)處理器;認(rèn)證協(xié)處理器從設(shè)備的認(rèn)證器中讀取唯一的設(shè)備ID,使用主秘鑰,主機(jī)發(fā)來(lái)認(rèn)證碼和唯一的設(shè)備ID作為輸入,執(zhí)行認(rèn)證加密算法,計(jì)算出認(rèn)證碼,作為設(shè)備相關(guān)的秘鑰,寫(xiě)入對(duì)應(yīng)設(shè)備的認(rèn)證器;設(shè)備認(rèn)證器在保護(hù)區(qū)存儲(chǔ)設(shè)備相關(guān)的秘鑰。設(shè)備相關(guān)的秘鑰是和設(shè)備ID一一對(duì)應(yīng)的,即使某個(gè)設(shè)備的秘鑰被截獲,只會(huì)影響該設(shè)備的認(rèn)證,不會(huì)破壞整個(gè)認(rèn)證系統(tǒng)的安全性。認(rèn)證階段同樣使用圖 2所示的“質(zhì)詢(xún)—應(yīng)答”身份認(rèn)證模型。
3.SHA-256算法分析
“質(zhì)詢(xún)—應(yīng)答”身份認(rèn)證模型必須使用加密算法生成認(rèn)證碼,本文使用SHA算法家族的SHA-256算法。
SHA(Secure Hash Algorithm)是美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究所(NIST)設(shè)計(jì)的一系列單向散列算法,主要用于數(shù)字簽名和身份認(rèn)證,有很高的安全性。
SHA-256算法分為2個(gè)階段:消息預(yù)處理和散列值計(jì)算,算法用到的變量如表 1所示。SHA-256輸入消息的最大長(zhǎng)度是264-1bit,輸出256bit的摘要。
SHA-256算法是按照32bit字運(yùn)算如表 2所示,除了模232加運(yùn)算,其他都是位運(yùn)算。
消息預(yù)處理包括:消息填充,消息分塊和初始化。消息填充:輸入消息長(zhǎng)度為m,首先在輸入消息后補(bǔ)1個(gè) 1,然后補(bǔ)k個(gè)0(k的范圍[0,446]),最后補(bǔ)64bit(為m的二進(jìn)制值),保證m+k+65 = 0 mod 512,即填充后消息的長(zhǎng)度為512的整數(shù)倍。消息分塊:首先把填充后的消息分為N個(gè)消息塊,每塊512bit;然后把每個(gè)消息塊分為16個(gè)字,每個(gè)字32bit。
4.超聲探頭身份認(rèn)證方案
在超聲主機(jī)端,F(xiàn)PGA作為認(rèn)證主機(jī)和認(rèn)證協(xié)處理器共同實(shí)現(xiàn)認(rèn)證功能;每個(gè)超聲探頭都需要一個(gè)認(rèn)證器。使用MAXIM的DS2465作為認(rèn)證協(xié)處理器,使用MAXIM的DS28E22作為認(rèn)證器。FPGA和DS2465使用I2C通信,超聲主機(jī)和超聲探頭使用1-Wire實(shí)現(xiàn)認(rèn)證通信。
超聲探頭加載秘鑰流程如圖3所示:連接超聲探頭并上電,F(xiàn)PGA使用部分秘鑰和綁定數(shù)據(jù)計(jì)算認(rèn)證碼,并發(fā)送給DS2465,DS2465讀取DS28E22的設(shè)備ID,DS2465計(jì)算設(shè)備相關(guān)的秘鑰,DS2465把設(shè)備相關(guān)的秘鑰寫(xiě)入DS28E22,主機(jī)把超聲探頭數(shù)據(jù)寫(xiě)入DS28E22,主機(jī)設(shè)置DS28E22的保護(hù)機(jī)制,完成加載。
4.1超聲探頭身份認(rèn)證
超聲探頭接入超聲主機(jī),F(xiàn)PGA發(fā)送隨機(jī)質(zhì)詢(xún)給DS2465,DS2465讀取DS28E22的設(shè)備ID,并計(jì)算認(rèn)證碼,DS2465把該質(zhì)詢(xún)轉(zhuǎn)發(fā)給DS28E22,DS28E22計(jì)算認(rèn)證碼并發(fā)送給DS2465,DS2465比較兩個(gè)認(rèn)證碼,如果二者匹配,那么該探頭就通過(guò)身份認(rèn)證,系統(tǒng)繼續(xù)工作;否則,探頭就是仿冒的,系統(tǒng)會(huì)報(bào)錯(cuò)并禁止該探頭工作。
4.2超聲主機(jī)身份認(rèn)證流程
如果超聲主機(jī)需要讀寫(xiě)超聲探頭中的數(shù)據(jù),也需要通過(guò)超聲探頭的認(rèn)證,流程與4.2類(lèi)似,不同的是由DS28E22比較兩個(gè)認(rèn)證碼。如果二者匹配,那么超聲主機(jī)就通過(guò)身份認(rèn)證,可以訪(fǎng)問(wèn)探頭數(shù)據(jù);否則,超聲探頭就拒絕主機(jī)的訪(fǎng)問(wèn)。
4.3實(shí)驗(yàn)結(jié)果
上述探頭身份認(rèn)證方案在邁瑞公司的超聲產(chǎn)品上進(jìn)行了實(shí)際驗(yàn)證,結(jié)果與預(yù)期完全一致,經(jīng)過(guò)加密的探頭能夠被正確識(shí)別,而沒(méi)有被加密的探頭則無(wú)法通過(guò)身份認(rèn)證。
5.總結(jié)
本文所述基于SHA-256的超聲探頭身份認(rèn)證方案安全可靠,易于實(shí)現(xiàn)和部署,并且硬件成本很低,不會(huì)增加超聲系統(tǒng)的復(fù)雜度,非常適合醫(yī)學(xué)超聲影像系統(tǒng)廣泛應(yīng)用,杜絕仿冒超聲探頭,保護(hù)廠商和用戶(hù)的利益。
參考文獻(xiàn):
[1]FIPS PUB 180-4, Secure Hash Standard. Information Technology Laboratory, National Institute of Standards and Technology.
[2]R. V. Mankar and Prof. S. I. Nipanikar, “C Implementation of SHA-256 Algorithm,” International Journal of Emerging Technology and Advanced Engineering, Volume 3, Issue 6, June 2013.
[3]Damian B. Fedoryka, “SHA-256 in FPGA”.endprint