From 3a69b7689bdcbb5602bd0f8083c403eb77cc0db0 Mon Sep 17 00:00:00 2001 From: Shigeki Ohtsu Date: Thu, 2 Apr 2015 13:30:35 +0900 Subject: [PATCH] benchmark: add rsa/aes-gcm performance test PR-URL: https://github.com/iojs/io.js/pull/1325 Reviewed-By: Fedor Indutny Reviewed-By: Ben Noordhuis --- benchmark/crypto/aes-gcm-throughput.js | 38 ++++++++++++++++ benchmark/crypto/rsa-encrypt-decrypt-throughput.js | 45 ++++++++++++++++++ benchmark/crypto/rsa-sign-verify-throughput.js | 53 ++++++++++++++++++++++ test/fixtures/keys/Makefile | 20 +++++++- test/fixtures/keys/rsa_private_1024.pem | 15 ++++++ test/fixtures/keys/rsa_private_2048.pem | 27 +++++++++++ test/fixtures/keys/rsa_private_4096.pem | 51 +++++++++++++++++++++ test/fixtures/keys/rsa_public_1024.pem | 6 +++ test/fixtures/keys/rsa_public_2048.pem | 9 ++++ test/fixtures/keys/rsa_public_4096.pem | 51 +++++++++++++++++++++ 10 files changed, 314 insertions(+), 1 deletion(-) create mode 100644 benchmark/crypto/aes-gcm-throughput.js create mode 100644 benchmark/crypto/rsa-encrypt-decrypt-throughput.js create mode 100644 benchmark/crypto/rsa-sign-verify-throughput.js create mode 100644 test/fixtures/keys/rsa_private_1024.pem create mode 100644 test/fixtures/keys/rsa_private_2048.pem create mode 100644 test/fixtures/keys/rsa_private_4096.pem create mode 100644 test/fixtures/keys/rsa_public_1024.pem create mode 100644 test/fixtures/keys/rsa_public_2048.pem create mode 100644 test/fixtures/keys/rsa_public_4096.pem diff --git a/benchmark/crypto/aes-gcm-throughput.js b/benchmark/crypto/aes-gcm-throughput.js new file mode 100644 index 0000000..65e1713 --- /dev/null +++ b/benchmark/crypto/aes-gcm-throughput.js @@ -0,0 +1,38 @@ +var common = require('../common.js'); +var crypto = require('crypto'); +var keylen = {'aes-128-gcm': 16, 'aes-192-gcm': 24, 'aes-256-gcm': 32}; +var bench = common.createBenchmark(main, { + n: [500], + cipher: ['aes-128-gcm', 'aes-192-gcm', 'aes-256-gcm'], + len: [1024, 4 * 1024, 16 * 1024, 64 * 1024, 256 * 1024, 1024 * 1024] +}); + +function main(conf) { + var message = (new Buffer(conf.len)).fill('b'); + var key = crypto.randomBytes(keylen[conf.cipher]); + var iv = crypto.randomBytes(12); + var associate_data = (new Buffer(16)).fill('z'); + bench.start(); + AEAD_Bench(conf.cipher, message, associate_data, key, iv, conf.n, conf.len); +} + +function AEAD_Bench(cipher, message, associate_data, key, iv, n, len) { + var written = n * len; + var bits = written * 8; + var mbits = bits / (1024 * 1024); + + for (var i = 0; i < n; i++) { + var alice = crypto.createCipheriv(cipher, key, iv); + alice.setAAD(associate_data); + var enc = alice.update(message); + alice.final(); + var tag = alice.getAuthTag(); + var bob = crypto.createDecipheriv(cipher, key, iv); + bob.setAuthTag(tag); + bob.setAAD(associate_data); + var clear = bob.update(enc); + bob.final(); + } + + bench.end(mbits); +} diff --git a/benchmark/crypto/rsa-encrypt-decrypt-throughput.js b/benchmark/crypto/rsa-encrypt-decrypt-throughput.js new file mode 100644 index 0000000..1cd7a5e --- /dev/null +++ b/benchmark/crypto/rsa-encrypt-decrypt-throughput.js @@ -0,0 +1,45 @@ +// throughput benchmark in signing and verifying +var common = require('../common.js'); +var crypto = require('crypto'); +var fs = require('fs'); +var path = require('path'); +var fixtures_keydir = path.resolve(__dirname, '../../test/fixtures/keys/'); +var keylen_list = ['1024', '2048', '4096']; +var RSA_PublicPem = {}; +var RSA_PrivatePem = {}; + +keylen_list.forEach(function(key) { + RSA_PublicPem[key] = fs.readFileSync(fixtures_keydir + + '/rsa_public_' + key + '.pem'); + RSA_PrivatePem[key] = fs.readFileSync(fixtures_keydir + + '/rsa_private_' + key + '.pem'); +}); + +var bench = common.createBenchmark(main, { + n: [500], + keylen: keylen_list, + len: [16, 32, 64] +}); + +function main(conf) { + var crypto = require('crypto'); + var message = (new Buffer(conf.len)).fill('b'); + + bench.start(); + StreamWrite(conf.algo, conf.keylen, message, conf.n, conf.len); +} + +function StreamWrite(algo, keylen, message, n, len) { + var written = n * len; + var bits = written * 8; + var kbits = bits / (1024); + + var privateKey = RSA_PrivatePem[keylen]; + var publicKey = RSA_PublicPem[keylen]; + for (var i = 0; i < n; i++) { + var enc = crypto.privateEncrypt(privateKey, message); + var clear = crypto.publicDecrypt(publicKey, enc); + } + + bench.end(kbits); +} diff --git a/benchmark/crypto/rsa-sign-verify-throughput.js b/benchmark/crypto/rsa-sign-verify-throughput.js new file mode 100644 index 0000000..fd42604 --- /dev/null +++ b/benchmark/crypto/rsa-sign-verify-throughput.js @@ -0,0 +1,53 @@ +// throughput benchmark in signing and verifying +var common = require('../common.js'); +var crypto = require('crypto'); +var fs = require('fs'); +var path = require('path'); +var fixtures_keydir = path.resolve(__dirname, '../../test/fixtures/keys/'); +var keylen_list = ['1024', '2048']; +var RSA_PublicPem = {}; +var RSA_PrivatePem = {}; + +keylen_list.forEach(function(key) { + RSA_PublicPem[key] = fs.readFileSync(fixtures_keydir + + '/rsa_public_' + key + '.pem'); + RSA_PrivatePem[key] = fs.readFileSync(fixtures_keydir + + '/rsa_private_' + key + '.pem'); +}); + +var bench = common.createBenchmark(main, { + writes: [500], + algo: ['RSA-SHA1', 'RSA-SHA224', 'RSA-SHA256', 'RSA-SHA384', 'RSA-SHA512'], + keylen: keylen_list, + len: [1024, 102400, 2 * 102400, 3 * 102400, 1024 * 1024] +}); + +function main(conf) { + var crypto = require('crypto'); + var message = (new Buffer(conf.len)).fill('b'); + + bench.start(); + StreamWrite(conf.algo, conf.keylen, message, conf.writes, conf.len); +} + +function StreamWrite(algo, keylen, message, writes, len) { + var written = writes * len; + var bits = written * 8; + var kbits = bits / (1024); + + var privateKey = RSA_PrivatePem[keylen]; + var publicKey = RSA_PublicPem[keylen]; + var s = crypto.createSign(algo); + var v = crypto.createVerify(algo); + + while (writes-- > 0) { + s.update(message); + v.update(message); + } + + var sign = s.sign(privateKey, 'binary'); + s.end(); + v.end(); + + bench.end(kbits); +} diff --git a/test/fixtures/keys/Makefile b/test/fixtures/keys/Makefile index ee667c6..a096431 100644 --- a/test/fixtures/keys/Makefile +++ b/test/fixtures/keys/Makefile @@ -1,4 +1,4 @@ -all: agent1-cert.pem agent2-cert.pem agent3-cert.pem agent4-cert.pem agent5-cert.pem ca2-crl.pem ec-cert.pem dh512.pem dh1024.pem dh2048.pem +all: agent1-cert.pem agent2-cert.pem agent3-cert.pem agent4-cert.pem agent5-cert.pem ca2-crl.pem ec-cert.pem dh512.pem dh1024.pem dh2048.pem rsa_private_1024.pem rsa_private_2048.pem rsa_private_4096.pem rsa_public_1024.pem rsa_public_2048.pem rsa_public_4096.pem # @@ -179,6 +179,24 @@ dh1024.pem: dh2048.pem: openssl dhparam -out dh2048.pem 2048 +rsa_private_1024.pem: + openssl genrsa -out rsa_private_1024.pem 1024 + +rsa_private_2048.pem: + openssl genrsa -out rsa_private_2048.pem 2048 + +rsa_private_4096.pem: + openssl genrsa -out rsa_private_4096.pem 4096 + +rsa_public_1024.pem: rsa_private_1024.pem + openssl rsa -in rsa_private_1024.pem -out rsa_public_1024.pem + +rsa_public_2048.pem: rsa_private_2048.pem + openssl rsa -in rsa_private_2048.pem -out rsa_public_2048.pem + +rsa_public_4096.pem: rsa_private_4096.pem + openssl rsa -in rsa_private_4096.pem -out rsa_public_4096.pem + clean: rm -f *.pem *.srl ca2-database.txt ca2-serial diff --git a/test/fixtures/keys/rsa_private_1024.pem b/test/fixtures/keys/rsa_private_1024.pem new file mode 100644 index 0000000..1ef8d3a --- /dev/null +++ b/test/fixtures/keys/rsa_private_1024.pem @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDOF+YjZgVg8yGFS+++0WVcTKms1Wl2Lbnzj7jWOPyZnXxww7cE +afiL3QI2RZCiVwBcueUejCbzT5iLrsWceryOCHZE4nQ5IOEYCpPzWw6oTfSM7HV0 +axQEpSzJFp20NJV9pVvBmSrrrdlGaDwHY1nlGVB3s2CKTAVxcKWoD6FhVQIDAQAB +AoGBAIoz5JRgWcMFx7jHj2H6sWoPzsij5DDnwQbfniep11p8DXLhC93d4lqIPm9+ +ftseVJPZ5RdzDLuk6Lri3IlulPnEeJZrfYQVlfge6N9swQ54j3wRGEBjcP+7pu7Q +nQ5FpOyJqQWWMUinf+o1bEkClIBPTY4x8pIoCM09wSvD9weRAkEA/hWym3rDwrcu +pKvb1VgWZtrrCv5m+2Dk5V7qA+9sUyI9Lq9dlklNMcbuJXCy8Evd2Q3EMySYQGVc +cXEKkeKefwJBAM+ll95tMX/YDEYAtOf3stz59rC4EyuD2kOZJt0dPj3vApYYq9+0 +Wnd0c8VOzJGjpVI21SY+fA+doMiZVVjSPisCQCD0R3oK7iDvCUmqUJTXG/CzLBD8 +9fZcltN4//kKsI4Hvs+zRvwa/bwbBQAuIccwz9E7C9tmP6j6fIbqFmjdb5kCQCJI +MJ6kYHu+66fTDgsONhWNn1Dl0yRoDG0EqAnxfgkzoLWvNREl8ZmvPD3jGJsi7XR5 +YQ+DWXAqkhUMW67iZykCQQCgZdOUkAWu7NsCfGSTTvrMapa5PAt/GPDzzY9JGGif +p+09SVdrnphr+MX6MCnOsixPXrMtg/LLhpQkwjVetm15 +-----END RSA PRIVATE KEY----- diff --git a/test/fixtures/keys/rsa_private_2048.pem b/test/fixtures/keys/rsa_private_2048.pem new file mode 100644 index 0000000..7ff76a4 --- /dev/null +++ b/test/fixtures/keys/rsa_private_2048.pem @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEA20oG4U+MsV45A4zG0ySoavFmWmdkVtmKh1Tk9sC3V6Fu5w1v +44lZDa57n+ghEA9Y4txUVQzm3TppwBFqUB2bBZrAhAjmjiPxjECGTV7ABaAQyihJ +R0F2LL1KmdlduFXACvNCfIseBoOY6K49vrW3/rVC1gBQ6/S3K6jECjGAvOyUcIAv +ch0YpW68v12AOUMI+CpzRQdMv6akbOVt5Qtg1vIvv0lIuirYcq9MWS++oFvHrxzX +qAiAfgc0truwbW5Lz2w7Wcy0pBYeVW6HvBFPwUEV/2rn+RHrbgE9yQ+p4gDkdfHV +yuMx21Mf449UwQUuI3HZ4BPqmyWkwSEYsfVYMQIDAQABAoIBAA9GT8Zf+SfdrVD+ +/FZ2xjh0yjFf5FBcZNbaZfx+Hgc/mm8Ds5iA17ApSDkyPSNWPlXHDSTDek1MpVMY +o3QjK8ovJlvMFustu8SONgyrneqGZMUAG2KYP7gME2c2Cd4uMutQWIA+XIANqJgE +kw52r/NRAu/PI9PbvuqOneEr45DFNNfu7RUsyewfrd07+xeDzqyMZFizjgZS8pyF +eu9jVo/4T64tT24+oTVn1O3sSn4DL0oh3IvTyv7jVDHP5QqjvY7scSSva5VPqXQI +9kkdzm0ECUqEAxwwn8EmyogrMJJYIKBmuFYxl3rYAY19hNVsMafmnlHxjSgv3n8h +LjnnPLECgYEA/bZy7NtfPrHWBQvSpUPyge7ykfOwOoNYHY0OJcw/MGjNbk6d6ZOv +3/gpGNO90iJkBI5cMXOgtOe0Nj1dkkSy9C81jd3JzR9mrK9Id8sJcUw2XpN1IKcE +w89tcf1tmvP/st6dY3RDHARIPjNvQfcWkzT0uDJmf8cihS3MeWcPi2UCgYEA3UQh +gPFfTAVW/mvwOkO37SK6/5hXbE4V1bHoP3fWAXmXO3C53K4FAuhErq8nw6ZOf9DG +jjhskmeXoUNb06gLBO2okfFL9ccDS4hKm5LQJvolrFfd6PTc/HOIxCvEj7aA4w0T +d0c1KUZjS7SNL0e3I4jNbJF6GXjwTHBMo5se2t0CgYEA2F7Hpi30DVC2l/kcPOs0 +nxD79/LeIRiwhgssvJlybkOCpwcO7wuPmy9VRSIXKWVA7Q3HnDjjHkTYUMWGzl4e +S9cTEhjKqE+WTcDyyY7zT5dSatfQtPcbPi7hRKx/0/0w3QezLAUT0onoXnuY76Xc +r9AiwA/jkCdwzilfz01QWW0CgYAUHmjJd6kJmYaydZAPTC8CIeFM8kYos+TqXFXY +x4Wu9qZYokRUG4KbJBFyrLx53rpOhuY28kx093RjFmPYF/SAizeDpaQZgfH7wTW/ +dZb1pFMem5Ky5ujdD4hFBhHGW3rWqk61zsS3rw3CSXV48hVl5r9++q9Wd5ep66Ac +VDN3BQKBgGMkPiQ5YuhVG3zEYM/4zgW7zCEuDyocqXkv5nJGW3JxPDBuJhLbwQ8F +RqawaRhuIQZtKnbN7JIGLFYYx+LkUlj7bbkzz6iaHHBtiDqz4/bHEL3q02DpAyJR +koWbtKIbZfS0Zno3OoGdYyvwXYaaE3Q3DJOc+NUmMKhlAhcAkjQv +-----END RSA PRIVATE KEY----- diff --git a/test/fixtures/keys/rsa_private_4096.pem b/test/fixtures/keys/rsa_private_4096.pem new file mode 100644 index 0000000..30ca580 --- /dev/null +++ b/test/fixtures/keys/rsa_private_4096.pem @@ -0,0 +1,51 @@ +-----BEGIN RSA PRIVATE KEY----- +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 +-----END RSA PRIVATE KEY----- diff --git a/test/fixtures/keys/rsa_public_1024.pem b/test/fixtures/keys/rsa_public_1024.pem new file mode 100644 index 0000000..0ec72a9 --- /dev/null +++ b/test/fixtures/keys/rsa_public_1024.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOF+YjZgVg8yGFS+++0WVcTKms +1Wl2Lbnzj7jWOPyZnXxww7cEafiL3QI2RZCiVwBcueUejCbzT5iLrsWceryOCHZE +4nQ5IOEYCpPzWw6oTfSM7HV0axQEpSzJFp20NJV9pVvBmSrrrdlGaDwHY1nlGVB3 +s2CKTAVxcKWoD6FhVQIDAQAB +-----END PUBLIC KEY----- diff --git a/test/fixtures/keys/rsa_public_2048.pem b/test/fixtures/keys/rsa_public_2048.pem new file mode 100644 index 0000000..e43ef4c --- /dev/null +++ b/test/fixtures/keys/rsa_public_2048.pem @@ -0,0 +1,9 @@ +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA20oG4U+MsV45A4zG0ySo +avFmWmdkVtmKh1Tk9sC3V6Fu5w1v44lZDa57n+ghEA9Y4txUVQzm3TppwBFqUB2b +BZrAhAjmjiPxjECGTV7ABaAQyihJR0F2LL1KmdlduFXACvNCfIseBoOY6K49vrW3 +/rVC1gBQ6/S3K6jECjGAvOyUcIAvch0YpW68v12AOUMI+CpzRQdMv6akbOVt5Qtg +1vIvv0lIuirYcq9MWS++oFvHrxzXqAiAfgc0truwbW5Lz2w7Wcy0pBYeVW6HvBFP +wUEV/2rn+RHrbgE9yQ+p4gDkdfHVyuMx21Mf449UwQUuI3HZ4BPqmyWkwSEYsfVY +MQIDAQAB +-----END PUBLIC KEY----- diff --git a/test/fixtures/keys/rsa_public_4096.pem b/test/fixtures/keys/rsa_public_4096.pem new file mode 100644 index 0000000..30ca580 --- /dev/null +++ b/test/fixtures/keys/rsa_public_4096.pem @@ -0,0 +1,51 @@ +-----BEGIN RSA PRIVATE KEY----- +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 +-----END RSA PRIVATE KEY----- -- 2.7.4