2013-07-01 58 views
6

我在我的Ubuntu電腦上運行openssl speed。一些結果:如何解釋openssl速度輸出?

Doing md4 for 3s on 16 size blocks: 9063888 md4's in 3.00s 
Doing md4 for 3s on 64 size blocks: 7105157 md4's in 3.00s 
Doing md4 for 3s on 256 size blocks: 4507884 md4's in 3.00s 
Doing md4 for 3s on 1024 size blocks: 1809773 md4's in 2.99s 
Doing md4 for 3s on 8192 size blocks: 275679 md4's in 3.00s 

究竟這些數字是什麼意思?

  1. 什麼是「爲md4做3s」是什麼意思? 這是否意味着做3次/秒的整個測試?
  2. '1809773 md4's in 2.99s'是什麼意思?
  3. '8192 size blocks'是什麼意思?
The 'numbers' are in 1000s of bytes per second processed. 
type    16 bytes  64 bytes 256 bytes 1024 bytes 8192 bytes 
md4    47363.12k 151534.29k 382055.94k 615801.51k 747692.03k 

而且openssl speed md4輸出上面,最後幾行 - 這是什麼他們意味着什麼?

回答

9

雖然它可能措辭更好,但它幾乎意味着它所說的 - 在一個循環中運行md4散列程序,持續3秒鐘,並輸入一個16字節的數據。 3秒鐘後,觀察我們的運行只有900萬次迭代。這是大約1.44億字節處理,或每秒48萬字節(其中「萬」意味着10^6)。

+0

謝謝!你能不能這麼友善地向我解釋'openssl'輸出(命令的最後一行輸出:'openssl speed md4'?以下是最後一行:''數字'是以每秒1000字節的速度處理的。 類型16字節64字節256字節1024字節8192字節 md4 47363.12k 151534.29k 382055.94k 615801.51k 747692.03k '我將把它們也加到我的主要問題中:) – mazix

+2

對於大多數散列和密碼算法,吞吐量(每秒多少字節可以被散列/加密)取決於你用作輸入的塊大小 - 換句話說,散列數據一次8KB(在你的例子中是747MB/s)比一次散列16個字節要快進來只有47MB /秒)。這就是'openssl速度'所做的,每個算法運行一段時間,使用不同的塊大小,以顯示您可以預期的吞吐量,如果您以某種方式使用它... – twalberg

+0

@twalberg:如果我有一個輸入緩衝區長度1024('char buf [1024];')並從'openssl'運行MD5它與openssl速度的塊大小相同? – yak