The article 'Public Key
Cryptography ' gives a detailed explanation of how the method
works and gives you help in working with modulus arithmetic.
This problem simply asks you to work out 18059 mod 391
which has to be done in stages because calculators and computers
will not handle big numbers like 18059.
David of Colyton Grammar School gave the very neat solution
you see below and also wrote a program to check the answer and to
calculate quickly other high powers in modulus arithmetic. Try out David's program.
In order to calculate 18059 mod 391 you have to find a
sensible way to break down 18059 into pieces which can all be
tackled individually. The easiest way of doing this I think is to
first write 59 as a sum of powers of 2: 59 = 32+16+8+2+1
Now you know that 18059 = 180 ×1802 ×1808 × 18016 ×18032. This is very useful because in the
sequence 180, 1802, 1804, 1808, 18016, 18032 each
term is the square of the previous term.
You also need to appreciate that in modular arithmetic: ab mod c = [a mod c]×[b mod c]. This makes the numbers that you
are going to have to deal with far more manageable and the problem
can be written like this:
|
|
| |
| |
|
= (1802)2 = 3382 = 72 mod 391 |
| |
|
= (1804)2 = 722 = 101 mod 391 |
| |
|
= (1808)2 = 1012 = 35 mod 391 |
| |
| = (18016)2 = 352 = 52 mod 391 . |
|
|
Now we can express 18059 mod 391 as 52×35 × 101 ×338 ×180 mod 391. This can be done easily
using normal modular multiplication:
|
|
|
= 52 ×35 ×101 ×338 ×180 mod 391 |
| |
|
= 256 ×101 ×338 ×180 mod 391 |
| |
| |
| |
|
|
So now we have the final answer: 18059 = 20 mod 391. This
method is good because as soon as the modular base is fixed there
becomes a ceiling for how large the numbers that we have to
compute can be. The largest number that will ever need to be
computed is the square of one less than the modular base.
I have also written a console application to check my answer and
to quickly calculate any other similar problems. It can do any
number and mod with powers up to 255. As it was written in a rush
it may still be slightly buggy but seems to work well every time
I've tried it ;)
Andrei from Bucharest Romania gave a method which depends on expressing 18059 as a
product and working out the factors separately.
|
18059=18056×1803 = (18014)4×1803. |
|
Working modulo 391 this becomes
|
18059 = (110)4 ×235 = 50 ×235 = 20 mod 391. |
|
Program to
calculate powers in modulus arithmetic