《深入淺出密碼學:常用加密技術原理與應用》讀書筆記

第1章 密碼學和數據安全導論

1.1 密碼學及本書內容概述

1.密碼學(cryptology):密碼編碼學(cryptography)和密碼分析學(破譯密碼)舷蒲。

2.密碼使用學的三個主要分支:對稱算法(Symmetric Algorithm)遵蚜,非對稱算法(Asymmetric Algorithm)或公鑰算法(Public-Key Algorithm)脱货,密碼協議(Cryptographic Protocol)维咸。

1.2 對稱密碼學

1.基本概念:明文帚湘,密文咙咽,密鑰玛瘸,密鑰空間(所有可能密鑰組成的集合)栓霜,安全信道(用于在通信雙方間安全地分配密鑰)翠桦。

2.安全地傳輸消息地問題最后可以歸結為安全地傳輸和存儲密鑰地問題。

3.簡單對稱加密:替換密碼

例如胳蛮,A被k替換销凑,B被d替換。

替換表是這種密碼體制地關鍵仅炊,需要在Alice和Bob之間安全傳輸斗幼。

第一個攻擊:蠻力攻擊或窮盡密鑰搜索。x(明文)抚垄,y(密文)蜕窿,K={k1,k2,...,kk},攻擊將檢查每個ki呆馁,判斷d_{k_{i}}(y) 是否等于x桐经。

第二種攻擊:字母頻率分析。密文中某個出現頻率最高地字母可能是英文語言中最常用的一個字母的替換字母浙滤。

(1)確定每個密文字母的頻率阴挣;(2)連續(xù)的兩個,三個或四個等密文字母的頻率瓷叫;(3)高頻的短單詞屯吊。

好的密碼應該隱藏被加密文本的統計屬性送巡,僅僅密鑰空間大是不夠的。

1.3 密碼分析

1.破譯密碼體制的一般思路

①經典密碼分析:從密文y中恢復明文x盒卸,或從密文y中恢復密鑰k骗爆。

密碼分析可分為兩類:一類是發(fā)現加密方法內部結構的分析攻擊;另一類是將加密算法看作是黑盒蔽介,試圖測試所有可能密鑰摘投。

②實施攻擊:旁道分析。

③社會工程攻擊:強迫某個人說出密鑰虹蓄,騙取密鑰犀呼。

2.可靠的密碼體制必須遵守Auguste Kerckhoffs在1883年提出的Kerckhoffs原理。

Kerckhoffs原理:即使除密鑰外的整個系統的一切都是公開的薇组,這個密碼體制也必須是安全的外臂。尤其是即使攻擊者知道系統的加密算法和機密算法,此系統也必須是安全的律胀。

3.關于密鑰長度的討論

只有在蠻力攻擊是最好的攻擊方法時宋光,討論對稱加密算法中密鑰長度的問題才有意義。

在安全性相當的情況下炭菌,對稱算法和非對稱算法所要求的密鑰長度完全不同罪佳。

使用蠻力攻擊成功破解不同長度密鑰的對稱算法預計時間:56~64位——短期幾小時或幾天,112~128位——長期幾十年黑低,256位——量子計算機幾十年赘艳。

1.4 模運算與多種古典密碼

1.模運算

定義:假設a,r,m\in Z(所有整數的集合),如果m除a的余數為r克握,則可記作a\equiv r mod m蕾管,m為模數,r為余數玛荞。

計算余數:r = a - q*m

等價類:余數不唯一娇掏。模數9存在9個等價類:

{...,-27,-18,-9,0,9,18,27,...}呕寝,{...,-26,-17,-8,1,10,19,28,...}勋眯,...,{...,-19,-10,-1,8,17,26,35,...}

等價類中所有成員的行為等價:對于一個給定模數m下梢,選擇同一個等價類中任何一個元素用于計算的結果都是一樣的客蹋。

例如:3^8 = 3^4\cdot 3^4 = (11\cdot 7+4)\cdot (11\cdot 7+4)\equiv 4\cdot 4 = 16 \space mod \space 7 = 2

通常選擇余數為0\leq r\leq m-1

2.整數環(huán)

