密碼學基礎——分組密碼的運行模式

????????前面的文章中文我們已經知道了分組密碼是一種對稱密鑰密碼體制,其工作原理可以概括為將明文消息分割成固定長度的分組,然后對每個分組分別進行加密處理。

????????下面介紹分組密碼的運行模式

1.電碼本模式(ECB)

2.密碼分組鏈接模式(CBC)

3.密碼反饋模式(CFB)

4.輸出反饋模式(OFB)

5.計數器模式(CTR)

?

1.電碼本模式(ECB)

?????????ECB(Electronic Codebook)模式是最簡單的運行模式

工作原理:

????????將明文分組后,對每個64bit長的明文分組獨立地使用相同的密鑰進行加密,得到密文分組。相同的明文分組會產生相同的密文分組。

????????當密鑰確定時,對明文的每一個分組,都有一個惟一的密文與之對應。因此我們可以形象地認為有一個非常大的電碼本,對任意一個可能的明文分組,電碼本中都有一項對應于它的密文。

????????如果消息長于64比特,則將其分為長為64比特的分組,最后一個分組如果不夠64比特,則需要填充。解密過程也是一次對一個分組解密,而且每次解密都使用同一密鑰。

?

優點:簡單高效,每個分組的加密可以并行處理,易于硬件實現。

缺點:缺乏安全性,由于相同明文分組加密結果相同,容易受到已知明文攻擊,且不能隱藏明文的統計特性,不適用于對數據保密性要求較高的場景

?

2.密碼分組鏈接模式(CBC)

工作原理:在加密時,將前一個密文分組與當前明文分組進行異或操作后再進行加密。第一個明文分組需要與一個初始向量(IV)進行異或操作。解密時,先對密文分組解密,然后再與前一個密文分組異或得到明文分組。

?

優點:安全性較高,因為每個密文分組都依賴于前面的所有明文分組和密鑰,相同的明文分組在不同的位置加密后得到的密文不同,能有效隱藏明文的統計特性。

缺點:加密過程是串行的,無法并行處理,且對數據傳輸中的錯誤敏感,一個密文分組出錯會影響到后續分組的解密

?

3.密碼反饋模式(CFB)

工作原理:將前一個密文分組作為輸入,通過密鑰生成一個與明文分組等長的反饋值,該反饋值與當前明文分組進行異或得到密文分組。解密過程與加密類似,只是將密文分組作為輸入來生成反饋值,再與密文分組異或得到明文分組。

CFB加密時,加密算法的輸入是64比特移位寄存器,其初值為某個初始向量IV。加密算法輸出的最左(最高有效位) ?比特與明文的第一個單元 ? 異或,產生出密文的第一個單元 ? ,并傳送該單元。然后將移位寄存器的內容左移 ?位并將 ?送入移位寄存器最右邊(最低有效位) 位。這一過程繼續到明文的所有單元都被加密為止
解密時,將收到的密文單元與加密函數的輸出進行異或。

?

?

優點:可以將分組密碼轉換為流密碼,能夠對任意長度的數據進行加密,且可以實時處理數據,適用于對實時性要求較高的場景。

缺點:與 CBC 模式一樣,加密過程是串行的,無法并行處理,并且對錯誤敏感。

?

4.輸出反饋模式(OFB)

工作原理:通過密鑰生成一個與明文分組等長的輸出值,該輸出值與當前明文分組進行異或得到密文分組。在加密過程中,密鑰和一個初始向量通過加密算法不斷生成新的輸出值。解密時使用相同的密鑰和初始向量生成相同的輸出值,再與密文分組異或得到明文分組。

?

?

優點:對傳輸錯誤不敏感,因為每個明文分組的解密只依賴于自身的密文分組和生成的輸出值,不會像 CBC 和 CFB 模式那樣出現錯誤傳播。

缺點:安全性相對較低,若攻擊者能夠修改密文分組,可能會導致解密出的明文出現可預測的變化。

5.計數器模式(CTR)

