BelT

Поделись знанием:
Перейти к: навигация, поиск
BelT
Создан:

2001 г.

Опубликован:

2007 г.

Размер ключа:

256 бит

Размер блока:

128 бит

Число раундов:

8

Тип:

комбинация Сеть Фейстеля и en: Lai-Massey scheme

BelT — государственный стандарт симметричного шифрования и контроля целостности Республики Беларусь. Полное название стандарта — СТБ 34.101.31-2007 «Информационные технологии и безопасность. Криптографические алгоритмы шифрования и контроля целостности». Принят в качестве предварительного стандарта в 2007 году. Введен в действие в качестве окончательного стандарта в 2011 году.





Описание

BelT — блочный шифр с 256-битным ключом и 8 циклами криптопреобразований, оперирующий с 128-битными словами. Криптографические алгоритмы стандарта построены на основе базовых режимов шифрования блоков данных. Все алгоритмы стандарта делятся на 8 групп:

Первые четыре группы предназначены для обеспечения безопасного обмена сообщениями. Каждая группа включает алгоритм зашифрования и алгоритм расшифрования на секретном ключе. Стороны, располагающие общим ключом, могут организовать обмен сообщениями путём их зашифрования перед отправкой и расшифрования после получения. В режимах простой замены и сцепления блоков шифруются сообщения, которые содержат хотя бы один блок, а в режимах гаммирования с обратной связью и счетчика — сообщения произвольной длины.

Пятый алгоритм предназначен для контроля целостности сообщений с помощью имитовставок — контрольных слов, которые определяются с использованием секретного ключа. Стороны, располагающие общим ключом, могут организовать контроль целостности при обмене сообщениями путём добавления к ним имитовставок при отправке и проверки имитовставок при получении. Проверка имитовставок дополнительно позволяет стороне получателю убедиться в знании стороной-отправителем секретного ключа, то есть проверить подлинность сообщений.

В шестой группе исходное сообщение задается двумя частями: открытой и критической. Алгоритмы защиты предназначены для контроля целостности обеих частей и обеспечения конфиденциальности критической части. При установке защиты вычисляется имитовставка всего сообщения и зашифровывается его критическая часть. При снятии защиты имитовставка проверяется и, если проверка прошла успешно, критическая часть расшифровывается.

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

Восьмой алгоритм предназначен для вычисления хеш-значений — контрольных слов, которые определяются без использования ключа. Стороны могут организовать контроль целостности сообщений путём сравнения их хеш-значений с достоверными контрольными хеш-значениями. Изменение сообщения с высокой вероятностью приводит к изменению соответствующего хеш-значения и поэтому хеш-значения могут использоваться вместо самих сообщений, например в системах электронной цифровой подписи.

Алгоритм шифрования

Входные данные для шифрования подготавливаются следующим образом:

  • Входное 128-битное слово записывается в виде <math>X=X_1\|X_2\|X_3\|X_4, X_i</math> — 32-битное слово;
  • Ключ записывается в виде <math>\theta=\theta_1\|\theta_2\|\theta_3\|\theta_4\|\theta_5\|\theta_6\|\theta_7\|\theta_8, \theta_i</math> — 32-битное слово

Для зашифрования слова <math>X</math> на ключе <math>\theta</math> необходимо выполнить следующие шаги:

  1. Установить в дополнительные переменные <math>a \leftarrow X_1,b \leftarrow X_2,c \leftarrow X_3,d \leftarrow X_4</math>
  2. Для i=1,2,… ,8 выполнить:
    1. <math>b \leftarrow b \oplus G_5 (a \boxplus K_{7i-6})</math>
    2. <math>c \leftarrow c \oplus G_{21} (d \boxplus K_{7i-5})</math>
    3. <math>a \leftarrow a \boxminus G_{13} (b \boxplus K_{7i-4})</math>
    4. <math>e \leftarrow G_{21} (b \boxplus c \boxplus K_{7i-3}) \oplus (i)_{32}</math>
    5. <math>b \leftarrow b \boxplus e</math>
    6. <math>c \leftarrow c \boxminus e</math>
    7. <math>d \leftarrow d \boxplus G_{13} (c \boxplus K_{7i-2})</math>
    8. <math>b \leftarrow b \oplus G_{21} (a \boxplus K_{7i-1})</math>
    9. <math>c \leftarrow c \oplus G_{5} (d \boxplus K_{7i})</math>
    10. <math>a \leftrightarrow b </math>
    11. <math>c \leftrightarrow d </math>
    12. <math>b \leftrightarrow c </math>
  3. Установить <math>Y \leftarrow b\|d\|a\|c</math>
  4. Возвратить <math>Y</math>

