是否有標準方法來比較硬體實現的密碼?
我一直在查閱文獻,並試圖確定在硬體中比較密碼的最佳方法。文獻中似乎有點事實上的標準的兩種方法是查看 100kHz 時鐘的吞吐量,以及查看 GE 中的面積(門當量)。我對這些方法有異議,因為對於時鐘方法,沒有給出初始狀態,即:我不知道這是否是從載入狀態測量的。第二種方法我有一個問題,因為 GE 是一個 NAND 門的區域,如果你使用一個巨大的 NAND,你看起來你的實現相對更好。
是否有一種標準化的方法可以在硬體級別上比較密碼,而不是這種看似事實上的方法?
此外,是否有一種標準方法可以將 Feistel 密碼與替換置換網路進行比較?
如果有人可以向我指出一個文件,該文件概述了從實現角度比較密碼的方法,那將會很有幫助。
由於實現硬體設計的方法有很多,我不知道具體的比較協議。主要比較點是功耗、面積和吞吐量,比較一般是在同一個工藝上進行的,比如32nm GF SOI。對於給定的過程,面積可以以 GE 或 mm 為單位測量 $ ^2 $ .
算法本身通常是時鐘速度的限制因素,如果吞吐量仍然不錯,這可能不是問題。展開循環使用更多區域,但可以顯著提高吞吐量。像 SHA2 中的常量使用大量區域,而 SHA-3 中的常量使用很少。
可以將實現調整為在特定特徵上更好,例如功率使用或速度,或者調整為以犧牲另一個為代價將其中兩個很好地結合起來。吞吐量/面積或吞吐量/瓦特然後成為給定實現的通常目標。
Area Power Throughput A 1mm^2 10mw 1.00Mb/s B 1mm^2 30mw 2.45Mb/s C 3mm^2 10mw 2.45Mb/s D 3mm^2 30mw 6.00Mb/s E 3mm^2 90mw 14.7Mb/s F 6mm^2 90mw 44.1Mb/s
每種實施方式都有優勢和成本。與 A 相比,D 的吞吐量/面積和吞吐量/瓦特增加了 100%,但面積增加了三倍。B 和 C 具有相同的吞吐量,但一個使用較少的面積,另一個使用較少的功率。對於給定的區域,三倍的功率預算可使吞吐量增加 2.45 倍。由於表面積增加,3mm 面積實現能夠輻射更多熱量,因此可以將其推到 1mm 面積實現的功率限制之外。儘管使用了 1/3 的面積和 1/9 的功率,但 A 僅比 E 慢 14.7 倍。在相同功率下,F 比 E 快 3 倍,僅使用了兩倍的面積。
那麼如何比較它們呢?哪一個是最好的?高面積實施顯然具有最佳吞吐量和最佳吞吐量/瓦特,但您可能沒有多餘的面積或功率。有人會認為 A 比 E 更有效還是相反?E 的吞吐量/瓦比 A 高 63%,但在相同的瓦數下,A 的吞吐量/面積高 22%。
最後,只有保持過程不變,然後根據最終產品的要求決定哪種實施更好或更有效,才能進行良好的比較。