王紅娟
(河南農業(yè)職業(yè)學院,河南 鄭州 451450)
計算機網(wǎng)絡的飛速發(fā)展將人類帶入了信息時代。透明的網(wǎng)絡傳輸使人們的工作更方便、高效,但同時也帶來了許多信息安全問題。隨著計算機網(wǎng)絡的迅速發(fā)展,如何保證網(wǎng)絡信息的安全傳輸已成為亟待解決的問題,而如何保證網(wǎng)絡信息的安全傳輸又是一個重要課題。通過分析計算機網(wǎng)絡安全與密碼技術,認為密碼技術是信息安全技術中的一項基本技術[1]。
對稱加密算法的加密秘鑰和解密相似,鍵值為單鍵。采用組對稱數(shù)據(jù)進行64位加密。它的鍵長度是56位(第八位是奇偶性的)。按鍵數(shù)可以是任意數(shù)量的56位,并且可以隨時更改。DES加密過程如圖1所示,在DES加密過程中,極少有弱密鑰容易被破解,而且可以輕松避免。保密依賴于關鍵詞。1998年7月,EFF使用了一臺價值250 000美元的計算機,這臺計算機可以在56 h里解碼56位密匙。盡管DES加密算法已被破譯,但它仍在使用,如對聊天信息進行加密。因為破譯密鑰很費時,所以只要經(jīng)常更換密鑰,就可以保證信息傳輸?shù)陌踩院屯暾訹2]。

圖1 DES加密過程
公鑰加密也稱為非對稱加密算法。加密的密鑰與解密的密鑰不同,很難從一個密鑰派生出另一個密鑰。迪菲和赫爾曼在1976年提出了密碼學劃時代的發(fā)展方向,數(shù)學理論開始影響著網(wǎng)絡安全的密碼技術。公鑰加密過程如圖2所示。

圖2 公鑰加密過程
電子簽字指的是數(shù)字簽字,它和數(shù)字簽字一樣有效。如圖3所示。數(shù)字簽名始于1976年,簽署電子文件之后即不可否認。相對于公開密鑰加密算法,它可以保證網(wǎng)絡的不可抵賴性,這就需要每一個用戶都能方便地生成自己的簽名,并方便地驗證誰的簽名是正確的,因此必須對發(fā)送方密鑰進行保護[3]。對數(shù)字簽名進行仲裁需要可信的第三方,教務處也是如此,畢業(yè)證書由學校與用人單位簽字蓋章后生效。RSA、ECC以及ELGmal等是常用的數(shù)字簽名算法[4]。

