【密碼學】消息認證

? ? ? ? 你發送給朋友一條消息(內容:明天下午來我家吃飯),這一過程中你不想讓除你朋友以外的人看到消息的內容,這就叫做消息的機密性,用來保護消息機密性的方式被叫做加密機制。

????????現在站在朋友的視角,某一天他收到了一封來信,他怎么知道消息是誰發給他的呢?(也許你想到了,簽個名不就好了,但如果有人偽造我的簽名給我朋友發消息怎么辦),他怎么得知消息里面的內容是真實的呢?(萬一有人篡改了消息內容:“后天早上來我家吃飯”)

? ? ? ? 這時候我們想確保對消息內容的真實性和完整性(比如沒有被篡改),也想確保消息來源的真實性(是我的朋友發給我的,不是其他別的什么人)。那么這就需要一種方式來對消息進行處理,用來保護消息的完整性,內容真實性和來源真實性,這種方式被叫做消息認證!

一、什么是消息認證?

????????消息認證(Message Authentication),也稱為數據源認證,是信息安全領域的一個關鍵概念,主要涉及驗證接收到的數據是否真實無誤地來源于聲稱的發送方,以及數據在傳輸過程中是否未被篡改。消息認證確保了信息的完整性真實性防止中間人攻擊重放攻擊等安全威脅。

【注】拿上面的例子來說明重放攻擊,比如我朋友上周已經來我家吃過飯了,這周我的朋友又收到了一條消息,和上周我發他的一模一樣,因為是一模一樣所以我的朋友自然也就不會懷疑,他屁顛屁顛的跑來我家吃飯,結果我說我沒有發消息給他,他失落的回到家,發現家里被入室盜竊了。(這只是一種重放攻擊所造成的損失的假設,實際上網絡安全中重放攻擊更多的是重放某個獲取東西的請求,這樣攻擊者就能通過重放攻擊得到只有授權用戶才能得到的響應)

消息認證的目的:消息認證的主要目的是驗證消息的完整性(完整性認證)確認消息的來源(源點認證)。它確保消息在傳輸過程中未被篡改,并且來自聲稱的發送方。

【注】在消息認證之前,收發雙發就已經通過某種方式建立了信任關系,并且共享了密鑰。這里更確切的說,我可以和一群人建立信任關系,我們都共享了密鑰,所以消息認證并不能讓我知道我收到的消息到底是誰發來的,我只知道是我信任的人(持有密鑰的人)發給我的。

二、實現消息認證的方式

(1)消息認證碼 MAC

????????消息認證碼(Message Authentication Code,簡稱MAC)是消息認證的一種實現方式,它通常基于共享密鑰,由發送方使用密鑰和消息內容生成一個短的固定長度的值,然后將這個值附加在消息后面一起發送。接收方收到消息后,使用同樣的密鑰和消息內容重新計算MAC值,然后與接收到的MAC值進行比較,以此來驗證消息的真實性和完整性。

MAC的主要特性包括:

  1. 完整性:MAC能夠檢測出傳輸過程中的任何更改,無論是無意的錯誤還是惡意的篡改。

  2. 真實性:由于MAC是使用共享密鑰計算的,所以只有持有相同密鑰的實體才能生成有效的MAC,這保證了消息來源于持有正確密鑰的實體。因此消息的真實性問題轉換為了如何安全的分發密鑰。一旦密鑰泄露那么也沒有辦法確認對方的真實性。

  3. 機密性MAC本身并不提供對消息內容的加密,但是它可以與加密技術結合使用,以實現同時保護消息的隱私和完整性。

(2)消息檢測碼 MDC

????????消息檢測碼(Message Detection Code,簡稱MDC)是一種用于檢測數據是否發生變化的校驗碼,但與消息認證碼(MAC)不同的是,MDC不提供數據源的身份驗證或保密性

