Теоретическая часть криптографической защиты файлов. 1 Задачи криптографии


Модуль вычисления контрольной суммы



бет17/22
Дата13.09.2022
өлшемі24,25 Mb.
#38984
түріКнига
1   ...   14   15   16   17   18   19   20   21   22



.7.1 Модуль вычисления контрольной суммы


Модуль CRC64.pas позволяет вычислить контрольную сумму CRC64 файла. Основные применяемые функции и процедуры представлены в таблице 1.


Таблица 1 - Основные функции и процедуры модуля CRC64.pas




Входные данные

Выходные данные

Описание

CRC64Stream

const Source: TStream - имя файла от которого берется сумма; Count: Integer - размер этого файла; const BufSize: Cardinal = 1024 - размер выделенного буфера

CRC64Stream: Int64 - итоговая контрольная сумма файла

Основная функция модуля - выполняет подсчет контрольной суммы файла

CRC64Next

const Data - входные данные для расчета промежуточного значения контрольной суммы; const Count: Cardinal - значение промежуточного счетчика.

CRC64: Int64 - итог вычислений.

Вычисление промежуточных данных



.7.2 Модуль алгоритма шифрования RC6


Модуль RC6.pas позволяет производить шифрование, расшифрование файлов по алгоритму RC6. Основные применяемые функции и процедуры представлены в таблице 2.
Таблица 2 - Основные функции и процедуры модуля RC6.pas

Функция или процедура

Входные данные

Выходные данные

Описание

CalculateSubKeys

KeyPtr: PChar - исходный ключ шифрования.

S: array[0..KeyLength-1] of LongWord - развернутый подключ шифрования;

Процедура выполняет разворачивание основного ключа шифрования на раундовые подключи.

DecipherBlock

Block: array[1..4] of LongWord - входной блок данных.

DecipherBlock: Boolean - успешное или незавершенное расшифрование блока данных.

Выполняется расшифрование одного блока входных данных по алгоритму RC6.

EncipherBlock

Block: array[1..4] of LongWord - входной блок данных.

EncipherBlock: Boolean - успешное или незавершенное расшифрование блока данных.

Выполняется шифрование одного блока входных данных по алгоритму RC6.

EncryptCopy

DestStream, SourseStream: TStream - итоговый и исходный потоки для шифрования; Count: Int64 - размер потока данных; Key : string - ключ шифрования.

EncryptCopy: Boolean - успешное или аварийное завершение работы.

Шифрование одного потока данных в другой согласно алгоритму RC6.

DecryptCopy

DestStream, SourseStream: TStream - итоговый и исходный потоки для расшифрования; Count: Int64 - размер потока данных; Key : string - ключ расшифрования.

DecryptCopy: Boolean - успешное или аварийное завершение работы.

Расшифрование одного потока данных в другой согласно алгоритму RC6.

EncryptStream

DataStream: TStream - поток данных для шифрования; Count: Int64 - размер потока; Key: string - ключ шифрования; KCONST: Array of cardinal - вектор инициализации.

EncryptStream: Boolean - успешное или аварийное завершение работы.

Выполняет шифрование одного потока данных согласно алгоритму RC6.

DecryptStream

DataStream: TStream - поток данных для расшифрования; Count: Int64 - размер потока; Key: string - ключ расшифрования; KCONST: Array of cardinal - вектор инициализации.

DecryptStream: Boolean - успешное или аварийное завершение работы.

Выполняет расшифрование одного потока данных согласно алгоритму RC6.

Initialize

AKey: string - ключ шифрования.

KeyPtr : PChar - развернутый ключ.

Производит разворачивание ключа шифрования до 64 байт.





Достарыңызбен бөлісу:
1   ...   14   15   16   17   18   19   20   21   22




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет