• Sonuç bulunamadı

Aes Algoritmasının Fpga Üzerinde Düşük Güçlü Tasarımı

N/A
N/A
Protected

Academic year: 2021

Share "Aes Algoritmasının Fpga Üzerinde Düşük Güçlü Tasarımı"

Copied!
101
0
0

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

Tam metin

(1)
(2)

˙ISTANBUL TEKN˙IK ÜN˙IVERS˙ITES˙I ⋆ FEN B˙IL˙IMLER˙I ENST˙ITÜSÜ

AES ALGOR˙ITMASININ FPGA ÜZER˙INDE DÜ ¸SÜK GÜÇLÜ TASARIMI

YÜKSEK L˙ISANS TEZ˙I Müh. Ahmed Yasir DO ˘GAN

Anabilim Dalı : ELEKTRON˙IK VE HABERLE ¸SME MÜHEND˙ISL˙I ˘G˙I Programı : ELEKTRON˙IK MÜHEND˙ISL˙I ˘G˙I

(3)

˙ISTANBUL TEKN˙IK ÜN˙IVERS˙ITES˙I ⋆ FEN B˙IL˙IMLER˙I ENST˙ITÜSÜ

AES ALGOR˙ITMASININ FPGA ÜZER˙INDE DÜ ¸SÜK GÜÇLÜ TASARIMI

YÜKSEK L˙ISANS TEZ˙I Müh. Ahmed Yasir DO ˘GAN

(504061201)

Tezin Enstitüye Verildi˘gi Tarih : 10 Eylül 2008 Tezin Savunuldu˘gu Tarih : 23 Ekim 2008

Tez Danı¸smanı : Yrd. Doç. Dr. Sıddıka Berna ÖRS YALÇIN Di˘ger Jüri Üyeleri Prof. Dr. Ali Emre HARMANCI

Prof. Dr. Ece Olcay GÜNE ¸S

(4)

ÖNSÖZ

Tez çalışmam boyunca bana yol gösteren ve desteğini benden esirgemeyen değerli danışman hocam Yrd. Doç. Dr. Sıddıka Berna Örs Yalçın’a teşekkürü bir borç bilirim.

Maddi ve manevi desteklerini benden esirgemeyen aileme teşekkür ederim.

(5)

˙IÇ˙INDEK˙ILER

KISALTMALAR v

TABLOLAR L˙ISTES˙I vi

¸SEK˙ILLER L˙ISTES˙I vii

SEMBOL L˙ISTES˙I ix

ÖZET x

SUMMARY xi

1. G˙IR˙I¸S 1

1.1. Tezin Kapsamı 2

1.2. Tezin Konuya Katkısı 3

2. MATEMAT˙IKSEL ÖN B˙ILG˙ILER 4

2.1. Galois Alanları 4

2.2. GF(2m) Genişletilmiş Alanı 4

2.2.1. Polinomsal Baz 5

2.2.2. Normal Baz 5

2.3. GF(2m) Üzerinde Matematiksel İşlemler 6

2.3.1. Toplama İşlemi 6 2.3.2. Çarpma İşlemi 6 2.4. Güç Kavramı 7 2.4.1. Dinamik Güç 7 2.4.2. Statik Güç 9 3. ¸S˙IFRE B˙IL˙IM˙I 10

3.1. Dizi Şifreleme sistemleri 11

3.1.1. Senkron Dizi Şifreleyiciler 12

3.1.2. Asenkron Dizi Şifreleyiciler 12

3.2. Blok Şifreleme Sistemleri 13

3.2.1. Elektronik Kod Kitabı (ECB) Yöntemi 14

3.2.2. Şifre Bloklarını Zincirleme (CBC) Yöntemi 14

3.2.3. Şifreyi Geri Besleme (CFB) Yöntemi 15

3.2.4. Çıkışı Geri Besleme (OFB) Yöntemi 15

4. SAHADA PROGRAMLANAB˙IL˙IR KAPI D˙IZ˙ILER˙I 17

4.1. Genel Bilgi ve Tarihsel Gelişim 17

4.2. Kullanım Alanları ve Üretici Firmalar 18

4.3. FPGA Genel Yapısı 18

4.4. FPGA Programlama 20

4.5. Gerçekleme Sırasında Kullanılan FPGA 21

(6)

5. AES (ADVANCED ENCRYPTION STANDARD) 28

5.1. Tur Dönüşüm İşlemleri 31

5.1.1. Bayt Değiştirme 31

5.1.2. Satırları Kaydırma 34

5.1.3. Sütunları Karıştırma 34

5.1.4. Tur Anahtarını Ekleme 35

5.2. Anahtar Üretim İşlemleri 35

6. GÜÇ TASARRUF YÖNTEMLER˙I 38

6.1. Platform Bağımlı Güç Tasarruf Yöntemleri 38

6.2. Platform Bağımsız Güç tasarruf yöntemleri 39

6.2.1. Kılçık Azaltma 39

6.2.2. Saat İşaretini Engelleme 40

6.2.3. Giriş İzolasyonu 42

6.2.4. Yeniden Zamanlama 42

6.2.5. Yerel Dönüşümler 43

7. ÖNCEK˙I ÇALI¸SMALAR 45

8. AES ALGOR˙ITMASININ DܸSÜK GÜÇLÜ TASARIMI 47

8.1. Farklı Yöntemlerle Bayt Değiştirme İşleminin Gerçeklenmesi 48

8.1.1. Tablo Yöntemi ile Gerçekleme 48

8.1.2. Bertoni Yöntemi ile Gerçekleme 49

8.1.3. Aritmetik Gerçekleme 52

8.2. Tur Sabiti ve Tur Sayacı İyileştirmeleri 60

8.3. Farklı AES Yapıları 61

8.3.1. Klasik Yapı AES Gerçeklemesi 61

8.3.2. Dış Kaydedicili Yol Yapısında AES Gerçeklemesi 65 8.3.3. İç ve Dış Kaydedicili Yol Yapısında AES Gerçeklemesi 69 8.3.4. Farklı AES Yapılarının Karşılaştırılması 73

9. SONUÇLAR ve TARTI¸SMA 77 KAYNAKLAR 79 EKLER 82 A. XPOWER KULLANIMI 82 B. VHDL DOSYALARI 87 ÖZGEÇM˙I ¸S 88

(7)

KISALTMALAR

AES : Advanced Encryption Standard DES : Data Encryption Standard

NIST : National Institute of Standards and Technology ECB : Electronic Code-Book

CBC : Cipher Block Chaining

CFB : Cipher Feedback

OFB : Output feedback

ASIC : Application Specific Integrated Circuit CPLD : Complex Programmable Logic Device FPGA : Field Programmable Gate Array CLB : Configurable Logic Block

LUT : Look-Up Table

RAM : Random Access Memory

SRAM : Static Random Access Memory

ROM : Read-Only Memory

WPAN : Wireless Personal Area Networks WLAN : Wireless Local Area Networks WSN : Wireless Sensor Network RFID : Radio-Frequency ıdentification PROM : Programmable Read-Only Memory

EPROM : Erasable Programmable Read-Only Memory

EEPROM : Electrically Erasable Programmable Read-Only Memory PAL : Programmable Array Logic

PLA : Programmable Logic Array PTG : Pass Transmission Gate

(8)

Ç˙IZELGE L˙ISTES˙I

Sayfa No

Çizelge 5.1 Tur Sayısının Anahtar Uzunluğuna Göre Değişimi. . . 29

Çizelge 5.2 S-Kutusu Çıkışları. . . 33

Çizelge 8.1 S-Kutusu Tablo Gerçeklemesi Alan, Zaman ve Güç Bilgileri. 49 Çizelge 8.2 S-Kutusu Bertoni Gerçeklemesi Alan, Zaman ve Güç Bilgileri. 51 Çizelge 8.3 İyileştirilmiş Bertoni S-Kutusu Gerçeklemesi Alan, Zaman ve Güç Bilgileri. . . 52

Çizelge 8.4 GF(24) Alanında Ters Elemanlar. . . . . 56

Çizelge 8.5 Aritmetik S-Kutusu Gerçeklemesi Alan, Zaman ve Güç Bilgileri. . . 58

Çizelge 8.6 İyileştirilmiş Aritmetik S-Kutusu Gerçeklemesi Alan, Zaman ve Güç Bilgileri. . . 60

Çizelge 8.7 Klasik Yapı Alan ve Frekans Sonuçları. . . 63

Çizelge 8.8 Klasik Yapı Güç Tüketim Sonuçları. . . 64

Çizelge 8.9 Klasik Yapı Bir Bitin Şifrelenmesi için Gerekli Enerji. . . 64

Çizelge 8.10Dış Kaydedicili Yol Yapısı Alan ve Frekans Sonuçları. . . 67

Çizelge 8.11Dış Kaydedicili Yol Yapısı Güç Tüketim Sonuçları. . . 68

Çizelge 8.12Dış Kaydedicili Yol Yapısı Bir Bitin Şifrelenmesi için Gerekli Enerji. . . 68

Çizelge 8.13İç ve Dış Kaydedicili Yol Yapısı Alan ve Frekans Sonuçları. . 71

Çizelge 8.14İç ve Dış Kaydedicili Yol Yapısı Güç Tüketim Sonuçları. . . . 72

Çizelge 8.15İç ve Dış Kaydedicili Yol Yapısı Bir Bitin Şifrelenmesi için Gerekli Enerji. . . 72

Çizelge 8.16İyileştirilen AES Yapıları Alan Sonuçları. . . 73

Çizelge 8.17İyileştirilen AES Yapıları Frekans Sonuçları. . . 74

Çizelge 8.18İyileştirilen AES Yapıları Güç Tüketim Sonuçları. . . 74

(9)

¸SEK˙IL L˙ISTES˙I

Sayfa No

¸Sekil 2.1 : CMOS Evirici Yapısı. . . 8

¸Sekil 3.1 : Dizi Şifreleme Sistemleri. . . 11

¸Sekil 3.2 : Blok Şifreleme Sistemleri. . . 13

¸Sekil 3.3 : ECB Yöntemi ile Şifeleme İşlemi . . . 14

¸Sekil 3.4 : ECB Yöntemi ile Şife Çözme İşlemi . . . 14

¸Sekil 3.5 : CBC Yöntemi ile Şifreleme İşlemi. . . 15

¸Sekil 3.6 : CBC Yöntemi ile Şifre Çözme İşlemi. . . 15

¸Sekil 3.7 : CFB Yöntemi ile Şifreleme İşlemi. . . 15

¸Sekil 3.8 : CFB Yöntemi ile Şifre Çözme İşlemi. . . 16

¸Sekil 3.9 : OFB Yöntemi ile Şifreleme İşlemi. . . 16