????????MDC主要用于檢測數據在傳輸過程中是否發生了非故意的改變,例如由噪聲、干擾或其他物理因素引起的錯誤。它不提供防止惡意篡改的功能,因為任何人都可以生成正確的MDC,只要他們有原始數據。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/44805.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/44805.shtml
英文地址,請注明出處:http://en.pswp.cn/web/44805.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用PyQt5實現添加工具欄、增加SwitchButton控件

前言:通過在網上找到的“電池電壓監控界面”,學習PyQt5中添加工具欄、增加SwitchButton控件,在滑塊控件右側增加文本顯示、設置界面背景顏色、修改文本控件字體顏色等。 1. 上位機界面效果展示 網絡上原圖如下: 自己使用PyQt5做…

springboot異常(一):springboot自定義全局異常處理

🌷1. 自定義一個異常類 自定義一個異常,有兩個變量異常代碼、異常消息,定義了兩個構造方法,一個無參構造方法,一個所有參數構造方法。 在構造方法中要掉用父類的構造方法,主要目的是在日志或控制臺打印異…

【Linux】多線程_3

文章目錄 九、多線程3. C11中的多線程4. 線程的簡單封裝 未完待續 九、多線程 3. C11中的多線程 Linux中是根據多線程庫來實現多線程的,C11也有自己的多線程,那它的多線程又是怎樣的?我們來使用一些C11的多線程。 Makefile: te…

Linux - 探索命令行

探索命令行 Linux命令行中的命令使用格式都是相同的: 命令名稱 參數1 參數2 參數3 ...參數之間用任意數量的空白字符分開. 關于命令行, 可以先閱讀一些基本常識. 然后我們介紹最常用的一些命令: ls用于列出當前目錄(即"文件夾")下的所有文件(或目錄). 目錄會用藍色…

面試經典題型:調用HashMap的put方法的具體執行流程

