QOST 28147-yə uyğun kriptoqrafik çevrilmə alqoritmi 89. Daxili məlumatların şifrələnməsi standartı. Əsas məlumat tələbləri

Cəmiyyətdə məşhur "prosessor performansı" termini floplarla ölçülən obyektiv, hesablanmış bir parametrdir. Bununla belə, əksəriyyət bunu gigahertzlə ölçür, sadəlövhcəsinə bunun eyni şey olduğuna inanır. Heç kim "kod performansı" terminini bilmir və bunun səbəbini dərhal izah edəcəyəm.

Səbəb odur ki, mən bu yaxınlarda ağlıma gəlmişəm və bu barədə hələ ki, heç kimə deməmişəm. Bununla belə, kod performansı, prosessor performansı kimi, ölçülə bilən obyektiv xüsusiyyətlərə malikdir. Bu məqalə xüsusi olaraq prosessor nüvəsi tərəfindən icra edilən kodun performansı haqqındadır.

Kod performansı necə ölçülür? Bu barədə ilk danışan mən olduğum üçün kəşf edənin hüququ ilə onu RTT tərəzisində ölçəcəyəm;).

İndi ciddi. Müasir prosessorlarda əsas çevrilmələr 32 bitlik nömrələr üzərində əməliyyatlardır, qalan hər şey ümumiyyətlə ekzotikdir. Buna görə də, əsas şeyi - 32 bitlik nömrələrlə əməliyyatları nəzərə alacağıq. Sizcə, müasir prosessorun nüvəsi eyni vaxtda neçə 32 bit əməliyyatı yerinə yetirə bilər?

Tələbə cavab verəcək - bir, müəllimi düşünəcək və deyəcək ki, dörd, peşəkar - indiyə qədər cəmi on iki əməliyyat var.

Beləliklə, bütün kodun icra müddəti ərzində eyni vaxtda prosessorun bütün icraedici cihazlarını yükləyən proqram kodu 12 RTT NIS performansına malik olacaqdır. Maksimum! Düzünü desəm, indiyə qədər belə kod yazmamışdım, amma bu yazıda öz üzərimdə səy göstərməyə çalışacağam.

On iki 32 bitlik əməliyyatın eyni vaxtda icrası ilə kodun mümkün olduğunu sübut edəcəyəm

Prosessor nüvəsində bir icra vahidindən istifadə edən proqram kodu təbii olaraq 1 RTT performansına malik olacaqdır. Yüksək səviyyəli dil kompilyatorları və virtual maşın tərcüməçiləri tərəfindən yaradılan proqramlar belə kod performansı ilə "öyünə" bilər. Güman etmək olmaz ki, OS tapşırıq menecerində görünə bilən CPU istifadə göstəricisi kodun effektivliyi üçün obyektiv meyar kimi xidmət edə bilər. Prosessorun əsas yükü 100% ola bilər, lakin proqram kodu onda bir icra qurğusundan istifadə edəcək (performans 1 RTT). Bu halda, 100% yüklə, prosessor nüvəsi maksimum performansının 1/12-də işləyəcək. Başqa sözlə, Windows Task Manager maksimum CPU istifadəsini göstərdikdə, onun faktiki performansı 1 ilə 12 RTT arasında dəyişə bilər. Performans pəncərəsində hər hansı bir prosessor nüvəsinin 100% yüklənməsini görərək, heç bir halda bütün icraedici cihazların bu nüvədə işlədiyini düşünmək düzgün deyil!

Prosessor nüvəsinin maksimum performansını qiymətləndirmək üçün yeganə dolayı meyar onun enerji istehlakı və nəticədə soyuducunun səs-küyüdür. İndi, soyuducu səs-küylüdürsə, bəli - yük maksimuma çatdı. Bununla belə, ümumi anlayışlarla bitirmək və sərt təcrübəyə keçmək vaxtıdır.

GOST 28147-89-un ənənəvi tətbiqi

Mən informasiya təhlükəsizliyi sahəsində peşəkar deyiləm, lakin şifrələmə mövzusu ilə hələ də tanışam. Dərin hörmət etdiyim peşəkar kriptoqrafla söhbətlərim məni xüsusi simmetrik axın şifrələməsi ilə məşğul olmağa ruhlandırdı. Və bu mövzunu götürərək, vaxt vahidinə maksimum sayda əməliyyat yerinə yetirərək, bunu yaxşı və nəinki yaxşı, həm də tez etməyə çalışdım. Yəni proqram kodunu maksimum RTT dəyəri ilə yazmaq vəzifəsi ilə üzləşdim.

GOST 28147-89-a uyğun olaraq kriptoqrafik çevrilmə rabitə kanallarında və disk sürücülərində məlumatların axın şifrələməsi üçün istifadə olunur.

Hazırda mərkəzi prosessorun RON-da bu QOST-un proqram təminatının tətbiqi geniş istifadə olunur. GOST-un tətbiqi üçün məşhur üsullarda bütün gizli məlumatlar (şifrələmə açarları, əvəzedici bloklar) RAM-a yerləşdirilir. Bu, şifrələmənin etibarlılığını azaldır, çünki RAM zibilinə sahib olmaqla, kripto transformasiyasının bütün gizli elementlərini tamamilə açmaq mümkündür. Bundan əlavə, OP-də kripto-transformasiyanın əsas obyektlərinin yerləşməsi və ALU-nun icraçı cihazlarının natamam yüklənməsi səbəbindən metodun sürət məhdudiyyətləri var. Tanınmış metoddan istifadə edərək kriptoproseduru həyata keçirən müasir prosessorlar saniyədə 40-60 meqabayt şifrələmə sürətini təmin edə bilir. Və əgər siz bunu həqiqətən sona qədər başa düşürsünüzsə, o zaman kriptovalyuta konvertasiyasının aşağı performansının və zəif təhlükəsizliyinin səbəbi əvəzetmə blokunun proqram təminatının həyata keçirilməsidir. Şəkildə GOST-da onun təsvirinə baxın. 1.

QOST-un 1.2-ci bəndinə uyğun olaraq, bu blok 32 bitlik sözdə tetrad (dörd bit) dəyişdirmələri həyata keçirir, lakin x86 / 64 prosessor arxitekturası və onun təlimat dəsti tetradları effektiv manipulyasiya etmək iqtidarında deyil.

Əvəzetmə blokunun proqram təminatının həyata keçirilməsi üçün RAM-da kriptofunksiyanın işə salınması mərhələsində hazırlanan xüsusi cədvəllərdən istifadə olunur. Bu cədvəllər bitişik tetradların əvəzedici qovşaqlarını 8 × 8 bit baytlıq cədvəllərə birləşdirir, buna görə də RAM-da dörd 256 baytlıq cədvəl var.

Daha təkmil tətbiqlərdə bu cədvəllər 1024 bayt ölçüdədir (dörd baytdan 256 söz). Bu, cədvəllərdə əvəzetmə nəticəsində əldə edilmiş 32 bitlik sözün 11 mövqeyinə əlavə tsiklik sürüşməni həyata keçirmək üçün edilir (GOST-a uyğun olaraq çevrilmə alqoritminin növbəti əməliyyatı). Bu üsula uyğun olaraq GOST-un həyata keçirilməsinə bir nümunə Əlavə 1-də (diskdə) göstərilmişdir.

Əvəzetmə blokunun məlumatı kriptofonksiyonun gizli komponentidir (QOST-da tərtib edildiyi kimi, Şəkil 2-ə baxın).

Bu cədvəllərin OP-də əvəzetmə blokunun açarları ilə yerləşdirilməsi GOST-un tələblərinə ziddir (1.7-ci bənd), çünki məxfi məlumatlar kompüter quraşdırmasında işləyən üçüncü tərəf proqramları üçün əlçatan olur. QOST-a uyğun olaraq şifrələmənin proqram təminatının tətbiqini də təsdiqləyən FSB bu pozuntuya yumşaq desək, alçaldıcı şəkildə baxır. Açarları OP-də yerləşdirmək üçün FSB hələ də "əncir yarpağı" tələb edir - düymələri XOR əməliyyatı ilə maskalayır, onda OP-də blokların dəyişdirilməsi üçün heç bir şey tələb olunmur, onlar aydın mətndə saxlanılır.

Bir sözlə, FSB, belə bir həllin gücünün açıq şəkildə azalmasına və GOST-a uyğun olaraq öz tələblərinin birbaşa pozulmasına baxmayaraq, kriptoprosedurun bu cür proqram təminatı tətbiqlərini atlayır (maddə 1.7). Və bu, yaddaş zibilinin çıxarılması ilə şifrələri qırmağın məşhur üsullarına baxmayaraq ...

Açarların və əvəzedici blokların prosessorun daxili registrlərində saxlanması məsələsinə bir az sonra qayıdacayıq (gözəl və sürətli həll yolu var), lakin hələlik biz yalnız MMX registrlərində şifrələmə açarlarını saxlayacağıq, bu daha etibarlıdır.

Ancaq kifayət qədər sözlər, baxılan mövzu çərçivəsində bu proqram kodunun 1 RTT-shku performansına sahib olması vacibdir. İndi isə 2 RTT performanslı kod yazaq.

GOST 28147-89-un çox yivli tətbiqi

Məlum alqoritmdə kripto-prosedurları sürətləndirməyin yeganə yolu multithreading-in tətbiqidir. Alqoritmin həyata keçirilməsində belə bir dəyişikliyin mənası eyni anda bir neçə verilənlər blokunun paralel hesablanmasıdır.

Əksər proqramçılar paralel emal dedikdə yalnız yaddaşdakı kəsilmələr və semaforlar vasitəsilə sinxronlaşdırılan bir neçə prosessor nüvəsinin işini nəzərdə tuturlar.

Bununla belə, bir prosessor nüvəsində paralel məlumatların işlənməsinin başqa bir variantı var. İcazə verin bu aydın olmayan fikri izah edim.

Müasir prosessorlara ən azı iki, hətta üç-altı arifmetik məntiq vahidi daxildir. Bu ALU-lar (FPU-lar, ünvan arifmetik vahidləri və s.) bir-birindən asılı olmayaraq işləyə bilər, onların paralel işləməsinin yeganə şərti işlədikləri üst-üstə düşməyən proqram obyektləridir. Başqa sözlə, ALU-nu eyni vaxtda yerinə yetirən təlimatlarda yaddaş ünvanları və registr nömrələri fərqli olmalıdır. Yaxud, prosessorun müxtəlif icraedici qurğularının daxil olduğu ümumi registrlərə və yaddaş ünvanlarına heç bir yazma əməliyyatı aparılmamalıdır.

Bütün ALU-ların işinin yüklənməsi prosessorun nüvəsindəki xüsusi bir aparat bloku tərəfindən idarə olunur - icra olunan kodu 32-64 bayt dərinliyə baxan planlaşdırıcı. Planlaşdırıcı ALU-da ziddiyyətsiz işlədilə bilən əmrləri tapırsa, o zaman onları eyni vaxtda müxtəlif icra vahidlərində işlədir. Bu halda, yerinə yetirilən əmrlərin sayğacı icra olunan əmrə işarə edir (belə bir sxemdə onlardan bir neçəsi var), bundan sonra bütün əmrlər artıq yerinə yetirilmişdir.

Avtomatik olaraq (tərtibçilər tərəfindən) yaradılan əksər proqram ardıcıllığı prosessor nüvəsində olan bütün ALU və FPU-ları yükləyə bilməz. Bu halda, prosessorun aparatı boş vəziyyətdədir, bu da onun nəticəsini əhəmiyyətli dərəcədə azaldır. Prosessor tərtibatçıları bunu başa düşür və avadanlıq tam istifadə edilmədikdə əsas tezliyi artırmaq üçün rejimlər təqdim edirlər. Hiper ticarət sistemləri də bunun üçün nəzərdə tutulub və mən gələcəkdə kodu maksimum dərəcədə “basmaq” üçün bu sistemdən istifadə edəcəyəm.

Kompilyatorlar, hətta ən optimallaşdırılmışlar və daha çox - virtual maşın mühərrikləri performans baxımından optimallaşdırılmış kod yarada bilməz. Yalnız mühəndislik biliyi olan bir proqramçı belə optimallaşdırılmış kodu yaza bilər və onu yazmaq üçün alət yalnız assemblerdir.

Bir prosessor nüvəsində bir neçə müstəqil proqram ipinin icrasının mümkünlüyünün xarakterik bir nümunəsi, bir prosessor nüvəsində iki iplikdə icra olunan GOST tətbiqidir. Kodun ideyası sadədir: şifrələmə/şifrəni açmaq üçün iki məlumat bloku var, lakin çevrilməni həyata keçirəcək bir prosessor nüvəsi. Bu iki məlumat bloku üçün transformasiyanı ardıcıl olaraq həyata keçirmək mümkündür və bu, indiyədək edilib. Bu halda, çevrilmələri yerinə yetirmək üçün tələb olunan vaxt iki dəfə artır.

Ancaq başqa cür edə bilərsiniz: müxtəlif məlumat bloklarının emalı ilə əlaqəli alternativ əmrlər. Qrafik olaraq, bu seçimlər Şek. 3.


Şəkildə yuxarıdakı nümunə iki müstəqil məlumat blokunun işlənməsinin adi qaydasını göstərir. Əvvəlcə birinci blok işlənir, sonra prosessor ikinci blokun emalına keçir. Təbii ki, yaranan vaxt bir bloku emal etmək üçün tələb olunan vaxtın iki qatına bərabərdir və prosessor nüvəsinin icra bölmələri tam yüklənmir.

Aşağıda müxtəlif emal mövzularından bir-birinin ardınca daxil olan əmrlərə nümunə göstərilir. Bu halda, müxtəlif məlumat blokları ilə əlaqəli əmrlər bir-birinə qarışır. Planlayıcı bir-birindən asılı olmayan təlimatları seçir və icra üçün onları ALU1 və ALU2-yə ötürür. Bu ALU-larda birinci və ikinci iplərin komandalarının qruplaşdırılması avtomatik olaraq həyata keçirilir, çünki planlaşdırıcının iş alqoritmi eyni icraedici cihazda ümumi məlumatlara uyğun olaraq dişli ilə əmrlərin qruplaşdırılmasını ehtiva edir.

Belə proqram kodunun ALU boş vaxtı olmadan işləməsi üçün hər bir proqram xəttinin öz registrləri dəsti ilə işləməsi lazımdır. Bu sxemdəki keş darboğaza çevrilir (yalnız iki məlumat çıxış portu var), buna görə də biz açarları MMX registrlərində saxlayırıq. Bu halda əvəzedici (və sürüşdürmə) qovşaqları yaddaşda yalnız oxumaq üçün olduğundan, onlar hər iki proqram mövzusu tərəfindən paylaşıla bilər.

Bu, əlbəttə ki, proqram iplərinin bir nüvədə paralel icrası prinsipinin çox sadələşdirilmiş izahıdır, əslində hər şey daha mürəkkəbdir. Praktikada icra bölmələrinin boru kəməri arxitekturasını, keş və RON registr blokuna eyni vaxtda daxil olma məhdudiyyətlərini, ünvan arifmetik qovşaqlarının, açarların və daha çox şeyin mövcudluğunu nəzərə almaq lazımdır ... Beləliklə, bu bir mövzudur. bir tərəfdən barmaqla sayıla biləcək peşəkarlar üçün.

Paralel şifrələmə üsulu yalnız 64 bitlik prosessorun işləmə rejimi üçün effektiv şəkildə həyata keçirilir, çünki bu rejimdə kifayət qədər RON var (16 ədədə qədər!). Bu üsula uyğun olaraq GOST-un həyata keçirilməsinə bir nümunə Əlavə 2-də (diskdə) göstərilmişdir.

Aydındır ki, bu GOST tətbiqi 2 RTT kod performansına malikdir. İndi gəlin bunun icra müddətinə necə təsir etdiyini görək.

Bir axın üçün şifrələmə dövrü (Əlavə 1) 352 dövrdür və bu müddət ərzində 8 bayt məlumat hesablanır, GOST-un iki axını (Əlavə 2) üçün 416 prosessor dövrü tələb olunur, lakin 16 bayt hesablanır. Beləliklə, nəticədə çevrilmə sürəti 3,6 GHz prosessor üçün 80-dən 144 meqabayta qədər artır.

Maraqlı bir mənzərə ortaya çıxır: kodda düz iki dəfə çox təlimat var və onun yerinə yetirilməsi cəmi 15% daha çox vaxt aparır, amma düşünürəm ki, oxucular bu fenomenin səbəbini artıq başa düşüblər...

Nəzəri olaraq, ikinci misaldakı kod birinci nümunədəki kodla eyni sayda dövrlərdə yerinə yetirilməlidir, lakin planlaşdırıcı node Intel mühəndisləri tərəfindən hazırlansa da, onlar da insanlardır və biz hamımız mükəmməl olmaqdan uzağıq. Beləliklə, onların yaradılmasının effektivliyini qiymətləndirmək imkanı var. Bu kod AMD prosessorunda da işləyəcək və siz onların nəticələrini müqayisə edə bilərsiniz.

Əgər kimsə mənim sözümü qəbul etmirsə, o zaman belə imansızlar üçün diskə saat sayğacları olan test proqramları daxil edilir. Mənbə kodlarındakı proqramlar, əlbəttə ki, assemblerdə, buna görə sözlərimi yoxlamaq və eyni zamanda peşəkar kodlaşdırmanın bəzi fəndlərini öyrənmək imkanı var.

QOST 28147-89-un həyata keçirilməsi üçün müasir prosessorların SSE registrlərindən və AVX əmrlərindən istifadə

Müasir x86/64 arxitektura prosessorlarına 16 baytlıq SSE registrləri dəsti və bu registrlərdə müxtəlif əməliyyatları yerinə yetirmək üçün ixtisaslaşmış FPU (ən azı iki) daxildir. Bu avadanlıqda QOST-u həyata keçirmək mümkündür və bu halda əvəzedici qovşaqlar RAM-da cədvəllər şəklində deyil, birbaşa xüsusi SSE registrlərində yerləşdirilə bilər.

Bir SSE reyestrində siz eyni anda 16 sətirdən ibarət iki cədvəl yerləşdirə bilərsiniz. Beləliklə, dörd SSE reyestri bütün əvəzedici cədvəlləri tamamilə yerləşdirəcəkdir. Belə yerləşdirmənin yeganə şərti interleaving tələbidir ki, ona uyğun olaraq eyni baytın tetradları müxtəlif SSE registrlərində yerləşdirilməlidir. Bundan əlavə, SSE registrlərinin aşağı və yüksək tetradalarında müvafiq olaraq giriş baytlarının aşağı və yüksək tetradalarının yerləşdirilməsi məqsədəuyğundur.

Bu tələblər mövcud AVX əmrləri dəsti üçün optimallaşdırma yolu ilə müəyyən edilir. Beləliklə, SSE registrinin hər baytında əvəzetmə blokunun giriş registrinin müxtəlif baytlarına uyğun gələn iki tetrad olacaq, halbuki SSE registrindəki baytın mövqeyi əvəzetmə blokunun dəyişdirmə cədvəlindəki indeksə unikal şəkildə uyğundur.

Əvəzedici qovşaqların SSE registrlərində mümkün yerləşdirmələrindən birinin diaqramı Şek. 4.


Əvəzedici qovşaqların məxfi məlumatlarının SSE registrlərində yerləşdirilməsi kriptoprosedurun təhlükəsizliyini artırır, lakin bu məxfi məlumatın tam təcrid edilməsi aşağıdakı şərtlər daxilində mümkündür:

  • Prosessor nüvəsi hipervizor host rejiminə yerləşdirilib və kəsmə bloku (APIC) məcburi şəkildə söndürülüb. Bu halda, prosessor nüvəsi əməliyyat sistemindən və hesablama qurğusunda işləyən proqramlardan tamamilə təcrid olunur.
  • SSE registrlərinin yüklənməsi və hesablama nüvəsinin təcrid edilməsi ƏS başlamazdan əvvəl həyata keçirilir, bu prosedurları etibarlı yükləmə modulundan (TDM) yerinə yetirmək optimaldır.
  • QOST-a uyğun olaraq kriptoprosedurların proqramları hesablama qurğusunun dəyişdirilə bilməyən yaddaş sahəsinə yerləşdirilir (ya BIOS və ya flash yaddaş MDZ).

Bu tələblərə əməl olunması kriptoprosedurların proqram kodunun və onlarda istifadə olunan məxfi məlumatların tam təcrid olunmasını və dəyişməzliyini təmin edəcəkdir.

Tetradların SSE registrlərindən səmərəli nümunə götürmək üçün FPU vahidlərində mövcud olan çox girişli bayt açarlarından istifadə olunur. Bu açarlar xüsusi SSE indeks reyestrində yerləşən indekslər vasitəsilə mənbənin istənilən baytından təyinatın istənilən baytına köçürmələrə imkan verir. Bundan əlavə, köçürmə SSE-registr-qəbuledicinin bütün 16 baytı üçün paralel olaraq həyata keçirilir.

SSE registrlərində əvəzedici saxlama qovşaqlarına və FPU vahidlərində çox girişli keçidə malik olmaqla, əvəzetmə vahidində aşağıdakı transformasiyanı təşkil etmək mümkündür (şək. 5).

Bu sxemdə hər bir tetrada olan giriş registrində müvafiq keçid üçün ünvan təyin edilir ki, bu da məlumat şini vasitəsilə əvəzedici qovşaq sürücülərindən məlumatı çıxış registrinə ötürür. Belə bir sxem üç şəkildə təşkil edilə bilər:

  • Müvafiq çip dizaynı yaradın, lakin bu bizim üçün fantastikdir.
  • Mikrokodu yenidən proqramlaşdırmaq və bu funksiyanı mövcud prosessorlarda həyata keçirmək üçün öz prosessor təlimatınızı yaratmaq artıq fantaziya deyil, təəssüf ki, mövcud şəraitdə real deyil.
  • Rəsmi AVX əmrlərindən istifadə edərək proqram yazın. Seçim çox təsirli olmasa da, onu "burada və indi" həyata keçirə bilərik. Beləliklə, bundan sonra edəcəyik.

Keçidlər xüsusi üç ünvanlı AVX VPSHUFB əmri ilə idarə olunur. Onun birinci operandı kommutatorlardan informasiyanın qəbuledicisi, ikincisi isə açarların girişlərinin qoşulduğu mənbədir. Üçüncü operand hər bir baytı müvafiq keçidlə əlaqəli olan açarlar üçün idarəetmə registridir; oradakı dəyər keçidin məlumatı oxuduğu istiqamətin sayını təyin edir. Rəsmi Intel sənədlərindən bu əmrin təsviri üçün şəkilə baxın. 5. Şek. Şəkil 6 bu əmrin işləməsini göstərir - SSE registrlərinin yalnız yarısı göstərilir, ikinci yarı üçün hər şey oxşardır.


