iT邦幫忙

2022 iThome 鐵人賽

DAY 5
2
Security

做IT必備的資安觀念!手把手帶你攻防實戰系列 第 5

Day 5 : 觀念篇 - 資安裡常說的密碼學是什麼東西?

  • 分享至 

  • xImage
  •  

大家好,這篇要來和大家聊聊密碼學是什麼

這篇主要是講解密碼學的發展史,還有釐清一些專有名詞的意思,所以可以輕鬆一點,當成是在看故事就好

密碼學是什麼?

:密碼學這個詞看起來好像很厲害,它是在教你怎麼設安全的密碼嗎?

完全不是!大錯特錯
著名的密碼學家羅納德·李維斯特(Ronald Linn Rivest)曾經對密碼學的意思進行解釋:「密碼學是關於如何在敵人存在的環境中通訊

所以密碼學指的是:「在傳遞資料時,透過加密、解密,來達成機密性的過程」


分類

而密碼學可分成「古典密碼學」和「現代密碼學」,就和音樂被分成「古典音樂」和「現代音樂」是一樣的,都是透過歷史的演變去區分


名詞釐清

那在開始講密碼學的歷史前,我想先和大家釐清以下幾個名詞:

  • 密碼
  • 明文(plain text)/ 密文(cipher text)
  • 加密(encryption)/ 解密(decryption)
  • 金鑰(key)

1. 密碼
它目前是一種被廣泛使用,但定義不明確的用詞
舉個例子,密碼學(Cryptography) 的「密碼」兩個字,其實不是指 password 的那個密碼,而是指希臘語的 kryptós「隱藏的」gráphein「書寫」

再舉一個例子,密碼機(Cipher Machine) 的「密碼」其實指的是「加(解)密」的意思,而登入帳密(Account Password) 的「密」指的是「通行碼

是不是覺得有夠複雜?其實只要用英文看,就不容易被混淆了

  • 密碼學(Cryptography)
  • 密碼機(Cipher Machine)
  • 帳號密碼(Account Password)

被混淆時可以上雙語辭典查,會比較好理解
https://ithelp.ithome.com.tw/upload/images/20220920/20141088caMGfsTNYB.png


2. 明文(plain text)/ 密文(cipher text)
明文(plain text):指一眼就能看懂,沒有經過加密的文字
密文(cipher text):指無法立刻看懂的文字,是明文經過加密處理,所得到的結果,如果想理解其內容,就要先將密文解密回明文

3. 加密(encryption)/ 解密(decryption)
加密(encryption):指在資料傳輸的過程中,使用特殊編碼技術,將明文的資料轉換成無法一眼看懂的密文
解密(decryption):指使用和加密相同的編碼技術,將無法一眼看懂的密文,轉換成一眼就能看懂的明文

4. 金鑰(key)
無論是在加密,還是解密,都需要使用金鑰,它的長度和安全性的強度成正比,當它的長度越長時,加解密會越耗時,但是越不容易被破解


既然介紹完名詞,那就開始講密碼學的故事啦
這裡我們先從歷史最悠久的「古典密碼學」開始講起

古典密碼學

早期密碼學是被使用在戰爭上,為了避免在書信往來時被敵人攔截,進而看到裡面的作戰機密,因此會將書信內容進行加密


凱薩加密法

