- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Jyothi,
which OpenSSL version you are using, and what is the benchmark tool?
Thanks,
Chao
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I just tested with the IPP OpenSSL sample code with IPP 6.1 update 3 sample. IPP patched OpenSSL is better than the original code. See attached for the performance result.
How are you linking with Intel IPP? If you are dynamically linking with IPP, please note some function are internally threaded. I set the following environment to avoid the threading problem ( or I can see some performance issue in the Hypterthreading system in my test).
> export KMP_AFFINITY=granularity=fine,compact,1,0
> export OMP_NUM_THREADS=1
Regards,
Chao
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Chen Chen,
Have you noticed these two articles on AES benchmark?
http://software.intel.com/en-us/articles/boosting-openssl-aes-encryption-with-intel-ipp/
The first one includes some benchmark steps, and the second is one common issue.
Thanks,
Chao
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
It seems that I am reopening an old question, comparing once again OpenSSL with Intel IPP. I am interested in performance of RSA key pair generation comparing Intel IPP and OpenSSL. My tests show once again that OpenSSL version outperforms Intel IPP Crypto libraries. My testing methodology is defined as follows:
int runs = 10; int repetitions = 10; myInt64 values[repetitions]; measurement_init(); for (int i = 0; i < repetitions; ++i) { measurement_start(); for (int j = 0; j < runs; ++j) { status = ippsRSA_GenerateKeys( pSrcPublicExp, pModulus, pPublicExp, pPrivateExp, privateKey, scratchBuffer, nTrials, primeGen, ippsPRNGen, randomGen ); } measurement_stop(); meas_values = meas_values / runs; } measurement_finish(values); qsort(values, meas_i, sizeof(myInt64), cmpMyInt64); printf("%4d : %llu\n", bitsRSA, values[repetitions / 2]);
- Compile the code using icpc composer_xe_2015.0.077 on OS X Yosemite 10.10.5, running Intel(R) Core(TM) i7-3720Q CPU @ 2.60 GHz (Ivy Bridge). OpenSSL version is 1.0.2d (9 Jul 2015).
- Compile the code using icpc composer_xe_2015.0.090 on Debian 8.3, running Intel(R) Xeon(R) CPU E3-1285L v3 @ 3.10GHz. OpenSSL version is 1.1.0-pre4 (beta) 16 Mar 2016
- Compile the code using -O3 -xHost -no-multibyte-chars, and conisder single core implementation only.
- Use RDTSC as a timing infrastructure
- Run each of the RSA generation functions 10 times, and average the runtimes.
- Repeat each 10 runs for 10 times, and take the median runtime as the final measure.
Obtained results are available bellow:
More information detailing this short experiment is available here, and the timing code is available here.
How different is the Intel IPP version of RSA key generation algorithm (ippsRSA_GenerateKeys) compared to OpenSSL (RSA_generate_key)? Can we expect improvements in the newer versions of Intel IPP Cryptography libraries ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Allen,
Thanks for sharing the result. Here is feedback from the engineer expert:
Actually, RSA key generation was not considered as the processing function and it is not considered as the major functions that need to be optimized.
The main computation functions for the RSA is the RSA_Decrypt and RSA_Encrypt. Did you test them as well?
thanks,
Chao
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Chao,
My focus was the RSA key generation only, and I did not look into RSA_Encrypt / RSA_Decrypt functions. I acknowledge the fact that ippsRSA_GenerateKeys is not a processing function, however I had the impression that Intel IPP aims at optimizing all functions that are part of IPP.
Thanks for the explanation,
Alen
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I'm exploring ways to integrate Intel Ipp cryptography optimizations in the Android BoringSSL Framework. (BoringSSL is a fork of OpenSSL).
I was looking for reference/results and found these two articles in this post. But both of these redirect to ipp crypto reference. (https://software.intel.com/en-us/ipp-crypto-reference-2019). If anyone has the below articles, can you please send it to me or post it here ?
http://software.intel.com/en-us/articles/boosting-openssl-aes-encryption.
http://software.intel.com/en-us/articles/performance-of-crypto-sample-fo.
Thanks in Advance.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page