iT邦幫忙

2023 iThome 鐵人賽

DAY 18
0

除了前一章講到的數位簽章外,今天要繼續來介紹其他也能夠進行身分驗證的方法

訊息認證碼 (Message Authentication Code, MAC)
訊息認證碼 是一種與密鑰相關的短片段資訊,用於確認一段訊息的完整性和真實性,以及作為身分的驗證。
它是通過一個特定的演算法和密鑰,對消息進行加密計算得到的,可以用來檢查在訊息的傳遞過程中,訊息的內容是否被更改過,不管更改的原因是來自意外或是蓄意攻擊,同時還可以作為訊息來源的身分驗證,確認訊息的來源。

訊息認證碼的演算法中,通常會使用帶密鑰的雜湊函數(HMAC),或者塊密碼的帶認證工作模式(如GCM,CCM)。
資訊鑑別碼不能提供對資訊的保密,若要同時實現保密認證,同時需要對資訊進行加密。

工作原理:

  1. 生成MAC:傳送方使用一個密鑰和特定的MAC函數,對原始消息進行加密,生成一個MAC值。
  2. 傳輸:傳送方將原始消息和其相對應的MAC值,一起傳送給接收方。
  3. 驗證:接收方使用相同的密鑰和MAC函數,對收到的訊息計算新的MAC值,如果計算出的MAC值與接收到的MAC值相匹配,那麼就能確認訊息是真實的和完整的。

以下是一些常見的MAC算法:

HMAC (Hash-Based Message Authentication Code)
這是最常用的MAC方法之一,它使用一個加密的雜湊函數(如SHA-256)與一個密鑰一起生成MAC值。
CMAC (Cipher-Based Message Authentication Code)
使用區塊加密算法(如AES)生成 MAC值。

訊息認證碼與雜湊函數有些相似,但主要區別在於MAC是與密鑰相關的,而雜湊值不是,這表示只有知道正確密鑰的人才能生成正確的MAC。
使用MAC的優點是,它提供了消息的完整性和真實性驗證,但它不提供加密,這代表訊息本身在傳送的過程中,可能是可見的,除非它也被獨立地加密。

參考資料:
https://zh.wikipedia.org/zh-tw/%E8%A8%8A%E6%81%AF%E9%91%91%E5%88%A5%E7%A2%BC
https://zh.wikipedia.org/zh-tw/HMAC


上一篇
密碼學 (四)
下一篇
密碼學 (六)
系列文
不能不知的區塊鏈:入門指南30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言