• Sonuç bulunamadı

Modern şifreleme yöntemlerinin gücünün incelenmesi

N/A
N/A
Protected

Academic year: 2021

Share "Modern şifreleme yöntemlerinin gücünün incelenmesi"

Copied!
203
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

Doktora Tezi

Trakya Üniversitesi Fen Bilimleri Enstitüsü Bilgisayar Mühendisliği Bölümü

ÖZET

Bu tez, simetrik kriptografinin en önemli iki yapısı olan blok ve akış şifreleri ile ilgilidir. Blok ve akış şifrelerinin en önemli yapıları Boolean fonksiyonları ve vektöryel Boolean fonksiyonlarıdır (S kutuları). Diğer yandan blok şifrelerin ve akış şifrelerin güç tayininde bu şifre tiplerine karşı yapılan saldırlar da önemli rol oynarlar. Bu tezde modern şifreler ve bu şifrelere karşı yapılan başlıca önemli saldırı teknikleri anlatılmış ve bu şifrelerin güçlerinin bir incelemesi gerçekleştirilmiştir.

Tezin 1. bölümü olan giriş bölümünde temel şifreleme yapıları olan blok ve akış şifreler ve bu şifrelere karşı yapılan kriptanaliz saldırıları ile ilgili bazı modellerin bir tanıtımı yapılmıştır.

2. bölümde temel bazı matematiksel kavramlardan bahsedilmiş ve tezin anlatımı sırasında anlaşılırlığı açısından bazı matematiksel tanım ve teorilere yer verilmiştir.

3. Bölümde iki önemli blok şifreleme algoritması olan DES (Data Encryption Standard) ve AES (Advanced Encryption Standard) şifreleme algoritmaları incelenmiş ve bu şifrelerin güçleri, dolayısıyla güvenlikleri şu ana kadar yapılan önemli saldırılarla beraber sunulmuştur.

Tezin 4. bölümünde akış şifrelerin en önemli yapı taşı olan doğrusal geri beslemeli öteleyici saklayıcılar incelenmiştir. Buna ek olarak akış şifreler için son zamanlarda popüler olan bazı tasarım tekniklerine yer verilmiştir.

Yine tezin 5. bölümünde blok ve akış şifrelere karşı düzenlenen bazı saldırılar ayrıntılı bir şekilde incelenmiştir.

(2)

Son bölüm olan 6. bölümde SPN temelli bazı temel şifrelere yapılan bazı kriptografik saldırılar deneysel sonuçları ile beraber verilmiştir. Buna ek olarak cebirsel AES S kutularına benzer S kutuları tasarlayan bir simülatör geliştirilmiştir. Son olarak bazı S kutularında özellikle üssel fonksiyon ya da sonlu cisimde ters alma işlemi kullanılarak elde edilen S kutularında gözlenen doğrusal eşitlik kavramı için bir uygulama geliştirilmiştir. Bu uygulamada tezde geliştirilen bir S kutusu kullanılmıştır.

Anahtar Sözcükler: Simetrik Şifreleme Algoritmaları, Simetrik Şifrelerde Güç İncelemesi, AES (Advanced Encryption Algorithm), Akış Şifreler, Şifreleme Algoritmalarına Saldırılar, S Kutuları.

Yıl: 2006 Sayfa: 200

(3)

Doctorate Thesis

Trakya University Graduate School of Natural and Applied Sciences

Department of Computer Engineering

ABSTRACT

This thesis is related with block ciphers and stream ciphers which are the two important components in symmetric cryptography. In addition, the building blocks of stream ciphers and block ciphers can be seen as Boolean functions and vectorial Boolean functions respectively. On the other hand, the attacks against block ciphers and stream ciphers are very important when we evaluate the strength of these ciphers. In this thesis, modern ciphers in view of symmetric cryptography, main attacks against these ciphers and the strength of these ciphers against these attacks are examined.

First section of the thesis introduces block ciphers and stream ciphers which are the main components in symmetric cryptography. In addition, it introduces some models related with the cryptanalytic attacks against these ciphers.

In the second section of this thesis, some mathematical concepts, definitions and theorems are given to make understanding of the thesis clear.

The third section of the thesis presents some background information about DES (Data Encryption Standard) and AES (Advanced Encryption Standard) which are very important block ciphers in view of cryptography and some attacks against these ciphers together with the strength of these ciphers against these attacks up to now.

Fourth section of this thesis deals with Linear Feedback Shift Registers which are building blocks of stream ciphers and some popular design techniques in stream ciphers recently.

(4)

In the fifth section, some cryptanalytic attacks against block ciphers and stream ciphers are examined in detail.

Finally, in the sixth section, cryptanalytic attacks against basic SPN based ciphers together with the experimental results are given and a simulator designing AES S-box like S-boxes which are algebraic S-boxes is developed. Moreover, an application of affine equivalence which has caused a new criterion for S-boxes recently is given for an algebraic S-box designed by us.

Keywords: Symmetric Encryption Algorithms, Examination of strength in Symmetric Ciphers, AES (Advanced Encryption Algorithm), Stream Ciphers, Cryptanalytic Attacks against Encryption Algorithms, S-boxes.

Year: 2006 Page: 200

(5)

TEŞEKKÜR

Bu tez için gerçekleştirdiğim araştırma sırasında birçok kişi bana yardım etmiştir. Bu kişilere burada bu destekleri için teşekkür etmek isterim.

İlk olarak tez çalışmam sırasında bana yardımlarından ve katkılarından dolayı değerli hocam ve danışmanım Sayın Yrd. Doç. Dr. Ercan BULUŞ’a sonsuz teşekkürlerimi sunmak isterim.

Benim için çok değerli olan, tezin yazımında bana yardım eden ve araştırmalarım sırasında bana manevi desteğini hiçbir zaman esirgemeyen, Arş. Gör. Fatma BÜYÜKSARAÇOĞLU’na sonsuz teşekkür ederim.

Araştırmalarım sırasında bana katkılarda bulunan ve beraber çalışmalar yaptığımız Arş Gör. Andaç ŞAHİN, Arş. Gör. H. Nusret BULUŞ, Arş. Gör. Şenol ŞEN, Arş. Gör. Fatma AKGÜN, Arş. Gör. Tarık YERLİKAYA’ya ve bana sağladıkları mükemmel çalışma ortamı için tüm Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü’ne ayrıca Bilgi Üniversitesi’nden Arş. Gör. Mehmet Ali Aksoy TÜYSÜZ’e katkılarından dolayı teşekkür ederim.

Bana olan destekleri ve katkıları için Maltepe Üniversitesi Rektörü Sayın Prof. Dr. Mesut RAZBONYALI ve Ege Üniversitesi Bilgisayar Mühendisliği Öğretim Üyesi Sayın Prof. Dr. Şaban EREN’e sonsuz teşekkürlerimi sunarım.

Bu tezin izleme komitesinde yer alan ve yine bana verdikleri destek ve değerli katkılarından dolayı Yrd. Doç Dr. Aydın CARUS, Yrd. Doç. Dr. Rembiye KANDEMİR ve Yrd. Doç. Dr. Şaban AKTAŞ’a sonsuz teşekkürlerimi sunarım.

(6)

İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Öğretim Üyesi Sayın Prof. Dr. Bülent ÖRENCİK ve Elektrik Elektronik Mühendisliği Öğretim Üyesi Sayın Yrd. Doç. Dr. Sıddıka Berna ÖRS’e de bana desteklerinden dolayı sonsuz teşekkür ederim.

Türkiye’de görüştüğümüz zamanlarda tartışmalarından ve fikirlerinden ilham aldığım Romanya Piteşti Üniversitesi Öğretim Üyesi Sayın Doç. Dr. Ion TUTANESCU’ya katkılarından dolayı teşekkür ederim.

Belçika’nın Leuven şehrinde araştırma grubu COSIC (Computer Security and Industrial Cryptography)’te bulunduğum zaman içerisinde bana yardımlarını esirgemeyen ve bana destek olan Katolik Leuven Üniversitesi’nden Sayın Prof. Dr. Bart PRENEEL’e sonsuz teşekkür etmek isterim.

Ayrıca yine COSIC’te bulunduğum süre içersinde değerli tartışmalarından faydalandığım Hongjun WU, Joseph LANO, Jongsung KIM, Souradyuti PAUL, Jongsu KIM ve Özgül KÜÇÜK’e ve tüm COSIC çalışanlarına teşekkürlerimi sunarım.

Son olarak bana yardımlarını esirgemeyen ve bana sonsuz destekleri için anne ve babama teşekkür etmeyi bir borç bilirim.

(7)

ÖZET...I ABSTRACT...III TEŞEKKÜR ...V BÖLÜM 1... 1 1. GİRİŞ ... 1 1.1.KRİPTOGRAFİ... 2 1.1.1. Blok şifreler... 4 1.1.2. Akış şifreler ... 6 1.2.KRİPTANALİZ... 7 BÖLÜM 2... 11 2. TEMEL KAVRAMLAR ... 11 2.1.MATEMATİKSEL ALT YAPI... 11 2.2.BOOLEAN FONKSİYONLARI... 18

2.2.1. Cebirsel gösterim biçimi (Algebraic Normal Form - ANF)... 21

2.2.2. Doğrusal olmama (Nonlinearity)... 22

2.2.3. Cebirsel derece (Algebraic Degree) ... 24

2.2.4. Korelasyon dayanıklılığı ve esneklik (Correlation immunity and Resiliency)... 24

2.2.5. Cebirsel dayanıklılık (Algebraic Immunity)... 26

2.2.6. Bent fonksiyonları ... 27

2.3.SKUTULARI (SUBSTITUTION BOXES)... 27

2.3.1. Bütünlük (Completeness) kriteri ... 28

2.3.2. Çığ (Avalanche) kriteri ... 30

2.3.3. Katı çığ kriteri (Strict Avalanche Criterion)... 31

2.3.4. Bit bağımsızlık kriteri (Bit Independence Criterion) ... 32

2.3.5. S kutuları için özelliklerin harmanlanması... 33

2.3.6. MOSAC ve MOBIC özellikleri ... 35

2.3.7. Doğrusal olmama kriteri... 36

2.3.8. S kutularının doğrusal yaklaşım tablosu... 37

2.3.9. S kutularının XOR tablosu (Fark Dağılım Tablosu)... 41

2.3.10. S kutularında doğrusal eşitlik ... 43

BÖLÜM 3... 45

3. BLOK ŞİFRELER ... 45

3.1.DES(DATA ENCRYPTION STANDARD)... 45

3.1.1. DES’in tanımı... 46

