GOST (blok şifresi)

GOST 28147-89 (RFC 5830) standardında tanımlanan GOST blok şifresi (Magma), blok boyutu 64 bit olan bir Sovyet ve Rus hükûmeti standardı simetrik anahtar blok şifresidir. 1989'da yayınlanan orijinal standart, şifreye herhangi bir isim vermemiştir, ancak standardın en son revizyonu olan GOST R 34.12-2015 (RFC 7801, RFC 8891), bunun Magma olarak adlandırılabileceğini belirtir. GOST karma işlevi bu şifreye dayanmaktadır. Yeni standart ayrıca Kuznyechik adlı yeni bir 128 bitlik blok şifrelemeyi de belirtir.

1970'lerde geliştirilen standart, "Çok Gizli" olarak işaretlenmiş ve daha sonra 1990'da "Gizli" olarak düşürülmüştü. SSCB'nin dağılmasından kısa bir süre sonra, gizliliği kaldırıldı ve 1994'te halka sunuldu. GOST 28147, bir Sovyet idi. Amerika Birleşik Devletleri standart algoritmasına DES ‘e alternatiftir. Bu nedenle, ikisi yapı olarak çok benzer.

GOST, 64 bit blok boyutuna ve 256 bit anahtar uzunluğuna sahiptir. Bu S-box gizli olabilir, ve yaklaşık 354 (log2(16!8)) bitlik gizli bilgi içerir, böylece etkin anahtar boyutu 610 bite çıkarılabilir. Ancak seçilen bir anahtar saldırısı, S-kutularının içeriğini yaklaşık 2^32 şifrelemede kurtarabilir.

GOST, 32 turluk bir Feistel ağıdır . Yuvarlak işlevi çok basittir: 32 bitlik bir alt anahtar modulo 2^32 ekleyin, sonucu bir S-box katmanından geçirin ve bu sonucu 11 bit sola çevirin. Bunun sonucu, round (yuvarlak) fonksiyonun çıktısıdır. Bitişik diyagramda, bir satır 32 biti temsil eder.

Alt anahtarlar önceden belirlenmiş bir sırayla seçilir. Anahtar programı çok basittir: 256-bit anahtarı sekiz 32-bit alt anahtara ayırın, her alt anahtar algoritmada dört kez kullanılır; ilk 24 tur anahtar kelimeleri sırasıyla kullanır, son 8 turda ise ters sırada kullanır.

S-kutuları dört bitlik bir girişi kabul eder ve dört bitlik bir çıkış üretir. Round (Yuvarlak) fonksiyondaki S kutusu ikamesi sekiz adet 4 × 4 S-kutusundan oluşur. S-kutuları uygulamaya bağlıdır, bu nedenle iletişimlerini GOST kullanarak güvenceye almak isteyen taraflar aynı S-kutularını kullanmalıdır. Ekstra güvenlik için S-kutuları gizli tutulabilir. GOST'un belirtildiği orijinal standartta, hiçbir S-kutusu verilmedi, ancak bir şekilde sağlanmaları gerekiyordu. Bu, hükümetin casusluk yapmak istediği kuruluşlara zayıf S-kutuları verildiği yönünde spekülasyonlara yol açtı. Bir GOST çip üreticisi, sahte rastgele sayı üreteci kullanarak S-kutularını kendisinin oluşturduğunu bildirdi.

GOST 28147-89'da açıklanan algoritmanın uzun bir süre için tasarlanmış olmasına rağmen, yeterli bir güvenlik marjına sahiptir. Bu, öncelikle şifreleme anahtarının uzun olmasından kaynaklanmaktadır.

Bildiğiniz gibi, modern şifreleme sistemlerinin geliştiricileri, şifreli mesajların gizliliğinin anahtarın gizliliği tarafından belirlenmesi ilkesine bağlı kalıyorlar. Bu, şifreleme algoritmasının kendisi kriptanalist tarafından bilinse bile, yine de ilgili anahtara sahip değilse mesajın şifresini çözemeyeceği anlamına gelir. DES ve GOST 28147-89 da dahil olmak üzere tüm klasik blok şifreleri bu prensibe uyar ve tüm anahtar alan üzerinde kaba kuvvetten daha verimli bir şekilde onları kırmanın bir yolu olmayacak şekilde tasarlanmıştır, yani tüm olası anahtar değerlerinin üzerinde. Bu tür şifrelerin gücünün, içlerinde kullanılan anahtarın boyutuna göre belirlendiği açıktır.

