Trivium是一種同步流密碼,旨在提供硬體速度和門數之間的靈活權衡,以及合理有效的軟體實現。
Trivium由其作者ChristopheDeCannière和Bart Preneel提交給eSTREAM競賽的Profile II(硬體),並被eSTREAM項目選為低面積硬體密碼組合(Profile 2)的一部分。 它未獲得專利,已被ISO / IEC 29192-3規定為國際標準。
基本介紹
- 中文名:trivium算法
- 外文名:Trivium algorithm
描述,性能,安全,
描述
Trivium的288位內部狀態由三個不同長度的移位暫存器組成。 在每一輪中,使用來自該暫存器和另一個暫存器的抽頭的非線性組合將一個位移入三個移位暫存器中的每一個; 產生一位輸出。 為了初始化密碼,密鑰和IV被寫入兩個移位暫存器,其餘的位以固定模式開始; 然後,密碼狀態被更新4×288 = 1152次,因此內部狀態的每個位都以複雜的非線性方式依賴於密鑰和IV的每個位。
每個移位暫存器的前65位都不會出現抽頭,因此每個新的狀態位在生成後至少65個輪次才會被使用。 這是Trivium軟體性能和硬體靈活性的關鍵。
性能
Trivium的簡單硬體實現將使用3488邏輯門,並在每個時鐘周期產生一位。 但是,因為每個狀態位不用於至少64個回合,所以可以並行生成64個狀態位,其硬體成本略高於5504個門。 速度和面積之間的不同權衡也是可能的。
相同的屬性允許在軟體中實現有效的位片實現; eSTREAM的性能測試在某些x86平台上提供了大約4個周期/位元組的批量加密速度,這與同一平台上AES參考實現的19個周期/位元組相當。
安全
截至2015年4月,沒有比蠻力攻擊更好的密碼分析攻擊,但有幾次攻擊接近。立方體攻擊需要268個步驟來打破Trivium的變體,其中初始化輪數減少到799。此前其他作者推測,這些技術可能導致1100次初始化輪次中斷,或“甚至可能是原始密碼”。這是建立在麥可·維爾哈伯(Michael Vielhaber)攻擊的基礎上的,該攻擊僅以212.3步驟打破了576個初始化輪次。
另一次攻擊以大約289.5步驟恢復完整密碼的內部狀態(以及密鑰)(其中每一步大致是窮舉搜尋中單個試驗的成本)。使用相同的設計原理減少了Trivium的變體已經使用方程求解技術打破了。這些攻擊改進了對流密碼的眾所周知的時空權衡攻擊,其中Trivium的288位內部狀態將需要2144步,並且顯示Trivium上的變體除了將密鑰長度增加到超過80之外沒有任何變化eSTREAM Profile 2強制要求的位不安全。使用最佳化的求解策略,還可以將狀態恢復複雜度降低到2132步。