Для представления чисел в компьютере имеются стандартные типы данных. Однако возникает вопрос: что делать, если число очень большое и не помещается в рамки ни одного из существующих типов данных? Вот в этом случае как раз и используется «длинная» арифметика, суть которой заключается в представлении таких чисел в виде массива и проведении соответствующих арифметических операций над ними уже в преобразованном состоянии.

В настоящее время работа с длинными числами осуществляется во многих областях. Ярким примером может послужить криптография, где вся секретная часть спрятана не в знании кода алгоритма, а в наличии ключа, длинного случайного числа, подданного на «вход» алгоритма вместе с защищаемыми данными. И чем длиннее этот ключ, тем надежнее шифрование. Не вдаваясь в подробности отметим, что минимально разумной длиной ключа на данный момент считается 128 бит. Так, например, огромное количество зарубежных систем защиты предлагают шифрование очень надежными алгоритмами (например DES — американским государственным стандартом) на совершенно неприемлемой длине ключа — 40 или 56 бит, что позволит легко вскрывать информацию. Надо отдать должное российским стандартам, осуществляющим надежную защиту данных на очень длинных ключах — это государственный стандарт ГОСТ 28147-89 (ключ 256 бит) и отраслевой стандарт газовой промышленности ВЕСТА (ключ 512 бит). Поэтому можно смело доверять криптосистемам, работающим на этих алгоритмах.

Другим примером может послужить электронная цифровая подпись (ЭЦП), где для вычисления, проверки подписи и реализации алгоритмов хеширования необходимы алгоритмы работы с длинными числами.

В результате всего вышеперечисленного актуальным является изучение алгоритмов «длинной» арифметики, их программная реализация и разработка методического пособия на основе приобретенных сведений. Поэтому основными направлениями исследований в этой области являются:

  1. Внимательное изучение собранного материала по «длинной» арифметике, а именно: методов, алгоритмов и основных идей. Определение области применения «длинной» арифметики.
  2. Определение наиболее эффективных методов, их преимуществ над остальными и недостатков.
  3. Выбор оптимального языка программирования.
  4. Программная реализация изученных методов, их тестирование и доводка.