From 00890fb7dfb9bb08525540d9e89f1253295683dd Mon Sep 17 00:00:00 2001 From: David Florness Date: Sat, 9 Nov 2019 18:40:07 -0700 Subject: [PATCH] Start file that creates RSA key --- crypto.rkt | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 crypto.rkt diff --git a/crypto.rkt b/crypto.rkt new file mode 100644 index 0000000..7f6f00a --- /dev/null +++ b/crypto.rkt @@ -0,0 +1,22 @@ +#lang racket +(require math/number-theory) + +(provide e p q d) + +(define keylen 1024) +(define e 65537) + +(define (gen) + (let* ([p (random-prime (expt 2 keylen))] + [q (random-prime (expt 2 keylen))] + [λn (lcm (sub1 p) (sub1 q))]) + (if (and (eq? (gcd e λn) 1) + (not (eq? (arithmetic-shift (abs (- p q)) + (- (- (/ keylen 2) 100))) + 0))) + (values p q λn) + (gen)))) + +(define-values (p q λn) (gen)) +(define n (* p q)) +(define d (modular-inverse e λn)) -- 2.38.4