BelT

BelT
BelT
Создан:

2007 г.

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

2007 г.

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

256 бит

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

128 бит

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

8

Тип:

Подстановочно-перестановочная сеть

BelT — предварительный государственный стандарт симметричного шифрования Республики Беларусь. Полное название стандарта — СТБ П 34.101.31 — 2007. Может быть использован для контроля целостности данных. При использовании метода шифрования с гаммированием, может выполнять функции поточного шифроалгоритма. Утвержден и введен в действие постановлением Госстандарта Республики Беларусь в качестве предварительного государственного стандарта в 2007 году.

Содержание

Описание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

\sigma_1 = F_{u_1\|u_2}(u_3 \oplus u_4) \oplus u_3 \oplus u_4,


\sigma_1 = (F_{\theta_1}(u_1)\oplus u_1)\|(F_{\theta_2}(u_2)\oplus u_2),

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

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

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



Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Полезное


Смотреть что такое "BelT" в других словарях:

  • Belt — can refer to the following objects: *Belt (clothing), a part of clothing worn around the waist to hold trousers up or as a fashion accessory. *Police duty belt, a belt worn by police officers, which holds all the equipment they need to conduct… …   Wikipedia

  • Belt — (b[e^]lt), n. [AS. belt; akin to Icel. belti, Sw. b[ a]lte, Dan. b[ae]lte, OHG. balz, L. balteus, Ir. & Gael. balt border, belt.] 1. That which engirdles a person or thing; a band or girdle; as, a lady s belt; a sword belt. [1913 Webster] The… …   The Collaborative International Dictionary of English

  • Belt — (homonymie) Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. Le mot anglais belt, généralement traduit par ceinture ou courroie, peut faire référence à plusieurs objets ou concepts. Géographie Bible Belt …   Wikipédia en Français

  • belt — ► NOUN 1) a strip of leather or other material worn round the waist to support or hold in clothes or to carry weapons. 2) a continuous band in machinery that transfers motion from one wheel to another. 3) a strip or encircling area: the asteroid… …   English terms dictionary

  • belt — [belt] n. [OE, akin to OHG balz, ult. < L balteus < ? Etr] 1. a strip or band of leather or other material worn around the waist to hold clothing up, support tools, etc., or as an ornament or sign of rank: see also SAFETY BELT 2. any… …   English World dictionary

  • belt*/ — [belt] noun [C] I 1) a narrow piece of leather or cloth that you wear around your waist 2) a circular band that turns or moves something in a machine 3) an area of land where there is a particular industry or activity the corn belt[/ex] •… …   Dictionary for writing and speaking English

  • Belt — steht für: Meerengen um Dänemark, insbesondere Großer und Kleiner Belt und Fehmarnbelt, siehe Belte und Sunde Regionen der Vereinigten Staaten (engl. belt „Gürtel“), siehe Belt Regionen Belt (Montana), Stadt in den Vereinigten Staaten Die… …   Deutsch Wikipedia

  • belt — belt; belt·ian; belt·man; rain·belt·er; un·belt; …   English syllables

  • belt|ed — «BEHL tihd», adjective. 1. having or wearing a belt. 2. wearing a special belt as a sign of honor. 3. marked by a belt or band, as of a distinctive color. 4. fastened on by means of a belt: »a belted sword …   Useful english dictionary

  • Belt — Belt, v. t. [imp. & p. p. {Belted}; p. pr. & vb. n. {Belting}.] To encircle with, or as with, a belt; to encompass; to surround. [1913 Webster] A coarse black robe belted round the waist. C. Reade. [1913 Webster] They belt him round with hearts… …   The Collaborative International Dictionary of English

  • Belt II — Artiste Masahiro Kiyomizu Année 1972 Type Acier Technique Sculpture Localisation Musée de la sculpture en plein air, Paris, France Coordonnées …   Wikipédia en Français


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»