Переменные a, b, c, d, e — 32-битные слова. Преобразование <math>G_{r=(5,13,21)}</math> ставит в соответствие 32-битному слову <math>u = u_1\|u_2\|u_3\|u_4, ( u_i</math> — 8-битное слово), 32-битное слово
<math>G_r=\lambda^r(H(u_1)\|H(u_2)\|H(u_3)\|H(u_4))</math>. Подстановка <math>H:{\{0,1\}}^8 \rightarrow {\{0,1\}}^8</math> задается фиксированной таблицей (S — блок).

Алгоритм дешифрования

Для расшифрования необходимо выполнить следующие действия:

  1. Установить в дополнительные переменные <math>a \leftarrow X_1,b \leftarrow X_2,c \leftarrow X_3,d \leftarrow X_4</math>
  2. Для i=8,7,… ,1 выполнить:
    1. <math>b \leftarrow b \oplus G_5 (a \boxplus K_{7i})</math>
    2. <math>c \leftarrow c \oplus G_{21} (d \boxplus K_{7i-1})</math>
    3. <math>a \leftarrow a \boxminus G_{13} (b \boxplus K_{7i-2})</math>
    4. <math>e \leftarrow G_{21} (b \boxplus c \boxplus K_{7i-3}) \oplus (i)_{32}</math>
    5. <math>b \leftarrow b \boxplus e</math>
    6. <math>c \leftarrow c \boxminus e</math>
    7. <math>d \leftarrow d \boxplus G_{13} (c \boxplus K_{7i-4})</math>
    8. <math>b \leftarrow b \oplus G_{21} (a \boxplus K_{7i-5})</math>
    9. <math>c \leftarrow c \oplus G_{5} (d \boxplus K_{7i-6})</math>
    10. <math>a \leftrightarrow b </math>
    11. <math>c \leftrightarrow d </math>
    12. <math>b \leftrightarrow c </math>
  3. Установить <math>Y \leftarrow c\|a\|d\|b</math>
  4. Возвратить <math>Y</math>

Алгоритм хеширования

Для контроля целостности данных применяется специальная функция хеширования. На вход подается битовая последовательность X любой длины. Выход — 256-битовое хеш-значение входной последовательности.

К входной последовательности <math>X</math>первоначально добавляют <math>t</math> нулевых символов, где <math>t</math> — минимальное неотрицательное целое число такое, что <math>|X| + t</math> кратно 256. <math>X\|0^t = X_1\|X_2\|X_3\|...\|X_d, X_i</math> — 256-битное слово. Для хэширования дополнительно используются одна 128-битная переменная s и 256-битная переменная h. Определены два отображения: <math>\sigma_1: {\{0,1\}}^{512} \rightarrow {\{0,1\}}^{128}</math> и <math>\sigma_2: {\{0,1\}}^{512} \rightarrow {\{0,1\}}^{256}</math>, которые действуют на слова <math>u=u_1\|u_2\|u_3\|u_4, u_i</math> — 128-битное слово, по правилам:

<math>\sigma_1 = F_{u_1\|u_2}(u_3 \oplus u_4) \oplus u_3 \oplus u_4,</math>

<math>\sigma_1 = (F_{\theta_1}(u_1)\oplus u_1)\|(F_{\theta_2}(u_2)\oplus u_2),</math>

где <math>\theta_1 = \sigma_1(u)||u_4, \theta_2 = (\sigma_1(u) \oplus 1^{128}) \| u_3</math>

