freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

linux下的網(wǎng)絡(luò)層加密解密的實現(xiàn)—免費計算機畢業(yè)設(shè)計論文-文庫吧資料

2024-12-01 16:50本頁面
  

【正文】 file 內(nèi)容為: ifneq ($(KERNELRELEASE),) 第 15 頁 共 23 頁 objm := else KERNELDIR ?= /lib/modules/$(shell uname r)/build PWD := $(shell pwd) default: $(MAKE) C $(KERNELDIR) M=$(PWD) modules endif 分別編寫模塊 insertlist、 deletelist、 showlist、和 repdeskey: ? insertlist 主要實現(xiàn)讀取文件 /home/ 中的點分十進制 IP 地址插入 list 中,如果list 中已經(jīng)存在的 IP 地址則不需再插入; ? deletelist 主要實現(xiàn)讀取文件 /home/ 中的點分十進制 IP 地址,并刪除 list中與之相同的 IP 地址; ? showlist 主要實現(xiàn)查看 list 中的 IP 地址; ? repdeskey 主要實現(xiàn)修改 DES 加密算法的密匙。 module_exit(functiony)。模塊是 Linux 系統(tǒng)為防止內(nèi)核不斷擴大而設(shè)計的一種體系,它能運行于內(nèi)核態(tài),可以自由加載和刪除,增加了系統(tǒng)的靈活性。但是按點分段從右到左轉(zhuǎn)換,以保證于套接字緩存中的目的 IP 地址方式一致; ? void init_iplist_byfile(struct file *fp, struct iplist *list),根據(jù)文件對 list 進行插入操作。 定義對文件的操作,文件部分的函數(shù)均聲明為模塊可用: ? struct file *list_fopen(const char *filename, int flags, int mode),定義在內(nèi)核中打開文件的操作; ? void list_fclose(struct file *filp),定義對文件的關(guān)閉操作; ? int list_fread(char *buf, int len, struct file *filp),定義對文件的讀操作。這樣可以減少查詢鏈表的時間; ? int query_iplist(struct iplist *list, unsigned int ipaddr)。 首先定義直接對鏈表操作的函數(shù) : ? void init_iplist(struct iplist **list),初始化鏈表, EXPORT_SYMBOL(init_iplist)聲明為模塊可用; ? void insert_iplist(struct iplist *list, unsigned int ipaddr),鏈表插入操作函數(shù),插入位置為緊接頭部之后。 模塊部分的設(shè)計與實現(xiàn) 由于模塊主要是針對鏈表和文件的操作,為了能夠使多個模塊都能使用到這些函數(shù),采取把一些主要函數(shù)定義在內(nèi)核中。 通過模塊對用戶文件 /home/ 和 /home/ 讀取實現(xiàn)對 list 的插入和刪除。 定義一個全局變量: struct iplist *list。 struct iplist *next。該鏈表在內(nèi)核運行期間始終有效,并聲明為模塊可讀寫。 對于如何判斷一個包是否應(yīng)該加密,設(shè)計為判斷目的 IP 地址。 對于 IP 包的加密狀況,這里采用設(shè)置加密位來標(biāo)志該 IP 包是否被加密,而由于 IP 頭中的 TOS 字段作為優(yōu)先權(quán)的高 3 位已經(jīng)廢棄,為了減少內(nèi)核的大小,采取把 TOS 最高位置 1 作為加密標(biāo)志。 4 系統(tǒng)的 設(shè)計與 實現(xiàn) 系統(tǒng)的總體設(shè)計 內(nèi)核嵌入部分主要實現(xiàn)對套接字緩存的數(shù)據(jù)即 skbuffdata 進行加密、解密。依此類推,便可得到 K K ......、 K15,不過需要注意的是, 16 次循環(huán)左移對應(yīng)的左移位數(shù)要依據(jù)下述規(guī)則進行: 循環(huán)左移 位數(shù) 1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1 以上介紹了 DES 算法的加密過程。故 Key 實際可用位數(shù)便只有 56 位。 現(xiàn)設(shè)輸入為: D= D1D2D3D4D5D6 令:列= D2D3D4D5 行= D1D6 然后在 S1 表中查得對應(yīng)的數(shù),以 4 位二進制表示,此即為選擇函數(shù) S1 的輸出。逆置換正好是初始置的逆運算,例如,第 1 位經(jīng)過初始置換后,處于第 40 位,而通過逆置換,又將第 40 位換回到第 1 位,其逆置換規(guī)則如下表所示: 40,8,48,16,56,24,64,32,39,7,47,15,55,23,63,31, 38,6,46,14,54,22,62,30,37,5,45,13,53,21,61,29, 36,4,44,12,52,20,60,28,35,3,43,11,51,19,59,27, 34,2,42,10,50,18,58 26,33,1,41, 9,49,17,57,25, 放大換位表 32, 1, 2, 3, 4, 5, 4, 5, 6, 7, 8, 9, 8, 9, 10,11, 12,13,12,13,14,15,16,17,16,17,18,19,20,21,20,21, 22,23,24,25,24,25,26,27,28,29,28,29,30,31,32, 1, 單純換位表 16,7,20,21,29,12,28,17, 1,15,23,26, 5,18,31,10, 2,8,24,14,32,27, 3, 9,19,13,30, 6,22,11, 4,25, 在 f(Ri,Ki)算法描述圖中, S1,S2...S8 為選擇函數(shù),其功能是把 6bit 數(shù)據(jù)變?yōu)?bit 數(shù)據(jù)。 經(jīng)過 16 次迭代運算后。 圖 4 DES 流程圖 第 10 頁 共 23 頁 DES 算法是把 64 位明文輸入塊變成 64 位密文輸出塊,其流程圖如圖 4: 其功能是把輸入的 64 位數(shù)據(jù)塊按位重新組合,并把輸出分為 L0、 R0 兩部分,每部分各長 32 位,其置換規(guī)則見下表: 58,50,12,34,26,18,10,2,60,52,44,36,28,20,12,4, 62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8, 57,49,41,33,25,17, 9,1,59,51,43,35,27,19,11,3, 61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7, 即將輸入的第 58 位換到第一位,第 50 位換到第 2 位, ...,依此類推,最后一位是原來 的第 7 位。這樣,便保證了核心數(shù)據(jù)(如 PIN、 MAC等)在公共通信網(wǎng)中傳輸?shù)陌踩院涂煽啃浴? DES 算法是這樣工作的:如 Mode 為加密,則用 Key 去把數(shù)據(jù) Data 進行加密, 生成 Data 的密碼形式( 64 位)作為 DES 的輸出結(jié)果;如 Mode 為解密,則用 Key 去把密碼形式的數(shù)據(jù) Data 解密,還原為 Data 的明碼形式( 64 位)作為 DES 的輸出結(jié)果。 DES 算法的入口參數(shù)有三個: Key、 Data、 Mode。 1977 年 1 月,美國政府頒布:采納 IBM 公司設(shè)計的方案作為非機密數(shù)據(jù)的正式數(shù)據(jù)加密標(biāo)準(zhǔn)( DES/Data Encryption Standard)。 DES 算法介紹 美國國家標(biāo)準(zhǔn)局 1973 年開始研究除國防部外的其它部門的計算機系統(tǒng)的數(shù)據(jù)加密標(biāo)準(zhǔn),于 1973 年 5 月 15 日和 1974 年 8 月 27 日先后兩次向公眾發(fā)出了征求加密算法的公告。最后計算檢驗和。接著會填充 IP 包的各個字段(版本、包頭長度、 TOS 字段、碎片偏移量、地址級協(xié)議字段)。它們首先會檢查套接字結(jié)構(gòu)中路由。每個函數(shù)針對某項特殊用法進行了定制和優(yōu)化。本地創(chuàng)建的包在處理時與傳入時是完全獨立的。在這里會需要為下一步處理判定傳輸協(xié)議。 Ip_local_deliver()的首要任務(wù)是利用 ip_defrag()組裝那些分片后的包。 最后在 ip_rcv_finish()中, IP 流程走到了一個岔路口:包是去往本地還是被轉(zhuǎn)發(fā): ? 遇到應(yīng)該投遞給本地計算機的單播包或多播包時,則進入ip_local_deliver(); ? 遇到需要轉(zhuǎn)發(fā)的單播包則進入 ip_forward(); ? 遇到需要轉(zhuǎn)發(fā)的多播包則交給 ip_mr_input()處理; 由于這里路徑出現(xiàn)分支,而針對個人計算機,一般不開啟轉(zhuǎn)發(fā)功能,在這里只描述包的本地投寄。接下來,ip_rcv_finish 檢查 IP 頭是否含有選項。然后再把包傳遞給 ip_rcv_finish()。 Ip_rcv()進行一些 IP 協(xié)議工作。 Linux 內(nèi)核中 IP 包流經(jīng)網(wǎng)絡(luò)層時,其 主要途徑如圖 3。因此,路由器可以看作是終端系統(tǒng)的一般化,它還有額外的包轉(zhuǎn)發(fā)功能。也就是說,路由器擁有多塊在本地接口之間轉(zhuǎn)發(fā)包的網(wǎng)絡(luò)適配器。即使有多種網(wǎng)絡(luò)訪問的系統(tǒng)也可以配置成終端系統(tǒng)—— 只要禁用包轉(zhuǎn)發(fā)即可。終端系統(tǒng)的基本屬性是,它們不會轉(zhuǎn)發(fā) IP 包。 ? 終端系統(tǒng): Linux 計算機正常情況下會配置成終端系統(tǒng) —— 它會用作工作站或者服務(wù)器。 包一旦進入了網(wǎng)絡(luò)層,就會有多種退出選擇。這些包主要是新的多播包、大型包的碎片及不含專門有效負(fù)載的 ICMP 包或者 IGMP 包。還有一些其他函數(shù)也能 生成 IP 包。這些是 TCP、 UDP 等協(xié)議用到的包。判定了數(shù)據(jù)鏈路層中的三層協(xié)議后,上層協(xié)議為 IP 的包會傳遞給 ip_rcv()函數(shù)。 Linux 下 IPv4 的實現(xiàn) 對于基于 TCP/IP 協(xié)議實現(xiàn)的網(wǎng)絡(luò)來說, IP 層是完成數(shù)據(jù)傳輸?shù)谋匾獙?,網(wǎng)絡(luò)層以上的包都要經(jīng)過網(wǎng)絡(luò)層。由于為報文頭申請了足夠的空間,所以避免了在報文頭之后對有效數(shù)據(jù)的多次拷貝。當(dāng)應(yīng)用程序向一個套接字傳輸數(shù)據(jù)后,該套接字就創(chuàng)建相應(yīng)的套接字緩存并將有效數(shù)據(jù)的地址存入此結(jié)構(gòu)的變量中。他們構(gòu)成了協(xié)議實例間交換的接口控制信息。它被定義在 include/linux/ 中 ,其結(jié)構(gòu)表示如圖 2: 由圖 2 可見,套接字緩存由兩部分組成: ? 報文數(shù)據(jù):該存儲區(qū)域保存了實際在網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù); ? 管理數(shù)據(jù):當(dāng)一個報文在 Li nux 內(nèi)核中進行處理時,內(nèi)核需要額外的數(shù)據(jù),這些數(shù)據(jù)沒有必要存儲在實際的報文當(dāng)中。它滿足了網(wǎng)絡(luò)協(xié)議對內(nèi)核的存儲器管理能力提出的很多要求。 /*The options start here. */ }。 __u32 saddr。 __u8 protocol。 __u16 frag_off。 __u16 tot_len。 elif defined (__BIG_ENDIAN_BITFIELD) __u8 version:4, ihl:4。因此, IP 的開發(fā)基礎(chǔ)是數(shù)據(jù)報交換原理。 總的來說, IP 實現(xiàn)了如下功能: ? 提供了無連接的、不安全的數(shù)據(jù)報服務(wù); ? 定義了 IP 數(shù)據(jù)報是數(shù)據(jù) 傳輸?shù)幕締卧? ? 定義了 IP 尋址機制; ? 在各種互聯(lián)網(wǎng)絡(luò)之間路由、轉(zhuǎn)發(fā) IP 數(shù)據(jù)報; ? 驗證包的生存期; ? 分片、組裝包; ? 使用 ICMP 輸出錯誤。它為 Inter 以及其他基于 IP 的網(wǎng)絡(luò)上的所有數(shù)據(jù)通信提供了基本服務(wù)。由于這種加密方法不能掩蓋被傳輸消息的源點與終點 , 因此它對于防止攻擊者分析通信業(yè)務(wù)是脆弱的。單個用戶可能會選用這種加密方法 , 以便不影響網(wǎng)絡(luò)上的其他用戶 , 此方法只需要源和目的節(jié)點是保密的即可。端到端加密還避免了其它加密系統(tǒng)所固有的同步問題 , 因為每個報文包均是獨立被加密的 , 所以一個報文包所發(fā)生的傳輸錯誤不會影響后續(xù)的報文包。采用端到端加密 (又稱脫線加密或包加密 ), 消息在被傳輸時到達終點之前不進行解密 , 因為消息在整個傳輸過程中均受到保護 , 所以即使有節(jié)點 被損壞也不會使消息泄露。因此這種方法對于防止攻擊者分析通信業(yè)務(wù)是脆弱的。 然而 ,與鏈路 加密不同 , 節(jié)點加密不允許消息在網(wǎng)絡(luò)節(jié)點以明文形式存在 ,它先把收到的消息進行解密 , 然后采用另一個不同的密鑰進行加密 , 這一過程是在節(jié)點上的一個安全模塊中進行。 節(jié)點加密 盡管節(jié)點加密能給網(wǎng)絡(luò)數(shù)據(jù)提供較高的安全性 , 但它在操作方式上與鏈路加密是類似的:兩者均在通信鏈路上為傳輸?shù)南⑻峁┌踩裕荚谥虚g節(jié)點先對消息進行解密 ,然后進行加密。這樣 , 密鑰分配在鏈路加密系統(tǒng)中就成了一個問題 , 因為每一個節(jié)點必須存儲與其相連接的所有鏈路的加密密鑰 , 這就需要對密鑰進行物理傳送或者建立專用網(wǎng)絡(luò)設(shè)施。然而保證每一個節(jié)點的安全性需要較高的費用 , 為每一個節(jié)點提供加密硬件設(shè)備和一個安全的物理環(huán)境所需要的費用由以下幾部分組成 : 保護節(jié)點物理安全的雇員開銷 , 為確保安全策略和程序的正確執(zhí)行而進行審計時的費用 , 以及為防止安全性被破壞時帶來損失而參加保險的費用。另一方面 , 即使僅一小部分?jǐn)?shù)據(jù)需要進行加密 , 也會使 得所有傳輸數(shù)據(jù)被加密。這就給網(wǎng)絡(luò)的性能和可管理性帶來了副作用。 盡管鏈路加密在計算機網(wǎng)絡(luò)環(huán)境中使用得相當(dāng)普遍 , 但它并非沒有問題。這樣 , 鏈路加密就掩蓋了被傳輸消息的源點與終點。在到達目的地之前 , 一條消息可能要經(jīng)過許多通信鏈路的傳輸。 2 網(wǎng)絡(luò)數(shù)據(jù)加密 技術(shù) 鏈路加密
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1