ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ ВОЛЖСКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ (филиал) ВОЛГОГРАДСКОГО ГОСУДАРСТВЕННОГО ТЕХНИЧЕСКОГО УНИВЕРСИТЕТА

advertisement
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ВОЛЖСКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ (филиал) ВОЛГОГРАДСКОГО
ГОСУДАРСТВЕННОГО ТЕХНИЧЕСКОГО УНИВЕРСИТЕТА
КАФЕДРА «ИНФОРМАТИКА И ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ»
Асимметричное шифрование
Методические указания к лабораторным работам по
курсу «Методы и средства защиты компьютерной информации»
Волгоград 2008
УДК 004.056
МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ЛАБОРАТОРНЫМ РАБОТАМ: Асимметричное шифрование / Сост. Лясин Д.Н., Макушкин И.А.; Волгоград. гос.
техн. ун-т. - Волгоград, 2008, – 15 с.
Содержатся сведения, необходимые для изучения студентами основных
принципов асимметричного шифрования данных: математические основы, структура криптопреобразований. Дан обзор современных асимметричных шифров. Приведены варианты заданий к лабораторным работам.
Предназначены для студентов, обучающихся по направлению 5528 "Информатика и вычислительная техника" и специальности 2201 "Вычислительные машины, комплексы, системы и сети" всех форм обучения в рамках курса «Методы и
средства защиты компьютерной информации»
Ил. 8.
Библиогр.: 6 назв.
Рецензент: к.т.н., доцент каф. ВАЭ и ВТ ВПИ (филиал) ВолгГТУ
Студеникин А.В.
Печатается по решению редакционно-издательского совета Волгоградского государственного технического университета
©
2
Волгоградский государственный
технический университет, 2008
Лабораторная работа N 3
Асимметричное шифрование
Цель работы: изучение основных принципов работы современных алгоритмов асимметричного шифрования, приобретение навыков программной реализации
асимметричных шифров.
Основные сведения
Симметричное шифрование имеет недостатки, которые ограничивают возможности его применения в ряде конкретных случаев. В частности, зачастую невозможно организовать секретный канал для обмена ключами шифрования между
участниками взаимодействия. Еще одним недостатком симметричных шифров является необходимость хранения большого количества ключей. Для того чтобы в вычислительной сети могли конфиденциально попарно взаимодействовать N участников, необходимо наличие в системе N*(N-1)/2 ключей. Эти недостатки можно
устранить, используя алгоритмы асимметричного шифрования. Например, для
асимметричной системы достаточно иметь 2*N пар открытый/закрытый ключ, чтобы можно было организовать секретный канал между каждой парой участников.
Асимметричная система шифрования работает по схеме, представленной на
рис. 1.
Отличительной особенностью асимметричных алгоритмов является наличие
пары ключей шифрования: открытого kот, который передается второй стороне по
незащищенному каналу связи и поэтому может быть известен криптоаналитику, а
также закрытого kзак, который известен лишь одному человеку (получателю сообщения) и держится в секрете. Пара ключей обладает тем свойством, что сообщение,
зашифрованное на одном из ключей, может быть расшифровано только на другом
ключе. Фактически это означает, что секретным каналом передачи информации на
схеме рис. 1 является направление “отправитель-получатель”, поскольку сообщение,
3
зашифрованное на открытом ключе отправителем, может дешифровать своим закрытым ключом только получатель.
Криптоаналитик
Отправитель
X-открытый текст
Y-шифротекст
E – процедура шифрации
D – процедура дешифрации
kот – открытый ключ
kзак – закрытый ключ
Дешифрование
Шифрование
Y=Ekот(X)
X
Получатель
X=Dkзак(Y)
kзак
kот
Рис.1. Обобщенная модель асимметричной системы шифрования
Открытый и закрытый ключи генерируются одновременно, и между ними существует определенная математическая связь. Основная задача проектировщика
асимметричного алгоритма заключается в том, чтобы по известному открытому
ключу было бы невозможно (очень трудоемко) получить секретный ключ шифрования. Для этого в основу асимметричных алгоритмов закладываются вычислительно
трудные задачи факторизации, дискретного логарифмирования, проецирования точек на эллиптической кривой и т.д.
Первой системой с открытым ключом стал метод экспоненциального
ключевого обмена Диффи - Хеллмана, разработанный в 1976 году. Метод
предназначен для передачи секретного ключа симметричного шифрования. В
обмене задействованы два участника А и Б (рис.2). Сначала они выбирают большие
простые числа n и g<n (эти числа секретными не являются). Затем участник A выбирает большое целое число х, вычисляет Х=gx mod n и передает Х участнику Б. Б в
свою очередь выбирает большое целое число y, вычисляет Y=gy mod n и передает Y
участнику А. Б вычисляет K’=Xy mod n, А вычисляет K’’=Yx mod n. Легко заметить,
что K’=K’’=gxy mod n, и это значение оба участника могут использовать в качестве
ключа симметричного шифрования.
4
Пользователь А
Пользователь Б
Открытый канал
g, n – открытые
параметры
1. Выбрать случайное
число x
1. Выбрать случайное
число y
2. Вычислить
2. Вычислить
Y=g y mod n
Х=g x mod n
3. Передать X пользователю Б
X
Y
3. Передать Y пользователю А
4. Получить X.
Вычислить
4. Получить Y.
Вычислить
K’=X y mod n
K’’=Y x mod n
Ключ K’=K’’=gxy mod n используется в симметричном алгоритме
Рис.2. Схема экспоненциального ключевого обмена Диффи-Хеллмана
Криптостойкость этого метода определяется трудоемкостью вычисления дискретного логарифма в конечном поле. Действительно, злоумышленник может узнать
такие параметры алгоритма, как n, g, X, Y, но вычислить по ним значения x или y –
задача, требующая очень больших вычислительных мощностей и времени (последнее утверждение верно при использовании сверхбольших чисел, размером более 768
бит). Метод легко можно обобщить на случай ключевого обмена для большего количества участников.
Алгоритм Эль-Гемаля - асимметричный алгоритм шифрования, основанный
на проблеме дискретного логарифма, разработан в 1985 г. Последовательность действий при генерации ключей, шифровании и дешифрации представлена на рис. 3.
Необходимо пояснить процедуру дешифрования. Так как axgkx mod p, то имеем:
y k m g xk m
b
 x  kx  m mod p