Z_{m} =\left\{ 0,1,2,...,m-1 \right\} ,其中任意兩個數的加法和乘法運算模m的結果仍屬于Z_{m}

加法逆元始終存在:a+(-a)\equiv 0 \space mod \space m

乘法逆元不一定存在:a\cdot a^{-1 }\equiv 1\space mod \space m孽江,當且僅當gcd(a,m)=1時讶坯,即a和m的最大公約數為1時,a存在乘法逆元岗屏。

思考:為什么a和m互質時辆琅,a存在乘法逆元漱办?

3.經典替換密碼

凱撒密碼:將明文中的每個字母在字母表中移動固定長度的位置。

仿射密碼:將銘文乘以密鑰的一部分婉烟,然后再加上密鑰的剩余部分娩井。

缺點:密鑰空間小,易窮舉破解似袁;明文和密文之間的映射關系是固定的洞辣,易用頻率分析方法破解。

第二章 序列密碼

2.1 引言

1.對稱密碼可以分為序列密碼和分組密碼昙衅。

序列密碼:單獨加密每個位扬霜,將密鑰序列中對應的一位與明文的一位相加后模2。

分組密碼:每次使用相同的密鑰加密整個明文位分組而涉。

2.序列密碼中加密和解密使用相同的函數著瓶。

可以證明解密函數的確可以得到明文位x_{i} ,即將y_{i} \equiv x_{i} +s_{i} \space mod \space 2代入到解密函數中啼县,能得到明文蟹但。

這得益于2s_{i} \space mod \space 2的值總是0。

3.為什么可使用簡單的模2加法來進行加密谭羔?

模2加法與XOR(異或)運算是等價的华糖。

對于一位明文無論是0或1,如果密鑰位完全隨機瘟裸,密文為0或1的概率完全相等客叉。

4.密鑰序列位s_{i} 的本質是什么?

密鑰序列(即所有s_{i} )是序列密碼安全性的核心問題话告。序列密碼的安全性完全取決于密鑰序列兼搏。

密鑰序列位的核心要求是對攻擊者而言它必須看上去是隨機的。

2.2 隨機數與牢不可破的分組密碼

1.隨機性對于序列密碼的安全性十分重要沙郭,三種隨機數生成器(RNG):

真隨機數生成器(TRNG):輸出不可復制佛呻,基于物理過程(例如拋硬幣,擲色子等)生成序列病线。

偽隨機數生成器(PRNG):從一個初始種子值開始通過各種計算得到序列吓著。一個廣泛使用的例子是ANSI C中的rand()函數,它的參數為:s_{0} =12345, s_{i+1}\equiv 1103515245s_{i}  +12345\space mod \space 2^{31} ,i=0,1,...對PRNG的一個一般要求是送挑,它必須擁有良好的統計屬性绑莺,意味著它的輸出近乎與真隨機數序列相同。

加密安全的偽隨機數生成器:是PRNG的一個特例惕耕,具有不可預測性纺裁。即給定密鑰序列中的n個連續(xù)位,不存在一個時間復雜度為多項式的算法使得成功預測下一位s_{n+1} 概率超過50%。之前的任何一位也是不可計算的欺缘。

2.無條件安全

如果一個密碼體制在無限計算資源的情況下也不能被破譯栋豫,則說明它是無條件安全的或信息理論上安全的。

2.一次一密:一個簡單的無條件安全的密碼

通過真隨機數生成器得到密鑰序列谚殊;只有合法的通信方才知道密鑰序列笼才;每個密鑰序列位僅使用一次。

缺點1:密鑰長度必須和明文長度一樣络凿。

缺點2:密鑰只能使用一次骡送,傳輸代價高。

3. 實際使用的序列密碼

使用偽隨機數生成器替換真隨機密鑰序列位絮记,其中密鑰k是種子摔踱。

是計算安全,而非無條件安全怨愤。

4.計算安全

如果為破解一個密碼體制派敷,最好的已知算法需要至少t個操作,則說明此密碼體制是計算安全的撰洗。

5.利用PRNG構建密碼流

