一種基于重加密算法的fpga虛擬io片間互連數(shù)字電路的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及加密通信領(lǐng)域,具體地說是一種基于重加密算法的FPGA虛擬1片間互連數(shù)字電路。
【背景技術(shù)】
[0002]隨著IC(Integrated Circuit Design縮寫,表示集成電路)設(shè)計需求的不斷增長,F(xiàn)PGA(Field — Programmable GateArray的縮寫,表示現(xiàn)場可編程門陣列)的邏輯資源容量也不斷擴(kuò)展,最新的賽靈思出品的Ultra-Scale FPGA可達(dá)到4000萬邏輯門。但是隨著IC設(shè)計不斷增長的復(fù)雜度和規(guī)模,即使是Ultra-Scale也有可能不能滿足用戶IC設(shè)計的需求,這就需要將兩片甚至多片F(xiàn)PGA進(jìn)行互聯(lián)來達(dá)滿足用戶需求。但是因?yàn)镕PGA的1接口有限使得互聯(lián)又引發(fā)了另外一個問題:1(Input/Output的縮寫,表示輸入/輸出)接口數(shù)量有限,所以人們提出了虛擬1的概念。隨著IC設(shè)計的繼續(xù)發(fā)展,F(xiàn)PGA開始代替獨(dú)立芯片應(yīng)用于各種電子產(chǎn)品,此時又出現(xiàn)了一個問題,F(xiàn)PGA之間的通訊安全問題,數(shù)據(jù)易被竊取,這是用戶不可接受的。
[0003]現(xiàn)有的技術(shù)中,雖然有一些FPGA片間互聯(lián)的加密方案,但基本上都用于普通的片間傳輸,無法實(shí)現(xiàn)虛擬1的片間互聯(lián)方案,而且加密方法單一且沒有有效的同步機(jī)制,使得加密效果不高,安全性能降低。
【發(fā)明內(nèi)容】
[0004]針對上述現(xiàn)有技術(shù)的不足之處,本發(fā)明提供了一種基于重加密算法的FPGA虛擬1片間互連數(shù)字電路,以期能通過穩(wěn)定有效的重加密算法,實(shí)現(xiàn)對FPGA虛擬1片間互連數(shù)據(jù)傳輸過程中的加解密。
[0005]本發(fā)明為達(dá)到上述目的所采用的技術(shù)方案是:
[0006]本發(fā)明一種基于重加密算法的FPGA虛擬1片間互連數(shù)字電路的特點(diǎn)是包括:發(fā)送端數(shù)字電路、接收端數(shù)字電路和時鐘生成模塊;
[0007]所述發(fā)送端數(shù)字電路包括明文數(shù)據(jù)生成邏輯、第一異步FIFO、頭同步LFSR加密模塊、第二異步FIFO、AES加密模塊、并串轉(zhuǎn)換模塊、串行器和OBUFDS模塊;
[0008]所述接收端數(shù)字電路包括解串器、IBUFGDS模塊、串并轉(zhuǎn)換模塊、第三異步FIFO寫控制邏輯、第三異步FIF0、AES解密模塊、第四異步FIF0、頭同步LFSR解密模塊和明文數(shù)據(jù)接收邏輯;
[0009]所述明文數(shù)據(jù)生成邏輯根據(jù)所述時鐘生成模塊所產(chǎn)生的系統(tǒng)時鐘SyS_tx_clk生成位寬為η的發(fā)送端明文數(shù)據(jù)Tx_data[n:1]、第一異步FIFO寫使能信號Fifol_wen和第一異步FIFO寫時鐘Fifol_wclk,并根據(jù)所述第一異步FIFO寫使能信號Fifol_wen和第一異步FIFO寫時鐘Fifol_wclk將所述發(fā)送端明文數(shù)據(jù)Tx_data[n:1]寫入所述第一異步FIFO中;
[0010]所述頭同步LFSR加密模塊根據(jù)所述時鐘生成模塊所產(chǎn)生的時鐘FLSR_enclk生成第一異步FIFO讀時鐘Fifol_rclk、第一異步FIFO讀使能Fifol_ren、第二異步FIFO寫時鐘Fifo2_wclk和第二異步FIFO寫使能Fifo2_wen ;并根據(jù)所述第一異步FIFO讀時鐘Fifol_rclk和所述第一異步FIFO讀使能Fifol_ren從所述第一異步FIFO中讀取由所述發(fā)送端明文數(shù)據(jù)Tx_data[n:1]生成的η位發(fā)送端FLSR明文數(shù)據(jù)FLSR_pladata[n:1]并進(jìn)行頭同步LFSR加密處理,獲得發(fā)送端LFSR加密數(shù)據(jù)FLSR_cipdatao [η:1]后再根據(jù)所述第二異步FIFO寫時鐘Fifo2_wclk和第二異步FIFO寫使能Fifo2_wen寫入所述第二異步FIFO中;
[0011]所述AES加密模塊根據(jù)所述時鐘生成模塊所產(chǎn)生的時鐘AES_enclk生成第二異步FIFO讀時鐘Fifo2_rclk、第二異步FIFO讀使能Fifo2_ren和并串轉(zhuǎn)換時鐘p2s_clk ;并根據(jù)所述第二異步FIFO讀時鐘Fifo2_rclk和第二異步FIFO讀使能Fifo2_ren從所述第二異步FIFO中讀取由所述發(fā)送端LFSR加密數(shù)據(jù)FLSR_cipdatao[n:1]生成的m位發(fā)送端AES明文數(shù)據(jù)AES_pladatai [m:1]后進(jìn)行AES加密處理,獲得發(fā)送端AES加密數(shù)據(jù)AES_cipdatao [m:1]后再根據(jù)所述并串轉(zhuǎn)換時鐘p2s_clk傳輸給所述串并轉(zhuǎn)換模塊;
[0012]所述并串轉(zhuǎn)換模塊將所述發(fā)送端AES加密數(shù)據(jù)AES_cipdatao[m:1]分割成m/factor段發(fā)送端串行數(shù)據(jù)data_o[m/factor:1]后再根據(jù)所述并串轉(zhuǎn)換時鐘p2s_clk傳輸給所述串行器;所述并串轉(zhuǎn)換模塊同時根據(jù)所述并串轉(zhuǎn)換時鐘p2s_clk產(chǎn)生輸出串行數(shù)據(jù)參考時鐘o_clk并傳輸給所述OBUFDS模塊;
[0013]所述串行器將所述發(fā)送端串行數(shù)據(jù)data_o[m/factor:1]經(jīng)過比特串行化處理后獲得差分串行數(shù)據(jù)DATA_P和DATA_N再通過LVDS差分通道傳輸給所述接收端數(shù)字電路的解串器;
[0014]所述OBUFDS將所述輸出串行數(shù)據(jù)參考時鐘o_clk轉(zhuǎn)換為差分時鐘CLK_P和CLK_N并通過所述LVDS差分通道傳輸給所述接收端數(shù)字電路的IBUFGDS模塊;
[0015]所述IBUFGDS模塊將所述差分時鐘CLK_P和CLK_N轉(zhuǎn)換為輸入串行數(shù)據(jù)參考時鐘i_clk并傳遞給所述串并轉(zhuǎn)換模塊用于生成串并轉(zhuǎn)換時鐘s2p_clk并傳遞給所述解串器和所述第三異步FIFO寫控制邏輯;
[0016]所述解串器對所述差分串行數(shù)據(jù)DATA_P和行并行化處理后生成m/factor段接收端串行數(shù)據(jù)data_i [m/factor:1]后再根據(jù)所述串并轉(zhuǎn)換時鐘s2p_clk寫入所述串并轉(zhuǎn)換模塊;
[0017]所述串并轉(zhuǎn)換將所述m/factor段接收端串行數(shù)據(jù)data_i [n/factor]進(jìn)行并行化處理后生成m位接收端AES密文數(shù)據(jù)AES_cipdatai [m:1]后再根據(jù)所述串并轉(zhuǎn)換時鐘s2p_elk寫入所述異步FIF03寫控制邏輯;
[0018]所述異步FIF03寫控制邏輯根據(jù)所述串并轉(zhuǎn)換時鐘s2p_clk產(chǎn)生第三異步FIFO讀時鐘Fifo3_wclk和第三異步FIFO寫使能Fifo3_wen,并根據(jù)所述第三異步FIFO讀時鐘Fifo3_wclk和所述將所述第三異步FIFO寫使能Fifo3_wen將接收端AES密文數(shù)據(jù)AES_cipdatai [m:1]寫入所述第三異步FIFO中;
[0019]所述AES解密模塊根據(jù)所述時鐘生成模塊所產(chǎn)生的時鐘AES_declk生成第三異步FIFO讀時鐘Fifo3_rclk、第三異步FIFO讀使能Fifo3_ren、第四異步FIFO寫時鐘Fifo4_wclk和第四異步FIFO寫使能Fifo4_wen ;并根據(jù)所述第三異步FIFO讀時鐘Fifo3_rclk和第三異步FIFO讀使能Fifo3_ren從所述第三異步FIFO中讀取所述接收端AES密文數(shù)據(jù)AES_cipdatai [m:1]并進(jìn)行AES解密處理,獲得接收端AES明文數(shù)據(jù)AES_pladatao [m:1]后再根據(jù)所述第四異步FIFO寫時鐘Fifo4_wclk和第四異步FIFO寫使能Fifo4_wen寫入所述第四異步FIFO中;
[0020]所述頭同步LFSR解密模塊根據(jù)所述時鐘生成模塊所產(chǎn)生的時鐘LFSR_declk生成第四異步FIFO讀時鐘Fifo4_rclk、第四異步FIFO讀使能Fifo4_ren和數(shù)據(jù)參考時鐘Rx_elk ;并根據(jù)所述第四異步FIFO讀時鐘Fifo4_rclk和第四異步FIFO讀使能Fifo4_ren從所述第四異步FIFO中讀取所述接收端數(shù)據(jù)LFSR密文數(shù)據(jù)FLSR_cipdatai [η:1]進(jìn)行頭同步FLSR解密處理,獲得接收端明文數(shù)據(jù)Rx_data[n:1]后發(fā)送給所述明文數(shù)據(jù)接收邏輯,從而實(shí)現(xiàn)所述FPGA虛擬1片間互連數(shù)字電路的數(shù)據(jù)傳輸。
[0021]本發(fā)明所述的基于重加密算法的FPGA虛擬10片間互連數(shù)字電路的特點(diǎn)也在于,
[0022]所述頭同步LFSR加密模塊包括:第一異步FIFO讀控制邏輯、第二異步FIFO寫控制邏輯、同步頭發(fā)送控制邏輯、數(shù)據(jù)選擇控制邏輯、加密偽隨機(jī)序列生成邏輯、加密異或運(yùn)算邏輯X0R、加密Seed指定模塊、加密反饋系數(shù)指定模塊和輸出選擇SEL模塊;
[0023]所述第一異步FIFO讀控制邏輯根據(jù)所述時鐘FLSR_enclk并生成第一異步FIFO讀時鐘Fifol_rclk、第一異步FIFO讀使能Fifol_ren ;
[0024]所述第二異步FIFO寫控制邏輯根據(jù)第二異步FIFO寫時鐘Fifo2_wclk、第二異步FIFO 寫使能 Fifo2_wen ;
[0025]所述同步頭發(fā)送控制邏輯檢測到所述第一異步FIFO內(nèi)的數(shù)據(jù)為非空時向所述輸出選擇SEL模塊發(fā)送由若干個η位同步頭數(shù)據(jù)Head_data[n:1]構(gòu)成的同步頭序列后再生成同步頭數(shù)據(jù)發(fā)送完成信號Headdata_txdone分別給所述發(fā)送端第一異步FIFO讀控制邏輯和數(shù)據(jù)選擇控制邏輯;
[0026]所述數(shù)據(jù)選擇控制邏輯控制所述輸出選擇SEL模塊輸出所述η位同步頭數(shù)據(jù)Head_data[n:1];
[0027]所述發(fā)送端第一異步FIFO讀控制邏輯根據(jù)所述第一異步FIFO讀時鐘Fifol_rclk和所述第一異步FIFO讀使能Fifol_ren從所述第一異步FIFO中讀取所述η位明文數(shù)據(jù)FLSR_plad