¸Sekil 3.10 : OFB Yöntemi ile Şifre Çözme İşlemi. . . 16

¸Sekil 4.1 : FPGA Yapısı. . . 19

¸Sekil 4.2 : CLB Yapısı. . . 19

¸Sekil 4.3 : CLB Giriş Çıkışlarının FPGA Üzerindeki Görünümü. . . 19

¸Sekil 4.4 : Programlanabilir Ara Bağlantılar. . . 20

¸Sekil 4.5 : Virtex 4 CLB Ara Bağlantıları. . . 22

¸Sekil 4.6 : SLICEM Şematik Diyagramı. . . 23

¸Sekil 4.7 : SLICEL Şematik Diyagramı. . . 24

¸Sekil 4.8 : Virtex 4 I/O döşemeleri. . . 25

¸Sekil 4.9 : Giriş Lojiği Yapısı. . . 26

¸Sekil 4.10 : Çıkış Lojiği Yapısı. . . 27

¸Sekil 5.1 : Durum Dizisi. . . 29

¸Sekil 5.2 : AES Blok Şema. . . 30

¸Sekil 5.3 : Tur Dönüşüm Blok Şema. . . 32

¸Sekil 5.4 : Bayt Değiştirme Dönüşümü. . . 32

¸Sekil 5.5 : Satırları Kaydırma İşlemi. . . 34

¸Sekil 5.6 : Sütunları Karıştırma İşlemi. . . 35

¸Sekil 5.7 : Anahtar Ekleme İşlemi. . . 35

¸Sekil 5.8 : 128 bitlik giriş anahtarı için Anahtar Üreteci. . . 36

¸Sekil 6.1 : Kılçık Örneği. . . 40

¸Sekil 6.2 : Kaydedici Elemanı Ekleyerek Kılçık Azaltma. . . 40

¸Sekil 6.3 : Dengesiz Yol Gecikmelerine Sahip Devre . . . 40

¸Sekil 6.4 : Dengeli Yol Gecikmelerine Sahip Devre. . . 41

¸Sekil 6.5 : Tipik Kontrol İşaretli Senkron Kaydedici Elemanı. . . 41

¸Sekil 6.6 : Saat İşareti Engellenmiş kaydedici Elamanı. . . 42

¸Sekil 6.7 : Giriş İzolasyonu Uygulanmamış Devre. . . 42

¸Sekil 6.8 : Giriş İzolasyonu Uygulanmış Devre. . . 42

¸Sekil 6.9 : Yeniden Zamanlama Yöntemi Uygulanmamış Devre. . . 43

¸Sekil 6.10 : Yeniden Zamanlama Yöntemi Uygulanmış Devre. . . 43

(10)

¸Sekil 8.1 : S-Kutusu Bertoni Yapısı. . . 49

¸Sekil 8.2 : 7 Bitlik Dekoder Yapısı. . . 50

¸Sekil 8.3 : S-Kutusu Güç Tasarruflu Dekoder Yapısı. . . 51

¸Sekil 8.4 : İyileştirilen Bertoni Yapısı. . . 52

¸Sekil 8.5 : GF(24) Alt Alanını Kullanarak Ters Alma. . . 55

¸Sekil 8.6 : İyileştirme yapılmış Aritmetik S-Kutusu Şematik Gösterilimi. 59 ¸Sekil 8.7 : Klasik Yapı AES gerçeklemesi. . . 62

¸Sekil 8.8 : Dış Kaydedicili Yol Yapısı AES gerçeklemesi. . . 66

¸Sekil 8.9 : İç ve Dış Kaydedicili Yol Yapısı AES Gerçeklemesi. . . 70

¸Sekil A.1 : Simülasyon Verilerinin Toplanması. . . 83

¸Sekil A.2 : VCD Dosyasının Alınması. . . 84

¸Sekil A.3 : XPOWER Aracının Çalıştırılması. . . 84

¸Sekil A.4 : FPGA’in Kullandığı Statik Güç Değerleri . . . 85

¸Sekil A.5 : Simulasyon Dosyasının (VCD) Yüklenmesi . . . 85

(11)

SEMBOL L˙ISTES˙I

Z : Tamsayılar kümesi katsayıları GF(p) : p elemanlı Galois alanı

GF(pn) : pn elemanlı Galois alanı

GF(2n) : 2n elemanlı Galois alanı

a(x) : GF(28)’deki a elemanın polinomsal gösterimi E() : Şifreleme fonksiyonu

C : Şifrelenmiş veri D() : Çözme fonksiyonu

P : Açık veri

Nr : Tur sayısı

Nk : Kelime (32-bit) cinsinden anahtar uzunluğu

Si : i’inci durum baytı

RCON : Anahtar üreteci tur sabiti ah,al : a’nın alt alan gösterimleri

(12)

AES ALGOR˙ITMASININ FPGA ÜZER˙INDE DÜ ¸SÜK GÜÇLÜ TASARIMI ÖZET

Kriptografik algoritmalar gün geçtikçe daha yaygın kullanım alanları bulmaktadır. İlk zamanlarda yüksek hız ve yüksek işlem gücü kapasitesine sahip devreler tasarlanmaya çalışılırken, enerji ve alan kısıtına sahip ortamlarda kullanım alanlarının artmasıyla güç ve alan tasaruflu gerçeklemeler büyük önem kazanmıştır. Bu konu üzerine artarak devam eden araştırmalarda düşük güç tasarrufu için farklı yöntemler önerilmekte ve gerçeklemelerin güç harcamaları azaltılmaya çalışılmaktadır.

Bu çalışmada Gelişmiş Kodlama Standardı (AES: Advanced Encryption Standart) algoritması sahada programlanabilir kapı dizisi (FPGA: Field Programmable Gate Array) üzerinde gerçeklenmekte ve güç tasarruf yöntemlerinden yararlanılarak dinamik güç harcamaları azaltılmaktadır.

Bu amaç doğrultusunda ilk olarak AES algoritması içerisinde yer alan alt bloklardan en çok güç harcayan blok olarak S-Kutusu belirlenmiş ve güç harcamalarını karşılaştırabilmek amacıyla farklı yöntemlerle S-Kutusu gerçeklenmiştir. Daha sonra yaygın kullanım alanına sahip Klasik, Dış Kaydedicili Yol, İç ve Dış Kaydedicili Yol yapılarında AES algoritması gerçeklenmiş ve bilgisayar benzetim programı ile yapıların test vektörü girişlerine karşılık doğru sonuçlar verdiği gösterilmiştir.

Literatürde yer alan güç tasarruf yöntemleri incelenmiş ve bu yöntemler kullanılarak farklı yapılarda gerçeklenen AES algoritmaları üzerinde güç tasarrufu sağlanmıştır. Güç harcamasının fazla olması nedeniyle S-Kutusu üzerine yoğulaşılmış ve farklı yöntemlerle gerçeklenen S-Kutuları üzerinde iyileştirmeler yapılmıştır. İyileştirme yapılmadan önce ve iyileştirme yapıldıktan sonraki gerçeklemeler için dinamik güç harcamaları karşılaştırılmış, ayrıca devrelere ait alan ve zaman bilgileri de incelenmiştir. Güç Harcaması ile birlikte farklı AES yapılarının bir biti şifrelemek için gereksinim duyduğu enerji miktarları da karşılaştırılmıştır.

(13)

POWER EFFICIENT FPGA IMPLEMENTATION OF AES ALGORTIHM SUMMARY

Cryptographic algorithm applications has been becoming widespread. In early, crptographic circuit designs focused on high speed and high throughput. As its applications growing up on power and area resource-limited platforms, power and area efficient implemantations are becoming more important. This is why there has been lots of research on low power design which advise different methods for reducing power consumption of implemantations.

In this study, dynamic power consumptions of Field Programmable Gate Array (FPGA) implementations of the Advanced Encryption Standart (AES) has been reduced by using low power design methods.

For this purpose, first of all, it is identified that S-BOX dissipates the most of power dissipated in AES. For comparasion of power dissipations, different methods are used to implement AES SBOX. Then AES implemented by using Basic Architecture, Outer Pipeline Architecture and Inner Outer Pipeline Architecture which have widespread applications. Computer simulations have been used to show that the implementations of the algorithm generate correct outputs against test vectors.

Low power design techniques are examined and power consumption of implemented architectures of AES algorithm are reduced by using these techniques. Because of much power dissipation, implemented SBOXes by using different methods are improved so that their power dissipation is reduced. Before and after applying low power techniques on AES architectures are compared according to the power dissipations, area requirements and maximum operating frequency of each architectures for each SBOXes. Also the needed energy for encrypting one bit studied for all architectures which are implemented.

(14)

1. G˙IR˙I ¸S

Kriptografi şifre bilimidir, çeşitli iletilerin, bilgilerin herkese açık ortamlarda iletilirken istenmeyen kişiler tarafından kullanılmasını veya değiştirilmesini önlemek amaçlı kullanılır. Kriptografi, bilgiyi güvenli bir şekilde sadece istenilen kişiye ulaştırmak amacıyla uzun süredir kullanılmaktadır. Önceleri askeri amaçlı kullanıldıysa da gelişen teknoloji ile birlikte ortaya çıkan güvenlik açığını kapatmak ve bilginin güvenilir bir şekilde taşınmasını sağlamak amacıyla sivil yaşamda da yerini almıştır.

Veri transferi sırasında güvenilirliği sağlamak için sıkça kriptografik algoritmalar kullanılır. Kullanılan bu algoritmaları donanımsal veya yazılımsal olarak gerçeklemek mümkündür. Yazılımsal gerçeklemeler daha az maliyet getirmekle birlikte yavaş ve güvensizdirler. Donanımsal gerçeklemelerin ise istenilen yüksek hızlarda çalışma imkanları vardır, ayrıca yazılımsal gerçeklemelere oranla daha güvenilir gerçeklemelerdir.

Pek çok kripto algritması yüksek hız ve yüksek işlem hacmine sahip olacak şekilde Sahada programlanabilir kapı dizileri (FPGA) ve uygulamaya özel tüm devre (ASIC) teknolojileri kullanılarak gerçeklenmektedirler. Gelişen teknloloji ile kripto algoritmaları daha yaygın kullanım alanı bularak, alan ve enerji kısıtlaması bulunan ortamlarda da kullanılmaya başlanmıştır. Kablosuz yerel ağ bağlantıları (WLAN), kablosuz kişisel alan bağlantıları (WPAN), Kablosuz algılayıcı bağlantıları (WSN), akıllı kartlar ve RFID (Radio-Frequency Identification) gibi alan ve enerji kısıtlaması bulunan ortamlarda yüksek hızlardan ziyade güç tasarruflu ve küçük alanlı tasarımlar önem kazanmaktadır.