PRNG可以用來生成密鑰流篮愉,但是對序列密碼而言是不夠的,因為對手攻擊也很聰明差导。

假設一個基于線性同于發(fā)生器的PRNG试躏,其密鑰包含值(A,B)设褐。假如攻擊者知道明文的前300位颠蕴,由于模數m是公開已知的,在密文的基礎上助析,可以推出密鑰序列的前300位犀被,進而推出A和B(的多個解)。如果得到已知明文的第四片信息外冀,就可以唯一的檢測出密鑰寡键。

也就是說,如果已知一些明文片段雪隧,我們可以計算出密鑰并解密整個密文西轩。

6.利用CSPRNG構建密鑰序列

相當一部分在密碼學之外使用的偽隨機數生成器都不是密碼學安全的。

實際中的序列密碼有三種:①針對軟件實現優(yōu)化的密碼膀跌,計算一個密鑰序列為通常需要更少的CPU指令遭商;②針對硬件實現優(yōu)化的密碼,一個典型的例子是反饋移位寄存器捅伤;③將分組密碼作為基本塊來實現序列密碼。

2.3 基于移位寄存器的序列密碼

一種得到長偽隨機序列的簡單方法就是使用線性反饋移位器寄存器(LFSR)巫玻,典型的LFSR是A5/1密碼和A5/2密碼丛忆,它們作為標準被用于GSM手機網絡中手機與基站之間的語音加密祠汇。

1. 線性反饋移位寄存器(LFSR)

由若干時鐘存儲元件(觸發(fā)器)和一個反饋路徑組成。

一個擁有m個觸發(fā)器的LFSR可以稱為“度為m”熄诡。

反饋路徑計算一位寄存器中某些觸發(fā)器的XOR和可很,并將其作為上一個觸發(fā)器的輸入。

某條反饋路徑是否活躍則取決于反饋系數p_{0} ,p_{1} ,...,p_{m-1} 凰浮,將觸發(fā)器的輸出與它對應的系數相乘?,p_{i} =1表示反饋是活躍的我抠,p_{i} =0對應觸發(fā)器的輸出均為0。

LFSR有時也稱為線性遞歸袜茧。

度為m的LFSR可以產生的最大序列長度為2^m-1 菜拓。

在針對單個LFSR的已知明文攻擊中,一旦敵手知道了反饋系數笛厦,就可以構建LFSR纳鼎,并加載他已經知道的任意個連續(xù)的輸出位。

2. Trivium

是一個較新的序列密碼裳凸,它的密鑰長度位80位贱鄙,是基于三個移位寄存器的組合。

這三個寄存器的長度分別為93姨谷、84和111位逗宁,總長度288。

每個寄存器的輸出都與另一個寄存器的輸入相連梦湘,寄存器以一種類似環(huán)的形式排列疙剑。

使用Trivium加密時需要兩個輸入參數(密鑰k和初始向量nonces),nonces主要目的是即使在密鑰不改變的情況下践叠,此密碼產生的兩個密鑰序列也必須不同言缤。如果不適用變化的nonces,序列密碼也是高度確定的禁灼。

與絕大多數的分組密碼(比如AES)相比管挟,這個硬件實現相對較小但卻非常快弄捕。

3. eSTREAM項目

為推動序列密碼設計為項目目標僻孝。

分為兩種配置,分別是針對要求高吞吐量的軟件應用程序而設計的密碼和針對資源有限(比如有限存儲守谓、有限門數量或有限功耗)的硬件應用程序而設計的密碼穿铆。

在收到的34個候選密碼中,滿足希望屬性的由4個面向軟件(配置1)的密碼和3個面向硬件(配置2)的密碼斋荞。

面向軟件:HC-128荞雏、Rabbit、Salsa/12和SOSEMANUK。

面向硬件:Grain V1凤优、MICKEY V2和Trivium悦陋。

4. 真隨機數的生成

所有TRNG都需要利用一些熵源,即一些真正隨機的過程筑辨。

大致分為兩類:一類是使用專門設計的硬件作為熵源的方法俺驶,例如半導體噪音、不相關的振蕩器棍辕;另一類是利用外部隨機源的TRNG暮现,例如在網絡接口中計算觸鍵間隔或包的到達時間的計算機系統。

