密碼學專題 數據填充的方式|序列加密的方式

  • 電子密碼本模式和加密分組鏈接模式的分組算法都要求加密輸入的分組是固定長度 的,但是大多數輸入明文可能都不是分組長度的整數倍,也就是說,最后一個分組一般來 說是不足一個分組長度的。為了使分組加密算法能夠正常工作,通常使用填充技術對最后 一個分組進行填充以使該分組正好為一個分組的固定長度。
  • 不足的部分填充0或者1
  • OpenSSL中使用的填充方法。使用該分組不夠的字節的數作為值填充各個要填充的字節,這 樣,在解密恢復的時候,檢查最后一個字節的值就知道要刪除的填充字節的數目。但是為 了使這種方法能正確工作,即便最后一個分組是完整的,也要增加一個分組作為填充
  • 例 如分組長度位是8字節 (64位),最后一個分組長度為5個字節,那么需要填充的字節是3,那么就使用數值3填充最后的3個字節。

  • ?分組長度也是8字節 (64位),但是最后一個分組長度是完整的填充示意圖,填充的字節 長度就是8個字節,數值為8

  • 上述方法有一個缺點,就是經過填充后,密文長度跟明文長度不一樣,這在很多應用 中是非常不方便的。為此提出了一種稱為密文挪用的分組填充辦法?

?

序列加密模式?

  • 分組加密模式每次對一組數據進行加密處理,而序列加密模式則不同,它每次對一位明文進行簡單運算 (一般是異或運算)從而得到密文
  • 一個序列加密模式結構一般由密鑰序列發生器、運算單元(進行上述的簡單的運算,比如進行異或運算)、明文輸入和密文輸出組成
  • 假設密鑰序列發生器的輸出位序列為K 1,K2 ,K3 ......,明文輸入為P 1,P2,P3......,密文輸出用C1、C2、C3......表示,序列加密模式可以使用公式如下

  • ?序列加密模式的安全性完全依賴密鑰序列的安全性,也就是說,依賴密鑰序列發生器 的安全性。假如密鑰序列輸出總是為0,那么相當于沒有加密,該加密系統就沒有任何存在的意義,如果密鑰序列是完全隨機不重復的,那么該加密系統的安全性相當于一次一亂 密碼本方式,幾乎是不可破譯的。當然,實際上很難構造出輸出完全隨機的密鑰序列發生器。
  • 密鑰序列發生器的輸出雖然應該看起來是隨機的,但必須是確定的,也就是說應該是可以控制的,否則如果加密跟解密的輸出密鑰序列不一樣,就不可能進行正確的數據 解密。
  • 密鑰序列發生器的輸出不能每次都相同,否則就非常容易破密,沒有任何安全性。在 一個密鑰序列發生器每次輸出都是一樣的情況下,攻擊者如果有機會獲得一份明文跟密文對應的數據,他就可以恢復出密鑰,從而可以用該密鑰來讀取任何使用該序列加密算法加 密的數據,不僅僅是以后的數據,也可以包括以前有辦法截取到的數據。所以,為了使密鑰序列發生器每次輸出不一樣,我們需要設置其狀態,使得其開始輸出的狀態都不同,這個初始化的向量就是密鑰。這樣就增加了攻擊者攻擊的難度,如果他有辦法獲得一個密鑰,只要更換密鑰,他就只好獲得新的密鑰,但是很可能也是徒勞。
  • 一個密鑰序列發生器理論上可以抽象為三部分:內部狀態、狀態轉移函數及輸出函數,如圖所示。內部狀態描述了密鑰序列發生器當前的內部狀態,對于一個同樣結構的密鑰序列發生器,相同的內部狀態應該輸出相同的密鑰序列,否則就不可能進行正確的 加密和解密。狀態轉移函數描述了從當前狀態轉移到下一個狀態的規則,從而產生一個新的狀態輸出函數對內部狀態進行計算等處理,從而輸出密鑰序列。在實際應用中,這些組件的劃分有時候并非那么明確。對于密鑰序列發生器來說,密鑰可以看作是對其內部狀 態進行初始化或重置的向量