Для получения хеш-значения необходимо выполнить следующие шаги:

  1. Установить <math>s \leftarrow 0^{128}</math>
  2. Установить h = B194BAC80A08F53B366D008E584A5DE48504FA9D1BB6C7AC252E72C202FDCE0D
  3. Для i=1,2,… ,d выполнить:
    1. <math>s \leftarrow s \oplus \sigma_1 (X_i \| h)</math>
    2. <math>h \leftarrow \sigma_2 (X_i || h)</math>
  4. Установить <math>Y \leftarrow \sigma_2((|X|)_{128}\|s\|h)</math>
  5. Возвратить Y

Напишите отзыв о статье "BelT"

Ссылки

  1. apmi.bsu.by/assets/files/std/belt-spec27.pdf

Отрывок, характеризующий BelT

Получив это известие поздно вечером, когда он был один в. своем кабинете, старый князь, как и обыкновенно, на другой день пошел на свою утреннюю прогулку; но был молчалив с приказчиком, садовником и архитектором и, хотя и был гневен на вид, ничего никому не сказал.
Когда, в обычное время, княжна Марья вошла к нему, он стоял за станком и точил, но, как обыкновенно, не оглянулся на нее.
– А! Княжна Марья! – вдруг сказал он неестественно и бросил стамеску. (Колесо еще вертелось от размаха. Княжна Марья долго помнила этот замирающий скрип колеса, который слился для нее с тем,что последовало.)
Княжна Марья подвинулась к нему, увидала его лицо, и что то вдруг опустилось в ней. Глаза ее перестали видеть ясно. Она по лицу отца, не грустному, не убитому, но злому и неестественно над собой работающему лицу, увидала, что вот, вот над ней повисло и задавит ее страшное несчастие, худшее в жизни, несчастие, еще не испытанное ею, несчастие непоправимое, непостижимое, смерть того, кого любишь.
– Mon pere! Andre? [Отец! Андрей?] – Сказала неграциозная, неловкая княжна с такой невыразимой прелестью печали и самозабвения, что отец не выдержал ее взгляда, и всхлипнув отвернулся.
– Получил известие. В числе пленных нет, в числе убитых нет. Кутузов пишет, – крикнул он пронзительно, как будто желая прогнать княжну этим криком, – убит!
Княжна не упала, с ней не сделалось дурноты. Она была уже бледна, но когда она услыхала эти слова, лицо ее изменилось, и что то просияло в ее лучистых, прекрасных глазах. Как будто радость, высшая радость, независимая от печалей и радостей этого мира, разлилась сверх той сильной печали, которая была в ней. Она забыла весь страх к отцу, подошла к нему, взяла его за руку, потянула к себе и обняла за сухую, жилистую шею.
– Mon pere, – сказала она. – Не отвертывайтесь от меня, будемте плакать вместе.
– Мерзавцы, подлецы! – закричал старик, отстраняя от нее лицо. – Губить армию, губить людей! За что? Поди, поди, скажи Лизе. – Княжна бессильно опустилась в кресло подле отца и заплакала. Она видела теперь брата в ту минуту, как он прощался с ней и с Лизой, с своим нежным и вместе высокомерным видом. Она видела его в ту минуту, как он нежно и насмешливо надевал образок на себя. «Верил ли он? Раскаялся ли он в своем неверии? Там ли он теперь? Там ли, в обители вечного спокойствия и блаженства?» думала она.
– Mon pere, [Отец,] скажите мне, как это было? – спросила она сквозь слезы.
– Иди, иди, убит в сражении, в котором повели убивать русских лучших людей и русскую славу. Идите, княжна Марья. Иди и скажи Лизе. Я приду.
Когда княжна Марья вернулась от отца, маленькая княгиня сидела за работой, и с тем особенным выражением внутреннего и счастливо спокойного взгляда, свойственного только беременным женщинам, посмотрела на княжну Марью. Видно было, что глаза ее не видали княжну Марью, а смотрели вглубь – в себя – во что то счастливое и таинственное, совершающееся в ней.
– Marie, – сказала она, отстраняясь от пялец и переваливаясь назад, – дай сюда твою руку. – Она взяла руку княжны и наложила ее себе на живот.
Глаза ее улыбались ожидая, губка с усиками поднялась, и детски счастливо осталась поднятой.
Княжна Марья стала на колени перед ней, и спрятала лицо в складках платья невестки.
– Вот, вот – слышишь? Мне так странно. И знаешь, Мари, я очень буду любить его, – сказала Лиза, блестящими, счастливыми глазами глядя на золовку. Княжна Марья не могла поднять головы: она плакала.
– Что с тобой, Маша?
– Ничего… так мне грустно стало… грустно об Андрее, – сказала она, отирая слезы о колени невестки. Несколько раз, в продолжение утра, княжна Марья начинала приготавливать невестку, и всякий раз начинала плакать. Слезы эти, которых причину не понимала маленькая княгиня, встревожили ее, как ни мало она была наблюдательна. Она ничего не говорила, но беспокойно оглядывалась, отыскивая чего то. Перед обедом в ее комнату вошел старый князь, которого она всегда боялась, теперь с особенно неспокойным, злым лицом и, ни слова не сказав, вышел. Она посмотрела на княжну Марью, потом задумалась с тем выражением глаз устремленного внутрь себя внимания, которое бывает у беременных женщин, и вдруг заплакала.
– Получили от Андрея что нибудь? – сказала она.
– Нет, ты знаешь, что еще не могло притти известие, но mon реrе беспокоится, и мне страшно.
– Так ничего?
– Ничего, – сказала княжна Марья, лучистыми глазами твердо глядя на невестку. Она решилась не говорить ей и уговорила отца скрыть получение страшного известия от невестки до ее разрешения, которое должно было быть на днях. Княжна Марья и старый князь, каждый по своему, носили и скрывали свое горе. Старый князь не хотел надеяться: он решил, что князь Андрей убит, и не смотря на то, что он послал чиновника в Австрию розыскивать след сына, он заказал ему в Москве памятник, который намерен был поставить в своем саду, и всем говорил, что сын его убит. Он старался не изменяя вести прежний образ жизни, но силы изменяли ему: он меньше ходил, меньше ел, меньше спал, и с каждым днем делался слабее. Княжна Марья надеялась. Она молилась за брата, как за живого и каждую минуту ждала известия о его возвращении.