第三章 數據加密標準與替換算法

在過去30年的大多數時間里楚昭,數據加密標準(Data Encryption Standard栖袋, DES)是最主流的分組密碼。

3.1 DES簡介

1. 起源

1972哪替,美國標準局(NBS)號召在美國實行標準密碼栋荸。

1974,NBS從IBM的一個密碼研究小組提供的方法中找到一個基于Lucifer密碼的加密算法DES凭舶。

1977晌块,NBS發(fā)布了修訂后的IBM密碼的所有規(guī)范,將其命名為數據加密標準(FIPS PUB 46)帅霜,此時DES的有效期設置為1987年匆背。

1987,NIST重新聲明對DES的使用推遲至1999年身冀。

1999钝尸,DES最終被高級加密標準(AES)所取代。

2. 基本操作

混淆(Confusion):一種使密鑰與密文之間的關系盡可能模糊的加密操作搂根。常用的方式是替換珍促。

擴散(Diffusion):一種為了隱藏明文的統計屬性而將一個明文符號的影響擴散到多個密文符號的加密操作。最簡單的方式是位置換剩愧。

乘積密碼(Product cipher):將擴撒操作串聯起來建立的更為強壯的密碼猪叙。

擴散屬性:意味著修改明文中的1位將會導致平均一半的輸出位發(fā)生改變,即第二位密文看上去與第一位密文完全沒有關系仁卷。例如:明文x_{1} =00101011x_{2} =00001011采用分組密碼擴散之后得到的密文分別是y_{1} =10111001y_{2} =01101100穴翩。

3.2 DES算法概述

1. DES是一種使用56位密鑰對64位長分組進行加密的密碼。

2. DES的整體設計

DES是一種對稱密碼锦积,其加密過程和解密過程使用相同的密鑰芒帕。

DES是一種迭代算法,每個分組的加密過程都包含16輪丰介,每輪的操作完全相同背蟆。

DES使用的是Feistel網絡鉴分,其結構主要包括對明文進行初始置換、進行16輪操作淆储、逆初始置換得到密文冠场。

在每一輪操作中家浇,明文會被分為L_{i} R_{i} 兩部分本砰,R_{i} 會被送入函數f中,f的輸出將與L_{i} 進行異或钢悲,最后左右兩部分進行交換進入下一輪点额。每輪中的輪密鑰k_{i} 均來自56位的主密鑰,生成過程是通過密鑰編排(key schedule)實現的莺琳。函數f內部實現擴散和混淆还棱。

3. DES的內部結構

初始置換和逆初始置換:均是按位置換,可以看作是簡單的交叉連接惭等,即將第58位放在第1位珍手,將第50位放在第2位等,存在一個初始置換表和逆初始置換表辞做,兩個表互逆琳要。

f函數:將輸入分成8\times 4位的分組,然后將其擴展為8\times 6位(E-盒)秤茅,然后再將每組6位數放入S-盒中進行置換成4位稚补。擴展的方法是將某一位插入到不同的分組中,存在一張擴展表框喳。所有S-盒中的置換表都不相同课幕,作用是將6位值映射為4位,表格的讀取方式是將最高位和最低位組合起來選擇行五垮,中間4位選擇列乍惊。例如市埋,S-盒的輸入b=(100101)_{2} 佩耳,行為11_{2} =3,列為0010_{2} =2书幕,查表得到08匙监,即1000_{2} 凡橱。S-盒是DES中最重要的元素,因為S-盒在密碼中引入了非線性亭姥,即S(a)\oplus S(b)\neq S(a\oplus b)稼钩。S-盒 可以抵抗各種高級的數學攻擊,尤其是差分密碼分析达罗,而差分密碼分析直到1990年的一次學術論壇上才第一次被公開坝撑,當時IBM小組宣稱設計者早在16年前就已經直到此攻擊的存在静秆,并說明DES就是專門為了抵抗差分密碼分析而設計的。

