Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Криптографические методы защиты компьютерной информации. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
1 Мб
Скачать

1.Пользователь В выбирает два произвольных больших простых числа Р и Q.

2.Пользователь В вычисляет значение модуля N = P ×Q .

3.Пользователь В вычисляет функцию Эйлера

j(N )= (P -1)(Q -1)

ивыбирает случайным образом значение открытого ключа K B с учетом выполнения условий:

1< KB £ j (N ), HOД (KB ,j (N ))=1.

4.Пользователь В вычисляет значение секретного ключа kB , используя расширенный алгоритм Евклида при решении сравнения

kB º KB-1(mod (j )(N )).

5.Пользователь B пересылает пользователю А пару чисел (N, КB) по незащищенному каналу.

Если пользователь А хочет передать пользователюВ сообщение М, он выполняет следующие шаги.

6.Пользователь А разбивает исходный открытый текстМ на блоки, каждый из которых может быть представлен в виде числа

M i = 0,1,2,..., N -1.

7. Пользователь А шифрует текст, представленный в виде последовательности чисел М, по формуле

Ci = MiK B (mod N )

и отправляет криптограмму

C1 , C2 , C3 ,..., Ci ,...

пользователю В.

8. Пользователь В расшифровывает принятую криптограмму

C1 , C2 , C3 ,..., Ci ,...,

используя секретный ключ kB , по формуле

M i = CiK B (mod N ).

- 61 -

В результате будет получена последовательность чисел Mi, которые представляют собой исходное сообщениеМ. Чтобы алгоритм RSA имел практическую ценность, необходимо иметь возможность без существенных затрат генерировать большие простые числа, уметь

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

Пример. Шифрование сообщения CAB. Для простоты вычис-

лений будут использоваться небольшие числа. На практике применяются очень большие числа.

Действия пользователя В.

1.Выбирает P = 3 и Q =11.

2.Вычисляет модуль N = P ×Q = 3 ×11 = 33 .

3.Вычисляет значение функции Эйлера для N = 33 :

j (N )= j (33)= (P -1) (Q -1)= 2 ×10 = 20.

Выбирает в качестве открытого ключа K B произвольное число с учетом выполнения условий:

1 < K B £ 20, НОД (K B ,20)=1,

где K B = 7.

4. Вычисляет значение секретного ключа kB , используя расширенный алгоритм Евклида при решении сравнения

K º 7-1 (mod 20).

Решение дает kB = 3.

5. Пересылает пользователю А пару чисел (N = 3, kB = 7). Действия пользователя А:

1.. Представляет шифруемое сообщение как последовательность целых чисел в диапазоне 0 ... 32. Пусть буква А представляется как число 1, буква В – как число 2, буква С – как число 3. Тогда сообщение CAB можно представить как последовательность чисел 312, т.е.

M 1 = 3, M 2 =1, M 3 = 2.

2.. Шифрует текст, представленный в виде последовательности чисел M1, M 2 и M 3 используя ключ K B = 7 и N = 33, по формуле

Ci = MiK B (mod N )= Mi7 (mod 33).

- 62 -

получает

C1 = 37 (mod33)= 2187(mod33)= 9 ,

C2 =17 (mod33)=1 mod( 33)=1,

C3 = 27 (mod 33) = 128(mod 33) = 29 .

Отправляет пользователю В криптограмму

C1,C2 ,C3 = 9, 1, 29.

Действия пользователя В.

3. Расшифровывает принятую криптограмму, C1,C2 ,C3 , ис-

пользуя секретный ключ kB = 3, по формуле

M i = CiK B (mod N )= Ci3 (mod 33).

получает

M1 = 93 (mod 33) = 729 (mod 33) = 3 ,

M 2 = 13 (mod 33) = 1(mod 33) = 1 ,

M 3 = 293 (mod 33) = 24389 (mod 33) = 2 .

Таким образом, восстановлено исходное сообщение: C A B (3 1 2).

2.2.2. Безопасность и быстродействие криптосистемы RSA

Безопасность алгоритма RSA базируется на трудности решения задачи факторизации больших чисел, являющихся произведениями двух больших простых чисел. Действительно, криптостойкость алгоритма RSA определяется тем, что после формирования секретного ключа kB и открытого ключа K B «стираются» значения простых чисел Р и Q, и тогда исключительно трудно определить секретный ключ kB по открытому ключуКB, поскольку для этого необходимо решить

задачу нахождения делителей Р и Q модуля N.

Разложение величины N на простые множители Р и Q позволяет вычислить функциюj (N ) = (P -1)(Q -1) и затем определить сек-

ретное значение kB , используя уравнение

KB × kB º1(mod (j (N ))).

-63 -

