Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задания на лабораторные работы / Лабораторная работа №4.doc
Скачиваний:
65
Добавлен:
28.06.2014
Размер:
143.87 Кб
Скачать

Возможный вид дополнительной диалоговой формы программы Окно запроса парольной фразы для расшифровки файла с учетными данными

Может быть создано на основе шаблона Password Dialog, выбираемого с помощью команды File | New | Dialogs систем программирования Borland Delphi или Borland C++ Builder. Для повышения безопасности эта форма должна быть исключена из списка автоматически создаваемых форм проекта (команда Project | Options | Forms) и создаваться (уничтожаться) в программе явным образом. В указаниях по выполнению лабораторных работ эта форма имеет имя Form6.

Криптографические классы библиотеки Framework Class Library для использования в приложениях на платформе .Net

Класс System.Security.Cryptography.RC2CryptoServiceProvider – реализация алгоритма симметричного шифрования RC2.

СвойствоCipherModeMode – режим шифрования.

Свойство unsigned char Key – криптографический ключ.

Свойство int KeySize – длина ключа в битах.

Свойство unsigned char IV – начальный вектор.

Метод ICryptoTransform* CreateEncryptor(unsigned char rgbKey [], unsigned char rgbIV[]) – создание объекта для шифрования с ключом rgbKey и начальным вектором rgbIV.

Метод ICryptoTransform* CreateDecryptor(unsigned char rgbKey [], unsigned char rgbIV []) − создание объекта для расшифрования с ключом rgbKey и начальным вектором rgbIV.

Класс.System.Security.Cryptography.CryptoStream – поток данных для шифрования и расшифрования.

Конструктор CryptoStream(Stream* stream, ICryptoTransform* transform, CryptoStreamMode mode) – создание криптографического потока для потока stream и криптографического объекта transform в режиме чтения (mode=CryptoStreamMode::Read) или записи (mode=CryptoStreamMode::Write).

Метод void Write(unsigned char buffer [], int offset, int count) – запись данных длиной count из буфера buffer со смещением offset.

Метод int Read(unsigned char buffer [], int offset, int count) – чтение данных в буфер buffer максимальной длины count со смещением offset.

Классы System.Security.Cryptography.MD5CryptoServiceProvider и System.Security.Cryptography.SHA1CryptoServiceProvider – реализации функций хеширования MD5 и SHA1.

Свойство int HashSize – длина хеш-значения в битах.

Метод unsigned char ComputeHash(unsigned char buffer []) [] – хеширование данных из буфера buffer.

Класс System.Random – генератор псевдослучайных чисел.

Конструктор Random() – инициализация генератора случайным значением

Метод void NextBytes(array<unsigned char>^ buffer) – получение случайного числа в буфере buffer.

Класс System.Security.Cryptography.RNGCryptoServiceProvider – генератор псевдослучайных чисел, реализованный в криптопровайдере.

Метод void GetBytes(array<unsigned char>^ data) – получение случайного числа в буфере data.

Класс FileStream – поток байт, связанный с файлом

Конструктор FileStream(String* path, FileMode mode) – создание потока, связанного с файлом path, открывающемся в режиме mode (Append, Create, Open или OpenOrCreate).

Свойство __int64 Length – длина потока в байтах.

Свойство __int64 Position – текущая позиция потока.

Метод int Read(unsigned char array [], int offset, int count) – чтение данных из потока.

Метод void Write(unsigned char array [], int offset, int count) запись данных в поток.

Метод __int64 Seek(__int64 offset, SeekOrigin origin) – перемещение текущей позиции потока на offset байт относительно origin (Begin, Current, End).

Метод void Close() – закрытие файла, связанного с потоком.

Класс System.IO.MemoryStream – поток байт, связанный с оперативной памятью.

Свойство long long Length – длина потока в байтах.

Свойство long long Position – текущая позиция потока.

Метод int Read(array<unsigned char>^ array, int offset, int count) – чтение данных из потока.

Метод void Write(array<unsigned char>^ array, int offset, int count) запись данных в поток.

Метод long long Seek(long long offset, SeekOrigin origin) – перемещение текущей позиции потока на offset байт относительно origin (Begin, Current, End).

Метод void Close() – закрытие потока и освобождение его ресурсов.

Класс System.Security.Cryptography.Rfc2898DeriveBytes – криптографический ключ, основанный на парольной фразе, хешируемой по алгоритму SHA1.

Конструктор Rfc2898DeriveBytes(String^ password, array<unsigned char>^ salt) – создание экземпляра класса на основе парольной фразы password и случайного значения (примеси) salt длиной 8 байт или более.

Конструктор Rfc2898DeriveBytes(String^ password, int saltSize) − создание экземпляра класса на основе парольной фразы password и задаваемой длины примеси saltSize.

Свойство array<unsigned char>^ Salt – значение примеси.

Метод array<unsigned char>^ GetBytes(int cb) – получение ключа длиной cb байт.

Класс System.Security.Cryptography.PasswordDeriveBytes − криптографический ключ, основанный на парольной фразе.

Конструктор PasswordDeriveBytes(String^ strPassword, array<unsigned char>^ rgbSalt) − создание экземпляра класса на основе парольной фразы strPassword и случайного значения (примеси) rgbSalt.

Конструктор PasswordDeriveBytes(String^ strPassword, array<unsigned char>^ rgbSalt, String^ strHashName, int iterations) − создание экземпляра класса на основе парольной фразы strPassword и случайного значения (примеси) rgbSalt с использованием функции хеширования strHashName и количества итераций iterations.

Свойство String^ HashName – имя функции хеширования.

Свойство array<unsigned char>^ Salt – значение примеси.

Метод array<unsigned char>^ CryptDeriveKey(String^ algname, String^ alghashname, int keySize, array<unsigned char>^ rgbIV) – получение ключа длиной keySize бит (если указан 0, то используется длина ключа по умолчанию для заданного алгоритма) для алгоритма algname с помощью функции хеширования alghashname и начального вектора rgbIV.

Метод array<unsigned char>^ GetBytes(int cb) – получение ключа длиной cb байт.