一種基于SMS4的加密通信可編程片上系統(tǒng)設(shè)計(jì)
摘要 針對(duì)面向工業(yè)用、商用以及民用電子設(shè)備加密串行通信需求,通過基于SMS4的加密通信SOPC軟硬件架構(gòu)、SMSd加密通信控制器IP技術(shù)、SMS4加密通信軟件技術(shù)等內(nèi)容的研究,實(shí)現(xiàn)了基于SMS4加密算法的串行通信技術(shù),并在非128位明文的加密傳輸數(shù)據(jù)控制和基于8位異步模式的128位數(shù)據(jù)串行收發(fā)上效率明顯提升。基于SMS4的加密通信SOPC提高了系統(tǒng)的加密通信功能可定制能力,且使加密通信核心算法自主可控。
本文引用地址:http://butianyuan.cn/article/249274.htm關(guān)鍵詞 串行通信;SMS4;加密通信;片上系統(tǒng)
串行通信是商用、民用及工業(yè)控制用電子系統(tǒng)廣泛使用的一種通信方式,多種電子系統(tǒng)通過串行通信接口傳輸敏感數(shù)據(jù),如無線電通信設(shè)備、IC卡刷卡機(jī)等,為保證數(shù)據(jù)傳輸安全,對(duì)串行通信數(shù)據(jù)加密是必要的技術(shù)手段。SOPC技術(shù)是百萬門級(jí)大規(guī)模FPGA出現(xiàn)后新興的電子系統(tǒng)設(shè)計(jì)技術(shù),實(shí)現(xiàn)的電子系統(tǒng)具備集成度高、功能可配置、性能可伸縮和資源可重構(gòu)的特點(diǎn)。因此,采用SOPC技術(shù)設(shè)計(jì)加密通信系統(tǒng)具備良好的應(yīng)用推廣價(jià)值。
分組密碼算法是大量數(shù)據(jù)加密存儲(chǔ)與傳輸?shù)闹饕艽a算法,SMS4算法是我國(guó)官方公布的第一個(gè)商用分組對(duì)稱密碼算法,為發(fā)展自主可控的信息安全技術(shù),應(yīng)該將SMS4算法作為串行通信核心密碼算法的重要選擇。由于SMS4算法提出較晚,目前尚未有采用SMS4算法進(jìn)行加密通信SOPC設(shè)計(jì)的成果出現(xiàn)。為使信息安全技術(shù)自主可控,優(yōu)化加密通信系統(tǒng)設(shè)計(jì),提高系統(tǒng)的加密通信功能可定制能力,因此有必要開展基于SMS4的加密通信SOPC研究與設(shè)計(jì)。
分組密碼算法具有速度快、易于標(biāo)準(zhǔn)化和便于軟硬件實(shí)現(xiàn)等特點(diǎn),通常是信息網(wǎng)絡(luò)安全中實(shí)現(xiàn)數(shù)據(jù)加解密的核心體制,其在計(jì)算機(jī)通信和信息系統(tǒng)安全領(lǐng)域有著廣泛的應(yīng)用,如國(guó)外發(fā)布的DES算法、AES算法、NESSIE算法等。2006年1月,我國(guó)國(guó)家商用密碼管理辦公室公布了SMS4分組密碼算法標(biāo)準(zhǔn),用于保護(hù)無線局域網(wǎng)產(chǎn)品的數(shù)據(jù)安全,并被WAPI標(biāo)準(zhǔn)采納作為其中的分組密碼算法。2007年12月,在國(guó)家密碼管理局公布的《可信計(jì)算密碼支撐平臺(tái)功能與接口規(guī)范》中,SMS4算法被規(guī)定為可信密碼模塊(TCM)中要求實(shí)現(xiàn)的對(duì)稱密碼算法。
SMS4是一個(gè)分組對(duì)稱密碼算法,分組長(zhǎng)度和密鑰長(zhǎng)度為128 bit。加密算法與密鑰擴(kuò)展算法均采用32輪非線性迭代結(jié)構(gòu)。其中非線性變換所使用的S盒是一個(gè)具有很好密碼學(xué)特性的、由8 bit輸入產(chǎn)生8 bit輸出的置換。但不存在永遠(yuǎn)安全的密碼算法。SMS4設(shè)計(jì)靈活,其中所采用的S盒可靈活地被替換,以應(yīng)對(duì)突發(fā)性的安全威脅。
1 基于SMS4的加密通信原理
SMS4密碼算法是一種128位數(shù)據(jù)輸入輸出的加解密算法,輸入數(shù)據(jù)需經(jīng)過32輪的函數(shù)運(yùn)算才能得到輸出結(jié)果,存在較大的首個(gè)數(shù)據(jù)輸出潛伏延遲,而一旦進(jìn)入連續(xù)輸出,通過硬件流水線設(shè)計(jì)可達(dá)到較高的吞吐率。串行通信控制器是一種典型的中低速通信設(shè)備,由于受到串/并轉(zhuǎn)換、波特率除數(shù)分頻、16分頻收發(fā)等設(shè)計(jì)的影響,串行通信速率不可能有較大提升。因此,SMS4算法和串行通信之間存在明顯的吞吐量不匹配問題。
通過研究SMS4密碼算法32輪迭代運(yùn)算、輪密鑰運(yùn)算的運(yùn)算特點(diǎn),并分析全流水、全循環(huán)、循環(huán)與流水結(jié)合、單引擎、多引擎等硬件運(yùn)算結(jié)構(gòu),提出合適的運(yùn)算結(jié)構(gòu)作為算法的基礎(chǔ)實(shí)現(xiàn)結(jié)構(gòu),以輪函數(shù)內(nèi)部分級(jí)流水、節(jié)拍同步作為進(jìn)一步優(yōu)化的手段,突破面向串行通信的SMS4算法硬件實(shí)現(xiàn)優(yōu)化技術(shù),使該算法邏輯占用較少的FPGA內(nèi)部資源,并使其算法的運(yùn)算速度能盡量接近串行通信速率,最終達(dá)到資源占用與運(yùn)
算性能的平衡。該算法硬件實(shí)現(xiàn)的功能組成如圖1所示。
串行通信過程中,最小的數(shù)據(jù)收發(fā)單元為8位數(shù)據(jù),即1 Byte。對(duì)128位SMS4加密運(yùn)算而言,輸入的明文數(shù)據(jù)可能不是128位數(shù)據(jù),而是1~7 Byte,無法直接完成明文的SMS4加密運(yùn)算。在128位密文發(fā)送過程中,若對(duì)應(yīng)明文不是128位的,還需嵌入字節(jié)計(jì)數(shù)值來標(biāo)識(shí)有效數(shù)據(jù)長(zhǎng)度,而字節(jié)計(jì)數(shù)值和有效數(shù)據(jù)難以區(qū)分。在密文接收與SMS4解密過程中,也存在得到字節(jié)計(jì)數(shù)值與有效明文提取的問題。如圖2所示。數(shù)據(jù)包具備16 Byte的數(shù)據(jù)段和1 Byte的有效字節(jié)計(jì)數(shù)值,通過有效字節(jié)計(jì)數(shù)值識(shí)別數(shù)據(jù)段中的有效數(shù)據(jù),而其他數(shù)據(jù)則為填充數(shù)據(jù)。
通過分析處理器訪問8位通信控制器的特點(diǎn),采取有效硬件邏輯設(shè)計(jì)延長(zhǎng)8位明文連續(xù)寫入等待時(shí)間,盡可能具備128位明文輸入。通過字節(jié)自動(dòng)填充將非128位明文輸入補(bǔ)滿到128位,實(shí)現(xiàn)明文的128位SMS4加密運(yùn)算。將有效數(shù)據(jù)/字節(jié)計(jì)數(shù)值混合編碼,實(shí)現(xiàn)非128位明文對(duì)應(yīng)密文的發(fā)送、接收、解密與填充字節(jié)去除。通過以上技術(shù)手段,突破非128位明文的加密傳輸數(shù)據(jù)控制技術(shù),使處理器始終按8位明文數(shù)據(jù)訪問SMS4加密通信控制器,屏蔽128位加解密過程,具備非128位明文的加密傳輸數(shù)據(jù)控制過程對(duì)處理器透明、兼容通用串行傳輸協(xié)議、處理器加密通信負(fù)載小等特點(diǎn)。
一般的串行通信控制器以8位數(shù)據(jù)進(jìn)行收發(fā),當(dāng)進(jìn)行128位密文傳輸時(shí),存在數(shù)據(jù)發(fā)送接口、數(shù)據(jù)接收接口、接收線狀態(tài)接口設(shè)計(jì)的位寬不匹配問題。通過設(shè)計(jì)128位寬發(fā)送數(shù)據(jù)FIFO、128位寬接收數(shù)據(jù)FIFO、128位區(qū)間接收線狀態(tài)FIFO,緩沖128位密文數(shù)據(jù)和相應(yīng)的接收線狀態(tài);通過128位/8位收發(fā)匹配邏輯,實(shí)現(xiàn)發(fā)送數(shù)據(jù)的128位/8位轉(zhuǎn)換、接收數(shù)據(jù)的8位/128位轉(zhuǎn)換、連續(xù)16 Byte的接收線狀態(tài)組合譯碼;通過以上技術(shù)手段,突破基于8位異步模式的128位數(shù)據(jù)串行收發(fā)技術(shù),使128位密文串行收發(fā)無需軟件干預(yù),故進(jìn)一步降低了處理器的通信接口處理負(fù)載。
2 基于SMS4的加密通信實(shí)現(xiàn)
2.1 SMS4加密通信控制器IP技術(shù)
SMS4加密通信控制器IP功能組成如圖3所示,分為8位串行收發(fā)功能邏輯、128位收發(fā)邏輯、面向串行通信的SMS4算法邏輯、非128位明文的加密傳輸數(shù)據(jù)控制邏輯和處理器訪問接口邏輯。SMS4加密通信控制器IP對(duì)外提供8位數(shù)據(jù)位寬的處理器訪問接口和8位串行收發(fā)數(shù)據(jù)接口,并兼容通用串行傳輸協(xié)議,將128位SMS4密碼運(yùn)算隱藏在IP內(nèi)部。
數(shù)字通信相關(guān)文章:數(shù)字通信原理
通信相關(guān)文章:通信原理
評(píng)論