Другим возможным способом криптоанализа алгоритмаRSA является непосредственное вычисление или подбор значения функции j(N )= (P -1)(Q -1). Если установлено значение j(N ), то сомножители Р и Q вычисляются достаточно просто. В самом деле, пусть

x = P + Q = N +1-j(N ),

y = (P - Q)2 = P( + Q)2 - 4 × N.

Зная j(N ), можно определить х и затем у; зная х и у, можно определить числа Р и из следующих соотношений:

P = 1

(x + y ),

Q = 1

(x - y ).

2

 

2

 

Однако эта атака не проще задачи факторизации модуля N.

Задача факторизации является трудно разрешимой задачей для больших значений модуля N.

Сначала авторы алгоритма RSA предлагали для вычисления модуля N выбирать простые числа Р и Q случайным образом, по 50 десятичных разрядов каждое. Считалось, что такие большие числаN очень трудно разложить на простые множители. Один из авторов алгоритма RSA, Р. Райвест, полагал, что разложение на простые множители числа из почти 130 десятичных цифр, приведенного в их публикации, потребует более 40 квадриллионов лет машинного времени. Однако этот прогноз не оправдался из-за сравнительно быстрого прогресса компьютеров и их вычислительной мощности, а также улучшения алгоритмов факторизации.

Один из наиболее быстрых алгоритмов, известных в настоящее время, алгоритм NFS (Number Field Sieve) может выполнить факторизацию большого числа N (с числом десятичных разрядов больше 120) за число шагов, оцениваемых величиной

æ

ö1/ 3æ

æ

öö

2 / 3

e2è Innø

è Inè

Innøø.

ç

÷

ç

ç

÷÷

 

В 1994 г. было факторизовано число со 129 десятичными цифрами. Это удалось осуществить математикам А. Ленстра и М. Манасси посредством организации распределенных вычислений на1600 компьютерах, объединенных сетью, в течение восьми месяцев. По мнению

- 64 -

А.Ленстра и М.Манасси, их работа компрометирует криптосистемы RSA и создает большую угрозу их дальнейшим применениям. Теперь разработчикам криптоалгоритмов с открытым ключом на базеRSA приходится избегать применения чисел длиной менее200 десятичных разрядов. Самые последние публикации предлагают применять для этого числа длиной не менее 250 - 300 десятичных разрядов.

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

Таблица 2.1 Оценки длин ключей для асимметричных криптосистем, бит

Год

Отдельные

Корпорации

Государственные

 

пользователи

 

организации

1995

768

1280

1536

2000

1024

1280

1536

2005

1280

1536

2048

2010

1280

1536

2048

2015

1536

2048

2048

Криптосистемы RSA реализуются как аппаратным, так и программным путем.

Для аппаратной реализации операций зашифрования и -рас шифрования RSA разработаны специальные процессоры. Эти процессоры, реализованные на сверхбольших интегральных схемах(СБИС), позволяют выполнять операции RSA, связанные с возведением больших чисел в колоссально большую степень по модулюN, за относительно короткое время. И все же аппаратная реализация RSA пример-

но в 1000 раз медленнее аппаратной реализации симметричного криптоалгоритма DES.

Одна из самых быстрых аппаратных реализацийRSA с модулем 512 бит на сверхбольшой интегральной схеме имеет быстродейст-

- 65 -

вие 64 Кбит/с. Лучшими из серийно выпускаемых СБИС являются процессоры фирмы CYLINK, выполняющие 1024-битовое шифрова-

ние RSA.

Программная реализация RSA примерно в 100 раз медленнее программной реализации DES. С развитием технологии эти оценки могут несколько изменяться, но асимметричная криптосистема RSA никогда не достигнет быстродействия симметричных криптосистем.

Следует отметить, что малое быстродействие криптосистем RSA ограничивает область их применения, но не перечеркивает их ценность.

2.3. Схема шифрования Полига-Хеллмана

Схема шифрования Полига-Хеллмана сходна со схемой шифрования RSA. Она представляет собой несимметричный алгоритм, поскольку используются различные ключи для шифрования и расшифрования. В то же время эту схему нельзя отнести к классу криптосистем с открытым ключом, так как ключи шифрования и расшифрования легко выводятся один из другого. Оба ключа (шифрования и расшифрования) нужно держать в секрете.

Аналогично схеме RSA криптограмма С и открытый текстР определяются из соотношений:

C = Pe modn,

P = C d mod n,

где e × d º1 (по модулю некоторого составного числа).

В отличие от алгоритма RSA в этой схеме число n не определяется через два больших простых числа; число n должно оставаться частью секретного ключа. Если кто-либо узнает значения е и n, он сможет вычислить значение d.

