ПРАВОСЛАВИЕ 2000
ШЕНГЕНСКАЯ ЗОНА
   
 
   
ВТОРАЯ РЕДАКЦИЯ.

ИСПРАВЛЕННАЯ
И ДОПОЛНЕННАЯ.
 
 
ИССЛЕДОВАНИЕ ШТРИХ-КОДА EAN-13 НА ПРЕДМЕТ НАЛИЧИЯ В НЁМ ЧИСЛА 666

ИСХОДНЫЕ МАТЕРИАЛЫ:
1) Иеромонах Лука, монах Продром, насельники афонского монастыря Григориат. "Штриховой код и число 666". Исследование третье (23.6.1997). Обитель преподобного Григория. 23 июня 1997 года. Использованы приведенные в работе описания штрих-кода EAN-13 и описания способов его обработки сканерами.
2) Устные высказывания двух независимых инженеров-программистов, работавших в разное время со сканерами штрих-кодов, о способе представления и передачи кодов от сканера к компьютеру.

ТЕРМИНОЛОГИЯ:
Код - штрих-код EAN-13.
Штрих-символ - 2 штриха различной (в общем случае) толщины, посредством которых графически представляется любая цифра в коде.
Ограждающие штрихи - (Guard Bars, Guard Patterns) - выступающие штриховые символы в начале, середине и конце этикеток кода.
LGP - Left Guard Pattern - левый ограждающий штрих.
CGP - Center Guard Pattern - центральный ограждающий штрих.
RGP - Right Guard Pattern - правый ограждающий штрих.
Сканер - устройство для считывания штрих-кода с этикеток и передачи его в компьютер (кассовый аппарат или банкомат).

РЕЗУЛЬТАТЫ ИССЛЕДОВАНИЙ:
Основная предпосылка к соображению о наличии закодированного числа 666 в штрих-коде EAN-13 (далее: код) - наличие визуального сходства изображения числа 6 и изображений ограждающих штрихов этого кода. Для проверки этого сходства было произведено теоретическое сравнение графического и внутреннего представления, а также способов обработки сканером числа 6 и ограждающих штрихов кода.

1. Графическое представление в штрих-коде EAN-13.

1.1 Размеры изображений числа 6 и ограждающих штрихов.

Чтобы представить графически (в виде штрихов) любое число в коде, в том числе 6, используеся штрих-символ - вертикальная полоска, состоящая, в свою очередь, из 7 более мелких полосок, так называемых модулей, каждый из которых может быть черным или белым. Для представления ограждающих штрихов применяются полоски из меньшего (и различного) числа модулей:
    для LGP и RGP - полоски из 3 модулей,
    для CGP - полоска из 5 модулей.

На следующем рисунке изображена этикетка кода с пояснениями по количеству используемых модулей:
Рис.1 Этикетка кода с указанием количества модулей на один знак
Рис.1 Этикетка кода с указанием количества модулей на один знак.

1.2 Изображение числа 6 и ограждающих штрихов.

Для представления любого числа в коде используется 3 множества штрих-символов: Set A, Set B, Set C, т.е. каждое число на этикетке кода представляется одним из 3-х возможых вариантов. Для изображения числа в Правой части этикетки всегда используется Set C. В Левой части используется Set A или Set B в соответствие с Таблицей 1 в зависимости от первого числа штрих-кода N, находящегося на этикетке слева от LGP.

Рис.2 Этикетка кода с пояснениями по используемым множествам штрихов
Рис.2 Этикетка кода с пояснениями по используемым множествам штрихов.

Таблица 1. Множества, используемые в Левой части этикетки и процентное соотношение чисел кода, представляемых множествами Set A и Set B.
 Левая часть этикетки кодаИ Т О Г О
Значение
числа N
1-я цифра2-я цифра3-я цифра4-я цифра5-я цифра6-я цифраКол-во
Set A
Кол-во
Set B
0AAAAAA60
1AABABB33
2AABBAB33
3AABBBA33
4ABAABB33
5ABBAAB33
6ABBBAA33
7ABABAB33
8ABABBA33
9ABBABA33
И Т О Г О3327
Процентное соотношение (50% занимает Set C)27,522,5

Число N для каждой цифры из Левой части этикетки определяет символом какого множества (Set A или Set B) будет представлена эта цифра. Например, если в крайней левой позиции этикетки (т.е. слева от LGP) стоит 2 (N=2), то 1-я и 2-я цифры представлены штрих-символами Set A, 3-я и 4-я - Set B, 5-я - Set A, 6-я - Set B.

