Криптография Flashcards

(139 cards)

1
Q

Стойкость

A

Стойкость – количество информации о ключе, содержащейся в шифротексте: I(Z,Y) = H(Z) - H(Z|Y)

Стойкость оценивается в двух ресурсах:

  1. время;
  2. память.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Алфавит, текст

A

Алфавит – конечное множество используемых для кодирования информации знаков.

Текст – упорядоченный набор из элементов алфавита.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Атака с избранным ключом (CKA)

A

Атака с избранным ключом (chosen key attack) – криптоаналитик задает часть ключа, а на оставшуюся часть ключа выполняет атаку со связанным ключом.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Атака на основе подобранного открытого текста (CPA)

A

Атака на основе подобранного открытого текста (chosen plaintext attack, CPA) – криптоаналитик может самостоятельно подбирать открытый текст. Имеется возможность отсылать любое количество простых текстов и получать в ответ соответствующие шифрованные тексты.

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

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

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Атака на основе подобранного шифротекста (CCA)

A

Атака на основе подобранного шифротекста (chosen ciphertext attack) – у криптоаналитика есть возможность подбирать как открытый, так и шифрованный текст при неизвестном ключе.. Для каждого подобранного открытого текста криптоаналитик получает шифрованный текст, для каждого подобранного шифрованного текста – соответствующий открытый текст.

При неадаптивной атаке криптоаналитик не использует результаты предыдущих расшифровок, то есть шифротексты подбираются заранее. Такие атаки называют атаками в обеденное время (lunchtime или CCA1).

При адаптивной атаке криптоаналитик адаптивно подбирает шифротекст, который зависит от результатов предыдущих расшифровок (CCA2).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Атака с известным открытым текстом (KPA)

A

Атака с известным открытым текстом (known plaintext attack) – известны и открытый и шифрованный текст. Цель атаки - найти ключ.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Атака с использованием только шифрованного текста (COA)

A

Атака с использованием только шифрованного текста (ciphertext-only attack) – криптоаналитику известен только набор шифртекстов, целью является получение как можно большего количества открытых текстов, соответствующих имеющимся шифртекстам, или еще лучше - ключа, использованного при шифровании.

Шифртексты могут быть получены простым перехватом сообщений по открытым каналам связи. Данный вид атаки является слабым и неудобным.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Атака со связанным ключом (RKA)

A

Атака со связанным ключом (related key attack) – вид криптографической атаки, в которой криптоаналитик может наблюдать за работой алгоритма шифрования или расшифрования, использующем несколько секретных ключей. Данная атака не является простым перебором всех возможных значений ключа. Изначально криптоаналитик ничего не знает о точном значении ключей, но предполагается, что атакующему известно некоторое математическое отношение, связывающее между собой ключи.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Атаки, в основе которых лежит парадокс задачи о днях рождения

A

Атаки, в основе которых лежит парадокс задачи о днях рождения (birthday attack) – атаки, получившие свое название в честь парадокса задачи о днях рождения. Суть парадокса в следующем: если в комнате находятся 23 человека, то вероятность того, что два из них родились в один и тот же день, превышает 50%. Этот тип атак основан на том, что одинаковые значения появляются быстрее, чем можно было ожидать.

Например, для заданной хеш-функции f целью атаки является поиск коллизии второго рода. Для этого вычисляются значения f для случайно выбранных блоков входных данных до тех пор, пока не будут найдены два блока, имеющие один и тот же хеш. Таким образом, если f имеет N различных равновероятных выходных значений и N является достаточно большим, то из парадокса дней рождения следует, что в среднем после перебора 1,25*N1/2 различных входных значений будет найдена искомая коллизия.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Блочный шифр

A

Блочный шифр разбивают открытый текст на блоки равного размера и шифрует каждый блок одним и тем же алгоритмом с одним и тем же ключом.

Избыточность в шифр-тексте надо масировать:

  1. рассеивание - распределяет избыточность всего шифр-текста по всему шифр-тексту (метод-перестановки);
  2. перемешивание - маскирует связь между открытым и маскированным текстом (метод-замена).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Свойство изменения-искажения (блочный шифр)

A

Изменение одного бита на входе влечёт изменение многих бит на выходе, так как каждый бит входа влияет на каждый бит выхода.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Вычислительная стойкость

A

Вычислительная стойкость — противнику требуется заведомо невозможные вычислительные ресурсы. Измеряется в объёме вычисления для необходимой атаки.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Двусторонняя атака или атака “встреча на середине”

A

Двусторонняя атака или атака “встреча на середине” (meet-in-the-middle attack) – данный метод применяется для атаки на блочные шифры. Обладает значительно меньшей трудоёмкостью по сравнению с методом полного перебора.

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

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Классификация угроз

A
  1. полное раскрытие (находится способ для любого ключа и любого шифр-текста дешифровать текст, например, статистическая атака для шифра простой замены);
  2. раскрытие ключа (становится известен ключ шифрования);
  3. раскрытие сообщение (становится известен открытый текст);
  4. частичное раскрытие (становится известна часть ключа или сообщения).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Ключ

A

Ключ – конкретное значение некоторых параметров алгоритма криптографического преобразования, обеспечивающее выбор одного преобразования из семейства.

_Принцип Керкгоффса_: стойкость шифра должна обеспечиваться секретностью ключа, а не алгоритма.

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Криптология, криптография, криптоанализ

A

Криптологией называется наука, изучающая математические методы защиты информации (криптос – тайный, логос – изучаю). Криптология разделяется на два направления - криптографию и криптоанализ.

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

Криптоанализ изучает методы нарушения конфиденциальности и аутентичности информации без знания ключей.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Криптосистема, или шифр

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Модель шифра

A

Модель шифра - набор (X,Y,K,E,D),

где X - все возможные входные тексты;

Y - все возможные зашифрованные тексты;

K - все возможные ключи;

E,D - заданные правила преобразований

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Поточный шифр

A

Поточные шифры шифруют тексты посимвольно (побитово) при помощи аддитивной операции (как правило XOR) с последовательностью, сформированной специальным алгоритмом при помощи ключа

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Теоретическая стойкость

A

Теоретическая стойкость — математически доказанная невозможность взлома шифра злоумышленником. В общем случае слабодоказуемо. Измеряется в объёме памяти необходимой для осуществления атаки.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Усеченный дифференциальный криптоанализ (TDA)

A

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

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Шифрование, расшифрование, дешифрование

A

Шифрование (encryption) – процесс преобразования открытых данных в зашифрованные при помощи шифра.

Расшифрование (decryption) – процесс, обратный шифрованию.

Дешифрование (cryptoanalysis) – восстановление исходного текста на основе шифрованного без знания ключа.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Абсолютная энтропия языка

A

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

Если в алфавите языка используется L различных букв, то абсолютная энтропия языка (бит на букву) можно вычислить как: R=log2L

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Вероятностная модель шифра

A

C=(X,Y,K,P(X),P(K),E,D)

где C - шифр,

X - открытый текст,

Y - шифротекст,

K - секретный ключ,

P(X) –вероятность раскрытия открытого текста,

P(K) – вероятность раскрытия секретного ключа,

E: XxK->Y - алгоритм шифрования,

D: YxK->X - алгоритм расшифрования.

X и K выбираются независимо. |X|≤|Y|. ∀y ∈ Y, Ǝx ∈ X, k ∈ K : y=E(x,k)

  1. Вероятность получения Y из X: P(Y|X) = ƩP(K), ∀k ∈ K: E(x,k)=y;
  2. Вероятность получения Y из K: P(Y|K) = ƩP(X), ∀x ∈ X: E(x,k)=y;
  3. Вероятность получения Y: P(Y) = ƩP(X) *P(Y|X) = ƩP(K)P(X) > 0, ∀k ∈ K, x ∈ X: E(x,k)=y;
  4. Вероятность получения Y на K из X: P(X|Y) = P(X)P(Y|X)/P(Y)

