小時候做過這樣的事兒,寫日記的時候為了隻讓自己看的懂,不讓他人看的懂,就想了這樣辦法。
日記内容: 我想255許1989喜歡201。知道這是什麼意思麼?呵呵通過一個很幼稚簡單的算法來實作的。26個英文字母表和漢語字母的對照,很無聊吧,不過當時感覺很神秘的(小孩的心思)。不管怎麼說,這也算是知道什麼是加密了,什麼是解密了

一、加密、解密、算法之間的關系
把一段原始資料通過某種算法處理成另一種資料(原始資料為明文,處理後的資料為密文)。明文----->密文 稱之為加密;密文---->明文 稱之為解密;
是以對于加密、解密來講算法本身非常關鍵。但是算法是公開的,一旦有些人想要破解這個算法,而且被破解了,則所有使用這個算法的産品的都要報廢了,(例如我上面的小日記,就無處躲藏了
),而且替換一個算法耗費的資本也是很大的,畢竟找一個合适的算法也不是一件簡單的事。是以一個加密出來的資料本身可靠與否,取決于密鑰,而不是算法,因為密碼的調換成本很低的。
二、什麼是密鑰
密鑰是一種參數,它是在明文-->密文或者密文-->明文的算法中輸入的資料。分為對稱密鑰、非對稱密鑰。
對稱密鑰加密:又稱私鑰加密,即發送方和接收方用同一個密鑰去加密和解密資料。優勢是加密/解密速度快,适合于對大資料進行加密,但是密鑰管理困難(因為要發送給不同的接受者,肯定不能使用同樣的密鑰吧,若是接受者多,記密鑰就是一項艱巨的任務了)
非對稱密鑰加密:又稱公鑰加密。需要使用不同的密鑰來分别完成加密和解密操作。一個公開釋出,即公鑰;另一個由使用者自己秘密儲存,即私鑰。發送方用對方的公鑰加密資料,對方用自己的私鑰解密。缺點在于加密/解密的速度比對稱密鑰慢得多。
三、加密算法
對稱加密算法 公鑰加密算法 單向加密算法
1 對稱加密算法:與上面介紹的對稱密鑰加密原理是一樣的。
從圖中看到,發送方和接收方使用的是同一個密鑰,但是想過沒有,接收方如何獲得密鑰呢?打電話?發短信?還是寫信?應該都不是吧,這樣哪裡還有安全性可言?(下面的公鑰解密算法就可以解決這個問題)
2 公鑰加密算法:與上面介紹的非對稱密鑰機密原理是一樣的。
從圖中看到,發送發和接收方使用的不是同一個密鑰,發送方使用接收方的公鑰進行加密,接收方使用與之配對的私鑰進行解密。整個傳送過程中,加密後的資料隻用接收方自己可以解密,因為隻有他自己擁有私鑰。上面也介紹過,此種加密的耗費時間長,并不是一個理想的加密方式。
是以公鑰解密算法有兩個主要的功能:
1 實作密鑰的交換,在對稱加密算法中有這樣一個問題,對方如何獲得密鑰,在這裡就可以通過公鑰算法來實作。即用公鑰加密算法對密鑰進行加密,再發送給對方就OK了
2 數字簽名。加密可以使用公鑰/私鑰,相對應的就是使用私鑰/公鑰解密。是以若是發送方使用自己的私鑰進行加密,則必須用發送方公鑰進行解密,這樣就證明了發送方的真實性,起到了防抵賴的作用。
注意:公鑰(public key)是從私鑰(private key)中提取出來的
把對稱加密和公鑰加密糅合在一起,可以保證資料的機密性,來源的合法性。但是資料本身的完整性該如何解決呢?若是被非法截取,然後對資料亂改一通,破壞了資料的完整性,接收方又該如何判斷呢?
3 單向加密算法
準确來說,單向加密算法并不是一種加密技術,而是通過提取資料特征碼,來驗證資料的完整性。
特征:
雪崩效應:任何微小的改變都會産生巨大的不同,也就是資料隻要有一點改變,結果就會大不相同
定長輸出:不論資料是多大的,提取的特征碼的長度都是一樣的
上面的這三種算法,并不是獨立的,應該說糅合到一起使用。最終保證資料的可靠性、完整性、機密性以及來源的合法性。
接下來示範這個過程,小明---->小美發送資料《愛的表白》呵呵