Алгоритм работы оператора цикла с постусловием
Вначале выполняются операторы цикла, затем проверяется логическое условие. В случае, когда условие ложно (False), происходит вычисление логического условия и повторение операции до тех пор, пока (until) условие ложно. В случае истинности логического условия (True), происходит выход из цикла и выполнение следующего за циклом оператора. Поскольку проверка логического условия происходит в конце оператора цикла, то циклическая операция выполняется хотя бы один раз. Это означает, что оператор repeat … until не годится для ситуации, когда операторы цикла не должны выполнятся ни разу.
Процедуры и функции для преобразования данных.
45. окна для вывода сообщений MessageDlg -используется для вывода сообщения пользователю. Сообщение может быть информационным или предупреждающим, или каким-то другим по усмотрению разработчика. Разработчику предоставляется полная свобода выбора кнопок, которые будут использоваться в диалоге.
Функция MessageDlg очень полезна для быстрого создания прототипа приложения и проверки диалогового взаимодействия с пользователем. Но у нее есть заметный недостаток: в заголовках и надписях на кнопках тексты английские, так что при использовании русских сообщений получается смесь русского с английским. Поэтому после создания прототипа приложения лучше заменить стандартные диалоговые окна на спроектированные самим разработчиком.
Библиотека DLL, назначение структура библиотеки правила записи
Библиотека DLL - это специальным образом оформленная программная единица, предназначенная для хранения подпрограмм (функций и процедур) и ресурсов (например, форм). DLL библиотека формируется и компилируется независимо от использующих ее программ. В самих программах указываются только обращения к подпрограммам.
В отличие от модуля, DLL- библиотека подключается к программе динамически, то есть после начала выполнения программы и, кроме того, она может передавать другим программным единицам только подпрограммы, хотя сама DLL может иметь все те же разделы, что и модуль.
Структура DLL- библиотеки.
Library имя; - заголовок библиотеки;
Uses раздел модулей;
Label . . . . . . . . . ; Раздел меток;
Const . . . . . . . . . ; Раздел констант;
Type . . . . . . . . . . ; Раздел типов;
Var . . . . . . . . . . . ; Раздел переменных;
.......
....... Раздел подпрограмм;
Exports раздел экспортирования подпрограмм;
Begin
. . . . . . . . секция инициализации;
End.
Правила записи разделов DLL- библиотеки: После раздела модулей могут располагаться разделы описания типов, констант, переменных. Например, если в списке формальных параметров подпрограммы есть массив, то необходимо в библиотеке предусмотреть раздел Type и объявить в нем идентификатор типа массива.
Стандарты шифрования DES
Стандарт шифрования данных DES (Data Encryption Standard) является одним из известных алгоритмов криптографической защиты данных, используемых до недавнего времени в США. Этот стандарт — типичный представитель криптоалгоритмов, использующих симметричное шифрование. Благодаря таким качествам, как обеспечение высокого уровня защиты информации, простота и экономичность в реализации, он нашел широкое применение в различных областях государственной и военной деятельности.
DES шифрует информацию блоками по 64 бита с помощью 64-битного ключа шифрования, в котором используется только 56 бит (процедура расширения ключа подробно описана ниже).
Шифрование информации выполняется следующим образом (рис. 1):
Этап 1. Над 64-битным блоком данных выполняется начальная перестановка согласно следующей таблице:
Данная таблица означает, что значение входного бита 58 (здесь и далее все биты нумеруются слева направо, начиная с 1-го) помещается в выходной бит 1, значение 50-го бита – в бит 2 и т. д.
Этап 2. Результат предыдущей операции делится на 2 субблока по 32 бита (на рис. 1 обозначены A0 и B0), над которыми производятся 16 раундов следующих преобразований:
Ai = Bi-1,
Bi = Ai-1 +О f(Bi-1, Ki),
где i – номер текущего раунда,
Ki – ключ раунда, а +О – побитовая логическая операция «исключающее или» (XOR).
Структура функции раунда f() приведена на рис. 2. Данная функция выполняется в несколько шагов:
Шаг 1. Над 32-битным входом выполняется расширяющая перестановка EP (рис. 3). Данная операция решает две задачи: во-первых, расширяет входное значение до 48 бит для последующего сложения с ключом раунда; во-вторых, обеспечивает влияние «размножаемых» бит на 2 таблицы замен (описаны ниже) вместо одной, что ускоряет возникновение зависимости каждого бита шифртекста от каждого входного бита (2 [4]), что называется лавинным эффектом.
Шаг 2. Результат предыдущего шага складывается с ключом раунда Ki операцией XOR.
Шаг 3. Результат сложения разбивается на 8 фрагментов по 6 бит, каждый из которых прогоняется через соответствующую таблицу замен (S1 … S8). Таблицы замен являются фиксированными и описаны в стандарте (3 [24]). Каждая таблица содержит по 4 строки, содержащих по 16 значений от 0 до 15. Входное значение интерпретируется следующим образом: два крайних бита формируют номер строки (от 0 до 3), из которой выбирается число, расположенное в столбце, номер которого соответствует значению четырех остальных бит входа. Например, при двоичном входе 101100 (десятичное число 44) выбирается значение шестой ячейки второго столбца.
Шаг 4. На последнем шаге 4-битные значения, полученные после выполнения замен, объединяются, после чего над ними выполняется операция P, представляющая собой простую перестановку согласно следующей таблице:
Стоит отметить, что в последнем раунде алгоритма субблоки не меняются местами.
Этап 3. Полученные субблоки A16 и B16 объединяются в 64-битный блок, над которым выполняется финальная перестановка данных согласно следующей таблице:
Финальная перестановка является инверсной по отношению к начальной перестановке, выполняемой на этапе 1. Результат финальной перестановки и является блоком зашифрованных данных.
Расшифрование данных алгоритмом DES выполняется абсолютно так же, как и зашифрование, однако с обратным порядком использования ключей раунда: в i-м раунде расшифрования используется ключ K(17-i).
48. Криптографическая защита — защита информационных процессов от целенаправленных попыток отклонить их от нормальных условий протекания. Криптографическая защита базирующаяся на криптографических преобразованиях данных.
Шифрова́ние — способ преобразования открытой информации в закрытую, и обратно. Применяется для хранения важной информации в ненадёжных источниках или передачи её по незащищённым каналам связи. Шифрование подразделяется на процесс зашифровывания и расшифровывания. В зависимости от структуры используемых ключей методы шифрования подразделяются на1.)симметричное шифрование: посторонним лицам может быть известен алгоритм шифрования, но неизвестна небольшая порция секретной информации — ключа, одинакового для отправителя и получателя сообщения;2)асимметричное шифрование: посторонним лицам может быть известен алгоритм шифрования, и, возможно, открытый ключ, но неизвестен закрытый ключ, известный только получателю. Кодирование информации — процесс преобразования сигнала из формы, удобной для непосредственного использования информации, в форму, удобную для передачи, хранения или автоматической переработки.
Шифр— какая-либо система преобразования текста с секретом (ключом) для обеспечения секретности передаваемой информации.
Ключ (криптография) — информация в криптографии, используемая алгоритмом для преобразования сообщения при шифровании или расшифровании.криптостойкость — способность криптографического алгоритма противостоять возможныматакам на него. Атакующие криптографический алгоритм используют методы криптоанализа. Стойким считается алгоритм, который для успешной атаки требует от противника недостижимых вычислительных ресурсов, недостижимого объёма перехваченных открытых и зашифрованных сообщений или же такого времени раскрытия, что по его истечению защищенная информация будет уже не актуальна, и т. д.
Графика
Компонент Image (класс Timage)
Предназначен для создания графических изображений программным способом. А также позволяет поместить графическое изображение в любое место на форме. Страница Палитры компонентов Additional. Собственно картинку можно загрузить во время проектирования формы в редакторе свойства Picture (Инспектор Объектов). Картинка должна храниться в файле в одном из допустимых формате: BMP (bitmap), WMF (Windows Meta File) или ICO (icon).
Свойства компонента Image:
AutoSize (Boolean) — означает, что размеры компонента настраиваются по размерам содержащегося в нем графического объекта. Устанавливать его в True нужно перед загрузкой изображения из файла или буфера обмена;
Stretch (Boolean) — если это свойство установлено в True, то изображение "натягивается" на рабочую область, при необходимости уменьшая или увеличивая свои размеры. Если оно установлено в False, то играет роль следующее свойство;
Center (Boolean) — если это свойство установлено в True, изображение центрируется в пределах рабочей области. В противном случае — располагается в ее верхнем левом углу.
Компонент Image обладает свойством Canvas, представляющее собой объект (класс Tcanvas) , в котором сосредоточены все возможности по созданию изображений программным путем.
Класс TCanvas
этот класс объединяет в себе холмт, рабочие инструменты, набор функций по рисованию типовых геометрических фигур.
Свойства объектов Canvas.
ClipRect- (только чтение) Определяет область отсечения холста. То, что при рисовании попадает за пределы этого прямоугольника, не будет изображено. Свойство доступно только для чтения — его значение переустанавливается системой в контексте устройства холста.
Font - шрифт, которым выводится текст (метод TextOut).
PenPos- текущая позиция карандаша, карандаш рекомендуется перемещать с помощью метода MoveTo, а не прямой установкой данного свойства.
Pixels- двухмерный массив элементов изображения (pixel), с его помощью осуществляется доступ к каждой отдельной точке изображения (см. пример к данному уроку).
Brush -кисть, является объектом со своим набором свойств.
Методы Canvas:
Методы для рисования простейшей графики - Arc, Chord, LineTo, Pie, Polygon, PolyLine, Rectangle, RoundRect. При прорисовке линий в этих методах используются карандаш (Pen) канвы, а для заполнения внутренних областей - кисть (Brush).
Методы для вывода картинок на канву - Draw и StretchDraw, В качестве параметров указываются прямоугольник и графический объект для вывода (это может быть TBitmap, TIcon или TMetafile). StretchDraw отличается тем, что растягивает или сжимает картинку так, чтобы она заполнила весь указанный прямоугольник (см. пример к данному уроку).
Методы для вывода текста - TextOut и TextRect. При выводе текста используется шрифт (Font) канвы. При использовании TextRect текст выводится только внутри указанного прямоугольника. Длину и высоту текста можно узнать с помощью функций TextWidth и TextHeight.