Skip to content

Instantly share code, notes, and snippets.

@ktakashi
Created September 23, 2021 07:35
Show Gist options
  • Save ktakashi/990b8009c96f5fbb59707a758c96f4ca to your computer and use it in GitHub Desktop.
Save ktakashi/990b8009c96f5fbb59707a758c96f4ca to your computer and use it in GitHub Desktop.
Performance of Ed25519 and RSA
(import (rnrs)
(crypto)
(crypto eddsa)
(math)
(time))
(define priv
(generate-private-key Ed25519
(integer->bytevector #x1498b5467a63dffa2dc9d9e069caf075d16fc33fdd4c3b01bfadae6433767d93)))
(define pub (eddsa-private-key-public-key priv))
(define signer (make-eddsa-signer ed25519-pure-scheme))
(define verifier (make-eddsa-verifier ed25519-pure-scheme))
(define sig (time (signer #vu8() priv)))
(time (verifier #vu8() sig pub))
;; RSA
(define kp (generate-key-pair RSA :size 2048))
(define rsa-signer (make-cipher RSA (keypair-private kp)))
(define rsa-verifier (make-cipher RSA (keypair-public kp)))
(define rsa-sig (time (cipher-signature rsa-signer #vu8() :hash SHA-256)))
(time (cipher-verify rsa-verifier #vu8() rsa-sig :hash SHA-256))
;; (signer #vu8() priv)
;; 0.009318 real 0.025354 user 0.001089 sys
;; (verifier #vu8() sig pub)
;; 0.005547 real 0.005543 user 3.0e-600 sys
;; (cipher-signature rsa-signer #vu8() :hash SHA-256)
;; 0.001716 real 0.001686 user 2.9e-500 sys
;; (cipher-verify rsa-verifier #vu8() rsa-sig :hash SHA-256)
;; 3.62e-40 real 3.58e-40 user 4.0e-600 sys
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment