Seed Cipher Sifreleme Algoritması ve Kripto Analiz
1. SEED Cipher
Kriptoloji ve Güvenlik Protokolleri
Eğitmen: Öğr. Gör. MEHMET FATİH ZEYVELİ
Abdullah Kalpakoğlu
2. Özet
SEED, 1998'den beri KISA (Kore Bilgi Güvenliği Ajansı) ve bir grup uzman tarafından
geliştirilen 128 bitlik simetrik bir anahtar blok şifresidir.
SEED, ulusal bir sanayi birliği standardıdır (TTAS KO-12.0004, 1999).
SEED, Kore'deki güvenlik sistemlerinin çoğunda benimsenmiştir.
SEED, mevcut bilgi işlem teknolojisi ile dengelenen S-kutuları ve permütasyonları
kullanmak için tasarlanmıştır. 16 turlu Feistel yapısına sahiptir ve diferansiyel kripto
analize ve güvenlik / verimlilik takası ile dengelenen doğrusal kripto analize karşı
güçlüdür.
SEED, Eylül 1999'da Telekomünikasyon Organizasyon Standardı (TTA) olarak
oluşturulmuştur. 2005 yılında, uluslararası bir standardizasyon kuruluşu olan ISO /
IEC tarafından Uluslararası Blok Şifreleme Algoritması IETF standardı olarak kabul
edilmiştir.
3. Giriş
128-bit veri bloğu ve 128-bit gizli anahtar içeren gizli bir anahtar şifresi olan SEED
şifreleme algoritmasının tam bir şifresinin çözülmesini belirtir.
SEED'in özellikleri şu şekilde özetlenmiştir:
16 Round Feistel yapısı sahiptir
128 bit giriş / çıkış veri bloğu boyutundadır
128 bit anahtar uzunluğuna sahiptir
• Bilinen saldırılara karşı güçlüdür
• İki adet 8x8 S-box kullanır.
• XOR ve modüler eklemede karmaşıktır.
4. SEED Şifreleme Algoritmasının Kabulü
SEED, Kore'de elektronik ticaret ve finansal hizmetler vb. gibi gizli hizmetler için
yaygın olarak kullanılmaktadır. SEED, Kore'nin bir endüstriyel dernek standardıdır
(TTAS.KO-12.0004, 1999).
Eylül 2003 itibariyle, C'deki kaynak kodu, akademisyenler ve araştırma enstitüleri
dahil olmak üzere 600 işletmeye KISA tarafından e-posta yoluyla dağıtılmıştır.
Ayrıca, işletme sayısında BULL-Korea, RSA Security, IBM-Korea, Entrust-Korea vb.
Gibi birkaç uluslararası şirket bulunmaktadır.
Kore Bankası'nın himayesi altında, on bir banka ve bir kredi kartı şirketi, 2000 yılının
temmuz ayından bu yana Seul'de yaklaşık 600 franchise için K-cash pilot hizmeti
başlatılmıştır. SEED, bu hizmette kullanıcıların gizliliğini ve işlem verilerini korumak
için kullanılmıştır.
5. SEED Şifreleme Algoritması Gösterimleri
& bitwise AND
^ bitwise exclusive OR
+ addition in modular 2**32
- subtraction in modular 2**32
|| concatenation
<< n left circular rotation by n bits
>> n right circular rotation by n bits
0x hexadecimal representation
6. SEED Şifreleme Algoritmasının Yapısı
128 bitlik bir giriş, iki 64 bitlik bloğa bölünür ve
sağdaki 64 bitlik blok, anahtar programından
üretilen 64 bitlik alt anahtarlı tur işlev F'ye bir
girdidir. SEED algoritmasının yapısı Şekil 1'de
gösterilmektedir.
Şekil 1. SEED yapısı.
7. F Fonksiyonu
F fonksiyonunun 64 bitlik giriş bloğu, iki adet 32
bitlik bloğa (C, D) bölünür ve 4 fazla sarılır.
4 fazla sarılmış: iki 32 bitlik alt anahtar bloğunun
(Ki0, Ki1) bir karıştırma aşaması ve iki 32 bit
bloğu karıştırmak için eklemelerle birlikte 3 işlev
G katmanıdır.
C, sağdaki 32 bittir ve D, soldaki 32 bittir.
Şekil 2. Fonksiyonu.
8. G Fonksiyonu
G fonksiyonunun 2 adet 8x8 S-box katmanı ve 16 adet 8-bitlik alt bloktan oluşan iki
katmanlı bir blok permütasyonu vardır.
İki adet S-box’ın ilk katmanı Boolean fonksiyonları 𝑥247
ve 𝑥251
‘den oluşturulur.
İkinci katman, her S-box’daki bir dizi permütasyondur.
Dört adet 8-bit girişli 𝑋0, 𝑋1, 𝑋2, 𝑋3 ile G fonksiyonunun 𝑍0, 𝑍1, 𝑍2, 𝑍3 çıkışları
aşağıdaki gibidir
𝑍0 = 𝑆1 𝑋0 & 𝑚0 ⊕ 𝑆2 𝑋1 & 𝑚1 ⊕ 𝑆1 𝑋2 & 𝑚2 ⊕ 𝑆2 𝑋3 & 𝑚3
𝑍1 = 𝑆1 𝑋0 & 𝑚1 ⊕ 𝑆2 𝑋1 & 𝑚2 ⊕ 𝑆1 𝑋2 & 𝑚3 ⊕ 𝑆2 𝑋3 & 𝑚0
𝑍2 = 𝑆1 𝑋0 & 𝑚2 ⊕ 𝑆2 𝑋1 & 𝑚3 ⊕ 𝑆1 𝑋2 & 𝑚0 ⊕ 𝑆2 𝑋3 & 𝑚1
𝑍3 = 𝑆1 𝑋0 & 𝑚3 ⊕ 𝑆2 𝑋1 & 𝑚0 ⊕ 𝑆1 𝑋2 & 𝑚1 ⊕ 𝑆2 𝑋3 & 𝑚2
𝑤ℎ𝑒𝑟𝑒, 𝑚0 = 0𝑥𝑓𝑐, 𝑚1 = 0𝑥𝑓3, 𝑚2 = 0𝑥𝑐𝑓 𝑎𝑛𝑑 𝑚3 = 0𝑥3𝑓.
9. G Fonksiyonu
G fonksiyonunun yapısı Şekil 3'te gösterilmektedir.
Şekil 3. G Fonksiyonu
10. S-box Dizaynı
İki S-box S1, S2, G'nin parçasıdır ve aşağıdaki gibi tanımlanır:
𝑆𝑖: 𝑍28 → 𝑍28, 𝑆𝑖(𝑥) = 𝐴(𝑖) • 𝑥𝑛𝑖 ⊕ 𝑏𝑖
𝑤ℎ𝑒𝑟𝑒, 𝑛1 = 247, 𝑛2 = 251, 𝑏1 = 169, 𝑏2 = 56
11. S-box Dizaynı
𝐴 𝑖
• 𝑥𝑛𝑖 ⊕ 𝑏𝑖, 𝑥𝑛𝑖 ‘in bir affine dönüşümü olduğuna dikkat edilir. 𝑍28 ‘deki
herhangi bir x için x = (𝑋7, ....., 𝑋0) (yani, x = 𝑥727
+ 𝑥626
+ 𝑥12 + 𝑥0). şeklinde ikili
vektör olarak ifade edilebilir. X’i Z'de temsil etmek için p (x) = x8 + x6 + x5 + x + 1
ilkel polinomunu kullanılır.
13. Anahtar Program
Anahtar program, her turun alt anahtarlarını oluşturur. G, toplama, çıkarma ve (sol / sağ) dairesel
dönüş işlevini kullanır.
128 bitlik bir giriş anahtarı, dört 32 bitlik bloğa (A, B, C, D) bölünmüştür.
1. turun iki 32 bitlik alt anahtarı olan K1,0 ve K1,1 aşağıdaki şekilde oluşturulur:
K1,0 = G(A + C – KC0) , K1,1 = G(B – D + KC0).
2. turun 32 bitlik iki alt anahtarı olan K2,0 ve K2,1 aşağıdaki gibi ilk 64 bitin (A||B) 8 bit sağa dönüşüyle
giriş anahtarından oluşturulur:
A||B ← (A||B)>>8.
K2,0= G(A + C – KC1) , K2,1 = G(B + KC1 – D).
3. turun iki alt anahtarı olan K3,0 ve K3,1 son 64 bitin (C||D) 8 bitlik sola dönüşünden aşağıdaki
şekilde oluşturulur:
C||D ← (C||D) <<8.
K3,0 = G(A + C – KC2) , K3,1 = G(B – D + KC2).
14. Anahtar Program
Alt anahtarların geri kalanı yinelemeli olarak oluşturulur.
Anahtar program için kod aşağıdaki gibidir:
for (i=1; i<=16; i++){
Ki,0 ← G (A + C – KC𝑖−1);
Ki,1 ← G (B - D – KC𝑖−1);
if (i%2 == 1) A||B ← (A||B) >>8
else C||D ← (C||D) <<8
}
Her bir sabit KC𝑖, altın oran sayısının bir kısmından üretilir
5−1
2
15. Anahtar Program
Onaltılık formdaki sabitler tablosu aşağıdaki gibidir.
Onaltılık formdaki sabitler (KCi)
i Değer İ Değer
0 0x9e3779b9 8 0x3779b99e
1 0x3c6ef373 9 0x6ef3733c
2 0x78dde6e6 10 0xdde6e678
3 0xf1bbcdcc 11 0xbbcdccf1
4 0xe3779b99 12 0x779b99e3
5 0xc6ef3733 13 0xef3733c6
6 0x8dde6e67 14 0xde6e678d
7 0x1bbcdccf 15 0xbcdccf1b
17. SEED Şifreleme Algoritmasının OID Yapısı
Seed şifreleme algoritmasının OID yapısı Şekil 5. de gösterilmiştir.
Şekil 5. OID Yapısı
18. SEED Şifreleme Algoritmasının Nesne
Tanımlayıcı Özellikleri
Seed şifreleme algoritmasının nesne tanımlayıcı özellikleri Şekil 6. da gösterilmiştir.
Şekil 6. Nesne Tanımlayıcı özellikler
19. Şifre Çözme Prosedürü
Şifre çözme prosedürü, şifreleme prosedürünün ters adımıdır. Tur alt
anahtarların ters sırasına göre şifreleme algoritması kullanılarak
uygulanabilir.
20. Diferansiyel Kripto Analiz
Diferansiyel kripto analizde, S-kutusuna girişler farklıysa, aktif bir S-kutusundan söz
edilir.
Birkaç S-kutusundan oluşan bir fonksiyonun dal numarası, herhangi bir girişteki ve
belirli fonksiyon için karşılık gelen çıkışlardaki en az sayıda aktif S-kutusu olarak
tanımlanır.
SEED algoritmasının G fonksiyonunun şube numarası dörttür. Bu göstermesi kolay
bir alıştırmadır.
G'ye girişler bir aktif S-kutusuna sahiptir, çıkışlarda dört aktif S-kutusuna sahiptir.
Toplamda beş aktif S-kutusu bulunur. G'ye girişler iki aktif S-kutusuna sahipse, o
zaman çıkışlarda en az iki aktif S-kutusu, giriş ve çıkışlarda toplam en az dört aktif
S-kutusu bulunur, bu da kullanılan maskelerin bir etkisi olan m0, m1, m2, m3’dür.
21. Diferansiyel Kripto Analiz
G'ye girişler üç aktif S-kutusuna sahipse, o zaman çıkışlar en az bir aktif S-kutusuna,
toplamda en az dört aktif S-kutusuna sahip olur, bu da G'nin bir önyargılı
haritalama olmasından kaynaklanır. Yani şube numarası dörttür.
Daha sonra, ön bilimsel G işlevinin üç uygulamasına sahip olan F işlevi ele alınmıştır.
Bunu daha yakından inceleyerek F'deki etkin G işlevlerinin sayısının en az iki olduğu
izlenmiştir.
F fonksiyonunun herhangi bir farklı giriş çifti için, üç G fonksiyonunun en az ikisine
farklı girişler olacaktır.
22. Diferansiyel Kripto Analiz
Modüler eklemelerin dışlayıcılarla değiştirildiği basitleştirilmiş bir SEED versiyonu
incelenmiştir. F ile F'nin sonuçta ortaya çıkan değiştirilmiş fonksiyonu gösterilmiştir.
G fonksiyonunun şube numarasından, F fonksiyonu için toplam aktif S-kutularının
sayısının her zaman en az dört olduğu anlaşılmaktadır.
F fonksiyonu, SEED algoritmasın için bir r-tur karakteristiği için önyargılı
olduğundan, en az 𝑟/3 .2 F fonksiyonları için farklı girişler olacaktır.
SEED algoritmasının 16 turu vardır ve önceki deneyimler, başarılı bir diferansiyel
saldırıda birinin ihtiyaç duyduğunu göstermektedir.
23. Diferansiyel Kripto Analiz
En az 13 turda bir özellik belirleyebilmek ancak SEED algoritmasında 15 tura kadar
mümkündür. Bu, turların en az sekizinde F'nin girişlerinin farklı olduğu anlamına
gelir.
Sonuç olarak, başarılı bir diferansiyel saldırıda ilgili özelliklerin 32 aktif S-box'a yol
açacağı tahmin edilmektedir.
24. Doğrusal Kripto Analiz
Diferansiyel kripto analizde, dikkate alınan doğrusal özelliklerde aktif S-kutuları
hakkında konuşulur.
Belirli bir S-kutusunun girişi veya çıkışı olarak doğrusal yaklaşımlarda bir veya daha
fazla bit kullanılırsa, bir S-kutusu aktif olarak adlandırılır.
F fonksiyonu için doğrusal bir yaklaşım içinde belirtildiği gibi, üç G fonksiyonundan
en az ikisinin giriş ve çıkışlarındaki bitleri içermelidir.
25. Doğrusal Kripto Analiz
Sadece bir aktif S-box ile bir G-fonksiyonu boyunca doğrusal yaklaşımlar
oluşturmak mümkündür.
G'nin üç çıkış baytı toplamının bir S-kutusundan çıkan baytlardan birinin iki bitini
verdiği gösterilmiştir.
F işlevi için ve etkin G işlevi başına yalnızca bir etkin S-kutusu ile yaklaştırmalar
kullanarak çeşitli SEED turları için iyi doğrusal yaklaşımlar oluşturmak çok zor olduğu
görünmektedir.
Bu noktada, diferansiyel analizdekilere benzer argümanlar kullanarak SEED
algoritmasının r turları için en iyi doğrusal kestirimlere bir üst sınır vermek
mümkündür.
26. Doğrusal Kripto Analiz
Öncelikle modüler eklemelerin özel işlemlerle değiştirildiği bir SEED versiyonunu ele
alınmıştır.
R turları boyunca doğrusal bir yaklaşım, girişleri en az 𝑟/3 .2 F fonksiyonlarına
içermektedir.
Diferansiyel kripto analizde olduğu gibi, 16 turlu bir Feistel şifresi için başarılı bir doğrusal
saldırganın en az 13 turda bir özellik belirleyebilmesi gerektiğini göstermektedir.
Bu, turların en az sekizinde F'nin girdilerinin dahil olduğu anlamına gelir. Bu turların her
birinde, en az dört aktif S-box olacağını tahmin etmek güvenlidir.
Bu tahminler, modüler eklemelerin etkisi dahil edilmeden basitleştirilmiş bir SEED
versiyonu üzerinde yapılmıştır. İşlemlerin karışık veya özel kullanımı ve modüler
eklemeler muhtemelen doğrusal bir saldırıyı daha da karmaşıklaştıracaktır.
27. Doğrusal Kripto Analiz
Operasyonların bu karışık kullanımının, farklı bir saldırıda potansiyel olarak bir
saldırıya yardımcı olabileceği durumlarda, doğrusal bir saldırıda, saldırgan için işleri
daha da zorlaştıracaktır.
Modüler eklemeler, ilgili özelliklerin olasılıklarını düşürecek taşıma bitleri
sunmaktadır.
SEED şifreleme algoritmasının doğrusal bir saldırıya açık olma ihtimalinin çok düşük
olduğu sonucuna varmanın güvenli olduğuna inanılmaktadır.
28. Diğer Kripto Analizler
Tüm blok şifrelere önemsiz saldırılar yapılmaktadır. SEED algoritmasının gizli
anahtarı için kapsamlı bir arama, yalnızca birkaç bilinen düz metin ve bunlara
karşılık gelen şifreli metinler kullanılarak 2128 civarında yapılabilir.
Ayrıca, "eşleşen şifreli metin saldırısı" Elektronik Kod Kitabı ve Şifreleme Bloğu
Zincirleme modlarında geçerlidir. İyi bir olasılıkla başarılı olmak için yaklaşık
264
şifreli metin bloğu gerektirir. Bu da saldırganın düz metin blokları hakkındaki
bilgileri çıkarmasını sağlar.
Daha yüksek diferansiyel saldırıları, düşük cebirsel derecenin doğrusal olmayan
bileşenlerini kullanan şifreler için geçerlidir. SEED algoritmasının S-kutularının
cebirsel derecesi yedidir.
29. Diğer Kripto Analizler
Bu 8 bitlik bir S-kutusu için maksimum derecedir. Bir turun her F işlevinde üç
katman S-kutusu ve toplam 16 tur vardır.
Bu nedenle, dördüncü derece farklara dayalı bir saldırı 2 metinden oluşan bir
koleksiyon gerektirdiğinden, şifreli metinlerin bir fonksiyonu olarak şifreli metinlerin
cebirsel derecesinin, mümkünse, daha yüksek dereceli bir diferansiyel saldırının
pratik olmasını engelleyecek kadar yüksek olması çok olasıdır.
İntegral saldırılar yalnızca birkaç SEED turu için geçerlidir.
SEED şifreleme algoritmasının altı tura kadar azaltılmış sürümlerinin bu saldırılara
karşı savunmasız olduğu, ancak altı turdan fazla sürümlerin olmadığı
varsayılmaktadır.
30. Diğer Kripto Analizler
Enterpolasyon saldırılar, yalnızca basit matematiksel işlevleri kullanan şifrelere
uygulanır.
SEED şifreleme algoritmasındaki S kutuları, basit bir açıklamaya sahip olan sonlu bir
alandaki ters fonksiyondan oluşturulmuştur.
Bununla birlikte hem girdilerin hem de çıktıların affine fonksiyonu eşlemelerle
karıştırılması, açıklamayı çok daha karmaşık hale getirir.
Dışlayıcı veya modüler eklemelerin karışık kullanımıyla birlikte, enterpolasyon
saldırılarının uygulanma ihtimalini çok düşük hale getirir.
31. Eşleşen Şifreli Metin Saldırısı
Eşleşen şifreli metin saldırısı, 2𝑚/2
bloğun şifrelenmesinden sonra DES için işlem
modlarında kullanılan mbitlerin blok şifreleri için eşit şifreli metin bloklarının
beklenebilmesi ve düz metinler hakkında bilgilerin sızdırılması gerçeğine
dayanmaktadır.
32. Mod N Kripto Analiz
Bu saldırı, bazı kelimelerin (bazı ara şifreli metinlerde) önyargılı modülün n olduğu
şifrelere uygulanabilir, burada n tipik olarak küçük bir tamsayıdır. Modül 232
yalnızca bitsel döndürmeler ve eklemeler kullanan şifrelerin bu tür saldırılara karşı
savunmasız olduğu gösterilmiştir.
33. İlişkili Anahtar Saldırısı
Saldırganın ne kadar güçlü olduğunun varsayıldığına bağlı olarak bu saldırının birkaç
çeşidi vardır.
• Saldırgan tek bir anahtar altında şifreleme alır.
• Saldırgan çeşitli anahtarlar altında şifreleme alır.
Knudsen, 1'in yöntemlerini, LOKI'91 üzerinde birinci türden seçilmiş bir düz metin
saldırısı vererek, kapsamlı bir anahtar aramayı neredeyse dört kat azaltarak
kullanmıştır.
“İlişkili anahtar saldırısı” kavramı, birkaç anahtarın altındaki şifrelemelerin talep
edildiği saldırı senaryolarını da tanıtan Biham tarafından tanıtılmıştır.
34. İlişkili anahtar saldırısı
Knudsen daha sonra SAFER K, Kelsey, Schneier ve Wagner'e yönelik ilgili bir anahtar
saldırıyı tanılamış ve ilgili anahtar saldırıları çok çeşitli blok şifrelere uygulamıştır.
Anahtarlar arasında seçilen bir ilişkiye sahip saldırıların gerçekçi olmadığı
tartışılabilir.
Saldırganın, bazı saldırılarda seçilen düz metinlerle bile birkaç anahtarın altında
şifreleme alması gerekir. Ancak, bir saldırganın bu tür şifrelemeleri almayı
başarabileceği gerçekçi ayarlar vardır. Ayrıca, ilgili anahtar saldırıları önlemek için
oldukça verimli yöntemler vardır.
35. İntegral Saldırılar
Bu saldırılar, ilk olarak blok şifreleme Meydanı'na uygulandığı için bazen “Kare
saldırısı” olarak anılır.
Biraz değiştirilen saldırı, Crypton ve Rijndael blok şifreleri için de geçerlidir. Bu
saldırılar "integral kripto analiz" adı altında genelleştirilmiştir.
Farklı saldırılarda metinlerin farklılıkları göz önünde bulundurulur, integral kripto
analizde metinlerin toplamı dikkate alınır. Doğrusal olmayan tüm işlevlerin önyargılı
olduğu şifrelerde, farklı saldırıların uygulanamadığı durumlarda bile bazen bir metin
toplamını tahmin etmek mümkündür.
36. İntegral Saldırılar
Ana gözlemler, belirli bir kelimede tüm değerleri tam ve eşit olarak birçok kez alan
bir metin koleksiyonunda, bir önyargı işlevinden sonraki kelimelerin değerinin de
tüm değerleri tam ve eşit olarak birçok kez almasıdır.
Ayrıca, kelimelerin bu özelliğe sahip olduğunu ve şifrede s kelimelerinin doğrusal bir
kombinasyonunun hesaplandığını (dikkate alınan grup işlemine göre) varsayılmıştır.
Bir metin koleksiyonundaki tüm doğrusal kombinasyonların toplamını da belirlemek
mümkündür. Bu saldırı, Gelişmiş Şifreleme Standardı için seçilen Rijndael'de rapor
edilen en iyi saldırıdır.
37. Güvenlik Değerlendirmesi
SEED Cipher üzerinde herhangi bir güvenlik sorunu bulunamamaktır.
SEED, Diferansiyel kripto analiz, Doğrusal kripto analiz ve ilgili anahtar saldırılar
dahil olmak üzere bilinen tüm saldırılara karşı güvenlidir.
En iyi bilinen saldırı, yalnızca anahtarın kapsamlı bir şekilde aranmasıdır.
38. Donanım Performansı
8bit işlemcide performans
SEED, 8bit işlemci çipinde aşağıdaki gibi uygulanır:
- Model: ST19RF08 (ST Microelectronics),
- MCU: 8 bit ST processor @ 3.5MHz,
- RAM: 960 bytes, and
- ROM: 32 kbytes
39. Donanım Performansı
Bu uygulamada, bellek verimliliği için SEED algoritmasında belirtilen s-box
tablosunun boyutunu 2 kilobayttan 576 bayta değiştirilmiştir.
SEED algoritmasının 576 baytlık s-box tablo boyutu dahil 1.773 bayt olarak
kodlanmıştır.
SEED algoritmasının aşağıdaki gibi sırasıyla tur anahtar üretimi ve 16 turluk veri tur
işlevi için 10,560 saat ve 13,168 saat gerektirdiği gösterilmiştir.
Bu tabloda, "şifreleme (veya şifresini çözme)", 128 bitlik bir anahtarla tek bir 128
bitlik bloğu şifrelemek (veya şifresini çözmek) için gereken kaynaklardır.
"Zamanlama", 128 bitlik bir anahtar programlamak için gereken kaynaklardır
40. Donanım Performansı
Şifre
RAM(bytes) ROM(bytes) Zaman (saat)
planlanmış
anahtar
şifreleme program şifreleme şifreleme +
program
program şifreleme
SEED 16 32 26 1,240 1,773 13,168 10,560
Rijndael-e * 16 34 0 876 879 9,464 0
Rijndael-d* 16 37 1 976 1,049 13,538 2,278
Tablo 4.Algoritmaların bellek gereksinimleri ve yürütme süresi
Not: Rijndael-e (veya –d) içindeki şifreleme (veya şifre çözme) işlemi Rijndael-e (veya –d)
olarak listelenmiştir.
41. Hata Varsayımları, Hata Analizi ve Saldırı
Prosedürü
Şekil 7’de gösterildiği gibi, G fonksiyonu F
fonksiyonunda üç kez yinelenir.
Genel olarak, bu yapının donanım
platformlarında tasarımı, hepsi bir arada
F'nin uygulanmasından ziyade G işlevinin
üç kez yinelenmesidir.
Bu nedenle, hataların G fonksiyonunun
giriş kayıtlarına etki etmesi muhtemeldir. Şekil 7. (a) F işlevi ve (b) G işlevi.
42. Hata varsayımları
Önerilen hata modeli aşağıdaki varsayımları içermektedir.
Saldırganın, şifrelemek için bir düz metin seçme ve ilgili doğru / hatalı şifreli
metinleri alma yeteneği vardır.
Saldırgan, hedef turdaki son G işlevinin giriş kayıtlarına 1 bitlik rastgele hatalar
verebilir.
Arızaların yeri ve değeri bilinmemektedir.
43. Hata Varsayımları
SEED-128 üzerindeki ana saldırı prosedürü aşağıdaki gibidir. SEED-192 / 256'ya
yapılan saldırılar, SEED-128'e benzer. 128 bitlik düz metin P verildiğinde, 128 bitlik
doğru / hatalı şifreli metinleri aşağıdaki gibi gösterilmiştir.
𝐶𝐿 = (𝐶𝐿,0, 𝐶𝐿,1) 𝑎𝑛𝑑 𝐶𝑅 = (𝐶𝑅,0, 𝐶𝑅,1)
(𝑃, 𝐶) : doğru bir düz metin / şifreli metin çifti 𝐶 = 𝐶𝐿, 𝐶𝑅 .
(𝑃, 𝐶𝑖
) : hatalı bir düz metin / i’nin hatası için şifreli metin çifti (𝐶𝑖
= (𝐶𝐿
𝑖
, 𝐶𝑅
𝑖
)).
İlk olarak, son turda üçüncü G fonksiyonunun girişine 1 bitlik rasgele hatalar
ekleyerek, ikinci G fonksiyonunun 𝑋16,0 çıkış değerini ve üçüncü G fonksiyonunun
𝑋16,1 giriş değerini elde edilmiştir.
İkinci olarak, 15. turda yukarıdaki prosedürü tekrarlayarak 𝑋15,0 ve 𝑋15,1 elde
edilmiştir. Sonrasın da, ( 𝑋15,0 , 𝑋15,1 ) ve ( 𝑋16,0 , 𝑋16,1 ) kullanılarak ( 𝑅𝐾15 , 𝑅𝐾16 )
hesaplanmıştır. Son olarak ( 𝑅𝐾15 , 𝑅𝐾16 ) kullanarak gizli anahtar kurtarılmıştır.
44. Hata Analizi
SEED-128'de Diferansiyel hata analizinin iki versiyonu vardır:
Temel saldırı
İyileştirilmiş saldırı
Temel saldırıda, belirli kayıtların tam ara değeri elde edilmiştir. Ancak bu saldırıda
birçok hata bulunmaktadır. Bu sorun, geliştirilmiş saldırıda üç teknik kullanarak
çözülmüştür. SEED-192/256 bit durumunda, geliştirilmiş saldırının üçüncü tekniği
uygulanamamaktadır.
Nedeni aşağıdaki gibi açıklanmıştır.
SEED-192 / 256'da Diferansiyel hata analizi önerilmiştir. Bu saldırılarda, 1 bitlik rastgele
hatalar, sırasıyla son üç turda ve son dört turda SEED-128'e yapılan saldırı ile aynı
konuma enjekte edilir.
45. Saldırı Prosedürü
SEED 192bit üzerindeki saldırı prosedürü aşağıdaki şekilde özetlenmiştir. SEED-256’daki
saldırı prosedürü SEED-192'dekine benzemektedir.
[Doğru şifreli metnin toplanması] Bir düz metin 𝑃 seçilir ve karşılık gelen sağ şifreli metin 𝐶 =
𝐶𝐿, 𝐶𝑅 elde edilir.
[Hatalı şifreli metnin toplanması] Son turda üçüncü G fonksiyonunun girişine i’nin 1-bit
rasgele hata ∆𝑖
eklendikten sonra, karşılık gelen hatalı şifreli metin elde edilir. 𝐶𝑖
=
𝐶𝐿
𝑖
, 𝐶𝑅
𝑖
𝑖 = 1, … , 𝑛 .
[𝑅𝐾20 adaylarının hesaplanması] SEED-128'de 𝑅𝐾16 adaylarını elde etmek için aynı yöntemi
kullanarak 𝑅𝐾20 adaylarını hesaplanır.
46. Saldırı Prosedürü
[Hatalı şifreli metnin toplanması] 18. ve 19. turda üçüncü G fonksiyonunun giriş
yazmacına i-nin 1-bitlik rasgele hata ∆𝑖
ekledikten sonra, karşılık gelen hatalı şifreli metni
elde edilir.
[(𝑹𝑲𝟏𝟖 𝑹𝑲𝟏𝟗 𝑹𝑲𝟐𝟎 ) adaylarının hesaplanması] Her bir 𝑅𝐾20 adayı için, 19 turun çıktı
değeri hesaplanır ve ardından (𝑅𝐾18 𝑅𝐾19 𝑅𝐾20 ) adaylarını elde etmek için SEED-128 ile
aynı yöntemi kullanılır (𝑅𝐾15 𝑅𝐾16 ).
[192-bitlik bir gizli anahtarın kurtarılması] Her bir (𝑅𝐾18 𝑅𝐾19 𝑅𝐾20 ) adayı için, SEED-
128'de K adaylarını elde etmek için kullanılana benzer bir teknik kullanarak 192-bit gizli
anahtar adayları hesaplanır. Daha sonra bir deneme şifreleme kullanarak 192 bitlik bir
gizli anahtarı kurtarılır.
47. Sonuç
SEED üzerindeki hata analizleri incelenmiştir. SEED şifreleme algoritmasının
herhangi bir güvenlik sorunu bulunmadığı görülmüştür.
SEED şifreleme algoritması; diferansiyel kripto analiz, doğrusal kripto analiz ve ilgili
anahtar saldırılar dahil olmak üzere bilinen tüm saldırılara karşı güvenlidir.
En iyi bilinen saldırının yalnızca anahtarın kapsamlı bir şekilde aranmasıdır.
48. Kaynaklar
Jeong K, Lee Y, Sungb J, Honga S (2010-2011) Differential fault analysis on block cipher SEED
Analysis of SEED - March 24, 2003
https://tools.ietf.org/html/rfc4269
https://seed.kisa.or.kr/
SEED 128 Algorithm Specification-Kore Internet & Security Agent-
https://seed.kisa.or.kr/kisa/algorithm/EgovSeedInfo.do
SEED 128 Algorithm Self Evaluation-Kore Internet & Security Agent-
https://seed.kisa.or.kr/kisa/algorithm/EgovSeedInfo.do
L.R. Knudsen. Truncated and higher order differentials. In B. Preneel, editor, Fast
Software Encryption - Second International Workshop, Leuven, Belgium, LNCS 1008,
pages 196–211. Springer Verlag, 1995.
U.M. Maurer. New approaches to the design of self-synchronizing stream ciphers. In
D.W. Davies, editor, Advances in Cryptology - EUROCRYPT’91, LNCS 547, pages 458–
471. Springer Verlag, 1991.