什麼是位元旋轉(Rotation of Bits)?
在密碼學與低階運算中,位元旋轉(Rotation of Bits)是一種將位元循環移位的置換技術。與邏輯移位不同,旋轉操作不會丟棄任何位元——從一端移出的位元會從另一端重新進入,因此位元的總數與值均保持不變,僅位置被重新分配。這個特性使其成為密碼學中實現「擴散(Diffusion)」效果的核心手段之一。
旋轉分為兩種方向:左旋轉(ROL, Rotate Left)將最高位元移至最低位,右旋轉(ROR, Rotate Right)則相反。以 8 位元值 10110001 左旋一位為例,結果為 01100011,每個位元均向左移動,最高位補回最右端。
位元旋轉在密碼學中的角色
Shannon 提出的擴散原則要求明文的每一位元變化,應影響密文中盡可能多的位元。位元旋轉透過重新分配位元位置,使原本集中於特定區域的資訊散佈至整個區塊,從而破壞明文與密文之間的統計關聯。SHA-256、AES 的 MixColumns、RC5 等主流演算法均大量依賴此技術。
在 SHA-256 的訊息排程中,旋轉操作(ROTR)與 XOR 結合,使單一輸入位元的影響能快速擴散至整個雜湊狀態。這種旋轉 + 非線性混合的組合,是現代雜湊函數與區塊加密達到雪崩效應的關鍵設計。
// C 語言:32 位元右旋轉(SHA-256 使用的 ROTR)
uint32_t rotr(uint32_t x, int n) {
return (x >> n) | (x << (32 - n));
}
// 範例:rotr(0xABCD1234, 4) → 0x4ABCD123
💡 重點整理
- 無損置換:旋轉不丟失任何位元,僅改變其位置。
- 實現擴散:讓明文位元的影響散佈至密文的多個位置。
- 廣泛應用:SHA-256、RC5、AES 等主流演算法的核心組件。
- 搭配 XOR:旋轉與 XOR 組合使用,可快速達成雪崩效應。
位元旋轉以極低的運算成本,實現密碼學中不可或缺的擴散效果。理解其原理,是深入研究現代加密與雜湊演算法設計的重要基礎。
📚 參考文獻
- NIST FIPS 180-4 — Secure Hash Standard (SHS),SHA-256 旋轉操作的官方規範:https://csrc.nist.gov/publications/detail/fips/180/4/final
- Rivest, R.L. (1994) — The RC5 Encryption Algorithm,位元旋轉作為核心操作的經典密碼設計論文。
- Wikipedia — Circular shift:https://en.wikipedia.org/wiki/Circular_shift