Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MOZI.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
2.55 Mб
Скачать

Примеры решения задач

  1. Зашифровать с помощью системы с открытым ключом сообщение: 312.

Решение. Генерация ключей: p=3, q=11; n=рq = 3*11 = 33;

(p-l)(q-1) = 2*10=20, е=7;

Определим d: 7d1(mod 20). Отсюда d=17(33)-1=719(mod 20).

719(mod 20) (73)67=3436736734327=81633 (mod 20).

Пусть S1=3, S2=1, S3=2 (S1, S2, S3 <n=33). Тогда код определяется следующим образом:

С17 mod 33=2187 mod 33=9;

С2= 17 mod 33=1 mod 33=1;

С3=27 mod 33=128 mod 33=29.

При расшифровке имеем:

P1=93 mod 33=729 mod 33=3;

P2=13 mod 33=1 mod 33=1;

P3=293 mod 33=24389 mod 33=2.

Задачи для самостоятельного решения

  1. Зашифруйте следующие сообщения с заданными значениями p, q:

    1. 526, p=7, q=19;

    2. tree, p=11, q=13;

    3. крошка, p=11, q=17;

    4. скрипт, p=133, q=29.

6.1.7.Построение и использование хеш-функций

Под термином хеш-функция понимается функция, отображающая электронные сообщения произвольной длины в значения фиксированной длины. Т.о. у всякой хеш-функции h имеется большое количество коллизий, т.е. пар значений х и у таких, что h(x)=h(y). Основное требование, предъявляемое криптографическими приложениями к хеш-функциям, состоит в отсутствии эффективных алгоритмов поиска коллизий. Кроме того, хеш-функция должна быть односторонней, т.е. функцией, по значению которой вычислительно трудно найти её аргумент, в то же время, функцией, для аргумента которой вычислительно трудно найти другой аргумент, который давал бы то же самое значение функции. Схемы электронной цифровой подписи – основная сфера применения хеш-функций.

Один из практических методов построения хеш-функций - на основе какой-либо известной вычислительно трудной математической задачи. Например, легко вычислить квадрат числа по модулю n: х2 (mod n), но вычислительно трудно извлечь квадратный корень по этому модулю. Т.о., хеш-функцию можно записать так: Hi=[(Hi-1Mi)2] (mod n), где i=1…n; H0=0; M=M1, M2, … , Mn. Длина блока Mi представляется в октетах, каждый октет разбит пополам и к каждой половине спереди приписывается полуоктет, состоящий из двоичных единиц: n – произведение двух больших (512-битных) простых чисел p и q.

Примеры решения задач

  1. Получить хеш-код для сообщения «ДВА» при помощи хеш-функции с параметрами p=7, q=3, вектор инициализации I=6 (выбираем случайно).

Решение. 1). Получаем значение модуля: n=pq=73=21;

2). Представить сообщение «ДВА» в числовом эквиваленте (по номеру буквы в алфавите):

ДВА

5 3 1

3). Представить коды битовой строкой:

5 3 1

00000101 00000011 00000001

I=610=000001102.

4). Разбить байт пополам (разбиение октета на полуоктеты), добавить в начало полубайта единицы и получить хешируемые блоки Mi:

М1 М2 М3 М4 М5 М6

11110000 11110101 11110000 11110011 11110000 11110001.

5). Выполнить итеративные шаги:

первая итерация:

М1=11110000,

Н0= 00000110,

Н0М1= 111101102=24610,

[(Н0М1)]2(mod 21)=2462(mod 21)=152(mod 21)=(-6)2(mod 21)=15,

H1=1510=0000111112.

Вторая итерация:

М2=11110101,

Н1= 00001111,

Н1М2= 111110102=25010,

[(Н1М2)]2 (mod 21)=2502 (mod 21)= 192(mod 21)=(-2)2(mod 21)=4,

H2=410=000001002.

И т.д. Всего нужно выполнить шесть итераций, полученное число Н6 и будет хеш-код.

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