一種SoC密碼芯片的制作方法
【專利摘要】本發(fā)明公開了一種SoC密碼芯片,包括:CPU核、接口、非易失存儲器、片內(nèi)存儲器、定時器、功耗管理模塊、時鐘復(fù)位模塊、通信總線、隨機數(shù)發(fā)生器和加解密模塊;其中,所述隨機數(shù)發(fā)生器,用于產(chǎn)生隨機數(shù);所述加解密模塊,用于對所述SoC密碼芯片接收到的目標數(shù)據(jù)根據(jù)所述隨機數(shù)發(fā)生器產(chǎn)生的隨機數(shù)進行加解密運算;本發(fā)明提供的SoC密碼芯片從最底層保證了數(shù)據(jù)的安全性,不但滿足了高性能、高集成度、小型化的需求,還具備對數(shù)據(jù)傳輸安全保護的功能,從而提高了工業(yè)控制系統(tǒng)的安全性。
【專利說明】—種SoC密碼芯片
【技術(shù)領(lǐng)域】
[0001]本發(fā)明適用于信息安全【技術(shù)領(lǐng)域】,涉及一種SoC密碼芯片。
【背景技術(shù)】
[0002]片上系統(tǒng)(System on Chip, SoC)芯片是在單個芯片上實現(xiàn)數(shù)據(jù)的采集、轉(zhuǎn)換、存儲、處理和輸入輸出等多種功能,可以減小系統(tǒng)級產(chǎn)品的尺寸、降低系統(tǒng)級產(chǎn)品的成本和復(fù)雜性。隨著應(yīng)用領(lǐng)域?qū)τ诩上到y(tǒng)產(chǎn)品的高性能、高集成度、小型化的需求,SoC芯片技術(shù)也在不斷發(fā)展,在航空航天、移動通信、消費類電子、汽車電子、醫(yī)療電子設(shè)備等領(lǐng)域都得到廣泛應(yīng)用。此外,SoC芯片在工業(yè)控制領(lǐng)域也已經(jīng)成為不可或缺的一部分。
[0003]但是,工業(yè)控制系統(tǒng)產(chǎn)品大多采用通用協(xié)議、通用硬件、通用軟件,并且以各種方式與互聯(lián)網(wǎng)等公共網(wǎng)絡(luò)連接,在公共網(wǎng)絡(luò)中容易受到病毒、木馬、操作系統(tǒng)漏洞等網(wǎng)絡(luò)攻擊和安全威脅;另一方面,傳統(tǒng)的工業(yè)控制系統(tǒng)產(chǎn)品幾乎沒有隔離功能,在實現(xiàn)系統(tǒng)開放性的同時,也降低了系統(tǒng)的安全性,如果工業(yè)控制系統(tǒng)的任一方面受到網(wǎng)絡(luò)攻擊,都極有可能造成巨大的損失。SoC芯片,為工業(yè)控制系統(tǒng)產(chǎn)品提供最底層的核心硬件支持,因此,基于芯片級的硬件解決方案成為保證信息安全最可靠的途徑,然而,現(xiàn)有的SoC芯片的結(jié)構(gòu)包括:CPU核、接口、非易失存儲器、片內(nèi)存儲器、定時器、功耗管理模塊、時鐘復(fù)位模塊和通信總線等模塊,雖然滿足了高性能、高集成度、小型化的需求,但是還不具備對數(shù)據(jù)傳輸安全保護的功能。
[0004]因此,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個技術(shù)問題就是:研制出一種具有加解密功能并且滿足工業(yè)級應(yīng)用的SoC密碼芯片,來實現(xiàn)對數(shù)據(jù)傳輸?shù)陌踩Wo。
【發(fā)明內(nèi)容】
[0005]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的SoC密碼芯片。
[0006]依據(jù)本發(fā)明的一個方面,提供了一種SoC密碼芯片,包括:
[0007]CPU核、接口、非易失存儲器、片內(nèi)存儲器、定時器、功耗管理模塊、時鐘復(fù)位模塊和通信總線,其特征在于,所述SoC密碼芯片還包括:
[0008]隨機數(shù)發(fā)生器,用于產(chǎn)生隨機數(shù);
[0009]加解密模塊,用于對所述SoC密碼芯片接收到的目標數(shù)據(jù)根據(jù)所述隨機數(shù)發(fā)生器產(chǎn)生的隨機數(shù)進行加解密運算。
[0010]在本發(fā)明提供的SoC密碼芯片中,所述SoC密碼芯片的加解密模塊為接收到的目標數(shù)據(jù)提供身份認證、數(shù)據(jù)完整性、數(shù)據(jù)加密等安全性驗證;并且所述SoC密碼芯片自帶隨機數(shù)發(fā)生器,可以根據(jù)系統(tǒng)的需求產(chǎn)生高質(zhì)量的隨機數(shù),以供芯片安全設(shè)計使用;以此SoC密碼芯片研制出的工業(yè)控制系統(tǒng)產(chǎn)品從最底層保證了數(shù)據(jù)的安全性,不但滿足了高性能、高集成度、小型化的需求,還具備對數(shù)據(jù)傳輸安全保護的功能,從而提高了工業(yè)控制系統(tǒng)的安全性。
[0011]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。
【專利附圖】
【附圖說明】
[0012]通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0013]圖1a示出了根據(jù)本發(fā)明實施例一的一種SoC密碼芯片的結(jié)構(gòu)框圖;
[0014]圖1b示出了根據(jù)本發(fā)明實施例一的一種SoC密碼芯片的結(jié)構(gòu)框圖;
[0015]圖2示出了根據(jù)本發(fā)明實施例二的一種對稱加解密引擎的結(jié)構(gòu)框圖;
[0016]圖3示出了根據(jù)本發(fā)明實施例三的一種非對稱加解密引擎的結(jié)構(gòu)框圖。
【具體實施方式】
[0017]為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和【具體實施方式】對本發(fā)明作進一步詳細的說明。
[0018]實施例一
[0019]參照圖la,給出了根據(jù)本發(fā)明實施例一的一種SoC密碼芯片的結(jié)構(gòu)框圖。
[0020]所述SoC密碼芯片包括CPU核101、加解密模塊102、隨機數(shù)發(fā)生器103、接口 105、非易失存儲器106、片內(nèi)存儲器107、定時器108、功耗管理模塊109、時鐘復(fù)位模塊110和通信總線111。
[0021]其中,所述CPU核101,用于對所述SoC密碼芯片進行初始化和資源管理,控制和調(diào)度所述SoC密碼芯片內(nèi)的其它模塊,用于對輸入數(shù)據(jù)的協(xié)議進行解析,對各種算法中密碼協(xié)議的集成、密碼算法的配置與調(diào)度,以及對所述SoC密碼芯片內(nèi)各寄存器的設(shè)置。
[0022]本實施例中,優(yōu)選的,所述CPU核具體為CK-Core處理器硬核,CK-Core是面向嵌入式系統(tǒng)和SoC芯片應(yīng)用領(lǐng)域的32位高性能低功耗嵌入式CPU核,具有可擴展指令、易于集成等特點。也可選用其它型號的CPU核,本發(fā)明對此不作具體限制。
[0023]所述加解密模塊102,用于對所述SoC密碼芯片接收到的目標數(shù)據(jù)進行加解密運笪
ο
[0024]所述加解密模塊的加解密算法可以采用對稱密碼算法、非對稱密碼算法或哈希(Hash)密碼算法等多種密碼算法,所述加解密模塊不但可以實現(xiàn)所述SoC密碼芯片的加解密功能,還可以實現(xiàn)簽名、驗證功能。
[0025]所述隨機數(shù)發(fā)生器103,用于為所述SoC密碼芯片中的加解密運算提供隨機數(shù)據(jù)。知識產(chǎn)權(quán)核(Intellectual Property core, IP核),是那些己驗證的、可重利用的、具有某種確定功能的芯片模塊。所述隨機數(shù)發(fā)生器103采用IP硬核,帶有隨機性檢測邏輯,為密碼運算提供隨機數(shù)據(jù)。所述IP硬核,是指完成了綜合的功能塊,已有固定的拓撲布局和具體工藝,并經(jīng)過工藝驗證,性能可保證的IP核。
[0026]所述接口 105,用于與外部系統(tǒng)之間交換數(shù)據(jù)、指令及地址信息。本發(fā)明實施例中,所述接口米用通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter,UART),UART是一種通用串行數(shù)據(jù)總線,用于異步通信。UART還包括以下功能:支持直接存儲器訪問(Direct Memory Access,DMA)接口控制功能;支持字符可編程;支持RS232異步通信模式;兼容16750的請求發(fā)送(Request To Send, RTS)和清除發(fā)送(Clear To Send,CTS)串行通信模式。
[0027]所述非易失存儲器106,用于存儲程序指令、地址等數(shù)據(jù),在斷電之后,所存儲的數(shù)據(jù)不會丟失,常用的非易失存儲器有帶電可擦寫可編程只讀存儲器(ElectricallyErasable Programmable Read-Only Memory, EEPROM)和閃存(Flash Memory, FLASH),本發(fā)明實施例,優(yōu)選的,采用FLASH非易失存儲器。
[0028]所述片內(nèi)存儲器107,用于所述SoC密碼芯片中高速數(shù)據(jù)的緩存;所述片內(nèi)存儲器具體為靜態(tài)隨機存儲器(Static Random Access Memory, SRAM)。
[0029]所述定時器108,用于定時以及產(chǎn)生定時中斷。
[0030]所述功耗管理模塊109,用于管理所述SoC密碼芯片中系統(tǒng)的功耗和系統(tǒng)的復(fù)位;系統(tǒng)在進行功耗控制時,功耗管理模塊控制所述SoC密碼芯片在不同工作模式之間的切換:SL0W、NORMAL、IDLE和SLEEP。這些工作模式可以讓用戶根據(jù)芯片不同的應(yīng)用,動態(tài)地管理芯片內(nèi)部各子模塊的時鐘源供給和系統(tǒng)的工作頻率,從而降低芯片的整體功耗。另外功耗管理模塊還包含了所述SoC密碼芯片中各個單元的時鐘控制電路,可以集中控制、關(guān)閉不必要打開的模塊從而達到低功耗的目的。
[0031]所述時鐘復(fù)位模塊110,為所述SoC密碼芯片內(nèi)部各個模塊提供時鐘與復(fù)位信號,以及在所述SoC密碼芯片出現(xiàn)異常情況下對所述SoC密碼芯片進行復(fù)位控制。
[0032]所述通信總線111,用于所述SoC密碼芯片中數(shù)據(jù)的傳輸和控制,以及上述模塊均通過通信總線111相互連接;所述通信總線具體為高級微控制器總線架構(gòu)(AdvancedMicrocontroller Bus Architecture, AMBA),包含總線仲裁器、總線譯碼器、多路選擇器、高級高性能總線(Advanced High performance Bus, AHB)、AHB/APB橋和高級外圍總線(Advanced Peripheral Bus, APB)。本發(fā)明實施例中,將總線系統(tǒng)配置成標準的AHB總線。
[0033]在本實施例提供的基于IP復(fù)用的SoC密碼芯片中,所述SoC密碼芯片的加解密模塊為接收到的目標數(shù)據(jù)提供身份認證、數(shù)據(jù)完整性、數(shù)據(jù)加密等安全性驗證;并且所述SoC密碼芯片自帶隨機數(shù)發(fā)生器,可以根據(jù)系統(tǒng)的需求產(chǎn)生高質(zhì)量的隨機數(shù),以供芯片安全設(shè)計使用;以此SoC密碼芯片研制出的工業(yè)控制系統(tǒng)產(chǎn)品從最底層保證了數(shù)據(jù)的安全性,不但滿足了高性能、高集成度、小型化的需求,還具備對數(shù)據(jù)傳輸安全保護的功能,從而提高了工業(yè)控制系統(tǒng)的安全性。
[0034]在本發(fā)明的另一優(yōu)選實施例中,所述SoC密碼芯片還包括:安全防護模塊104,用于獲取所述SoC密碼芯片的實時環(huán)境數(shù)據(jù),并對所述SoC密碼芯片進行安全控制;
[0035]所述安全防護模塊用于高低頻率檢測、高低電壓檢測、防止攻擊。將當前狀態(tài)通知(PU并可產(chǎn)生保護性復(fù)位。參見圖1b給出的安全防護模塊結(jié)構(gòu)框圖,所述安全防護模塊,具體包括:環(huán)境檢測單元120和檢測控制單元130 ;其中,檢測控制單元具體包括:控制電路子單元131、環(huán)境檢測接口電路子單元132和通信總線接口電路子單元133。
[0036]所述環(huán)境檢測單元120:用于對所述SoC密碼芯片的內(nèi)核工作頻率和/或通信總線工作頻率和/或加解密引擎工作頻率和/或SoC密碼芯片工作溫度和/或SoC密碼芯片內(nèi)核工作電壓進行實時檢測,以及生成相應(yīng)的實時環(huán)境數(shù)據(jù)。
[0037]所述控制電路子單元131:用于根據(jù)所述環(huán)境檢測單元檢測到的的實時環(huán)境數(shù)據(jù)生成對應(yīng)的控制信號。
[0038]環(huán)境檢測接口電路子單元132:用于完成環(huán)境檢測單元與檢測控制單元之間控制信號的交互。
[0039]通信總線接口電路子單元133:用于完成通信總線與檢測控制單元之間控制信號的交互。
[0040]本實施例中提供的SoC密碼芯片增加了安全防護模塊,為芯片提供完善安全防護功能,一旦檢測出環(huán)境數(shù)據(jù)超出設(shè)置的閾值,就會發(fā)出中斷復(fù)位信號對芯片實施保護,當SoC密碼芯片的內(nèi)核工作頻率和/或通信總線工作頻率和/或加解密引擎工作頻率和/或SoC密碼芯片工作溫度和/或SoC密碼芯片內(nèi)核工作電壓出現(xiàn)異常時,安全防護模塊就會采取相應(yīng)的措施來保護SoC密碼芯片,例如發(fā)出復(fù)位請求信號等,進而提高SoC密碼芯片的抗攻擊、防破解能力。
[0041]實施例二
[0042]參照圖2,本實施例提供了一種SoC密碼芯片。
[0043]所述SoC密碼芯片包括CPU核、對稱加解密引擎、隨機數(shù)發(fā)生器、安全防護模塊、接口、非易失存儲器、片內(nèi)存儲器、定時器、功耗管理模塊、時鐘復(fù)位模塊和通信總線。
[0044]在本發(fā)明實施例中,優(yōu)選的,所述加解密模塊采用對稱加解密引擎,所述對稱加解密引擎采用哈佛結(jié)構(gòu),所述哈佛結(jié)構(gòu),是一種將程序指令存儲和數(shù)據(jù)存儲分開的存儲器結(jié)構(gòu);也可以采用馮.諾伊曼結(jié)構(gòu),將程序指令和數(shù)據(jù)存儲在共同的存儲器中,本發(fā)明對此不作限制。
[0045]本發(fā)明實施例中,對稱加解密引擎將基本密碼函數(shù)定義為專用的指令,因此可以編程實現(xiàn)加解密算法,這些專用的指令序列構(gòu)成整個加解密算法。所述指令序列簡單,執(zhí)行時間短,性能高,具有可升級能力。
[0046]參見圖2所給出的對稱加解密引擎的結(jié)構(gòu)框圖,所述對稱加解密引擎,具體包括:程序存儲單元210、程序指針單元220、通用寄存器組單元230、數(shù)據(jù)存儲單元240、指令譯碼單元250和密碼運算單元260 ;
[0047]所述程序存儲單元210,用于存儲密碼運算程序的指令;所述程序存儲單元采用非易失性的Flash存儲器,程序在掉電情況下可以繼續(xù)保存。
[0048]所述程序指針單元220,用于記錄當前要執(zhí)行的指令在所述程序存儲單元中的地址。所述對稱密碼算法引擎采用順序?qū)ぶ返闹噶顚ぶ贩绞剑噶钤诔绦虼鎯卧邪错樞虼鎯?,程序計?shù)器(Program Counter, PC)記錄當前要執(zhí)行的指令地址,每執(zhí)行一條指令,PC自動加I。當程序出現(xiàn)轉(zhuǎn)移指令時,則下一條指令的地址為轉(zhuǎn)移目標地址。
[0049]所述通用寄存器組單元230,用于預(yù)先導(dǎo)入加解密運算的目標數(shù)據(jù)。通用寄存器組單元的大小可以根據(jù)需要進行設(shè)置,本發(fā)明實施例中,優(yōu)選的,所述通用寄存器組單元由32個寄存器組成,每個寄存器128bit。加解密算法運算過程中用到的目標數(shù)據(jù)需要預(yù)先導(dǎo)入到通用寄存器組單元,所有的中間結(jié)果和算法最終結(jié)果也保存在通用寄存器組單元。
[0050]所述數(shù)據(jù)存儲單元240,用于保存加解密運算的目標數(shù)據(jù)。與通用寄存器組單元不同的是,數(shù)據(jù)存儲單元中的數(shù)據(jù)不能被密碼運算單元直接處理,如果要對數(shù)據(jù)存儲單元中的數(shù)據(jù)進行密碼運算操作,需要將數(shù)據(jù)先導(dǎo)入到通用寄存器組單元中,由密碼運算單元進行處理,再將處理結(jié)果導(dǎo)出到數(shù)據(jù)存儲單元中,也就是說,對數(shù)據(jù)存儲單元的操作只有導(dǎo)入(Load)和保存(Store)兩種。另外,數(shù)據(jù)存儲單元還負責和對稱加解密引擎中的其它模塊進行數(shù)據(jù)交互,待處理目標數(shù)據(jù)的輸入和運算結(jié)果的輸出。
[0051]所述指令譯碼單元250,用于根據(jù)所述程序指針單元所指的位置從所述程序存儲單元中取出當前指令,并對當前指令進行譯碼,得到密碼運算指令;所述指令譯碼單元采用硬件布線邏輯實現(xiàn),將從程序存儲單元中取出的指令進行譯碼,得到密碼運算單元、通用寄存器組單元和數(shù)據(jù)存儲單元的運算指令,進而選擇密碼運算單元中對應(yīng)的基本函數(shù)功能、通用寄存器組單元的讀寫操作和數(shù)據(jù)存儲單元的讀寫操作。
[0052]所述密碼運算單元260,用于根據(jù)隨機數(shù)發(fā)生器產(chǎn)生的隨機數(shù)和指令譯碼單元得到的密碼運算指令,對所述通用寄存器組單元中的目標數(shù)據(jù)進行密碼運算。所述密碼運算單元由基本密碼函數(shù)所組成,通過指令譯碼單元得到的密碼運算指令,可以實現(xiàn)異或運算、S盒變換、移位運算、置換運算、模加運算、模減運算、模加逆運算、模乘運算、模乘逆運算、邏輯與、邏輯或、邏輯非、指數(shù)運算、對數(shù)運算等基本密碼函數(shù)功能。除了提供上述基本密碼函數(shù),還提供可重構(gòu)單元,用于擴展指令集。
[0053]本實施例中SoC密碼芯片中的CPU核、隨機數(shù)發(fā)生器、安全防護模塊、接口、非易失存儲器、片內(nèi)存儲器、定時器、功耗管理模塊、時鐘復(fù)位模塊和通信總線模塊的功能和所述實施例一中的相同。
[0054]本實施例中,加解密模塊采用對稱加解密引擎,并且采用哈佛結(jié)構(gòu),將程序指令和數(shù)據(jù)分開存儲,由于存取指令和存取數(shù)據(jù)分別通過不同的存儲空間和不同的總線,使得各條指令可以重疊執(zhí)行,這樣,克服了數(shù)據(jù)流傳輸?shù)钠款i,提高了運算速度;另外,密碼運算單元為加解密算法提供了大量的基本密碼函數(shù),以及可擴展指令集,使得加解密運算指令序列簡單,執(zhí)行時間短,性能高,具有可升級能力,并且滿足對國密SMl算法的支持;因此,本發(fā)明的SoC密碼芯片能夠滿足工業(yè)級環(huán)境的使用,芯片自身具備完善的安全防護能力,具備SMl密碼算法,提供隨機數(shù)功能。滿足對工業(yè)系統(tǒng)的數(shù)據(jù)進行加密、認證等安全保護的需要。
[0055]實施例三
[0056]參照圖3,本實施例提供了一種SoC密碼芯片。
[0057]所述SoC密碼芯片包括CPU核、非對稱加解密引擎、隨機數(shù)發(fā)生器、安全防護模塊、接口、非易失存儲器、片內(nèi)存儲器、定時器、功耗管理模塊、時鐘復(fù)位模塊和通信總線。
[0058]在本發(fā)明實施例中,所述加解密模塊采用非對稱加解密引擎,優(yōu)選的,具體采用SM2公鑰密碼算法,參見圖3所給出的非對稱加解密引擎的結(jié)構(gòu)框圖,所述非對稱加解密引擎具體包括:輸入輸出單元301、輸入數(shù)據(jù)緩沖單元302、第一算法程序存儲單元303、第二算法程序存儲單元304、程序選擇控制單元305、指令翻譯控制單元306、算術(shù)邏輯單元307、運算存儲單元308、輸出數(shù)據(jù)緩沖單元309。
[0059]所述輸入輸出單元301,用于和所述非對稱加解密引擎內(nèi)各單元間的數(shù)據(jù)交互,以及輸入密碼運算的目標數(shù)據(jù)和輸出密碼運算的結(jié)果。
[0060]所述輸入數(shù)據(jù)緩沖單元302,用于對所述輸入輸出單元301輸入的目標數(shù)據(jù)進行緩存。
[0061]所述第一算法程序存儲單元303,用于存儲用戶編制的SM2公鑰密碼算法程序。
[0062]所述第二算法程序存儲單元304,用于存儲所述芯片內(nèi)置的SM2公鑰密碼算法程序,包括簽名、驗證、加密和解密等算法。
[0063]所述程序選擇控制單元305,用于接收輸入輸出單元301發(fā)送的密碼運算命令,根據(jù)所述密碼運算命令,從所述第一算法程序存儲單元303和/或第二算法程序存儲單元304中選擇相應(yīng)密碼算法,以及將所述密碼算法中包含的用戶指令發(fā)送至指令翻譯控制單元306。同時根據(jù)密碼算法程序運行的狀態(tài),控制數(shù)據(jù)在輸入數(shù)據(jù)緩沖單元302、運算存儲單元308、輸出數(shù)據(jù)緩沖單元309之間的傳遞。
[0064]所述指令翻譯控制單元306,用于接收程序選擇控制單元305發(fā)送的用戶指令,以及將所述用戶指令翻譯成運算指令發(fā)送至算術(shù)邏輯單元307 ;以及接收算術(shù)邏輯單元308發(fā)送的運算狀態(tài)信號,根據(jù)這些信號控制用戶指令的翻譯,以及將這些運算狀態(tài)信號傳輸?shù)匠绦蜻x擇控制單元305。
[0065]所述算術(shù)邏輯單元307,用于根據(jù)所述指令翻譯控制單元發(fā)送的運算指令進行基本密碼函數(shù)運算。
[0066]所述運算存儲單元308,用于存儲所述算術(shù)邏輯單元進行基本密碼函數(shù)運算產(chǎn)生的結(jié)果。
[0067]所述輸出數(shù)據(jù)緩沖區(qū)309,用于對所述運算存儲單元中存儲的基本密碼函數(shù)運算的結(jié)果進行緩存。
[0068]本實施例中SoC密碼芯片中的CPU核、隨機數(shù)發(fā)生器、安全防護模塊、接口、非易失存儲器、片內(nèi)存儲器、定時器、功耗管理模塊、時鐘復(fù)位模塊和通信總線模塊的功能和實施例一中的相同。
[0069]本實施例中,加解密模塊采用非對稱加解密引擎,具體采用SM2公鑰密碼算法的簽名驗證、數(shù)據(jù)加解密來實現(xiàn)身份認證,能夠滿足工業(yè)級環(huán)境的使用,芯片自身具備完善的安全防護能力,具備SM2密碼算法,提供隨機數(shù)功能?;谠撔酒梢钥焖?、經(jīng)濟的設(shè)計出滿足工業(yè)環(huán)境使用的安全防護裝置,滿足對工業(yè)系統(tǒng)的數(shù)據(jù)進行加密、認證等安全保護的需要。
[0070]在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
[0071]在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
[0072]類似地,應(yīng)當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循【具體實施方式】的權(quán)利要求書由此明確地并入該【具體實施方式】,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
[0073]本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
[0074]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
[0075]本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的SoC密碼芯片中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
[0076]應(yīng)該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
【權(quán)利要求】
1.一種SoC密碼芯片,包括:CPU核、接口、非易失存儲器、片內(nèi)存儲器、定時器、功耗管理模塊、時鐘復(fù)位模塊和通信總線,其特征在于,所述SoC密碼芯片還包括: 隨機數(shù)發(fā)生器,用于產(chǎn)生隨機數(shù); 加解密模塊,用于對所述SoC密碼芯片接收到的目標數(shù)據(jù)根據(jù)所述隨機數(shù)發(fā)生器產(chǎn)生的隨機數(shù)進行加解密運算。
2.如權(quán)利要求1所述的SoC密碼芯片,其特征在于,所述加解密模塊包括:對稱加解密引擎和/或非對稱加解密引擎。
3.如權(quán)利要求2所述的SoC密碼芯片,其特征在于,所述對稱加解密引擎,具體包括:程序存儲單元、程序指針單元、通用寄存器組單元、數(shù)據(jù)存儲單元、密碼運算單元和指令譯碼單元; 其中, 所述程序存儲單元,用于存儲密碼運算的指令; 所述程序指針單元,用于記錄當前指令在所述程序存儲單元中的地址; 所述通用寄存器組單元,用于預(yù)先導(dǎo)入密碼運算的目標數(shù)據(jù); 所述數(shù)據(jù)存儲單元,用于保存密碼運算的目標數(shù)據(jù); 所述指令譯碼單元,用于根據(jù)所述程序指針單元所指的位置從所述程序存儲單元中取出當前指令,并對當前指令進行譯碼,得到密碼運算指令; 所述密碼運算單元,用于對所述通用寄存器組單元中的目標數(shù)據(jù)根據(jù)指令譯碼單元得到的密碼運算指令進行密碼運算。
4.如權(quán)利要求2所述的SoC密碼芯片,其特征在于, 所述非對稱加解密引擎,具體包括:輸入輸出單元、輸入數(shù)據(jù)緩沖單元、第一算法程序存儲單元、第二算法程序存儲單元、程序選擇控制單元、指令翻譯控制單元、算術(shù)邏輯單元、運算存儲單元、輸出數(shù)據(jù)緩沖單元; 其中, 所述輸入輸出單元,用于和所述非對稱加解密引擎內(nèi)各單元間的數(shù)據(jù)交互,以及輸入密碼運算的目標數(shù)據(jù)和輸出密碼運算的結(jié)果; 所述輸入數(shù)據(jù)緩沖單元,用于對所述輸入輸出單元輸入的目標數(shù)據(jù)進行緩存; 所述第一算法程序存儲單元,用于存儲用戶編制的SM2公鑰密碼算法程序; 所述第二算法程序存儲單元,用于存儲所述SoC密碼芯片內(nèi)置的SM2公鑰密碼算法程序; 所述程序選擇控制單元,用于接收輸入輸出單元發(fā)送的密碼運算命令,根據(jù)所述密碼運算命令,從所述第一算法程序存儲單元和/或第二算法程序存儲單元中選擇相應(yīng)密碼算法,以及將所述密碼算法中包含的用戶指令發(fā)送至指令翻譯控制單元; 所述指令翻譯控制單元,用于接收程序選擇控制單元發(fā)送的用戶指令,以及將所述用戶指令翻譯成運算指令發(fā)送至算術(shù)邏輯單元; 所述算術(shù)邏輯單元,用于根據(jù)所述指令翻譯控制單元發(fā)送的運算指令進行基本密碼函數(shù)運算; 所述運算存儲單元,用于存儲所述算術(shù)邏輯單元進行基本密碼函數(shù)運算產(chǎn)生的結(jié)果; 所述輸出數(shù)據(jù)緩沖單元,用于對所述運算存儲單元中存儲的基本密碼函數(shù)運算的結(jié)果進行緩存。
5.如權(quán)利要求1所述的SoC密碼芯片,其特征在于,所述Soc密碼芯片還包括: 安全防護模塊,用于獲取所述SoC密碼芯片的實時環(huán)境數(shù)據(jù),并對所述SoC密碼芯片進行安全控制。
6.如權(quán)利要求5所述的SoC密碼芯片,其特征在于,所述安全防護模塊,具體包括:環(huán)境檢測單元和檢測控制單元; 所述環(huán)境檢測單元:用于對所述SoC密碼芯片的內(nèi)核工作頻率和/或通信總線工作頻率和/或加解密引擎工作頻率和/或SoC密碼芯片工作溫度和/或SoC密碼芯片內(nèi)核工作電壓進行實時檢測,以及生成相應(yīng)的實時環(huán)境數(shù)據(jù); 所述檢測控制單元,用于根據(jù)所述環(huán)境檢測單元檢測到的實時環(huán)境數(shù)據(jù)生成對應(yīng)的控制信號。
7.如權(quán)利要求6所述的SoC密碼芯片,其特征在于, 所述檢測控制單元具體包括:控制電路子單元、環(huán)境檢測接口電路子單元和通信總線接口電路子單元; 其中, 所述控制電路子單元:用于根據(jù)所述環(huán)境檢測單元檢測到的實時環(huán)境數(shù)據(jù)生成對應(yīng)的控制信號; 所述環(huán)境檢測接口電路子單元:用于完成環(huán)境檢測單元與檢測控制單元之間控制信號的交互; 所述通信總線接口電路子單元:用于完成通信總線與檢測控制單元之間控制信號的交互。
【文檔編號】G06F21/72GK104202161SQ201410384614
【公開日】2014年12月10日 申請日期:2014年8月6日 優(yōu)先權(quán)日:2014年8月6日
【發(fā)明者】梁智強, 胡朝輝, 江澤鑫, 陳炯聰, 黃曙, 余南華, 林丹生, 李闖, 伍曉泉 申請人:廣東電網(wǎng)公司電力科學研究院