ax
a
g
5
Получатель
Отправитель
Генерация ключей
Выбрать простое p и 2 случайных числа g – первообразный корень по модулю p и
x в диапазоне (1,p), такое, что
(x,p)=1
Вычислить y=gx mod p
Сообщение m
Открытый
ключ (p,g,y)
Закрытый ключ x
Дешифрование
Шифрование
Выбрать случайное k:
(k,p-1)=1
Вычислить
a=gk mod p
b=ykm mod p
Шифротекст
(a,b)
m=(b / ax ) mod p
Рис.3. Схема шифрования и дешифрации алгоритма Эль-Гемаля
Таким образом, кодируемое сообщение М разбивается на части, каждая из которых m интерпретируется как число в диапазоне [0 .. p-1], и выполняется операция
шифрования согласно схеме на рис.3. На практике при использовании данного алгоритма рекомендуется выбирать ключи размером 768, 1024 и 1536 бит.
Алгоритм RSA был разработан в 1978 году. Алгоритм назван в честь авторов
(Rivest, Shamir, Adleman). В основу криптостойкости RSA положена задача факторизации (разложения на множители) больших целых чисел. Процедуры генерации
ключей, шифрования и дешифрования для этого алгоритма представлены на рис. 4.
На этапе генерации ключей формируется пара ключей: закрытый d и открытый e. Алгоритм Евклида, необходимый для вычисления закрытого ключа d, можно
посмотреть в [2]. Шифрование данных должно начинаться с его разбиения на блоки
m размером k=[log2 (n)] бит каждый, чтобы блок m можно было рассматривать как
целое число в диапазоне [0.. n-1].
Основная задача криптоаналитика при взломе этого шифра – узнать закрытый
ключ d. Для этого он должен выполнить те же действия, что и получатель при генерации ключа – решить в целых числах уравнение
6
ed + y (p-1)(q-1) =1 относительно
d и y. Однако, если получателю известны входящие в уравнение параметры p и q, то
криптоаналитик знает только число n – произведение p и q. Следовательно, ему
необходимо произвести факторизацию числа n, то есть разложить его на множители.
Для решения задачи факторизации к настоящему времени разработано множество
алгоритмов: квадратичного решета, обобщенного числового решета, метод эллиптических кривых. Но для чисел большой размерности (около 1024 бит и более) это
очень трудоемкая задача.
Получатель
Генерация ключей
Выбрать простые p и q
Вычислить n=p*q
Выбрать случайное e такое,
что: (e,(p-1)(q-1))=1
Найти с помощью алгоритма Евклида d такое, что:
ed  1 mod (p-1)(q-1)
Отправитель
Сообщение m
Открытый
ключ (e,n)
Шифрование
c=me mod n
Закрытый ключ d
Дешифрование
Шифротекст
c
m=(cd ) mod n
Рис.4. Схема шифрования и дешифрации алгоритма RSA
Алгоритм Рабина имеет схожую с RSA структуру, но вместо возведения сообщения в степень е при шифровании используется операция возведения блока сообщения в квадрат, что благоприятно сказывается на скорости выполнения алгоритма без ущерба криптостойкости (рис. 5).
7
Получатель
Генерация ключей
Выбрать простые p и q такие, что р 3 mod 4
q 3 mod 4
Вычислить n=p*q
С помощью алгоритма Евклида решить
ар+bq=1
Отправитель
Сообщение m
Открытый
ключ (n)
Шифрование
c=m2 mod n
Закрытый ключ (p,q,a,b)
Дешифрование
r=c(p+1)/4 mod p
s=c(q+1)/4 mod q
x=(aps+bqr) mod n
y=(aps-bqr) mod n
m=(x),(y)
Шифротекст
c
Рис.5. Схема шифрования и дешифрации алгоритма Рабина
По сравнению с RSA схема Рабина имеет меньший открытый ключ n и обеспечивает меньшее время шифрации. Недостатком схемы является то, что в результате дешифрования получается 4 различных значения, лишь одно из которых совпадает с исходным сообщением. Для разрешения этой ситуации в кодируемое
сообщение необходимо добавлять некоторую метку, которая позволит однозначно
отличить его на принимающей стороне. В качестве метки можно использовать как
контрольную сумму пересылаемого блока (при этом обеспечив уникальность идентификации сообщения по его контрольной сумме), так и некоторое заранее оговоренное значение, префиксом добавляемое в исходное сообщение перед шифрованием.
8
Криптосистема Меркла-Хеллмана основана на использовании односторонней функции, известной под названием «задачи укладки рюкзака» [3]. Дано
несколько вещей, каждая из которых имеет определенный вес ri. Необходимо выбрать вещи из общего списка так, чтобы общий вес рюкзака равнялся некоторому
заданному значению S, то есть найти двоичный вектор m такой, что:
S=m1r1+m2r2+m3r3+…mtrt
(1)
Пример заполнения рюкзака «вещами» с весами из набора {113, 140, 307, 339,
565, 711, 1041, 1179, 1243, 1535} с окончательным весом S=3124 приведен на рис.6.
1243
307
339
113
711
S=3124
71
1535
15
15
35
140
35
1179
339
565
113
565
711 1
307
140
117
1041
1041
1243
12
43
Рис.6. Пример решения “задачи рюкзака”
Доказано, что не существует эффективного способа вычисления вектора m по
r и весу S. Таким образом, вектор r можно использовать для шифрования t-битового
сообщения m путем вычисления произведения (1).
При этом сложность решения задачи укладки рюкзака зависит от выбора весов
в векторе r. Если вектор m выбирается как сверхвозврастающая последовательность
(СВП), то задача поиска m по известным r и S решается за линейное время. Для
сверхвозврастающей последовательности каждый следующий элемент больше суммы всех предыдущих:
i 1
ri   rj
j 1
9
Таким образом, вектор сврехвозрастающей последовательности r может служить закрытым ключом шифрования, а открытый ключ l получается из закрытого по
формуле
li  ri n mod k ,
где k– некоторое случайное число, большее суммы элементов вектора r, n – случайное число, взаимно простое с k (параметры n и k держатся в секрете). При этом допускается также дополнительная перестановка элементов в векторе l.
Алгоритмы формирования закрытого и открытого ключей, а также процедур
шифрации и дешифрации приведены на рис.7.
Получатель
Генерация ключей
Выбрать вектор СВП
r1,r2,…,rt
Выбрать n,k: (n,k)=1,
Отправитель
Сообщение m
Открытый
ключ
Вектор l
t
k   ri
Шифрование
Выделить блок из
t бит
Вычислить
i 1
Вычислить вектор l:
li=ri*n mod k
Закрытый ключ n,m, вектор r
t
Шифротекст
Дешифрование
P=S*n mod k
P- результат шифрации m на
СВП
S   mi li
i 1
S
-1
Рис.7. Схема шифрования и дешифрации алгоритма Меркла-Хеллмана
В качестве шифротекста используется результат скалярного произведения
векторов l и m, где m – исходное сообщение, рассматриваемое как двоичный вектор.
Вскрытие шифротекста S по вектору l является задачей укладки рюкзака в общем
виде и при значениях t>100 является трудновычислимой задачей.
10
Владелец закрытого ключа легко раскрывает сообщение m по известному S
путем разложения на сверхвозрастающей последовательности r значения
P = S*n-1 mod k
Алгоритм Месси-Омуры позволяет передать сообщение по открытому каналу
связи без предварительной передачи какой бы то ни было ключевой информации.
Алгоритм является аналогом ящика, запираемого на один или два замка [6]. Вместо
замков абоненты используют ключи (da , ea), (db , eb). Для их организации используется открытый параметр – большое простое число p. Алгоритм генерации ключей
приведен на рис. 8.
Получатель
Выбрать ea : (e a, p-1)=1
Найти da: da ea ≡1 mod (p-1)
Открытый
параметр p
Отправитель
выбрать e b : (e b, p-1)=1
Найти db: db eb ≡1 mod (p-1)
Сообщение m
Вычислить
m2=m1 ea mod p
m1
Вычислить
m1 = m eb mod p
m2
Вычислить
m= m3 da mod p
m3
Вычислить
m3 = m2 db mod p
Рис.8. Схема шифрации и дешифрации алгоритма Месси-Омуры
Процедура шифрования представляет собой процесс последовательного
«навешивания замков» на открытый текст отправителем и получателем, путем шифрования по схеме mi = mi-1 mod p. Учитывая свойство пары ключей-замков (da , ea):
mea d a  m, для 0  m  p ,
можно сделать вывод, что в схеме на рис. 8 m3=m. При этом криптоаналитик не
сможет вскрыть открытый текст m по известным ему значениям m1, m2, m3 в связи с
трудоемкостью
решения
задачи
вычисления
11
дискретного
логарифма.
Порядок выполнения работы
1. Ознакомьтесь с теоретическими основами асимметричного шифрования в
настоящих указаниях, а также в [2] и конспектах лекций.
2. Получите вариант задания у преподавателя.
3. Напишите программу согласно варианту задания.
4. Отладьте разработанную программу и покажите результаты работы программы преподавателю.
5. Составьте отчет по лабораторной работе
Содержание отчета
Отчет по лабораторной работе должен содержать следующие сведения:
- название и цель работы;
- вариант задания;
- листинг разработанной программы с комментариями;
- результаты работы программы.
Варианты заданий
1. Зашифровать и дешифровать файл с использованием алгоритма RSA на
ключе не менее 128 бит.
2. Зашифровать и дешифровать файл с использованием алгоритма Рабина
с идентификацией сообщения по контрольной сумме на ключе не менее 128 бит.
3. Зашифровать и дешифровать файл с использованием алгоритма Рабина
с идентификацией сообщения по добавленной метке на ключе не менее 128 бит.
4. Зашифровать и дешифровать файл с использованием алгоритма экспоненциального ключевого обмена Диффи-Хелмана на 2-х участников и блочного
шифра TEA в режиме OFB с ключами не менее 128 бит.
5. Зашифровать и дешифровать файл с использованием алгоритма экспоненциального ключевого обмена Диффи-Хелмана на 3-х участников и блочного
шифра IDEA в режиме CFB с ключами не менее 128 бит.
12
6. Зашифровать и дешифровать файл с использованием алгоритма ЭльГемаля с ключами не менее 128 бит.
7. Зашифровать и дешифровать файл с использованием алгоритма Меркла-Хеллмана с использованием массива весов не менее 100 чисел.
8. Зашифровать и дешифровать файл с использованием алгоритма МессиОмуры с ключами не менее 128 бит.
Контрольные вопросы
1. Перечислите достоинства и недостатки асимметричных алгоритмов в сравнении с симметричными.
2. Перечислите основные трудновычислимые задачи, использующиеся в современной асимметричной криптографии.
3. Ознакомьтесь с описанием алгоритма RSA в [2] и докажите обратимость процедур шифрации и дешифрации данных.
4. Предложите алгоритм укладки рюкзака по сверхвозрастающей последовательности.
5. Каким образом можно идентифицировать зашифрованное сообщение в алгоритме Рабина при дешифрации?
6. Приведите схему ключевого обмена Диффи-Хеллмана на 3-х участников.
7. Докажите обратимость процедур шифрации и дешифрации в алгоритме Меркла-Хеллмана.
8. Какие ограничения накладываются на размер блока шифруемого сообщения в
алгоритме Месси-Омуры?
13
Литература
1. Конеев И.Р., Беляев А.В. Информационная безопасность предприятия. СПб.: БХВ-Петербург, 2003.- 752с.:ил.
2. Лясин Д.Н., Саньков С.Г. Методы и средства защиты компьютерной
информации (учебное пособие). – Волгоград, Издательство ВолгГТУ РПК
"Политехник”, 2005г.
3. С.Г.Баричев, В. В. Гончаров, Р. Е. Серов. Основы современной криптографии: Учебный курс. М.: Горячая линия - Телеком, 2002 г.
4. Чмора А.Л. Современная прикладная криптография. 2-е изд. -М.: Гелиос
АРВ, 2002.-256с.:ил.
5. Шнайер Б. Прикладная криптография.- М. : Триумф, 2002. – 816с.
6. Элементарное введение в эллиптическую криптографию: Протоколы
криптографии на эллиптических кривых. – М.: КомКнига, 2006. – 280 с.
14
Составители: Дмитрий Николаевич Лясин
Игорь Александрович Макушкин
Асимметричное шифрование. Методические указания к лабораторным работам по
курсу «Методы и средства защиты компьютерной информации».
В авторской редакции.
Темплан 2008 г. , поз. N 12В (з)
Лицензия ИД N04790 от 18.05.01
Подписано в печать _________ . На магнитном носителе.
Усл. печ. л. 0,93 . Уч. -изд.л. 1,00.
Волгоградский государственный технический университет.
400131 Волгоград , пр. Ленина , 28.
РПК "Политехник" Волгоградского государственного технического
университета.
400131 Волгоград , ул. Советская , 35.
15
Download