Скачиваний:
93
Добавлен:
18.10.2019
Размер:
14.08 Mб
Скачать

1. Базовые криптографические протоколы

49

его для проверяющего V (Т. е. из информации, полученной V, ему вычислительно невозможно получить секретный ключ Р).

Все протоколы имеют два этапа: предварительный и рабочий. На предварительном, который выполняется однократно, специфициру­ ются некоторые параметры и вырабатываются величины, участ­ вующие в рабочем этапе протокола (в частности, открытые и сек­ ретные ключи Р). На рабочем этапе собственно выполняется доказа­ тельство аутентичности Р.

1. Протоколы Файге - Фиата - Шамира. Это первый из пред­ ложенных протоколов,аутентификации, основанный на доказатель­ ствах с нулевым разглашением знания. Основой для него послужила схема аутентификации и цифровой подписи Фиата и Шамира

(А. Fiat и А. Shamir, 1986).

Первоначально авторами был предложен протокол, показанный в табл. 1.20.

Таблица 1.20. Протокол аутентификации Фиата - Шамира

Предварительный этап

 

 

р

 

 

 

Центр довеоия

 

V

 

 

 

 

 

 

 

 

s: (s,n)

=1,1::; s::; я -1,

р,q -

большие простые числа,

 

v =i(mod n)

п =pq

 

 

 

 

11,

У

 

 

 

 

 

 

 

 

 

 

 

 

 

Рабочий этап

 

 

 

 

 

 

 

 

 

 

 

 

 

 

р

 

 

 

 

 

V

 

 

 

 

 

 

 

 

1

r -

случайное число,

 

 

 

 

 

 

 

 

1:5:

r :5: п- 1, х =у2 mod п

 

7

 

 

 

 

2

 

 

 

 

f--

 

е Е {О, 1} - случайное число

3

у =r.st! (mod n)

 

 

7

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

Если (у == О), отклоняет доказательст-

 

 

 

 

 

 

 

во, так как r =о.

в противном случае

 

 

 

 

 

 

 

.)

 

 

 

 

 

 

 

 

 

у2 ~Х. уе (mod n)

 

 

 

 

 

 

 

 

 

 

 

 

На предварительном этапе центр доверия выбирает два больших простых числа р, q (которые он держит в секрете) и публикует большое число п Е Z : п = ра, п ~ 512 бит (рекомендуется п - 1024 бита; для упрощения вычислений, но не для повышения безопасно­ сти рекомендуется выбирать n = (4p+3)(4q+3) - число Блюма). Да­ лее сторона, которая будет выполнять в протоколе аутентификации

50 Запечников С. В. Криптографические протоколы 11их примененив

роль претендента, выбирает свой секретный ключ s, причем такой,

что выполнены следующие условия: {з.п] =1, 1:::; s:::; 11-1. Открытый

ключ v = i(mod n). в конце предварительного этапа всем сторонам

становятся известны величины: n - модуль схемы и v - открытый ключ Р.

Рабочий этап протокола состоит в следующем. В цикле выпол­ няются следующие действия (смысл цикла будет пояснен ниже; в табл. 1.20 показано содержание одного цикла):

1) Р выбирает случайное число J". r < п, вычисляетх =J.2 mod n и отправляет его проверяющему У;

2)V вырабатывает случайный бит еЕ {о,!} и посылает его Р;

3)если е =О, Р отправляет V число r, в противном случае (е =1) он отправляет число у = rs(mod 11);

4) V проверяет, что у:/; о (если у = О, доказательство должно быть недействительно из-за того, что r = О); если это условие вы-

?

полнено, то проверяется равенство / ~х-V C (mod п) И В случае его

выполнения доказательство проверяющим принимается,

Действия (1) - (4) повторяются в цикле t раз. Вероятность обма­ на претендентом проверяющего (Т. е. вероятность принятия прове­ ряющим ошибочного решения) при однократном выпопнении дей­ ствий (1) - (4) равна 1/2, соответственно при выполнении цикла t раз вероятность равна 1/2'. Число t называют параметром безопасности протокола, его рекомендуется выбирать равным 20 ...40. Считается, что р прошел аутентификацию, если проверка сравнения на шаге (4)