Kommutasiya istiqamətini təyin etmək üçün keçid yalnız ən az əhəmiyyətli dörd bitdən istifadə edir, hər baytdakı sonuncu bit müvafiq qəbuledici baytını sıfıra məcbur etmək üçün istifadə olunur, lakin bu keçid funksiyası bizim vəziyyətimizdə hələ tələb olunmur.

FPU açarları vasitəsilə noutbuk seçimi olan bir proqram yazılmışdı, amma mən onu tətbiqə belə qoymadım - çox zəifdir. 128 bitlik registrə sahib olmaq və onda yalnız 32 bitdən istifadə etmək qeyri-peşəkarlıqdır.

Necə deyərlər, “bizim sonumuz üfüqdür” elə sıxıb çıxarın... basıb torbalara qoyacağıq!

Bu, söz oyunu deyil, sərt FPU reallığıdır - SSE registrləri bərabər hissələrə bölünə bilər və bir əmrlə bu hissələrdə eyni transformasiyalar edilə bilər. Prosessorun bunu başa düşməsi üçün sehrli "P" hərfi - mnemonic əmrindən əvvəl yerləşdirilən paket və heç də az olmayan sehrli "Q", "D", "W", "B" hərfləri var. sonunda yerləşdirilir və bu əmrdə SSE registrlərinin hansı hissələrə bölündüyünü bildirir.

Biz dörd 32-bit bloka bölünmüş SSE registrinin partlama rejimi ilə maraqlanırıq; müvafiq olaraq, bütün əmrlər "P" prefiksi ilə yazılacaq və "D" simvolu ilə başa çatacaq. Bu, bir prosessor göstərişi ilə paralel olaraq 32 bitlik dörd bloku emal etməyə, yəni paralel olaraq dörd məlumat blokunu hesablamağa imkan verir.

Bu metodu həyata keçirən proqram Əlavə 3-də mövcuddur, bütün izahatlar var.

Bununla belə, basın! Müasir prosessorlarda ən azı iki FPU var və onları tam yükləmək üçün iki müstəqil təlimat axını istifadə edilə bilər. Müstəqil axınlardan əmrləri düzgün birləşdirsəniz, hər iki FPU-nu tamamilə yükləyə və eyni anda səkkiz paralel işlənmiş məlumat axını əldə edə bilərsiniz. Belə bir proqram yazılmışdır və siz onu Əlavə 4-də görə bilərsiniz, ancaq diqqətlə baxmaq lazımdır - dəli ola bilərsiniz. Buna "kod hər kəs üçün deyil ..." deyilir.

Buraxılış qiyməti

Əvəzedici qovşaqların saxlanması üçün SSE registrlərinin istifadəsi başa düşüləndir - bu, gizli məlumatların təcrid olunmasına müəyyən zəmanət verir, lakin FPU-da kriptofunksiyanın özünün hesablanmasının mənası aydın deyil. Buna görə də, dörd və səkkiz axın üçün QOST-a uyğun olaraq birbaşa dəyişdirmə üsulundan istifadə edərək standart prosedurların icra müddəti ölçüldü.

Dörd ip üçün 472 prosessor dövrünün icra sürəti əldə edildi. Belə ki, 3,6 GHz tezliyə malik prosessor üçün bir ip saniyədə 59 meqabayt, dörd ip isə müvafiq olaraq saniyədə 236 meqabayt sürətlə nəzərdə tutulur.

Səkkiz ip üçün 580 prosessor dövrünün icra sürəti əldə edildi. Beləliklə, 3,6 GHz prosessor üçün bir ip saniyədə 49 meqabayt, səkkiz ip isə saniyədə 392 meqabayt sürətlə nəzərə alınır.

Oxucunun fərqinə varacağı kimi, 3-cü misaldakı kodun ötürmə qabiliyyəti 4 RTT, 4-cü misaldakı kodun isə 8 RTT ötürmə qabiliyyəti var. Bu nümunələrdə, SSE registrlərində nümunələr RON-dan istifadə edərkən olduğu kimidir, yalnız planlaşdırıcı onun səmərəliliyini azaldır. İndi kod uzunluğunun 2 dəfə artması üçün müddəti 20% artırmağı təmin edir.

Bundan əlavə, bu nəticələr həm Intel, həm də AMD prosessorlarında mövcud olan universal AVX əmrlərindən istifadə etməklə əldə edilmişdir. AMD prosessoru üçün optimallaşdırsanız, nəticə daha yaxşı olacaq. Bu tendensiyaya zidd səslənir, lakin buna baxmayaraq, bu doğrudur və buna görə də: AMD prosessorlarında XOP uzantısı adlanan əlavə təlimatlar dəsti var və bu əlavə təlimat dəstində proqramın həyata keçirilməsini xeyli asanlaşdıranlar var. GOST alqoritmi.

Bu baytların məntiqi paket yerdəyişməsi və qoşa sözlərin paket tsiklik yerdəyişməsi əmrlərinə aiddir. 3-cü və 4-cü əlavələrdə verilmiş nümunələrdə zəruri transformasiyanı həyata keçirən universal əmrlərin ardıcıllığından istifadə olunur: birinci halda bir “əlavə” əmr, digər halda isə birdən dörd əlavə əmr. Beləliklə, optimallaşdırma ehtiyatları və xeyli ehtiyatları var.

Daha da optimallaşdırmadan danışırıqsa, 256 bitlik registrlərin (YMM-registrlərinin) mövcudluğunu xatırlamağa dəyər, onlardan istifadə edərək hesablamaların sürətini nəzəri olaraq ikiqat artıra bilərsiniz. Ancaq hələ ki, bu, yalnız bir perspektivdir, hazırda 256 bitlik təlimatları yerinə yetirərkən prosessorlar çox yavaşlayır (FPU-ların yol eni 128 bitdir). Təcrübələr göstərdi ki, müasir prosessorlarda YMM registrlərində 16 ipin sayı heç bir qazanc vermir. Ancaq bu, hələlik, yeni prosessor modellərində, 256 bitlik təlimatların sürəti, şübhəsiz ki, artırılacaq və sonra 16 paralel ipin istifadəsi məqsədəuyğun olacaq və kriptoprosedurun sürətinin daha da artmasına səbəb olacaq.

Nəzəri olaraq, prosessorda hər birinin iş yolu eni 256 bit olan iki FPU varsa, saniyədə 600-700 meqabayt sürətə arxalana bilərsiniz. Bu halda, 16 RTT səmərəliliyi ilə kod yazmaq haqqında danışa bilərik və bu, fantaziya deyil, yaxın gələcəkdir.

qarışıq rejim

Yenə də registrlərin sayı ilə bağlı sual yaranır, onlar belə bir alqoritmi təbliğ etmək üçün kifayət deyil. Ancaq hiper ticarət rejimi bizə kömək edəcək. Prosessor nüvəsində məntiqi prosessor rejimində mövcud olan ikinci registrlər dəsti var. Buna görə də eyni kodu eyni anda iki məntiqi prosessorda icra edəcəyik. Bu rejimdə, əlbəttə ki, bizdə daha çox icraedici qurğular olmayacaq, lakin növbə sayəsində biz bütün icraedici cihazların tam yükünü əldə edə bilərik.

Burada 50% artıma arxalana bilməzsiniz, darboğaz texnoloji maskaların saxlandığı keş yaddaşdır, amma yenə də 100 əlavə meqabayt artım əldə edə bilərsiniz. Bu seçim əlavələrdə göstərilməyib (makroslar 8 RTT kodunda istifadə olunanlarla eynidir), lakin proqram fayllarında mövcuddur. Beləliklə, kimsə bir prosessor nüvəsində saniyədə 500 meqabayt sürətlə şifrələmənin mümkünlüyünə inanmırsa, test fayllarını işə salsın. Şərh yazılan mətnlər də var ki, heç kim mənim hiyləgər olduğumu düşünməsin.

Bu diqqət yalnız Intel prosessorlarında mümkündür, AMD iki prosessor modulu üçün yalnız iki FPU-ya malikdir (hiper-ticarət rejiminin analoqu). Amma daha dörd ALU var ki, onlardan istifadə etməmək günahdır.

Siz Buldozerin prosessor modullarını hiper ticarət rejiminə bənzər bir rejimə keçirə bilərsiniz, lakin bir ipdə müxtəlif modullarda RON-a və başqa bir ipdə SSE registrlərinə çevrilməni həyata keçirin və eyni 12 RTT əldə edin. Mən bu seçimi sınaqdan keçirməmişəm, amma 12 RTT-dəki kodun AMD-də daha səmərəli işləyəcəyini düşünürəm. Arzu edənlər sınaqdan keçirə bilər, sınaq proqramları "Buldozerlər" üzərində işləmək üçün çox asanlıqla düzəldilə bilər.

Kimə lazımdır?

Ciddi sual, amma sadə cavabla - hər kəsə lazımdır. Tezliklə biz hamımız buludlarda oturacağıq, həm məlumatları, həm də proqramları orada saxlayacağıq və orada, oh, öz şəxsi küncünüzü necə təchiz etmək istəyirsiniz. Bunun üçün siz trafiki şifrələməli olacaqsınız və kriptovalyutanın çevrilmə sürəti buludda rahat işdə əsas müəyyənedici amil olacaq. Şifrələmə alqoritm seçimimiz kiçikdir - ya GOST, ya da AES.

Üstəlik, qəribə də olsa, prosessorlara quraşdırılmış AES alqoritm şifrələməsi daha yavaş olur, testlər saniyədə 100-150 meqabayt sürət göstərir və bu, alqoritmin aparat tətbiqi ilə! Problem baytlarda işləyən tək yivli hesablamada və əvəzedici blokdadır (256 sıra cədvəl). Beləliklə, GOST x86 / 64 arxitekturasında tətbiqdə daha səmərəli olur, kim düşünərdi ...

Şifrələmə sürətinin əldə edilmiş səviyyəsindən danışırıqsa, bu. Əgər kodun səmərəliliyinin artırılması sahəsində nəzəri təkmilləşdirmələri nəzərə alsaq, çox güman ki, heç kimə lazım deyil. 3-6 RTT səviyyəli mütəxəssislər praktiki olaraq yoxdur, kompilyatorlar ümumiyyətlə 1-2,5 RTT səviyyəsində kod yaradırlar və proqramçıların əksəriyyəti assembler-i bilmirlər və əgər onun yazılışını bilirlərsə, onda onlar heç bir proqramın cihazını başa düşmürlər. müasir prosessor. Və bu bilik olmadan assembler nədir, bir növ SI-sharp nədir - fərqi yoxdur.

Ancaq hər şey o qədər də kədərli deyil: bir həftəlik yuxusuz gecələrdən sonra "alt xətt"də patent almamaq günah olan GOST-un həyata keçirilməsi üçün yeni bir alqoritm var. Patent üçün ərizələr (üçə qədər) artıq tərtib edilib və təqdim olunub, buna görə də cənablar, iş adamları, sıraya düzün - qadınlar və uşaqlar endirim var.

). Eyni zamanda, Rusiya KİV-lərində və rus istifadəçilərinin bloqlarında bu alqoritmlə bağlı qeydlərin sayı artır: həm Rusiya standartına müxtəlif etibarlılıq dərəcələri ilə hücumların nəticələrini əhatə edir, həm də onun əməliyyat xüsusiyyətlərinə dair rəyləri ehtiva edir. Bu qeydlərin müəllifləri (və deməli, oxucular) tez-tez yerli şifrələmə alqoritminin köhnəlmiş, yavaş olduğu və oxşar açar uzunluğuna malik xarici şifrələmə alqoritmlərinə nisbətən onu hücumlara daha çox həssas edən zəifliklərə malik olduğu təəssüratını yaradır. Bu qeydlər silsiləsi ilə biz rus standartı ilə işlərin mövcud vəziyyəti haqqında əlçatan bir formada danışmaq istərdik. Birinci hissə beynəlxalq kriptoqrafik ictimaiyyətə məlum olan QOST 28147-89-a edilən bütün hücumları, onun gücünün cari hesablamalarını əhatə edəcəkdir. Gələcək nəşrlərdə biz həmçinin standartın xassələrini səmərəli tətbiqlərin qurulması imkanları baxımından ətraflı nəzərdən keçirəcəyik.

Nicolas Courtois - "böyük və dəhşətli"

Rusiya blok şifrələmə standartı () ilə bağlı bir sıra işlərin müəllifi olan Nikola Kurtuanın fəaliyyəti haqqında hekayə ilə başlayaq.

2010-cu ilin oktyabrında QOST 28147-89 alqoritminin ISO/IEC 18033-3 beynəlxalq standartına daxil edilməsinə baxılması prosesinə başlanılmışdır. Artıq 2011-ci ilin may ayında ePrint elektron arxivində məşhur kriptoqraf Nikola Kurtuanın dünya kriptoqrafik ictimaiyyətinin ona qarşı çox qeyri-müəyyən münasibəti ilə qeyd olunan məqaləsi çıxdı. Kurtuanın nəşrləri sözügedən obyektin heç bir yeni xassələrini üzə çıxarmayan, lakin sensasiya iddiası ilə onun real xassələri haqqında səriştəsiz mühitdə yanlış fikirlərin yayılmasına səbəb olan anlayışların manipulyasiyasının kədərli nümunəsidir.

Cəbri üsul

Kurtuanın mülahizələri kriptoanaliz metodlarının iki sinfi ətrafında qurulur: cəbri üsullar və diferensial üsullar. Birinci sinif metodlarını nəzərdən keçirin.

Sadələşdirilmiş şəkildə, cəbri kriptoanaliz metodu hər bir həlli kriptoanalitikin məqsədinə uyğun gələn böyük tənliklər sisteminin tərtibi və həlli kimi təsvir edilə bilər (məsələn, sistem bir cüt istifadə edərək tərtib edilirsə). açıq mətn və şifrəli mətndən ibarətdir, onda bu sistemin bütün həlləri bu açıq mətnin verilmiş şifrələnmiş mətnə ​​çevrildiyi açarlara uyğundur). Yəni blok şifrinin kriptoanalizi məsələsi halında kriptoanalizin cəbri metodunun mahiyyəti ondan ibarətdir ki, açar çoxhədli tənliklər sisteminin həlli nəticəsində tapılır. Əsas çətinlik müəyyən bir şifrənin xüsusiyyətlərini nəzərə alaraq mümkün qədər sadə bir sistem tərtib edə bilməkdir ki, onun həlli prosesi mümkün qədər az vaxt aparsın. Burada əsas rolu hər bir konkret təhlil edilən şifrənin xüsusiyyətləri oynayır.

Kurtuanın istifadə etdiyi cəbri metodu qısaca aşağıdakı kimi təsvir etmək olar. Birinci mərhələdə, GOST 28147-89-un bu cür xüsusiyyətləri şifrələmə çevrilməsinin bir hissəsi üçün sabit bir nöqtənin mövcudluğu, eləcə də sözdə əks nöqtəsi kimi istifadə olunur. Bu xüsusiyyətlərə görə, kifayət qədər çox sayda açıq şifrəli mətn cütlərindən bir neçə cüt seçilir ki, bu da çevrilmələri 32 deyil, yalnız 8 raundda nəzərdən keçirməyə imkan verir. İkinci mərhələ ondan ibarətdir ki, birinci mərhələdə əldə edilmiş 8 dövrəli çevrilmələrin nəticələrinə əsasən qeyri-xətti tənliklər sistemi qurulur ki, burada naməlumlar əsas bitlərdir. Daha sonra bu sistem həll edilir (bu sadə səslənir, lakin əslində metodun ən çox vaxt aparan hissəsidir, çünki sistem qeyri-xətti tənliklərdən ibarətdir).

Yuxarıda qeyd edildiyi kimi, əsərin heç bir yerində açarın müəyyənləşdirilməsinin ikinci və əsas mərhələsinin mürəkkəbliyinin ətraflı təsviri və təhlili yoxdur. Bütövlükdə bütün metodun mürəkkəbliyini müəyyən edən ikinci mərhələnin mürəkkəbliyidir. Əvəzində müəllif bədnam “faktlar” verir, bunun əsasında əmək intensivliyi ilə bağlı təxminlər edir. Bu “faktların” eksperimental nəticələrə əsaslandığı deyilir. Kurtuanın əsərindən "faktların" təhlili bütövlükdə yerli müəlliflərin işində verilmişdir. Bu əsərin müəllifləri qeyd edirlər ki, Kurtuanın heç bir sübut olmadan təqdim etdiyi bir çox “faktlar” eksperimental yoxlama zamanı yalan olub. Məqalə müəllifləri daha da irəli getdilər və Kurtua üçün əsaslı alqoritmlər və təxminlərdən istifadə edərək ikinci mərhələnin mürəkkəbliyini təhlil etdilər. Mürəkkəbliyin əldə edilən təxminləri təqdim edilən hücumun tam tətbiq edilmədiyini göstərir. Məsələn, əsərdə yerli müəlliflərlə yanaşı, Kurtuanın öz metodlarının qiymətləndirilməsi və əsaslandırılması ilə bağlı böyük problemləri də qeyd olunub.

Diferensial üsul

Diferensial kriptoanalizə əsaslanan ikinci Kurtua metodunu nəzərdən keçirək.

Diferensial kriptoanalizin ümumi üsulu kriptoqrafik primitivlərdə istifadə olunan qeyri-xətti xəritələrin xassələrinin istifadəsinə əsaslanan açar dəyərin giriş və çıxış cütləri arasındakı fərqlər arasındakı asılılıqlara təsiri ilə əlaqədardır. Xəritəçəkmələr. Blok şifrəsinin kriptoqrafik analizinin diferensial metodunun əsas ideyasını təsvir edək. Adətən blok şifrləri bir sıra sözdə dəyirmi çevrilmələrdən istifadə edərək, giriş məlumatlarını mərhələlərlə çevirir və hər bir dəyirmi transformasiya bütün açardan deyil, yalnız bəzilərindən istifadə edir. Bir az "kəsilmiş" şifrəni nəzərdən keçirək, orijinaldan sonuncu raundun olmaması ilə fərqlənir. Tutaq ki, müəyyən edilmişdir ki, bəzi sabit mövqelərdə fərqlənən iki açıq mətnin belə “kəsilmiş” şifrədən istifadə etməklə şifrlənməsi nəticəsində yüksək ehtimalla bəzi sabit mövqelərdə də fərqlənən şifrəli mətnlər alınır. Bu xassə göstərir ki, "kəsilmiş" şifrə bəzi açıq mətnlər və onların şifrələmə nəticələri arasında asılılıq buraxma ehtimalı yüksəkdir. Bu aşkar qüsurdan istifadə edərək açarın bir hissəsini bərpa etmək üçün əvvəlcədən seçilmiş açıq mətnləri bərpa etmək istədiyimiz açarla (“seçilmiş açıq mətn hücumu” adlanır) şifrələməyi bacarmaq lazımdır. “Açarların açılması” prosedurunun əvvəlində eyni sabit mövqelərdə fərqlənən bir sıra düz mətn cütləri təsadüfi yaradılır. Bütün mətnlər "tam" şifrə ilə şifrələnir. Yaranan şifrəli mətn cütləri aşağıdakı kimi sonuncu raund transformasiyasında istifadə olunan əsas bitləri bərpa etmək üçün istifadə olunur. Açarın tələb olunan bitlərinin təsadüfi seçilmiş bəzi dəyərinin köməyi ilə bütün şifrəli mətnlərə çevrilmə tətbiq edilir, sonuncu raund çevrilmənin əksi. Əslində, açar bitlərin istədiyiniz dəyərini təxmin etsək, "kəsilmiş" şifrənin nəticəsini alacağıq və təxmin etməsək, əslində "məlumatları daha da şifrələyəcəyik" ki, bu da yalnız azaldacaq. yuxarıda qeyd olunan bloklar arasında asılılıq (bəzi sabit mövqelərdəki fərq). Başqa sözlə, əgər şifrəli mətnlərin bu cür “əlavə emalının” nəticələri arasında bizə məlum olan sabit mövqelərdə fərqlənən kifayət qədər çox cütlər varsa, bu, tələb olunan açar bitləri təxmin etdiyimiz deməkdir. Əks təqdirdə, bu cür cütlər əhəmiyyətli dərəcədə azdır. Hər raundda açarın yalnız bir hissəsi istifadə olunduğundan, axtarılacaq bitlər (yəni, son raundda istifadə olunan açar bitlər) tam açardakı bitlər qədər deyil və sadəcə olaraq təkrarlanaraq təkrarlana bilər. yuxarıdakı addımlar. Bu halda biz mütləq nə vaxtsa düzgün qiymətə büdrəyəcəyik.

Yuxarıdakı təsvirdən belə nəticə çıxır ki, diferensial təhlil metodunda ən vacib şey açıq mətnlərdə və şifrəli mətnlərdə məhz həmin mövqelərin nömrələridir, fərqlər əsas bitlərin bərpasında əsas rol oynayır. Bu mövqelərin əsas mövcudluğu, eləcə də onların nömrələri toplusu birbaşa hər hansı bir blok şifrəsində istifadə olunan qeyri-xətti çevrilmələrin xüsusiyyətlərindən asılıdır (adətən bütün "qeyri-xəttilik" sözdə S-də cəmlənir. -qutular və ya əvəzedici qovşaqlar).

Kurtua diferensial metodun bir qədər dəyişdirilmiş variantından istifadə edir. Dərhal qeyd edirik ki, Kurtua hazırkılardan və İSO-da təklif olunanlardan fərqli olan S qutuları üçün öz təhlilini aparır. Məqalədə az sayda dövrə üçün diferensial xarakteristikalar (blokların fərqlənməli olduğu rəqəmlər) təqdim olunur. Statistikanı daha çox raund üçün uzatmağın əsası, həmişə olduğu kimi, "faktlara" əsaslanır. Kurtua, yenə də öz səlahiyyətindən başqa heç nə ilə əsassız bir fərziyyəni ifadə edir ki, S qutularının dəyişdirilməsi onun hücumuna qarşı QOST 28147-89 müqavimətinə təsir göstərməyəcək (eyni zamanda, naməlum səbəblərdən 1-ci işdən olan S qutuları). ISO/IEC 18033-3 standartına əlavənin layihəsi nəzərdən keçirilməmişdir). Məqalə müəllifləri tərəfindən aparılan təhlillər göstərir ki, Kurtuanın imanla bağlı əsassız "faktlarını" götürsək və QOST 28147-89-u digər S qutuları ilə təhlil etsək belə, hücum yenə də tam sadalamaqdan yaxşı deyil.

Rus standartının dayanıqlığının azalması ilə bağlı bütün ifadələrin əsassızlığına ətraflı əsaslandırma ilə Kurtuanın əsərlərinin ətraflı təhlili [ , ]-də aparılmışdır.

Eyni zamanda, hətta Kurtua özü də hesablamalarda mütləq dəqiqliyin olmadığını etiraf edir! Aşağıdakı slayd Kurtuanın FSE 2012 Qısa Anons bölməsindəki təqdimatından götürülmüşdür.