?自同步序列加密模式

  • 自同步序列加密模式又稱為密文自動密鑰,它的主要思想是密鑰序列跟以前一定數量 的密文位相關,即密鑰序列是以前一定數量密文位的函數。如圖所示是自同步序列加密模 式的加密和解密框架圖。

  • 如圖所示的自同步序列加密模式中,內部狀態就是由以前密文的n 位組成,而 內部狀態中的n位密文作為輸出函數的輸入,所以,輸出的密鑰序列的復雜性和安全性完全依賴于輸出函數。輸出函數通常可以有各種各樣的形式,比如可以使用分組加密算法或 單向散列函數算法為主體構成。因為在自同步序列加密模式中,解密端的內部狀態在從開 始到收到n位密文之后,自動跟密文序列進行同步的解密,所以稱為自同步序列加密模式。
  • 在自同步序列加密模式中,不需要進行人工的同步,一般來說,可以在開始的n 位 (假設內部狀態是n位密文的函數)之前,可以隨便傳送一些信息,這些解密一般是不正確的,在收到n位密文之后,就開始實現同步,能夠進行信息的正確解密了。這種能夠自動進行解密密鑰同步的功能在某些應用中是很有用的。
  • 自同步序列加密模式事實上跟分組加密模式中的加密反饋模式很相似,同樣存在錯誤擴散問題。也就是說,如果有一位密文發生了錯誤,那么隨后的n位密文的解密都不能正確進行
  • 在密鑰沒有更換的情況下,自同步序列加密模式很容易受到回放攻擊,攻擊者可以將 記錄下的密文重新發送給接收者,因為解密器能夠自動進行同步,所以接收端會重復接收到正確的解密信息。這在一些電子交易應用中可能給攻擊者帶來巨大的利益。

自同步加密模式的特點

  • ?內部狀態是前面n位固定長度密文的函數。
  • 算法的安全性依賴于輸出函數的復雜性和安全性。
  • 會產生密文錯誤擴散,密文中一位發生錯誤,會導致其后n位密文不能正確解密。
  • 解密的時候具有密鑰序列和密文自動同步的功能,具有同步錯誤自恢復功能。
  • 明文長度和密文長度相同。
  • 容易受到回放攻擊。

?同步序列加密模式

  • 同步序列加密模式又稱為密鑰自動密鑰加密,它的特點是密鑰序列的產生跟處理的消息是不相關,相互獨立的。如圖所示是同步序列加密模式的加密和解密流程。

  • 在加密端,密鑰序列發生器在使用密鑰進行初始化后開始產生密鑰序列,在解密端, 密鑰序列發生器使用同樣的密鑰進行狀態初始化從而產生同樣的密鑰序列,這樣就能夠開 始進行正確的加密和解密。一般來說,加密端和解密端的同步都是通過相同的密鑰進行狀 態初始化設置實現的。由于在加密和解密端必須產生相同的密鑰,所以事實上同步序列加 密模式的密鑰發生器產生的密鑰必須是確定的,必須保證這些輸出密鑰序列在相當長的一 個范圍內不能重復,否則安全性將得不到保證。當然,最好是不重復,但這基本上是不可 能做到的。
  • 如果在解密過程中同步狀態被破壞了,比如增加或刪除了一個密文位或者密鑰序列發生器跳過了一個周期,那么必須重新進行同步,否則數據不可能進行正確的解密。所以同步序列加密模式對同步錯誤是沒有辦法恢復的。
  • 同步序列加密模式不會產生密文錯誤擴散,如果一個密文位發生了錯誤,它只會影響該位的正確解密,而不會對其他任何密文位的解密產生影響。因為同步序列加密模式不會對密鑰和密文進行自動同步,所以能夠一定程度上防止直接針對密文的一些攻擊。比如在密文中插入或刪除一位很容易被發現,這時候因為失去同 步,解密的可能都是亂碼。在自同步序列加密模式下采用的簡單回放攻擊,對同步序列加密模式也是基本無效的。?