во всех t циклах завершилась с положительным результатом. Рассмотрим подробнее структуру этого протокола. Запрос е на

шаге (2) требует, чтобы Р был способен ответить на два вопроса: один из них нужен для того, чтобы продемонстрировать знание в, другой - чтобы предотвратить обман честного претендента нечест­ ным проверяющим. Соответственно запросу претендент отвечает на шаге (3) либо у =r, либо у =J'S (mod 11). Ни тот ни другой ответ не несет никакой информации об s: в первом случае он от s вообще не зависит, во втором - замаскирован случайной величиной r, которая известна только Р, так как на шаге (1) тоже была замаскирована при помощи однонаправленной функции.

Противник, пытающийся деперсонифицировать Р, может стре­ миться обмануть проверяющего, выбрав произвольное r, вычислив

 

J. Базовые криптографические протоколы.

51

х = -r 2

(mod n) И ответив у :::: r при е = 1, но не сможет ответить при

V

 

 

е = О, так как это требует знания j; (mod n) .

Противник, выступающий в роли проверяющего, может смоде­ лировать пары сообщений (х,у) самостоятельно. Действительно, можно выбирать случайные у, задаваться случайными битами е ::::

:::: {О/1} и вычислять в зависимости от этого х::: / (mod 11) либо

2

x:::L(modn). Распределение вероятностей пар (х,у) не будет отли-

V

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

Позднее те же авторы усовершенствовали протокол (табл. 1.21),

показав, что параллельная конструкция протокола уменьшает число раундов обмена между Р и V при сохранении свойства нулевого раз­

глашения знания.

Таблица 1.21. Протокол аутентификации Файге - Фиата - Шамира

Предварительный этап

 

 

 

 

 

 

р

 

 

 

 

 

 

 

Центр доверия

 

 

V

 

 

($;,n) =1, 1:$ s:$1l-1,

 

 

 

 

 

 

 

 

$j:

 

 

 

 

p,q

- большие про-

 

 

 

2

(mod 11),

V ::: (\1(, V2, •.. , Vk),

стые числа,

 

 

 

 

Vj = Sj

11

=pq

 

 

 

 

 

S

= (SI.

S2 • . ..

, S.()

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

п, V(, V2• ••• •

Vk

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рабочий этап

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

р

 

 

 

 

 

 

 

 

 

 

V

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

for (! ;:; 1,2, ... ,t)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

rj - случайное число, rj<l1,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Х;::: r/ mod п

 

 

 

 

-7

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

f-

(ен, е;2.. .

. ejJ:) Е {О,]/

- случайное

 

 

 

 

 

 

 

 

 

 

 

число

 

 

 

 

 

 

3

 

-

(,";1

е;2

е,! ) (

то

d)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Yi -

'i SI

S2

•.. 5"

n

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

1

У;2 (

С;[

 

ей ) (

тоd)

 

 

 

 

 

 

 

 

 

 

 

Х

1'/1

 

 

 

 

 

 

 

 

 

 

 

; =

 

 

V1

V2

•. .V"

 

11

52

Занечников С. В. Криптографические протоколы 11их примененив

Число n выбирается, как и в предыдущем случае. Далее Р выби­

рает свой секретный ключ в виде набора k различных чисел {s.}~ ,

 

 

 

I 1=\

где каждое Sj: (Sj,ll) = 1, 1::; s::; п -1. Строка { v.

k

2

} .

,где V; = в,

(mod n),

1

1=1

1

 

принимается в качестве открытого ключа Р.

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

1)Р выбирает случайное число Г, 1'<П, вычисляет х = 1..2(mod n)

иотправляет его проверяющему V;

2)V вырабатывает случайную двоичную строку {eJ:=I' е; Е {ол},

ипосылает ее Р;

k

3) Р вычисляет у = J-' Пs:i, перемножая только те Sj, которыесо­

i=1

ответствуют единичным битам вектора е, и посылает у проверяю­

щему;

k

4) Vпроверяет, что х = у2.ПV;('/ .

i=l

В данном протоколе вероятность ошибки проверяющего в t про- ходах цикла равна 1I2 Kt Авторы протокола рекомендовали выби­ рать k = 5, t = 4.

Стойкость протокола Фиата - Шамира основана на сложности

извлечения квадратного корня по модулю п, когда неизвестно раз­

ложение п на множители.

2. Протокол Guillou - Quisquater. Пусть /р - строка идентифи­ кационной информации о клиенте Р (табл. 1.22), включающая, на­ пример, его имя, срок полномочий, номер банковского счета и т. п. J = Н(1р), где Н - хеш-функция, либо просто J = - это верительная грамота (credentials) Р. Эта информация служит открытым ключом Р. Центр доверия вырабатывает и публикует число п =pq, где р, q- большие простые числа (секретные),и число V, определяемое из срав­ нения JBv == l(modn), гдеВ - секретный ключ Р.

 

 

 

J. Базовые криптографическиепротоколы

./,1

 

 

 

 

53

 

Таблица 1.22. Протокол аутентификации Guillou - Quisquater

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Предварительныйэтан

 

 

 

р

 

Центр доверия

 

V

 

 

 

 

 

 

 

 

 

 

p,q - простые числа, 11 :;; pq,

 

 

 

ь.в.:

 

lp, ]

:;; Н(/р), ]Bv s l(modll)

 

 

 

 

 

 

 

 

 

 

 

 

 