密鑰編排:從原始的56位密鑰中得到16個輪密鑰k_{i} 巡李,輪密鑰又稱子密鑰抚笔。56位密鑰首先及逆行一次置換選擇,然后分為C_{0} D_{0} 兩部分侨拦,然后分別對每一部分進行循環(huán)移位殊橙,每循環(huán)移位一次得到56位密鑰,進行一次置換選擇后輸出為一個子密鑰狱从。

3.4 解密

DES的優(yōu)勢之一是其解密過程與加密過程在本質上是完全相同的膨蛮。解密過程中輪密鑰采用密鑰編排逆轉生成。解密函數的每輪操作都是DES加密中對應輪的逆季研。第一輪解密后得到的結果實際上與最后一輪加密前的結果相等敞葛。

3.5 DES的安全性

1. 密碼攻擊可以分為窮盡密鑰搜索攻擊(或蠻力攻擊)與分析攻擊。

2. 在DES提出后不久与涡,針對DES密碼強度的批評主要圍繞以下兩個方面:(1) 密鑰空間太腥切场;(2)可能存在利用S-盒數學屬性的分析攻擊驼卖。利用窮盡密鑰搜索攻擊就可以較容易地破解單重DES氨肌,但至今還沒發(fā)現能高效破解多重DES地攻擊方式。

3. DES窮盡密鑰搜索

輸入:至少一個明文密文對(x,y)

輸出:滿足y=DES_{k} (x)k

攻擊:測試所有2^{56}個可能的密鑰款慨,直到以下條件成立:DES_{k_{i} }^{-1} (y)=x,i=0,1,...,2^{56}-1

(找到錯誤密鑰的可能性只有\frac{1}{2^8 } 儒飒,錯誤密鑰指的是只能正確解密一個密文而不能正確解密后續(xù)密文的密鑰。)

普通計算機并不適合用來執(zhí)行2^{56} 次密鑰測試檩奠,但可以選擇專門用來搜索密鑰的機器桩了。

(1)1993 CRYPTO,Michael Wiener提出了一種非常高效的密鑰搜索機器設計方案埠戳,該方案使用的是管道技術井誉。

(2)1988年,EFF構建了一個硬件機器整胃,叫Deep Crack颗圣,它使用蠻力攻擊可以在56個小時內破解DES。

(3)2006年屁使,來自德國波鴻大學和基爾大學一個研究學者小組基于商業(yè)集成電路構建了COPACOBANA機器破解DES的搜索時間平均不到7天在岂。

56位的密鑰大小已經不足以保證當今機密數據的安全性。

4. 分析攻擊

1990蛮寂,Eli Biham和Adi Shamir發(fā)現了所謂的差分密碼分析(DC)理論上可以破解任何分組密碼蔽午,但DES的S-盒可以很好地抵抗這種攻擊。

1993酬蹋,公布了線性分析攻擊(LC)及老。

DC和LC成功地發(fā)動一次攻擊分別需要知道2^{47} 2^{43} 個明文-密文對抽莱,這些數字看上去非常不切實際,因為:(1)攻擊者需要知道相當多的明文骄恶;(2)搜集和存儲這樣大地數據量需要花費相當長地時間食铐,也需要相當大地內存資源;(3)攻擊只能恢復一個密鑰僧鲁。

3.6 軟件實現與硬件實現

軟件實現是指在桌面CPU或類似智能卡或手機地嵌入式微處理器上運行DES虐呻。硬件實現是指在諸如專用集成電路(ASIC)或現場可編程門陣列(FPGA)的IC上運行DES實現。

1. 軟件實現:最常見的思路是使用一些表悔捶,這些表里的數據來自于一些DES操作預計算的值铃慷,例如一些S-盒預計算的值盒置換預計算的值单芜。DES中使用的小型S-盒在硬件實現上非常高效蜕该,但在現代CPU上的效率一般。加快DES軟件實現的一個值得注意的方法是位分片(bitslicing)洲鸠。

2. 硬件實現:DES的一個設計標準就是硬件實現的效率堂淡,類似E置換、P置換扒腕、IP置換和IP^-1置換的置換操作非常易于用硬件實現绢淀,因為它們只需要布線而不需要邏輯,通常使用布爾邏輯實現瘾腰,即邏輯門皆的。