Qeyd edək ki, Kurtuanın əsərləri xarici tədqiqatçılar tərəfindən də dəfələrlə tənqid olunub. Məsələn, XSL metodundan istifadə edərək AES blok şifrələmə alqoritminə hücumların qurulması üzrə işində Rusiya standartının təhlili işi ilə eyni fundamental qüsurlar var idi: əmək intensivliyi təxminlərinin əksəriyyəti mətndə tamamilə əsassız və əsassız görünür - ətraflı tənqidə, məsələn, işdə rast gəlmək olar. Bundan əlavə, Kurtua özü işini böyük kriptoqrafik konfranslarda və müəyyən edilmiş resenziyalı jurnallarda dərc etməkdən geniş şəkildə imtina etdiyini etiraf edir və ona çox vaxt yalnız qısa elanlar bölməsində çıxış etmək imkanı verir. Bunu, məsələn, əsərin 3-cü hissəsində oxumaq olar. Kurtuanın özünün sitat gətirdiyi və onun işi ilə bağlı bəzi sitatları təqdim edirik:

  • "Düşünürəm ki, Asiacrypt tamaşaçıları bunun maraqlı olduğunu hiss etməyəcəklər." Asiacrypt 2011 rəyçisi.
  • “... böyük, böyük, böyük problem var: qəzetin əsas töhfəsi olan bu hücum artıq FSE’11-də dərc olunub (hətta ən yaxşı məqalə idi)…”. Kripto Rəyçi 2011.

Beləliklə, beynəlxalq kriptoqrafik cəmiyyətin peşəkar hissəsi Kurtuanın işinin keyfiyyətinə, məsələn, bəzi rusiyalı mütəxəssislərin AES-i 2100-ə sındırmaq qabiliyyətinə dair açıqlamalarından və ya iki səhifə üçün növbəti "sübutlardan" az şübhə ilə yanaşır. heç bir ardıcıl hesablamalarla təsdiq olunmayan fərziyyə.P və NP mürəkkəblik siniflərinin bərabərsizliyi haqqında.

Isobe və Dinur-Dunkelman-Şamir hücumları

Isobe hücumlarının () və Dinur-Dankelman-Şamirin (bundan sonra: DDSH hücumu) () ümumi ideyası müəyyən (açardan asılı) dar açıq mətnlər dəsti üçün bu dəstdə bir transformasiya ekvivalenti qurmaqdır. Şifrələmə transformasiyasının özündən daha sadə struktur. . Isobe metodu vəziyyətində, bu, F 8 -1 (Swap(F 8 (z))) = z, burada z = F 16 (x) vasitəsilə F 8 () olan 64 bitlik x blokları dəstidir. x) və F 16 ( x) 64 baytlıq sözün yarısını dəyişdirmə əməliyyatı - Swap vasitəsilə müvafiq olaraq GOST 28147-89 şifrələməsinin ilk 8 və ilk 16 raundudur. Açıq mətn bu setə daxil olduqda, GOST 28147-89-un tam 32 dövrə çevrilməsinin nəticəsi, hücum müəllifinin istifadə etdiyi 16 raundun nəticəsi ilə üst-üstə düşür. DDS metodu vəziyyətində, bu, F 8 (x) = x (F 8 çevrilməsinin sabit nöqtəsi) olan x çoxluğudur. Bu dəstdən hər hansı bir açıq mətn üçün GOST 28147-89 çevrilməsi son 8 raundla eyni işləyir, bu da təhlili asanlaşdırır.

Isobe hücumunun mürəkkəbliyi 2224 şifrələmə əməliyyatı, LDS hücumu 2192-dir. Bununla belə, Isobe və DDSH hücumlarının alqoritmimizdən istifadə şərtlərinə yeni məhdudiyyətlər tətbiq etməsi ilə bağlı bütün suallar, hücumların hər birini həyata keçirmək üçün lazım olan materialın miqdarına olan tələblərin qiymətləndirilməsi ilə aradan qaldırılır: Isobe metodu tələb edir. 2 32 cüt açıq mətn və şifrəli mətnlər və DDSH - 2 metodu üçün 64 . Açarı dəyişdirmədən bu cür həcmdə materialın işlənməsi, blok uzunluğu 64 olan hər hansı bir blok şifrəsi üçün qəbuledilməzdir: ad günü problemini nəzərə alaraq 2 32 həcmli bir materialda (məsələn, müdaxilə edən şəxsə baxın) açarı təyin etmədən şifrəli mətnlərdən açıq mətnlər haqqında müəyyən nəticələr çıxarmaq bacarığı. Eyni açarda əldə edilən 264 cüt açıq və şifrəli mətnin olması əslində rəqibə bu açarı ümumiyyətlə bilmədən şifrələmə və deşifrə əməliyyatlarını həyata keçirməyə imkan verir. Bu, sırf kombinator xüsusiyyətinə görədir: bu vəziyyətdə rəqib bütün şifrələmə transformasiya cədvəlinə malikdir. Bu vəziyyət heç bir ağlabatan əməliyyat tələbləri ilə qətiyyən yolverilməzdir. Məsələn, CryptoPro CSP-də 4 MB-lıq şifrələnmiş (açar çevrilmədən) materialın miqdarına texniki məhdudiyyət var (bax). Beləliklə, belə bir həcmdə bir materialda açarın istifadəsinə ciddi qadağa, blok uzunluğu 64 bit olan hər hansı bir blok şifrəsinə xasdır və buna görə də Isobe və DDSH hücumları istifadə sahəsini heç bir şəkildə daraltmır. maksimum mümkün təhlükəsizliyi qoruyarkən QOST 28147-89 alqoritminin 2256 .

Əlbəttə, qeyd etmək lazımdır ki, tədqiqatçılar (İsobe və Dinur-Dankelman-Şamir) QOST 28147-89 alqoritminin bəzi xüsusiyyətlərinin alqoritmin yaradıcıları tərəfindən nəzərə alınmayan analiz yollarını tapmağa imkan verdiyini göstərdilər. Səmərəli tətbiqlərin qurulması tapşırığını xeyli asanlaşdıran açar cədvəlinin sadə forması, həmçinin bəzi nadir hallarda açarlar və açıq mətnlər üçün alqoritm tərəfindən həyata keçirilən çevrilmələrin daha sadə təsvirlərini qurmağa imkan verir.

Məqalə göstərir ki, alqoritmin bu mənfi xüsusiyyəti əməliyyat xüsusiyyətlərinin tam saxlanması ilə asanlıqla aradan qaldırıla bilər, lakin təəssüf ki, o, tez-tez istifadə olunan formada alqoritmin ayrılmaz hissəsidir.

Qeyd edək ki, orta əmək sərfinin hesablanmasında müəyyən səhlənkarlıqlar Dinur, Dankelman və Şamirin işlərində də mövcuddur. Beləliklə, hücum qurarkən aşağıdakı məqama lazımi diqqət yetirilmir: açarların əhəmiyyətli bir hissəsi üçün açıq mətnlər dəsti x, F 8 (x) = x boşdur: 8 çevrilmə raundu sadəcə olmaya bilər. sabit nöqtələrə malikdir. Sabit nöqtələrin mövcudluğu həm də əvəzedici qovşaqların seçimindən asılıdır. Beləliklə, hücum yalnız müəyyən əvəzedici qovşaqlara və açarlara şamil edilir.

GOST 28147-89-a hücumla daha bir işi qeyd etmək lazımdır. 2012-ci ilin fevral ayında məqalənin yenilənmiş versiyası (noyabr 2011-ci il tarixli) beynəlxalq kriptoqrafik assosiasiyanın ePrint elektron arxivində GOST 28147-89-a yeni bir hücumu ehtiva edən nəşr olundu. Təqdim olunan hücumun xüsusiyyətləri aşağıdakılardır: materialın həcmi 232 (İzobe ilə olduğu kimi), əmək intensivliyi isə 2192 (DDSh ilə olduğu kimi). Beləliklə, bu hücum material həcmi baxımından rekord qıran LDS hücumunu 2 64-dən 2 32-ə qədər yaxşılaşdırdı. Biz ayrıca qeyd edirik ki, müəlliflər materialın mürəkkəbliyi və həcminin əsaslandırılması ilə bütün hesablamaları vicdanla təqdim ediblər. 9 aydan sonra yuxarıda göstərilən hesablamalarda fundamental səhv aşkar edildi və 2012-ci ilin noyabr ayından elektron arxivdəki məqalənin yenilənmiş versiyasında artıq yerli alqoritmlə bağlı heç bir nəticə yoxdur.

Təcavüzkarın açarlar haqqında "bir şey" bildiyi fərziyyəsinə əsaslanan hücumlar

Nəhayət, qeyd edirik ki, ədəbiyyatda bir sıra əsərlər də var (bax, məsələn, və ) əlaqəli açarları olan sözdə modeldə GOST 28147-89-a hücumlara həsr olunmuş. Bu model, əsasən, təcavüzkarın yalnız istədiyiniz açardan istifadə edərək açıq və şifrələnmiş mətn cütlərinə deyil, həm də açıq və şifrələnmiş mətn cütlərinə təhlil üçün giriş əldə etmək imkanına dair bir fərziyyəni ehtiva edir (həmçinin naməlum) açarlardan fərqlidir. axtarılan məlum müntəzəm yol (məsələn, sabit bit mövqelərində). Bu modeldə həqiqətən GOST 28147-89 haqqında maraqlı nəticələr əldə etmək mümkündür, lakin bu modeldə, məsələn, müasir ictimai şəbəkələrdə ən çox yayılmış AES standartı haqqında daha az güclü nəticələr əldə edilə bilməz (bax. , misal üçün,). Qeyd edək ki, bu cür hücumların həyata keçirilməsi şərtləri müəyyən bir protokolda şifrə istifadə edildikdə yaranır. Qeyd etmək lazımdır ki, bu cür nəticələr kriptoqrafik çevrilmələrin xassələrinin öyrənilməsi baxımından şübhəsiz akademik maraq doğursa da, əslində təcrübəyə aid edilmir. Məsələn, Rusiya FSB tərəfindən sertifikatlaşdırılmış bütün kriptoqrafik məlumatların qorunması vasitələri şifrələmə açarlarının yaradılması sxemləri üçün ən ciddi tələbləri yerinə yetirir (məsələn, bax). Təhlilin nəticələrində göstərildiyi kimi, 18 əlaqəli açar və 2 10 cüt açıq və şifrəli mətn blokları olduqda, 1-10 -4 müvəffəqiyyət ehtimalı ilə şəxsi açarın tam açılmasının mürəkkəbliyi həqiqətən də var. 2 26 . Bununla belə, əsas materialın hazırlanması üçün yuxarıda göstərilən tələblər yerinə yetirilərsə, belə açarların tapılma ehtimalı 2 -4352, yəni ilk cəhddə gizli açarı təxmin etməyə çalışdığınızdan 24096 dəfə azdır.

Əlaqəli açarları olan modellə bağlı işlərə 2010-cu ildə rus elektron nəşrlərində çox səs-küy yaradan əsərlər də daxildir. Təqdim olunan nəticələr heç bir ciddi əsaslandırma ilə dəstəklənmirdi, lakin bir neçə saniyə ərzində zəif bir noutbukda Rusiya Federasiyasının dövlət standartını sındırmaq ehtimalı ilə bağlı yüksək səslə ifadələr ehtiva edirdi - ümumiyyətlə, məqalə ən yaxşı ənənələrlə yazılmışdır. Nikola Kurtua. Lakin oxucuya tamamilə aydın olan, elmi nəşrlərin əsas prinsipləri ilə az-çox tanış olmasına, məqalənin əsassızlığına baxmayaraq, məhz Rusiya ictimaiyyətini əmin etmək idi ki, Rudski əsərdən sonra ətraflı və müfəssəl mətn yazıb. bu çatışmazlığın hərtərəfli təhlili. “Sıfır vaxt və yaddaşla tam GOST blok şifrəsinə açarın bərpası hücumu” işinin sıfır praktiki əhəmiyyəti haqqında” başlıqlı məqalədə metodda verilən metodun orta mürəkkəbliyinin heç də aşağı olmadığı faktı əsaslandırılır. tam bir siyahının mürəkkəbliyi.

Quru qalıq: praktikada müqavimət nədir?

Yekun olaraq, beynəlxalq kriptoqrafik ictimaiyyətə məlum olan QOST 28147-89-a ciddi şəkildə təsvir edilmiş və əsaslandırılmış hücumların bütün nəticələrinə dair məlumatları ehtiva edən bir cədvəl təqdim edirik. Qeyd edək ki, mürəkkəblik QOST 28147-89 alqoritminin şifrələmə əməliyyatlarında verilir, yaddaş və material isə alqoritmin bloklarında (64 bit = 8 bayt) göstərilir.

Hücum Əmək intensivliyi Yaddaş Tələb olunan material
Isobe 2 224 2 64 2 32
Dinur-Dunkelman-Şamir, FP, 2DMitM 2 192 2 36 2 64
Dinur-Dunkelman-Şamir, FP, aşağı yaddaş 2 204 2 19 2 64
2 224 2 36 2 32
Dinur-Dunkelman-Şamir, Reflection, 2DMitM 2 236 2 19 2 32
Gücün tətbiqi 2 256 1 4
Kainatın başlanğıcından bəri nanosaniyələrin sayı 2 89

GOST 28147-89 alqoritminin təhlükəsizliyi sahəsində kifayət qədər genişmiqyaslı tədqiqat dövrünə baxmayaraq, hazırda 64 bitlik blok uzunluğu ilə həyata keçirilməsi üçün şərtlərin əldə edilə biləcəyi məlum olan bir hücum yoxdur. əməliyyat tələbləri. Şifrənin parametrlərindən (açarın bit uzunluğu, blokun bit uzunluğu) bir açarda emal edilə bilən materialın miqdarına qoyulan məhdudiyyətlər hər hansı bir əməliyyatı həyata keçirmək üçün lazım olan minimum miqdardan əhəmiyyətli dərəcədə sərtdir. hazırda məlum hücumlardan. Buna görə də, mövcud əməliyyat tələbləri yerinə yetirildikdə, indiyə qədər təklif olunan GOST 28147-89 kriptoanaliz üsullarının heç biri hərtərəfli axtarışdan daha az zəhmət tələb edən açarı təyin etməyə imkan vermir.

Ölkəmizdə kompüter şəbəkələrində, fərdi kompüter sistemlərində və kompüterlərdə informasiya emalı sistemləri üçün verilənlərin kriptoqrafik təsviri üçün vahid alqoritm yaradılmışdır ki, bu da GOST 28147-89.

Bu kriptoqrafik məlumatların çevrilməsi alqoritmi 256 bitlik açarı olan 64 bitlik blok alqoritmidir, aparat və proqram təminatının həyata keçirilməsi üçün nəzərdə tutulmuşdur, kriptoqrafik tələblərə cavab verir və qorunan məlumatın məxfilik dərəcəsinə məhdudiyyətlər qoymur.

Alqoritmi təsvir edərkən aşağıdakı qeydlərdən istifadə olunur:

L və R bit ardıcıllığıdır;
LR L və R ardıcıllıqlarının birləşməsidir, burada R ardıcıllığının bitləri L ardıcıllığının bitlərini izləyir;
(+) - bit üzrə əlavə modulu 2 ("eksklüziv OR" əməliyyatı);
[+] - modul 2 32 32-bit ədədlərin əlavə edilməsi;
(+) - modul 2 32 -1 32 bit ədədlərin əlavə edilməsi.

Nömrələr aşağıdakı qaydaya əsasən yekunlaşdırılır:

A[+]B=A+B, əgər A+B< 2 32 ,
A [+] B = A + B - 2 32 əgər A + B >= 2 32 . A (+) B = A + B, əgər A + B< 2^32 - 1, A {+} B = A + B - (2^32 - 1), если A + B >= 2^32 - 1.

Alqoritm dörd iş rejimini təmin edir:

Hər halda, məlumatları şifrələmək üçün 256 bitlik K açarı istifadə olunur ki, bu da səkkiz 32 bitlik alt açar K i kimi təmsil olunur:

K = K 7 K 6 K 5 K 4 K 3 K 2 K 1 K 0 .

Şifrənin açılması şifrələmə ilə eyni açarla həyata keçirilir, lakin bu proses məlumatların şifrələmə prosesinin tərsidir.

Asan dəyişdirmə rejimi

İlk və ən asan rejim - yerdəyişmə. Şifrələnəcək məlumatlar 64 bitlik bloklara bölünür. Açıq verilənlər bloku T 0 üçün şifrələmə proseduru 32 dövrə daxildir (j=1...32).

Blok T 0 32 bitdən ibarət iki ardıcıllığa bölünür: B(0)A(0), burada B(0) sol və ya ən əhəmiyyətli bit, A(0) sağ və ya ən az əhəmiyyətli bitdir.

Bu ardıcıllıqlar birinci şifrələmə dövrü başlamazdan əvvəl N 1 və N 2 sürücülərə daxil edilir.

64 bitlik məlumat bloku üçün şifrələmə prosedurunun birinci dövrü (j=1) aşağıdakı düsturlarla təsvir olunur:

Burada i iterasiya nömrəsini bildirir (i = 1, 2,..., 32).

f funksiyası şifrələmə funksiyası adlanır. Onun arqumenti əvvəlki iterasiya addımında əldə edilən A(i) ədədinin 2 32 cəmi modulu və açarın X(j) nömrəsidir (bu ədədlərin hər birinin ölçüsü 32 rəqəmdir).

Şifrələmə funksiyası nəticədə 32 bitlik məbləğdə iki əməliyyatı əhatə edir. Birinci əməliyyat əvəzetmə K adlanır. Əvəzetmə bloku K hər birinin yaddaşı 64 bit olan 8 əvəzetmə qovşağından K(1) ... K(8) ibarətdir. Əvəzetmə blokuna gələn 32 bitlik vektor 8 ardıcıl 4 bitlik vektora bölünür, onların hər biri 0.. diapazonunda 16 tam ədəddən ibarət cədvəl olan müvafiq əvəzedici qovşaq tərəfindən 4 bitlik vektora çevrilir. .15.

Giriş vektoru cədvəldə nömrəsi çıxış vektoru olan sətirin ünvanını təyin edir. 4 bitlik çıxış vektorları ardıcıl olaraq 32 bitlik vektora birləşdirilir. Əvəzedici blok cədvəli K kompüter şəbəkəsi üçün ümumi olan və nadir hallarda dəyişdirilən əsas elementləri ehtiva edir.

İkinci əməliyyat K əvəz etməklə əldə edilən 32 bitlik vektorun sola tsiklik yerdəyişməsidir. 64 bitlik şifrələnmiş məlumat bloku T w T w =A(32)B(32) kimi təmsil olunur.

Sadə dəyişdirmə rejimində qalan açıq məlumat blokları eyni şəkildə şifrələnir.

Unutmayın ki, sadə dəyişdirmə rejimi yalnız məhdud hallarda məlumatların şifrələnməsi üçün istifadə edilə bilər. Bu hallara rabitə kanalları üzərindən ötürülməsi və ya kompüterin yaddaşında saxlanması üçün imitasiya mühafizəsi (yanlış məlumatların tətbiqindən qorunma) təmin edilməklə açarın yaradılması və onun şifrələnməsi daxildir.

Qamma rejimi

64 bitlik T(i) bloklarına bölünmüş açıq verilənlər (i=1, 2,..., m, burada m şifrələnmiş məlumatların miqdarı ilə müəyyən edilir) qamma rejimində bit üzrə əlavə modulu 2 ilə şifrələnir. 64 bitlik bloklarda istehsal olunan gamma Гw şifrəsi, yəni Гw = (Г(1),Г(2),...,Г(i),...,Г(m)).

Qamma rejimində verilənlərin şifrələmə tənliyi aşağıdakı kimi təqdim edilə bilər:

W(i) = A (Y(i-1) [+] C2, Z(i-1) (+) C1) (+) T(i) = G(i) (+) T(i) .
Burada W(i) 64 bitlik şifrəli mətn blokudur,
A - sadə dəyişdirmə rejimində şifrələmə funksiyası (bu funksiyanın arqumentləri iki 32 bitlik nömrədir),
C1 və C2 - QOST 28147-89-da göstərilən sabitlər,
Y(i) və Z(i) qamma aşağıdakı kimi əmələ gəldikdə iterativ olaraq təyin olunan kəmiyyətlərdir:
(Y(0), Z(0)) = A(S), burada S 64 bitlik ikili ardıcıllıqdır (sinxronizasiya mesajı);
(Y(i), Z(i)) = (Y(i-1) [+] C2, Z(i-1) (+) C1) i = 1, 2,...,m üçün.

Verilənlərin şifrəsinin açılması yalnız şifrənin məxfi elementi olmayan və kompüter yaddaşında saxlanıla bilən və ya şifrələnmiş verilənlərlə birlikdə rabitə kanalları vasitəsilə ötürülə bilən sinxronizasiya mesajı olduqda mümkündür.

Əlaqə qamma rejimi

Rejim miqyaslama rəy ilə qamma rejiminə çox bənzəyir. Qamma rejimində olduğu kimi, 64 bitlik T(i) bloklarına bölünmüş açıq verilənlər (i=1, 2,..., m , burada m şifrələnmiş məlumatların miqdarı ilə müəyyən edilir), bit üzrə əlavə modulu 2 ilə şifrələnir. 64 bitlik bloklarda istehsal olunan qamma G sh şifrəsi ilə:

Гw = (Г(1),Г(2),...,Г(i),...,Г(m)).

T(m) blokundakı bitlərin sayı 64-dən az ola bilər, G(m) blokundan şifrə qammasının şifrələmə üçün istifadə olunmayan hissəsi isə atılır.

Əlaqə ilə qamma rejimində məlumat şifrələmə tənliyi aşağıdakı kimi təqdim edilə bilər:


Burada W(i) 64 bitlik şifrəli mətn blokudur,
A - sadə dəyişdirmə rejimində şifrələmə funksiyası. İterativ alqoritmin ilk addımında funksiya arqumenti 64 bitlik sinxronizasiya mesajıdır və bütün sonrakı addımlarda - şifrələnmiş məlumatların əvvəlki bloku W(i-1).

Təqlid əlavələr

İnkişaf prosesi imitasiya yığınları məlumat şifrələmə rejimlərinin hər hansı biri üçün vahiddir.

Təqlid daxiletmə ya bütün mesajın şifrələnməsindən əvvəl, ya da blok-blok şifrələmə ilə paralel olaraq istehsal olunan p bit blokudur (imitasiya daxil edilməsi Ip). Daxiletmə simulyasiyasının hazırlanmasında iştirak edən açıq məlumatların ilk blokları xidmət məlumatlarını (məsələn, ünvan hissəsi, vaxt, sinxronizasiya mesajı) ehtiva edə bilər və şifrələnmir. p parametrinin qiyməti (imitasiya edilmiş əlavədəki ikili rəqəmlərin sayı) saxta müdaxilənin tətbiqi ehtimalının 1/2^p olduğunu nəzərə alaraq kriptoqrafik tələblərlə müəyyən edilir.

