Opensslの暗号化速度テスト

3665 ワード

Openssl試験方法
最近opensslが暗号化速度を評価する機能を持っていることを知らずに、簡単に方法を書く人が多いことがわかりました.これに基づいて,FPGA開発者が自分のボード性能の基準として比較することも容易である.
Openssl speed(暗号化アルゴリズム)
AES暗号化テストはintelハードウェア暗号化を有効にしない
sh-3.2# openssl speed aes-256-ige
Doing aes-256 ige for 3s on 16 size blocks: 17498121 aes-256 ige's in 2.99s
Doing aes-256 ige for 3s on 64 size blocks: 4448218 aes-256 ige's in 3.00s
Doing aes-256 ige for 3s on 256 size blocks: 1126024 aes-256 ige's in 2.99s
Doing aes-256 ige for 3s on 1024 size blocks: 268594 aes-256 ige's in 2.97s
Doing aes-256 ige for 3s on 8192 size blocks: 32667 aes-256 ige's in 3.00s
OpenSSL 1.0.2h  3 May 2016
built on: reproducible build, date unspecified
options:bn(64,64) rc4(ptr,int) des(idx,cisc,16,int) aes(partial) idea(int) blowfish(idx) 
compiler: /usr/bin/clang -I. -I.. -I../include  -fPIC -fno-common -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS 
\-D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -arch x86_64 -O3 -DL_ENDIAN -Wall -DOPENSSL_IA32_SSE2 
\-DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM 
\-DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-256 ige      93635.43k    94895.32k    96408.74k    92606.15k    89202.69k

テストプロセスの意味は次のとおりです.
Doing aes-256 ige for 3s on 16 size blocks: 17498121 aes-256 ige's in 2.99s

1.16 bytesから8192 bytesまでの文字列、5種類の長さの文字列で、各サイズのデータブロック処理を3秒走り、処理の合計回数を出力する.上記の16 bytesは、3秒で17498121回完了しました
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-256 ige      93635.43k    94895.32k    96408.74k    92606.15k    89202.69k

2.第3列の結果として、1秒当たりの処理が完了したデータ量は何KBであるか、例えば8182 bytesのデータブロックの1秒当たりの処理能力は89202.69 kbであり、これは単位が完了回数ではなく、データブロックサイズであることに注意する.the'numbers'are in 1000 sは、1000秒以内の完了回数ではなく、指数値が1000単位で略されているので、多くの人が間違えやすいところです.
AES暗号化テストintelハードウェア暗号化を有効にする
現在のaes evpパッケージでは、intel aes-niハードウェアの存在が自動的に認識され、ある場合はハードウェア暗号化が有効になります.
sh-3.2# openssl speed -evp AES256
Doing aes-256-cbc for 3s on 16 size blocks: 82868413 aes-256-cbc's in 2.93s
Doing aes-256-cbc for 3s on 64 size blocks: 21822974 aes-256-cbc's in 2.95s
Doing aes-256-cbc for 3s on 256 size blocks: 6149541 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 1024 size blocks: 1484973 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 8192 size blocks: 176388 aes-256-cbc's in 2.99s
OpenSSL 1.0.2h  3 May 2016
built on: reproducible build, date unspecified
options:bn(64,64) rc4(ptr,int) des(idx,cisc,16,int) aes(partial) idea(int) blowfish(idx) 
compiler: /usr/bin/clang -I. -I.. -I../include  -fPIC -fno-common -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -arch x86_64 -O3 -DL_ENDIAN -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-256-cbc     452523.76k   473447.57k   524760.83k   506870.78k   483267.72k

処理データの暗号化速度が増加していることがわかります.64 bytesデータブロックのデータストリームは94895 kから473447 kに急上昇し、5倍以上の速度を向上させた.
後ろ、続きます・・・