孔潔 劉楊
【摘 要】信息安全涉及數(shù)學、密碼學、通信等諸多學科,是近些年迅速發(fā)展的的一個學科領域,網絡安全是信息安全的核心。數(shù)據(jù)加密技術被廣泛應用到信息安全的各個領域,它伴隨著信息技術的發(fā)展在不斷發(fā)展。隨著互聯(lián)網的發(fā)展,數(shù)據(jù)加密技術也越來越重要。 數(shù)據(jù)加密是保障數(shù)據(jù)安全的一種方式。通過數(shù)據(jù)加密,可以有效地保證通信線路上的內容不被泄漏,還可以檢驗傳輸數(shù)據(jù)的完整性。目前DES算法得到了廣泛的應用。DES是一種用56位密鑰來加密64位數(shù)據(jù)的方法,本文將重點分析和研究DES算法。
【關鍵詞】數(shù)據(jù)加密 密鑰 DES算法
1數(shù)據(jù)加密的概念
密碼技術是通信雙方按約定的法則進行信息特殊變換的一種保密技術。根據(jù)特定的法則,變明文(Plaintext)為密文(Ciphertext)。從明文變成密文的過程稱為加密(Encryption); 由密文恢復出原明文的過程,稱為解密(Decryption)。
所謂數(shù)據(jù)加密就是對原來的明文文件或數(shù)據(jù)按某種算法進行處理,使其成為不可讀的一段代碼,稱為“密文”,使其只能在輸入相應的密鑰之后才能顯示出本來的內容,這樣可以保護數(shù)據(jù)不被竊取。
2加密的方法
數(shù)據(jù)加密技術一般分為兩大類:對稱加密算法和非對稱加密算法。
對稱式數(shù)據(jù)加密就是加密和解密使用同一個密鑰。
對稱加密算法,交易雙方要使用同樣的鑰匙,安全性得不到保證。用戶每次使用對稱加密算法時,都要使用唯一鑰匙,這會使得收發(fā)雙方所擁有的鑰匙數(shù)量很多,密鑰管理困難,使用成本增高。
非對稱式加密算法需要兩個密鑰進行加密和機密,這兩個密鑰分別是公開密鑰(public key)和私有密鑰(private key)。加密和解密使用不同的加密算法。例如:兩個用戶要加密交換數(shù)據(jù),首先雙方交換公鑰,一方用對方的公鑰加密,另一方用自己的私鑰解密。顯然,采用不對稱加密算法,收發(fā)信雙方在通信之前,收信方必須將自己早已隨機生成的公鑰送給發(fā)信方,而自己保留私鑰。
由于不對稱算法擁有兩個密鑰,因而特別適用于分布式系統(tǒng)中的數(shù)據(jù)加密。
3 DES算法的研究
3.1 DES的工作方式
DES(Data Encryption Standard)是IBM公司開發(fā)的單密鑰對稱加密解密算法。該算法利用56+8奇偶檢驗位(第8,16,24,32,40,48,56,64位)=64位的密鑰對以64位為單位的塊數(shù)據(jù)進行加密和解密。
3.2 DES 算法分析
3.2.1創(chuàng)建 16 個子密鑰
當用戶輸入的密碼長度為0時,使用缺省的64位密碼,當用戶輸入的密碼長度大于8字節(jié)時,前8個字節(jié)為有效的密碼。
在加密時首先設定的密鑰被轉化為64位的二進制,然后按照密鑰置換函數(shù)PC—1(8×7)進行壓縮置換,變成56位,將其置換后的輸出分為前28位C0和后28位D0兩部分。再將2部分進行16輪的循環(huán)左移及壓縮置換PC-2(8×6),最后生成16個48位的密鑰。
(1)壓縮置換到56位。
假設密鑰:K(64位)=133457799BBCDFF1
即:K=00010011 00110100 010110111 01111001 10011011 10111100 11011111 11110001
其中:第8、16、24、32、40、48、56、64位是奇偶校驗位,不參加運算,實際密鑰為65位
對K(64位)用PC—1(8×7)進行置換,去掉8個校驗位,如圖1所示。
圖1:密鑰置換函數(shù)PC—1(8×7)
這樣,由K(64位),得到:
K(56位)=1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111
(2)C0 和D0的分類。經過PC-1置換后,將置換后的輸出分為前28位C0和后28位D0兩部分,如圖2所示。
圖2: 密鑰置換輸出的劃分
C0(28位)=1111000 0110011 0010101 0101111
D0(28位)=0101010 1011001 1001111 0001111
(3)再將兩部分按照表進行16輪的循環(huán)左移,如圖3所示。
圖3循環(huán)左移示意圖:
C1、D1分別為C0和D0左移1位,C3、D3分別為C2、D2左移2位….C16、D16分別為C15、D15左移一位,得到的C1D1-C16D16為:
C1=1110000 1100110 0101010 1011111
D1=1010101 0110011 0011110 0011110
C2=1100001 1001100 1010101 0111111
D2=0101010 1100110 0111100 0111101
…….
(4)壓縮置換到48位。每進行一次循環(huán)左移,就按表進行壓縮置換,得到一個子密鑰。置換后的輸出數(shù)據(jù)位數(shù)要比置換前的位數(shù)要少。原來的8行7列(56位)數(shù)據(jù)被壓縮成8行6列(48位)數(shù)據(jù)。在置換過程中,第9、18、22、25、35、38、43、54位共8位數(shù)據(jù)被丟掉,如圖4所示。
圖4:壓縮置換PC-2
置換過程如下圖5所示:
圖5:子密鑰產生過程
Kn=PC—2(CnDn(56位))
最終得到16個子密鑰,每個48位:
K1=000110 110000 001011 101111 111111 000111 000001 110010
K2=011110 011010 111011 011001 110110 111100 100111 100101
……
K16=110010 110011 110110 001011 000011 100001 011111 110101
3.2.2 數(shù)據(jù)加密
DES算法對固定大小的數(shù)據(jù)塊進行加密和解密操作,不夠64位的數(shù)據(jù)塊需要采用填充機制補到64位。如果該明文串為M=m1m2…m64,明文串經過長度都為48位的16個子密鑰K加密,最后生成長度為64位的密文E。
(1)IP初始置換。
假設有明文M=0123456789ABCDEF,即
M=0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
對M運用IP置換后為:
IP=1100 1100 0000 0000 1100 1111 1111 1111 0000 1010 1010 1111 0000 1010 1010
該64位串被分為左半部分L0和右半部分R0兩部分,各32位,用于f函數(shù)的16輪迭代運算的首次迭代的初始輸入。
L0=1101 1100 0000 0000 1100 1100 1111 1111
R0=1111 0000 1010 1010 1111 0000 1010 1010
(2)數(shù)據(jù)加密:通過將原來的32位數(shù)據(jù)中的某些位重復出現(xiàn)達到擴展的目的。擴展置換通過將32、1、4、5、8、9、12、13、6、17、20、21、24、25、28、29共16位分別放置在兩個位置,從而將32位數(shù)據(jù)擴展成48位。
擴展后的48位與K1進行異或,通過S盒子轉換為32位。
將異或運算后得到的48位數(shù)據(jù)分為8個6位的塊,將每塊通過對應的S盒產生一個4位的輸出。S盒接收6位的輸入,經過置換后輸出4位的數(shù)據(jù)。
輸出結果再通過一個P盒置換產生一個32位的輸出。最后P盒置換的結果與左半部分進行異或運算,再將左右部分交換,再進入下次迭代。
在完成完全相同的16輪運算后,將得到的數(shù)據(jù)和在一起,將L16與R16的位置交換,再經過一個末置換函數(shù)IP-1即可得到64位的密文。
3.2.3 數(shù)據(jù)解密
DES的解密過程和加密過程完全類似,只是將16圈的子密鑰K1、k2….k16的順序顛倒過來,即第一圈用K16,即第二圈用K15,依次類推。
4結語
數(shù)據(jù)安全問題涉及企業(yè)及公司的利益,加強數(shù)據(jù)安全更是迫在眉睫,數(shù)據(jù)安全不僅僅是數(shù)據(jù)加密技術和加密算法,還涉及其他方面的技術與知識:如黑客技術、入侵檢測技術等。因此一個完善的數(shù)據(jù)加密安全保護系統(tǒng),不僅能夠根據(jù)具體需求對安全技術進行有效的取舍,還能對單位的業(yè)務數(shù)據(jù)進行充分的保護。
參考文獻:
[1]William Stallings、白國強.網絡安全基礎:應用于標準(第5版)[M].清華大學出版社,2014.
[2]陽憲惠.網絡化控制系統(tǒng)-現(xiàn)場總線技術(第2版)[M].清華大學出版社,2014.
[3]劉雨棣,雷新穎.計算機控制技術[M].西安交通大學出版社.2013.
[4]陳文革.計算機網絡[M].西安交通大學出版社,2013.
[5]斯特凡諾·巴薩尼.移動Ad Hoc網絡[M].西安交通大學出版社,2012.
[6]賴英旭,楊震,劉靜.網絡安全協(xié)議[M].清華大學出版社,2012.
[7]張堯學,郭國強,王曉春,趙艷標.計算機網絡與Internet教程(第2版)[M].清華大學出版社,2010.
[8]沈鑫剡.計算機網絡工程.清華大學出版社[M].2013.
[9]楊云江,高建瓴,黃斌,李可.網絡工程應用技術.清華大學出版社[M],2012.
[10]張健.密碼學原理及應用技術[M].清華大學出版社,2011.