Daxiletmə imitasiyasını əldə etmək üçün açıq məlumatlar 64 bitlik T(i) blokları kimi təqdim olunur (i = 1, 2,..., m , burada m şifrələnmiş məlumatların miqdarı ilə müəyyən edilir). Açıq verilənlərin birinci bloku T(1) sadə dəyişdirmə rejimində şifrələmə alqoritminin ilk 16 dövrünə uyğun transformasiyaya məruz qalır. Üstəlik, verilənləri şifrələmək üçün istifadə edilən açar imitasiya daxiletməsini yaratmaq üçün açar kimi istifadə olunur.

16 iş dövründən sonra əldə edilən 64 bitlik nömrə ikinci açıq məlumat bloku T(2) ilə modul 2 cəmlənir. Toplama nəticəsi yenidən sadə dəyişdirmə rejimində şifrələmə alqoritminin ilk 16 dövrünə uyğun çevrilməyə məruz qalır. Nəticədə 64 bitlik nömrə üçüncü açıq məlumat bloku T(3)-ə modul 2 əlavə edilir və s. Son blok T(m), lazım gələrsə, sıfırlarla tam 64 bitlik bloka doldurulur, m-1 addımında işin nəticəsi ilə modul 2 cəmlənir, bundan sonra birinci blokda sadə dəyişdirmə rejimində şifrələnir. Alqoritmin 16 dövrü. Alınan 64 bitlik nömrədən p bit uzunluğunda Ip seqmenti seçilir.

Ip imitasiya əlavəsi şifrələnmiş məlumatlardan sonra rabitə kanalı və ya kompüter yaddaşına ötürülür. Daxil olan şifrlənmiş məlumatın şifrəsi açılır və T(i) açıq verilənlərin qəbul edilmiş bloklarından Ip imitasiya əlavəsi yaradılır, sonra o, rabitə kanalından və ya kompüter yaddaşından alınan imitasiya daxiletmə IR ilə müqayisə edilir. uyğun gəlmir, bütün deşifrə edilmiş məlumatlar yalan hesab olunur.

Şifrələmə alqoritmi GOST 28147-89, onun istifadəsi və Intel x86 platformasının kompüterləri üçün proqram təminatının tətbiqi.


Andrey Vinokurov

Alqoritmin təsviri.

Şərtlər və təyinatlar.

Rusiya Federasiyasının şifrələmə standartının təsviri "GOST 28147-89 Kriptoqrafik Transformasiya Alqoritmi" adlı çox maraqlı bir sənəddə var. Onun başlığında "şifrələmə" termini əvəzinə daha ümumi bir anlayış " kriptoqrafik çevrilmə ' təsadüfi deyil. Bir neçə yaxından əlaqəli şifrələmə prosedurlarına əlavə olaraq, sənəd yaratmaq üçün bir alqoritmi təsvir edir. imitasiya əlavələri . Sonuncu kriptoqrafik idarəetmə kombinasiyasından başqa bir şey deyil, yəni gizli açardan istifadə edərək orijinal məlumatlardan yaradılan koddur. imitasiya qorunması , və ya məlumatları icazəsiz dəyişikliklərdən qoruyun.

QOST alqoritmlərinin müxtəlif mərhələlərində onların işlədiyi məlumatlar müxtəlif yollarla şərh olunur və istifadə olunur. Bəzi hallarda məlumat elementləri müstəqil bitlərin massivləri kimi, digər hallarda işarəsiz tam ədəd kimi, digərlərində isə bir neçə sadə elementdən ibarət struktura malik mürəkkəb element kimi qəbul edilir. Buna görə də, çaşqınlığın qarşısını almaq üçün istifadə olunan nota ilə razılaşmaq lazımdır.

Bu məqalədəki məlumat elementləri böyük latın hərfləri ilə kursiv ilə işarələnir (məsələn, X). vasitəsilə | X| məlumat elementinin ölçüsünü ifadə edir X bitlərdə. Beləliklə, verilənlər elementini şərh etsək X mənfi olmayan tam ədəd kimi aşağıdakı bərabərsizliyi yaza bilərik:

Məlumat elementi daha kiçik ölçülü bir neçə elementdən ibarətdirsə, bu fakt aşağıdakı kimi göstərilir: X=(X 0 ,X 1 ,…,X n –1)=X 0 ||X 1 ||…||X n-1. Bir neçə məlumat elementinin birində birləşdirilməsi proseduru adlanır birləşmə data və "||" simvolu ilə işarələnir. Təbii ki, məlumat elementlərinin ölçüləri üçün aşağıdakı əlaqə saxlanmalıdır: | X|=|X 0 |+|X 1 |+…+|X n-1 |. Mürəkkəb məlumat elementlərini və birləşmə əməliyyatını təyin edərkən, tərkib məlumat elementləri üstünlük sırasına görə sıralanır. Başqa sözlə, kompozit elementi və ona daxil olan bütün məlumat elementlərini işarəsiz tam ədədlər kimi şərh etsək, aşağıdakı bərabərliyi yaza bilərik:

Alqoritmdə məlumat elementi ayrı-ayrı bitlərin massivi kimi şərh edilə bilər, bu halda bitlər massivlə eyni hərflə, lakin aşağıdakı nümunədə göstərildiyi kimi kiçik hərflə işarələnir:

X=(x 0 ,x 1 ,…,x n –1)=x 0 +2 1 x 1 +…+2 n-1 · x n –1 .

Beləliklə, əgər diqqət yetirsəniz, sözdə. rəqəmlərin "kiçik-endian" nömrələnməsi, yəni. çox bitli verilənlər sözlərində fərdi ikili rəqəmlər və onların kiçik nömrələri olan qrupları daha az əhəmiyyət kəsb edir. Bu, standartın 1.3-cü bəndində açıq şəkildə göstərilir: “İkili vektorları əlavə edərkən və dövri olaraq dəyişdirərkən, ən yüksək bitlər çox sayda akkumulyatorların bitləridir. Bundan əlavə, standart 1.4, 2.1.1 və digərlərinin bəndləri virtual şifrələmə cihazının saxlama registrlərini aşağı olanlardan olan məlumatlar ilə doldurmağa başlamağı nəzərdə tutur, yəni. daha az əhəmiyyətli dərəcələr. Intel x86 mikroprosessor arxitekturasında eyni nömrələmə sırası qəbul edilir, buna görə də bu arxitekturada şifrənin proqram təminatının tətbiqi məlumat sözləri daxilində bitlərin əlavə dəyişdirilməsini tələb etmir.

Əgər məntiqi məna daşıyan verilənlər elementləri üzərində hansısa əməliyyat yerinə yetirilirsə, onda bu əməliyyatın elementlərin uyğun bitləri üzərində yerinə yetirildiyi güman edilir. Başqa sözlə A B=(a 0 b 0 ,a 1 b 1 ,…,a n –1 b n–1), harada n=|A|=|B|, və " " simvolu ixtiyari ikili məntiqi əməliyyatı bildirir; adətən əməliyyata aiddir eksklüziv və ya , bu da toplama modulu 2-nin əməliyyatıdır:

Şifrənin qurulması məntiqi və GOST-un əsas məlumatlarının strukturu.

Orijinal GOST 28147–89-u diqqətlə öyrənsəniz, onda bir neçə səviyyəli alqoritmlərin təsvirini ehtiva etdiyini görəcəksiniz. Ən yuxarıda məlumat massivlərini şifrələmək və onlar üçün saxta əlavələr hazırlamaq üçün hazırlanmış praktik alqoritmlər var. Onların hamısı mətndə QOST adlanan üç aşağı səviyyəli alqoritmlərə əsaslanır dövrələr . Bu əsas alqoritmlərə bu məqalədə istinad edilir əsas dövrələr onları bütün digər döngələrdən fərqləndirmək üçün. Onların aşağıdakı adları və təyinatları var, sonuncular mötərizədə verilir və onların mənası daha sonra izah ediləcək:

  • şifrələmə dövrü (32-3);
  • şifrənin açılması dövrü (32-P);
  • imitasiya əlavəsinin yaradılması dövrü (16-З).

Öz növbəsində, əsas dövrələrin hər biri bu məqalədə daha da dəqiqliyə çağırılan bir prosedurun çoxlu təkrarıdır. kripto transformasiyasının əsas addımı .

Beləliklə, GOST-u başa düşmək üçün aşağıdakı üç şeyi başa düşməlisiniz:

  • nə baş verdi əsas addım kripto transformasiyaları;
  • əsas pillələrdən əsas dövrlərin necə formalaşdığını;
  • üçdən kimi əsas dövrələr QOST-un bütün praktik alqoritmlərini əlavə edin.

Bu məsələlərin öyrənilməsinə keçməzdən əvvəl GOST alqoritmlərinin istifadə etdiyi əsas məlumatlar haqqında danışmalıyıq. Geniş ictimaiyyətə məlum olan bütün müasir şifrələr tərəfindən qane edilən Kirchhoff prinsipinə uyğun olaraq, şifrələnmiş mesajın məxfiliyini təmin edən onun məxfiliyidir. GOST-da əsas məlumatlar iki məlumat strukturundan ibarətdir. Əlavə olaraq açar bütün şifrələr üçün tələb olunur, o da ehtiva edir əvəzetmə cədvəli . Aşağıda GOST-un əsas strukturlarının əsas xüsusiyyətləri verilmişdir.

Kripto transformasiyasının əsas addımı.

Əsas kriptovalyuta çevrilmə addımı 64 bitlik məlumat blokunun çevrilməsini təyin edən operatordur. Bu operatorun əlavə parametri açarın istənilən elementi kimi istifadə olunan 32 bitlik blokdur. Əsas addım alqoritminin sxemi Şəkil 1-də göstərilmişdir.


Şəkil 1. QOST 28147-89 alqoritminin kripto-transformasiyasının əsas addımının sxemi.

Aşağıda əsas addım alqoritminin izahları verilmişdir:

Addım 0

  • N- 64 bitlik məlumat bloku çevriləcək, addımın icrası zamanı ən az əhəmiyyət kəsb edir ( N 1) və daha yaşlı ( N 2) hissələr ayrıca 32 bitlik işarəsiz tam ədədlər kimi qəbul edilir. Beləliklə, yazmaq olar N=(N 1 ,N 2).
  • X– 32 bitlik əsas element;

Addım 1

Açar ilə əlavə. Dönüştürülmüş blokun aşağı yarısına modul 2 32 əlavə olunur, addımda istifadə olunan əsas element ilə nəticə növbəti addıma keçirilir;

Addım 2

Blokun dəyişdirilməsi. Əvvəlki addımda əldə edilən 32 bitlik dəyər səkkiz 4 bitlik kod blokundan ibarət massiv kimi şərh olunur: S=(S 0 , S 1 , S 2 , S 3 , S 4 , S 5 , S 6 , S 7), və S 0 ən kiçik 4 ədədi ehtiva edir və S 7 - 4 ən əhəmiyyətli bit S.

Sonra, səkkiz blokun hər birinin dəyəri əvəzetmə cədvəlindən aşağıdakı kimi seçilən yenisi ilə əvəz olunur: blokun dəyəri Si-ə dəyişir Si-ardıcıllıqla element (sıfırdan nömrələmə) i- həmin əvəzedici qovşaqdan (yəni. i-əvəzetmələr cədvəlinin nömrələnməsi də sıfırdan). Başqa sözlə, blok dəyərinin əvəzi kimi, əvəzedici cədvəldən element əvəzedici blok nömrəsinə bərabər sətir nömrəsi və 4 bitlik mənfi olmayan tam ədəd kimi əvəzedici blok dəyərinə bərabər sütun nömrəsi ilə seçilir. Buradan əvəzetmə cədvəlinin ölçüsü aydın olur: onun içindəki sətirlərin sayı 32 bitlik verilənlər blokunun 4 bitlik elementlərinin sayına, yəni səkkizə, sütunların sayı isə 2 4, on altı olduğu bilinən 4 bitlik məlumat blokunun fərqli dəyərlərinin sayı.

Addım 3

11 bit sola çevirin. Əvvəlki addımın nəticəsi tsiklik olaraq 11 bit daha yüksək bitlərə doğru sürüşdürülür və növbəti addıma köçürülür. Alqoritm diaqramında simvol onun arqumentinin 11 bit sola tsiklik yerdəyişməsi funksiyasını ifadə edir, yəni. daha yüksək səviyyələrə doğru.

Addım 4

Bitwise əlavə: 3-cü addımda əldə edilən dəyər çevrilən blokun yüksək yarısına 2 bit modul əlavə edilir.

Addım 5

Zəncir boyunca sürüşdürün: çevrilmiş blokun aşağı hissəsi köhnənin yerinə köçürülür və əvvəlki addımın nəticəsi onun yerinə qoyulur.

Addım 6

Əsas kripto-transformasiya addımının alqoritminin icrası nəticəsində çevriləcək blokun nəticə dəyəri qaytarılır.

Kriptoqrafik çevrilmələrin əsas dövrləri.

Bu məqalənin əvvəlində qeyd edildiyi kimi, GOST blok şifrələri sinfinə aiddir, yəni məlumatların işlənməsi vahidi məlumat blokudur. Buna görə də, onun kriptoqrafik çevrilmələr üçün alqoritmləri, yəni bir məlumat blokunun idarəetmə birləşməsində şifrələmə, deşifrə və "mühasibat uçotu" üçün alqoritmləri təyin edəcəyini gözləmək tamamilə məntiqlidir. Bu alqoritmlər adlanır əsas dövrələr Bu şifrənin qurulması üçün onların fundamental əhəmiyyətini vurğulayan GOST.

Əsas dövrələr bunlardan qurulur əsas addımlar Əvvəlki bölmədə müzakirə olunan kriptoqrafik çevrilmə. Əsas addımın icrası zamanı yalnız bir 32 bitlik açar elementdən istifadə olunur, QOST açarında isə səkkiz belə element var. Buna görə də, açarın tam istifadə edilməsi üçün əsas döngələrin hər biri müxtəlif elementləri ilə əsas addımı dəfələrlə yerinə yetirməlidir. Eyni zamanda, hər bir əsas dövrədə açarın bütün elementlərinin eyni sayda istifadə edilməli olması tamamilə təbii görünür; şifrə təhlükəsizliyi səbəbi ilə bu rəqəm birdən çox olmalıdır.

Sadəcə sağlam düşüncəyə əsaslanan yuxarıda irəli sürülən bütün fərziyyələr doğru çıxdı. Əsas döngələr təkrar icra olunur əsas addım açarın müxtəlif elementlərindən istifadə etməklə və bir-birindən yalnız addımın təkrarlarının sayına və əsas elementlərin istifadə qaydasına görə fərqlənir. Bu sıra müxtəlif dövrlər üçün aşağıda verilmişdir.

Şifrələmə dövrü 32-Z:

K 0 ,K 1 ,K 2 ,K 3 ,K 4 ,K 5 ,K 6 ,K 7 ,K 0 ,K 1 ,K 2 ,K 3 ,K 4 ,K 5 ,K 6 ,K 7 ,K 0 ,K 1 ,K 2 ,K 3 ,K 4 ,K 5 ,K 6 ,K 7 ,K 7 ,K 6 ,K 5 ,K 4 ,K 3 ,K 2 ,K 1 ,K 0 .


Şəkil 2a. Şifrələmə dövrünün sxemi 32-3

Şifrə açma dövrü 32-P:

K 0 ,K 1 ,K 2 ,K 3 ,K 4 ,K 5 ,K 6 ,K 7 ,K 7 ,K 6 ,K 5 ,K 4 ,K 3 ,K 2 ,K 1 ,K 0 ,K 7 ,K 6 ,K 5 ,K 4 ,K 3 ,K 2 ,K 1 ,K 0 ,K 7 ,K 6 ,K 5 ,K 4 ,K 3 ,K 2 ,K 1 ,K 0 .


Şəkil 2b. 32-P Şifrəni Açma Döngə Diaqramı

16-Z imitasiya əlavəsinin istehsalı dövrü:

K 0 ,K 1 ,K 2 ,K 3 ,K 4 ,K 5 ,K 6 ,K 7 ,K 0 ,K 1 ,K 2 ,K 3 ,K 4 ,K 5 ,K 6 ,K 7 .


Şəkil 2c. Təqlid əlavəsinin istehsal dövrünün sxemi 16-З.

Dövrlərin hər birinin naxışa uyğun öz alfasayısal təyinatı var " n-X", burada təyinatın birinci elementi ( n), dövrədə əsas addımın təkrarlarının sayını və qeydin ikinci elementini ( X), məktub, əsas elementlərin istifadəsində şifrələmə ("З") və ya şifrənin açılması ("Р") qaydasını müəyyən edir. Bu əmr daha çox izahat tələb edir:

Şifrə açma dövrü şifrələmə dövrünün əksi olmalıdır, yəni bu iki dövrün ixtiyari bloka ardıcıl tətbiqi orijinal blokla nəticələnməlidir ki, bu da aşağıdakı əlaqə ilə əks olunur: C 32-R ( C 32-З ( T))=T, Harada T- ixtiyari 64 bitlik məlumat bloku, C X( T) döngənin nəticəsidir X məlumat blokunun üstündə T. QOST-a bənzər alqoritmlər üçün bu şərti yerinə yetirmək üçün əsas elementlərin müvafiq dövrlər tərəfindən istifadə edilməsi ardıcıllığının qarşılıqlı tərs olması zəruri və kifayətdir. 32-3 və 32-P dövrləri üçün yuxarıda göstərilən ardıcıllıqları müqayisə etməklə baxılan iş üçün yazılı şərtin etibarlılığını yoxlamaq asandır. Yuxarıda göstərilənlərdən maraqlı bir nəticə çıxır: bir dövrün başqa bir dövrün tərsi olmaq xüsusiyyəti qarşılıqlıdır, yəni 32-3 dövrü 32-P dövrü ilə tərsdir. Başqa sözlə desək, verilənlər blokunun şifrələnməsi nəzəri olaraq deşifrələmə dövrəsi ilə həyata keçirilə bilərdi, bu halda verilənlər blokunun deşifrəsi şifrələmə dövrəsi ilə aparılmalı idi. İki qarşılıqlı tərs dövrdən biri şifrələmə üçün istifadə edilə bilər, sonra ikincisi məlumatların şifrəsini açmaq üçün istifadə edilməlidir, lakin GOST28147-89 standartı dövrlərə rollar təyin edir və istifadəçiyə bu məsələdə seçim etmək hüququ vermir. .

Daxiletmə imitasiyasının yaradılması dövrü şifrələmə dövrlərinin yarısı qədərdir, onun içindəki əsas elementlərdən istifadə qaydası şifrələmə dövrünün ilk 16 addımında olduğu kimidir, yuxarıdakı ardıcıllıqları nəzərə alaraq görmək asandır, buna görə də dövr təyinatındakı bu sıra eyni "Z" hərfi ilə kodlanır.

Əsas dövrlərin sxemləri Şəkil 2a-c-də göstərilmişdir. Onların hər biri arqument kimi qəbul edir və nəticədə diaqramlarda göstərilən 64 bitlik məlumat blokunu qaytarır. N. Simvol addım( N,X) verilənlər bloku üçün əsas kripto-transformasiya addımının icrasını bildirir Nəsas elementdən istifadə etməklə X. Şifrələmə dövrləri və əlavənin təqlid edilməsinin hesablanması arasında yuxarıda qeyd olunmayan daha bir fərq var: şifrələmənin əsas dövrlərinin sonunda nəticə blokunun yüksək və aşağı hissələri dəyişdirilir, bu, onların qarşılıqlı geri çevrilməsi üçün lazımdır. .

Əsas şifrələmə rejimləri.

GOST 28147-89 aşağıdakı üç məlumat şifrələmə rejimini təmin edir:

  • sadə dəyişdirmə,
  • oyun,
  • rəy qamması,

və imitasiya daxil edilməsinin əlavə bir rejimi.

Bu rejimlərin hər hansı birində məlumatlar massivin bölündüyü, kriptoqrafik çevrilməyə məruz qaldığı 64 bitlik bloklarda işlənir, buna görə də GOST blok şifrələrinə istinad edir. Bununla belə, iki oyun rejimində 8 baytdan kiçik natamam məlumat blokunu emal etmək mümkündür, bu, ixtiyari ölçüdə verilənlər massivlərini şifrələyərkən vacibdir, 8 bayta çox olmaya bilər.

Kriptoqrafik çevrilmələr üçün xüsusi alqoritmlərin nəzərdən keçirilməsinə keçməzdən əvvəl aşağıdakı bölmələrdəki diaqramlarda istifadə olunan qeydləri aydınlaşdırmaq lazımdır:

T O, T w müvafiq olaraq açıq və şifrələnmiş məlumat massivləridir;

, – i- 64 bitlik açıq və şifrələnmiş məlumat blokları, müvafiq olaraq: , , sonuncu blok natamam ola bilər: ;

n– verilənlər massivindəki 64 bitlik blokların sayı;

C X, "X" əsas dövrünün alqoritminə uyğun olaraq 64 bitlik məlumat blokunun çevrilməsi funksiyasıdır.

İndi əsas şifrələmə rejimlərini təsvir edək:

Sadə əvəz.

Bu rejimdə şifrələmə məlumat bloklarını açmaq üçün 32-3 dövrü, şifrələməni - şifrələnmiş məlumat bloklarına 32-P dövrü tətbiq etməkdən ibarətdir. Bu rejimlərin ən sadəsidir, 64 bitlik məlumat blokları bir-birindən asılı olmayaraq işlənir. Sadə dəyişdirmə rejimində şifrələmə və deşifrə alqoritmlərinin sxemləri müvafiq olaraq Şəkil 3a və b-də göstərilmişdir, onlar əhəmiyyətsizdir və şərhə ehtiyac yoxdur.


Rəsm. 3a. Sadə dəyişdirmə rejimində məlumat şifrələmə alqoritmi


Rəsm. 3b. Sadə dəyişdirmə rejimində məlumatların şifrəsinin açılması alqoritmi

Şifrələmə və ya deşifrəyə məruz qalan açıq və ya şifrələnmiş verilənlər massivinin ölçüsü müvafiq olaraq 64 bitə çox olmalıdır: | T o |=| T w |=64 n , əməliyyat yerinə yetirildikdən sonra alınan məlumat massivinin ölçüsü dəyişmir.