3.2.AES(ADVANCED ENCRYPTION STANDARD)... 49

3.2.1. SubBytes dönüşümü (byte’ların yerdeğiştirmesi)... 52

(8)

3.2.3. MixColumns dönüşümü (sütunların yerdeğiştirmesi) ... 55

3.2.4. AddRoundKey dönüşümü (döngüye anahtar ekleme dönüşümü)... 58

3.2.5. Deşifreleme işlemi... 58

3.2.5.1. Ters ShiftRows (satırları öteleme) dönüşümü ... 58

3.2.5.2. Ters SubBytes (byte’ları yerdeğiştirme) dönüşümü ... 59

3.2.5.3. Ters MixColumns (sütunları karıştırma) dönüşümü ... 61

3.3.DES VE AES’İN GÜVENLİĞİ... 63

3.3.1. DES’in güvenliği ... 64

3.3.2. AES’in güvenliği... 65

BÖLÜM 4... 74

4. AKIŞ ŞİFRELER... 74

4.1.DOĞRUSAL GERİ BESLEMELİ ÖTELEYİCİ SAKLAYICILAR (LINEAR FEEDBACK SHIFT REGISTERS)... 77

4.2.DOĞRUSAL OLMAYAN BİLEŞİM ÜRETEÇLERİ (NONLINEAR COMBINATION GENERATORS)... 86

4.3.DOĞRUSAL OLMAYAN FILTRE ÜRETEÇLERI (NONLINEAR FILTER GENERATORS)... 88

4.4.SAAT KONTROLLÜ ÜRETEÇLER (CLOCK-CONTROLLED GENERATORS)... 89

4.5.AKIŞ ŞİFRELER İÇİN DİĞER TASARIM MEKANİZMALARI... 91

BÖLÜM 5... 95

5. İNCELENEN KRİPTANALİZ YÖNTEMLERİ... 95

5.1.DOĞRUSAL KRİPTANALİZ... 95

5.2.DİFERANSİYEL KRİPTANALİZ... 98

5.3.İMKANSIZ DİFERANSİYEL KRİPTANALİZ... 100

5.4.ÇOKLUSET SALDIRILARI (MULTISET ATTACKS)-SQUARE ATTACK... 102

5.5.DOĞRUSAL OLMAYAN BİRLEŞTİRİCİ VE FİLTRE ÜRETEÇLERİNE BİLİNEN SALDIRILAR ... 103

5.5.1. Akış şifrelere korelasyon ve hızlı korelasyon saldırıları... 104

5.5.2. Akış şifrelere cebirsel saldırılar... 112

5.5.3. Hızlı cebirsel saldırılar ... 117

BÖLÜM 6... 124

YAPILAN ÇALIŞMALAR... 124

6.1.İKİ DÖNGÜLÜ BİR BLOK ŞİFRELEME ALGORİTMASININ DOĞRUSAL KRİPTANALİZ UYGULAMASI... 124

6.1.1. Kullanılan SPN algoritması ... 125

6.1.2. İki döngülük SPN algoritmasına doğrusal kriptanaliz saldırısı ... 130

6.2.ÜÇ DÖNGÜLÜK BİR SPNALGORİTMASI İÇİN DİFERANSİYEL KRİPTANALİZ SALDIRISI ... 134

6.2.1. Üç döngülük SPN’e diferansiyel kriptanaliz saldırısı... 137

6.3.DÖRT DÖNGÜLÜK BİR SPNALGORİTMASINA SQUARE SALDIRISI... 142

6.3.1. Bir SPN şifresine square saldırısı... 144

(9)

6.4.AESSKUTULARINA BENZER SKUTULARI TASARLAYAN SİMÜLATÖR... 152

6.4.1. S kutusu tasarımı... 153

6.4.2. Sonlu cisimde ters alma işlemi... 154

6.4.3. 4 bit girişli 4 bit çıkışlı S kutuları tasarımına örnek ... 156

6.4.3.1. GF(24) toplama... 157

6.4.3.2. GF(24) çarpma... 158

6.4.3.3. GF(24) ters alma işlemi ... 158

6.4.3.4. S kutularının tasarımı ... 160

6.4.4. Tasarlanan simülatör... 161

6.4.5. Simülatör aracılığıyla elde edilen sonuçlar... 166

6.5.4BİT GİRİŞLİ 4 BİT ÇIKIŞLI BİR SKUTUSU İÇİN DOĞRUSAL ARTIK (LINEAR REDUNDANCY)ÖZELLİĞİNİN GÖZLENMESİ... 168

6.5.1. Cebirsel hazırlık... 169

SONUÇLAR ... 174

TEZ SIRASINDA YAPILAN ÇALIŞMALAR ... 177

ULUSAL HAKEMLİ DERGİ MAKALELERİ: ... 177

ULUSLARARASI KONGRE VE SEMPOZYUM BİLDİRİLERİ: ... 177

ULUSAL KONGRE VE SEMPOZYUM BILDIRILERI : ... 178

KISALTMALAR ... 180

KAYNAKLAR ... 181

(10)

BÖLÜM 1

1. GİRİŞ

Günümüzde kriptoloji gittikçe artan bir şekilde daha fazla insanın dikkatini çekmektedir. Geçmişte Sezar zamanında kullanılan Sezar şifresi ile başlayan kriptoloji çalışmaları daha sonraki zamanlarda askeri güvenlik amacıyla kullanılmıştır. Çağdaş olarak akademik camiada kriptoloji çalışmalarının ivmelenmesi DES (Data Encryption Standard) [1] algoritmasının 1977 yılında IBM ve NSA tarafından öne sürülmesiyle başlamıştır diyebiliriz.

Kriptografi, yeni şifreleme algoritmaları ve onların uygulamaları ile ilgilenirken kriptanaliz bu algoritmalara karşı saldırı teknikleri ile ilgilidir. Tabi ki şifreleme algoritması

tasarlayan kişilerle kriptanalistler arasında gidip gelen hoş bir çatışmanın olduğu söylenebilir [2]. Dolayısıyla şifreleme algoritmalarının gücü de bu saldırı tekniklerinin başarımı ve yeni tasarlanacak şifreleme algoritmalarında saldırılara önlem olarak ne yapılacağı ile ilgilidir. Şifreleme algoritmaları tasarlarken gerekli ölçütler, şifreye yapılan saldırılara dolayısıyla bunların başarımı ve buna ek olarak şifrenin çıkışının istatistiksel olarak göstereceği rastlantısallığın başarımı ile ilişkilidir.

(11)

1.1. Kriptografi

Kriptoloji (kriptografi ve kriptanalizi içine alan terimi ifade eder) bilgi güvenliğinin sağlanması ile uğraşmaktadır ve sayısal verinin korunmasında ya da güvenli bir şekilde iletilmesinde kullanılan şifreleme algoritmalarının tasarımı ve bu algoritmaların güvenlikleri ile ilişkilidir. Bu açıdan bakıldığında bilgi güvenliği, günümüzde sayısal verinin güvenli bir şekilde iletilmesinde çok önemli yer tuttuğu için giderek dikkat çekmektedir. Şifreleme algoritmaları sayısal verinin anlaşılmaz hale, bir anahtar yardımıyla, dönüştürülmesi işlemini yapmaktadır. Şifreleme işlemi sonucunda meydana gelen şifreli metin saldırgan tarafından anahtar bilinmeden deşifre edilememelidir. Bu olayı bir örnek ile açarsak; Kriptografi' nin temel amacı genellikle Alice ve Bob diye isimlendirilen iki kişinin güvenli olmayan bir kanal üzerinden haberleşmesini, düşman olan Oscar’ın söylenenleri anlayamayacağı bir şekilde, imkân vermektir. Bu kanal bir telefon hattı ya da bilgisayar ağı olabilir. Alice’in Bob’a yolladığı bilgi açık metin olarak isimlendirilir ve herhangi bir metin, nümerik veri ya da herhangi bir şey olabilir. Alice, açık metni önceden kararlaştırılan bir anahtar kullanarak şifreler ve kanal üzerinden meydana gelen şifreli metni gönderir. Oscar, kanaldaki şifreli metni dinleyerek görebilir fakat açık metni elde edemez. Diğer yandan Bob, anahtarı bilmektedir ve şifreli metni deşifreleyebilir ve açık metni tekrar oluşturabilir [3].

Bir kriptosistem 4 ana elemandan oluşmaktadır. • P, mümkün açık metinlerin sonlu seti • C, mümkün şifreli metinlerin sonlu seti

• K, anahtar uzayı, mümkün anahtarların sonlu seti

• Her anahtar için, şifreleme kuralı e ve deşifreleme kuralı K d . CK eK :P→ ve P

C :

(12)

Bazı klasik şifreleme algoritmalarına [3] örnek olarak Öteleme şifresi (Shift cipher), Yer değiştirme şifresi (Substitution Cipher), Vigenere şifresi, Tepe şifresi (Hill Cipher) ve Permütasyon şifresi (Permutation Cipher) verilebilir. Klasik bir örnek olması açısından Vigenere şifresini simetrik anahtarlı şifreleme algoritmaları grubuna koyabiliriz. Vigenere şifresini için m pozitif bir tamsayı olsun. m