GOST 28147-89'da uygulanan şifre 256 bitlik bir anahtar kullanır ve anahtar alanının hacmi 2^256'dır. "DES ve AES Şifreleme Algoritmalarında" olduğu gibi, hesaplama kompleksinin tüm kuvvetlerinin, bir saniyede 10-12 (bu yaklaşık 2^40'a eşittir) anahtarları kaba kuvvetle kırmak için atıldığını ve ardından tüm 2^256 anahtarın eksiksiz bir numaralandırıldığını varsayıyoruz. 2.216 saniye sürecektir (bu sefer bir milyar yıldan fazladır).

DES ve GOST 28147 algoritmaları arasında önceden kaydedilmiş olan farklılıklara aşağıdakileri de ekleyebiliriz. DES'in ana turunda, orijinal mesajın düzensiz permütasyonları kullanılır; GOST 28147'de 11 bitlik dairesel sola kaydırma kullanılır. Son işlem, yazılım uygulaması için çok daha uygundur. Bununla birlikte, DES permütasyonu çığ etkisini artırır. GOST 28147'de, bir giriş bitindeki bir değişiklik, bir turda değiştirildiğinde 4 bitlik bir bloğu etkiler, bu daha sonra sonraki turun iki 4 bitlik bloğunu, bir sonraki turun üç bloğunu vb. Etkiler. GOST 28147, bir giriş bitini değiştirmeden önce sonucun her bitini etkilemeden önce 8 tur gerektirir; DES'in bunun için sadece 5 tura ihtiyacı var.

Ayrıca, DES'ten farklı olarak, GOST 28147-89'da, ikame işleminin gerçekleştirilmesi için ikame tablosunun isteğe bağlı olarak değiştirilebileceği, yani ikame tablosunun ek bir 512-bit anahtar olduğu da not edilmelidir.

GOST'un en son kriptanaliz'i, teorik anlamda güvenli olduğunu göstermektedir. Uygulamada yayınlanan en iyi saldırıların veri ve bellek karmaşıklığı pratik düzeye ulaşırken, 2^64 veri mevcutken en iyi saldırının bile zaman karmaşıklığı hala 2^192'dir.

2011'de birkaç yazar GOST'ta daha önemli kusurlar keşfetti ve ilk kez 32 turluk GOST'un tamamına rastgele tuşlarla saldırabildi. Hatta Nicolas Courtois tarafından "derinden kusurlu bir şifre" olarak adlandırıldı. İlk saldırılar, büyük bellek gereksinimleri pahasına zaman karmaşıklığını 2 256'dan 2 228'e düşürmeyi başardı ve kısa süre sonra 2^178 zaman karmaşıklığına kadar geliştirildi (2^70 bellek ve 2^64 veri maliyeti pahasına).

Aralık 2012'de Courtois, Gawinecki ve Song, yalnızca 2^101 GOST turu hesaplayarak GOST'a yönelik saldırıları iyileştirdi. Isobe, Dinur, Dunkelman ve Shamir'in geliştirdiği, 2^32 veri, 2^36 bellek için 2^224 zaman karmaşıklığına ve 2^64 veri için 2^192 time zaman karmaşıklığına ulaşan Gost şifresinin tamamına tek bir anahtar saldırısı yayınlamıştı.

Saldırılar, beklenen gücü 2^256'dan (anahtar uzunluğu) yaklaşık 2^178’e düşürdüğünden şifrenin kırılmış veya bozuk olabileceği kabul edilebilir. Bununla birlikte, blok boyutu n bit olan herhangi bir blok şifresi için, yeniden anahtarlama yapılmadan önce şifrelenebilecek maksimum düz metin miktarı the Birthday paradoks nedeniyle 2 N/2 bloktur ve yukarıda bahsedilen saldırıların hiçbiri daha az veri gerektirmez.