Sadə dəyişdirmə şifrələmə rejimi aşağıdakı xüsusiyyətlərə malikdir:

  • Məlumat blokları bir-birindən və verilənlər massivindəki mövqeyindən asılı olmayaraq şifrələndiyindən, iki eyni açıq mətn bloku şifrələndikdə, eyni şifrəli mətn blokları alınır və əksinə. Qeyd olunan xüsusiyyət kriptoanalitikə şifrələnmiş verilənlər massivində eyni bloklarla rastlaşarsa, orijinal verilənlərin bloklarının eyni olduğu qənaətinə gəlməyə imkan verəcək ki, bu da ciddi şifrə üçün qəbuledilməzdir.
  • Şifrələnmiş məlumat massivinin uzunluğu 8 bayta və ya 64 bitə çox deyilsə, problem massivin son natamam məlumat blokunun tam 64 bitə necə və necə doldurulacağı ilə bağlı problem yaranır. Bu vəzifə ilk baxışdan göründüyü qədər sadə deyil. “Yarımçıq bloku sıfır bitlərlə doldurmaq” və ya daha ümumi olaraq “natamam bloku sıfır və bir bitin sabit kombinasiyası ilə doldurmaq” kimi aşkar həllər, müəyyən şərtlər altında kriptoanalitikə bunun məzmununu müəyyən etmək imkanı verə bilər. sadalama üsulları ilə natamam blok və bu fakt təhlükəsizlik şifrəsinin azalması deməkdir. Bundan əlavə, şifrəli mətnin uzunluğu dəyişəcək, 64 bitlik ən yaxın tam ədədə qədər artacaq, bu da çox vaxt arzuolunmazdır.

İlk baxışdan yuxarıda sadalanan xüsusiyyətlər sadə dəyişdirmə rejimindən istifadəni praktiki olaraq qeyri-mümkün edir, çünki o, yalnız 64 bitdən çox olan və təkrarlanan 64 bitlik blokları ehtiva etməyən məlumat massivlərini şifrələmək üçün istifadə edilə bilər. Görünür, hər hansı bir real məlumat üçün bu şərtlərin yerinə yetirilməsinə zəmanət vermək mümkün deyil. Bu, demək olar ki, doğrudur, lakin çox vacib bir istisna var: yadda saxlayın ki, açar ölçüsü 32 baytdır, əvəzedici cədvəlin ölçüsü isə 64 baytdır. Bundan əlavə, açar və ya əvəzedici cədvəldə təkrarlanan 8 baytlıq blokların olması onların çox pis keyfiyyətini göstərəcək, ona görə də real əsas elementlərdə belə təkrar ola bilməz. Beləliklə, sadə dəyişdirmə rejiminin əsas məlumatların şifrələnməsi üçün olduqca uyğun olduğunu bildik, xüsusən də digər rejimlər bu məqsəd üçün daha az əlverişli olduğundan, əlavə sinxronizasiya məlumat elementi - sinxronizasiya mesajı tələb olunur (növbəti hissəyə baxın). Təxminimiz doğrudur, QOST sadə dəyişdirmə rejimini yalnız əsas məlumatların şifrələnməsi üçün istifadə etməyi tövsiyə edir.

Qumar.

Sadə dəyişdirmə rejiminin çatışmazlıqlarından necə qurtulmaq olar? Bunun üçün ölçüsü 64 bitdən az olan blokların şifrələnməsini mümkün etmək və şifrəli mətn blokunun onun sayından asılı olmasını təmin etmək lazımdır, başqa sözlə. təsadüfiləşdirmək şifrələmə prosesi. GOST-da bu, təmin edən iki şifrələmə rejimində iki fərqli şəkildə əldə edilir miqyaslama . Qumar - bu, açıq (şifrələnmiş) məlumatlara kriptoqrafik diapazonun tətbiqi (çıxarılması), yəni şifrələnmiş (açıq) məlumatları əldə etmək üçün bəzi kriptoqrafik alqoritmdən istifadə edərək yaradılan məlumat elementlərinin ardıcıllığıdır. Şifrələmə zamanı qammanın üst-üstə düşməsi və şifrənin açılması zamanı onu silmək üçün qarşılıqlı tərs binar əməliyyatlardan istifadə edilməlidir, məsələn, 64 bitlik məlumat blokları üçün əlavə və çıxma modulu 2 64. GOST-da, bu məqsədlə bit şəklində əlavə modulu 2 əməliyyatından istifadə olunur, çünki bu, özünün tərsidir və üstəlik, ən sadə şəkildə aparatda həyata keçirilir. Gamming qeyd olunan problemlərin hər ikisini həll edir: birincisi, bütün qamma elementləri real şifrələnmiş massivlər üçün fərqlidir və buna görə də bir məlumat massivində hətta iki eyni blokun şifrələnməsinin nəticəsi fərqli olacaq. İkincisi, qamma elementləri 64 bitlik bərabər hissələrdə istehsal olunsa da, şifrələnmiş blokun ölçüsünə bərabər ölçüdə belə bir blokun bir hissəsi də istifadə edilə bilər.

İndi birbaşa qamma rejiminin təsvirinə keçək. Bu rejim üçün qamma aşağıdakı kimi alınır: bəzi alqoritmik təkrarlanan nömrə ardıcıllığı generatorundan (RGCH) istifadə edərək, 64 bitlik məlumat blokları yaradılır, daha sonra 32-3 konvertasiyaya, yəni sadə dəyişdirmə rejimində şifrələməyə məruz qalır, nəticədə qamma bloklarında. Qammanın üst-üstə düşməsi və çıxarılması eyni bitwise XOR əməliyyatından istifadə etməklə həyata keçirildiyinə görə qamma rejimində şifrələmə və deşifrə alqoritmləri eynidir, onların ümumi sxemi Şəkil 4-də göstərilmişdir.

Şkala yaratmaq üçün istifadə edilən RGHR təkrarlanan funksiyadır: – təkrarlanan ardıcıllığın elementləri, fçevrilmə funksiyasıdır. Ona görə də istər-istəməz onun inisializasiyası, yəni element haqqında sual yaranır.Əslində bu verilənlər elementi qamma rejimləri üçün alqoritm parametridir, diaqramlarda belə göstərilmişdir. S, və kriptoqrafiyada deyilir sinxronizasiya mesajı , və bizim GOST-da - ilkin doldurma enkoder registrlərindən biri. Müəyyən səbəblərə görə, GOST tərtibatçıları RGHR-nin işə salınması üçün birbaşa sinxronizasiya mesajı deyil, 32-3 dövrünə uyğun olaraq çevrilməsinin nəticəsini istifadə etmək qərarına gəldilər: . RGHR tərəfindən yaradılan elementlərin ardıcıllığı tamamilə onun ilkin doldurulmasından asılıdır, yəni bu ardıcıllığın elementləri onların sayından və RGHR-nin ilkin doldurulmasından asılıdır: burada fi(X)=f(fi –1 (X)), f 0 (X)=X. Sadə əvəzetmə alqoritminə uyğun çevrilməni nəzərə alaraq, açardan asılılıq da əlavə olunur:

Harada G ii- miqyasın elementi, K- açar.

Beləliklə, qamma rejimində istifadə ediləcək qamma elementlərinin ardıcıllığı əsas məlumatlar və sinxronizasiya mesajı ilə unikal şəkildə müəyyən edilir. Təbii ki, şifrələmə prosedurunun geri qaytarıla bilməsi üçün şifrənin açılması və şifrənin açılması proseslərində eyni sinxronizasiya mesajından istifadə edilməlidir. Uğursuzluğu şifrənin gücünün fəlakətli azalmasına səbəb olan qammanın unikallığı tələbindən belə çıxır ki, eyni açarda iki müxtəlif məlumat massivini şifrələmək üçün istifadəni təmin etmək lazımdır. müxtəlif sinxronizasiya mesajları. Bu, şifrələnmiş məlumatlarla birlikdə rabitə kanalları boyunca sinxronizasiya mesajının saxlanması və ya ötürülməsi ehtiyacına gətirib çıxarır, baxmayaraq ki, bəzi xüsusi hallarda eyni açarda iki massivin şifrələnməsi istisna olunarsa, əvvəlcədən təyin edilə və ya xüsusi üsulla hesablana bilər.

İndi GOST-da qamma elementlərini yaratmaq üçün istifadə edilən RGHR-ə daha yaxından nəzər salaq. Əvvəla, qeyd etmək lazımdır ki, yaradılan nömrələr ardıcıllığının hər hansı statistik xarakteristikasını təqdim etmək tələb olunmur. RGHR GOST tərtibatçıları tərəfindən aşağıdakı şərtləri yerinə yetirmək ehtiyacı əsasında hazırlanmışdır:

  • RGHR tərəfindən yaradılan nömrələr ardıcıllığının təkrarlanma müddəti verilmiş blok ölçüsü üçün 2 64 mümkün olan maksimum dəyərdən çox (faizlə) fərqlənməməlidir;
  • RGHR tərəfindən istehsal olunan qonşu dəyərlər hər baytda bir-birindən fərqlənməlidir, əks halda kriptoanalitikin tapşırığı sadələşdiriləcəkdir;
  • RGHR, bildiyiniz kimi, əksəriyyəti 32 bitlik tutuma malik olan ən çox yayılmış prosessor tiplərində həm aparat, həm də proqram təminatında tətbiq etmək kifayət qədər asan olmalıdır.

Bu prinsiplərə əsaslanaraq, GOST yaradıcıları aşağıdakı xüsusiyyətlərə malik olan çox uğurlu RGHR dizayn etdilər:

Harada C 0 =1010101 16 ;

Harada C 1 =1010104 16 ;

Ədədin qeydindəki alt işarə onun say sistemi deməkdir, ona görə də bu addımda istifadə olunan sabitlər onaltılıq say sistemində yazılır.

İkinci ifadənin şərhlərə ehtiyacı var, çünki GOST mətnində başqa bir şey verilir: , sabitin eyni dəyəri ilə C 1 . Lakin daha sonra standart mətnində bir şərh verilir ki, 2 32 -1 modulunun qalan hissəsinin götürülməsi əməliyyatı altında belə çıxır. orada riyaziyyatdakı kimi başa düşülmür. Fərq ondadır ki, GOST-a görə (2 32 -1) mod(2 32 –1)=(2 32 –1), 0 deyil. Əslində bu, düsturun icrasını asanlaşdırır və onun üçün riyazi cəhətdən düzgün ifadə yuxarıda verilmişdir.

  • kiçik hissə üçün ardıcıllığın təkrar müddəti 2 32, daha yaşlı hissə üçün 2 32 -1, bütün ardıcıllıq üçün dövr 2 32 (2 32 -1), bu faktın sübutu, çox sadədir, siz özünü al. İkisinin birinci düsturu bir təlimatda, ikincisi, görünən çətinliyinə baxmayaraq, bütün müasir 32 bitlik prosessorlarda iki təlimatda həyata keçirilir - birinci təlimat daşıma bitinin saxlanması ilə adi əlavə modulu 2 32 və ikinci göstəriş daşıma bitini alınan dəyərə əlavə edir.

Qamma rejimində şifrələmə alqoritminin sxemi Şəkil 4-də göstərilmişdir, aşağıda sxem üçün izahatlar verilmişdir:


Şəkil 4. Qamma rejimində verilənlərin şifrələnməsi (şifrənin açılması) alqoritmi.

Addım 0

Əsas kriptovalyuta çevrilmə addımı üçün ilkin məlumatları müəyyən edir:

  • T o(w) - şifrələmə (şifrənin açılması) proseduruna məruz qalan, ixtiyari ölçülü açıq (şifrələnmiş) verilənlər massivi, prosedur zamanı massiv 64 bitlik hissələrə çevrilir;
  • S sinxronizasiya mesajı , qamma generatorunu işə salmaq üçün tələb olunan 64 bitlik məlumat elementi;

Addım 1

Sinxronizasiya mesajının ilkin çevrilməsi, onu "təsadüfiləşdirmək" üçün, yəni orada mövcud olan statistik nümunələri aradan qaldırmaq üçün, nəticə RGHR-nin ilkin doldurulması kimi istifadə olunur;

Addım 2

Onun təkrarlanan alqoritmini həyata keçirən RGHR işinin bir addımı. Bu addım zamanı yaşlı ( S 1) və daha gənc ( S 0) verilənlər ardıcıllığının hissələri bir-birindən asılı olmayaraq yaradılır;

Addım 3

Qumar. RGHR tərəfindən istehsal olunan növbəti 64 bitlik element 32-3 dövrədə şifrələmə proseduruna məruz qalır, nəticə eyni ölçülü açıq (şifrələnmiş) məlumatların növbəti blokunu şifrələmək (şifrəni açmaq) üçün qamma elementi kimi istifadə olunur.

Addım 4

Alqoritmin nəticəsi şifrələnmiş (deşifrə edilmiş) məlumat massividir.

Şifrələmə rejimi kimi qammanın xüsusiyyətləri aşağıdakılardır:

  1. Açıq məlumat massivindəki eyni bloklar şifrələndikdə müxtəlif şifrəli mətn blokları verəcək ki, bu da onların şəxsiyyət faktını gizlətməyə imkan verəcək.
  2. Qamma bit-bit yerinə yetirildiyi üçün natamam məlumat blokunun şifrələnməsi bu natamam blokun bitlərinin şifrələnməsi kimi asanlıqla həyata keçirilir, bunun üçün qamma blokunun müvafiq bitləri istifadə olunur. Beləliklə, 1 bitlik natamam bloku şifrələmək üçün standarta uyğun olaraq qamma blokundan ən az əhəmiyyətli bit istifadə edilməlidir.
  3. Şifrələmədə istifadə edilən sinxronizasiya mesajı şifrənin açılmasında istifadə edilmək üçün bir şəkildə ötürülməlidir. Buna aşağıdakı yollarla nail olmaq olar:
  • sinxronizasiya mesajını şifrələnmiş məlumat massivi ilə birlikdə saxlamaq və ya ötürmək, bu şifrələmə zamanı məlumat massivinin ölçüsünü sinxronizasiya mesajının ölçüsü ilə, yəni 8 bayt artıracaq;
  • sinxronizasiya mesajının əvvəlcədən müəyyən edilmiş dəyərindən istifadə etmək və ya onu müəyyən qanuna uyğun olaraq mənbə və qəbuledici tərəfindən sinxron şəkildə yaratmaq, bu halda ötürülən və ya saxlanılan məlumat massivinin ölçüsündə heç bir dəyişiklik yoxdur;

Hər iki üsul bir-birini tamamlayır və onlardan birincisi, ən çox yayılmışı işləmədiyi nadir hallarda, ikinci, daha ekzotik istifadə edilə bilər. İkinci metodun tətbiqi daha azdır, çünki əvvəlcədən təyin edilmiş sinxronizasiya mesajını yalnız birdən çox məlumat massivinin verilmiş əsas məlumat dəstində açıq şəkildə şifrələmədiyi halda etmək mümkündür, bu o qədər də tez-tez baş vermir. Həm də məlumat massivinin mənbəyində və alıcısında sinxron şəkildə sinxronizasiya mesajı yaratmaq həmişə mümkün olmur, çünki bu, sistemdəki hər hansı bir şeyə sərt əlaqə tələb edir. Beləliklə, ötürülən mesajın nömrəsini şifrələnmiş mesajların ötürülməsi sistemində sinxron mesaj kimi istifadə etmək üçün sağlam görünən bir fikir uyğun deyil, çünki mesaj itirilə bilər və ünvana çata bilməz, bu halda mənbənin şifrələmə sistemləri. və qəbuledici sinxronizasiyadan çıxacaq. Buna görə də, nəzərdən keçirilən halda, şifrələnmiş mesajla birlikdə sinxronizasiya mesajının ötürülməsinə alternativ yoxdur.

Digər tərəfdən, əks nümunə də verilə bilər. Tutaq ki, məlumatların şifrələnməsi diskdəki məlumatları qorumaq üçün istifadə olunur və o, aşağı səviyyədə həyata keçirilir, müstəqil girişi təmin etmək üçün məlumatlar sektorlar tərəfindən şifrələnir. Bu halda, sinxronizasiya mesajını şifrələnmiş məlumatlarla birlikdə saxlamaq mümkün deyil, çünki sektorun ölçüsü dəyişdirilə bilməz, ancaq diskin oxunan baş nömrəsi, trek (silindr) nömrəsinin funksiyası kimi hesablana bilər. və trekdəki sektor nömrəsi. Bu halda, sinxronizasiya mesajı diski yenidən formatlamadan, yəni üzərindəki məlumatları məhv etmədən çətin ki, dəyişə bilən sektorun diskdəki mövqeyinə bağlıdır.

Qamma rejiminin daha bir maraqlı xüsusiyyəti var. Bu rejimdə verilənlər massivinin bitləri bir-birindən asılı olmayaraq şifrələnir. Beləliklə, şifrəli mətnin hər biti düz mətnin müvafiq bitindən və təbii ki, massivdəki bitin sıra nömrəsindən asılıdır: . Buradan belə nəticə çıxır ki, şifrəli mətnin bir hissəsinin əks qiymətə dəyişdirilməsi açıq mətnin bitinin də əks qiymətə oxşar dəyişməsinə səbəb olacaq:

ilə müqayisədə tərsinə işarə edir t bit dəyəri ().

Bu xassə təcavüzkara şifrəli mətnin bitlərinə təsir etmək imkanı verir ki, onun deşifrəsindən sonra əldə edilən müvafiq açıq mətnə, məxfi açara malik olmadan proqnozlaşdırıla bilən və hətta məqsədyönlü dəyişikliklər etsin. Bu kriptologiyada məlum olan faktı göstərir ki məxfilik və həqiqilik fərqli xüsusiyyətlərdir kriptoqrafik sistemlər . Başqa sözlə, mesajın məzmununa icazəsiz daxil olmaqdan və mesaja icazəsiz dəyişikliklərdən müdafiəni təmin etmək üçün kriptosisteminin xüsusiyyətləri müstəqildir və yalnız bəzi hallarda kəsişə bilər. Yuxarıda göstərilənlər o deməkdir ki, şifrələnmiş məlumatların müəyyən məxfiliyini təmin edən və eyni zamanda dəyişikliklərdən qorunmayan və əksinə, məlumatların həqiqiliyini təmin edən və onlarla tanış olmaq imkanlarını məhdudlaşdırmayan kriptoqrafik alqoritmlər var. Bu səbəbdən qamma rejiminin nəzərdən keçirilən xüsusiyyəti onun çatışmazlığı kimi qəbul edilməməlidir.

Rəy ilə qumar.

Bu rejim qamma rejiminə çox bənzəyir və ondan yalnız qamma elementlərinin yaranma üsulu ilə fərqlənir - növbəti qamma elementi şifrələnmiş məlumatların əvvəlki blokunun 32-3 dövrü boyunca transformasiya nəticəsində yaranır və verilənlər massivinin birinci blokunu şifrələyir, eyni sinxronizasiya dövrünə uyğun olaraq transformasiya nəticəsində qamma elementi yaranır. Bu, blokların əlaqələndirilməsinə nail olur - bu rejimdə şifrəli mətnin hər bir bloku açıq mətnin müvafiq və bütün əvvəlki bloklarından asılıdır. Buna görə də bu rejim bəzən adlanır meshing blokları ilə miqyaslama . Blokların bir-birinə bağlı olması şifrənin təhlükəsizliyinə heç bir təsir göstərmir.

Əlaqə qamma rejimində deşifrə və deşifrə alqoritmlərinin sxemi Şəkil 5-də göstərilmişdir və sadəliyinə görə şərhlərə ehtiyac yoxdur.


Şəkil 5. Əlaqə ilə qamma rejimində məlumatların şifrələnməsi (şifrənin açılması) alqoritmi.

Qapalı dövrəli qamma rejimində şifrələmə adi qamma rejimində şifrələmə ilə eyni xüsusiyyətlərə malikdir, ancaq müvafiq açıq mətnə ​​şifrəli mətnin pozulmasının təsiri istisna olmaqla. Müqayisə üçün qeyd olunan hər iki rejim üçün blokun deşifrə funksiyalarını yazaq:

Oyun;

Əlaqə ilə oyun;

Normal miqyaslama rejimində şifrəli mətnin müəyyən bitlərində dəyişikliklər yalnız açıq mətnin müvafiq bitlərinə təsir etdiyi halda, əks əlaqə miqyası rejimində şəkil bir qədər mürəkkəbdir. Müvafiq tənlikdən göründüyü kimi, qapalı qamma rejimində məlumat blokunun şifrəsini açarkən, açıq məlumat bloku müvafiq və əvvəlki şifrələnmiş məlumat bloklarından asılıdır. Buna görə də, şifrələnmiş bloka təhriflər təqdim etsək, şifrəni açdıqdan sonra iki açıq məlumat bloku təhrif ediləcək - müvafiq və ondan sonra gələn və birinci halda təhriflər qamma ilə eyni xarakterə malik olacaqdır. rejimi və ikinci halda - rejimdə olduğu kimi sadə dəyişdirmə. Başqa sözlə, müvafiq açıq verilənlər blokunda eyni bitlər şifrələnmiş məlumat blokunda olduğu kimi pozulacaq və növbəti açıq məlumat blokunda bütün bitlər 1 ehtimalı ilə bir-birindən müstəqil olacaq. / 2 öz dəyərlərini dəyişəcək.

Verilənlər massivinə daxiletmə simulyasiyasının inkişafı.

Əvvəlki bölmələrdə biz şifrələnmiş məlumatların korlanmasının müvafiq aydın məlumatlara təsirini müzakirə etdik. Sadə dəyişdirmə rejimində şifrəni açarkən açıq məlumatların müvafiq blokunun gözlənilməz şəkildə təhrif edildiyini və qamma rejimində blokun şifrəsini açarkən dəyişikliklərin proqnozlaşdırıla biləcəyini aşkar etdik. Qapalı dövrəli miqyaslama rejimində iki blok təhrif edilir, biri proqnozlaşdırıla bilən, digəri isə gözlənilməz şəkildə. Bu, yalan məlumatların tətbiqindən qorunma baxımından qamma rejiminin pis, sadə dəyişdirmə və əks əlaqə qamma rejimlərinin yaxşı olması deməkdirmi? - Heç bir halda. Bu vəziyyəti təhlil edərkən nəzərə almaq lazımdır ki, şifrəsi açılmış məlumat blokunda gözlənilməz dəyişikliklər yalnız bu eyni məlumatların artıqlığı zamanı aşkar edilə bilər və artıqlıq dərəcəsi nə qədər çox olarsa, bir o qədər çox olur. təhrifi aşkar edin. Çox böyük ehtiyatsızlıq, məsələn, təbii və süni dillərdə olan mətnlər üçün baş verir, bu halda təhrif faktı demək olar ki, qaçılmazdır. Ancaq digər hallarda, məsələn, sıxılmış rəqəmsal səs şəkillərini təhrif edərkən, sadəcə olaraq qulağımızın qəbul edə biləcəyi fərqli bir görüntü əldə edəcəyik. Təbii ki, səsin təbiəti haqqında aprior məlumat olmadıqda, bu vəziyyətdə təhrif aşkarlanmayacaqdır. Buradan nəticə belədir: bəzi şifrələmə rejimlərinin şifrlənmiş verilənlərə daxil edilən təhrifləri aşkar etmək qabiliyyəti şifrlənmiş verilənlərin mövcudluğundan və artıqlıq dərəcəsindən çox asılı olduğundan, bu qabiliyyət müvafiq rejimlərin immanent xassəsi deyil və belə hesab edilə bilməz. onların üstünlüyü.

