Encryption

這是什麼意思:密碼系統的硬體與軟體實現

  • August 5, 2021

在閱讀一些密碼學論文時,我通過了一些新術語,例如加密系統的硬體和軟體實現

問題:加密系統的硬體和軟體實現是什麼?它們之間有什麼區別?

軟體實現是在標準CPU微處理器上執行的軟體實現,它主要按順序執行不專用於密碼學的簡單通用指令。密碼算法表示為這樣的指令,可能是在從較低級別的語言(如 C)編譯之後。

硬體實現在其他東西上執行。那可能是一個ASIC,一個FPGA。如今,這通常是更大集成電路的專用區域;例如,典型的銀行智能卡包括用於3DESAESRSA或/和橢圓曲線密碼術的專用硬體。如今,密碼算法通常被翻譯成以某種硬體描述語言(如VHDL )表示的設計,然後編譯成矽設計或 FPGA 的配置。

對於相同的算法,硬體實現可能比軟體實現快幾個數量級或/和耗電更少。一個極端的例子是比特幣礦工,它擁有每 SHA-256 18⋅10 -12 焦耳的效率。另一方面,硬體實現的設計要復雜得多。有中間立場,例如現代 CPU 通常包含執行更大加密算法的某些步驟的指令,例如AES-NISHA-256 擴展,在 CPU 晶片上具有匹配的專用電路;和GPU

硬體實現通常不能在現場修改(這對矽來說是不可能的)。對於軟體實現(對於合法使用者和對手而言),此類欄位更改通常更容易。也有例外:許多 FPGA 可以重新程式(有時是例行的,比如每次系統復位時);ASIC 可以在設計限制內重新配置;軟體可以在ROM中,因此是不可變的。

引用自:https://crypto.stackexchange.com/questions/93399