【學習筆記】Android與伺服器互動的方式中的對稱加密和非對稱加密為何?

「Android與伺服器互動的方式中的對稱加密和非對稱加密為何?」這個問題在參考《每日頭條100道Android 面試常用考題》的題目及回答後,我想稍微簡化一下題目問題「請問何為對稱式加密?何為非對稱式加密?」

首先讓我們參考一下維基對於對稱式加密的說法:「對稱密鑰加密(英語:Symmetric-key algorithm)又稱為對稱加密、私鑰加密、共享密鑰加密,是密碼學中的一類加密演算法。這類演算法在加密和解密時使用相同的密鑰,或是使用兩個可以簡單地相互推算的密鑰。」

正如其所說,對稱式加密是一種藉由相同金鑰以及演算法來進行加密的一種方法,其主要的特色在於加解密都是藉由同一套金鑰來完成。舉例來說,假如我有一個資料其值為6,金鑰值為1,加密演算法為加法,這樣將資料經過加密運算6+1之後,我們會得到一個值為7的密文。假設我們要得到6這個明文的話,則必須知道金鑰以及加密演算法才能從7還原成6這個正確的明文。目前來說,最常見的對稱式演算法為DES。

再來是關於維基對於非對稱式加密的說法:「公開金鑰加密(英語:Public-key cryptography),也稱為非對稱加密(英語:asymmetric cryptography),是密碼學的一種演算法,它需要兩個金鑰,一個是公開密鑰,另一個是私有密鑰;一個用作加密的時候,另一個則用作解密。使用其中一個金鑰把明文加密後所得的密文,只能用相對應的另一個金鑰才能解密得到原本的明文;甚至連最初用來加密的密鑰也不能用作解密。」

承上所述,非對稱式加密又稱公開金鑰加密法。其特色在於,將資料加密的那把金鑰與還原的那把金鑰是不同把的。假設今天有A、B兩把金鑰,而我同樣把資料為6的值以非對稱式加密法加密,當我以A金鑰加密時,就只能以B金鑰還原,若是以A金鑰還原,則會計算出錯誤的訊息,這就是非對稱式加密的最大特色。目前最常見的非對稱式加密法為RSA。

參考資料:
1.  https://kknews.cc/zh-tw/tech/y88rv3j.html
2. https://zh.wikipedia.org/wiki/%E5%B0%8D%E7%A8%B1%E5%AF%86%E9%91%B0%E5%8A%A0%E5%AF%86
3. https://zh.wikipedia.org/wiki/%E5%85%AC%E5%BC%80%E5%AF%86%E9%92%A5%E5%8A%A0%E5%AF%86

沒有留言:

張貼留言