11,

]

 

 

 

 

 

 

 

 

 

 

 

 

 

Рабочий этап

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

р

 

 

 

V

 

 

 

 

 

 

 

 

 

 

 

1

r - случайное l.Jисло,

-7

 

 

 

 

 

,. Е (l;п-l),Т=J.I'mоdll

 

 

 

 

2

 

 

 

 

 

d - случайное число, d

Е (О;v - 1)

 

 

 

 

 

 

~

 

 

 

 

 

 

 

 

 

 

 

 

 

3

D :;;

rвzt l110d п

 

-7

 

 

 

 

4

 

 

 

 

 

.)

 

 

 

 

 

 

 

 

т'~ DV р' тпоёл, T~T'(modll)

 

 

 

 

 

 

 

 

 

 

 

Перед началом протокола V считывает у клиента Р строку J. Ра­ бочий этап протокола состоит из следующих шагов:

1) Р выбирает случайное число з; 1<r<n-l, вычисляетТ = r" mod

пи отправляет его V;

2)V выбирает случайное число d Е Z, d < О < v -1 , и посыпает его Р;

3)Р вычисляет D = rE(1 mod п и посылает его V;

4)V вычисляет Т' = DV/ mod п. Аутентификациясчитаетсяза­

вершившейсяуспешно, если Т==. т' (mod n), так как

т' = Dv;r' = (rBd)Vfl:::: rVB(fv/:::: rV(JBvyf:::: rV==. T(modn).

Знание двух ответов D} и D2 на два различных запроса d\ и d2 при одинаковом Тэквивалентно знанию Bk, где k :::: над (v, d2 - dt ).

Корректность протокола доказывается следующим образом.

Пусть d l , d2

-

два запроса к Р, посылаемые V на шаге (2) протокола,

такие

что

O:5.d\<d2<v . D 1, D2 -

соответствующие им ответы:

D,V]dt

== n;]d1

==. Т (mod n). Тогда:

 

 

 

 

