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

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

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

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