同步序列加密模式的特點

  • 密鑰序列的產生跟明文和密文消息都無關。
  • 不會產生密文錯誤擴散,但是沒有同步錯誤自動恢復功能。
  • 密文和明文長度相同。

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

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

相關文章

win10此電腦不見了_教程 | win10總提示“你要允許此應用對電腦的修改嗎”,如何關閉?...

在使用電腦的時候,你是否曾遇到過這樣的情況,點擊打開軟件的時候,系統總是提示我們“你要允許此應用對你的設備進行修改嗎?”難道是軟件中病毒了嗎?,這其實上并沒有什么用處,只是系統無法判斷軟…

java 小時轉換為xx天xx小時

題目 為抵抗洪水,戰士連續作戰89小時,編程計算共多少天零多少小時? 代碼 使用/與% class ExchangeTime {public static void main(String[] args) {/*為抵抗洪水,戰士連續作戰89小時,編程計算共多少天零多少小時&a…

密碼學專題 加密模式的選擇|傳輸數據加密

分組加密模式和序列加密模式。它們之間最大的區 別在于分組加密模式每次對一組數據進行加密運算處理,而序列加密模式則逐位對數據進 行加密運算處理。事實上,在實際設計應用的算法中,并沒有那么嚴格的區別,它們有可能是相互結合的…

微信公眾號數據2019_2019年9月原創公眾號排行榜數據報告出爐

西瓜數據發布 2019 年 9 月原創公眾號排行榜,分別從西瓜指數、原創文章占比、周期內公眾號發文次數、發文篇數、總閱讀數、頭條平均閱讀數等方面展示公眾號數據。榜單說明1、涉及榜單本期月榜截取 ①財經、②教育、③娛樂、④科技、⑤體育、⑥游戲、⑦文化、⑧美食、…

java 求100天之后是周幾

題目 今天是周二,100天以后是周幾? 代碼 代碼1:減去天數,使循環從周一開始 //方法1:減去天數,使循環從周一開始int today2;//7天一個循環:3 4 5 6 7 1 2 3 4 5 6 7int after100;//(100-5)%…

密碼學專題 OpenSSL專題

OpenSSL總體架構 軟件包分為三個主要的功能部分:密碼算法庫 、 SSL協議庫及應用程序 MacOS,MS,OS/2及 VMS這幾個目錄,包含了在不同的 平臺編譯時的環境變量配置文件,在安裝編譯完成之后,這幾個目錄就沒有作…

java 華氏溫度轉換為攝氏溫度

題目 小明要到美國旅游,可是那里的溫度是以華氏度為單位記錄的。 它需要一個程序將華氏溫度(80度)轉換為攝氏度,并以華氏度和攝氏度為單位分別顯示該溫度。 公式:華氏溫度(攝氏溫度-32)/1.8 M…

hs控什么意思_凡爾賽文學 到底是什么?

點擊藍字關注我們XIE XIE NI DE XI HUAN|| 動漫 情頭 耽美 閨蜜 男女頭 句子控 壁紙 ||左句 凡爾賽文學野象:老是有人提知不知道凡爾賽文學,說實話我不太清楚網絡時下流行的梗,也沒有興趣參與,我還是比較喜歡歐洲古典文學和后現…

密碼學專題 openssl編譯和安裝

Configure 腳本文件 使得OpenSSL可以適應多種不同的系統平臺和多達幾十種不同的編譯器。Configure指令還可以使OpenSSL在編譯的時候具備組件的選擇功能,比如可以選擇支持或者不支持某種算法或者協議等,這使得OpenSSL具有很大的靈活性,比如在…

Python學習12 文件的讀寫

目標 文件的打開和關閉 mode缺省情況下表示只讀r 文件的路徑 前面加個r’,代表其中的轉義字符不起作用 文件的打開方式 案例:實現文件拷貝的功能 將某一文件夾下的某一文件 保存在當前文件 所在目錄。 import os #讀取文件1 path./file.txt fileopen(path,…

密碼學專題 openssl的基本概念

配置文件 配置文件是OpenSSL的一個基礎結構組件,OpenSSL使用一組稱為OpenSSLCONF的函數來讀取OpenSSL配置文件的信息。OpenSSL提供的主配置文件是opensl.cnf,它集成了OpenSSL所要使用的配置文件選項的大部分內容。此外,OpenSSL還提供了其他一…

該工程中的宏被禁止_建筑勞務分包都能承擔什么工程

來源:找法網建筑工程的承包單位,也就是總承包單位可以將部分建造工程分包給具有資質的施工單位,這是法律所允許的,但是禁止將建造工程進行轉包。一、建筑勞務分包都能承擔什么工程建筑勞務分包能承擔什么工程要看分包單位的資質&a…

python實驗練習-類的多繼承

題目 1、概述: 完成學生,組長,教師的設計與實現。 2、具體實現內容: 學生: 姓名, 年齡, 學號 吃飯, 睡覺, 學習 組長: 姓名, 年齡, 學…

matlab用辛普森公式求積分_積分近似計算之辛普森公式

對于積分區間[a, b],若則成立辛普森公式辛普森公式可看作是改良的梯形公式。梯形公式是以直線逼近實際曲線,而辛普森公式則以二次曲線(即拋物線)逼近。以二次曲線逼近實際曲線根據辛普森公式可得各積分小區間內的積分值如下式所示:其中于是&a…

密碼學專題 文件編碼格式

OpenSSL中雖然使用PEM作為基本的文件編碼格式,但是,由于不同的對象其封裝的標準格式不太一樣,所以經常會導致讀者產生迷惑。此外,OpenSSL也支持DER編碼和過時的Netscape編碼格式(NET)OpenSSL的編碼是基于ASN.1標準的,A…

python實驗練習-圖書管理系統(使用文件來實現)

題目 功能描述: 圖書管理系統項目功能描述: (1)創建txt文本文檔,包含如下: ① books.txt:保存有一些書籍名稱; ② users.txt:用于保存用戶相關的信息; ③ us…

echarts 折線圖 設置y軸最小刻度_【硬貨】vue全家桶+Echarts+百度地圖,搭建數據可視化系統...

作者丨夙言來源丨前端大牛愛好者(Web-2017)https://segmentfault.com/a/1190000018993981本文章篇幅略長,內容有點多,大佬可根據目錄選擇性查閱,新人可一步步來閱讀。1、 前言1.1 業務場景突然接到產品說要做一個數據監控的系統。有線圖、柱狀…

密碼學專題 文本數據庫

應用概述 文本數據庫是跟OpenSSL的CA應用程序緊密結合在一起的,它以文本的方式記錄CA已經簽發的證書的狀態和摘要信息。這些狀態信息可以用于跟證書庫相關的一些操作,比如使用ca指令生成CRL主要就是讀取這個文本數據庫的信息作為參考。文本數據庫就是普…

Python學習13 異常處理機制

概括 常見的異常 異常處理機制 可以多個異常放在元組里面 一旦產生異常,try后面的語句不會繼續執行,會做異常處理 異常使用場景1 close應該放在finally中 異常使用場景2 finally關鍵字 會執行except后面的,報錯

java 布隆過濾器_牛逼哄哄的布隆過濾器,到底有什么用?

Java技術棧www.javastack.cn打開網站看更多優質文章作者:CodeBear的園子www.cnblogs.com/CodeBear/p/10911177.html本文是站在小白的角度去討論布隆過濾器,如果你是科班出身,或者比較聰明,又或者真正想完全搞懂布隆過濾器的可以移…