Модуль вычисления контрольной суммы
Const Count: Cardinal — значение промежуточного счетчика. S: array of LongWord — развернутый подключ шифрования; CRC64Stream: Int64 — итоговая контрольная сумма файла. Const BufSize: Cardinal = 1024 — размер выделенного буфера. DataStream: TStream — поток данных для расшифрования; DataStream: TStream — поток данных для шифрования; KCONST: Array of cardinal — вектор инициализации. KCONST: Array… Читать ещё >
Модуль вычисления контрольной суммы (реферат, курсовая, диплом, контрольная)
Модуль 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 — итог вычислений. | Вычисление промежуточных данных. |
Модуль алгоритма шифрования 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 байт. |