В прошлой части мы увидели, что ring / кольцо — это структура с двумя операциями:
addition
multiplication
По addition ring всегда является Abelian group. Но по multiplication всё, как говорится, “хужее”:
- не каждый элемент имеет inverse;
- cancellation может не работать;
- два ненулевых элемента могут дать
0.
Вот последняя штука особенно важна. В обычных integers такого не бывает:
ab = 0
значит:
a = 0
или:
b = 0
Но в некоторых rings это ломается.
Например, в Z6:
2 · 3 = 6 ≡ 0 (mod 6)
При этом:
2 != 0
3 != 0
То есть два ненулевых элемента перемножились и дали 0. Именно отсюда начинается тема zero divisors / делителей нуля и integral domains / областей целостности.
Zero divisors
Пусть R — commutative ring. Ненулевой элемент:
a ∈ R
называется zero divisor / делителем нуля, если существует другой ненулевой элемент:
b ∈ R
такой, что:
ab = 0
Важно: оба элемента должны быть ненулевыми. То есть zero divisor — это не просто элемент, который даёт 0 при умножении на 0. Это было бы слишком скучно:
a · 0 = 0
для любого a.
Zero divisor — это элемент, который может дать 0 при умножении на другой ненулевой элемент.
Пример в Z6
В ring:
Z6 = {0, 1, 2, 3, 4, 5}
операция multiplication выполняется modulo 6.
Имеем:
2 · 3 = 6 ≡ 0 (mod 6)
При этом:
2 != 0
3 != 0
Значит 2 — zero divisor. И 3 тоже zero divisor.
Ещё пример:
3 · 4 = 12 ≡ 0 (mod 6)
Значит 4 тоже zero divisor.
Integral domain
Integral domain / область целостности — это commutative ring with unity, в котором нет zero divisors.
То есть ring R является integral domain, если выполняется:
Multiplication commutative:
ab = ba
Есть unity:
1
Нет zero divisors.
Последнее условие можно записать так:
ab = 0
только если:
a = 0
или:
b = 0
Главная идея
Integral domain — это ring, где multiplication ведёт себя ближе к привычным integers. В нём нельзя получить 0, перемножив два ненулевых элемента.
nonzero · nonzero != 0
Именно поэтому слово domain тут можно воспринимать как “нормальная область для арифметики без внезапной грязи”.
Пример: Z является integral domain
Ring integers:
Z
является integral domain.
Почему? Во-первых, Z — commutative ring with unity:
1
Во-вторых, в integers нет zero divisors.
Если:
ab = 0
то обязательно:
a = 0
или:
b = 0
Например, невозможно найти два ненулевых integers, произведение которых равно 0.
Поэтому:
Z is an integral domain
Пример: Z_p при prime p
Если p — prime, то:
Z_p
является integral domain.
Например:
Z5 = {0, 1, 2, 3, 4}
Проверим ненулевые элементы:
1, 2, 3, 4
Никакое произведение двух ненулевых элементов не даст 0 mod 5.
Например:
2 · 3 = 6 ≡ 1 (mod 5)
2 · 4 = 8 ≡ 3 (mod 5)
3 · 4 = 12 ≡ 2 (mod 5)
Нуля не появляется.
Причина в том, что 5 prime.
Если:
ab ≡ 0 (mod 5)
это значит:
5 divides ab
А так как 5 prime, то:
5 divides a
или:
5 divides b
То есть в Z5 один из элементов уже был 0.
Поэтому Z5 не имеет zero divisors.
Почему Z_n ломается, если n не prime
Если n composite, то:
n = ab
где:
1 < a < n
и:
1 < b < n
Тогда в Z_n:
a · b = n ≡ 0 (mod n)
Но сами a и b не равны 0 в Z_n.
Значит появляются zero divisors.
Пример: Z6
6 = 2 · 3
Поэтому в Z6:
2 · 3 ≡ 0 (mod 6)
При этом:
2 != 0
3 != 0
Значит:
Z6 is not an integral domain
Пример: Z10
10 = 2 · 5
Поэтому в Z10:
2 · 5 ≡ 0 (mod 10)
Но:
2 != 0
5 != 0
Значит:
Z10 is not an integral domain
Главное правило для Z_n
Z_n is an integral domain iff n is prime
То есть:
Z2, Z3, Z5, Z7, Z11
являются integral domains.
А:
Z4, Z6, Z8, Z9, Z10, Z12
не являются integral domains.
Почему integral domains возвращают cancellation
В обычной арифметике мы часто сокращаем одинаковый множитель:
ab = ac
если:
a != 0
то:
b = c
Но в произвольном ring так делать нельзя.
Например, в Z6:
2 · 1 = 2
и:
2 · 4 = 8 ≡ 2 (mod 6)
Значит:
2 · 1 = 2 · 4
но:
1 != 4
Мы не можем сократить 2.
Почему? Потому что 2 — zero divisor в Z6.
Cancellation theorem
В integral domain cancellation работает. Пусть R — integral domain.
Если:
a != 0
и:
ab = ac
то:
b = c
Почему это верно
Начинаем с:
ab = ac
Переносим всё в одну сторону:
ab - ac = 0
Выносим a:
a(b - c) = 0
Теперь используем главное свойство integral domain: произведение равно 0 только если один из множителей равен 0.
У нас:
a != 0
Значит второй множитель обязан быть 0:
b - c = 0
Следовательно:
b = c
Зачем это вообще нужно
Integral domain — это попытка сохранить в ring важную часть поведения integers. В произвольном ring может быть странно:
nonzero · nonzero = 0
и из-за этого ломается cancellation. В integral domain такого нет. Поэтому там снова можно рассуждать привычнее:
a != 0
ab = ac
=> b = c
Fields
Введение
Теперь усилим условие ещё сильнее. Integral domain запрещает zero divisors, но всё ещё не требует, чтобы каждый nonzero element имел multiplicative inverse.
Например:
Z
является integral domain.
Но Z не является field, потому что элемент:
2
не имеет inverse внутри Z.
Чтобы 2 был обратимым, нужен был бы элемент:
1/2
но:
1/2 not in Z
Значит integral domain всё ещё не даёт полноценного деления.
А вот field / поле — даёт.
Определение поля
Field / поле — это commutative ring with unity, в котором каждый nonzero element является unit. То есть field — это ring, где можно выполнять:
addition
subtraction
multiplication
division by nonzero elements
Деление на 0, конечно, всё равно запрещено.
Формально F является field, если:
F— commutative ring with unity;- для каждого
a ∈ F, еслиa != 0, существуетa^-1 ∈ F; - выполняется:
aa^-1 = a^-1a = 1
Примеры fields
Привычные examples:
Q
rational numbers;
R
real numbers;
C
complex numbers.
В каждом из них любой nonzero element имеет multiplicative inverse.
Например, в Q:
2^-1 = 1/2
и:
(3/5)^-1 = 5/3
В R:
π^-1 = 1/π
В C:
(1 + i)^-1 = (1 - i)/2
Почему Z не field
Z — хороший ring и даже integral domain, но не field. Причина простая:
2 ∈ Z
но:
2^-1 = 1/2
а:
1/2 not in Z
Значит не каждый nonzero integer является unit.
Поэтому:
Z is not a field
Every field is an integral domain
Каждое field автоматически является integral domain.
Почему?
Пусть F — field, и пусть:
ab = 0
Предположим, что:
a != 0
Так как F — field, у a есть inverse:
a^-1
Умножим обе стороны равенства:
ab = 0
на a^-1 слева:
a^-1(ab) = a^-1 · 0
Левая часть:
a^-1(ab) = (a^-1a)b = 1b = b
Правая часть:
a^-1 · 0 = 0
Получаем:
b = 0
Значит если:
ab = 0
то либо:
a = 0
либо:
b = 0
То есть zero divisors нет.
Следовательно:
field => integral domain
Но не каждый integral domain является field
Обратное неверно.
Z
является integral domain, но не является field.
В Z нет zero divisors, но не каждый nonzero element обратим.
Например:
2 · b = 1
не имеет решения в integers.
Значит:
integral domain does not imply field
Общая картина такая:
field
=> integral domain
=> commutative ring with unity
=> ring
Finite integral domains are fields
Есть важный special case:
every finite integral domain is a field.
То есть если integral domain имеет конечное количество элементов, то каждый nonzero element автоматически имеет inverse.
Почему это работает
Пусть D — finite integral domain.
Возьмём ненулевой элемент:
a ∈ D
Нужно показать, что у a есть inverse.
Рассмотрим multiplication by a:
x -> ax
для всех x ∈ D.
То есть мы берём все элементы D и умножаем их на a.
Если:
ax = ay
то по cancellation в integral domain:
x = y
Значит mapping:
x -> ax
является one-to-one. Но D finite. Для finite set любой one-to-one map из множества в себя автоматически является onto.
Значит среди значений:
ax
обязательно встретится:
1
То есть существует x ∈ D, такой что:
ax = 1
А это и означает:
x = a^-1
Следовательно, каждый nonzero element имеет inverse.
Значит:
D is a field
Почему Z_p является field
Мы уже знаем:
Z_p
является integral domain, если p prime. Но Z_p finite. Значит по теореме:
finite integral domain => field
получаем:
Z_p is a field
для любого prime p.
Например:
Z5 = {0, 1, 2, 3, 4}
является field.
Проверим inverses:
1^-1 = 1
2 · 3 = 6 ≡ 1 (mod 5)
значит:
2^-1 = 3
Также:
3^-1 = 2
и:
4 · 4 = 16 ≡ 1 (mod 5)
значит:
4^-1 = 4
Каждый nonzero element имеет inverse.
Почему Z_6 не field
В Z6:
Z6 = {0, 1, 2, 3, 4, 5}
элемент 2 не имеет inverse.
Проверим:
2 · 0 = 0
2 · 1 = 2
2 · 2 = 4
2 · 3 = 0
2 · 4 = 2
2 · 5 = 4
Мы ни разу не получили:
1
Значит 2 не является unit.
Поэтому:
Z6 is not a field
И это связано с тем, что 6 не prime. В Z6 есть zero divisors:
2 · 3 = 0
А field не может иметь zero divisors.
Пример поля с девятью элементами Z3[i]
Иногда fields выглядят не просто как:
Z_p
Можно построить field с 9 элементами:
Z3[i] = {a + bi | a, b ∈ Z3}
где:
i^2 = -1
Но в Z3:
-1 ≡ 2 (mod 3)
поэтому можно также думать:
i^2 = 2
Элементы этого field:
0
1
2
i
1 + i
2 + i
2i
1 + 2i
2 + 2i
Всего их:
3 · 3 = 9
потому что для coefficient при 1 есть 3 варианта:
0, 1, 2
и для coefficient при i тоже есть 3 варианта:
0, 1, 2
Как выполнять операции в Z3[i]
Складываем coefficients modulo 3.
Например:
(1 + 2i) + (2 + i)
=
3 + 3i
≡ 0
потому что:
3 ≡ 0 (mod 3)
Умножение выполняется как обычно, но с двумя правилами:
coefficients reduced modulo 3
и:
i^2 = -1 = 2
Например:
(1 + i)(1 - i)
=
1 - i^2
Так как:
i^2 = -1
получаем:
1 - (-1) = 2
То есть:
(1 + i)(1 - i) = 2
В Z3 элемент 2 обратим, потому что:
2 · 2 = 4 ≡ 1 (mod 3)
Почему Z3[i] является field
Возьмём ненулевой элемент:
a + bi
где a, b ∈ Z3.
Как и в complex numbers, можно умножить на conjugate:
a - bi
Получаем:
(a + bi)(a - bi)
=
a^2 + b^2
потому что:
i^2 = -1
Теперь в Z3 squares выглядят так:
0^2 = 0
1^2 = 1
2^2 = 4 ≡ 1
То есть square любого ненулевого элемента равен 1.
Если a + bi не равен 0, то хотя бы один из a, b ненулевой.
Тогда:
a^2 + b^2
не равно 0 в Z3.
Возможные варианты:
1 + 0 = 1
0 + 1 = 1
1 + 1 = 2
И 1, и 2 обратимы в Z3.
Значит каждый ненулевой элемент a + bi имеет inverse.
Следовательно:
Z3[i] is a field
Это пример finite field with nine elements.
Characteristic of a ring
Теперь введём ещё одно важное понятие:
characteristic / характеристика
Оно отвечает на вопрос:
сколько раз нужно сложить любой элемент ring с самим собой, чтобы получить
0?
Запись
nx
в additive notation означает:
x + x + ... + x
где x повторяется n раз.
Это не exponent и не multiplication в смысле x^n.
Например:
3x = x + x + x
Определение
Characteristic of a ring R — это наименьшее positive integer n, такое что:
nx = 0
для всех:
x ∈ R
Если такого positive integer не существует, говорят, что ring имеет characteristic 0.
Обозначение:
char R
Пример: characteristic of Z
В Z нет такого positive integer n, что:
nx = 0
для всех integers x.
Достаточно взять:
x = 1
Тогда:
n · 1 = n
А positive integer n не равен 0.
Поэтому:
char Z = 0
Пример: characteristic of Z_n
В Z_n:
n · x = 0
для любого x.
Например, в Z5:
5x = 0
для всех x ∈ Z5.
Проверим:
5 · 1 = 5 ≡ 0 (mod 5)
5 · 2 = 10 ≡ 0 (mod 5)
5 · 3 = 15 ≡ 0 (mod 5)
5 · 4 = 20 ≡ 0 (mod 5)
Поэтому:
char Z5 = 5
В общем виде:
char Z_n = n
Infinite ring может иметь nonzero characteristic
Не надо думать, что characteristic зависит только от количества элементов. Ring может быть infinite, но иметь nonzero characteristic.
Например:
Z2[x]
— ring всех polynomials с coefficients в Z2.
Элементов там бесконечно много:
0
1
x
x + 1
x^2
x^2 + 1
x^5 + x + 1
...
Но coefficients считаются modulo 2.
Поэтому для любого polynomial f(x):
f(x) + f(x) = 0
Например:
(x^2 + x + 1) + (x^2 + x + 1)
=
2x^2 + 2x + 2
=
0
потому что в Z2:
2 ≡ 0
Значит:
char Z2[x] = 2
Хотя сам ring infinite.
Characteristic в ring with unity
Если ring R имеет unity 1, characteristic можно найти проще. Достаточно смотреть на additive order элемента:
1
Если:
1 + 1 + ... + 1
никогда не даёт 0, то:
char R = 0
Если же минимальное positive n, для которого:
n · 1 = 0
равно n, то:
char R = n
То есть:
char R = additive order of 1
Почему достаточно проверять 1
Если:
n · 1 = 0
то для любого x ∈ R:
n · x
=
(1 + 1 + ... + 1)x
где 1 повторяется n раз.
По distributivity:
(1 + 1 + ... + 1)x
=
x + x + ... + x
То есть:
n · x = 0x = 0
Значит если n · 1 = 0, то n · x = 0 для всех x.
А если n · x = 0 для всех x, то в частности это верно для:
x = 1
Поэтому в ring with unity достаточно смотреть на 1.
Characteristic of an integral domain
У integral domain characteristic может быть только:
0
или:
prime number
То есть:
char D = 0
или:
char D = p
где p prime.
Почему characteristic не может быть composite
Пусть D — integral domain, и допустим:
char D = n
где n composite.
Тогда:
n = ab
где:
1 < a < n
и:
1 < b < n
Так как char D = n, то:
n · 1 = 0
Но:
n · 1 = (ab) · 1
Это можно записать как product:
(a · 1)(b · 1) = 0
При этом:
a · 1 != 0
и:
b · 1 != 0
потому что a и b меньше минимального positive числа n, которое зануляет 1. Получается произведение двух ненулевых элементов равно 0. Это zero divisors. Но в integral domain zero divisors быть не может: противоречие. Значит characteristic integral domain не может быть composite.
Поэтому:
char D is 0 or prime
Почему zero divisors ломают привычное решение уравнений
Zero divisors — это не просто странность из определения. Они напрямую влияют на то, как мы решаем polynomial equations.
В школе мы часто используем такой приём:
uv = 0
значит:
u = 0
или:
v = 0
Например, рассмотрим equation:
x^2 - 4x + 3 = 0
Слева стоит polynomial:
x^2 - 4x + 3
Его можно разложить на множители / factorize, то есть переписать как произведение более простых expressions:
x^2 - 4x + 3 = (x - 3)(x - 1)
Это тот же самый polynomial, просто в другой форме. Если раскрыть скобки:
(x - 3)(x - 1)
=
x^2 - x - 3x + 3
=
x^2 - 4x + 3
Значит исходное equation можно переписать так:
(x - 3)(x - 1) = 0
И обычно мы сразу делаем вывод:
x - 3 = 0
или:
x - 1 = 0
Поэтому:
x = 3
или:
x = 1
Но здесь спрятано важное предположение. Мы используем свойство:
uv = 0 => u = 0 or v = 0
А это свойство верно в integral domains, потому что там нет zero divisors.
Пример over Z12
В Z12:
x^2 - 4x + 3 = (x - 3)(x - 1)
но Z12 не integral domain. Там есть zero divisors:
2 · 6 = 0
3 · 4 = 0
4 · 6 = 0
6 · 8 = 0
по modulo 12.
Поэтому из:
(x - 3)(x - 1) = 0
не следует, что обязательно:
x - 3 = 0
или:
x - 1 = 0
Может быть так, что оба factors nonzero, но их product равен 0.
Проверим решения в Z12
Решаем:
x^2 - 4x + 3 = 0
over:
Z12
В Z12 нужно проверять residues:
0, 1, 2, ..., 11
Посмотрим на четыре решения.
x = 1
1^2 - 4 · 1 + 3
=
1 - 4 + 3
=
0
Значит:
x = 1
solution.
x = 3
3^2 - 4 · 3 + 3
=
9 - 12 + 3
=
0
Значит:
x = 3
solution.
x = 7
7^2 - 4 · 7 + 3
=
49 - 28 + 3
=
24
А:
24 ≡ 0 (mod 12)
Значит:
x = 7
тоже solution.
x = 9
9^2 - 4 · 9 + 3
=
81 - 36 + 3
=
48
А:
48 ≡ 0 (mod 12)
Значит:
x = 9
тоже solution.
Итого в Z12:
x = 1, 3, 7, 9
являются solutions.
Почему появились лишние решения
Возьмём:
x = 7
Тогда:
(x - 3)(x - 1)
=
(7 - 3)(7 - 1)
=
4 · 6
=
24
≡ 0 (mod 12)
Но:
4 != 0 in Z12
и:
6 != 0 in Z12
То есть factors не равны 0, но их product равен 0.
Это возможно именно из-за zero divisors.
Что важно для crypto
В крипте часто работают не просто modulo n, а modulo prime:
mod p
Потому что:
Z_p
является field.
А значит:
- нет zero divisors;
- каждый nonzero element имеет inverse;
- можно делить на nonzero elements;
- polynomial equations ведут себя намного предсказуемее;
- можно строить finite fields.
Например, elliptic curves обычно задаются over finite fields:
F_p
или:
F_(2^m)
Там field structure критически важна.
Если взять случайное composite modulo, арифметика может внезапно сломаться из-за zero divisors.