- •Билет 1.
- •1. Инкапсуляция, наследование, полиморфизм. Классы, объекты и отношения между ними. Диаграммы логического уровня.
- •2. Симметричные блочные криптоалгоритмы. Сеть Фейстеля.
- •Билет 2
- •1. Объявление и реализация классов на языке Паскаль.
- •2. Интерфейс. Пользовательский интерфейс. Классификация пользовательских интерфейсов.
- •Билет 3.
- •1. Графы. Основные определения. Машинное представление графов в последовательной памяти и связанной памяти.
- •2. Общая схема симметричной криптосистемы. Алгоритм построения цепочек.
- •3. Написать процедуру, которая выполняет вставку компоненты по заданному ключу.
- •Билет 4.
- •1. Нормальный алгоритм Маркова.
- •2. Парадигмы интерфейсов.
- •Билет 5.
- •1. Понятие процесса. Состояние процессов. Алгоритмы планирования процессов.
- •2. Общие сведения об ассиметричных криптоалгоритмах. Понятие электронной цифровой подписи.
- •3. Вычислить факториал числа 8.
- •Билет 6.
- •1. Файловая системаFat.
- •2. Основные компоненты графических пользовательских интерфейсов.
- •3. Если элементы массивыD[1…5] равны соответственно 4, 1, 5, 3, 2, то значение выражениеD[d[3]]-d[d[5]] равно?
- •Билет 7
- •1. Структуры распределенных вычислительных систем(топология, физические и логические элементы сетей эвм)
- •2. Встроенные средства контроля доступа в современных ос.
- •3. Указать к какому классу относится каждый из перечисленныхIPадресов:
- •Билет 8
- •1.Трансляторы, компиляторы и интерпретаторы: определение, общая схема работы. Варианты взаимодействия блоков транслятора.
- •2. Эргономические требования, предъявляемые к дизайну пользовательских интерфейсов.
- •3. Указать к какому классу относится каждый из перечисленныхIPадресов:
- •Билет 9
- •1. Сети Петри. Моделирование процессов на основе сетей Петри.
- •2. Нормализация таблиц при проектировании баз данных. Нормальные формы (1нф, 2нф, 3нф, нфбк).
- •3. Составить программу, которая формирует очередь, добавляя в неё произвольное количество компонент.
- •Билет 10.
- •1. Понятие алгоритма. Интуитивное понятие алгоритма.
- •2. Функции субд.
- •Билет 11.
- •1. Структура данных типа стек. Логическая структура стека. Машинное представление стека и реализация операций.
- •2. Принципы и виды отладки программного средства. Автономная отладка программного средства. Комплексная отладка программного средства.
- •3. Дан массив типаwordразмерностьюn. Найти сумму всех элементов, не превышающих заданногоm, далее вывести на экран.
- •Билет 12.
- •1. Сети Петри. Моделирование процессов на основе сетей Петри.
- •2. Модели объектов проектирования .
- •Билет 13.
- •1. Концепции информационного моделирования. Создание моделей на языкеUml.
- •2. Модели систем управления данными: сетевая, иерархическая, реляционная модель.
- •Билет 14.
- •1. Принципы создания компонент в визуальных средах разработки.
- •2. Жизненный цикл программного обеспечения. Модели жизненного цикла по: каскадная, спиральная. Стадии, фазы работы жизненного цикла.
- •Билет 15.
- •1. Деревья. Основные определения. Логическое представление и изображение деревьев. Бинарные деревья. Машинное представление деревьев в памяти эвм. Алгоритмы прохождения деревьев.
- •2. Реляционная модель данных. Базовые понятия. Отношения и свойства отношений. Составляющие реляционной модели данных.
- •Билет 16.
- •1. Предваренная, скулемовская и клазуальная формы. Логическое следование. Унификация. Алгоритм унификации. Исчисление метода резолюций.
- •2. Структура внешнего описания пс. Качество по. Критерии и примитивы качества.
- •Билет 17.
- •1. Понятия прерывания. Виды прерываний. Механизмы прерываний.
- •2. Стадии и этапы разработки базы данных.
- •3. Дан массив типаwordразмерностьюn. Найти сумму всех элементов не прерывающих заданногоm, далее вывести на экран.
- •Билет 18.
- •1. Понятие о способах коммутации в распределенных вычислительных системах(коммутации каналов, коммутация пакетов).
- •2. Процессы управления разработкой пс. Структура управления разработки пс. Планирование составление расписания по разработке пс. Аттестация пс.
- •3. НаписатьHtmLкод для отображения в браузере таблицы:
- •Билет 19.
- •1. Характеристики транспортного и прикладного уровней стека протоколовTcp/ip.
- •2. Трехуровневая архитектура схем баз данных в субд.
- •3. НаписатьHtmLкод для отображения в браузере таблицы:
- •Билет 20.
- •1. Формальные языки и грамматики. Классификация грамматик по Хомскому.
- •2. Методы разработки структуры пс. Восходящая разработка пс. Нисходящая разработка. Конструктивный подход. Архитектурный подход разработки пс.
- •Билет 21.
- •1. Конечные автоматы, автомат со стековой памятью (магазин).
- •2. Организация шин.
- •Билет 22.
- •1. Сети Петри. Моделирование процессов на основе сетей Петри.
- •2. Организация памяти эвм.
- •Билет 23.
- •1. Понятия прерывания. Виды прерываний. Механизмы прерываний.
- •2. Инструментальные среды разработки и сопровождения программных средств и принципы их классификации. Основные классы инструментальных сред разработки и сопровождения программных средств.
- •Билет 24.
- •1. Динамическое поведение объектов. Состояния, события, сигналы и сообщения. Модели взаимодействия объектов.
- •2. Типы структур вычислительных машин и систем, перспективы и развития.
- •Билет 25
- •1. Структура данных типа стек. Логическая структура стека. Машинное представление стека и реализация операций.
- •2. Основные понятия, определения и назначение сапр
- •3. Составить программу, которая формирует очередь, добавляя в неё произвольное количество компонент.
- •Билет 26.
- •1. Сравнительный анализ алгоритмов поиска: линейный, двоичный.
- •2. Факторы, определяющие развитие архитектуры вычислительных систем.
- •3. Составить программу, которая формирует очередь, добавляя в неё произвольное количество компонент.
- •Билет 27.
- •1. Рекурсивные функции. Лямбда- исчисление Черча.
- •2. Обеспечивающие системы сапр.
- •Билет 28.
- •1. Память. Типы адресов. Виды распределения памяти.
- •2. Архитектура системы команд.
- •3. Найти в массиве максимальный элемент и его индекс. Вывести на печать.
- •Билет 29.
- •1. Аппаратура передачи данных (модемы).
- •2. Проектные процедуры в сапр.
- •Билет 30.
- •1. Характеристика канального и сетевого уровней стека протоколовTcp/ip.
- •2. Стековая архитектура вычислительных машин.
- •Билет 31
- •1. Синтаксический разбор. Классификация методов синтаксического разбора.
- •2. Интеграция систем автоматизации проектирования и управления(cad–cam–capp– системы).
- •Билет 32
- •1. Понятие алгоритма. Интуитивное понятие алгоритма.
- •2. Объекты и отношения в программировании. Сущность объектного подхода к разработке программных средств. Особенности объектного подхода к разработке внешнего описания программного средства.
- •3. Указать к какому классу относится каждый из перечисленныхIPадресов:
- •Билет 33.
- •1. Объявление и реализация классов на языке Паскаль.
- •2. Архитектура клиент-сервер. Распределенные базы данных.
- •Билет 34.
- •1. Характеристики транспортного и прикладного уровней стека протоколовTcp/ip.
- •2. Вычислительные методы решения задач на эвм. Приближения функций. Интерполяция и Метод наименьших квадратов.
- •Билет 35.
- •1. Компоненты и интерфейсы. Диаграммы физического уровня.
- •2. Правовые вопросы организации Интернет-сайта.
- •Билет 36.
- •1. Структуры данных типа очередь. Логическая структура очереди. Машинное представление очередиFifOи реализация операций. Очереди с приоритетами.
- •2. Моделирование как процесс познания. Математическая модель, понятие вычислительного эксперимента и его структура.
- •3. Составить программу, которая формирует стек, добавляя в него произвольное количество компонент.
- •Билет 37
- •1. Улучшенные методы сортировки. Сортировка Шелла, Хоара, улучшенная сортировка выбором. Сортировка с помощью дерева.
- •2. Правовые вопросы, возникающие при использовании электронной почты.
- •3. Составить программу, которая формирует стек, добавляя в него произвольное количество компонент.
- •Билет 38.
- •1. Классификация ос. Требования, предъявляемые к ос.
- •2. Понятие системы. Математическое определение системы. Классификация систем.
- •Билет 39.
- •1. Понятия файла. Структура файла. Реализация файлов
- •2. Виды объектов авторского права. Виды авторских прав. Программы для эвм и базы данных, как объектов авторского права.
- •3. Подсчитать сколько раз в массиве встречается заданный элементN. Вывести количество данных вхождений.
- •Билет 40.
- •1. Характеристики локальных вычислительных сетей типаEthernet.
- •2. Нормальный алгоритм Маркова.
- •3. Написать кодcssфайла в котором при помощи псевдоклассов описывается поведение ссылок отличное от стандартного.
- •Билет 41.
- •1. Взаимодействие узлов с использованием стека протоколовTcp/ip.
- •2. Объекты патентного права.
- •3. Указать к какому классу относится каждый из перечисленныхIPадресов:
- •Билет 42.
- •1. Машина Тьюринга.
- •2. Уровни моделирования. Общая характеристика и особенности. Моделирование на микроуровне. Обобщенная модель и моделирование тепловых систем (краевая задача для уравнения теплопроводности)
- •2) Уравнение теплопроводности
- •Билет 43.
- •1. Архитектура системы команд.
- •2. Уровни моделирования. Моделирование на макроуровне. Типичная общая модель и моделирование электрических систем.
- •Билет 44.
- •1. Структуры данных типа очередь. Логическая структура очереди. Машинное представление очередиFifOи реализация операций. Очереди с приоритетами.
- •2. Принципы построения современных эвм.
- •3. Найти в массиве максимальный элемент и его индекс. Вывести на печать.
- •Билет 45.
- •1. Характеристика канального и сетевого уровней стека протоколовTcp/ip.
- •2. Численное решение задачи Коши для обыкновенных дифференциальных уравнений. Метод Эйлера. Одношаговые и многошаговые методы.
- •3. Указать к какому классу относится каждый из перечисленныхIPадресов:
2. Симметричные блочные криптоалгоритмы. Сеть Фейстеля.
Симметричные криптоалгоритмы. Для зашифровки и расшифровки сообщения используется один и тот же блок информации (ключ).
Асимметричные криптоалгоритмы. Алгоритм таков, что для зашифровки сообщения используется один ("открытый") ключ, известный всем желающим, а для расшифровки – другой ("закрытый"), существующий только у получателя.
Основные принципы блочного симметричного шифрования.
Как уже было отмечено, блочные шифры обрабатывают кодируемое сообщение блоками из нескольких байт(4-32 байт), при этом блок открытого текста X преобразуется в блок шифротекста Y того же размера с использованием некоторого ключа шифрования Key:
Y = Encrypt(X, Key)
Процедура дешифрации выполняет обратное преобразование, используя тот же самый ключ:
X = Decrypt(Y, Key)
В общем случае процедуры Encrypt и Decrypt не совпадают, однако если последовательность действий при шифрации и дешифрации в точности совпадает, блочный шифр называется абсолютно симметричным. Для абсолютно симметричного шифра, очевидно, справедливо:
X = Encrypt((Encrypt(X, Key), Key)
Преобразования Encrypt и Decrypt трактуют блоки открытого и зашифрованного текста как целые числа и выполняет над ними ряд арифметических либо логических действий, основная задача которых – тщательно «перемешать» биты блока открытого текста между собой, а также связать их с битами используемого ключа шифрования для формирования блока закрытого текста. Для того, чтобы все шифрующее преобразование было обратимым, действия, его составляющие должны быть также обратимы (обратимость действия означает, что по его результату и одному из операндов можно получить второй операнд). В таблице 2.1 приведен список обратимых операций, использующихся в современных криптографических преобразованиях.
Среди операций, приведенных в таблице, необходимо выделить операции умножения и табличной подстановки, которые относятся к классу нелинейных и существенно затрудняют методы линейного криптоанализа блочных шифров.
Таблица 2.1
Основные обратимые операции | |||
Название операции |
Графическое обозначение |
Формула преобразования |
Обратное преобразование |
Сложение |
X’ = X + V |
Вычитание | |
Сложения по модулю 2 |
X’ = X ⊕ V |
Автообратима | |
Умножение по модулю 2N+1 (N - размер блока) |
X’=(X·V) mod(2N+1) |
Сомножитель можно найти по алгоритму Евклида | |
Циклические сдвиги вправо/влево |
X’ = X ROR V X’ = X ROL V |
Циклический сдвиг в обратном направлении | |
Табличная подстановка |
X’ = SBox(X) |
Обратная подстановка |
Для преобразований параметров криптоалгоритмов, которые не требуют обратимости, используются необратимые операции, такие как логические сложение и умножение, арифметические сдвиги влево и вправо, получение остатка от целочисленного деления, умножение по модулю 2N.
В качестве второго операнда V, участвующего в операциях криптографических преобразований, могут использоваться:
фиксированные числовые константы;
значения, вычисленные из независимой части шифруемого блока (например, можно сложить младшую и старшую часть блока шифруемой информации);
материал ключа – блок информации, вычисленный исключительно на основе информации, хранящейся в ключе шифрования.
Одним из основных принципов структурного построения современных криптоалгоритмов является принцип итерирования. Его идея заключается в многократной, состоящей из нескольких циклов (или раундов), обработки одного блока открытого текста с использованием на каждом циклеспециального ключа раунда, вычисляемого на основе ключа шифрования. Количество циклов можно варьировать из соображений криптостойкости и эффективности реализации алгоритма: увеличение количества циклов приводит к повышению стойкости шифра, но увеличивает время шифрации и потребляемые вычислительные ресурсы. Подобные циклические структуры принято называть сетями, и большинство современных блочных шифров построены с использованием сетевой архитектуры.
Популярной сегодня является сеть Фейстеля, схема которой представлена на рис.2.4.
При шифровании блок открытого текста разбивается на две равные части - левую и правую. На каждом цикле одна из частей подвергается преобразованию при помощи образующей функции F и вспомогательного ключа ki, полученного из исходного ключа. Результат преобразования складывается по модулю 2 с другой частью, после чего части меняются местами. Преобразования на каждом цикле идентичны и лишь после последнего раунда не выполняется перестановка частей блока.
Рис. 2.4. Схема сети Фейстеля на М раундов
Достоинством сети Фейстеля является то, что дешифрация выполняется той же последовательностью преобразований, лишь порядок следования вспомогательных ключей меняется на обратный. Это достигается за счет автообратимости операции суммы по модулю 2, смешивающей части блока между собой.
Если размер блока шифрования криптоалгоритма слишком велик, возможны модификации сети Фейстеляс 4 ветвями, один из вариантов которых приведен на рис. 2.5.
Рис. 2.5. Сеть Фейстеля с 4 ветвями
Пример:
Шифрование
0) У нас есть L и R какие то числа Пусть они будут 100 и 200. и F, какая то функция, зависящая от L и номера раунда n. Пусть, к примеру, F будет просто складывать их по модулю 256(чтоб не вылезало за байт). Т.е. F(L, n) = (L+n) % 256. ( % это остаток от деления )
Раунд первый (n =1)
1) Берем R(200) и ксорим его с результатом функции F(L, n), т.е. 200 ⊕ ((100+1) % 256) получаем 173.
2) Ставим 173 на место L, а на место R предыдущее значение L (100), т.е. меняем местами R и результат ксора R с функцией F.
Раунд 2 (n = 2)
1) Теперь L = 173, R = 100. Ксорим 100 c ((173 + 2) % 256), получаем 203
2) Ставим 203 на место L, а 173 на место R.
Раунд 3 (n = 3)
1) L = 203, R = 173. Ксорим 173 c ((203 + 3) % 256), получаем 99
2) Поскольку раунд последний, то меняем только R (чтобы потом перестановку не делать)
После шифрования L = 203, R = 99.
Расшифровка
Идем в обратном порядке, номера раундов идут с 3 и до 1
Раунд 1 (n = 3)
1) L = 203, R = 99. Ксорим 99 с ((203 + 3) % 256) получаем 173. Знакомое число?
2) Ставим 173 на место L, 203 на место R
Раунд 2 (n = 2)
1) L = 173, R = 203. Отсюда 203 ⊕ ((173 + 2) % 256) = 100. Уже почти!
2) Меняем L = 100, R = 173
Раунд 3 (n = 1)
1) L = 100, R = 173. Считаем R(перестановка, как и в случае с шифрованием, не нужна) = 173 ⊕ ((100+1) % 256) = 200 УРАААА!!!
L = 100, R = 200. Как в аптеке )
Достоинства:
Простота аппаратной реализации на современной электронной базе
Простота программной реализации в силу того, что значительная часть функций поддерживается на аппаратном уровне в современных компьютерах (например, сложение по модулю 2, сложение по модулю 2^n, умножение по модулю 2^n, и т. д.)
Хорошая изученность алгоритмов на основе сетей Фейстеля
Недостатки:
За один раунд шифруется только половина входного блока
3. Построить программу на языке С++ для работы со структурой Дата. Программа должна обеспечивать простейшие функции для работы с данными структуры: увеличение/уменьшение на 1 день, ввод значений, вывод значений.
unit STR_Date;
interface
Uses SysUtils;
type TUserDate = class
private
fNumber:Word;
fMonth:word;
fYear:Integer;
public
Function SetUserDate(ANumber:Word;AMonth:Word;AYear:Integer):Boolean;
Function GetUserDate:String;
Function ModifyDate(AModify:Integer):String;
end;
implementation
Function TUserDate.SetUserDate;
Begin
If AYear>0 Then
Begin
fYear:=AYear;
if (AMonth >0) and (AMonth<=12) Then
Begin
fMonth:=AMonth;
fNumber:=0;
if ((fMonth=1)or(fMonth=3)or(fMonth=5)or(fMonth=7)or(fMonth=8)or(fMonth=10)or(fMonth=12))and(ANumber>0)and(ANumber<=31) Then
fNumber:=ANumber;
if ((fMonth=4)or(fMonth=6)or(fMonth=9)or(fMonth=11))and(ANumber>0)and(ANumber<=30) Then
fNumber:=ANumber;
if (fMonth=2) Then
if (fYear mod 4 = 0) Then
if (ANumber>0) and (ANumber<=29) Then fNumber:=ANumber
else
if (ANumber>0) and(ANumber<=28) Then fNumber:=ANumber;
if fNumber<>0 Then Result:=True else Result:=False;
end
else Result:=False;
end
else
Result:=False;
End;
Function TUserDate.GetUserDate;
Var str,Itog:String;
Begin
Itog:='';
str:=IntToStr(fNumber);
If length(str)=1 Then Itog:=Itog+'0';
Itog:=Itog+str+'.';
str:=IntToStr(fMonth);
if length(str)=1 Then Itog:=Itog+'0';
Itog:=Itog+str+'.';
Itog:=Itog+IntToStr(fYear);
Result:=Itog
End;
//Данная функция очень утрирована
Function TUserDate.ModifyDate;
Begin
fNumber:=fNumber+ AModify;
Result:=GetUserDate;
End;
end.
Тело программы
program Zad_17;
{$APPTYPE CONSOLE}
uses
SysUtils,
STR_Date in 'STR_Date.pas';
var UsDate:TUserDate;
Y:Integer;
N,M:Word;
F:Boolean;
begin
repeat
Write('Vvedite YEAR = ');
Readln(Y);
Write('Vvedite MONTH = ');
Readln(M);
Write('Vvedite Number = ');
Readln(N);
UsDate:=TUserDate.Create;
F:=UsDate.SetUserDate(N,M,Y);
if F=False Then Writeln('ERROR Date');
Until F;
Writeln('Vvedena Date =>> ',UsDate.GetUserDate);
Write('Vvedite znachenie izmenenij = ');
Readln(Y);
Writeln('New date =>> ',UsDate.ModifyDate(Y));
Readln;
{ TODO -oUser -cConsole Main : Insert code here }
end.