Bir elektronik devrede temel olarak harcanan iki tür güç kavramından bahsedilebilir. Bunlardan ilki statik güç olarak adlandırılır, devreye herhangi bir giriş uygulanmadan, devrenin sükunet halinde harcadığı güçtür. Devre üzerinde harcanan diğer güç ise dinamik güçtür. Dinamik güç devreye verilen

(15)

girişlerin işlenmesi sırasında harcanan güçtür. Bir devreye ait statik güç harcaması zamanla değişmezken, dinamik güç harcaması uygulanan girişlere bağlı olduğundan zamanla değişmektedir.

ASIC uygulamalarında devrenin harcadığı statik güç genel olarak harcanan dinamik güce oranla çok daha azdır. FPGA’lerde ise statik güç tasarıma çok da bağlı olmadan FPGA içerisinde kullanılan teknolojiye bağlı olarak yüksek değerlere ulaşabilmektedir. Her iki teknolojide de, ASIC ve FPGA, dinamik güç harcamaları üzerinde tasarruf sağlanmaya çalışılmaktadır. Dinamik güç harcamalarını azaltmak için güç tasarruf yöntemleri mevcuttur, bu yöntemlerden bazıları devrede oluşan istenmeyen geçiş işareti kılçıkları (glitch) azaltmaya çalışmaktadır. Bazı yöntemler ise çıkışı kullanılmayan blokları uyutmayı, içeriği güncellenmeyecek kaydecilerin saat işaretini kesmeyi önermektedir. Tasarım sırasında bu tür yöntemlere dikkat ederek dinamik güç harcamasını azaltmak mümkündür.

1.1 Tezin Kapsamı

Joan Daemen ve Vincent Rijmen tarafından geliştirilen Rijndael [1] algoritması güvenlik, performans, gerçekleme kolaylığı gibi özellikler dikkate alınarak Amerikan ulusal standartlar ve teknoloji enstitüsü (National Institute of Standards and Technology (NIST)) tarafından gelişmiş kodlama standardı (Advanced Encryption Standard (AES)) olarak seçilmiş ve federal bilgi işleme standardı (Federal Information Processing Standards (FIPS)) olarak yayımlanmıştır [2]. AES algoritması bilgiyi şifrelemek ve çözmek için kullanılan simetrik blok şifreleyicidir.

AES algoritmasının yayımlanmasından sonra pek çok yazılımsal ve donanımsal gerçeklemeleri yapılmıştır. Donanım gerçeklemelerinin çoğu FPGA ve ASIC teknolojileri üzerinde, yüksek hız ve yüksek işlem hacmi kriterleri sağlanarak gerçeklenmişlerdir [3–5]. Gelişen teknoji ile birlikte kaynak kısıtlı ortamlarda da bilgiyi şifreleme gereksinimi duyulmaktadır. Bu ortamlarda güç tasarruflu AES gerçeklemelerine ihtiyaç duyulmaktadır.

(16)

Bu çalışmada AES algoritmasında yer alan S-Kutusu 3 farklı yöntemle gerçeklenmiş ve gerçeklenen S-Kutularının Klasik (Basic Architecture), Dış Kaydedicili Yol (Outer Pipeline) ve İç ve Dış Kaydedicili Yol (Inner Outer Pipeline) yapılarındaki AES gerçeklemelerinin güç harcamaları incelenmiştir. Farklı yöntemlerle gerçeklenen S-Kutuları üzerinde iyileştirmeler yapılmış ve her üç yapı için de güç tasarruf yöntemlerinden yararlanılarak devrelerin dinamik güç harcamaları azaltılmıştır. Tüm bu gerçeklemeler sırasında FPGA teknolojisi kullanılmıştır.

1.2 Tezin Konuya Katkısı

Literatürde, son zamanlarda düşük güç tüketen AES gerçeklemelerine yoğunlaşılmıştır. Bu gerçeklemelerden çoğu ASIC teknolojisi üzerinde yapılmış olup, FPGA gerçeklemesi çok sınırlıdır. Bu çalışma FPGA üzerinde gerçeklenmiş olup, algoritmada yer alan S-Kutusu bloğunun en çok güç tükettiği gözönüne alınarak 3 farklı yöntemle S-Kutusu tasarımı gerçeklenmiş ve bu gerçeklemeler üzerinde iyileştirmeler yapılmıştır. AES algoritması Klasik, Dış Kaydedicili Yol, İç ve Dış Kaydedicili Yol yapılarında tasarlanmış, bu yapılar üzerinde güç tasarruf yöntemleri uygulanmış ve iyileştirilmiş S-Kutusu gerçeklemelerinin güç tasarruf katkıları incelenmiştir. Ayrıca gerçeklenen 3 farklı AES yapısı için güç harcamaları ve bir bitin şifrelenmesi için gerekli enerji miktarları incelenmiştir. Gerçeklenen yapıların alan ve maksimum çalışma frekansı bilgilerine de yer verilmiştir.

(17)

2. MATEMAT˙IKSEL ÖN B˙ILG˙ILER

Bu bölümde çalışmanın anlaşılabilirliğini artırmak için gerekli matematiksel bilgiler verilecek ve güç kavramına değinilecektir.

2.1 Galois Alanları Tanım 2.1 :GF(p)

psayısı asal olmak üzere {0,1,2...,p-1} tamsayı elemanlarından oluşan ve üzerinde

modülo p toplama (+), modülo p çarpma (*) işlemleri tanımlı alana Galois alanı denir ve GF(p) olarak gösterilir. p sayısı Galois alanının karakteristiği olarak adlandırılır.

Tanım 2.2 :GF(pm) Genişletilmiş Alan

GF(p) sonlu alan q = pn olmak üzere GF(q) alanına genişletilmiş alan denir.

GF(p) alanının genişletilmesi ile oluşturulan GF(pm) alanı pm elemana sahiptir.

Genişletilmiş alanın Galois alanı oluşturabilmesi için üzerinde tanımlı işlemler gerçekleştirilirken m. dereceden bir polinom kullanılır. Kullanılan m. dereceden polinomun çarpanlarına ayrılamaması gerekmektedir, yani indirgenemez polinom olması gerekmektedir.

2.2 GF(2m) Geni¸sletilmi¸s Alanı

GF(2m) alanı özel olarak GF(2) alanı üzerinden genişletilmiştir. GF(2) alanı

ikilik düzende çok büyük bir öneme sahiptir. Bu alan üzerindeki elemanlar "0" veya "1" olarak gösterilmektedir ve bit gösterilimi ile aynıdır. GF(2m) alanı

üzerinde tanımlı bir eleman "0" ve "1"’lerden oluşan m bitlik bir sayı olarak düşünülebilir. GF(2m) sonlu alanı bu özelliğinden dolayı kriptografi alanlanında

pek çok uygulamaya sahiptir [6, 7]. Tanım 2.3 :Baz

(18)

∀a ∈ GF(2m) elemanı tek olarak (2.1)’da verildiği gibi gösterilebilir; a= m−1

i=0 (ai∗αi), ai∈ {0,1} (2.1) (αm−1,αm−1,α1,α0) kümesi GF(2

m) sonlu alanının bazı olarak ifade edilir. GF(2m) tanımlı elemanların gösterilimi sırasında kullanılan yöntem, sonlu alan üzerindeki işlemlerde farklı zorluklar ve kolaylıklar sağlar [8, 9].

2.2.1 Polinomsal Baz

Tanım 2.4 :İndirgenemez Polinom

f(x) = xm+∑mi=0−1( fi∗ xi) fi∈ {0,1} olmak üzere GF(2)’de tanımlı m. dereceden

f(x) polinomu aynı alan üzerinde tanımlı diğer polinomların çarpımı şeklinde yazılamıyorsa f (x) polinomu indirgenemez polinomdur ve indirgeme poninomu olarak adlandırılır.

∀a ∈ GF(2m) için a elemanının polinomsal baz gösterilimi ai∈ {0,1} olmak üzere Denklem (2.2)’de verilmektedir.

a= (am−1am−2. . .a1a0) = am−1x

m−1+ a

m−2xm−2+ · · · + a1x+ a0 (2.2) Polinomsal gösterilim Galois alanları üzerinde çok yaygın bir kullanıma sahiptir, bu çalışma sırasında polinomsal gösterilim kullanılmaktadır.

2.2.2 Normal Baz β ∈ GF(2m) olmak üzere (β ,β 2 ,β 4 . . .β 2m−1) kümesi GF(2m) alanının GF(2)

üzerinde tanımlı normal bazıdır.

∀a ∈ GF(2m) için a elemanının normal baz gösterilimi Denklem (2.3)’de

verilmektedir. a= (am−1am−2. . .a1a0) = m−1

i=0 (ai∗β2 i ), ai∈ {0,1} (2.3)

(19)

2.3 GF(2m) Üzerinde Matematiksel ˙I¸slemler

2.3.1 Toplama ˙I¸slemi

GF(2m) sonlu alanı üzerinde tanımlı toplama işlemi bu alan üzerinde tanımlı

elemanların polinomsal gösterilimlerinin toplanması ve daha sonra polinom katsayılarının modülo 2 olarak düzenlenmesi ile gerçekleştirilir.

Örnek 2.1 :Toplama a,b,c∈ GF(2 m) a= (11001111) = {x7+ x6+ x3+ x2+ x + 1},b= (10001000) = {x7+ x3} c= a + b = x7+ x6+ x3+ x2+ x + 1 + x7+ x3= 2x7+ x6+ 2x3+ x2+ x + 1 c= x6+ x2+ x + 1 = (01000111)

Yapılan işlemler incelendiğinde toplama işleminin bit bit e-xor’lama işleminden ibaret olduğu görülebilir. Bu özellik donanım gerçeklemelerinde büyük kolaylık sağlamaktadır.

GF(2m) sonlu alanı üzerinde çıkarma işlemi toplama işlemi ile aynıdır. Her

iki işlem de sonlu alan üzerinde tanımlı elemanların bit bit e-xor’lanması ile gerçeklenir.

2.3.2 Çarpma ˙I¸slemi

GF(2m) alanı üzerinde tanımlı çarpma işlemi modülo P(x) polinomu uyarınca

gerçekleştirilir. P(x) polinomu Tanım 2.3’de verilen indirgeme polinomudur. Çarpılacak olan elemanların polinomsal gösterilimi birbirleri ile çarpılır ve çıkan sonucun P(x) polinomuna bölümünden kalan GF(2m) sonlu alanı üzerinde tanımlı

çarpma işleminin sonucuna eşittir. Örnek 2.2 :Çarpma P(x) = x8+ x4+ x3+ x + 1 a,b,c∈ GF(2 m) a= (01010111) = {x6+ x4+ x2+ x + 1},b= (10000011) = {x 7+ x + 1} c= a ∗ b = {x6+ x4+ x2+ x + 1} ∗ {x7+ x + 1} = x13+ x11+ x9+ x8+ x6+ x5+ x4+ x3+ 1 = x13+ x11+ x9+ x8+ x6+ x5+ x4+ x3+ 1 (mod x8+ x4+ x3+ x + 1) = x7+ x6+ 1