Не зная значений е или d, противник будет вынужден вычислять значение

e = log p C(mod n).

Известно, что это является трудной задачей.

Схема шифрования Полига-Хеллмана запатентована в США и Канаде.

2.4. Схема шифрования Эль Гамаля

Схема Эль Гамаля, предложенная в 1985 г., может быть использована как для шифрования, так и для цифровых подписей. Безо-

- 66 -

пасность схемы Эль Гамаля обусловлена сложностью вычисления дискретных логарифмов в конечном поле.

Для того чтобы генерировать пару ключей(открытый ключ - секретный ключ), сначала выбирают некоторое большое простое число Р и большое целое число G, причем G < Р. Числа Р и G могут быть распространены среди группы пользователей.

Затем выбирают случайное целое число X, причем Х<Р. Число Х является секретным ключом и должно храниться в секрете.

Далее вычисляют Y = G X mod P . Число Y является открытым ключом.

Для того чтобы зашифровать сообщениеМ, выбирают случайное целое число К, 1<К<Р -1, такое, что числа К и (Р-1) являются взаимно простыми.

Затем вычисляют числа

a = GK mod P,

b = Y K M mod P.

Пара чисел (а,b) является шифртекстом. Заметим, что длина шифртекста вдвое больше длины исходного открытого текста М.

Для того чтобы расшифровать шифртекст (а,b), вычисляют

M = b / ax mod P.

(*)

Поскольку

ax º GKX mod P.

b / ax º Y K M / ax º GKX M / GKX º M (mod P),

то соотношение (*) справедливо.

Пример. Выберем Р=11, G=2, секретный ключ X=8. Вычисляем

Y = G K mod P = 28 mod11 = 256 mod11 = 3.

Итак, открытый ключ Y = 3.

Пусть сообщение М=5. Выберем некоторое случайное число К=9. Убедимся, что НОД (К, Р-1)=1. Действительно, НОД (9,10)=1. Вычисляем пару чисел а и b:

a= GK mod P = 29 mod11 = 512mod11 = 6,

-67 -

b = Y K M mod P = 39 × mod11 =19683×5 mod11 = 9.

Получим шифртекст (a,b)= (6,9).

Выполним расшифрование этого шифртекста. Вычисляем сообщение М, используя секретный ключ X:

M = b / a X mod P = 9 / б8 mod11.

Выражение M = 9 / б8 mod11 можно представить в виде

68 ×M º 9 mod11

или

1679616× M º 9 mod11.

Решая данное сравнение, находим М = 5.

В реальных схемах шифрования необходимо использовать в качестве модуля Р большое целое простое число, имеющее в двоичном представлении длину 512... 1024 бит.

При программной реализации схемы Эль Гамаля скорость ее работы (на SPARC-II) в режимах шифрования и расшифрования при 160-битовом показателе степени для различных длин модуляР определяется значениями, приведенными в табл.2.2.

Скорости работы схемы Эль Гамаля

Таблица 2.2

 

 

Режим работы

 

Длина модуля, бит

512

 

768

 

1024

Шифрование

0,33с

 

0,80с

 

1,09с

Расшифрование

0,24с

 

0,58с

 

0,77с

 

 

 

 

 

 

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

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

Однако алгоритмы, лежащие в основе криптосистем с открытым ключом, имеют следующие недостатки:

- 68 -

генерация новых секретных и открытых ключей основана на генерации новых больших простых чисел, а проверка простоты чисел занимает многопроцессорного времени;

процедуры шифрования и расшифрования, связанные с возведением в степень многозначного числа, достаточно громоздки.

Поэтому быстродействие криптосистем с открытым ключом обычно в сотни и более раз меньше быстродействия симметричных криптосистем с секретным ключом.

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

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

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

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

ричный ключ, называемый в этом методе сеансовым ключом KS .

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

3.Зашифровать сеансовый ключ kS на открытом ключе kB пользова-

теля В.

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

Действия пользователя В при получении зашифрованного сообщения

изашифрованного сеансового ключа должны быть обратными:

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

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

-69 -

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

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

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

Таблица 2.3

Длины ключей для симметричных и асимметричных криптосистем при одинаковой их криптостойкости

Длина ключей симметричной

Длина ключей асимметричной крип-

криптосистемы, бит

тосистемы, бит

56

384

64

512

80

768

112

1792

128

2304

Комбинированный метод допускает возможность выполнения процедуры аутентификации, т.е. проверки подлинности передаваемого сообщения. Для этого пользователь А на основе функции хэширования

сообщения и своего секретного ключа kA с помощью известного алгоритма электронной цифровой подписи(ЭЦП) генерирует свою подпись и записывает ее, например, в конец передаваемого файла.

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

- 70 -

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