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