對(duì)2DES中間相遇攻擊的澄清,對(duì)2AES中間相遇攻擊的困難。
我上次發(fā)布了 https://www.bilibili.com/video/BV1om4y1L7Nq 并請(qǐng)到密碼學(xué)和編程專(zhuān)家Twilight-Dream,聊到后期,Twilight-Dream居然說(shuō)雙重密鑰無(wú)法用中間相遇攻擊,我提到HashTable(或HashMap)能否降低時(shí)間復(fù)雜度,Twilight-Dream不明白意思。
HashMap可能對(duì)編程新手來(lái)說(shuō)較難理解(涉及鏈表),那么稍微容易理解的方法是,根據(jù)密文計(jì)算索引。編程時(shí),把DES密文強(qiáng)制類(lèi)型轉(zhuǎn)換,轉(zhuǎn)成整數(shù)類(lèi)型(理論上無(wú)需擔(dān)心Endianness),再乘以某個(gè)系數(shù),存儲(chǔ)格式:密鑰、密文、密鑰、密文,以此類(lèi)推。因?yàn)镈ES密文有64位,所以強(qiáng)制類(lèi)型轉(zhuǎn)換成64位整數(shù),再乘以(56+64)(位),作為索引,時(shí)間復(fù)雜度降到O(1),預(yù)計(jì)所需空間2??×56+2??×64 bits,其中2??×56是密鑰空間,2??×64是密文空間。已超過(guò)64位CPU的內(nèi)存尋址能力,需考慮HashMap,或拆分為多個(gè)文件放在硬盤(pán)。 Twilight-Dream作為編程和密碼學(xué)專(zhuān)家,居然也認(rèn)為2DES無(wú)法進(jìn)行中間相遇攻擊、不知道HashTable,匪夷所思。 據(jù)我的推理,對(duì)2AES的中間相遇攻擊比較難,因?yàn)槊芪姆纸M長(zhǎng)度太短。256位AES采用256位密鑰,但是標(biāo)準(zhǔn)文檔規(guī)定的明文和密文分組長(zhǎng)度才128位,容易造成重復(fù)密文。若AES能確保密文一定不同于明文,則AES密文至多有212?-1個(gè)可能,推理不嚴(yán)謹(jǐn);但密鑰長(zhǎng)度可以選256位的,重復(fù)密文可能有22??÷(212?-1)組,這個(gè)推理也不嚴(yán)謹(jǐn),尚不知道密文重復(fù)多少組。對(duì)2AES的中間相遇攻擊容易發(fā)生不同密鑰得到相同密文,需額外的驗(yàn)證步驟;預(yù)計(jì)所需空間難以確定,量子計(jì)算機(jī)求解復(fù)雜度也難以確定。也已超過(guò)64位CPU的內(nèi)存尋址能力,要完全放在硬盤(pán)。