對對稱加密與非對稱加密算法的一點理解

       平時在工作中一直有使用到對稱加密與非對稱加密算法,以前一直是拿來就用,沒有仔細想過裏面的實現原理。今天突然有興趣和時間研究下。

1、什麼是對稱加密算法?

加密和解密都使用相同密鑰的算法。

公式:C=E(P,e) , P=D(C,d) ,其中C是密文,P是明文,如果e=d,則函數P與函數D是對稱函數,也即是對稱算法。

2、什麼是非對稱加密算法?

加密和解密使用不同密鑰的算法。

公式:C=E(P,e) , P=D(C,d) ,其中C是密文,P是明文,如果e!=d,則函數P與函數D是非對稱函數,也即是非對稱算法。

       以前在剛開始面試的時候,經常死記着使用同一個密鑰加密解密的就是對稱加密算法,使用不同密鑰加密解密的就是非對稱加密算法,然後對稱加密算法有DES、3DES等,非對稱加密算法有RSA等,只是死記這些膚淺的知識,因果關係都弄亂了。

       其實主要你理解了算法的原理,根本就不需要死記哪種算法屬於對稱加密算法,哪種算法屬於非對稱加密算法。因爲當你理解了算法的原理,完全可以設計出一種加密算法。

舉個栗子:

1、對稱加密,輸出HELLO WORLD。

下面是一種簡單的3字符循環移位密碼

服務器將明文HELLO WORLD的每個字符往右移3位進行加密後得到的結果是:KHOOR ZRUOG,服務器將這段密文發送給客戶端後,客戶端將密文的每個字符向左移3位即可得到明文:HELLO WORLD。

看公式:C=E(P,e) , P=D(C,d),現在我們可以假設e=3,d=3,則E和D是對稱算法,至於E和D算法如何用代碼實現也很簡單,主要理解這個原理,算法可以千變萬化,如果你害怕別人提供的對稱加密算法不安全,完全可以自己設計一種算法。

2、非對稱加密

數學不好,150分重來沒有滿分過,非對稱加密算法的例子一下子沒想到好的例子。原理上面已經寫的很清楚了,誰能想到一個好的例子,也麻煩給下給我。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章