(20)

P(x) indirgeme polinomu çarpma işleminin sonucunun aynı alan üzerindeki bir elemana denk düşmesini garanti eder.

GF(2m) alanı üzerinde tanımlı sıfırdan farklı her elamanın çarpmaya göre tersi

mevcuttur. sıfır elemanının tersi ise yine sıfırdır. Alan üzerinde tanımlı herhangi bir b(x) poliomunun tersi b(x)−1olarak gösterilir. Denklem (2.4)’ün geçerli olduğu

durum için b(x)−1= a(x) olarak tanımlanır.

a(x) ∗ b(x) = 1 (mod P(x)) P(x) indirgeme polinomu. (2.4)

2.4 Güç Kavramı

Devrede güç tasarrufu sağlayabilmek için ilk olarak güç harcamasının nasıl yapıldığını anlamak gerekir. Pek çok teknolojide CMOS yapıların kullanılması nedeniyle CMOS üzerinde güç harcamasının nasıl gerçekleştiği önemlidir. Genel olarak CMOS devreler üzerinde harcanan gücü ifade etmek gerekirse [10];

P= Pdinamik+ Pstatik (2.5) Pdinamik= ( 1 2∗CL∗V 2 DD+ QSC∗VDD) ∗ f ∗ N (2.6) Pstatik= Ileak∗VDD (2.7)

Devre üzerinde dinamik ve statik olmak üzere iki tür güç harcaması yapılır. Dinamik güç CMOS çıkışlarının 0 -> 1 veya 1 -> 0 lojik geçişleri sırasında harcanmaktadır. Dinamik güç harcamısına ait ifade Denklem 2.6’da verilmektedir. Statik güç harcaması ise devrenin sükunet halindeyken harcadığı güçtür. Statik güç devre çıkışındaki lojik geçişler ve devrenin çalışma frekansından bağımsızdır. Çalışma süresince aksi belirtilmediği takdirde güç harcamasından kasıt dinamik güç harcamasıdır.

2.4.1 Dinamik Güç

CMOS evirici üzerinde harcanan dinamik güç; evirici çıkışındaki lojik geçişlerden ve anlık olarak her iki transistorun de aynı anda iletim yönünde kutuplanmasından kaynaklanır. Her iki bileşen de çalışma frekansına ve lojik seviye değiştiren kapı sayısına bağlı ifadelerdir. En basit CMOS yapısı olan Şekil 2.1’de verilen evirici gözönüne alındığı takdirde; lojik geçişler sırasında C1 ve

(21)

¸Sekil 2.1: CMOS Evirici Yapısı.

C2 kapasitelerinin doldurulup boşaltılmasıyla güç harcaması yapılır. Örneğin; giriş A=0 durumunda iken Q1 transistoru kesimde, Q2 transistoru ise iletimde olacaktır. Böylece çıkışın lojik 1 seviyesine gelmesi sağlanacaktır. Çıkışın lojik 1 seviyesine gelmesi için C1 kapasitesinin doldurulması C2 kapasitesinin ise boşaltılması gerekir. Benzer olarak giriş A=1 durumunda iken çıkış lojik 0 seviyesine çekilecek ve C1 kapasitesi boşaltılırken, C2 kapasitesi ise doldurulacaktır. Böylelikle bir lojik değişim periyodu süresince C1 ve C2 kapasiteleri tarafından harcanan güç CL = C1+ C2 olmak üzere 12∗ (CL) ∗ VDD2

olarak ifade edilebilir. Bu bağlamda herhangi bir CMOS devresinde kapı çıkışlarının lojik seviye değiştirmesinden kaynaklanan güç harcaması Denklem 2.8’de verilmektedir, denklemde yer alan f frekans bileşenini, N ise lojik geçiş sayısını ifade etmektedir.

Psw=

1

2∗ (CL) ∗V 2

DD∗ f ∗ N (2.8)

Giriş A lojik seviyesindeki değişiklik sırasında anlık olarak her iki transistorde iletime geçer. Giriş gerilim değerinin VT (eşik gerilim değeri) ve VDD−VT değerleri

arasında olduğu zamanlarda VDD besleme gerilimi ile toprak arasında kısa devre

oluşur, ve bu durum devreden akım çekilmesine neden olur. Bu süre zarfında devreden çekilen güç QSC kısa devre akımı tarafından taşınan eşlenik yükü temsil

etmek üzere Denklem 2.9’de verilmektedir [11, 12].

PSC= QSC∗VDD∗ f ∗ N (2.9)

2.8 ve 2.9 denklemleri incelenirse devrenin harcadığı dinamik gücün frekansa bağımlı olduğu görülmektedir. Frekans değeri düştükçe devrede harcanan güç

(22)

azalmaktadır. Fakat frekansı düşürmek devrenin belirlenmiş bir görevi yapma süresini arttırmaktadır. Devrede harcanan dinamik güç önemli olduğu kadar harcanan enerjinin de önemi büyüktür. Dinamik güç değerinin tek başına düşük değerlere sahip olması yeterli değildir, harcanan enerjinin de düşük değerlerde olması gerekir. Bir devrede harcanan enerji E = P.t olarak ifade edilir. Dinamik güç tüketiminden kaynaklı enerji tüketimi; Edinamik = Pdinamik∗ t olarak ifade

edilebilir. 2.8 ve 2.9 denklemleri incelendiği takdirde Edinamik değerinin çalışma

frekansından bağımsız olarak sabit kaldığı görülmektedir. Ayrıca harcanan dinamik güç değeri VDD gerilimine bağlı olarak değişmektedir. VDD gerilimi ise

kullanılan teknolojiye bağlıdır.

2.4.2 Statik Güç

Statik güç devre üzerinde hiç bir aktivite olmadığında harcanan güç olarak ifade edilebilir. Şekil 2.1’deki evirici üzerinden ifade etmek gerekirse giriş A lojik 0 seviyesinde olduğunda Q1 transistoru tıkama yönünde kutuplanmaktadır. Fakat bu transistor üzerinde sızıntı akımı oluşmaktadır. Benzer olarak giriş A lojik 1 seviyesindeyken Q2 transistoru tıkama durumunda olacak ve üzerinden sızıntı akımı akacaktır. Böylelikle devre üzerinde girişte herhangi bir aktivite olmaksızın sızıntı akımlarından kaynaklanan statik güç harcanacaktır. Harcanan statik güç ifadesi aşağıda verilmektedir.

PS= Ileak∗VDD (2.10)

Sızıntı akımlarından kaynaklanan statik güç harcaması dinamik güç harcamasına oranla düşük seviyelerde kalmaktadır, fakat gelişen teknoloji ile birlikte transistor eşik gerilim değerleri düşmektedir. Böylece statik güç değerinin baskın duruma gelmesi beklenmektedir [13].

(23)

3. ¸S˙IFRE B˙IL˙IM˙I

Kriptografi şifre bilimidir, Çeşitli iletilerin, bilgilerin herkese açık ortamlarda iletilirken istenmeyen kişiler tarafından kullanılmasını veya değiştirilmesini önlemek amaçlı kullanılır. Kriptografi, bilgiyi güvenli bir şekilde sadece istenilen kişiye ulaştırmak amacıyla uzun süredir kullanılmaktadır. Tarihin bilinen ilk şifreleme yöntemi yer değiştirme ve harf değiştirme yöntemidir. Bu yöntemlerden ilki bir yazıdaki harflerin yerlerini değiştirerek, ikincisi ise harfleri başka harflerle değiştirerek gerçekleştirilir. Kriptografik sistemler önceleri askeri amaçlı kullanıldıysa da gelişen teknoloji ile birlikte ortaya çıkan güvenlik açığını kapatmak ve bilginin güvenilir bir şekilde taşınmasını sağlamak amacıyla sivil yaşamda da yerini almıştır. İletilmek istenen veri açık ağlar üzerinden iletildiğinde veri istenmeyen kişiler tarafından dinlenme veya değiştirilme tehdidi altındır. Söz konusu veri şifrelenmemiş düz metindir (plaintext). İletinin içeriğini saklamak üzere ileti üzerindeki gizleme işlemine şifreleme (encryption) denir. Bu işlem sonucunda düz metin şifrelenmiş olur ve böylelikle bilginin içeriği başkaları tarafından anlaşılamayacak hale gelir. Şifreleme işlemi sonucu oluşan metine şifreli metin (ciphertext) denir. Şifreleme amaçlı kullanılan algoritmanın güvenliği bu algoritmanın saklı tutulması ile sağlanıyorsa bu bir sınırlandırılmış algoritmadır. Bu tür algoritmalar günümüz şartlarına pek uymamaktadır. Algoritmanın güvenliği sadece gizli tutulmasıyla sağlandığından istenmeyen bir durumda algoritmanın açığa çıkması ile kullanılan tüm sistemin değiştirilmesi gerekir. Aynı zamanda bu tür algoritmaların gizliliği nedeniyle kalite kontrolüne ve standardizasyona olanak tanımadığından bu tür algoritmalar güvenli bir şifreleme sağlamazlar. Günümüzde bu sorun açık algoritma, gizli anahtar tekniği ile giderilmektedir. Günümüzde kullanılan şifreleme algoritmaları artık gizli değildir. Bilginin güvenliği algoritmanın gizlenmesi ile değil, iletiyi şifrelemek amaçlı kullanılan anahtarın saklı tutulması ile sağlanır. Kullanılan anahtar çok çeşitli değerler alabilir ve yalnızca bu anahtara sahip kişiler istenilen bilgiye

(24)

ulaşabilir. Şifreleme sistemlerinde kullanılan anahtarların özgün olması ve kendini tekrarlamaması istenir. Gizli anahtar kullanan şifreleme sistemleri iki gruba ayrılır; bunlar blok şifreleme (block cipher) ve dizi şifreleme (stream cipher) sistemleridir.

3.1 Dizi ¸Sifreleme sistemleri