圖3 數(shù)字簽字過程
橢圓曲線的一組參數(shù)分別描述了有限域、基點P以及n階橢圓曲線。為了讓ECDLP能夠抵抗所有的已知攻擊,應該選擇相應參數(shù),同時在安全和實現(xiàn)性的基礎上還有其他的限制[5]。一般而言,參數(shù)組是由一組用戶共享的,在某些應用程序中可以為每個用戶單獨設置參數(shù)組。無論是質域還是二進制域T,這些參數(shù)都一樣,它們沒有什么不同[6]。
為了防止對特殊類型橢圓曲線的攻擊,本文隨機選擇滿足可分量大的E(Fq)橢圓曲線。這保證了橢圓曲線可以隨機生成,用戶不會通過構造具有潛在弱點的曲線來竊取私鑰,但有時隨機生成這樣的線條要花費很長時間,使用NIST提供的安全橢圓曲線參數(shù)。此外,橢圓曲線密碼系統(tǒng)還采用了大量的乘法、大數(shù)取模、模乘、模加、模逆以及模冪等基本運算。大數(shù)模的乘法屬于整型域運算,大數(shù)模的乘法、加法、模冪屬于有限域運算,而點加和點乘屬于橢圓曲線的點加群上的運算。
根據(jù)上文方法,取適當橢圓曲線域參數(shù),設橢圓曲線的域參數(shù)T=(P.a.b.G.n.h),點G(x,y)是在橢圓曲線上Ep(a,b)上選一點,G的階為n(n為一個大素數(shù))。在(1,n-1)間隨機確定一個整數(shù)Ks,計算Kp=KsG,且Kp為橢圓曲線Ep(a,b)上的一點,由此就確定了密鑰對(Ks,Kp)。其中,Ks為私鑰,Kp為公匙。換而言之,橢圓曲線是一種思想,將這種思想應用于密碼系統(tǒng)需定義密算法。橢圓曲線密碼體制基于曲線上點群離散對數(shù)問題,在基礎有限上離散對數(shù)問題的公匙密碼體制中,Gamal和DSA算法是一種成熟的基于有限對數(shù)問題的公鑰密碼體制算法。通過分析ELGamal、DSA算法及橢圓曲線理論,將ELGamal與DSA移植到橢圓曲線上,得到了一個基于ELGamal與DSA算法的加密解密方案[7]。
MD5(Message Digest Algorithm 5)由麻省理工學院Rivest教授對MD4加以改良而設計形成。其功能是在使用數(shù)字簽名軟件對私有密鑰進行簽名之前,將大量信息壓縮成安全格式(任意長度的字節(jié)將被轉換成一定長度的大整數(shù))。因為Rivest最初設計的主要思想是基于32位處理器的系統(tǒng)結構,所以MD5中的所有動作都是基于32位的。MD5在MD4的基礎上增加了“安全-袋子”的概念。雖然MD5比MD4慢一點,但是更安全。MD5處理512位分組的輸入信息,每組分成16個32位子分組。
算法的輸出由4個32位分組組成,通過對4個32位分組進行串聯(lián)可以得到128位散列值。對于MD5算法,首先需要對信息進行填寫,使字節(jié)長度對512求余的結果等于448。因此,信息的字節(jié)長度將擴展到n×512+448,即(n×64+56) bit,n是正整數(shù)。填寫方法如下,在信息后填一個1、無數(shù)個0,直到滿足上述條件才可停止用零填充信息。然后,在該結果后面附加以64位二進制表示的填充前信息長度。經(jīng)過這兩個處理步驟,當前信息字節(jié)長度為n×512+448+64=(n+1)×512,長度為512的整數(shù)倍,以此滿足后面處理中對信息長度的要求。
在MD5中有4個32位的整型參數(shù),分別為a=0x01234567、b=0x89abcdef、c=0xfedcba98以及d=0x76543210。在設定4個連結變數(shù)時,算法便開始執(zhí)行四輪運算。循環(huán)的次數(shù)是信息中512位信息分組的數(shù)目。將上面4個鏈接變量復制到另外4個變量中,主循環(huán)有4輪(MD4只有3輪),每輪循環(huán)都很相似。第一輪進行16次操作,每次操作對a、b、c以及d中的其中3個作一次非線性函數(shù)運算,然后將所得結果加上第四個變量,再將所得結果向右環(huán)移一個不定的數(shù),并加上a、b、c以及d中的一個[8]。
分組密碼是將消息作為數(shù)據(jù)塊進行處理(加密或解密)。一般來說,當大多數(shù)消息(如一條消息)長度大于分組密碼長度時,長消息被分成一組連續(xù)的消息,每組密碼每次處理一個。在分組密碼算法的基礎上設計了多種不同的運算方法。此操作模式提供了一些理想的密文分組功能,如增加分組密碼算法的不確定性(隨機性)、將明文消息添加到任意長度(因此密文的長度不必與相應的明文長度相關)、錯誤傳播控制以及密鑰流生成密碼流等[9]。常用的模式有電碼本模式(Electronic Codebook Book,ECB)、密碼分組鏈接模式(Cipher Block Chaining,CBC)、計算器模式(Counter,CTR)、密碼反饋模式(Cipher FeedBack,CFB)以及輸出反饋模式(Output Feed Back,OFB)。CBC操作模式是一種通用的數(shù)據(jù)加密分組密碼算法,在該模式下,以n位形式輸出一系列數(shù)據(jù)。區(qū)塊鏈是相互連接的,因此每個區(qū)塊不能僅僅依賴于相應的原始區(qū)塊,還必須依賴于先前的區(qū)塊[10]。
本文結合當前先進的加密技術設計了一套網(wǎng)絡文件加密系統(tǒng),為網(wǎng)絡文件的安全傳輸提供了基本模式和應用基礎。由于越來越多地關注網(wǎng)絡文件的安全傳輸,可考慮將系統(tǒng)嵌入到Windows操作系統(tǒng)。基于Windows系統(tǒng),可用Java等語言或適當?shù)姆椒ň帉懘a,使系統(tǒng)具有跨平臺性,便于實際應用和系統(tǒng)移植。此外,系統(tǒng)認證、完整性檢查、加密以及信任信息系統(tǒng)技術結合現(xiàn)代防火墻過濾技術和VPN通信環(huán)境構建一個網(wǎng)絡安全體系,具有對計算機網(wǎng)絡中信息的加密、監(jiān)視以及檢測等功能。此外,添加文件下載模塊,以便向用戶提供可直接下載的加密文件,使系統(tǒng)人性化,便于推廣。