本書系統(tǒng)地介紹了序列密碼的典型分析方法。全書共8章,主要內(nèi)容包括時(shí)間存儲(chǔ)數(shù)據(jù)折中分析方法、相關(guān)分析方法、線性分析方法、代數(shù)分析方法、猜測(cè)確定分析方法、側(cè)信道分析方法和其他分析方法。 本書可作為從事網(wǎng)絡(luò)空間安全、信息安全和密碼學(xué)研究的科研人員,以及網(wǎng)絡(luò)空間安全、信息安全和密碼學(xué)專業(yè)的研究生和高年級(jí)本科生的教科書或參考資料。
本書的寫作具有以下特色:1)系統(tǒng)性強(qiáng)。本書系統(tǒng)總結(jié)了散見于各種文獻(xiàn)中的各種序列密碼分析方法,將其歸納為時(shí)間存儲(chǔ)數(shù)據(jù)折衷分析方法、相關(guān)密鑰分析方法、線性分析方法、代數(shù)分析方法、猜測(cè)確定分析方法、側(cè)信道分析方法和其他分析方法等七大類,并分門別類地介紹了一些典型的分析方法。2)內(nèi)容新穎。本書反映了序列密碼分析領(lǐng)域的研究進(jìn)展,不僅處處有小的綜述,而且極力介紹一些新的具體分析方法,包括序列密碼的時(shí)間存儲(chǔ)數(shù)據(jù)折衷攻擊方法、條件相關(guān)分析方法、選擇初始向量分析方法、立方分析方法、面向字節(jié)的猜測(cè)確定攻擊方法、冷啟動(dòng)攻擊、近似碰撞攻擊方法等。同時(shí),盡量反映一些新的設(shè)計(jì)思想,包括Sprout序列密碼、FLIP序列密碼、抗泄漏序列密碼等。
密碼學(xué)主要包括兩部分,即密碼編碼學(xué)和密碼分析學(xué),這兩部分既對(duì)立又統(tǒng)一,正是由于其對(duì)立性才促進(jìn)了密碼學(xué)的發(fā)展。一個(gè)密碼算法(也稱密碼體制)的安全性只有通過系統(tǒng)地考查抵抗當(dāng)前各類攻擊的能力并進(jìn)行全面的分析才能得出適度的定論。密碼算法的安全性分析并非易事,但有一點(diǎn)是非常清楚的,那就是掌握現(xiàn)有的分析方法(也稱攻擊方法)并利用這些方法對(duì)相應(yīng)的算法進(jìn)行分析以考查其安全強(qiáng)度。密碼分析方法不僅涉及的知識(shí)面寬,而且?guī)в幸欢ǖ膶?shí)驗(yàn)性和經(jīng)驗(yàn)性,任何一種分析方法都只有通過實(shí)踐才能真正掌握。密碼分析方法有很多,因?yàn)椴煌拿艽a算法有不同的分析方法,甚至同一密碼算法也有很多種分析方法。作者在教學(xué)實(shí)踐的基礎(chǔ)上,于2000年在清華大學(xué)出版社出版了《密碼分析學(xué)》一書,系統(tǒng)地介紹了當(dāng)時(shí)已有的分析密碼算法和密碼協(xié)議的典型方法,該書出版后受到廣大讀者的青睞。時(shí)隔20年,密碼分析學(xué)有了更豐富的內(nèi)涵,很多書對(duì)此做了比較詳細(xì)的介紹,但仍然缺乏一本全面、系統(tǒng)地介紹序列密碼分析方法的著作。鑒于這種情況,作者結(jié)合多年的教學(xué)和科研實(shí)踐,并在自己的讀書筆記的基礎(chǔ)上,撰寫了本書,以饗讀者。
作者有幸承擔(dān)并主持了國(guó)家自然科學(xué)基金重點(diǎn)項(xiàng)目流密碼的設(shè)計(jì)與分析和國(guó)際3GPP標(biāo)準(zhǔn)祖沖之(ZUC)序列密碼的研制工作,在這些項(xiàng)目的執(zhí)行過程中,創(chuàng)設(shè)或掌握了不少新知識(shí)、新思想和新方法,對(duì)序列密碼理論、設(shè)計(jì)、分析和應(yīng)用都有了更加深刻的認(rèn)識(shí),深知密碼基礎(chǔ)理論和密碼分析方法的重要性,深深地體會(huì)到設(shè)計(jì)一個(gè)新穎的、理論上安全的、實(shí)用的輕量級(jí)序列密碼絕非易事。不信,你可以親自試一試,尤其是當(dāng)你讀完本書后,你的自信會(huì)大打折扣。
本書具有以下特點(diǎn):
(1) 結(jié)構(gòu)清晰。本書系統(tǒng)總結(jié)了散見于眾多文獻(xiàn)中的各種序列密碼分析方法,將其歸納為時(shí)間存儲(chǔ)數(shù)據(jù)折中分析方法、相關(guān)分析方法、線性分析方法、代數(shù)分析方法、猜測(cè)確定分析方法、側(cè)信道分析方法和其他分析方法七大類,并分門別類地介紹了典型的分析方法。
(2) 內(nèi)容新穎。本書反映了序列密碼分析領(lǐng)域的研究進(jìn)展,不僅處處有小的綜述,而且極力介紹一些新的具體分析方法,包括序列密碼的時(shí)間存儲(chǔ)數(shù)據(jù)折中攻擊方法、條件相關(guān)分析方法、選擇初始向量分析方法、立方攻擊方法、面向字節(jié)的猜測(cè)確定攻擊方法、冷啟動(dòng)攻擊方法、近似碰撞攻擊方法等。同時(shí),盡量反映一些新的設(shè)計(jì)思想,包括Sprout序列密碼、FLIP序列密碼、抗泄露序列密碼等。
(3) 選材精良。本書在寫作過程中以借鑒有代表性的重要文獻(xiàn)為主,尤其是一些闡述經(jīng)典分析方法的經(jīng)典文獻(xiàn),盡量采用原始文獻(xiàn)中的表述,把問題和原理講透、講清楚。這樣做不僅有利于引導(dǎo)讀者閱讀原文,而且能夠原原本本地反映典型分析方法的精髓,不會(huì)曲解原作者的真實(shí)意圖。
本書在每章的開頭都給出本章內(nèi)容提要和本章重點(diǎn),并在每章的結(jié)尾附有思考題,這些都有利于讀者理解和掌握相關(guān)內(nèi)容。每章還設(shè)有注記與思考,對(duì)本章進(jìn)行總結(jié)和注解。各章末尾附有本章參考文獻(xiàn),作者這樣做的目的是希望本書能夠起到拋磚引玉的作用,向?qū)π蛄忻艽a分析感興趣的讀者提供一些線索,以便讀者進(jìn)一步閱讀和研究。
作者在寫作本書過程中得到了西安電子科技大學(xué)胡予濮教授、鄭州信息工程大學(xué)戚文峰教授、中國(guó)科學(xué)院軟件研究所張斌研究員、中國(guó)科學(xué)院數(shù)學(xué)與系統(tǒng)科學(xué)研究院馮秀濤副研究員的大力支持和幫助,也得到了序列密碼討論班的老師和同學(xué)們的幫助,在此向他們表示衷心的感謝。作者特別感謝清華大學(xué)出版社、國(guó)家重點(diǎn)基礎(chǔ)研究發(fā)展計(jì)劃項(xiàng)目(編號(hào): 2013CB338003)和國(guó)家自然科學(xué)基金重點(diǎn)項(xiàng)目(編號(hào): 60833008)的支持。
本書的初稿是2017年秋完成的,作者雖然下了很大功夫,但是總覺得不夠理想,于是又花了幾年的時(shí)間進(jìn)行了修改和完善,并征求了許多專家學(xué)者的意見和建議。丑媳婦總要見公婆,敬請(qǐng)讀者多提寶貴意見和建議。
馮登國(guó)2021年6月于北京
馮登國(guó),中國(guó)科學(xué)院院士。長(zhǎng)期從事網(wǎng)絡(luò)與信息安全研究工作,在THEOR COMPUT SCI,J CRYPTOL,IEEE IT等國(guó)內(nèi)外重要期刊和會(huì)議上發(fā)表論文逾200篇,主持研制國(guó)際和國(guó)家標(biāo)準(zhǔn)20余項(xiàng),榮獲國(guó)家科技進(jìn)步獎(jiǎng)一等獎(jiǎng)、國(guó)家技術(shù)發(fā)明獎(jiǎng)二等獎(jiǎng)等多項(xiàng)獎(jiǎng)勵(lì)。曾任國(guó)家高技術(shù)研究發(fā)展計(jì)劃(863計(jì)劃)信息安全技術(shù)主題專家組組長(zhǎng),國(guó)家863計(jì)劃信息技術(shù)領(lǐng)域?qū)<医M成員,國(guó)家重點(diǎn)基礎(chǔ)研究發(fā)展計(jì)劃(973計(jì)劃)項(xiàng)目首席科學(xué)家,國(guó)家信息化專家咨詢委員會(huì)委員,教育部高等學(xué)校信息安全類專業(yè)教學(xué)指導(dǎo)委員會(huì)副主任委員等。
第1章緒論1
1.1序列密碼的分類及工作模式1
1.2序列密碼的發(fā)展現(xiàn)狀5
1.3序列密碼的研究意義10
1.4一些重要概念及其基本性質(zhì)11
1.5本書的結(jié)構(gòu)與安排20
1.6注記與思考21
思考題22
本章參考文獻(xiàn)22
第2章時(shí)間存儲(chǔ)數(shù)據(jù)折中分析方法24
2.1時(shí)間存儲(chǔ)折中攻擊方法25
2.1.1DES25
2.1.2時(shí)間存儲(chǔ)折中攻擊方法的基本原理28
2.2序列密碼的時(shí)間存儲(chǔ)折中攻擊方法31
2.2.1序列密碼的時(shí)間存儲(chǔ)折中攻擊方法的基本原理31
2.2.2序列密碼和分組密碼的時(shí)間存儲(chǔ)折中攻擊方法的區(qū)別33
2.3序列密碼的時(shí)間存儲(chǔ)數(shù)據(jù)折中攻擊方法34
2.3.1序列密碼的時(shí)間存儲(chǔ)數(shù)據(jù)折中攻擊方法的基本原理35
2.3.2使用采樣的時(shí)間存儲(chǔ)數(shù)據(jù)折中攻擊35
2.3.3使用低采樣抵抗力的時(shí)間存儲(chǔ)數(shù)據(jù)折中攻擊36
2.4應(yīng)對(duì)序列密碼的時(shí)間存儲(chǔ)數(shù)據(jù)折中攻擊方法的措施38
2.4.1應(yīng)對(duì)序列密碼的時(shí)間存儲(chǔ)數(shù)據(jù)折中攻擊方法的基本措施38
2.4.2一個(gè)應(yīng)對(duì)時(shí)間存儲(chǔ)數(shù)據(jù)折中攻擊失敗的設(shè)計(jì)范例38
2.5注記與思考43
思考題43
本章參考文獻(xiàn)44
第3章相關(guān)分析方法46
3.1分別征服相關(guān)分析方法47
3.1.1二元加法非線性組合序列密碼模型47
3.1.2分別征服相關(guān)分析方法的基本原理47
3.1.3分別征服相關(guān)分析方法的應(yīng)用實(shí)例51
3.1.4應(yīng)對(duì)分別征服相關(guān)分析方法的措施52
3.2快速相關(guān)分析方法57
3.2.1快速相關(guān)分析的統(tǒng)計(jì)模型57
3.2.2算法A的基本思想及其描述60
3.2.3算法B的基本思想及其描述63
3.2.4應(yīng)對(duì)快速相關(guān)分析方法的措施67
目 錄3.3多步快速相關(guān)分析方法67
3.3.1多步快速相關(guān)分析的基本思想68
3.3.2多步快速相關(guān)分析的具體算法與理論分析70
3.3.3多步快速相關(guān)分析的進(jìn)一步討論74
3.4條件相關(guān)分析方法76
3.4.1基于條件線性逼近的條件相關(guān)分析方法77
3.4.2基于條件掩碼的條件相關(guān)分析方法80
3.5熵漏分析方法91
3.5.1多輸出前饋網(wǎng)絡(luò)密碼的熵漏分析91
3.5.2收縮生成器的熵漏分析96
3.6注記與思考100
思考題101
本章參考文獻(xiàn)102
第4章線性分析方法105
4.1仿射逼近分析方法106
4.1.1仿射逼近分析方法的基本原理106
4.1.2仿射逼近分析方法的應(yīng)用實(shí)例107
4.1.3應(yīng)對(duì)仿射逼近分析方法的措施108
4.2線性校驗(yàn)子分析方法111
4.2.1線性校驗(yàn)子分析方法的基本原理111
4.2.2線性校驗(yàn)子分析方法的應(yīng)用實(shí)例115
4.2.3改進(jìn)的線性校驗(yàn)子分析方法117
4.3線性一致性測(cè)試分析方法119
4.3.1線性一致性測(cè)試分析方法的基本原理119
4.3.2線性一致性測(cè)試分析方法的應(yīng)用實(shí)例120
4.4線性時(shí)序線路逼近分析方法122
4.4.1向量布爾函數(shù)的相關(guān)特性122
4.4.2帶記憶的組合器的相關(guān)特性124
4.4.3線性時(shí)序線路逼近分析方法127
4.5線性掩碼分析方法130
4.5.1一個(gè)形式化區(qū)分攻擊框架130
4.5.2線性攻擊133
4.5.3低擴(kuò)散攻擊137
4.6選擇初始向量分析方法142
4.6.1基本思想和已有相關(guān)工作143
4.6.2選擇IV統(tǒng)計(jì)攻擊的一個(gè)框架144
4.6.3對(duì)初始化過程的一個(gè)分析實(shí)例146
4.7注記與思考149
思考題149
本章參考文獻(xiàn)150
第5章代數(shù)分析方法152
5.1基于線性反饋的序列密碼的代數(shù)分析方法152
5.1.1序列密碼的代數(shù)分析方法153
5.1.2Toyocrypt的代數(shù)分析155
5.1.3LILI128的代數(shù)分析157
5.1.4使用LFSR比特的一個(gè)子集對(duì)序列密碼的一般攻擊160
5.1.5應(yīng)對(duì)代數(shù)分析方法的措施161
5.2快速代數(shù)分析方法163
5.2.1攻擊所使用的方程類型163
5.2.2對(duì)序列密碼的預(yù)計(jì)算代數(shù)分析166
5.2.3對(duì)無記憶序列密碼的快速一般攻擊169
5.3改進(jìn)的快速代數(shù)分析方法171
5.3.1一個(gè)快速預(yù)計(jì)算算法的正確性證明171
5.3.2一個(gè)改進(jìn)的預(yù)計(jì)算算法174
5.3.3攻擊實(shí)例176
5.4立方分析方法177
5.4.1立方攻擊方法的基本思想177
5.4.2立方攻擊方法成功的概率分析178
5.4.3Grain v1的立方攻擊180
5.5帶記憶的組合器的代數(shù)分析183
5.5.1一個(gè)簡(jiǎn)單的證明方法183
5.5.2關(guān)于帶記憶的組合器的一般化結(jié)果185
5.6注記與思考188
思考題189
本章參考文獻(xiàn)189
第6章猜測(cè)確定分析方法192
6.1自收縮生成器的猜測(cè)確定分析方法192
6.2FLIP的猜測(cè)確定分析方法198
6.3SNOW的猜測(cè)確定分析方法202
6.4面向字節(jié)的猜測(cè)確定分析方法205
6.5注記與思考212
思考題212
本章參考文獻(xiàn)212
第7章側(cè)信道分析方法214
7.1計(jì)時(shí)攻擊方法214
7.2能量分析方法215
7.2.1能量分析的基本原理和防御措施216
7.2.2序列密碼的差分能量分析219
7.3電磁分析方法222
7.4故障攻擊方法224
7.4.1故障攻擊的基本原理和防御措施224
7.4.2序列密碼的故障攻擊225
7.5緩存攻擊方法226
7.5.1緩存攻擊的基本原理和防御措施226
7.5.2基于時(shí)間的緩存攻擊方法227
7.6冷啟動(dòng)攻擊方法229
7.7抗泄露序列密碼231
7.7.1抗泄露密碼學(xué)的基本概念與基礎(chǔ)理論232
7.7.2抗泄露序列密碼的構(gòu)造234
7.8注記與思考238
思考題239
本章參考文獻(xiàn)239
第8章其他分析方法242
8.1相關(guān)密鑰攻擊方法242
8.1.1RC4的密鑰方案算法的弱點(diǎn)242
8.1.2Hummingbird2的實(shí)時(shí)相關(guān)密鑰攻擊249
8.1.3SNOW3G的滑動(dòng)分析259
8.2差分分析方法261
8.2.1序列密碼的差分特征261
8.2.2序列密碼差分分析實(shí)例262
8.3基于分別征服策略的攻擊方法264
8.3.1COSvd(2,128)序列密碼264
8.3.2COSvd(2,128)序列密碼的分析268
8.4近似碰撞攻擊方法274
8.5注記與思考281
思考題282
本章參考文獻(xiàn)282