凱薩加密法(Caesar cipher)就是因為這個原因,被凱薩大帝發明出來的
它的原理是使用字母的位移,依序向右位移3格,進而達到加密的效果
https://ithelp.ithome.com.tw/upload/images/20220920/201410887tRjMMJLnL.png
(圖片來源:https://xxxxtim.github.io/2020/01/30/caesar%20cipher/#%E5%8E%9F%E7%90%86

舉個例子,假設今天有個明文是abcd,那它經過加密取得的密文就是defg
相反的,將密文defg進行解密,就會得到明文abcd
https://ithelp.ithome.com.tw/upload/images/20220920/20141088VLERcFTdhj.png

摩斯密碼(Morse code)也是一種編碼,透過對照摩斯編碼表去進行加密,如果想要解密,就在摩斯編碼表找到對應的英文單字即可


Enigma

而在第二次世界大戰時,德軍發明了一個加解密器,叫Enigma密碼機,其目的是為了加密傳給友軍的電報內容,不讓敵軍知道他們的作戰機密為何
https://ithelp.ithome.com.tw/upload/images/20220920/20141088IDxT6hKrkH.jpg

這裡會略提一下 Enigma 的加密方式
假設要進行加密,就要先從密碼簿裡選擇一個「每日金鑰」,並設定在轉盤上
https://ithelp.ithome.com.tw/upload/images/20220920/20141088S5yQZ74ZwV.jpg

Enigma 的轉盤只有三個,所以每日金鑰會由三個英文字母所組成(通訊金鑰也是)
https://ithelp.ithome.com.tw/upload/images/20220920/2014108850dizlCpVo.png

既然已經在 Enigma 設定好每日金鑰,那就要決定一組通訊金鑰進行加密,假設是PSV
那就要將PSV在鍵盤上輸入兩次(即PSVPSV),並對其進行加密,而加密後的六位數通訊金鑰為ATCDVT
https://ithelp.ithome.com.tw/upload/images/20220920/201410886i1zuFbY82.jpg

取得「加密過的六位數通訊金鑰(即ATCDVT)」後,重新設定Enigma的金鑰,這次使用的不是每日金鑰,而是使用「通訊金鑰PSV」,再對其明文進行加密

再把「加密後的六位數通訊金鑰(即ATCDVT)」和「加密後取得的密文」進行結合,傳送給友軍


加密流程

所以 Enigma 的「加密」流程為:

  1. 先在密碼簿選擇「每日金鑰」,並設定在 Enigma 的轉盤上
  2. 決定今天的「三位數通訊金鑰」,並在鍵盤上輸入兩次,對它進行加密,取得「加密後的六位數通訊金鑰」
  3. 重新設定 Enigma 的轉盤,這次使用的是今天的「三位數通訊金鑰」
  4. 加密明文
  5. 將「加密後的六位數通訊金鑰」和「加密後取得的密文」進行結合,並進行傳送

解密流程

而 Enigma 的「解密」就是把「加密」流程的順序作「顛倒」而已:

  1. 先將接收到的內容進行分解,拆成「加密後的六位數通訊金鑰」和「加密後取得的密文」
  2. 在Enigma的轉盤上設定好「每日金鑰」,再對「加密後的六位數通訊金鑰」進行解密,取得「未加密的六位數通訊金鑰」,並對其取「三位數通訊金鑰」
  3. 重新設定Enigma的轉盤,這次使用的是剛剛拿到的「三位數通訊金鑰」
  4. 對「加密後取得的密文」進行解密,取得「未加密前的明文」

小知識

因為 Enigma 密碼機的出現,突顯了秘密通訊的重要性
而各國為了破解 Enigma,催生了現代電腦的出現,讓古典密碼學進入到現代密碼學

最終,Enigma 被英國知名學者艾倫·麥席森·圖靈(Alan Mathison Turing)破解,他發明了「炸彈(Bombe)」解密機,透過這台機器不斷的嘗試可能的金鑰組合,再經過不斷地改良,使得 Bombe 的計算能力大幅提升,到戰爭後期 Bombe 僅需花 20 分鐘就可以完成計算,成功破解德軍的每日金鑰,並得知德軍的加密訊息


現代密碼學

那為什麼會說現代「電腦」的出現,造就了「現代密碼學」的出現呢?

因為在古典密碼學的階段裡,都是使用「手動」的方式進行資料的加解密、傳遞
而現代電腦的出現,使得加解密不再局限於書寫的文字,讓「手動」執行慢慢轉成「電腦」執行,但也因為電腦的快速進步,使得之前的加密法都能被現在的電腦快速破解出來

因此現代密碼學除了繼承古典密碼學的概念,也開始注重資料保密、資料完整性驗證等,所以出現了對稱/非對稱式加密、數位憑證、簽章…等概念,這邊只需要先知道就好,後續幾天會一一向各位介紹


以上就是今天的介紹,希望大家看完能對密碼學的發展史更加了解


上一篇
Day 4 : 觀念篇 - 常見的資安攻擊類型有哪些?
下一篇
Day 6 : 觀念篇 - 密碼學裡的對稱式、非對稱式加密是什麼?
系列文
做IT必備的資安觀念!手把手帶你攻防實戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言