專利名稱:一種安全的現(xiàn)場(chǎng)可編程門陣列網(wǎng)絡(luò)配置方法和配置系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array, FPGA), 特別涉及現(xiàn)場(chǎng)可編程門陣列網(wǎng)絡(luò)配置方法和配置系統(tǒng)。
背景技術(shù):
現(xiàn)場(chǎng)可編程門陣列(FPGA)廣泛存在于網(wǎng)絡(luò)設(shè)備中,可用來實(shí)現(xiàn)如包分類、 入侵檢測(cè)、動(dòng)態(tài)路由協(xié)議等諸多應(yīng)用?;镜默F(xiàn)場(chǎng)可編程門陣列(FPGA)包括 邏輯塊、布線軌道和輸入輸出單元,每個(gè)邏輯塊被布線軌道所包圍,輸入輸出 單元分布在現(xiàn)場(chǎng)可編程門陣列(FPGA)的四周。每個(gè)可編程的邏輯塊完成一定 的數(shù)字功能,可編程布線又將這些邏輯塊的輸入和輸出端口相連來形成更大功 能的電路。每個(gè)輸入輸出單元可以是輸入口,也可以是輸出口,通過可編程布 線和邏輯塊相連。這些現(xiàn)場(chǎng)可編程門陣列(F GA)需要進(jìn)行初始化后才可以實(shí)現(xiàn)既定的功能, 在使用過程中通常也需要根據(jù)需求進(jìn)行升級(jí)?,F(xiàn)場(chǎng)可編程門陣列(FPGA)功能 的初始化和升級(jí)均是通過對(duì)其配置來實(shí)現(xiàn)的。對(duì)現(xiàn)場(chǎng)可編程門陣列(FPGA)的 配置可以分為很多種,根據(jù)配置時(shí)機(jī)可以分為靜態(tài)配置和動(dòng)態(tài)配置,根據(jù)配置 的區(qū)域可以分為全配置和部分配置,根據(jù)配置文件傳輸?shù)木嚯x可以分為本地配 置和網(wǎng)絡(luò)配置。靜態(tài)配置是指配置過程中現(xiàn)場(chǎng)可編程門陣列(FPGA)需要停止 運(yùn)行,而動(dòng)態(tài)配置時(shí)現(xiàn)場(chǎng)可編程門陣列(FPGA)可以在配置的同時(shí)保持運(yùn)行狀 態(tài);全配置是指配置文件配置現(xiàn)場(chǎng)可編程門陣列(FPGA)中所有的可編程邏輯 資源,部分配置是指配置文件只對(duì)現(xiàn)場(chǎng)可編程門陣列(FPGA)中部分可編程邏 輯資源進(jìn)行配置;本地配置是指配置文件存儲(chǔ)在現(xiàn)場(chǎng)可編程門陣列(FPGA)所 在的板卡上或者在通過較短的通信鏈路與板卡連接的主機(jī)上,而網(wǎng)絡(luò)配置是指 配置文件存儲(chǔ)在網(wǎng)絡(luò)上的主機(jī)中。相對(duì)于本地配置,網(wǎng)絡(luò)配置具有方便、靈活、反應(yīng)時(shí)間短的優(yōu)點(diǎn), 一個(gè)完 整的網(wǎng)絡(luò)配置過程包括配置請(qǐng)求發(fā)送、配置文件傳輸、配置文件接收和寫現(xiàn)場(chǎng)可編程門陣列(FPGA)的配置端口?,F(xiàn)有的對(duì)現(xiàn)場(chǎng)可編程門陣列(FPGA)網(wǎng)絡(luò) 配置的方法或裝置都是完全用硬件邏輯實(shí)現(xiàn),存在的一個(gè)不足是占用了現(xiàn)場(chǎng)可 編程門陣列(FPGA)內(nèi)部的邏輯資源;現(xiàn)有技術(shù)存在的另外一個(gè)不足是硬件邏 輯很難用來實(shí)現(xiàn)安全策略,導(dǎo)致現(xiàn)有的配置方法安全性較差。由于配置文件和 命令需要在網(wǎng)絡(luò)上進(jìn)行傳輸,其安全性受到很大威脅。配置文件受到的安全攻 擊主要可以分為三類復(fù)制、逆向工程和惡意修改。復(fù)制是指在用戶沒有覺察 到的情況下對(duì)配置文件進(jìn)行復(fù)制,以盜取配置文件內(nèi)容,并用在攻擊者所需要 的地方。逆向工程是指攻擊者試圖通過逆向工程獲得產(chǎn)生配置文件的整個(gè)設(shè)計(jì) 內(nèi)容,包括源文件等。惡意修改是指攻擊者篡改配置文件,從而達(dá)到使現(xiàn)場(chǎng)可 編程門陣列(FPGA)執(zhí)行自己想要的功能,甚至從物理上損害現(xiàn)場(chǎng)可編程門陣 列(FPGA)的目標(biāo)。由于現(xiàn)有技術(shù)的網(wǎng)絡(luò)配置方法缺乏安全性,所以需要采取 措施保證配置文件和配置過程的安全和可靠性。發(fā)明內(nèi)容本發(fā)明的目的是在網(wǎng)絡(luò)配置現(xiàn)場(chǎng)可編程門陣列(FPGA)時(shí),消除配置文件 的安全性受到的威脅,從而提供一種安全的、同時(shí)對(duì)現(xiàn)場(chǎng)可編程門陣列(FPGA) 邏輯資源占用很少的現(xiàn)場(chǎng)可編程門陣列(FPGA)網(wǎng)絡(luò)配置方法和配置系統(tǒng)。 為了達(dá)到上述目的,本發(fā)明采取如下技術(shù)方案 一種安全的現(xiàn)場(chǎng)可編程門陣列的網(wǎng)絡(luò)配置方法,包括以下步驟 步驟S1,制作現(xiàn)場(chǎng)可編程門陣列的配置文件; 步驟S2,對(duì)所述配置文件進(jìn)行加密操作,得到加密文件; 步驟S3,對(duì)所述加密文件進(jìn)行散列操作,得到第一散列碼; 步驟S4,將所述加密文件和所述散列碼通過網(wǎng)絡(luò)傳輸發(fā)送至位于現(xiàn)場(chǎng)可 編程門陣列端的配置控制單元, 步驟S5,配置控制單元對(duì)接收到的加密文件進(jìn)行與步驟S3相同的散列操 作,得到第二散列碼;步驟S6,配置控制單元將所述第一散列碼與所述第二散列碼進(jìn)行比較,若 不相同,則要求重傳加密文件和第一散列碼,若相同,則繼續(xù)下述操作;步驟S7,配置控制單元采用與步驟S2對(duì)應(yīng)的解密算法,對(duì)收到的加密文 件進(jìn)行解密操作,得到解密后文件;步驟S8,配置控制單元使用所述解密后文件,配置現(xiàn)場(chǎng)可編程門陣列。 優(yōu)選地,所述散列操作采用的散列算法是單向散列算法。優(yōu)選地,所述配置控制單元是運(yùn)行嵌入式操作系統(tǒng)的現(xiàn)場(chǎng)可編程門陣列內(nèi)部或外部的嵌入式處理器;所述操作系統(tǒng)包含用于接收用戶的配置請(qǐng)求的消息傳輸模塊、用于接收加 密文件和散列碼的文件傳輸模塊、用于對(duì)加密文件解密的解密模塊、解密密鑰、 用于管理所述配置請(qǐng)求的配置管理模塊和配置模塊。優(yōu)選地,所述配置管理模塊對(duì)于用戶發(fā)來的并發(fā)的配置請(qǐng)求確定不同的優(yōu) 先級(jí),并使優(yōu)先級(jí)高的配置請(qǐng)求先得到滿足。優(yōu)選地,在所述步驟S8中,所述配置現(xiàn)場(chǎng)可編程門陣列是對(duì)現(xiàn)場(chǎng)可編程門陣列正在運(yùn)行狀態(tài)下的動(dòng)態(tài)配置,或在現(xiàn)場(chǎng)可編程門陣列停止運(yùn)行狀態(tài)下的靜態(tài)配置;所述動(dòng)態(tài)配置包括至少配置部分邏輯單元。優(yōu)選地,該方法還包括下列步驟步驟S9,配置完成后,配置控制單元觀察現(xiàn)場(chǎng)可編程門陣列返回的配置 成功或者配置失敗信息,并將此信息通過網(wǎng)絡(luò)傳輸發(fā)送至用戶端。 優(yōu)選地,該方法還包括下列步驟步驟SIO,若用戶自發(fā)出配置請(qǐng)求時(shí)起在預(yù)定時(shí)間內(nèi)接收到所述配置成功信息,則配置過程結(jié)束,若用戶接收到所述配置失敗信息或未在規(guī)定時(shí)間內(nèi)接 受到配置成功信息,則進(jìn)行失敗處理。優(yōu)選地,所述規(guī)定時(shí)間是預(yù)先通過網(wǎng)絡(luò)帶寬、配置文件大小、寫配置端口 速率參數(shù)計(jì)算出從發(fā)出配置請(qǐng)求到應(yīng)當(dāng)接收到配置完成信號(hào)所需要的時(shí)間與 一個(gè)自定義系數(shù)的乘積。優(yōu)選地,所述自定義系數(shù)的范圍為2至10的實(shí)數(shù)。優(yōu)選地,所述失敗處理包括重試或放棄。 一種安全的現(xiàn)場(chǎng)可編程門陣列的網(wǎng)絡(luò)配置系統(tǒng),包括通過網(wǎng)絡(luò)連接的用戶 端和現(xiàn)場(chǎng)可編程門陣列端,其特征是,所述用戶端包括-.加密模塊,用于將配置文件進(jìn)行加密,得到加密文件; 第一散列操作模塊,用于對(duì)所述加密文件進(jìn)行散列操作,得到第一散列碼; 發(fā)送模塊,用于將用戶端的配置請(qǐng)求、所述加密文件和所述散列碼通過網(wǎng) 絡(luò)傳輸至現(xiàn)場(chǎng)可編程門陣列端;所述現(xiàn)場(chǎng)可編程門陣列端,包括配置控制單元,用于接收所述配置請(qǐng)求、所述加密文件和所述散列碼并完 成對(duì)現(xiàn)場(chǎng)可編程門陣列配置。優(yōu)選地,所述配置控制單元是運(yùn)行嵌入式操作系統(tǒng)的嵌入式處理器,所述 操作系統(tǒng)包括用于接收所述配置請(qǐng)求的消息傳輸模塊、用于接收所述加密文件 和所述散列碼的文件傳輸模塊、用于對(duì)配置文件解密的解密模塊、解密密鑰、 用于管理所述配置請(qǐng)求的配置管理模塊和釆用配置文件對(duì)現(xiàn)場(chǎng)可編程門陣列 配置的配置模塊。優(yōu)選地,所述操作系統(tǒng)還包括與位于用戶端的散列操作模塊實(shí)現(xiàn)相同操 作的第二散列操作模塊,用于對(duì)接收到的加密文件進(jìn)行散列操作,得到第二散 列碼;和文件完整性驗(yàn)證模塊,用于驗(yàn)證第一散列碼和第二散列碼是否相同, 如果相同,則給所述解密模塊信號(hào)使其通過解密密鑰對(duì)加密文件解密,并給所 述配置模塊信號(hào)使其采用解密后配置文件對(duì)現(xiàn)場(chǎng)可編程門陣列配置;如果不 同,則通知操作系統(tǒng)停止操作并向用戶端發(fā)送消息要求重傳加密文件和第一散 列碼。優(yōu)選地,所述第一、第二散列操作模塊采用的散列算法是單向散列算法。優(yōu)選地,所述配置管理模塊對(duì)用戶端發(fā)來的并發(fā)的配置請(qǐng)求確定不同的優(yōu) 先級(jí),并使優(yōu)先級(jí)高的配置請(qǐng)求先得到滿足。優(yōu)選地,所述配置管理模塊接收現(xiàn)場(chǎng)可編程門陣列返回的配置成功或者配 置失敗信息,并通過所述消息傳輸模塊發(fā)送至用戶端。優(yōu)選地,所述用戶端還包括配置信息處理模塊,用于自用戶端發(fā)出配置請(qǐng) 求時(shí)起在預(yù)定時(shí)間內(nèi)接收到所述配置成功信息時(shí),結(jié)束配置過程,并且若在規(guī) 定時(shí)間內(nèi)接收到所述配置失敗信息或未在規(guī)定時(shí)間內(nèi)接收到所述配置成功信 息,進(jìn)行失敗處理。優(yōu)選地,所述規(guī)定時(shí)間是預(yù)先通過網(wǎng)絡(luò)帶寬、配置文件大小、寫配置端口 速率參數(shù)計(jì)算出從發(fā)出配置請(qǐng)求到應(yīng)當(dāng)接收到配置完成信號(hào)所需要的時(shí)間與 一個(gè)自定義系數(shù)的乘積。優(yōu)選地,所述自定義系數(shù)的范圍為2至10的實(shí)數(shù)。優(yōu)選地,所述失敗處理包括重試或放棄。與現(xiàn)有技術(shù)相比,本發(fā)明產(chǎn)生的有益技術(shù)效果是本發(fā)明的對(duì)現(xiàn)場(chǎng)可編程門陣列(FPGA)的配置方法和配置系統(tǒng)采用基于嵌入式操作系統(tǒng)的軟件來實(shí)現(xiàn),并綜合利用了數(shù)據(jù)安全算法,保證配置文件和配置過程的安全特性,使得本發(fā)明對(duì)現(xiàn)場(chǎng)可編程門陣列(FPGA)的網(wǎng)絡(luò)配置不僅 安全性高,且對(duì)現(xiàn)場(chǎng)可編程門陣列(FPGA)的可編程邏輯資源占用較少,靈活 易于實(shí)現(xiàn)。與現(xiàn)有技術(shù)相對(duì)比,現(xiàn)有技術(shù)的網(wǎng)絡(luò)配置方法開發(fā)硬件邏輯所需要 的工作量比本發(fā)明的網(wǎng)絡(luò)配置開發(fā)軟件大的多,而且硬件邏輯難以調(diào)試,而采 用操作系統(tǒng)來管理硬件資源,并在操作系統(tǒng)上運(yùn)行軟件程序配置現(xiàn)場(chǎng)可編程門 陣列(FPGA)易于實(shí)現(xiàn)且比硬件邏輯更靈活。
圖1是本發(fā)明的現(xiàn)場(chǎng)可編程門陣列網(wǎng)絡(luò)配置方法流程圖;圖2是本發(fā)明的現(xiàn)場(chǎng)可編程門陣列網(wǎng)絡(luò)配置系統(tǒng)結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí) 施例,對(duì)本發(fā)明的現(xiàn)場(chǎng)可編程門陣列網(wǎng)絡(luò)配置方法和配置系統(tǒng)進(jìn)一步詳細(xì)說 明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定 本發(fā)明。為實(shí)現(xiàn)本發(fā)明的目的,作為一種可實(shí)施的方式,以對(duì)一種現(xiàn)場(chǎng)可編程門陣 列(FPGA)(如賽靈思XCV4FX60)通過網(wǎng)絡(luò)進(jìn)行安全配置為例來介紹本發(fā)明的 技術(shù)方案,但應(yīng)當(dāng)說明的是,其不是對(duì)本發(fā)明的限制。本實(shí)施例采用動(dòng)態(tài)的部分配置方案,因此在通過網(wǎng)絡(luò)配置前,應(yīng)先確?,F(xiàn) 場(chǎng)可編程門陣列(FPGA)已經(jīng)被初始化配置。初始化配置要求至少配置現(xiàn)場(chǎng)可 編程門陣列(FPGA)的靜態(tài)部分,也就是不會(huì)在運(yùn)行中被重新配置的部分。初 始化配置完成后,現(xiàn)場(chǎng)可編程門陣列(FPGA)能夠運(yùn)行嵌入式操作系統(tǒng)。動(dòng)態(tài) 配置過程中采用現(xiàn)場(chǎng)可編程門陣列(FPGA)內(nèi)置的PowerPC處理器作為配置控 制單元,內(nèi)部配置訪問端口 (Internal Configuration Access Port, ICAP) 作為配置端口。為了使配置控制單元工作,需要開發(fā)或者移植嵌入式操作系統(tǒng),使其能夠 運(yùn)行在作為配置控制單元的嵌入式處理器上。在本實(shí)施例中,采用移植的嵌入式Montavista Linux操作系統(tǒng),嵌入式 處理器是PowerPC,在移植過程中選擇如網(wǎng)絡(luò)傳輸協(xié)議、文件傳輸、加解密等 必要的功能。
該操作系統(tǒng)包括應(yīng)用程序和設(shè)備驅(qū)動(dòng)程序。
該設(shè)備驅(qū)動(dòng)程序包含嵌入式處理器片上系統(tǒng)中所有的設(shè)備;該應(yīng)用程序包 括配置管理模塊,配置管理模塊按照先來先服務(wù)的原則處理用戶發(fā)來的配置請(qǐng) 求。
按照對(duì)現(xiàn)場(chǎng)可編程門陣列(FPGA)(如賽靈思XCV4FX60)通過網(wǎng)絡(luò)進(jìn)行安 全配置為例,本發(fā)明提供的一種安全的現(xiàn)場(chǎng)可編程門陣列的網(wǎng)絡(luò)配置方法,如 圖1所示,包括以下步驟
步驟S1,制作現(xiàn)場(chǎng)可編程門陣列的配置文件。
用戶可以使用電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation, EDA) 工具制作出現(xiàn)場(chǎng)可編程門陣列的配置文件;
制作現(xiàn)場(chǎng)可編程門陣列的配置文件,是一種現(xiàn)有技術(shù)。 作為一種實(shí)施方法,利用如賽靈思公司的EDK和PlanAhead軟件,采用基 于模塊的方法開發(fā)出控制二極管指示燈(LED)閃爍頻率模塊的配置文件。配 置文件使得在配置完成后,現(xiàn)場(chǎng)可編程門陣列(FPGA)驅(qū)動(dòng)的一個(gè)發(fā)光二極管 指示燈(LED)的閃爍頻率發(fā)生改變;但是應(yīng)該理解,本領(lǐng)域的技術(shù)人員很容
易將本發(fā)明的方法應(yīng)用于采用不同配置文件和型號(hào)的現(xiàn)場(chǎng)可編程門陣列 (FPGA)上。
步驟S2,對(duì)所述配置文件進(jìn)行加密操作,得到加密文件。
較佳地,所述加密操作采用的加密算法可以是對(duì)稱加密算法。作為一種可
以實(shí)施的方式,比如高級(jí)加密標(biāo)準(zhǔn)(AES)算法;
所述加密算法也可以是非對(duì)稱加密算法,作為一種可以實(shí)施的方式,比如
RSA算法。
本步驟中的加密操作帶來的好處是在不知道解密密鑰的情況下無法由步 驟S2中的加密文件得到步驟SI中的原始配置文件,從而防止在用戶沒有覺察 到的情況下對(duì)配置文件進(jìn)行復(fù)制,以盜取配置文件內(nèi)容,并用在攻擊者所需要 的地方。
步驟S3,對(duì)所述加密文件進(jìn)行散列操作,得到第一散列碼;較佳地,所述散列操作采用的散列算法是單向散列算法,作為一種可以實(shí)
施的方式,比如采用信息摘要算法5 (Message-digest Algorithm 5)進(jìn)行散列, 得到一串128bit的散列值。這樣做的好處是散列碼并不以可辨別的方式依 賴于加密文件,對(duì)加密文件任何比特位的修改都將導(dǎo)致產(chǎn)生不同的散列碼,所 以能夠防止攻擊者篡改配置文件,從而達(dá)到使現(xiàn)場(chǎng)可編程門陣列(FPGA)執(zhí)行 自己想要的功能的企圖。
步驟S4,將所述加密文件和所述散列碼通過網(wǎng)絡(luò)傳輸發(fā)送至位于現(xiàn)場(chǎng)可 編程門陣列端的配置控制單元;具體來說,用戶使用主機(jī)中的安全外殼協(xié)議 (Secure Shell Protocol, SSH)程序登錄到配置控制單元運(yùn)行的MontaVista Linux操作系統(tǒng)上,通過所述的安全外殼協(xié)議程序啟動(dòng)文件傳輸協(xié)議(File Transfer Protocol, FTP),將所述加密文件和所述散列碼傳輸?shù)浆F(xiàn)場(chǎng)可編程 門陣列(FPGA)所在系統(tǒng)中。
較佳地,除了上面作為一種實(shí)時(shí)方式描述的所述的配置控制單元可以是現(xiàn) 場(chǎng)可編程門陣列內(nèi)部的嵌入式處理器硬核或者軟核之外,還可以是現(xiàn)場(chǎng)可編程 門陣列外部的嵌入式處理器。所述的配置控制單元運(yùn)行嵌入式操作系統(tǒng),該操 作系統(tǒng)包含用于接收用戶的配置請(qǐng)求的消息傳輸模塊、用于接收加密文件和散 列碼的文件傳輸模塊、用于對(duì)加密文件解密的解密模塊、解密密鑰、用于管理 所述配置請(qǐng)求的配置管理模塊和用于將配置文件寫入配置端口的配置模塊。
較佳地,所述配置管理模塊依照一定算法給予由對(duì)網(wǎng)絡(luò)配置現(xiàn)場(chǎng)可編程門 陣列(FPGA)進(jìn)行網(wǎng)絡(luò)配置的用戶發(fā)出的并發(fā)的配置請(qǐng)求不同的優(yōu)先級(jí),并使 優(yōu)先級(jí)高的配置請(qǐng)求先得到滿足。作為一種可實(shí)施的方式,所述算法比如為小 配置文件優(yōu)先算法。該算法為本領(lǐng)域技術(shù)人員熟知的技術(shù),在此不再贅述。
較佳地,在所述的步驟S4中,所述的消息傳輸模塊可以是基于面向連接 的網(wǎng)絡(luò)傳輸協(xié)議,作為一種可以實(shí)施的方式,比如TCP協(xié)議;作為另一種可實(shí) 施的方式,也可以是基于無連接的網(wǎng)絡(luò)傳輸協(xié)議,比如UDP協(xié)議。
步驟S5,配置控制單元對(duì)接收到的加密文件進(jìn)行與步驟S3相同的散列操 作,得到第二散列碼;
步驟S6,配置控制單元將步驟S4中收到的第一散列碼與步驟S5中計(jì)算得 到的第二散列碼進(jìn)行比較,若不相同,則中止操作并要求重傳加密文件和第一 散列碼,若相同,則繼續(xù)下述操作;步驟S7,配置控制單元采用與步驟S2對(duì)應(yīng)的解密算法,對(duì)步驟S4中收 到的加密文件進(jìn)行解密操作,得到解密后文件;
步驟S8,配置控制單元使用步驟S7中的解密后文件,配置現(xiàn)場(chǎng)可編程門陣列。
較佳地,所述配置現(xiàn)場(chǎng)可編程門陣列的配置方案不限于對(duì)現(xiàn)場(chǎng)可編程門陣 列正在運(yùn)行狀態(tài)下的動(dòng)態(tài)配置,還包括在現(xiàn)場(chǎng)可編程門陣列停止運(yùn)行狀態(tài)下的 靜態(tài)配置,當(dāng)進(jìn)行靜態(tài)配置時(shí),配置控制單元要設(shè)在FPGA的外部,如設(shè)置在 FPGA外部的嵌入式處理器上;所述動(dòng)態(tài)配置包括至少配置其中的部分邏輯單 元,或者配置現(xiàn)場(chǎng)可編程門陣列中的全部邏輯單元。但對(duì)于全部邏輯單元的配 置而言,如果仍以上面的實(shí)例作為例子,當(dāng)配置控制單元所在的邏輯塊被重新 配置時(shí),必須有另一個(gè)配置控制單元暫時(shí)接管工作,目前的高端FPGA中就有 兩個(gè)PPC處理器作為配置控制單元。這種配置控制單元處于FPGA內(nèi)部并且兩 個(gè)配置控制單元交替接管的方法,本領(lǐng)域技術(shù)人員根據(jù)本實(shí)施方式的描述是很 容易實(shí)現(xiàn)的。
較佳地,本發(fā)明的網(wǎng)絡(luò)配置方法還包括
步驟S9,配置完成后,配置控制單元觀察現(xiàn)場(chǎng)可編程門陣列返回的配置 成功或者配置失敗信息,并將此信息通過網(wǎng)絡(luò)傳輸發(fā)送至用戶端。
較佳地,本發(fā)明的網(wǎng)絡(luò)配置方法還包括步驟SIO,若用戶自發(fā)出配置請(qǐng) 求時(shí)起在預(yù)定時(shí)間內(nèi)接收到所述配置成功信息,則配置過程結(jié)束,若用戶接收 到所述配置失敗信息或未在規(guī)定時(shí)間內(nèi)接受到配置成功信息,則進(jìn)行失敗處 理。用戶發(fā)送配置請(qǐng)求的技術(shù)是本領(lǐng)域技術(shù)人員熟知的, 一般是在發(fā)送配置文 件之前向現(xiàn)場(chǎng)可編程門陣列所處的網(wǎng)絡(luò)端發(fā)送。
較佳地,所述的規(guī)定時(shí)間是根據(jù)網(wǎng)絡(luò)傳輸質(zhì)量、配置文件大小和配置端口 確定。作為一種可實(shí)施的方式,預(yù)先通過網(wǎng)絡(luò)帶寬、配置文件大小、寫配置端 口速率等參數(shù)計(jì)算出從發(fā)出配置請(qǐng)求到接收到配置完成信號(hào)所需要的時(shí)間,再 用該時(shí)間乘上一個(gè)自定義系數(shù)得到該預(yù)定時(shí)間。所述自定義系數(shù)的設(shè)定范圍為 不小于2的實(shí)數(shù),但一般不大于10,做為一種可實(shí)施的方式,該系數(shù)設(shè)置為3。
較佳地,所述失敗處理包括重試或放棄。
如圖2所示,本發(fā)明的一種安全的現(xiàn)場(chǎng)可編程門陣列的網(wǎng)絡(luò)配置系統(tǒng),包 括通過網(wǎng)絡(luò)連接的用戶端和現(xiàn)場(chǎng)可編程門陣列端,其中,所述用戶端包括加密模塊IO,用于將用戶的配置文件進(jìn)行加密,得到加密文件。 第一散列操作模塊11,用于對(duì)所述加密文件進(jìn)行散列操作,得到第一散 列碼。
發(fā)送模塊12,用于將用戶的配置請(qǐng)求、所述加密文件和所述散列碼通過 網(wǎng)絡(luò)傳輸至現(xiàn)場(chǎng)可編程門陣列端;
所述現(xiàn)場(chǎng)可編程門陣列端,包括
配置控制單元13,用于接收所述配置請(qǐng)求、所述加密文件和所述散列碼 并完成對(duì)現(xiàn)場(chǎng)可編程門陣列配置。
較佳地,所述配置控制單元是運(yùn)行嵌入式操作系統(tǒng)的嵌入式處理器,所述 操作系統(tǒng)包括用于接收所述配置請(qǐng)求的消息傳輸模塊131、用于接收所述加密
文件和所述散列碼的文件傳輸模塊132、用于對(duì)配置文件解密的解密模塊133、 解密密鑰134、用于管理所述配置請(qǐng)求的配置管理模塊135和采用配置文件對(duì) 現(xiàn)場(chǎng)可編程門陣列(FPGA)配置的配置模塊136。所述解密密鑰可以以文件的 形式保存。所述嵌入式處理器是位于現(xiàn)場(chǎng)可編程門陣列內(nèi)部或外部。
較佳地,所述操作系統(tǒng)還包括與位于用戶端的散列操作模塊實(shí)現(xiàn)相同操 作的第二散列操作模塊137,用于對(duì)接收到的加密文件進(jìn)行散列操作,得到第 二散列碼;和文件完整性驗(yàn)證模塊138,用于驗(yàn)證第一散列碼和第二散列碼是 否相同,如果相同,則給所述解密模塊133信號(hào)使其通過解密密鑰134對(duì)加密 文件解密,并給所述配置模塊136信號(hào)使其采用解密后配置文件對(duì)現(xiàn)場(chǎng)可編程 門陣列(FPGA)配置;如果不同,則通知操作系統(tǒng)停止操作并通過消息傳輸模 塊131向用戶端發(fā)送消息要求重傳加密文件和第一散列碼。
較佳地,所述第一和第二散列操作模塊采用的散列算法是單向散列算法。
較佳地,所述配置管理模塊對(duì)于用戶端發(fā)來的并發(fā)的配置請(qǐng)求確定不同的 優(yōu)先級(jí),并使優(yōu)先級(jí)高的配置請(qǐng)求先得到滿足。
較佳地,所述配置管理模塊135觀察現(xiàn)場(chǎng)可編程門陣列返回的配置成功或 者配置失敗信息,并將此信息通過消息傳輸模塊131發(fā)送至用戶端。
較佳地,所述用戶端還包括配置信息處理模塊(圖中未示出),用于自用 戶端發(fā)出配置請(qǐng)求時(shí)起在預(yù)定時(shí)間內(nèi)接收到所述配置成功信息時(shí),結(jié)束配置過 程,并且若在規(guī)定時(shí)間內(nèi)接收到所述配置失敗信息或未在規(guī)定時(shí)間內(nèi)接收到配 置成功信息,則進(jìn)行失敗處理。步驟108:丟棄接收到的SDU所屬業(yè)務(wù)類型所對(duì)應(yīng)的SDU中、在緩存隊(duì) 列中的時(shí)間最久的SDU,然后,執(zhí)行步驟109。其中,具體如何丟棄SDU所屬在緩存隊(duì)列中時(shí)間最久的SDU在現(xiàn)有技術(shù) 中已非常公知,這里不再贅述。步驟109:將接收到的SDU放入緩存隊(duì)列中,之后,執(zhí)行步驟IIO。其中,具體如何將SDU放入緩存隊(duì)列在現(xiàn)有技術(shù)中已非常公知,這里不再 贅述。步驟110:計(jì)算并更新入隊(duì)速率、出隊(duì)速率和緩存隊(duì)列長(zhǎng)度,之后,執(zhí)行 步驟111和114。其中,當(dāng)由步驟107轉(zhuǎn)入本步驟時(shí),由于接收到的SDU被丟棄,因此,在 計(jì)算入隊(duì)速率時(shí)并不將該接收到的SDU記入入隊(duì)數(shù)目中。當(dāng)由步驟109轉(zhuǎn)入本 步驟時(shí),由于接收到的SDU被放入緩存隊(duì)列中,則計(jì)算入隊(duì)速率時(shí),將該SDU 記入入隊(duì)數(shù)目中;并且,由于執(zhí)行了步驟108,因此,此時(shí),在計(jì)算出隊(duì)速率 時(shí)也需將丟棄的SDU的數(shù)量加入出隊(duì)數(shù)目中。所述入隊(duì)數(shù)目表示放入緩存隊(duì)列 的SDU的數(shù)量,用于進(jìn)行入隊(duì)速率的計(jì)算;所述出隊(duì)數(shù)目表示離開緩存隊(duì)列的 SDU的數(shù)量,用于進(jìn)行出隊(duì)速率的計(jì)算。其中,具體如何更新入隊(duì)速率和緩存隊(duì)列長(zhǎng)度可以使用現(xiàn)有技術(shù)中的相關(guān) 技術(shù),這里不再贅述。以上為對(duì)SDU所屬業(yè)務(wù)類型所對(duì)應(yīng)的緩存隊(duì)列進(jìn)行擁塞控制的方法流程, 而步驟111 ~步驟113為對(duì)本發(fā)明所述擁塞控制方法所屬系統(tǒng)總的緩存容量的 監(jiān)控流程,而且,從步驟110可以看出,每次有SDU放入緩存隊(duì)列中時(shí),均需 執(zhí)行步驟111~步驟113的監(jiān)控流程。步驟111:判斷系統(tǒng)總的緩存容量是否大于緩存容量的告警門限,如大于 所述告警門限,則4丸行步驟112,如不大于所述告警門限,則當(dāng)前流程結(jié)束。其中,參照步驟102中所提供的擁塞控制參數(shù)的獲取方法,緩存容量的告 警門限一4殳為klxMt,且,0<kl<l。步驟112:判斷系統(tǒng)總的緩存容量大于所述告警門限所持續(xù)的時(shí)間是否大
權(quán)利要求
1、一種安全的現(xiàn)場(chǎng)可編程門陣列的網(wǎng)絡(luò)配置方法,包括以下步驟步驟S1,制作現(xiàn)場(chǎng)可編程門陣列的配置文件;步驟S2,對(duì)所述配置文件進(jìn)行加密操作,得到加密文件;步驟S3,對(duì)所述加密文件進(jìn)行散列操作,得到第一散列碼;步驟S4,將所述加密文件和所述散列碼通過網(wǎng)絡(luò)傳輸發(fā)送至位于現(xiàn)場(chǎng)可編程門陣列端的配置控制單元;步驟S5,配置控制單元對(duì)接收到的加密文件進(jìn)行與步驟S3相同的散列操作,得到第二散列碼;步驟S6,配置控制單元將所述第一散列碼與所述第二散列碼進(jìn)行比較,若不相同,則要求重傳加密文件和第一散列碼,若相同,則繼續(xù)下述操作;步驟S7,配置控制單元采用與步驟S2對(duì)應(yīng)的解密算法,對(duì)收到的加密文件進(jìn)行解密操作,得到解密后文件;步驟S8,配置控制單元使用所述解密后文件,配置現(xiàn)場(chǎng)可編程門陣列。
2、 根據(jù)權(quán)利要求l所述的現(xiàn)場(chǎng)可編程門陣列的網(wǎng)絡(luò)配置方法,其特征是, 所述散列操作采用的散列算法是單向散列算法。
3、 根據(jù)權(quán)利要求1所述的現(xiàn)場(chǎng)可編程門陣列的網(wǎng)絡(luò)配置方法,其特征是, 所述配置控制單元是運(yùn)行嵌入式操作系統(tǒng)的現(xiàn)場(chǎng)可編程門陣列內(nèi)部或外部的 嵌入式處理器;所述操作系統(tǒng)包含用于接收用戶的配置請(qǐng)求的消息傳輸模塊、用于接收加 密文件和散列碼的文件傳輸模塊、用于對(duì)加密文件解密的解密模塊、解密密鑰、 用于管理所述配置請(qǐng)求的配置管理模塊和配置模塊。
4、 根據(jù)權(quán)利要求3所述的現(xiàn)場(chǎng)可編程門陣列的網(wǎng)絡(luò)配置方法,其特征是, 所述配置管理模塊對(duì)于用戶發(fā)來的并發(fā)的配置請(qǐng)求確定不同的優(yōu)先級(jí),并使優(yōu) 先級(jí)高的配置請(qǐng)求先得到滿足。
5、 根據(jù)權(quán)利要求1所述的現(xiàn)場(chǎng)可編程門陣列的網(wǎng)絡(luò)配置方法,其特征是, 在所述步驟S8中,所述配置現(xiàn)場(chǎng)可編程門陣列是對(duì)現(xiàn)場(chǎng)可編程門陣列正在運(yùn) 行狀態(tài)下的動(dòng)態(tài)配置,或在現(xiàn)場(chǎng)可編程門陣列停止運(yùn)行狀態(tài)下的靜態(tài)配置;所 述動(dòng)態(tài)配置包括至少配置部分邏輯單元。
6、 根據(jù)權(quán)利要求l所述的現(xiàn)場(chǎng)可編程門陣列的網(wǎng)絡(luò)配置方法,其特征是, 還包括下列步驟步驟S9,配置完成后,配置控制單元觀察現(xiàn)場(chǎng)可編程門陣列返回的配置 成功或者配置失敗信息,并將此信息通過網(wǎng)絡(luò)傳輸發(fā)送至用戶端。
7、 根據(jù)權(quán)利要求6所述的現(xiàn)場(chǎng)可編程門陣列的網(wǎng)絡(luò)配置方法,其特征是,還包括下列步驟步驟SIO,若用戶自發(fā)出配置請(qǐng)求時(shí)起在預(yù)定時(shí)間內(nèi)接收到所述配置成功 信息,則配置過程結(jié)束,若用戶接收到所述配置失敗信息或未在規(guī)定時(shí)間內(nèi)接 受到配置成功信息,則進(jìn)行失敗處理。
8、 根據(jù)權(quán)利要求7所述的現(xiàn)場(chǎng)可編程門陣列的網(wǎng)絡(luò)配置方法,其特征是,所述規(guī)定時(shí)間是預(yù)先通過網(wǎng)絡(luò)帶寬、配置文件大小、寫配置端口速率參數(shù)計(jì)算 出從發(fā)出配置請(qǐng)求到應(yīng)當(dāng)接收到配置完成信號(hào)所需要的時(shí)間與一個(gè)自定義系 數(shù)的乘積。
9、 根據(jù)權(quán)利要求8所述的現(xiàn)場(chǎng)可編程門陣列的網(wǎng)絡(luò)配置方法,其特征是, 所述自定義系數(shù)的范圍為2至10的實(shí)數(shù)。
10、 根據(jù)權(quán)利要求7所述的現(xiàn)場(chǎng)可編程門陣列的網(wǎng)絡(luò)配置方法,其特征是, 所述失敗處理包括重試或放棄。
11、 一種安全的現(xiàn)場(chǎng)可編程門陣列的網(wǎng)絡(luò)配置系統(tǒng),包括通過網(wǎng)絡(luò)連接的用戶端和現(xiàn)場(chǎng)可編程門陣列端,其特征是,所述用戶端包括加密模塊,用于將配置文件進(jìn)行加密,得到加密文件; 第一散列操作模塊,用于對(duì)所述加密文件進(jìn)行散列操作,得到第一散列碼; 發(fā)送模塊,用于將用戶端的配置請(qǐng)求、所述加密文件和所述散列碼通過網(wǎng) 絡(luò)傳輸至現(xiàn)場(chǎng)可編程門陣列端;所述現(xiàn)場(chǎng)可編程門陣列端,包括配置控制單元,用于接收所述配置請(qǐng)求、所述加密文件和所述散列碼并完 成對(duì)現(xiàn)場(chǎng)可編程門陣列配置。
12、 根據(jù)權(quán)利要求11所述的現(xiàn)場(chǎng)可編程門陣列的網(wǎng)絡(luò)配置系統(tǒng),其特征 是,所述配置控制單元是運(yùn)行嵌入式操作系統(tǒng)的嵌入式處理器,所述操作系統(tǒng) 包括用于接收所述配置請(qǐng)求的消息傳輸模塊、用于接收所述加密文件和所述散 列碼的文件傳輸模塊、用于對(duì)配置文件解密的解密模塊、解密密鑰、用于管理所述配置請(qǐng)求的配置管理模塊和采用配置文件對(duì)現(xiàn)場(chǎng)可編程門陣列配置的配 置模塊。
13、 根據(jù)權(quán)利要求12所述的現(xiàn)場(chǎng)可編程門陣列的網(wǎng)絡(luò)配置系統(tǒng),其特征 是,所述操作系統(tǒng)還包括與位于用戶端的散列操作模塊實(shí)現(xiàn)相同操作的第二 散列操作模塊,用于對(duì)接收到的加密文件進(jìn)行散列操作,得到第二散列碼;和 文件完整性驗(yàn)證模塊,用于驗(yàn)證第一散列碼和第二散列碼是否相同,如果相同, 則給所述解密模塊信號(hào)使其通過解密密鑰對(duì)加密文件解密,并給所述配置模塊 信號(hào)使其采用解密后配置文件對(duì)現(xiàn)場(chǎng)可編程門陣列配置;如果不同,則通知操作系統(tǒng)停止操作并向用戶端發(fā)送消息要求重傳加密文件和第一散列碼。
14、 根據(jù)權(quán)利要求13所述的現(xiàn)場(chǎng)可編程門陣列的網(wǎng)絡(luò)配置系統(tǒng),其特征 是,所述第一、第二散列操作模塊采用的散列算法是單向散列算法。
15、 根據(jù)權(quán)利要求12所述的現(xiàn)場(chǎng)可編程門陣列的網(wǎng)絡(luò)配置系統(tǒng),其特征 是,所述配置管理模塊對(duì)用戶端發(fā)來的并發(fā)的配置請(qǐng)求確定不同的優(yōu)先級(jí),并 使優(yōu)先級(jí)高的配置請(qǐng)求先得到滿足。
16、 根據(jù)權(quán)利要求12所述的現(xiàn)場(chǎng)可編程門陣列的網(wǎng)絡(luò)配置系統(tǒng),其特征是,所述配置管理模塊接收現(xiàn)場(chǎng)可編程門陣列返回的配置成功或者配置失敗信 息,并通過所述消息傳輸模塊發(fā)送至用戶端。
17、 根據(jù)權(quán)利要求16所述的現(xiàn)場(chǎng)可編程門陣列的網(wǎng)絡(luò)配置系統(tǒng),其特征 是,所述用戶端還包括配置信息處理模塊,用于自用戶端發(fā)出配置請(qǐng)求時(shí)起在 預(yù)定時(shí)間內(nèi)接收到所述配置成功信息時(shí),結(jié)束配置過程,并且若在規(guī)定時(shí)間內(nèi) 接收到所述配置失敗信息或未在規(guī)定時(shí)間內(nèi)接收到所述配置成功信息,進(jìn)行失 敗處理。
18、 根據(jù)權(quán)利要求17所述的現(xiàn)場(chǎng)可編程門陣列的網(wǎng)絡(luò)配置系統(tǒng),其特征 是,所述規(guī)定時(shí)間是預(yù)先通過網(wǎng)絡(luò)帶寬、配置文件大小、寫配置端口速率參數(shù) 計(jì)算出從發(fā)出配置請(qǐng)求到應(yīng)當(dāng)接收到配置完成信號(hào)所需要的時(shí)間與一個(gè)自定 義系數(shù)的乘積。
19、 根據(jù)權(quán)利要求18所述的現(xiàn)場(chǎng)可編程門陣列的網(wǎng)絡(luò)配置系統(tǒng),其特征 是,所述自定義系數(shù)的范圍為2至10的實(shí)數(shù)。
20、 根據(jù)權(quán)利要求17所述的現(xiàn)場(chǎng)可編程門陣列的網(wǎng)絡(luò)配置系統(tǒng),其特征 是,所述失敗處理包括重試或放棄。
全文摘要
本發(fā)明公開了一種安全的現(xiàn)場(chǎng)可編程門陣列網(wǎng)絡(luò)配置方法和配置系統(tǒng)。該配置方法,包括制作現(xiàn)場(chǎng)可編程門陣列的配置文件;對(duì)所述配置文件進(jìn)行加密操作,得到加密文件;對(duì)加密文件進(jìn)行散列操作,得到第一散列碼;將所述加密文件和所述散列碼通過網(wǎng)絡(luò)傳輸發(fā)送至配置控制單元;配置控制單元對(duì)接收到的加密文件進(jìn)行相同的散列操作,得到第二散列碼;配置控制單元收到的第一散列碼與計(jì)算得到的第二散列碼進(jìn)行比較,若不相同,則要求重傳加密文件和第一散列碼,若相同,配置控制單元對(duì)收到加密文件進(jìn)行解密操作,得到解密后文件;配置控制單元配置現(xiàn)場(chǎng)可編程門陣列。本發(fā)明采用軟件來實(shí)現(xiàn)FPGA網(wǎng)絡(luò)配置,不僅易于實(shí)現(xiàn)而且提高了配置過程的安全性。
文檔編號(hào)H04L29/06GK101232506SQ20081005676
公開日2008年7月30日 申請(qǐng)日期2008年1月24日 優(yōu)先權(quán)日2008年1月24日
發(fā)明者鵬 李, 勁 賀, 韓冀中 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所