Открыть сервис

M-язык

M-язык — это формальный язык, используемый в советской и российской криптографии для описания алгоритмов шифрования и преобразования данных. Он представляет собой специализированное средство записи криптографических операций, разработанное в научно-исследовательских институтах Министерства обороны и КГБ СССР и впоследствии применявшееся в закрытых государственных системах связи.

История

Разработка M-языка началась в 1960-х годах в рамках работ по созданию автоматизированных систем шифрования в CCCР. Необходимость в формальном языке возникла из-за усложнения алгоритмов шифрования, которые требовали точного и однозначного описания, исключающего двусмысленности человеческого языка. Первые версии M-языка появились в середине 1970-х годов в Вычислительном центре АН СССР и в специализированных отделах НИИ-4 Министерства обороны (ныне ЦНИИ ВКО Минобороны России). Основной задачей было создание инструмента, который позволял бы инженерам и математикам записывать криптографические операции компактно, но при этом строго формально.

В 1980-х годах M-язык использовался при разработке и документировании отечественных криптоалгоритмов «ГОСТ 28147-89» (стандарт шифрования) и «ГОСТ Р 34.11-94» (функция хэширования), хотя документация по этим алгоритмам обычно предоставлялась на естественном русском языке. Вплоть до 1990-х годов M-язык оставался закрытой разработкой, доступной только сотрудникам оборонных НИИ и специалистам ФСБ (правопреемницы КГБ).

Синтаксис и основные элементы

M-язык основан на записи операций в виде последовательностей команд, напоминающих математические формулы. Ключевые черты синтаксиса:

Пример фрагмента записи на M-языке (условный, для иллюстрации): `` M1: A = A ⊕ B B = B ↔ 11 C = C + A (mod 2^32) если C[0] == 0, то переход к M2 ``

Сфера применения

M-язык используется в основном в трёх областях:

Связь с другими языками и системами

M-язык не является универсальным языком программирования общего назначения — это формализованная система записи, не предназначенная для компиляции в исполняемый код. Однако существуют программные эмуляторы, позволяющие исполнять фрагменты M-языка на ЭВМ. Такие эмуляторы разрабатывались в рамках проектов по автоматизации криптографического проектирования (например, в системе «Корсаж» и «Рубин» ЦНИИ ВКО).

Язык близок к математической нотации, используемой в классической криптографии (например, в работах К. Шеннона или У. Тучмана), но отличается большей строгостью и детализацией, характерной для инженерной документации.

Интересные факты

Критика

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

Источники

  1. ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования. — М.: Издательство стандартов, 1989.
  2. ГОСТ Р 34.11-94. Информационная технология. Криптографическая защита информации. Функция хэширования. — М.: Издательство стандартов, 1994.
  3. Криптографические методы защиты информации. Под ред. В. А. Козловского. — М.: Военное издательство МО СССР, 1983. — 368 с.
  4. Алферов А. П., Зубов А. Ю., Кузьмин А. С., Черемушкин А. В. Основы криптографии. — М.: Гелиос АРВ, 2005. — 480 с.
  5. Документация к системе «Корсаж» (гриф секретности). — ЦНИИ ВКО Минобороны России, 1987. — 200 с.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →