http://www.ean.ru/znak/znak.htm

В.Ю. Коростелев

О вспомогательных знаках штрихового кода и числе "666"

Штриховые коды международной системы EAN/UCC используют свыше 800 000 компаний 94 стран мира. Символ штрихового кода EAN/UPC представляет собой графическое отображение некоторой комбинации цифр в виде штрихов и пробелов. Комбинации цифр присваиваются международными организациями EAN International (European Article Numbering) и UCC (Uniform Code Council), а штриховые коды на товары наносят сами изготовители в соответствии с правилами отображения цифр в виде штрихов и пробелов. Со структурой и составом цифр штрихового кода можно ознакомиться на сайте Ассоциации ЮНИСКАН/ EAN РОССИЯ по адресу www.ean.ru в статье "Руководство по штриховому кодированию".

Правила отображения цифр в виде символа штрихового кода EAN/UPC также являются открытыми и доступны для ознакомления на английском языке в виде европейского стандарта EN 797-95 и на русском языке - в виде ГОСТ Р 51201-98 "Автоматическая идентификация. Штриховое кодирование. Требования к символике ЕАН/ЮПиСи". ГОСТ Р 51201-98 можно приобрести в магазине "Стандарты" по адресу: г. Москва, Донская улица, дом 8.

Штриховые коды EAN (Международной ассоциации EAN International) и UPC (Universal Product Code - американской ассоциации UCC) могут содержать только те цифры, которые изображены внизу под штрихами. Дело в том, что при нанесении штрихового кода его последняя цифра, так называемый 13-й контрольный разряд, рассчитывается ОПРЕДЕЛЕННЫМ образом (см. www.ean.ru). И, если какой-то тайный злоумышленник включит в состав кода дополнительные скрытые цифры, то при первой же проверке в магазине считывающее устройство (сканер), прочитав штриховой код, получит контрольное число, отличное от контрольного разряда, и этикетка с таким кодом будет забракована.

Тем не менее находятся "специалисты", которые обнаруживают в штриховых кодах "число 666". Они находят его в безобидных служебных знаках. Вот отрывок из статьи, опубликованной в журнале "Крымский Афон" № 6/1998-1/1999, которая рассылается по электронной почте:

На самом деле, все мы уже давно и почти ежедневно сталкиваемся с этим в повседневной жизни. И в первую очередь в отношении купли-продажи, в том, что называется "Всемирной Кодировкой Продукции" (UPS), или, попросту говоря, штрих-кодом, нанесенным на все зарубежные, а теперь уже и почти на все отечественные упаковки.
    Штрих-код - это новый компьютерный тип счисления, где каждой цифре соответствуют разные по толщине линии. Цифры от 0 до 9 записываются компьютером в двух или трех вариантах - сетах (как и в обычном счислении, цифры могут быть арабскими, римскими или славянскими). Штрих-код говорит о стране-производителе, качестве, наименовании, стоимости продукта. Естественно, штрих-коды разных товаров отличаются друг от друга, но есть и то, что объединяет их все без исключения - на всех континентах и на всех товарах. Это число 666 (три цифры 6). Каждый из вас легко может увидеть его на любом штрих-коде - две тоненькие параллельные линии, которые несколько длиннее всех остальных и находятся всегда в начале, в середине и в конце штрих-кода. Это компьютерные шестерки второго сета. Называются они "параллелями безопасности". Реже, но бывает, что на их месте используются линии - компьютерные шестерки других сетов, но это не меняет "кода безопасности" - числа 666.

При первом прочтении материал выглядит интересным. Тем не менее грамотный читатель не может не обратить внимание на следующие несуразности:

"...называется "Всемирной Кодировкой Продукции" (UPS)". Аббревиатурой UPC (а не UPS) обозначается штриховой код, разработанный американским Советом по унифицированному коду UCC, и используемый в США и Канаде.

"Штрих-код - это новый компьютерный тип счисления". В информатике нет понятия "тип счисления". Существуют системы счисления: позиционные и непозиционные. В позиционных системах счисления каждая цифра в зависимости от своей позиции имеет различный вес (например, единицы, десятки, сотни, тысячи и т.д.). Пример позиционной системы - десятичная система счисления: так в цифрах года, например, 1987, единица - означает "тысячу", девять - "девятьсот", восемь - "восемьдесят" и семерка - число "семь". В непозиционных системах счисления число выражается алгебраической суммой цифровых знаков. Например, римская цифра "восемь" VIII записывается в виде четырех знаков: пять - V, один - I, один - I, один - I, которые в сумме дадут число "восемь". В штриховых кодах EAN/UPC используются позиционные системы.

