Padding ( 填充 ) 在密碼學是一種填補資料的方法
我們以上一篇講到的 AES 做說明, 假設輸入的資料有 200 bits 則需要做 padding
第一步是先把 200 bits 的資料拆成兩組,第一組 128 bits ,第二組 72 bits
第一組的資料 128 bits 密文 經過金鑰解密 = 128 bits 明文
第二組的資料 72 bits 密文 加上 56 bits 的 padding 填充 經過金鑰解密 = 128 bits 明文
( 重點就是無論如何都要填成 128 bits , 就算一開始輸入的資料剛好是 128 bits ,同樣也要做 padding )
如果區塊需要填充 X 個,就需要補 X 個是 X 的資料,
那如果該區塊的大小剛好相等,則需要補一個長度剛好是該區塊大小的資料,亦即每個 bytes 都是該區塊的大小
舉例來說:
區塊缺少 5 個 bytes 會補 : 0x05 0x05 0x05 0x05 0x05
區塊缺少 10 個 bytes 會補 : 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a
如果區塊長度剛剛好 ( AES ) 會補 : 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
這邊也是錯誤的,填充的任務不是AES負責的。
是由區塊加密的模式負責的。
請好好看我的文章:
https://ithelp.ithome.com.tw/articles/10246049
我是取至WiKi與其他正規密碼學資料的。
讀者您好:
這邊我是以 AES 為例子來做說明,
並不是說 AES 會負責填充的任務,
有錯誤歡迎更正,感謝
瞭解,感謝您的回復。。