Главная страница
Навигация по странице:

  • 6.1. Основные понятия

  • 6.2. Доказательства с нулевым разглашением

  • 6.2.1. Пещера нулевого знания

  • 6.2.2. Протокол Фиата

  • 6.2.3. Протокол Фейга –Фиата –Шамира

  • 6.3. Протоколы подбрасывания монеты

  • Протокол подбрасывания монеты (схема Блюма

  • Иванов М.А. КМЗИ сети. Криптографические методы защиты информации


    Скачать 3.04 Mb.
    НазваниеКриптографические методы защиты информации
    АнкорИванов М.А. КМЗИ сети.pdf
    Дата18.02.2018
    Размер3.04 Mb.
    Формат файлаpdf
    Имя файлаИванов М.А. КМЗИ сети.pdf
    ТипУчебное пособие
    #15674
    страница9 из 20
    1   ...   5   6   7   8   9   10   11   12   ...   20
    ГЛАВА 6. КРИПТОГРАФИЧЕСКИЕ ПРОТОКОЛЫ
    Успешное решение задачи открытого распределения ключей, создание практических схем цифровой подписи способствовали возникновению нового направления криптографии – теории
    криптографических протоколов. Для современных информаци- онных систем характерен перевод всего документооборота в электронную форму. Возникающие при этом проблемы чаще всего могут быть решены только с использованием возможно- стей криптографии. Типичный пример: взаимодействуют два удаленных абонента А (клиент банка) и В (банк). Абонент А хо- чет доказать абоненту В, что он тот, за кого себя выдает, а не злоумышленник. Для решения этой задачи требуется протокол
    аутентификации абонента. В каждом конкретном случае для решения некой задачи, связанной с обеспечением безопасности пересылаемых электронных документов, требуется использова- ние соответствующих криптографических протоколов, которые за последние годы превратились в основной объект исследова- ний криптографии. Материал данной главы в значительной сте- пени основывается на работе [4].
    6.1. Основные понятия
    Объект изучения теории криптографических протоколов – удаленные абоненты, взаимодействующие по открытым каналам связи. Цель взаимодействия – решение какой-либо практической задачи. Модель предусматривает наличие противника, пресле- дующего собственные цели. Противник может выдавать себя за законного субъекта взаимодействия, вмешиваться в информаци- онный обмен между абонентами и т.п. Участники протокола в общем случае не доверяют друг другу, иначе говоря, некоторые протоколы должны быть рассчитаны на ситуацию, когда про- тивником может оказаться даже один из абонентов или несколь- ко абонентов, вступивших в сговор. В настоящее время известно несколько десятков различных типов протоколов. Все эти типы можно разделить на две группы:

    181 1)
    прикладные протоколы, решающие конкретную задачу, которая может возникнуть на практике;
    2)
    примитивные протоколы, используемые в качестве свое- образных строительных блоков при создании приклад- ных протоколов.
    Протокол чаще всего интерактивен, т.е. предусматривает многораундовый обмен сообщениями между участниками, и включает в себя:
    распределенный алгоритм, т.е. описание характера и после- довательности действий каждого из участников;
    спецификацию форматов пересылаемых сообщений;
    спецификацию синхронизации действий участников;
    описание действий при возникновении сбоев [4].
    6.2. Доказательства с нулевым разглашением
    Существенное влияние на разработку многих криптографи- ческих протоколов оказали исследования двух математических моделей – интерактивной системы доказательств (Interactive
    Proof System) и доказательств с нулевым разглашением знаний
    (Zero-Knowledge Proofs).
    Интерактивная система доказательств суть протокол (P, V, S) взаимодействия двух субъектов: доказывающего (претендента) P и проверяющего (верификатора) V. Абонент P хочет доказать V, что утверждение S истинно. При этом считается, что абонент V самостоятельно проверить утверждение S не в состоянии, что абонент V не может быть противником, а абонент P может быть противником, пытающимся доказать истинность ложного утвер- ждения S. Протокол, состоящий из некоторого числа раундов обмена сообщениями между P и V, должен удовлетворять двум условиям:
    1)
    полнота – если S действительно истинно, то доказываю- щий убедит проверяющего признать это;
    2)
    корректность – если S ложно, то доказывающий не смо- жет убедить проверяющего в обратном.

    182
    Если предположить, что V может быть противником, который хочет получить информацию об утверждении S, необходим про- токол (P, V, S), называемый доказательством с нулевым разгла- шением, удовлетворяющий, помимо перечисленных, еще и сле- дующему условию:
    3)
    нулевое разглашение – в результате работы протокола абонент V не увеличит своих знаний об утверждении S.
    Иными словами, в результате реализации протокола абонент
    P сможет доказать абоненту V, что он владеет некоторой секрет- ной информацией, не разглашая ее сути.
    Упрощенно процедуру доказательства с нулевым разглаше- нием можно представить следующим образом. Проверяющий задает серию случайных вопросов, каждый из которых допуска- ет ответ «да» или «нет». После первого вопроса проверяющий убеждается в том, что доказывающий заблуждается с вероятно- стью 1/2. После второго вопроса проверяющий убеждается в том, что доказывающий заблуждается с вероятностью 1/4 и т.д.
    (после каждого вопроса знаменатель удваивается). После 100 вопросов вероятность того, что доказывающий заблуждается или не располагает доказательством (не владеет секретной информа- цией), становится настолько близкой к нулю, что даже у самого
    «недоверчивого» проверяющего не должно остаться сомнений в справедливости доказываемого утверждения. После 300 вопро- сов знаменатель достигает величины, которая превосходит число атомов во Вселенной.
    Роль доказательств с нулевым разглашением особенно велика при реализации протоколов аутентификации. Пусть, например,
    Р – алгоритм, реализованный в интеллектуальной карточке кли- ента (абонент А)банка; V – программа, выполняемая компьюте- ром банка (абонент В). Перед выполнением любой операции банк должен убедиться в подлинности карточки и идентифици- ровать ее владельца. Если для этой цели использовать протокол
    (P, V, S), свойство полноты позволит карточке доказать свою
    аутентичность; свойство корректности защитит интересы банка от злоумышленника, который попытается воспользоваться

    183 фальшивой карточкой; свойство нулевого разглашения защитит клиента от злоумышленника, который попытается пройти аутен- тификацию под именем абонента А, воспользовавшись инфор- мацией, перехваченной во время предыдущих раундов аутенти- фикационного обмена. Аналогичных результатов можно добить- ся, используя протоколы доказательств с нулевым разглашением для создания не поддающихся подделке удостоверений лично- сти, как для военных так и гражданских целей [4].
    6.2.1. Пещера нулевого знания
    На рис. 6.1 показана физическая реализация протокола дока- зательства с нулевым разглашением с помощью так называемой
    «пещеры нулевого знания» [32]. В пещере имеется дверь Д, от которой у участника протокола P (доказывающего) есть секрет- ный ключ. P хочет доказать другому участнику протокола V
    (проверяющему) свою способность проходить через дверь (на- личие секретного ключа), не демонстрируя сам факт прохожде- ния через дверь. Показаны две итерации протокола.
    Работу генератора ПСЧ в этой реализации имитирует проце- дура подбрасывания монеты, которую на определенных шагах протокола выполняют обе стороны.
    6.2.2. Протокол ФиатаШамира
    Примером протокола доказательства с нулевым разглашением может являться схема Фиата–Шамира, показанная на рис. 6.2.
    Доверенный третий участник протокола выбирает два больших простых числа p и q, затем вычисляет n = pq. Величина n откры- то публикуется. Абонент A выбирает случайное число
    n
    Z
    s
    , вычисляет
    n
    s mod
    2
    . А хранит s в качестве своего секретного ключа и объявляет
    ν
    своим открытым ключом.

    184
    P
    V
    А
    Д
    В
    С
    D' D''
    V
    Д
    P
    Д
    V
    Д
    P
    V
    P
    R
    A
    = 0
    R
    B
    = 0
    Исходная ситуация:
    доказывающий P и проверяющий V
    находятся в точке А
    Итерация 1, шаг 1:
    доказывающий P спускается в пещеру;
    дойдя до точки С, подбрасывает монету;
    исход R
    A
    = 0, поэтому Р поворачивает налево и спускается в точку D';
    V не видит, куда повернул Р
    Итерация 1, шаг 2:
    V спускается в точку В;
    V не видит, где находится Р
    Итерация 1, шаг 3:
    V подбрасывает монету; исход R
    B
    = 0,
    поэтому V просит Р выйти из пещеры слева, Р из точки D' возвращается в точку
    В, не пройдя через дверь Д
    Рис. 6.1. Пещера нулевого знания (начало)

    185
    P
    V
    Д
    V
    Д
    P
    Д
    V
    Д
    P
    V
    P
    R
    A
    = 1
    R
    B
    = 1
    Итерация 2, шаг 4:
    P и V возвращаются в исходную ситуацию

    в точку А
    Итерация 3, шаг 1:
    доказывающий P спускается в пещеру;
    дойдя до точки С, подбрасывает монету;
    исход R
    A
    = 1, поэтому Р поворачивает направо и спускается в точку D'';
    V не видит, куда повернул Р
    Итерация 3, шаг 2:
    V спускается в точку В;
    V не видит, где находится Р
    Итерация 3, шаг 3:
    V подбрасывает монету; исход R
    B
    = 1,
    поэтому V просит Р выйти из пещеры справа, Р из точки D’’ возвращается в точку В, не пройдя через дверь Д
    Итерация 3, шаг 4:
    P и V возвращаются в исходную ситуацию - в точку А
    Результат:
    С вероятностью 7/8 можно утверждать,
    что P владеет секретом прохождения через дверь Д
    Рис. 6.1. Пещера нулевого знания (окончание)

    186
    A
    B
    y
    A
    = (x
    A
    )
    2
    mod n
    y
    A
    6 2
    1
    b
    3
    y
    A
    ' = x
    A
    s
    b
    mod n
    4
    y
    A
    '
    5
    Сравнение
    (y
    A
    ')
    2
    mod n и y
    A
    ν
    2
    mod n
    Доказательство принимается или отвергается
    s

    закрытый ключ А
    x
    A
    – случайное число
    ν, n

    открытый ключ А,
    b

    случайный бит
    Рис. 6.2. Протокол Фиата–Шамира
    Протокол включает шесть шагов:
    1)
    абонент A выбирает случайное число x
    A
    ; А вычисляет
    n
    x
    y
    A
    A
    mod
    2
    ;
    2)
    А посылает y
    A абоненту В;
    3)
    абонент В, проверяющий, посылает А в качестве запроса случайный бит
    1
    ,
    0
    b
    ;
    4)
    абонент А вычисляет ответ
    b
    A
    A
    s
    x
    '
    y
    ;
    5)
    А посылает ответ В, чтобы доказать, что он знает свой секретный ключ s;
    6)
    абонент В вычисляет
    2
    '
    y
    A
    и
    b
    A
    y
    . Если эти два числа сравнимы по модулю n, то либо абонент А знает число s, либо вычислил значение y каким-либо другим способом.
    Доказательство этого факта элементарно:
    b
    A
    b
    A
    b
    A
    A
    y
    s
    x
    s
    x
    '
    y
    2 2
    2 2
    Эти шесть шагов образуют один раунд. Проверка осуществ- ляется несколько раз с выбираемыми случайно значениями b.

    187
    Доказывающая сторона должна успешно пройти проверку в ка- ждом раунде, чтобы быть аутентифицированной. Если в каком- то раунде проверка завершилась отрицательным результатом, процесс аутентификации прерывается.
    Если А знает s, он пройдет проверку во всех раундах. Если А не является тем, за кого он себя выдает, т.е. не знает s, он может попытаться пройти раундовую проверку, правильно предсказав величину b. При этом возможны две ситуации:
    1) А предполагает, что b будет равно 1. А вычисляет
    /
    2
    A
    A
    x
    y
    и посылает y
    A
    абоненту В.
    Если предположение А оказывается правильным, он посыла- ет на шаге 3
    A
    A
    x
    '
    y
    в качестве ответа. Видно, что А пройдет проверку, так как
    b
    A
    A
    y
    '
    y
    2
    Если А ошибся, значение
    '
    y
    A
    не пройдет проверку и В пре- рвет процесс аутентификации.
    2) А предполагает, что b будет равно 0. А вычисляет
    2
    A
    A
    x
    y
    и посылает y
    A
    абоненту В.
    Если предположение А оказывается правильным, он посыла- ет на шаге 3
    A
    A
    x
    '
    y
    в качестве ответа. Видно, что А пройдет проверку, так как
    b
    A
    A
    y
    '
    y
    2
    Если А ошибся, значение
    '
    y
    A
    не пройдет проверку и В пре- рвет процесс аутентификации.
    Таким образом, абонент, не знающий числа s, успешно прой- дет раундовую проверку с вероятностью 1/2. Если процесс по- вторяется 20 раз, вероятность успеха снижается до
    10 5
    ,
    9 2
    /
    1 7
    -
    20
    6.2.3. Протокол ФейгаФиатаШамира
    Особенностью данного протокола (рис. 6.3) является исполь- зование вектора секретных ключей, вектора открытых ключей и вектора запросов. Секретные ключи выбираются случайно, но при этом они должны быть взаимно простые с n. Открытые клю-

    188 чи выбираются таким образом, чтобы
    n
    s
    i
    i
    mod
    1
    -
    2
    i
    b на ша- ге 3 также выбираются случайно.
    Протокол основывается на справедливости равенства
    1 1
    1
    '
    2 1
    2 1
    2 2
    1 1
    2 1
    2 1
    2 1
    2 2
    2 2
    1 2
    1 2
    2 2
    2 1
    2 1
    2 1
    2 2
    2 2
    1 2
    2 1
    2
    A
    b
    b
    b
    A
    b
    m
    m
    b
    b
    A
    b
    m
    b
    m
    b
    b
    b
    b
    A
    b
    m
    b
    b
    b
    m
    b
    b
    A
    b
    m
    b
    b
    A
    y
    y
    s
    s
    s
    y
    s
    s
    s
    y
    s
    s
    s
    x
    v
    y
    m
    m
    m
    m
    m
    m
    m
    A
    B
    y
    A
    = x
    A
    2
    mod n
    y
    A
    6 2
    1
    [b
    1
    , b
    2
    , …, b
    m
    ]
    3
    y
    A
    ′ = (x
    A
    ×s
    1
    b1
    ×s
    2
    b2
    ×...×s
    m
    bm
    ) mod n
    4
    y
    A

    5
    Сравнение
    ((y
    A
    ′)
    2
    ×ν
    1
    b1
    ×ν
    2
    b2
    ×...×ν
    m
    bm
    ) mod n и y
    A
    Доказательство принимается или отвергается
    [s
    1
    , s
    2
    , …, s
    m
    ]

    закрытые ключи А
    x
    A
    – случайное число

    1
    , ν
    2
    , …, ν
    m
    ], n – открытые ключи А,
    [b
    1
    , b
    2
    , …, b
    m
    ] – случайные биты
    Рис. 6.3. Протокол Фейга–Фиата–Шамира
    6.3. Протоколы подбрасывания монеты
    Классическим примером задачи, решаемой двумя удаленными абонентами, является бросание жребия с помощью подбрасыва- ния монеты. Это необходимо сделать так, чтобы абонент А, подбрасывающий монету, не мог изменить результат после по- лучения догадки от абонента В, угадывающего этот результат.
    Протокол решения данной задачи называют протоколом под-
    брасывания монеты. Этот примитив (по сути, протокол генера-

    189 ции случайного бита) используют в своем составе многие при- кладные протоколы.
    Примером такого протокола является схема БлюмаМикали, предполагающая наличие у двух его участников односторонней функции
    ,
    :
    Y
    X
    F
    удовлетворяющая следующим требованиям:
    Xконечное множество целых чисел, содержащее одинако- вое количество четных и нечетных чисел; любые числа
    ,
    ,
    2 1
    X
    x
    x
    такие, что
    ,
    2 1
    x
    F
    x
    F
    имеют одинаковую четность; по заданному значению F(x) невозможно определить чет- ность аргумента x.
    Протокол подбрасывания монеты (схема БлюмаМикали)
    1.
    Абонент А выбирает случайное число
    X
    x
    A
    (подбрасы- вает монету), вычисляет
    A
    A
    x
    F
    y
    и посылает
    A
    y або- ненту В.
    2.
    Абонент В, получив
    ,
    A
    y
    пытается угадать четность
    A
    x и посылает свою догадку А.
    3.
    Абонент А, получив догадку от В, сообщает последнему, угадал ли он, посылая ему выбранное число
    A
    x .
    4.
    Абонент В, получив
    ,
    A
    x
    проверяет, не обманывает ли А, вычисляя значение
    A
    x
    F
    и сравнивая его с полученным на втором шаге значением
    A
    y .
    Суть протокола состоит в том, что абонент А связывает себя с числом
    ,
    A
    x
    так как он сообщает абоненту В значение
    ,
    A
    A
    x
    F
    y
    однако абонент В не может самостоятельно вычис- лить
    ,
    A
    x
    так как
    x
    F
    является односторонней функцией.
    Следующий протокол подбрасывания монеты (рис. 6.4) осно- ван на предположении о вычислительной неразрешимости зада- чи дискретного логарифмирования. Пусть p и q – простые числа, причем q делит p – 1. Найдем такое
    p
    Z
    g
    , что
    1
    ,
    mod
    1
    g
    p
    g
    q

    190
    A
    B
    y
    A
    = g
    mod p
    y
    A
    7 2
    1
    Проверка равенства
    y
    B
    = y
    A
    b
    g
    mod p
    При положительном исходе результат c = a
    b
    x
    A
    – случайное число,
    a – случайный бит
    x
    В
    – случайное число,
    b – случайный бит
    x
    A
    y
    B
    = y
    A
    b
    g
    mod p
    3
    y
    B
    4
    x
    B
    a
    5
    b, x
    B
    6
    x
    B
    Рис. 6.4. Протокол подбрасывания монеты
    1   ...   5   6   7   8   9   10   11   12   ...   20


    написать администратору сайта