Таким образом, после подсчёта всех вариантов представления любой цифры, в т.ч. и 6, из таблицы становится понятно: если взять все возможные сочетания цифр на этикетке кода (т.е. все возможные варианты этикеток), то 27,5% всех "шестёрок" будут представлены штрих-символами из множества Set A, 22,5% - Set B и 50% - Set C.

Число 6 во множествах Set A,B и C и ограждающие штрихи изображаются следующими способами:
Рис 3. Графическое представление числа 6 в Set A, Set B, Set C и ограждвющих штрихов кода EAN-13
Рис 3. Графическое представление числа 6 в Set A, Set B, Set C
и ограждающих штрихов кода EAN-13.

Из рисунка ясно видно, что изображения ограждающих штрихов совпадают визуально с изображениями числа 6 только в Set B и Set C, что составляет 50%+22,5%=72,5 %, в остальных 27,5% (Set A) эти изображения визуально не совпадают.

2. Внутреннее представление в сканере.

Любой штрих-символ этикетки кода преобразуется сканером в двоичную последовательность нулей и единиц (0 и 1), в которой каждому чёрному модулю соответстует 1, белому - 0. В соответствие с рис.3 двоичные представления изображений следующие:

6(Set A) - 0101111;
6(Set B) - 0000101;
6(Set C) - 1010000;
LGP, RGP - 101;
CGP - 01010;.

Эти последовательности нельзя рассматривать как двоичные числа, а лишь как двоичные изображения (картинки из 0-ей и 1-ц). B процессоре и памяти сканера эти изображения представляются в 8-разрядном двоичном виде путём дополнения слева нулями до 8 разрядов. Таким образом, получаем:

6(Set A) - 00101111;
6(Set B) - 00000101;
6(Set C) - 01010000;
LGP, RGP - 00000101;
CGP -      00001010;.

Ясно, что совпадают только внутренние представления изображения LGP/RGP с внутренним представлением изображения числа 6(Set B), что составляет 22,5% от всех возможных шестёрок в коде (см. п.1.2). Внутренние представления LGP/RGP не совпадают с внутренним представлением CGP, а внутреннее представление CGP не совпадает с какими-либо 6-ми.

К сожалению, в ИСХОДНЫХ МАТЕРИАЛАХ(1) нет явного описания 8-разрядного представления числа 6(Set C) - 010100002, это представление выведено на основе общих правил представления информации в процессоре и памяти. Поэтому оно может оказаться неверным, если именно для числа 6(Set C) в конструкции сканера сделано какое-либо исключение, что представляется практически невероятным. Во всяком случае, это представление легко проверить по каким-либо другим источникам.

3. Алгоритм обработки и распознавания символа сканером.

В ИСХОДНЫХ МАТЕРИАЛАХ(1) подробно описан алгоритм Техника "расстояния ширины" (width distance), который выдает одинаковое для числа 6(Set B,C) и для LGP/RGP соотношение 3:2:1. Теоретическое применение данного алгоритма для распознавания CGP позволяет сдалать вывод:
для CGP возможно получение соотношения 4:3:2:1, которое отличается от 3:2:1 для LGP/RGP и даёт при расшифровке согласно описанию этого алгоритма (в двоичном виде):

 00001111
-00000111
+00000011
-00000001
---------
 000010102
- это как раз внутреннее представление CGP, что и подтверждает правильность соотношения 4:3:2:1.

4. Момент идентификации штрихового символа именно как числа 6.

Сканер передаёт результаты своей работы компьютеру, к которому подключается по клавиатурному входу вместе с клавиатурой (см. рис.4) в точке (*). Такое подключение делается для обеспечения возможности вводить код с этикетки вручную, просто набирая цифры кода на клавиатуре. Клавиатура передаёт в компьютер порядковые номера нажатых клавиш. Поскольку сканер и клавиатура подключены к компьютеру в общей точке (*), сканер "вынужден" также передавать в компьютер порядковые номера клавиш, которые надо было бы нажать на клавиатуре, чтобы получить на экране последовательность чисел с этикетки штрих-кода.

Рис 4. Путь информации от штрих-символа цифры 6 (Set A) до двоичного представления 6 в компьютере
Рис 4. Путь информации от штрих-символа цифры 6 (Set A)
до двоичного представления 6 в компьютере.

Движение информации происходит следующим образом (на рис.4 оно показано на примере штрих-символа цифры 6(Set A)). Любой штрих-символ этикетки кода преобразуется сканером в двоичную последовательность нулей и единиц (0 и 1), в которой каждому чёрному модулю соответстует 1, белому - 0 (см. п.2). Затем для всех двоичных последовательностей, соответсвующих цифрам кода, определяются порядковые номера клавиш, которые необходимо было бы нажать для получения этих цифр (для цифры 6 - клавиша № 77), и передаются в компьютер. Таким образом, ограждающие штрихи в компьютер не передаются, они там не нужны по двум причинам:

