Аннотация:
Строится полиномиальный алгоритм разложения произвольного линейного кода $C$ в прямую сумму неразложимых подкодов с попарно непересекающимися носителями. В основе построенного алгоритма лежит нахождение базиса линейного кода, состоящего из минимальных кодовых векторов, то есть таких векторов, носители которых не содержатся в носителях других кодовых векторов этого линейного кода. Такой базис находится за полиномиальное от длины кода число операций. По найденному базису, используя сцепленность носителей минимальных кодовых векторов, за полиномиальное от длины кода число операций далее находятся базисные векторы неразложимых подкодов, в прямую сумму которых раскладывается исходный линейный код. На базе построенного алгоритма строится алгоритм структурной атаки на кодовую асимметричную криптосистему типа Мак-Элиса, основанную на коде C, который полиномиально зависит от сложности структурных атак на криптосистемы типа Мак-Элиса, основанные на подкодах, в прямую сумму которых раскладывается код C. Таким образом, показано, что использование прямой суммы кодов не позволяет существенно усилить стойкость криптосистемы типа Мак-Элиса к атакам на ключ.
Ключевые слова:прямая сумма кодов, криптосистема типа Мак-Элиса, атака на ключ.