Dizi şifreleyiciler zamanla değişen anahtar yardımıyla düz metinin her bir bitini sırayla şifrelerler. Dizi şifreleyiciler yüksek hızlı iletişim için en iyi alternatiflerden birisidir. Yüksek hatalı iletişim ortamlarında hata riskini azalttığından tercih sebebidirler. Dizi şifreleme sistemleri genel olarak Şekil 3.1’de verilen yapıya sahiptirler. Şifrelenecek olan düz metnin bit dizisi şeklindeki ifadesi olan P dizisinin bir biti ile üretilen anahtar dizisinin bir biti e-xor işlemine tabi tutularak şifrelenmiş metine ait olan C biti elde edilir. Bu işlem düz metine ait bütün bitler için uygulanarak istenilen şifrelenmiş metin elde edilir. Şifrelenmiş metinden düz metin elde edilmek istendiği takdirde ise e-xor işleminin özelliğinden faydalanarak ; aynı şekilde şifrelenmiş metinin bir biti, biti şifrelemek için kullanılan aynı anahtar biti ile e-xor işlemine tabi tutulur. Bu işlem şifrelenmiş metine ait bütün bitler için tekrarlandığı takdirde düz metin elde edilmiş olur. Dizi şifreleme sistemleri rasgele bit üreten sonlu durum makineleri olarak

A n a h t a r ü r e t e c i A n a h t a r A n a h t a r P i P i A n a h t a r ü r e t e c i

¸Sekil 3.1: Dizi ¸Sifreleme Sistemleri.

algılanabilir. Burada rasgeleden kasıt önceki bitlere bakarak bir sonraki bitin tahmin edilemez olmasıdır. Rasgele bir dizi elde etmenin mümkün olmadığı göz önünde bulundurulursa, burada amaç eldeki sistemlerle olabildiğince karmaşık bir anahtar bit dizisi üretme algoritması kullanarak yeterince rasgele diziler elde etmektir.

(25)

3.1.1 Senkron Dizi ¸Sifreleyiciler

En basit dizi şifreleyiciler anahtar dizisini düz metinden ya da diğer adıyla şifrelenmemiş metinden bağımsız olarak üreten senkronize sistemlerdir. Bu tür dizi şifreleyicileri kullanılan bir anahtar oluşturma algoritması uyarınca sisteme girilen anahtar tohumu dizisinden rasgele bir anahtar dizisi üretir. Senkron dizi şifreleyiciler için şifreleme aşamaları genel olarak Denklem 3.1, 3.2 ve 3.3’ de ifade edilmektedir.

i+1= f (Ωi; k) (3.1)

zi= g(Ωi; k) (3.2)

ci= h(zi; mi) (3.3)

Bu ifadeler de Ω0 ilk durumu ifade ederken f fonksiyonu ise bir sonraki durumu ifade eder. Bir sonraki durum şu an ki durum ile girilen anahtar tohumu dizisinin değerine bağlı olarak belirlenir. Yukarıdaki ifadelerde yer alan g fonksiyonu ise bir sonraki biti elde etmek için kullanılan fonksiyonu ifade eder ve üretilen bit şu an ki duruma ve girilmiş olan anahtar tohumu dizisinin değerine bağlı olarak değişir.

h fonksiyonu ise üretilen şifrelenmiş bitin elde edilmesinde kullanılan fonksiyonu

ifade eder. İkinci eşitlikten elde edilen anahtar biti ile düz metine ait şifrelenecek bit bu fonksiyon uyarınca işleme alınır ve şifrelenmiş bit elde edilir. Kriptografik sistemlerde h fonksiyonu çoğu kez e-xor işleminden oluşur.

3.1.2 Asenkron Dizi ¸Sifreleyiciler

Senkron dizi şifreleyicilerinin yanı sıra bir de asenkron veya kendinden senkronize dizi şifreleyiciler mevcuttur. Bu tür dizi şifreleyiciler anahtar dizisini sisteme girilen anahtar tohumlarıyla birlikte şifrelenmiş metinin sabit sayıdaki şifreli bitlerini kullanarak oluştururlar. Bu türe ait şifreleme aşamaları Denklem 3.4, 3.5 ve 3.6’da verilmektedir.

i= (ci−t,ci−t+1, . . . ,ci−1) (3.4)

zi= g(Ωi; k) (3.5)

(26)

i = (ci−t,ci−t+1, . . . ,ci−1) ifadesi ilk durumu belirtir. Senkron sistemlere ait eşitliklerde de olduğu gibi g anahtar biti üreten fonksiyonu ve h ise şifrelenmiş biti üreten fonksiyonu ifade etmektedir. Bu tür dizi şifreleyicilerinde bulunulan durumu şifrelenmiş metinin sabit sayıdaki bazı bitleri belirler.

3.2 Blok ¸Sifreleme Sistemleri

Blok şifreleme sistemleri, sabit uzunluktaki veri bloğunu sabit uzunluktaki anahtar dizisi ile birlikte pek çok karmaşık işlemden geçirerek, giriş veri bloğu ile aynı uzunlukta şifrelenmiş veri bloğunu oluştururlar. Benzer olarak şifre çözme işlemi için şifreleme sırasında gerekli olan işlemlerin tersi, ters sırada gerçeklenir. Böylece şifrelenmemiş blok elde edilir. Blok şifreleme sistemlerine ait şifreleme ve şifre çözme işlemi Şekil 3.2’de verilmektedir.

B L O K S i F R E L E Y i C i s i f r e l e m e A n a h t a r A C I K V e r i B l o g u S i f r e l e n m i s V e r i B l o g u B L O K S i F R E L E Y i C i ç ö z m e A n a h t a r A C I K V e r i B l o g u S i f r e l e n m i s V e r i B l o g u a ) b )

¸Sekil 3.2: Blok ¸Sifreleme Sistemleri.

Günümüzde kullanımda olan pek çok blok şifreleme sistemi mevcuttur, örnek olarak 64 bitlik veri bloğuna sahip olan DES (Data Encryption Standard) algoritması ve 128 bitlik veri bloğuna sahip olan AES algoritması verilebilir. Şifrelenecek olan verinin uzunluğu blok uzunluğundan daha büyük olması durumunda veri blok uzunluklarına parçalanır ve şifreleme işlemi gerçekleştirilir. Veriyi blok uzunluklarına parçaladıktan sonra şifreleme işlemi elektronik Kod kitabı (ECB), şifre bloklarını zincirleme (CBC), şifreyi geri besleme (CFB) ve çıkışı geri besleme (OFB) gibi yöntemlerle gerçeklenebilir. Seçilen yöntem şifrelenmiş veri üzerinde çok büyük bir etkiye sahiptir. Aynı veri bloğunun, aynı anahtar bloğu ile şifrelenmesi sonucu hep aynı çıkış bloğu oluşur, bu nedenle

(27)

şifreleme işleminde güvensizlik oluşabilir. Kullanılan farklı yöntemler sayesinde şifreleme işlemi daha güvenilir hale getirilir.

3.2.1 Elektronik Kod Kitabı (ECB) Yöntemi

ECB yönteminde şifrelenecek veri blok uzunluklarına parçalandıktan sonra her bir blok birbirinden bağımsız olarak şifrelenir. Her bir bloğun bağımsız olarak şifrelenmesinden dolayı aynı içerikten oluşan veri blokları için aynı şifrelenmiş bloklar oluşur. Bu özellik nedeniyle şifrelenecek veri hakkında bilgi edinilebilir. Pek çok şifreleme sisteminde bu sakıncadan dolayı ECB modu tercih edilmemektedir. ECB moduna ait veri şifreleme ve şifre çözme işlemleri Şekil 3.3 ve Şekil 3.4’de verilmektedir.

B L O K S i F R E L E Y i C i S i f r e ç ö z m e S i f r e l e n m i s V e r i B l o g u S i f r e l e n m i s V e r i B l o g u B L O K S i F R E L E Y i C i S i f r e ç ö z m e B L O K S i F R E L E Y i C i S i f r e ç ö z m e A n a h t a r A n a h t a r A n a h t a r A C I K V e r i B l o g u S i f r e l e n m i s V e r i B l o g u A C I K V e r i B l o g u A C I K V e r i B l o g u

¸Sekil 3.3: ECB Yöntemi ile ¸Sifeleme ˙I¸slemi .

B L O K S i F R E L E Y i C i S i f r e ç ö z m e S i f r e l e n m i s V e r i B l o g u A C I K V e r i B l o g u A C I K V e r i B l o g u A C I K V e r i B l o g u S i f r e l e n m i s V e r i B l o g u S i f r e l e n m i s V e r i B l o g u B L O K S i F R E L E Y i C i S i f r e ç ö z m e B L O K S i F R E L E Y i C i S i f r e ç ö z m e A n a h t a r A n a h t a r A n a h t a r

¸Sekil 3.4: ECB Yöntemi ile ¸Sife Çözme ˙I¸slemi .

3.2.2 ¸Sifre Bloklarını Zincirleme (CBC) Yöntemi

CBC yönteminde bloklara ayrılmış veri şifrelenmeye başlanmadan önce kendinden önceki şifrelenmiş blok çıkışı ile e-xor’lama işlemine tabi tutulur ve daha sonra şifreleme işlemi gerçekleştirilir. Böylece şifrelenmiş veri bloğu giriş veri bloğu ile birlikte kendinden önceki şifrelenmiş veri bloklarına da bağlı olur. İlk şifrelenecek veri için ilk durum vektörüne ihtiyaç vardır. Bu yöntem önemli derecede, güvenli şifrelemeye katkı sağlar. CBC yöntemine ait şifreleme ve şifre çözme işlemleri Şekil 3.5 ve Şekil 3.6’da verilmektedir.

(28)

S i f r e l e n m i s V e r i B l o g u B L O K S i F R E L E Y i C i S i f r e ç ö z m e B L O K S i F R E L E Y i C i S i f r e ç ö z m e A n a h t a r A n a h t a r S i f r e l e n m i s V e r i B l o g u A C I K V e r i B l o g u A C I K V e r i B l o g u i l k d u r u m B L O K S i F R E L E Y i C i S i f r e ç ö z m e A n a h t a r S i f r e l e n m i s V e r i B l o g u A C I K V e r i B l o g u

¸Sekil 3.5: CBC Yöntemi ile ¸Sifreleme ˙I¸slemi.

S i f r e l e n m i s V e r i B l o g u B L O K S i F R E L E Y i C i S i f r e ç ö z m e B L O K S i F R E L E Y i C i S i f r e ç ö z m e A n a h t a r A n a h t a r S i f r e l e n m i s V e r i B l o g u A C I K V e r i B l o g u A C I K V e r i B l o g u i l k d u r u m B L O K S i F R E L E Y i C i S i f r e ç ö z m e A n a h t a r S i f r e l e n m i s V e r i B l o g u A C I K V e r i B l o g u

¸Sekil 3.6: CBC Yöntemi ile ¸Sifre Çözme ˙I¸slemi.

3.2.3 ¸Sifreyi Geri Besleme (CFB) Yöntemi

Şifreyi geri besleme yöntemi CBC yöntemine benzerlik gösterir. Bu yöntemle blok şifreleyici yapısı asenkron dizi şifreleyici yapısına dönüştürülür. CBC yönteminde olduğu gibi ilk durum vektörü gerekmektedir. CFB yöntemine ait şifreleme ve şifre çözme işlemleri Şekil 3.7 ve Şekil 3.8’de verilmektedir.

