Простой ответ: используйте язык и / или библиотеку, которая реализует арифметику для «больших целых чисел» и включает соответствующую функцию для возведения в модуляр.В Java это означает использование java.lang.BigInteger
, в частности, метод modPow()
.
, поскольку базовые компьютеры не могут реально обрабатывать «целые числа», но имеют ограниченную эмуляцию (например, «32-разрядные целые числа», которые ведут себя как целые числа)за исключением того, что старшие биты после 32-й отбрасываются), такие реализации «большого целого» должны применять некоторые конкретные алгоритмы, которые подробно описаны в Справочнике по прикладной криптографии (глава 14).