26) Z ( K C P= = = . Bir K=(k1,k2,....,km) anahtarı için şifreleme ve deşifreleme fonksiyonları (1.1) ifadesinde sırasıyla verilebilir.

) k x , ,... k x , k x ( ) x ,..., x , x ( ) x ( eK = 1 2 m = 1+ 1 2 + 2 m + m (1.1) ) k y ,..., k y , k y ( ) y ,..., y , y ( ) y ( dK = 1 2 m = 11 22 mm

Günümüzde kullanılan modern şifreleme algoritmaları üç ana kategoriye ayrılmaktadır. Bunlardan ilki simetrik şifreleme algoritmalarıdır. Blok şifreleme algoritmaları ve stream (akış) şifreler bu kategoriye girer. Bu tür algoritmalarda şifreleme ve deşifreleme işlemleri aynı anahtarı kullanır. Kullanılan anahtara gizli anahtar denir. İkinci ana kategori asimetrik şifreleme algoritmalarıdır ve şifreleme için gizli anahtarı kullanırken deşifreleme için açık anahtarı, yani herkesin erişebileceği anahtarı, kullanır. Son kategoriye ait şifreleme algoritmaları ise, hash algoritmalarıdır. Bunlar verinin sıkı bir temsilini oluşturmak için kullanılırlar ve kimlik denetiminin sağlanmasında büyük rol oynarlar. Blok şifreleme algoritmalarına DES (Data Encryption Standard) ve AES (Advanced Encryption Standard) [4], akış şifrelere RC4 [5], asimetrik şifrelere RSA (Rivest, Shamir, Adleman) [6], hash algoritmalarına ise SHA (Secure Hash Algorithm) [7] örnek olarak verilebilir.

(13)

1.1.1. Blok şifreler

Bugünün modern şifreleme teknikleri 0 ve 1' ler üzerinde yani ikili kodda şifreleme yapan algoritmalardan oluşmaktadır. Blok şifreler, sabit uzunluktaki blokları bir anahtar yardımıyla şifreleme işlemine tabi tutarlar. Yani blok şifreler n bit uzunluğundaki açık metni k bit anahtar yardımıyla n bit şifreli metne dönüştürürler. Daha önce bahsedilen Vigenere şifresi için blok genişliği anahtar uzunluğuna eşit olacak şekilde bir blok şifredir diyebiliriz. Şekil 1.1 bir blok şifrenin genel yapısını göstermektedir.

Şekil 1.1. Bir Blok Şifrenin Genel Yapısı

Simetrik şifreleme tekniklerinden blok şifreler ürün şifrelerdir ve köklerini

Shannon’un [8] ortaya koyduğu karıştırma ve yayılma tekniklerinden almıştır. Karıştırma

şifreli metin ve açık metin arasındaki ilişkiyi gizlemeyi amaçlarken, yayılma açık metindeki izlerin şifreli metinde sezilmemesini sağlamak için kullanılır. Karıştırma ve yayılma, sırasıyla yer değiştirme ve doğrusal dönüşüm işlemleri ile gerçeklenir. Blok şifrelerde yer değiştirme S kutuları ile sağlanırken yayılma byte veya bit bazında gerçekleştirilen doğrusal dönüşümler vasıtasıyla sağlanmaktadır. S kutuları ise bunun yanında doğrusal olmayan yapılardır ve doğrusal olmama (nonlinearity) bu tip şifrelerin tasarımındaki en önemli ölçütlerden biridir.

Açık Metnin n-bit Bloğu

Şifreli Metnin n-bit Bloğu Blok

Şifre Anahtar

(14)

Blok şifrelerin tasarımında Feistel ağları ve yer değiştirme-Permütasyon ağları (SPN-Substitution-Permutation Networks) olmak üzere iki ana blok şifreleme mimarisi vardır [9]. Her iki mimari ürün şifrelerinin örneklerindendir. Yani birden fazla şifreleme işleminin birleşmesi ile oluşturulurlar. Tekrarlanan şifreler yine ürün şifreleridir ve aynı şifreleme adımının tekrarlanan uygulamasını içerirler. Her şifreleme adımına da döngü denir. Bir döngü birden fazla şifreleme adımı içerebilir. Genellikle her döngüde farklı anahtar materyali kullanılır. Feistel mimarisini kullanan şifreleme algoritmalarına örnek olarak DES, SPN mimarisini kullanan şifreleme algoritmalarına örnek olarak AES verilebilir. Bu mimarilerden SPN bir döngüde tüm veriyi işlerken Feistel bir döngüde verinin yarısını işlemektedir. Bu yön SPN mimarisinin avantajı iken uygulamada Feistel mimarisinin daha avantajlı yanları vardır. Feistel mimarisine sahip bir şifre için deşifreleme işleminde sadece anahtarların ters çevrilmesi yeterli olacaktır. Şekil 1.2 sırasıyla Feistel ve SPN mimarilerini göstermektedir.

a b

Şekil 1.2. a- Feistel Mimarisi b- SPN Mimarisi

(15)

1.1.2. Akış şifreler

Daha önce bahsedilen Vigenere şifresinin [3] mesaj uzunluğu anahtar uzunluğuna eşit formuna tek kullanımlık şerit (one time pad) denmektedir. Mesaj bitleri

s 2 1,m ,...m

m

M= ve anahtar bitleri K=k1,k2,...ks olmak üzere şifreli metin, (1.2) ifadesinde gösterildiği gibi anahtar bitleri ve açık metin bitlerinin mod 2 de toplamı ya da XOR işlemi sonucu elde edilir.

s ... 1 i , k m ci = ii = (1.2)

Tek kullanımlık şeritlerde anahtar tamamen rastlantısal olmalı ve bir kereliğine kullanılmalıdır. 1949 da Shannon bu şifreleme sisteminin koşulsuz güvenli olduğunu göstermiştir. Bu şifrelerdeki en önemli kısıtlama anahtar uzunluğunun mesaj uzunluğuna eşit olması gerekliliğidir. İşte, akış şifreler k bit anahtarla bir üreteci besleyerek mümkün olduğu kadar uzun periyotlu ve rastlantısal gözüken anahtar dizilerini üretmeyi amaç edinir ve elde ettiği anahtarı açık metinle şifreleme fonksiyonuna sokarak şifreli metni elde eder [10][11]. Akış şifreler zamanla değişen bir fonksiyon kullanarak tek karakterler üzerinde işlem yaparlar. Bu tür algoritmalara RC4 ve SEAL [12] örnek gösterilebilir. Şekil 1.3 de senkron bir akış şifresinin genel yapısı görülmektedir. Şifreli metin (c ), açık metin (t m ) t ve anahtar dizisi (s )’nin h fonksiyonuna girişinin sonucunda elde edilir. t

Şekil 1.3. Senkron Bir Akış Şifresinin Genel Yapısı

t

σ

g h f ct st k mt Açık Metin Şifreli Metin

(16)

1.2. Kriptanaliz

Kriptanaliz, kriptografik yapıların kırılmasında kullanılan tekniklerin çalışılması anlamına gelmektedir. Kısaca şifre kırma bilimidir. Bir şifrenin gücü değerlendirilirken genellikle geniş anahtar arama saldırısı (exhaustive key search) bir kıstas olarak karşımıza çıkmaktadır. Geniş anahtar arama saldırısı k-bit anahtara sahip bir şifre için olası tüm anahtarların, 2 , denendikten sonra anlamlı mesaj elde edilip edilmemesine göre anahtarı k bulma yöntemidir [13]. Dolayısıyla şifrenin elde edilebilecek en yüksek gücüdür. (Tek kullanımlık şifreler istisnadır ve uygun koşullarda kesinlikle güvenlidirler.) Ayrıca Şekil 1.4 de görüldüğü gibi tasarım, saldırı ve bir şifrenin tayini arasında bir tamamlayıcı ilişki vardır. Tayin, bir şifrenin kabulünün kararının verilmesinde ya da verilmemesinde gereklidir. Bir saldırı, tasarım sırasında var olan şifrenin sağlamlıkları ve zayıflıklarını düşünmede kullanışlıdır. Ek olarak, tabi ki yeni bir tayin saldırıya bağlanabilse de yeni saldırı yöntemleri tayin için kullanılabilir.

Şekil 1.4. Tasarım, Saldırı ve Tayin Arasında İlişki

Tasarım

Saldırı Güç Tayini

Yeni Şifre

Yeni bir tayin tekniği gereklidir İyi Değil

Tasarımda güçlü ve zayıf noktaları yansıtır

Saldırı ve tayin zayıf nokta bulma teknikleridir

(17)

Bir kriptosistemin güvenliğinin tayininde bazı yaklaşımlar vardır [3][14].

• Hesaplanabilir güvenlik (computational security): Bu ölçü, bir kriptosistemi kırabilmek için gerekli hesaplama çabasını ilgilendirir. Eğer N bazı belirlenen yüksek bir değer olmak üzere, en iyi algoritma bu kriptosistemi kırmak için N işlem gerektiriyorsa biz hesaplanabilir güvenli bir kriptosistem tanımlayabiliriz. Buradaki problem bu tanım altında güvenliği ispatlanmış uygulanabilir bir kriptosistemin olmadığıdır. Pratikte, insanlar sıkça bir kriptosistemin hesaplanabilir güvenliğini bazı özel saldırı tiplerine (geniş anahtar arama saldırısı) karşın çalışırlar. Tabiî ki bir özel saldırı tipine karşın güvenlik bazı diğer saldırı tiplerine karşı güvenliği garanti etmez.

• İspatlanabilir güvenlik (provable security): Diğer bir yaklaşım, zor olduğu düşünülen iyi-çalışılan bazı problemlere kriptosistemin güvenliğini indirgeyerek güvenlik ispatını bulmaktır. Ancak iyi anlaşılmalıdır ki bu yaklaşım bazı diğer probleme göre güvenliğin ispatını sağlar. Diğer bir deyişle kesin bir güvenlik ispatı sunmaz.

• Şartsız güvenlik (unconditional security): Bu ölçü, bir kriptosistem eğer sonsuz hesaplama kaynağına sahip olunsa bile kırılamadığı durumda tanımlanır.

Kriptosistemlere bol ve gelişen saldırı topluluğu vardır. Genelde bir saldırının amacı herhangi bir şifreli metni deşifreleyebilme yeteneğini kazanmaktır. Bu genellikle anahtarı elde etme (total break - bütün kırma), bir algoritma tasarlayarak anahtarı bilmeden şifreli metinleri deşifreleme (global deduction – küresel netice), bir mesajı şifreleyip deşifreleyebilme (yöresel netice - local deduction) ve anahtar, açık metin ya da şifreli metin hakkında bir şey öğrenme (bilgi neticesi - information deduction)(örnek: açık metnin dağılımı ya da anahtar bitleri arasında bir ilişki vb.) ile ilişkilidir. Genel varsayım şudur ki düşmanın kullanılan kriptosistemi bildiği varsayılır (Kerchoffs’un prensibi). Tabi ki, eğer düşman kullanılan kriptosistemi bilmiyorsa, bu onun işini zorlaştıracaktır [2].

(18)

Düşmanın bir kriptosisteme saldırabilmesi için sahip olması gereken veriler vardır. Bu sahip olduğu verilere göre saldırı modellerinden birini seçebilir. Bu saldırı modellerinden en yaygın olanları şunlardır [3][2][13]:

Sadece şifreli metin saldırısı; Düşman şifreli metin dizisine sahiptir,

Bilinen açık metin saldırısı; Düşman açık metin dizisine ve bunların şifreli metin

dizisine sahiptir,

Seçilmiş açık metin saldırısı; Düşman bir açık metin dizisini seçebilir ve bunların

şifreli metinlerini oluşturabilir,

Seçilmiş şifreli metin saldırısı; Düşman bir şifreli metin dizisi seçebilir ve bunların

açık metinlerini oluşturabilir.

Adaptif Seçilmiş açık metin ya da Şifreli metin saldırısı; Düşman bu saldırı tipinde

henüz elde ettiği şifreleme ve deşifreleme sonuçlarına göre şifrelenmiş metnin uyarlamalı olarak seçim yeteneğine sahiptir. Bu tür seçilmiş açık metin saldırıları saldırgana aktif olarak hareket imkânı tanır.

İlişkili Anahtar Saldırıları: Düşman bu saldırı modelinde farklı anahtarlar altında

şifrelenmiş bir açık metinler setinin sonuçlarını idare edebilme yeteneğine sahiptir. (Bu saldırı türü şifrenin anahtar planlama algoritmasında ilginç teorik zayıflıklar keşfedebilinir [13]).

Yukarıdaki saldırı modellerine bakıldığında modeller pratikte uygulanabilirliği kolay olandan zor olana doğru sıralanmışlardır [2]. Bu saldırı modellerinde en gerçekçi olan model sadece şifreli metin saldırısıdır. Diğer saldırı modelleri gerçekte bir şifrenin derecelendirilmesinde bir ölçüt teşkil etmektedirler. Örneğin seçilmiş açık metin saldırısına karşı dayanıklı bir şifre dayanıklı olmayana göre daha güvenli olacaktır. Ek olarak pratikte mümkün olmayacak saldırı modellerinin kullanılması belki de güvenliği hiç bir zaman ispatlanamayacak bir şifreye bir güvenlik payı ekleyeceğini unutmamak gerekir. Ancak bunun yanında eğer bir şifre sadece şifreli metin saldırısına karşı ”çok gerçekçi bir saldırı modeli” dayanıklı değil ise kesinlikle zayıf bir şifredir.

(19)

Yapılan saldırılar karşılaştırılırken üç farklı karmaşıklık ölçüsü vardır [11]. Bir saldırının veri karmaşıklığı gerekli veri parçalarının sayısıdır. (Şifreli metinler ya da açık metin – şifreli metin çiftleri)

Bir saldırının zaman karmaşıklığı (ya da çalışma faktörü) gerekli olan adımların sayısıdır. Burada ‘adım’ sıkça bir tek şifrelemedir ya da diğer bir uygun hesaplama ünitesi olabilir. Ayrıca, zaman karmaşıklığı önceden hesaplama karmaşıklığı (pre-computational

complexity) ve aktif saldırı karmaşıklığı (active attack complexity) olarak ikiye ayrılabilir.

Önceden hesaplama kısmı anahtar bitleri gözlenmeden yapılabilir ve genellikle de bir kere yapılır. Sonuçta, farklı anahtarlarla şifreye saldırı başarı ile gerçekleştirilebilir. Aktif saldırı kısmında ise tümüyle anahtar bitleri gözlenirken yapılan işlemler göz önüne alınır.

Bir saldırının bellek karmaşıklığı ise saldırıyı gerçekleştirmek için gerekli bellek miktarı ile ilgilidir. Bu parametre zaman ve veri karmaşıklığı ile birleştirilebilir. Saldırıda daha önceden hesaplama safhası ile ilgili bir kısım varsa sonuç aktif kısım da daha sonra kullanılmak üzere bir bellekte depolanacaktır.

(20)

BÖLÜM 2

2. TEMEL KAVRAMLAR

Kriptografi ile ilgili çalışmalar matematik bilimi, bilgisayar bilimi ve elektroniksel yapıların kullanımını gerektirir. Matematiksel yapılar şifreleme algoritmalarının tasarımındaki teoriyi oluştururken, bilgisayar bilimi bu teorilerin ve saldırı tekniklerinin başarımı için geliştirilen algoritmaların uygulanmasında gerekli olan önemli parçalardır. Bunun yanında elektroniksel yapıların kullanımı hızlı şifrelemenin gerektiği donanımsal uygulamalarda karşımıza çıkmaktadır.

Özellikle şifreleme algoritmalarının tasarımı matematiğin bazı teorilerinin birleşmesiyle meydana gelmiştir diyebiliriz. Bunlara örnek olarak sayı teorisi, sonlu cisimler teorisi, kodlama teorisini verebiliriz. Bu bölümde tezin anlaşılırlığı açısından gerekli olan temel bazı teorik bilgiler verilecektir.

2.1. Matematiksel Alt Yapı

Sayı teorisi ve sonlu cisim teorisi özellikle blok ve stream (akış) şifrelerinin tasarımında önemli bir yer teşkil etmektedir. Dolayısıyla bu bölümde bazı tanım ve teoriler üzerinde durulacaktır. Teorilerin ispatı verilmemiştir. Ancak bu tanımlar ve teorilerin ispatı [3][15][16] dan elde edilebilir.

(21)

Aritmetik mod m işlemi : Z toplama ve çarpma işlemi ile birlikte m

{

0,1,....,m− 1

}

seti olacak şekilde tanımlanır. Z de toplama ve çarpma işlemi sonucu modulo m’e m indirgenir.

Tanım 2.1: a≥ ve 1 m≥ olsun. Eğer 1 OBEB(a,m)= ise a ve m için aralarında asal 1 denir. Zm de m ile aralarında asal olan tamsayıların sayısı genellikle φ(m) ile tanımlanır ve bu fonksiyona Euler phi fonksiyonu denir.

Teorem 2.1: φ(m), m ’nin asal üslerinin çarpanlarına ayrılması ile bulunabilir. p ’ler i farklı asal sayılar olmak üzere ei > ve 0 1≤i≤n için sırasıyla m ve φ(m) aşağıdaki gibi gösterilebilir. .) p p ( ) m ( , p m n 1 i 1 i e i i e i n 1 i i e i

= − = − = φ = Örnek 2.1: ) 60 (

φ değerini bulalım. Yani 60’dan küçük 60 ile aralarında asal olan tamsayıların sayısını bulalım. . 16 4 . 2 . 2 ) 5 5 ).( 3 3 ).( 2 2 ( ) 60 ( 5 . 3 . 2 60 m= = 2 φ = 2 1 1 0 1 0 = =

Tanım 2.2: Cisim, toplama ve çarpma işlemleri ile aşağıdaki aksiyomları sağlayan elemanları boş olmayan bir F setidir.

Aksiyomlar

1. a+ ve bb a “. + ” ve “.” işlemleri altında F ’in içindeyse F kapalıdır. 2. Değişme özelliği aa+b=b+a ,a.b=b.

3. Geçişme Özelliği (a+b)+c=a+(b+c),a.(b.c)=(a.b).c 4. Dağılma Özelliği ca.(b+c)=a.b+a.

(22)

İki farklı birim elemanı (identity) 0 ve 1 (toplamaya ve çarpmaya göre) aşağıdakileri sağlayan F ’in içinde olmak zorundadır.

5. a+0=a,∀a∈F

6. a.1= ve a a.0=0,∀a∈F

7. F ’teki herhangi bir a için F ’te toplamaya göre ters eleman (− olmalıdır ki a) 0

) a (

a+ − = şeklinde olsun.

8. F ’te herhangi a farklı 0 için çarpmaya göre ters eleman a−1 olmalı ki a.a−1 =1 şeklinde olsun.

Tanım 2.3: 1 – 6 arasındaki aksiyomları sağlayan F seti bir halka adı verilir. Sadece sonlu birçok eleman içeren bir cisime sonlu cisim denir.

Örnek 2.2:

4

Z ’ü ele alalım. Sonlu bir cisim olup olmadığını inceleyelim.

Yukarıda görüldüğü gibi 1–7 arasındaki tüm aksiyomlar sağlanmaktadır. Ancak Z 4 sonlu bir cisim değildir. Çünkü Z ’te çarpma işlemine göre 2 değerinin tersi yoktur. 4

Teorem 2.2: Eğer p asal sayı ise Z bir cisimdir. p

2 1 0 3 3 1 0 3 2 2 0 3 2 1 1 3 2 1 0 0 3 2 1 0 + 2 1 0 3 3 1 0 3 2 2 0 3 2 1 1 3 2 1 0 0 3 2 1 0 +

Z4için toplama ve çarpma

1 2 3 0 3 2 0 2 0 2 3 2 1 0 1 0 0 0 0 0 3 2 1 0 . 1 2 3 0 3 2 0 2 0 2 3 2 1 0 1 0 0 0 0 0 3 2 1 0 .

(23)

Teorem 2.3: Eğer p asal sayı ise * p

Z çevrimsel bir gruptur.

Tanım 2.4: Z cisiminin 0 olmayan bir elemanı olan α ’nın derecesi p αk =1 olmak üzere en küçük k değeridir.

Tanım 2.5: mod ’ye göre p (p− derecesine sahip bir α elemanına asal eleman denir. 1) Tanım 2.6: p asal ve α mod ’ye göre asal eleman olsun. Herhangi bir p β∈Z*p, β=αi

(0<i<p−2) olmak üzere yazılabilir. β=αi’nin derecesi

) i , 1 p ( OBEB 1 p − − ’dir. Böylece eğer OBEB(p−1,i)=1 ise β asal bir elemandır. Dolayısıyla mod ’ye göre asal p elemanların sayısı φ(p−1)’dir.

Teorem 2.4: p asal ve * p

Z ∈

α olsun. Eğer (p− ’i bölen tüm asal q değerleri için 1) 1 ) p (mod q 1 p ≠ α −

ise o zaman α modp’ye göre asaldır. Örnek 2.3:

11

p= için asal elemanları bulalım. Asal elemanları elde edebilmek için önce en küçük asal elemanı bulmamız gerekmektedir. Çünkü p değerinin asal elemanlarını bulmak için aşağıda gösterildiği gibi, en küçük böleninden başlayarak üsler şeklinde yazıldığında 1’den p− ’e kadar tüm tamsayıları veren en küçük değer bulunur. En küçük asal eleman 1 aşağıda gösterildiği gibi 2’dir.

6 11 mod 2 3 11 mod 2 7 11 mod 2 9 11 mod 2 10 11 mod 2 5 11 mod 2 8 11 mod 2 4 11 mod 2 2 11 mod 2 1 11 mod 2 9 8 7 6 5 4 3 2 1 0 = = = = = = = = = =

(24)

Bir sonraki adım OBEB(,ip−1)=1 şartını sağlayan sayıları bulmaktır. Bu değerler bulunduktan sonra 2imodp’de karşılık gelen değerler asal elemanlar olarak karşımıza çıkar. OBEB(,i10)= için i değerleri sırasıyla 1,3,7,9 olduğu için asal elemanları sırasıyla 1 2,6,7,8 olarak buluruz.

Örnek 2.4:

Teorem 2.4’e göre 2 değerinin asal olduğunu doğrulayalım. p değerimiz 11 ise 5 . 2 10 ) 1 p

( − = = olarak yazılabilir. Dolayısıyla 2 ve 5 asal sayılardır. O zaman

1 ) 11 (mod 2 2 2 1 ) 11 (mod 2 2 2 2 5 10 q 1 p 5 2 10 q 1 p ≠ = = ≠ = = − −

olmalıdır. Gerçekten de 25mod11=10 ve 22mod11= ’tür. Dolayısıyla 2, mod 11 4 işlemine ya da Z cisimine göre asal elemandır. 11

Tanım 2.7: Z bir cisim olmak üzere set m

⎭ ⎬ ⎫ ⎩ ⎨ ⎧ ≥ ∈ =

= n 0 i i m i i m[x]: a x :a Z ,n 0 Z , Z üzerine m

bir polinom halka olarak isimlendirilir. Zm

[ ]

x ’in bir elemanı Z üzerine polinom olarak m isimlendirilir. Pozitif dereceli bir polinom

= = n 0 i i ix a ) x (

f için derece(g(x))<derece(f(x)), )) x ( f ( derece )) x ( h (

derece < ve f(x)=g(x)h(x) şartlarını sağlayacak şekilde iki polinom varsa f(x) polinomu Z üzerine indirgenebilir aksi takdirde pozitif dereceli m f(x) polinomu Zm üzerine indirgenemez polinom olarak tanımlanabilir.

(25)

Örnek 2.5: 1 x x ) x (

f = 4 + 3+ polinomu 4. dereceden bir polinomdur ve katsayıları Z2[x]’in elemanıdır.

Teorem 2.5: f(x), derecesi 1’den büyük Zm cisimi üzerine bir polinom olmak üzere

[ ]

x /f(x)

Zm sadece ve sadece f(x) indirgenemez ise cisimdir..

Örnek 2.6: ) 1 x x /( ] x [

Z2 2+ + halkasının sonlu bir cisim olup olmadığını inceleyelim. Bunun için toplama ve çarpma işlemlerini ele almalıyız.

) 1 x x /( ] x [

Z2 2+ + polinom halkası sonlu bir cisim oluşturur. Teorem 2.5 gereği ) 1 x x ( ) x ( f = 2 + + polinomu Z [x]

2 üzerine indirgenemez bir polinomdur. Ayrıca şekilde

gösterilen toplama ve çarpma işlemleri bunu doğrulamaktadır.

Yukarıdaki Tanım 2.7 ve Teorem 2.5’i biraz açarsak, p asal ve n≥ ( n , )1 f(x polinomunun derecesi) olmak üzere q=pn elemana sahip bir sonlu cisim vardır diyebiliriz. Diğer bir ifade ile Zm

[ ]

x /f(x) sonlu cisim ise bu sonlu cisim n

P

F ya da )

p (

GF n şeklindeki ifade ile tanımlanabilir ve bu özel sonlu cisim GF(p) cisiminin .n dereceden genişletilmiş cisimi olarak adlandırılır. Örneğin GF(23), GF(2) cisiminin 3. dereceden genişletilmiş cisimi olarak isimlendirilir ve GF(2) cisimine, GF(23) cisiminin taban cisimi adı verilir.

0 1 x 1+x 1+x 1 0 1+x x x x 1+x 0 1 1 1+x x 1 0 0 1+x x 1 0 + 0 1 x 1+x 1+x 1 0 1+x x x x 1+x 0 1 1 1+x x 1 0 0 1+x x 1 0 + x 1 1+x 0 1+x 1 1+x x 0 x 1+x x 1 0 1 0 0 0 0 0 1+x x 1 0 . x 1 1+x 0 1+x 1 1+x x 0 x 1+x x 1 0 1 0 0 0 0 0 1+x x 1 0 .

(26)

Tanım 2.8: Asal polinom (primitive polynomial) taban cisiminden genişletilmiş cisimin tüm elemanlarını üretebilen polinomdur.

Tanım 2.9: Asal eleman x , genişletilmiş cisim GF(pn)’de xpn−1=1 olacak şekilde derecesi pn− olan elemandır. 1

Teorem 2.6: Herhangi bir asal ya da asal üs q ve pozitif n için GF(q) üzerine .n dereceden bir asal polinom vardır ve bu asal polinomların sayısı

n ) 1 q ( ) n ( s n q − φ = şeklinde bulunabilir. Örnek 2.7: ) 1 x x /( ] x [

Z2 3 + + bir sonlu cisim olmak üzere bu sonlu cisimin eleman sayısı 8 dir ve 3

2

F şeklinde gösterilebilir. Aşağıda 0 haricindeki 3

2 F ’ün elemanları gösterilmektedir. 1 x 1 x x 1 x x x x x x 1 x x x x x x 7 2 6 2 5 2 4 3 2 2 1 = + = + + = + = + = = =

Tanım 2.10: Daha önce bahsedildiği gibi Z (p∗ p asal) derecesi (p− ) olan çevrimsel bir 1 gruptur. Aynı şekilde Fn \

{ }

0

p da derecesi (p 1

n− ) olan çevrimsel bir gruptur.

Örnek 2.8: ) 2 (

(27)

. 16 8 ) 3 3 ).( 5 5 ).( 17 17 ( 8 ) 255 ( 8 ) 1 2 ( ) 8 ( s n ) 1 q ( ) n ( s 0 1 0 1 0 1 8 4 2 n q = − − − = φ = − φ = ⇒ − φ = Örnek 2.9: ) 1 x x /( ] x [ Z 4

2 + + sonlu cisimine göre (f(x)=(x4+x+1) polinomu Z2[x]

üzerine indirgenemez hatta asal polinomdur.) (0100)=(4)hex değerinin tersinin

hex ) D ( ) 1101 ( = olduğunu gösterelim. 1 1 1 ) 1 x x mod( ) x 1 x x x ( 1 ) 1 x x mod( ) x x x ( 1 ) 1 x x mod( ) 1 x x ).( x ( 1 ) 1 x x ( mod ) D .( ) 4 ( ? 4 2 2 ? 4 2 4 5 ? 4 2 3 2 ? 4 hex hex = = + + + + + + = + + + + = + + + + = + + 2.2. Boolean Fonksiyonları

Bir boolean fonksiyonu f , F2n1’den F ye bir harita olarak isimlendirilir [17][18]. 2 Kriptografide kullanıldığı şekil matematiksel yaklaşımdan biraz değişiklik göstermekle beraber bir boolean fonksiyonunun kriptografide kullanıldığı şekliyle iki elemanı vardır: 0 ve 1. Bir boolean fonksiyonu bir doğruluk tablosu (truth table) ile gösterilebilir. Doğruluk

tablosu, f(x)=(f(00..00),f(00..01)...,f(11..11)) şeklinde sıralanan f ’in fonksiyon değerlerini gösteren bir vektördür. Aynı şekilde fˆ(x)=(−1)f =1−2f fonksiyonu

{

−1 ,1

}

1 Fn :

(28)

setine ait bir fonksiyon olmak üzere doğruluk tablosundaki vektörler (−1)f fonksiyon

değerlerine karşılık geliyorsa bu tür gösterilime kutup doğruluk tablosu (polarity truth table) ismi verilir.

Tanım 2.11: Bir f(x) boolean fonksiyonu eğer f(x)=x•w ⊕ c formunda temsil ediliyorsa bu fonksiyona affine fonksiyonu denir. Ayrıca c = 0 ise f(x) boolean

fonksiyonu doğrusaldır denir. i i 1 1 2 2 n n

n 1 i x .w x.w x .w ... x .w w x• = = ⊕ ⊕ ⊕ =

nokta ürünü n 2 F w ,

x ∈ olmak üzere ikili değere sahip vektörleri tanımlanır.

Tanım 2.12: {0,1} lerden oluşan vektör sıranın hamming ağırlığı wt(α)=α’daki 1’lerin sayısını temsil eder.

Tanım 2.13: f(x),g(x): n 2

2 F

F → iki boolean fonksiyon olmak üzere bu fonsiyonların arasındaki hamming uzaklığı ))dH(f,g),( f(x)⊕g(x ’in doğruluk tablosunun hamming ağırlığı olarak tanımlanır. Diğer bir deyişle hamming uzaklığı aşağıdaki gibi tanımlanabilir.

∈ ∈ − = ⊕ = n 2 F x n 2 F x 1 n (x)(x) 2 1 2 ) x ( g ) x ( f ) g , f ( d

Bir boolean fonksiyonunun hamming ağırlığı ise f sabit sıfır fonksiyonuna olan uzaklık 0 olarak tanımlanır. Hamming ağırlığı wh(x)=#

{

i |xi ≠0

}

2 şeklinde gösterilebilir.

Tanım 2.14: Bir Boolean fonksiyonu f(x):F2n → için doğruluk tablosundaki 0’ların F2 sayısı 1’lerin sayısına eşitse boolean fonksiyonu için dengeli denir. Dolayısıyla dengeli boolean fonksiyonunun hamming ağırlığı 2n−1 dir.

(29)

Tanım 2.15: Bir f(x) boolean fonksiyonu için n 2

2 F

F → diğer bir gösterilim ile

{ }

0,1

{ }

0,1 : f n → Walsh dönüşümü .w) x wt(f 2 2 ) 1 .( ) 1 ( (w) W x w n n } 1 , 0 { x f (x) f = − − • = − ⊕ ∈

şeklinde n 2 F w , x ∈ olmak üzere gösterilir.

Tanım 2.16: Bir boolean fonksiyonunun otokorelasyon fonksiyonu (d)rf , f(x): F2n → F2 olmak üzere aşağıdaki gibi tanımlanabilir.

) d (x f . (x) f 2 ) 1 .( ) 1 ( 2 ) 1 ( 2 (d) r ^ n 2 Z x ^ n d) f(x f(x) n 2 Z x n d) f(x f(x) n 2 Z x n f =

− =

− − =

⊕ ∈ − ⊕ ∈ − ⊕ ⊕ ∈ −

Burada d∈F2n ve x⊕d=(x1⊕d1, x2⊕d2,....,xn ⊕dn) olarak tanımlanmaktadır. Aynı zamanda Tanım 2.16 den yola çıkarak iki şey söylenebilir. Otokorelasyon fonksiyonu

orijinde birdir.

∈ − ∈ ⊕ − = = = n 2 Z x 0 n n 2 Z x f(x) f(x) n f(0) 2 ( 1) 2 ( 1) 1

r İkinci olarak f(x)’in

otokorelasyon fonksiyonunun Walsh dönüşümü, R(w), f(x) fonksiyonunun Walsh dönüşümü ile ilişkisi R(w)=2−nWf2(w) dir.

Tanım 2.17: f ve g iki boolean fonksiyon olmak üzere aralarındaki korelasyon ve f ve g’nin değerlerinin eşit olma olasılığı aşağıdaki gibi gösterilebilir.

{

}

{

}

− − − = − = ≠ − = = x n H n 1 n ) x ( gˆ ) x ( fˆ 2 ) g , f ( d . 2 1 ) ) x ( g ) x ( f | x # ) x ( g ) x ( f | x .(# 2 ) g , f ( c 2 ) g , f ( c 1 )) x ( g ) x ( f ( Pr = = +

(30)

Tanım 2.18: Bir affine dönüşüm f den g ’ye g(x)=f(Dx⊕a)⊕b.x⊕c (D nxn tersi olan bir matris ve a∈F2n,b∈F2n ,c∈F2) olacak şekilde bir haritadır.

Tanım 2.19: Eğer Tanım 2.18 de gösterildiği gibi f ve g fonksiyonları bir affine dönüşüm ile ilişkili ise bu fonksiyonlara denk fonksiyonlar ya da aynı denk sınıftaki fonksiyonlar denir.

Teorem 2.7: (Perseval Eşitliği) Bir boolean fonksiyonu f için aşağıdaki eşitlik ispatı olmadan verilmiştir. n 2 2 n 2 F x f(x) 2 W =

2.2.1. Cebirsel gösterim biçimi (Algebraic Normal Form - ANF)

n 2

F de bir f boolean fonksiyonunu temsil etmenin diğer bir yoluda polinomsal bir gösterim tarzı olan cebirsel gösterim biçimidir. Aşağıdaki gibi gösterilebilir [18][19].

n 3 2 1 ...n 123 3 2 1 123 n ) 1 (n )n 1 (n 2 1 12 n n 1 1 0 n 2 F u 2 u u u n 2 F u n 1 i i u u n 2 1 ...x x x x a ... x x x a x x a ... x x a x a ... x a a F a ; x a x a ) x , ,... ,x f(x f(x) ⊕ ⊕ ⊕ ⊕ ⊕ ⊕ ⊕ ⊕ ⊕ = ∈ = ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ = = − − ∈ ∈ =

Algoritma 2.1: ANF Algoritması

1. g(x1,...,xn)=f(0,0,..,0) değerini ata. 2. k= den 1 2n − değerine kadar, yap. 1

(31)

a- Tamsayı k’nın ikili temsilini kullan. ( n 1 n 2 3 2 1 b 2 b 2 ... b 2 b k= + + + + − ) b- Eğer )g(b1,b2,...,bn)≠f(b1,b2,...,bn ise

= ⊕ = in1 bi i n 1 n 1,...,x ) g(x ,....,x ) (x ) x ( g değerini ata. 3. ANF(f)=g(x1,...,xn) Örnek 2.10:

Bir boolean fonksiyonu f =

{

0,0,1,0,1,1,0,1

}

için Algoritma 2.1 de gösterildiği gibi ANF gösteriminin elde edilmesini adım adım gösterelim.

2.2.2. Doğrusal olmama (Nonlinearity)

Bir f(x) boolean fonksiyonunun doğrusal olmama özelliği en yakın affine fonksiyona olan hamming uzaklığı ile temsil edilebilir. β , n değişkenli tüm boolean n fonksiyonların seti, Λn =

{

a0⊕a1x1⊕a2x2⊕...⊕anxn ;ai∈F2, 0≤i≤n

}

ise doğrusal

1 1 1 1 7 7 0 0 1 1 6 6 1 1 0 1 5 5 1 0 0 1 4 4 0 1 1 0 3 3 x2 1 0 1 0 2 2 0 0 1 0 0 1 1 0 0 0 0 0 g (b g (b11, b, b22, b, b33)) f (b f (b11, b, b22, b, b33)) b b11 b b22 b b33 k k 1 1 1 1 7 7 0 0 1 1 6 6 1 1 0 1 5 5 1 0 0 1 4 4 0 1 1 0 3 3 x2 1 0 1 0 2 2 0 0 1 0 0 1 1 0 0 0 0 0 g (b g (b11, b, b22, b, b33)) f (b f (b11, b, b22, b, b33)) b b11 b b22 b b33 k k 2 1 2 xx x ⊕ 3 2 1 2 xx x x ⊕ ⊕ 3 2 1 2 xx x x ⊕ ⊕ 3 2 1 2 xx x x ⊕ ⊕ 3 2 1 2 xx x x ⊕ ⊕

(32)

yani 1. dereceden fonksiyonlar seti ve dH(f,a) iki fonksiyon arasındaki hamming uzaklığı olmak üzere f∈ boolean fonksiyonunun doğrusal olmama değeri aşağıdaki gibi βn verilebilir [20] [142]. { } ⎪ ⎪ ⎭ ⎪⎪ ⎬ ⎫ ⎪ ⎪ ⎩ ⎪⎪ ⎨ ⎧ ⊕ ⊕ ≠ = = = ∈ ∈ d (f,a) min # X|f(X) U X V min N n i i 1 i 1 , 0 ,V n ,...,U 1 U H n Λ a f

Bir f(x) boolean fonksiyonunun doğrusal olmaması (non-lineerliliği) Walsh dönüşümüne dayalı olarak aşağıdaki gibi ifade edilebilir.

F(w) max 2 1 2 Nf = n−1− w Örnek 2.11:

Aşağıda bir boolean fonksiyonu f(x)=f(x1,x2,x3)=

{

0,0,0,1,1,1,0,1

}

ile x1+x2 arasındaki uzaklığı bulalım.

Fonksiyon f ile x1+x2 arasındaki uzaklık 6 ve dH(f,1+x1+x2)=2 dir. f ’in doğrusal olmama değerini bulmak için f ’in tüm doğrusal fonksiyonları için örnekte

0 1 1 0 0 1 1 0 x x1 1 + x+ x22 1 1 1 1 1 1 0 0 1 1 0 1 1 0 1 1 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 f(x) + x f(x) + x1 1 + x+ x22 f (x) f (x) x x11 x x22 x x33 0 1 1 0 0 1 1 0 x x1 1 + x+ x22 1 1 1 1 1 1 0 0 1 1 0 1 1 0 1 1 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 f(x) + x f(x) + x1 1 + x+ x22 f (x) f (x) x x11 x x22 x x33

(33)

gösterildiği gibi uzaklık değerlerini bularak bunların içinden en küçük uzaklığı bulmak gerekir.

2.2.3. Cebirsel derece (Algebraic Degree)

Bir f boolean fonksiyonunun cebirsel derecesi deg( ya da kısaca d ile f) tanımlanır. f boolean fonksiyonunun ANF formundaki an 1

1 n 0 a 0 ...x x − − terimlerinden değişken

sayısı maksimum olan değer f boolean fonksiyonunun cebirsel derecesidir.

Örnek 2.12: 3 2 1 2 1 1 3 2 1,x ,x ) x x x x x x x (

f = ⊕ ⊕ boolean fonksiyonunun cebirsel derecesi 3’tür.

2.2.4. Korelasyon dayanıklılığı ve esneklik (Correlation immunity and Resiliency)

Eğer bir f fonksiyonunun t giriş bitinin kombinasyonu istatistiksel olarak bağımsız ise f fonksiyonuna t derecenden korelasyon dayanıklı denir ve CI(t) olarak tanımlanır [21] [142]. Diğer bir deyişle f∈ olmak üzere giriş değişkenlerinin βn xi1,...,xir, i≤r≤t herhangi bir alt seti sabitlenirse Pr(f(x)=0|(xi1,....,xir))=Pr(f(x)=1|(xi1,....,xir)) eşitliğine sahip oluruz.

Örnek 2.13: ) x ,..., x , x (

f 1 2 n boolean fonksiyonu 1. dereceden korelasyon dayanıklı ise o zaman aşağıdaki eşitliklerin sağlanması gerekir.

(34)

{

} {

}

{

} {

}

{

} {

}

{

} {

}

. . . 1 ) x ,...., 1 , x ( f | F x # 0 ) x ,...., 1 , x ( f | F x # 1 ) x ,...., 0 , x ( f | F x # 0 ) x ,...., 0 , x ( f | F x # 1 ) x ,...., x , 1 ( f | F x # 0 ) x ,...., x , 1 ( f | F x # 1 ) x ,...., x , 0 ( f | F x # 0 ) x ,...., x , 0 ( f | F x # n 1 n 2 n 1 n 2 n 1 n 2 n 1 n 2 n 2 n 2 n 2 n 2 n 2 n 2 n 2 n 2 = ∈ = = ∈ = ∈ = = ∈ = ∈ = = ∈ = ∈ = = ∈ Örnek 2.14:

Fonksiyon f(x1,x2,x3)=x1x2+x2x3+x3 korelasyon dayanıklı değildir çünkü

2 1 2 1,x ,0) x x x (

f = dir ve 3 tane sıfır ve 1 tane bir değerini (x1,x2)∈F22 iken verir.

Esneklik (resiliency) kriteri bir boolean fonksiyonu için girişten çıkışa bilgi sızmasını engeller. Akış şifreler için önemli bir özelliktir. Dengeli ve t dereceden korelasyon dayanıklılığına sahip bir f boolean fonksiyonu t dereceden esnek ya da t

-resillient olarak isimlendirilir.

Örnek 2.15: 4 3 2 1 4 3 2 1,x ,x ,x ) x x x x x (

f = ⊕ ⊕ ⊕ , 3-resillient fonksiyondur fakat doğrusal bir fonksiyondur yani deg(f)= dir. 1

Örnek 2.16: 4 3 4 1 3 2 4 3 2 1,x ,x ,x ) x x x x x x x (

f = ⊕ ⊕ ⊕ , ikinci dereceden 1-resillient

(35)

2.2.5. Cebirsel dayanıklılık (Algebraic Immunity)

İki boolean fonksiyonunun, f,g den elde edilen boolean fonksiyonunun doğruluk tablolarının ürünü gf (iki vektör arasında elde edilen nokta ürünü değil) ile temsil edilsin. .

n 2

F üzerinde tanımlanmış bir boolean fonksiyonunun cebirsel dayanıklılığı (Algebraic Immunity) (AI) f.g=0=(0,0,...,0) ya da (f⊕1).g=0 yapan F den 2n F ye tanımlı g 2 fonksiyonunun en düşük derecesidir. f.g=0=(0,0,...,0) olacak şekilde fonksiyon g ’ye

f ’in bir bozucusu (annihilator) denir. An( f ), f ’in tüm bozucularının setini tanımlar [22]

[18] [142].

Örnek 2.17:

Fonksiyon f(x)=f(x1,x2,x3)=

{

0,0,0,1,1,1,0,1

}

şeklindeki boolean fonksiyonunun An( f ) fonksiyonu aşağıda gösterilmiştir. “∗ ” yerine istenen 0 ya da 1 değeri konabilir.

0 * 0 0 0 * * * an ( f ) an ( f ) 1 1 1 1 0 0 1 1 1 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 f (x) f (x) x x11 x x22 x x33 0 * 0 0 0 * * * an ( f ) an ( f ) 1 1 1 1 0 0 1 1 1 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 f (x) f (x) x x11 x x22 x x33

(36)

2.2.6. Bent fonksiyonları Eğer n 2 2 n f(w) 2 , w F

W = ∀ ∈ ise f boolean fonksiyonuna bent fonksiyonu denir [23][18][142]. Bent fonksiyonları çift n değerleri için mümkündür. Bent fonksiyonlar maksimum doğrusal olmama 2 1

n 1

n 2

2 − − − değerine sahiptir. Otokorelasyon fonksiyonu 0 w , 0 ) w (

rf = ∀ ≠ eşitliğini sağlar. Bent fonksiyonlarında problem şudur ki f∈βb3 olmak

üzere 2 n ) f deg( ≤ dir.

2.3. S Kutuları (Substitution Boxes)

Bir blok şifreleme algoritmasının sahip olduğu bazı önemli özellikleri vardır. Bunlar şifreleme algoritmasının döngü sayısı, algoritmanın yapısı ve algoritmanın sahip olduğu S kutularıdır. Bijektif S kutuları birçok modern şifrelerin güvenliğinin sağlanmasında çok önemli rol oynarlar. Bir S kutusu vektörsel boolean fonksiyonu f0,f1,...,fm1 ile temsil edilebilir. f boolean fonksiyonları i n

2

F ’den F ’ye tanımlanır ve S kutusunun çıkış 2 fonksiyonları olarak isimlendirilir. S kutularının tasarımında çeşitli teknikler mevcuttur. S kutularının tasarımında mevcut olan tekniklere örnek olarak pseudo-random üretim, sonlu cisimde ters alma ve üssel fonksiyon tekniği, heuristic teknikler verilebilir [24]. Şimdiye kadar mevcut olan tüm S kutularında istenen özellikler doğrusal ve diferansiyel saldırılara karşın iyi olan S kutularının seçimi üzerine olduğu için son zamanlarda şifreleme algoritmalarında kullanılan S kutuları sonlu cisim işlemlerinden ya da üssel fonksiyon yönteminden yola çıkılarak üretilen cebirsel S kutularıdır. Bir S kutusunun güvenlik

3

:

b

(37)

ölçütleri statik ya da dinamik olarak sınıflandırılabilir. Statik özellikler anahtar ya da açık metin bitleri değiştirilmeden açık metin, şifreli metin ve anahtar bitleri arasındaki ilişki ile ilgilidir; doğrusal olmama gibi. Dinamik özellikler, açık metin ya da anahtar bitlerinin alt setini değiştirdiğinizde açık metin, şifreli metin ve anahtar bitlerinin değişmelerine tekâmül eder. Dinamik özelliklere örnek olarak bütünlük (completeness), çığ (avalanche), katı çığ (Strict avalanche) kriterleri gösterilebilir. Şekil 2.1, n× S kutusunu göstermektedir ve bir m S kutusu F2n →Fm2 bir boolean fonksiyonu olarak görülebilir.

Şekil 2.1. S Kutusu

2.3.1. Bütünlük (Completeness) kriteri

Kam ve Davida’nın tanımladığı bir özelliktir [25]. Bir f :

{

0,1

}

n →

{

0,1

}

n olduğunu

varsayalım. Bu fonksiyonun bütünlük kriterini sağlayabilmesi için en az bir tane X∈

{

0,1

}

n olmalı ki f(X) ve f(X⊕∆Xi) bit j de farklılaşsın, i ve j ∈

{

1,2,....n

}

. Bunun anlamı şudur ki her çıkış biti giriş bitlerinin tümüne bağlı olması gerekir. Bir S kutusunun çığ (avalanche) vektörü (2.1) denklemindeki gibi ifade edilebilir [26][27][28].

S K u t u s u x1 x2 ... xn

(38)

) X f(X f(X) ∆Y∆Xi = ⊕ ⊕ ∆ i (2.1) = [a a ... a∆Xi] n i ∆X 2 i ∆X 1 i ∆X

∆Y , çığ vektörü, giriş şeridinden sadece bir biti ( .i bit) değiştirilerek elde edilmiş fark şerididir. O zaman (2.2) ifadesi bize avalance vektöründeki toplam değişmeyi verecektir.

= için her X i ∆X j i ∆X j ) a wt (a (2.2) ) wt(a∆Xi

j nin maksimum değeri 2 dir. Dolayısıyla n 0≤wt(a∆Xj i)≤2n dir. ∆X vektörü i

(2.3) teki gibi ifade edilebilir.

[

]

[

]

[

0,0,0,....,1

]

∆X 0 ,...., 0 , 1 , 0 ∆X 0 ,...., 0 , 0 , 1 ∆X n 2 1 = = = M (2.3)

Yukarıdaki tanımlara dayanarak diyebiliriz ki çıkış biti giriş bitinden hiç bir şekilde etkilenmiyorsa yani wt(a∆Xi) 0

j = ise ölçüt sağlanmamış olmaktadır. Diğer taraftan, n

i ∆X

j ) 2