(~:JJd,-d,

=l(modll).

Как известно, для любой пары положительных целых чисел уравнение ах-Ьу = ± над(х,у) всегда имеет решение, О<а<у,

S4 Запечников С. В. Криптографические протоколы u ,а применекие

О<Ь<х; а и Ь можно вычислить, используя расширенный алгоритм Евклида. Заменяя х на (d2-d1) , а у на v, получаем a(drdl)-bv = ± 1, так как (v, d2-d\) = 1.

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

(~:ТJ"(d,-d,) =( ~:ТJ±I+bv =l(modn),

[J±I( ~:JJb J=l(modn).

Но, поскольку В по условиям протокола является решением

уравненияJв'=[(тодп),ТО в"=(~:Jь(тодI!) .

Отсюда видно, что противник может легко вычислить секретный ключ В абонента Р. Следовательно, Р всякий раз должен выбирать

числа r, не повторяющиеся с предыдущими.

3. Протокол Шнорра и основанные на нем ltроmОКОЛbl. Схема, предложенная Шнорром (С. Sсhnоп, 1989), основана на сложности задачи дискретного логарифмирования (табл. 1.23).

Таблица 23. Протокол аутентификации Шиорра

Предварительный эта"

 

р

 

Центр доверия

V

 

 

 

 

 

 

SE R {l, ...,q-l},

р, q - простые числа, qlp-l,

 

v=a'{ modp

а Е Zp:a Q

:=:: l(mOdp)

 

 

 

 

 

 

 

 

p,q,a, v

 

 

 

 

 

 

 

 

Рабочий этан

 

 

р

 

 

 

 

V

 

 

 

 

 

 

1

r Е {l,...,q -l},

 

 

 

 

 

 

х = armodp

 

7

 

 

 

 

 

 

 

 

 

2

 

 

~

 

е Е {O, ...,2t - 1}

_ случайное число

 

 

 

 

 

 

 

3

у::; r+se mod а

 

7

 

 

 

4

 

 

 

 

q

 

 

 

 

 

x=aYvf' modp

 

 

 

 

 

 

 

 

 

 

 

 

 

 

J. Базовые криптографические протоколы

55

Центр доверия выбирает и открыто публикует два простых чис­ ла р и q: qlp-1 - и число а ::;f: 1: а'} == 1(modp). Далее выбирается слу­ чайное число s<q, становящееся секретным ключом Р, и вычисляет­ ся v = а-в mod р - открытый ключ.

Протокол аутентификации состоит в следующем:

1) р выбирает случайное число r<q, вычисляет х = а' rnod р и посылает х проверяющему V (вычисления могут быть выполнены предварительно);

2) V вырабатывает случайное число е: О < е ~ 21 -1 и посылает егоР;

3)р вычисляет у = r+se (mod q) и посылает его V;

4)V проверяет, выполнено ли равенство х =aYv~ mod р.

Как видно, проверка аутентичности Р основана на том, что в вы­ числениях Р на шаге (3) участвует его секретный ключ s, который V получить не может вследствие вычислительной сложности задачи дискретного логарифмирования. Р считается прошедшим аутенти­ фикацию, если проверка сравнения на шаге (4) прошла с положи­

тельным результатом.

Безопасность протокола основана на величине параметра t. Ав­

торы указывают, что сложность вскрытия протокола составляет по­

рядка 21 операций, и рекомендуют выбирать р......512 бит, q-140 бит, t:= 72 битам. Свойство нулевого разглашения для схемы Шнорра

строго не доказано.

Брикелп и Мак-Карли (Brickell Е., McCurley К., 1990-1991)

предложили модификациюпротоколаШнорра (табл. 1.24).

Таблица 1.24. Протокол аутентификации Брикелла -

Мак-Карли

 

Предварительный эта"

 

 

 

 

 

р

Центр доверия

 

V

 

 

 

 

s<p - секретный

p,q, W - простые числа, ,

 

 

ключ,

qwlp-l;q2lp-l;q, w~ 2k

 

 

v: v =a's (mod р)

а.а" == 1(тод р)

 

 

 

 

 

 

 

 

 

р, а, v

 

 

 

56

Запечников С. В. Криптографическиепротоколы 11 их примененив

 

 

 

 

 

Окончание табл. 1.24

 

 

 

 

 

 

 

 

 

 

Рабочий этан

 

 

 

р

 

 

V

 

 

 

 

 

 

 

 

1

rE{I, ... ,p-l},

 

 

 

 

 

 

 

 

 

 

 

 

х = а' шоd р - случайное число

-7

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

~

еЕ {о,... ,2t } _ случайное

 

 

 

 

 

 

 

 

 

 