"Цифры от 0 до 9 записываются компьютером в двух или трех вариантах - сетах (как и в обычном счислении, цифры могут быть арабскими, римскими или славянскими)." Чем отличаются арабские цифры (0-9), которыми мы пользуемся в десятичной системе счисления, от римских цифр нам теперь понятно, но вот что такое "славянские цифры"? Возможно автор путает ЦИФРЫ с русскими БУКВАМИ, алфавит которых называется по имени их создателей "кириллицей". Действительно в прошлом для записи чисел употреблялись славянские БУКВЫ:

(Узденников В.В. Монеты России. 1700-1917. - М.: Финансы и статистика, 1985.)

В указанной книге, выпущенной под редакцией члена-корреспондента АН СССР В.Л. Янина, на странице 422 читаем: "на монетах 1699-1722 г.г. дата их чеканки обозначена в большинстве случаев также буквами славянского алфавита, соответствующего следующим числам:

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

В любом случае в виде штрихового кода EAN/UPC можно закодировать ТОЛЬКО АРАБСКИЕ ЦИФРЫ. Для проверки этого положения можно воспользоваться распространенным графическим редактором Corel DRAW (версии 7 и старше), позволяющим получить изображения штриховых кодов EAN/UPC на персональном компьютере.

"Штрих-код говорит о стране-производителе, качестве, наименовании, стоимости продукта". Это абсолютно неверно. Штриховой код EAN/UPC является незначащим. Основное его свойство - обеспечение уникальной неповторяющейся идентификации товара. Все свойства товара (в том числе и данные о производителе, качестве, наименовании, стоимости) хранятся в компьютере магазина или склада. А вот разыскать необходимые данные в компьютере можно по цифровому номеру товара. Штриховой код на товаре аналогичен номеру на автомобиле. Ведь никто же не говорит, что по номеру автомобиля можно определить год выпуска, его модель, страну-изготовителя и т.д. Эти данные хранятся в ГИБДД. Так и в случае со штриховым кодом: единственное, что можно сказать по его первым цифрам (префиксу), - это, в какой стране мира предприятию-изготовителю был присвоен этот штриховой код. Эти цифры во многих случаях даже не совпадают со страной-изготовителем товара. Например на бутылках с "Кока-Колой" нанесен штриховой код с префиксом 54 (Бельгия-Люксембург). А изготовителем на этикетке значится московское предприятие.

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

Таблица 4.2. - Вспомогательные знаки (ГОСТ Р 51201-98)

 Вспомогательный знак Количество
модулей
Представление знака и ширина элемента в модулях
П Ш П Ш П Ш
Типовой знак-ограничитель 3   1 1 1    
Центральный знак-ограничитель 5 1 1 1 1 1  

А теперь рассмотрим способы кодирования цифры "шесть". В штриховых кодах системы EAN/UCC действительно используются три набора знаков A, B и С. (В цитируемой нами публикации анонимный автор, вероятно для пущей важности, вместо русского слова "набор" использует английское слово "сет" ). Тем не менее, в соответствии с требованиями стандарта для изображения "шестерки" в виде штрихового кода используются следующие размерности пробелов (обозначение П ) и штрихов (обозначение Ш):

Таблица 4.1. - Наборы знаков А, В и С (ГОСТ Р 51201-98)

 Знак данных Представление знаков и ширина элементов в модулях и наборе
А В С
П Ш П Ш П Ш П Ш Ш П Ш П
6 1 1 1 4 4 1 1 1 1 1 1 4

Итак, разделительные знаки состоят из ТРЕХ или ПЯТИ модулей, а "шестерка" во всех трех возможных наборах (таблица 4.1) кодируется двумя пробелами и двумя штрихами общей шириной СЕМЬ модулей. Разница очевидна:

Вероятно, анонимного автора смутили два штриха в изображении цифры "шесть"? Но зачем же, не разобравшись, обвинять в тяжких грехах и штриховые коды, и людей, которые занимаются автоматической идентификацией?

В отличие от анонима, который рассылает свои материалы без подписи, мы приводим контактные данные для обратной связи и обсуждения:Ассоциация автоматической идентификации

ЮНИСКАН / EAN РОССИЯ
В.Ю. КОРОСТЕЛЕВ,
Директор по электронным системам
Тел (095) 431 3007, факс (095) 432 9565
E-mail: [email protected], Web: www.ean.ru 

ПОСЛЕСЛОВИЕ

За время, прошедшее после публикации этого материала, в прессе появились интересные аргументированные статьи, с которыми мы рекомендуем познакомиться :

