Implementation in Racket

Recall that a message is its own digest, 40 digits long. See the definition of message in basic.rkt at right.

Both the signing function and verification function require taking the mod of a power.

Since the modulus is the product of two 100-digit primes, it will be about 200 digits long, as in the example at right.

Since the signature is a large number mod modulus, it is also large. We will consider computing the signature in a moment but for now assume we have computed it as shown at right.

Recall that verifying a signature requires taking its cube and mod-ing it:

     x = s3 mod m
In Racket, this is computed by the verify procedure, used by the verified? predicate, both at right.

Then if we try

    >(verified? signature) ;; returns #t
How do we create the signature?