3.7 DES的替換算法

1. AES(Advanced Encryption Standard,高級加密標準):密鑰長度有128位蹋盆、192位和256位三種费薄,目前沒有出現成功破譯AES的分析攻擊。

2. 3DES與DESX:三重DES栖雾,即由三個連續(xù)的DES加密組成楞抡,可以表示為y=DES_{k_{3} } (DES_{k_{2} }(DES_{k_{1} }) ),其中k_{1} ,k_{2},k_{3}  是三個不同的密鑰析藕。3DES在硬件實現上非常高效召廷,但在軟件實現上卻不那么高效。增強DES的另一種方法是使用密鑰漂白账胧,做法為在DES算法之前和之后將明文和密文分別與另外兩個64位密鑰k_{1} k_{2} 進行異或操作竞慢,可以表示為y=DES_{k,k_{1},k_{2}}(x)=DES_{k}  (x\oplus k_{1} )\oplus k_{2}

3. 輕量級密碼PRESENT:輕量級是指實現復雜度非常低的算法治泥,尤其指硬件實現方面筹煮。PRESENT是一個替換-置換網絡,由31輪組成车摄。

第四章 高級加密標準

高級加密標準(AES)是目前使用最為廣泛的一種對稱密碼寺谤。

1. AES的發(fā)展歷程

3DES的軟件實現并不高效仑鸥,其分組大小相對較小,如果要防止量子計算機攻擊DES变屁,密鑰長度最好應該接近256位眼俊。

1997年,NIST提出向社會征集新的高級密碼標準(AES)粟关。

2001年疮胖,NIST宣布分組密碼Rijndael成為新的AES,它由比利時的兩位年輕密碼學家Joan Daemen和Vincent Rijmen設計闷板。

2. AES算法概述

AES的輸入澎灸、密鑰、輸出均為128位遮晚。明文在AES中的每一次迭代都成為一種狀態(tài)性昭。

AES由三種類型的層組成,分別由10輪的字節(jié)代換層县遣、擴散層和密鑰加法層組成糜颠。

字節(jié)代換層(S-盒):狀態(tài)中的每個元素都使用具有特殊數學屬性的查找表進行線性變換。

擴散層:包括ShiftRow(行移位變化)層盒MixColumn(列混淆變換)層萧求。

密鑰加法層:128位輪密鑰(又稱子密鑰)來自于密碼編排中的主密鑰其兴,它在該層與狀態(tài)進行異或操作。

3. AES的內部結構

16字節(jié)的輸入A_{0} ,...,A_{15} 按字節(jié)輸入到S-盒中夸政,16字節(jié)的輸出B_{0} ,...,B_{15} 先在ShiftRows層按字節(jié)進行置換元旬,然后由MixColumn變換c(x)進行混淆。最后將128位的子密鑰k_{i} 與中間結果進行異或計算守问。

AES是一個面向字節(jié)的密碼匀归,DES使用了大量的位置換,可以看作是擁有面向位的結構酪碘。

AES的16個字節(jié)A_{0} ,...,A_{15} 按照4字節(jié)乘4字節(jié)的矩陣排列朋譬。

字節(jié)代換層的S-盒代換是一個雙向映射,即2^8 = 256個可能的輸入元素都與一個輸出元素一一對應兴垦。S-盒通常使用一個擁有固定項的徙赢、256位乘8位的查找表實現。字節(jié)代換層的操作可以表示為S(A_{i} ) = B_{i}探越,不存在S(A_{i} ) = A_{i}的輸入值A_{i}狡赐。

擴散層由兩個子層組成,分別為ShiftRow變換和MixColumn變換钦幔。ShiftRow變換循環(huán)往復地將狀態(tài)矩陣地第二行向右移動三個字節(jié)枕屉,將第三行向右移動兩個字節(jié),將第四行向右移動一個字節(jié)鲤氢。MixColumn步驟是一個線性變換搀擂,它混淆了狀態(tài)矩陣地每一列西潘。長度為4字節(jié)地每列都可以看作是一個向量(向量的每個元素是一個字節(jié)),該向量與一個固定的4×4的矩陣相乘哨颂,此矩陣包含常量的項喷市。