S i f r e l e n m i s V e r i B l o g u B L O K S i F R E L E Y i C i S i f r e l e m e B L O K S i F R E L E Y i C i S i f r e l e m e A n a h t a r A n a h t a r S i f r e l e n m i s V e r i B l o g u A C I K V e r i B l o g u i l k d u r u m B L O K S i F R E L E Y i C i S i f r e l e m e A n a h t a r A C I K V e r i B l o g u A C I K V e r i B l o g u S i f r e l e n m i s V e r i B l o g u

¸Sekil 3.7: CFB Yöntemi ile ¸Sifreleme ˙I¸slemi.

3.2.4 Çıkı¸sı Geri Besleme (OFB) Yöntemi

Bu yöntemle blok şifreleyici yapısı senkron dizi şifreleyici yapısına dönüştürülür. CFB ve CBC yönteminde olduğu gibi ilk durum vektörü gerekmektedir. OFB

(29)

B L O K S i F R E L E Y i C i ç ö z m e B L O K S i F R E L E Y i C i ç ö z m e A n a h t a r A n a h t a r S . V e r i B l o g u i l k d u r u m B L O K S i F R E L E Y i C i ç ö z m e A n a h t a r A C I K V e r i B l o g u S . V e r i B l o g u A C I K V e r i B l o g u S . V e r i B l o g u A C I K V e r i B l o g u

¸Sekil 3.8: CFB Yöntemi ile ¸Sifre Çözme ˙I¸slemi.

yöntemine ait şifreleme ve şifre çözme işlemleri Şekil 3.9 ve Şekil 3.10’da verilmektedir. E-xor işleminin simetrik olmasından dolayı şifreleme ve şifre çözme yapıları aynıdır. B L O K S i F R E L E Y i C i s i f r e l e m e B L O K S i F R E L E Y i C i s i f r e l e m e A n a h t a r A n a h t a r S i f r e l e n m i s V e r i B l o g u i l k d u r u m B L O K S i F R E L E Y i C i s i f r e l e m e A n a h t a r A C I K V e r i B l o g u A C I K V e r i B l o g u A C I K V e r i B l o g u S i f r e l e n m i s V e r i B l o g u S i f r e l e n m i s V e r i B l o g u

¸Sekil 3.9: OFB Yöntemi ile ¸Sifreleme ˙I¸slemi.

B L O K S i F R E L E Y i C i ç ö z m e B L O K S i F R E L E Y i C i ç ö z m e A n a h t a r A n a h t a r i l k d u r u m B L O K S i F R E L E Y i C i ç ö z m e A n a h t a r S . V e r i B l o g u A C I K V e r i B l o g u A C I K V e r i B l o g u A C I K V e r i B l o g u S . V e r i B l o g u S . V e r i B l o g u

(30)

4. SAHADA PROGRAMLANAB˙IL˙IR KAPI D˙IZ˙ILER˙I

4.1 Genel Bilgi ve Tarihsel Geli¸sim

Sahada programlanabilir devre elemanları elektriksel olarak programlanabilir eleman ve arabirimlerden oluşan bir tüm devredir. Sahada Programlanabilir kapı dizileri kısaca FPGA (field pogrammable gate array) olarak adlandırılır. Programlanabilir eleman ve arabirimler VE (AND), VEYA (OR), ayrıcalıklı VEYA (E-XOR), DEĞİL (NOT) işlemlerini veya daha karmaşık olan dekoder, çoklayıcı gibi matematiksel işlemleri gerçekleştirmek amacıyla programlanabilir. FPGA yapısında bulunan arabirimler tasarımdaki bağlantılar göz önüne alınarak elektriksel olarak programlanabilir ve istenildiği kadar programlanabilme yapısına sahip olduğundan tasarımlarda büyük kolaylık sağlar. Pek çok FPGA yapısı programlanabilir eleman ve ara birimlere ek olarak hafıza birimleri de bulundurur. Bu hafıza birimleri ayrık flip-flop yapılarından veya hafıza bloklarından oluşabilir. Tarihsel gelişim incelendiğinde ilk programlanabilir birimin PROM (programmable read only memory) olduğu gözlenir. PROM’lar bir kez programlanabilme özelliğine sahiptirler. PROM’lardan sonra tarihsel gelişimi sırasıyla EPROM (erasable programmable read only memory) ve EEPROM (electrically erasable programmable read only memory) birimleri izler. Bu birimler oldukça kısıtlı yeteneklere sahiptirler. Daha sonraları EEPROM’lara göre daha gelişmiş olan PAL (programmable array logic) ve PLA (programmable logic array) yapıları geliştirilmiştir. PLA yapısında programlanabilen VE ve VEYA matrisleri bulunurken, PAL yapısında ise sabit VEYA matrisi ve programlanabilen VE matrisi mevcuttur. PAL ve PLA yapıları bir fonksiyonu çarpım veya toplamlar şeklinde ifade edebilir ve gerçekleyebilir. Pek çok PLA ve PAL yapılarının bir araya gelmesi ile oluşturulmuş bir diğer yapı ise CPLD’dir. CPLD’ler FPGA yapısına oranla girişlere daha hızlı

(31)

tepki verebilirken, daha küçük lojik birimlere sahip olması nedeniyle küçük tasarımların gerçekleştirilmesinde kullanılabilir.

Programlanabilir yapılar, örneğin FPGA’ler ASIC tasarımlara oranla daha yavaş çalışmalarına rağmen tekrar programlanabilme özelliği ve tasarımların basit kontrol edilebilir olması nedeniyle tasarımın daha ucuza mal edilebilmesi açısından önemli avantajlara sahiptir.

4.2 Kullanım Alanları ve Üretici Firmalar

FPGA yapısı, gelişimi ile birlikte sayısal işaret işleme, yazılımsal radyolar, savunma sistemleri, tıbbi görüntüleme, ses tanıma, kriptografi gibi pek çok alanda kullanılmaktadır. Ayrıca ASIC tasarımların üretime gönderilmeden önce istenildiği gibi çalışıp çalışmadığını anlamak amacıyla da kullanılması açısından önemli bir yere sahiptir. Bu çalışma sırasında gerçekleştirilecek olan AES algoritması kriptografi alanında FPGA programlanabilir arabiriminin kullanımına örnek teşkil edebilir. İlk üretiminden itibaren gerçekleştirebilecekleri lojik yapılar ve gerçekleştirebilme hızları açısından gelişmekte olan FPGA programlanabilir birimleri bu gelişim ile birlikte pek çok yeni alanda kullanılmaya başlanmıştır.

ASIC tasarımın çok pahalıya mal olması nedeniyle ihtiyaç duyulan özelliklere sahip programlanabilir birim açığını ilk olarak Xilinx firması 1980’li yıllarda FPGA üretimini gerçekleştirerek kapatmıştır. İlk üretimden beri FPGA üretiminde lider kabul edilen firmalar arasında yer alan Xilinx dışında piyasadaki FPGA üretiminde yer alan Altera, Lattice semiconductor, ActelQuick logic gibi firmalar da mevcuttur.

4.3 FPGA Genel Yapısı

Tipik bir FPGA yapısı konfigüre edilebilir lojik bloklar (CLB) ve yönlendirilebilir kanallardan oluşur. Şekil 4.1’de tipik bir FPGA yapısı verilmiştir. CLB yapıları genel olarak 5 girişten oluşular, bu girişlerden 4’ü LUT (look-up table ) girişleri iken diğer giriş ise D flip-flop yapısının saat girişidir. Konfigüre edilebilir lojik blok yapısına ait genel blok şema ve giriş ve çıkış bacaklarının FPGA programlanabilir

(32)

¸Sekil 4.1: FPGA Yapısı.

birimi üzerindeki yerleşimi Şekil 4.2 ve Şekil 4.3’te verildiği gibidir. CLB giriş

D F l i p - F l o p 4 G i r i s l i L U T S a a t G i r i s l e r C I K I S ¸Sekil 4.2: CLB Yapısı. G i r i s 1 G i r i s 2 G i r i s 3 G i r i s 4 C I K I S C I K I S

¸Sekil 4.3: CLB Giri¸s Çıkı¸slarının FPGA Üzerindeki Görünümü.

çıkışlarının FPGA üzerindeki konumlarının şemada gösterildiği gibi olmasının nedeni hat üzerinde oluşabilecek gecikmeleri, hat uzunluklarını eşit yaparak olabildiğince eşit olmasını sağlamaktır.

Yatay ve düşey konumlarda bulunabilen CLB’ler istenildiği durumlarda kas kat bağlanabilmekte ve bu bağlantılar programlanabilir ara bağlantılar yardımıyla gerçekleştirilmektedir. FPGA üzerindeki programlanabilir ara bağlantı yapısı

(33)

Şekil 4.4’te verilmiştir. Yapının sahip olmuş olduğu programlanabilir

¸Sekil 4.4: Programlanabilir Ara Ba˘glantılar.

anahtarlar sayesinde istenilen tasarım gerekli anahtar bağlantılarının yapılması ile gerçekleştirilebilir.

Ayrıca bu yapılara ek olarak saat dağıtımını uygun bir şekilde gerçekleştirebilmek amacıyla FPGA’ler üzerinde dağıtım hatları bulunmaktadır. Bu hatlarla ardışıl birimlere saat işaretinin, tasarımın çalışmasını etkilemeyecek şekilde ulaşması sağlanır.

4.4 FPGA Programlama

FPGA yapısının nasıl davranacağının belirlenmesi amacıyla tasarımcı donanım tanımlama dillerini (HDL) veyahut şematik tasarım araçlarını kullanır. Donanım tanımlama dillerinin en çok bilinenleri VHDL (Very-High-Speed Integrated Circuits Hardware Description Language) ve Verilog-HDL dilleridir. Donanım tanımlama dilleri tasarım sırasında kullanılacak olan FPGA programlanabilir biriminin hangi üretici firmaya ait olduğuna göre farklılık gösterebilir. Tasarımcı ilk olarak gerçekleştirmek istediği fonksiyona ait şematik veyahut HDL dillerinden birinde tasarımını gerçekleştirir ve gerekli simülasyonları yapar, bu simülasyonlar sonucunda tasarım istenildiği gibi çalışıyorsa, tasarım için gerekli lojik birimlerin FPGA üzerindeki dağılımını belirlemek amacıyla serim ve hatların yönlendirilmesi kısmı gerçekleştirilir. Bu kısımda tasarımın gerçekleştirilmesi için gerekli lojik birimler belirlenir ve FPGA içerisine gerekli anahtar bağlantıları da yapılarak yerleştirilir. Bu aşamanın da başarıyla gerçekleştirilmesi sonrası tasarımın tekrar simülasyonu yapılır ve devrenin son çalışma hali gözlenir. Gerekli

