密碼技術中分組模式解析

目錄

1. 概述

2. ECB模式

2.1 概述

2.2 ECB模式的加密

2.3 ECB模式的解密

2.4 優點

2.5 缺點

3. CBC模式【推薦】

3.1 概述

3.2 CBC模式的加密

3.3 CBC模式的解密

3.4 優點

3.5 缺點?

4. CFB模式

4.1 概述

4.2 CFB模式的加密

4.3 CFB模式的解密

4.4 優點

4.5 缺點

5. OFB模式

5.1 概述

5.2 OFB模式的加密

5.3 OFB模式的解密

5.4 CFB模式與OFB模式的對比

6. 參考


1. 概述

????????密碼算法可以分為分組算法和流密碼兩種。

  • 分組密碼(block cipher),是每次只能處理特定長度的一塊數據的一類密碼算法,這里的“一塊”就稱為分組(block)。一個分組的比特數就稱為分組長度(block length)。

  • 流密碼(stream cipher),是對數據流進行連續處理的一類密碼算法。

????????DES、3DES、AES等大多數對稱密碼算法都屬于分組密碼,它們只能加密固定長度的明文。如果需要加密任意長度的明文,就需要對分組密碼進行迭代,而分組密碼的迭代方法就稱為分組密碼的“模式”。

  • DES和3DES的分組長度都是64bit(8byte),一次只能加密64bit的明文,并生成64bit的密文。

  • AES的分組長度為128bit(16byte),因此AES一次可加密128bit的明文,并生成128bit的密文。

2. ECB模式

2.1 概述

????????ECB模式全稱Electronic CodeBook mode,電子密碼本模式。

????????使用ECB模式加密時,相同的明文分組會被轉換為相同的密文分組,也就是說,我們可以將其理解為是一個巨大的“明文分組→密文分組”的對應表,因此ECB模式也稱為電子密碼本模式。

當最后一個明文分組的內容小于分組長度時,需要用一些特定的數據進行填充(padding)。

2.2 ECB模式的加密

2.3 ECB模式的解密

2.4 優點

  • 一個分組損壞不影響其它分組。
  • 可以并行加解密。

2.5 缺點

  • 相同的明文分組會轉換為相同的密文分組。
  • 無需破譯密碼就能操縱明文(每個分組獨立且前后文無關,直接增加或刪除一個分組不影響其它分組解密過程的正確性)。

3. CBC模式【推薦】

3.1 概述

????????CBC 模式的全稱是Cipher Block Chaining模式(密文分組鏈接模式),之所以叫這個名字,是因為密文分組是像鏈條一樣相互連接在一起的。

????????在CBC模式中,將明文分組與前一個密文分組進行XOR運算,然后再進行加密。每個分組的加解密都依賴于前一個分組。而第一個分組沒有前一個分組,因此需要一個初始化向量(initialization vector),通常縮寫為IV。

3.2 CBC模式的加密

3.3 CBC模式的解密

3.4 優點

  • 加密結果與前文相關,有利于提高加密結果的隨機性。
  • 可并行解密。

3.5 缺點?

  • 無法并行加密。
  • 一個分組損壞,如果密文長度不變,則兩個分組受影響。
  • 一個分組損壞,如果密文長度改變,則后面所有分組受影響。

4. CFB模式

4.1 概述

????????CFB模式的全稱Cipher FeedBack mode,密文反饋模式。

????????在CBC模式中,前一個密文分組會被送回到密碼算法的輸入端。所謂反饋,這里指的就是返回輸入端的意思。

????????在CBC和EBC模式中,明文分組都是通過密碼算法進行加密的。而在CFB模式中,明文分組并沒有通過加密算法直接進行加密,明文分組和密文分組之間只有一個XOR。

????????CFB模式是通過將“明文分組”與“密碼算法的輸出”進行XOR運行生成“密文分組”。CFB模式中由密碼算法生成的比特序列稱為密鑰流(key stream)。密碼算法相當于密鑰流的偽隨機數生成器,而初始化向量相當于偽隨機數生成器的種子。(CFB模式有點類似一次性密碼本)

4.2 CFB模式的加密

4.3 CFB模式的解密

4.4 優點

  • 支持并行解密。
  • 不需要填充(padding)。

4.5 缺點

  • 不能抵御重放攻擊(replay attack)。
  • 不支持并行加密。

5. OFB模式

5.1 概述

????????OFB 模式的全稱是Output-Feedback模式(輸出反饋模式)。在OFB模式中,密碼算法的輸出會反饋到密碼算法的輸入中。

????????OFB模式并不是通過密碼算法對明文直接進行加密的,而是通過將“明文分組”和“密碼算法的輸出”進行XOR來產生“密文分組”的,在這一點上OFB模式和CFB模式非常相似。

