АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Пример выполнения Задания3. Алгоритм Диффи-Хеллмана

Читайте также:
  1. A. знания о предметной области, которые после их выполнения не изменяются
  2. C) Функциональные сдвиги достигнутые в результате выполнения упражнения
  3. C. развитие знаний в форме дообучения на дополнительной последовательности примеров
  4. C. развитие знаний в форме дообучения на дополнительной последовательности примеров
  5. CПИСОК ОБЯЗАТЕЛЬНЫХ МАНИПУЛЯЦИЙ, ПРЕДУСМОТРЕННЫХ ДЛЯ ВЫПОЛНЕНИЯ НА ПРАКТИКЕ ПО ПРОФИЛЮ СПЕЦИАЛЬНОСТИ «СЕСТРИНСКОЕ ДЕЛО В ХИРУРГИИ»
  6. I. Организация выполнения выпускной квалификационной работы
  7. II. Организация выполнения выпускной квалификационной
  8. II. ПЕРЕЧЕНЬ ЗАДАНИЙ ДЛЯ ВЫПОЛНЕНИЯ РАБОТЫ
  9. II. Ход выполнения
  10. II.Примерная тематика курсовых работ
  11. III. Задания для самостоятельного выполнения.
  12. III. После этого раненую конечность лучше всего зафиксировать, например, подвесив на косынке или при помощи шин, что является третьим принципом оказания помощи при ранениях.

Открытый элемент Р задан в таблице 3 – графа 2. Найти примитивный элемент поля. Считая, что секретный ключ каждого участника равен номеру студента в списке группы i, вычислить ключ обмена для участника с номером 35 – i по алгоритму Диффи-Хэллмана.

 

Вариант № 15, группа 2091 (№ 1)

Номер в списке группы i = 15

Номер группы k = 1

P = 37

 

Открытый элемент P = 37. Найти примитивный элемент поля. Секретный ключ каждого участника i = 15, вычислить ключ обмена для участника с номером 35-15 = 20.

 

GF(37) = <0, 1, 2, 3, …, 35, 36, 37>

Найдем примитивный элемент поля GF(37).

 

Требуется найти такое число, принадлежащее интервалу [2,37], которое при возведении в 37-ю степень по модулю 37 будет давать в результате единицу. Если же единица будет получена раньше, чем при возведении в 36-ю степень, результаты возведения в степень начнут повторяться, и через выбранный элемент не удастся представить все элементы поля. Исходя из таких соображений, получаем несложный алгоритм нахождения примитивных элементов поля GF(37).

 

 

Алгоритм нахождения примитивных элементов поля GF(37).

 

int _tmain(int argc, _TCHAR* argv[])

{

long int mem, i, j, num, deg, modul, res;

unsigned char mas[38];

deg = 0; modul = 37; mem = 2;

while (mem < 36)

{

num = mem; deg = 0;

while (deg!= 36)

{

res = 1; deg = 0;

for (i = 0; i < 36; i++) mas[i] = 0;

do

{

res = res*num; res = res % modul;

deg++; mas[deg] = res;

}

while(res!= 1);

num++;

}

std::cout << num-1 << std::endl;

for (i = 0; i < 36; i++)

{

for (j = 0; j < 36; j++)

{

if ((i!= j) && (mas[j] == mas[i]))

std::cout << "Wrong" << std::endl;

}

mem = num;

}

}

}

 

 

В результате выполнения программы получим следующие значения:

2, 5, 13, 15, 17, 18, 19, 20, 22, 24, 32, 35

 

Выберем значение α = 2.

 

Секретный ключ участника А: XA = 15.

Секретный ключ участника B: YB = 35-15 = 20.

 

Открытый ключ участника А:

Открытый ключ участника B:

 

Обменный ключ участника А:

Обменный ключ участника B:

Значения обменного ключа для А и В совпадают.

Обменный ключ: K = 26

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)