跳到主要內容

發表文章

目前顯示的是有「Rivest Cipher 6 (RC6)」標籤的文章

RC6 加密演算法深度解析:AES 決選候選的對稱式區塊加密設計與核心機制

RC6 是什麼? RC6(Rivest Cipher 6)由 Ronald Rivest 等人於 1998 年為 AES 競賽設計,是五位決選候選之一。它以 128 位元區塊 、支援 128/192/256 位元金鑰 ,並引入整數乘法強化擴散,在安全性與效能間取得優異平衡。 RC6 源自 RC5 架構,保留資料相依旋轉(data-dependent rotation)的設計,並新增整數乘法運算,大幅提升非線性程度。標準規格定義為 RC6-32/20/b ,代表字組寬度 32 位元、20 輪迭代、b 位元組金鑰長度。 核心運算機制 RC6 將 128 位元明文分為四個 32 位元字組(A、B、C、D),每輪依序執行以下步驟:先對 B、D 進行 整數乘法與循環左移 ,產生旋轉量 t、u,再以 t、u 驅動 A、C 的循環移位,最後加入回合子金鑰完成混合。此「乘法驅動旋轉」機制使每輪的擴散效率遠優於純 XOR 設計。 金鑰排程採用與 RC5 相似的魔術常數展開法:以常數 P₃₂ = 0xB7E15163 、 Q₃₂ = 0x9E3779B9 初始化子金鑰陣列,再與原始金鑰混合擴展,共生成 2r + 4 個子金鑰(r = 20 時共 44 個)。 💡 重點整理 區塊與金鑰規格 :128 位元區塊,支援 128/192/256 位元三種金鑰長度。 整數乘法創新 :引入 mod 2³² 乘法產生旋轉量,非線性強度優於 RC5。 20 輪迭代 :標準輪數提供充足安全邊際,目前無實用級全輪攻擊。 AES 落選原因 :軟體效能優秀,但硬體實作面積較 Rijndael 大,最終由 Rijndael 勝出。 以下為 RC6 單輪核心邏輯的虛擬碼示意(r = 20): for i in 1..20: t = (B * (2*B + 1)) RC6 雖未成為 AES 標準,但其整數乘法驅動旋轉的設計思路對後續密碼學研究影響深遠。理解 RC6 有助於掌握 Feistel 網路的變體設計 與資料相依運算的安全原理。 📚 參考文獻 Rivest, R., Sidney, M., Voszila, L.(1998). The RC6™ Block Cipher . ...