Bælte

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 25. maj 2019; checks kræver 35 redigeringer .
Bælte
Oprettet 2001 _
offentliggjort 2007 _
Nøglestørrelse 256 bit
Blokstørrelse 128 bit
Antal runder otte
Type kombination af Feistel-netværk og en: Lai-Massey-skema

BelT  er den statslige standard for symmetrisk kryptering og integritetskontrol i Republikken Hviderusland. Standardens fulde navn er STB 34.101.31-2007 “Informationsteknologi og sikkerhed. Kryptografiske algoritmer til kryptering og integritetskontrol. Vedtaget som en foreløbig standard i 2007. Indført som den endelige standard i 2011.

Beskrivelse

BelT er en blokchiffer med en 256-bit nøgle og 8 kryptotransformationscyklusser, der opererer med 128-bit ord. Standardens kryptografiske algoritmer er bygget på basis af grundlæggende krypteringstilstande for datablokke. Alle standardalgoritmer er opdelt i 8 grupper:

De første fire grupper er til sikker meddelelse. Hver gruppe inkluderer en krypteringsalgoritme og en dekrypteringsalgoritme baseret på en hemmelig nøgle. Parter med en delt nøgle kan udveksle meddelelser ved at kryptere dem, før de sendes, og dekryptere dem, efter de er modtaget. I tilstandene med simpel udskiftning og sammenkædning af blokke krypteres meddelelser, der indeholder mindst en blok, og i gammatilstandene med feedback og tælleren krypteres meddelelser af vilkårlig længde.

Den femte algoritme er designet til at kontrollere integriteten af ​​meddelelser ved hjælp af imiterede inserts - kontrolord, der bestemmes ved hjælp af en hemmelig nøgle. Parter, der har en fælles nøgle, kan organisere integritetskontrol under udvekslingen af ​​beskeder ved at tilføje falske indstik til dem, når de sender og kontrollere falske indstik ved modtagelse. Kontrol af efterlignede indstik tillader desuden modtagersiden at verificere, at afsendersiden kender den hemmelige nøgle, det vil sige at verificere ægtheden af ​​meddelelser.

I den sjette gruppe er det oprindelige budskab givet af to dele: åben og kritisk. Beskyttelsesalgoritmerne er designet til at kontrollere integriteten af ​​begge dele og sikre fortroligheden af ​​den kritiske del. Når beskyttelse er indstillet, beregnes den imiterede indsættelse af hele meddelelsen, og dens kritiske del krypteres. Når beskyttelsen fjernes, kontrolleres efterligningen, og hvis kontrollen lykkes, dekrypteres den kritiske del.

I algoritmerne i den syvende gruppe skal længden af ​​den beskyttede meddelelse kendes med det samme; disse algoritmer anbefales at blive brugt til at beskytte nøgler. Den beskyttede nøgle er ledsaget af en offentlig header, der indeholder nøglens offentlige attributter og er også en kontrolværdi for integritetskontrol. Der kan anvendes faste vedvarende overskrifter, som kun tjener som integritetstjek. Når beskyttelse er indstillet, krypteres nøglen sammen med dens overskrift. Når beskyttelsen fjernes, udføres den omvendte transformation, og den dekrypterede header sammenlignes med kontrolheaderen.

Den ottende algoritme er designet til at beregne hashværdier - kontrolord, der bestemmes uden brug af en nøgle. Parter kan organisere meddelelsesintegritetstjek ved at sammenligne deres hashværdier med gyldige kontrolhashværdier. Ændring af en besked med stor sandsynlighed ændrer den tilsvarende hashværdi, og derfor kan hashværdier bruges i stedet for selve beskederne, for eksempel i elektroniske digitale signatursystemer.

Bloker kryptering

Input og output

Indgangsdataene for krypterings- og dekrypteringsalgoritmerne er blokken og nøglen

Outputtet er en blok - resultatet af kryptering eller dekryptering af ordet på nøglen eller

Indgangsdataene til kryptering er forberedt som følger:

Notation og hjælpetransformationer

Transform sætter i linje ord , ord

cyklisk venstreskift efter lidt.

operationen med at erstatte en 8-bit inputstreng med en substitution fra tabel 1.

Substitutionen er givet af en fast tabel. Tabellen bruger hexadecimal repræsentation af ord

og modulo additions- og subtraktionsoperationer

Kryptering

For at kryptere en blok på en nøgle udføres følgende trin:

  1. Installere
  2. For = 1,2,...,8 gør:
en) 2) 3) fire) 5) 6) 7) otte) 9) ti) elleve) 12) 3. Installer 4. Retur

Dekryptering

For at dekryptere en blok på en nøgle udføres følgende trin:

  1. Installere
  2. For 8,7,...,1 løb:
en) 2) 3) fire) 5) 6) 7) otte) 9) ti) elleve) 12) 3. Installer 4. Retur

Udvikling af imiteret indsættelse

Input data

Hjælpetransformationer og variabler

.

Algoritme til generering af imitationsindsættelse

  1. Udfyld hjælpevariablen med nuller: og indstil krypteringsresultatet på den givne nøgle til : .
  2. For hver blok af inputmeddelelsen skal du udføre: .
  3. Hvis , så udfør , ellers .
  4. Skriv i de første 64 bit af ordet : .
  5. Retur .

Hashing-algoritme

Hashing-algoritmen bruges til at beregne en hashværdi, som senere kan bruges til at kontrollere dataenes integritet.

Input data

Inputtet til algoritmen er en besked af vilkårlig længde, repræsenteret som en bitsekvens .

Outputtet er et ord .

For at algoritmen skal fungere, er den indledende bitsekvens polstret med nuller, så dens længde er delelig med 256 og er repræsenteret som følger: . Vi skal også bruge variabler og .

Hjælpetransformationer

Lad der være et ord .

Vi definerer to kortlægninger:

som handler på ordet efter reglerne:

hvor ,. _

Beregning af en hashværdi

Algoritmen udføres i flere trin:

  1. Vi udfylder variablen med nuller: .
  2. Vi skriver de to første rækker i substitutionstabellen til variablen , flytter fra venstre mod højre og fra top til bund: .
  3. For hver blok skal du udføre følgende handlinger:
    1. ;
    2. .
  4. Vi beregner :.
  5. Vi returnerer den modtagne værdi , som er hashværdien af ​​kildeteksten .

Links

  1. http://apmi.bsu.by/assets/files/std/belt-spec27.pdf
  2. http://apmi.bsu.by/assets/files/std/belt-spec14.pdf