![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Эта схема была предложена в 1986 году У. Фейге, А. Фиатом и А. Шамиром. Она является наиболее известным доказательством идентичности с нулевой передачей конфиденциальной информации.
Изначально, случайным образом задаются два больших простых числа и вычисляется их произведение – модуль Р, который должен иметь размерность 512…1024 бит. Это значение Р передается всем членам корпоративной компьютерной сети. Значения же двух больших простых чисел не передаются никому и хранятся в секрете.
В частном случае, в процессе аутентификации участвуют две стороны:
- пользователь «А», доказывающий свою подлинность;
- пользователь «В», проверяющий представляемое пользователем «А» доказательство.
Прежде чем приступить к рассмотрению методики аутентификации субъектов информационного взаимодействия в корпоративных сетевых компьютерных системах, необходимо дать описание раздела модульной алгебры, связанного с вычислением квадратичных вычетов.
Некоторое число а < Р, где Р – простое число сравнимо с квадратом некоторого числа X по модулю Р, т.е. выполняется сравнение вида
X2=а modP, тогда число а является квадратичным вычетом по модулю Р. Если это условие не соблюдается, то число а является квадратичным невычетом по модулю Р.
В случае, если «а» является квадратичным вычетом по модулю Р, то сравнение X2=а modP имеет два решения + Xi; - Xi, т.е. число «а» по модулю Р имеет два квадратных корня по модулю Р. Множества квадратичных вычетов находятся вычислением квадратов чисел 1, 2, 3, …, по модулю Р. Например, при Р =11 множество квадратичных определится как:
12=1=1mod11; 22=4=4mod11; 32=9=9mod11; 42=16=16mod11=5mod11;
52=25=25mod11=3mod11; 62=36=36mod11=3mod11; 72=49=49mod11=5mod11;
82=64=64mod11=9mod11; 92=81=81mod11=4mod11; 102=100=100mod11=
=1mod11; 112=121=121mod11=0mod11.
Числа 1, 3, 4, 5, 9 являются квадратичными вычетами по модулю Р при Р = 11. Число таких вычетов определяется как m = ; для рассмотренного примера при Р = 11 число вычетов будет равно m =
,
mi → {m1=1; m2=3; m3=4; m4=5; m5=9}. В свою очередь не существует никаких значений Xi, которые удовлетворяли бы (для рассматриваемого примера) любому из следующих сравнений: X2=2 mod11; X2=6mod11; X2=7 mod11; X2=8 mod11; X2=10 mod11. Следовательно, числа 2, 6, 7, 8, 10 являются квадратичными невычетами по модулю Р = 11. Число таких невычетов определится как к = , для рассматриваемого примера к =
Таким образом, если Р простое число, то число квадратичных вычетов и квадратичных невычетов по заданному модулю Р одинаково.
Для случая, если модуль Р будет определяться как произведение двух простых чисел P = N × L, где N и L простые числа, то число элементов множества квадратичных вычетов по модулю Р определится как:
m =
и это множество характерно тем, что каждый его элемент взаимно простой с Р.
Для примера рассмотрим случай при N=7 и L=5, следовательно множество квадратичных вычетов определится как:
m = = 6.
Производится вычисления элементов множества квадратичных вычетов для Р=35 (N=7 и L=5)
X | X2 mod P |
X2 mod P = 1 mod 35 | |
X2 mod P = 4 mod 35 | |
X2 mod P = 9 mod 35 | |
X2 mod P = 16 mod 35 | |
X2 mod P = 25 mod 35 | |
X2 mod P = 36 mod 35 = 1 mod35 | |
X2 mod P = 49 mod 35 = 14 mod35 | |
X2 mod P = 64 mod 35 = 29 mod35 | |
X2 mod P = 81 mod 35 = 11 mod35 | |
X2 mod P = 100 mod 35 = 30 mod35 | |
X2 mod P = 121 mod 35 = 16 mod35 | |
X2 mod P = 144 mod 35 = 4 mod35 | |
X2 mod P = 169 mod 35 = 29 mod35 | |
X2 mod P = 196 mod 35 = 21 mod35 | |
X2 mod P = 225 mod 35 =15 mod35 | |
X2 mod P = 256 mod 35 = 11 mod35 | |
X2 mod P = 289 mod 35 = 9 mod35 | |
X2 mod P = 324 mod 35 = 9 mod35 | |
X2 mod P = 361 mod 35 = 11 mod35 | |
X2 mod P = 400 mod 35 = 15 mod35 | |
X2 mod P = 441 mod 35 = 21 mod35 | |
X2 mod P = 484 mod 35 =29 mod35 | |
X2 mod P = 529 mod 35 = 4 mod35 | |
X2 mod P = 576 mod 35 = 16 mod35 | |
X2 mod P = 625 mod 35 = 30 mod35 | |
X2 mod P = 676 mod 35 = 11 mod35 | |
X2 mod P = 729 mod 35 = 29 mod35 | |
X2 mod P = 784 mod 35 = 14 mod35 | |
X2 mod P = 841 mod 35 = 1 mod35 | |
X2 mod P = 900 mod 35 = 25 mod35 | |
X2 mod P = 961 mod 35 = 16 mod35 | |
X2 mod P = 1024 mod 35 = 9 mod35 | |
X2 mod P = 1089 mod 35 = 4 mod35 | |
X2 mod P = 1156 mod 35 = 1 mod35 | |
X2 mod P = 1225 mod 35 = 0 mod35 |
Анализ полученных квадратичных вычетов по модулю Р = 35 позволяет сформировать идентичные группы, имеющими решения при определенных значениях Xi.
Таблица 1.
N рупппы | Квадратичные вычеты | Имеет решение при Xi = |
X2 = 1 mod 35 | X=1; X=6; X=29; X=34 | |
X2 = 4 mod 35 | X=2; X=12; X=23; X=33 | |
X2 = 9 mod 35 | X=3; X=17; X=18; X=32 | |
X2 = 11 mod 35 | X=9; X=16; X=19; X=26 | |
X2 = 14 mod 35 | X=7; X=28 | |
X2 = 15 mod 35 | X=15; X=20 | |
X2 = 16 mod 35 | X=4; X=11; X=24; X=31 | |
Л.18 | X2 = 21 mod 35 | X=14; X=21 |
X2 = 25 mod 35 | X=5; X=30 | |
X2 = 29 mod 35 | X=8; X=13; X=22; X=27 | |
X2 = 30 mod 35 | X=10; X=25 |
Из полученных групп составляется множество квадратичных вычетов взаимнопростых с Р=35, их число определяется как
m = = 6.
Элементы этого множества определятся как: Vi →{1, 4, 9. 11, 16, 29}.
Так как элементы множества Vi взаимнопросты с Р=35, то для их значений существуют обратные значения Vi-1 mod P.
Обратные значения Vi-1 mod P определяются из условия, что известна функция Эйлера φ(Р) = =6 × 4 = 24.
Vi-1 mod P = Vi φ(Р)-1 mod P
Для Vi = 1 mod P Vi-1 mod P = 123 mod 35 =1 mod 35
Для Vi = 4 mod P Vi-1 mod P = 423 mod 35 =9 mod 35
Для Vi = 9 mod P Vi-1 mod P = 923 mod 35 =4 mod 35
Для Vi = 11 mod P Vi-1 mod P = 1123 mod 35 =16 mod 35
Для Vi = 16 mod P Vi-1 mod P = 1623 mod 35 =11 mod 35
Для Vi = 29 mod P Vi-1 mod P = 2923 mod 35 =29 mod 35
Рассмотренный раздел модулярной алгебры по вопросам вычисления квадратичных вычетов имеет важное прикладное значение при построении системы аутентификации санкционированных пользователей, процессов и устройств в сетевых корпоративных компьютерных технологиях с нулевой передачей знаний.
На первом этапе целесообразно рассмотреть алгоритм протокола упрощенной аутентификации санкционированных пользователей, процессов и устройств, который определяется как:
Для генерации открытого и секретного ключей для пользователя «А» корпоративный доверенный центр выбирает некоторое число V, которое является квадратичным вычетом по заданному модулю Р. Выбранное значение V будет определено как открытый ключ для пользователя «А». Из представленного множества квадратичных вычетов при Р=35 (Таблица 1) только 6 квадратичных вычетов удовлетворяют условию взаимной простоты с Р=35.
Vi → {1; 4; 9; 11; 16; 29} → {V1=1; V2=4; V3=9; V4=11; V5=16; V6=29}
Для данного подмножества Vi определяются обратные значения его элементов Vi -1 mod P.
Так как значение модуля Р определено как произведение двух простых чисел N и L, то функция Эйлера примет значение (P) = (N-1)×(L-1) = = (7-1) ×(5-1) = 24, следовательно:
Vi -1 = Vi φ(P)-1 mod P = Vi 24-1 mod 35 = Vi 23 mod 35
V1 -1 = V1 23 mod 35 = 123 mod 35 = 1 mod 35 → 1;
V2 -1 = V2 23 mod 35 = 423 mod 35 = 9 mod 35 → 9;
V3 -1 = V3 23 mod 35 = 923 mod 35 = 4 mod 35 → 4;
V4 -1 = V4 23 mod 35 = 1123 mod 35 = 16 mod 35 → 16;
V5 -1 = V5 23 mod 35 = 1623 mod 35 = 11 mod 35 → 11;
V6 -1 = V6 23 mod 35 = 2923 mod 35 = 29 mod 35 → 29;
Из полученного подмножества Vi → {1; 4; 9; 11; 16; 29} → {V1=1; V2=4; V3=9; V4=11; V5=16; V6=29} случайным образом выбирается число, которое и будет являться открытым ключом абонента «А». Для примера принимается V5=16. Для случая V5=16 вычисляется наименьшее значение квадратного корня S = sgrt V5-1 mod P.
Покажем, как производятся вычисления S для подмножества Vi-1 mod P, приведенного выше Vi → {1; 4; 9; 11; 16; 29} → {V1=1; V2=4; V3=9; V4=11; V5=16; V6=29}.
Si = sgrt Vi-1 mod P
1. S1 = sgrt V1-1 mod P = sgrt 1-1 mod 35 = sgrt 1 mod 35 → 1mod 35 → 1;
2. S2 = sgrt V2-1 mod P = sgrt 4-1 mod 35 = sgrt 9 mod 35 → 3 mod 35 → 3;
3. S3 = sgrt V3-1 mod P = sgrt 9-1 mod 35 = sgrt 4 mod 35 → 2 mod 35 → 2;
4. S4 = sgrt V4-1 mod P = sgrt 11-1 mod 35 = sgrt 16 mod 35 → 4 mod 35 → 4;
5. S5 = sgrt V5-1 mod P = sgrt 16-1 mod 35 = sgrt 11 mod 35 = sgrt 46 mod 35 =
= sgrt 46 mod 35 = sgrt 81 mod 35 = 9 mod 35 → 9;
6. S6 = sgrt V6-1 mod P = sgrt 29-1 mod 35 = sgrt 64 mod 35 = 8 mod 35 → 8;
В качестве секретного ключа абонента «А» выбирается одно из значений квадратного корня из представленного подмножества Si = sgrt Vi-1 mod P для выбранного ранее случайным образом значения Vi →V5=16 mod 35 →16, т.е. выбирается Si → S5 = 9 mod 35 → 9, которое является наименьшим значением Si, для которого существует sgrt S mod P. Например, для случая пункт 5 S5 = 9 mod 35 → 9. Следовательно, секретный ключ для абонента «А» будет равен S5 = 9 mod 35 → 9.
Таким образом, значение открытого ключа абонента»А» - КОА определится как V5=16, а значение секретного ключа абонента «А» определено как КЗА и будет равно S5 = 9 mod 35 → 9.
На следующем выполняются позиции протокола аутентификации абонента «А» при организации доверительного обмена информацией в режиме удаленного теледоступа с абонентом «В». Для чего:
1. Абонент «А» выбирает некоторое случайное число r < P и производит вычисление числа x = r2 mod P. Допустим абонент «А» выбирает значение r = 12. В этом случае значение числа x = r2 mod P при r = 12 и P = 35 определится как: x = r2 mod P = 122 mod 35 = 144 mod 35 = 4 mod 35 → 4.
Абонент «А» отправляет значение x = 4 абоненту «В».
2. Абонент «В», в свою очередь, отправляет абоненту «А» случайный бит «b» равный «1» или «0» (b = 1 ˅ 0).
3. Получив от абонента «В» значение b = 0, абонент «А» отправляет значение r = 12 абоненту «В». Если абонент «А» получил от абонента «В» значение b = 1, тогда абонент «А» вычисляет значение y = r × S mod P. Для рассматриваемого примера y = r × S mod P = 12 × 9 mod 35 = 108 mod 35 =
= 3 mod 35 → 3. После указанных вычислений абонент «А» отправляет абоненту «В» значение y = 3.
4. Если абонентом «В» принято значение b = 0, то абонент «В» проверяет равенство x = r2 mod P, чтобы убедиться, что сторона «А» знает значение sgrt x mod P: x = 144 mod 35 = 4, т.е. 4 = 4, так как принятое значение
х = 4 абонентом «В» от абонента «А» равно вычисленному абонентом «В» значению r2 mod P = 122 mod 35 = 144 mod 35 = 4 mod 35 по принятому значению r = 12.
Если абонентом «В» принято от абонента «А» значение бита b = 1, то абонент «В» проверяет условие, что x = y2 × V mod P (для рассматриваемого примера y2 × V mod P = 32 × V5 mod 35 = 9 × 16 mod 35 = 144 mod 35 =
= 4 mod 35 → 4). Следовательно, принятое от абонента «А» значение х = 4 совпадает с вычисленным абонентом «В» значением y2 × V5 mod P =4 mod35 → 4, т.е 4=4. Проведенные абонентом «В» вычисления убеждает его в том, что абонент «А» знает значение sgrt V-1 mod P, т.е. знает, что абонент «А» владеет секретным ключом S = sgrt V-1 mod P.
В рассматриваемом примере y = r × S mod P = 12 × 9 mod 35 = 108 mod 35 = 3 mod 35 → 3, а значение секретного ключа абонента «А» равно
S5 = sgrt V5-1 mod P = sgrt 16-1 mod 35 = sgrt 11 mod 35 = sgrt 46 mod 35 =
= sgrt 46 mod 35 = sgrt 81 mod 35 = 9 mod 35 → 9;
Указанная последовательность расчетов образует один цикл протокола признания доверительности абонента связи, называемый аккредитацией. Для повышения достоверности процесса аутентификации абоненты «А» и «В» повторяют этот цикл t раз при различных случайных значениях r и b.
Дата публикования: 2014-10-25; Прочитано: 981 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!