【正文】
稽留,若符事聞,泄告者,皆誅之。敵雖圣智,莫之能識。為之奈何?”太公曰:“諸有陰事大慮,當用書,不用符。書皆一合而再離,三發(fā)而一知。三發(fā)而一知者,言三人,人操一分,相參而不相知情也。敵雖圣智,莫之能識。至于陰書則運用了移位法,把書一分為三,分三人傳遞,要把三份書重新拼合才能獲得還原的信息。(3)第三階段: 1976年以后,公鑰密碼學主要特點:公鑰密碼使得發(fā)送端和接收端“無密鑰傳輸?shù)谋C芡ㄐ拧背蔀榭赡?。?)第二階段:機械階段,以機械密碼機或電動密碼機完成加解密作業(yè)。(4)第四階段:計算機密碼,以計算機密碼軟件進行算法加解密。(1)機密性:僅有發(fā)送方和指定的接收方能夠理解傳輸?shù)膱笪膬热荨?2)鑒別:發(fā)送方和接收方都應該能證實通信過程所涉及的另一方, 通信的另一方確實具有他們所聲稱的身份。(3)完整性:即使發(fā)送方和接收方可以互相鑒別對方,但他們還需要確保其通信的內容在傳輸過程中未被改變。數(shù)據(jù)加密(Encryption)是將明文信息(Plaintext)采取數(shù)學方法進行函數(shù)轉換成密文(Ciphertext),只能特定接受方才能將其解密(Decryption)還原成明文的過程。 (2)加密后的報文,也稱密文。 (4)加密解密的密鑰。接收方在收到密文后,用解密密鑰將密文解密,恢復為明文?;诿荑€的算法通常有兩類:對稱算法和公開密鑰算法(非對稱算法)。在大多數(shù)對稱算法中,加解密的密鑰是相同的。對稱算法的加解密過程如下圖公開密鑰算法(非對稱算法)的加密的密鑰和解密的密鑰不同,而且解密密鑰不能根據(jù)加密密鑰計算出來,或者至少在可以計算的時間內不能計算出來。加密密鑰叫做公開密鑰(簡稱公鑰),解密密鑰叫做私人密鑰(簡稱私鑰)。RSA對數(shù)據(jù)的加密解密算法過程如圖 RSA算法1976年,Diffie和Hellman在文章“密碼學新方向(New Direction in Cryptography)”中首次提出了公開密鑰密碼體制的思想,1977年,Rivest、Shamir和Adleman三個人實現(xiàn)了公開密鑰密碼體制,現(xiàn)在稱為RSA公開密鑰體制,它是第一個既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法。但RSA的安全性一直未能得到理論上的證明。RSA算法原理RSA原理可以簡單描述如下:216。216。216。216。216。216。RSA算法的安全性RSA的安全性依賴于大數(shù)分解,但是否等同于大數(shù)分解一直未能得到理論上的證明,因為沒有證明破解 RSA就一定需要作大數(shù)分解。目前, RSA 的一些變種算法已被證明等價于大數(shù)分解?,F(xiàn)在,人們已能分解多個十進制位的大素數(shù)。速度一直是RSA的缺陷。RSA算法是第一個能同時用于加密和數(shù)字簽名的算法,也易于理解和操作。RSA算法如圖 DES算法美國國家標準局1973年開始研究除國防部外的其它部門的計算機系統(tǒng)的數(shù)據(jù)加密標準,于1973年5月15日和1974年8月27日先后兩次向公眾發(fā)出了征求加密算法的公告。DES算法的安全性:DES算法正式公開發(fā)表以后,引起了一場激烈的爭論。,它基于并行的密鑰搜索芯片,此芯片每秒測試5107個密鑰,5760個這樣的芯片組成的系統(tǒng)需要10萬美元,如果利用10個這樣的系統(tǒng),費用是100萬美元。1997年1月28日,美國的RSA數(shù)據(jù)安全公司在互聯(lián)網(wǎng)上開展了一項名為“密鑰挑戰(zhàn)”的競賽,懸賞一萬美元,破解一段用56比特密鑰加密的DES密文。一位名叫Rocke Verser的程序員設計了一個可以通過互聯(lián)網(wǎng)分段運行的密鑰窮舉搜索程序,組織實施了一個稱為DESHALL的搜索行動,成千上萬的志愿者加入到計劃中,在計劃實施的第96天,即挑戰(zhàn)賽計劃公布的第140天,1997年6月17日晚上10點39分,美國鹽湖城Inetz公司的職員Michael Sanders成功地找到了密鑰,在計算機上顯示了明文:“The unknown message is: Strong cryptography makes the world a safer place”。其中Key為8個字節(jié)共64位,是DES算法的工作密鑰;Data也為8個字節(jié)64位,是要被加密或被解密的數(shù)據(jù);Mode為DES的工作方式有兩種:加密或解密。DES算法的實現(xiàn)步驟DES算法實現(xiàn)加密需要三個步驟:第一步:變換明文。第二步:按照規(guī)則迭代。f和Ki將在后面介紹。加密過程如圖所示 DES算法的應用誤區(qū):DES算法具有比較高安全性,到目前為止,除了用窮舉搜索法對DES算法進行攻擊外,還沒有發(fā)現(xiàn)更有效的辦法。第四章 數(shù)據(jù)加密技術的常用方法在傳統(tǒng)上,我們有幾種方法來加密數(shù)據(jù)流。最好的加密算法對系統(tǒng)性能幾乎沒有影響,并且還可以帶來其他內在的優(yōu)點。又如,dbms的一些軟件包總是包含一些加密方法以使復制文件這一功能對一些敏感數(shù)據(jù)是無效的,或者需要用戶的密碼。幸運的是,在所有的加密算法中最簡單的一種就是“置換表”算法,這種算法也能很好達到加密的需要。加密程序和解密程序都需要一個這樣的“置換表”。cpu系列就有一個指令“置換表”在硬件級來完成這樣的工作。更進一步講,這種加密算法對于黑客破譯來講是相當直接的,只要找到一個“置換表”就可以了。對這種“置換表”方式的一個改進就是使用2個或者更多的“置換表”,這些表都是基于數(shù)據(jù)流中字節(jié)的位置的,或者基于數(shù)據(jù)流本身。通過使用更多的“置換表”,并且按偽隨機的方式使用每個表,這種改進的加密方法已經(jīng)變得很難破譯。與使用“置換表”相類似,“變換數(shù)據(jù)位置”也在計算機加密中使用。從輸入中讀入明文放到一個buffer中,再在buffer中對他們重排序,然后按這個順序再輸出。這種方法總是和一些別的加密算法混合使用,這就使得破譯變得特別的困難,幾乎有些不可能了??梢宰?yōu)閘isten,但所有的字母都沒有變化,沒有增加也沒有減少,但是字母之間的順序已經(jīng)變化了。如果我們把一個字或字節(jié)在一個數(shù)據(jù)流內做循環(huán)移位,使用多個或變化的方向(左移或右移),就可以迅速的產生一個加密的數(shù)據(jù)流。如果再使用偽隨機的方法,這涉及到要產生一系列的數(shù)字,我們可以使用fibbonaci數(shù)列。在一些情況下,我們想能夠知道數(shù)據(jù)是否已經(jīng)被篡改了或被破壞了,這時就需要產生一些校驗碼,并且把這些校驗碼插入到數(shù)據(jù)流中。但是感染計算機程序的病毒才不會在意這些數(shù)據(jù)或程序是否加過密,是否有數(shù)字簽名。因此,在一些反病毒或殺病毒軟件中一定要使用加密技術。對于每一個數(shù)據(jù)塊,它使用位循環(huán)移位和xor操作來產生一個16位或32位的校驗和這種方式很久以來就應用于文件的傳輸,例如但是,基于標準crc算法的一種修改算法對于發(fā)現(xiàn)加密數(shù)據(jù)塊中的錯誤和文件是否被病毒感染是很有效的。這又分為兩種方式:對稱密鑰算法和非對稱密鑰算法。非常著名的pgp公鑰加密以及rsa加密方法都是非對稱加密算法。從數(shù)學理論上講,幾乎沒有真正不可逆的算法存在。在一些情況下,對于每一種操作,我們可以得到一個確定的值,或者該操作沒有定義(比如,除數(shù)為0)。因此,要想破譯非對稱加密算法,找到那個唯一的密鑰,唯一的方法只能是反復的試驗,而這需要大量的處理時間。即使從一個公鑰中通過因數(shù)分解可以得到私鑰,但這個運算所包含的計算量是非常巨大的,以至于在現(xiàn)實上是不可行的。這就使得一些現(xiàn)實中加密算法都基于rsa加密算法。這個對稱算法的密鑰是隨機產生的,是保密的,因此,得到這個密鑰的唯一方法就是使用私鑰來解密。利用rsa公鑰,使用rsa算法加密這個密鑰“12345”,并把它放在要加密的數(shù)據(jù)的前面(可能后面跟著一個分割符或文件長度,以區(qū)分數(shù)據(jù)和密鑰),然后,使用對稱加密算法加密正文,使用的密鑰就是“12345”。這樣就使得一個可靠的經(jīng)過高效加密的數(shù)據(jù)安全地傳輸和解密。下面詳細的介紹這個算法:使用一系列的數(shù)字(比如說128位密鑰),來產生一個可重復的但高度隨機化的偽隨機的數(shù)字的序列。把256個隨機數(shù)放在一個距陣中,然后對他們進行排序,使用這樣一種方式(我們要記住最初的位置)使用最初的位置來產生一個表,隨意排序的表,表中的數(shù)字在0到255之間。但是,下面也提供了一些原碼(在下面)是我們明白是如何來做的。讓這個隨機數(shù)產生器接著來產生這個表中的其余的數(shù),以至于每個表是不同的。technique”技術來產生解碼表。a映射到b,那么b一定可以映射到a,所以b[a[n]]n.(n是一個在0到255之間的數(shù))。使用這個方法,已經(jīng)可以產生這樣的一個表,表的順序是隨機,所以產生這256個字節(jié)的隨機數(shù)使用的是二次偽隨機,使用了兩個額外的16位的密碼。前一個字節(jié)密文是這個256字節(jié)的表的索引。假定這個表是256*256的