Нижегородский государственный университет им. Н.И. Лобачевского Факультет вычислительной математики и кибернетики ННГУ Компания Интел Учебно-исследовательская лаборатория "Математические и программные технологии для современных компьютерных систем (Информационные технологии)" Введение в теорию помехоустойчивого кодирования и криптографию Теория декодирования блоковых кодов исторически развивалась в направлении построения простых или относительно простых алгоритмов исправления ошибок заданной кратности применительно к тем конкретным классам кодов, которые такое декодирование допускают. На этом пути был достигнут ряд практически важных и математически глубоких результатов, сформировавших, в значительной степени, теорию кодирования как науку, находящуюся на стыке техники связи и дискретной математики. К таким результатам следует отнести создание алгоритмов алгебраического декодирования кодов БЧХ и их обобщений, разработку алгоритмов мажоритарного декодирования геометрических кодов, алгоритмов декодирования каскадных и обобщенных каскадных кодов. Расширение практики использования кодов при хранении и передаче информации, а также повышение требований к качеству декодирования в традиционных для кодов областях применения, с одной стороны, и значительное увеличение возможностей вычислительной техники при реализации сложных алгоритмов, с другой стороны, определили интерес к Нижний Новгород, 2003 изучению методов декодирования, применимых к кодам с произвольной структурой и позволяющих исправлять ошибки сверх кратности, определяемой кодовым расстоянием. Разработанные алгебраические (алгебро-геометрические) методы декодирования и, прежде всего, алгоритм Берлекэмпа и его модификации, допускают сравнительно простую реализацию. Однако они: 1) применимы к исправлению ошибок в кодах, представимых в специальном виде, и не применимы к кодам с произвольной структурой; 2) позволяют исправлять только те ошибки, кратность которых не превышает половины "конструктивного" расстояния кода, последнее же для многих лучших линейных кодов существенно уступает минимальному; 3) не всегда эффективны для исправления не независимых, а, например, группирующихся ошибок. Указанные недостатки алгебраических методов декодирования, конечно, не дают оснований подвергнуть сомнению то значение, которое имеют эти методы декодирования для современной теории и практики помехоустойчивого кодирования. Однако они определяют рамки эффективного использования алгебраического декодирования и предполагают необходимость рассмотрения методов декодирования, применимых к более широким классам кодов. Алгебраические методы декодирования остаются вне конкуренции при передаче информации по сравнительно "хорошим" высокоскоростным каналам связи, при декодировании ошибок заданной кратности кодом, представленным в стандартной алгебраической форме, и ряде других ситуаций. Существенно менее эффективны алгебраические декодеры в каналах с высоким и средним уровнем шумов. Здесь часто необходимо использовать средства кодирования, обеспечивающие надежность связи, близкую к потенциально достижимой, в частности, применять полное декодирование лучших блоковых кодов. Неприменимы алгебраические методы и при решении ряда новых для теории кодирования задач, в которых принципиально требование исправления ошибок с помощью кодов, стандартный алгебраический вид которых неизвестен. Такова ситуация в криптографии с открытым ключом (например, при криптоанализе системы Мак Элиса) и в ряде задач сетевого обмена (например, при борьбе с обгонами). Общие методы декодирования, т.е. методы, применимые к декодированию всех линейных кодов, ориентированные на полное или близкое к полному декодирование, могут быть осуществлены переборными методами. Однако сложность переборных методов быстро растет с ростом длины кода и числа исправляемых ошибок. Поэтому актуальна разработка общих алгоритмов декодирования приемлемой сложности. 147338913 19.01.2016, 18 стр. Название документа Все известные общие методы декодирования линейных блоковых кодов являются комбинаторными. Под комбинаторными методами декодирования понимают обычно алгоритмы, состоящие в отборе по некоторому правилу подмножества кодовых слов (множества кандидатов), внутри которого затем производится поиск декодированного варианта принятого вектора. Такие алгоритмы, заданные на линейном коде как на дискретной математической структуре, не опираются на специальные алгебраические свойства кода, применимы ко всем линейным кодам, позволяют осуществлять полное декодирование. Асимптотический анализ сложности декодирования линейных блоковых кодов по максимуму правдоподобия основан на утверждении, носящем название леммы Евсеева [1]. Эта лемма сводит задачу декодирования произвольного линейного кода по максимуму правдоподобия (МП) к комбинаторной задаче исправления ошибок заданной кратности. Из нее, в частности, следует, что в канале с независимыми ошибками для того, чтобы обеспечить вероятность ошибочного декодирования не более, чем в два раза худшую по сравнению с МП, не нужно исправлять все ошибки, декодируемые кодом, но достаточно исправлять все ошибки кратности до d 0 , которые может исправить код, где d 0 – расстояние (n,k)-кода, лежащего на границе Варшамова-Гилберта. Евсеев [1], Левитин и Хартман [2], Крук [3,5], Думер [4] получили ряд оценок сложности декодирования линейных блоковых кодов. Показатели экспоненты сложности этих оценок приведены на рис.1. Учебно-исследовательская лаборатория "Информационные технологии" 3 Рис. 1. Зависимость сложности алгоритмов декодирования от скорости кода (ось x – скорость кода, ось y – показатель экспоненты сложности): a – алгоритм декодирования по максимуму правдоподобия; b – алгоритм “соседних нулей” [2]; c – алгоритм декодирования с разделением синдромов [4]; d – алгоритм декодирования с построением покрытий [3]; e – алгоритм декодирования по укорочениям [5]. В настоящем докладе рассматривается современное состояние методов полного (или практически полного) декодирования линейных блоковых кодов. Первый раздел посвящен асимптотическому анализу сложности МПдекодирования. Материалы этого раздела основаны на результатах работ [3,5-7]. Во втором и третьем разделах доклада рассматриваются нестандартные применения теории помехоустойчивого кодирования. Во втором разделе рассматривается использование комбинаторного декодирования при организации передачи информации на транспортном уровне сети с коммутацией пакетов. Помехоустойчивое кодирование применяется здесь не для повышения надежности передачи, а для уменьшения средней задержки сообщений в сети. В основу раздела легли 147338913 19.01.2016, 18 стр. Название документа работы Крука, написанные в 1985-2000 годах в соавторстве с рядом исследователей [8,9,14]. Третий раздел доклада посвящен использованию задачи полного декодирования для построения криптосистем с открытым ключом. Материалы раздела обобщают результаты работ Мак Элиса [10] и Крука [11,12,15]. 1. Комбинаторное декодирование линейных блоковых кодов Информационная совокупность (и.с.) кода – это множество из k его позиций, которое полностью определяет кодовое слово. Если в принятом с ошибками кодовом слове имеется хотя бы одна и.с., в символах которой (т.е. в символах с номерами из этой и.с.) ошибок нет (и.с. свободна от ошибок), то передававшееся слово может быть правильно восстановлено по этой и.с. Процесс декодирования по и.с. может быть интерпретирован как процесс поиска и.с., свободной от ошибок. Сложность декодирования по и.с. определяется числом просматриваемых в алгоритме и.с. Это число довольно быстро растет с ростом длины кода n и кратности исправляемой ошибки . Такое положение вряд ли можно считать неожиданным, когда рассматривается декодирование кода, не учитывающее его (кода) специальных свойств. Весьма вероятно, что не существует общего алгоритма декодирования линейных кодов, который имеет не экспоненциальную сложность. Поэтому актуальным является поиск общих алгоритмов, сложность которых растет медленнее (например, с меньшим показателем экспоненты), чем у декодирования по и.с. Возможности уменьшения сложности декодирования по и.с. связаны с двумя подходами к обобщению декодирования по и.с.: 1) декодирование с использованием укорочений; 2) декодирование с использованием надкодов. Пусть A – линейный (n,k)-код с порождающей матрицей G и кодовым расстоянием d=2t+1. Пусть J j1 , j2 ,..., j s – совокупность из s различных номеров позиций кодового слова, а G(J) (b(J)) – подматрица матрицы G (подвектор вектора b), составленная (-ый) из столбцов матрицы G (координат вектора b) с номерами из J. Наконец, через A(J) обозначим код длины s с k(J) информационными символами и расстоянием d(J), заданный порождающей матрицей G(J). Код A(J), очевидно, представляет собой укорочение кода A на позиции, не вошедшие в J. Идея декодирования с использованием укорочений состоит в том, чтобы найти совокупность номеров J, число ошибок на которой невелико и может быть исправлено кодом A(J). При этом декодирование сводится к декодированию нескольких кодов, укороченных из A. В сформулированных терминах декодирование по и.с. представляет собой частный случай описанного подхода при s = k и k(J) = k. Учебно-исследовательская лаборатория "Информационные технологии" 5 Сложность декодирования с использованием укорочений определяется двумя компонентами – числом декодирований укороченных кодов, которые надо произвести для исправления ошибок в целом, и сложностью декодирования укороченных кодов. В ряде случаев удается достичь такого компромисса между этими двумя компонентами, при котором обеспечивается общий выигрыш в сложности декодирования кода. Декодирование с использованием надкодов реализует подход, вообще говоря, альтернативный по отношению к использованию укорочений. Суть его состоит в следующем. Погрузим декодируемый код A в некоторый надкод A' (т.е. в код, содержащий A как подмножество векторов). Понятно, что код A' имеет расстояние d', меньшее, чем расстояние исходного кода d. Поэтому, декодируя принятый вектор в коде A', мы можем перейти в вектор кода A', отличный от передаваемого. Поэтому будем декодировать принятый вектор b в список векторов-кандидатов D'(b), составленный так, чтобы не потерять искомый вектор. Если теперь сделать то же самое с каким-нибудь другим надкодом кода A, можно получить список D''(b) (в надкоде A''), в пересечении которого с D'(b) содержится передаваемый вектор. Используя несколько надкодов, можно добиться того, что пересечение списков будет содержать лишь небольшое число векторов – кандидатов (кодовых векторов или векторов ошибки). Организация такого декодирования допускает не только пересечение списков, но и более сложные комбинации пересечения и объединения списков с соответствующими более тонкими правилами их составления. Сложность декодирования с использованием надкодов определяется числом надкодов, сложностью их декодирования и числом операций при работе со списками (при пересечении или объединении списков – кандидатов). Декодирование на основе надкодов, также как и декодирование с использованием укорочений, дает ряд интересных результатов, как в асимптотике, так и для конкретных кодов. Пусть b – принятое слово – представляет собой сумму кодового слова a и вектора ошибки e. Обозначим через L (b) кодовое слово кода A, совпадающее со словом b на позициях из и.с. . Декодирование по и.с. состоит в последовательном переборе по и.с. из некоторого множества и.с. , вычислении для каждой вектора a L (b) и выборе среди полученных векторов вектора a , ближайшего к принятому слову. Для организации такого декодирования должно быть задано множество и.с. , достаточное для исправления ошибок заданной кратности , т.е. такое множество и.с., в котором для любой ошибки кратности, не превосходящей , найдется хотя бы одна и.с., свободная от ошибок. Поскольку сложность описанного декодирования в основном определяется 147338913 19.01.2016, 18 стр. Название документа мощностью множества , то задача построения декодера по и.с. сводится к задаче построения множества возможно меньшей мощности. Определим множество номеров как множество позиций кодового слова, не вошедших в и.с. (| | = n - k = r). Тогда и.с. , свободной от ошибок, соответствует множество , покрывающее множество ошибочных позиций (т.е. множество номеров, содержащее множество ненулевых позиций вектора ошибки в качестве подмножества), и задача построения множества может быть переформулирована как задача построения множества – минимального покрытия -множеств rмножествами ( < r ). Задача эта отличается, однако, от классической комбинаторной задачи построения покрытия тем, что множество должно состоять из дополнений к информационным совокупностям. Теорема 1 [3]. В q-ичном симметричном канале с независимыми ошибками существует декодирование такое, что для почти всякого линейного кода длины n со скоростью R = k/n вероятность ошибочного декодирования ( P 0 – вероятность ошибки, P P 0 (1 o(1)) , обеспечиваемая этим кодом при декодировании по максимуму правдоподобия), а сложность декодирования L удовлетворяет неравенству log q L n (1 R )(1 H( 0 ) o(1)) , 1 R где 0 d 0 , а Hq ( x) x log q x (1 x) log q (1 x) , функция, определенная при n 0 x 1. Вероятностный аппарат, использованный при доказательстве сформулированной теоремы, лег в основу анализа сложности подходов к декодированию на основе укорочений и с использованием надкодов. Теорема 2 [5]. Алгоритм с использованием надкодов для почти всех линейных (n,k)-кодов со скоростью R = k/n обеспечивает вероятность ошибочного декодирования P P 0 (1 o(1)) при сложности декодирования T log q T n ( R )(1 o(1)) , где 1 2 v , a ,l 1 ( R, a) Hq ( 0) R Hq (a / R) (1 R) Hq (( 0 a) /(1 R)) , ( R) min { 1 ( R, a ) max [ 2 ( R, a, v, l ) v, 2 ( R, a, v, l ) lv ]} , 2 ( R, v, a, l ) R Hq (a / R) v Hq (( 0 a) /(1 R (l 1)v)) , а параметры оптимизации в выражении для (R ) условиями max( 0, 0 R 1) a min( 0 , R ) , lv 1 R . ограничены Учебно-исследовательская лаборатория "Информационные технологии" 7 Сложность декодирования T с использованием надкодов, найденная в теореме 2, меньше сложности декодирования всех известных общих алгоритмов декодирования (см. рис.1) во всем диапазоне кодовых скоростей. 2. Комбинаторное декодирование на транспортном уровне сети передачи данных Рассмотрим возможности применения комбинаторного декодирования для сборки сообщений на транспортном уровне сети передачи данных с коммутацией пакетов. Методы помехоустойчивого кодирования традиционно используются в сетях связи только для повышения надежности передачи в звене передачи данных. Использование кодирования на верхних сетевых уровнях ограничивается, по-видимому, представлением о том, что связанное с ним (кодированием) увеличение потоков данных в сети приводит к безусловному ухудшению параметров передачи информации. Однако, использование избыточного кодирования при формировании сообщений может оказаться полезным даже при отсутствии ошибок при передаче пакетов (то есть в сетях с надежными звеньями), так как его использование позволяет модифицировать процедуру приема (сборки) сообщений в сети. В настоящем разделе изучается метод использования линейных кодов с комбинаторным декодированием на транспортном уровне сети передачи данных. Комбинаторное декодирование используется при этом как специальная процедура сборки пакетных сообщений на приемном конце. Одной из основных характеристик сети передачи данных является задержка информации при передаче. Величина средней задержки пакетов в сетях с коммутацией пакетов исследовалась во многих работах как с помощью аналитических, так и экспериментальных методов. Однако основной практический интерес в сетях с коммутацией пакетов представляет не задержка отдельных пакетов, а задержка сообщения в целом. Причем математическое ожидание этой последней величины (средняя задержка сообщения) может существенно отличаться от средней задержки пакетов, поскольку в сети вероятной является ситуация, при которой сборка сообщения на приемном узле задерживается из-за непоступления незначительной части (например, одного) входящих в сообщение пакетов. Использование комбинаторного декодирования позволяет предложить следующий метод передачи информации в сети. Пусть сообщение содержит k пакетов длины s. Рассмотрим пакеты как элементы поля GF(q) (q= 2s ) и будем кодировать сообщения q-ичным (n,k)-кодом. После кодирования сообщение, состоящее из k пакетов, заменяется сообщением, 147338913 19.01.2016, 18 стр. Название документа состоящим уже из n пакетов. При передаче кодированных сообщений по сети трафик возрастает в 1/R раз (R = k/n – скорость используемого кода). Это, естественно, ведет к увеличению среднего времени задержки отдельных пакетов, а, следовательно, и всего сообщения в сети. Однако, в узле-адресате при использовании декодирования по и.с. или декодирования на основе укорочений для восстановления сообщения достаточно получения не всех n пакетов, а только тех, по которым сообщение может быть однозначно восстановлено. Следующая теорема дает условия, при которых противоречивое влияние увеличения задержки пакетов и облегчения правила приема сообщения приводят в совокупности к уменьшению средней задержки сообщений. Теорема 3. Пусть – загрузка сети, тогда транспортное кодирование обеспечивает выигрыш по средней задержке по сравнению с отсутствием кодирования при условии, что 2 1 ln ln k c 1 1 где c = 0.577... – постоянная Эйлера. Доказательство теоремы 3 основано на целом ряде идеализированных предположений о модели сети. Для исследования эффекта от использования кодирования в реальных сетях в ряде работ был использован метод математического моделирования. Полученные в теореме 3 и уточненные при моделировании условия выгодности применения кодирования показывают, что кодирование на транспортном уровне приводит к выигрышу по средней задержке сообщений тем большему, чем меньше загрузка сети и больше число пакетов в сообщении k. В реальных сетях, однако, не должно быть очень мало, а число k не бывает большим, соответственно не бесконечны и выигрыши по задержке. Реальные выигрыши при типичных параметрах сетей достигают 20-40 % . 3. Комбинаторное декодирование в криптосистемах с открытым ключом Рассмотрим использование комбинаторного декодирования в задачах обеспечения информационной безопасности в сетях коллективного пользования. Появившаяся в связи с распространением на практике таких сетей и бурно развивающаяся в последние годы криптография с открытым (публичным) ключом оказалась привлекательной для применения методов теории помехоустойчивого кодирования. Уже одна из первых криптосистем с открытым ключом – система Мак Элиса – была основана на использовании задачи декодирования и стимулировала проникновение кодовых методов в криптографию. В разделе развивается подход к Учебно-исследовательская лаборатория "Информационные технологии" 9 построению функций с закрытыми дверями на основе задачи комбинаторного декодирования. Традиционная криптография, исследовавшая задачу защиты от несанкционированного доступа при передаче между двумя пользователями, основывалась на наличии у обоих абонентов одних и тех же секретных ключей, позволяющих осуществить операцию шифрования и дешифрования. Пусть А и В – санкционированные пользователи системы. Обозначим через F алгоритм преобразования информации (шифрования), отображающий сообщение u из множества допустимых сообщений U в слово v = F(u) из множества допустимых шифрослов V. Соответственно через F 1 обозначим преобразование, обратное к F, т.е. обеспечивающее дешифрование шифрослова v в u F 1 (v) для всех v V. В рамках традиционной криптографии функции F и F 1 являются общим секретом (секретными ключами) пользователей А и В, образующих таким образом систему с симметричными ключами. Все методы "взлома" такой системы основаны на попытках использования корреляционных зависимостей шифротекста, а задачи шифрования в таких системах – это задачи сокрытия или ослабления указанных зависимостей при выполнении ограничений на сложность шифрования. Появление сетей связи открытого типа, сетей, пользователями которых являются сотни и тысячи незнакомых между собой (т.е. не имеющих общих секретных ключей) абонентов, означало невозможность обеспечения в них информационной безопасности традиционными средствами. При этом возникло две основных криптографических проблемы открытых сетей: 1) проблема распространения ключей; 2) проблема аутентификации пользователей. В наши цели не входит всестороннее рассмотрение мер и задач, алгоритмических, программных, организационных, возникающих в связи с указанными выше проблемами. Мы в дальнейшем будем заниматься только вопросами, связанными с изучением возможностей использования задачи декодирования для решения задачи распространения ключей. В основе защиты информации в открытых сетях лежит подход к их организации на основе системы открытых (публичных) ключей, предложенной Хелманом и Диффи в работе [13], послужившей началом новой криптографии с несимметричными ключами. Этот подход базируется на понятии "функции с закрытыми дверями". Пусть F – функция шифрования, которая не имеет обратной. Тогда несанкционированный пользователь, даже имея ее и зная шифрованное сообщение v, не может определить u. Такая функция, конечно, бесполезна и для легального пользователя, поскольку он также не сможет прочесть сообщение u. Предположим, однако, что функция F 1 существует, но для ее вычисления нужно знать некоторый дополнительный секретный ключ 147338913 19.01.2016, 18 стр. Название документа К. Диффи и Хелман назвали такую функцию F k функцией с закрытыми дверями. Тогда санкционированный пользователь вычислит v F k1 (u, k ) , а несанкционированный должен найти ключ. Система защиты информации, основанная на понятии функции с закрытыми дверями, работает следующим образом. Каждый пользователь системы имеет свою функцию F k (открытый ключ), которую он "публикует", т.е. делает доступной всем пользователям сети, и секретный ключ К, известный только ему. Всякий, кто хочет передать этому пользователю сообщение u, должен вычислить шифрованное сообщение, пользуясь опубликованной функцией F k . Таким образом, главное требование, предъявляемое к функции с закрытыми дверями, состоит в том, что само отыскание обратной функции к ней должно составлять неосуществимую задачу. Здесь проявляется основное отличие криптографии с открытым ключом от традиционной – принципиальная невозможность обеспечения полной секретности. Перебор по всем возможным ключам всегда позволяет раскрыть систему, что определяет возможность обеспечения лишь вычислительной секретности. Качество такой криптосистемы определяется разностью в сложности выполнения преобразования F k1 при известном и неизвестном ключе. Требования к вычислительной стойкости криптосистемы определяется в настоящее время величиной рабочего фактора (это число операций, требуемое для раскрытия системы) на уровне 50 2 , которая, по-видимому, несмотря на успехи вычислительной техники, будет оставаться нереализуемой для практики ближайших лет. Итак, центральным понятием при создании криптографических систем с открытым ключом является понятие функции с закрытыми дверями. Построение таких функций, однако, представляет собой нетривиальную задачу. Требуется найти функцию, задание которой, возможность проведения вычислений с ней, т.е. возможность создания пар открытый текст – шифрованный текст любой реальной длины, не дают практической возможности построения функции, обратной к ней. Работа Диффи и Хелмана не содержала практически пригодных функций с закрытыми дверями. Для создания функции с закрытыми дверями необходимо наличие трудной (желательно NP-полной или NPтрудной) задачи, имеющей частные подзадачи полиномиальной сложности. Именно такой задачей является задача декодирования. Задача декодирования по минимуму расстояния является NP-полной. Анализ, проведенный нами в разделе 1, показывает, что для почти всех кодов даже декодирование ошибок заданной кратности, вероятно, требует экспоненциального числа операций. С другой стороны, известны коды (в первую очередь, коды Гоппы), сложность декодирования которых Учебно-исследовательская лаборатория "Информационные технологии" 11 полиномиальна. В дальнейшем мы рассмотрим построение функций с закрытыми дверями на основе задачи комбинаторного декодирования. Исторически первой кодовой криптосистемой с открытым ключом была система Мак Элиса [10]. Прямая криптоатака на систему Мак Элиса (т.е атака, предполагающая решение именно той задачи, которая лежит в основе системы) – это проведение декодирования линейного кода, не имеющего или имеющего неизвестную алгебраическую структуру, требует применения общих методов декодирования линейных кодов. Причем требования к качеству декодирования в теории кодирования существенно меньше, чем в криптографии. Теория кодирования предполагает достижение близкой к единице вероятности правильного декодирования. Кодовая же криптосистема (как и всякая криптосистема) считается скомпрометированной, даже если вероятность дешифрования (правильного декодирования) – величина, близкая к нулю, но все же большая, чем, скажем, 230 . В ряде работ (Дж.Леон (1988), П.Ли и Е.Брикелл (1989), Дж.Стерн (1989), А.Котин (1994)) оценивалась стойкость системы Мак Элиса. В частности, для этой системы, основанной на коде Гоппы (1024,524), исправляющем 50 ошибок, была получена величина рабочего фактора 264.1 машинных операций, что много меньше величины 280.7 , которой оценивалась эта величина при введении системы Мак Элиса. Тем не менее и эта величина значительно превышает приемлемые для криптоанализа цифры. Применение декодирования с использованием надкодов позволяет обеспечить дешифрование системы Мак Элиса в 10 % случаев при использовании памяти в 1 Гб и рабочем факторе 255 . Представляется реальным получение рабочего фактора ~ 250 , что находится уже на границе, требуемой стандартом шифрования. Основными недостатками системы Мак Элиса являются: 1) большая длина используемых (открытых и закрытых) ключей; 2) значительная избыточность шифротекста. Мы опишем криптосистему, в значительной степени свободную от указанных выше недостатков. Эффективность криптоатаки против системы Мак Элиса определяется, в первую очередь тем, что для осуществления этой атаки достаточно уметь исправлять ошибки кратности до t. Криптосистема была бы несоизмеримо сложнее, если бы дешифрование требовало исправления всех лидеров смежных классов используемого кода. Однако, в общем случае, декодирование всех лидеров (полное декодирование) представляет собой, по сути дела, не функцию с закрытыми дверями, а одностороннюю функцию, т.к. такое декодирование является NP-полной задачей. Пусть С есть q-ичный (n,k)-код с расстоянием d = 2t+1 и порождающей матрицей G. Пусть, кроме того, для С известен "простой" (реализуемый) алгоритм декодирования ошибок кратности до t. Обозначим через M 147338913 19.01.2016, 18 стр. Название документа некоторую невырожденную ( n n )-матрицу над GF(q), а через G' матрицу G'=GM. Матрица G' задает линейный (n,k)-код С', расстояние d(С') которого зависит от G и M и может быть значительно меньше, чем d(С). Обозначим через E t ,n множество n-векторов веса, не превышающего t, а через E ' – множество n-векторов e': E ' {e' : e' e M , e E t ,n } . Используя матрицы G', M и множество E E', зададим систему с публичным ключом. Выберем в качестве публичных ключей G' и E, а в качестве секретных ключей – G и M. Алгоритм шифрования состоит в следующем. По сообщению u вычисляется вектор v = uG'. Затем случайным образом выбирается вектор e' E и вычисляется шифрослово w = v + e'. Санкционированный пользователь может расшифровать w, вычислив b = w M 1 = (uGM + eM) M 1 = uG + e и продекодировав вектор b в коде С с простым декодированием. Несакционированный пользователь не знает матрицы M и должен, повидимому, перебирать по множеству векторов из E, т.е. осуществлять полное декодирование кода С в множестве E. Неудобство описанной функции с закрытыми дверями заключается в том, что для ее реализации при неизвестном M требуется публикация, хранение и пользование множеством E, содержащим, вообще говоря, qr элементов. Поэтому возможность построения функции с закрытыми дверями описанным способом требует использования реализуемого задания множества E. Отметим, что не обязательно задавать все множество E t ,n . Указав не все это множество, можно дополнительно затруднить для криптоаналитика поиск матрицы M. Пусть F – ( n n )-матрица, обладающая следующим свойством. Для любого n-вектора e E t ,n , вектор eF также принадлежит E t ,n . Секретными ключами в системе являются матрицы G, F, M, а публичными – матрицы G' = GM и M'= FM. Алгоритм шифрования слова u состоит в вычислении w = uG' + eM', где e – случайный вектор из E t ,n . Алгоритм дешифрования легального пользователя состоит в 1) вычислении b = w M 1 = (uGM + eFM) M 1 = uG + eF; 2) декодировании вектора b в коде C. Предложенная система может обеспечить стандартную криптостойкость на основе применения кода (256,128) при исправлении 16 ошибок. Размер публичного ключа при этом в 10-15 раз меньше размера ключа системы Мак Элиса, что делает предлагаемую систему Учебно-исследовательская лаборатория "Информационные технологии" 13 перспективной для использования. Следует отметить, что параметры описанной системы делают ее конкурентно способной с алгебраическими системами с открытым ключом, например с системой RSA. В заключении раздела рассматривается проблема построения кодовой цифровой подписи, рассмотренная в [15]. Заключение Развитие теории и практики помехоустойчивого кодирования показывает значительное повышение интереса к комбинаторным методам декодирования линейных кодов. Это объясняется как тем, что в связи со стремительным развитием средств вычислительной техники практическая реализация этих методов стала значительно более доступной, так и тем, что выявлен целый ряд новых перспективных приложений комбинаторного декодирования. Настоящий доклад дает представление об указанных тенденциях. Литература 1. Евсеев Г.С. О сложности декодирования линейных кодов. Проблемы передачи информации. 1983. Т.19. вып. 1. С.3-8. 2. L.Levitin and C.R.P.Hartmann, A new approach to the general minimum distance decoding problem: The zero-neighbors algorithm, IEEE Trans. Inform. Theory IT-31 (3) (1985), 378-384. 3. Крук Е.А. Граница для сложности декодирования линейных блоковых кодов. Проблемы передачи информации. 1989. Т.25. вып. 3. С.103-107. 4. Думер И.И. Два алгоритма декодирования линейных кодов. Проблемы передачи информации. 1989. Т.25. вып. 1. С.24-32. 5. A.Barg, E.Krouk and H.C.A. van Tilborg. On the complexity of minimum distance decoding of long linear codes, IEEE Trans. Inform. Theory IT-45 (5) (1999), 1392-1405. 6. Федоренко С.В. Сложность декодирования линейных блоковых кодов. Проблемы передачи информации. 1993. Т.29. вып. 4. С.18-23. 7. Крук Е.А., Федоренко С.В. Декодирование по обобщенным информационным совокупностям. Проблемы передачи информации. 1995. Т.31. вып. 2. С.54-61. 8. Кабатянский Г.А., Крук Е.А. Кодирование уменьшает задержку. В кн. "Х Всесоюзная школа-семинар по вычислительным сетям" Ч.2 МоскваТбилиси. 1985. 147338913 19.01.2016, 18 стр. Название документа 9. Kabatianski G., Krouk E. Coding decreases delay of messages in networks. Proceedings of 1993 IEEE International Symposium on Information Theory, San-Antonio, Texas, U.S.A. 10. R.J. McEliece. A public key cryptosystem based on algebraic coding theory, DAN Progress Report 42-44, Jet Propulsion Laboratory, 1978, pp.114116. 11. Krouk E. A new public key cryptosystem. Sixth Joint Swedish-Russian International Workshop on Information Theory. Moelle, Sweden, 1993, pp. 285286. 12. Krouk E., Sorger U. A public key cryptosystem based on total decoding of linear codes. Proceedings of VI International Workshop "Algebraic and combinatorial coding theory". Pskovs, 1998. pp.158-160. 13. Diffie W., Hellman M. New directions in cryptography, IEEE Trans. Infom. Theory IT-22 (6) (1976), 644-654. 14. Крук Е.А., Семенов С.В.. Уменьшение задержки сообщения в пакетных радиосетях с помощью кодирования на транспортном уровне. Электросвязь. 1994, N9, с. . 15. Kabatianski G., Krouk E., Smits B. A Digital Signature Scheme Based on Random Eror-Corecting Codes// Lecture notes in computer science. Springer-Verlag, vol.135. 1997. Pp.161-167 Учебно-исследовательская лаборатория "Информационные технологии" 15 Лист регистрации версий документа Дата 28.04.03 Автор изменения Белов С.А. Номер версии 1 Комментарии Создание 147338913 19.01.2016, 18 стр. Название документа Учебно-исследовательская лаборатория "Информационные технологии" 17 Название документа 1 8 Учебно-исследовательская лаборатория "Информационные технологии"