密鑰加法層的兩個輸入分別是16字節(jié)的當前狀態(tài)矩陣和長度為16字節(jié)的子密鑰,這兩個輸入是通過按位異或操作組合在一起威恼。

密鑰編排將原始輸入密鑰(128位品姓、192位或256位)作為輸入,得到AES每輪使用的子密鑰箫措。子密鑰的個數等于輪數加一腹备,這是因為第一個密鑰加法層進行密鑰漂白時也需要密鑰。AES子密鑰的計算是遞歸的斤蔓,即為了得到子密鑰k_{i}植酥,子密鑰k_{i-1}必須是已知的。AES的密鑰編排是面向單詞的附迷,其中1個單詞=32位惧互,子密鑰存儲在一個由單詞組成的擴散密鑰數組W中。

128位密鑰AES的密鑰編排:11個子密鑰存儲在元素為W[0],...,W[43]的擴散密鑰數組中喇伯,其中k_{0}對應W[0],W[1],W[2],W[3]。11個密鑰可以預先被計算出來拨与,然后再對明文進行加密或對密文進行解密稻据。也可以在對明文(密文)進行加密(解密)的過程中,每輪都會產生一個新的子密鑰买喧。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末捻悯,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子淤毛,更是在濱河造成了極大的恐慌今缚,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件低淡,死亡現場離奇詭異姓言,居然都是意外死亡,警方通過查閱死者的電腦和手機蔗蹋,發(fā)現死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進店門何荚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人猪杭,你說我怎么就攤上這事餐塘。” “怎么了皂吮?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵戒傻,是天一觀的道長税手。 經常有香客問我,道長需纳,這世上最難降的妖魔是什么冈止? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮候齿,結果婚禮上熙暴,老公的妹妹穿的比我還像新娘。我一直安慰自己慌盯,他們只是感情好周霉,可當我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著亚皂,像睡著了一般俱箱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上灭必,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天狞谱,我揣著相機與錄音,去河邊找鬼禁漓。 笑死跟衅,一個胖子當著我的面吹牛,可吹牛的內容都是我干的播歼。 我是一名探鬼主播伶跷,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼秘狞!你這毒婦竟也來了叭莫?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤烁试,失蹤者是張志新(化名)和其女友劉穎雇初,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體减响,經...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡靖诗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了辩蛋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呻畸。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖悼院,靈堂內的尸體忽然破棺而出伤为,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布绞愚,位于F島的核電站叙甸,受9級特大地震影響,放射性物質發(fā)生泄漏位衩。R本人自食惡果不足惜裆蒸,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望糖驴。 院中可真熱鬧僚祷,春花似錦、人聲如沸贮缕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽感昼。三九已至装哆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間定嗓,已是汗流浹背蜕琴。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宵溅,地道東北人凌简。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像层玲,于是被迫代替她去往敵國和親号醉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,700評論 2 345

推薦閱讀更多精彩內容

  • 1/3 考試說明 選擇題辛块,10道,共10分 填空題铅碍,10道润绵,共20分 簡答題,5道胞谈,共30分 計算題尘盼,3道,共30...
    Du1in9閱讀 6,217評論 0 47
  • 一烦绳、術語定義 明文:原始消息 密文:加密后的消息 加密:從明文到密文的過程稱為加密 解密:從密文到明文的過程稱為解...
    漁父歌閱讀 1,746評論 0 1
  • 對稱密碼 對稱密碼是一種用相同的密鑰進行加密和解密的技術卿捎,用于確保消息的機密性。在對稱密碼的算法方面径密,目前主要使用...
    mtry閱讀 923評論 0 0
  • 密碼學 基本概念 完整性---信息僅能被合法用戶訪問午阵,不能泄漏給非法用戶,實體或過程 保密性---自由只有在授權方...
    jhinx閱讀 1,267評論 0 0
  • 這篇文章主要講述在Mobile BI(移動商務智能)開發(fā)過程中,在網絡通信底桂、數據存儲植袍、登錄驗證這幾個方面涉及的加密...
    雨_樹閱讀 2,331評論 0 6