【正文】
n b i t sn b i t s n b i t sn b i t sn b i t sn b i t sn b i t sn b i t s OFB( Output Feed Back) D ESk選擇 丟棄n b i t s | 6 4 n b it s⊕c1p1移位寄存器64 n b it s| n b i t sD ESk選擇 丟棄n b i t s | 6 4 n b it s⊕c2p2移位寄存器64 n b it s| n b i t sD ESk選擇 丟棄n b i t s | 6 4 n b it s⊕cmpmom 1D ESk選擇 丟棄n b i t s | 6 4 n b it s⊕c1p1移位寄存器64 n b it s| n b i t sD ESk選擇 丟棄n b i t s | 6 4 n b it s⊕c2p2移位寄存器64 n b it s| n b i t sD ESk選擇 丟棄n b i t s | 6 4 n b it s⊕cmpmom 1加密過程解密過程移位寄存器IV ( 64 bit s )移位寄存器IV ( 64 bit s )o1o1n b i t sn b i t sn b i t sn b i t s ? 本節(jié)提示 基本概念 RSA公鑰密鑰算法 ElGamal算法 橢圓曲線算法 基本概念 ? 1976年, “密碼學(xué)的新方向( New Directions in Cryptography)”一文,提出了公鑰密碼學(xué)( Publickey cryptography)的思想,在公鑰密碼體制( Publickey cryptosystem)中加密密鑰和解密密鑰是不同的,加密密鑰可以公開傳播而不會(huì)危及密碼體制的安全性。對(duì)所有可能密鑰,此表 達(dá)式以概率 成立。 ?X39。這就是正確的密鑰。 強(qiáng)力攻擊常見的有:窮舉密鑰搜索攻擊、 字典攻擊、查表攻擊和時(shí)間 存儲(chǔ)權(quán)衡攻擊等。 ? 處理復(fù)雜度是處理這些數(shù)據(jù)所需的計(jì)算量。 ? 選擇明文攻擊: 攻擊者能獲得當(dāng)前密鑰下的一些特定的明文所對(duì)應(yīng) 的密文。密碼分析則是指非法人員對(duì)密碼的破譯,而且 破譯以后不會(huì)告訴對(duì)方。039。039。0039。0039。0039。0039。 23 ExxDxBEDBd ?????? ? 子密鑰的生成 ? 加密和解密過程分別需要 Nr+ 1個(gè)子密鑰 ? 步驟: 的擴(kuò)展 ? 根據(jù) 和 兩種不同的情況,采取不同的主密鑰擴(kuò)展方式。0939。039。0939。03(39。0139。0339。0139。 1, ?jia1, ?jia jia, )2( 8GF ))(),(),(),(()(,3,2,1,0 jjjjj aByteSubaByteSubaByteSubaByteSubaByteSub ??Nb 移 位 值 C1 C2 C3 4 1 2 3 6 1 2 3 8 1 3 4 ? 注 3:列混合變換( MixColumn) ? 式中 看成環(huán) 中的元素, 乘法是在環(huán) 中進(jìn)行的。由以下兩個(gè)變換合成。 ? 其次,把字記為列的形式。每一輪由以下三層組成 : ? 線性混和層 ——確保多輪之上的高度擴(kuò)散; ? 非線性層 ——由 16個(gè) S-盒并置而成,起到混淆的作用; ? 密鑰加層 ——子密鑰簡單地異或到中間狀態(tài)上。 AES算法 Rijndael算法 ? 數(shù)據(jù)塊長度和密鑰長度可以是 128比特、 192比特和 256比特,其原型是 Square算法。 2023年 4月 25日對(duì) 5個(gè)算法進(jìn)行了討論。 ? NIST原名為 NBS(國家標(biāo)準(zhǔn)局),是美國商業(yè)部下屬的一個(gè)機(jī)構(gòu), 1988年改為現(xiàn)名。因此非常適合 VLSI實(shí)現(xiàn)。而相對(duì)地, DES采用經(jīng)過特殊設(shè)計(jì)的 S盒,而對(duì)這些 S盒的分析又不對(duì)外公開。 ? IDEA使用了三種簡單的基本操作,因此在執(zhí)行時(shí)可以達(dá)到非??斓牟僮?。 ? 然后將 128位密鑰循環(huán)左移 25位,再分為 8組子密鑰,其中前 4組用于第二輪迭代運(yùn)算,后 4組用作第三輪迭代運(yùn)算的前 4組子密鑰,依此直至產(chǎn)生全部 52個(gè)子密鑰。 MA運(yùn)算生成兩份 16位輸出。利用加法及乘法運(yùn)算將 4份 16位的子明文分組與 4個(gè)子密鑰混合,產(chǎn)生 4份 16位的輸出。該結(jié)構(gòu)一共有 4個(gè) 16位的輸入,兩個(gè) 16位的輸出。 ? 三種中的任意兩個(gè),都不滿足“分配律”,例如運(yùn)算 ⊙ 及+,任意 a, b, c? ,則有: a+ (b⊙ c)≠( a+ b) ⊙ ( a+ c) ? 3個(gè)操作中的任意 2個(gè),都無法滿足“結(jié)合律”。 IDEA的混淆特性 ? IDEA的混淆特性是經(jīng)由混合下述三種操作而成的: ? 以比特為單位的異或運(yùn)算,用+表示。第二章 信息保密技術(shù)( 2) 2023年 9月 國際數(shù)據(jù)加密算法( IDEA) ? IDEA( International Data Encryption Standard)由瑞士聯(lián)邦理工學(xué)院的 Xuejia Lai和 James Massey于 1990年提出,分組長度為 64bit,密鑰長度為 128bit。 ? 定義在模 ( mod65536)的模加法運(yùn)算,其操作數(shù)都可以表示成 16位整數(shù),用+表示這個(gè)操作。例如運(yùn)算+及+,任意 a, b, c? , a+ (b+ c)≠( a+ b)+( a+ c) ? 因此在 IDEA的設(shè)計(jì)中,使用了這三種操作混合組合來打亂數(shù)據(jù)。其中的兩個(gè)輸入來源于明文,另兩個(gè)輸入是子密鑰,源于 128位加密密鑰。這 4份輸出又兩兩配對(duì),以邏輯異或?qū)?shù)據(jù)混合,產(chǎn)生兩份 16位的輸出。 MA的輸出再與變換運(yùn)算的輸出以異或作用生成 4份 16位的最后結(jié)果。 ? 這 52個(gè)子密鑰的順序?yàn)椋? Z1(1), Z2(1), …, Z6(1); Z1(2), Z2(2), …, Z6(2); …; Z1(8), Z2(8), …, Z6(8); Z1(9), Z2(9), Z3(9), Z4(9), IDEA的解密 ? 本質(zhì)上與加密過程唯一不同的是解密密鑰子塊Ki(r)是從加密密鑰子塊 Zi(r)按下列方式計(jì)算出來的: ? 其中 表示的模( + 1)的乘法逆,亦即 , 表示 的模 的加法逆,亦即 + 。在 33MHz386機(jī)器上運(yùn)行,加密速度可以達(dá)到 880kb/s。相較之下, IDEA的安全性評(píng)估,較易被大家接受。 AES算法 ? 1997年 4月 15日,美國國家標(biāo)準(zhǔn)技術(shù)研究所( NIST)發(fā)起征集 AES( Advanced Encryption Standard)的活動(dòng),目的是為響應(yīng)公眾日益增長的替換 DES的要求,確定 21世紀(jì)的數(shù)據(jù)加密標(biāo)準(zhǔn)。著名的 DES加密算法即是由它們頒布的。 2023年 10月 2日, NIST公布了最終的獲勝者是 Rijndael算法,比利時(shí)人設(shè)計(jì)。 ? 設(shè)計(jì)策略 ——寬軌跡策略( Wide Trail Strategy)。 ? S-盒選取的是有限域 GF( 28)中的乘法逆運(yùn)算,它的差分均勻性和線性偏差都達(dá)到了最佳。這樣數(shù)據(jù)塊就可以記為以下的形式: ? 其中,每列表示一個(gè)字 ? 每個(gè) 表示一個(gè) 8比特的字節(jié),即 ),( ,3,2,1,0 jjjjj aaaaa ??jia, )2(),1/(])[2( 8,48 GFaxxGFa jij ???? ? 如用 Nb表示一個(gè)數(shù)據(jù)塊中字的個(gè)數(shù),那么 Nb= 4, 6或 8。 ? 首先,把每個(gè)字節(jié)看作一個(gè)系數(shù)在 {0,1}上的多項(xiàng)式,在有限域 中取它相對(duì)于模多項(xiàng)式 的乘法逆,其中,零多項(xiàng)式的乘法逆映射到自身。 ? 注意,因?yàn)? 與 互素,所以 有可逆元 ??? ?? caaMixColumnjj )(?ja )1/(])[2( 48 ?xxGF 39。39。)39。,39。 23 ?????? xxxc )1/(])[2( 48 ?xxGF?c 14 ?x ?c 39。39。)39。,39。 110 ????Nkkkk ?6?Nk 6?Nk ? 主密鑰的擴(kuò)展 對(duì)于 當(dāng) 時(shí),定義 。,39。],[(][ 48 ???? xxGFiRCiRco n ]/[))((1 NkiRconwRotateByteSubww iNkii?????? ?? ? 對(duì)于 當(dāng) 時(shí),定義 。,39。],[(][ 48 ???? xxGFiRCiRco n ]/[))((1 NkiRconwRotateByteSubww iNkii?????? ???4mod ?Nki )(1????? ??iNkii wByteSubw 1)1(1 ????????iNbiNbiNb ??j ? Rijndael解密 ? 算法結(jié)構(gòu)與加密算法相同,其中的變換為加密算法變換的逆變換,且使用了一個(gè)稍有改變的密鑰編制 ? 行移變換的逆是狀態(tài)的后三行分別移動(dòng) 個(gè)字節(jié),這樣在 i行 j 處的字節(jié)移到