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

  • 13.1. Полный перебор (Exhaustive Search)

  • 13.2. Атака Полига –Хеллмана (Pohlig –Hellman Attack)

  • 13.3. Алгоритм маленьких и больших шагов Шэнкса (Baby-step Giant-step)

  • 13.5. -метод Полларда

  • 13.6. Дискретное логарифмирование методом индексного исчисления

  • Список использованных источников информации

  • Контрольно-измерительные материалы по курсу «Методы и средства защиты компьютерной информации»

  • Заключительная проверка

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


    Скачать 3.04 Mb.
    НазваниеКриптографические методы защиты информации
    АнкорИванов М.А. КМЗИ сети.pdf
    Дата18.02.2018
    Размер3.04 Mb.
    Формат файлаpdf
    Имя файлаИванов М.А. КМЗИ сети.pdf
    ТипУчебное пособие
    #15674
    страница18 из 20
    1   ...   12   13   14   15   16   17   18   19   20

    ГЛАВА 13. АТАКИ НА ECDLP ОБЩЕГО ВИДА
    Необходимое условие безопасности всех стохастических ал- горитмов ОБИ, основанных на свойствах эллиптических кри- вых, – сложность решения ECDLP. Рассмотрим алгоритмы ре- шения ECDLP и методы, позволяющие избежать появления предпосылок для проведения атак на практике [46].
    При построении схемы преобразования сначала выбираются несекретные параметры E, GF(q), точка P порядка N на E. За- тем случайным образом выбирается d [1, N – 1] и вычисляет- ся Q = kP,где k < N. Открытым ключом объявляется Q, а сек- ретным – k. Очевидно, что если решение ECDLP является про- стым, противник может получить k из Q. Таким образом, слож- ность решения ECDLP является критической для безопасности всех схем, основанных на свойствах эллиптических кривых.
    Пусть E – эллиптическая кривая над конечным полем GF(q) и P E(GF(q)) – точка порядка N. Заданы параметры эллипти- ческой кривой E, GF(q), P, N, а также точка Q E(GF(q)). За- дача состоит в нахождении уникального целого k [1, N – 1] такого, что Q = kP.
    13.1. Полный перебор (Exhaustive Search)
    При полном переборе последовательно вычисляются значе- ния P, 2P, 3P, 4P, … до получения Q. Если рассматривать сло- жение, как операцию на эллиптической кривой, метод в наи- худшем случае требует O(N) операций на построение таблицы и O(N) памяти для ее хранения. Чтобы противодействовать этой атаке, следует выбирать параметры кривой так, чтобы N было достаточно велико.
    13.2. Атака ПолигаХеллмана (PohligHellman Attack)
    Атака Полига–Хеллмана использует разложение на простые множители числа N – порядка точки P. В результате проблема получения k сводится к проблеме получения k по модулю каж- дого из простых сомножителей N; после чего требуемое число k

    346 можно получить путем применения китайской теоремы об ос- татках.
    Пусть P и Q
    элементы группы G, требуется найти целое число k такое, что Q = kP.
    Допустим, известно разложение по- рядка N точки P на простые сомножители:
    i
    e
    i
    i
    q
    N
    Π
    . Идея атаки Полига–Хеллмана состоит в том, чтобы найти k по моду- лю
    i
    e
    i
    q
    для каждого i, после чего, используя китайскую теорему об остатках, получить k mod N.
    Пусть q – простое, q
    e
    – степень q, делящая N. Запишем k в следующем виде:
    2 2
    1 0
    q
    k
    q
    k
    k
    k
    , 0 k
    i
    q.
    Будем вычислять k mod q
    e
    , последовательно определяя
    1 1
    0
    ,
    ,
    ,
    e
    k
    k
    k
    . Алгоритм Полига–Хеллмана имеет вид:
    1)
    вычисляем
    1 0
    q
    j
    Q
    q
    N
    j
    T
    ;
    2)
    вычисляем
    Q
    q
    N
    ; Это будет элемент
    P
    q
    N
    k
    0
    из T;
    3)
    если e = 1, останов; в противном случае продолжаем;
    4)
    пусть Q
    1
    = Qk
    0
    P;
    5)
    вычисляем
    1 2
    Q
    q
    N
    ; это будет элемент
    P
    q
    N
    k
    1
    из T;
    6)
    полагаем, что вычислили k
    0
    , k
    1
    , …, k
    r - 1
    и Q
    1
    , …, Q
    r – 1
    ;
    7)
    пусть Q
    r
    = Q
    r - 1
    k
    r - 1
    q
    r - 1
    P;
    8)
    определяем k
    r такое, что
    P
    q
    N
    k
    Q
    q
    N
    r
    r
    r 1
    ;
    9)
    если r = e – 1, останов; в противном случае возвращаем- ся к шагу 7;
    10)
    получаем k, используя китайскую теорему об остатках.
    Пример. Пусть G = E(GF(599)), где кривая E задана уравне- нием y
    2
    = x
    3
    + 1,
    P = (60, 19) и Q = (277, 239).
    P имеет порядок
    N = 600. Хотим решить Q = kP относительно k.
    Разложение на простые множители N = 600
    имеет вид 600 = 2 3
    ·3·5 2

    347
    Будем вычислять k mod 8, k mod 3, и k mod 25, затем полу- чим k mod 600 при помощи китайской теоремы об остатках.
    Найдем
    k mod 8.
    Вычисляем T = {O, (598, 0)}.
    Так как
    (N/2)Q = O = 0·(N/2)P,
    имеем
    k
    0
    = 0. Поэтому Q
    1
    = Q – 0P = Q. Так как
    (N/4)Q
    1
    = 150Q
    1
    = (598, 0) = 1·(N/2)P,
    имеем k
    1
    = 1.
    Поэтому Q
    2
    = Q
    1
    - 1·2·P = (35, 243). Так как
    (N/8)Q
    2
    = 75Q
    2
    = O = 0·(N/2)P, имеем k
    2
    = 0
    Поэтому
    k = 0 + 1·2 + 0·4 2 mod 8.
    Найдем k mod 3. T = {O, (0, 1), (0, 598)}.
    Так как
    (N/3)Q = (0, 598) = 2·(N/3)P, имеем k
    0
    = 2.
    Поэтому k 2 mod 3.
    Найдем k mod 25. T = {O, (84, 179), (491, 134), (491, 465),
    (84, 420)}. Так как (N/5)Q
    = (84, 179), имеем k
    0
    = 1.
    Тогда
    Q
    1
    = Q – 1·P = (130, 129).
    Так как (N/25)Q
    1
    = (491, 465), имеем k
    1
    = 3.
    Поэтому
    k = 1 + 3·5 16 mod 25.
    Таким образом, справедливо:
    )
    3 13
    (
    25
    mod
    16
    )
    2 13
    (
    ,
    3
    mod
    2
    )
    1 13
    (
    ,
    8
    mod
    2
    x
    x
    x
    Запишем сравнение (13.1) так:
    x = 8q
    1
    + 2.
    (13.4)
    Запишем сравнение (13.2) следующим образом:
    2
    =
    8q
    1
    + 2 mod 3,
    8q
    1
    = 0 mod 3,
    q
    1
    = 0 mod 3, или q
    1
    = 3q
    2
    mod 3.
    Запишем сравнение (13.4) так:
    x = 8(3q
    2
    ) + 2.
    (13.5)
    Запишем сравнение (13.3) следующим образом:
    16 = 24q
    2
    + 2 mod 25,
    12q
    2
    = 7 mod 25,
    q
    2
    = 11.
    Запишем сравнение (13.5) так:
    x = 8(3·11) + 2 = 266.
    В результате получаем k 266 mod 600, т.е. k = 266.

    348
    Метод Полига–Хеллмана хорошо работает, если все простые делители N малы.
    Однако если q – большое простое число, де- лящее N, то трудно составить список T, который содержит q
    элементов.
    Чтобы воспрепятствовать этой атаке и построить наиболее трудный экземпляр ECDLP, следует выбирать эллип- тическую кривую, порядок которой кратен большому простому числу N (более 30 цифр). Желательно чтобы данный порядок был простым или почти простым (большим простым N, умно- женным на небольшое целое h (2 или 4)).
    13.3. Алгоритм маленьких и больших шагов Шэнкса
    (Baby-step Giant-step)
    Этот метод, требующий выполнения до
    N
    N
    O
    log
    2
    /
    1
    опера- ций и затрат памяти до
    2
    /
    1
    N
    O
    , хорошо работает только для N
    небольшого размера.
    Алгоритм «Baby-step Giant-step» имеет следующий вид:
    1)
    фиксируем целое число
    N
    m
    и вычисляем
    mP;
    2)
    вычисляем iP и сохраняем список iP,0 i m;
    3)
    вычисляем точки QjmP для j = 0, 1, …, m– 1, пока не получим точку, соответствующую элементу из сохра- ненного списка;
    4)
    если iP = QjmP,имеем Q = kP, гдеk i+jm (mod N).
    Точка iPвычисляется путем прибавления P («baby step») к (i– 1)P. Точка Q – jmPвычисляется путем прибавления –mP
    («giant step») к Q – (j – 1)mP.
    Заметим, что нет необходимости знать точный порядок N группы G. Требуется только верхняя граница значений N. По- этому для эллиптических кривых над GF(q) можно использо- вать теорему Хассе (
    N
    q
    m
    2 1
    2
    ) для нахождения верхней границы значений N.
    Пример. ПустьG = E(GF(23)), где кривая Eзадана уравнени- ем y
    2
    = x
    3
    + x + 1.
    Пусть P = (0, 1) и Q = (11, 20). Согласно тео- реме Хассе знаем, что порядок G – самое большее 32, поэтому пусть m = 6.
    Точки iP для 0 i 5 имеют вид

    349
    (0, 1), (6, 19), (3, 13), (13, 16), (18, 3).
    Вычисляем Q – jmP для j = 0, 1, 2, 3 и получаем
    (11, 20), (9, 7), (19, 18), (3, 13).
    Останавливаемся, так как четвертая точка соответствует 3P.
    Поскольку j = 3, имеем
    (11, 20) = (5+3·6)P = 21P.
    Поэтому k= 21.
    Недостатком метода «Baby-step Giant-step» является то, что для его реализации требуются значительные затраты памяти.
    ρ- и -методы Полларда выполняются приблизительно за то же самое время, что и метод «Baby-step Giant-step», но требуют в отличии от него небольших затрат памяти.
    13.4. ρ-метод Полларда
    ρ-алгоритм Полларда на данный момент считается лучшим из известных алгоритмов для вычисления дискретного лога- рифма на эллиптической кривой и является рандомизированной версией алгоритма «baby-step giant-step». Сложность алгоритма оценивается как
    2 1
    N
    O
    , где N порядок генератора.
    Пусть Q – точка с неизвестным индексом и P – генератор группы точек на эллиптической кривой порядка N. Полагаем, что Q = xP. Требуется найти x.
    ρ-алгоритм Полларда имеет следующий вид:
    1)
    разбиваем группу на три множества S
    0
    , S
    1
    и S
    2
    прибли- зительно одинаковой мощности;
    2)
    случайным образом выбираем 1 ≤ а
    0
    , b
    0
    N – 1;
    3)
    устанавливаем Х
    0
    = a
    0
    P + b
    0
    Q – начальную точку для случайного блуждания;
    4)
    определяем последовательность {X
    i
    } следующим образом:
    ;
    если
    ,
    ;
    если
    ,
    2
    ;
    если
    ,
    2 1
    1 1
    1 1
    0 1
    1
    S
    X
    X
    Q
    S
    X
    X
    S
    X
    X
    P
    X
    i
    i
    i
    i
    i
    i
    i
    это дополнительно определяет две последователь- ности {a
    i
    }, {b
    i
    }:

    350 если
    ,
    ;
    если
    ,
    2
    ;
    если
    ,
    1 2
    1 1
    1 1
    1 0
    1 1
    S
    X
    a
    S
    X
    a
    S
    X
    a
    a
    i
    i
    i
    i
    i
    i
    i
    ;
    если
    ,
    1
    ;
    если
    ,
    2
    ;
    если
    ,
    2 1
    1 1
    1 1
    0 1
    1
    -
    S
    X
    b
    S
    X
    b
    S
    X
    b
    b
    i
    i
    i
    i
    i
    i
    i
    5)
    допустим, что для некоторого ij справедливо X
    i
    = X
    j
    , тогда получаем
    a
    i
    P + b
    i
    Q = a
    j
    P + b
    j
    Q;
    (a
    i
    a
    j
    )P = (b
    j
    b
    i
    )Q;
    Q = (a
    i
    a
    j
    )(b
    j
    b
    i
    )
    -1
    P;
    6)
    вычисляем
    N
    b
    b
    a
    a
    k
    i
    j
    j
    i
    mod
    1
    ,
    если (b
    j
    b
    i
    ) имеет обратный элемент по модулю N, то решение найдено.
    Форма процесса вычисления точек похожа на греческую бу- кву ρ(рис. 13.1). Наиболее эффективный метод для нахождения
    X
    i
    = X
    j
    поиск X
    i
    = X
    2i
    . Поиск в этом случае требует сохранять только шесть значений: X
    i
    , a
    i
    , b
    i
    , X
    2i
    , a
    2i
    , b
    2i
    . Такой алгоритм может не обнаружить первую пару X
    i
    = X
    j
    , но зато исключает необходимость хранения большого списка точек и поиска их на каждой итерации.
    Пример. Пусть G = E(GF(41)), где E– кривая, соответст- вующая уравнениюy
    2
    = x
    3
    + 2x + 1.
    Пусть s = 3. Пусть P = (0, 1) и Q = (13, 25).
    P имеет порядок 39.
    Необходимо найти такоеk, что kP = Q.
    Cтартуем со случайного элемента X
    0
    и вычисляем итерации
    X
    i + 1
    = f(X
    i
    ), где f(X
    i
    ) – функция для случайного блуждания.
    Вычисляем X
    0
    = 3P + 5Q, X
    0
    = (40, 30).
    Последовательность {X
    i
    } определяется следующим образом:
    Здесь x– целое число, 0 x 41, взятое по модулю 3. На- пример,
    f(X
    0
    ) = P + X
    0
    = (4, 14),
    2
    если
    ,
    ;
    1
    если
    ,
    2
    ;
    0
    если
    ,
    1 1
    1 1
    x
    X
    Q
    x
    X
    x
    X
    P
    X
    f
    X
    i
    i
    i
    i
    i

    351 потому что X
    0
    = (40, 30) и i 1 mod 3.
    X
    2
    X
    3
    X
    4
    X
    5
    X
    6
    X
    12
    = X
    7
    X
    13
    = X
    8
    X
    1
    X
    0
    Рис. 13.1. Схема процесса вычисления точек
    При вычислении X
    0
    , X
    1
    = f(X
    0
    ), X
    2
    = f (X
    1
    ), … получаем
    X
    0
    = (40, 30), X
    1
    = (4, 14), X
    2
    = (0, 40),
    X
    3
    = O, X
    4
    = (0, 1), X
    5
    = (1, 39),
    X
    6
    = (38, 38), X
    7
    = (11, 40), X
    8
    = (22, 22),
    X
    9
    = (28, 22),
    X
    10
    = (8, 23), X
    11
    = (30, 1),
    X
    12
    = (11, 40),
    X
    13
    = (22, 22),
    … .
    Таким образом, последовательность начинает повторяться при X
    7
    = X
    12.
    Поэтому получаем
    30P + 41Q = 121P + 169Q;
    (30 – 121)P = (169 – 41)Q;
    Q = –91 128
    -1
    P.
    Так как Pимеет порядок 39, вычисляем
    k = –91 128
    -1 13 mod 39.
    В результате Q = 13P, а k = 13.
    Предположим, что распараллеленная версия ρ-алгоритма
    Полларда останется лучшим алгоритмом для решения ECDLP.
    Существует экспертная оценка, что если параметр N удовле- творяет условию N > 2 160
    , то аппаратные атаки становятся не- осуществимы, даже принимая во внимание непрерывное со- вершенствование аппаратных средств, в том числе снижение их

    352 стоимости. В [46] дается оценка, что 163-битная и 191-битная кривая обеспечат соответственно в 2021 и 2040 гг. тот же уро- вень защиты, который обеспечивал в 1982 г. стандарт DES (ко- торый считался в то время безопасным для банковских прило- жений).
    13.5.
    -метод Полларда
    -метод Полларда, как и ρ-метод, использует функцию f
    случайного блуждания, но при этом берутся несколько случай- ных начальных точек. При двух случайных начальных точках имеются две случайные траектории блуждания.
    Как только эти две последовательности пересеклись, дальнейшее движение осуществляется по одному пути. Форма процесса вычисления точек похожа на греческую букву (рис. 13.2).
    Этот метод в наихудшем случае требует самое большее N
    шагов.
    Пусть f– функция, X
    0
    – случайная точка в G и {X
    i
    }, i N, – последовательность случайного блуждания.
    Для некоторой по- ложительной константы t вычисляем X
    t
    = f
    t
    (X
    0
    ).
    tдолжно быть выбрано достаточно большим, чтобы имелась некоторая веро- ятность того, что X
    t
    находится на уникальном цикле.
    Пусть Y
    0
    – другая случайная точка в G, а {Y
    j
    }, j N, – другая последова- тельность случайного блуждания, где Y
    j
    = f(Y
    j - 1
    ) = f
    j
    (Y
    0
    ) для всехj. На j-м шаге вычисляем Y
    j
    и проверяем, равенлионX
    t
    Если Y
    j
    =X
    t
    , останов. Иначе, продолжаем.
    Чтобы предотвратить эту атаку, секретный ключ в системах, основанных на свойствах эллиптических кривых, должен быть равномерно распределен на интервале [1, N– 1].
    13.6. Дискретное логарифмирование методом индексного
    исчисления
    Метод индексного исчисления, имеющий субэкспоненци- альную сложность, является наиболее эффективным алгорит- мом вычисления дискретного логарифма в группах G, удовле- творяющих следующим условиям:

    353 log
    g
    (a × b) = log
    g
    a + log
    g
    b,
    (13.6) log
    g
    (a
    e
    ) = e log
    g
    a.
    (13.7)
    В частности, он применим для дискретного логарифмирова- ния в полях GF(p) и GF(2
    m
    ).
    Y
    X
    Рис. 13.2. Схема процесса вычисления точек
    Данный алгоритм требует предварительного определения так называемой факторной базы, т.е. относительно небольшой совокупности S элементов группы, таких, что значительная часть элементов может быть представлена как их произведение.
    В качестве примера рассмотрим метод индексного исчисле- ния применительно к полю GF(p). В этом случае факторную базу обычно задают как число –1 и последовательность про- стых чисел, начиная с 2. С точки зрения эффективности алго- ритма выгодно выбрать небольшую факторную базу, однако, для нахождения дискретного логарифма в большой группе мо- жет потребоваться большая факторная база. Таким образом, при реализации этого метода приходится идти на компромисс.
    Итак, задача алгоритма – найти такое число x GF(p), что
    g
    x
    = h, при условии, что известны g, h и p, где g – генератор элементов группы G, а h на нее элемент этой группы. На входе алгоритма имеется факторная база, состоящая из r + 1 элемен- тов {–1, 2, 3, 5, …, q}, g, h, p, где q – последнее простое число из используемой факторной базы.
    Метод предполагает выполнение двух этапов. Первый вклю- чает в себя сбор информации о соотношениях между факторной базой и степенями генератора поля g. Фактически, это стадия

    354 предварительных вычислений. Возможный алгоритм первого этапа выглядит следующим образом:
    1)
    k : = 0, l : = 0.
    2)
    k : = k + 1;
    3)
    вычисляем g
    k
    ;
    4)
    раскладываем g
    k
    на множители по факторной базе, т.е. находим такую последовательность k
    0
    , k
    1
    , …, k
    r
    , что
    r
    k
    k
    k
    k
    k
    k
    q
    g
    5 3
    2 1
    3 2
    1 0
    ;
    5)
    если факторизация невозможна, возвращаемся к шагу 2;
    6)
    запоминаем полученное соотношение в виде вектора
    v
    l
    = (k
    0
    , k
    1
    , k
    2
    , k
    3
    , ..., k
    r
    , k);
    7)
    если v
    l
    не является линейно независимым относительно уже сохраненных соотношений, возвращаемся к шагу 2;
    8)
    l : = l + 1; если l < r, переходим к шагу 2, в противном случае работа алгоритма завершается, так как найдено достаточное количество соотношений.
    Иначе говоря, мы получили совокупность линейно незави- симых разложений первых r + 1 элементов группы на множите- ли по факторной базе.
    Теперь появляется возможность построить из этих соотно- шений систему линейных уравнений и после ее решения отно- сительно k получить дискретный логарифм каждого элемента факторной базы.
    Второй этап включает в себя разложение h на множители по заданной факторной базе. После этого можно легко вычислить
    x по соотношениям (13.6) и (13.7).
    Контрольные вопросы
    1)
    Приведите пример атаки на ECDLP: а) Полига–
    Хеллмана; б) с использованием алгоритма маленьких и больших шагов Шэнкса; в) с использованием ρ-метода
    Полларда; г) с использованием λ-метода Полларда; д) методом индексного исчисления.

    355
    Заключение
    Авторы попытались продемонстрировать безграничные воз- можности стохастических методов ОБИ, в первую очередь криптографических, с помощью которых можно решить прак- тически любую задачу защиты информации. В настоящее время стохастические методы защиты используются в информацион- ных системах любой степени сложности и назначения. Этими методами защищается государственная тайна, обеспечивается законность электронного документооборота, предотвращаются попытки мошенничества в системах электронной торговли. Без криптографии обеспечить требуемую степень безопасности в современном компьютеризированном мире уже не представля- ется возможным. Со временем ее роль и значение обещают стать еще больше.
    Следует акцентировать внимание на часто игнорируемом факте, суть которого в том, что стохастические методы – тех- нологии двойного назначения, которые могут использоваться
    (и активно используются!) не только для защиты, но и нападе- ния, в частности для создания РПВ. Первым следствием этого факта является то, что любое решение, связанное с защитой информации, необходимо анализировать как с позиции разра- ботчика, так и злоумышленника, для чего нужны знания основ- ных видов атак на программные системы. В качестве второго следствия можно отметить: в настоящее время не уделяется достаточно внимания технологиям комплексного анализа за- щищенности программных систем и совершенствованию мето- дов и средств защиты. Разработчики систем ОБИ часто не учи- тывают, что эффективная система защиты – это не фиксиро- ванная совокупность методов и средств, а непрерывный про- цесс периодического анализа защищенности системы на всех ее уровнях и опережающего совершенствования методов и средств защиты.
    Рассмотрим еще раз основные проблемы, с которыми прихо- дится сталкиваться разработчикам систем ОБИ [26, 30, 49].
    Современная наука предоставляет все необходимые алго- ритмы, методы и средства, позволяющие построить систему защиты, затраты на взлом которой таковы, что у противника с

    356 ограниченными финансовыми и техническими возможностями для получения интересующей его информации остаются только две возможности – использование либо человеческого фактора, либо особенностей конкретной реализации криптоалгоритмов и криптопротоколов, которая чаще всего оставляет желать луч- шего. Именно такой вывод можно сделать, анализируя приме- ры реальных успешных атак на криптосистемы. Различных примеров взломов реальных систем очень много, в то же время известны лишь единичные случаи взлома с использованием ис- ключительно математических методов.
    Система защиты в целом не может быть надежнее отдельных ее компонентов. Иными словами, для того чтобы преодолеть систему защиты, достаточно взломать или использовать для взлома самый ненадежный из ее компонентов. Самое ненадеж- ное звено системы – человек. Типичные ошибки пользователей, нарушающие безопасность всей системы защиты: предоставление своего секретного пароля коллегам по ра- боте для решения неотложных задач во время отсутствия владельца пароля; повторное использование секретных паролей в несекрет- ных системах; генерация паролей самими пользователями, выбор паролей по критерию удобства запоминания; несвоевременное информирование о компрометации клю- чевой информации (например, об утере смарт-карт).
    Получают распространение атаки типа отказ в обслужива- нии (denial of service), провоцирующие пользователя отключать
    «заедающую» систему защиты при решении неотложных задач.
    Можно выделить следующие причины ненадежности крип- тосистем, связанные с особенностями их реализации: использование нестойких криптоалгоритмов; неправильное применение криптоалгоритмов; ошибки в реализации криптоалгоритмов.
    В некоторых случаях, особенно в системах реального време- ни, применение стойких алгоритмов принципиально невозмож- но в силу их низкого быстродействия, и поэтому вынужденно используются менее стойкие, но быстрые криптоалгоритмы.

    357
    Многие качественные криптографические средства подпа- дают под действие экспортных ограничений, искусственно снижающих качество этих средств. Например, в США запре- щен экспорт криптоалгоритмов с длиной ключа более 56 бит.
    Все программные средства, произведенные в США и легально экспортируемые за рубеж, обеспечивают ослабленную крипто- графическую защиту. Аналогичная ситуация имеет место и в
    Европе. Так, например, существуют две версии алгоритма по- точного шифрования А5: надежная А5/1 и существенно менее стойкая А5/2 для поставок в развивающиеся страны.
    Многие разработчики ПО включает в свои продукты собст- венные криптоалгоритмы, самонадеянно считая себя специали- стами, забывая, что современная криптография основана на глубоких исследованиях в таких разделах математики, как высшая алгебра, теория чисел, теория информации, теория сложности вычислений и др. Если разработчики делают ставку на собственные методы, шансы взломщиков, даже в случае полного отсутствия на начальном этапе информации об исполь- зованном алгоритме, многократно возрастают.
    Основные ошибки при применении криптоалгоритмов: недостаточная длина ключа или недостаточный объем ключевого пространства; некачественная процедуры генерации, хранения или рас- пределения ключей; некачественный генератор псевдослучайных чисел или не- правильная его инициализации; применение криптоалгоритмов не по назначению; использование на практике модели доверительных отно- шений, отличной от той, в расчете на которую проектиро- валась система.
    Тема ошибок в реализации криптоалгоритмов в силу своей нетривиальности и многообразия требует отдельного рассмот- рения, поэтому ограничимся лишь кратким перечислением ос- новных проблем, возникающих при реализации криптоалго- ритмов.
    Надежная система защиты должна быть способна оператив- но обнаруживать несанкционированные действия для миними- зации возможного ущерба. В случае обнаружения повреждений

    358 в системе должны включаться эффективные процедуры восста- новления разрушенных элементов. Система не должна потерять живучесть даже в случае проведения на нее успешной атаки.
    Причины наличия большинства «дыр» (или люков) в ПО, т.е. не описанных в документации возможностей работы с ним, очевидны: забывчивость разработчиков, которые в процессе отладки продукта создают временные механизмы, облегчающие ее проведение (например, за счет прямого доступа к отлажи- ваемым частям программы). По окончании отладки часть
    «дыр» убирается, а о части разработчики благополучно забы- вают либо оставляют их сознательно, особенно в ранних верси- ях продукта, когда в будущем весьма вероятна его доработка.
    «Дыры» могут являться следствием применения технологии разработки программ «сверху вниз», когда программист сразу приступает к написанию управляющей программы, заменяя предполагаемые в будущем подпрограммы «заглушками», ими- тирующими реальные подпрограммы или просто обозначаю- щими место их будущего подсоединения. Очень часто эти «за- глушки» остаются в конечной версии программы. Либо опять же по причине забывчивости, либо в расчете на будущую мо- дификацию продукта, либо, например, если в процессе разра- ботки выясняется, что какая-то подпрограмма не нужна, а уда- лить «заглушку» не представляется возможным. В случае обна- ружения такой «заглушки», злоумышленник может воспользо- ваться ей для подключению к программе своей подпрограммы, работающей отнюдь не в интересах законного пользователя.
    Третий источник «дыр» – неправильная обработка (или ее отсутствие) каких-либо нестандартных ситуаций, которые мо- гут иметь место при работе программы: неопределенный ввод, ошибки пользователей, сбои и т.п. В этом случае противник может искусственно вызвать в системе появление такой не- стандартной ситуации, чтобы выполнить нужные ему действия.
    Например, он может вызвать аварийное завершение програм- мы, работающей в привилегированном режиме, чтобы, пере- хватив управление, остаться в этом привилегированном режи- ме.
    Наконец, известны случаи, когда люк в ПО или аппаратуре – первый шаг к атаке системы безопасности. Разработчик умыш-

    359 ленно оставляет его в конечном продукте, чтобы в будущем, например, иметь возможность модифицировать информацию незаметно для законного пользователя, расшифровывать ее, не зная ключа, и т.п.
    Существуют программы, изначально предназначенные для разрушительных действий. Они получили обобщенное название разрушающих программных воздействий (РПВ). Пути внедре- ния РПВ чрезвычайно разнообразны. Можно выделить сле- дующие средства, предназначенные для борьбы с РПВ и без которых любая программная реализация криптоалгоритма практически беззащитна: средства, препятствующие внедрению РПВ; средства выявления РПВ до использования программных продуктов по назначению; средства, обеспечивающие оперативное обнаружение РПВ в процессе реального функционирования ПО, изначально свободного от них; средства удаления РПВ; средства определения факта наличия или отсутствия РПВ в добавляемом в систему ПО.
    Аппаратуру легче физически защитить от проникновения извне. Криптомодули могут помещаться в особые контейнеры, которые делают невозможным изменение алгоритма функцио- нирования. Интегральные схемы могут покрываться специаль- ным химическим составом, при этом любая попытка преодоле- ния защитного слоя приводит к самоуничтожению их внутрен- ней логической структуры. Тем не менее известны случаи вы- явления и аппаратных закладок.
    Кроме того, возникает проблема защиты от экзотических атак, применимых к реализациям в смарт-картах, – временного анализа и анализа потребляемой мощности. Эти атаки основа- ны на использовании того факта, что различные операции, вы- полняемые на микропроцессоре, требуют разного времени, а также приводят к разному потреблению мощности. Общая идея этих атак в том, что, анализируя временные характеристики алгоритма (время ответа) или потребление мощности, мы мо- жем составить картину выполнения различных операций и даже приблизительно вычислить их аргументы. Приблизительный

    360 анализ уязвимости различных операций с точки зрения времен- ных характеристик дает следующие результаты: поиск по таблицам – неуязвим для временных атак; фиксированные сдвиги – неуязвимы для временных атак; булевы операции – неуязвимы для временных атак; сложение/вычитание – трудно защитить от временных атак; умножение/деление – наиболее уязвимые для временных атак операции.
    Стойкость к такого рода атакам, направленным не на крип- тоалгоритм, а на его реализацию, также надо учитывать. Защи- щенность по отношению к временному анализу можно повы- сить путем введения дополнительных задержек. Более сложна проблема защиты от анализа мощности, но ее можно решить несколькими путями. Это, во-первых, балансировка алгоритма
    (равномерное распределение различных операций по коду), во- вторых – введение специальных «шумовых» операций, или, на- конец, просто выбор другого микропроцессора.
    С недавних пор получили распространение атаки на аппара- туру криптосистем, основанные на анализе электромагнитного излучения и других побочных источников информации.
    Получают распространение, по сути, «биологические» мето- ды взлома, рассматривающие криптосистемы как сложные объ- екты, определенным образом реагирующие на внешние раздра- жители. Атаки подобного рода основаны на анализе поведения системы после случайных или преднамеренных сбоев в работе и последующим использованием выявленных некачественных процедур восстановления после сбоев.
    Универсальным путем противодействия атакам на криптоси- стемы с использованием побочных каналов (side channel attacks) является применение з апутывающих преобразований и рандомизации при реализации криптоалгоритмов.
    Как справедливо отмечается в [30], сама по себе криптогра- фия довольно бесполезна. Она является всего лишь частью бо- лее крупной системы безопасности. Очень часто бывает так, что место криптографии в системе безопасности можно срав- нить с толстой банковской дверью из закаленной стали в тури- стической палатке. Разработчики любят обсуждать длину клю-

    361 ча в криптосистемах, а вот устранять переполнение буфера или состязания при доступе к ресурсу в программных системах им нравится куда меньше. Криптография полезна тогда, когда ос- тавшаяся часть системы также безопасна. Тем не менее пра- вильная реализация криптографии важна и в системах, имею- щих слабые стороны. Потому что атаки на криптосистемы про- ходят быстро и незаметно, позволяя взломщику возвращаться вновь и вновь
    Криптография – это не панацея. Во многих случаях она обеспечивает не реальную безопасность, а только видимость безопасности – польза такая же, как от амулета, который носят на шее. Она может стать как частью решения, так и частью са- мой проблемы, ослабляя безопасность. Например, есть секрет- ный файл – можно защитить файловую систему от неавторизо- ванного доступа, а можно дополнительно зашифровать файл и защитить ключ. Некоторые программы сохраняют ключи на диске. В результате вместо одной «дыры» появляются две: воз- можны «старые» атаки только уже на ключевую информацию; возможны атаки на алгоритм шифрования [30].
    Сложная система ОБИ может создать ложное впечатление полной безопасности. Излишнее усердие при разработке систе- мы защиты может привести к новым проблемам, поскольку бо- лее изощренная система ОБИ повышает сложность системы в целом. Как следствие, более сложная система затрудняет ана- лиз стойкости. Кроме того, в ней потенциально возможно большее количество ошибок реализации [30].
    Итак, несмотря на успехи современной криптографии, зада- ча построения надежной системы защиты комплексная, она значительно сложнее, чем кажется на первый взгляд. Надежная система защиты может быть построена только с учетом всех перечисленных факторов.

    362
    Список использованных источников информации
    1.
    Аршинов М.Н., Садовский Л.Е. Коды и математика
    (рассказы о кодировании). М.: Наука, 1983.
    2.
    Блочные криптосистемы. Основные свойства и методы анализа стойкости / А.А. Варфоломеев, А.Е. Жуков, А.Б.
    Мельников, Д.Д. Устюжанин. М.: МИФИ, 1998.
    3.
    Брассар Ж. Современная криптология: Пер. с англ. М.:
    ПОЛИМЕД, 1999.
    4.
    Введение в криптографию / Под общ. ред. В.В. Ященко.
    М.: МЦНМО, «ЧеРо», 1998.
    5.
    Винокуров А.Ю. ГОСТ не прост ... , а очень прост!
    // Монитор, 1995, № 1, с. 60–73.
    6.
    Винокуров А.Ю. Алгоритм шифрования ГОСТ 28147-89, его использование и реализация для компьютеров плат- формы Intel х86. 1997. http://www.ssl.stu.neva.ru/psw/crypto.html.
    7.
    Винокуров А.Ю. Как устроен блочный шифр? 1995. http://www.ssl.stu.neva.ru/psw/crypto.html.
    8.
    Винокуров А.Ю. Проблема аутетификации данных и блочные шифры. 1998. http://www.ssl.stu.neva.ru/psw/crypto.html.
    9.
    Галатенко В.А. Основы информационной безопасности: учебное пособие. Под ред. В.Б. Бетелина. – 4-е изд. М.:
    Интернет-университет информационных технологий;
    БИНОМ. Лаборатория знаний, 2008.
    10.
    Гарднер М. От мозаик Пенроуза к надежным шифрам:
    Пер. с англ. М.: Мир, 1993.
    11.
    Герасименко В.А., Малюк А.А. Основы защиты инфор- мации. М.: МИФИ, 1997.
    12.
    ГОСТ 28147-89. Система обработки информации. Защи- та криптографическая. Алгоритм криптографического преобразования.
    13.
    ГОСТ Р 34.10 – 2001. Криптографическая защита ин- формации. Процессы формирования и проверки элек- тронной цифровой подписи. М.: Госстандарт России,
    2001.

    363 14.
    Зензин О.С., Иванов М.А. Стандарт криптографической защиты AES. Конечные поля / Под ред. М.А. Иванова.
    Серия СКБ (специалисту по компьютерной безопасно- сти). Кн. 1. М.: Кудиц-Образ, 2002.
    15.
    Зиммерман Ф.Р. PGP: концепция безопасности и уязви- мые места: Пер. с англ. // Компьютерра, 1997, № 48, с. 36–40, 42–51.
    16.
    Иванов М.А., Чугунков И.В. Теория, применение и оценка качества генераторов псевдослучайных последо- вательностей. Серия СКБ (специалисту по компьютер- ной безопасности). Кн. 2. М.: Кудиц-Образ, 2003.
    17.
    Коблиц Н. Курс теории чисел и криптографии. М.: ТВП,
    2001.
    18.
    Кнут Д. Искусство программирования, т. 2. Получис- ленные алгоритмы, 3-е изд.: Пер. с англ.: Учебное посо- бие. М.: ИД «Вильямс», 2000.
    19.
    Корн Г., Корн Т. Справочник по математике для науч- ных работников и инженеров: Пер. с англ. / под ред.
    И.Г. Арамановича. М.: Наука, 1973.
    20.
    Макуильямс Ф.Дж., Слоан Н.Дж.А. Псевдослучайные последовательности и таблицы. // ТИИЭР, 1976, № 12, с. 80–95.
    21.
    Мао В. Современная криптография: теория и практика:
    Пер. с англ. М.: ИД «Вильямс», 2005.
    22.
    Мельников В.В. Защита информации в компьютерных системах. М.: Финансы и статистика; Электронинформ,
    1997.
    23.
    Можно ли взломать 512-разрядный RSA? Compute-
    Review, 22 сентября 1999 г., с. 14.
    24.
    Поточные шифры / А.А. Асосков, М.А. Иванов,
    А.Н. Тютвин и др. Серия СКБ (специалисту по компью- терной безопасности). Кн. 3. М.: Кудиц-Образ, 2003.
    25.
    Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. Защита информации в компьютерных системах и сетях / Под ред. В.Ф. Шаньгина. М.: Радио и связь, 1999.
    26.
    Семьянов П.В. Почему криптосистемы ненадежны?
    // Проблемы информационной безопасности. Компью- терные системы. № 1, 1999, с. 70–82.

    364 27.
    Слоан Н.Дж.А. Коды, исправляющие ошибки и крипто- графия. В кн.: Математический цветник/ Сост. и ред.
    Д.А. Кларнер; Пер. с англ. Данилова Ю.А.; Под ред.
    И.М. Яглома. М.: Мир, 1983.
    28.
    Столингс В. Криптография и защита сетей: принципы и практика. 2-е изд.: Пер. с англ. М.: ИД «Вильямс», 2001.
    29.
    Стохастические методы и средства защиты информации в компьютерных системах и сетях / М.А. Иванов,
    Д.М. Михайлов, И.В. Чугунков и др.; Под ред.
    И.Ю. Жукова. М.: Кудиц-Пресс, 2009.
    30.
    Фергюсон Н., Шнайер Б. Практическая криптография:
    Пер. с англ. М.: ИД «Вильямс», 2005.
    31.
    Шеннон К. Математическая теория связи. Работы по теории информации и кибернетике. М., 1963.
    32.
    Шнайер Б. Прикладная криптография. Протоколы, ал- горитмы, исходные тексты на языке Си. М.: Триумф,
    2002.
    33.
    A statistical test suite for random and pseudorandom nu m- ber generators for cryptographic applications. NIST Special
    Publications 800-22. May 15, 2001.
    34.
    Bajalcaliev K. Stream Cipher design postulates/SQ model. http://eon.pmf.ukim.edu.mk/

    kbajalc
    35.
    Certicom Research, Standards for efficient cryptography,
    SEC 1: Elliptic Curve Cryptography, Version 1.0, 2000.
    36.
    Digital signature standard (DSS). FIPS 186-2. Federal in- formation processing standards publication. U.S. depart- ment of commerce/National Institute of Standards and
    Technology. 2000.
    37.
    Escott A., Sager J., Selkirk A., Tsapakidis D.. Attacking E l- liptic Curve Cryptosystems Using the Parallel Pollard rho
    Method. CryptoBytes 2:2, 1999.
    38.
    Gong G., Berson T., Stinson D. Elliptic Curve Pseudoran- dom Sequence Generators. University of Waterloo, Canada,
    1998. http://www.anagram.com/berson/ecpsg99.pdf
    39.
    Gong G., Lam C. Linear Recursive Sequences over Elliptic
    Curves. – Proceedings of Sequences and Their Applica- tions-SETA'01. DMTCS series. Berlin: Spring-Verlag,
    2001, pp.182–196.

    365 40.
    Hallgren S. Linear Congruental Generators Over Elliptic
    Curves. Technical Report CS-94-143, Cornegie Mellon
    University, 1994.
    41.
    Jelly A. Криптографический стандарт в новом тысячеле- тии. – BYTE, Россия, 6.06.1999.
    42.
    Jurisic A, Menezes A. Elliptic Curves and Cryptography. –
    Dr. Dobb’s Journal, April 1997.
    43.
    Koblitz N. Elliptic curve cryptosystems. Mathematics of
    Computation 48, 1987, pp. 203–209.
    44.
    Marsaglia G. DIEHARD Statistical Tests. http://stat.fsu.edu/geo/diehard.html.
    45.
    Menezes A. Elliptic Curve Public Key Cryptosystem.
    Kluwer Academic Publishers, 1993.
    46.
    Menezes A. Evaluation of Security Level of Cryptography:
    The Elliptic Curve Discrete Logarithm Problem (ECDLP).
    University of Waterloo. 2001. http://www.ipa.go.jp/security/enc/CRYPTREC/fy15/doc/
    1028_ecdlp.pdf
    47.
    Miller V. Use of elliptic curves in cryptography. CRYPTO
    85, 1985.
    48.
    NESSIE: New europian schemes for signatures, integrity and encryption. http://www.cryptonessie.org
    49.
    Schneier B. Why Cryptography Is Harder Than It Looks. http://www.schneier.com/essay-037.pdf
    50. Sherif M.H. Protocols for Secure Electronic Commerce.
    CRC Press, 2000.

    366
    Контрольно-измерительные материалы по курсу
    «Методы и средства защиты компьютерной информации»
    Примечание. На каждый вопрос может быть дано от одного до четырех правильных ответов. Необходимо найти все правиль- ные ответы.
    Заключительная проверка
    1. Укажите ложное утверждение:
    А. В качественной хеш-функции не должно быть коллизий.
    Б. В случае использования качественной хеш-функции мини- мальное изменение на ее входе должно приводить в среднем к изменению 50 % бит хеш-образа.
    В. В случае использования качественной хеш-функции любое изменение на ее входе должно приводить в среднем к измене- нию 50 % бит хеш-образа.
    Г. При использовании качественной хеш-функции задача нахо- ждения коллизий вычислительно неразрешима.
    2. Укажите, какие из перечисленных действий пользователя снижают защищенность системы:
    А. Использование секретных паролей в несекретных системах.
    Б. Формирование паролей по принципу удобства запоминания.
    В. Информирование администратора об утерянной или ском- прометированной ключевой информации.
    Г. Хранение паролей в зашифрованном виде.
    3. Укажите ложные утверждения:
    А. Система обеспечения безопасности информации (ОБИ) на- дежна настолько, насколько надежно ее самое слабое звено.

    367
    Б. Система ОБИ надежна настолько, насколько надежно ее са- мое сильное звено.
    В. Прочность любого звена системы ОБИ зависит от навыков противника и имеющихся у него ресурсов.
    Г. Укрепление любого звена системы ОБИ, кроме самого сла- бого, – пустая трата времени.
    4. Укажите области предпочтительного использования режима блочного шифрования CBC:
    А. Шифрование ключевой информации симметричных блочных криптоалгоритмов.
    Б. Шифрование баз данных с произвольным доступом к от- дельным записям.
    В. Формирование кода МАС.
    Г. Шифрование сообщений большой длины в асимметричных криптосистемах.
    5. Укажите соображения, которые должны учитываться при оп- ределении времени жизни ключевой информации:
    А. Чем дольше используется ключ, тем больше вероятность его компрометации.
    Б. Чем дольше используется ключ, тем больший потенциаль- ный ущерб может нанести его компрометация.
    В. Чем больший объем информации, зашифрованной на одном ключе, перехватывает противник, тем легче проводить атаку на ключ.
    Г. При длительном использовании ключа у противника появля- ется дополнительный стимул потратить на его вскрытие значи- тельные ресурсы, так как выгода в случае успеха оправдает все затраты.

    368 6. Укажите области предпочтительного использования режима блочного шифрования ECB:
    А. Шифрование ключевой информации симметричных блочных криптоалгоритмов.
    Б. Шифрование баз данных с произвольным доступом к от- дельным записям.
    В. Формирование кода МАС.
    Г. Шифрование сообщений большой длины в асимметричных криптосистемах.
    7. Укажите утверждения, которые строго математически дока- заны:
    А. Непредсказуемый влево генератор псевдослучайных чисел является криптографически сильным.
    Б. Непредсказуемый влево генератор псевдослучайных чисел существует тогда и только тогда, когда существуют односто- ронние функции.
    В. Сложность взлома криптосистемы RSA эквивалентна слож- ности разложения большого целого числа на простые сомножи- тели.
    Г. Схема однократного использования является абсолютно стойкой.
    8. Какие режимы симметричного блочного шифрования требу- ют наличия и функции зашифрования E
    AB
    , и функции расшиф- рования D
    AB
    ?
    А. ECB.
    Б. CBC.
    В. OFB.
    Г. CFB.
    Д. Counter Mode.

    369 9. Какие из перечисленных схем шифрования являются схема- ми гаммирования с обратной связью?
    А. AES в режиме CFB.
    Б. RC4.
    В. ECCS.
    Г. RSA.
    10. Укажите решения, предполагающие использование генера- торов псевдослучайных чисел для внесения неопределенности в результат работы криптоалгоритмов:
    А. Гаммирование.
    Б. Вероятностное шифрование.
    В. Технология OAEP.
    Г. Несепарабельные режимы симметричного шифрования.
    11. Укажите особенности синхронного поточного шифрования:
    А. У противника, не знающего ключа, всегда есть возможность вносить предсказуемые изменения в зашифрованный текст.
    Б. При повторном использовании ключа противник получает возможность использовать для взлома шифра частотный ана- лиз.
    В. Результат шифрования каждого элемента сообщения зависит от всех предшествующих элементов сообщения.
    Г. Если при передаче информации по каналу связи происходит
    «выпадение» или «вставка», на принимающей стороне проис- ходит необратимая потеря информации.

    370
    1   ...   12   13   14   15   16   17   18   19   20


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