Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab1.doc
Скачиваний:
7
Добавлен:
06.06.2015
Размер:
136.7 Кб
Скачать

Flint/c

Лабораторная работа № 1

Использование библиотеки математических функций для больших чисел применительно к криптографии

“FLINT\C”.

Цель работы

  • Ознакомиться с основами использования библиотеки “FLINT\C”.

  • Научиться создавать Win32-консольные приложения с основами использования библиотеки “FLINT\C”.

Изучить функции для выполнения основных операции с большими числами (ввода-вывода, арифметические и поразрядные операции) В ходе выполнения данной лабораторной работы необходимо создать консольное Win32-приложение, которое реализует некоторые математические вычисления

Методические указания к работе

FLINT\C(Functions for Large Integers in Number Theory and Criptography) является свободно распространяемой библиотекой функций и классов для реализации различных математических операций и алгоритмов с использованием больших чисел. Она включает в себя следующие группы функций:

  • основные арифметические операции с большими числами

  • функции модульной арифметики

  • функции битовых операций

  • теоретико-числовые функции

  • функции генерации больших псевдослучайных чисел

и другие.

Подключение библиотеки

Для подключения “FLINT\C” в программы С\С++ достаточно подключить к проекту модуль flint.h - #include ”z:\xxxx\flint.h ”,а исходный код этого модуля flint.с необходимо включить в состав разрабатываемого проекта.

Создание проекта в Borland C++

  • Создать новый проект – Project->Open Project (например Lab1.prj)

  • Влючить в состав проекта библиотеку flinta.lib

Project->Open Project->Add item

  • Влючить в состав проекта файл flinta.h

Project->Open Project->Add item…

  • Включить в состав проекта основной файл программы (например Lab1.cpp ) Project->Open Project->Add item

  • Проверить состав проекта Windows-> Project

  • Выполнить компиляцию проекта Compile->Make

  • Выполнить программу Compile->Run

  1. Представление больших чисел в “FLINT\C

В основе “FLINT\C” лежит обработка многоразрядных натуральных чисел, длина которых намного превосходит допустимый размер стандартных типов данных.Эти числа представлены в виде вектора стандартного типа данных unsigned short int.Эти числа могут представляться числом длиной до 4094 бита(1024 десятичных разряда) и описываются специальным типом данных

CLINT.

  1. Семантика интерфейса

Представление FLINT/C-функций начинается с заголовка, который содержит синтаксическое и семантическое описание интерфейса функции. Такие заголовки функций обычно выглядят следующим образом

Функция Краткое описание функции

Синтаксис: int f_l (CLINT a_l, CLINT b_l, CLINT c_l);

Вход: a_l, b_l (операнды)

Выход: c_l (результат)

Возврат: 0, если все в порядке

предупреждение или сообщение об ошибке в противном случае

Здесь нужно различать между собой значения выхода и возврата.

В то время как выход относится к значениям, которые функция хранит в переданных аргументах, под возвратом подразумеваются значения, которые функция возвращает посредством команды return.

За исключением нескольких случаев,значение возврата содержит сведения о состоянии или сообщения об ошибке.

Другие параметры, не связанные с выходом, функция не изменяет.

Обращения вида f_l(a_j, b_j, a_j), где a_j и b_j - аргументы и в конце вычислении прежнее значение a+j затирается результатом, вполне допустимы, так как результат записывается в возвращаемую nepеменную только после завершения операции.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]