wt(a = olduğu durumu düşünürsek giriş biti i ’nin değili alındığında çıkış biti j ’nin bundan doğrudan etkilendiği anlamına gelmektedir. O zaman bu durumda bir önceki durum gibi istenmeyen bir özellik olarak karşımıza çıkar. Sonuç olarak, bir S kutusu bütün değilse denklem (2.4)’ün değeri 0 ya da 1 olacaktır. Diğer durumlarda S kutusu bütünlük ölçütünü sağlayacaktır. 1 ) wt(a 2 1 0 ∆Xi j n < < (2.4)

(39)

2.3.2. Çığ (Avalanche) kriteri

Feistel [29], S kutuları ve SPN’ler için çığ ölçütü (avalance criterion) (AVAL) olarak bilinen bir özellik tanımlamıştır. Bu özelliğe göre açık metin bitlerinin az sayıdaki değişimi bir çığ etkisine neden olacaktır yani şifreli metinlerde bit farkları meydana gelecektir. Daha resmi olarak tanımlarsak, AVAL [26][27][28] ölçütünü sağlayan bir

{ }

0,1n

{ }

0,1n

f: → fonksiyon için giriş bitinin bir biti değiştiğinde çıkış bitlerinin yarısı değişecektir. (2.2) ifadesini kullanarak bir S kutusunun AVAL kriterini sağlaması için

{

0,1,2,..

}

j

,i ∈ olmak üzere tüm i değerleri için (2.5) ifadesini sağlaması gerekmektedir. ( i ve j sırasıyla giriş ve çıkış vektör bitleridir.)

2 n ) wt(a 2 1 n 1 j i ∆X j n

= = (2.5)

(2.5) ifadesini kAVAL(i) parametresini elde etmek için tekrar düzenlersek (2.6) ifadesini elde ederiz.

= = = n 1 j i ∆X j n AVAL 2 1 ) wt(a n.2 1 (i) k (2.6)

(2.6) ifadesine göre kAVAL(i) parametresi [0,1] aralığında değerler almaktadır ve herhangi bir i değeri için

2

1 değerinden farklı bir değer alırsa S kutusu AVAL kriterini

(40)

2.3.3. Katı çığ kriteri (Strict Avalanche Criterion)

Webster ve Tavares [30] bütünlük ve çığ özelliklerini bileştirerek katı çığ özelliğini (Strict Avalanche Criterion) (SAC) tanımlamışlardır. Bir f :

{ }

0,1n →

{ }

0,1n fonksiyonu SAC özelliğini sağlaması için, i ve j ∈ {0, 1, 2,..., n) olmak üzere, giriş biti i’yi değiştirmek çıkış biti j’nin kesinlikle

2 1

olasılığında değişmesi gerekmektedir. (2.7) ifadesi bunun matematiksel ifadesini göstermektedir. SAC ölçütünün sağlanması için (2.7) ifadesinin tüm i ve j değerleri için sağlanması gerekmektedir [26][27][28].

2 1 ) wt(a 2 1 ∆Xi j n = (2.7)

Bir SAC parametresi kSAC(i,j) tanımlamak için (2.7) ifadesini (2.8) ifadesi formuna sokulabilir. = ) j ,i ( kSAC wt(a ) 2 1 ∆Xi j n (2.8) j) (i,

kSAC parametresi [0,1] aralığında değerler alır ve eğer herhangi bir ( i, j ) kombinasyonu için

2 1

değerinden farklı ise o zaman S kutusu SAC kriterini sağlamaz. Yukarıdan açıkça gözükmektedir ki SAC ölçütünü sağlayan S kutusu aynı zamanda AVAL ve bütünlük kriterini de sağlayacaktır. Fakat AVAL ya da bütünlük kriterini sağlayan bir S kutusu SAC kriterini de sağlar denemez. Bir fonksiyonun SAC’ı ne kadar sağladığını ölçebilmek için DSAC (Distance to SAC function) parametresini ve onun mormali tanımlanabilir. (2.9) ifadesinde bir f fonksiyonu için DSAC(f) normal değeri gösterilmektedir. DSAC(aj) çığ vektöründeki j. bite karşılık gelmektedir.

(41)

) wt(a 2 2 1 max ) (a DSAC max (f) DSAC ∆Xi j 1 n 1 n n j , i 1 j N n j 1 N = = − − ≤ ≤ ≤ ≤ (2.9)

(2.9) daki ifade (2.10) daki gibi düzenlenerek kSAC(i,j) parametresi ile ilişkili olarak yazılabilir. j) (i, 2k 1 max (f) DSAC SAC n j i, 1 N = − ≤ ≤ (2.10)

2.3.4. Bit bağımsızlık kriteri (Bit Independence Criterion)

Bu ölçütü yine Webster ve Tavares [30] tanımlamışlardır. Bit bağımsızlık ölçütünü sağlayan (Bit Independence Criterion) (BIC) bir f:

{ }

0,1n →

{ }

0,1n için ,i ,jk∈

{

1,2....n

}

ve

k

j≠ olmak üzere, tüm i, j, k parametreleri için, giriş biti i’nin tersini almak j ve k çıkış bitlerinin bağımsız olarak değişmesine neden olacaktır. Bit bağımsızlık kavramını ölçmek için çığ vektörünün, ∆Y∆Xi, j. ve k. bitleri arasındaki ilinti (korelasyon) katsayısı

gereklidir. İki değişken, v ve w, arasındaki korelasyon (2.11) deki gibi hesaplanabilir.

) E(w) ) )(E(w E(v) ) (E(v E(v)E(w) E(vw) w) corr(v, 2 2 2 2 − = (2.11)

(2.12)’de E(v) yada E(w) bize çığ vektörü v yada w’nın ortalama değerini verecektir.

= tümXiçin n v(X) 2 1 E(v) (2.12)

(42)

Bir S kutusunun çığ vektöründeki bitler

[

∆Xi

]

n i ∆X 2 i ∆X 1 a ...a

a olmak üzere i. giriş

bitinin çığ vektörünün j. ve k. bitlerindeki etkisi ile ilgili bit bağımsızlık parametresi (2.13) ile verilebilir. i ∆X k i ∆X j k j,a ) corr(a ,a BIC(a = (2.13)

Eğer bir f fonksiyonu için BIC, bit bağımsızlık kriteri, düşünülürse tüm 1 ≤ i, j, k ≤ n için (2.14) ifadesi bize bunu verecektir.

i ∆X k i ∆X j k j i,j,k n 1 k j k j i,j,k n

1max BIC(a ,a ) max corr(a ,a

BIC(f) ≠ ≤ ≤ ≠ ≤ ≤ = = (2.14)

BIC(f), [0,1] aralığında değişmektedir ve olabildiğince 0’a yakın olması gereklidir. Böylelikle ∆Y∆Xi çığ vektörünün iki biti arasındaki korelasyon küçük olsun. En kötü

korelasyon değeri 1 dir ve bu da i giriş bitini değiştirdiğimizde j. ve k. çıkış bitleri arasında maksimum korelasyona denk düşer [26] [27][28].

2.3.5. S kutuları için özelliklerin harmanlanması

Bütünlük, çığ, katı çığ gibi özelliklerin anlaşılmasını kolaylaştırmak için kare n × n kare bir fark matrisi (D) oluşturulabilir. Bu matris, çığ vektörlerini kullanarak gerçekleştirilebilir. Bunun yolu çığ vektörlerinin toplamından geçer. (2.15) ve (2.16) bunu göstermektedir [27].

(43)

⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − − − − − − = tümXiçin n ∆X 2 ∆X 1 ∆X n ∆Y ∆Y ∆Y 2 1 D (2.15) nxn nn 21 11 d . . . . . . . . . . d . . . d D ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = (2.16)

(2.16) ifadesindeki d parametrelerinin bulunmasında (2.17) den faydalanılabilir. ) wt(a 2 1 d ∆Xi j n ij = (1 ≤ i, j, k ≤ n) (2.17)

(2.17) ifadesindeki d parametresinden faydalanarak kSAC(i,j)=dij ve kAVAL(i) =

= n 1 j ij d diyebiliriz. Aynı şekilde çığ vektörünün j. ve k. bitleri için korelasyon katsayılarının oluşturacağı bir matris tanımlanabilir. Bu matrisi B ile gösterirsek, bu matrisi bit bağımsızlık parametreler matrisi olarak isimlendirebiliriz. (2.18) ifadesi B matrisini göstermektedir. ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 2 n x n 1)n -(n n, n,1n n,12 1)n -(n 2, 2,2n 2,23 2,1n 2,12 1)n -(n 1, 1,2n 1,23 1,1n 1,12 b . . . . . . . . . . . . . . . . b . . . . b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b . . . . b . . . . b b . . . . b b . . . . b . . . . b b . . . . b B (2.18)

B matrisinin indisleri (2.19) daki ifadeden bulunabilir.

) a , BIC(a b ∆Xi k i ∆X j n k j, i, 1 jk i, = ≤ ≤ (2.19)

(44)

Örnek 2.18:

(2.18) ifadesinin anlaşılırlığı için bir örnek düşünelim. n = 4 için bir S kutusunun B matris indislerinin neler olacağını bulalım.

6 4 4,34 4,24 4,23 4,14 4,13 4,12 3,34 3,24 3,23 3,14 3,13 3,12 2,34 2,24 2,23 2,14 2,13 2,12 1,34 1,24 1,23 1,14 1,13 1,12 b b b b b b b b b b b b b b b b b b b b b b b b B × ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ =

Görüldüğü gibi indisler gösterilmiştir ve matrisimizin boyutu 4 × 6 bulunmuştur. Çünkü ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ 2 4 C = 6’dır.

2.3.6. MOSAC ve MOBIC özellikleri

SAC özelliği anlatılırken sadece bir bitin değişimi ile çıkış biti j’nin değişme olasılığı

2 1

olmalıdır denmişti. Yine bir f fonksiyonunun MOSAC (Maximum Order SAC) kriterini sağlayabilmesi [31] [32] için bir ya da daha fazla giriş biti değiştiğinde çıkış biti j’nin

2 1

olasılıkla değişmesi gerekir. (2.20) ifadesi bunu göstermektedir.

1 n ∆X

j ) 2

wt(a = − ∀∆X vej. (2.20)

Bunun anlamı ∆X≠(0,0,0,0....0) olmak üzere tüm ∆X vektörleri için çığ vektörü bitlerinin tümünün Hamming ağırlığının 2n−1 olması gerekir. MOBIC (Maximum Order

(45)

) a , corr(a max ) a , MOBIC(a ∆Xj ∆Xk {0,....0} , n {0,1} ∆X k j ≠ ∈ = (2.21)

Bir f fonksiyonunun maksimum dereceden bit bağımsızlığı aynı çıkış bitleri haricindeki )

a

MOBIC(aj, k değerlerinin maksimumudur. Bu ifade de (2.22) de gösterilmektedir.

) a , MOBIC(a max MOBIC(f) j k k j≠ = (2.22)

MOBIC ölçütünü sağlayan f fonksiyonu için MOBIC(f) = 0 olması gerekmektedir.

2.3.7. Doğrusal olmama kriteri

Non-lineer olma ya da doğrusal olmama S kutuları için çok önemli bir güvenlik ölçütüdür. Çünkü şifreleme algoritmasında bulunan S kutularının non-lineer ya da doğrusal olmaması istenir ve algoritmanın karıştırma safhasında önemli rol üstlenir.

Bir şifrenin doğrusal olmama (nonlinearity) parametresi NLMf (z), ki f :Zn2 →Zm2

ve z = (a,w,c) ∈ n m 1 2

Z + + olmak üzere, şifrenin tüm giriş değerleri için P∈Zn2 affine fonksiyon (w.P ⊕ c) ve sıfır haricindeki lineer kombinasyonları (a.f(P)) birbirinden farklılaşması ile tanımlanır. Burada a∈Zm2 ,w∈Z2n ve c∈Z2 dir. Şifrenin tüm nonlineer ölçüsü, NLMf (z), (2.23) ve (2.24) deki gibi tanımlanabilir [26][33].

c} w.P a.f(P) | {P # (z) NLMf = ≠ ⊕ (2.23) (z) NLM min NLM f z f = (2.24)

(46)

Doğrusal kriptanalizin f şifresine karşın başarısız olabilmesi için NLMf

olabildiğince maksimum değerine ( 2 1 n 1

n 2

2 − − − ) yakın olması gerekmektedir. NLMf’in 0’a

yakın değerler alması şifrenin affine fonksiyonlara yakın olduğunu ve doğrusal kriptanalizin şifremize karşı etkili olabileceğini gösterir.

Farklı n boyutlu giriş vektörlerine sahip boolean fonksiyonlarının nonlineerliğini karşılaştırmak için nonlineerlik ölçümünün normalini tanımlamamız gerekmektedir. (2.25) deki ifade [0,1] aralığında değerler almaktadır ve n giriş vektör büyüklüğünden bağımsızdır. n/2 1 n 1 n max f f 2 2 1 2 F(w) Max 2 1 2 NL NL NL − − = = − − − (2.25)

2.3.8. S kutularının doğrusal yaklaşım tablosu

Doğrusal yaklaşım tablosu (Lineer Approximation Table) (LAT) [34] [35] [36] doğrusal kriptanalize karşı S kutularının güvenliğinin ölçülmesinde çok önemli bir test ölçütüdür.. Verilen bir S kutusu m

2 n

2 Z

Z :

S → w. satır ve c. kolon LAT (w, c) (2.26) deki gibi tanımlanabilir. (2.26) daki ifadede P giriş bitlerini ve S(P) S kutusunun çıkış bitlerini göstermektedir. 1 n n 2 |w P c S(P)} 2 Z {P # c) LAT(w, = ∈ • = • − − (2.26)

En büyük LAT girişi (maxLATS(w,c)

c

w, ) çok önemlidir çünkü doğrusal kriptanalizin

Referanslar

Benzer Belgeler

Rien sur les amu­ sements innocents de Trianon et du Hameau; il a connu le comte de Fersen, mais ne nous en donne même pas une légère esquisse.. Peut-être aussi

Çoğunlukla Yıldız Kenter kuruyor cümleyi, ar­ dından parantezler açıyor Şükran Güngör.. Evet, ilk göz

18?S'TE HİZMETE GİREN, İSTANBUL'UN YARIM

蔣永孝教授學術分享:長期自發性運動對老鼠的多巴胺神經細胞具有保護作用

I. Aynı gruptaki canlılar farklı özellikler gösterebilir. Aynı özelliğe sahip tüm canlılar aynı gruptadır. Farklı gruptaki canlılar benzer özellikler gösterebilir. Besi

B) III. yolda sürtünme kuvveti az olduğu için araba bu yolda çok fazla kayar. yolda giderken arabanın lastiklerine yağ sürülürse aşınma azaltılabilir. yolda sürtünme

Bu anlamda kum içinde bulunan 0,063 mm elek altı yıkanabilir maddelerin (kil, silt ve çok ince taş unu) içeri- ği ve kalitesi beton kalitesi anlamında büyük önem

Bakırköy Tıp Dergisi, Cilt 9, Sayı 3, 2013 / Medical Journal of Bakırköy, Volume 9, Number 3, 2013 141. kullanımı; lökopeni, trombositopeni, aplastik anemi,