1) Ограждающие штрихи выполняют свою служебную функцию выделения правой и левой части этикетки кода лишь на этапе получения в сканере двоичных последовательностей, и далее не нужны.

2) При ручном вводе штрих-кода на клавиатуре набираются только цифры кода, и, соответственно, передаются в компьютер порядковые номера нажатых цифровых (0-9) клавиш без всяких ограждающих штрихов. Поскольку сканер подключен к клавиатурному входу, он "вынужден" передавать также порядковые номера только цифровых клавиш.

И только внутри компьютера происходит преобразование № клавиши в цифру.
В нашем примере по № клавиши 77 компьютер определяет, что введена была цифра 6.

Таким образом, в сканере отсутствует числовое представление числа 6 (двоичное число 00000110), а присутствует только представление изображения числа 6 (см. п.2 настоящей Справки). Числовое представление числа 6 появляется только в компьютере, где ограждающие штрихи в каком-либо виде вообще отсутствуют.


5. О сходстве штрихового изображения числа 6 и ограждающих штрихов.

Данный пункт является вследствие недостатка информации предположением, основанным скорее даже не на логике, а на здравом смысле.

5.1 Использование 2-х полосок единичной ширины с единичным белым промежутком для ограждающих штрихов.

В работе греческих авторов сказано: "этот штрих технически наиболее пригоден в качестве контрольного штриха в этом типе кодирования".

Эта пригодность выражается в том, что для настройки сканера на считывание удобно получить следующую единичную серию импульсов от изображения:
- единичный чёрный импульс;
- единичный белый импульс;
- единичный чёрный импульс,
которая будет использоваться как эталон длительности импульсов при последующем считывании.

5.2 Использование 2-х штрихов единичной ширины с единичным белым промежутком для изображения числа 6(Set B,C).

Изображения числа 6(Set B,C) получаются путём инвертирования (каждый чёрный модуль переходит в белый и наоборот) и последующего зеркального отображения исходного изображения числа 6(Set A). Вероятно, сначала было разработано изображения числа 6(Set A), а уже из него автоматически получились изображения числа 6(Set B) и 6(Set C), которые и соответствуют двум тонким полосам. К сожалению, пока не удалось найти информацию о том, насколько необходимо было изначальное изображение числа 6(Set A) именно в таком виде.


ВЫВОДЫ:

Чтобы было возможно сделать вывод о том, что с математической точки зрения ограждающие штрихи представляют собой три шестерки (666), необходимо выполнение 2-х условий:

  1. Все три ограждающих штриха должны совпадать между собой.
  2. Изображения ограждающих штрихов должны совпадать с изображением цифры 6.
Из исследования ясно видно, что:
  1. При наличии визуального сходства, имеет место только непрямое совпадение ограждающих штрихов между собой, т.к. на уровне внутреннего представления и на уровне результатов применения алгоритма распознавания ограждающие штрихи LGP/RGP не совпадают с центральным штрихом CGP.
  2. Имеет место также непрямое совпадение изображений ограждающих штрихов и цифры 6, т.к. при наличии 3-х вариантов изображения цифры 6, различных в Set A, Set B и Set C, в представлении Set A цифра 6 вообще не совпадает с ограждающими штрихами, в Set C не совпадает на уровне внутреннего представления в сканере, и только в Set B (22,5% от всех возможных вариантов изображения цифры 6) присутствует полное совпадение изображений ограждающих штрихов и цифры 6.

При проведении данного исследования применялся односторонний подход к анализу информации - чисто математический. Однако известно, что число 666 как имя зверя - число символическое, не имеющее уже математического смысла. Следовательно, и рассматривать его надо символически, как состоящее из символов 6. Шестерки, таким образом, теряют свой математический смысл и также становятся символами. Что же остается от 3-х вариантов представления цифры 6? - Ничего, т.к. можно символ инвертировать - обратить (преобразование по вертикали), можно зеркально отобразить (по горизонтали) - он останется тем же символом - 6.


Такая же ситуация и с различием левого/правого ограждающих штрихов LGP/RGP и центрального штриха CGP. Добавление белых полосок слева (или даже справа) не меняет значения символа. Таким образом, изображения ограждающих штрихов и шестерок совпадают символически, и, следовательно, штрих-код EAN-13 содержит число 666.

Составил Игорь Соловьёв
(isol@consoft.ru, isol@energ.ru)
С.-Петербург, 25.04.2000.

 


 
 
© ПРАВОСЛАВИЕ 2000