5.2 OFB模式的加密

5.3 OFB模式的解密

5.4 CFB模式與OFB模式的對比

????????OFB模式和CFB模式的區別僅僅在于密碼算法的輸入。

????????CFB模式中,密碼算法的輸入是前一個密文分組,也就是將密文分組反饋到密碼算法中,因此就有了“密文反饋模式”這個名字。????????

????????相對地,OFB模式中,密碼算法的輸入則是密碼算法的前一個輸出,也就是將輸出反饋給密碼算法,因此就有了“輸出反饋模式”這個名字。

????????由于CFB模式中是對密文分組進行反饋的,因此必須從第一個明文分組開始按順序進行加密,也就是說無法跳過明文分組1而先對明文分組2進行加密。

????????相對地,在OFB模式中,XOR所需要的比特序列(密鑰流)可以事先通過密碼算法生成,和明文分組無關。只要提前準備好所需的密鑰流,則在實際從明文生成密文的過程中,就完全不需要動用密碼算法了,只要將明文與密鑰流進行xoR就可以了。和AES等密碼算法相比,XOR 運算的速度是非常快的。這就意味著只要提前準備好密鑰流就可以快速完成加密。換個角度來看,生成密鑰流的操作和進行XOR運算的操作是可以并行的。

6. 參考

????????圖解密碼技術(第3版) (日)結城浩 著;周自恒 譯; 人民郵電出版社;2016-06-01

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

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

相關文章

智慧地產視覺監控系統開源了,系統采用多種優化技術,提高系統的響應速度和資源利用率

智慧地產視覺監控平臺是一款功能強大且簡單易用的實時算法視頻監控系統。它的愿景是最底層打通各大芯片廠商相互間的壁壘,省去繁瑣重復的適配流程,實現芯片、算法、應用的全流程組合,從而大大減少企業級應用約95%的開發成本。用戶只需在界面上…

Python打開Excel文檔并讀取數據

Python 版本 目前 Python 3 版本為主流版本,這里測試的版本是:Python 3.10.5。 常用庫說明 Python 操作 Excel 的常用庫有:xlrd、xlwt、xlutils、openpyxl、pandas。這里主要說明下 Excel 文檔 .xls 格式和 .xlsx 格式的文檔打開和讀取。 …

Drools開源業務規則引擎(二)- Drools規則語言(DRL)

文章目錄 1.DRL文件的組成:2.package3.import4.function5.query6.declare7.global8.rule8.1.規則屬性8.2.LHS8.2.1.語法格式8.2.2.運算符優先級8.2.3.特殊的運算符1.matches, not matches2.contains, not contains3.memberOf, not memberOf4.in, notin5.soundslike6…

Powershell 獲取電腦保存的所有wifi密碼

一. 知識點 netsh wlan show profiles 用于顯示計算機上已保存的無線網絡配置文件 Measure-Object 用于統計數量 [PSCustomObject]{ } 用于創建Powershell對象 [math]::Round 四舍五入 Write-Progress 顯示進度條 二. 代碼 只能獲取中文Windows操作系統的wifi密碼如果想獲取…

護網在即,助力安服仔漏洞掃描~

整合了個漏掃系統,安服仔必備~ 使用場景 網前布防,漏洞掃描,資產梳理 使用方法: 啟動虛擬機后運行命令: ./StartSystemScript.sh 輸入密碼attack 啟動完成后瀏覽器打開網站: http://IP:5000 相關賬戶…

Git 常用命令備忘

1、刪除 (1)、git push origin --delete dev 刪除遠程分支 (2)、git branch -d dev 刪除本地分支 git branch -D dev 強制刪除本地分支 2、創建分支 (1)、git checkout -b dev 創建本地分支 (2)、git push origin dev 創建遠程分支,此時本地分支與遠程…

02-android studio實現下拉列表+單選框+年月日功能

一、下拉列表功能 1.效果圖 2.實現過程 1&#xff09;添加組件 <LinearLayoutandroid:layout_width"match_parent"android:layout_height"wrap_content"android:layout_marginLeft"20dp"android:layout_marginRight"20dp"android…

表單驗證的藝術:WebKit 支持 HTML 表單的全面解析

表單驗證的藝術&#xff1a;WebKit 支持 HTML 表單的全面解析 在 Web 開發的多彩世界中&#xff0c;表單是用戶與網頁交互的重要橋梁。WebKit 作為眾多現代瀏覽器的渲染引擎&#xff0c;提供了強大的 HTML 表單支持和驗證功能。本文將深入探討 WebKit 如何支持 HTML 表單和進行…

力扣225題解析:使用隊列實現棧的三種解法(Java實現)

