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