Смысл данной теоремы в том, что при передаче по реальным каналам можно
закодировать сообщение таким образом, что действие шумов не приведет к
потере информации. Это достигается за счет повышения избыточности кода
(то есть увеличения длины кодовой цепочки); безусловно, возрастает время
передачи, что следует считать платой за надежность.
При этом в теореме и при ее доказательстве не указывается, каким образом
следует осуществлять такое кодирование — она лишь утверждает
принципиальную его возможность; поиск же кода – самостоятельная задача.
() Контроль 2016 год 4 / 54
Потери при хранении информации
Пластмассовые корпуса микросхем памяти компьютеров содержат,
хоть и в ничтожных количествах, тяжелые элементы, которые
вследствие радиоактивного распада испускают α-частицы. Попадая в
полупроводниковые элементы памяти, они могут вызвать изменение
их состояния, то есть искажение хранимой информации. Как часто
можно ожидать такого сбоя? Лабораторные эксперименты показали,
что «время наработки на отказ» отдельно взятого элемента
превышает миллион лет. Казалось бы, это обстоятельство не дает
оснований для беспокойства. Однако следует учесть, что общее
количество подобных элементов в памяти современного компьютера
весьма велико. Например, память емкостью 1 Мбайт содержит
8388608 двоичных элементов1 . Следовательно, среднее время
появления ошибки составит:
106 1
t≈ ≈ года ≈ 45 дней.
8 · 106 8
1
8 транзисторов на бит.
() Контроль 2016 год 5 / 54
Это уже совсем небольшая величина, которая, с учетом того, что
память современных ПК составляет 32 – 64 Мбайт, сокращается до
1 дня. В то же время нет экономичных технических способов
исключения влияния этих α-частиц. Данная оценка показывает, что
проблема защиты информации от искажения даже при ее хранении
весьма актуальна.
Решение проблемы, как уже было сказано, состоит в использовании
таких методов кодирования информации, которые позволили бы
контролировать правильность передачи (хранения) и при обнаружении
ошибки исправлять ее. При этом можно в качестве самостоятельных
рассмотреть две ситуации:
1. кодирование обеспечивает только установление факта искажения
информации — в этом случае исправление производится путем ее
повторной передачи;
2. кодирование позволяет локализовать и автоматически исправить
ошибку передачи (хранения).
9 10 11 12 13 14 15 5 6 7 12 13 14 15 3 6 7 10 11 14 15 3 5 7 9 11 13 15
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
1 1 0 0 1 1 1 1 1 1 0 0 1 1 1
A = q · t + ra , (3)
где
A, q, t, ra — целые числа;
A — любое контролируемое n-разрядное число;
q — модуль или остаток;
t — частное;
ra — наименьший остаток от деления числа A на q
(контрольный код числа A).
Записывается соотношение (3) следующим образом:
A ≡ ra mod q . (4)
A ≡ ra mod q , (10)
A ≡ a1 mod p,
σi = (−1)i · γ i . (18)
Поскольку мы, согласно (5), оперируем с наименьшим остатком ra по
модулю q, то можно в выражении (17) заменить σi на rσi —
наименьший остаток от деления σi на q. Тогда
n−1
X
ra ≡ ai · rσi mod q . (19)
i=0
rσi pi
≡ mod q , (23)
rσi−1 p i−1
откуда получаем
то в P-ичной системе (P = p m )
k−1
X n
A= ai · (p m )i , где k = . (28)
m
i=0
A ra B rb A+B rA+B ra + rb
Сложение: 28 1 15 0 43 1 ≡ 1+0
17 2 13 1 30 0 ≡ 2+1
A ra B rb A−B rA−B ra − rb
Вычитание: 28 1 15 0 13 1 ≡ 1−0
17 2 13 1 4 1 ≡ 2−1
A ra B rb A×B rA×B ra × rb
28 1 15 0 420 0 ≡ 1×0
Умножение:
17 2 13 1 221 2 ≡ 2×1
17 2 13 1 220 1 6 = 2×1
() Контроль 2016 год 44 / 54
Контроль логических операций
Введём обозначения:
A, B — двоичные вектора;
ra ≡ A mod q, rb ≡ B mod q;
r& ≡ (A&B) mod q;
r⊕ ≡ (A ⊕ B) mod q;
r∨ ≡ (A ∨ B) mod q.
Тогда сформулированное выше утверждение можно записать
следующим образом:
A + B = (A ⊕ B) + 2 · (A&B) . (29)
Кроме того, очевидно3
A ∨ B = (A ⊕ B) + (A&B) . (30)
Из (29) можно получить
(A ⊕ B) = A + B − 2 · (A&B) . (31)
3
Это можно доказать составлением соответствующих таблиц истинности.
() Контроль 2016 год 48 / 54
Доказательство (окончание)
Известно соотношение
B n = (2n − 1) − Bn = En − Bn , (36)
где
Bn — n-разрядный двоичный вектор,
. . . 1} .
En = |11 {z
n
Перейдя в (36) к остаткам, получим
≡ rB mod (2m − 1)
Итак,
rB ≡ r B mod (2m − 1) , (39)
причём это справедливо лишь для m кратных n.