工作原理:使用一個計數器,每次加密時將計數器的值作為輸入,通過密鑰生成一個與明文分組等長的密鑰流,然后將密鑰流與明文分組進行異或得到密文分組。計數器的值在每次加密后遞增。

優點:加密和解密可以并行進行,效率高,且對錯誤不敏感,適用于高速數據處理和并行計算的場景。

缺點:需要確保計數器的值在不同的加密過程中是唯一的,否則可能會導致安全性下降。

?

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

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

相關文章

Redlinux(2025.3.29)

1、將你的虛擬機的網卡模式設置為nat模式,給虛擬機網卡配置三個主機位分別為100、200、168的ip地址。(以nmtui命令為例) 2、測試你的虛擬機是否能夠ping通網關和dns,如果不能請修改網關和dns的地址。 首先打開虛擬網絡編輯器查看NAT設置里的網關IP&…

【PalladiumZ2 使用專欄 1 -- 波形 trigger 抓取詳細介紹】

文章目錄 Palladium Z2 OverviewPalladium 波形抓取Palladium 波形存放文件創建Palladium Trigger 斷點設置Palladium 加探針并 dumpPalladium 波形查看 Palladium Z2 Overview Cadence Palladium Z2 是 Cadence 推出的企業級硬件仿真加速平臺,旨在應對復雜 SoC 設…

Redisson分布式鎖:原理、使用

