Identity/AttachedServices/Key Stretching Performance Tests: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 4: Line 4:
! Browser / Test !! Firefox 23 Desktop !! Google Chrome 28 !! Firefox Android Beta 24 !! Firefox OS !! Android WebView  
! Browser / Test !! Firefox 23 Desktop !! Google Chrome 28 !! Firefox Android Beta 24 !! Firefox OS !! Android WebView  
|-
|-
! [1] pbkdf2 key
! [1] pbkdf2 key [https://wiki.mozilla.org/Identity/AttachedServices/KeyServerProtocol#stretch-KDF #stretch-KDF]
|  5.39 ops/sec ±4.20% (30 runs sampled) || 8.12 ops/sec ±1.15% (43 runs sampled) || 0.47 ops/sec ±7.73% (7 runs sampled)  || 0.24 ops/sec ±7.06% (6 runs sampled)  || 0.66 ops/sec ±4.35% (8 runs sampled)  
|  5.39 ops/sec ±4.20% (30 runs sampled) || 8.12 ops/sec ±1.15% (43 runs sampled) || 0.47 ops/sec ±7.73% (7 runs sampled)  || 0.24 ops/sec ±7.06% (6 runs sampled)  || 0.66 ops/sec ±4.35% (8 runs sampled)  
|-
|-
Line 14: Line 14:


'''Tests'''
'''Tests'''
* [1]  gherkin.pdbkdf2.derive(...) - Client pdbkdf2 derivation
* [1]  pdbkdf2.derive(...) - Client pdbkdf2 derivation [https://wiki.mozilla.org/Identity/AttachedServices/KeyServerProtocol#stretch-KDF #stretch-KDF]
* [2]  gherkin.keyStretch.derive(email, password) - Full Key Stretch with a remote helper at "http://scrypt.dev.lcip.org/".  
* [2]  keyStretch.derive(email, password) - Full Key Stretch with a remote helper at "http://scrypt.dev.lcip.org/". [https://wiki.mozilla.org/Identity/AttachedServices/KeyServerProtocol#stretch-KDF #stretch-KDF + #main-KDF]





Revision as of 22:43, 19 August 2013

Test Results (in ops/sec)
Browser / Test Firefox 23 Desktop Google Chrome 28 Firefox Android Beta 24 Firefox OS Android WebView
[1] pbkdf2 key #stretch-KDF 5.39 ops/sec ±4.20% (30 runs sampled) 8.12 ops/sec ±1.15% (43 runs sampled) 0.47 ops/sec ±7.73% (7 runs sampled) 0.24 ops/sec ±7.06% (6 runs sampled) 0.66 ops/sec ±4.35% (8 runs sampled)
[2] Key Stretch w/ Remote Helper 0.66 ops/sec ±10.70% (8 runs sampled) 0.79 ops/sec ±1.98% (8 runs sampled) 0.16 ops/sec ±9.02% (5 runs sampled) 0.10 ops/sec ±3.37% (5 runs sampled) 0.18 ops/sec ±21.96% (6 runs sampled)


Tests


Test Framework

These performance tests use Benchmark.js

  • "ops/sec" stands for operations per second. That is how many times a test is projected to execute in a second.
  • A test is repeatedly executed until it reaches the minimum time needed to get a percentage uncertainty for the measurement of less than or equal to 1%. The number of iterations will vary depending on the resolution of the environment’s timer and how many times a test can execute in the minimum run time. We collect completed test runs for 5 seconds (configurable), or at least 5 runs (also configurable), and then perform statistical analysis on the sample. So, a test may be repeated 100,000 times in 50 ms (the minimum run time for most environments), and then repeated 100 times more (5 seconds). A larger sample size (in this example, 100), leads to a smaller margin of error.

Test Suite Page: http://v14d.com/picl/benchmark.html