Keccak團(tuán)隊(duì)關(guān)于Keccak/SHA-3優(yōu)勢的幾篇文章試譯
封面是我自己做的Keccak傳教圖
Keccak置換算法具有優(yōu)良的密碼學(xué)特性和“大道歸一”的設(shè)計(jì)理念,不僅是SHA-3競賽的最終勝者,更是全功能的對稱密碼學(xué)基礎(chǔ)。Keccak團(tuán)隊(duì)一直在致力于開發(fā)適用于更多用途的衍生的密碼學(xué)算法和結(jié)構(gòu),同時(shí)也在努力地推廣這套算法及其背后的設(shè)計(jì)理念和思想。然而真的曲高和寡,在英文互聯(lián)網(wǎng)上查找相關(guān)信息尚且艱難,中文互聯(lián)網(wǎng)更是幾乎找不到任何稍微深入介紹Keccak的文章,一般只是介紹SHA3時(shí)一筆帶過,明明在Keccak相關(guān)的研究里能看到很多國人的名字。我正在設(shè)計(jì)一種高度依賴Keccak(cSHAKE256)的有比較鮮明特色的類TLS/SSH加密協(xié)議,對此深有體會。所以我決定翻譯Keccak團(tuán)隊(duì)官網(wǎng)的一些文章,為其推廣盡一份綿薄之力。
這些文章都比較艱深,而且涉及到一些密碼學(xué)專有名詞,即使有DeepL和詞典輔助翻譯也不是一件容易事。我沒有讀過數(shù)學(xué)和密碼學(xué)相關(guān)的中文專業(yè)書籍,讀英文資料為了速度也大部分用DeepL,所以真的完全保證不了翻譯質(zhì)量。對于專有名詞,我會在盡可能參考各種資料的情況下選擇一種比較公允的譯法,容易歧義的地方我會標(biāo)注原詞??傊乙呀?jīng)盡力了……如果有任何錯(cuò)誤或者翻譯上的建議,希望大家能夠盡快指正。
這是翻譯的第一篇,集合了四篇有關(guān)Keccak/SHA-3優(yōu)勢的文章,之后還會翻譯一篇比較長的詳解sponge/duplex的文章,那篇文章是93頁的原始文獻(xiàn)的摘要。
Keccak的優(yōu)勢
原文:https://keccak.team/keccak_strengths.html
設(shè)計(jì)和安全
Keccak遵循開放的設(shè)計(jì)方法。
Keccak帶有明確的設(shè)計(jì)原理,并經(jīng)過第三方密碼分析的廣泛審查。更多細(xì)節(jié)請參考密碼分析頁面(https://keccak.team/third_party.html)。
與之前的哈希標(biāo)準(zhǔn)不同,SHA-3、SHAKE、cSHAKE和其他SHA-3相關(guān)的函數(shù)是公開競賽的結(jié)果。
Keccak有堅(jiān)實(shí)的安全系數(shù)。即使置換輪數(shù)被除以2,正如我們對Keyak(https://keccak.team/keyak.html)和KangarooTwelve(https://keccak.team/kangarootwelve.html)(譯注:下面一篇文章會提到)所做的那樣,Keccak海綿函數(shù)也應(yīng)保持其安全承諾。
我們提出Keccak-f置換對差分軌跡的權(quán)重具有可證明的下限(http://tosc.iacr.org/index.php/ToSC/article/view/597)。
所有置換的設(shè)計(jì)遵循Matryoshka原則,七種置換的安全屬性是相通的。從“玩具”級別的Keccak-f[25]開始,較小的置換的密碼分析對較大的置換是有意義的,反之亦然。特別的,一個(gè)Keccak-f實(shí)例中的差分和線性軌跡在較大實(shí)例中會延伸為對稱軌跡。
Keccak使用的海綿和duplex結(jié)構(gòu)(譯注:之后會翻譯那篇關(guān)于sponge/duplex的詳細(xì)介紹)被證明對一般攻擊是安全的。這也包括聯(lián)合使用具有不同速率/容量參數(shù)的多個(gè)Keccak實(shí)例。
與SHA-1和SHA-2不同,Keccak不存在長度擴(kuò)展的弱點(diǎn),因此不需要HMAC嵌套結(jié)構(gòu)。相反,MAC的計(jì)算可以通過簡單地通過在信息之前放上密鑰來進(jìn)行。
從模式到輪函數(shù),我們的設(shè)計(jì)選擇與SHA-1和SHA-2哈希函數(shù)或AES中的選擇相當(dāng)不同。因此,Keccak提供了相對于現(xiàn)有標(biāo)準(zhǔn)的多樣性。
靈活性
Keccak繼承了海綿結(jié)構(gòu)和duplex結(jié)構(gòu)的靈活性。它可以執(zhí)行幾乎所有的對稱加密功能,從哈希到偽隨機(jī)數(shù)生成到認(rèn)證加密。
作為一個(gè)海綿函數(shù),Keccak有任意的輸出長度。這可以簡化使用固定輸出長度的哈希函數(shù)需要的專用結(jié)構(gòu)的模式。它可以原生地用于包括但不限于哈希、全域哈希、隨機(jī)哈希、流密碼、MAC計(jì)算等場景。此外,任意的輸出長度使其適用于樹狀哈希(https://keccak.team/files/TreeHashing.pdf)。
作為一個(gè)duplex對象,Keccak可以以清潔和高效的方式使用,比如作為可重現(xiàn)的偽隨機(jī)位發(fā)生器或者用于認(rèn)證加密(https://keccak.team/files/SpongeDuplex.pdf)。duplex的效率來自于沒有輸出轉(zhuǎn)換。
Keccak有簡單的安全承諾。人們可以通過選擇適當(dāng)?shù)娜萘縼泶_定一個(gè)給定的安全強(qiáng)度級別,也就是說,對于一個(gè)給定的容量c,Keccak承諾可以承受任何復(fù)雜度達(dá)到
的攻擊(除非總的來說都更容易)。這與NIST的SP800-57中使用的安全強(qiáng)度方法類似。
安全承諾與輸出長度是分開的。作為所選擇的安全強(qiáng)度級別的結(jié)果,有一個(gè)最小的輸出長度(即避免一般的生日攻擊),但不是相反,即不是輸出長度決定了安全強(qiáng)度級別。關(guān)于哈希的經(jīng)典安全要求(即抗碰撞和(第二)預(yù)像)的說明,請參考我們的互動頁面。
SHA-3和SHAKE的實(shí)例對所有的安全強(qiáng)度都使用了單一的置換方法。與使用兩個(gè)(或更多)原語的哈希函數(shù)系列(如SHA-2系列)相比,這降低了實(shí)現(xiàn)成本。在使用相同置換的情況下,人們可以通過選擇合適的容量-速率對來進(jìn)行性能-安全的權(quán)衡。
實(shí)現(xiàn)
Keccak-f置換包括一個(gè)簡單的輪函數(shù)的迭代,類似于一個(gè)沒有密鑰編排的塊密碼。操作的選擇僅限于位異或、與、非和旋轉(zhuǎn)。無需查表、算術(shù)運(yùn)算或依賴數(shù)據(jù)的旋轉(zhuǎn)。
Keccak在硬件性能方面表現(xiàn)出色,在速度/面積方面有所取舍,并且比SHA-2的性能要好一個(gè)數(shù)量級。例如參見Gürkaynak等人、Gaj等人(https://eprint.iacr.org/2012/368)、Latif等人、Kavun等人、Kaps等人和Jungk在第三屆SHA-3候選者會議(https://csrc.nist.gov/events/2012/the-third-sha-3-candidate-conference)上的作品。
Keccak具有整體良好的軟件性能。它在現(xiàn)代處理器上與SHA-2相當(dāng),在利用并行性的模式下使用時(shí),如ParallelHash(NIST SP800-185)或KangarooTwelve,會有出色的表現(xiàn)。在受限的平臺上,Keccak的代碼大小和RAM消耗要求適中(https://github.com/das-labor/xbx/blob/master/documentation/benchmarking_results_may_2012.pdf)。
對于涉及密鑰的模式,需要保護(hù)實(shí)現(xiàn)不受側(cè)信道攻擊。Keccak中使用的操作允許對這些攻擊采取有效的應(yīng)對措施。針對緩存定時(shí)攻擊,最有效的實(shí)現(xiàn)方式不涉及查表。針對功率分析攻擊及其變種,應(yīng)對措施可以利用二次輪函數(shù)(https://keccak.team/files/KeccakDPA.pdf)。
SHA-3真的慢嗎?(2017年6月12日)
原文:https://keccak.team/2017/is_sha3_slow.html
在最近的一篇文章(https://www.imperialviolet.org/2017/05/31/skipsha3.html)中,Adam Langley抱怨說“SHA-3很慢”。類似的評論不時(shí)出現(xiàn)在網(wǎng)絡(luò)上(也可參見David Wong的文章(http://cryptologie.net/article/400/maybe-you-shouldnt-skip-sha-3/))。但它確切來說意味著什么呢?讓我們來打破砂鍋問到底。
硬件和軟件
這種說法有幾個(gè)歧義之處。我們來從第一個(gè)開始:什么地方會“慢”?
Keccak作為SHA-3競賽的冠軍,在專用(ASIC)或可編程(FPGA)硬件上實(shí)現(xiàn)時(shí),速度極快(http://eprint.iacr.org/2012/368 譯注:另一個(gè)鏈接似乎失效了)。在給定的電路面積上,它的吞吐量比SHA-2或任何SHA-3決賽選手高一個(gè)數(shù)量級。如果你關(guān)心的不只是簡單的速度,請注意它單位比特的能量消耗也要少得多。從這個(gè)意義上說,Keccak是一種綠色的密碼學(xué)原語。
Keccak還有其他實(shí)現(xiàn)方面的優(yōu)勢,比如對側(cè)信道攻擊的有效防護(hù),但讓我們直奔問題的關(guān)鍵:似乎在于軟件實(shí)現(xiàn)的速度。
你是說“SHA-3”嗎?
那么為什么在現(xiàn)代處理器上,SHA3-512比SHA-512慢呢?這就引出了這種說法的第二個(gè)歧義之處:什么是“SHA-3”?
“SHA-3”最初是指NIST在2008至2012年組織的競賽的目標(biāo),即一個(gè)新的哈希標(biāo)準(zhǔn),作為假如SHA-2被破解情況下的補(bǔ)足。因此,最初打算的競賽結(jié)果是一組四個(gè)函數(shù),稱為SHA3-224、SHA3-256、SHA3-384和SHA3-512。
如果“SHA-3”是指這四個(gè)函數(shù),那么SHA3-512確實(shí)被過多的安全參數(shù)不必要地拖累了。由于競賽中的一個(gè)荒謬的規(guī)則,這在隨后的2013年發(fā)生了激烈的爭議(https://en.wikipedia.org/wiki/SHA-3#NIST.27s_Controversial_Decisions_Regarding_Changing_Capacity)(譯注:之后會翻譯一些當(dāng)時(shí)Keccak團(tuán)隊(duì)的論點(diǎn)),SHA3-512的參數(shù)被囿于提供512位的預(yù)像安全。只要你知道如何計(jì)算2的冪,你就能明白這是無稽之談。
實(shí)際上Keccak不止可以作為SHA-{224,256,384,512}的直接替代。在FIPS202(“SHA-3標(biāo)準(zhǔn)”)中,NIST還批準(zhǔn)了兩個(gè)可擴(kuò)展輸出函數(shù)(XOF),稱為SHAKE128和SHAKE256。這些函數(shù)是傳統(tǒng)哈希模式的推廣,允許任意的輸出長度,并通過其安全強(qiáng)度而不是輸出長度來確定參數(shù)。
如果“SHA-3”一詞包含了上述的XOF函數(shù),那么SHAKE{128,256}在普通處理器上的速度與SHA-2相當(dāng)(https://keccak.team/sw_performance.html)。但是,“SHA-3”真的能在軟件中做到極快嗎?
并行性
為了回答這最后一個(gè)問題,讓我們看看之后的標(biāo)準(zhǔn)化進(jìn)展吧。最近,NIST發(fā)布了SP800-185標(biāo)準(zhǔn)(“SHA-3衍生函數(shù)”),提出了一個(gè)可定制的函數(shù)框架,稱為cSHAKE,它擴(kuò)展了SHAKE{128,256}。而且,作為這個(gè)框架的一個(gè)應(yīng)用,它批準(zhǔn)了ParallelHash函數(shù)。這些函數(shù)在內(nèi)部使用并行的操作模式,實(shí)現(xiàn)者可以利用它來加快處理速度。
有了這些標(biāo)準(zhǔn)函數(shù),“SHA-3”實(shí)際上對于較長的輸入信息可以在現(xiàn)代處理器上超過SHA-2甚至SHA-1(已被破解(https://shattered.io/)但通常被認(rèn)為是快速的)。
安全與性能攜手并進(jìn)
當(dāng)然,一個(gè)密碼學(xué)函數(shù)應(yīng)該仔細(xì)平衡速度和安全性。Keccak利用了合理的設(shè)計(jì)特性,如快速線性、差分傳播(http://tosc.iacr.org/index.php/ToSC/article/view/597)、特意的弱對齊(https://keccak.team/files/KeccakAlignment.pdf),而且它明智地遠(yuǎn)離了ARX(模塊化的加法、旋轉(zhuǎn)和異或)方法(譯注:下面一篇文章會詳細(xì)說明)。我們現(xiàn)在對Keccak的理解使我們想知道:24輪置換是不是太多了?
KangarooTwelve(https://keccak.team/kangarootwelve.html)是最近提出的Keccak的一個(gè)變體,在這個(gè)變體中,置換輪數(shù)被減少到12輪——然而,每輪的操作完全相同,沒有任何調(diào)整!這似乎是一個(gè)大幅度的減少,但它與我們提交給CAESAR競賽(譯者注:征集優(yōu)于AES-GCM的認(rèn)證加密算法的競賽)的認(rèn)證加密解決方案Keyak(https://keccak.team/keyak.html)是一致的。而且,更重要的是,如果Keccak沒有機(jī)會在這些年里得到密碼分析專家如此廣泛的審查(https://keccak.team/third_party.html)和對抗嘗試,這是不可能的。
KangarooTwelve是基于FIPS202的“SHA-3”的組件上定義的,可能會讓需要極致軟件實(shí)現(xiàn)速度的人滿意。但請注意:在這樣的速度下,硬盤或網(wǎng)絡(luò)連接早已成為大多數(shù)應(yīng)用的瓶頸。

為什么Keccak不采用ARX方法(2017年9月19日)
原文:https://keccak.team/2017/not_arx.html
SHA-2并沒有被破解,那么有什么理由改用SHA-3而不是繼續(xù)使用SHA-2呢?我們有幾個(gè)論點(diǎn)來說明為什么Keccak/SHA-3是比SHA-2更好的選擇。在這篇文章中,我們再來談?wù)凨eccak的一個(gè)的特殊設(shè)計(jì)選擇,并解釋為什么Keccak不像SHA-2那樣采用ARX方法。
我們在位的級別指定了Keccak,只使用換位(transposition)、位級加法和乘法(在GF(2)(譯注:二元有限域)中)。我們編排這些操作是為了能夠使用固定的按位布爾指令序列和(循環(huán))移位來進(jìn)行高效的軟件實(shí)現(xiàn)。相比之下,許多設(shè)計(jì)者直接用偽代碼指定他們的基元,同樣包括順時(shí)針布爾指令和(循環(huán))移位,但在此基礎(chǔ)上還包括加法。這些加法是模數(shù)2n,n是流行的CPU字長,如8、32或64。這樣的基元被稱為ARX,代表“加法(Addition)、旋轉(zhuǎn)(Rotation)和異或(XOR)”。ARX方法很普遍,被流行的設(shè)計(jì)MD4、MD5、SHA-1、SHA-2、Salsa、ChaCha、Blake(2)和Skein所采用。
那么,為什么Keccak沒有追隨ARX的潮流呢?我們會在下面給出一些論據(jù)。
ARX很快!真的!真的嗎?
ARX的主要賣點(diǎn)之一是它在軟件中的效率:加法、旋轉(zhuǎn)和異或通常只需要一個(gè)CPU周期。對于加法,這并不輕松,因?yàn)檫M(jìn)位可能需要從字(word)的最小位傳播到最重要的位。處理器供應(yīng)商為了使加法更快付出了巨大努力,而采用ARX的原語則以一種聰明的方式利用了這一點(diǎn)。當(dāng)試圖通過使用專用硬件來加快ARX原語的速度時(shí),與Keccak等直接面向位的原語不同,可以獲得的好處并不多。此外,加法器的設(shè)計(jì)者必須在復(fù)雜性(面積、消耗)和門(gate)延遲之間做出選擇:要么緊湊,要么快速,但不可兼得。而按位布爾異或(或者與或非等)無需這種權(quán)衡:它只是對單獨(dú)對每一位進(jìn)行異或,并具有單個(gè)位異或(或者與或非等)電路的門延遲。因此,加法的固有計(jì)算成本比按位布爾運(yùn)算的計(jì)算成本高3到5倍。
但即使是軟件ARX,當(dāng)對功率分析或電磁分析的保護(hù)受到威脅時(shí),也會陷入困境。在原語級別上的有效保護(hù)需要掩蔽,即每個(gè)敏感變量被表示為兩個(gè)或更多部分的總和,并且對每個(gè)部分分別進(jìn)行操作。對于按位布爾運(yùn)算和(循環(huán))移位,這個(gè)總和必須理解為按位(異或),而對于加法,這個(gè)總和必須以2n為模。麻煩的是,ARX的原語需要在這兩種掩蔽之間進(jìn)行許多計(jì)算密集型的轉(zhuǎn)換。
ARX很安全!真的!真的嗎?
ARX的密碼學(xué)強(qiáng)度來自于加法、旋轉(zhuǎn)、異或沒有關(guān)聯(lián)。然而,要估計(jì)這樣的原語的安全性是非常困難的。我們舉一些例子來說明這一點(diǎn)。MD5用了近15年的時(shí)間才被破解,而最終發(fā)現(xiàn)的碰撞攻擊構(gòu)造起來簡直易如反掌。對于SHA-1,2006年左右的理論攻擊用了10年時(shí)間才轉(zhuǎn)化為真正的碰撞。最近,在東京舉行的FSE2017會議上,提出了對Salsa和ChaCha的一些攻擊(http://tosc.iacr.org/index.php/ToSC/article/view/574),這些攻擊現(xiàn)在回過頭來看很平常,但多年來一直沒有被發(fā)現(xiàn)。
如今,當(dāng)一個(gè)新的密碼學(xué)原語發(fā)布時(shí),人們希望看到關(guān)于它對差分密碼分析和線性密碼分析提供抵抗力的論據(jù)。評估這種抵抗力意味著要調(diào)查差分模式和線性掩碼通過輪函數(shù)的傳播情況。在ARX設(shè)計(jì)中,僅僅描述這種差分傳播都是復(fù)雜的,而對線性掩碼傳播的研究才勉強(qiáng)開始,這是在MD5發(fā)表超過25年以后。
一個(gè)可能的原因是,對ARX進(jìn)行(密碼)分析,盡管有實(shí)用價(jià)值,但在科學(xué)產(chǎn)出方面相對沒有回報(bào):它不適合于干凈的數(shù)學(xué)描述,而通常被視作艱苦和臨時(shí)特設(shè)的編程工作。因此,密碼學(xué)界的很大一部分人不愿意花時(shí)間去嘗試對ARX設(shè)計(jì)進(jìn)行密碼分析。我們能體會到,對更規(guī)整的設(shè)計(jì)的密碼分析,如對于Rijndael/AES或Keccak/SHA-3,會使產(chǎn)出提供更多的洞察力。
ARX是嚴(yán)肅的!真的!真的嗎?
但是,如果ARX真的如此糟糕,為什么有那么多知名密碼學(xué)家的原語使用它?實(shí)際上,Ronald L. Rivest的MD系列中最新的哈希函數(shù),即SHA-3候選者M(jìn)D6(https://groups.csail.mit.edu/cis/md6/),只使用了按位布爾指令和移位。最近,包括Salsa和ChaCha的設(shè)計(jì)者Daniel J. Bernstein在內(nèi)的一個(gè)大型團(tuán)隊(duì)發(fā)布了非ARX的Gimli置換方法(https://eprint.iacr.org/2017/630)。說起Gimli又不得不提到NORX(譯注:NORX官網(wǎng)目前為域名停放狀態(tài))的設(shè)計(jì)方法,這是一個(gè)由包括Jean-Philippe Aumasson在內(nèi)的團(tuán)隊(duì)提出的CAESAR競賽候選者,其名稱來自一個(gè)相當(dāng)明確的“NO(T A)RX”。實(shí)際上,它們正朝著Keccak及其前身(如RadioGatún、Noekeon、BaseKing)一直以來的方向發(fā)展。
所以,或許最好跳過ARX?
Keccak:“開源”的密碼學(xué)(2017年9月26日)
原文:https://keccak.team/2017/open_source_crypto.html
SHA-2并沒有被破解,那么有什么理由改用SHA-3而不是繼續(xù)使用SHA-2呢?在這篇文章中,我們要強(qiáng)調(diào)另一個(gè)說明為什么Keccak/SHA-3是比SHA-2更好的選擇的論點(diǎn),即開放性,與軟件開發(fā)與部署中的開源與閉源相類比。
軟件有兩個(gè)方面:可執(zhí)行文件和源代碼。前者是供用戶作為一個(gè)黑盒使用的,而后者則是那些想要擴(kuò)展它、了解其內(nèi)部運(yùn)作細(xì)節(jié)或確保沒有明顯惡意代碼的開發(fā)者感興趣的。作為一個(gè)類比,我們把(擬議的)密碼學(xué)標(biāo)準(zhǔn)中對于密碼學(xué)原語、模式和算法的規(guī)范看作是軟件中可執(zhí)行文件的對應(yīng)物:它允許每個(gè)人在自己的項(xiàng)目中原樣地包含這些標(biāo)準(zhǔn)的實(shí)現(xiàn)。而源代碼在密碼學(xué)中的對應(yīng)物則是設(shè)計(jì)原理、初步密碼分析和大量第三方密碼分析的證據(jù):這些都是讓人們深入了解其內(nèi)部運(yùn)作細(xì)節(jié)并最終取得信任的要素。
在過去50年里,密碼學(xué)從專有活動向科學(xué)活動的轉(zhuǎn)變可以被看作是從“閉源”到“開源”的轉(zhuǎn)變。不過令人驚訝的是,在今天仍有例外:我們?nèi)匀荒芸吹健伴]源”的密碼學(xué)。
NIST標(biāo)準(zhǔn)哈希函數(shù)SHA-1和SHA-2是在NSA閉門設(shè)計(jì)的。這些標(biāo)準(zhǔn)分別于1995年和2001年提出,沒有經(jīng)過任何意義上的公開審查,盡管在發(fā)布時(shí)密碼學(xué)界已經(jīng)有相當(dāng)多人在積極研究它們。即使是2015年更新的FIPS180,即SHA-2的標(biāo)準(zhǔn),也沒有包含或者提到設(shè)計(jì)原理。
相比之下,SHA-3是NIST向密碼學(xué)界公開征集哈希函數(shù)提案的結(jié)果。對參與者沒有任何限制,所以是最廣泛意義上的開放提交。每個(gè)提交的候選算法都必須包含描述、設(shè)計(jì)原理和初步密碼分析。64份提案的作者包括了當(dāng)時(shí)活躍在開放對稱密碼研究領(lǐng)域的大部分人。NIST向?qū)ΨQ密碼學(xué)界征集進(jìn)行和發(fā)表關(guān)于候選提案的密碼分析、實(shí)現(xiàn)、證明和比較的研究,并根據(jù)這些結(jié)果作出決定。經(jīng)過三輪的選拔,學(xué)界數(shù)百人歷經(jīng)數(shù)年的努力,NIST最終宣布Keccak被選為SHA-3標(biāo)準(zhǔn)。
對稱密碼學(xué)界公開的努力沒有就此停止。從那時(shí)起,Keccak一直受到公開審查,新的論文經(jīng)常出現(xiàn)(https://keccak.team/third_party.html)。一篇又一篇的論文證實(shí)了Keccak的巨大安全系數(shù)。重要的是,這些論文達(dá)到了很高的成熟度,因?yàn)檠芯靠梢詮奈覀冊赟HA-3提案(https://keccak.team/files/Keccak-reference-3.0.pdf)中提供的初步密碼分析開始。
的確,對MD5、SHA-1和SHA-2的密碼分析也達(dá)到了很高的成熟度。然而,由于缺乏原理和初步密碼分析,并且采用了ARX設(shè)計(jì)方法,同樣的成熟度需要耗費(fèi)更長的時(shí)間來發(fā)展。
SHA-2本質(zhì)上是SHA-1的安全補(bǔ)丁,而SHA-3是其開源的替代品。就像3DES是DES的安全補(bǔ)丁,而AES是其開源的替代品一樣。回過頭來再看,即使3DES沒有被破解,你還會建議不要改用AES嗎?