– Ma bonne amie, [Мой добрый друг,] – сказала маленькая княгиня утром 19 го марта после завтрака, и губка ее с усиками поднялась по старой привычке; но как и во всех не только улыбках, но звуках речей, даже походках в этом доме со дня получения страшного известия была печаль, то и теперь улыбка маленькой княгини, поддавшейся общему настроению, хотя и не знавшей его причины, – была такая, что она еще более напоминала об общей печали.
– Ma bonne amie, je crains que le fruschtique (comme dit Фока – повар) de ce matin ne m'aie pas fait du mal. [Дружочек, боюсь, чтоб от нынешнего фриштика (как называет его повар Фока) мне не было дурно.]
– А что с тобой, моя душа? Ты бледна. Ах, ты очень бледна, – испуганно сказала княжна Марья, своими тяжелыми, мягкими шагами подбегая к невестке.
– Ваше сиятельство, не послать ли за Марьей Богдановной? – сказала одна из бывших тут горничных. (Марья Богдановна была акушерка из уездного города, жившая в Лысых Горах уже другую неделю.)
– И в самом деле, – подхватила княжна Марья, – может быть, точно. Я пойду. Courage, mon ange! [Не бойся, мой ангел.] Она поцеловала Лизу и хотела выйти из комнаты.
– Ах, нет, нет! – И кроме бледности, на лице маленькой княгини выразился детский страх неотвратимого физического страдания.
– Non, c'est l'estomac… dites que c'est l'estomac, dites, Marie, dites…, [Нет это желудок… скажи, Маша, что это желудок…] – и княгиня заплакала детски страдальчески, капризно и даже несколько притворно, ломая свои маленькие ручки. Княжна выбежала из комнаты за Марьей Богдановной.