X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/71ec78ce88339bda7c265d6dafa4982077acc901..d3409d5ecf2492cff862616de72a580d1a8e8dc0:/tests/mpmont diff --git a/tests/mpmont b/tests/mpmont new file mode 100644 index 0000000..1cb2a70 --- /dev/null +++ b/tests/mpmont @@ -0,0 +1,53 @@ +# Test vectors for Montgomery reduction +# +# $Id: mpmont,v 1.1 1999/11/17 18:02:17 mdw Exp $ + +create { + 340809809850981098423498794792349 # m + 266454859 # -m^{-1} mod b + 130655606683780235388773757767708 # R mod m + 237786678640282040194246459306177; # R^2 mod m +} + +mul { + 43289823545 + 234324324 + 6456542564 + 10807149256; +} + +exp { + 4325987397987458979875737589783 + 435365332435654643667 + 8745435676786567758678547 + 2439674515119108242643169132064; + + # --- Quick RSA test --- + + 905609324890967090294090970600361 # This is p + 3 + 905609324890967090294090970600360 # This is (p - 1) + 1; # Fermat test: p is prime + + 734589569806680985408670989082927 # This is q + 5 + 734589569806680985408670989082926 # And this is (q - 1) + 1; # Fermat again: q is prime + + # --- Encrypt a message --- + # + # The public and private exponents are from the GCD test. The message + # is just obvious. The modulus is the product of the two primes above. + + 665251164384574309450646977867045404520085938543622535546005136647 + 123456789012345678901234567890123456789012345678901234567890 + 5945908509680983480596809586040589085680968709809890671 + 25906467774034212974484417859588980567136610347807401817990462701; + + # --- And decrypt it again --- + + 665251164384574309450646977867045404520085938543622535546005136647 + 25906467774034212974484417859588980567136610347807401817990462701 + 514778499400157641662814932021958856708417966520837469125919104431 + 123456789012345678901234567890123456789012345678901234567890; +}