密碼學系列文(2)--流密碼

一、流密碼的基本概念

RC4(Rivest Cipher 4)是由密碼學家 Ron Rivest(RSA 算法發明者之一)于 1987 年設計的對稱流加密算法。它以簡單、高效著稱,曾廣泛應用于網絡安全協議(如 SSL/TLS、WEP/WPA),但因存在嚴重安全漏洞,現已逐漸被淘汰。

1.1 流密碼概念

流密碼是將明文劃分成字符(如單個字母),或其編碼的基本單元(如0,1數字),字符分別與密鑰流作用進行加密,解密時以同步產生的同樣的密鑰流實現;

  • 流密碼強度完全依賴于密鑰序列的隨機性和不可預測性;
  • 核心問題是密鑰流生成器的設計
  • 保持收發兩端密鑰流的精確同步是實現可靠解密的關鍵技術;

流密碼框圖如下:KG指密鑰流生成器

  • 消息流:m=m_1m_2...m_i,其中m_i\in M
  • 密文流:c=c_1c_2...c_i...=E_{k_1}(m_1)E_{k_2}(m_2)...E_{k_i}(m_1)...,其中c_i\in C
  • 密鑰流:\left \{ k_i \right \},i\geq 0
  • 加法流密碼:c_i=E_{k_i}(m_i)=m_i\bigoplus k_i

密鑰流:是一個完全隨機的非周期序列,可以實現一次一密體制。但需要無限存儲單元和復雜的輸出邏輯函數f\sigma_i是第i時刻密鑰流生成器的內部狀態,以存儲單元的存數矢量描述。

1.2 有限狀態自動機FA

具有離散輸入和輸出(輸入集和輸出集均有限)的一種數學模型

  • 有限狀態集S=\left \{ s_i|i=1,2,...,l \right \}
  • 有限輸入字符集X=\left \{ X_i|i=1,2,...,m \right \}
  • 有限輸出字符集Y=\left \{ Y_k|i=1,2,...,n \right \}
  • 轉移函數Yj=f_1(s_j,X_j)S_{j+1}=f_2(s_j,X_j),第j時刻輸入X_j\in X,輸出Y_j\in Y;

例如2-1:S=\left \{ s_1,s_2,s_3 \right \},X=\left \{ X_1,X_2,X_3 \right \},Y=\left \{ Y_1,Y_2,Y_3 \right \}

轉移函數:

f_1X_1X_2X_3
s_1Y_1Y_3Y_2
s_2Y_2Y_1Y_3
s_3Y_3Y_2Y_1
f_2X_1X_2X_3
s_1s_2s_1s_3
s_2s_3s_2s_1
s_3s_1s_3s_2

那么FA的狀態圖表示為:初始狀態為s_1

若輸入為x_1,x_2,x_1,x_3,x_3,x_1

那么輸出為y_1,y_1,y_2,y_1,y_3,y_1,狀態轉移為s_2,s_2,s_3,s_2,s_1,s_2

1.3 作為FA的密鑰流產生器

  • 同步流密碼的密鑰流產生器可看為一個參數為k的FA;
  • 輸出集Z,狀態集\sum,狀態轉移函數\varphi :\sigma_i\rightarrow \sigma_{i+1}和輸出函數\Psi,初始狀態\sigma_0
  • 設計的關鍵是\varphi\Psi

  • 具有非線性\varphi的的FA理論很不完善,通常采用線性\varphi以及非線性的\Psi
  • 可將此類產生器分為驅動部分和非線性組合部分
  • 驅動部分控制狀態轉移
  • 非線性組合部分提供統計特性良好的序列

兩種目前最為流行和實用的密鑰流產生器如圖所示,其驅動部分是一個或多個線性反饋移位寄存器:

1.4 流密碼的分類

1.4.1 同步流密碼SSC

\sigma_i與明文消息無關,密鑰流將獨立于明文

同步流密碼的特點

  • 對于明文而言,這類加密變換是無記憶的,但它是時變的;
  • 只有保持兩端精確同步才能正常工作;
  • 對主動攻擊時異常敏感而利于檢測;
  • 無差錯傳播
