基于高速遙測PCM數(shù)據(jù)的AES加密存儲(chǔ)系統(tǒng)如何設(shè)計(jì)

傳統(tǒng)的遙測PCM數(shù)據(jù)由于芯片等硬件條件的制約很難實(shí)現(xiàn)數(shù)據(jù)的高速解碼以及安全存儲(chǔ),為此我們設(shè)計(jì)一種實(shí)現(xiàn)高速遙測PCM碼數(shù)據(jù)的解碼、數(shù)據(jù)的加密及數(shù)據(jù)存儲(chǔ)的方法,那就是基于高速遙測PCM數(shù)據(jù)的AES加密存儲(chǔ)系統(tǒng)。

一、基于高速遙測PCM數(shù)據(jù)的AES加密存儲(chǔ)系統(tǒng)總體結(jié)構(gòu)

本系統(tǒng)主要完成一路高速10Mbps碼流的PCM數(shù)據(jù)接收、加密及存儲(chǔ),以FPGA為中央處理器,運(yùn)用其豐富的內(nèi)部資源分別完成數(shù)據(jù)的解碼接收、加密運(yùn)算等功能模塊的實(shí)現(xiàn),同時(shí)高速的PCM碼流需要大容量的外部FIFO完成接受數(shù)據(jù)的緩存,采用固態(tài)的存儲(chǔ)器完成數(shù)據(jù)的實(shí)時(shí)記錄存儲(chǔ)。

二、基于高速遙測PCM數(shù)據(jù)的AES加密存儲(chǔ)系統(tǒng)軟件硬件設(shè)計(jì)

1、PCM數(shù)據(jù)的接收硬件設(shè)計(jì)

脈沖編碼調(diào)制(PCM)是用代碼來表示信號(hào)信息的一種特殊調(diào)制方式,它需要經(jīng)過采樣、量化和編碼3個(gè)過程,最終將數(shù)據(jù)組成(PCM)格式,形成串行的數(shù)據(jù)流通過調(diào)制設(shè)備進(jìn)行傳送。本系統(tǒng)采用模塊化的程序設(shè)計(jì)實(shí)現(xiàn)數(shù)據(jù)的解碼,便于數(shù)據(jù)碼流和位寬等參數(shù)的調(diào)節(jié)。

系統(tǒng)中整個(gè)高速PCM解調(diào)電路工作原理為:

1)高速串行PCM數(shù)據(jù)流在碼同步信號(hào)作用下,通過移位寄存器將其轉(zhuǎn)換為8路并行數(shù)據(jù),并行數(shù)據(jù)在字同步(路同步)信號(hào)的作用下取出,在控制電路的配合下,存人大容量的FIFO緩沖器中。當(dāng)FIFO存至半滿時(shí),系統(tǒng)根據(jù)產(chǎn)生的半滿信號(hào),由FPGA控制解碼數(shù)據(jù)并進(jìn)行下一步操作。本文中的PCM數(shù)據(jù)通過長線抗干擾的差分422進(jìn)行傳輸,通過DS26C32高速差分轉(zhuǎn)換芯片進(jìn)行電平轉(zhuǎn)換。

2)XINLINX的Spartan系列的XC2S200將數(shù)據(jù)讀取進(jìn)行內(nèi)部的數(shù)據(jù)轉(zhuǎn)換操作。在高速PCM碼數(shù)據(jù)解碼中FPGA內(nèi)部的FIFO難以滿足容量要求,所以本系統(tǒng)采用外部大容量FIFO(IDT7207)32K字節(jié)進(jìn)行解碼數(shù)據(jù)的緩存。而FPGA通過控制rb或wr信號(hào)對FIFO進(jìn)行讀寫操作。

2、PCM數(shù)據(jù)的接收軟件實(shí)現(xiàn)

本系統(tǒng)采用VHDL完成高速PCM數(shù)據(jù)的解碼,利用PCM數(shù)據(jù)的格式,采用模塊化程序結(jié)構(gòu)完成解碼,首先,上電自復(fù)位2ms完成依據(jù)數(shù)據(jù)的碼同步信號(hào)作為接收數(shù)據(jù)的時(shí)鐘CLOCK的匹配,然后依據(jù)匹配的碼同步時(shí)鐘,在每次字同步信號(hào)的上升沿對數(shù)據(jù)進(jìn)行讀取,同時(shí)完成數(shù)據(jù)的串并轉(zhuǎn)換。最后將解碼的數(shù)據(jù)依據(jù)FIFO的返回標(biāo)志進(jìn)行緩存。

3、AES數(shù)據(jù)加密的算法研究