(34)

bütün aşamaların başarıyla sonuçlanması durumunda devrenin son hali üretici firmanın sunmuş olduğu paralel kablolar yardımıyla bilgisayar kullanılarak FPGA üzerine yüklenir ve FPGA programlanabilir birimi istenildiği işi yapmak üzere programlanmış olur.

4.5 Gerçekleme Sırasında Kullanılan FPGA

Çalışma sırasında Xilinx firmasına ait Virtex-4 XC4VLX200 FPGA’i kullanılmıştır [14]. XC4VLX200 FPGA’i oldukça büyüktür ve yaklaşık 200.000 adet lojik hücre içerir. Çalışma sırasında farklı AES yapıları gerçeklenmiş ve karşılaştırılmıştır. Bertoni S-Kutusu kullanılarak gerçeklenen AES yapıları çok büyük alanlar kaplamaktadır. Adil ve doğru bir karşılaştırma yapılabilmesi için büyük bir FPGA olan XC4VLX200 çalışma sırasında kullanılmıştır. Gerçekleme aşamasında VHDL dili kullanılmış olup, FPGA’de sentezleme, yerleştirme ve yollandırma aşamaları için ISE 9.1i programı kullanılmıştır. Ayrıca simülasyon aşamasında Modelsim 6.3d ve güç ölçümleri içinde XPOWER aracı kullanılmıştır. XPOWER güç ölçüm aracının kullanımı için ekler kısmına bakılabilir.

Diğer FPGA’lerde olduğu gibi XC4VLX200’de konfigüre edilebilir lojik blok yapısı (CLB) ve giriş çıkış bağlantılarından oluşmaktadır. CLB yapıları kombinezonsal veya ardışıl fonksiyonları gerçeklemek için kullanılır. Bu bloklar genel yollandırma hattına bağlanmaktadır. Her bir CLB için 4 ara bağlantı dilimi bulunur, bu ara bağlantı dilimleri SLICEM ve SLICEL olarak adlandırılır, Şekil 4.5’de bu yapı verilmektedir. Yapıda yer alan SLICEL ve SLICEM dilimlerinin her biri LUT elemanları hafıza birimleri, çoklayıcılar, aritmetik kapılar ve elde lojiği içerir. Bu elemanlar sayesinde aritmetik fonksiyonlar SLICEL ve SLICEM dilimleri üzerinde gerçeklenir. Aritmetik fonksiyonlara ek olarak ayrıca bu dilimler üzerinde dağıtık RAM (Random Access Memory) ve 16 bitlik ötelemeli yazıcılar gerçeklenebilir. SLICEM ve SLICEL dilimlerine ait şematik diyagramlar Şekil 4.6 ve Şekil 4.7’de verilmektedir. Virtex 4 FPGA’lerinde bulunan I/O döşemelerinde iki adet giriş çıkış bacağı, iki adet giriş lojiği (ILOGIC) ve iki adet çıkış lojiği (OLOGIC) bulunmaktadır. I/O döşemelerine ait yapı şekil 4.8’de verilmektedir. Virtex 4 FPGA’lerinde giriş çıkış bacakları kombinezonsal giriş çıkış, 3 durumlu çıkış kontrolü, kaydedicili giriş çıkış, kaydedicili 3 durumlu çıkış

(35)

¸Sekil 4.5: Virtex 4 CLB Ara Ba˘glantıları.

kontrolü gibi pek çok özelliğe sahiptirler. Bu özellikler giriş lojiği ve çıkış lojiği sayesinde sağlanır. Giriş ve çıkış lojiklerine ait yapılar Şekil 4.9 ve Şekil 4.10’da verilmektedir.

4.6 FPGA’lerin Güç Tüketim Özellikleri

Teknoloji seçimi düşük güçlü tasarımlarda oldukça büyük öneme sahiptir. Ara bağlantı tipine göre sınıflandırılmış Antifuse, SRAM (Static Random Access Memory) ve FLASH olmak üzere 3 farklı FPGA teknolojisi mevcuttur. Antifuse FPGA’ler SRAM FPGA’lere oranla çok daha az statik güç tüketirler. Antifuse FPGA’ler sadece bir tasarım için kullanılabilirler, bu özelliklerinden dolayı ASIC tasarımlara benzerler. SRAM FPGA’ler ara bağlantılar ve lojik hücreler için transistörler bulundururlar. Antifuse FPGA’ler belirlenmiş bir tasarıma özel olduklarından fabrika aşamasında yollandırma ve ara bağlantılar tasarıma uygun hale getirilir. Böylece SRAM FPGA’lerde ara bağlantı ve lojik hücreler için kullanılan transistörlere ihtiyaç duyulmaz ve statik olarak harcanan güç SRAM FPGA’lere oranla oldukça azalır. SRAM tabanlı FPGA’lerde FPGA’in sadece kullanılan kısmı için statik güç harcanmaz, tasarımdan bağımsız olarak FPGA

(36)
(37)
(38)

¸Sekil 4.8: Virtex 4 I/O dö¸semeleri.

üzerinde statik güç harcanmaktadır. SRAM FPGA’ler için statik güç değeri FPGA modeline göre değişmektedir.

Ayrıca Antifuse FPGA’ler ara bağlantı noktalarındaki düşük çıkış kapasiteleri nedeniyle SRAM FPGA’lere oranla çok daha az miktarlarda dinamik güç harcar. SRAM FPGA’lerde besleme ünitesinin açılımı sırasında fazladan güç çekilir. Çekilen bu güç anlık olarak harcanır, besleme ünitesinin verebileceği akıma bağlı olarak kısa bir süre ilk açılım anında fazladan güç çekilmektedir. SRAM tabanlı FPGA’lerde dışardan bağlanan EPROM (Erasable Programmable Read-Only Memory) veya Flash bellek ile konfigürasyon sağlanır. Ayrıca konfigürasyon kurulumu için de güç tüketimi yapılmaktadır. Bu bilgiler ışığında SRAM tabanlı FPGA’lerin Antifuse tabanlı FPGA’lere oranla çok daha fazla güç tükettikleri açıktır. Düşük güç tüketim avantajına sahip olan Antifuse tabanlı FPGA’ler belirlenmiş bir tasarıma uygun olarak üretildikleri için başka bir tasarım için kullanılmaları mümkün değildir. Bu nedenden dolayı yapılan çalışma sırasında "Antifuse" tabanlı FPGA’ler düşük güç tüketecekleri bilindiği halde seçilmemişlerdir. Seçilen FPGA SRAM tabanlıdır. Çalışma sürdürülürken, SRAM’ tabanlı FPGA’lerin güç tüketim dezavantajları göz önüne alınmıştır.

(39)
(40)
(41)

5. AES (ADVANCED ENCRYPTION STANDARD)

AES Amerika birleşik devletleri tarafından kabul edilmiş bir şifreleme standardıdır. Rijndael olarak da bilinen standart bir blok şifreleyicidir. DES [15] algoritmasının gelişen teknoloji karşısında zayıflaması ve güvenilirliğini yitirmesi ile birlikte, yeni bir şifreleme standardının belirlenebilmesi amacıyla NIST (National Institute of Standards and Technology) organizasyonunun düzenlemiş olduğu yarışmanın sonucunda iki Belçikalı araştırmacı Joan Daemen ve Vincent Rijmen tarafından geliştirilen algoritma yeni standart olarak belirlenmiştir [16]. Uzun süren bir standardizasyon ve doğrulama sürecinin ardından 26 Kasım 2001 tarihinde AES FIPS 197 standardı olarak NIST tarafından yayımlanmıştır [2]. DES algoritmasına oranla AES algoritması daha yüksek güvenilirlik sağlamakla birlikte, kolay gerçeklenebilir olması açısından da avantajlara sahiptir. Algoritmanın farklı anahtar ve veri bloğu uzunluklarını destekliyor olmasına karşın standart, sabit 128-bit’lik veri bloğu ile 128-bit, 192-bit veya 256-bit’lik anahtar uzunluklarını kapsamaktadır. AES içerisinde 128-bit’lik veri blokları her biri 32-bit’ten oluşan 4 kelime olarak düşünülmektedir. AES ile şifreleme işlemine başlanırken 128-bit yani 4 kelimeden oluşan veri bloğu durum dizisi içerisine yazılır ve algoritma sırasındaki gerekli işlemlerin tümü bu dizi kullanılarak gerçeklenir. Şifreleme için gerekli en son işlemin de bitimiyle birlikte durum dizisinin son hali çıkış dizisine yazılır.

Örneğin; in0in1...in15 den oluşan veri bloğu durum dizisine yazılır ve gerekli işlemlerin tümü bu dizi üzerinde gerçeklenir. İşlemlerin tamamlanması ile birlikte şifrelenmiş veri çıkışa out0out1...out15 bayt dizisi olarak verilir.

AES algoritması genel olarak iki bloktan oluşur, ilk blok tur dönüşüm ikinci blok ise anahtar üretim bloğudur. Algoritma tekrarlı bir yapıya sahiptir, anahtar bloğunun uzunluğuna bağlı olarak 128-bit, 192-bit veya 256-bit, tur dönüşüm

(42)

¸Sekil 5.1: Durum Dizisi.

Çizelge 5.1: Tur Sayısının Anahtar Uzunlu˘guna Göre De˘gi¸simi. AES Tipi Anahtar Uzunlu˘gu (NkKelime) Tur Sayısı (Nr)

AES-128 4 10

AES-192 6 12

AES-256 8 14

işlemi sırası ile 10, 12 veya 14 kez tekrarlanır. Tekrarlanma sayıları anahtar bloğunun uzunluğuna bağlı olarak Çizelge 5.1’de verilmektedir.

Şifreleme başlangıcında şifrelenecek olan blok, Şekil 5.1 uyarınca durum dizisine yazılır. Durum dizisinin giriş anahtarı ile toplanması işlemi ile birlikte şifreleme işlemine başlanmış olur. Anahtar bloğunun uzunluğuna bağlı olarak tur dönüşüm işlemi 10, 12 veya 14 kez tekrarlanır. Algoritmanın sözlü kod ifadesi, Nr tur

sayısını ifade etmek üzere aşağıda verilmektedir, ayrıca algoritmaya ait blok şema Şekil 5.2’de verilmektedir.

AES¸sifreleme(Giri¸sDurumu, Anahtar)

{

T_Anahtarı[Nr : 1] = AnahtarÜreteci(Anahtar);

Durum[0] = ˙IlkAnahtarToplaması(Giri¸sDurumu, Anahtar);

for(i = 1;i < Nr ; i++)

Tur(Durum[i-1], T_Anahtarı[i]) FinalTuru(Durum[Nr-1], T_Anahtarı[Nr]) }

