factor/contrib/crypto/rsa.factor

27 lines
628 B
Factor
Raw Normal View History

USING: kernel math namespaces math-contrib errors ;
2006-01-30 02:05:53 -05:00
IN: crypto
SYMBOL: d
SYMBOL: p
SYMBOL: q
SYMBOL: n
SYMBOL: m
SYMBOL: ee
! e = public key, d = private key, n = public modulus
TUPLE: rsa e d n ;
2006-01-30 02:05:53 -05:00
! n bits
2006-02-27 20:37:36 -05:00
: generate-rsa-keypair ( bitlen -- <rsa> )
[
2 /i generate-two-unique-primes [ q set p set ] 2keep [ * n set ] 2keep
[ 1- ] 2apply * m set
2006-08-02 23:20:28 -04:00
65537 ee set
m get ee get mod-inv m get + d set
ee get d get n get <rsa>
] with-scope ;
2006-01-30 02:05:53 -05:00
: rsa-encrypt ( message rsa -- encrypted ) [ rsa-e ] keep rsa-n ^mod ;
: rsa-decrypt ( encrypted rsa -- message ) [ rsa-d ] keep rsa-n ^mod ;
2006-01-30 02:05:53 -05:00