快轉到主要內容

對稱加密 (Symmetric Cryptography)

·1399 字
Computer-Science Cryptography
目錄
Cryptography - 本文屬於一個選集。
§ : 本文

大家對於「密碼」並不陌生,生活中總是遇到許多場合需要用到密碼,然而「加密」的原理似乎相對的卻不是那麼的備受關注。


Encrypt (加密)
#

從古至今,人們總是在通訊隱私上想盡各種方法來提供擁有一定安全性的保護,例如戰國時期傳送密報,為了防止可能含有機密的信件被敵軍攔截,因此需要將內容給加密,這麼一來即使信件落入敵軍手中,也不能被解讀
隱私上,相信大家也不陌生,現在網上許多服務都需要註冊會員,帳戶就需要設定密碼驗證使用者的身份

  • 加密 (Encrypt)
    以加密訊息為例,尚未加密的訊息,也就是一般可以被大家讀懂的訊息,我們稱作「 明文 (Plaintext) 」,而在經過 演算法加密 (鑰匙) 後所產出的結果,也就是不可被其他人解讀的加密訊息,則稱作「 密文 (Ciphertext) 」,並且上述這整個過程稱為「 加密 (Encrypt) 」。
  • 解密 (Decrypt)
    正常來說,明文使用「鑰匙」加密成密文,而密文也必須是擁有相對應鑰匙的人才能解讀內容,這邊所說的「 鑰匙 」並非是指現實中常見的那種開鎖的鑰匙,此指的鑰匙通常是一個數學算式或是一段文字,而這個鑰匙則是解開密文的關鍵,且該鑰匙我們稱作「 密鑰 (Key) 」,利用該密鑰來將密文還原成明文的過程則稱作「 解密 (Decrypt) 」。

Symmetric Cryptography (對稱加密)
#

Symmetric Cryptography (對稱加密) 」為一種常見且原理簡單的加密思維,注意,它並加密法,它只是一個思維,在對稱加密中,上述的「 密鑰 」有個特點,就是加密跟解密的密鑰為同一把鑰匙,這邊使用情境來說明下什麼叫做「同一把鑰匙」:

  • 假設情境
    A先生因為某些原因,經常需要請B先生代傳訊息給C小姐,但同時A先生又不希望B先生知道該訊息的內容,因此A先生決定使用對稱加密來傳送訊息。
  • 定義密鑰 並 共享
    首先,A先生需要設計至少一個密鑰,他將密鑰設定成數字「 2 」,並且在一開始的時候A先生需要想辦法將該密鑰親手交給C小姐,並且自己也保留一把一樣的密鑰
  • 加密 並 傳送
    前置作業完成後,接著A先生想傳送一則訊息,其內容為「 Hello, 123 」,他將該明文使用密鑰加密,加密方法為將文字往後推移密鑰數,例如該情境中,密鑰為「 2 」,則英文「 A 」往後推2次變成「 C 」,數字「 3 」往後推2次則是「 5 」,以此類推,因此明文「 Hello, 123 」加密後會變成「 Jgnnq, 345 」,他將該密文請B先生代傳給C小姐,由於B先生沒有密鑰「 2 」因而不懂該密文的含意。
  • 接收 並 解密
    C小姐在收到密文後,使用同一把密鑰「 2 」解密,加密往後推移解密則為往前推移,因此密文「 Jgnnq, 345 」在被C小姐往前推移2次後,解密回明文的「 Hello, 123 」。

這其中包含一個問題,為什麼A先生C小姐知道怎麼使用該密鑰加密與解密,是誰規定「加密為往後推移密鑰數」及「解密為往前推移密鑰數」?

其實這些密鑰的「 使用規則 」被稱作「 加密演算法 (Encryption) 」或稱「 加密法 」,加密演算法也正是決定該加密安全性的關鍵之一。因此其實在A先生將密鑰交給C小姐時,有偷偷說了要使用哪種加密法,這樣雙方才能正確的運用密鑰進行運算來達到加密及解密的效果。


總結
#

當然,上面的情境只是舉例,僅僅是為了讓大家方便理解而虛構的場景,一般常見的加密演算法不會設計的這麼弱,也更不應該出現密鑰只有一個數字這種誇張的狀況,而密文通常也並不會與明文有著如此明顯的結構關係,通常只是亂碼,例如「 Hello, 123 」加密後的結果可能會長這樣「 1d5F68ghY8Xa59U6 」而不是「 Jgnnq, 345 」。

有興趣的朋友也可以看看下一篇延伸對稱加密更進階的文章「」。

P.S. 對稱加密中常見的加密演算法有:
DES3DESAESBlowfishIDEARC5RC6
有興趣的朋友可以點擊連結或自行上網研究。

Alpaca
作者
Alpaca
No one can stop my feet.
Cryptography - 本文屬於一個選集。
§ : 本文

相關文章

網頁漏洞 XSS (Cross-Site-Scripting) 攻擊 (上) 基礎原理解說
·2194 字
Computer-Science XSS
常常聽到有人說網站出現「XSS 漏洞」,那這所謂的 XSS 到底是什麼?其可怕之處又為何?以下,帶你淺談 XSS (跨站運行腳本) 原理。
Social-Engineering 社交工程|你駭計算機,我駭你心。
·2000 字
Computer-Science Social-Engineering Psychology Phishing

什麼是社交工程?是心理學的一種嗎?兩者之間有什麼關聯?社交工程是指詐騙嗎?

嘿!別想的太複雜,其實你應該也經歷過

網頁漏洞 XSS (Cross-Site-Scripting) 攻擊 (下) 進階思路解說
·1873 字
Computer-Science XSS
上一篇提到了基礎的 XSS 原理,這次要來介紹更深入更進階的思路了。
Ubuntu 18 如何顯示電量百分比?
·308 字
Computer-Science Ubuntu Gnome