Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
cryptology-lectures_a4_10pt_2.docx
Скачиваний:
6
Добавлен:
22.12.2018
Размер:
678.28 Кб
Скачать

Глава 5

Метод последовательного исключения Гаусса

5.1. Левообратимые бинарные операции

Пусть E =< E, ⊥> - алгебра с носителем E и семейством левообратимых бинарных операций ⊥ на E.

Определение. Бинарная на E операция ⊥ называется левообратимой, если уравнение

x ⊥ a = b

имеет решение x ∈ E, и притом единственное ∀ a, b ∈ E.

Согласно определению, левообратимая операция ⊥ имеет левообратимую обратную операцию

x = b a

такую, что выполнены тождества

(5.1)

(5.2)

(b ⊥ a) a = b

(b a) ⊥ a = b

∀a, b ∈ E

(5.3)

5.2. Двоякое понимание условия разрешимости

Условия существования и единственности уравнения (5.1) в реализованном аспекте могут пониматься двояко (в

узком и широком смыслах):

· как явная (формальная) разрешимость уравнения (5.1) относительно переменных

· как алгоритмическая (численная) разрешимость уравнения (5.1), то есть как существование алгоритма, который

по значениям a и b вычисляет значение переменной x, удовлетворяющее уравнению (5.1)

Очевидно, оба эти толкования разрешимости содержатся, как частные случаи, в более общем функциональном

толковании, то есть как функция y = x ⊥ a, биективно отображающая E на E для каждого значения "параметра"a ∈

E.

5.3. Пример левообратимой бинарной операции

Две последовательных цикловых (раундовых) фукнции шифра Фейстеля описываются следующим уравнением:

y1 = x1 ⊥ Φ(x2, k1)

y2 = x2 ⊥ Φ(x1 ⊥ Φ(x2, k1), k2)

или

y1 = x1 ⊥ Φ(x2, k1)

y2 = x2 ⊥ Φ(y1, k2)

Последнее преобразование можно понимать как новую левообратимую операцию ⊥ над E × E:

(y1, y2) = (x1, x2)⊥(k1, k2)

(x1, x2) = (y1, y2) ¯ (k1, k2)

или

y = xk

x = yk

(5.4)

(5.5)

(5.6)

(5.7)

(5.8)

(5.9)

(5.10)

(5.11)

:

5. Метод последовательного исключения Гаусса

5.4. Пример левообратимой бинарной операции

X1

X

X2

K

K1

Φ

K2

Φ

Y1

Y

Y2

(y1, y2) = (x1, x2)(k1, k2)

(x1, x2) = (y1, y2)(k1, k2)

5.5. Последовательное исключение переменных

Определение. Независимая переменная системы уравнений

(5.12)

(5.13)

F :

yi = fi(x1, x2, . . . , xn)

1 ≤ i ≤ n

(5.14)

называется ведущей относительно остальных переменных, если:

· во-первых, система () имеет в своем составе хотя бы одно уравнение, явно разрешимое относительно указанной

перменной

· во-вторых, редуцированная система, полученная исключением указанной переменной из остальных уравнений

системы (), вновь имеет в своем составе хотя бы одно уравнение, явно разрешимое относительно некоторой из

своих независимых переменных

Утверждение. Система F допускает последовательное исключение переменных тогда и только тогда, когда она

характеризуется некоторым порядком ее независимых переменных, в котором каждая переменная оказывается веду-

щей относительно всех последующих.

Определение. Систему F будем называть гауссовой, если она допускает последовательное исключение перемен-

ных. Гауссову систему F , допускающую последовательное исключение переменных в порядке x1, x2, . . . , xn будем

называть номинальной.

Утверждение. Всякая гауссова система элементарными преобразованиями может быть приведена к номинальной

форме.

Утверждение. Номинальная система F , отображающая E1 × E2 × . . . × En на себя, процедурой последовательного

исключения переменных преобразуется к равносильной системе G:

G :

yi = gi(y1, . . . , yi−1, xi, xi+1, . . . , xn)

1 ≤ i ≤ n

(5.15)

где каждое i-е уравнение явно разрешимо относительно i-й переменной xi, при этом рекурсивно порождается отобра-

жение

18

5.6. Последовательное исключение переменных

G−1 :

−1

yi = gi (y1, . . . , yi−1, xi, xi+1, . . . , xn)

1 ≤ i ≤ n

(5.16)

где каждое i-е уравнение явно разрешимо относительно i-й переменной и система G−1 является обращением системы

G.

5.6. Последовательное исключение переменных

В результате последовательного исключения переменных из номинальной системы F синхронно (пошагово) гене-

рируются две системы G и G−1:

G :

 y1 = g1(x1, x2, x3, . . . , xn)

 y2 = g2(x1, x2, x3, . . . , xn)

y = g3(x1, x2, x3, . . . , xn)

 ...

 yn = gn(x1, x2, x3, . . . , xn)

(5.17)

G :

−1

 x1 = gn (y1, y2, y3, . . . , yn)

 x2 = gn−1(y1, y2, y3, . . . , yn)

−1

x3 = gn−2(y1, y2, y3, . . . , yn) .