число

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

у = (r+se) mod(f)-l)

 

-7

 

 

 

4

 

 

 

'>

 

 

 

 

 

 

x=a"'vt' шоdр

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для этого протокола центр доверия выбирает простые числа

p,q, w : qwlp - 1;q2-

1;q, w ~ 2k , где k - параметр безопасности.

Числа q и w являются секретными, остальные - открытыми. Далее,

как и в предыдущем случае, Р выбирает случайный секретный ключ s<p и вычисляетоткрытыйключv = a-s mod р.

Рабочий этап протокола аутентификации выполняется следую­ щим образом:

1) р выбирает случайное число r<p, вычисляет х = ar mod р и посылает его проверяющему V (вычисления могут быть выполнены предварительно);

2) V вырабатывает случайное число е: О < е ~ 2' -1 , и пересьша-

етегоР; .

З) р вычисляет у = (r+se) mod (P-l) и пересылаетего Р; 4) V проверяет выполнение равенства х =a\'vc mod р.

Описанный протокол не имеет принципиальных отличий от исходного протокола Шнорра, поэтому дополнительных пояснений по нему, на наш взгляд, не требуется. Заметим только, что протокол

дополнительно усложняет задачу противника: он должен уметь уже не только решать задачу дискретного логарифмирования, но и зада­ чу факторизации числа (P-l).

Авторыпротоколарекомендуютвыбиратьk-140, р-512 бит. Все протоколы аутентификации, основанные на асимметричных

алгоритмах, обладают одним интересным свойством - они стан­ дартным образом могут быть преобразованы в схемы цифровой подписи. Для этого участник V заменяется однонаправленной хеш-

1. Базовые криптографические протоколы

57

функцией. Сообщение не хеширустся перед подписанием - вместо этого хеш-функция включается в сам алгоритм цифровой подписи.

Протоколы аутентификации и схемы цифровой подписи во мно­

гом аналогичны, но имеют и существенные различия, главные из ко­

торых заключаются в следующем:

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

впротоколах аутентификации проверка и принятие решений

происходят немедленно, в режиме реального времени;

содержание сообщений, подписываемых цифровой подписью, может быть произвольным, в то время как в протоколах аутен­ тификации содержание всех передаваемых сообщенийфиксиро­

ванно;

наконец, цифровая подпись служит для аутентификации сооб­ щений, в то время как основная цель протокола аутентифика­ ции - аутентификация субъекта компьютерной системы (чаще всего это пользователь, взаимодействующий с системой через некоторую совокупность аппаратно-программных средств).

1.5. Проблемы обеспечения конфиденциальности и аутентичности информации

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

конца разрешенными.

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

ется сравнительно низкой скоростью их работы (как правило, на

58

Запечкиков С. В. Криптографические протоколы 11 IIX примененив

много порядков ниже, чем у симметричных). По этой причине ос­ новным средством обеспечения конфиденциальности сообщений достаточно большого объема и при интенсивном трафике были и ос­ таются симметричные алгоритмы шифрования.

Подлинность сообщений можно обеспечивать, используя коды

аугентификации сообщений (Message Authentication Codes - МАС)

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

печена только асимметричными криптосхемами, т. е. в данном слу­

чае схемами цифровой подписи, так как в любой схеме цифровой

подписи секретные ключи подписи имеют только одного владельца.

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

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

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

является подписание открытого текста документа: при этом он хо­ рошо осознает свои действия и психологически готов нести ответст­ венность за подписываемый документ. Далее подписанный доку­ мент при необходимости зашифровывается. Получатель обрабаты­ вает документ в обратном порядке: сначала расшифровывает, потом проверяет цифровую подпись. С технической точки зрения более надежным было бы, напротив, подписание уже полностью обрабо­ танного, в том числе зашифрованного, документа. При этом получа­ телем проверялась бы подлинность «окончательного» источника данных, т. е. если проверка цифровой подписи получателем даст от­ рицательный результат, это совершенно точно будет свидетельство­ вать о «внешней» ошибке либо злоумышленном воздействии на со-