iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 23
0
Security

資訊安全的美味雜炊系列 第 23

[Day23] - Crypto 0x3 現代 - DES/AES

  • 分享至 

  • xImage
  •  

Day23 - Crypto 0x3 現代 - DES/AES

前言

  • 恩,來到了現代密碼學了,基本上密碼學只會越發展的越複雜,所以筆者在現代密碼學這塊也是花很多時間來理解
  • 今天會講對稱式加密演算法,在Crypto 0x1有提到,對稱式加密法使使用相同金鑰來做加解密,今天來談談這這個加密的演算法

區塊加密

  • 常用於已知訊息長度的情況
  • 將明文分成一塊一塊等長的模組分別加密

DES, 3DES (Data Encryption Standard)

背景

  • 在1970年由IBM公司提出,另外也是美國國家標準局公布的資料價密標準的加密演算法
  • 屬於區塊加密法,會對於一定大小的明文或密文做加解密動作
    • 而在DES中,加密與解密的大小則均為64bits

加密原理

  • 就一般的資料,資料長度通常是大於64bits,因此會將資料切成64個bits為一個區塊,再對每個區塊做加密。
    • 如果最後一個區塊長度未達64bits,則會補上0
  • 金鑰
    • DES加解密金鑰也是64bits,不過有8個bits是拿來作錯誤修正,因此金鑰長度是56bits

DES加密過程有點複雜,所以留下影片連結供大家參考: https://www.youtube.com/watch?v=Vcld7CMAnNs

3DES

  • 就是將原本的DES中每個區塊做三次的資料加密演算法,因為原本的太容易被暴力破解了,而在這之中的每次加密金鑰都是獨立的

問題

  • 因為DES的金鑰長度為56bits, 因為長度過短的關係,使用電腦即可破解成功
  • 甚至在1997年RSA安全公司舉辦過DES破解挑戰賽,成功者可以獲得10000美金
    • 第一屆成功者耗時96天
    • 第二屆挑戰賽則有22000人挑戰成功,共歷時39天
    • 到1998年7月15日,甚至僅用56小時破解DES加密的訊息,這也就造就了AES的誕生

https://zh.wikipedia.org/wiki/EFF_DES%E7%A0%B4%E8%A7%A3%E6%9C%BA#DES%E6%8C%91%E6%88%98%E8%B5%9B

AES

  • 由於對於暴力破解法,DES太容易被破解了
    • 於是美國政府公開徵選新的加密法,後來發布在NIST(美國國家標準與技術研究院),成為最流行的演算法之一
    • 也就用了AES來取代DES
  • 相較於DES,AES將資料切的block長度是128bits以上,因此密文被破解機會更低
    • AES的金鑰長度也可以是 128,192,256 bits,不限於128bits
    • 隨著長度選擇的不同,加密回合也不一樣10、12、14 (會與金鑰長度對應)

加密流程

  • 明文與密鑰長度都為128bits(16 bytes),並打成4*4的矩陣狀態

  • AddRoundKey

    • 將金鑰的Matrix與原Matrix做XOR
  • Subbytes

    • 透過查表的方式,把每個明文的byte取代成表(S-box)中的byte
    • S-box
    • 取代完會像這樣
  • ShiftRows

    • 每一列都向左循環位移某個偏移量
    • 第二個row向右移1個byte
    • 第三個row向右移2個bytes
    • 第四個row向右移3個bytes
    • 移完前
    • 移完後
  • MixColumns

  • 整個加密流程如下

參考自: https://www.youtube.com/watch?v=gP4PqVGudtg

三者的比較

DES 3DES AES
資料區塊 64bits 64bits 128bits
金鑰長度 56bits 168bits 128/192/256bits
重複運算次數 16次 48次 10/12/14 次

ref


上一篇
[Day22] - Crypto 0x2 古典
下一篇
[Day24] - Crypto 0x4 現代 - RSA
系列文
資訊安全的美味雜炊30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言