本發(fā)明涉及一種數(shù)據(jù)加密方法,具體為一種基于FPGA的DCS數(shù)據(jù)加密方法,屬于網(wǎng)絡(luò)安全應(yīng)用技術(shù)領(lǐng)域。
背景技術(shù):
一般來說,由于DCS在建設(shè)之初很少有與外網(wǎng)進(jìn)行信息交互的需求,所以DCS普遍在設(shè)計(jì)之初就較少考慮信息安全方面的問題,而主要關(guān)注的是功能安全,系統(tǒng)的穩(wěn)定性和可靠性方面。隨著互聯(lián)網(wǎng)的發(fā)展,DCS與互聯(lián)網(wǎng)的信息交互變得越來越頻繁,DCS也面臨更多的風(fēng)險(xiǎn)。
面對這種情況,主要采用以下這些方法來應(yīng)對。
第一、采用隔離式的方式,主要是在工控以太網(wǎng)與管理網(wǎng)絡(luò)之間部署隔離類產(chǎn)品。包括協(xié)議隔離產(chǎn)品,采用雙機(jī)架構(gòu),兩機(jī)之間不使用傳統(tǒng)的TCP/IP協(xié)議進(jìn)行通信,而是對協(xié)議進(jìn)行剝離,只是將原始數(shù)據(jù)以私有協(xié)議格式進(jìn)行傳輸。其次還有網(wǎng)閘(比較典型的是OPC網(wǎng)閘),它的工作原理是中斷兩側(cè)網(wǎng)絡(luò)的直接相連,剝離網(wǎng)絡(luò)協(xié)議并將其還原成原始數(shù)據(jù),用特殊的內(nèi)部協(xié)議封裝后傳輸?shù)綄Χ司W(wǎng)絡(luò)。同時(shí),網(wǎng)閘可通過附加檢測模塊對數(shù)據(jù)進(jìn)行掃描,從而防止惡意代碼和病毒,甚至可以設(shè)置特殊的數(shù)據(jù)屬性結(jié)構(gòu)實(shí)現(xiàn)通過限制。網(wǎng)閘不依賴于TCP/IP和操作系統(tǒng),而由內(nèi)嵌仲裁系統(tǒng)對OSI的七層協(xié)議進(jìn)行全面分析,在異構(gòu)介質(zhì)上重組所有的數(shù)據(jù),實(shí)現(xiàn)了“協(xié)議落地、內(nèi)容檢測”。因此,網(wǎng)閘真正實(shí)現(xiàn)了網(wǎng)絡(luò)隔離,在阻斷各種網(wǎng)絡(luò)攻擊的前提下,為用戶提供安全的網(wǎng)絡(luò)操作、郵件訪問以及基于文件和數(shù)據(jù)庫的數(shù)據(jù)交換。另外還有單向?qū)朐O(shè)備,比如采用單向光釬,從物理上保證傳輸?shù)膯蜗蛐浴?/p>
第二、采用工控防火墻的方式,根據(jù)防護(hù)需要,通常用在各層級之間,各區(qū)域之間的訪問控制,也可以部署在單一或者某一組重要的控制器前方提供保護(hù)。主要是對基于TCP/IP工業(yè)控制協(xié)議進(jìn)行防護(hù),通過鏈路層、網(wǎng)絡(luò)層、傳輸層及應(yīng)用層的過濾規(guī)則分別實(shí)現(xiàn)對MAC地址、IP地址、傳輸協(xié)議和端口、以及工控協(xié)議的控制命令和參數(shù)的訪問控制。比如在傳統(tǒng)的IT防火墻的基礎(chǔ)上增加工控防護(hù)功能模塊,對工控協(xié)議做深度檢查過濾。
第三、采用白名單的方式。DCS中如工程師站、操作員站等,這些設(shè)備有認(rèn)為誤操作、病毒入侵的威脅,通過白名單機(jī)制,在主機(jī)上安裝代理程序,限制只有可信的程序、進(jìn)程才能允許運(yùn)行,防止惡意程序的侵入。
目前大多數(shù)集散控制系統(tǒng)都是基于微處理器實(shí)現(xiàn)的,F(xiàn)PGA技術(shù)比微處理器技術(shù)相對簡單,F(xiàn)PGA僅僅與應(yīng)用功能直接相關(guān),其應(yīng)用系統(tǒng)的復(fù)雜性圓圓低于基于微處理器的系統(tǒng)應(yīng)用。并且現(xiàn)有的DCS加密手段都是從應(yīng)用層上對數(shù)據(jù)進(jìn)行加密,屬于典型的軟件加密方式,這種方式對DCS系統(tǒng)處理速率會帶來一定的影響同時(shí)增加延時(shí),影響DCS的工作狀態(tài)。并且一般情況軟件加密方法對不同的數(shù)據(jù)包采用相同的密鑰,若某一個(gè)數(shù)據(jù)包的密鑰被非法獲得或授權(quán),那么傳輸?shù)乃袛?shù)據(jù)都將會被破解,因此,針對上述問題提出一種基于FPGA的DCS數(shù)據(jù)加密方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的就在于為了解決上述問題而提供一種基于FPGA的DCS數(shù)據(jù)加密方法。
本發(fā)明通過以下技術(shù)方案來實(shí)現(xiàn)上述目的,一種基于FPGA的DCS數(shù)據(jù)加密方法,AES加解密模塊包括輸入輸出子模塊、時(shí)序控制子模塊、輪運(yùn)算子模塊和密鑰擴(kuò)展子模塊,密鑰擴(kuò)展子模塊連接輪運(yùn)算子模塊,且輪運(yùn)算子模塊連接時(shí)序控制子模塊和輸入輸出子模塊,輪運(yùn)算子模塊包括S盒變換子模塊、行位移子模塊、混合列運(yùn)算子模塊和輪密鑰加子模塊,采用FPGA的硬件方案實(shí)現(xiàn)AES加解密算法,將硬件算法封裝在FPGA芯片內(nèi)實(shí)現(xiàn)避免被外部攻擊者接觸或修改,F(xiàn)PGA將DCS系統(tǒng)中的下層的實(shí)時(shí)數(shù)據(jù)安全的傳輸?shù)缴蠈拥墓芾砭W(wǎng)絡(luò)中,在他們中間起到數(shù)據(jù)傳輸和加解密功能,輪運(yùn)算子模塊完成加密和解密過程中不斷迭代的循環(huán)運(yùn)算,輸入端為DCS系統(tǒng)收集的明文數(shù)據(jù)、時(shí)鐘信號、各輪運(yùn)算中不斷產(chǎn)生的新的子密鑰;其加密過程具體步驟如下:
步驟A、將加密或解密數(shù)據(jù)進(jìn)行緩存,然后以128bit進(jìn)行分組,當(dāng)不夠128bit的時(shí)候以0填滿為止;
步驟B、進(jìn)行第一次密鑰擴(kuò)展,將步驟A分組之后的數(shù)據(jù)進(jìn)行輪密鑰加子模塊處理,在輪密鑰加子模塊的S盒變換子模塊下進(jìn)行S盒變換;
步驟C、將步驟B中經(jīng)過S盒變換后的數(shù)據(jù)判斷是否為加密或者解密,
其中,當(dāng)數(shù)據(jù)為加密數(shù)據(jù)時(shí),將數(shù)據(jù)進(jìn)行行移位,將行移位的數(shù)據(jù)進(jìn)行混合列運(yùn)算,再進(jìn)行緩存;
當(dāng)數(shù)據(jù)為解密數(shù)據(jù)時(shí),將數(shù)據(jù)進(jìn)行逆行移位,再進(jìn)行緩存;
步驟D、進(jìn)行第二步密鑰擴(kuò)展,將步驟C緩存的數(shù)據(jù)通過輪密鑰加子模塊進(jìn)行加密;將輪密鑰加子模塊加密的數(shù)據(jù)進(jìn)行緩存或者通過逆混合列運(yùn)算之后再進(jìn)行緩存;
步驟E、步驟D中緩存的數(shù)據(jù)判斷是否為第N-1輪,當(dāng)緩存的數(shù)據(jù)為第N-1輪時(shí),則進(jìn)行S盒運(yùn)算;當(dāng)緩存的數(shù)據(jù)不是第N-1輪時(shí),則返回判斷是否數(shù)據(jù)為加密或者解密;
步驟F、將步驟E中經(jīng)過第N-1輪判斷后的S盒運(yùn)算的數(shù)據(jù)一部分進(jìn)行行移位,一部分進(jìn)行逆行移位,將行移位和逆行移位的數(shù)據(jù)進(jìn)行緩存;
步驟G、進(jìn)行第三步密鑰擴(kuò)展,將步驟F中緩存的數(shù)據(jù)通過輪密鑰加子模塊,得到輸出處理后的數(shù)據(jù)。
優(yōu)選的,步驟A至步驟G加密過程中包括一個(gè)初始輪的初始密鑰加法,接著進(jìn)行十次輪變換。
優(yōu)選的,每個(gè)輪變換由四層組成:第一層S盒變換模塊,進(jìn)行字節(jié)代換,并且第一層為非線性層。
優(yōu)選的,第二層和第三層是行移和列混合變換,并且第二層和第三層為線性層,將4*4狀態(tài)矩陣按行移位,按列混合。
優(yōu)選的,步驟A中將128bit的分組數(shù)據(jù)轉(zhuǎn)換為字節(jié)存儲在4*4矩陣中,然后進(jìn)行查找表操作,進(jìn)行字節(jié)代換。
優(yōu)選的,第四層輪密鑰加層是將輪密鑰的每個(gè)字節(jié)和狀態(tài)矩陣中相對應(yīng)的字節(jié)進(jìn)行異或運(yùn)算。
優(yōu)選的,在加密和解密過程,通過流水線技術(shù)和使用FPGA的內(nèi)核資源提高FPGA的時(shí)鐘頻率。
本發(fā)明的有益效果是:本發(fā)明提供了一種用于DCS系統(tǒng)中數(shù)據(jù)加密的方法,相比于現(xiàn)有的基于軟件的DCS數(shù)據(jù)加密方法,該方法使用模塊化的加密設(shè)計(jì)方法,利用FPGA的可編程性和易操作性,使得DCS系統(tǒng)的數(shù)據(jù)信息更加安全和快速,從而使DCS系統(tǒng)工作更加高效和靈活,使用AES加解密算法,將硬件算法封裝在FPGA芯片內(nèi)實(shí)現(xiàn)避免被外部攻擊者接觸或修改,F(xiàn)PGA的作用是將DCS系統(tǒng)中的下層的實(shí)時(shí)數(shù)據(jù)安全的傳輸?shù)缴蠈拥墓芾砭W(wǎng)絡(luò)中,在他們中間起到數(shù)據(jù)傳輸和加解密功能,加密和解密過程,通過流水線技術(shù)和使用FPGA的內(nèi)核資源提高FPGA的時(shí)鐘頻率,可以使加解密模塊工作在不同的時(shí)鐘頻率下,從而可以根據(jù)不同的數(shù)據(jù)采集速度來簡單的改變加密速率。
附圖說明
圖1為本發(fā)明的整體結(jié)構(gòu)模塊圖;
圖2為本發(fā)明的AES加解密模塊加密流程圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
一種基于FPGA的DCS數(shù)據(jù)加密方法,AES加解密模塊包括輸入輸出子模塊、時(shí)序控制子模塊、輪運(yùn)算子模塊和密鑰擴(kuò)展子模塊,密鑰擴(kuò)展子模塊連接輪運(yùn)算子模塊,且輪運(yùn)算子模塊連接時(shí)序控制子模塊和輸入輸出子模塊,輪運(yùn)算子模塊包括S盒變換子模塊、行位移子模塊、混合列運(yùn)算子模塊和輪密鑰加子模塊,采用FPGA的硬件方案實(shí)現(xiàn)AES加解密算法,將硬件算法封裝在FPGA芯片內(nèi)實(shí)現(xiàn)避免被外部攻擊者接觸或修改,F(xiàn)PGA將DCS系統(tǒng)中的下層的實(shí)時(shí)數(shù)據(jù)安全的傳輸?shù)缴蠈拥墓芾砭W(wǎng)絡(luò)中,在他們中間起到數(shù)據(jù)傳輸和加解密功能,輪運(yùn)算子模塊完成加密和解密過程中不斷迭代的循環(huán)運(yùn)算,輸入端為DCS系統(tǒng)收集的明文數(shù)據(jù)、時(shí)鐘信號、各輪運(yùn)算中不斷產(chǎn)生的新的子密鑰;
實(shí)施例一:
其加密過程具體步驟如下:
步驟A、將加密或解密數(shù)據(jù)進(jìn)行緩存,然后以128bit進(jìn)行分組,當(dāng)不夠128bit的時(shí)候以0填滿為止;
步驟B、進(jìn)行第一次密鑰擴(kuò)展,將步驟A分組之后的數(shù)據(jù)進(jìn)行輪密鑰加子模塊處理,在輪密鑰加子模塊的S盒變換子模塊下進(jìn)行S盒變換;
步驟C、將步驟B中經(jīng)過S盒變換后的數(shù)據(jù)判斷是否為加密或者解密,
數(shù)據(jù)為加密數(shù)據(jù),將數(shù)據(jù)進(jìn)行行移位,將行移位的數(shù)據(jù)進(jìn)行混合列運(yùn)算,再進(jìn)行緩存;
步驟D、進(jìn)行第二步密鑰擴(kuò)展,將步驟C緩存的數(shù)據(jù)通過輪密鑰加子模塊進(jìn)行加密;將輪密鑰加子模塊加密的數(shù)據(jù)進(jìn)行緩存;
步驟E、步驟D中緩存的數(shù)據(jù)判斷是否為第N-1輪,當(dāng)緩存的數(shù)據(jù)為第N-1輪時(shí),則進(jìn)行S盒運(yùn)算;當(dāng)緩存的數(shù)據(jù)不是第N-1輪時(shí),則返回判斷是否數(shù)據(jù)為加密或者解密;
步驟F、將步驟E中經(jīng)過第N-1輪判斷后的S盒運(yùn)算的數(shù)據(jù)一部分進(jìn)行行移位,一部分進(jìn)行逆行移位,將行移位和逆行移位的數(shù)據(jù)進(jìn)行緩存;
步驟G、進(jìn)行第三步密鑰擴(kuò)展,將步驟F中緩存的數(shù)據(jù)通過輪密鑰加子模塊,得到輸出處理后的數(shù)據(jù)。
其中,步驟A至步驟G加密過程中包括一個(gè)初始輪的初始密鑰加法,接著進(jìn)行十次輪變換;每個(gè)輪變換由四層組成:第一層S盒變換模塊,進(jìn)行字節(jié)代換,并且第一層為非線性層;第二層和第三層是行移和列混合變換,并且第二層和第三層為線性層,將4*4狀態(tài)矩陣按行移位,按列混合;第四層輪密鑰加層是將輪密鑰的每個(gè)字節(jié)和狀態(tài)矩陣中相對應(yīng)的字節(jié)進(jìn)行異或運(yùn)算。
其中,步驟A中將128bit的分組數(shù)據(jù)轉(zhuǎn)換為字節(jié)存儲在4*4矩陣中,然后進(jìn)行查找表操作,進(jìn)行字節(jié)代換,在加密和解密過程,通過流水線技術(shù)和使用FPGA的內(nèi)核資源提高FPGA的時(shí)鐘頻率。
實(shí)施例二:
其加密過程具體步驟如下:
步驟A、將加密或解密數(shù)據(jù)進(jìn)行緩存,然后以128bit進(jìn)行分組,當(dāng)不夠128bit的時(shí)候以0填滿為止;
步驟B、進(jìn)行第一次密鑰擴(kuò)展,將步驟A分組之后的數(shù)據(jù)進(jìn)行輪密鑰加子模塊處理,在輪密鑰加子模塊的S盒變換子模塊下進(jìn)行S盒變換;
步驟C、將步驟B中經(jīng)過S盒變換后的數(shù)據(jù)判斷是否為加密或者解密,
其中,數(shù)據(jù)為解密數(shù)據(jù),將數(shù)據(jù)進(jìn)行逆行移位,再進(jìn)行緩存,
步驟D、進(jìn)行第二步密鑰擴(kuò)展,將步驟C緩存的數(shù)據(jù)通過輪密鑰加子模塊進(jìn)行加密;將輪密鑰加子模塊加密的數(shù)據(jù)通過逆混合列運(yùn)算之后再進(jìn)行緩存;
步驟E、步驟D中緩存的數(shù)據(jù)判斷是否為第N-1輪,當(dāng)緩存的數(shù)據(jù)為第N-1輪時(shí),則進(jìn)行S盒運(yùn)算;當(dāng)緩存的數(shù)據(jù)不是第N-1輪時(shí),則返回判斷是否數(shù)據(jù)為加密或者解密;
步驟F、將步驟E中經(jīng)過第N-1輪判斷后的S盒運(yùn)算的數(shù)據(jù)一部分進(jìn)行行移位,一部分進(jìn)行逆行移位,將行移位和逆行移位的數(shù)據(jù)進(jìn)行緩存;
步驟G、進(jìn)行第三步密鑰擴(kuò)展,將步驟F中緩存的數(shù)據(jù)通過輪密鑰加子模塊,得到輸出處理后的數(shù)據(jù)。
其中,步驟A至步驟G加密過程中包括一個(gè)初始輪的初始密鑰加法,接著進(jìn)行十次輪變換;每個(gè)輪變換由四層組成:第一層S盒變換模塊,進(jìn)行字節(jié)代換,并且第一層為非線性層;第二層和第三層是行移和列混合變換,并且第二層和第三層為線性層,將4*4狀態(tài)矩陣按行移位,按列混合;第四層輪密鑰加層是將輪密鑰的每個(gè)字節(jié)和狀態(tài)矩陣中相對應(yīng)的字節(jié)進(jìn)行異或運(yùn)算。
其中,步驟A中將128bit的分組數(shù)據(jù)轉(zhuǎn)換為字節(jié)存儲在4*4矩陣中,然后進(jìn)行查找表操作,進(jìn)行字節(jié)代換,在加密和解密過程,通過流水線技術(shù)和使用FPGA的內(nèi)核資源提高FPGA的時(shí)鐘頻率。
相比于現(xiàn)有的基于軟件的DCS數(shù)據(jù)加密方法,本發(fā)明使用模塊化的加密設(shè)計(jì)方法,利用FPGA的可編程性和易操作性,使得DCS系統(tǒng)的數(shù)據(jù)信息更加安全和快速,從而使DCS系統(tǒng)工作更加高效和靈活,使用AES加解密算法,將硬件算法封裝在FPGA芯片內(nèi)實(shí)現(xiàn)避免被外部攻擊者接觸或修改,F(xiàn)PGA的作用是將DCS系統(tǒng)中的下層的實(shí)時(shí)數(shù)據(jù)安全的傳輸?shù)缴蠈拥墓芾砭W(wǎng)絡(luò)中,在他們中間起到數(shù)據(jù)傳輸和加解密功能,加密和解密過程,通過流水線技術(shù)和使用FPGA的內(nèi)核資源提高FPGA的時(shí)鐘頻率,可以使加解密模塊工作在不同的時(shí)鐘頻率下,從而可以根據(jù)不同的數(shù)據(jù)采集速度來簡單的改變加密速率。
對于本領(lǐng)域技術(shù)人員而言,顯然本發(fā)明不限于上述示范性實(shí)施例的細(xì)節(jié),而且在不背離本發(fā)明的精神或基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本發(fā)明。因此,無論從哪一點(diǎn)來看,均應(yīng)將實(shí)施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權(quán)利要求而不是上述說明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化囊括在本發(fā)明內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。
此外,應(yīng)當(dāng)理解,雖然本說明書按照實(shí)施方式加以描述,但并非每個(gè)實(shí)施方式僅包含一個(gè)獨(dú)立的技術(shù)方案,說明書的這種敘述方式僅僅是為清楚起見,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)將說明書作為一個(gè)整體,各實(shí)施例中的技術(shù)方案也可以經(jīng)適當(dāng)組合,形成本領(lǐng)域技術(shù)人員可以理解的其他實(shí)施方式。