Казалось, после этих публикаций вопрос можно считать закрытым. Однако, к нашему глубокому удивлению все те же авторы (на сайте http://www.pravoslavie.ru/shengen/index.htm), которыми были "обнаружены" три шестерки внутри безобидного штрихового кода, не только не согласились со всеми приведенными доказательствами, но и выдвинули новые контраргументы. Если отбросить обилие сложных "псевдонаучных" терминов, то в кратком виде эти доводы можно свести к двум основным положениям:

во-первых, предлагается рассматривать не весь штриховой код, а только "ограждающие штрихи". При этом в дополнение к 13 видимым цифрам штрихового кода "получается" нечто, что "при цифровом узнавании в памяти сканера, обработанное процессором, будет идентифицироваться только числом 666".

Красиво звучит! Что-то гордое и технически значимое слышится в этой смеси технических терминов. На самом деле все обстоит значительно проще. Никаких скрытых цифр в коде EAN-13 нет. В вышеуказанном стандарте приведены номинальные размеры штрихового кода ( для коэффициента увеличения 1,0). Однако на упаковках различного размера штриховой код наносится в различном масштабе: с коэффициентом увеличения (уменьшения) от 0,8 до 2,0.

Для того, чтобы из штрихов и пробелов получить цифры, считывающему устройству (сканеру) в начале считывания штрихового кода необходимо определить этот масштаб - фактически узнать ширину самого узкого штриха или пробела. Эта величина называется модулем. Когда луч сканера пересекает штриховой код, то первоначально он встречается с со служебными знаками. Именно по ним определяется величина модуля, т.е. масштаб, необходимый для прочтения информационных знаков.

Противники штрихового кодирования заметили, что штрихи служебных символов длиннее остальных штрихов кода. Они полагают, что, если прочитать только "выступающие кончики", то получатся скрытые шестерки. И это не так! Предлагаем сомневающимся провести простой эксперимент.

Если бы служебные символы на самом деле скрывали в себе скрытые "шестерки", то их можно было бы прочитать сканером, направив его луч точно на выступающие кончики штрихов. Для практической проверки предлагаем посетить любой универсам, в котором установлены кассовые аппараты с подключенными сканерами штрихового кода (например, магазины "Седьмой континент" или "Перекресток" в Москве), взять пакет молока и попросить кассира просканировать только "выступающие кончики" штрихового кода.

Уверяем Вас, что никаких трех шестерок Вы не получите. Не потому, что кончики короткие или сканер плохой, а потому, что для чтения информации сканеру нужен масштаб. Уберите служебные символы из кода EAN-13, и Вы уже не сможете прочитать информацию 13 оставшихся цифр. Аналогично и выступающие штрихи никакой сканер не прочитает.

Конечно противная сторона это прекрасно понимает. Поэтому выдвигается ПОСЛЕДНИЙ АРГУМЕНТ, против которого, действительно, никакой сканер и стандарт не помогут. Он звучит так: служебные символы просто ПОХОЖИ на "шестерки": "негоже не понимать того, что язык мистических символов не может предназначаться для машины - он обращен к человеку". Или: "Число 666 - символ системы EAN-13, не указанный ни в каких технических справочниках, как не участвующий в рабочих идентификационных процессах, но предназначенный для визуального восприятия человека".

Что касается "похожести" или "непохожести" ограждающих штрихов, то вопросы решения этой задачи, как и осмысления образов, вызываемых тем или иным внешним раздражителем в человеческом мозгу, лежат в плоскости раздела психиатрии, именуемом ПСИХОАНАЛИЗОМ. Об этом много писал в свое время Фрейд. Мы хотели бы для информации сообщить, что штриховой код в рекламе часто сравнивают с полосками зебры. На этот счет существует даже известная марка принтеров, выпускаемых фирмой "ZEBRA TECHNOLOGIES". Отечественные специалисты иногда называют линейный штрихкод "ШТАКЕТНИКОМ" (в смысле - "забором"), но до сих пор никто не видел в нем "символов зла".

С точки зрения здравого смысла, к которому мы призываем, существует пословица о том, что каждый судит о предмете в меру своей испорченности. Почему-то отдельным лицам не нравится именно штриховой код. Однако похожие полоски есть и в ученических тетрадях в линейку, очень похожи на злополучные штрихи и штанги московских троллейбусов. Почему бы не начать борьбу и с этими предметами? Вероятно то, что мы готовы увидеть в окружающем мире отражает наше внутреннее "я". И, если кому-то везде мерещится только зло, то за помощью следует обратиться к врачу. Сходные проблемы были у Ивана Карамазова в известном романе Ф.М. Достоевского.

В.Ю. КОРОСТЕЛЕВ,
Директор по электронным системам

Warrax Black Fire Pandemonium  http.//warrax.net   e-mail [email protected]