在調用put方法時時,有幾個關鍵點需要考慮: 哈希沖突的發生與解決: 哈希沖突指不同的鍵通過哈希函數計算得到相同的哈希值,導致它們應該存放在哈希表的同一個位置。解決沖突的常用方法包括開放尋址法和鏈表法(或其升級形…

CSIP-FTE考試專業題

靶場下載鏈接: https://pan.baidu.com/s/1ce1Kk0hSYlxrUoRTnNsiKA?pwdha1x pte-2003密碼:admin123 centos:root admin123 解壓密碼: PTE考試專用 下載好后直接用vmware打開,有兩個靶機,一個是基礎題&#x…

【CTF-Crypto】數論基礎-02

【CTF-Crypto】數論基礎-02 文章目錄 【CTF-Crypto】數論基礎-021-16 二次剩余1-20 模p下-1的平方根*1-21 Legendre符號*1-22 Jacobi符號*2-1 群*2-2 群的性質2-3 阿貝爾群*2-4 子群2-11 群同態2-18 原根2-21 什么是環2-23 什么是域2-25 子環2-26 理想2-32 多項式環 1-16 二次剩…

打造智慧校園德育管理,提升學生操行基礎分

智慧校園的德育管理系統內嵌的操行基礎分功能,是對學生日常行為規范和道德素養進行量化評估的一個創新實踐。該功能通過將抽象的道德品質轉化為具體可量化的指標,如遵守紀律、尊師重道、團結協作、愛護環境及參與集體活動的積極性等,為每個學…

醫療器械FDA |FDA網絡安全測試具體內容

醫療器械FDA網絡安全測試的具體內容涵蓋了多個方面,以確保醫療器械在網絡環境中的安全性和合規性。以下是根據權威來源歸納的FDA網絡安全測試的具體內容: 一、技術文件審查 網絡安全計劃:制造商需要提交網絡安全計劃,詳細描述產…

Matlab【光伏預測】基于雪融優化算法SAO優化高斯過程回歸GPR實現光伏多輸入單輸出預測附代碼

% 光伏預測 - 基于SAO優化的GPR % 數據準備 % 假設有多個輸入特征 X1, X2, …, Xn 和一個目標變量 Y % 假設數據已經存儲在 X 和 Y 中,每個變量為矩陣,每行表示一個樣本,每列表示一個特征 % 參數設置 numFeatures size(X, 2); % 輸入特征的…

Spring Boot集成easyposter快速入門Demo

1.什么是easyposter? easyposter是一個簡單的,便于擴展的繪制海報工具包 使用場景 在日常工作過程中,通常一些C端平臺會伴隨著海報生成與分享業務。因為隨著移動互聯網的迅猛發展,社交分享已成為我們日常生活的重要組成部分。海報分享作為…

visual studio 2019版下載以及與UE4虛幻引擎配置(過程記錄)(官網無法下載visual studio 2019安裝包)

一、概述 由于需要使用到UE4虛幻引擎,我使用的版本是4.27版本的,其官方默認的visual studio版本是2019版本的,相應的版本對應關系可以通過下面的官方網站對應關系查詢。https://docs.unrealengine.com/4.27/zh-CN/ProductionPipelines/Develo…

MMSegmentation筆記

如何訓練自制數據集? 首先需要在 mmsegmentation/mmseg/datasets 目錄下創建一個自制數據集的配置文件,以我的蘋果葉片病害分割數據集為例,創建了mmsegmentation/mmseg/datasets/appleleafseg.py 可以看到,這個配置文件主要定義…

python:使用matplotlib庫繪制圖像(四)

作者是跟著http://t.csdnimg.cn/4fVW0學習的,matplotlib系列文章是http://t.csdnimg.cn/4fVW0的自己學習過程中整理的詳細說明版本,對小白更友好哦! 四、條形圖 1. 一個數據樣本的條形圖 條形圖:常用于比較不同類別的數量或值&…

3dmax-vray5大常用材質設置方法

3dmax云渲染平臺——渲染100 以高性價比著稱,是預算有限的小伙伴首選。 15分鐘0.2,60分鐘內0.8;注冊填邀請碼【7788】可領30元禮包和免費渲染券 提供了多種機器配置選擇(可以自行匹配環境)最高256G大內存機器,滿足不同用戶需求。 木紋材質 肌理調整&…

函數語意學(The Sematics of Function)

1、非靜態成員函數轉化為非成員函數 c 設計準則之一就是:非靜態成員函數至少和非成員函數有相同的效率。 也就是說下面兩個函數具有相同的效率: float magnitude(const Point3d * this){...}; float Point3d::magnitude(){...};以 float Point3d::mag…

練習9.5 彩票分析

練習 9.14:彩票 創建?個列表或元素,其中包含 10 個數和 5 個字 ?。從這個列表或元組中隨機選擇 4 個數或字?,并打印?條消息, 指出只要彩票上是這 4 個數或字?,就中?獎了。 練習 9.15:彩票分析 可以使…

面試題 05. 替換空格

05. 替換空格 題目描述示例 題解 題目描述 請實現一個函數,把字符串 s 中的每個空格替換成"%20"。 示例 示例1 輸入:s “We are happy.” 輸出:“We%20are%20happy.” 題解 class Solution { public:string replaceSpace(stri…

jQuery 元素選擇器集合

jQuery 提供了一套非常強大的元素選擇器,它們可以以各種方式定位和操作網頁文檔中的元素。 以下是 jQuery 中的一些常用選擇器: 1、基本選擇器 #id:選擇 ID 為 id 的元素。.(類選擇器):選擇具有特定類的…

2.5 OJ 網站的使用與作業全解

目錄 1 OJ 網站如何使用 1.1 注冊賬戶 1.2 登錄賬戶 1.3 做題步驟 2 本節課的 OJ 作業說明 3 章節綜合判斷題 4 課時2作業1 5 課時2作業2 6 課時2作業3 1 OJ 網站如何使用 〇J 是英文 Online Judge 的縮寫,中文翻譯過來是在線判題。當用戶將自己編寫的代碼…