Müəyyən bir ehtimalla şifrələnmiş məlumat massivində təhriflərin aşkarlanması problemini həll etmək üçün GOST əlavə kriptoqrafik çevrilmə rejimini - təqlid edilmiş daxiletmənin yaradılmasını təmin edir. Saxta əlavə açıq məlumatlar və gizli açar məlumatlarından asılı olan idarəetmə birləşməsidir. Daxiletmə mimikalarından istifadənin məqsədi məlumat massivindəki bütün təsadüfi və ya qəsdən dəyişiklikləri aşkar etməkdir. Əvvəlki paraqrafda qeyd olunan problem şifrələnmiş məlumatlara saxta əlavə əlavə etməklə uğurla həll edilə bilər. Potensial təcavüzkar üçün açara sahib deyilsə, aşağıdakı iki vəzifə praktiki olaraq həll edilmir:

  • verilən açıq məlumat massivi üçün daxiletmə simulyasiyasının hesablanması;
  • verilmiş simulyasiya əlavəsi üçün açıq məlumatların seçilməsi;

Simulyasiya edilmiş əlavənin yaradılması alqoritminin sxemi Şəkil 6-da göstərilmişdir.


Şəkil 6. Məlumat massivi üçün simulyasiya edilmiş əlavənin yaradılması alqoritmi.

Çıxışda alınan blokun hissəsi imitasiya əlavəsi kimi qəbul edilir, adətən onun 32 ən az əhəmiyyətli bitidir. Simulyasiya edilmiş əlavənin ölçüsünü seçərkən, yanlış məlumatların uğurla tətbiq edilməsi ehtimalının 2 –|-ə bərabər olduğunu nəzərə almaq lazımdır. I | Təcavüzkarın sadə təxmindən daha səmərəli kobud güc metodu olmadığı təqdirdə hər kobud qüvvə cəhdi. 32 bitlik saxta əlavədən istifadə edərkən bu ehtimal belədir

QOST kriptoqrafik alqoritmlərin müzakirəsi.

GOST-un kriptoqrafik gücü.

Müəyyən bir inkişafda istifadə üçün kriptoqrafik alqoritm seçərkən, müəyyən edən amillərdən biri onun gücüdür, yəni düşmənin onu aşkar etmək cəhdlərinə müqavimətdir. Şifrə gücü məsələsi, daha yaxından araşdırıldıqda, bir-biri ilə əlaqəli iki suala çevrilir:

  • bu şifrəni ümumiyyətlə açmaq mümkündürmü;
  • belədirsə, praktikada nə qədər çətindir;

Heç bir şəkildə pozula bilməyən şifrələr mütləq və ya nəzəri cəhətdən təhlükəsiz adlanır. Belə şifrələrin mövcudluğu Şennon teoremi ilə sübut edilir, lakin bu gücün qiyməti hər bir mesajı şifrələmək üçün mesajın özündən kiçik olmayan açardan istifadə etmək ehtiyacıdır. Bütün hallarda, bir sıra xüsusi olanlar istisna olmaqla, bu qiymət həddindən artıqdır, buna görə də praktikada mütləq təhlükəsizliyə malik olmayan şifrələr əsasən istifadə olunur. Beləliklə, ən çox istifadə edilən şifrələmə sxemləri sonlu bir müddətdə, daha dəqiq desək, hər biri ədədlər üzərində bəzi əməliyyatlar olan sonlu sayda addımlarla həll edilə bilər. Onlar üçün ən vacib anlayış onların açıqlanmasının praktiki çətinliyini ifadə edən praktik sabitlik anlayışıdır. Bu çətinliyin kəmiyyət ölçüsü şifrəni həll etmək üçün yerinə yetirilməli olan elementar arifmetik və məntiqi əməliyyatların sayı ola bilər, yəni verilmiş qiymətdən az olmayan ehtimalla verilmiş şifrəli mətn üçün müvafiq açıq mətni müəyyən etməkdir. Eyni zamanda, şifrəsi açılmış məlumat massivinə əlavə olaraq, kriptoanalitik açıq məlumat bloklarına və müvafiq şifrələnmiş məlumatlara və ya hətta seçdiyi hər hansı açıq məlumat üçün müvafiq şifrələnmiş məlumatları əldə etmək qabiliyyətinə sahib ola bilər - sadalananlardan və bir çox məlumatlardan asılı olaraq. digər qeyri-müəyyən şərtlər, kriptoanalizin ayrı-ayrı növləri fərqləndirilir.

Bütün müasir kriptosistemlər Kirchhoff prinsipinə əsasən qurulur, yəni şifrələnmiş mesajların məxfiliyi açarın məxfiliyi ilə müəyyən edilir. Bu o deməkdir ki, şifrləmə alqoritminin özü kriptoanalitikə məlum olsa belə, müvafiq açarı yoxdursa, o, hələ də mesajın şifrəsini aça bilmir. Şifrə, bütün açar məkanında kobud axtarışdan daha səmərəli şəkildə sındırmaq üçün heç bir yol yoxdursa, yaxşı hazırlanmış hesab olunur, yəni. bütün mümkün əsas dəyərlər üzərində. GOST, yəqin ki, bu prinsipə uyğundur - illər ərzində aparılan intensiv tədqiqatlar ərzində onun kriptoanalizi üçün heç bir effektiv metod təklif edilməmişdir. Güc baxımından, o, keçmiş Amerika şifrələmə standartı DES-dən üstün olan bir çox miqyasdadır.

GOST 256 bitlik açardan istifadə edir və açar sahəsinin ölçüsü 2256-dır. Hal-hazırda mövcud olan və ya yaxın gələcəkdə tətbiqi gözlənilən elektron cihazların heç biri yüzlərlə ildən az müddətdə açarı götürə bilməz. Bu dəyər bu günlərdə simmetrik kriptoqrafik alqoritmlər üçün faktiki açar ölçüsü standartına çevrilib və ABŞ-ın yeni şifrələmə standartı da bunu dəstəkləyir. Keçmiş Amerika standartı DES, real açar ölçüsü 56 bit və açar sahəsinin ölçüsü cəmi 256, müasir hesablama vasitələrinin imkanları fonunda artıq kifayət qədər güclü deyil. Bu, 1990-cı illərin sonlarında DES-ə bir neçə uğurlu kobud güc hücumları ilə nümayiş etdirildi. Bundan əlavə, DES diferensial və xətti kimi xüsusi kriptoanaliz metodlarına məruz qalmışdır. Bu baxımdan DES praktiki maraqdan daha çox tədqiqat və ya elmi maraq doğura bilər. 1998-ci ildə onun kriptoqrafik zəifliyi rəsmi olaraq tanındı - ABŞ Milli Standartlar İnstitutu üçlü DES şifrələməsindən istifadə etməyi tövsiyə etdi. Və 2001-ci ilin sonunda, fərqli prinsiplər üzərində qurulmuş və sələfinin çatışmazlıqlarından azad olan yeni ABŞ şifrələmə standartı AES rəsmi olaraq təsdiqləndi.

GOST arxitekturasına dair qeydlər.

Məlumdur ki, yerli şifrələmə standartı eyni prinsiplər əsasında qurulmuş bütün şifrələr ailəsinin nümayəndəsidir. Onun ən məşhur "qohumu" keçmiş Amerika şifrələmə standartı, DES alqoritmidir. Bütün bu şifrələr, GOST kimi, üç səviyyəli alqoritmləri ehtiva edir. Əsas həmişə müəyyən bir "əsas addım"dır, bunun əsasında "əsas dövrlər" oxşar şəkildə qurulur və şifrələmə və imitasiya daxiletmənin inkişafı üçün praktik prosedurlar artıq qurulmuşdur. Beləliklə, bu ailənin şifrələrinin hər birinin spesifikliyi onun əsas addımında, daha doğrusu, hətta onun hissəsindədir. QOST-un aid olduğu klassik blok şifrələrinin arxitekturası bu məqalənin əhatə dairəsindən çox kənarda olsa da, hələ də bu barədə bir neçə söz söyləməyə dəyər.

GOST kimi şifrələr üçün "kripto-transformasiyanın əsas addımları" üçün alqoritmlər eyni şəkildə qurulur və bu arxitektura adlanır. balanslaşdırılmış Feistel şəbəkəsi (balanslaşdırılmış Feistel şəbəkəsi) onu ilk təklif edən şəxsin adını daşıyır. Bir dövrədə məlumatların çevrilməsi sxemi və ya ümumiyyətlə adlandırıldığı kimi, dəyirmi , Şəkil 7-də göstərilmişdir.


Şəkil 7. GOST-a oxşar blok şifrələri üçün əsas kripto-çevrilmə addımının məzmunu.

Üst və alt yarımları bir-birindən ayrı işlənən əsas pillənin girişinə bərabər ölçülü blok verilir. Transformasiya zamanı blokun aşağı yarısı köhnənin yerinə, köhnəsi isə bit istiqamətində birləşir. eksklüziv və ya » kiçik funksiyanın yerinə hansısa funksiyanın hesablanması nəticəsində. Arqument kimi blokun aşağı yarısını və əsas məlumat elementini götürən bu funksiya ( X), şifrənin məzmun hissəsidir və ona deyilir şifrələmə funksiyası . Müxtəlif səbəblərə görə şifrələnmiş bloku eyni ölçülü iki hissəyə bölmək sərfəli oldu: | N 1 |=|N 2 | - memarlıq adında “balanslaşdırılmış” sözünü əks etdirən də bu faktdır. Bununla belə, balanslaşdırılmış şəbəkələr qədər olmasa da, zaman-zaman şifrələmə balanssız şəbəkələri də istifadə olunur. Bundan əlavə, şifrə gücü mülahizələri əsas elementin ölçüsünün blokun yarısının ölçüsündən az olmamasını tələb edir: GOST-da hər üç ölçü 32 bitdir. .

Yuxarıdakıları QOST alqoritminin əsas addımının sxeminə tətbiq etsək, məlum olur ki, alqoritmin 1,2,3-cü blokları (şək. 1-ə bax) onun şifrələmə funksiyasının hesablanmasını, 4 və 5-ci bloklar dəsti müəyyən edir. giriş blokunun məzmunu və şifrələmə funksiyasının dəyəri əsasında əsas addımın çıxış blokunun formalaşması. Gizli açarı olan müasir blok şifrələrinin arxitekturaları haqqında daha ətraflı məlumatı klassik əsərlərdə və ya uyğunlaşdırılmış formada mənim əsərlərimdə tapa bilərsiniz.

Əvvəlki bölmədə biz artıq DES və GOST-u davamlılıq baxımından müqayisə etdik, indi onları funksional məzmun və icra asanlığı baxımından müqayisə edəcəyik. GOST şifrələmə dövrlərində əsas addım 32 dəfə təkrarlanır, DES üçün bu dəyər 16-dır. Bununla belə, QOST şifrələmə funksiyasının özü çoxlu qeyri-müntəzəm bit dəyişdirmələrinin olduğu oxşar DES funksiyasından daha sadədir. Bu əməliyyatlar müasir qeyri-ixtisaslaşdırılmış prosessorlarda son dərəcə səmərəsiz şəkildə həyata keçirilir. GOST belə əməliyyatları ehtiva etmir, buna görə də proqram təminatının həyata keçirilməsi üçün daha rahatdır.

Müəllif tərəfindən Intel x86 platforması üçün nəzərdə tutulan DES tətbiqlərinin heç biri, iki dəfə daha qısa dövrə baxmayaraq, bu məqalədə diqqətinizə təqdim olunan GOST tətbiqinin yarısını belə yerinə yetirmir. Yuxarıda göstərilənlərin hamısı GOST tərtibatçılarının DES-in həm müsbət, həm də mənfi tərəflərini nəzərə aldıqlarını, həmçinin kriptoanalizin cari və gələcək imkanlarını daha real qiymətləndirdiklərini göstərir. Bununla belə, şifrə tətbiqetmələrinin performansını müqayisə edərkən DES-i əsas götürmək artıq aktual deyil. ABŞ-ın yeni şifrələmə standartı səmərəliliyi ilə daha yaxşı işləyir - 256 bitlik GOST ilə eyni açar ölçüsü ilə AES ondan təxminən 14% daha sürətli işləyir - bu, "elementar əməliyyatların" sayına görə müqayisə edildikdə belədir. Bundan əlavə, GOST-u paralelləşdirmək praktiki olaraq mümkün deyil, AES isə bu baxımdan daha çox imkanlara malikdir. Bəzi arxitekturalarda AES-in bu faydası daha az, digərlərində isə daha çox ola bilər. Beləliklə, Intel Pentium prosessorunda bu, 28%-ə çatır. Təfərrüatlar ilə tanış ola bilərsiniz.

Əsas məlumatın keyfiyyətinə dair tələblər və əsas mənbələr.

Bütün düymələr və əvəzetmə cədvəlləri maksimum şifrə gücünü təmin etmir. Hər bir şifrələmə alqoritminin əsas məlumatı qiymətləndirmək üçün öz meyarları var. Beləliklə, DES alqoritmi üçün sözdə mövcudluğu " zəif düymələr ”, burada açıq və şifrələnmiş məlumatlar arasında əlaqə kifayət qədər maskalanmamışdır və şifrəni qırmaq nisbətən asandır.

Açarların keyfiyyət meyarları və GOST əvəzetmə cədvəlləri ilə bağlı suala hərtərəfli cavab, əgər onu hər yerdə əldə edə bilsəniz, yalnız alqoritmin tərtibatçılarındandır. Müvafiq məlumatlar açıq mətbuatda dərc olunmayıb. Bununla belə, müəyyən edilmiş qaydada, möhürü olan məlumatları şifrələmək üçün səlahiyyətli təşkilatdan alınan əsas məlumatlar istifadə edilməlidir. Dolayı olaraq, bu, "bit" üçün əsas məlumatların yoxlanılması üsullarının mövcudluğunu göstərə bilər. GOST-da zəif açarların olması mübahisəli bir məsələdirsə, zəif əvəzedici qovşaqların olması şübhə doğurmur. Aydındır ki, hər hansı bir dəyərin özü ilə əvəz olunduğu “xırda-xırda” əvəzetmə cədvəli o qədər zəifdir ki, ondan istifadə edərkən açarın nə olmasından asılı olmayaraq, şifrə sadəcə olaraq pozulur.

Yuxarıda qeyd edildiyi kimi, əsas məlumatları qiymətləndirmək üçün meyarlar mövcud deyil, lakin onlar haqqında bəzi ümumi mülahizələr hələ də edilə bilər.

Açar

Açar 0 və 1 dəyərlərini eyni ehtimalla qəbul edən statistik cəhətdən müstəqil bitlər massivi olmalıdır.Bəzi xüsusi açar dəyərlərin “zəif” ola biləcəyini tamamilə istisna etmək olmaz, yəni Şifrə istifadə olunarsa, verilən təhlükəsizlik səviyyəsini təmin etməyə bilər. Bununla birlikdə, ehtimal ki, bu cür dəyərlərin bütün mümkün açarların ümumi kütləsində payı cüzidir. Ən azı, intensiv şifrə araşdırmaları məlum (yəni FAPSI tərəfindən təklif olunan) əvəzetmə cədvəllərinin heç biri üçün hələ də belə bir açar aşkar etməyib. Buna görə də, həqiqətən təsadüfi ədədlərin müəyyən bir generatorunun köməyi ilə yaradılan açarlar, birlikdən əhəmiyyətsiz dərəcədə az miqdarda fərqlənən bir ehtimalla yüksək keyfiyyətli olacaqdır. Açarlar psevdo-təsadüfi nömrə generatorundan istifadə edilərək yaradılırsa, istifadə olunan generator yuxarıda göstərilən statistik xüsusiyyətləri təmin etməli və əlavə olaraq, GOST-un özündən az olmayan yüksək kriptoqrafik gücə malik olmalıdır. Başqa sözlə desək, generatorun yaratdığı elementlər ardıcıllığının itkin üzvlərini təyin etmək işi şifrəni pozmaqdan asan olmamalıdır. Bundan əlavə, statistik göstəriciləri zəif olan açarları rədd etmək üçün müxtəlif statistik meyarlardan istifadə edilə bilər. Təcrübədə adətən iki meyar kifayətdir - əsas bitlərin 0 və 1 dəyərləri arasında bərabər ehtimal paylanmasını yoxlamaq üçün adətən Pearson meyarından ("chi kvadrat") istifadə olunur və açar bitlərin müstəqilliyini yoxlamaq üçün seriya meyarı istifadə olunur. istifadə olunur. Qeyd olunan meyarlar haqqında riyazi statistikaya dair dərsliklərdə və ya istinad kitablarında oxuya bilərsiniz.

Açarların yaradılması üçün ən yaxşı yanaşma aparat MF sensorlarından istifadə etmək olardı, lakin bu, iqtisadi səbəblərə görə həmişə məqbul deyil. Kiçik bir əsas məlumat massivi yaradarkən, belə bir sensordan istifadə etmək üçün ağlabatan alternativ "elektron rulet" üsulu ilə praktikada geniş istifadə olunur və təsadüfi bitlərin növbəti yaradılan hissəsi operatorun müəyyən bir düyməni basdığı ​​andan asılıdır. kompüter klaviaturasında. Bu sxemdə təsadüfi məlumatların mənbəyi kompüter istifadəçisi, daha dəqiq desək, onun reaksiyasının müvəqqəti xüsusiyyətləridir. Bu halda, hər bir düymənin vuruşu ilə yalnız bir neçə bit təsadüfi məlumat yaradıla bilər, buna görə də əsas məlumatın yaradılmasının ümumi sürəti aşağıdır - saniyədə bir neçə bitə qədər. Aydındır ki, bu yanaşma çoxlu açar massivləri əldə etmək üçün uyğun deyil.

Böyük bir sıra əsas məlumatların işlənib hazırlanması lazım olduğu halda, psevdo-təsadüfi nömrələrin müxtəlif proqram sensorlarından istifadə etmək mümkündür və çox geniş yayılmışdır. Belə bir sensor yüksək kriptoqrafik güc tələb etdiyindən, şifrə qamma generatorunun özündən istifadə etmək təbiidir - biz sadəcə olaraq şifrə tərəfindən yaradılan qammanı GOST üçün hər biri 32 bayt olan istənilən ölçülü "parçalara" "kəsdik". Əlbəttə ki, bu yanaşma üçün yuxarıda təsvir edilən elektron rulet metodundan istifadə etməklə əldə edə biləcəyimiz “master açar”a ehtiyacımız var və onun köməyi ilə qamma generator rejimində şifrədən istifadə etməklə biz “master açar”a ehtiyac duyuruq. ehtiyacımız olan həcm. Beləliklə, açarların yaradılmasının bu iki yolu - "əl ilə" və "alqoritmik" - bir-birini tamamlayaraq tandemdə işləyir. “Aşağı büdcəli” informasiya kriptoqrafik mühafizə sistemlərində açar generasiya sxemləri demək olar ki, həmişə bu prinsipə uyğun qurulur.

Əvəzetmə cədvəli

Əvəzedici cədvəl uzunmüddətli əsas elementdir, yəni tək açardan daha uzun müddətə etibarlıdır. Güman edilir ki, bu, bir kriptoqrafik mühafizə sistemi daxilində bütün şifrələmə qovşaqları üçün ümumidir. Əvəzetmə cədvəlinin məxfiliyi pozulsa belə, şifrənin gücü son dərəcə yüksək olaraq qalır və icazə verilən həddən aşağı düşmür. Buna görə də, masanın gizli saxlanmasına xüsusi ehtiyac yoxdur və GOST-un əksər kommersiya tətbiqlərində bu belə edilir. Digər tərəfdən, əvəzetmə cədvəli bütün şifrənin gücünü təmin etmək üçün vacib elementdir. Yanlış cədvəlin seçilməsi şifrənin məlum kriptoanaliz üsulları ilə asanlıqla qırılması ilə nəticələnə bilər. Əvəzedici qovşaqların inkişafı üçün meyarlar yeddi möhürdən ibarət bir sirrdir və FAPSI-nin yaxın gələcəkdə ictimaiyyətlə bölüşməsi ehtimalı azdır. Nəhayət, bu xüsusi əvəzetmə cədvəlinin yaxşı və ya pis olduğunu söyləmək üçün böyük miqdarda iş sərf etməlisiniz - minlərlə insan və maşın saatı. Cədvəl seçildikdən və istifadə edildikdən sonra dəyişdirilə bilər, o halda ki, istifadə edilən şifrə bu və ya digər kriptoanaliz növünə qarşı həssasdır. Buna görə də, şifrənin adi istifadəçisi üçün ən yaxşı seçim ictimai hala gələn bir neçə cədvəldən birini götürməkdir. Məsələn, hash funksiyası standartından o, həm də "mərkəzi bankçılıq"dır; bu cədvəllər haqqında məlumatı yaxşı axtarsanız, açıq mətbuatda və hətta İnternetdə tapmaq olar.

Asan yola öyrəşməyənlər üçün aşağıda keyfiyyətli masalar əldə etmək üçün ümumi sxem verilmişdir:

  1. Bu və ya digər üsuldan istifadə edərək, zəmanətli qeyri-xətti xüsusiyyətləri olan səkkiz əvəzedici qovşaq dəstini hazırlayırsınız. Bir neçə belə üsul var, onlardan biri sözdə əyilmiş funksiyaların istifadəsidir.
  2. Siz ən sadə "keyfiyyət meyarlarının" həyata keçirilməsini yoxlayırsınız - məsələn, DES dəyişdirmə qovşaqları üçün nəşr olunanlar. Bu hesabla bağlı daha ümumi mülahizələri təqdim edirik: Hər bir əvəzetmə qovşağı dörd məntiqi arqumentdən dörd məntiqi funksiya ilə təsvir edilə bilər. Bu funksiyalar varsa, yazılır minimal forma(yəni, minimum mümkün ifadə uzunluğu ilə) kifayət qədər mürəkkəb deyil, belə bir əvəz node rədd edilir. Bundan əlavə, bütün əvəzetmə cədvəli daxilində fərdi funksiyalar bir-birindən kifayət qədər fərqlənməlidir. Bu mərhələdə bir çox bilərəkdən aşağı keyfiyyətli masalar aradan qaldırılır.
  3. Seçdiyiniz cədvəlləri olan bir şifrə üçün müxtəlif kriptoanaliz növlərinə uyğun müxtəlif dəyirmi modellər qurun və müvafiq "profil" xüsusiyyətlərini ölçün. Beləliklə, xətti kriptoanaliz üçün şifrələmə raundunun xətti statistik analoqunu qurun və "profil" xarakteristikasını - qeyri-xəttilik indeksini hesablayın. Qeyri-kafi olduğu ortaya çıxarsa, əvəzetmə cədvəli rədd edilir.
  4. Nəhayət, əvvəlki paraqrafın nəticələrindən istifadə edərək, seçdiyiniz cədvəli olan şifrəni intensiv tədqiqata - bütün məlum üsullarla kriptoanaliz cəhdinə tabe edin. Bu mərhələ ən çətin və vaxt aparandır. Amma bu, yüksək keyfiyyətlə aparılarsa, o zaman yüksək ehtimalla demək olar ki, seçdiyiniz cədvəllərin şifrəsi sadəcə fanilər tərəfindən açılmayacaq və ola bilsin ki, bu, çox çətin olacaq. xüsusi xidmətlər.