1. Redisson簡介 Redisson是一個基于Redis的Java客戶端庫,提供了豐富的分布式對象和服務(如分布式鎖、信號量、Map等)。其核心優勢在于??簡化分布式鎖的實現??,并解決了原生Redis分布式鎖的常見問題(如死鎖、誤刪…

Java大廠面試題 -- JVM 優化進階之路:從原理到實戰的深度剖析(2)

最近佳作推薦: Java大廠面試題 – 深度揭秘 JVM 優化:六道面試題與行業巨頭實戰解析(1)(New) 開源架構與人工智能的融合:開啟技術新紀元(New) 開源架構的自動化測試策略優…

MySQL學習筆記(四)——DML和DQL

目錄 1. DML 1.1 添加數據 1.1.1 給指定字段添加數據 1.1.2 給全部字段添加數據 1.1.3 批量添加數據 1.2 修改數據 1.3 刪除數據 2. DQL 2.1 基本語法 2.2 基礎查詢 2.2.1 查詢多個字段 2.2.2 字段設置別名 2.2.3 去除重復記錄 2.3 條件查詢 2.4 聚合函數 2.5 …

DeepSeek-MLA

MLA 結構 需要緩存 KV 向量共用的壓縮隱特征K 向量多頭共享的帶位置編碼的向量 為什么帶有位置信息的 Q 向量來自于隱特征向量,而帶有位置的 K 向量來自于 H 向量且共享呢? 最好的方法肯定是從H向量直接計算并且不共享,但是會大大增加顯存使…

檢索增強技術RAG和向量數據庫技術的優勢和劣勢,應用范圍和價值

RAG 和向量數據庫在技術棧中處于不同層級,前者側重生成任務的準確性與動態性,后者專注檢索效率與擴展性。在實際應用中,二者常協同工作,但也可獨立服務于不同場景。企業需根據需求選擇:若需生成內容,RAG 是…

Python爬蟲教程013:使用CrawlSpider爬取讀書網數據并保存到mysql數據庫

文章目錄 3.8 CrawlSpider介紹3.9 CrawlSpider爬取讀書網案例3.9.1 創建項目3.9.2 定義要爬取的數據結構3.9.3 獲取數據3.9.4 保存數據到本地3.9.5 保存數據到mysql數據庫3.9.6 完整項目下載3.8 CrawlSpider介紹 CrawlSpider 是 Scrapy 框架中 最常用的高級爬蟲類之一,用于構…

Three.js 系列專題 5:加載外部模型

內容概述 Three.js 支持加載多種 3D 文件格式(如 GLTF、OBJ、FBX),這讓開發者可以直接使用專業建模軟件(如 Blender、Maya)創建的復雜模型。本專題將重點介紹 GLTF 格式的加載,并調整模型的位置和材質。 學習目標 理解常見 3D 文件格式及其特點。掌握使用 GLTFLoader 加…

P1006 [NOIP 2008 提高組] 傳紙條 題解

題目傳送門 前言 每次準備摸魚時都在這道題的界面。 今天有空做做,順便寫一波題解,畢竟估值蹭蹭往下跳。 雙倍經驗:P1004 [NOIP 2000 提高組] 方格取數,P1006 [NOIP 2008 提高組] 傳紙條。 題意簡述 現有一個 m m m 行 n …

LLM架構解析:長短期記憶網絡(LSTM)(第三部分)—— 從基礎原理到實踐應用的深度探索

本專欄深入探究從循環神經網絡(RNN)到Transformer等自然語言處理(NLP)模型的架構,以及基于這些模型構建的應用程序。 本系列文章內容: NLP自然語言處理基礎詞嵌入(Word Embeddings&#xff09…

ffmpeg提取字幕

使用ffmpeg -i test.mkv 獲取視頻文件的字幕流信息如下 Stream #0:4(chi): Subtitle: subrip (srt) (default) Metadata: title : chs Stream #0:5(chi): Subtitle: subrip (srt) Metadata: title : cht Stream #0:6(jpn)…

Python設計模式:構建模式

1. 什么是構建模式 構建模式(Builder Pattern)是一種創建型設計模式,它允許使用多個簡單的對象一步步構建一個復雜的對象。構建模式通過將構建過程與表示分離,使得同樣的構建過程可以創建不同的表示。換句話說,構建模…

使用 VIM 編輯器對文件進行編輯

一、VIM 的兩種狀態 VIM(vimsual)是 Linux/UNIX 系列 OS 中通用的全屏編輯器。vim 分為兩種狀態,即命令狀態和編輯狀態,在命令狀態下,所鍵入的字符系統均作命令來處理;而編輯狀態則是用來編輯文本資料&…

GaussDB回調機制深度實踐:從事件驅動到系統集成

GaussDB回調機制深度實踐:從事件驅動到系統集成 一、回調機制核心概念 回調類型矩陣 二、核心實現技術棧 觸發器回調開發 sql -- 創建審計觸發器回調 CREATE OR REPLACE FUNCTION audit_trigger() RETURNS TRIGGER AS $$ BEGININSERT INTO audit_log (operati…

AI小白:AI算法中常用的數學函數

文章目錄 一、激活函數1. Sigmoid2. ReLU(Rectified Linear Unit)3. Tanh(雙曲正切)4. Softmax示例代碼:激活函數的實現 二、損失函數1. 均方誤差(MSE)2. 交叉熵損失(Cross-Entropy&…

idea 打不開terminal

IDEA更新到2024.3后Terminal終端打不開的問題_idea terminal打不開-CSDN博客

Python代碼list列表的使用和常用方法及增刪改查

Python代碼list列表的使用和常用方法及增刪改查 提示:幫幫志會陸續更新非常多的IT技術知識,希望分享的內容對您有用。本章分享的是Python基礎語法。前后每一小節的內容是存在的有:學習and理解的關聯性,希望對您有用~ python語法-p…

Open CASCADE學習|讀取點集擬合樣條曲線(續)

問題 上一篇文章已經實現了樣條曲線擬合,但是仍存在問題,Tolerance過大擬合成直線了,Tolerance過大頭尾波浪形。 正確改進方案 1?? 核心參數優化 通過調整以下參數控制曲線平滑度: Standard_Integer DegMin 3; // 最低階…

Python基礎知識點(列表與字典)

列表list[] # list [12,34,56,78] # print(list) """ 1.list可以保存同一類型的數據 或 不同類型的數據 2.list是有序的,所以可以通過[下標]訪問元素 3.list保存重復的值 4.list是可變的,可以添加 刪除元素 """ …