(5.18)

 ...

 xn = g−1(y1, y2, y3, . . . , yn)

Система G равнозначна исходной системе F . При этом каждое i-е уравнение системы G явно разрешимо относи-

тельно i-й переменной, благодаря чему возникает вторая система G−1.

Определение. Системы вида G и G−1, в которых каждое i-е уравнение является биективной функцией по i-й

переменной при любых допустимых значениях других переменных, будем называть g-треугольными (соответственно

номинальной и кономинальной) порядка n × n.

5.7. Выводы по методу последовательного исключения переменных

1. Любая гауссова система F , то есть система, допускающая последовательное исключение переменных, переста-

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

форме.

2. Любая номинальная гауссова система F равнозначна номинальной g-треугольной системе; обращением g-треугольной

номинальной системы служит кономинальная g-треугольная система.

3. Понятие g-треугольных систем не требует (хотя и не исключает) выполнения условий явной разрешимости их

относительно соответствующих независимых переменных. Тем самым понятие g-треугольных систем обобщает

понятие гауссовых систем.

5.8. Метод Гаусса-Зейделя

Дана система F . Требуется найти неподвижную точку отображения F , то есть решить систему уравнений:

x1 = f1(x1, x2, . . . , xn)

x2 = f2(x1, x2, . . . , xn)

. . .

xn = fn(x1, x2, . . . , xn)

(5.19)

В вычислительной математике широко распространены два метода итераций - метод простой итерации и метод

Гаусса-Зейделя.

· Решение системы методом простой итерации. Задается начальное приближение (x0, x0, . . . , xn). Последующие

приближения строятся согласно итерациям:

= fi(xk , xk , . . . , xn)

1 ≤ i ≤ n

(5.20)

k = 0, 1, 2, . . .

· Решение системы методом Гаусса-Зейделя. При тех же начальных данных последующие приближения строятся

согласно итерациям:

19

 3

−1

01 2

 (k+1)

xi

k1 2

5. Метод последовательного исключения Гаусса

 (k+1) (k+1)

xi = fi(x1

1 ≤ i ≤ n

(k+1)

, . . . , xi−1 , xk , xi+1, . . . , xn)

(5.21)

k = 0, 1, 2, . . .

Метод итераций Гаусса-Зейделя алгоритмически равнозначен методу простой итерации:

x1 = f1(x1, x2, . . . , xn)

F : x2 = f2(x1, x2, . . . , xn)

. . .

xn = fn(x1, x2, . . . , xn)

(5.22)

Определение. Пусть задана последовательность g-треугольных систем G1, G2, . . . , Gt, отображающих E1 × E2 ×

. . . × En на себя. Композицию этих отображений

GZi := Gt ◦ Gt−1 ◦ . . . ◦ G2 ◦ G1

(5.23)

будем называть отображением Гаусса-Зейделя ранга t, t ∈ N

Если Gi = G ∀t, то GZi = Gt, и, трактуя параметр t как дискретное время, последовательность x0, x1, . . . , xi, . . .,

где xt = Gt(x0), обычно понимается как траектория системы G.

Вывод: GZ-отображения, построенные на базе g-треугольных систем расширяют класс обратимых отображений

на E1 × E2 × . . . × En.

5.9. G-треугольные системы как левообратимые бинарные операци на

декартовом произведении множеств

Пусть задано произвольное отображение F множества E1 × E2 × . . . × En на себя:

F :

yi = fi(x1, x2, . . . , xn)

1 ≤ i ≤ n

(5.24)

и пусть на каждом множестве Ei(1 ≤ i ≤ n) определена левообратимая бинарная операция ⊥i, пусть, далее, (a1, a2, . . . , an)

- произвольный элемент декартового произведения E1 × E2 × . . . × En. Образуем новую систему:

G :

yi = xi ⊥i fi(y1, . . . , yi−1, ai, xi+1, . . . , xn)

1 ≤ i ≤ n

(5.25)

Очевидно, эта система g-треугольна. Синтезированную на базе произвольной системы F g-треугольную систему G

можно рассматривать на E1 × E2 × . . . × En как левообратимую бинарную операцию ⊥F в базисе F :

¯ = x⊥F a

(5.26)

Отметим, что при E1 = E2 = . . . = En = E, пересталяя уравнения системы F, а также используя бинарные

операции {⊥i}i=1 в различных порядках, можно получить (n!)3, вообще говоря, различных g-треугольных систем

(бинарных операций на E n).

5.10. Применение G-треугольных систем в криптографии

G-треугольные системы обобщают сети Фейстеля

Форма 1 сбалансированной системы

...

z1 = y1 ⊥1 ϕ1(t1, . . . , tn) = x1 ⊥2 f1(k1, x2, . . . , xn)

z2 = y2 ⊥1 ϕ2(y1, t2, . . . , tn) = x2 ⊥2 f2(y1, k2, x3, . . . , xn)

z3 = y3 ⊥1 ϕ3(y1, y2, t3, . . . , tn) = x3 ⊥2 f3(y1, y2, k3, x4, . . . , xn)

(5.27)

(5.30)