Tur dönüşüm işlemi sırasında durum dizisi üzerinde Bayt Değiştirme, Satırları Kaydırma, Sütunları Karıştırma ve Tur Anahtarını toplama alt işlemleri uygulanmaktadır. Tur dönüşüm işleminin çıktısı olarak elde edilen 128-bitlik veri

(43)
(44)

anahtar üretim işlemi sonucunda üretilen anahtar verisiyle toplanmaktadır. En son tur işleminin gerçeklenip anahtar bloğu ile toplanması sonucu şifrelenmiş blok elde edilir. Son turda gerçeklenen işlemler önceki turlarda gerçeklenen işlemlerden farklılık gösterir. Son turda Sütunları Karıştırma işlemi yapılmamakta Satırları Kaydırma işleminin çıktısı tur anahtarı ile toplanmaktadır, sözlü kod ifadesi aşağıdaki algoritmada verilmektedir.

Tur(Giri¸sDurumu, T_Anahtarı[i])

{

Durum1 = BaytDe˘gi¸simi(Giri¸sDurumu); Durum2 = SatırKaydırma(Durum1);

Durum3 = SütunKarı¸stırma(Durum2);

Çıkı¸sDurumu = TurAnahtarınıTopla(Durum3,T_Anahtarı[i]);

}

SonTur(Giri¸sDurumu, T_Anahtarı[Nr])

{

Durum1 = BaytDe˘gi¸simi(Giri¸sDurumu); Durum2 = SatırKaydırma(Durum1);

Çıkı¸sDurumu = TurAnahtarınıTopla(Durum2,T_Anahtarı[Nr]);

}

5.1 Tur Dönü¸süm ˙I¸slemleri

AES algoritması önceden de belirtildiği gibi tekrarlı bir yapıdan oluşur. Tur dönüşüm işlemi anahtar uzunluğuna bağlı olarak çok defa tekrarlanır. Tur dönüşüm işlemi içerisinde Bayt Değiştirme, Satırları Kaydırma ve Sütunları Karıştırma ve Tur Anahtarını Toplama işlemleri gerçekleştirilir. Tur dönüşüm işlemine ait blok diyagram Şekil 5.3’de verilmektedir.

5.1.1 Bayt De˘gi¸stirme

Bayt değiştirme işlemi 8-bitlik veriler üzerinde yani bir bayt üzerinde gerçeklenen lineer olmayan bir işlemdir. Bu işlem durum matrisinin her bir baytı için bağımsız olarak Şekil 5.4’de verildiği gibi gerçeklenir. Her bir bayt için karşılık düşen bayt

(45)

B a y t D e g i s t i r m e

S a t i r l a r i K a y d i r m a

S u t u n l a r i K a y d i r m a

T u r

A n a h t a r i E k l e m e

¸Sekil 5.3: Tur Dönü¸süm Blok ¸Sema.

(46)

birbirinden farklıdır. Bu dönüşüm iki aşamada gerçekleşir. Bu aşamalardan ilki Bölüm 2’de bahsedilen çarpmaya göre ters alma işlemidir. Çarpmaya göre ters alma işlemi GF(28)’de gerçeklenir. Evrik alma işlemi gerçeklenirken kullanılan indirgeme polinomu P(x) = x8+ x4+ x3+ x + 1’dur. İkinci aşama ise evrik çıkışın geçiş matrisi ile GF(2)’de çarpılması ve sabit bir matris ile toplanmasıyla gerçekleştirilir. Bu işlem Denklem 5.1’de verilmektedir. Bayt Değiştirme işlemini farklı yöntemlerle gerçeklemek mümkündür, bu gerçekleme yöntemleri Bölüm 8’de ayrıntılı olarak incelenmektedir.

             ˆ b0 ˆ b1 ˆ b2 ˆ b3 ˆ b4 ˆ b5 ˆ b6 ˆ b7              =             1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1                         b0 b1 b2 b3 b4 b5 b6 b7             +             1 1 0 0 0 1 1 0             (5.1)

Bayt değiştirme işleminde her bir bayta karşılık düşen değer 16’lık tabanda Çizelge 5.2’de verilmektedir.

Çizelge 5.2: S-Kutusu Çıkı¸sları.

0 1 2 3 4 5 6 7 8 9 A B C D E F 0 63 7c 77 7b f2 6b 6f C5 30 01 67 2b fe d7 ab 76 1 ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0 2 b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15 3 04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75 4 09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84 5 53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf 6 d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8 7 51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2 8 cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73 9 60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db A e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79 B e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08 C ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a D 70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e E e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df F 8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16

(47)

5.1.2 Satırları Kaydırma

Satırları kaydırma işleminde Durum matrisini ilk satırı hariç diğer satırları kaydırma işlemine tabii tutulur. Bu kaydırma işlemi sırasında 2. satır bir bayt kaydırılırken, 3. satır iki bayt, son satır ise üç bayt kaydırılır. Bayt Kaydırma işlemine ait blok şema Şekil 5.5’de verilmektedir.

¸Sekil 5.5: Satırları Kaydırma ˙I¸slemi.

5.1.3 Sütunları Karı¸stırma

Sütunları Karıştırma işlemi Durum matrisindeki her bir sütun üzerinde bağımsız olarak gerçeklenir. Bu işlem gerçeklenirken her bir satır GF(28)’de bir polinom olarak düşünülür. Her bir satır üzerinde a(x) polinomu ile modülo x4+ 1’de çarpma işlemi gerçekleştirilir. Sabit a(x) polinomu ve satırları karıştırma işlemi Denklem 5.2 ve Denklem 5.3’de verilmektedir.

a(x) = {03}x3+ {01}x2+ {01}x + {02} (5.2)

ˆ

s(x) = a(x) ∗ s(x) (5.3)

Durum matrisi üzerinde gerçeklenen satırları karıştırma işlemi ve bu işlemin matris çarpımı olarak ifadesi Şekil 5.6 ve Denklem 5.4’de verilmektedir.

    ˆ S0,c ˆ S1,c ˆ S2,c ˆ S3c     =     02 03 01 01 01 02 03 01 01 01 02 03 03 01 01 02         S0,c S1,c S2,c S3c     (5.4)

(48)

¸Sekil 5.6: Sütunları Karı¸stırma ˙I¸slemi.

5.1.4 Tur Anahtarını Ekleme

Tur Anahtarının Ekleme işleminde ise önceden anahtar üretim bloğu tarafından üretilen 128-bitlik anahtar dizisi Durum matrisi ile e-xor’lanır Anahtar üretim bloğu ilerideki bölümde ayrıntılı olarak incelenecektir. Anahtar ekleme işlemine ait genel şema Şekil 5.7’de verilmektedir.

¸Sekil 5.7: Anahtar Ekleme ˙I¸slemi.

5.2 Anahtar Üretim ˙I¸slemleri

AES algoritması K anahtar dizisini alıp her bir tur için gerekli anahtar bloklarını üretir. AES algoritması farklı anahtar uzunlukları ile çalışabilmektedir, fakat veri bloğunun uzunluğu 128-bit olduğu için üretilen anahtar uzunluğu 128-bittir. Her bir tur dönüşüm işleminin son kısmı olan Tur Anahtarını Ekleme işlemi sırasında üretilen 128-bitlik anahtar kullanılır. Anahtar üretim bloğu ilk olarak girişten

(49)

alınan 128 bitlik anahtar bloğunu elemanları baytlar olan 4x4’lük matrisler halinde kaydeder. Daha sonra üretilen diğer 128-bitlik anahtar blokları aynı şekilde matrisin genişletilmesi için kullanılır. Böylece Nr tur sayısı olmak üzere

4∗ (Nr+ 1) boyutunda bir matris elde edilir. Anahtar üretim işlemleri bu matrisin

sütunları üzerinde Şekil 5.8’de verildiği gibi gerçeklenir. Oluşturulacak olan sütun

¸Sekil 5.8: 128 bitlik giri¸s anahtarı için Anahtar Üreteci.

girişte kullanılan anahtar bloğunun kelime sayısının (Nb) katı değilse (128 bitlik

anahtar bloğu için Nb= 4) kendinden bir önceki ve Nb önceki sütunların karşılıklı

e-xor’lanması sonucu bulunur. Oluşturulacak olan sütun kelime sayısının katı olduğu durumda ise kendinden bir önceki sütun dönüştürme işlemine sokulur, ardından Nb önceki sütunla karşılıklı e-xor’lama işlemi gerçekleştirilir. Dönüşüm

işlemi üç aşamada gerçekleştirilir. İlk aşamada 4 baytlık veriden oluşan sütun üzerinde kaydırma işlemi gerçeklenir. Kaydırma işleminden sonra her bir bayt, bayt değiştirme işlemine tabii tutulur. Bayt değiştirme işlemi Bölüm 5.1.1’de ayrıntılı olarak verilmektedir. Bayt değiştirme işleminin ardından tur vektörü ile e-xor’lama işlemi gerçekleştirilir. Tur vektörünün ilk baytı kaçıncı turda olunduğuna bağlı olarak değişir. diğer baytları ise sürekli sıfır değerindedir.

Referanslar

Benzer Belgeler

YumuĢak dengeleme, baĢlangıçta ortaya çıkıĢ anında ortaya atılan kavramsal bütünlük içerisinde güçlü olan birincil devlete karĢı ikincil devletlerin askeri

If absolute androgen deficiency has a negative impact on endometrial androgen levels, we may suggest that exogenous DHEA may lead to a rise in local androgens that induce

İngiltere, Kıbrıs Sorunu konusunda artık kendi ulusal çıkarlarının somut bir unsuru olan askeri üslerinin varlığına odaklanan ve iki toplum (Kıbrıslı

4447 sayılı Kanunla yaşlılık aylığına hak kazanmak için 58-60 yaş sınırı getirilmiş, ayrıca bu Kanunun yürürlüğe girdiği 08.09.1999 tarihinden önce

Güncel dil kullanımında en sıklıkla yer alan dinlemektir. Halbuki, sınıf içi dil çalışmalarında dinleme zaman zaman göz ardı edilmiş; daha çok, konuşmaya yer

Bunlardan en genel ve önemlisi Meteoroloji Genel Müdürlüğü (MGM) tarafından 45 adet meteoroloji istasyonunun 1989 – 1998 yılları arasındaki verilerini kullanarak WASP (Ing.

HC: Healthy Control (un-irradiated mice); C+: Positive control (irradiated mice); EPO: Irradiated mice followed by intraperitoneal injection of HEMAPO Epoetin alfa treatment;

In this project, Rainbow trout’s (Oncorynchus mykiss, Walbaum 1792) differences on feeding and growing evaluations have been observed, by this way, preferable fish size