1.4.2 自同步流密碼SSSC

\sigma_i依賴于\left ( k_i,\sigma _{i-1},m_i \right ),使密文c_i不僅與當前輸入m_i有關,而且由于k_i\sigma_i的關系而與以前的輸入m_1,m_2,....m_{i-1}有關。一般在有限的n級存儲下將與m_{i-1},...,m_{i-n}有關。

優點:具有自同步能力,強化了其抗統計分析的能力;

缺點:有n位長的差錯傳播;

如圖所示:

1.5 序列的偽隨機性

1.5.1 周期
  • 周期:序列\left \{ a_i \right \}_{i\geq 0},使對所有ia_{i+p}=a_i成立的最小整數p;
  • 長度為l的串\left ( a_t,a_{t+1}...a_{t+l-1} \right ),在序列\left \{ a_i \right \}的一個周期中,a_{t-1}\neq a_t=a_{t+1}=...=a_{t+l-1}\neq a_{t+l}

例如:長度為l的1串和長度為l的0串:...011...10...和...100...01...

    1.5.2 自相關函數

    GF(2)上周期為T的序列\left \{ a_i \right \}的自相關函數定義為:

    R(\tau )=\frac{1}{T}\sum_{k=1}^{T}(-1)^{a_k}(-1)^{a_k+\tau},0\leq \tau \leq T-1

    \tau =0時,R(\tau)=1;當\tau \neq 0時,稱R(\tau )為異相自相關函數。

    1.5.3 Golomb隨機性公設

    Golomb對偽隨機周期序列提出了應滿足的如下三個隨機性公設:

    • 在序列的一個周期內,01的個數相差至多為1;
    • 在序列的一個周期內,長為1的游程占游程總數的\frac{1}{2} ,長為2的游程占游程總數的?\frac{1}{2^2} ,... ,長為i的游程占游程總數的?\frac{1}{2^{i}}, ,且在等長的游程中0的游程個數和1的游程個數相等;
    • 異自相關函數是一個常數;
    1.5.4 密碼系統隨機性條件

    一個偽隨機序列應滿足另外的三個條件:

    • \left \{ a_i \right \}的周期相當大。
    • \left \{ a_i \right \}的確定是計算上容易的。
    • \left \{ a_i \right \}由密文及相應的明文的部分信息,不能確定整個\left \{ a_i \right \}。(不可預測性)

    二、線性反饋移位寄存器序列

    2.1 相關概念

    • 級數(Stages):存儲單元數;
    • 狀態(State):n個存儲單元的存數(a_i,...,a_{i+n-1})
    • 反饋函數:f(a_i,a_{i+1},...,a_{i+n-1})是狀態(a_i,...,a_{i+n-1})的函數;
    • 線性反饋移位寄存器(LFSR):f為線性函數
    • 非線性反饋移位寄存器:f為非線性函數

    如圖所示:n級反饋移位寄存器

    2.2?線性反饋移位寄存器

    如果移位寄存器的反饋函數f(a_1,a_2,...,a_n)a_1,a_2,...,a_n的線性函數,則稱之為線性反饋移位寄存器LFSR,此時可寫為f(a_1,a_2,...,a_n)=c_na_1\bigoplus c_{n-1}a_2\bigoplus ...\bigoplus c_1a_n;

    那么輸出序列\left \{ a_i \right \}滿足a_{n+t}=c_na_t\bigoplus c_{n-1}a_{t+1}\bigoplus ...\bigoplus c_1a_{n+t-1},其中t為非負正整數。

    2.2.1 最長周期

    在線性反饋移位寄存器中總是假定c_1,c_2,....,c_n中至少由一個不為 0,

    否則?f(a_1,a_2,...,a_n)=0,這樣的話,在?n個脈沖后狀態必然是?00....0,且這個狀態必將一直持續下去。

    因此線性移位器序列的最長周期為2^n-1

    2.2.2 m序列
    • 2^n-1的LFSR序列稱為m序列
    • nm序列\left \{ a_i \right \}循環地遍歷所有2^n-1個非零狀態,且任一非零輸出皆為\left \{ a_i \right \}的移位,或為其循環等價序列;
    • 初始狀態不同2^n-1個的m序列共有2^n-1個,他們的全體記為\Omega(f),他們只是狀態前后次序之別。

    m序列滿足Golomb的三個隨機性公設

    2.2.3 特征多項式

    LFSR的特征多項式為:p(x)=1+c_1x+...+c_{n-1}x^{n-1}+c_nx^n

    三、非線性序列

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

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

    相關文章

    Drools?業務引擎

    drools引擎使用 官網介紹 一、底層原理 ReteOO 網絡 ? 本質是一張“有向無環圖”,節點類型: – Root / ObjectTypeNode:按 Java 類型分發事實 – AlphaNode:單對象約束(age > 18) – BetaNode&#xf…

    linux的磁盤滿了清理辦法

    今天測試系統的某個磁盤滿了,需要看一下,可以看到的是,已經被占用百分之百了,某些服務運行不了了,需要清一下,這個我熟看哪個目錄占用空間大cd / du -sh * ##找到占用最大,比如cd /home cd /hom…

    阿里開源項目 XRender:全面解析與核心工具分類介紹

    阿里開源項目 XRender:全面解析與核心工具分類介紹 在開源技術飛速發展的浪潮中,阿里巴巴推出的 XRender 作為專注于表單與數據可視化的開源框架,憑借獨特的設計理念和強大功能,已在開發者群體中嶄露頭角。XRender 以 “協議驅動…

    網絡安全初級--搭建

    一、Docker搭建apt-get install docker.io docker-compose 下載docker 配置docker代理 a.創建對應的以及對應的文件mkdir /etc/systemd/system/docker.service.dvim /etc/systemd/system/docker.service.d/http-proxy.confb.寫入以下內容[Service]Environment"HTTP_PROXYh…

    文心一言4.5深度評測:國產大模型的崛起之路

    在?語?模型競爭?益激烈的今天,百度推出的文???4.5憑借其在中文處理上的獨特優勢,正在成為越來越 多開發者的選擇。經過為期?周的深度測試和數據分析,我將從技術參數、性能表現、成本效益等多個維度, 為?家呈現這款國產?模…

    科技的成就(六十九)

    631、攝影術的先驅 1801年,德國物理學家約翰威廉里特(Johann Wilhelm Ritter)發現了紫外線。他注意到,太陽光譜中紫色一側光譜之外的位置的不可見射線比紫光更快地使氯化銀試劑變暗,他將其稱為“化學射線”。后來這種射…

    用Golang gRPC異步處理:釋放并發性能的秘密武器

    目錄 章節一:為什么gRPC異步處理是并發性能的“加速器” 異步的本質:解放Goroutine的潛能 異步gRPC的適用場景 章節二:從零開始:搭建一個異步gRPC服務 準備工作:定義Protobuf 實現同步gRPC服務 邁向異步:初步改造 章節三:用Worker Pool模式榨干并發性能 Worker …

    MCP終極篇!MCP Web Chat項目實戰分享

    目錄 前言 MCP Web Chat 功能概要說明 MCP Web Chat代碼調用結構說明 api動態生成MCP Server 方法一(之前的方法) 方法二(現在的方法) 做個比較 相關代碼 相關問題解決說明 穩定性 由此引申而來的異步任務問題 MCP周…

    破解VMware遷移難題

    理解VMware遷移的常見挑戰 VMware遷移過程中可能遇到的難題包括兼容性問題、性能瓶頸、數據完整性風險以及網絡配置復雜性。識別這些問題是制定有效遷移策略的基礎。 評估當前環境與目標環境 詳細分析源VMware環境的配置、虛擬機數量、存儲類型和網絡拓撲。對比目標環境的硬件和…

    15-STM32F103RCT6的FLASH寫入

    STM32F103RCT6的FLASH寫入 1.//*******************************固件升級地址信息******************************// #define STM32_FLASH_BASE 0x08000000 //固件起始地址 #define FLASH_APP_ADDR 0x08005000 //APP開始地址 #define FLASH_PARA_ADDR 0x0803C000 //固件關…

    PPO:近端策略優化算法

    溫馨提示: 本篇文章已同步至"AI專題精講" PPO:近端策略優化算法 摘要 我們提出了一類新的用于強化學習的 policy gradient 方法,該方法在與環境交互以采樣數據和使用隨機梯度上升優化一個“代理”目標函數之間交替進行。與標準的…

    數據結構的算法分析與線性表<1>

    一、算法分析: 由于語句執行一次的實際所需時間與機器的軟硬件有關,則算法分析是針對語句執行次數,而非執行時間。 時間復雜度 計算時間復雜度: 常量階 如果算法中的n是固定的,或者說n是常數,或者時間復雜…

    esp32使用ESP-IDF在Linux下的升級步驟,和遇到的坑Traceback (most recent call last):,及解決

    因為之前使用的是ESP-IDF5.3版本。而5.3版本又不支持ESP32P4。而V5.4版本開始正式對P4的支持。所以我把ESP-IDF 升級到V5.4.2的release版本。 一、升級版本:【根據樂鑫官方的方式升級】ESP-IDF 版本簡介 - ESP32-P4 - — ESP-IDF 編程指南 v5.4.2 文檔 更新至一個穩…

    【算法】貪心算法:最大數C++

    文章目錄前言題目解析算法原理字典序代碼示例策略證明前言 題目的鏈接,大家可以先試著去做一下再來看一下思路。179. 最大數 - 力扣(LeetCode) 題目解析 還是老樣子,把題目讀懂,畫出有用信息。 認真看示例&#xff0…

    網絡安全職業指南:探索網絡安全領域的各種角色

    本文旨在為對網絡安全領域感興趣的粉絲讀者提供一份全面的職業指南。我們將探討網絡安全領域中各種不同的職業角色,包括其職責、所需技能以及職業發展路徑,幫助你了解網絡安全領域的職業選擇,并為你的職業規劃提供參考。網絡安全職業概覽 身處…

    Design Vision:顯示扇入/扇出邏輯

    相關閱讀 Design Visionhttps://blog.csdn.net/weixin_45791458/category_13006970.html?spm1001.2014.3001.5482 在使用Design Vision中查看示意圖時,可以在示意圖中查看所選單元(Cell)、引腳(Pin)、端口(Port)或線網(Net)的扇入/扇出邏輯。用戶可以在當前激活的…

    13.7 Meta LLaMA2-Chat核心技術突破:三重強化學習實現91.4%安全評分,超越ChatGPT的對話模型架構全解析

    Meta LLaMA2-Chat核心技術突破:三重強化學習實現91.4%安全評分,超越ChatGPT的對話模型架構全解析 指令微調模型:LLaMA2-Chat 技術深度解析 LLaMA2-Chat 作為 Meta 推出的對話優化大模型,其技術實現展現了大模型對齊(Alignment)領域的前沿突破。與基礎版 LLaMA2 相比,該…

    二維仿射變換筆記

    二維仿射變換筆記 1. 數學基礎 1.1 變換矩陣 二維仿射變換使用3x3的齊次坐標矩陣表示: [a b tx] [c d ty] [0 0 1 ]其中: [a b; c d] 是線性變換部分,表示旋轉、縮放和錯切[tx; ty] 是平移部分最后一行 [0 0 1] 是齊次坐標的固定形式1.2 基本變換 1.2.1 平移變換 將點…

    創建自定義Dataset類與多分類問題實戰

    codes 文章目錄🌟 6 多分類問題與卷積模型的優化🧩 6.1 創建自定義Dataset類?? 數據集特點:🔑 關鍵實現步驟:🛠? 自定義Dataset類實現📊 數據集劃分與可視化🧠 6.2 基礎卷積模型&…

    用vue自定義指令設置頁面權限

    1.按鈕權限處理/*** v-hasPermi 按鈕權限處理*/import store from /storeexport default {inserted(el, binding, vnode) {const { value } bindingconst all_permission "*:*:*";const permissions store.getters && store.getters.permissionsif (value…