本文版權歸作者 舞飛的楓葉 & Banner所有。
本版修正了以前版本中幾處描述不嚴謹?shù)膸讉地方。 本文已經制作成電子書,由PDF和CHM2種格式: 下載電子書
制作該文檔的目的是為了方便廣大計算機用戶。在保留本版權信息的前提下,您可以自由地復制、轉載本文檔。但除非有作者書面許可,否則不能將本文檔用于商業(yè)用途。作者Email:JimmyFan#FlagWare.net(#換成@), Banner#FlagWare.net(#換成@), 作者網站: www.FlagWare.net 。
安全在計算機行業(yè)中可能會是個永久的話題。2004年到2005年間,山東大學王小云教授攻破MD5,降低了SHA-1的安全強度,這更是引起了大家的關注。并且,隨著網絡技術的發(fā)展和普及,大家的網絡安全意識也越來越強。因此,在這里對加密和安全的基礎知識做一點入門性質的介紹,以便大家能對這方面有更準確的了解和把握,能更好地保護自己重要數(shù)據的安全。
本文側重密碼方面的基礎知識的介紹。本文一直在逐步修改和完善。 如果哪位朋友在安全方面存在疑惑和問題,歡迎提出來,我們將盡力幫忙尋求解答,并豐富本文的內容,以便能幫助更多的人。如果本文存在問題和錯誤,也歡迎諸位給予批評指正。
1.請大家準備好,開工了 密碼學的方法離我們并不遙遠。它應用很廣泛,在我們日常使用計算機的時候就會經常用到,只不過我們沒有多加留意而已。比如我們啟動Windows的時候,我們要輸入口令,這個口令在系統(tǒng)中就是加密后保存的。在我們上網時,有些網站需要我們建立安全連接,這時也是在密碼算法支持下進行的。在你的IE瀏覽器中,看一下工具->Internet選項->內容->證書,會發(fā)現(xiàn)密碼技術其實早已在后臺默默地為我們工作了。
密碼算法有很多種。包括對稱算法、非對稱算法、消息摘要算法等。對稱加密算法包括DES和AES等;非對稱加密算法包括RSA、DSA、橢圓曲線算法等。
接下來將以逐條解釋基本概念的形式對主要的密碼安全技術做一個簡單的介紹。
2.樸素的密碼 “天王蓋地虎,寶塔鎮(zhèn)河妖……”大家一定在電影里看過土匪對暗號的場面。其實,土匪口中的“黑話”就是一種最樸素的密碼。只不過這種密碼過于簡單,經不起密碼學家的分析,非常容易破譯。
3.凱撒密碼 這是一個古老的加密方法,當年凱撒大帝行軍打仗時用這種方法進行通信,因此得名。它的原理很簡單,其實就是單字母的替換。讓我們看一個簡單的例子:“This is Caesar Code”。用凱撒密碼加密后字符串變?yōu)椤皏jku ku Ecguct Eqfg”?雌饋硭坪跫用艿煤堋鞍踩。可是你可以嘗試一下,把這段很難懂的東西每一個字母換為字母表中前移2位的字母……哦,結果出來了。
凱撒密碼的字母對應關系:
A b c d e f g h i … x y z
C d e f g h I j k … z a b
4.rot13 ROT13是網絡上常見的一種簡單的“加密”方式。它是用字母表里a-m的字符來代替n-z,用n-z的字符來代替a-m字符。它的原理和凱撒密碼非常類似。凱撒密碼移了2位,而ROT13移了13位。ROT13通常作為簡單的手段使得我們的電子信件不能被直接識別和閱讀,也不會被那些匹配程序用通常的方法直接找到。
如"V Ybir lbh!" 這個句子實際上是"I Love you!"。
ROT13字母對應關系:
A b c d e f g h I … x y z
N o p q r s t u v … k l m
明白了嗎?“解密”一下下面的內容: jrypbxr gb jjj.syntjner.arg
5.受限密碼 上面討論的“加密”是非常簡單的,簡單到不用計算機的幫助就能手工破譯,簡單到只能防止3歲的小妹妹偷看你的文件 :-) 。
我們可以把這些算法變得更復雜,引入更多的變換、更多的交叉和擴散 …… 這樣也許會更難破譯些。但是,在這個基礎上變得再復雜,也還跳不出“受限密碼”的范疇。所謂“受限密碼”,是指算法的安全性是建立在算法保密的基礎上的。一旦算法泄漏,所加密的內容也就完全沒有安全性可言了。我們前面討論的算法就是有這個特點的。
算法泄漏的問題使得這類算法的應用范圍受到很大的限制;旧,現(xiàn)在已經沒人用了。
6.現(xiàn)代密碼技術的開始:密鑰與算法分離 受限密碼一旦泄漏了算法,那么所有加密的內容都會曝露在光天化日之下。使用這樣的方法來保護重要信息是很危險的。因此,密碼學家提出了算法和密鑰分離的思想。這是密碼學的一個里程碑。
它的思想是,密碼的安全性取決于一個密鑰,而不是取決于一個算法。每條消息用一個Key加密,只要Key不泄露,消息就是安全的。即使算法公開了,也威脅不到消息的安全性,F(xiàn)代的密碼算法,如3DES,AES等,都是屬于這一類。后面我們將會對這些算法做簡要的介紹。
7.澄清一個觀念:通常沒有絕對的信息安全 在介紹現(xiàn)代的密碼和信息安全技術之前,有必要澄清一個觀念:密碼技術里所提到的信息安全性通常不是絕對的,它是一個相對的范疇。
一位密碼學家曾經這樣評論:如果你想讓你的信息絕對安全的話,你得把你要保密的信息寫下來裝在保險柜里,把保險柜焊死,到太平洋海底某個不為人知的角落挖坑深埋,這樣也許會接近絕對的安全?墒沁@樣的安全是沒有用的,因為這并不能讓需要信息的人得到它。所以,這種“安全”是沒有用的。實際上,這不能叫做“信息安全”,把它叫做“信息隱藏”也許更為合適。
我們所討論的信息安全,是有使用價值的信息安全。這種安全是相對的安全。
不過“相對安全”并不意味著不安全。我們日常生活中用的鎖其實也是相對的安全。事實上,密碼算法的安全強度要比平常的鎖的安全強度高出很多倍。
8.相對的安全 在數(shù)學家香農(Claude E.Shanon)創(chuàng)立的信息論中,用嚴格的數(shù)學方法證明了這么一個結論:一切密碼算法,除了一次一密以外,在理論上都是可以破解的。這些密碼算法,包括現(xiàn)在的和過去的,已知的和未知的,不管它多么復雜、多么先進,只要有足夠強大的計算機,有足夠多的密文,一定可以破譯。
那么就產生了這樣一個問題:既然這樣,那密碼還有什么用呢?
這就是為什么我們要討論相對安全的原因。
前面提到了,一切密碼,理論上都是可以破譯的。但是,只有在擁有足夠強大的計算機的情況下才有可能破譯。在實際上,也許并不存在這么強的計算機。如果破譯一個算法需要現(xiàn)在最強的計算機運算幾百年,那么這樣的算法即使理論上可以破譯,在實踐中也還是有實用價值的。
因此,我們可以這樣理解相對安全的觀念:假如一條信息需要保密10年,如果要花20年的時間才能破解它,那么信息就是安全的。否則就不安全。
在現(xiàn)實中,能獲得的計算能力在一定程度上與付出的經濟代價成比例。因此,也可以從經濟的角度來衡量安全程度。假如一條信息價值一百萬元,如果需要要花1000萬元的代價才能制造出足夠強的計算機來破解它,那它就是安全的。但是,如果信息價值1000萬,用100萬元就能獲得足夠的計算能力來破解它,那么它就是不安全的。
9.一次一密 前面提到除了一次一密以外,其它的密碼理論上都是可以破解的。那么什么是一次一密呢?一次一密就是每一次加密都使用一個不同的密鑰(廢話,和沒說一樣J)。嚴格的說,滿足以下條件的密碼才是真正的一次一密:
a、密鑰是隨機產生的,并且必須是真隨機數(shù),而不是偽隨機數(shù); b、密鑰不能重復使用; c、密鑰的有效長度不小于密文的長度。
一次一密是最安全的加密算法,雙方一旦安全交換了密鑰,之后交換信息的過程就是安全的。這種算法一直在一些要求高度機密的場合使用,據說美國和前蘇聯(lián)之間的熱線電話、前蘇聯(lián)的間諜都是使用一次一密的方式加密的。不管有多強的超級計算機,不管超級計算機工作多久,也不管多少人,用什么方法和技術,具有多大的計算能力,都不可能破解用一次一密方法加密的信息,除非回到那個時代拿到他用過的密碼本(也就是密鑰)。前蘇聯(lián)間諜用一次一密方法加密過的信息將成為永久的謎。
10.對稱算法的概念 所謂對稱算法就是指加密和解密過程均采用同一把密鑰。如DES,3DES,AES等算法都屬于對稱算法。下面會對這幾種有代表性的算法一一做介紹。
出處:藍色理想
責任編輯:moby
上一頁 下一頁 關于加密和安全v0.94 [2]
◎進入論壇計算機技術版塊參加討論
|