新聞中心

EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > 基于IDT75K62100 芯片的硬件控制庫(kù)設(shè)計(jì)

基于IDT75K62100 芯片的硬件控制庫(kù)設(shè)計(jì)

作者: 時(shí)間:2009-06-17 來(lái)源:網(wǎng)絡(luò) 收藏

1 前言

本文引用地址:http://2s4d.com/article/158039.htm

針對(duì)Internet 的安全需要,為了給IPV4 和IPV6 數(shù)據(jù)報(bào)提供高質(zhì)量的、可互操作的、密碼學(xué)的安全性,Internet 工程任務(wù)組(IETF)頒布了IP 層安全標(biāo)準(zhǔn)IPSec。IPSec 在IP 層對(duì)數(shù)據(jù)包進(jìn)行高強(qiáng)度的安全處理,提供包括訪問(wèn)、無(wú)連接的完整性、數(shù)據(jù)源認(rèn)證、抗重播(replay)保護(hù)(序列完整性(sequence integrity)的一個(gè)組成部分)、保密性和有限傳輸流保密性在內(nèi)的服務(wù)。這些服務(wù)是IP 層的,提供對(duì)IP 及其上層協(xié)議的保護(hù)。

對(duì)于IPSec 數(shù)據(jù)流處理而言,有兩個(gè)必要的數(shù)據(jù)庫(kù):安全策略數(shù)據(jù)庫(kù)() 和安全關(guān)聯(lián)數(shù)據(jù)庫(kù)()。 指定了用于到達(dá)或者源自特定主機(jī)或網(wǎng)絡(luò)的數(shù)據(jù)流的策略,而 則包含了活動(dòng)的SA 參數(shù)。在啟動(dòng)IPSec 保護(hù)的源和目的之間,都需要設(shè)置單獨(dú)的輸入和輸出 。

經(jīng)受IPSec 保護(hù)的節(jié)點(diǎn)的通信流,無(wú)論是輸入還是輸出都必須查詢(xún)SPD。SPD 包含一個(gè)策略條目的有序列表,每個(gè)條目里又包含多個(gè)選擇符,輸入輸出數(shù)據(jù)流就是通過(guò)和這些選擇符比較來(lái)決定是否進(jìn)行安全保護(hù)。IPSec 允許的選擇符有目的IP 地址,源IP 地址,傳輸層協(xié)議,系統(tǒng)名和用戶(hù)ID。目的和源IP 地址可以是一個(gè)主機(jī)地址,廣播地址,單播地址,任意播地址,地址范圍,地址加子網(wǎng)掩碼或者通配地址;系統(tǒng)名和用戶(hù)ID 可以是完整的DNS 名或E-mail 地址。SPD 中的條目決定了處理通信流的粒度,策略可能規(guī)定與某特定的SA 或SA 束對(duì)應(yīng)的IPSec 服務(wù)應(yīng)該應(yīng)用到任何源自任何源或者去往任何目的地的所有通信流,策略也可能規(guī)定應(yīng)該特定的選擇符來(lái)決定不同SA 或SA 束的應(yīng)用??傊?,SPD 在通過(guò)一個(gè)IPSec 系統(tǒng)的所有通信中發(fā)揮著非常重要的作用。為了在保證安全強(qiáng)度的前提下,提高IPSec 保護(hù)節(jié)點(diǎn)上的流處理速度,本文提出了一種采用 實(shí)現(xiàn)快速的SPD 與SAD 數(shù)據(jù)庫(kù)的思想。

2 SPD 與SAD 結(jié)構(gòu)

安全模塊的初衷就是為了在IPV6 路由器中對(duì)特定的數(shù)據(jù)流實(shí)現(xiàn)高速的IPSec 安全保護(hù),這就使得SPD 和SAD 的高速查找成為一個(gè)很關(guān)鍵的問(wèn)題,因?yàn)閷?duì)每一個(gè)包進(jìn)行IPSec 處理時(shí),都必須查找SPD 和SAD 以獲取相應(yīng)的處理策略,如果查找速度慢的話,將達(dá)不到高速的性能要求。數(shù)據(jù)庫(kù)可以用軟件來(lái)組織,也可以依托來(lái)實(shí)現(xiàn),為了提高查找速度,我們使用硬件來(lái)做數(shù)據(jù)庫(kù)。目前支持高速查找的硬件主要有兩種:基于邏輯算法的SRAM 技術(shù)和基于半導(dǎo)體器件(Content Addressable Memory, 內(nèi)容尋址寄存器)技術(shù)。常用的隨機(jī)存儲(chǔ)器通過(guò)輸入地址來(lái)返回該地址所對(duì)應(yīng)的數(shù)據(jù)信息,而 只需要輸入關(guān)鍵字的內(nèi)容就會(huì)將此關(guān)鍵字與 中所有表項(xiàng)同時(shí)進(jìn)行比較,最后返回匹配表項(xiàng)在CAM 中對(duì)應(yīng)的地址信息。CAM 可以在一個(gè)硬件時(shí)鐘周期內(nèi)完成關(guān)鍵字的精確匹配查找,目前速度可達(dá)到266Mpps 。

