iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 2
1
Security

無趣的密碼學,有趣的加密!系列 第 2

[Day 2] 002 - 密碼學的細分與類別

密碼學的種類

如果提到密碼學,那密碼學的父親就是資訊安全了。

那就是另一個龐大的話題,交給其他的大神們。

回到密碼學!

那以密碼學往下細分,大致上我個人的分類如下:(其中分類與分類之間有交集)

  1. 時間軸分類

    • 古典密碼學/經典密碼學
    • 現代密碼學
    • 後量子密碼學 - Quantum Cryptography
  2. 用途不同分類

    • 對稱密鑰演算法
    • 非對稱式密碼學
    • 雜湊
    • 雜湊訊息鑑別碼
    • 校驗與修復編碼
  3. 處理加密分類

    • 串流加密法
    • 區塊加密法
  4. 其他

    • 通用唯一辨識碼
    • 亂數生成

PS. 上述的分類是依照我想講的方式來做大綱分類,更專業的分類請看密碼學的原文書或維基百科


每一個都有它相對應的功能跟用途,目前現代密碼學應用的領域之中,都是混合使用的。

我們來說說這些方法、分類的相對關係與本質。

1. 現代密碼與古典密碼的差異。

不得不說現代電腦的計算能力真的是遠遠超乎古代人的想像。
密碼學永遠離不開『替換』、『位移』兩個方式。
而古代在處理文本轉換成密碼來說,很難用手動的方式收集訊息並破解。
通常簡單的單表的凱撒密碼、多表的自動密鑰密碼、還有一些表格式加密。
在那個時代就很難破解了,破解都是要成本考量的。
但藉助現在的電腦來說,只是分秒之間的事情。

而現在的密碼學採用的是更加凌亂、位數更加龐大且熵更大的方式來做加密。
常常一點點的變化導致了整個加密環節環環相扣的情況下,無法知道那個環節出錯。
做多次的重複的動作,同時金鑰本身也參與了變化,這也使得不只文本在變化,金鑰也在變化。
這也導致了更難以被破解。

但你說能不能被破解……其實,還是能被破解,但隨著位元數的增加跟重複的次數增加,會使得困難程度成指數上升。

那你問我有沒有絕對無法被破解的加密方式(非旁路攻擊),其實也是有的,OTP就是利用這個方式,到時候(後面的章節)會詳細地講解這一部份。

2. 對稱、非對稱是什麼意思?兩者的差別?

這也是個好問題~

對稱:指的是加解密用的是同一把金鑰。
非對稱:指的是加解密用的是不同的金鑰。

接著就是安全性、效率的問題。
以目前主流在使用的算法來講:

  • 對稱:
    1. 速度快。
    2. 可加密大量的資料(影片、圖片、音樂等)。
    3. 效率高。
    4. 有專門的Hardware或指令集支援
    5. 安全性高,更難以被破解。
  • 非對稱:
    1. 速度慢,使用資源多。
    2. 加密大資料必需要消耗的資源龐大(不是不能,但必需要加大參數)。
    3. 加解密速度比對稱還慢。
    4. 安全性沒有對稱高,且更長的金鑰長度卻沒有比對稱來的安全。
      (這也就是為什麼你能看到RAS有1024、2048而AES卻有128、256等數字的關係。)

那明明『非對稱』那麼多缺點,且上述都不能比的上對稱。
為何目前會是主流?
很簡單,因為『加解密用的是不同的金鑰』。
這就能做到傳輸上,防止密要被竊取的問題。
在密碼學的理論中『傳輸』可是佔了很大的一部份。
因此衍生出了很多種信任、串改、損毀的一些解決方案。

3. 雜湊、雜湊訊息鑑別碼都有『雜湊』那區別?

嗯,其實你問的很好。
雜湊:指的是一堆數據丟進去,出來一串固定長度的亂碼。
雜湊訊息鑑別:指的是一堆數據丟竟去後,必需要加入一段金鑰,然後比對。

那兩者的區別來說……其實你是可以當成『雜湊訊息鑑別』是『雜湊』衍生出來的。
除了驗證資料完整性之外,多了一個身份驗證的功能。
與一般的加解密來驗證身份不同的是,他利用的是『雜湊』的熵來做比對。
因為雜湊的特性,使得只要一點不同的東西進去後,會使得整個結果不一樣,且不會碰撞。

那用這個特性就能做到驗證的功能。
到時候會詳細地講(我故意不講得很詳細),之後還會有一個技術用到(JWT)。

4. 處理加密分類???

我知道、我知道,第一次接觸密碼學的人都有這個問題。
一個密碼,一堆資料,加密算法是怎麼做到的?

其實,有的加密,在做的時候,是固定長度加密的。
也就是長度1000的資料,必需要拆分成固定長度。
而這個長度跟算法有著絕對的關係,同時跟你的金鑰也有關係。

那這該怎麼辦?要怎麼把這些資料串起來,就是『區塊加密法』來處理。

那有沒有直接整個吃下去,不分割資料的?那就是『串流加密法』在處理的。

一樣之後會有詳細的介紹。

5. 放一個其他幹嘛?

大家知道嗎,其實加密有個重要的東西,那就是亂數!
還有,那些被稱為Token的東東,很多也來自亂數。

而非對稱的加密,亂數更是重要的東西。
所以為什麼有人說『量子亂數』更加安全。
技術層面,依然到章節的時候再來跟大家說。

而對稱的加密有個VI,也是很重要的,在區塊加密法中CTR也是需要亂數的。

UUID、亂數生成等,我覺得很必要跟大家說說,同時也讓大家知道一下有這東西。

讀者們的問題

接下來就是讀者們的回答,我會更新在下面。

有些是我之後才會說的,因此!如果我回答『註記,之後會提到』,那就是後面的章節會提到,並重點標註出來。

要是現在說完了,後面每一篇文章都短短的也不好看,對吧~

而且相關知識群在一起講,也比較好講。


參考資料

密碼學主題列表 WiKi

密碼學 WiKi

AES-NI 與 Secure Key 構成 Intel® Data Protection Technology


上一篇
[Day 1] 001 - 密碼學的奧妙!
下一篇
[Day 3] 003 - 古典密碼
系列文
無趣的密碼學,有趣的加密!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言