Передача аутентичного информационного сообщения по каналу связи

Автор работы: Пользователь скрыл имя, 06 Марта 2013 в 23:26, курсовая работа

Описание работы

Протокол - это порядок действий, предпринимаемых двумя или более сторонами, предназначенный для решения определенной задачи. Это важное определение. "Порядок действий" означает, протокол выполняется в определенной последовательности, с начала до конца. Каждое действие должно выполняться в свою очередь и только после окончания предыдущего. "Предпринимаемых двумя или более сторонами" означает, что для реализации протокола требуется по крайней мере два человека, один человек не сможет реализовать протокол.

Содержание работы

Введение…………………………………………………………………………………………….4

1. Передача информации с использованием криптографии с открытыми ключами...………..5
1.1. Основные требования к алгоритмам асимметричного шифрования……………………6
1.2. Криптоанализ алгоритмов с открытым ключом………………………………………….8
1.3. Основные способы использования алгоритмов с открытым ключом…………………..9
1.4. Схема идентификации FIAT-SHAMIR.……………………………………………….....11

2. Электронная цифровая подпись………………………………………………………………15
2.1. Общая схема цифровой подписи…………………………………………………………15
2.2. Алгоритм цифровой подписи ГОСТ……………………………………………………..16

3. Контроль целостности передаваемых сообщений ГОСТ……………………………..……17
3.1. Общая концепция алгоритма ………………………………………………………….…17
3.2. Режим выработки имитоприставки………………………………………………………21

4. Разработка протокола установления связи с абонентом…………………………………….23
4.1. Протокол установления связи с абонентом……………………………………………..23
4.2. Программная реализация протокола……………………………………………………..25

Заключение……...………………………………………………………………………….………31

Приложение………………………………………………………………………………………..32

Список использованной литературы………………………………………………………..……33

Файлы: 1 файл

Методы и средства защиты информации.doc

— 803.50 Кб (Скачать файл)

 

void initAlgorithm()

{

    randomize();

    /* параметры криптосистемы */

    p = findPrime(); OUTN(p);

    q = findPrime(); OUTN(q);

    n = p * q; OUTN(n);

    /* генерация  ключей */

    for (int i=0; i<2; i++)


        for (int j=0; j<k; j++) {

            ss[i][j] = random(n - 1) + 1;

            vv[i][j] = ss[i][j] * ss[i][j] % n;

        }

    outArray(L"Private key 1 = ", &ss[0][0], k);

    outArray(L"Public key 1 = ", &vv[0][0], k);

    outArray(L"Private key 2 = ", &ss[1][0], k);

    outArray(L"Public key 2 = ", &vv[1][0], k);

}

 

bool roll()

{

    return rand() % 2 == 1;

}

 

bool fiatShamir(int side)

{

    /* step 1 */

    uint32 r = random(n - 2) + 1; OUTN(r);

    uint32 x = r * r % n; OUTN(x);

    /* step 2 */

    bool e = roll(); OUTBOOL(e);

    /* step 3 */

    uint32 y[k];

    for (int i=0; i<k; i++)

        y[i] = (e ? (r * ss[side][i] % n) : r);

    outArray(L"y = ", y, k);

    /* step 4 */

    uint32 z[k];

    for (int i=0; i<k; i++)

        z[i] = y[i] * y[i] % n;

    outArray(L"z = ", z, k);

    bool result = true;

    for (int i=0; i<k; i++) {

        bool result1 = (e ? (z[i] == x * vv[side][i] % n) : (z[i] == x) );

        if (!result1) {

            result = false;

            break;

        }

    }

    return result;

}

Результат выполнения программы:


 

Зашифрованное сообщение  находится в файле message.bin:

 

®М%я^d*Ё™ЈЅPдиY[І Ўb–J*€€Љ-ЅEhGЁtРiЭЪШ`РЄР…*MT”j+–ц*

 

Заключение 

 

     В курсовом проекте разработан протокол установления связи с абонентом, в соответствии с заданным вариантом.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение

Фиат-Шамир:

Общеизвестные числа v и n:

n = 89a2eb31

v = c18c40ae


Закрытый ключ:

s = 79e0c13

Генерируется случайное число  r = c904f54a:

   Вычисляется х =r2 mod n и посылается принимающему абоненту

x = 3acff0ad 

у = r*s mod n

y = a5901ce6

Вычисляется

    х =y2*v mod n

x1= 3a0cffad

x2 = 3a0cffad

x1 = x2 = K – ключ шифрования.

 

Подпись ГОСТ:

Находим параметры щифрования:

  1. р – простое число. р = 2741
  2. находим q и r: p=q*r+1 и q – простое число

q = 137

r = 20

  1. h:  hr ≠ 1(modp). h = 1699
  2. g = hr modp. g = 2476

Генерация ключа:

  1. x: 0<x<q. x = 67 – секретный ключ
  2. y = gx . y = 886 – открытый ключ

Подписывание:

  1. k: 0<k<q. k = 40
  2. r = gkmodp. r = 95
  3. e = f(М||r)

f - хэш-ф-я GOST, М – текст сообщения, || - операция сложения строк

е = 1701894956

  1. s = (k + xe)modq. s = 125

Проверка подписи:

  1. rV = gs*ye. rV=95
  2. eV = f(M||rV). eV=1701894956

e = eV, подпись сошлась. 

 

Список использованной литературы

 

1. Брюс Шнайер. Прикладная криптография. 2-е издание. Протоколы, алгоритмы и исходные тексты на языке С.

2. James Nechvatal, Elaine Barker, Lawrence Bassham, William Burr, Morris Dworkin, James Foti, Edward Roback. Report on the Development of the Advanced Encryption Standard (AES) 
Computer Security Division Information Technology Laboratory National Institute of Standards and Technology Technology Administration U.S. Department of Commerce. 2000г. 116c.

  1. Государственный Стандарт Российской Федерации 
    ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ. КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ. Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма 
    1994г.
  2. Государственный Стандарт Российской Федерации 
    ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ. КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ. Функция хэширования,1994г.
  3. Goldwasser S., Micali S., Rackoff C. The knowledge complexity of interactive proof systems // SIAM J. Comput. V. 18, No 1, 1989. P. 186-208.
  4. Введение в криптографию. Под редакцией В.В.Ященко. МЦНМО 2000.
  5. Hannu A. Aronsson. Zero Knowledge Protocols and Small Systems. Department of Computer Science, Helsinki University of Technology.
  6. А.П.Алферов, А.Ю.Зубов, А.С.Кузьмин, А.В.Черемушкин. Основы криптографии. Москва, Гелиос АРВ, 2002.


 




Информация о работе Передача аутентичного информационного сообщения по каналу связи