Bununla belə, bunu daha asan etmək mümkündür. İş ondadır ki, şifrədə nə qədər çox raund varsa, bütün şifrənin təhlükəsizliyinə bir o qədər az təsir bir raundun təhlükəsizlik xüsusiyyətləridir. GOST-da 32 dövrə var - oxşar arxitekturaya malik demək olar ki, bütün şifrələrdən daha çox. Buna görə də, əksər yerli və kommersiya tətbiqləri üçün 0-dan 15-ə qədər rəqəmlərin müstəqil təsadüfi dəyişdirilməsi kimi əvəzedici qovşaqların əldə edilməsi kifayətdir. Bu, məsələn, hər birinə bir təyin edilmiş on altı kartdan ibarət göyərtəni qarışdırmaqla praktiki olaraq həyata keçirilə bilər. göstərilən aralığın dəyərlərindən.

Əvəzetmə cədvəli ilə bağlı daha bir maraqlı faktı qeyd etmək lazımdır. 32-3 və 32-R şifrələmə dövrlərinin geri çevrilməsi əvəzedici qovşaqların 0-dan 15-ə qədər rəqəmlərin dəyişdirilməsini tələb etmir. Əvəzedici qovşaqda dublikat elementlər olsa belə, hər şey işləyir və əvəzetmə belə bir qovşaq tərəfindən müəyyən edilir. , geri dönməzdir - lakin bu halda şifrənin gücü azalır. Bunun niyə belə olduğu bu məqalədə nəzərdən keçirilmir, lakin faktın özünü yoxlamaq çətin deyil. Bunu etmək üçün, qovşaqlarında dublikat dəyərlər olan belə bir "aşağı" əvəzetmə cədvəlindən istifadə edərək məlumat blokunu əvvəlcə şifrələməyə və sonra şifrəni açmağa çalışmaq kifayətdir.

GOST mövzusunda dəyişikliklər

Çox vaxt kriptoqrafik məlumatların mühafizəsi sistemində istifadə üçün GOST-dan daha yüksək icra sürətinə malik bir alqoritm tələb olunur və belə yüksək kriptoqrafik güc tələb olunmur. Bu cür tapşırıqların tipik nümunəsi ticarət sessiyalarını real vaxt rejimində idarə edən müxtəlif növ elektron birja ticarət sistemləridir. Burada istifadə olunan şifrələmə alqoritmləri tələb olunur ki, sessiya zamanı sistemin əməliyyat məlumatlarının (yerləşdirilmiş sifarişlər, bağlanmış sövdələşmələr və s.) şifrəsini açmağı qeyri-mümkün etsin, bundan sonra, bir qayda olaraq, bu məlumatlar hücumçular üçün artıq yararsız olur. . Başqa sözlə, yalnız bir neçə saatlıq zəmanətli əzm tələb olunur ki, bu da ticarət sessiyasının tipik uzunluğudur. Aydındır ki, bu vəziyyətdə tam hüquqlu GOST-dan istifadə sərçələrə bir top atmaq olardı.

Şifrələmə sürətini artırmaq üçün bu və buna bənzər hallarda necə davam etmək olar? Cavab səthdədir - əsas dövrlərdə daha az əsas addımlar (raund) ilə şifrənin modifikasiyasından istifadə edin. Şifrələmə dövrələrinin sayını neçə dəfə azaltsaq, performans eyni miqdarda artır. Bu dəyişikliyə iki yolla nail olmaq olar - açarın uzunluğunu azaltmaqla və açarın "axtarış dövrlərinin" sayını azaltmaqla. Xatırladaq ki, əsas şifrələmə dövrlərində əsas addımların sayıdır N=n m, Harada n açardakı 32 bitlik elementlərin sayıdır, m- standartda əsas elementlərin istifadə dövrlərinin sayı n=8, m=4. Bu nömrələrdən hər hansı birini azalda bilərsiniz, lakin ən sadə seçim, istifadə sxeminə təsir etmədən açarın uzunluğunu azaltmaqdır.

Aydındır ki, işi sürətləndirmək üçün qiymət şifrənin gücünün azalması olacaq. Əsas çətinlik ondan ibarətdir ki, bu azalmanın miqyasını az və ya çox dəqiq qiymətləndirmək olduqca çətindir. Aydındır ki, bunun yeganə mümkün yolu kriptoqrafik çevrilmənin azaldılmış dövrləri ilə “tam” şəkildə şifrə variantlarının tədqiqini aparmaqdır. Aydındır ki, birincisi, bu, yalnız GOST tərtibatçılarına məxsus olan məxfi məlumatların istifadəsini tələb edir, ikincisi, çox zəhmətlidir. Ona görə də biz indi yalnız ümumi qanunauyğunluqlara əsaslanaraq çox, çox təxmini qiymətləndirmə verməyə çalışacağıq.

Şifrənin "geniş" üsullarla, yəni "kobud güc" hücumuna qarşı müqavimətinə gəldikdə, burada hər şey az və ya çox aydındır: 64 bitlik açar bu tip üçün əlçatan olmaq ərəfəsindədir. Hücum zamanı 96 bit və daha yüksək açarı olan şifrə (yadda saxlayın ki, açar 32 bitlik elementlərin tam sayını ehtiva etməlidir) ona qarşı kifayət qədər davamlıdır. Həqiqətən, bir neçə il əvvəl ABŞ-ın keçmiş şifrələmə standartı DES dəfələrlə kobud güc tərəfindən sındırıldı - əvvəlcə qlobal İnternet əsasında təşkil edilmiş kompüter şəbəkəsi, sonra isə ixtisaslaşmış, yəni. bu məqsəd üçün xüsusi olaraq hazırlanmış kompüter. Fərz edək ki, QOST-un standart versiyası müasir prosessorlarda proqram təminatında tətbiq edildikdə, DES-dən dörd dəfə daha sürətli işləyir. Sonra 8 raundlu "azaldılmış GOST" DES-dən 16 dəfə daha sürətli işləyəcək. Onu da götürək ki, DES-in sındırılmasından sonra keçən müddət ərzində hesablama texnologiyasının performansı, Mur qanununa görə, dörd dəfə artıb. Nəticədə, əldə edirik ki, indi "azaldılmış GOST" üçün bir 64 bitlik açarın səkkiz dövrlə yoxlanılması bir DES açarının yoxlanılmasından 64 dəfə daha sürətlidir. Beləliklə, kobud güc hücumunun mürəkkəbliyi baxımından GOST-un bu versiyasının DES-dən üstünlüyü 2 64–56 = 2 8 = 256-dan 256-ya endirilir. / 64 = 4 dəfə. Razılaşın, bu çox illüziya fərqidir, demək olar ki, heç nə.

QOST-un zəifləmiş modifikasiyalarının kriptoanaliz metodlarının "intensiv" müqavimətini qiymətləndirmək daha çətindir. Ancaq ümumi nümunəni burada da izləmək olar. Fakt budur ki, hazırda ən güclü kriptoanaliz növlərinin bir çoxunun "profil" xüsusiyyətləri eksponent olaraq şifrələmə dövrələrinin sayından asılıdır. Beləliklə, xətti kriptoanaliz (LCA) üçün bu, xətti xarakteristikası olacaqdır L :

Harada C və sabitlərdir, R dövrələrin sayıdır. Oxşar əlaqə diferensial kriptoanaliz üçün də mövcuddur. “Fiziki mənasına” görə bu cür bütün xüsusiyyətlər ehtimaldır. Adətən, kriptoanaliz üçün tələb olunan ilkin məlumatların miqdarı və onun mürəkkəbliyi belə xüsusiyyətlərə tərs mütənasibdir. Buradan belə nəticə çıxır ki, bu əmək intensivliyi göstəriciləri əsas şifrələmə addımlarının sayının artması ilə eksponent olaraq artır. Buna görə də, dövrələrin sayı bir neçə dəfə azaldıqda, ən çox bilinən analiz növlərinin mürəkkəbliyi, bu gücün ilkin məbləğdən çox təqribən və təxminən kökü kimi dəyişəcəkdir. Bu dözümlülükdə çox böyük bir azalmadır.

Digər tərəfdən, GOST böyük təhlükəsizlik marjası ilə hazırlanmışdır və bu gün diferensial və xətti də daxil olmaqla bütün məlum kriptoanaliz növlərinə davamlıdır. LCA-ya gəldikdə, bu o deməkdir ki, onun uğurla həyata keçirilməsi üçün “təbiətdə mövcud olandan” daha çox “açıq blok – şifrələnmiş blok” cütləri tələb olunur, yəni 2 64-dən çox. Yuxarıdakıları nəzərə alaraq, bu o deməkdir ki, 16 raundlu GOST-un uğurlu LCA üçün ən azı bloklar və ya 2 35 bayt və ya 32 GB məlumat, 8 dövrəli GOST üçün isə ən azı bloklar və ya 2 19 məlumat tələb olunacaq. bayt və ya 0,5 MB.

Yuxarıda deyilənlərin hamısından nəticələr GOST-un azaldılmış versiyalarının xüsusiyyətlərini ümumiləşdirən aşağıdakı cədvəldə verilmişdir.

Turların sayı Açar ölçüsü, bit Sürətli fəaliyyət indeksi Şifrənin ehtimal olunan xüsusiyyətləri (çox təxmini hesablama)
24 192 1,33 Ən çox tanınan KA növlərinə davamlıdır və ya müqavimət astanasında olun. İlkin məlumatlara və əmək intensivliyinə yüksək tələblər səbəbindən CA-nın praktiki həyata keçirilməsi mümkün deyil.
16 128 2 Nəzəri cəhətdən bəzi kriptoanaliz növləri üçün qeyri-sabitdir, lakin ilkin məlumatlara və əmək intensivliyinə yüksək tələblər səbəbindən onların praktiki həyata keçirilməsi əksər hallarda çətindir.
12 95 2,67 O, bəzi məlum kriptoanaliz növlərinə davamlı deyil, lakin qısa müddət ərzində kiçik həcmli məlumatların (onlarla və ya yüzlərlə KB-a qədər) məxfiliyini təmin etmək üçün uyğundur.
8 64 4 O, bəzi məlum kriptoanaliz növlərinə davamlı deyil, lakin qısa müddət ərzində kiçik həcmli məlumatların (onlarla Kbayta qədər) məxfiliyini təmin etmək üçün əlverişlidir.

12 və 8 raunddan ibarət son iki variant vaxtında çox, çox məhdud müdafiəni təmin edə bilir. Onların istifadəsi yalnız qapalı məlumatların qısa müddətli məxfiliyinin tələb olunduğu vəzifələrdə, bir neçə saat ərzində əsaslandırılır. Bu zəif şifrələr üçün mümkün tətbiq sahəsi elektron birja ticarət sistemlərinin UDP trafikini bağlamaqdır. Bu halda, hər bir məlumat paketi (dataqram, UDP abbreviaturasından orta "D") ayrıca 64 bitlik açarla, açarın özü isə seans açarı (əhatə dairəsi iki kompüter arasında bir rabitə seansı olan açar) ilə şifrələnir. ) və verilənlərlə birlikdə ötürülür.

GOST-un azaldılmış versiyaları ilə başa çatmazdan əvvəl deyim ki, yuxarıda göstərilən bütün mülahizələr olduqca spekulyativdir. Standart yalnız bir, 32 dəyirmi seçim üçün davamlılığı təmin edir. Və heç kim sizə şifrənin azaldılmış variantlarının qırılma müqavimətinin yuxarıda göstərilən şəkildə dəyişəcəyinə zəmanət verə bilməz. Əgər siz hələ də inkişaflarınızda onlardan istifadə etmək qərarına gəlsəniz, hər an ayağınızın altından sürüşə bilən çox titrəyən yerə ayaq basdığınızı unutmayın. Şifrələmə sürəti sizin üçün kritik olduğundan, bəlkə daha sürətli şifrə və ya daha güclü kompüterdən istifadə etməyi düşünməlisiniz? Bunu etməyə dəyər olan başqa bir mülahizə odur ki, GOST-un zəiflədilmiş versiyaları istifadə olunan dəyişdirmə vahidlərinin keyfiyyətinə mümkün qədər həssas olacaqdır.

Mövcud məsələnin mənfi tərəfi də var. Şifrələmə sürəti kritik deyilsə və güc tələbləri çox sərtdirsə? GOST-un müqavimətini artırmaq üçün iki yol var - biz onları şərti olaraq "geniş" və "intensiv" adlandıracağıq. Bunlardan birincisi şifrələmə dövrələrinin sayında sadə artımdan başqa bir şey deyil. Bunun həqiqətən nə üçün lazım ola biləcəyi mənə tam aydın deyil, çünki daxili standart onsuz da lazımi sabitliyi təmin edir. Bununla belə, tələb olunan səviyyədən yuxarı paranoyyadan əziyyət çəkirsinizsə (və bütün "informasiya müdafiəçiləri" sadəcə olaraq bundan əziyyət çəkməyə borcludurlar, bu, peşəkar uyğunluq şərtidir, yeganə sual işin ciddiliyidir :), bu sizə kömək edəcəkdir. bir az sakit ol. Bu KQB şifrəsi və ya istifadə etdiyiniz əvəzetmə cədvəli haqqında əmin deyilsinizsə, sadəcə ikiqat, dördlü və s. raundların sayı - işinizin şiddətindən asılı olaraq çoxluğu seçin. Bu yanaşma həqiqətən şifrənin gücünü artırmağa imkan verir - əgər əvvəllər kriptoanaliz sadəcə mümkün deyildisə, indi meydanda mümkün deyil!

Əsas şifrələmə addımlarının sayını və strukturunu dəyişmədən şifrənin gücünü artırmağın mümkün olub-olmadığı sualı daha çətin və maraqlıdır. Təəccüblüdür ki, bu sualın cavabı bəlidir, baxmayaraq ki, biz yenidən fərziyyələrin sarsıntılı zəminində addımlayırıq. Fakt budur ki, GOST-da, əsas çevrilmə mərhələsində, 4-dən 4-ə qədər əvəz edilməli idi, lakin praktikada (bu barədə daha sonra danışacağıq), bütün proqram tətbiqləri baytı baytla əvəz edir, yəni. 8-dən 8-ə qədər - bu, səmərəlilik səbəbi ilə edilir. Dərhal belə bir əvəzi 8 bitlik kimi tərtib etsək, onda bir raundun xüsusiyyətlərini əhəmiyyətli dərəcədə yaxşılaşdıracağıq. Birincisi, "diffuziya" xarakteristikası və ya "uçqun" göstəricisi artacaq - mənbə məlumatının bir biti və / və ya açar nəticənin daha çox bitinə təsir edəcəkdir. İkincisi, daha böyük əvəzedici qovşaqlar üçün daha aşağı diferensial və xətti xüsusiyyətlər əldə edilə bilər ki, bununla da şifrənin oxşar kriptoanaliz növlərinə qarşı həssaslığı azalır. Bu, xüsusilə azaldılmış GOST dövrləri üçün doğrudur və 8 və 12 dövrə variantları üçün belə bir addım sadəcə zəruridir. Bu, turların sayının azalmasından onlarda dözüm itkisini bir qədər kompensasiya edir. Bu texnikadan istifadəni çətinləşdirən odur ki, belə "artırılmış" əvəzedici qovşaqları özünüz dizayn etməli olacaqsınız. Həm də daha böyük qovşaqların dizaynı ümumiyyətlə kiçik olanlara nisbətən nəzərəçarpacaq dərəcədə çətindir.

Standartın qeyri-standart istifadəsi.

Əlbəttə ki, GOST kripto alqoritmlərinin əsas məqsədi məlumatların şifrələnməsi və imitasiya mühafizəsidir. Bununla belə, onlar təbii olaraq məlumatın qorunması ilə əlaqəli olan digər tətbiqlərdə tapıla bilər. Onlar haqqında qısaca danışaq:

1. Qamma rejimində şifrələmə üçün QOST kriptoqrafik qammanın - yaxşı statistik xüsusiyyətlərə və yüksək kriptoqrafik gücə malik bitlərin ardıcıllığının yaradılmasını təmin edir. Bundan əlavə, bu qamma açıq məlumatları dəyişdirmək üçün istifadə olunur, nəticədə şifrələnmiş məlumatlar əldə edilir. Bununla belə, bu kriptoqrafik qammanın yeganə mümkün tətbiqi deyil. Fakt budur ki, onun inkişafı üçün alqoritm əla xüsusiyyətlərə malik psevdo-təsadüfi nömrələr ardıcıllığı generatorudur (PRNG). Əlbəttə ki, yalnız yaradılan ardıcıllığın statistik xüsusiyyətlərini əldə etmək tələb olunduğu və kriptoqrafik gücə ehtiyac olmadığı belə bir PRNG-dən istifadə etmək çox ağlabatan deyil, çox ağlabatan deyil - bu hallar üçün daha səmərəli generatorlar var. Lakin informasiya təhlükəsizliyi ilə bağlı müxtəlif tətbiqlər üçün belə bir mənbə çox faydalı olacaq:

  • Yuxarıda qeyd edildiyi kimi, qamma açarların yaradılması üçün "xammal" kimi istifadə edilə bilər. Bunu etmək üçün sadəcə istədiyiniz uzunluqda bir qamma seqmentini əldə etməlisiniz - 32 bayt. Beləliklə, açarlar lazım olduqda hazırlana bilər və saxlanmağa ehtiyac yoxdur - əgər belə bir açar yenidən lazım olarsa, onu yenidən yaratmaq kifayət qədər asan olacaq. Yalnız onun hansı açarda yaradıldığını, hansı sinxronizasiya mesajının istifadə edildiyini və yaradılan qammanın hansı baytından açarın başladığını xatırlamaq lazımdır. İstifadə olunan açardan başqa bütün məlumatlar sirr deyil. Bu yanaşma kifayət qədər mürəkkəb və şaxələnmiş açarlar sistemini yalnız bir “master açar”dan istifadə etməklə idarə etməyi asanlaşdıracaq.
  • Əvvəlki kimi, qamma parolların yaradılması üçün ilkin "xammal" kimi istifadə edilə bilər. Burada sual yarana bilər ki, niyə ümumiyyətlə onları yaratmaq lazımdır, lazım olduqda onları sadəcə icad etmək asan deyilmi? Bu yanaşmanın uğursuzluğunu kompüter şəbəkələrində baş verən bir sıra insidentlər aydın şəkildə nümayiş etdirdi ki, bunlardan ən böyüyü 1988-ci ilin noyabrında “Morris qurdunun” yaratdığı internetin gündəlik iflici idi. Zərərli proqramın kompüterə nüfuz etmə yollarından biri parolun təxmin edilməsi idi: proqram daxili siyahısından bir neçə yüz parolu ardıcıl çeşidləyərək sistemə daxil olmağa çalışdı və halların əhəmiyyətli bir hissəsində bunu bacardı. İnsanın parol icad etmək fantaziyası çox zəif çıxdı. Buna görə də təhlükəsizliyə lazımi diqqət yetirildiyi təşkilatlarda təhlükəsizlik sisteminin administratoru tərəfindən parollar yaradılır və istifadəçilərə paylanır. Parolun yaradılması açar yaratmaqdan bir az daha mürəkkəbdir, çünki bu halda "xam" ikili qamma yalnız parçalara "kəsmək" deyil, simvol formasına çevrilməlidir. Bundan əlavə, əlifbanın bütün simvollarının parolda eyni dərəcədə görünməsini təmin etmək üçün fərdi dəyərləri ləğv etmək lazım ola bilər.
  • Kriptoqrafik gamutdan istifadə etməyin başqa bir yolu maqnit daşıyıcılarında məlumatların silinməsinə zəmanət verilir. Məsələ burasındadır ki, hətta maqnit daşıyıcısında informasiyanın üzərinə yazıldıqda belə, əvvəlki məlumatların izləri qalır ki, bu da müvafiq müayinə ilə bərpa oluna bilər. Bu izləri məhv etmək üçün bu cür təkrar yazmaq dəfələrlə aparılmalıdır. Məlum oldu ki, belə bir prosedur təsadüfi və ya psevdo-təsadüfi məlumatlardan istifadə edərsə, yenidən yazılan məlumatları bərpa etməyə çalışan mütəxəssislərə naməlum qalacaqsa, mediaya məlumatı daha az təkrar yazmaq lazımdır. Qamma şifrəsi burada faydalı olacaq.

2. Şifrələmə ilə birbaşa əlaqəli olmayan ehtiyaclar üçün təkcə kriptoqrafik qamma deyil, həm də kriptoqrafik transformasiyanın özü istifadə edilə bilər:

  • Biz bilirik ki, GOST-dan istifadə üçün belə variantlardan biri məlumat massivləri üçün simulyasiya edilmiş əlavənin hazırlanmasıdır. Bununla birlikdə, hər hansı bir blok şifrəsi, o cümlədən GOST əsasında, ədəbiyyatda MDC də adlandırılan, müxtəlif mənbələrdə ifadə olunan birtərəfli hash funksiyasının hesablanması üçün bir sxem qurmaq olduqca asandır. aşkarlama kodunu dəyişdirin / manipulyasiya (M Modifikasiya/ M anipulyasiya D eteksiya C ode) və ya mesaj həzm (M esse D igest C qəsidə). İlk dekodlaşdırma ədəbiyyatda daha əvvəl ortaya çıxdı, ikinci, daha qısa, məncə, birincisini xatırlaya bilməyənlər tərəfindən icad edildi :) - bu zarafat idi. MDC birbaşa imitasiya mühafizə sistemlərində imitasiya daxiletmənin analoqu kimi istifadə edilə bilər, lakin bu, gizli açardan asılı deyil. Bundan əlavə, MDC elektron rəqəmsal imza (EDS) sxemlərində geniş istifadə olunur, çünki bu sxemlərin əksəriyyəti sabit ölçülü məlumat blokunu imzalamaq üçün əlverişli olan şəkildə tərtib edilmişdir. Bildiyiniz kimi, müzakirə olunan GOST 28147-89 standartı əsasında birtərəfli hash funksiyasının hesablanması üçün Rusiya Federasiyasının standartı GOST R34.11-94 qurulur.
  • Daha az məlumdur ki, hər hansı bir blok şifrəsi, o cümlədən GOST əsasında gizli imza açarı və açıq yoxlama kombinasiyası ilə tam funksional EDS sxemi qurula bilər. Bir sıra səbəblərə görə bu sxem geniş praktiki paylanma əldə etməmişdir, lakin bəzi hallarda hələ də hazırda dünyada dominant olan "riyazi" EDS sxemlərinə çox cəlbedici alternativ hesab edilə bilər.