zn = yn ⊥1 ϕn(y1, y2, . . . , yn−1, tn) = xn ⊥2 fn(k1, x2, . . . , xn)

Сбалансированная система биективно отображает E n на E n. Здесь: (x1, x2, . . . , xn) - входные переменные; (z1, z2, . . . , zn)

- выходные переменные; (t1, t2, . . . , tn) - свободные переменные (т.е. параметры).

Алгоритм прямого преобразования (первая форма)

Вход

1 шаг

(x1, x2, . . . , xn)

(t1, t2, . . . , tn)

Выход (z1, z2, . . . , zn)

20

ki k

˜

y ¯ ¯

n

(5.28)

(5.29)

(5.31)

5.10. Применение G-треугольных систем в криптографии

z1 = x1 ⊥2 f1(k1, x2, . . . , xn){на выход}

y1 = z1 1ϕ1(t1, t2, . . . , tn){промежуточное состояние}

2 шаг

z2 = x2 ⊥2 f2(y1, k2, x3, . . . , xn){на выход}

y2 = z2 1ϕ2(y1, t2, . . . , tn){промежуточное состояние}

...

n-й шаг

zn = xn ⊥2 fn(y1, . . . , yn−1, kn){на выход

Алгоритм обратного преобразования (первая форма)

Вход

(z1, z2, . . . , zn)

(t1, t2, . . . , tn)

Выход (x1, x2, . . . , xn)

1 этап

Вход: (z1, z2, . . . , zn); (t1, t2, . . . , tn) - параметр

Выход: (y1, y2, . . . , yn−1)

1 шаг y1 = z1 1ϕ1(t1, t2, . . . , tn)

2 шаг y2 = z2 2ϕ1(y1, t2, . . . , tn)

...

n-й шаг yn = zn 1ϕn(y1, . . . , yn−1, tn)

2 этап

Вход: (z1, z2, . . . , zn); (y1, y2, . . . , yn)

Выход: (x1, x2, . . . , xn)

1 шаг xn = zn 2fn(y1, y2, . . . , yn−1, kn) { на выход }

2 шаг xn−1 = zn−1 2fn−1(y1, y2, . . . , yn−2, kn−1, xn) { на выход }

...

(n-1)-й шаг x2 = z2 2f2(y1, k2, x3, . . . , xn) { на выход }

n-й шаг x1 = z1 2f1(k1, x2, . . . , xn) { на выход }

Все входные состояния не хранятся после декодирования.

Форма 2 сбалансированной системы

z1 = y1 ⊥1 ϕ1(t1, . . . , tn) = x1 ⊥2 f1(k1, x2, . . . , xn)

z2 = y2 ⊥1 ϕ2(y1, t2, . . . , tn) = x2 ⊥2 f2(y1, k2, x3, . . . , xn)

z3 = y3 ⊥1 ϕ3(y1, y2, t3, . . . , tn) = x3 ⊥2 f3(y1, y2, k3, x4, . . . , xn)

...

zn = yn ⊥1 ϕn(y1, y2, . . . , yn−1, tn) = xn ⊥2 fn(k1, x2, . . . , xn)

Здесь те же входные, выходные и свободные переменные, что и в форме 1.

Алгоритм прямого преобразования (вторая форма)

(5.32)

(5.35)

Вход

(x1, x2, . . . , xn)

(t1, t2, . . . , tn)

Выход (z1, z2, . . . , zn)

1 шаг

z1 = x1 ⊥2 f1(k1, x2, . . . , xn){на выход}

y1 = z1 1ϕ1(t1, t2, . . . , tn){промежуточное состояние}

2 шаг

z2 = x2 ⊥2 f2(y1, k2, x3, . . . , xn){на выход}

y2 = z2 1ϕ2(y1, t2, . . . , tn){промежуточное состояние}

...

n-й шаг

zn = x2 ⊥2 fn(y1, . . . , yn−1, kn){на выход

Алгоритм обратного преобразования (вторая форма)

Вход

(z1, z2, . . . , zn)

(t1, t2, . . . , tn)

Выход (x1, x2, . . . , xn)

1 этап

Вход: (z1, z2, . . . , zn); (t1, t2, . . . , tn) - параметр

Выход: (y1, y2, . . . , yn−1)

1 шаг y1 = z1 1ϕ1(t1, t2, . . . , tn)

2 шаг y2 = z2 2ϕ1(y1, t2, . . . , tn)

...

n-й шаг yn = zn 1ϕn(y1, . . . , yn−1, tn)

2 этап

Вход: (z1, z2, . . . , zn); (y1, y2, . . . , yn)

Выход: (x1, x2, . . . , xn)

21

(5.33)

(5.34)

(5.36)

5. Метод последовательного исключения Гаусса

1 шаг xn = zn 2fn(y1, y2, . . . , yn−1, kn) { на выход }

2 шаг xn−1 = zn−1 2fn−1(y1, y2, . . . , yn−2, kn−1, xn) { на выход }

...

(n-1)-й шаг x2 = z2 2f2(y1, k2, x3, . . . , xn) { на выход }

n-й шаг x1 = z1 2f1(k1, x2, . . . , xn) { на выход }

22

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]