Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory_ekzamen.docx
Скачиваний:
6
Добавлен:
15.04.2019
Размер:
2.12 Mб
Скачать

24. Стандарт des: функция шифрования и алгоритм вычисления ключей. Функция шифрования в des.

Схема вычисления функции шифрования f(Ri-1, Ki)

Для вычисления значения функции f используются:

– функция E (расширение 32 бит до 48);

– функция S1, S2, …, S8 (преобразование 6-битового числа в 4-битовое);

– функция P (перестановка бит в 32-битовой последовательности).

Выбор элемента в матрице S осуществляется достаточно оригинальным образом. Пусть на вход матрицы S поступает 6-битовый блок Bj = b1b2b3b4b5b6, тогда 2-битовое число b1b6 указывает номер строки матрицы, а 4-битовое число b2b3b4b5 - номер столбца.

Алгоритм вычисления ключей.

Новое значение ключа Ki вычисляется из начального ключа K. Ключ K представляет собой 64-битовый блок с 8 битами контроля по четности, расположенными в позициях 8, 16, 24, 32, 40, 48, 56, 64. Для удаления контрольных бит и подготовки ключа к работе используется функция G первоначальной подготовки ключа.

19. Разложение чисел на множители. (+35)

Всякое составное число может быть единственным образом представлено в виде произведения простых множителей. Например,

Для небольших чисел это разложение легко делается на основе таблицы умножения. Для больших чисел рекомендуется пользоваться следующим способом, который рассмотрим на конкретном примере. Разложим на простые множители число 1463. Для этого воспользуемся таблицей простых чисел:

Перебираем числа по этой таблице и останавливаемся на том числе, которое является делителем данного числа. В нашем примере это 7. Делим 1463 на 7 и получаем 209. Теперь повторяем процесс перебора простых чисел для 209 и останавливаемся на числе 11, которое является его делителем. Делим 209 на 11 и получаем 19, которое в соответствии с этой же таблицей является простым числом. Таким образом, имеем: 1463 = 7*11*19, т.е. простыми делителями числа 1463 являются 7, 11 и 19. Описанный процесс можно записать следующим образом:

35. Комбинированный метод шифрования.

Комбинированный (гибридный) метод шифрования позволяет сочетать преимущества высокой секретности, присущие асимметричным криптосистемам с открытым ключом, с преимуществами высокой скорости работы, присущими симметричным криптосистемам с секретным ключом. При таком подходе криптосистема с открытым ключом применяется для зашифровывания, передачи и последующего расшифровывания только

секретного ключа симметричной криптосистемы. А симметричная криптосистема применяется для зашифровывания и передачи исходного открытого текста. В результате криптосистема с открытым ключом не заменяет симметричную криптосистему с секретным ключом, а лишь дополняет ее, позволяя повысить в целом защищенность передаваемой информации. Такой подход иногда называют схемой электронного цифрового конверта.

Если пользователь A хочет передать зашифрованное комбинированным методом сообщение M пользователю B, то порядок его действий будет таков:

1. Создать (например, сгенерировать случайным образом) симметричный ключ, называемый в этом методе сеансовым ключом KS.

2. Зашифровать сообщение M на сеансовом ключе KS.

3. Зашифровать сеансовый ключ KS на открытом ключе KO пользователя B.

4. Передать по открытому каналу связи в адрес пользователя B зашифрованное сообщение вместе с зашифрованным сеансовым ключом.

Действия пользователя B при получении зашифрованного сообщения и зашифрованного сеансового ключа должны быть обратными.

5. Расшифровать на своем секретном ключе KC сеансовый ключ KS.

6. С помощью полученного сеансового ключа KS расшифровать и прочитать сообщение M.

При использовании комбинированного метода шифрования можно быть уверенным в том, что только пользователь B сможет правильно расшифровать ключ KS и прочитать сообщение M.

20. Генерация простого числа. (+23)

Тестирование простоты

Проверить (вероятную) простоту числа p, содержащего k битов, можно так:

1. Убедиться, что p не делится на небольшие простые числа (3, 5, 7, 11, и т.д.) до некоторого небольшого предела (например, 256). Такая проверка позволяет эффективно отсечь множество заведомо составных чисел, прежде чем проверять их посредством более трудоемких алгоритмов. Так, проверка делимости p на простые числа 2, 3, 5 и 7 отсеивает все четные числа и 54% нечетных чисел, проверка делимости p на все простые числа до 100 отсеивает 76% нечетных чисел, а проверка делимости p на все простые числа до 256 отсеивает 80% нечетных чисел.

2. Выполнить тест Миллера — Рабина с количеством раундов не меньше k:

Ввод: m > 2, нечетное натуральное число, которое необходимо проверить на простоту;

r — количество раундов.

Вывод: составное, означает, что m является составным числом;

вероятно простое, означает, что m с высокой вероятностью является простым числом.

Представить m − 1 в виде 2s·t, где t нечетно, можно сделать последовательным делением m - 1 на 2.

цикл А: повторить r раз:

Выбрать случайное целое число a в отрезке [2, m − 2]

xat mod m

если x = 1 или x = m − 1, то перейти на следующую итерацию цикла А

цикл B: повторить s − 1 раз

xx2 mod m

если x = 1, то вернуть составное

если x = m − 1, то перейти на следующую итерацию цикла А

вернуть составное

вернуть вероятно простое

Типовой алгоритм 1

1. Сгенерировать (k−1) случайных битов и составить из них k-битное числоp (старший бит равен 1).

2. Увеличить p на 1 и проверить его простоту. Повторять этот шаг до тех пор, пока не будет найдено простое число.

Второй шаг можно ускорить, если рассматривать, к примеру, только нечетные числа и т.п.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]