




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
密碼學(xué)
引子什么是密碼學(xué)?(與其他課程的關(guān)系?)加解密古典密碼對(duì)稱密碼序列密碼分組密碼利用關(guān)于有限的整數(shù)的數(shù)學(xué)認(rèn)證對(duì)稱密碼如何建立共享密鑰?公鑰加密公鑰密碼數(shù)字簽名Hash函數(shù)身份認(rèn)證協(xié)議利用更多的數(shù)學(xué),主要是:數(shù)論網(wǎng)絡(luò)化的環(huán)境、更一般/復(fù)雜的功能:安全多方計(jì)算密碼協(xié)議密鑰管理協(xié)議身份認(rèn)證協(xié)議秘密共享協(xié)議安全多方計(jì)算協(xié)議
課程安排48
學(xué)時(shí)理論;
9
學(xué)時(shí)實(shí)驗(yàn);----共57學(xué)時(shí)
第一章
古典密碼6學(xué)時(shí)
1.1置換密碼與代替密碼1.2統(tǒng)計(jì)攻擊1.3一次一密與迭代密碼
1.4相關(guān)數(shù)學(xué)概念和算法
第二章
序列密碼
10學(xué)時(shí)
2.1概述
2.2線性反饋移位寄存器
2.3
m序列及其性質(zhì)
2.4對(duì)偶移位寄存器第三章
分組密碼10學(xué)時(shí)
3.1概述
3.2DES算法
3.3AES算法3.4SM4算法3.5分組密碼的工作模式2.5B-M算法
2.6非線性組合與算法舉例第四章
Hash函數(shù)
6
學(xué)時(shí)
4.1概述
4.2SHA-1和SHA-2
4.3SHA-3
4.4我國(guó)商密標(biāo)準(zhǔn)SM3
4.5MAC和認(rèn)證加密
第五章
公鑰密碼
10
學(xué)時(shí)
5.1概述
5.2RSA加密方案
5.3ElGamal加密方案
5.4橢圓曲線上加密方案
5.
5數(shù)字簽名
5.6SM2
5.
7*后量子密碼第六章
密碼協(xié)議
6
學(xué)時(shí)
6.1概述
6.2密鑰協(xié)商協(xié)議
6.3秘密共享協(xié)議
6.4身份認(rèn)證協(xié)議
6.
5安全多方計(jì)算教材:毛明,李夢(mèng)東主編,《密碼學(xué)教程》,
機(jī)械工業(yè)出版社,2024年。
參考書:A.Menezes等著,胡磊等譯,《應(yīng)用密碼學(xué)手冊(cè)》(1996年),電子工業(yè)出版社,2005。D.Stinson著,馮登國(guó)譯,《密碼學(xué)原理與實(shí)踐》(第二版),電子工業(yè)出版社,2003年。
陳魯生,《現(xiàn)代密碼學(xué)》,科學(xué)出版社,2004年。楊波,《現(xiàn)代密碼學(xué)》,清華大學(xué)出版社,2003。考核方式:
平時(shí)成績(jī)40%:期末考試60%。平時(shí)成績(jī)考核方式(按照百分制):
作業(yè)50%:五次作業(yè),每次10分;
實(shí)驗(yàn)30%:三次實(shí)驗(yàn),每次10分;
其他20%:回答問題等表現(xiàn)情況。第一章古典密碼
1.1置換密碼與代替密碼
1.2統(tǒng)計(jì)攻擊
1.3一次一密和乘積密碼1.4相關(guān)數(shù)學(xué)概念和算法
密碼技術(shù)源遠(yuǎn)流長(zhǎng):
1.1置換密碼與代替密碼自從有了戰(zhàn)爭(zhēng),就有了密碼;烽火臺(tái)、、、在不安全的信道傳遞保密信息。例題:(置換密碼)柵欄密碼(美國(guó)南北戰(zhàn)爭(zhēng)時(shí)期):1234567891011atcaegtoorwtaktihtmro3597682111410ceotgotawarkirthmat*to豎寫橫讀atcaegtoorwtaktihtmroceotgotawarkirthmat*to
attackateighttomorrow還可以寫出多行的形式:123456acetmwtkitotagorathmo古希臘的斯巴達(dá)密碼棒:acetmwtkitotagorathmo置換(Permutation):一個(gè)有限集合S上的一一對(duì)應(yīng)映射。
逆置換:輸出變輸入,按列調(diào)整第一行為自然順序:
30個(gè)元素的置換表:
為了安全,置換表一般需要很大;另一方面為了方便記憶和存儲(chǔ),置換表都有一些規(guī)律;還可以構(gòu)造多個(gè)置換表:置換1置換2置換1置換2置換1置換2希臘時(shí)代的愷撒密碼,將英文字母移位一個(gè)固定的值。
明文字母a
b
c
d
e
f
g
h
i
j
k
l
m密文字母DE
F
G
H
I
J
K
LM
N
O
P明文字母n
o
p
q
r
s
t
u
v
w
x
y
z密文字母Q
R
S
T
U
VW
X
Y
Z
A
B
C例題:(代替密碼)
attackateighttomorrow
DWWDFNDWHLJKWWRPRUURZ明文字母a
b
c
d
e
f
g
h
i
j
k
l
m01
2
3
4
5
6
7
89101112明文字母n
o
p
q
r
s
t
u
v
w
x
y
z13141516171819202122232425
加法密碼:從運(yùn)算上代替密碼可分為(等):乘法密碼:仿射密碼:
置換(換位)密碼:打亂明文各字母的順序。代替(換元)密碼:將明文字母用密文字母代替;單表古典密碼:始終采用同一個(gè)明密對(duì)照表的加密;多表古典密碼:
變化使用多個(gè)明密對(duì)照表的加密。例題:Viginere密碼(多表代替,1523-1596)明文:vigenerecipher密鑰:camelcamelcame--密文:XISIYGRQGTRHQY(見下頁表。把所有移位都列出來。)
杰弗遜“輪子密碼”:
美國(guó)總統(tǒng)托馬斯.杰弗遜于1790年左右發(fā)明的一個(gè)器
械密碼。這種設(shè)備是后來的機(jī)械和機(jī)電密碼機(jī)的基礎(chǔ)。機(jī)電式密碼:電報(bào)和加解密做在一起,即密碼電報(bào);多表代替漢字密碼:每個(gè)漢字編寫為一串十進(jìn)制數(shù)字(密碼本)恩格尼瑪密碼機(jī)
1.2
統(tǒng)計(jì)攻擊英文單個(gè)字母的統(tǒng)計(jì)特性單表代替不能掩蓋統(tǒng)計(jì)特性:
還有字母串的分布:2字母串分布、3字母串分布
attackateighttomorrow
DWWDFNDWHLJKWWRPRUURZ針對(duì)單表代替的攻擊:(1)截獲一定數(shù)量密文,統(tǒng)計(jì)各個(gè)字母出現(xiàn)頻次;(2)將出現(xiàn)頻次高的密文字母,猜測(cè)為明文字母
d、t、a等;(3)猜測(cè)其他字母;
(4)反復(fù)驗(yàn)證。
例題:
任選兩個(gè)字母,相同的概率。
粗糙度假設(shè)-檢驗(yàn)攻擊方(Adversary)防守方(Defender)
防守強(qiáng)度攻擊強(qiáng)度
密碼學(xué)(Cryptology)包括:
密碼編碼學(xué)(Cryptography)----設(shè)計(jì)
密碼分析學(xué)(Cryptanalysis)----破譯
1.3一次一密和迭代密碼Vernam密碼:
盡可能增加表的長(zhǎng)度(很長(zhǎng)的密鑰流),
而加密就是簡(jiǎn)單加法,解密就是減法。(1)將明文轉(zhuǎn)為二進(jìn)制串;
(2)產(chǎn)生與明文一樣長(zhǎng)的隨機(jī)二進(jìn)制串(密鑰);
(3)明文與密鑰逐比特異或(模2加);
(4)解密時(shí)密文再與同樣的密鑰逐比特異或。序列密碼的萌芽乘積密碼:
將置換與代替結(jié)合使用,并進(jìn)行多輪。
S盒:代替(substitute);
P盒:置換(Permutation)分組密碼的萌芽公開1949年,香農(nóng)發(fā)表:
“CommunicationTheoryofSecrecySystems”,
定義理論安全性,提出擴(kuò)散和混淆的乘積方法。
信源信道信宿干擾通信的任務(wù)是把信息有效地、可靠地傳遞到信宿。
手段是編碼(coding)。
平均每個(gè)符號(hào)的信息量
X是信源;
Y是信宿
含義:損失熵等于明文熵,
信宿端從密文得不到明文的任何信息;
明文信息“皆損失在信道中”;
(皆被加密過程所掩蓋。)
含義:密鑰熵(不確定性)大于等于明文熵,
密鑰信息要能夠掩蓋住明文信息;
熵越大,用于表示信息的符號(hào)長(zhǎng)度越長(zhǎng),
即密鑰長(zhǎng)度要大于等于明文長(zhǎng)度。密碼體制(模型):明文空間M:所有明文構(gòu)成的集合密文空間C:所有密文構(gòu)成的集合密鑰空間K:所有密鑰構(gòu)成的集合加密算法Ek:由k確定的加密算法解密算法Dk:由k確定的解密算法
從空間中隨機(jī)選取OneTimePad:一次一密(1)密鑰與明文一樣長(zhǎng);(2)密鑰必須是真隨機(jī)的;(3)密鑰只能對(duì)一個(gè)密文進(jìn)行加密。
可證明了這一體制是無條件安全的。但只具有理論價(jià)值,實(shí)際中:(1)難以做到密鑰與明文一樣長(zhǎng);
(3)真隨機(jī)的密鑰難以實(shí)現(xiàn);
(4)每次更換密鑰,效率太低。發(fā)展為現(xiàn)代序列密碼可通過以下手段達(dá)到計(jì)算安全性:擴(kuò)散(diffusion):明文與密文的關(guān)系盡量混亂;混淆(confusion):密鑰與密文之間的關(guān)系盡量混亂。理論安全:不泄漏任何信息,不依賴敵手的計(jì)算能力。計(jì)算安全:計(jì)算上困難的,依賴于敵手的計(jì)算能力。實(shí)際中:置換(P盒)實(shí)現(xiàn)擴(kuò)散;代替(S盒)實(shí)現(xiàn)混淆。
二者乘積并多次迭代可達(dá)到足夠的安全性。發(fā)展為現(xiàn)代分組密碼攻擊=計(jì)算困難問題1977年,數(shù)據(jù)加密標(biāo)準(zhǔn)DES算法被公布;
DES----DataEncryptionStandard
乘積密碼的典范;現(xiàn)代分組密碼的第一標(biāo)準(zhǔn)。加解密算法公開保密的只有密鑰處理二進(jìn)制數(shù)據(jù)1976年,Diffe和Hellman提出公鑰密碼思想;
解決對(duì)稱密碼中建立和管理密鑰的問題;
加密用公鑰,解密用私鑰。私鑰還可以數(shù)字簽名。箱子變郵筒密碼學(xué)新方向!密碼學(xué)加密:實(shí)現(xiàn)保密性認(rèn)證:實(shí)現(xiàn)認(rèn)證性1978年,出現(xiàn)第一個(gè)公鑰加密算法:RSA。因此:加密算法分為對(duì)稱加密、非對(duì)稱加密;對(duì)稱加密又分序列密碼和分組密碼兩種類型;認(rèn)證技術(shù)主要有:數(shù)字簽名、Hash函數(shù)和認(rèn)證協(xié)議。構(gòu)成密碼學(xué)的主要(基本)內(nèi)容!計(jì)算機(jī)內(nèi)部處理的是二進(jìn)制串:
二進(jìn)制串(0和1組成的串)不僅可以表示數(shù),
還可以表示各種符號(hào)等其他數(shù)據(jù)。
比特(bit:binarydigit):
每位二進(jìn)制串中的符號(hào)稱為1比特(bit);
不論是1還是0,都算1比特。(信息的單位)
ASCII碼(American
Standard
CodeofInformationInterchange):
128個(gè)常用符號(hào)編碼為128個(gè)整數(shù)(對(duì)應(yīng)二進(jìn)制串),
擴(kuò)展的ASCII碼表示另外附加128個(gè)符號(hào)。將鍵盤符號(hào)轉(zhuǎn)變?yōu)槎M(jìn)制碼
編碼譯碼加密解密認(rèn)證認(rèn)證信源信道信宿噪聲網(wǎng)絡(luò)(安全)信息處理系統(tǒng):從功能上看:
從內(nèi)容上看:
保密性
認(rèn)證性
安全多方計(jì)算
對(duì)稱密碼
公鑰密碼雜湊函數(shù)
密碼協(xié)議安全性定義、設(shè)計(jì)(編碼)、實(shí)現(xiàn)和分析(攻擊)(含身份認(rèn)證)可視為三個(gè)發(fā)展階段模運(yùn)算的性質(zhì):
同余運(yùn)算的性質(zhì):
1.4相關(guān)數(shù)學(xué)概念和算法加法群:(additivegroup)集合上定義一種運(yùn)算(+),有單位元,都有逆元。
二種運(yùn)算!
+0100111001000101
+01234001234112340223401334012440123×123411234224133314244321都有加法逆元即負(fù)元
+012345001234511234502234501334501244501235501234×12345112345224024330303442042554321整數(shù)集合模素?cái)?shù)p構(gòu)成剩余類域Zp;整數(shù)集合模合數(shù)n構(gòu)成剩余類環(huán)Zn。有限域有限環(huán)無限的代數(shù)結(jié)構(gòu):Z:整數(shù)環(huán);Q:有理數(shù)域;
R:實(shí)數(shù)域;C:復(fù)數(shù)域。
兩種運(yùn)算都構(gòu)成群(并有分配律)的就是域例題:
商輾轉(zhuǎn)剩余361241221200結(jié)論:公因子是每個(gè)余數(shù)的因子;
每個(gè)余數(shù)都可以寫成輸入二數(shù)的線性組合。商輾轉(zhuǎn)剩余268321211剩余表示為36和24的和36的系數(shù)24的系數(shù)1236-1*241-1024-2*12=24-2*(36-1*24)=(-2)*36+3*24-23剩余表示為26和3的和26的系數(shù)3的系數(shù)226-8*31-813-1*2=3-1*(26-8*3)=(-1)*26+9*3-19
求乘法逆:擴(kuò)展的歐幾里得算法。輾轉(zhuǎn)26108301121-81-19
古典密碼中的Hill
密碼:如何計(jì)算逆矩陣?利用初等行變換利用伴隨矩陣注意是mod26運(yùn)算!
例題:維數(shù)可以增加可采用下面模逆算法:i026101211012241-2313-25413-7
習(xí)題一:(可選擇教材中習(xí)題。)第一章古典密碼
至此結(jié)束!第二章序列密碼
2.1概述
2.2線性反饋移位寄存器
2.3m序列及其性質(zhì)2.4對(duì)偶移位寄存器2.5
B-M算法2.6非線性組合與算法舉例
2.1概述序列密碼將明文編碼為比特串:
同時(shí)產(chǎn)生與明文相同長(zhǎng)度的密鑰流:
或者GF(p)效仿一次一密加密方式:
(1)密鑰和明文長(zhǎng)度相同;
(2)每次加密采用不同的密鑰;
(3)密鑰是隨機(jī)的。古典密碼中的
Vernam密碼(1917年):
但密鑰如何實(shí)現(xiàn)?偽隨機(jī)數(shù)發(fā)生器:產(chǎn)生性能接近隨機(jī)的二進(jìn)制序列。種子密鑰序列密碼主要任務(wù):設(shè)計(jì)安全的偽隨機(jī)密鑰產(chǎn)生器。對(duì)KG(KeyGenerator)的基本要求:(1)密鑰量大;(2)極大周期;(3)理想分布;(4)非線性度大;(5)推測(cè)K是計(jì)算不可行的。KG非線性移位寄存器(NFSR:Non-linearFeedbackShiftRegister)
----M序列(周期最大)線性反饋移位寄存器(LFSR:Linear
FeedbackShiftRegister)
----m序列(周期最大)線性移位寄存器的非線性組合(實(shí)用的)序列密碼與分組密碼的比較:(1)序列密碼:
處理速度快,實(shí)時(shí)性好;
適用于軍事、外交等保密系統(tǒng)。
但是適應(yīng)性差,需要密鑰同步。(2)分組密碼:
不需密鑰同步,較強(qiáng)的適應(yīng)性;適宜作為加密標(biāo)準(zhǔn)。
但是加密速度稍慢,錯(cuò)誤易擴(kuò)散和傳播。
(但比公鑰密碼快得多,軟件上約100倍。)2.2線性反饋移位寄存器1.反饋移位寄存器KG!
例題-1:初始狀態(tài):s0=101f10110111111011011011移位寄存器的一個(gè)狀態(tài)(開始時(shí)為初始狀態(tài)):反饋函數(shù)
反饋寄存器的狀態(tài)序列:必然是周期的!因?yàn)闋顟B(tài)有限,進(jìn)入一個(gè)相同狀態(tài)后則重復(fù)。當(dāng)觸發(fā)脈沖到來時(shí),寄存器狀態(tài)移位更新為一個(gè)新狀態(tài)。
例題-1的輸出序列:10111011…..完整的狀態(tài)圖:如何使?fàn)顟B(tài)都在一個(gè)圈里?這樣周期最大。2.線性移位寄存器-LFSR(Fibonacci-LFSRs)反饋函數(shù)為線性函數(shù)(否則為非線性反饋移位寄存器)
稱為結(jié)構(gòu)常數(shù)。
結(jié)構(gòu)常數(shù)反序是為了將來有理表示方便(不必求互反多項(xiàng)式)。例題-2:
這是一個(gè)4階線性反饋移位寄存器:4-LFSR。
布爾函數(shù)!f110001000011000110001101111010110100001000
初始狀態(tài)記為:
最重要的關(guān)系!結(jié)構(gòu)常數(shù)不動(dòng)
可以劃出相應(yīng)的狀態(tài)轉(zhuǎn)移圖。
圖形和公式是對(duì)應(yīng)的
上例中:反饋函數(shù)為,
初始狀態(tài):(1000),輸出序列:(1000110)
,周期為7初始狀態(tài):(0010),輸出序列:(0010111)
,周期為7
初始狀態(tài):(0110),輸出序列:(0110100)
,周期為7
第三個(gè)初態(tài)!第一個(gè)初態(tài)!第二個(gè)初態(tài)!
反饋函數(shù)為:初始狀態(tài):(1000),輸出序列:(100010011010111)
,周期為
初始狀態(tài):(0110),輸出序列:(011010111100010)
,周期為
的序列稱為n階m序列。另一:f110001000010000100001001110011000110001101111010f111010110101001011110111001111111110111100111000110001續(xù)前:第二個(gè)初態(tài)!第一個(gè)初態(tài)!只要進(jìn)入,就得循環(huán)!
結(jié)論:(1)n-LFSR的結(jié)構(gòu)由其結(jié)構(gòu)常數(shù)唯一確定;(2)n-LFSR的結(jié)構(gòu)常數(shù)與反饋函數(shù)互相唯一確定;(3)n-LFSR序列由其結(jié)構(gòu)常數(shù)和初態(tài)唯一確定;(4)一個(gè)n-LFSR可以產(chǎn)生個(gè)不同序列;(5)一個(gè)n-LFSR的序列的最大周期是。關(guān)鍵問題:如何產(chǎn)生m序列?LFSR的聯(lián)接多項(xiàng)式為本原多項(xiàng)式。f(x)稱為線性移位寄存器的聯(lián)接多項(xiàng)式或生成多項(xiàng)式。
3.LFSR的有理表示
a(x)稱為序列的形式冪級(jí)數(shù)或生成函數(shù)。--S(f(x))LFSR的有理表示:其中g(shù)(x)是次數(shù)小于n的多項(xiàng)式:a(x):表示輸出序列f(x):表示結(jié)構(gòu)常數(shù)g(x):與初態(tài)、結(jié)構(gòu)常數(shù)相關(guān)
序列空間定理-1:n-LFSR有理表示中g(shù)(x)的次數(shù)小于n。證明:因?yàn)榈P(guān)系:
LFSR:g(x)的系數(shù)和結(jié)構(gòu)常數(shù)與初態(tài)都有關(guān)系。DSR
:g(x)的系數(shù)就是初態(tài)。(后面講)
當(dāng)初結(jié)構(gòu)常數(shù)序號(hào)與寄存器序號(hào)反向,就是為了此處。
另一簡(jiǎn)單方法求g(x):
消最低項(xiàng)的長(zhǎng)除法可求a(x):2.3、m序列及其性質(zhì)1.如何構(gòu)造m序列例題-4:
設(shè)的有理表示為,求其序列表示。解:通過消最低項(xiàng)的多項(xiàng)式除法,得到:
升冪排列消最低項(xiàng)另一種方法:定理-2:周期為p的序列的(非最簡(jiǎn))有理表示為:證明:
所以:分子多項(xiàng)式的系數(shù)(含常數(shù)項(xiàng))為一個(gè)周期;分母二項(xiàng)式的次數(shù)為周期。
例題-5:求產(chǎn)生序列(100111)∞的最短的LFSR。
多項(xiàng)式的輾轉(zhuǎn)相除法階數(shù)最少!最簡(jiǎn)有理表示
任何一個(gè)(周期)序列都可以表示為:
此即研究多項(xiàng)式形式的原因
定理-3:當(dāng)f(x)為本原多項(xiàng)式,產(chǎn)生的序列為m序列。
nFeedbackpolynomialPeriod23374155316637127不止一個(gè)!是一個(gè)本原多項(xiàng)式。初態(tài)為(10101),求序列的表示。例題-6:兩種基本方法:(1)畫出結(jié)構(gòu)圖,進(jìn)行迭代,得到狀態(tài)圖。(2)求出有理表示,進(jìn)行長(zhǎng)除法,得到一個(gè)周期。(1010111011000111110011010010000)∞設(shè)一個(gè)序列的聯(lián)接多項(xiàng)式為
隨機(jī)性如何?m序列的取樣:設(shè)
是Fq上的一個(gè)周期序列s
是一個(gè)正整數(shù),令:稱為序列的s采樣。定理-4:若是周期為p的m序列,則
2.m序列的偽隨機(jī)性形如的子序列段稱為一個(gè)長(zhǎng)為k的1游程;形如的子序列段稱為一個(gè)長(zhǎng)為k的0游程。
(1)分布特性:(2)相關(guān)特性:隨機(jī)性的三個(gè)特性:s是序列的長(zhǎng)度
(3)游程特性:0游程
證明:將游程數(shù)目轉(zhuǎn)化為狀態(tài)的數(shù)目。
狀態(tài)最終都會(huì)出現(xiàn)在序列中!一個(gè)周期序列圈m序列特點(diǎn):每個(gè)非零狀態(tài)都出現(xiàn),且只
出現(xiàn)一次!狀態(tài)都在序列中!
序列圈中,長(zhǎng)為i的1游程總會(huì)體現(xiàn)為:存在以下形式的狀態(tài)(一一對(duì)應(yīng)!)在序列圈上數(shù)游程個(gè)數(shù),都是從011…10開始。即使在******中也有,以后也會(huì)被數(shù)到,沒有遺漏。輸出序列的圈
看序列圖上的狀態(tài),游程最終要顯示在序列圈上。輸出序列的圈所以當(dāng)游程個(gè)數(shù)為現(xiàn)在只剩下的游程個(gè)數(shù):n長(zhǎng)的1游程有1個(gè),
因?yàn)樵跔顟B(tài)圈中,有一個(gè)全1狀態(tài):111….1;沒有n長(zhǎng)的0游程,因?yàn)闆]有全0狀態(tài);n-1長(zhǎng)的0游程有1個(gè);所以共有游程:不可能有n+1的1游程:不會(huì)有n-1長(zhǎng)的1游程:因?yàn)椴豢赡苡袃蓚€(gè)全1狀態(tài),且相連;因?yàn)橐韵氯齻€(gè)狀態(tài)是相連的:(否則全1狀態(tài)不會(huì)出現(xiàn)。)且每個(gè)狀態(tài)在狀態(tài)圈中,只出現(xiàn)一次;所以011..11與11..110不會(huì)連著出現(xiàn)(連著才會(huì)出現(xiàn)n-1長(zhǎng)的1游程)。m序列特點(diǎn):一個(gè)周期內(nèi),每個(gè)非零狀態(tài)都出現(xiàn),且只
出現(xiàn)一次!(3)相關(guān)系數(shù)的證明:
任意5級(jí)m序列的周期環(huán)上,有個(gè)0,有16個(gè)1。
=1111100110’1001000010’1011101100’0……,是由本原多項(xiàng)式產(chǎn)生,所以是5級(jí)m序列。其周期中,15個(gè)0,16個(gè)1。游程總數(shù):長(zhǎng)為1的1/0游程:長(zhǎng)為2的1/0游程:長(zhǎng)為3的1/0游程:長(zhǎng)為4的0游程一個(gè),長(zhǎng)為5的1游程一個(gè)。算游程時(shí)首尾相接例題-7:
LFSR(DSR:DualShiftRegisters)DSR2.4對(duì)偶移位寄存器LFSR:也稱FibonacciLFSRsDSR:也稱GaloisLFSRs
DSR的特點(diǎn):DSR也是LFSR,這樣稱呼只是為了區(qū)別開1.DSR的狀態(tài)轉(zhuǎn)換(或稱迭代過程)
例題-8:4-DSR
序列為:(1101000)
開始循環(huán)11000111010011111110000010001000100狀態(tài)不是每位都輸出初態(tài)為(1110)時(shí),序列為(1000110)
相同的聯(lián)接多項(xiàng)式4-LFSR
但是:如果上例的LFSR的初態(tài)是1101,
輸出序列為:(1101000)
,
與初態(tài)為1000的DSR輸出序列相同。因此相同的結(jié)構(gòu)常數(shù),DSR和LFSR可產(chǎn)生相同序列。2.DSR的有理表示a(x):表示輸出序列f(x):表示結(jié)構(gòu)常數(shù)g(x):表示初態(tài)!DSR也具有有理表示:一方面:利用DSR的遞推公式所以輸出序列為
定理-6:DSR序列的有理表示中:證明:其系數(shù)就是DSR的初態(tài):另一方面:利用消最低項(xiàng)方法有理表示等式的兩邊相同,得證。
由此可得到DSR的設(shè)計(jì)思路
例題-9:解:(1)LFSR的結(jié)構(gòu)常數(shù)為(0,1,0,1)
初態(tài)為(0,1,0,0)。(2)DSR的結(jié)構(gòu)常數(shù)為(0,1,0,1),結(jié)構(gòu)圖即
或者:所以DSR和LFSR是等效的。
總結(jié):4.當(dāng)鏈接多項(xiàng)式f(x)為本原多項(xiàng)式時(shí),產(chǎn)生m序列。
2.對(duì)于LFSR,g(x)的系數(shù)由初態(tài)和結(jié)構(gòu)常數(shù)確定;
對(duì)于DSR,g(x)的系數(shù)即為初態(tài);產(chǎn)生同一序列(具有相同有理表示),LFSR和DSR
的初態(tài)不同;另外:有理表示還可以擴(kuò)展為假分式的情況,例如:
對(duì)應(yīng)的LFSR的圖示為:(退化的7-LFSR)
非周期部分的位數(shù)有3位,對(duì)應(yīng)的退化寄存器個(gè)數(shù)為3。線性復(fù)雜度:生成序列所需最小的LFSR寄存器個(gè)數(shù)。本例中,序列的線性復(fù)雜度=4+3。2.5B-M算法線性反饋移位寄存器雖然易于實(shí)現(xiàn),但是不安全的,如果知道兩個(gè)周期,就能通過B-M算法解出生成多項(xiàng)式。已知階數(shù)B-M算法不需任何前提,求出序列段的線性綜合解:是一種迭代算法:階數(shù)對(duì)于n階線性移位寄存器,已知2n序列段,通過解方程組,可以求得對(duì)應(yīng)的結(jié)構(gòu)常數(shù)還可用于循環(huán)碼譯碼等。還有Berlekamp算法:用于分解多項(xiàng)式。B-M(Berlekamp–Massey)算法:
迭代型求解序列生成多項(xiàng)式的算法。(且不必事先知道寄存器階數(shù))未知階數(shù)規(guī)定:f(x)=1表示0階線性移位寄存器的聯(lián)接多項(xiàng)式,(長(zhǎng)度為n的全零序列由0階線性移位寄存器產(chǎn)生。)
且記計(jì)算對(duì)于,重復(fù)第二步和第三步N次,即可求出若(a)如果(b)否則,存在(3)若,取逐次試驗(yàn)聯(lián)接多項(xiàng)式的方法!輸出:<1+x3+x4,4>同一行中最后才算dn!d=1才算m!寫在fn+1的上一行例10:輸入S8=10101111
當(dāng)前結(jié)構(gòu)常數(shù):當(dāng)前狀態(tài)
逐一試驗(yàn)上題的解釋:(上述過程熟練以后,僅用表格形式做即可!)
例題-11:輸入:S10=0001101111
注意:
SN是N長(zhǎng)的序列,B-M算法僅保證產(chǎn)生這N長(zhǎng)序列。如果序列是周期的,例如則需要計(jì)算2個(gè)周期的序列,才能保證綜合解產(chǎn)生的序列是周期的。序列的線性復(fù)雜度:(可見前面71頁)
產(chǎn)生該序列的最短LFSR的階數(shù)。對(duì)于輸入序列,用BM算法得到的f(x)的次數(shù)就是其線性復(fù)雜度。解決線性反饋不安全性有兩種方式:非線性反饋:大M序列線性反饋的非線性綜合非線性反饋移位寄存器:反饋函數(shù)是非線性的布爾函數(shù);但實(shí)現(xiàn)和分析上較為復(fù)雜。1.非線性綜合2.6非線性綜合與算法舉例對(duì)一個(gè)或多個(gè)線性移位寄存器進(jìn)行非線性綜合可獲得安全性能良好的非線性序列。有幾類:
非線性綜合:非線性濾波生成器非線性綜合生成器
LFSR2LFSR1鐘控方式:f1f2LFSR1LFSRncz
帶記憶組合生成器
A5序列密碼算法使歐洲GSM標(biāo)準(zhǔn)中規(guī)定的加密算法,用于數(shù)字蜂窩電話加密,現(xiàn)已被基于分組方式的取代。2.A5算法19階、22階、23階。19+22+23=64bit
3.ZUC算法(我國(guó)商密標(biāo)準(zhǔn)算法)比特重組32bit寄存器兩次使用2個(gè)8*8的S盒32bit寄存器
習(xí)題二:(可選擇教材中習(xí)題。)第二章序列密碼至此結(jié)束!第三章分組密碼
3.1概述
3.2DES(數(shù)據(jù)加密標(biāo)準(zhǔn))3.3AES(高級(jí)加密標(biāo)準(zhǔn))
3.4SM4(我國(guó)商用分組算法)
3.5分組密碼的工作模式3.1概述為了克服統(tǒng)計(jì)分析,可以采用擴(kuò)散和混淆兩種基本方式。擴(kuò)散:就是使明文的每一位影響密文中的許多位,這樣可以隱蔽明文的統(tǒng)計(jì)特性。
混淆:密文的每一位受密鑰盡可能多位的影響。
使密文和密鑰關(guān)系復(fù)雜,從而統(tǒng)計(jì)分析更加困難。
換位變換可以實(shí)現(xiàn)有效的擴(kuò)散,打亂明文字母之間、
字母組合之間的統(tǒng)計(jì)關(guān)系。
代替變換(非線性的)可以達(dá)到比較好的混淆效果。
不論是數(shù)、還是其它信息,經(jīng)過編碼后都變?yōu)槎M(jìn)制串,可稱之為數(shù)據(jù)。如果對(duì)其加密,數(shù)據(jù)就是明文:11001011’10110010’
01101010’11101011’……..分組密碼的加密是每次對(duì)一段明文進(jìn)行加密,類似古典密碼的多表密碼:
……..每個(gè)明文段叫作一個(gè)明文分組,對(duì)應(yīng)密文叫作密文分組。明文分組密鑰密文分組En明文分組密鑰密文分組De01…1101…P盒-permutationbox;S盒-substitutionbox。SP結(jié)構(gòu)(替代-置換網(wǎng)絡(luò)):每輪處理整個(gè)分組明文,加解密算法不同。分組密碼的整體結(jié)構(gòu)有兩種基本類型:(迭代類型)Feistel結(jié)構(gòu):每輪處理一半明文,加解密算法相同。DES是Feistel結(jié)構(gòu)的代表;AES是SP結(jié)構(gòu)的一個(gè)代表。乘積密碼系統(tǒng)是S盒與P盒變換的組合,兩者結(jié)合得到的密碼系統(tǒng)比單獨(dú)一種更強(qiáng)。這一方式成為數(shù)據(jù)加密標(biāo)準(zhǔn)DataEncryptionStandard(DES)的基礎(chǔ)。
Feistel結(jié)構(gòu)SP結(jié)構(gòu)En
分組密碼:
多次迭代一個(gè)輪函數(shù),同時(shí)處理一組明文段。
密鑰長(zhǎng)度固定,且對(duì)不同明文段保持不變。序列密碼:
產(chǎn)生(偽)隨機(jī)的密鑰流,每次處理一個(gè)明文字母。
加密過程簡(jiǎn)單,但需要密文與密鑰同步。分組密碼適用性更廣,易于標(biāo)準(zhǔn)化;序列密碼主要用于保密性,速度更快,可實(shí)時(shí)通信。
3.2DES(數(shù)據(jù)加密標(biāo)準(zhǔn))DES(DataEncryptionStandard)從1977年提出(原計(jì)劃用10年)到1997年被認(rèn)為不安全,經(jīng)歷了20多年,是分組密碼設(shè)計(jì)的一個(gè)典范。
一、DES的加解密過程
明文分組:64bit(即64位二進(jìn)制串)密文分組:64bit密鑰:64bit,其中8bit為校驗(yàn)位,實(shí)際56bit輪數(shù):
16輪(圈)加密函數(shù):8個(gè)6-4S盒;P置換。整體結(jié)構(gòu):FeistelLRLRLRIP-1IP16輪64bit64bit算法:整體結(jié)構(gòu)步(輪)函數(shù)密鑰擴(kuò)展密鑰擴(kuò)展ffDES整體結(jié)構(gòu):32Bit!32Bit!64Bit!48Bit!一共16輪!64bit!注意:最后一輪不交換!DES的加密函數(shù)f:8個(gè)不同的6-4S盒!48bit!48bit!32bit!4×8=32bit查表!擴(kuò)展并置換查表:輸入6比特的首尾2位確定行,中間4位確定列,交叉處為輸出。密鑰擴(kuò)展:64bit輸入密鑰!56bit-去掉8、16等8個(gè)監(jiān)督位56bit48bit28bit循環(huán)移位,1、2、9、16輪左移1位,其它輪左移2位!Feistel結(jié)構(gòu):記住這個(gè)特點(diǎn)即可!!加密解密密鑰反序L在右側(cè)加兩次,消掉!明文
M(8bit)IPT0(4bit)T1(4bit)f(T1,K1)T1(4bit)T2(4bit)IP-1密文組C(8bit)密鑰K(8bit)P1C0(4bit)D0(4bit)4-置換Qf(T2,K2)T3(4bit)T2(4bit)4-置換RC1(4bit)D1(4bit)4-置換Q-14-置換R-1P2K1(6bit)C2(4bit)D2(4bit)P2K2(6bit)小DES(1)如果密鑰擴(kuò)展過程中,
P1=(41768253),
P2=(571842),Q=(3142),R=(4312),
輸入主密鑰為K=11001010,
求經(jīng)密鑰擴(kuò)展后的K1和K2。(2)如果IP=(86421357),
f函數(shù)如左圖所示,
兩個(gè)S盒見下頁。S1P=(3,1,2,4)f(T,K)(4bit)K(6bit)E=(4,1,2,2,3,4)T(4bit)T’(6bit)Z2(3bit)Z1(3bit)S2U2(2bit)U1(2bit)(第1bit決定行,第2、3bit決定列)解:(1)經(jīng)置換,C1D1=10010101,經(jīng)P2得K1=001110C2D2=01100110,經(jīng)P2得K2=010001。S101230301211320S201230213013021若已知明文01011100,在密鑰K下得到的密文是什么?
并通過解密得到原明文驗(yàn)證加密的正確性。(2)T1=0010,T1’=000010,Z1=001,Z2=100U1=00,U2=11,f(T1,K1)=1001,T2=1110;T2’=011110,Z1=001,Z2=111,U1=00,U2=01,f(T2,K2)=0001,T3=0011,T4=1110,1111100001011100(86421357)01110010F
0010
1110
(54637281)
11111000
11001010(41768253)01100110(3142)F
0011
1110
(4312)10010101(2413)(3421)P200111001100110P2
010001
二、DES的特點(diǎn)
除密鑰順序之外,加密和解密步驟完全相同;
主要的批評(píng):密鑰太短,迭代次數(shù)可能太少,
S盒可能存在不安全隱患。
差分分析:通過分析明文對(duì)的差值(異或)對(duì)密文對(duì)的差值的影響來恢復(fù)某些密鑰比特。
窮舉攻擊:現(xiàn)在人們利用網(wǎng)絡(luò)計(jì)算可以在20多小時(shí)破譯56位的DES。DES已變得不安全了。
線性分析:一種已知明文攻擊,它試圖建立起明文、密文和密鑰之間的一組近似線性方程。
三、多重DES
為了提高安全性,防止窮舉攻擊,DES還有多重形式。
雙重DES:
但存在中間相遇攻擊:(已知一對(duì)明密文)窮舉k2!窮舉k1!
三重DES:
中間一層用解密形式是為了可以利用三重DES對(duì)單重DES加密的密文進(jìn)行解密(
k1=k2或k2=k3)。DESk1mDESk2-1DESk3cDESk1-1DESk2DESk3-13.3AES(高級(jí)加密標(biāo)準(zhǔn))
1997年美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究所(NIST)征集AES(AdvancedEncryptionStandard)。
要求:(1)比三重DES快且至少與它一樣安全;(2)分組長(zhǎng)度為128bit;
密鑰長(zhǎng)為128bit,192bit和256bit;(3)算法要能抵抗已知的密碼分析方法,無明顯漏洞;(4)算法實(shí)現(xiàn)要有效率,有一定的靈活性(適應(yīng)不同的環(huán)境),軟硬件兩種方法實(shí)現(xiàn)。15種算法參加第一輪評(píng)選,5種進(jìn)入第二輪:
RC6、Rijndael、Serpent、Twofish、Mars2000年獲勝者是Rijndael算法,是比利時(shí)密碼設(shè)計(jì)者所作。
一、AES的加解密過程明文分組:128bit密文分組:128bit密鑰:128、192、256bit輪數(shù):10、12、14輪(圈)加密函數(shù):8-8的S盒、P(行移位、列混合)密鑰生成:擴(kuò)展、遞歸總體結(jié)構(gòu):SP結(jié)構(gòu)
10-14輪128bit128bit16個(gè)字節(jié)SP結(jié)構(gòu)
AES是面向字節(jié)的算法:字節(jié)為最小單位進(jìn)行處理。輸入明文分組:128bit=16×8bit=16個(gè)字節(jié),排成4×4的字節(jié)數(shù)組,稱為狀態(tài)矩陣(StateMatrix)
按列排!輪函數(shù)就是對(duì)這個(gè)數(shù)組進(jìn)行變換。乘以常數(shù)字(4字節(jié))AES解密過程:加密過程的逆過程,需要相應(yīng)的逆變換。
AddRoundKey:將每一輪的密鑰與狀態(tài)矩陣直接異或;
InvSubBytes:逆字節(jié)替代變換,需要8-8的逆s盒。InvShiftRows:逆行移位變換;InvMixColumns:逆列混合變換;
AES密鑰擴(kuò)展過程:
產(chǎn)生各輪子密鑰,主密鑰直接作為開始的輪密鑰,
后面的由前面輪密鑰字,經(jīng)S盒等運(yùn)算遞歸產(chǎn)生。
4個(gè)字節(jié)為1個(gè)字
AES中的列混合:AES是面向字節(jié)的算法——字節(jié)的運(yùn)算!以下介紹字節(jié)替代和列混合這兩個(gè)部件的實(shí)現(xiàn)原理二、AES中的運(yùn)算
0000——0x00110——0x61100——0xC0001——0x10111——0x71101——0xD0010——0x21000——0x81110——0xE0011——0x31001——0x91111——0xF0100——0x41010——0xA0101——0x51011——0xB11000001——C1AES是面向字節(jié)的算法,最小單位是字節(jié)(Byte)。一個(gè)字節(jié)可用二位十六進(jìn)制數(shù)表示。二進(jìn)制串常表示為十六進(jìn)制任意分組表示為128bit的二進(jìn)制串,分為12個(gè)字節(jié),每個(gè)字節(jié)表示為2位十六進(jìn)制(省略0x),例如:
AES對(duì)此字節(jié)矩陣的處理即是對(duì)字節(jié)的運(yùn)算,需要將所有字節(jié)組成的集合變?yōu)榇鷶?shù)結(jié)構(gòu)(可以加減乘除)。
仿照對(duì)“數(shù)”的處理,將這些數(shù)據(jù)視為“數(shù)”00000000=0x0000000001=0x01-----00001111=0x0F-----11111111=0xFF加、減、乘、除——域!運(yùn)算結(jié)果還在此域中S盒——字節(jié)除法列混合——字節(jié)乘法1、中的運(yùn)算(字節(jié)運(yùn)算)
中一共有個(gè)元素,可以有多種方式表示,AES中用多項(xiàng)式表示(以便能進(jìn)行乘/除運(yùn)算)。
一個(gè)字節(jié)8bit:
對(duì)應(yīng)多項(xiàng)式:
一個(gè)字節(jié)8比特,可以看作中的一個(gè)元素。例題:0x57即01010111,對(duì)應(yīng)多項(xiàng)式:
對(duì)于域的加法就是多項(xiàng)式對(duì)應(yīng)項(xiàng)相加,系數(shù)模二加:
‘57’
‘83’
01010111
10000011=11010100‘D4’AES中兩個(gè)字節(jié)相加的含義!對(duì)于域的減法,就是加上減法逆(就是本身)。對(duì)于域的乘法,要模一個(gè)8次既約多項(xiàng)式m(x),AES中選取的
例題:‘57’·‘83’
對(duì)應(yīng):
二進(jìn)制表示:01010111?10000011=11000001十六進(jìn)制表示:57?83=c1AES中兩個(gè)字節(jié)相乘的含義!
分配律!
復(fù)雜運(yùn)算化簡(jiǎn)為簡(jiǎn)單運(yùn)算的迭代都是乘x
乘一個(gè)x,相當(dāng)于字節(jié)中的1左移1位
06=00000110=00000100+00000010=02+04
將一個(gè)字節(jié)表示為只有一個(gè)1的字節(jié)之和,而只有一個(gè)1的字節(jié)都是不斷乘x得到的。
xtime()運(yùn)算:x
b(x)
更高次的乘法可以通過重復(fù)使用xtime()實(shí)現(xiàn)。
(1)如果,則xtime()運(yùn)算就是左移一位,后補(bǔ)零;如果,則xtime()左移一位,后補(bǔ)零,再異或1b。
xtime()算法:例題:57
13=01010111
00010011
“13”=
00010011
=
00000001
+00000010
+00010000因此13=“01”+
“02”+
“10”字節(jié)13是16進(jìn)制,不是十進(jìn)制,十進(jìn)制數(shù)對(duì)應(yīng)19。
57
02=xtime(57)=xtime(01010111)=ae57
04=xtime(ae)=xtime(10101110)=4757
08=xtime(47)=xtime(01000111)=8e57
10=xtime(8e)=xtime(10001110)=0757
13=57
(01⊕02⊕10)
=57⊕ae⊕07=fe對(duì)于域的除法,也就乘以除數(shù)的乘法逆。一般地,可以利用多項(xiàng)式的擴(kuò)展歐幾里得算法求乘法逆。
例題:求多項(xiàng)式模的逆元。驗(yàn)證:表示為輸入的線性組合兩邊模M(x),可得逆元。因?yàn)椋夯蛘卟捎靡韵碌惴ǎ好看问S嗫杀硎緸閚與u的代數(shù)和。
注意順序AES中規(guī)定:
53的字節(jié)代替。二進(jìn)制為01010011,表示的域元素為例題:表示為二進(jìn)制為11001010。
逆元為,
所以53代替為11101101,即“ed”。
注意順序!2、系數(shù)在的多項(xiàng)式運(yùn)算(字運(yùn)算)
這時(shí)元素用多項(xiàng)式表示,就是系數(shù)在中的小于4次的多項(xiàng)式。
加法就是多項(xiàng)式對(duì)應(yīng)項(xiàng)的系數(shù)相加,因此也就是中元素相加,即逐位模二加。
列混合是字的運(yùn)算
AES中兩個(gè)字相加的含義!乘法是多項(xiàng)式相乘后,模一個(gè)4次多項(xiàng)式,
AES中兩個(gè)字相乘的含義!不是既約的:(01+01=00)
都成為四項(xiàng)之和為了進(jìn)行解密,a(x)應(yīng)當(dāng)有逆。AES中的列混合:MDS碼,最佳擴(kuò)散性;重量輕,計(jì)算簡(jiǎn)單
例題:
AES列混合的性質(zhì):
混合前后兩列的四個(gè)字節(jié)之和保持不變。
三、AES的特點(diǎn)
結(jié)構(gòu)簡(jiǎn)單,適應(yīng)性強(qiáng);加解密結(jié)構(gòu)相同,但是解密使用加密的逆模塊;逆S盒逆S盒對(duì)于AES的攻擊:主要利用AES代數(shù)結(jié)構(gòu)的特點(diǎn)。
積分分析:通過預(yù)測(cè)幾輪之后的積分值來猜測(cè)密鑰。
代數(shù)攻擊:用某種代數(shù)方程系統(tǒng)描述S盒。
側(cè)信道攻擊:加密中間過程電磁泄漏可能暴露密鑰信息。
(sidechannelattack)(差分能量攻擊)
AES的設(shè)計(jì)能夠抵御已有的線性分析和差分分析;采用較大的S盒,并且能進(jìn)行代數(shù)上的定義,而不像DES的S盒是“隨機(jī)”代替(不易判斷安全性)。寬軌跡策略Feistel結(jié)構(gòu)SP結(jié)構(gòu)En
3.4SM4(我國(guó)商用密碼算法)SM4是2006年我國(guó)公布的商用分組密碼算法。特點(diǎn):分組長(zhǎng)度和密鑰長(zhǎng)度都是128比特;加密算法和密鑰擴(kuò)展都是32輪非線性迭代;采用一個(gè)8*8的S盒;采用32bit的異或和移位運(yùn)算L;結(jié)構(gòu)為非對(duì)稱的Feistel;加解密算法相同,只是輪密鑰順序顛倒。Electronic-CodeBook(ECB):電碼本模式Cipher-BlockChaining(CBC):密碼分組鏈接模式CipherFeedBack(CFB):密碼反饋模式OutputFeedBack(OFB):輸出反饋模式
為了防止攻擊,分組密碼需要有一定的工作模式。CFB和OFB兩種模式:可利用分組密碼實(shí)現(xiàn)流密碼!3.5分組密碼工作模式
(另外新的還有:計(jì)數(shù)器模式、加密認(rèn)證模式等)這些模式適用于各種分組密碼,以下僅以DES為例。DESDESm1c1km2c26464kDESkcnmnDES-1DES-1c1m1kc2m26464kDES-1kmncnECB模式(electroniccodebook)相同明文產(chǎn)生相同密文!以DES為例但這種模式存在以下問題:
相同明文對(duì)應(yīng)相同密文。CBC
模式(cipherblockchaining)DESDESm1c1km2c2kDESkcnmn初始矢量Cn-1DES-1DES-1c1m1kc2m2cn-1初始向量kDES-1kmncn64-j位j位j位64-j位DES64-j位j位
DESj位64-j位j位64-j位
64-j位j位DESm1c1k移位寄存器jm2c26464jkkmncnCFB模式(cipherfeedback)64-j位j位j位64-j位DES64-j位j位
DESj位64-j位j位64-j位
64-j位j位DESm1c1k移位寄存器m2c26464kkmncnCn-1解密模式也用DES加密64-j位j位j位64-j位DES64-j位j位
DESj位64-j位j位64-j位
64-j位j位DESm1c1k移位寄存器jm2c26464jkkmncnOFB
模式(outputfeedback)密文錯(cuò)誤不會(huì)傳播!64-j位j位j位64-j位DES64-j位j位
DESj位64-j位j位64-j位
64-j位j位DESm1c1k移位寄存器m2c26464kkmncn計(jì)數(shù)器模式:DES
DES
DES
習(xí)題
三:(可選擇教材習(xí)題。)第三章分組密碼至此結(jié)束!第四章雜湊函數(shù)
4.1
概述
4.2SHA-1和SHA-2
4.3SHA-34.4我國(guó)商密標(biāo)準(zhǔn)SM3
4.
5
MAC和認(rèn)證加密
4.1概述認(rèn)證(authentication):
采取一些措施保證實(shí)體(entity)是他們所宣稱那些
人,或消息不被非法者修改。
兩類基本認(rèn)證:
身份認(rèn)證(identificationorentityauthentication)
雙方在線、實(shí)時(shí),例如電話;消息認(rèn)證(messageauthentication;或
數(shù)據(jù)源認(rèn)證dataoriginauthentication)
單向、可延時(shí),例如E-mail。數(shù)據(jù)完整性(DataIntegrity):
保證消息的不被修改(但不含數(shù)據(jù)源合法性)。實(shí)現(xiàn)數(shù)據(jù)完整性:
應(yīng)用抗碰撞的雜湊函數(shù),檢查摘要值。實(shí)現(xiàn)消息認(rèn)證:
消息認(rèn)證=完整性+數(shù)據(jù)源認(rèn)證
采用:有密鑰的雜湊函數(shù)(消息認(rèn)證碼-MAC);
數(shù)字簽名等。另外:在數(shù)字簽名中:
用雜湊函數(shù)將消息進(jìn)行壓縮后,對(duì)摘要值簽名;在隨機(jī)數(shù)產(chǎn)生器中:
用雜湊函數(shù)的摘要值作為隨機(jī)數(shù);因此,雜湊函數(shù)是密碼學(xué)中最常用的部件之一。實(shí)現(xiàn)區(qū)塊鏈的基本工具!雜湊函數(shù)(算法):
將任意長(zhǎng)輸入的消息壓縮為短的摘要值。有密鑰的雜湊函數(shù)(MAC:MessageAuthenticationCode)有兩個(gè)輸入:密鑰和消息。給定消息,只有知道密鑰的人可計(jì)算MAC。
無密鑰的雜湊函數(shù)(MDC:ModificationDetectionCode)只有一個(gè)輸入即消息。
給定消息,任何人都可計(jì)算hash值;一般,將無密鑰的雜湊函數(shù)就叫做雜湊函數(shù);而將有密鑰的雜湊函數(shù)叫做消息認(rèn)證碼MAC。雜湊函數(shù)的安全性:
抗原象性(pre-imageresistance):
由y=h(x)計(jì)算x是計(jì)算困難的;yxxx’yyx’x
生日問題:最少多少人中有人生日相同,概率大于50%?
不相同的迭代結(jié)構(gòu)+壓縮函數(shù)雜湊函數(shù)的構(gòu)造:最常見的Merkle-Damgard(MD)迭代結(jié)構(gòu)利用分組密碼工作模式-構(gòu)造雜湊函數(shù):利用分組密碼的密碼分組鏈接模式CBC和密碼反饋模
式CFB。Ekx1y1kx2y2kkH(x1..xn)yn初始矢量EkEkCBCCFBx1y1kx2kkH(x1..xn)xn初始矢量EkEky2Ek直接構(gòu)造f函數(shù):采用類似分組密碼的基本部件和基本運(yùn)算,構(gòu)造偽隨機(jī)函數(shù)(避免分組密碼中不必要的密鑰擴(kuò)展過程)。利用模運(yùn)算構(gòu)造f函數(shù):采用第五章介紹的公鑰密碼的方法,從單向函數(shù)設(shè)計(jì)壓縮函數(shù)。MASH-1國(guó)際標(biāo)準(zhǔn),采用模平方運(yùn)算;利用格計(jì)算問題設(shè)計(jì)的SWIFFT算法;利用糾錯(cuò)碼設(shè)計(jì)的FSB算法;雖然具有較好的理論基礎(chǔ),但實(shí)現(xiàn)效率仍有差距。SHA-1和SHA-2是美國(guó)(NIST)雜湊函數(shù)標(biāo)準(zhǔn)算法。(SHA:StandardHashAlgorithm)
4.2
SHA-1和SHA-2這是一系列雜湊函數(shù)MD4、MD5的發(fā)展,共同特點(diǎn)是:采用簡(jiǎn)單的運(yùn)算多次迭代構(gòu)造壓縮函數(shù)。
被攻破的MD4、MD5的輪函數(shù)
輪常數(shù)消息子塊每個(gè)512比特消息塊分為16個(gè)32bit的消息字,經(jīng)擴(kuò)展,形成80個(gè)(步)的消息字;最后將輸入鏈接值反饋到輸出,保證壓縮函數(shù)單向性。
2002年美國(guó)NIST根據(jù)實(shí)際情況,增加了Hash算法
輸出長(zhǎng)度,形成SHA-256、SHA-384、SHA-512,
這些算法統(tǒng)稱為SHA-2。2004年又提出SHA-224。SHA-2:SHA-256的輸出為256bit,鏈接值分為8個(gè)字,壓縮函數(shù)整體迭代64步,沒有明顯的輪界限。
SHA-256步運(yùn)算SHA-224:
與SHA-256初始值不同;
輸出從256bit左端截取224bit。SHA-512:
每個(gè)字64bit,鏈接值為512bit;
消息分塊為1024bit;迭代89步;SHA-384:
與SHA-512初始值不同;
輸出從512bit左端截取384bit。名稱輸出長(zhǎng)度消息塊長(zhǎng)度字長(zhǎng)度輪數(shù)*每輪步數(shù)SHA-1160512324*20SHA-224/256224/256512321*64SHA-384/512384/5121024641*80我們國(guó)家商密標(biāo)準(zhǔn)雜湊函數(shù)是SM3關(guān)于MD-5、SHA-1的攻擊
關(guān)于MD結(jié)構(gòu)的攻擊2004年,A.Joux提出了多碰撞攻擊,已知碰撞時(shí)
找到多碰撞很容易;2005年,J.Keley等提出長(zhǎng)消息的第二原像攻擊,
降低了復(fù)雜度,但需要較長(zhǎng)的消息;2006年,J.Kelsey等提出了Herding攻擊,已知碰
撞時(shí)產(chǎn)生有意義的第二原像。第一階段:(2007年)在全世界征集了51個(gè)算法;第二階段:(2010年)剩余14個(gè)算法;第三階段:(2011年)剩余5個(gè)算法;(BLAKE、Groestl、JH、Keccak、Skein)2012年10月初
最終獲勝者是Keccak。美國(guó)NIST關(guān)于SHA-3的征集活動(dòng):
4.3
SHA-3Keccak:整體結(jié)構(gòu)為Sponge結(jié)構(gòu),好處是輸出任意長(zhǎng);結(jié)構(gòu)具有一定的可證明安全性。1600bit置換1600bit狀態(tài),外部狀態(tài)r長(zhǎng)度,內(nèi)部狀態(tài)為c長(zhǎng)度;初始值為全0,排列為5*5*64的三維
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 推動(dòng)人事工作的標(biāo)準(zhǔn)化與規(guī)范化計(jì)劃
- 采購(gòu)與供應(yīng)鏈協(xié)同風(fēng)險(xiǎn)管理重點(diǎn)基礎(chǔ)知識(shí)點(diǎn)
- 2025證券資格考試核心試題及答案分析
- 2025年注冊(cè)會(huì)計(jì)師考試模擬測(cè)試試題及答案
- 證券從業(yè)資格證自學(xué)資源整合試題及答案
- 證券從業(yè)資格證考試內(nèi)容深度解析試題及答案
- 整合信息2025年注冊(cè)會(huì)計(jì)師考試試題及答案
- 總結(jié)證券從業(yè)資格證考試的變革趨勢(shì)試題及答案
- 2025年證券從業(yè)資格證計(jì)分標(biāo)準(zhǔn)試題及答案
- 微生物檢驗(yàn)數(shù)據(jù)的統(tǒng)計(jì)分析與解讀試題及答案
- 道路普通貨物運(yùn)輸企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化評(píng)審標(biāo)準(zhǔn)
- 街道綜治中心管理制度
- 分娩鎮(zhèn)痛后護(hù)理
- 【9數(shù)一模】2025年安徽省合肥市蜀山區(qū)九年級(jí)中考一模數(shù)學(xué)試卷(含答案)
- 入職新華書店試題及答案
- 危險(xiǎn)化學(xué)品運(yùn)輸車輛駕駛員安全駕駛習(xí)慣考核試卷
- 魯濱遜漂流記選段:敘事技巧分析教案
- 貴州省氣象部門招聘考試真題2024
- 2025屆高考語文二輪復(fù)習(xí):文言文知識(shí)點(diǎn)與答題技巧匯編 講義
- Unit 5 Here and now Section A Grammar 說課稿 2023-2024學(xué)年人教版英語七年級(jí)下冊(cè)
- 地下綜合管廊建設(shè)項(xiàng)目可行性研究報(bào)告
評(píng)論
0/150
提交評(píng)論