При криптоанализе вероятностная модель более удобная чем математическая

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Идеальный шифр по Шеннону
**Идеальный шифр Шеннона** - шифр, который полностью скрывает в шифрованном тексте все статистические закономерности открытого текста. Шифр называется **идеально стойким**, если I(K,Y)=0, где I(K,Y) = H(K) - H(K|Y) - стойкость (количество информации о ключе, содержащейся в шифротексте). Шифр называется **строго идеальным**, если D=0, где D = log|X| - H(X) - избыточность языка.
26
Избыточность языка
**Избыточность языка** - статистическая величина, обозначающая избыточность информации, содержащейся в тексте на определённом языке. Величина избыточности разных языков мира колеблется в пределах 70-80%. Во всех языках на всех уровнях присутствуют избыточные элементы. Избыточность в языке неслучайна: её функция - **облегчить коммуникацию при неблагоприятных условиях передачи информации**. Избыточность представляет собой **систему предупреждения возможных ошибок**. Пусть *A* - алфавит, *A\**- множество всех слов на *A*, *L∈A\** - язык с распространения вероятностей *p(L)*. * HL* – энтропия языка на букву сообщения. * H(Ln)* – энтропия *Ln∈L* –множество всех слов длины *n* в языке *L* (1,25 для английского языка). * Log(A)-HL* – полная избыточность языка на букву сообщения. * dl* - относительная избыточность языка на букву сообщения (0,75 для английского, 0,73 для русского. Это значит, что текст на английском языке можно сжать на 75%, а на русском – 73%).
27
Информационная энтропия
**Информационная энтропия** – это мера неопределённости или непредсказуемости информации, неопределённость появления какого- либо символа алфавита. Например, в последовательности букв некоторого предложения разные буквы появляются с разной частотой, поэтому неопределённость появления для некоторых букв меньше, чем для других. Если же учесть, что некоторые буквенные n-граммы встречаются крайне редко, то неопределённость уменьшается еще сильнее.
28
Ложные ключи
При расшифровке одного и того же шифр-текста на разных ключах могут получаться различные осмысленные тексты. Очевидно только 1 из них будет истинным. Так же истинным будет ключ, который ему соответствует. Ключи, соответствующие другим осмысленным дешифрованным текстом, называются **ложными**. Количество ложных ключей зависит от шифра, длины шифр-текста и избыточности языка. сбур \> брус, сруб …. ппаа \> папа. 1324, 2314, 1423, 2413 (1 истинный ключ, 3 ложных)
29
Методы затруднения криптоанализа. **Диффузия**
**Диффузия (рассеивание)** - рассеяние статистических особенностей открытого текста по широкому диапазону статистических характеристик шифрованного текста. Достигается тем, что значение каждого элемента открытого текста влияет на значения многих элементов шифрованного текста или любой из элементов шифрованного текста зависит от множества элементов открытого текста.
30
Методы затруднения криптоанализа. **Конфузия**
**Конфузия (перемешивание)** - усложнение статистической взаимосвязи между шифрованным текстом и ключом с целью противостояния попыткам определить ключ. Достигается использованием сложных подстановочных алгоритмов. Необходимый уровень конфузии призваны гарантировать алгоритму строгий критерий лавинного эффекта и критерий независимости битов.
31
Методы затруднения криптоанализа. **Лавинный эффект**
**Лавинный эффект** - свойство алгоритма шифрования, заключающееся в высокой чувствительности результата к изменению начальных данных — любые малые изменения открытого текста или ключа должны приводить к значительным изменениям в шифрованном тексте. Шифртексты, полученные из алгоритмов с подобным свойством больше защищены от частотного криптоанализа.
32
Расстояние единственности
**Расстояние единственности** - минимальная длина шифр-текста при которой отсутствуют ложные ключи. Достижение расстояния единственности ещё не означает, что ключ (или открытый текст) можно найти на практике, так как определение не учитывает практическую вычислимость ключа, но лишь постулирует, что его можно найти, например, с помощью полного перебора. * Z* - множество ключей, * k=|A|* - мощность алфавита, * n* - длина шифр-текста, * dx* - относительная избыточность языка на букву сообщения, * K* – количество ложных ключей, * n0* - расстояние единственности. При *K=0* следует
33
Совершенный шифр
Шифр **совершенен**, если ни один из криптотекстов не дает никаких сведений об открытом тексте. ∀y∈Y, x∈X: P(x) = P(x|y) или P(y) = P(y|x)
34
Теорема Шеннона №1 (Теорема о совершенных шифрах)
Теорема Шеннона (необходимые и достаточные условия совершенности эндоморфного шифра). Чтобы шифр, у которого |X|=|Y|=|K|, был **совершенно стойким**, необходимо и достаточно, чтобы: 1) для любого открытого текста x∈X и шифротекста y∈Y существовал только один ключ k, при котором y=E(x,k); 2) распределение вероятностей P(K) было равномерным, т.е. чтобы вероятность выбора любого ключа k∈K равнялась 1/|K|. Или математическим языком: 1. ∀y∈Y, x∈X Ǝz∈Z : y=E(x,z) 2. ∀z∈Z P(z) = 1/N
35
Теорема Шеннона №2
Если **|X|=|Y| =\> I(Z,Y) ≤ D**, где |X| - длина текста, |Y| - длина шифр-текста, I(Z,Y) = H(Z) - H(Z|Y) - стойкость (количество информации о ключе, содержащейся в шифротексте), H(Z) - энтропия для независимых случайных событий, H(Z|Y) - условная энтропия сообщения при известной криптограмме, D = log|X| - H(X) - избыточность языка.
36
Теорема Шеннона №3
Z - множество ключей, k=|A| - мощность алфавита, n - длина шифр-текста, dx - относительная избыточность языка на букву сообщения, K – количество ложных ключей. **Теорема Шеннона №3:** Количество ложных ключей
37
Энтропия языка
**Энтропия языка** - статистическая функция текста на определённом языке, либо самого языка, определяющая количество информации на единицу текста: r = H(X)/N, где X – сообщение, H(X) – его энтропия, N – длина сообщения. H(X) - энтропия для независимых случайных событий *X* с *n* возможными состояниями (от 1 до n, p — функция вероятности), H(X|Y) - условная энтропия сообщения при известной криптограмме.
38
Криптографические протоколы
**Криптографические протоколы** – направление современной криптографии, занимающееся разработкой схем ЭЦП и открытого распределения ключей между удалёнными абонентами. Под протоколом понимается распределенный алгоритм с двумя и более участниками. Протокол является криптографическим, если он решает по крайней мере одну из трех задач криптографии – обеспечение *конфиденциальности, целостности, неотслеживаемости*. Компонентами к протокола являются участники протокола, каналы связи между участниками, а также либо алгоритмы, используемые участниками, либо постановка той задачи, которую протокол призван решать. Протокол можно назвать криптографическим **только в том случае**, когда в самой его основе **лежит какая-то криптографическая идея**. Протокол же, который **просто использует** в качестве элемента какое-то криптографическое средство (например, HTTPS), криптографическим назвать **нельзя**.
39
Пороговые схемы разделения секрета. Определение
**(n,k) - пороговой схемой** разделения секрета (k≤n) называется такая схема, при которой секрет разделяется между *n* участниками, причем разрешенной группой является любая группа, насчитывающая не менее *k* абонентов.
40
Пороговые схемы разделения секрета. Совершенная и идеальная схемы
**Совершенная схема** - такая, при которой неавторизованная группа участников, объединив свои доли секрета, не может отвергнуть никакой из секретов в M как невозможный. Схема разделения секрета **идеальная -** когда число битов, содержащихся в каждой доле секрета, равно числу битов, содержащихся в самом секрете. **Схема Шамира** является *совершенной* и *идеальной*.
41
Понятие схемы и протокола
В общем, **схема** – это описание и обоснование идеи взаимодействия субъектов, а **протокол** – это непосредственно алгоритм взаимодействия.
42
Примеры задач криптографических протоколов
Примеры задач, решаемых удаленными абонентами при помощи криптографических протоколов. 1. **Подписания контракта**. Взаимодействуют два не доверяющих друг другу участника, которые хотят подписать контракт. Это надо сделать так, чтобы не допустить следующую ситуацию: один из участников получил подпись другого, а сам не подписал. 2. **Подбрасывания монеты**. 3. **Идентификации абонента**. 4. **Разделения секрета**. Существует какой-то секрет. Требуется распределить информацию об этом секрете между абонентами так, чтобы *t* из них, собравшись вместе, могли восстановить секрет, а меньшее их количество – не могли. Применяется для безопасного распределенного хранения информации. 5. **Голосование**. Несколько человек голосуют. Необходимо, чтобы голосование было тайным, но каждый голос был учтен, и учтен только один раз. При этом как голосующие, так и подсчитывающие голоса могут оказаться злоумышленниками. 6. **Передача информации**. Требуется передать некоторую информацию от абонента *A* абоненту *В* так, чтобы эту информацию никто не мог прочитать или подменить.
43
Разделение секрета. Описание
Протоколы **разделения секрета** призваны решить проблему хранения информации так, чтобы те группы людей, которым позволено знать секрет, могли бы его восстановить, а те группы, которым секрет знать не позволено, восстановить его не смогли даже путем перебора. В протоколе разделения секрета имеются n участников, называемых также абонентами (обозначим их P1, P2, … , Pn), и один выделенный участник D, называемый *дилером*, или *раздающим*. Множество всех абонентов P={P1, P2, … , Pn}.
44
Разделение секрета. Разрешённая группа, структура доступа
**Разрешенной группой**, или группой доступа, будем называть непустое подмножество A⊆P участников, которые, собравшись вместе, имеют право на получение секрета. **Структурой доступа** Г будем называть непустое множество всех групп доступа схемы. Будем полагать, что любой абонент из P входит хотя бы в одну группу доступа, иначе присутствие такого абонента в P бессмысленно. Также считаем, что Г замкнуто, то есть если A⊆B⊆P, и A⊆Г, то B⊆Г. Действительно, если абоненты P1, P2, …, Pk могут совместно **восстановить секрет**, то, если к ним присоединится еще несколько абонентов Pk+1,…, Pk+t, получившаяся группа тем более сможет восстановить секрет. Протокол разделения секрета состоит из двух основных фаз: **раздачи** и **восстановления**.
45
Разделение секрета. Фаза раздачи
На **фазе раздачи**, или **разделения**, секрета дилер, знающий секрет *m*, генерирует *n* долей секрета *m1, m2, … ,mn* и посылает долю *mi* участнику *Pi* (i=1, …,n) по защищенному каналу связи. Раздача должна быть организована таким образом, чтобы разрешенные группы участников, собравшись вместе, могли однозначно восстановить секрет *m*, а неразрешенные – не могли.
46
Разделение секрета. Фаза восстановления
На **фазе восстановления** секрета какая–либо группа из структуры доступа Г объединяет свои доли секретов *mi* (i=1,…,n) так, чтобы получить секрет *m*.
47
Схема Шамира. Определения
Идея, на которой основана данная схема, заключается в том, что для интерполяции многочлена степени k—1 требуется k точек. Если известно меньшее количество точек, то интерполяция будет невозможной. Элементы: **p** – большое простое число. **p** должно быть больше любого секрета, который предполагается разделять в этой схеме (p\>m). Тогда m∈Zp. **n** – число долей секрета. **k** – минимальный размер разрешенной группы.
48
Схема Шамира. Подготовительная фаза
Раздающий выбирает коэффициенты *s1, s2, … , sk-1 ∈Zp* случайным образом и составляет секретный полином *S(x) = m+s1x+s2x2+ … +sk-1xk-1 mod p*
49
Схема Шамира. Фаза раздачи
**Раздача секрета**: каждому участнику посылается его доля секрета. Долей секрета i-го участника является пара чисел (i, S(i)).
50
Схема Шамира. Фаза восстановления
Пусть свои доли секрета объединяют *k* участников с номерами *i1, i2, … , ik*. Такая группа участников располагает долями *(i1,S(i1)), (i2,S(i2)), …, (ik,S(ik))*. Каждая такая доля является точкой многочлена *S(x)*, который имеет степень *k—1*. Поэтому, обладая *k* точками этого многочлена, участники могут восстановить коэффициенты многочлена, либо решив систему линейных сравнений относительно неизвестных коэффициентов *m, s1, s2, … , sk-1*, либо воспользовавшись интерполяционным многочленом Лагранжа.
51
Типы протоколов
В настоящий момент типов протоколов насчитывается порядка тридцати, и со временем становится всё больше. Различают **прикладные** и **примитивные** протоколы. **Прикладной протокол** решает конкретную задачу, которая возникает на практике. **Примитивные протоколы** используют как «строительные блоки» для прикладных.
52
Алгоритм простой аутентификации
Простая аутентификация имеет следующий общий алгоритм: 1. Субъект запрашивает доступ в систему и вводит личный идентификатор и пароль 2. Введенные уникальные данные поступают на сервер аутентификации, где сравниваются с эталонными 3. При совпадении данных с эталонными, аутентификация признается успешной, при различии — субъект перемещается к 1-му шагу
53
Аутентификация. Методы аутентификации
**Аутентификация** – процедура проверки подлинности. Задача идентификации – ответить на вопрос «*кто это?*», а аутентификации - «*а он ли это на самом деле?*». **Методы аутентификации**: 1. **Методы, основанные на знании некоторой секретной информации**. Классическим примером таких методов является парольная защита, когда в качестве средства аутентификации пользователю предлагается ввести пароль – некоторую последовательность символов. Данные методы аутентификации являются наиболее распространёнными. 2. **Методы, основанные на использовании уникального предмета**. В качестве такого предмета могут быть использованы смарт-карта, токен, электронный ключ и т.д. 3. **Методы, основанные на использовании биометрических характеристик человека**. На практике чаще всего используются одна или несколько из следующих биометрических характеристик: - отпечатки пальцев; - рисунок сетчатки или радужной оболочки глаза; - тепловой рисунок кисти руки; - фотография или тепловой рисунок лица; - почерк (роспись); - голос. Наибольшее распространение получили сканеры отпечатков пальцев и рисунков сетчатки и радужной оболочки глаза. 4. **Методы, основанные на информации, ассоциированной с пользователем**. Примером такой информации могут служить координаты пользователя, определяемые при помощи GPS. Данный подход вряд ли может быть использован в качестве единственного механизма аутентификации, однако вполне допустим в качестве одного из нескольких совместно используемых механизмов. Широко распространена практика совместного использования нескольких из перечисленных выше механизмов – в таких случаях говорят о многофакторной аутентификации.
54
Интерактивные системы доказательства. История
Теория **доказательств с нулевым разглашением** базируется на понятии интерактивной системы доказательства, которое было введено в 1985 году независимо в работах Бабаи и Гольдвассер, Микали, Ракоффа. Осмысление различных протоколов и методов их построения привело в 1985-1986 годах к появлению двух плодотворных математических моделей – **интерактивной системы доказательства** и **доказательства с нулевым разглашением**. Математические исследования этих объектов позволили доказать множество утверждений, полезных при разработке криптографических протоколов.
55
Интерактивные системы доказательства. Определение
Под **интерактивной системой доказательства** (P,V,S) понимают протокол взаимодействия двух абонентов: **P** - доказывающего и **V** - проверяющего. **P** хочет доказать **V** истинность утверждения **S** (например «я – Иван Иванович»). При этом V не может самостоятельно проверить **S**. Абонент **P** может оказаться противником, пытающимся доказать **V** истинность ложного утверждения **S** (на самом деле **P** – Василий Васильевич, который хочет выдать себя за Ивана Ивановича).
56
Интерактивные системы доказательства. Условия
Протокол может состоять из многих раундов обмена сообщениями между P и V и должен удовлетворять условиям: 1. **Полнота** - если **S** истинно, то **P** докажет **V** истинность **S** с вероятностью 1. 2. **Корректность** - если **S** ложно, то **P** не сможет убедить **V** в истинности **S** с вероятностью, близкой к 1. В интерактивной системе доказательств мы предполагали, что злоумышленником может являться только доказывающий **P**, но не проверяющий **V**. На самом деле, **V** также может оказаться злоумышленником, желающим выведать у **P** какую-то полезную для себя информацию о секрете **S**. Протокол, препятствующий этому, называется **протоколом с нулевым разглашением**, и кроме требований полноты и корректности должен удовлетворять требованию нулевого разглашения. 1. **Нулевое разглашение** - в результате работы интерактивного протокола с нулевым разглашением (P,V,S) абонент **V** не увеличит своих знаний об **S**. Например, **P** хочет доказать проверяющему **V**, что обладает секретным ключом *k*, но не желает раскрывать значения этого ключа, и хочет, чтобы проверяющий не узнал ни одного бита этого ключа.
57
Идентификация, виды идентификации
Под **идентификацией** понимается установление подлинности абонента. Задача идентификации – ответить на вопрос «кто это?», а аутентификации - «а он ли это на самом деле?». В настоящее время различают **три вида** идентификации: 1. идентификация на основе обладания чем-либо (электронным ключом, печатью и т.п.); 2. идентификация на основе знания чего-либо; 3. идентификация на основе отличительных черт (биометрических данных – голос, сетчатка глаза, отпечатки пальцев). Любые биометрические данные или информация, заключенная на физическом носителе, могут быть преобразованы в уникальный ключ (при идентификации при помощи криптографической системы или протокола) или пароль (при аутентификации или идентификации парольными схемами), который будет однозначно определять субъекта.
58
Методы хранения паролей
1. **В открытом виде**. Безусловно, данный вариант не является оптимальным, поскольку автоматически создаёт множество каналов утечки парольной информации. Реальная необходимость хранения паролей в открытом виде встречается крайне редко, и обычно подобное решение является следствием некомпетентности разработчика. 2. **В виде хэш-значения**. Данный механизм удобен для проверки паролей, поскольку хэш-значения однозначно связаны с паролем, но при этом сами не представляют интереса для злоумышленника. 3. **В зашифрованном виде**. Пароли могут быть зашифрованы с использованием некоторого криптографического алгоритма, при этом ключ шифрования может храниться: - на одном из постоянных элементов системы; - на некотором носителе (электронный ключ, смарт-карта и т.п.), предъявляемом при инициализации системы; - ключ может генерироваться из некоторых других параметров безопасности АС – например, из пароля администратора при инициализации системы.
59
Парольные схемы. Особенности
**Парольные схемы**, как правило, применяются для аутентификации зарегистрированных пользователей в компьютерной системе. При всём многообразии существующих механизмов аутентификации, наиболее распространённым из них остаётся парольная защита. Для этого есть несколько причин, из которых мы отметим следующие: * **Относительная простота реализации**. Действительно, реализация механизма парольной защиты обычно не требует привлечения дополнительных аппаратных средств. * **Традиционность**. Механизмы парольной защиты являются привычными для большинства пользователей автоматизированных систем и не вызывают психологического отторжения – в отличие, например, от сканеров рисунка сетчатки глаза. В то же время для парольных систем защиты характерен **парадокс**, затрудняющий их эффективную реализацию: **стойкие** пароли **мало пригодны** для использования человеком. Действительно, стойкость пароля возникает по мере его усложнения; но чем сложнее пароль, тем труднее его запомнить, и у пользователя появляется искушение записать неудобный пароль, что создаёт дополнительные каналы для его дискредитации.
60
Парольные схемы. Оценка стойкости
Оценим элементарные взаимосвязи между основными параметрами парольных систем. Введём следующие обозначения: * **A** - мощность алфавита паролей; * **L** - длина пароля; * **S=AL** - мощность пространства паролей; * **V** - скорость подбора паролей; * **T** - срок действия пароля; * **P** - вероятность подбора пароля в течение его срока действия. Очевидно, что справедливо следующее соотношение: ***P=(V\*T)/S*** Обычно скорость подбора паролей **V** и срок действия пароля **T** можно считать известными. В этом случае, задав допустимое значение вероятности **P** подбора пароля течение его срока действия, можно определить требуемую мощность пространства паролей **S**. Заметим, что уменьшение скорости подбора паролей **V** уменьшает вероятность подбора пароля. Из этого, в частности, следует, что если подбор паролей осуществляется путём вычисления хэш-функции и сравнение результата с заданным значением, то большую стойкость парольной системы обеспечит применение медленной хэш-функции.
61
Парольные схемы. Рекомендации по практической реализации
При построении системы парольной защиты необходимо учитывать специфику АС и руководствоваться результатами проведённого анализа рисков. В то же время можно привести следующие **практические рекомендации**: * **Установление минимальной длины пароля**. Очевидно, что регламентация минимально допустимой длины пароля затрудняет для злоумышленника реализацию подбора пароля путём полного перебора. * **Увеличение мощности алфавита паролей**. За счёт увеличения мощности (которое достигается, например, путём обязательного использования спецсимволов) также можно усложнить полный перебор. * **Проверка и отбраковка паролей по словарю**. Данный механизм позволяет затруднить подбор паролей по словарю за счёт отбраковки заведомо легко подбираемых паролей. * **Установка максимального срока действия пароля**. Срок действия пароля ограничивает промежуток времени, который злоумышленник может затратить на подбор пароля. Тем самым, сокращение срока действия пароля уменьшает вероятность его успешного подбора. * **Установка минимального срока действия пароля**. Данный механизм предотвращает попытки пользователя незамедлительно сменить новый пароль на предыдущий. * **Отбраковка по журналу истории паролей**. Механизм предотвращает повторное использование паролей – возможно, ранее скомпрометированных. * **Ограничение числа попыток ввода пароля**. Соответствующий механизм затрудняет интерактивный подбор паролей. * **Принудительная смена пароля при первом входе пользователя в систему**. В случае, если первичную генерацию паролей для всех пользователь осуществляет администратор, пользователю может быть предложено сменить первоначальный пароль при первом же входе в систему – в этом случае новый пароль не будет известен администратору. * **Задержка при вводе неправильного пароля**. Механизм препятствует интерактивному подбору паролей. * **Запрет на выбор пароля пользователем и автоматическая генерация пароля**. Данный механизм позволяет гарантировать стойкость сгенерированных паролей – однако не стоит забывать, что в этом случае у пользователей неминуемо возникнут проблемы с запоминанием паролей.
62
Парольные схемы. Угрозы безопасности
В общем случае пароль может быть получен злоумышленником одним из трёх основных способов: 1. **За счёт использования слабостей человеческого фактора**. Методы получения паролей здесь могут быть самыми разными: подглядывание, подслушивание, шантаж, угрозы, наконец, использование чужих учётных записей с разрешения их законных владельцев. 2. **Путём подбора**. При этом используются следующие методы: * **Полный перебор**. Данный метод позволяет подобрать любой пароль вне зависимости от его сложности, однако для стойкого пароля время, необходимое для данной атаки, должно значительно превышать допустимые временные ресурсы злоумышленника. * **Подбор по словарю**. Значительная часть используемых на практике паролей представляет собой осмысленные слова или выражения. Существуют словари наиболее распространённых паролей, которые во многих случаях позволяют обойтись без полного перебора. * **Подбор с использованием сведений о пользователе**. Данный интеллектуальный метод подбора паролей основывается на том факте, что если политика безопасности системы предусматривает самостоятельное назначение паролей пользователями, то в подавляющем большинстве случаев в качестве пароля будет выбрана некая персональная информация, связанная с пользователем АС. И хотя в качестве такой информации может быть выбрано что угодно, от дня рождения тёщи и до прозвища любимой собачки, наличие информации о пользователе позволяет проверить наиболее распространённые варианты (дни рождения, имена детей и т.д.). 1. **За счёт использования недостатков реализации парольных систем**. К таким недостаткам реализации относятся эксплуатируемые уязвимости сетевых сервисов, реализующих те или иные компоненты парольной системы защиты, или же недекларированные возможности соответствующего программного или аппаратного обеспечения.
63
Передача паролей по сети
1. **Передача паролей в открытом виде**. Подход крайне уязвим, поскольку пароли могут быть перехвачены в каналах связи. Несмотря на это, множество используемых на практике сетевых протоколов (например, FTP) предполагают передачу паролей в открытом виде. 2. **Передача паролей в виде хэш-значений** иногда встречается на практике, однако обычно не имеет смысла – хэши паролей могут быть перехвачены и повторно переданы злоумышленником по каналу связи. 3. **Передача паролей в зашифрованном виде** в большинстве является наиболее разумным и оправданным вариантом.
64
Протокол «рукопожатия»
**Протокол Secure Sockets Layer (SSL)** использует комбинацию симметричных и асимметричных алгоритмов шифрования. Симметричные алгоритмы значительно быстрее асимметричных, но последние обеспечивают лучшие средства аутентификации. Сеанс SSL всегда начинается с обмена сообщениями, называемым «рукопожатием» (SSL handshake). «Рукопожатие» позволяет серверу подтвердить свою подлинность клиенту, используя приемы алгоритмов с открытым ключом, а затем позволяет клиенту и серверу взаимодействовать для создания симметричного ключа, используемого для быстрого шифрования и расшифровывания данных, а также обнаружения вмешательства во время сеанса. Также во время рукопожатия сервер может проверять подлинность клиента.
65
Протокол «рукопожатия». Алгоритм
1. **Клиент отсылает серверу номер поддерживаемой им версии протокола SSL, настройки шифра, данные**, специфичные для сеанса, и другую информацию, необходимую серверу для взаимодействия с клиентом, использующим SSL. 2. **Сервер присылает клиенту свой номер версии, настройки шифра и другую информацию**, необходимую клиенту. Также сервер присылает свой сертификат и, если клиент запросил ресурс, для доступа к которому требуется аутентификация клиента, сервер запрашивает сертификат клиента. 3. **Клиент**, используя информацию, полученную от сервера, **производит проверку** его **подлинности**. Если сервер не может быть аутентифицирован, пользователь предупреждается о проблеме и информируется о невозможности установки защищенного и аутентифицированного соединения. В случае успешной аутентификации сервера, клиент переходит к шагу 4. 4. Используя данные, сгенерированные на предыдущих шагах, **клиент** (взаимодействуя с сервером в зависимости от используемого им шифра) **создает предглавный ключ** для сеанса, шифрует его на открытом ключе сервера (полученном с сертификатом сервера на шаге 2) и отправляет серверу зашифрованный предглавный ключ. 5. Если **сервер запросил аутентификацию клиента** (необязательный шаг), клиент также подписывает часть данных, уникальную для данного «рукопожатия» и известную как клиенту, так и серверу. В этом случае, клиент отсылает серверу вместе с предглавным ключом подписанные данные и свой сертификат. 6. Если **сервер запросил аутентификация клиента**, он пытается **проверить подлинность клиента** и в случае невозможности установления подлинности, сеанс завершается. В случае успешной аутентификации клиента, сервер использует свой секретный ключ для расшифровывания предглавного ключа, и выполняет ряд действий (которые также выполняет клиент, начиная с того же предглавного ключа) для создания главного ключа. 7. **Клиент и сервер используют главный ключ** для создания сеансовых ключей, которые являются симметричными ключами, используемыми для шифрования и расшифровывания информации в течении сеанса SSL и проверки целостности передаваемой информации (то есть, обнаружения любых изменений данных в промежутке между отправкой и получением по SSL соединению). 8. **Клиент посылает сообщение серверу**, информируя, что последующие сообщения будут зашифрованы сеансовым ключом. Затем отдельно он посылает зашифрованное сообщение о завершении клиентской части «рукопожатия». 9. **Сервер отправляет сообщение клиенту**, информируя его, что последующие сообщения будут зашифрованы сеансовым ключом. Затем отдельно отправляется зашифрованное сообщение, сигнализирующее о завершении серверной части «рукопожатия». 10. **SSL рукопожатие** на этом **завершается** и **начинается сеанс**. Клиент и сервер используют сеансовый ключ для шифрования, расшифровывания и проверки целостности данных. 11. Это **нормальное состояние защищенного канала**. В любое время, по внутренним или внешним причинам, любая сторона может перенастроить соединение, в данном случае процедура повторяется.
66
Управление ключами
**Управление ключами** - информационный процесс, включающий в себя три элемента: * генерацию ключей; * накопление (хранение) ключей; * распределение ключей. Кроме выбора подходящей для конкретной ИС криптографической системы, важная проблема - управление ключами. Как бы ни была сложна и надежна сама криптосистема, она основана на использовании ключей.
67
Управление ключами. Генерация ключей
Не стоит использовать неслучайные ключи с целью легкости их запоминания. Как правило используют датчики ПСЧ. Однако степень случайности их генерации должна быть достаточно высоким. Идеальным генераторами являются устройства на основе “натуральных” случайных процессов.
68
Управление ключами. Ключевая информация
Под **ключевой информацией** понимается совокупность всех действующих в ИС ключей. Если не обеспечено достаточно надежное управление ключевой информацией, то завладев ею, злоумышленник получает неограниченный доступ ко всей информации.
69
Управление ключами. Накопление ключей
Под **накоплением ключей** понимается организация их хранения, учета и удаления. Секретные ключи никогда не должны записываться в явном виде на носителе, который может быть считан или скопирован. Каждая информация об используемых ключах должна храниться в зашифрованном виде. Ключи, зашифровывающие ключевую информацию называются мастер-ключами. Очень важным условием безопасности информации является периодическое обновление ключевой информации в ИС. При этом переназначаться должны как обычные ключи, так и мастер-ключи.
70
Управление ключами. Протокол распределения ключей
Задача управления ключами сводится к поиску такого протокола распределения ключей, который обеспечивал бы: * возможность отказа от центра распределения ключей; * взаимное подтверждение подлинности участников сеанса; * подтверждение достоверности сеанса механизмом запроса-ответа, использование для этого программных или аппаратных средств; * использование при обмене ключами минимального числа сообщений.
71
Управление ключами. Распределние ключей. Подходы
**Распределение ключей** между пользователями реализуются двумя разными подходами: 1. **Путем создания** одного ли нескольких **центров распределения** ключей. Недостаток такого подхода состоит в том, что в центре распределения известно, кому и какие ключи назначены и это позволяет читать все сообщения, циркулирующие в ИС. Возможные злоупотребления существенно влияют на защиту. 2. **Прямой обмен** ключами между пользователями информационной системы. В этом случае проблема состоит в том, чтобы надежно удостоверить подлинность субъектов. Для обмена ключами можно использовать криптосистемы с открытым ключом, используя тот же алгоритм RSA.
72
Управление ключами. Распределние ключей. Требования
**Распределение ключей** - самый ответственный процесс в управлении ключами. К нему предъявляются два требования: * оперативность и точность распределения; * скрытность распределяемых ключей.
73
Жизненный цикл ключей
**Жизненный цикл ключей** - последовательность стадий, которые проходят ключи от момента генерации до уничтожения. Включает такие стадии, как: * генерация ключей; * регистрация пользователей и ключей; * инициализация ключей; * период действия; * хранение ключа; * замена ключа; * архивирование; * уничтожение ключей; * восстановление ключей; * отмена ключей.
74
Классификация ключей
* Секретные (симметричные) ключи; * асимметричные ключи: * закрытый ключ (Private key); * открытый ключ (Public key); * сеансовые (сессионные) ключи; * подключи.
75
Классификация ключей. Асимметричные ключи
**Асимметричные ключи** - ключи, используемые в асимметричных алгоритмах (шифрование, ЭЦП); вообще говоря, являются ключевой парой, поскольку состоят из двух ключей: * **Закрытый ключ** (Private key) - ключ, известный только своему владельцу. Только сохранение пользователем в тайне своего закрытого ключа гарантирует невозможность подделки злоумышленником документа и цифровой подписи от имени заверяющего. * **Открытый ключ** (Public key) - ключ, который может быть опубликован и используется для проверки подлинности подписанного документа, а также для предупреждения мошенничества со стороны заверяющего лица в виде отказа его от подписи документа. Открытый ключ подписи вычисляется, как значение некоторой функции от закрытого ключа, но знание открытого ключа не дает возможности определить закрытый ключ. Главное свойство ключевой пары: по секретному ключу легко вычисляется открытый ключ, но по известному открытому ключу практически невозможно вычислить секретный. В алгоритмах ЭЦП подпись обычно ставится на секретном ключе пользователя, а проверяется на открытом. Таким образом, любой может проверить, действительно ли данный пользователь поставил данную подпись. Тем самым асимметричные алгоритмы обеспечивают не только целостность информации, но и её аутентичность. При шифровании же наоборот, сообщения шифруются на открытом ключе, а расшифровываются на секретном. Таким образом, расшифровать сообщение может только адресат и больше никто (включая отправителя). Использование асимметричных алгоритмов снимает проблему распространения ключей пользователей в системе, но ставит новые проблемы: достоверность полученных ключей. Эти проблемы более-менее успешно решаются в рамках инфраструктуры открытых ключей (PKI).
76
Классификация ключей. Подключи
**Подключи** - ключевая информация, вырабатываемая в процессе работы криптографического алгоритма на основе ключа. Зачастую подключи вырабатываются на основе специальной процедуры развёртывания ключа.
77
Классификация ключей. Сеансовые (сессионные) ключи
**Сеансовые (сессионные) ключи** - ключи, вырабатываемые между двумя пользователями, обычно для защиты канала связи. Обычно сеансовым ключом является общий секрет - информация, которая вырабатывается на основе секретного ключа одной стороны и открытого ключа другой стороны. Существует несколько протоколов выработки сеансовых ключей и общих секретов, среди них, в частности,алгоритм Диффи - Хеллмана.
78
Классификация ключей. Секретные (симметричные) ключи
**Секретные (симметричные) ключи** - ключи, используемые в симметричных алгоритмах (шифрование, выработка кодов аутентичности). Главное свойство симметричных ключей: для выполнения как прямого, так и обратного криптографического преобразования (шифрование/расшифровывание, вычисление MAC/проверка MAC) необходимо использовать один и тот же ключ (либо же ключ для обратного преобразования легко вычисляется из ключа для прямого преобразования, и наоборот). С одной стороны, это обеспечивает более высокую конфиденциальность сообщений, с другой стороны, создаёт проблемы распространения ключей в системах с большим количеством пользователей.
79
Ключ
**Ключ** - секретная информация, используемая криптографическим алгоритмом при шифровании/расшифровке сообщений, постановке и проверке цифровой подписи, вычислении кодов аутентичности. При использовании одного и того же алгоритма результат шифрования зависит от ключа. Для современных алгоритмов сильной криптографии утрата ключа приводит к практической невозможности расшифровать информацию. Количество информации в ключе, как правило, измеряется в битах. Для современных **симметричных** алгоритмов основной характеристикой криптостойкости является длина ключа. Шифрование с ключами длиной 128 бит и выше считается сильным, так как для расшифровки информации без ключа требуются годы работы мощных суперкомпьютеров. Для **асимметричных** алгоритмов, основанных на проблемах теории чисел в силу их особенностей минимальная надёжная длина ключа в настоящее время - 1024 бит. Для асимметричных алгоритмов, основанных на использовании теории эллиптических кривых, минимальной надёжной длиной ключа считается 163 бит, но рекомендуются длины от 191 бит и выше.
80
Обеспечение безопасности закрытых ключей
Безопасность закрытого ключа пользователя должна быть обеспечена на каждом этапе его жизненного цикла: * генерация ключевой пары (открытый и закрытый ключи); * хранение закрытого ключа; * использование закрытого ключа (выполнение криптографических * операций, использующих его, например, формирование электронной * цифровой подписи); * уничтожение закрытого ключа.
81
Инфраструктура открытых ключей. Описание
Использование криптосистем с открытым ключом предполагает наличие некоторого центра, в котором в открытом виде будут храниться открытые ключи абонентов системы. Для передачи открытого ключа куда бы то ни было – в центр или другому пользователю – не требуется протоколов, обеспечивающих секретность ключа. Однако открытый ключ требует **аутентификации** – подтверждения того, какому пользователю он принадлежит, для чего и в рамках какой криптосистемы он применяется (для проверки ЭЦП или для шифрования). Действительно, если противник подменит открытый ключ абонента A своим открытым ключом, то он сможет читать всю секретную корреспонденцию абонента A (если подменен ключ шифрования) или сможет вместо A подписывать документы (если подменен ключ проверки цифровой подписи).
82
Инфраструктура открытых ключей. Удостоверяющий центр
При применении систем ЭЦП возникают дополнительные сложности, связанные с тем, что ЭЦП имеет юридическую силу, а значит аутентификация открытого ключа для проверки ЭЦП должна быть надлежаще юридически оформлена. Разумеется, владелец подписи может сам юридически заверять свой открытый ключ, то есть взять на себя обязательство признания подписи, прошедшей проверку на данном открытом ключе. Однако ввиду частоты смены ключей как для шифрования, так и для ЭЦП удобно использовать **удостоверяющие центры** (УЦ). Пользователь заверяет свой открытый ключ перед УЦ, а УЦ заносит ключи всех пользователей в справочник и заверяет его своей подписью. Таким образом, каждый абонент проходит единожды юридическую процедуру регистрации в УЦ, и после этого задача аутентификации ключей и все юридические последствия нарушений ложатся на УЦ. УЦ **составляет** и **заверяет** (электронные) справочники и сертификаты.
83
Инфраструктура открытых ключей. Электронный справочник
**Электронный справочник** содержит идентификаторы всех пользователей УЦ и их открытые ключи и заверяется подписью УЦ. Кроме того, оговариваются сроки, в течение которых информация из справочника действительна, а также криптосистемы, для которых предназначены открытые ключи и типы документов, к которым их допустимо применять.
84
Инфраструктура открытых ключей. Электронный сертификат
**Электронный сертификат** представляет собой цифровое сообщение, содержащее идентификатор и открытый ключ одного пользователя и, возможно, некоторую другую информацию (например, тип документов, которые могут быть заверены этим ключом). Электронный сертификат заверяется подписью УЦ. Сертификат может быть выдан также на группу пользователей и содержать несколько открытых ключей.
85
Инфраструктура открытых ключей. Центр сертификации
УЦ часто представляют состоящим из двух компонентов – центра сертификации (ЦС) и центра регистрации (ЦР). **Центр сертификации** выполняет следующие функции: * подготовка традиционных документов о юридической ответственности за свой открытый ключ и свою ЭЦП к распространяемым сообщениям; * формирование собственного секретного ключа и сертификата ЦС; * формирование электронных справочников и сертификатов конечных пользователей и подчиненных центров; * формирование списка отозванных сертификатов; * ведение базы всех изготовленных сертификатов и списков отозванных сертификатов.
86
Инфраструктура открытых ключей. Центр регистрации
УЦ часто представляют состоящим из двух компонентов – центра сертификации (ЦС) и центра регистрации (ЦР). **Центр регистрации** осуществляет: * регистрацию конечных пользователей и обеспечение их взаимодействия с ЦС; * распространение и публикация справочника открытых ключей и сертификатов; * публикация списков выданных и отозванных сертификатов.
87
Инфраструктура открытых ключей. PKI
Совокупность механизмов и правил, связанных с распределением, аутентификацией и юридической поддержкой открытых ключей, называется **инфраструктурой открытых ключей** (PKI – Public Key Infrastructure). Инфраструктура открытых ключей **включает** в себя как составную часть **сервисы для распространения** справочников открытых ключей и электронных сертификатов, **прикладное программное обеспечение** для создания баз открытых ключей с указанием их атрибутов (владельцев, сроков действия, области применимости и т.п.). Функционирование PKI основано на программно-технических средствах, криптографических механизмах, обеспечивающих придание юридической силы электронным сообщениям, и определенной совокупности организационно-нормативных мероприятий.
88
Инфраструктура открытых ключей. Принципы PKI
В основе PKI лежит использование криптографической системы с открытым ключом и несколько основных **принципов**: * закрытый ключ известен только его владельцу; * удостоверяющий центр создает сертификат открытого ключа, таким образом удостоверяя этот ключ; * никто не доверяет друг другу, но все доверяют удостоверяющему центру; * удостоверяющий центр подтверждает или опровергает принадлежность открытого ключа заданному лицу, которое владеет соответствующим закрытым ключом.
89
Инфраструктура открытых ключей. Иерархическая структура УЦ. Схема
В больших системах, как правило, используется **иерархическая структура управляющих центров**. Имеется **главный** (корневой) УЦ (назовем его УЦ1). Подлинность открытого ключа УЦ1 подтверждается соответствующим юридическим документом. УЦ1 составляет справочники открытых ключей и выдает сертификаты пользователям второго уровня *Pi2* и управляющим центрам второго уровня УЦj2. Эти справочники и сертификаты УЦ1 подписывает своим ключом. Каждый управляющий центр второго уровня обслуживает свою группу пользователей и управляющих центров третьего уровня, подписывая их открытые ключи своим. В такой системе может быть **произвольное количество уровней**.
90
Инфраструктура открытых ключей. Иерархическая структура УЦ. Проверка подлинности
Для того, чтобы **проверить принадлежность** открытого ключа пользователя n-го уровня, необходимо **проверить сертификат**, выданный соответствующим УЦ n-1-го уровня. Подпись этого УЦ можно проверить по сертификату, выданному УЦ n-2-го уровня, и т. д., а подлинность подписи корневого УЦ гарантируется юридическим документом. Для того чтобы все пользователи системы могли **проверить подлинность** сертификатов друг друга, каждый из УЦ, к которому они принадлежат, распределяет между пользователями подписанный этим УЦ справочник открытых ключей, в котором указаны открытые ключи главного УЦ и всех подчиненных УЦ, через которые проходит путь от данного пользователя к главному УЦ
91
Инфраструктура открытых ключей. Иерархическая структура УЦ. Список отозванных сертификатов
Ввиду наличия процедуры обновления сертификатов, возникает необходимость проверки **цепочки списков отозванных сертификатов**. Списки отозванных сертификатов формируются тем же УЦ, который эти сертификаты выдавал. Если сертификат УЦi был отозван вышестоящим УЦ, то все сертификаты подчиненных УЦi управляющих центров считаются недействительными.
92
Стандарт X-509. Описание
**Стандарт X-509** – стандарт, определяющий форматы данных и процедуры распределения открытых ключей с помощью сертификатов с цифровыми подписями, которые предоставляются сертификационными органами (CA). Для технологии открытых ключей необходимо, чтобы пользователь открытого ключа был уверен, что этот ключ принадлежит именно тому удаленному субъекту (пользователю или системе), который будет использовать средства шифрования или цифровой подписи. Такую уверенность дают **сертификаты открытых ключей**, то есть структуры данных, которые связывают величины открытых ключей с субъектами. Эта связь достигается цифровой подписью доверенного CA под каждым сертификатом. Сертификат имеет ограниченный срок действия, указанный в его подписанном содержании. Поскольку пользователь сертификата может самостоятельно проверить его подпись и срок действия, сертификаты могут распространяться через незащищенные каналы связи и серверные системы, а также храниться в кэш-памяти незащищённых пользовательских систем. Содержание сертификата должно быть одинаковым в пределах всего PKI.
93
Стандарт X-509. Общий стандарт V3
* Номер версии * Серийный номер * Эмитент * Субъект * Открытый ключ субъекта (алгоритм, ключ) * Период действия * Дополнительные (необязательные) значения * Алгоритм подписи сертификата * Значение подписи сертификата X509-сертификаты хранятся, как правило, в виде DER (стандартное расширение .cer) или PEM-файлов.
94
Задача распределения ключей
**Задача распределения ключей** сводится к построению такого протокола распределения ключей, который обеспечивает: * взаимное подтверждение подлинности участников сеанса; * подтверждение достоверности сеанса; * использование минимального числа сообщений при обмене ключами.
95
Использование комбинированной криптосистемы
Совместное использование ассиметричной и симметричной криптосистем позволяет **эффективно** реализовать такую базовую **функцию защиты**, как **криптографическое закрытие** передаваемой информации с целью обеспечения ее конфиденциальности. Схема **шифрования** сообщения комбинированным методом:
96
Использование комбинированной криптосистемы. Применение
**Симметричную** криптосистему применяют для **шифрования** исходного открытого текста, а **асимметричную** криптосистему с открытым ключом – только для **шифрования** секретного ключа симметричной криптосистемы. В результате асимметричная криптосистема с открытым ключом не заменяет, а лишь дополняет симметричную криптосистему с секретным ключом, позволяя повысить в целом защищенность передаваемой информации. Такой подход иногда называют схемой электронного «цифрового конверта». Схема дешифрования сообщения комбинированным методом:
97
Ключи асимметричной криптосистемы
**Асимметричная криптосистема** предполагает использование **двух ключей** – **открытого** и **закрытого**. Открытый ключ можно разглашать, а закрытый надо хранить в тайне. При обмене сообщениями необходимо пересылать только открытый ключ, обеспечив его подлинность.
98
Метод распределения ключей Диффи-Хеллмана. Описание
У.Диффи и М.Хеллман изобрели метод открытого распределения ключей в 1976 году. Этот метод **позволяет** пользователям **обмениваться ключами** по **незащищенным каналам** связи. Его безопасность обусловлена трудоемкостью вычисления дискретных логарифмов в конечном поле, в отличие от легкости решения прямой задачи дискретного возведения в степень в том же конечном поле.
99
Метод распределения ключей Диффи-Хеллмана.
Предположим, существует два абонента: Алиса и Боб. Обоим абонентам известны некоторые два числа *g* и *p*, которые не являются секретными и могут быть известны также другим заинтересованным лицам. Для того, чтобы создать неизвестный более никому секретный ключ, оба абонента генерируют большие случайные числа: Алиса — число *a*, Боб— число *b*. Затем Алиса вычисляет значение: *A=g^a mod p* и пересылает его Бобу, а Боб вычисляет: *B=g^b mod p* и передаёт Алисе. Предполагается, что злоумышленник может получить оба этих значения, но не модифицировать их (то есть у него нет возможности вмешаться в процесс передачи). На втором этапе Алиса на основе имеющегося у нее a и полученного по сети *B* вычисляет значение: *B^a mod p=g^ab mod p* **(3)**. Боб на основе имеющегося у него b и полученного по сети A вычисляет значение: *A^b mod p=g^ab mod p* **(4)**. Как нетрудно видеть, у Алисы и Боба получилось одно и то же число **(5)**: *K=g^ab mod p*. Его они и могут использовать в качестве секретного ключа, поскольку здесь злоумышленник встретится с практически неразрешимой (за разумное время) проблемой вычисления **(3)** или **(4)** по перехваченным *g^a mod p* и *g^b mod p*, если числа *p,a,b* выбраны достаточно большими. Схема открытого распределения ключей Диффи-Хеллмана:
100
Требования к распределению ключей
* оперативность и точность распределения; * конфиденциальность и целостность распределяемых ключей.
101
Классификация функций хэширования. Описание
Все существующие функции хэширования можно разделить на два больших класса: **бесключевые хэш-функции**, зависящие только от сообщения, и **хэш-функции с секретным ключом**, зависящие как от сообщения, так и от секретного ключа. *Подклассом бесключевых хэш-функций* являются **коды обнаружения изменений** (modification detection codes, MDC-коды). В криптографии применяются специфические подклассы MDC-кодов, являющиеся однонаправленными и бесколлизионными хэш-функциями, которые получили широкое распространение в системах цифровой подписи. **Функции выработки кодов аутентификации сообщений** (КАС) являются *подклассом ключевых хэш-функций* и обладают дополнительным свойством вычислительной стойкости.
102
Классификация функций хэширования. Хэш-функции по внутренним преобразованиям
По **используемым внутренним преобразованиям** функции хэширования можно разделить на: * функции, использующие битовые логические преобразования. Эти функции применяют к входному сообщению побитовые нелинейные операции “И”, “ИЛИ”, “НЕ”, “ИСКЛЮЧАЮЩЕЕ ИЛИ”, различные сдвиги и, как правило, являются многоцикловыми; * функции, использующие блочные симметричные шифры. Используются в основном для реализации функций выработки КАС; * функции, использующие преобразования в группах, полях и кольцах с целочисленным или полиномиальным базисом; * функции, использующие матричные преобразования.
103
Классификация функций хэширования. Бесключевые функции хеширования. Свойства
1. однонаправленность, 2. устойчивость к коллизиям, 3. устойчивость к нахождению второго прообраза, означающими соответственно высокую сложность нахождения сообщения с заданным значением свертки; пары сообщений с одинаковыми значениями свертки; второго сообщения с тем же значением свертки для заданного сообщения с известным значением свертки.
104
Классификация функций хэширования. Бесключевые функции хеширования. Утверждение №1
Если функция хеширования *h* построена на основе одношаговой сжимающей функции *f* по правилу ***однонаправленность***, то из устойчивости к коллизиям функции *f* следует устойчивость к коллизиям функции *h*. Действительно, если у функции *h* имеется коллизия, то на некотором шаге *i* должна существовать коллизия у функции *f* (при определении коллизий функцию *f(x1, x2)* следует рассматривать как функцию от одного переменного, полученного конкатенацией переменных *x1, x2* в один входной вектор)
105
Классификация функций хэширования. Бесключевые функции хеширования. Утверждение 2
Если хеш-функция **устойчива к коллизиям**, то она **устойчива к нахождению второго прообраза** Действительно, если для заданной пары сообщение-свертка можно подобрать второй прообраз, то полученная пара сообщений будет составлять коллизию
106
Классификация функций хэширования. Бесключевые функции хеширования. Утверждение 3
Устойчивая к коллизиям хеш-функция не обязана быть однонаправленной
107
Классификация функций хэширования. Бесключевые функции хеширования. Утверждение 4
Пусть h:X→Y - хеш-функция и |X|\>2|Y|. Тогда если существует эффективный алгоритм обращения функции h, то существует вероятностный алгоритм нахождения коллизии функции h с вероятностью успеха, большей 1/2. ## Footnote _Доказательство_. Будем случайно и равновероятно выбирать сообщение *x*, вычислять *y=h(x), x'=h-1(y)* и сравнивать *x* c *x'*. Покажем, что данный алгоритм имеет вероят­ность успеха *p\>1/2*. Под успехом мы понимаем построение *x'*, отличного от *х* Пусть X = X1∪…∪Xm - разбиение *X* на классы, состоящие из сообщений с одинаковыми значениями хеш-функции. Ясно, что *m≤|Y|*. Легко заметить, что выполняют­ся следующие соотношения:
108
Классификация функций хэширования. Бесключевые функции хеширования. Трудоёмкость подбора однонаправленной функции
Заметим, что **трудоемкость подбора прообраза** для однонаправленной функции или **трудоемкость поиска второго прообраза** оцениваются величиной O(2n). В то же время трудоемкость поиска коллизии оценивается величиной O(2n/2), так как в данной ситуации применима атака, основанная на парадоксе "дней рождений".
109
Классификация функций хэширования. Бесключевые функции хеширования. Требования
1. Стойкость к вычислению прообраза. 2. Стойкость к вычислению второго прообраза. 3. Стойкость к коллизиям. 4. Отсутствие корреляции. 5. Стойкость к близким коллизиям. 6. Стойкость к частичной однонаправленности. 7. Возможность работы в режиме растягивания.
110
Классификация функций хэширования. Бесключевые функции хеширования. Требования. **Стойкость к вычислению прообраза**
**Стойкость к вычислению прообраза** – невозможность нахождения неизвестного прообраза для любых предварительно заданных хэш-значений, т.е. для заданной хэш-функции *h* вычислительно невозможно найти неизвестный прообраз *x* при предварительно заданном хэш-значении *y=h(x)* для любого значения *y*. Под термином “вычислительно невозможно” здесь и далее будем понимать, что алгоритм, выполняющий данное преобразование, обладает не менее чем экспоненциальной сложностью.
111
Классификация функций хэширования. Бесключевые функции хеширования. Требования. **Стойкость к вычислению второго прообраза**
Стойкость к вычислению второго прообраза – невозможность нахождения любого другого прообраза, который давал бы такое же хэш-значение, как и заданный, т.е. для заданной хэш-функции h и прообраза x вычислительно невозможно найти другой прообраз x'≠x, для которого выполнялось бы условие h(x)=h(x').
112
Классификация функций хэширования. Бесключевые функции хеширования. Требования. **Стойкость к коллизиям**
**Стойкость к коллизиям** – невозможность нахождения двух прообразов для которых вырабатывалось бы одинаковое значение, т.е. для заданной хэш-функции h вычислительно невозможно найти два прообраза x и x', x'≠x, для которых выполнялось бы условие h(x)=h(x'). Требование стойкости к коллизиям является более жестким, чем требование стойкости к вычислению второго прообраза, так как предполагает произвольный выбор двух прообразов.
113
Классификация функций хэширования. Бесключевые функции хеширования. Требования. **Отсутствие корреляции**
**Отсутствие корреляции** – входные и выходные биты не должны коррелировать, т.е. изменение любого входного бита приводит к большим непредсказуемым изменениям выходных бит.
114
Классификация функций хэширования. Бесключевые функции хеширования. Требования. Стойкость к близким коллизиям
**Стойкость к близким коллизиям** – для заданной однонаправленной функции h вычислительно невозможно найти два прообраза x и x’, для которых хэш-значения h(x) и h(x’) отличались бы на малое количество бит.
115
Классификация функций хэширования. Бесключевые функции хеширования. Требования. **Стойкость к частичной однонаправленности**
**Стойкость к частичной однонаправленности** – вычислительно невозможно восстановить любую часть входного сообщения так же, как и все сообщение. Более того, по любой известной части входного сообщения вычислительно невозможно восстановить оставшуюся часть (восстановление t неизвестных бит требует не менее чем 2t-1 операций).
116
Классификация функций хэширования. Бесключевые функции хеширования. Требования. **Возможность работы в режиме растягивания**
**Возможность работы в режиме растягивания** – возможность вычисления хэш-функции при длине входного сообщения меньше чем длина хэш-значения.
117
Классификация функций хэширования. Бесключевые функции хеширования. **Однонаправленная хэш-функция**
**Однонаправленной хэш-функцией** называется функция h, удовлетворяющая требованиям сжатия, простоты вычисления, стойкости к вычислению прообраза и стойкости к вычислению второго прообраза.
118
Классификация функций хэширования. Бесключевые функции хеширования. **Бесколлизионная хэш-функция**
**Бесколлизионной хэш-функцией** называется функция *h*, удовлетворяющая требованиям *сжатия*, *простоты вычисления*, *стойкости* к вычислению второго прообраза и стойкости к коллизиям. На практике обычно используются хэш-функции, являющиеся одновременно бесколлизионными и однонаправленными.
119
Классификация функций хэширования. Бесключевые функции хеширования. **Вычислительная стойкость**
Требование, предъявляемое к применяемым в криптографии хэш-функциям **с секретным ключом**, следующее: **вычислительная стойкость** – невозможность нахождения хэш-значения для заданного сообщения без известного секретного ключа, т.е. для заданной ключевой хэш-функции *h* и одной или более корректных пар прообразов и хэш-значений *(xi, h(xi,k))* и неизвестном секретном ключе k вычислительно невозможно найти другую корректную пару *(x, h(x,k))* для любого *x'≠xi*. Требование вычислительной стойкости предполагает выполнение требования стойкости ключа (по одной или более корректных пар прообразов и хэш-значения *(xi, h(xi,k))* вычислительно невозможно восстановить секретный ключ k), однако, требование стойкости ключа не предполагает выполнение требования вычислительной стойкости.
120
Классификация функций хэширования. Бесключевые функции хеширования. **Функция выработки**
Функция хэширования с секретным ключом h является **функцией выработки** кодов аутентификации сообщений (КАС), если выполняются требования сжатия, вычислительной простоты (при известном сеансовом ключе) и вычислительной стойкости. Следует различать функции выработки КАС и однонаправленные хэш-функции с секретным ключом, являющимся частью сообщения, так как они обладают различными свойствами. В функциях выработки КАС секретный ключ применяется к каждому блоку сообщения, а в однонаправленных хэш-функциях ключ используется префиксным (в начале сообщения), постфиксным (в конце сообщения) или комбинированным методом, что снижает стойкость функции.
121
Классификация функций хэширования. Ключевые функции хеширования. Основные требования
* невозможность фабрикации; * невозможность модификации. Первое требование означает высокую сложность подбора сообщения **с правильным значением свертки**. Второе — высокую сложность подбора для заданного сообщения **с известным значением свертки другого сообщения** с правильным значением свертки.
122
Классификация функций хэширования. Ключевые функции хеширования. Вычислительная устойчивость
Иногда свойства *невозможность фабрикации* и *невозможность модификации* объединяют в одно более сильное свойство — **свойство вычислительной устойчивости**. Это требование означает высокую сложность подбора для заданного множества сообщений {*x1,..,xi*} (быть может, пустого) с известными значениями сверток еще одного сообщения *х, x≠xi, i=1,..,i*, с правильным значением свертки (возможен случай *h(x)=h(xi)*, *i∈{1,..,i}*).
123
Классификация функций хэширования. Ключевые функции хеширования. Применение
Ключевые функции **применяются** в ситуациях, когда стороны доверяют друг другу и могут иметь общий секретный ключ. Обычно в этих условиях не требуется, чтобы система обеспечивала защиту в случае отказа получателя от факта получения сообщения или его подмены. Поэтому от ключевых хеш-функций не требуется устойчивости к коллизиям.
124
Классификация функций хэширования. Ключевые функции хеширования. Атаки
Обычные **атаки** на ключевые хеш-функции заключаются в **имитации**, то есть в передаче сфабрикованных сообщений в пустом канале, а также в подмене передаваемых сообщений с целью навязывания приемной стороне ложных сообщений. Заметим, что из свойства вычислительной устойчивости вытекает **невозможность определения ключа**, используемого хеш-функцией, так как знание ключа дает возможность вычислять значение свертки для любого набора данных. В то же время обратное утверждение неверно, так как подбор значения функции хеширования возможен в некоторых случаях без предварительного определения ключа.
125
Классификация функций хэширования. Ключевые функции хеширования. Имитовставка
**Имитовставка** (MAC, англ. message authentication code — код аутентичности сообщения) — средство обеспечения имитозащиты в протоколах аутентификации сообщений с доверяющими друг другу участниками — специальный набор символов, который добавляется к сообщению и предназначен для обеспечения его целостности и аутентификации источника данных. MAC обычно применяется для обеспечения целостности и защиты от фальсификации передаваемой информации. Для проверки целостности (но не аутентичности) сообщения на отправляющей стороне к сообщению добавляется значение хеш-функции от этого сообщения, на приемной стороне также вырабатывается хеш от полученного сообщения. Выработанный на приёмной стороне и полученный хеш сравниваются, если они равны то считается, что полученное сообщение дошло без изменений. Для защиты от фальсификации (имитации) сообщения применяется имитовставка, выработанная с использованием секретного элемента (ключа), известного только отправителю и получателю.
126
Классификация функций хэширования. Ключевые функции хеширования. Атака дней рождений
Для заданной хэш-функции *f* целью атаки является поиск коллизии второго рода. Для этого вычисляются значения *f* для случайно выбранных блоков входных данных до тех пор, пока не будут найдены два блока, имеющие один и тот же хеш. Таким образом, если *f* имеет *N* различных равновероятных выходных значений и *N* является достаточно большим, то из парадокса дней рождения следует, что в среднем после перебора 1,25\*N1/2 различных входных значений будет найдена искомая коллизия. Для этой атаки, например, может быть уязвима электронная цифровая подпись. Допустим, что 2 человека — *A* и *Б* — хотят подписать контракт, но *А* хочет подсунуть *Б* поддельный вариант контракта. Тогда *А* составляет подлинный контракт и поддельный контракт. Далее посредством внесения допустимых изменений, не меняющих смысла текста (расстановкой запятых, переносов, отступов), *А* добивается, чтобы оба контракта имели одинаковый хеш. После этого *А* посылает *Б* подлинный контракт, *Б* его подписывает, а его подпись также показывает, что он подписал и поддельный контракт, так как оба контракта имеют одинаковый хеш. Для **избежания уязвимости** такого рода достаточно **увеличить длину хеша** настолько, чтобы стало вычислительно сложно найти 2 контракта с одинаковыми хешами. В частности, требуется в **два раза большая длина хеша**, чтобы обеспечить вычислительную сложность, сравнимую со сложностью полного перебора. Другими словами, если с помощью полного перебора злоумышленник может вычислить 2n хэш-значений, то он начнёт находить хэш-коллизии для всех хэшей длиной менее 2n бит.
127
Криптографические контрольные суммы
Для решения задач обеспечения целостности наблюдаемости и подлинности информации применяются **криптографические контрольные суммы**. Методы формирования криптографических контрольных сумм можно разделить на два класса: на базе **симметричных криптографических преобразований** (коды аутентификации сообщений (КАС)) и использующие **несимметричные преобразования** (цифровые подписи) с применением секретных ключей. Такие функции могут применяться как непосредственно в качестве криптографической контрольной суммы, так и в других преобразованиях. Например, для формирования цифровой подписи необходима эффективная функция отображения сообщения в образ небольшой фиксированной длины (хэш-значение, хэш-код или просто хэш). Эти функции называют функциями **хэширования** или **хэш-функциями**.
128
Требования к хэш-функция
Функцией **хэширования** (в широком смысле) называется функция *h*, удовлетворяющая минимум двум требованиям : * **Сжатие** – функция h отображает входное сообщение x произвольной конечной длины в хэш-значение *y=h(x)* небольшой фиксированной длины, при этом входное сообщение будем называть прообразом. * **Простота вычисления** – для заданной функции *h* и сообщения *x*, *h(x)* вычисляется не выше чем с полиномиальной сложностью.
129
RSA
Криптографический алгоритм, базирующийся на сложности задачи **факторизации** больших целых чисел. 1. Выбираются два простых числа заданного размера (например, 1024 бита каждое) 2. Вычисляется n = p\*q. В роли модуля служит n. 3. Вычисляется функция Эйлера от n, φ(n) = (p-1)\*(q-1) 4. Выбирается целое 2 5. Вычисляется d = e-1 mod φ(n) 6. Открытый ключ (e,n) 7. Закрытый ключ (p,q,d,φ(n)) **_Шифрование_**: *y=xe mod n*, где x - сообщение **_Расшифрование_**: *x=yd mod n*, где y - шифртекст
130
Асимметричные криптосистемы
**Асимметричные криптосистемы** (или криптосистемы с открытым ключом) - такие криптосистемы шифрования или ЭЦП, при которых задействовано два ключа — **открытый** и **закрытый**, открытый при этом передается заинтересованному лицу по открытому каналу связи и используется для проверки ЭЦП или для шифрования сообщения.
131
Асимметричные криптосистемы. Недостатки
* алгоритм зачастую использует определенные математические свойства, потому сложнее подвергается модификации * более длинные, по сравнению с симметричными алгоритмами, ключи, обеспечивающие аналогичную стойкость * в среднем шифрование-расшифрование проходит на 2-3 порядка медленнее относительно симметричных * требует значительно больших выч. Ресурсов, потому чаще используется как часть другой системы.
132
Асимметричные криптосистемы. Применение
Алгоритмы криптосистемы с открытым ключом можно использовать * как самостоятельное средство для защиты передаваемой и хранимой информации, * как средство распределения ключей (обычно с помощью алгоритмов криптосистем с открытым ключом распределяют ключи, малые по объёму, а саму передачу больших информационных потоков осуществляют с помощью других алгоритмов), * как средство аутентификации пользователей.
133
Криптосистема Эль-Гамаля
Схема Эль-Гамаля (Elgamal) — криптосистема с открытым ключом, основанная на трудности вычислениядискретных логарифмов в конечном поле.
134
Криптосистема Эль-Гамаля. **Генерация ключей**
**_Генерация ключей:_** 1. Генерируется случайное простое число p. 2. Выбирается случайный целое число g такое, что 1\< li=""\> \<\> 3. Выбирается случайное целое число x такое, что 1\< li=""\> \<\> 4. Вычисляется y=gx mod p. 5. Открытым ключом является тройка (p,g,y), закрытым ключом — число x.
135
Криптосистема Эль-Гамаля. **Шифрование**
Сообщение M шифруется следующим образом: 1. Выбирается сессионный ключ — случайное целое число k такое, что 1 2. Вычисляются числа a=gk mod p и b=yk M mod p 3. Пара чисел (a,b) является шифротекстом. Нетрудно видеть, что длина шифротекста в схеме Эль-Гамаля длиннее исходного сообщения M вдвое.
136
Криптосистема Эль-Гамаля. **Расшифрование**
Зная закрытый ключ *x*, исходное сообщение можно вычислить из шифротекста *(a,b)* по формуле: *M=b(ax)-1 mod p* При этом нетрудно проверить, что *(ax)-1 ≡ g-kx (mod p)*
137
Односторонняя функция
Функция f{0,1}\* -\> {0,1}\* называется **односторонней функцией**, если она эффективно вычисляется за полиномиальное время, но для обратного вычисления не существует эффективных алгоритмов. Под о*братным вычислением* следует понимать нахождение по заданному значению функции одного любого значения из прообраза. В криптографии ОФ применяется как способ скрыть истинное значение входных данных (например, пароль) либо как способ «сжать» входные данные до размера, приемлемого для криптосистемы (подписывается не весь документ, а его хэш).
138
Проблема дискретного логарифмирования
Задача дискретного логарифмирования заключается в том, чтобы по данным целым *a*, *b*, *m* решить уравнение: *ax = b (mod m)*, где *a* и *m* - взаимно просты. Криптостойкость основывается на предположительно высокойвычислительной сложности обращения показательной функции. Последняя вычисляется достаточно эффективно, в то время как даже самые современные алгоритмы вычисления дискретного логарифма имеют очень высокую сложность, которая сравнима со сложностью наиболее быстрых алгоритмов разложения чисел на множители.
139
Проблема факторизации
Факторизацией натурального числа называется его разложение в виде произведения простых множителей, с точностью вплоть до порядка. Предполагаемая большая вычислительная сложность задачи факторизации лежит в основе криптостойкости некоторых алгоритмов шифрования с открытым ключом, таких как RSA. Более того, если известен хотя бы один из параметров ключей RSA, то система взламывается однозначно, кроме того, существует множество алгоритмов восстановления всех ключей в системе, обладая какими — то данными.