AES(Rijndael)是一種迭代分組密碼,采用的是代替或置換網(wǎng)絡(luò).它對1個(gè)128位的明文數(shù)據(jù)塊進(jìn)行加密操作,加密時(shí),首先將輸入的明文128位數(shù)據(jù)排列成4×4的字節(jié)矩陣,將其定義為狀態(tài),所有AES的變換都是基于狀態(tài)的變化。然后根據(jù)不同的密鑰長度,進(jìn)行10(128位密鑰),12 (192位密鑰)或14(256位密鑰)輪的迭代運(yùn)算實(shí)現(xiàn)。而每次的AES變化是由輪函數(shù)通過多輪迭代完成的,每次的輪變換函數(shù)由4步完成。

本系統(tǒng)中采用VHDL語言來實(shí)現(xiàn)加密的軟件算法,基于其有適合算法的算法級(jí)、寄存級(jí)、邏輯級(jí)、門級(jí)設(shè)計(jì)模塊,系統(tǒng)中軟件的功能模塊有數(shù)據(jù)解碼模塊、中央控制模塊、數(shù)據(jù)輸入模塊、密鑰生成模塊、加密運(yùn)算模塊及數(shù)據(jù)存儲(chǔ)模塊。AES的算法需依照AES的算流程進(jìn)行程序模塊編寫。

4、數(shù)據(jù)的AES加密硬件設(shè)計(jì)

本系統(tǒng)設(shè)計(jì)采用的是基于XINLINX公司的XC2S200芯片進(jìn)行的。SPARTAN -Ⅱ系列用戶可編程門陣列的輸入輸出塊(IOBs)支持多種標(biāo)準(zhǔn)的輸入輸出信號(hào),這些高速的輸入輸出結(jié)構(gòu)支持存儲(chǔ)器和總線結(jié)構(gòu)的多種狀態(tài)。每一個(gè)輸入輸出塊(IOBs)有3個(gè)寄存器,這些寄存器既可以作為邊沿觸發(fā)的D型觸發(fā)器也可作為電平敏感的鎖存器,每個(gè)輸入輸出塊都有個(gè)時(shí)鐘信號(hào)為它的3個(gè)寄存器所共享,且每個(gè)寄存器都有自己的時(shí)鐘允許信號(hào)。

在硬件設(shè)計(jì)中,運(yùn)算處理器最重要的指標(biāo)就是運(yùn)算速度,而與速度有關(guān)的參量主要有吞吐量、加解密時(shí)延、單位時(shí)間內(nèi)加解密的次數(shù)。本系統(tǒng)采用的XC2S200具有可配置邏輯塊數(shù)目(CLBs)豐富,其設(shè)計(jì)的算法比較靈活且加密延時(shí)可調(diào)。系統(tǒng)先將接收解碼的PCM數(shù)據(jù)逐步從FIFO中讀出并送進(jìn)加密處理程序模塊中,同時(shí)FPGA會(huì)將已經(jīng)設(shè)計(jì)好的密文進(jìn)行擴(kuò)展運(yùn)算并通過串行的形式傳送到加密處理程序模塊進(jìn)行運(yùn)算,通過本系統(tǒng)的驗(yàn)證能夠滿足FLASH的數(shù)據(jù)存儲(chǔ)速率要求,能夠?qū)崿F(xiàn)數(shù)據(jù)的加密存儲(chǔ)且丟包率低。

三、基于高速遙測PCM數(shù)據(jù)的AES加密存儲(chǔ)系統(tǒng)加密數(shù)據(jù)的存儲(chǔ)

本系統(tǒng)加密數(shù)據(jù)的存儲(chǔ)采用SAMSUNG公司的256M×8bit NAND FIASH 芯片K9K2G08UOM固態(tài)存儲(chǔ)器,每片器件2112Mbit,按塊組織劃分為2048塊,每塊分64頁,每頁2K+64字節(jié)。2112字節(jié)的典型編程時(shí)間300ys,128K字節(jié)的典型擦除時(shí)間2ms。它以頁為單位進(jìn)行讀寫,以塊為單位進(jìn)行擦除;命令、數(shù)據(jù)、地址共用同一總線,具有硬件數(shù)據(jù)保護(hù)功能。系統(tǒng)采用FPGA進(jìn)行FLASH的硬件控制,以內(nèi)部的存儲(chǔ)控制模塊實(shí)現(xiàn)對FLASH的讀寫、擦除和外部FIFO的讀操作命令。同時(shí)系統(tǒng)合理的調(diào)整加密與數(shù)據(jù)存儲(chǔ)的時(shí)間差,能夠進(jìn)行數(shù)據(jù)的實(shí)時(shí)存儲(chǔ)。為了便于后續(xù)軟件對數(shù)據(jù)的解密處理,系統(tǒng)采用編幀的方式完成。

小知識(shí)之FPGA

FPGA(Field-Programmable Gate Array),即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。