Ədəbiyyat

İnformasiya emal sistemləri. Kriptoqrafik qorunma. Kriptoqrafik çevrilmə alqoritmi GOST 28147-89. dövlət. com. Standartlara görə SSRİ, M., 1989. ftp://ftp.wtc-ural.ru/pub/ru.crypt/GOST-28147
Şennon Klod. Gizli sistemlərin riyazi nəzəriyyəsi. “İnformasiya nəzəriyyəsi və kibernetika üzrə əsərlər” toplusunda M., IL, 1963, s. 333-369. http://www.enlight.ru/crypto/articles/shannon/shann__i.htm
Federal İnformasiya Emalı Standartının (FIPS) 197, Qabaqcıl Şifrələmə Standartının (AES), Federal Register Cilt. 66, yox. 235 / Cümə axşamı, 6 dekabr 2001-ci il / Bildirişlər, s. 63369–63371. http://csrc.nist.gov/encryption/aes/
Feistel Horst. Kriptoqrafiya və kompüter təhlükəsizliyi. Tərcümə A. Vinokurov, nəşri Horst Feistel. Kriptoqrafiya və Kompüter Məxfiliyi, Scientific American, May 1973, Vol. 228, yox. 5, səh. 15-23. http://www.enlight.ru/crypto/articles/feistel/feist_i.htm
Schneier Bruce. Tətbiqi kriptoqrafiya. 2-ci nəşr. C dilində protokollar, alqoritmlər və mənbə mətnləri., M., "Triumf", 2002 http://www.ssl.stu.neva.ru/psw/crypto/appl_rus/appl_cryp.htm
Menezes Alfred, van Oorschot Paul, Vanstone Scott. Tətbiqi kriptoqrafiya kitabçası. http://www.cacr.math.uwaterloo.ca/hac/
Vinokurov Andrey. Blok şifrəsi necə qurulur? Əlyazma. http://www.enlight.ru/crypto/articles/vinokurov/blcyph_i.htm
Vinokurov Andrey. iNFUSED BYTES onlayn elektron jurnalı üçün kriptoqrafiya ilə bağlı məsələlər. http://www.enlight.ru/crypto/articles/ib/ib.htm
Vinokurov Andrey, Primenko Eduard. "Rusiya Federasiyası və ABŞ-ın şifrələmə standartlarının proqram təminatının tətbiqi haqqında" məruzənin mətni, informasiyalaşdırma konfransı, Moskva, MEPhI, 28-29 yanvar 2001-ci il. Konfransın materiallarında dərc edilmişdir.
İnformasiya texnologiyaları. İnformasiyanın kriptoqrafik mühafizəsi. Hash funksiyası GOST R34.11-94, Gosstandart RF, M., 1994.

Bu alqoritm Rusiya Federasiyasının dövlət təşkilatlarında və bir sıra kommersiya təşkilatlarında şifrələmə alqoritmi kimi istifadə üçün məcburidir.

Alqoritmin təsviri

Alqoritmin sxemi Şəkildə göstərilmişdir. 3.1. Gördüyünüz kimi, bu alqoritmin sxemi olduqca sadədir ki, bu da onun proqram təminatı və ya aparat təminatının həyata keçirilməsini birmənalı şəkildə asanlaşdırır.

GOST 28147-89 alqoritmi 32 bitlik iki alt bloka (N1 və N2) bölünən 64 bitlik bloklarda məlumatları şifrələyir. N1 alt bloku müəyyən bir şəkildə işlənir, bundan sonra onun dəyəri əlavə olunur

N2 subblok dəyəri ilə (əlavə modul 2 yerinə yetirilir), sonra alt bloklar dəyişdirilir. Belə bir çevrilmə müəyyən sayda dövrə üçün həyata keçirilir: alqoritmin iş rejimindən asılı olaraq 16 və ya 32 (aşağıda təsvir edilmişdir). Hər turda aşağıdakı əməliyyatlar həyata keçirilir:

1. Açar örtüyü. /VI altblokunun məzmunu açarın Kx hissəsinə 2 32 modulu əlavə edilir.

GOST 28147-89 alqoritminin şifrələmə açarının ölçüsü 256 bit, Kx isə onun 32 bit hissəsidir, yəni 256 bitlik şifrələmə açarı 32 bitlik alt açarların birləşməsi kimi təqdim olunur (Şəkil 3.2):

SH ATI, AG2, Yu, AG4, K5, Kb, K7.

Şifrələmə prosesi zamanı dəyirmi nömrədən və alqoritmin iş rejimindən asılı olaraq bu alt açarlardan biri istifadə olunur.

düyü. 3.1. GOST 28147- alqoritminin sxemi

düyü. 3.2. GOST 28147-89 alqoritminin şifrələmə açarı

2. Cədvəlin dəyişdirilməsi. Açarı ört-basdır etdikdən sonra /VI alt bloku 4 bitdən ibarət 8 hissəyə bölünür, onların hər birinin qiyməti altblokun bu hissəsi üçün əvəzedici cədvələ uyğun olaraq fərdi şəkildə dəyişdirilir. Cədvəllərin dəyişdirilməsi (Əvəzetmə qutusu, S-box) tez-tez müasir şifrələmə alqoritmlərində istifadə olunur, buna görə də onları daha ətraflı nəzərdən keçirməyə dəyər.

Cədvəllərin dəyişdirilməsi bu şəkildə istifadə olunur: müəyyən ölçülü bir məlumat bloku (bu halda, 4-bit) girişə verilir, rəqəmsal təmsili çıxış dəyərinin sayını müəyyən edir. Məsələn, bizdə aşağıdakı formada bir S qutusu var:

4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1.

Girişə 4 bitlik blok “0100” gəlsin, yəni dəyər 4. Cədvələ görə çıxış dəyəri 15 olacaq, yəni. "1111" (0 4 ilə əvəz olunur, 1 11 ilə əvəz olunur, 2-nin qiyməti dəyişdirilmir və s.).

Gördüyünüz kimi, alqoritmin sxemi çox sadədir, yəni məlumatların şifrələnməsinin ən böyük yükü əvəzedici cədvəllərin üzərinə düşür. Təəssüf ki, alqoritm “zəif” əvəzetmə cədvəllərinin olması xüsusiyyətinə malikdir, onlardan istifadə edərək alqoritmi kriptoanalitik üsullarla aşkar etmək olar. Zəif olanlara, məsələn, çıxışın girişə bərabər olduğu bir cədvəl daxildir:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.

3. 11 bit bitwise tsiklik sola sürüşdürmə.

Alqoritm rejimləri

GOST 28147-89 alqoritmində 4 iş rejimi var:

□ sadə dəyişdirmə rejimi;

□ qamma rejimi;

Əlaqə ilə P oyun rejimi;

□ imitasiya əlavələrinin istehsal rejimi.

Bu rejimlər ümumi qəbul edilənlərdən bir qədər fərqlidir (Bölmə 1.4-də təsvir edilmişdir), ona görə də onları daha ətraflı nəzərdən keçirməyə dəyər.

Bu rejimlərin müxtəlif məqsədləri var, lakin yuxarıda təsvir edilən eyni şifrələmə transformasiyasından istifadə edirlər.

Asan dəyişdirmə rejimi

Sadə dəyişdirmə rejimində yuxarıda təsvir edilən 32 raund sadəcə olaraq hər 64 bitlik məlumat blokunu şifrələmək üçün yerinə yetirilir. 32-bit alt açarlar aşağıdakı ardıcıllıqla istifadə olunur:

□ KO, Kl, K2, K3, K4, K5, Kb, AG7, KO, ATI və s. - 1-dən 24-ə qədər dövrlərdə;

□ K1, Kb, K5, K4, K3, K2, K\, KO - 25-32 raundlarda.

Sadə dəyişdirmə rejimində şifrənin açılması tamamilə eyni şəkildə, lakin alt düymələrdən bir qədər fərqli istifadə ardıcıllığı ilə həyata keçirilir:

□ KO, K\, K2, KZ, K4, K5, Kb, KP - 1-8 raundlarda;

□ KP, Kb, K5, K4, K3, K2, K\, KO, K1, Kb və s. - 9-dan 32-ə qədər dövrlərdə.

Standart ECB rejiminə bənzər olaraq, blokların ayrıca şifrələnməsi səbəbindən, sadə dəyişdirmə rejimi faktiki məlumatların şifrələnməsi üçün qətiliklə tövsiyə edilmir; yalnız çox açarlı sxemlərdə digər şifrələmə açarlarını şifrələmək üçün istifadə edilməlidir.

Qamma rejimi

Qamma rejimində (şək. 3.3) hər bir açıq mətn bloku 64 bitlik şifrəli qamma blokuna 2-ci bit modulu əlavə edilir. Şifrə qamması yuxarıda təsvir edilən çevrilmələrdən istifadə edərək yaradılan xüsusi ardıcıllıqdır:

1. N1 və N2 registrlərində onların ilkin doldurulması yazılır - "sinxronizasiya mesajı" adlanan 64 bitlik dəyər (sinx mesajı, əslində, CBC, CFB və OFB rejimlərində başlatma vektorunun analoqudur. ).

2. /VI və N2 registrlərinin məzmunu (bu halda sinxronizasiya mesajları) sadə dəyişdirmə rejimində şifrələnir.

3. N1 məzmununa modul (2 32 - 1) CI = 2 24 + 2 16 + 2 8 + 4 sabiti ilə əlavə olunur, əlavənin nəticəsi /VI registrinə yazılır.

4. N2-nin məzmununa C2 = 2 24 + 2 16 + 2 8 +1 sabiti ilə modul 2 əlavə edilir, əlavənin nəticəsi N2 registrinə yazılır.

5. /VI və N2 registrlərinin məzmunu 64 bitlik şifrəli qamma bloku kimi çıxarılır (yəni, bu halda /VI və N2 birinci qamma blokunu təşkil edir).

6. Əgər növbəti qamma blokuna ehtiyac varsa (yəni şifrələmə və ya şifrənin açılması davam etməlidir), 2-ci addıma qayıdın.

Şifrənin açılması üçün eyni şəkildə qamma yaradılır, sonra XOR əməliyyatı yenidən şifrəli mətn və qamma bitlərinə tətbiq edilir.

Eyni şifrə qammasını yaratmaq üçün kriptoqramı deşifrə edən istifadəçi məlumatı şifrələmək üçün istifadə edilmiş eyni açara və eyni sinxronizasiya mesajı dəyərinə malik olmalıdır. Əks halda, şifrələnmiş mətndən orijinal mətni əldə edə bilməyəcəksiniz.

GOST 28147-89 alqoritminin əksər tətbiqlərində sinxronizasiya mesajı gizli element deyil, lakin sinxronizasiya mesajı şifrələmə açarı kimi gizli ola bilər. Bu halda hesab edə bilərik ki, alqoritm açarının effektiv uzunluğu (256 bit) sinxron mesajın daha 64 biti ilə artırılır ki, bu da əlavə əsas element kimi qəbul edilə bilər.

Əlaqə qamma rejimi

Əlaqə qamma rejimində 2-ci blokdan başlayaraq /VI və L/2 registrləri əvvəlki qamma bloku ilə deyil, əvvəlki açıq mətn blokunun şifrələnməsinin nəticəsi ilə doldurulur (şək. 3.4). Bu rejimdə ilk blok əvvəlki ilə eyni şəkildə yaradılır.

düyü. 3.4. Əlaqə ilə qamma rejimində qamma şifrəsinin yaradılması

Təqlid generasiya rejimi

Spoof, şifrələmə açarı ilə hesablanmış və mesajların bütövlüyünü yoxlamaq üçün nəzərdə tutulmuş kriptoqrafik yoxlama məbləğidir. Onu hesablamaq üçün GOST 28147-89 alqoritminin xüsusi rejimi var.

Təqlid prefiksinin yaradılması aşağıdakı kimi həyata keçirilir:

1. Təqlidçinin hesablandığı ilk 64 bitlik informasiya bloku N1 və N2 registrlərinə yazılır və 32-dən ilk 16 raundun yerinə yetirildiyi azaldılmış sadə dəyişdirmə rejimində şifrələnir.

2. Alınan nəticə, nəticəni N1 və N2-də saxlayaraq növbəti informasiya bloku ilə 2-ci modula cəmlənir.

3. M və N2 yenidən sadə əvəzetmənin azaldılmış rejimində şifrələnir və s. informasiyanın son blokuna qədər.

Prefiks N1 və N2 registrlərinin və ya onun bir hissəsinin 64 bitlik nəticə məzmunu hesab olunur. Çox vaxt 32 bitlik imitasiya prefiksi, yəni registrlərin məzmununun yarısı istifadə olunur. Bu kifayətdir, çünki hər hansı yoxlama məbləği kimi, təqlid prefiksi ilk növbədə məlumatın təsadüfən təhrif edilməsindən qorunmaq üçün nəzərdə tutulub. Məlumatların qəsdən dəyişdirilməsindən qorunmaq üçün digər kriptoqrafik üsullardan - ilk növbədə elektron rəqəmsal imzadan istifadə olunur (bax: Bölmə 1.1).

Təqlid prefiksi aşağıdakı kimi istifadə olunur:

1. Hər hansı məlumatı şifrələyərkən açıq mətn imitatoru hesablanır və şifrəli mətnlə birlikdə göndərilir.

2. Şifrəni açdıqdan sonra imitasiya prefiksi yenidən hesablanır və göndərilənlə müqayisə edilir.

3. Hesablanmış və göndərilmiş imitasiya prefiksləri uyğun gəlmirsə, ötürülmə zamanı şifrəli mətn təhrif edilib və ya şifrənin açılması zamanı düzgün olmayan açarlardan istifadə edilib.

Təqlid prefiksi çox açarlı sxemlərdən istifadə edərkən əsas məlumatın düzgün şifrələnməsini yoxlamaq üçün xüsusilə faydalıdır.

Təqlid prefiksi CBC rejimində hesablanmış MAC mesajı autentifikasiya kodunun bəzi analoqudur; fərq ondadır ki, prefiksin hesablanması sinxron mesajdan istifadə etmir, MAC hesablanması isə başlanğıc vektorundan istifadə edir.

Alqoritmin kriptoqrafik gücü

1994-cü ildə QOST 28147-89 alqoritminin təsviri ingilis dilinə tərcümə edilmiş və nəşr edilmişdir; məhz bundan sonra onun xarici ekspertlər tərəfindən apardığı təhlillərin nəticələri görünməyə başladı; lakin, əhəmiyyətli bir müddət ərzində praktiki olaraq yaxınlaşan heç bir hücum tapılmadı.

□ böyük açar uzunluğu - 256 bit; gizli sinxronizasiya mesajı ilə birlikdə effektiv açar uzunluğu 320 bitə qədər artır;

□ 32 raund çevrilmə; artıq 8 raunddan sonra giriş məlumatlarının dağılmasının tam effekti əldə edilir: açıq mətn blokunun bir bitinin dəyişdirilməsi şifrəli mətn blokunun bütün bitlərinə təsir edəcək və əksinə, yəni çox sayda təhlükəsizlik marjası var.

GOST 28147-89 alqoritminin kriptoanalizinin nəticələrini nəzərdən keçirək.

Əvəzetmə cədvəllərinin təhlili

Əvəzetmə cədvəlləri standartda verilmədiyi üçün bir sıra əsərlər (məsələn, in) “səriştəli təşkilat”ın həm “yaxşı”, həm də “pis” əvəzetmə cədvəlləri verə biləcəyini göstərir. Lakin məşhur ekspert Bruce Schneier bu cür ehtimalları “şayiələr” adlandırır. Aydındır ki, alqoritmin kriptoqrafik gücü əsasən istifadə olunan əvəzetmə cədvəllərinin xassələrindən asılıdır, müvafiq olaraq zəif əvəzetmə cədvəlləri mövcuddur (məsələn, yuxarıda bax), onlardan istifadə alqoritmin hücumunu sadələşdirə bilər. Buna baxmayaraq, müxtəlif əvəzedici cədvəllərdən istifadə etmək imkanı DES şifrələmə standartının tarixindən aşağıdakı iki faktla dəstəklənən çox layiqli bir fikir kimi görünür (ətraflı məlumat üçün Bölmə 3.15-ə baxın):

□ DES alqoritminin həm xətti, həm də diferensial kriptoanalizindən istifadə edən hücumlar əvəzetmə cədvəllərinin spesifik xüsusiyyətlərindən istifadə edir; digər cədvəllərdən istifadə edərkən kriptoanaliz yenidən başlamalı olacaq;

□ Daha güclü əvəzedici cədvəllərdən istifadə etməklə DES-in xətti və diferensial kriptoanalizə qarşı gücləndirilməsinə cəhdlər edilmişdir; həqiqətən daha sabit olan belə cədvəllər, məsələn, s 5 DES alqoritmində təklif edilmişdir; lakin təəssüf ki, DES-i s 5 DES ilə əvəz etmək mümkün deyildi, çünki əvəzedici cədvəllər müvafiq olaraq standartda sərt şəkildə müəyyən edilmişdir, alqoritmin tətbiqləri, ehtimal ki, cədvəlləri başqalarına dəyişdirmək qabiliyyətini dəstəkləmir.

Bir sıra işlərdə (məsələn, və ) səhvən belə bir nəticəyə gəlinir ki, GOST 28147-89 alqoritminin gizli əvəzetmə cədvəlləri açarın bir hissəsi ola bilər və onun effektiv uzunluğunu artıra bilər (bu, əhəmiyyət kəsb etmir, çünki alqoritmdə çox böyük 256 bit açar). Bununla belə, iş sübut edir ki, gizli əvəzetmə cədvəlləri praktik olaraq tətbiq oluna bilən aşağıdakı hücumdan istifadə edərək hesablana bilər:

1. Null düyməsini təyin edin və "null vektorunu" axtarın, yəni z = /(0) dəyərini axtarın, burada /() alqoritmin dairəvi funksiyasıdır. Bu mərhələ təxminən 2 şifrələmə əməliyyatı tələb edir.

2. Sıfır vektordan istifadə edərək, 2 11 əməliyyatdan çox olmayan əvəzetmə cədvəllərinin qiymətləri hesablanır.

Alqoritm dəyişiklikləri və onların təhlili

İşdə GOST 28147-89 alqoritminin modifikasiyalarının kriptoanalizi aparılmışdır:

□ GOST-H alqoritmi, burada orijinal alqoritmə nisbətən alt düymələrdən istifadə qaydası dəyişdirilir, yəni 25-dən 32-yə qədər olan dövrlərdə alt düymələr birbaşa qaydada, yəni əvvəlki ilə eyni şəkildə istifadə olunur. alqoritmin dövrələri;

□ Açarların üst-üstə düşməsi üçün modul 2 32 əvəzinə XOR istifadə edən 20 dövrəli GOST® alqoritmi.

Təhlilin nəticələrinə əsasən, GOST-H və GOST©-nin orijinal GOST 28147-89 alqoritmindən daha zəif olduğu qənaətinə gəldik, çünki hər ikisində zəif düymələr sinifləri var. Qeyd etmək lazımdır ki, GOST© kriptoanalizi baxımından əsər 2000-ci ildə məşhur əsərdə nəşr olunmuş QOST 28147-89 alqoritminin kriptoanaliz bölməsini sözbəsöz təkrar edir (orijinalına heç bir istinad etmədən). Bu, əsərin müəlliflərinin peşəkarlığını və onun digər nəticələrini şübhə altına alır.

İşdə alqoritmin çox maraqlı modifikasiyası təklif olunur: cədvəllər S \ ... Ss mütləq fərqli olmalıdır; alqoritmin hər turunda onlar müəyyən qanuna uyğun olaraq dəyişdirilməlidir. Bu permutasiya şifrələmə açarından asılı ola bilər və ya gizli ola bilər (yəni, orijinal 256 bitlik açardan daha böyük şifrələmə açarının bir hissəsi ola bilər). Bu variantların hər ikisi, onların müəlliflərinin fikrincə, alqoritmin xətti və diferensial kriptoanalizə qarşı müqavimətini əhəmiyyətli dərəcədə artırır.

Əvəzetmə cədvəlləri ilə bağlı daha bir dəyişiklik işdə verilmişdir ki, burada şifrələmə açarı əsasında əvəzetmə cədvəllərinin hesablanmasının mümkün üsullarından biri təhlil edilir. İşin müəllifləri belə qənaətə gəliblər ki, bu cür asılılıq alqoritmi zəiflədir, çünki bu, zəif düymələrin olmasına və alqoritmin bəzi potensial zəifliklərinə gətirib çıxarır.

Tam Dəyirmi Alqoritm Təhlili

Heç bir dəyişiklik edilmədən tam dövrəli GOST 28147-89-a hücumlar da var. Alqoritmin təhlilinin aparıldığı ilk açıq işlərdən biri olan məşhur iş bir sıra tanınmış şifrələmə alqoritmlərinin açar genişləndirmə prosedurunda zəif cəhətlərdən istifadə edən hücumlara həsr edilmişdir. Xüsusilə, GOST 28147-89 tam dəyirmi alqoritmi əlaqəli açarlar üzərində diferensial kriptoanalizdən istifadə edərək sındırıla bilər, ancaq zəif əvəzedici cədvəllərdən istifadə edildikdə. Alqoritmin 24 raundlu versiyası (ilk 8 raunddan məhrumdur) istənilən əvəzetmə cədvəlləri üçün eyni şəkildə açılır, lakin güclü əvəzetmə cədvəlləri (məsələn, -də verilmişdir) belə bir hücumu tamamilə qeyri-mümkün edir.

Yerli alimlər A.G.Rostovtsev və E.B.Maxovenko 2001-ci ildə məlum açıq mətndən ona şifrəli mətnə ​​və arzu olunan qiymətə uyğun gələn obyektiv funksiyanı formalaşdırmaqla (müəlliflərin fikrincə, bu, xətti və diferensial kriptoanalizdən əhəmiyyətli dərəcədə effektivdir) prinsipcə yeni kriptoanaliz metodunu təklif etmişlər. açarın və açarın həqiqi dəyərinə uyğun olan ekstremumunun tapılması. Onlar həmçinin GOST 28147-89 alqoritminin zəif düymələrinin böyük bir sinfini tapdılar ki, bu da yalnız 4 seçilmiş düz mətndən və kifayət qədər aşağı mürəkkəbliyə malik onlara uyğun şifrəli mətnlərdən istifadə edərək alqoritmi açmağa imkan verir. İşdə alqoritmin kriptoanalizi davam etdirilir.

2004-cü ildə Koreyadan olan bir qrup ekspert, əlaqəli açarlar üzərində diferensial kriptoanalizdən istifadə edərək, 91,7% ehtimalla 12 bit məxfi açar əldə etmək mümkün olan bir hücum təklif etdi. Hücum üçün 235 seçilmiş açıq mətn və 236 şifrələmə əməliyyatı tələb olunur. Gördüyünüz kimi, bu hücum alqoritmin real açılması üçün praktiki olaraq faydasızdır.