密碼學(二):現代密碼學

對稱加密、非對稱加密

Aika's Music & Reading
5 min readSep 24, 2019

十九世紀學者們體認到加密法的演算法並非理智或實在的防護。適當的密碼學機制應該保持安全,即使敵人知道了使用何種演算法。對好的加密法來說,金鑰的秘密性理應足以保障資料的機密性,這邊就須先提到柯克霍夫原則:

柯克霍夫原則(Kerckhoffs’ principle)

這個原則首先由奧古斯特·柯克霍夫(Auguste Kerckhoffs)提出, 強調即使密碼系統的任何細節已為人悉知,只要密鑰(key)未洩漏,它也應是安全的

A cryptosystem should be secure even if everything about the system, except the key, is public knowledge

  • 資訊理論始祖克勞德·艾爾伍德·香農(Claude Shannon)重述:「敵人知道系統。」

現代密碼學可分為對稱加密非對稱加密

對稱加密( Symmetric Encryption)

簡單來說對稱加密即在加密與解密時都是使用同一把金鑰,缺點就是要是被有心人士知道金鑰,之後只要欄截訊息就可被破解

對稱式加密可分為區塊加密法串流加密法

區塊加密法(Block cipher)

將明文分成多個等長的模組(block),使用確定的演算法和對稱金鑰對每組分別加密解密,如DES、AES

DES( Data Encryption Standard)

  • 分組長度為64位元
  • 金鑰: 56位金鑰 ( 56位被實際用於演算法,其餘8位元可以被用於奇偶校驗)
  • DES加密算法是對密鑰進行保密,只要掌握了和發送方相同密鑰的人才能解讀由DES加密算法加密的密文數據。因此,破譯DES加密算法實際上就是搜索密鑰的編碼。對於56位長度的密鑰來說,如果用窮舉法來進行搜索的話,其運算次數為2^56,已用22小時15分鐘被破解

AES ( Advanced Encryption Standard)

  • 分組長度為128位
  • 金鑰: 最少支持為128、192、256位

串流加密法( Stream cipher)

對明文一個位元一個位元地加密,就好像是明文不斷的流動進入加密器中加密,加密快速,因此能夠做到及時(real time response)的效果,適合用在語音傳輸加密

XOR Cipher

例如:Wiki(01010111 01101001 01101011 01101001)

key: 11110011

加密:

解密:

非對稱加密( Asymmetric Encryption)

1976年,惠特菲爾德·迪菲與馬丁·赫爾曼發表: 一對不同值但數學相關的金鑰 (key pair),公開金鑰( public key)與私密金鑰(private key or secret key), 在公鑰系統中,由公開金鑰推算出配對的私密金鑰於計算上是不可行的

如圖,今天Alice如果想傳訊息給Bob,就必須使用Bob的公鑰加密後將密文傳給Bob,Bob即可用自己的私鑰去解密

  • 但使用非對稱運算速度比對稱式加密慢很多,故會改採用混合對稱式加密(Hybrid cryptosystem)

假設今天Alice 要傳訊息給 Bob

Alice會透過對稱式演算法,產生出一把對稱式加密用的金鑰(session key)
接著 Alice 使用 Bob 的公鑰,將這把session key加密並跟用session key加密後的訊息一併傳給 Bob
Bob 收到後,使用自己的私鑰解密,取得這把session key,在解密訊息,

之後雙方訊息的往來,都使用這把session加解密傳訊

RSA Algorithm

對極大整數做因數分解的難度決定了RSA演算法的可靠性。到目前為止,世界上還沒有任何可靠的攻擊RSA演算法的方式。只要其鑰匙的長度足夠長,用RSA加密的訊息實際上是不能被破解的

選擇兩個大質數 P & Q
計算 N = P * Q
選擇公鑰(public key) E,使它不為 (P-1) 或 (Q — 1) 的因數
選擇私鑰(private key) D,讓右邊算式成立:(D * E) % [(P — 1) * (Q — 1)] = 1
加密過程為:密文(CT) = 明文(PT^E) % N
解密過程為:明文(PT) = 密文(CT^D) % N

>下一篇: 密碼學(三):數位簽章

參考資料:

  1. [筆記]Asymmetric Encryption 非對稱式加密
  2. How does RSA work?

--

--

Aika's Music & Reading

台北社畜,喜歡閱讀,喜歡音樂,有空寫寫文字經營IG推廣喜歡的東西,偶爾看看電影畫畫小圖 (IG: @aikawamusic)