引言 在算法和數據結構中&#xff0c;如何用隊列實現棧是一個常見的面試題和實際應用問題。本文將探討力扣上的第225題&#xff0c;通過不同的方法來實現這一功能&#xff0c;并分析各種方法的優劣和適用場景。 問題介紹 力扣225題目要求我們使用隊列實現棧的下列操作&#…

【CMake】基本概念和快速入門

#1. install 是什么 在CMake或項目構建中&#xff0c;install步驟通常指的是將生成的可執行文件、庫文件、頭文件和其他資源復制到指定的安裝目錄&#xff0c;以便進行發布、部署或在其他項目中使用。這個過程通常包括以下內容&#xff1a; 1. 安裝目標 安裝目標是指需要安裝…

運維系列.Nginx中使用HTTP壓縮功能

運維專題 Nginx中使用HTTP壓縮功能 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550…

【刷題匯總--字符串中找出連續最長的數字串、島嶼數量、拼三角】

C日常刷題積累 今日刷題匯總 - day0071、字符串中找出連續最長的數字串1.1、題目1.2、思路1.3、程序實現 -- 比較1.4、程序實現 -- 雙指針 2、島嶼數量2.1、題目2.2、思路2.3、程序實現 - dfs 3、拼三角3.1、題目3.2、思路3.3、程序實現 -- 蠻力法3.4、程序實現 -- 巧解(單調性…

pwm 呼吸燈(如果燈一直亮或者一直滅)

&#xff08;這個文章收藏在我的csdn keil文件夾下面&#xff09; 如果這樣設置預分頻和計數周期&#xff0c;那么算出來的pwm頻率如下 人眼看起來就只能是一直亮或者滅&#xff0c;因為pwm的頻率太高了&#xff0c;但是必須是頻率夠高&#xff0c;才能實現呼吸燈的緩慢亮緩慢…

SPL-404:如何徹底改變Solana上的NFT與DeFi

在不斷發展的數字資產領域中&#xff0c;非同質化Token&#xff08;NFT&#xff09;已成為一股革命性力量&#xff0c;徹底改變了我們對數字所有權的看法和互動方式。從藝術和收藏品到游戲和虛擬房地產&#xff0c;NFT吸引了創作者、投資者和愛好者的想象力。 本指南將帶您進入…

MySQL數據庫文件在Linux下存放位置

數據庫文件默認在&#xff1a;cd /usr/share/mysql 配置文件默認在&#xff1a;/etc/my.cnf 數據庫目錄&#xff1a;/var/lib/mysql/ 配置文件&#xff1a;/usr/share/mysql(mysql.server命令及配置文件) 相關命令&#xff1a;/usr/bin(mysqladmin、mysqldump等命令)(*mysql的一…

MyBatisPlus-分頁插件的基本使用

目錄 配置插件 使用分頁API 配置插件 首先&#xff0c;要在配置類中注冊MyBatisPlus的核心插件&#xff0c;同時添加分頁插件。&#xff08;可以放到config軟件包下&#xff09; 可以看到&#xff0c;我們定義了一個配置類&#xff0c;在配置類里聲明了一個Bean,這個Bean的名…

排序 -- 計數排序以及對排序的總結

到了這篇文章就說明常見的排序我們就快要講完了&#xff0c;那這篇文章我們就講一下非比較排序--計數排序。 一、非比較排序 1.基本思想 計數排序又稱為鴿巢原理&#xff0c;是對哈希直接定址法的變形應用。 操作步驟&#xff1a; 統計相同元素出現次數 根據統計的結果將序列…

昇思25天學習打卡營第14天|基于MindNLP的文本解碼原理

基于MindNLP的文本解碼原理 文本解碼 文本解碼是自然語言處理中的一個關鍵步驟,特別是在任務如機器翻譯、文本摘要、自動回復生成等領域。解碼過程涉及將編碼器(如語言模型、翻譯模型等)的輸出轉換為可讀的文本序列。以下是一些常見的文本解碼方法和原理: 1. 自回歸解碼:…

打造屬于你的私人云盤:在 OrangePi AIpro 上搭建個人云盤

隨著數字化時代的到來&#xff0c;數據的存儲和管理變得愈發重要。相比于公共云存儲服務&#xff0c;搭建一個屬于自己的個人云盤不僅能夠更好地保護隱私&#xff0c;還可以更靈活地管理數據。 近期剛好收到了一個 香橙派 AIpro 的開發板&#xff0c;借此機會用來搭建一個屬于…

美股交易相關知識點 持續完善中

美股交易時間 美東時間&#xff1a;除了凌晨 03:50 ~ 04:00 這10分鐘時間不可交易以外&#xff0c;其他時間都是可以交易的。 如果是在香港或者北京時間下交易要區分兩種: 美東夏令時&#xff1a;除了下午 15:50 ~ 16:00 這10分鐘時間不可交易以外&#xff0c;其他時間都是可…