стр. 3
Вверх
2
3
4
5
6
7
8

ГОСТ №28147-89

Как всякое уважающее себя государство, СССР имел свой стандарт шифрования.  Этот стандарт закреплен ГОСТом №28147-89, принятом, как явствует из его обозначения, еще в 1989 году в СССР.  Однако, без сомнения, история этого шифра гораздо более давняя.  Стандарт родился предположительно в недрах восьмого главного управления КГБ СССР, преобразованного ныне в ФАПСИ. В те времена он имел гриф «Сов. секретно», позже гриф был изменен на «секретно», затем снят совсем.  Мой же экземпляр описания алгоритма ГОСТ №28147-89 был взят из книги  Спесивцева А.В.  «Защита инфоpмации в пеpсональных ЭВМ», М., Радио и связь, 1992. К сожалению, в отличие от самого стандарта, история его создания и критерии проектирования шифра до сих пор остаются тайной за семью печатями.

Возможное использование ГОСТа в собственных разработках ставит ряд вопросов.  Вопрос первый – нет ли юридических препятствий для этого.  Ответ здесь простой – таких препятствий нет и все могут свободно использовать ГОСТ, он не запатентован, следовательно, не у кого спрашивать разрешения. 

Ну а теперь можно приступать к самому главному, хотя прежде всего надо разобраться в вопросе целесообразности - можем ли мы доверять этому порождению мрачной Лубянки, не встроили ли товарищи чекисты лазеек в алгоритмы шифрования?  Это весьма маловероятно, так как ГОСТ создавался в те времена, когда было немыслимо его использование за пределами государственных режимных объектов.  С другой стороны, стойкость криптографического алгоритма нельзя подтвердить, ее можно только опровергнуть взломом.  Поэтому, чем старше алгоритм, тем больше шансов на то, что, если уж он не взломан до сих пор, он не будет взломан и в ближайшем обозримом будущем.  В этом свете все разговоры о последних «оригинальных разработках» «талантливых ребятах» в принципе не могут быть серьезными – каждый шифр должен выдержать проверку временем.  Но ведь шифров, выдержавших подобную проверку, заведомо больше одного – кроме ГОСТа ведь есть еще и DES, его старший американский братец, есть и другие шифры.  Почему тогда ГОСТ?  Конечно, во многом это дело личных пристрастий, но надо помнить еще и о том, что ГОСТ по большинству параметров превосходит все эти алгоритмы, в том числе и DES.  Что это за параметры? Дальше..

 

Описание метода

Описание стандарта шифрования данных содержится в очень интересном документе, озаглавленном «Алгоритм криптографического преобразования данных ГОСТ 28147-89».  То, что в его названии вместо термина «шифрование» фигурирует более общее понятие «криптографическое преобразование», вовсе не случайно.  Помимо нескольких тесно связанных между собой процедур шифрования, в документе описан один построенный на общих принципах с ними алгоритм выработки имитовставки.  Последняя является не чем иным, как криптографической контрольной комбинацией, то есть кодом, вырабатываемым из исходных данных с использованием секретного ключа с целью имитозащиты, или защиты данных от внесения в них несанкционированных изменений.

На различных шагах алгоритмов ГОСТа данные, которыми они оперируют, интерпретируются и используются различным образом.  В некоторых случаях элементы данных обрабатываются как массивы независимых битов, в других случаях – как целое число без знака, в третьих – как имеющий структуру сложный элемент, состоящий из нескольких более простых элементов.  Поэтому во избежание путаницы следует договориться об используемых обозначениях

Элементы данных в данной статье обозначаются заглавными латинскими буквами с наклонным начертанием (например, X).  Через |X| обозначается размер элемента данных X в битах.  Таким образом, если интерпретировать элемент данных X как целое неотрицательное число, можно записать следующее неравенство: 0£X<2|X|

Если элемент данных состоит из нескольких элементов меньшего размера, то этот факт обозначается следующим образом: X = (X0, X1, ..., Xn-1) = X0||X1||...||Xn-1.  Процедура объединения нескольких элементов данных в один называется конкатенацией данных и обозначается символом ||.  Естественно, для размеров элементов данных должно выполняться следующее соотношение: |X|=|X0|+|X1|+...+|Xn-1|.  При задании сложных элементов данных и операции конкатенации составляющие элементы данных перечисляются в порядке возрастания старшинства.  Иными словами, если интерпретировать составной элемент и все входящие в него элементы данных как целые числа без знака, то можно записать следующее равенство:

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

X = (x0, x1, ..., xn–1) = x0+21·x1+...+2n–1·xn–1.

Если над элементами данных выполняется некоторая операция, имеющая логический смысл, то предполагается, что данная операция выполняется над соответствующими битами элементов.  Иными словами AB=(a0b0, a1b1,..., an-1bn-1), где n=|A|=|B|, а символом “•” обозначается произвольная бинарная логическая операция; как правило, имеется ввиду операция исключающего или, она же – операция суммирования по модулю 2: aÅb = (a+b) mod 2.

 

2 3 4 5 6 7 8

Используются технологии uCoz