CAM 雖然有很多優(yōu)勢(shì),但在本模塊中如果都采用CAM 來(lái)作為數(shù)據(jù)庫(kù),則一方面代價(jià)太高,因?yàn)檩斎胩幚砗洼敵鎏幚砀餍枰獌蓚€(gè)數(shù)據(jù)庫(kù)(SPD和SAD), 這樣一共需要四個(gè)CAM,而CAM 價(jià)格較為昂貴;另一方面將SPD 和SAD 分別設(shè)在兩塊CAM 中,這樣每處理一包需要進(jìn)行兩次查找,影響了速度。為此,我們特別研究了一種能夠?qū)崿F(xiàn)快速查找的數(shù)據(jù)庫(kù),這種結(jié)構(gòu)采用CAM 和SRAM 相結(jié)合的方式。這種結(jié)構(gòu)一方面在一定程度上降低了成本,另一方面解決了二次查找的問(wèn)題。

這種的組成原理是將SPD 設(shè)置在CAM 中,而將SAD 設(shè)置在SRAM 中,然后將CAM 和SRAM 級(jí)聯(lián)。這樣,在進(jìn)行IPSec 處理時(shí),先在CAM 中查SP,如果沒(méi)有找到相應(yīng)的SP, 則查找結(jié)束;如果查到了相應(yīng)的SP,則由CAM 將對(duì)應(yīng)的SA 在SRAM 中的存放地址送給SRAM, 然后從SRAM 中對(duì)應(yīng)地址將SA 取出送FPGA, 這樣避免了再由FPGA 對(duì)SAD 進(jìn)行查詢(xún)。這種數(shù)據(jù)庫(kù)的查找方法還引入了流水機(jī)制,即CAM 查到了前一報(bào)文的SP 后,將匹配地址送給SRAM,在SRAM 讀該地址對(duì)應(yīng)的SA 的同時(shí),CAM 可進(jìn)行對(duì)下一報(bào)文的SP 的查找。該查找方法中,CAM 與SRAM 的連接如圖一所示。

圖 1 :CAM 與SRAM 連接圖

3 75K62100 的內(nèi)部結(jié)構(gòu) 實(shí)際設(shè)計(jì)中,CAM 選用IDT 公司的75K62100 ,其內(nèi)部邏輯結(jié)構(gòu)與主要外部總線如圖二所示。從圖中可以看出,該型號(hào)CAM 內(nèi)部主要由配置電路,指令譯碼,輸入輸出數(shù)據(jù)緩存,比較寄存器和數(shù)據(jù)存儲(chǔ)區(qū)等單元組成,外部總線有指令總線,數(shù)據(jù)總線和索引總線,另外還包括一條匹配標(biāo)志信號(hào)線。該CAM 的數(shù)據(jù)存儲(chǔ)區(qū)的容量為18M, 經(jīng)過(guò)配置電路配置,可以工作在256k×72bit (表項(xiàng)深度為256K, 寬度為72bit)、128K×144bit 、72K×288bit 等模式下。指令總線寬20 位,配置指令,讀寫(xiě)指令從該總線輸入。數(shù)據(jù)總線寬72 位, 輸入數(shù)據(jù)時(shí),先將數(shù)據(jù)寫(xiě)入數(shù)據(jù)輸入輸出緩存區(qū),在內(nèi)部地址譯碼下,再將數(shù)據(jù)寫(xiě)入數(shù)據(jù)存儲(chǔ)區(qū)或比較寄存器。比較后得到匹配項(xiàng)的地址由24 位索引總線送出,數(shù)據(jù)經(jīng)輸入輸出緩存器從數(shù)據(jù)總線輸出,并由匹配標(biāo)志信號(hào)線給出匹配狀態(tài)。


上一頁(yè) 1 2 3 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