AES (Advanced Encryption Standard) Blok Sifreleme Algoritmasinin ...

98

Transcript of AES (Advanced Encryption Standard) Blok Sifreleme Algoritmasinin ...

ISTANBUL TEKNIK ÜNIVERSITESI F FEN BILIMLERI ENSTITÜSÜ

AES ALGORITMASININ FPGA ÜZERINDE DÜSÜK GÜÇLÜ TASARIMI

YÜKSEK LISANS TEZI

Müh. Ahmed Yasir DOGAN

Anabilim Dalı : Elektronik ve Haberlesme Mühendisligi

Programı : Elektronik Mühendisligi

Tez Yöneticisi : Yrd. Doç. Dr. Sıddıka Berna ÖRS YALÇIN

Eylül 2008

ÖNSÖZ

Tez çal³mam boyunca bana yol gösteren ve deste§ini benden esirgemeyen de§erlidan³man hocam Yrd. Doç. Dr. Sddka Berna Örs Yalçn'a te³ekkürü bir borçbilirim.Maddi ve manevi desteklerini benden esirgemeyen aileme te³ekkür ederim.

Eylül 2008 Ahmed Yasir DOAN

ii

IÇINDEKILER

KISALTMALAR vTABLOLAR LISTESI viSEKILLER LISTESI viiSEMBOL LISTESI ixÖZET xSUMMARY xi

1. GIRIS 11.1. Tezin Kapsam 21.2. Tezin Konuya Katks 3

2. MATEMATIKSEL ÖN BILGILER 42.1. Galois Alanlar 42.2. GF(2m) Geni³letilmi³ Alan 4

2.2.1. Polinomsal Baz 52.2.2. Normal Baz 5

2.3. GF(2m) Üzerinde Matematiksel ³lemler 52.3.1. Toplama ³lemi 62.3.2. Çarpma ³lemi 6

2.4. Güç Kavram 72.4.1. Dinamik Güç 72.4.2. Statik Güç 9

3. SIFRE BILIMI 103.1. Dizi ifreleme sistemleri 11

3.1.1. Senkron Dizi ifreleyiciler 113.1.2. Asenkron Dizi ifreleyiciler 12

3.2. Blok ifreleme Sistemleri 133.2.1. Elektronik Kod Kitab (ECB) Yöntemi 143.2.2. ifre Bloklarn Zincirleme (CBC) Yöntemi 143.2.3. ifreyi Geri Besleme (CFB) Yöntemi 153.2.4. Çk³ Geri Besleme (OFB) Yöntemi 16

4. SAHADA PROGRAMLANABILIR KAPI DIZILERI 174.1. Genel Bilgi ve Tarihsel Geli³im 174.2. Kullanm Alanlar ve Üretici Firmalar 184.3. FPGA Genel Yaps 184.4. FPGA Programlama 204.5. Gerçekleme Srasnda Kullanlan FPGA 214.6. FPGA'lerin Güç Tüketim Özellikleri 22

iii

5. AES (ADVANCED ENCRYPTION STANDARD) 285.1. Tur Dönü³üm ³lemleri 31

5.1.1. Bayt De§i³tirme 315.1.2. Satrlar Kaydrma 335.1.3. Sütunlar Kar³trma 345.1.4. Tur Anahtarn Ekleme 34

5.2. Anahtar Üretim ³lemleri 35

6. GÜÇ TASARRUF YÖNTEMLERI 386.1. Platform Ba§ml Güç Tasarruf Yöntemleri 386.2. Platform Ba§msz Güç tasarruf yöntemleri 39

6.2.1. Klçk Azaltma 396.2.2. Saat ³aretini Engelleme 406.2.3. Giri³ zolasyonu 416.2.4. Yeniden Zamanlama 426.2.5. Yerel Dönü³ümler 43

7. ÖNCEKI ÇALISMALAR 45

8. AES ALGORITMASININ DÜSÜK GÜÇLÜ TASARIMI 478.1. Farkl Yöntemlerle Bayt De§i³tirme ³leminin Gerçeklenmesi 47

8.1.1. Tablo Yöntemi ile Gerçekleme 488.1.2. Bertoni Yöntemi ile Gerçekleme 488.1.3. Aritmetik Gerçekleme 52

8.2. Tur Sabiti ve Tur Sayac yile³tirmeleri 598.3. Farkl AES Yaplar 59

8.3.1. Klasik Yap AES Gerçeklemesi 608.3.2. D³ Bellekli Yol Yapsnda AES Gerçeklemesi 648.3.3. ç ve D³ Bellekli Yol Yapsnda AES Gerçeklemesi 688.3.4. Farkl AES Yaplarnn Kar³la³trlmas 71

9. SONUÇLAR ve TARTISMA 75

KAYNAKLAR 77

EKLER 80

A. XPOWER KULLANIMI 80

B. VHDL DOSYALARI 85

ÖZGEÇMIS 86

iv

KISALTMALAR

AES : Advanced Encryption StandardDES : Data Encryption StandardNIST : National Institute of Standards and TechnologyECB : Electronic Code-BookCBC : Cipher Block ChainingCFB : Cipher FeedbackOFB : Output feedbackASIC : Application Specic Integrated CircuitCPLD : Complex Programmable Logic DeviceFPGA : Field Programmable Gate ArrayCLB : Congurable Logic BlockLUT : Look-Up TableRAM : Random Access MemorySRAM : Static Random Access MemoryROM : Read-Only MemoryWPAN : Wireless Personal Area NetworksWLAN : Wireless Local Area NetworksWSN : Wireless Sensor NetworkRFID : Radio-Frequency denticationPROM : Programmable Read-Only MemoryEPROM : Erasable Programmable Read-Only MemoryEEPROM : Electrically Erasable Programmable Read-Only MemoryPAL : Programmable Array LogicPLA : Programmable Logic ArrayPTG : Pass Transmission Gate

v

TABLO LISTESI

Sayfa NoTablo 5.1 Tur Saysnn Anahtar Uzunlu§una Göre De§i³imi. . . . . . . 29Tablo 5.2 S-Kutusu Çk³lar. . . . . . . . . . . . . . . . . . . . . . . . 33Tablo 8.1 S-Kutusu Tablo Gerçeklemesi Alan, Zaman ve Güç Bilgileri. 49Tablo 8.2 S-Kutusu Bertoni Gerçeklemesi Alan, Zaman ve Güç Bilgileri. 51Tablo 8.3 yile³tirilmi³ Bertoni S-Kutusu Gerçeklemesi Alan, Zaman ve

Güç Bilgileri. . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Tablo 8.4 GF(24) Alannda Ters Elemanlar. . . . . . . . . . . . . . . . 56Tablo 8.5 Aritmetik S-Kutusu Gerçeklemesi Alan, Zaman ve Güç

Bilgileri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57Tablo 8.6 yile³tirilmi³ Aritmetik S-Kutusu Gerçeklemesi Alan, Zaman

ve Güç Bilgileri. . . . . . . . . . . . . . . . . . . . . . . . . . 59Tablo 8.7 Klasik Yap Alan ve Frekans Sonuçlar. . . . . . . . . . . . . 62Tablo 8.8 Klasik Yap Güç Tüketim Sonuçlar. . . . . . . . . . . . . . . 62Tablo 8.9 Klasik Yap Bir Bitin ifrelenmesi için Gerekli Enerji. . . . . 63Tablo 8.10 D³ Bellekli Yol Yaps Alan ve Frekans Sonuçlar. . . . . . . 66Tablo 8.11 D³ Bellekli Yol Yaps Güç Tüketim Sonuçlar. . . . . . . . . 66Tablo 8.12 D³ Bellekli Yol Yaps Bir Bitin ifrelenmesi için Gerekli

Enerji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Tablo 8.13 ç ve D³ Bellekli Yol Yaps Alan ve Frekans Sonuçlar. . . . 70Tablo 8.14 ç ve D³ Bellekli Yol Yaps Güç Tüketim Sonuçlar. . . . . . 70Tablo 8.15 ç ve D³ Bellekli Yol Yaps Bir Bitin ifrelenmesi için Gerekli

Enerji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71Tablo 8.16 yile³tirilen AES Yaplar Alan Sonuçlar. . . . . . . . . . . . 72Tablo 8.17 yile³tirilen AES Yaplar Frekans Sonuçlar. . . . . . . . . . . 72Tablo 8.18 yile³tirilen AES Yaplar Güç Tüketim Sonuçlar. . . . . . . 72Tablo 8.19 yile³tirilen AES Yaplar Enerji Tüketim Sonuçlar. . . . . . 73

vi

SEKIL LISTESI

Sayfa NoSekil 2.1 : CMOS Evirici Yaps. . . . . . . . . . . . . . . . . . . . . . . 8Sekil 3.1 : Dizi ifreleme Sistemleri. . . . . . . . . . . . . . . . . . . . . 11Sekil 3.2 : Blok ifreleme Sistemleri. . . . . . . . . . . . . . . . . . . . . 13Sekil 3.3 : ECB Yöntemi ile ifeleme ³lemi . . . . . . . . . . . . . . . . 14Sekil 3.4 : ECB Yöntemi ile ife Çözme ³lemi . . . . . . . . . . . . . . 14Sekil 3.5 : CBC Yöntemi ile ifeleme ³lemi. . . . . . . . . . . . . . . . 15Sekil 3.6 : CBC Yöntemi ile ife Çözme ³lemi. . . . . . . . . . . . . . . 15Sekil 3.7 : CFB Yöntemi ile ifeleme ³lemi. . . . . . . . . . . . . . . . 15Sekil 3.8 : CFB Yöntemi ile ife Çözme ³lemi. . . . . . . . . . . . . . . 15Sekil 3.9 : OFB Yöntemi ile ifeleme ³lemi. . . . . . . . . . . . . . . . 16Sekil 3.10 : OFB Yöntemi ile ife Çözme ³lemi. . . . . . . . . . . . . . . 16Sekil 4.1 : FPGA Yaps. . . . . . . . . . . . . . . . . . . . . . . . . . . 19Sekil 4.2 : CLB Yaps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Sekil 4.3 : CLB Giri³ Çk³larnn FPGA Üzerindeki Görünümü. . . . . 19Sekil 4.4 : Programlanabilir Ara Ba§lantlar. . . . . . . . . . . . . . . . 20Sekil 4.5 : Virtex 4 CLB Ara Ba§lantlar. . . . . . . . . . . . . . . . . . 22Sekil 4.6 : SLICEM ematik Diyagram. . . . . . . . . . . . . . . . . . . 23Sekil 4.7 : SLICEL ematik Diyagram. . . . . . . . . . . . . . . . . . . 24Sekil 4.8 : Virtex 4 I/O dö³emeleri. . . . . . . . . . . . . . . . . . . . . 25Sekil 4.9 : Giri³ Loji§i Yaps. . . . . . . . . . . . . . . . . . . . . . . . 25Sekil 4.10 : Çk³ Loji§i Yaps. . . . . . . . . . . . . . . . . . . . . . . . 26Sekil 5.1 : Durum Dizisi. . . . . . . . . . . . . . . . . . . . . . . . . . . 29Sekil 5.2 : AES Blok ema. . . . . . . . . . . . . . . . . . . . . . . . . . 30Sekil 5.3 : Tur Dönü³üm Blok ema. . . . . . . . . . . . . . . . . . . . . 32Sekil 5.4 : Bayt De§i³tirme Dönü³ümü. . . . . . . . . . . . . . . . . . . 32Sekil 5.5 : Satrlar Kaydrma ³lemi. . . . . . . . . . . . . . . . . . . . 34Sekil 5.6 : Sütunlar Kar³trma ³lemi. . . . . . . . . . . . . . . . . . . 35Sekil 5.7 : Anahtar Ekleme ³lemi. . . . . . . . . . . . . . . . . . . . . . 35Sekil 5.8 : 128 bitlik giri³ anahtar için Anahtar Üreteci. . . . . . . . . . 36Sekil 6.1 : Klçk Örne§i. . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Sekil 6.2 : Hafza Birimi Ekleyerek Klçk Azaltma. . . . . . . . . . . . . 40Sekil 6.3 : Dengesiz Yol Gecikmelerine Sahip Devre . . . . . . . . . . . . 40Sekil 6.4 : Dengeli Yol Gecikmelerine Sahip Devre. . . . . . . . . . . . . 41Sekil 6.5 : Tipik Kontrol ³aretli senkron Kaydedici. . . . . . . . . . . . . 41Sekil 6.6 : Saat ³areti Engellenmi³ Kaydedici. . . . . . . . . . . . . . . . 42Sekil 6.7 : Giri³ zolasyonu Uygulanmam³ Devre. . . . . . . . . . . . . . 42Sekil 6.8 : Giri³ zolasyonu Uygulanm³ Devre. . . . . . . . . . . . . . . . 42Sekil 6.9 : Yeniden Zamanlama Yöntemi Uygulanmam³ Devre. . . . . . 43Sekil 6.10 : Yeniden Zamanlama Yöntemi Uygulanm³ Devre. . . . . . . . 43Sekil 6.11 : Faz Ayar Uygulanm³ Devre. . . . . . . . . . . . . . . . . . . 44

vii

Sekil 8.1 : S-Kutusu Bertoni Yaps. . . . . . . . . . . . . . . . . . . . . . 49Sekil 8.2 : 7 Bitlik Dekoder Yaps. . . . . . . . . . . . . . . . . . . . . . 50Sekil 8.3 : S-Kutusu Güç Tasarruu Dekoder Yaps. . . . . . . . . . . . 51Sekil 8.4 : yile³tirilen Bertoni Yaps. . . . . . . . . . . . . . . . . . . . . 52Sekil 8.5 : GF(24) Alt Alann Kullanarak Ters Alma. . . . . . . . . . . . 54Sekil 8.6 : yile³tirme yaplm³ Aritmetik S-Kutusu ematik Gösterilimi. 58Sekil 8.7 : Klasik Yap AES gerçeklemesi. . . . . . . . . . . . . . . . . . 61Sekil 8.8 : D³ Bellekli Yol Yaps AES gerçeklemesi. . . . . . . . . . . . 65Sekil 8.9 : ç ve D³ Bellekli Yol Yaps AES Gerçeklemesi. . . . . . . . . 69Sekil A.1 : Simülasyon Verilerinin Toplanmas. . . . . . . . . . . . . . . 81Sekil A.2 : VCD Dosyasnn Alnmas. . . . . . . . . . . . . . . . . . . . 82Sekil A.3 : XPOWER Aracnn Çal³trlmas. . . . . . . . . . . . . . . . 82Sekil A.4 : FPGA'in Kulland§ Statik Güç De§erleri . . . . . . . . . . . 83Sekil A.5 : Simulasyon Dosyasnn (VCD) Yüklenmesi . . . . . . . . . . 83Sekil A.6 : Güç Harcama Sonuçlar . . . . . . . . . . . . . . . . . . . . . 84

viii

SEMBOL LISTESI

Z : Tamsaylar kümesi katsaylarGF(p) : p elemanl Galois alanGF(pn) : pn elemanl Galois alanGF(2n) : 2n elemanl Galois alana(x) : GF(28)'deki a elemann polinomsal gösterimiE() : ifreleme fonksiyonuC : ifrelenmi³ veriD() : Çözme fonksiyonuP : Açk veriNr : Tur saysNk : Kelime (32-bit) cinsinden anahtar uzunlu§uSi : i'inci durum baytRCON : Anahtar üreteci tur sabitiah,al : a'nn alt alan gösterimleriλλλ : ndirgeme polinomu sabiti

ix

AES ALGORITMASININ FPGA ÜZERINDE DÜSÜK GÜÇLÜ TASARIMI

ÖZET

Kriptograk algoritmalar gün geçtikçe daha yaygn kullanm alanlarbulmaktadr. lk zamanlarda yüksek hz ve yüksek i³lem gücü kapasitesinesahip devreler tasarlanmaya çal³lrken, enerji ve alan kstna sahip ortamlardakullanm alanlarnn artmasyla güç ve alan tasaruu gerçeklemeler büyük önemkazanm³tr. Bu konu üzerine artarak devam eden ara³trmalarda dü³ük güçtasarrufu için farkl yöntemler önerilmekte ve gerçeklemelerin güç harcamalarazaltlmaya çal³lmaktadr.Bu çal³mada Geli³mi³ Kodlama Standard (AES: Advanced EncryptionStandart) algoritmas sahada programlanabilir kap dizisi (FPGA: FieldProgrammable Gate Array) üzerinde gerçeklenmekte ve güç tasarrufyöntemlerinden yararlanlarak dinamik güç harcamalar azaltlmaktadr.Bu amaç do§rultusunda ilk olarak AES algoritmas içerisinde yer alanalt bloklardan en çok güç harcayan blok olarak S-Kutusu belirlenmi³ vegüç harcamalarn kar³la³trabilmek amacyla farkl yöntemlerle S-Kutusugerçeklenmi³tir. Daha sonra yaygn kullanm alanna sahip Klasik, D³ Bellekli,ç ve D³ Bellekli yapda AES algoritmalar gerçeklenmi³ ve bilgisayar benzetimprogram ile yaplarn test vektörü giri³lerine kar³lk do§ru sonuçlar verdi§igösterilmi³tir.Literatürde yer alan güç tasarruf yöntemleri incelenmi³ ve bu yöntemlerkullanlarak farkl yaplarda gerçeklenen AES algoritmalar üzerinde güç tasarrufusa§lanm³tr. Güç harcamasnn fazla olmas nedeniyle S-Kutusu üzerineyo§ula³lm³ ve farkl yöntemlerle gerçeklenen S-Kutular üzerinde iyile³tirmeleryaplm³tr. yile³tirme yaplmadan önce ve iyile³tirme yapldktan sonrakigerçeklemeler için dinamik güç harcamalar kar³la³trlm³, ayrca devrelere aitalan ve zaman bilgileri de incelenmi³tir. Güç Harcamas ile birlikte farklAES yaplarnn bir biti ³ifrelemek için gereksinim duydu§u enerji miktarlar dakar³la³trlm³tr.

x

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 itsapplications growing up on power and area resource-limited platforms, power andarea ecient implemantations are becoming more important. This is why therehas been lots of research on low power design which advise dierent methods forreducing power consumption of implemantations.In this study, dynamic power consumptions of Field Programmable Gate Array(FPGA) implementations of the Advanced Encryption Standart (AES) has beenreduced by using low power design methods.For this purpose, rst of all, it is identied that S-BOX dissipates the mostof power dissipated in AES. For comparasion of power dissipations, dierentmethods are used to implement AES SBOX. Then AES implemented byusing Basic Architecture, Outer Pipeline Architecture and Inner Outer PipelineArchitecture which have widespread applications. Computer simulations havebeen used to show that the implementations of the algorithm generate correctoutputs against test vectors.Low power design techniques are examined and power consumption ofimplemented architectures of AES algorithm are reduced by using thesetechniques. Because of much power dissipation, implemented SBOXes by usingdierent methods are improved so that their power dissipation is reduced. Beforeand after applying low power techniques on AES architectures are comparedaccording to the power dissipations, area requirements and maximum operatingfrequency of each architectures for each SBOXes. Also the needed energy forencrypting one bit studied for all architectures which are implemented.

xi

1. GIRIS

Kriptogra ³ifre bilimidir, çe³itli iletilerin, bilgilerin herkese açk ortamlardailetilirken istenmeyen ki³iler tarafndan kullanlmasn veya de§i³tirilmesiniönlemek amaçl kullanlr. Kriptogra, bilgiyi güvenli bir ³ekilde sadece istenilenki³iye ula³trmak amacyla uzun süredir kullanlmaktadr. Önceleri askeriamaçl kullanldysa da geli³en teknoloji ile birlikte ortaya çkan güvenlik aç§nkapatmak ve bilginin güvenilir bir ³ekilde ta³nmasn sa§lamak amacyla sivilya³amda da yerini alm³tr.

Veri transferi srasnda güvenilirli§i sa§lamak için skça kriptograk algoritmalarkullanlr. Kullanlan bu algoritmalar donanmsal veya yazlmsal olarakgerçeklemek mümkündür. Yazlmsal gerçeklemeler daha az maliyet getirmeklebirlikte yava³ ve güvensizdirler. Donanmsal gerçeklemelerin ise istenilen yüksekhzlarda çal³ma imkanlar vardr, ayrca yazlmsal gerçeklemelere oranla dahagüvenilir gerçeklemelerdir.

Pek çok kripto algritmas yüksek hz ve yüksek i³lem hacmine sahip olacak³ekilde Sahada programlababilir kap dizileri (FPGA) ve uygulama özel tümdevre (ASIC) teknolojileri kullanlarak gerçeklenmektedirler. Geli³en teknlolojiile kripto algoritmalar daha yaygn kullanm alan bularak, alan ve enerjikstlamas bulunan ortamlarda da kullanlmaya ba³lanm³tr. Kablosuzyerel a§ ba§lantlar (WLAN), kablosuz ki³isel alan ba§lantlar (WPAN),Kablosuz alglayc ba§lantlar (WSN), akll kartlar ve RFID (Radio-FrequencyIdentication) gibi alan ve enerji kstlamas bulunan ortamlarda yüksek hzlardanziyade güç tasarruu ve küçük alanl tasarmlar önem kazanmaktadr.

Bir elektronik devrede temel olarak harcanan iki tür güç kavramndanbahsedilebilir. Bunlardan ilki statik güç olarak adlandrlr, devreye herhangibir 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

1

giri³lerin i³lenmesi srasnda harcanan güçtür. Bir devreye ait statik güçharcamas zamanla de§i³mezken, dinamik güç harcamas uygulanan giri³lere ba§loldu§undan zamanla de§i³mektedir.

ASIC uygulamalarnda devrenin harcad§ statik güç genel olarak harcanandinamik güce oranla çok daha azdr. FPGA'lerde ise statik güç tasarma çokda ba§l olmadan FPGA içerisinde kullanlan teknolojiye ba§l olarak yüksekde§erlere ula³abilmektedir. Her iki teknolojide de, ASIC ve FPGA, dinamikgüç harcamalar üzerinde tasarruf sa§lanmaya çal³lmaktadr. Dinamik güçharcamalarn azaltmak için güç tasarruf yöntemleri mevcuttur, bu yöntemlerdenbazlar devrede olu³an istenmeyen geçi³ i³areti klçklar (glitch) azaltmayaçal³maktadr. Baz yöntemler ise çk³ kullanlmayan bloklar uyutmay, içeri§igüncellenmeyecek kaydecilerin saat i³aretini kesmeyi önermektedir. Tasarmsrasnda bu tür yöntemlere dikkat ederek dinamik güç harcamasn azaltmakmümkündür.

1.1 Tezin Kapsamı

Joan Daemen ve Vincent Rijmen tarafndan geli³tirilen Rijndael [1] algoritmasgüvenlik, performans, gerçekleme kolayl§ gibi özellikler dikkate alnarakAmerikan ulusal standartlar ve teknoloji enstitüsü (National Institute ofStandards and Technology (NIST)) tarafndan geli³mi³ kodlama standard(Advanced Encryption Standard (AES)) olarak seçilmi³ ve federal bilgii³leme standard (Federal Information Processing Standards (FIPS)) olarakyaynlanm³tr [2]. AES algoritmas bilgiyi ³ifrelemek ve çözmek için kullanlansimetrik blok ³ifreleyicidir.

AES algoritmasnn yaynlanmasndan sonra pek çok yazlmsal ve donanmsalgerçeklemeleri yaplm³tr. Donanm gerçeklemelerinin ço§u FPGA ve ASICteknolojileri üzerinde, yüksek hz ve yüksek i³lem hacmi kriterleri sa§lanarakgerçeklenmi³lerdir [35]. Geli³en teknoji ile birlikte kaynak kstl ortamlarda dabilgiyi ³ifreleme gereksinimi duyulmaktadr. Bu ortamlarda güç tasarruu AESgerçeklemelerine ihtiyaç duyulmaktadr.

2

Bu çal³mada AES algoritmasnda yer alan S-Kutusu 3 farkl yöntemlegerçeklenmi³ ve gerçeklenen S-Kutularnn Klasik (Basic Architecture), D³Bellekli Yol (Outer Pipeline) ve ç ve D³ Bellekli Yol (Inner Outer Pipeline)yaplarndaki AES gerçeklemelerinin güç harcamalar incelenmi³tir. Farklyöntemlerle gerçeklenen S-Kutular üzerinde iyile³tirmeler yaplm³ ve her üçyap içinde güç tasarruf yöntemlerinden yararlanlarak devrelerin dinamik güçharcamalar azaltlm³tr. Tüm bu gerçeklemeler srasnda FPGA teknolojisikullanlm³tr.

1.2 Tezin Konuya Katkısı

Literatürde, son zamanlarda dü³ük güç tüketen AES gerçeklemelerineyo§unla³lm³tr. Bu gerçeklemelerden ço§u ASIC teknolojisi üzerinde yaplm³olup, FPGA gerçeklemesi çok snrldr. Bu çal³ma FPGA üzerinde gerçeklenmi³olup, algoritmada yer alan S-Kutusu blo§unun en çok güç tüketti§i gözönünealnarak 3 farkl yöntemle S-Kutusu tasarm gerçeklenmi³ ve bu gerçeklemelerüzerinde iyile³tirmeler yaplm³tr. AES algoritmas Klasik, D³ Bellekli Yol,ç ve D³ Bellekli Yol yaplarnda tasarlanm³, bu yaplar üzerinde güç tasarrufyöntemleri uygulanm³ ve iyile³tirilmi³ S-Kutusu gerçeklemelerinin güç tasarrufkatklar incelenmi³tir. Ayrca gerçeklenen 3 farkl AES yaps için güçharcamalar ve bir bitin ³ifrelenmesi için gerekli enerji miktarlar incelenmi³tir.Gerçeklenen yaplarn alan ve maksimum çal³ma frekans bilgilerine de yerverilmi³tir.

3

2. MATEMATIKSEL ÖN BILGILER

Bu bölümde çal³mann anla³labilirli§ini artrmak için gerekli matematikselbilgiler verilecek ve güç kavramna de§inilecektir.

2.1 Galois Alanları

Tanm 2.1 :GF(p)

p says asal olmak üzere 0,1,2...,p-1 tamsay elemanlarndan olu³an ve üzerindemodülo p toplama (+), modülo p çarpma (*) i³lemleri tanml alana Galois alandenir ve GF(p) olarak gösterilir. p says Galois alannn karakteristi§i olarakadlandrlr.Tanm 2.2 :GF(pm) Geni³letilmi³ AlanGF(p) sonlu alan q = pn olmak üzere GF(q) alanna geni³letilmi³ alan denir.GF(p) alannn geni³letilmesi ile olu³turulan GF(pm) alan pm elemana sahiptir.Geni³letilmi³ alann Galois alan olu³turabilmesi için üzerinde tanml i³lemlergerçekle³tirilirken m. dereceden bir polinom kullanlr. Kullanlan m. derecedenpolinomun çarpanlarna ayrlamamas gerekmektedir, yani indirgenemez polinomolmas gerekmektedir.

2.2 GF(2m) Genisletilmis Alanı

GF(2m) alan özel olarak GF(2) alan üzerinden geni³letilmi³tir. GF(2) alanikilik düzende çok büyük bir öneme sahiptir. Bu alan üzerindeki elemanlar "0"veya "1" olarak gösterilmektedir ve bit gösterilimi ile ayndr. GF(2m) alanüzerinde tanml bir eleman "0" ve "1"'lerden olu³an m bitlik bir say olarakdü³ünülebilir. GF(2m) sonlu alan bu özelli§inden dolay kriptogra alanlanndapek çok uygulamaya sahiptir [6, 7].Tanm 2.3 :BazGF(2m) alan üzerinde m elemanl am−1,am−2, . . . ,a1,a0 öyle bir küme vardr ki

4

∀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(2m) sonlu alannn baz olarak ifade edilir.GF(2m) tanml elemanlarn gösterilimi srasnda kullanlan yöntem, sonlu alanüzerindeki i³lemlerde farkl zorluklar ve kolaylklar sa§lar [8, 9].

2.2.1 Polinomsal Baz

Tanm 2.4 :ndirgenemez Polinomf (x) = xm + ∑m−1

i=0 ( fi ∗ xi) fi ∈ 0,1 olmak üzere GF(2)'de tanml m. derecedenf (x) polinomu ayn alan üzerinde tanml di§er polinomlarn çarpm ³eklindeyazlamyorsa f (x) polinomu indirgenemez polinomdur ve indirgeme poninomuolarak adlandrlr.

∀a ∈GF(2m) için a elemannn polinomsal baz gösterilimi ai ∈ 0,1 olmak üzereDenklem (2.2)'de verilmektedir.

a = (am−1am−2 . . .a1a0) = am−1xm−1 +am−2xm−2 + · · ·+a1x+a0 (2.2)

Polinomsal gösterilim Galois alanlar üzerinde çok yaygn bir kullanma sahitir,bu çal³ma srasnda polinomsal gösterilim kullanlmaktadr.

2.2.2 Normal Baz

β ∈ GF(2m) olmak üzere (β ,β 2,β 4 . . .β 2m−1) kümesi GF(2m) alannn GF(2)

üzerinde tanml normal bazdr.

∀a ∈ GF(2m) için a elemannn normal baz gösterilimi Denklem (2.3)'deverilmektedir.

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

∑i=0

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

2.3 GF(2m) Üzerinde Matematiksel Islemler

2.3.1 Toplama Islemi

5

GF(2m) sonlu alan üzerinde tanml toplama i³lemi bu alan üzerinde tanmlelemanlarn polinomsal gösterilimlerinin toplanmas ve daha sonra polinomkatsaylarnn modülo 2 olarak düzenlenmesi ile gerçekle³tirilir.Örnek 2.1 :Toplama

a,b,c ∈ GF(2m)

a = (11001111) = x7 + x6 + x3 + x2 + x+1,b = (10001000) = x7 + x3c = a+b = x7 + x6 + x3 + x2 + x+1+ x7 + x3 = 2x7 + x6 +2x3 + x2 + x+1

c = x6 + x2 + x+1 = (01000111)

Yaplan i³lemler incelendi§inde toplama i³leminin bit bit e-xor'lama i³lemindenibaret oldu§u görülebilir. Bu özellik donanm gerçeklemelerinde büyük kolaylksa§lamaktadr.

GF(2m) sonlu alan üzerinde çkarma i³lemi toplama i³lemi ile ayndr. Heriki i³lem de sonlu alan üzerinde tanml elemanlarn bit bit e-xor'lanmas ilegerçeklenir.

2.3.2 Çarpma Islemi

GF(2m) alan üzerinde tanml çarpma i³lemi modülo P(x) polinomu uyarncagerçekle³tirilir. P(x) polinomu Tanm 2.3'de verilen indirgeme polinomudur.Çarplacak olan elemanlarn polinomsal gösterilimi birbirleri ile çarplr ve çkansonucun P(x) polinomuna bölümünden kalan GF(2m) sonlu alan üzerinde tanmlçarpma i³leminin sonucuna e³ittir.Örnek 2.2 :Çarpma

P(x) = x8 + x4 + x3 + x+1 a,b,c ∈ GF(2m)

a = (01010111) = x6 + x4 + x2 + x+1,b = (10000011) = x7 + x+1c = 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

P(x) indirgeme polinomu çarpma i³leminin sonucunun ayn alan üzerindeki birelemana denk dü³mesini garanti eder.

6

GF(2m) alan üzerinde tanml sfrdan farkl her elamann çarpmaya göre tersimevcuttur. sfr elemannn tersi ise yine sfrdr. Alan üzerinde tanml herhangibir b(x) poliomunun tersi b(x)−1 olarak gösterilir. Denklem (2.4)'ün geçerli oldu§udurum için b(x)−1 = a(x) olarak tanmlanr.

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üç harcamasnn naslyapld§n anlamak gerekir. Pek çok teknolojide CMOS yaplarn kullanlmasnedeniyle CMOS üzerinde güç harcamasnn nasl gerçekle³ti§i önemlidir. Genelolarak CMOS devreler üzerinde harcanan gücü ifade etmek gerekirse [10];

P = Pdinamik +Pstatik (2.5)

Pdinamik = (12∗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üç harcamasyaplr. Dinamik güç CMOS çk³larnn 0 -> 1 veya 1 -> 0 lojik geçi³lerisrasnda harcanmaktadr. Dinamik güç harcamsna ait ifade Denklem 2.6'daverilmektedir. Statik güç harcamas ise devrenin sükunet halindeyken harcad§güçtür. Statik güç devre çk³ndaki lojik geçi³ler ve devrenin çal³mafrekansndan ba§mszdr. Çal³ma süresince aksi belirtilmedi§i takdirde güçharcamasndan kast dinamik güç harcamasdr.

2.4.1 Dinamik Güç

CMOS evirici üzerinde harcanan dinamik güç; evirici çk³ndaki lojikgeçi³lerden ve anlk olarak her iki transistorun de ayn anda iletim yönündekutuplanmasndan kaynaklanr. Her iki bile³en de çal³ma frekansna ve lojikseviye de§i³tiren kap saysna ba§l ifadelerdir. En basit CMOS yaps olan ekil2.1'de verilen evirici gözönüne alnd§ takdirde; lojik geçi³ler srasnda C1 veC2 kapasitelerinin doldurulup bo³altlmasyla güç harcamas yaplr. Örne§in;giri³ A=0 durumunda iken Q1 transistoru kesimde, Q2 transistoru ise iletimdeolacaktr. Böylece çk³n lojik 1 seviyesine gelmesi sa§lanacaktr. Çk³n

7

Sekil 2.1: CMOS Evirici Yapısı.

lojik 1 seviyesine gelmesi için C1 kapasitesinin doldurulmas C2 kapasitesininise bo³altlmas gerekir. Benzer olarak giri³ A=1 durumunda iken çk³lojik 0 seviyesine çekilecek ve C1 kapasitesi bo³altlrken, C2 kapasitesi isedoldurulacaktr. Böylelikle bir lojik de§i³im periyodu süresince C1 ve C2

kapasiteleri tarafndan harcanan güç CL = C1 + C2 olmak üzere 12 ∗ (CL) ∗V 2

DD

olarak ifade edilebilir. Bu ba§lamda herhangi bir CMOS devresinde kapçk³larnn lojik seviye de§i³tirmesinden kaynaklanan güç harcamas Denklem2.8'de verilmektedir, denklemde yer alan f frekans bile³enini, N ise lojik geçi³saysn ifade etmektedir.

Psw =12∗ (CL)∗V 2

DD ∗ f ∗N (2.8)

Giri³ A lojik seviyesindeki de§i³iklik srasnda anlk olarak her iki transistordeiletime geçer. Giri³ gerilim de§erinin VT (e³ik gerilim de§eri) ve VDD−VT de§erleriarasnda oldu§u zamanlarda VDD besleme gerilimi ile toprak arasnda ksa devreolu³ur, ve bu durum devreden akm çekilmesine neden olur. Bu süre zarfndadevreden çekilen güç QSC ksa devre akm tarafndan ta³nan e³lenik yükü temsiletmek ü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 frekansaba§ml oldu§u görülmektedir. Frekans de§eri dü³tükçe devrede harcanan güçazalmaktadr. Fakat frekans dü³ürmek devrenin belirlenmi³ bir görevi yapmasüresini arttrmaktadr. Devrede harcanan dinamik güç önemli oldu§u kadar

8

harcanan enerjinin de önemi büyüktür. Dinamik güç de§erinin tek ba³na dü³ükde§erlere sahip olmas yeterli de§ildir, harcanan enerjinin de dü³ük de§erlerdeolmas gerekir. Bir devrede harcanan enerji E = P.t olarak ifade edilir. Dinamikgüç tüketiminden kaynakl enerji tüketimi; Edinamik = Pdinamik ∗ t olarak ifadeedilebilir. 2.8 ve 2.9 denklemleri incelendi§i takdirde Edinamik de§erinin çal³mafrekansndan ba§msz olarak sabit kald§ görülmektedir. Ayrca harcanandinamik güç de§eri VDD gerilimine ba§l olarak de§i³mektedir. VDD gerilimi isekullanlan teknolojiye ba§ldr.

2.4.2 Statik Güç

Statik güç devre üzerinde hiç bir aktivite olmad§nda harcanan güç olarak ifadeedilebilir. ekil 2.1'deki evirici üzerinden ifade etmek gerekirse giri³ A lojik 0seviyesinde oldu§unda Q1 transistoru tkama yönünde kutuplanmaktadr. Fakatbu transistor üzerinde sznt akm olu³maktadr. Benzer olarak giri³ A lojik1 seviyesindeyken Q2 transistoru tkama durumunda olacak ve üzerinden szntakm akacaktr. Böylelikle devre üzerinde giri³te herhangi bir aktivite olmaksznsznt akmlarndan kaynaklanan statik güç harcanacaktr. Harcanan statik güçifadesi a³a§da verilmektedir.

PS = Ileak ∗VDD (2.10)

Sznt akmlarndan kaynaklanan statik güç harcamas dinamik güç harcamasnaoranla dü³ük seviyelerde kalmaktadr, fakat geli³en teknoloji ile birlikte transistore³ik gerilim de§erleri dü³mektedir. Böylece statik güç de§erinin baskn durumagelmesi beklenmektedir [13].

9

3. SIFRE BILIMI

Kriptogra ³ifre bilimidir, Çe³itli iletilerin, bilgilerin herkese açk ortamlardailetilirken istenmeyen ki³iler tarafndan kullanlmasn veya de§i³tirilmesiniönlemek amaçl kullanlr. Kriptogra, bilgiyi güvenli bir ³ekilde sadeceistenilen ki³iye ula³trmak amacyla uzun süredir kullanlmaktadr. Tarihinbilinen ilk ³ifreleme yöntemi yer de§i³tirme ve harf de§i³tirme yöntemidir.Bu yöntemlerden ilki bir yazdaki harerin yerlerini de§i³tirerek, ikincisi isehareri ba³ka harerle de§i³tirerek gerçekle³tirilir. Kriptograk sistemler önceleriaskeri amaçl kullanldysa da geli³en teknoloji ile birlikte ortaya çkan güvenlikaç§n kapatmak ve bilginin güvenilir bir ³ekilde ta³nmasn sa§lamak amacylasivil ya³amda da yerini alm³tr. letilmek istenen veri açk a§lar üzerindeniletildi§inde veri istenmeyen ki³iler tarafndan dinlenme veya de§i³tirilme tehdidialtndr. Söz konusu veri ³ifrelenmemi³ düz metindir (plaintext). letinin içeri§inisaklamak üzere ileti üzerindeki gizleme i³lemine ³ifreleme (encryption) denir.Bu i³lem sonucunda düz metin ³ifrelenmi³ olur ve böylelikle bilginin içeri§iba³kalar tarafndan anla³lamayacak hale gelir. ifreleme i³lemi sonucu olu³anmetine ³ifreli metin (ciphertext) denir. ifreleme amaçl kullanlan algoritmanngüvenli§i bu algoritmann sakl tutulmas ile sa§lanyorsa bu bir snrlandrlm³algoritmadr. Bu tür algoritmalar günümüz ³artlarna pek uymamaktadr.Algoritmann güvenli§i sadece gizli tutulmasyla sa§land§ndan istenmeyen birdurumda algoritmann aç§a çkmas ile kullanlan tüm sistemin de§i³tirilmesigerekir. Ayn zamanda bu tür algoritmalarn gizlili§i nedeniyle kalite kontrolüneve standardizasyona olanak tanmad§ndan bu tür algoritmalar güvenli bir³ifreleme sa§lamazlar. Günümüzde bu sorun açk algoritma, gizli anahtar tekni§iile giderilmektedir. Günümüzde kullanlan ³ifreleme algoritmalar artk gizlide§ildir. Bilginin güvenli§i algoritmann gizlenmesi ile de§il, iletiyi ³ifrelemekamaçl kullanlan anahtarn sakl tutulmas ile sa§lanr. Kullanlan anahtar çokçe³itli de§erler alabilir ve yalnzca bu anahtara sahip ki³iler istenilen bilgiye

10

ula³abilir. ifreleme sistemlerinde kullanlan anahtarlarn özgün olmas ve kendinitekrarlamamas istenir. Gizli anahtar kullanan ³ifreleme sistemleri iki grubaayrlr; bunlar blok ³ifreleme (block cipher) ve dizi ³ifreleme (stream cipher)sistemleridir.

3.1 Dizi Sifreleme sistemleri

Dizi ³ifreleyiciler zamanla de§i³en anahtar yardmyla düz metinin her bir bitinisrayla ³ifrelerler. Dizi ³ifreleyiciler yüksek hzl ileti³im için en iyi alternatierdenbirisidir. Yüksek hatal ileti³im ortamlarnda hata riskini azaltt§ndan tercihsebebidirler. Dizi ³ifreleme sistemleri genel olarak ekil 3.1'de verilen yapyasahiptirler. ifrelenecek olan düz metnin bit dizisi ³eklindeki ifadesi olanP dizisinin bir biti ile üretilen anahtar dizisinin bir biti e-xor i³lemine tabitutularak ³ifrelenmi³ metine ait olan C biti elde edilir. Bu i³lem düz metine aitbü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§indenfaydalanarak ; ayn ³ekilde ³ifrelenmi³ metinin bir biti, biti ³ifrelemek içinkullanlan 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 rP

i

Pi

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

Sekil 3.1: Dizi Sifreleme Sistemleri.

alglanabilir. Burada rasgeleden kast önceki bitlere bakarak bir sonraki bitintahmin edilemez olmasdr. Rasgele bir dizi elde etmenin mümkün olmad§ gözönünde bulundurulursa, burada amaç eldeki sistemlerle olabildi§ince karma³kanahtar bir dizisi üretme algoritmas kullanarak yeterince rasgele diziler eldeetmektir.

3.1.1 Senkron Dizi Sifreleyiciler

11

En basit dizi ³ifreleyiciler anahtar dizisini düz metinden yada di§er adyla³ifrelenmemi³ metinden ba§msz olarak üreten senkronize sistemlerdir. Bu türdizi ³ifreleyicileri kullanlan bir anahtar olu³turma algoritmas uyarnca sistemegirilen 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 ifadeedilmektedir.

Ω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 durumuifade eder. Bir sonraki durum ³u an ki durum ile girilen anahtar tohumu dizisininde§erine ba§l olarak belirlenir. Yukardaki ifadelerde yer alan g fonksiyonu ise birsonraki biti elde etmek için kullanlan fonksiyonu ifade eder ve üretilen bit ³u anki duruma ve girilmi³ olan anahtar tohumu dizisinin de§erine ba§l olarak de§i³ir.h fonksiyonu ise üretilen ³ifrelenmi³ bitin elde edilmesinde kullanlan fonksiyonuifade eder. kinci e³itlikten elde edilen anahtar biti ile düz metine ait ³ifrelenecekbit bu fonksiyon uyarnca i³leme alnr ve ³ifrelenmi³ bit elde edilir. Kriptograksistemlerde h fonksiyonu ço§u kez e-xor i³leminden olu³ur.

3.1.2 Asenkron Dizi Sifreleyiciler

Senkron dizi ³ifreleyicilerinin yan sra bir de asenkron veya kendinden senkronizedizi ³ifreleyiciler mevcuttur. Bu tür dizi ³ifreleyiciler anahtar dizisini sistemegirilen anahtar tohumlaryla birlikte ³ifrelenmi³ metinin sabit saydaki ³ifrelibitlerini 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)

ci = h(zi;mi) (3.6)

Ωi = (ci−t ,ci−t+1, . . . ,ci−1) ifadesi ilk durumu belirtir. Senkron sistemlere aite³itliklerde de oldu§u gibi g anahtar biti üreten fonksiyonu ve h ise ³ifrelenmi³

12

biti üreten fonksiyonu ifade etmektedir. Bu tür dizi ³ifreleyicilerinde bulunulandurumu ³ifrelenmi³ metinin sabit saydaki baz bitleri belirler.

3.2 Blok Sifreleme Sistemleri

Blok ³ifreleme sistemleri, sabit uzunluktaki veri blo§unu sabit uzunluktakianahtar dizisi ile birlikte pek çok karma³k i³lemden geçirerek, giri³ veri blo§u ileayn uzunlukta ³ifrelenmi³ veri blo§unu olu³tururlar. Benzer olarak ³ifre çözmei³lemi için ³ifreleme srasnda gerekli olan i³lemlerin tersi, ters srada 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 re leme

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 çözme

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 kullanmda olan pek çok blok ³ifreleme sistemi mevcuttur, örnekolarak 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 olmasdurumunda veri blok uzunluklarna parçalanr ve ³ifreleme i³lemi gerçekle³tirilir.Veriyi blok uzunluklarna parçaladktan sonra ³ifreleme i³lemi elektronik Kodkitab (ECB), ³ifre bloklarn 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, aynanahtar blo§u ile ³ifrelenmesi sonucu hep ayn çk³ blo§u olu³ur, bu nedenle³ifreleme i³leminde güvensizlik olu³abilir. Kullanlan farkl yöntemler sayesinde³ifreleme i³lemi daha güvenilir hale getirilir.

13

3.2.1 Elektronik Kod Kitabı (ECB) Yöntemi

ECB yönteminde ³ifrelenecek veri blok uzunluklarna parçalandktan sonraher bir blok birbirinden ba§msz olarak ³ifrelenir. Her bir blo§un ba§mszolarak ³ifrelenmesinden dolay ayn içerikten olu³an veri bloklar için ayn³ifrelenmi³ bloklar olu³ur. Bu özellik nedeniyle ³ifrelenecek veri hakknda bilgiedinilebilir. Pek çok ³ifreleme sisteminde bu sakncadan dolay ECB modu tercihedilmemektedir. ECB moduna ait veri ³ifreleme ve ³ifre çözme i³lemleri ekil 3.3ve 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 çözme

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 çözme

B L O K S i F R E L E Y i C i S i f r e çözme

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 Islemi .

B L O K S i F R E L E Y i C i S i f r e çözme

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 çözme

B L O K S i F R E L E Y i C i S i f r e çözme

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 Islemi .

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

CBC yönteminde bloklara ayrlm³ 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 ilebirlikte kendinden önceki ³ifrelenmi³ veri bloklarna da ba§l olur. lk ³ifrelenecekveri için ilk durum vektörüne ihtiyaç vardr. Bu yöntem önemli derecede, güvenli³ifrelemeye katk sa§lar. CBC yöntemine ait ³ifreleme ve ³ifre çözme i³lemleriekil 3.5 ve ekil 3.6'da verilmektedir.

3.2.3 Sifreyi Geri Besleme (CFB) Yöntemi

14

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 çözme

B L O K S i F R E L E Y i C i S i f r e çözme

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 çözme

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 Sifeleme Islemi.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 çözme

B L O K S i F R E L E Y i C i S i f r e çözme

A n a h t a rA 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 çözme

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 Sife Çözme Islemi.

ifreyi geri besleme yöntemi CBC yöntemine benzerlik gösterir. Bu yöntemle blok³ifreleyici yaps asenkron dizi ³ifreleyici yapsna dönü³türülür. CBC yöntemindeoldu§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 re leme

B L O K S i F R E L E Y i C i S i f re leme

A n a h t a rA 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 re leme

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 Sifeleme Islemi.

B L O K S i F R E L E Y i C i çözme

B L O K S i F R E L E Y i C i çözme

A n a h t a rA 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 çözme

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 Sife Çözme Islemi.

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

15

Bu yöntemle blok ³ifreleyici yaps senkron dizi ³ifreleyici yapsna dönü³türülür.CFB ve CBC yönteminde oldu§u gibi ilk durum vektörü gerekmektedir. OFByöntemine ait ³ifreleme ve ³ifre çözme i³lemleri ekil 3.9 ve ekil 3.10'daverilmektedir. E-xor i³leminin simetrik olmasndan dolay ³ifreleme ve ³ifre çözmeyaplar ayndr.

B L O K S i F R E L E Y i C i s i f re leme

B L O K S i F R E L E Y i C i s i f re leme

A n a h t a rA 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 re leme

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 Sifeleme Islemi.

B L O K S i F R E L E Y i C i çözme

B L O K S i F R E L E Y i C i çözme

A n a h t a rA 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 çözme

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

Sekil 3.10: OFB Yöntemi ile Sife Çözme Islemi.

16

4. SAHADA PROGRAMLANABILIR KAPI DIZILERI

4.1 Genel Bilgi ve Tarihsel Gelisim

Sahada programlanabilir devre elemanlar elektriksel olarak programlanabilireleman ve arabirimlerden olu³an bir tüm devredir. Sahada Programlanabilirkap dizileri ksaca FPGA (eld pogrammable gate array) olarak adlandrlr.Programlanabilir eleman ve arabirimler VE (AND), VEYA (OR), ayrcalklVEYA (E-XOR), DEL (NOT) i³lemlerini veya daha karma³k olan dekoder,çoklayc gibi matematiksel i³lemleri gerçekle³tirmek amacyla programlanabilir.FPGA yapsnda bulunan arabirimler tasarmdaki ba§lantlar göz önüne alnarakelektriksel olarak programlanabilir ve istenildi§i kadar programlanabilme yapsnasahip oldu§undan tasarmlarda büyük kolaylk sa§lar. Pek çok FPGA yapsprogramlanabilir eleman ve ara birimlere ek olarak hafza birimleri de bulundurur.Bu hafza birimleri ayrk ip-op yaplarndan veya hafza bloklarndan olu³abilir.

Tarihsel geli³im incelendi§inde ilk programlanabilir birimin PROM(programmable read only memory) oldu§u gözlenir. PROM'lar bir kezprogramlanabilme özelli§ine sahiptirler. PROM'lardan sonra tarihsel geli³imisrasyla EPROM (erasable programmable read only memory) ve EEPROM(electrically erasable programmable read only memory) birimleri izler. Bubirimler oldukça kstl yeteneklere sahiptirler. Daha sonralar EEPROM'laragöre daha geli³mi³ olan PAL (programmable array logic) ve PLA (programmablelogic array) yaplar geli³tirilmi³tir. PLA yapsnda programlanabilen VEve VEYA matrisleri bulunurken, PAL yapsnda ise sabit VEYA matrisive programlanabilen VE matrisi mevcuttur. PAL ve PLA yaplar birfonksiyonu çarpm veya toplamlar ³eklinde ifade edebilir ve gerçekleyebilir.Pek çok PLA ve PAL yaplarnn bir araya gelmesi ile olu³turulmu³ bir di§eryap ise CPLD'dir. CPLD'ler FPGA yapsna oranla giri³lere daha hzl

17

tepki verebilirken, daha küçük lojik birimlere sahip olmas nedeniyle küçüktasarmlarn gerçekle³tirilmesinde kullanlabilir.

Programlanabilir yaplar, örne§in FPGA'ler ASIC tasarmlara oranla dahayava³ çal³malarna ra§men tekrar programlanabilme özelli§i ve tasarmlarnbasit kontrol edilebilir olmas nedeniyle tasarmn daha ucuza mal edilebilmesiaçsndan önemli avantajlara sahiptir.

4.2 Kullanım Alanları ve Üretici Firmalar

FPGA yaps, geli³imi ile birlikte saysal i³aret i³leme, yazlmsal radyolar,savunma sistemleri, tbbi görüntüleme, ses tanma, kriptogra gibi pek çokalanda kullanlmaktadr. Ayrca ASIC tasarmlarn üretime gönderilmedenönce istenildi§i gibi çal³p çal³mad§n anlamak amacyla da kullanlmasaçsndan önemli bir yere sahiptir. Bu çal³ma srasnda gerçekle³tirilecekolan AES algoritmas kriptogra alannda FPGA programlanabilir arabirimininkullanmna örnek te³kil edebilir. lk üretiminden itibaren gerçekle³tirebileceklerilojik yaplar ve gerçekle³tirebilme hzlar açsndan geli³mekte olan FPGAprogramlanabilir birimleri bu geli³im ile birlikte pek çok yeni alanda kullanlmayaba³lanm³tr.

ASIC tasarmn çok pahalya mal olmas nedeniyle ihtiyaç duyulan özellikleresahip programlanabilir birim aç§n ilk olarak Xilinx rmas 1980'li yllardaFPGA üretimini gerçekle³tirerek kapatm³tr. lk üretimden beri FPGAüretiminde lider kabul edilen rmalar arasnda yer alan Xilinx d³nda piyasadakiFPGA üretiminde yer alan Altera, Lattice semiconductor, ActelQuick logic gibirmalar da mevcuttur.

4.3 FPGA Genel Yapısı

Tipik bir FPGA yaps kongüre edilebilir lojik bloklar (CLB) ve yönlendirilebilirkanallardan olu³ur. ekil 4.1'de tipik bir FPGA yaps verilmi³tir. CLB yaplargenel olarak 5 giri³ten olu³ular, bu giri³lerden 4'ü LUT (look-up table ) giri³leriiken di§er giri³ ise D ip-op yapsnn saat giri³idir. Kongüre edilebilir lojik blokyapsna ait genel blok ³ema ve giri³ ve çk³ bacaklarnn FPGA programlanabilir

18

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 is 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 Giris Çıkıslarının FPGA Üzerindeki Görünümü.

çk³larnn FPGA üzerindeki konumlarnn ³emada gösterildi§i gibi olmasnnnedeni hat üzerinde olu³abilecek gecikmeleri, hat uzunluklarn e³it yaparakolabildi§ince e³it olmasn sa§lamaktr.

Yatay ve dü³ey konumlarda bulunabilen CLB'ler istenildi§i durumlarda kas katba§lanabilmekte ve bu ba§lantlar programlanabilir ara ba§lantlar yardmylagerçekle³tirilmektedir. FPGA üzerindeki programlanabilir ara ba§lant yapsekil 4.4'te verilmi³tir. Yapnn sahip olmu³ oldu§u programlanabilir

19

Sekil 4.4: Programlanabilir Ara Baglantılar.

anahtarlar sayesinde istenilen tasarm gerekli anahtar ba§lantlarnn yaplmasile gerçekle³tirilebilir.

Ayrca bu yaplara ek olarak saat da§tmn uygun bir ³ekilde gerçekle³tirebilmekamacyla FPGA'ler üzerinde da§tm hatlar bulunmakta ve ard³l birimlere saati³aretinin tasarmn çal³masn etkilemeyecek ³ekilde ula³mas sa§lanr.

4.4 FPGA Programlama

FPGA yapsnn nasl davranaca§nn belirlenmesi amacyla tasarmc donanmtanmlama dillerini (HDL) veyahut ³ematik tasarm araçlarn kullanr. Donanmtanmlama dillerinin en çok bilinenleri VHDL (Very-High-Speed IntegratedCircuits Hardware Description Language) ve Verilog-HDL dilleridir. Donanmtanmlama dilleri tasarm srasnda kullanlacak olan FPGA programlanabilirbiriminin hangi üretici rmaya ait oldu§una göre farkllk gösterebilir. Tasarmcilk olarak gerçekle³tirmek istedi§i fonksiyona ait ³ematik veyahut HDL dillerindenbirinde tasarmn gerçekle³tirir ve gerekli simülasyonlar yapar, bu simülasyonlarsonucunda tasarm istenildi§i gibi çal³yorsa, tasarm için gerekli lojik birimlerinFPGA üzerindeki da§lmn belirlemek amacyla serim ve hatlarn yönlendirilmesiksm gerçekle³tirilir. Bu ksmda tasarmn gerçekle³tirilmesi için gerekli lojikbirimler belirlenir ve FPGA içerisine gerekli anahtar ba§lantlar da yaplarakyerle³tirilir. Bu a³amann da ba³aryla gerçekle³tirilmesi sonras tasarmntekrar simülasyonu yaplr ve devrenin son çal³ma hali gözlenir. Gereklibütün a³amalarn ba³aryla sonuçlanmas durumunda devrenin son hali üreticirmann sunmu³ oldu§u paralel kablolar yardmyla bilgisayar kullanlarak FPGA

20

üzerine yüklenir ve FPGA programlanabilir birimi istenildi§i i³i yapmak üzereprogramlanm³ olur.

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

Çal³ma srasnda Xilinx rmasna ait Virtex-4 XC4VLX200 FPGA'ikullanlm³tr [14]. XC4VLX200 FPGA'i oldukça büyüktür ve yakla³k 200.000adet lojik hücre içerir. Çal³ma srasnda farkl AES yaplar gerçeklenmi³ vekar³la³trlm³tr. Bertoni S-Kutusu kullanlarak gerçeklenen AES yaplar çokbüyük alanlar kaplamaktadr. Adil ve do§ru bir kar³la³trma yaplabilmesi içinbüyük bir FPGA olan XC4VLX200 çal³ma srasnda kullanlm³tr. Gerçeklemea³amasnda VHDL dili kullanlm³ olup, FPGA'de sentezleme, yerle³tirme veyollandrma a³amalar için ISE 9.1i program kullanlm³tr. Ayrca simülasyona³amasnda Modelsim 6.3d ve güç ölçümleri içinde XPOWER arac kullanlm³tr.XPOWER güç ölçüm aracnn kullanm için ekler ksmna baklabilir.

Di§er FPGA'lerde oldu§u gibi XC4VLX200'de kongüre edilebilir lojik blokyaps (CLB) ve giri³ çk³ ba§lantlarndan olu³maktadr. CLB yaplarkombinezonsal veya ard³l fonksiyonlar gerçeklemek için kullanlr. Bu bloklargenel yollandrma hattna ba§lanmaktadr. Her bir CLB için 4 ara ba§lant dilimibulunur, bu ara ba§lant dilimleri SLICEM ve SLICEL olarak adlandrlr, ekil4.5'de bu yap verilmektedir. Yapda yer alan SLICEL ve SLICEM dilimlerininher biri LUT elemanlar hafza birimleri, çoklayclar, aritmetik kaplar ve eldeloji§i içerir. Bu elemanlar sayesinde aritmetik fonksiyonlar SLICEL ve SLICEMdilimleri üzerinde gerçeklenir. Aritmetik fonksiyonlara ek olarak ayrca budilimler üzerinde da§tk RAM (Random Access Memory) ve 16 bitlik ötelemeliyazclar gerçeklenebilir. SLICEM ve SLICEL dilimlerine ait ³ematik diyagramlarekil 4.6 ve ekil 4.7'de verilmektedir. Virtex 4 FPGA'lerinde bulunan I/Odö³emelerinde iki adet giri³ çk³ baca§, iki adet giri³ loji§i (ILOGIC) ve iki adetçk³ loji§i (OLOGIC) bulunmaktadr. I/O dö³emelerine ait yap ³ekil 4.8'deverilmektedir. Virtex 4 FPGA'lerinde giri³ çk³ bacaklar kombinezonsal giri³çk³, 3 durumlu çk³ kontrolü, kaydedicili giri³ çk³, kaydedicili 3 durumlu çk³kontrolü gibi pek çok özelli§e sahiptirler. Bu özellikler giri³ loji§i ve çk³ loji§i

21

Sekil 4.5: Virtex 4 CLB Ara Baglantıları.

sayesinde sa§lanr. Giri³ ve çk³ lojiklerine ait yaplar ekil 4.9 ve ekil 4.10'daverilmektedir.

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

Teknoloji seçimi dü³ük güçlü tasarmlarda oldukça büyük öneme sahiptir. Araba§lant tipine göre snandrlm³ Antifuse, SRAM (Static Random AccessMemory) ve FLASH olmak üzere 3 farkl FPGA teknolojisi mevcuttur. AntifuseFPGA'ler SRAM FPGA'lere oranla çok daha az statik güç tüketirler. AntifuseFPGA'ler sadece bir tasarm için kullanlabilirler, bu özelliklerinden dolay ASICtasarmlara benzerler. SRAM FPGA'ler ara ba§lantlar ve lojik hücreler içintransistörler bulundururlar. Antifuse FPGA'ler belirlenmi³ bir tasarma özelolduklarndan fabrika a³amasnda yollandrma ve ara ba§lantlar tasarma uygunhale getirilir. Böylece SRAM FPGA'lerde ara ba§lant ve lojik hücreler içinkullanlan transistörlere ihtiyaç duyulmaz ve statik olarak harcanan güç SRAMFPGA'lere oranla oldukça azalr. SRAM tabanl FPGA'lerde FPGA'in sadecekullanlan ksm için statik güç harcanmaz, tasarmdan ba§msz olarak FPGAüzerinde statik güç harcanmaktadr. SRAM FPGA'ler için statik güç de§eriFPGA modeline göre de§i³mektedir.

22

Sekil 4.6: SLICEM Sematik Diyagramı.

23

Sekil 4.7: SLICEL Sematik Diyagramı.

24

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

Sekil 4.9: Giris Lojigi Yapısı.

25

Sekil 4.10: Çıkıs Lojigi Yapısı.

26

Ayrca Antifuse FPGA'ler ara ba§lant noktalarndaki dü³ük çk³ kapasitelerinedeniyle SRAM FPGA'lere oranla çok daha az miktarlarda dinamik güç harcar.SRAM FPGA'lerde besleme ünitesinin açlm srasnda fazladan güç çekilir.Çekilen bu güç anlk olarak harcanr, besleme ünitesinin verebilece§i akma ba§lolarak ksa bir süre ilk açlm annda fazladan güç çekilmektedir. SRAM tabanlFPGA'lerde d³ardan ba§lanan EPROM (Erasable Programmable Read-OnlyMemory) veya Flash bellek ile kongürasyon sa§lanr. Ayrca kongürasyonkurulumu için de güç tüketimi yaplmaktadr. Bu bilgiler ³§nda SRAMtabanl FPGA'lerin Antifuse tabanl FPGA'lere oranla çok daha fazla güçtükettikleri açktr. Dü³ük güç tüketim avantajna sahip olan Antifuse tabanlFPGA'ler belirlenmi³ bir tasarma uygun olarak üretildikleri için ba³ka birtasarm için kullanlmalar mümkün de§ildir. Bu nedenden dolay yaplan çal³masrasnda "Antifuse" tabanl FPGA'ler dü³ük güç tüketecekleri bilindi§i haldeseçilmemi³lerdir. Seçilen FPGA SRAM tabanldr. Çal³ma sürdürülürken,SRAM' tabanl FPGA'lerin güç tüketim dezavantajlar göz önüne alnm³tr.

27

5. AES (ADVANCED ENCRYPTION STANDARD)

AES Amerika birle³ik devletleri tarafndan kabul edilmi³ bir ³ifrelemestandarddr. Rijndael olarak da bilinen standart bir blok ³ifreleyicidir. DES [15]algoritmasnn geli³en teknoloji kar³snda zayamas ve güvenilirli§ini yitirmesiile birlikte, yeni bir ³ifreleme standardnn belirlenebilmesi amacyla NIST(National Institute of Standards and Technology) organizasyonunun düzenlemi³oldu§u yar³mann sonucunda iki Belçikal ara³trmac Joan Daemen ve VincentRijmen tarafndan geli³tirilen algoritma yeni standart olarak belirlenmi³tir [16].Uzun süren bir standardizasyon ve do§rulama sürecinin ardndan 26 Kasm2001 tarihinde AES FIPS 197 standard olarak NIST tarafndan yaynlanm³tr[2]. DES algoritmasna oranla AES algoritmas daha yüksek güvenilirliksa§lamakla birlikte, kolay gerçeklenebilir olmas açsndan da avantajlara sahiptir.Algoritmann farkl anahtar ve veri blo§u uzunluklarn destekliyor olmasnakar³n standart, sabit 128-bit'lik veri blo§u ile 128-bit, 192-bit veya 256-bit'likanahtar uzunluklarn kapsamaktadr. AES içerisinde 128-bit'lik veri bloklar herbiri 32-bit'ten olu³an 4 kelime olarak dü³ünülmektedir. AES ile ³ifreleme i³lemineba³lanrken 128-bit yani 4 kelimeden olu³an veri blo§u durum dizisi içerisineyazlr ve algoritma srasndaki gerekli i³lemlerin tümü bu dizi kullanlarakgerçeklenir. ifreleme için gerekli en son i³leminde bitimiyle birlikte durumdizisinin son hali çk³ dizisine yazlr.

Örne§in; in0in1...in15 den olu³an veri blo§u durum dizisine yazlr ve gereklii³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 ikinciblok ise anahtar üretim blo§udur. Algoritma tekrarl bir yapya sahiptir, anahtarblo§unun uzunlu§una ba§l olarak 128-bit, 192-bit veya 256-bit, tur dönü³üm

28

Sekil 5.1: Durum Dizisi.

Tablo 5.1: Tur Sayısının Anahtar Uzunluguna Göre Degisimi.

AES Tipi Anahtar Uzunlugu (Nk Kelime) Tur Sayısı (Nr)AES-128 4 10AES-192 6 12AES-256 8 14

i³lemi sras ile 10, 12 veya 14 kez tekrarlanr. Tekrarlanma saylar anahtarblo§unun uzunlu§una ba§l olarak Çizelge 5.1'de verilmektedir.

ifreleme ba³langcnda ³ifrelenecek olan blok ekil 5.1 uyarnca durum dizisineyazlr. Durum dizisinin giri³ anahtar ile toplanmas i³lemi ile birlikte ³ifrelemei³lemine ba³lanm³ olur. Anahtar blo§unun uzunlu§una ba§l olarak tur dönü³ümi³lemi 10, 12 veya 14 kez tekrarlanr. Algoritmann sözlü kod ifadesi Nr tur saysnifade etmek üzere a³a§da verilmektedir, ayrca algoritmaya ait blok ³ema ekil5.2'de verilmektedir.

AESsifreleme(GirisDurumu, Anahtar)

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

Durum[0] = IlkAnahtarToplaması(GirisDurumu, 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 srasnda durum dizisi üzerinde Bayt De§i³tirme, SatrlarKaydrma, Sütunlar Kar³trma ve Tur Anahtarn toplama alt i³lemleriuygulanmaktadr. Tur dönü³üm i³leminin çkts olarak elde edilen 128-bitlik verianahtar üretim i³lemi sonucunda üretilen anahtar verisiyle toplanmaktadr. En

29

Sekil 5.2: AES Blok Sema.

30

son tur i³leminin gerçeklenip anahtar blo§u ile toplanmas sonucu ³ifrelenmi³ blokelde edilir. Son turda gerçeklenen i³lemler önceki turlarda gerçeklenen i³lemlerdenfarkllk gösterir. Son turda Sütunlar Kar³trma i³lemi yaplmamakta SatrlarKaydrma i³leminin çkts tur anahtar ile toplanmaktadr, sözlü kod ifadesia³a§daki algoritmada verilmektedir.

Tur(GirisDurumu, T_Anahtarı[i])

Durum1 = BaytDegisimi(GirisDurumu);

Durum2 = SatırKaydırma(Durum1);

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

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

SonTur(GirisDurumu, T_Anahtarı[Nr])

Durum1 = BaytDegisimi(GirisDurumu);

Durum2 = SatırKaydırma(Durum1);

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

5.1 Tur Dönüsüm Islemleri

AES algoritmas önceden de belirtildi§i gibi tekrarl bir yapdan olu³ur. Turdönü³üm i³lemi anahtar uzunlu§una ba§l olarak çok defa tekrarlanr. Turdönü³üm i³lemi içerisinde Bayt De§i³tirme, Satrlar Kaydrma ve SütunlarKar³trma ve Tur Anahtarn Toplama i³lemleri gerçekle³tirilir. Tur dönü³ümi³lemine ait blok diyagram ekil 5.3'de verilmektedir.

5.1.1 Bayt Degistirme

Bayt de§i³tirme i³lemi 8-bitlik veriler üzerinde yani bir bayt üzerinde gerçeklenenlineer olmayan bir i³lemdir. Bu i³lem durum matrisinin her bir bayt için ba§mszolarak ekil 5.4'de verildi§i gibi gerçeklenir. Her bir bayt için kar³lk dü³en baytbirbirinden farkldr. Bu dönü³üm iki a³amada gerçekle³ir. Bu a³amalardan ilki

31

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

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

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

Sekil 5.4: Bayt Degistirme Dönüsümü.

32

Bölüm 2'de bahsedilen çarpmaya göre ters alma i³lemidir. Çarpmaya göre tersalma i³lemi GF(28)'de gerçeklenir. Evrik alma i³lemi gerçeklenirken kullanlanindirgeme polinomu P(x) = x8 + x4 + x3 + x + 1'dur. kinci a³ama ise evrikçk³n geçi³ matrisi ile GF(2)'de çarplmas ve sabit bir matris ile toplanmasylagerçekle³tirilir. Bu i³lem Denklem 5.1'de verilmektedir. Bayt De§i³tirme i³leminifarkl yöntemlerle gerçeklemek mümkündür, bu gerçekleme yöntemleri Bölüm 8'deayrntl olarak incelenmektedir.

b0b1b2b3b4b5b6b7

=

1 0 0 0 1 1 1 11 1 0 0 0 1 1 11 1 1 0 0 0 1 11 1 1 1 0 0 0 11 1 1 1 1 0 0 00 1 1 1 1 1 0 00 0 1 1 1 1 1 00 0 0 1 1 1 1 1

b0b1b2b3b4b5b6b7

+

11000110

(5.1)

Bayt de§i³tirme i³leminde her bir bayta kar³lk dü³en de§er 16'lk tabandaÇizelge 5.2'de verilmektedir.

Tablo 5.2: S-Kutusu Çıkısları.

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

5.1.2 Satırları Kaydırma

Satrlar kaydrma i³leminde Durum matrisini ilk satr hariç di§er satrlarkaydrma i³lemine tabii tutulur. Bu kaydrma i³lemi srasnda 2. satr bir bayt

33

kaydrlrken, 3. satr iki bayt, son satr ise üç bayt kaydrlr. Bayt Kaydrmai³lemine ait blok ³ema ekil 5.5'de verilmektedir.

Sekil 5.5: Satırları Kaydırma Islemi.

5.1.3 Sütunları Karıstırma

Sütunlar Kar³trma i³lemi Durum matrisindeki her bir sütun üzerinde ba§mszolarak gerçeklenir. Bu i³lem gerçeklenirken her bir satr GF(28)'de bir polinomolarak dü³ünülür. Her bir satr üzerinde a(x) polinomu ile modülo x4 + 1'deçarpma i³lemi gerçekle³tirilir. Sabit a(x) polinomu ve satrlar kar³trma i³lemiDenklem 5.2 ve Denklem 5.3'de verilmektedir.

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

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

Durum matrisi üzerinde gerçeklenen satrlar kar³trma i³lemi ve bu i³leminmatris çarpm olarak ifadesi ekil 5.6 ve Denklem 5.4'de verilmektedir.

ˆS0,cˆS1,cˆS2,cˆS3,c

=

02 03 01 0101 02 03 0101 01 02 0303 01 01 02

S0,cS1,cS2,cS3,c

(5.4)

5.1.4 Tur Anahtarını Ekleme

Tur Anahtarnn Ekleme i³leminde ise önceden anahtar üretim blo§u tarafndanüretilen 128-bitlik anahtar dizisi Durum matrisi ile e-xor'lanr Anahtar üretim

34

Sekil 5.6: Sütunları Karıstırma Islemi.

blo§u ilerideki bölümde ayrntl olarak incelenecektir. Anahtar ekleme i³lemineait genel ³ema ekil 5.7'de verilmektedir.

Sekil 5.7: Anahtar Ekleme Islemi.

5.2 Anahtar Üretim Islemleri

AES algoritmas K anahtar dizisini alp her bir tur için gerekli anahtar bloklarnüretir. AES algoritmas farkl anahtar uzunluklar ile çal³abilmektedir, fakat veriblo§unun uzunlu§u 128-bit oldu§u için üretilen anahtar uzunlu§u 128-bittir. Herbir tur dönü³üm i³leminin son ksm olan Tur Anahtarn Ekleme i³lemi srasndaüretilen 128-bitlik anahtar kullanlr. Anahtar üretim blo§u ilk olarak giri³tenalnan 128 bitlik anahtar blo§unu elemanlar baytlar olan 4x4'lük matrislerhalinde kaydeder. Daha sonra üretilen di§er 128-bitlik anahtar bloklar ayn³ekilde matrisin geni³letilmesi için kullanlr. Böylece Nr tur says olmak üzere4∗(Nr +1) boyutunda bir matris elde edilir. Anahtar üretim i³lemleri bu matrisinsütunlar üzerinde ekil 5.8'de verildi§i gibi gerçeklenir. Olu³turulacak olan sütungiri³te kullanlan anahtar blo§unun kelime saysnn (Nb) kat de§ilse (128 bitlik

35

Sekil 5.8: 128 bitlik giris anahtarı için Anahtar Üreteci.

anahtar blo§u için Nb = 4) kendinden bir önceki ve Nb önceki sütunlarn kar³lkle-xor'lanmas sonucu bulunur. Olu³turulacak olan sütun kelime saysnn katoldu§u durumda ise kendinden bir önceki sütun dönü³türme i³lemine sokulurardndan Nb önceki sütunla kar³lkl e-xor'lama i³lemi gerçekle³tirilir. Dönü³ümi³lemi üç a³amada gerçekle³tirilir. lk a³amada 4 baytlk veriden olu³an sütunüzerinde kaydrma i³lemi gerçeklenir. Kaydrma 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'deayrntl olarak verilmektedir. Bayt de§i³tirme i³leminin ardndan tur vektörüile e-xor'lama i³lemi gerçekle³tirilir. Tur vektörünün ilk bayt kaçnc turdaolundu§una ba§l olarak de§i³ir. di§er baytlar ise sürekli sfr de§erindedir.Dönü³üm i³lem admlar ve tur vektörü a³a§daki denklemlerde verilmektedir

K1,K2,K3,K4= K2,K3,K4,K1 (5.5)

K2, K3, K4, K1= S−Kutusu(K1,K2,K3,K4) (5.6)

A1,A2,A3,A4= K2, K3, K4, K1⊕Rcon,00,00,00 (5.7)

Rcon(0) = 01 (5.8)

Rcon(i) = x∗Rcon(i−1) (5.9)

Anahtar üretim i³leminin sözlü kod ifadesi a³a§daki algoritmada verilmektedir.

AnahtarÜretimIslemi(G.Anahtar,A.Matrisi)

i<Nb için

36

A.Matrisi(i)=G.Anahtar((32*i)-1:0);

i>Nk-1 için

eger i=0 Mod(Nb)

GeçiciSinyal=S-Kutusu(Kaydır(A.Matrisi(i-1))) exor Rcon

Aksi Durumda

GeçiciSinyal=A.Matrisi(i);

A.Matrisi(i)=GeçiciSinyal exor A.Matrisi(i-Nb);

37

6. GÜÇ TASARRUF YÖNTEMLERI

6.1 Platform Bagımlı Güç Tasarruf Yöntemleri

Bu Bölümde bahsedilen platform ba§ml güç tasarruf yöntemlerinden çal³masrasnda faydalanlmam³tr, yaplabilecek sonraki çal³malara ³k tutmasaçsndan incelenmi³tir. Platform ba§ml güç tasarruf yöntemleri, tasarmngerçekle³tirildi§i platformun sunmu³ oldu§u güç tasarruf imkanlarndanfaydalanlarak gerçekle³tirilir. Bu yöntemlerden ilki uyku modu seçene§idir.Özellikle SRAM tabanl FPGA'ler çal³mad§ durumlarda sznt akmlarndandolay oldukça yüksek de§erlerde statik güç harcamas yaparlar. Sisteminçal³mad§ durumlarda uyku modu seçene§i ile güç kayb önlenebilir.

FPGA'lerin sunmu³ olduklar hafza bloklar mevcuttur, bu bloklar üzerindedinamik güç harcanmas yaplr. Platformun sa§lad§ her bir hafza blo§unaait okuma ve yazma giri³leri var ise, bu giri³ler kullanlmayan hafza blo§u içinseçilemez klnabilir, böylece kullanlmayan hafza bloklar üzerinde dinamik güçharcanmas engellenebilir. FPGA'ler içerisinde yer alan saat i³aretinin ard³lbütün yaplara ula³mas gerekir, bu nedenden dolay çok uzun yollandrmahatlarna sahiptirler. Yollandrma hatlarndan dolay ara ba§lant çk³kapasiteleri oldukça yüksek de§erlerdedir. Ayrca saat i³aretinin oldukça yükseklojik seviye de§i³tirme skl§na sahip oldu§u açktr, böylece dinamik güçharcamas yüksek de§erlerdedir. FPGA üzerinde kullanlmayan ksmlara saati³aretinin gitmesi engellenebilirse gereksiz güç harcamas engellenmi³ olacaktr.Baz platformlarda bu özellik bulunmaktadr.

Ayrca ASIC tasarmlarda VDD besleme gerilimi de§i³tirilerek güç tasarrufusa§lanabilir. Güç harcamas VDD geriliminin karesi ile do§ru orantldr (Bkz.Denklem 2.5). VDD gerilimini azaltmak kullanlan transistörlerin geç tepkivermesine neden olabilir. Ayn veri i³leme hzna ula³abilmek için bu durumlarda

38

paralel i³leme yaplabilir [17]. Transistörlerde meydana gelecek yava³lamayönlemek için VT e³ik gerilimi VDD gerilimindeki dü³üm kadar azaltlabilir, fakatbu yöntemde de gürültü problemi ortaya çkmaktadr. ASIC tasarmlardafarkl VT e³ik gerilim de§erlerine sahip transistörler mevcuttur. Dü³ük VT

de§erlerine sahip transistörler istenen çal³ma hzn elde etmek için kritik yollardakullanlabilirler, devrenin kritik olmayan ksmlarnda ise dü³ük VT gerilimlitransistörler kullanlarak güç tasarrufu sa§lanabilir. ASIC tasarmlar içinkullanlan teknoloji ba§ml güç tasarruf yöntemlerini FPGA'ler için kullanmakmümkün olmamaktadr.

6.2 Platform Bagımsız Güç tasarruf yöntemleri

Bu Bölümde kullanlan platformdan ba§msz olarak, tasarmn nasl güçtasarruu gerçekle³tirilebilece§i incelenmi³tir. Güç kavramndan kast öncedende belirtildi§i gibi dinamik güçtür.

6.2.1 Kılçık Azaltma

Giri³ i³areti de§i³ti§i zaman çk³ i³aretinin yeni de§erini alabilmesi için zamangerekir. Bu zaman aral§nda çk³ta istenmeyen i³aretler yani klçk (glitch)olu³ur, bu i³aretler devrenin fazladan güç harcamasna neden olur. Bir devredeklçk olu³masnn nedeni ço§unlukla giri³ i³aretlerinin farkl zaman aralklarndavarmasndan kaynaklanr. ekil 6.1'de klçk olu³turabilecek bir devre örne§iverilmektedir. A i³aretinin tersi alnrken ∆t1 kadar zaman gerekmektedir.Bu gecikmeden dolay AA çarpm sürekli lojik 0 de§erinde olmas gerekirkenanlk olarak lojik 1 de§eri de almaktadr. Çk³ta olmamas gereken lojik1 seviyelerinden dolay, fazladan güç harcanr. Devrenin karma³kl§na göreistenmeyen i³aretlerden dolay devrede gereksiz yere çok fazla dinamik güçharcamas yaplmasna neden olabilir, öyle ki tipik bir kombinezonsal devredeklçklardan kaynakl güç harcamas %40'lara kadar çkabilir [18].

Devrede olu³abilecek klçklardan kurtulmann iki yöntemi vardr; buyöntemlerden ilki uzun kombinezonsal yollarn arasna hafza birimleri koymaktr.Eklenen hafza birimleri devrenin lojik derinli§inin azalmasna sebep olur, ayrcaçal³ma frekansn da artrr. Fakat araya hafza birimleri koymak bir verinin

39

Sekil 6.1: Kılçık Örnegi.

i³lenme süresini artrr. Yöntem ekil 6.2'de verilmektedir. Ayrca devrenin lojik

D Q

C L K

D Q

C L K

K o m b i n e z o n s a l K o m b i n e z o n s a l

C L K

Sekil 6.2: Hafıza Birimi Ekleyerek Kılçık Azaltma.

derinli§ini azaltarak da olu³an klçklarn azalmas sa§lanabilir. Bu yöntem devretasarm srasnda kullanlan HDL kodunda yaplabilecek düzenlemeyle sa§lanr.ekil 6.3'deki devre yaps HDL kodundaki i f , elsi f ve else kodlarnda de§i³iklikyaparak ekil 6.4'deki duruma getirilebilir. Böylece devrenin lojik derinli§i veolu³an klçklar azalmaktadr.

L o j i k K .

L o j i k K .

L o j i k K .

A

B

C

D

X

Sekil 6.3: Dengesiz Yol Gecikmelerine Sahip Devre .

6.2.2 Saat Isaretini Engelleme

Saat i³areti engelleme yöntemi kaydedici bloklar üzerinde uygulanr. Saat i³aretisürekli hafza elemanlarna gelmekte ve blok giri³ alsn veya almasn kaydediciblo§unun sürekli güç harcamasna neden olmaktadr. Senkron kontrol i³aretlitipik bir kaydedici ekil 6.5'de verilmi³tir. Kaydedici blo§u kontrol i³aretinin

40

L o j i k K .

L o j i k K .

L o j i k K .

A

B

C

D

X

Sekil 6.4: Dengeli Yol Gecikmelerine Sahip Devre.

lojik 1 seviyesinde oldu§u durumda yeni bir veri almakta, di§er durumda isede§erini korumaktadr. Bütün bir kaydedici blo§u dü³ünüldü§ü takdirde her

D Q

C L K

C L K

V e r i g i r i s i

K o n t r o l

0

1

Sekil 6.5: Tipik Kontrol Isaretli senkron Kaydedici.

bir kaydedici blo§u için bir çoklayc gerekmektedir ve bu yapda kaydediciyeyeni bir giri³ alp almad§na baklmakszn sürekli saat i³areti uygulanmaktadr.Böylece kaydedicide gereksiz yere güç harcamas yaplmaktadr. Tasarmda yeralan kaydedici bloklarnn büyüklü§ü arttkça böyle bir yapda gereksiz yereharcanan güç artmaktadr. ekil 6.6'de verilen yap kullanlarak gereksiz güçharcamas engellenebilir. Yapda saat i³areti sadece yeni bir giri³ alnd§ndakaydediciye verilmektedir. Kontrol i³aretinin genel olarak bir kombinezonsaldevrenin çk³ oldu§u göz önüne alnrsa, kontrol i³areti üzerinde olu³abilecekklçklarn devrenin çal³masn bozmamas için bir adet latch yaps kullanlm³tr.Asl saat engelleme i³ini yapda yer alan VE kaps gerçekler. 8-bitten daha büyükkaydediciler için kullanlan latch ve VE yaps ekil 6.5'de yer alan çoklaycyapsnda daha az güç harcamaktadr [19].

6.2.3 Giris Izolasyonu

Kombinezonsal yaplarda güç tasarrufu sa§lamak için skça kullanlan biryöntemdir. Bu yöntemde çk³ kullanlmayan kombinezonsal devreye giri³verisi uygulanmayarak gereksiz yere güç harcanmas engellenmektedir. ekil

41

D Q

C L K

C L K

V e r i g i r i s i

K o n t r o lD

E

Q

o

Sekil 6.6: Saat Isareti Engellenmis Kaydedici.

6.7'de giri³i izole edilmemi³ devre yaps ve ekil 6.8'de de ayn devrenin giri³izolasyonu yöntemi uygulanm³ durumu verilmektedir. Kombinezonsal devreningiri³i kontrol i³areti ile VE i³lemine sokulmakta böylece kontrol i³aretinin lojik1 olmad§ de§erler için yani kombinezonsal devrenin çk³nn kullanlmad§durumlarda gereksiz güç harcamas önlenmektedir.

K o m b i n e z o n s a l

K o n t r o l

1

0

G i r i s A

G i r i s B

Sekil 6.7: Giris Izolasyonu Uygulanmamıs Devre.

K o m b i n e z o n s a l

K o n t r o l

1

0

G i r i s A

G i r i s B

Sekil 6.8: Giris Izolasyonu Uygulanmıs Devre.

6.2.4 Yeniden Zamanlama

Bir tasarmda veri yollar en çok güç harcamasnn gerçekle³ti§i ksmlardr,veri yolundaki güç harcamalar saat frekans ve yol uzunlu§u ile de§i³mektedir.Yeniden zamanlama yöntemi ile tasarmda yer alan kaydedici bloklarnnyerleri de§i³tirilerek kritik yol uzunlu§u ksaltlabilir, böylece güç harcamasazaltlabilir. ekil 6.9'da verilen devrede kaydedicilerin yerleri de§i³tirilerek kritikyol ksaltlm³tr. Ayn devrenin yeniden zamanlama yöntemi uygulanm³ hali

42

ekil 6.10'da verilmektedir. Bu yöntem tasarm srasnda HDL kodu üzerindeuygulanabilece§i gibi sentez araçlar yardmyla da uygulanabilir.

G i r i s A

G i r i s B

D Q

C L K

D Q

C L K

D Q

C L K

G i r i s CG i r i s D

C L K

C L K

C L K

K r i t i k y o l

Sekil 6.9: Yeniden Zamanlama Yöntemi Uygulanmamıs Devre.

G i r i s A

G i r i s B

D Q

C L K

D Q

C L K

D Q

C L K

D Q

C L K

C L KC L K

C L K

C L K

Sekil 6.10: Yeniden Zamanlama Yöntemi Uygulanmıs Devre.

6.2.5 Yerel Dönüsümler

Yerel dönü³üm yöntemleri sentez araçlarnn tasarm üzerinde optimizasyongerçekle³tirmesi srasnda uygulanr. Çal³ma srasnda kullanlan Xilinxrmasna ait XST sentezleme aracnda da bu optimizasyon özelli§ibulunmaktadr. Burada amaç tasarm en basit ³ekilde gerçeklemek vegereksiz elemanlarn kullanmn engellemektir. Örnek 6.1'de r = p + q sinyaliiçin sentezleme srasnda yerel dönü³ümler kulland§ için daha az kap ihtiyacduyulmakta ve böylece daha az güç harcamas yaplmaktadr.Örnek 6.1

p = a.b+d

q = a+d.c

r = p+q = a+d

43

Yerel dönü³üm yönteminde gerçekle³tirilen di§er bir optimizasyon giri³ ve çk³nfaz ayardr. Bir giri³e ba§l bir evirici var ise negatif fazl giri³ olarak adlandrlr.Yüksek anahtarlama geçi³ hzna sahip negatif fazl giri³ler için optimizasyongerçekle³tirilerek güç harcamas azaltlr. Kullanlan yöntem ekil 6.11'deverilmektedir. Gerçekle³tirilen optimizasyon ile yüksek anahtarlama geçi³ hznasahip n2 yolu kaldrlm³ olur. Bu optimizasyon gerçeklenen fonksiyon üzerindeherhangi bir de§i³iklik yaratmamaktadr, sadece yüksek anahtarlama geçi³ hznasahip yollar ortadan kaldrmaktadr.

Sekil 6.11: Faz Ayarı Uygulanmıs Devre.

44

7. ÖNCEKI ÇALISMALAR

Rijndael algoritmasnn 2001 ylnda AES yar³masnn kazanan oldu§uaçkland§ndan itibaren, pek çok kez donanm olarak gerçeklenmi³tir. lkzamanlarda bu gerçeklemelerin ço§u, geri beslemeli ve geri beslemesiz yöntemleriçin, yüksek hz ve yüksek i³lem gücü üzerine yo§unla³m³tr. Bu yaplardagenel olarak i³ hatt kullanlm³tr. Yüksek i³lem hacmine sahip gerçeklemelerdenbazlarn ASIC teknolojisi kullanlarak [4,6], bazlarysa programlanabilir yaplarFPGA'ler üzerinde gerçeklenmi³tir [3, 5, 20, 21]. Örne§in [21] 32 bitlik veri yoluiçin gerçeklenmi³ olup, bu gerçekleme srasnda klasik AES yaps kullanlm³tr.FPGA üzerinde gerçeklenen bu çal³ma geri beslemesiz çal³trma yöntemleri için12.2 Gbit/s i³lem hacmine ula³maktadr.

AES algoritmasnda yer alan gerçeklemesi en zor, fazla miktarda kaynakharcanmasna, güç harcanmasna ve devrenin yava³ çal³masna neden olanblok S-Kutusudur. Bu nedenden dolay önceki çal³malarn önemli bir ksmsadece S-Kutusu iyile³tirmesi üzerine yo§unla³m³tr [2225, 2527]. YaplanS-Kutusu çal³malarnn bazlar FPGA yaplarnda bulunan LUT'lar kullanaraktablo halinde gerçeklenirken, bazlar ise çarpmaya göre ters alma i³lemiüzerinde yo§unla³m³lardr. S-Kutusu gerçekleme yöntemleri arasndan tasarmkriterlerine göre seçim yaplabilmesi için çal³malarda yürütülmü³tür [28],bu çal³mada alan, gecikme ve güç harcamas açsndan farkl yöntemlerlegerçeklenen S-Kutusu yaplar kar³la³trlm³tr. Çal³ma srasnda 0.35µm

CMOS teknolojisi kullanlm³tr. En ksa kritik yol için LUT S-Kutusugerçeklemesi, Alan ve güç birlikte göz önüne alnd§nda ise Bertoni [22] yönteminikullanmann daha iyi sonuç verece§i not edilmi³tir.

Dü³ük güçlü AES gerçeklemeleri ise son zamanlarda üzerinde yo§unla³lan birkonudur. Bu konuda snrl sayda gerçekleme mevcuttur, bu çal³malardan büyükbir ksm ASIC üzerinde gerçekle³tirilmi³tir [2931]. Bu çal³malardan [29] dü³ük

45

güçlü S-Kutusu üzerinde yo§unla³m³tr, gerçekleme srasnda 0.25µm CMOSteknolojisi kullanlm³, ve S-Kutusu gerçeklemesi yaplrken enerji tasarruu geçi³kaplar (PTG:Pass Transmission Gate) ve 3 giri³li e-xor yaplar kullanlarakdü³ük güçlü tasarm elde edilmi³tir. Bir di§er dü³ük güçlü ASIC AESgerçeklemesinde ise güç tasarruf yöntemleri kullanlarak güç harcamasndaazaltma gerçekle³tirilmi³tir [31]. Çal³ma srasnda 0.35µm CMOS teknolojisikullanlm³, ve saat i³aretini engelleme yöntemi ile güç tasarrufu sa§lanm³tr.Önceki çal³malar incelenirken FPGA üzerinde dü³ük güçlü AES gerçeklemesiile ilgili elde edilen çal³ma çok kstldr [32]. Bu çal³mada Xilinx rmasnaait Virtex 2 FPGA'yi kullanlm³tr. Gerçekleme srasnda S-kutusu aritmetikve tablo olarak ayr ayr gerçeklenmi³tir, ayrca tur srasnda gerekli anahtarlarönceden üretilip RAM blo§una kaydedilmi³tir. Bu çal³mada ilk duruma görearitmetik S-Kutusu gerçeklemesinde ³ifreleme blo§u için % 60.66, ³ifre çözmeblo§u için ise % 70.67 güç tasarrufu sa§lanm³tr.

46

8. AES ALGORITMASININ DÜSÜK GÜÇLÜ TASARIMI

Devre üzerinde statik olarak harcanan güç kullanlan FPGA modeline ba§ldr,Bölüm 4.6'da FPGA'lerin statik güç harcamalar ayrntl olarak bahsedilmi³tir.Bu nedenden dolay harcanan dinamik güç de§erinde iyile³tirmeler yaplmayaçal³lm³, dinamik güç harcamas ve bir bitin ³ifrelenmesi için gerekli enerjide§erleri üzerinden kar³la³trmalar yaplm³tr. AES algoritmas Bölüm 5'debahsedildi§i üzere tekrarl bir yapya sahiptir. Dü³ük güçlü AES tasarmgerçekle³tirilirken ilk olarak Tur Dönü³üm ve Anahtar Üretim Bloklar içerisindeyer alan alt bloklarda güç tasarrufu sa§lanmaya çal³lm³tr. Tek ba³na ³ifrelemei³lemi için gerçekle³tirilen AES yapsnda yer alan Bayt De§i³tirme Dönü³ümüharicindeki di§er alt bloklarn gerçekle³tirdi§i i³lemlerin karma³k olmamasndandolay her biri üzerinde ba§msz olarak güç tasarrufu sa§lama yolu izlenmemi³tir.Bayt De§i³tirme alt blo§u gerekli lineer olmayan i³lemi gerçekle³tirdi§indenalgoritmadaki en karma³k matematiksel i³lemleri gerçekle³tirmekte ve böyleceyapdaki güç harcamasnn büyük ço§unlu§unu yapmaktadr. AES gerçeklemesiiçerisinde Bayt De§itirme alt blo§unun güç harcamas % 75'leri bulmaktadr [26].Çal³ma srasnda Bayt De§i³tirme i³lemi farkl yöntemlerle gerçeklenmi³ ve buyöntemler üzerinde iyile³tirmeler sa§lanm³tr.

AES algoritmasn farkl yaplarda gerçeklemek mümkündür ve bu yaplarnbirbirinden farkl miktarlarda güç harcayaca§ açktr. Çal³ma srasnda AESalgoritmas sadece bir yap üzerinde de§il farkl yaplar üzerinde gerçeklenmi³tir vegerçeklenen farkl yaplarn güç harcamalar ve bir biti ³ifrelemek için gereksinimduyduklar enerjiler kar³la³trlm³tr.

8.1 Farklı Yöntemlerle Bayt Degistirme Isleminin Gerçeklenmesi

AES tekrarl yapsnda Bayt De§i³tirme i³lemi karma³k matematiksel yapyasahip olmasndan dolay en fazla güç harcamasn yapmaktadr. Bayt De§i³tirme

47

i³leminini Tur Dönü³ümü Blo§u ve Anahtar Üretim Blo§unda yer ald§dü³ünüldü§ü takdirde, bu blok üzerinde gerçekle³tirilecek olan güç tasarrufununAES gerçeklemesi üzerinde önemli ölçüde güç tasarrufu sa§layaca§ açktr. BaytDe§i³tirme farkl yöntemler kullanlarak gerçeklenebilmektedir. Bu yöntemlerbaz konularda avantaj sa§larken baz konularda ise dezavantaja sahiptirler. AESyapsnda en çok güç harcayan blo§un Bayt De§i³tirme blo§u oldu§u göz önünealnarak farkl gerçekleme yöntemlerini inceleme ve o yöntemler üzerinde güçtasarrufu sa§layacak iyile³tirmeler yapma ihtiyac duyulmaktadr. Alt bölümlerdefarkl yöntemlerle gerçekle³tirilmi³ olan Bayt De§i³tirme Blo§una ait ayrntlarverilmekte ve bu bloklarn iyile³tirme öncesi ve sonras güç ölçüm de§erleriverilmektedir.

8.1.1 Tablo Yöntemi ile Gerçekleme

Bayt De§i³tirme Blo§unu matematiksel olarak gerçeklemek oldukça karma³kolmas nedeniyle, matematiksel gerçeklemeler büyük gecikmelere neden olmaktave devrenin çal³ma frekansn azaltmaktadr. Tablo yöntemi bahsedilendezavantajlardan kurtulup i³lem yükünü azaltmak için tercih edilen biryöntemdir. GF(28)'de gerçeklenecek olan S-Kutusu'nun 28 = 256 farkl giri³imevcuttur, her bir giri³e kar³lk dü³en çk³ hesaplanarak tabloya yazlr. Giri³ekar³lk dü³en çk³ tablo üzerinden okunur. AES S-Kutusu için giri³lerekar³lk dü³en çk³lar Çizelge 5.2'de verilmektedir. Devrede olu³turulan tablo256x8 boyutundaki ROM (Read Only Memory) üzerinde gerçeklenir. Devrebüyük ROM ihtiyac nedeniyle alan dezavantajna sahiptir. Devre gerçeklemesisrasnda herhangi bir matematiksel i³lem yaplmamas nedeniyle güç harcamassadece giri³e kar³lk dü³en çk³ de§erinin okunmas srasnda gerçekle³mektedir.Böylelikle istenmeyen lojik geçi³ler çok azalmaktadr. Tablo yöntemi ilegerçekle³tirilen S-Kutusuna bütün giri³ler sras ile uygulanp devreye ait güçharcamas ölçülmü³tür. Devreye ait alan, zaman ve güç bilgileri Çizelge 8.1'deverilmektedir.

8.1.2 Bertoni Yöntemi ile Gerçekleme

48

Tablo 8.1: S-Kutusu Tablo Gerçeklemesi Alan, Zaman ve Güç Bilgileri.

S-Kutusu Tablo GerçeklemesiAlan 106 Dilim, 192 LUT

Kritik Gecikme (ns) 8.163Güç Harcaması (mW) 61.5

Yöntem, Bertoni, Macchetti ve Negri ara³trmaclar tarafndan geli³tirilmi³tir[22]. Yöntemin birinci önceli§i dü³ük güç tüketimini sa§lamaktr. Her ne kadardü³ük güç tüketiminde kullanlan bir yöntem olsa da N bitlik verinin 2N bitile ifade edilmesi nedeniyle N saysnn büyük oldu§u de§erlerde yapnn alandezavantaj yarataca§ açktr. Bertoni S-Kutusu yaps ekil 8.1'de verilmektedir.Yap art arda ba§lanm³ üç kattan olu³ur. Birinci kat dekoder'den olu³maktadr.

D e k o d e r E n k o d e rP e r m u t a s y o n B logu

N N

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

Dekoder, giri³ine gelen N bitlik i³areti 2N bitlik bir dizi olarak ifade eder.kinci kat ise Permutasyon Blo§undan olu³maktadr. Permutasyon blo§u giri³ekar³lk gelen asl çk³n belirlendi§i bloktur. Giri³e kar³lk dü³en çk³n 2N

bitlik yol ifadesi permutasyon blo§unda basit yol de§i³imleri ile gerçekle³tirilir.Giri³e kar³lk olarak olu³turulan permutasyon blo§unun 2N bitlik çk³ 3. katolan enkoder blo§una giri³ olarak alnr. Enkoder giri³ine uygun olarak N

bitlik çk³ olu³turur. Böylece giri³e gelen N bitlik verinin kar³lk dü³enS-Kutusu çk³ enkoder blo§unun çk³nda olu³turulmu³ olur. Yap harcanandinamik güç açsndan incelenirse; dekoder özelli§i gere§i giri³indeki her farklN bitlik veri için çk³ndaki 2N hattan sadece 1 tanesi lojik 1 seviyesindeolurken kalan bitlerin hepsi lojik 0 seviyesinde tutulmaktadr. 2. blok olanpermutasyon blo§unun sadece gelen hatlarn srasn de§i³tirme i³leminden ibaretoldu§u dü³ünülürse harcanan güç bakmndan bir öneme sahip olmayaca§ açktr.Böylelikle N bitlik veri giri³ine kar³lk dü³en çk³ olu³turulurken iç hatlarda çokaz güç harcanmaktadr. Devrenin bu özelli§i gere§ince dü³ük güçlü tasarmlarda

49

kullanlabilmektedir. Yapda harcanan dinamik güç devrede yer alan her kapnnlojik de§er de§i³tirme olasl§ ve her kapya ait olan çk³ kapasite de§erineba§ldr. Harcanan güç miktarn ifade etmek gerekirse;

∑(PSW,Out .F) (8.1)

Yapda kullanlan dekoder yapsnn enerji tasarrufu açsndan önemi büyüktür.Farkl ³ekillerde tasarlanan dekoder yaplarnn harcadklar dinamik güçmiktarlar de§i³mektedir. Genel olarak 7 bitlik dekoder yapsn ekil8.2'de oldu§u göstermek mümkündür. Dekoder blo§u iki farkl yapda

Sekil 8.2: 7 Bitlik Dekoder Yapısı.

gerçekle³tirilmi³tir. lk yap parça dekoder yapsyken, ikinci yap ise çaprazdekoder yapsdr. Parça dekoder yaps genel olarak bilinen dekoderi olu³tururkençapraz dekoder yaps, giri³ine iki farkl blok olarak gelen hat kümelerininelemanlarn kar³ hat kümesinin elemanlar ile srasyla VE'leme i³lemine tabitutar. Böylelikle 7 bitik dekoder yaps 2 seviyede olu³turulmu³ olur. Ayrca parçadekoder yapsn ekil 8.2'de oldu§u gibi gerçeklemek mümkündür. Güç tasarrufuaçsndan dekoder blo§unu [log2N] seviyede gerçekle³tirmek en uygun sonucuverir [22]. AES S-Kutusu yapsnda N = 8 de§eri göz önüne alnarak güç tasarrufuaçsndan ekil 8.3'deki yap kullanlmaktadr. Bertoni S-Kutusu yapsndakullanlan enkoder içinde benzer yap kullanmn dü³ünmek mümkündür. Fakatçal³mada birden fazla seviyede gerçekle³tirilen enkoder yapsnn güç tasarrufu

50

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

sa§lamad§ belirtilmi³tir. Bertoni S-Kutusu yaps VHDL ile tasarlanm³ veistenilen yap kurulmu³tur. Bertoni yöntemi ile gerçekle³tirilen S-Kutusu'nabütün giri³ler sras ile uygulanp devreye ait güç harcamas ölçülmü³tür. Devreyeait alan, zaman ve güç bilgileri Çizelge 8.2'de verilmektedir.

Tablo 8.2: S-Kutusu Bertoni Gerçeklemesi Alan, Zaman ve Güç Bilgileri.

S-Kutusu Bertoni GerçeklemesiAlan 135 Dilim, 251 LUT

Kritik Gecikme (ns) 10.065Güç Harcaması (mW) 60.44

FPGA'de gerçeklenen yapnn Permutasyon blo§undan dolay yollandrmanedeniyle alan olarak geni³ yer tuttu§u görülmü³tür. Yap üzerinde iyile³tirmelergerçekle³tirilmi³tir. Yapda kullanlan genel amaçl enkoder yerine özel amaçlde§i³tirilmi³ enkoder yaps dü³ünülmü³tür. Özel olarak tasarlanan de§i³tirlmi³enkoder giri³ine gelen 256 bitlik veri hattndaki lojik 1 seviyesine sahip giri³inekar³lk olan 8 bitlik çk³ sradan enkoder gibi olu³turmamakta, yerine S-Kutusuçk³na kar³lk dü³en 8 bitlik çk³ olu³turmaktadr. Tasarm açsndan sradanenkoder ile de§i³tirlmi³ enkoder yapsn tasarlamak ayn güçlüktedir. Böylecegeli³tirilen yöntemle permutasyon blo§una olan ihtiyaç ortadan kalkm³tr.

51

Geli³tirilen yapya ait blok ³ema ekil 8.4'de verilmektedir. yile³tirilmi³ Bertoni

D e k o d e r E n k o d e r

N N

Sekil 8.4: Iyilestirilen Bertoni Yapısı.

yöntemi ile gerçekle³tirilen S-Kutusu'na bütün giri³ler sras ile uygulanp devreyeait güç harcamas ölçülmü³tür. Devreye ait alan, zaman ve güç bilgileri Çizelge8.3'de verilmektedir. yile³tirilme yaplmadan önce ve sonras için zaman vegüç de§erleri birbirine çok yakndr. Fakat geli³tirilmi³ yap daha küçük alankaplamakla birlikte, daha az yollandrma hatlar içermektedir.

Tablo 8.3: Iyilestirilmis Bertoni S-Kutusu Gerçeklemesi Alan, Zaman ve GüçBilgileri.

Iyilestirilmis Bertoni S-Kutusu GerçeklemesiAlan 130 Dilim, 238 LUT

Kritik Gecikme (ns) 9.711Güç Harcaması (mW) 61

8.1.3 Aritmetik Gerçekleme

Çarpmaya göre ters alma i³lemine ait matematiksel karma³klk sonlu alannnderecesiyle birlikte artar, ters alma i³lemini matematiksel olarak daha basitgerçeklemek alt alan kullanmyla mümkündür.Tanm 8.1: GF(2k) ikili alan, k = n∗m olmak üzere, GF((2n)m) ³eklinde de ifadeedilebilir. GF(2n),Q(y) ve GF(2n)m,P(x) çifti, Q(y) GF(2n) için n.derecedenindirgeme polinomu, P(x)'de GF((2n)m) için m.dereceden indirgeme polinomuolmak üzere, bir "karma alan (composite eld)" olu³turur [33]. GF(2n)'yede, GF(2k)'nn alt alan denilir.

GF(2k) ve GF((2n)m) ayn karakterde olmasna ra§men, bu alanlardakimatematiksel i³lemlerin karma³kl§ birbirinden farkldr [33].

52

Alt alan kullanmnda amaç ters alma i³lemini alt alan üzerinde gerçeklemek,böylece matematiksel karma³kl§ azaltmaktr. lk olarak GF(28) alanna aitelemanlarn alt alan üzerinde ifade edilmeleri gerekir. GF(28) için alt alanve polinom çiftlerini belirlemek gerekir. GF(28) için matematiksel i³lemlerindaha basitçe yaplabilece§i bir alt alan GF(24)'tür. Alt alan ve polinom çiftleriGF(24),Q(y) = y4 +y+1 ve GF((24)2),P(x) = x2 +x+9 olarak belirlenmi³tir.Seçilen alt alan için kullanlabilecek 4 farkl polinom mevcuttur;

P(x) = x2 + x+9 (8.2)

P(x) = x2 + x+B

P(x) = x2 + x+D

P(x) = x2 + x+E

P(x) = x2 +x+9 polinomunun seçilmi³ olmasnn nedeni 9 sabit says ile çarpmai³leminin daha basit gerçekle³tirilmesidir. ki alan arasnda kullanlacak olandönü³üm matrisi ile GF(28)'in her eleman, katsaylar GF(24)'ün elemanlar olando§rusal bir polinom olarak gösterilebilir. P(x) = x2+x+9 polinomu için dönü³ümve ters dönü³üm matrisleri a³a§daki e³itliklerde verildi§i gibidir [34].∀a ∈ GF(28) için; ah,al ∈ GF(24) olmak üzere a = ahx+al

[T

]=

1 0 1 0 0 0 0 00 0 0 0 1 1 0 00 1 1 1 0 0 1 01 0 1 0 1 1 1 00 0 0 1 0 1 0 01 0 0 1 0 1 1 00 0 0 1 0 0 1 01 1 1 0 0 0 0 1

[T−1] =

1 1 0 1 1 1 0 00 1 1 1 1 1 1 00 1 0 1 1 1 0 01 1 0 1 0 0 1 01 0 0 1 1 0 1 01 1 0 1 1 0 1 01 1 0 1 0 0 0 01 1 1 1 1 1 1 1

Örnek : GF(28)'deki 0x80 elemannn GF((24)2)'teki kar³l§;

1 1 0 1 1 1 0 00 1 1 1 1 1 1 00 1 0 1 1 1 0 01 1 0 1 0 0 1 01 0 0 1 1 0 1 01 1 0 1 1 0 1 01 1 0 1 0 0 0 01 1 1 1 1 1 1 1

X

10000000

=

10010101

0x80 = 9x+5 ah = 9,al = 5

Dönü³üm matrisi ile GF(24) alt alannda ifade edilen GF(28)'de tanml sonlu

53

elemanlarn tersi GF(24) gerçekle³tirilen bir dizi i³lem sonucu bulunur. GF(28)'detanml bir sonlu elemann tersini bulmak için GF(24) alt alannda Denklem(8.3)'de verilen i³lemlerin yaplmas gerekir [35]. E³itlikler incelendi§i takdirdeters alma i³leminin GF(24)'te gerçeklendi§i görülmektedir. E³itliklerdeki λ ,kullanlan P(x) polinomundaki sabittir. Kullanlan P(x) polinomu uyarnca λ = 9

de§erine sahiptir. Yaplan çarpma ve toplama i³lemleri GF(24) sonlu alanüzerinde gerçeklenmektedir. Bu i³lemler GF(28)'de yaplan i³lemlere oranla çokdaha basit yapda i³lemlerdir. Yapya ait blok ³ema ekil 8.5'de verilmektedir.

a

T e r s A l m a

T e r s

b

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

54

a,b ∈ GF(28),

ah,al,bh,bl,λ ∈ (GF24)

a = ahx+al

a−1 = b = bhx+bl (8.3)

∆ = (ah +al)al +λa2h

bh = ah∆−1

bl = (ah +al)∆−1

GF(24)'teki matematiksel i³lemler ³öyledir;

• Çarpma

c = a.b, a,b,c ∈ GF(24),

c(3) = a(3)b(0)⊕a(2)b(1)⊕a(1)b(2)⊕a(0)b(3)⊕a(3)b(3)

c(2) = a(2)b(0)⊕a(1)b(1)⊕a(0)b(2)⊕a(3)b(3)⊕a(3)b(2)⊕a(2)b(3)

c(1) = a(1)b(0)⊕a(0)b(1)⊕a(3)b(2)⊕a(2)b(3)⊕a(3)b(1)⊕a(2)b(2)

⊕a(1)b(3)

c(0) = a(0)b(0)⊕a(3)b(1)⊕a(3)b(2)⊕a(1)b(3)

• Toplama

c = a+b, a,b,c ∈ GF(24),

ci = ai⊕bi

• Kare alma

c = a2, a,c ∈ GF(24),

c(3) = a(3)

c(2) = a(3)⊕a(1)

c(1) = a(2)

c(0) = a(2)⊕a(0)

GF(24)'te ters alma i³lemi iki ³ekilde yaplabilir;

55

1. Tablo YöntemiSadece 4-bit giri³li (24 = 16 olas giri³ vardr) bir fonksiyon oldu§u için,GF(28)'de kullanlan çizelgeden çok daha küçük bir alan kaplar. GF(24)'teters alma i³lemini gerçekleyen tablo 16x4 bit boyutundaki bir ROM'lagerçeklenebilir. Çizelge 8.4'de GF(24)'teki elemanlarn tersleri gösterilmi³tir.

Tablo 8.4: GF(24) Alanında Ters Elemanlar.

X 0 1 2 3 4 5 6 7 8 9 A B C D E FX−1 0 1 9 E D B 7 6 F 2 C 5 A 4 3 8

2. Alt Alan KullanmGF(24)'ten GF((22)2)'ye geçilir. Bu alanda da (8.3) denklemleri geçerlidir.Bu ³ekilde ters alma i³lemi GF(22)'ye indirgenebilir. GF(22)'de ters almai³lemi GF(2)'ye göre do§rusaldr ve kare alma i³lemine e³ittir. GF(24)'tenGF((22)2)'ye geçi³ için a³a§daki dönü³üm matrisleri kullanlabilir [36].

[T

]=

1 1 0 00 1 0 10 1 1 00 0 0 1

[T−1] =

1 1 0 10 1 0 10 1 1 00 0 0 1

(8.4)

GF(22)'de matematiksel i³lemler ³öyledir;

• Çarpma

c = a.b, a,b,c ∈ GF(22),

c(1) = a(1)b(0)⊕a(0)b(1)⊕a(1)b(1)

c(0) = a(0)b(0)⊕a(1)b(1)

• Toplama

c = a+b, a,b,c ∈ GF(22),

ci = ai⊕bi

• Kare alma

c = a2, a,c ∈ GF(22),

c(1) = a(1)⊕a(0)

c(0) = a(1)

56

AES S-Kutusu içerisindeki çarpmaya göre ters alma i³lemi alt alan kullanmylakombinezonsal olarak gerçeklenebilir. S-kutusu'ndaki ilgin dönü³ümünü isekombinezonsal devre ile gerçekle³tirmek mümkündür. Aritmetik olarakgerçeklenen S-Kutusu alan olarak çok iyi sonuçlar vermektedir, Fakat art ardayaplan i³lemlerin artmas nedeniyle kap seviyesi artmakta böylece devrenindaha dü³ük hzlarda çal³masna neden olmaktadr. Farkl yöntemler kullanlarakyaplan S-Kutusu gerçeklemelerinin kapladklar alan ve çal³abildikleri hzlararasndaki ili³ki önceden yaplan çal³malarda mevcuttur [37]. Ayrca art ardayap nedeniyle devredeki kaplara ait çk³ kapasiteleri artmakta ve devrenintamamen kombinezonsal olmas nedeniyle lojik geçi³ler srasnda yüksek çk³kapasitelerinden dolay dinamik olarak çok fazla güç harcanmaktadr. Ayrcaekil 8.5 incelendi§i takdirde kaplara gelen giri³lerin farkl zamanlarda etkinolaca§ açktr. Çünkü giri³ler farkl i³lemlere tutulmakta ve böylece farklgecikmelere maruz kalmaktadr. Farkl gecikmelerden dolay kaplarn çk³larndaçok sayda klçk meydana gelmektedir. Klçklar nedeniyle devrede gereksiz yeregüç harcamas yaplmaktadr. Aritmetik S-Kutusu tasarlanm³, bütün giri³lersras ile uygulanp devreye ait güç harcamas ölçülmü³tür. Devreye ait alan,zaman ve güç bilgileri Çizelge 8.5'de verilmektedir.

Tablo 8.5: Aritmetik S-Kutusu Gerçeklemesi Alan, Zaman ve Güç Bilgileri.

Aritmetik S-Kutusu GerçeklemesiAlan 40, 70 LUT

Kritik Gecikme (ns) 14.195Güç Harcaması (mW) 9215.1

Devreye ait güç sonuçlar incelendi§inde Tablo ve Bertoni gerçeklemelerine oranlaçok daha fazla güç harcad§ görülmektedir. Kaplara gelen giri³lerin geçti§i yolgecikme dengesizlikleri, kap çk³larndaki çk³ kapasitelerinin çok yüksek olmasve bir kapda giri³ gecikme dengesizli§i nedeniyle olu³abilecek lojik geçi³lerininsonraki kaplar da etkiliyor olmas devrede klçklarn meydana gelmesine nedenolmaktadr. Ayrca her lojik geçi³te yüksek de§ere sahip çk³ kapasiteleri üzerindedoldur bo³alt yaplaca§ açktr. Böylece devre üzerinde gereksiz yere dinamikgüç harcamas yaplmaktadr. Devrede yaplabilecek iyile³tirmeler ile kaplaragelen giri³lerin yakn gecikme sürelerine sahip olmalar sa§lanabilir. Ayrca devre

57

üzerinde uygun yerlere eklenecek olan hafza birimlerinin çk³ kapasiteleriniazaltaca§ ve bulundu§u yerden öncesi ve sonras arasnda lojik geçi³e imkanvermeyece§i açktr. Yapdaki i³lemlerin matematiksel olarak daha basitgerçeklenmesi de yaplan i³lem saysn azaltt§ndan güç tasarrufu sa§lamaktadr.yile³tirilen devreye ait ³ematik diyagram ekil 8.6'da verilmektedir.

a

T e r s A l m a

T e r s

b

8 - b i t K a y d e d i c i

4 - b i t K a y d e d i c i

4 - b i t K a y d e d i c i 4 - b i t K a y d e d i c i

4 - b i t K a y d e d i c i

4 - b i t K a y d e d i c i 4 - b i t K a y d e d i c i

8 - b i t K a y d e d i c i 8 - b i t K a y d e d i c i

Sekil 8.6: Iyilestirme yapılmıs Aritmetik S-Kutusu Sematik Gösterilimi.

yile³tirilmi³ yapda 3 adet 8-bitlik kaydedici ve 6 adet 4-bitlik kaydedicikullanlmaktadr. yile³tirilmi³ yap bir bitin i³lenmsi için gerekli saat periyodusaysn artrmasna kar³n, kritik yol gecikmelerini önemli derecede azaltt§ndançok büyük oranda güç tasarrufu sa§lamaktadr. Yaplan iyile³tirmeler sonucundadevreye ait güç ölçümleri tekrarlanm³tr, iyile³tirilen devreye ait alan, zaman vegüç bilgileri Çizelge 8.6'da verilmektedir.

58

Tablo 8.6: Iyilestirilmis Aritmetik S-Kutusu Gerçeklemesi Alan, Zaman ve GüçBilgileri.

Aritmetik S-Kutusu GerçeklemesiAlan 49 Dilim, 85 LUT, 54 FF

Kritik Gecikme (ns) 4.221Güç Harcaması (mW) 48

yile³tirme yaplmadan önce ve iyile³tirme yapldktan sonra ölçülen güç ölçümleriarasnda çok büyük farkllklar oldu§u görülmektedir. yile³tirme öncesi vesonrasnda ölçülen güç de§erleri arasnda 230'un üzerinde bir oran mevcuttur.Bu iyile³tirme büyük ölçüde devrede olu³an klçklar azaltarak kazanlm³tr.

8.2 Tur Sabiti ve Tur Sayacı Iyilestirmeleri

Bölüm 5.2'de ayrntl olarak bahsedilen anahtar üretim i³lemi blo§unda yer alantur sabiti RCON tablo olarak veya ötelemeli yazc olarak tasarlanabilir. Tabloolarak tasarlanmas durumunda 16X8 boyutunda ROM kullanm gerekmektedir.RCON tur sabitini tablo yerine ötelemeli yazc ile tasarlamak mümkündür, budurumda 8-bitlik bir ötelemeli yazcya ihtiyaç vardr.

RCON sabiti ile birlikte tur sayacnn da ötelemeli yazc olarak tasarlanmas alanaçsndan avantajlar yaratr. Tur sayacnn ötelemeli yazc olarak tasarlanmasdurumunda 11 bitlik kaydedici blo§una ihtiyaç duyulur. ifrelemeninba³lamasndan önce sfrnc turu temsil eden bite lojik 1 de§eri di§er bitlereise lojik 0 de§eri atanr. Her tur sonras kaydedicinin içeri§i kaydrlr. ifrelemei³leminin tamamland§n anlamak için tur sayacn kontrol etmek gerekir. Tursayacnn ötelemeli yazc olarak tasarlanmas durumunda kontrol srasnda sadece10. turu temsil eden bite bakmak yeterlidir. Çünkü ötelemeli kaydedicininsadece bir biti lojik 1 seviyesinde olabilir. Her turda sadece iki bitin lojik seviyede§i³tiriyor olmas güç tasarrufu harcamas açsndan da önemlidir.

Tur sabiti RCON ve tur sayac üzerindeki iyile³tirmeler, farkl AES yapsgerçeklemelerinden sadece Bölüm 8.3.1'da ayrntl olarak incelenen Klasik Yapüzerinde etkilidir. Di§er iki yapda tur sabiti ve tur sayacna ihtiyaç yoktur.

8.3 Farklı AES Yapıları

59

AES algoritmasn farkl yaplarda gerçekle³tirmek mümkündür. Bu yaplarnbazlar küçük alan ihtiyac duyuldu§u zamanlarda kullanlmaktayken, bazlarise yüksek i³lem hacmi gerekti§i zaman kullanlmaktadr. Gerçekle³tirilen yapyaba§l olarak güç harcamas farkllk göstermektedir. AES algoritmas farklyaplar için gerçekle³tirilmi³ ve bu yaplarn güç harcamalar alt bölümlerdekar³la³trlm³tr.

8.3.1 Klasik Yapı AES Gerçeklemesi

Yapda 128-bitlik veri blo§u paralel olarak i³lenir. Klasik yap AESgerçeklemesinde tekrarl tur dönü³üm i³lemi yap içerisinde bir kez yer alr ve TurDönü³üm Blo§u gerekli olan tur saysna ba§l olarak tekrar çal³trlr. Tekrarlyapda yer alan tur dönü³üm i³lemi kombinezonsal olarak gerçeklenir. Yapda TurDönü³üm Blo§una ek olarak bir adet çoklayc ve hafza birimi bulunmaktadr.Klasik yap gerçeklemesine ait blok ³ema ekil 8.7'da verilmektedir. ifrelemei³leminin ba³langcnda ilk saat i³areti ile birlikte giri³ veri blo§u çoklaycyardmyla giri³te bulunan hafza birimine yazlr. Tur Dönü³üm Blo§ununkombinezonsal olarak gerçeklenmesinden dolay tur dönü³üm i³lemi sonraki saati³areti gelmeden gerçekle³tirilir ve saat i³aretinin gelmesi ile birlikte hafzabirimine i³lenmi³ veri yazlr. Takip eden sonraki saat i³aretlerinde bu i³lemtekrar edilir ve gerekli tur saysnn tamamlanmas ile birlikte çk³a ³ifrelenmi³veri blo§u verilir. Bu süre zarfnda yeni bir veri giri³e alnmaz, giri³e yeni birveri alnabilmesi için önceki veriye ait ³ifrelenme i³leminin gerçekle³mesi yanigerekli tur saysnn tamamlanmas gerekir. ifrelenmi³ verinin alnabilmesiiçin gerekli tur says kadar saat i³aretinin beklenmesi gerekir. AES-128 içingerekli tur saysnn 10 oldu§u dü³ünülürse ³ifrelenmi³ verinin elde edilmesi içint = 10∗ periyot süresi kadar beklemek gerekir.

Klasik yap AES gerçeklemesinde yer alan HAFIZA BRM 2 ³ifrelenmi³verinin çk³a verilmesi srasnda yeni de§erini alr, di§er zamanlarda de§erinikorur. Daha açklayc olmak gerekirse ³ifreleme için gerekli tur saysnntamamlanmas ile yeni de§er atanr, aksi durumlarda eski de§erini korur.AES-128 için HAFIZA BRM 2'nin kontrol i³areti tur saysnn 10 olmasdr.Güç tasarruf yöntemlerinden Saat ³aretini Engelleme bahsi geçen hafza blo§u

60

Ç O K L A Y I C I

K O M i N E Z O N S A L LOJ iK

H A F I Z A B i R i M i 1

B i R T U R

H A F I Z A B i R i M i 2

Sekil 8.7: Klasik Yapı AES gerçeklemesi.

için uygun bir yöntemdir. Fakat FPGA'lerin saat a§acnn önceden yollandrlm³olmas saat i³aretini engelleme yöntemini kullanrken oldukça büyük problemleryaratmaktadr. Saat i³aretini engelleme yönteminde bahsedilen ekil 6.6 yapsnkullanmak mümkün olmamaktadr, bu yapnn yerine ekil 6.5'deki yap tercihedilmektedir [38]. Gerçekleme srasnda da bu yap kullanlm³tr.

Klasik AES gerçeklemesine uygulanabilecek bir di§er güç tasarruf yöntemi iseGiri³ zolasyonudur. Bölüm 5'de ayrntl olarak anlatlan AES algoritmasnda,son tur dönü³üm i³leminde di§er turlardan farkl olarak, tur anahtar SütunKar³trma Blo§ununun çk³ ile de§il Satrlar Kaydrma Blo§unun çk³ ilee-xor'lanmaktadr. Son turda sütun kar³trma blo§unun giri³i engellenebilir,böylece çk³ kullanlmayacak olan sütun kar³trma blo§unun gereksiz güçharcamas engellenebilir. Fakat dikkat edilmesi gereken husus bahsedilenizolasyon i³leminin sadece son tur için geçerli olmasdr. Son tur d³ndaki di§erturlarda giri³ izolasyonu yönteminde ekil 6.8'de yer alan VE kapsnn kontrolgiri³i lojik 1 seviyesinde kalmakta böylelikle VE kapsnn çk³ Satr KaydrmaBlo§unun çk³na e³ olmaktadr. Yapya giri³ izolasyonu uygulanabilmesi için128 adet VE kaps kullanmak gerekir. zolasyon i³leminin sadece son turiçin gerçekle³mesi nedeniyle, di§er turlarda izolasyon için eklenen 128 adet VEkapsnn fazladan harcayaca§ güç, son tur da sa§layaca§ tasarruftan daha

61

fazla olabilece§i dü³ünülmü³tür. Devre Sütunlar Kar³trma Blo§una giri³izolasyonu uygulanm³ ³ekilde gerçekle³tirilmi³ ve beklenildi§i gibi güç tasarrufusa§lanmam³tr. Giri³ izolasyonu uygulayarak güç tasarrufu sa§lanmamasnnnedeni izolasyonun gerçekte sadece son tur için gerçekle³mesidir.

Ayrca Bölüm 6.2.4'de anlatlan yeniden zamanlama ve optimizasyon güç tasarrufyöntemleri uygulanmm³tr. Tur sabiti RCON ve tur sayac üzerinde de Bölüm8.2'da anlatlan iyile³tirmeler uygulanm³tr.

Klasik yap AES gerçeklemesi güç ölçümleri için giri³e MATLAB programyardmyla belirlenmi³ rasgele giri³ler uygulanm³ ve 20 MHz saat frekansnda güçölçümleri yaplm³tr. Bu ölçümler farkl yöntemlerle gerçeklenmi³ S-Kutular içintekrarlanm³tr. Ayrca S-Kutular üzerinde iyile³tirme yapldktan sonra gerekliölçümler tekrarlanm³tr. Elde edilen sonuçlara ait saysal veriler Çizelge 8.7, 8.8ve 8.9'de verilmektedir.

Tablo 8.7: Klasik Yapı Alan ve Frekans Sonuçları.

Kullanılan S-Kutusu YöntemiTablo i.Tablo Bertoni i.Bertoni Aritmetik i.Aritmetik(KT) (KIT) (KB) (KIB) (KA) (KIA)

2635 D, 2629 D, 13958 D, 9780 D, 1571 D, 1299 D,Alan 4906 L, 4932 L, 26997 L, 18367 L, 3044 L, 2445 L,

857 F 931 F 762 F 937 F 392 F 1485 FFrekans 167.196 170.213 72.464 103.524 106.428 298.365(Mhz)

D: Dilim, L: LUT, F: FLip-Flop

Tablo 8.8: Klasik Yapı Güç Tüketim Sonuçları.

Kullanılan S-Kutusu YöntemiTablo i.Tablo Bertoni i.Bertoni Aritmetik i.Aritmetik(KT) (KIT) (KB) (KIB) (KA) (KIA)

Dinamik 155.5 101 325 220 1345 46(mW)

Dinamik - % 33 - % 32.3 - % 97.6TasarrufToplam 1642 1581 1831 1714 2983 1520(mW)

Toplam - % 3.6 - % 6.4 - % 49.15Tasarruf

62

Tablo 8.9: Klasik Yapı Bir Bitin Sifrelenmesi için Gerekli Enerji.

Kullanılan S-Kutusu YöntemiTablo i.Tablo Bertoni i.Bertoni Aritmetik i.Aritmetik(KT) (KIT) (KB) (KIB) (KA) (KIA)

Dinamik 0.67 0.48 1.40 0.94 5.78 0.2(uJoule

Bit )Dinamik - % 33 - % 32.3 - % 97.4TasarrufToplam 7.06 6.84 7.87 7.36 12.82 6.57(uJoule

Bit )Toplam - % 3.6 - % 6.4 - % 48.8Tasarruf

Farkl S-Kutular ile yaplan Klasik AES gerçeklemelerinden KIA en küçük alanasahip devredir, KB devresi ise en büyük alana sahip devredir. KIA devresiKIT devresinin yakla³k olarak yars kadar, KIB devresinin ise 1

7 'si kadar alankaplamaktadr. Çizelge 8.1 ve 8.2'de verilen Bertoni ve Tablo yöntemi S-Kutusugerçeklemelerine ait alan büyüklükleri açsndan çok fazla bir farkllk olmamasnara§men KB devresi ve KT devresine oranla neredeyse 5 kat daha büyük alankaplamaktadr. Bunun nedeni Bertoni S-Kutusunun çok fazla yollandrmakarma³as içermesidir. FPGA içerisinde yollandrma yaplrken bu karma³klkbüyük alan kaybna neden olmaktadr. KB devresindeki yollandrma problemiayn ³ekilde KIB devresi içinde geçerlidir. KIA devresi küçük alan kaplad§gibi yüksek frekanslarda da çal³abilmektedir. Yüksek frekanslarda çal³abilmesiFPGA üzerinde yer alan saat a§acnn dü³ük çk³ kapasitesine sahip oldu§unugöstermektedir. Dü³ük çk³ kapasitesine sahip olmas saat i³aretinin harcad§gücü azaltmaktadr.

Gerçeklemeler üzerinde iyile³tirme yaplmadan önce KT devresi en az güçharcamas yapmaktadr. KA devresi di§er devrelere oranla çok yüksek miktardagüç harcamas yapmaktadr. Yaplan iyile³tirmelerle birlikte KB devresinde %32, KT devresi üzerinde % 33, KA devresi üzerinde ise % 97.6 orannda dinamikgüç tasarrufu sa§lanm³tr. lk durumda en yüksek güç harcamasna sahipolan KA devresi, yaplan iyil³tirmeler ile birlikte en dü³ük güç harcayan devrekonumuna gelmi³tir. Son durumda KIA devresi KIT devresinin yars kadar KIBdevresinin ise 1

5 'i kadar güç harcamaktadr. Devrelerde yaplan iyile³tirmeler ile

63

toplam güç harcamasnda da tasarruf sa§lanm³tr, kullanlan FPGA'in yüksekstatik güç harcamasndan dolay toplam güçte yaplan tasarruar dinamik güçtekitasarruar kadar yüksek de§ildir. Ayrca bir bitin ³ifrelenmesi için gerekli enerjimiktarlar incelendi§inde KIA devresinin di§er devrelere oranla çok daha iyisonuçlar verdi§i görülebilir.

8.3.2 Dıs Bellekli Yol Yapısında AES Gerçeklemesi

Yapda 128-bitlik veri blo§u paralel olarak i³lenir. D³ Bellekli Yol Yapsndabirden fazla Tur Dönü³üm Blo§u kas kat olarak ba§lanr ve birbirini takip edenbloklar arasna hafza birimleri eklenir. Art arda ba§lanacak Tur Dönü³üm Blo§usays gerekli tur saysnn böleni olmak zorundadr. Alan kstlamasnn olmad§durumlarda ihtiyaç duyulan tur says kadar Tur Dönü³üm Blo§u kas kat olarakba§lanr. AES-128 için gerekli tur saysnn 10 oldu§u dü³ünüldü§ünde tam D³Bellekli Yol yapsnda 10 adet Tur Dönü³üm Blo§u kas kat olarak ba§lanr.Her bir blok arasnda bulunan hafza birimleri her saat i³aretinde veri giri³iolmasna olanak sa§lar. Böylelikle her saat i³aretinde i³lenen bir veri blo§u hafzabirimlerine yazlr. Bu yapda klasik yapda yer alan çoklayc blo§una ihtiyaçyoktur.

lk ³ifrelenmi³ veriyi elde etmek için t = 10 ∗ periyot süresince beklemek gerekir.lk ³ifrelenmi³ verinin alnmasndan sonra her saat i³aretinde bir ³ifrelenmi³ veriblo§u çk³a verilir. Bellekli yol yapsndan dolay i³lem hacmi Klasik Yapyaoranla oldukça yüksektir. D³ Bellekli Yol Yaps gerçeklemesine ait blok ³emaekil 8.8'de verilmektedir.

D³ Bellekli Yol Yapsnda saat i³aretini engelleme yöntemi uygulanabilecekherhangi bir hafza birimi bulunmamaktadr. Klasik yöntemde çk³ hafza birimi10 tur da bir güncellenirken D³ Bellekli Yol Yaps AES gerçeklemesinde herturda güncellenmektedir. Bu nedenden dolay saat i³areti engelleme yöntemikullanlamaz. Ayrca ONUNCU TUR blo§unda sütun kar³trma i³lemine gerekduyulmad§ için di§er bloklardan farkl olarak ONUNCU TUR blo§u sütunkar³trma alt blo§unu içermemektedir. Böylelikle klasik yapda son turda gereksizyere harcanan güç bu yapda harcanmamaktadr.

64

K O M i N E Z O N S A L LOJiK

H A F I Z A B i R i M i 1

B i R i N C i T U R

K O M i N E Z O N S A L LOJiK

H A F I Z A B i R i M i 2

i K i N C i T U R

K O M i N E Z O N S A L LOJiK

O N U N C U T U R

H A F I Z A B i R i M i 1 0

H A F I Z A B i R i M i 1 1

Sekil 8.8: Dıs Bellekli Yol Yapısı AES gerçeklemesi.

65

D³ Bellekli Yol yapsnda tur sayacna ihtiyaç yoktur, ayrca Anahtar ÜretimBlo§unda yer alan RCON tur sabiti yapda yer alan kas kat ba§l her bloktasabit bir de§eri almaktadr, böylece RCON tur sabiti için ROM veya ötelemelikaydedici tasarm yapmak gerekmemektedir.

D³ Bellekli Yol Yaps AES gerçeklemesi güç ölçümleri için giri³e MATLABprogram yardmyla belirlenmi³ rasgele giri³ler uygulanm³ ve 20 MHzsaat frekansnda güç ölçümleri yaplm³tr. Bu ölçümler farkl yöntemlerlegerçeklenmi³ S-Kutular için tekrarlanm³tr. Ayrca S-Kutular üzerindeiyile³tirme yapldktan sonra gerekli ölçümler tekrarlanm³tr. Elde edilensonuçlara ait saysal veriler Çizelge 8.10, 8.11 ve 8.12 'de verilmektedir.

Tablo 8.10: Dıs Bellekli Yol Yapısı Alan ve Frekans Sonuçları.

Kullanılan S-Kutusu YöntemiTablo Bertoni i.Bertoni Aritmetik i.Aritmetik(DBT) (DBB) (DBIB) (DBA) (DBIA)

23114 D, 123970 D, 110495 D, 10236 D, 11054 D,Alan 42988 L, 240020 L, 249240 L, 20017 L, 20672 L,

8140 F 7460 F 8935 F 2688 F 13488 FFrekans 215.843 76.120 114.022 115.062 347.947(Mhz)

D: Dilim, L: LUT, F: FLip-Flop

Tablo 8.11: Dıs Bellekli Yol Yapısı Güç Tüketim Sonuçları.

Kullanılan S-Kutusu YöntemiTablo Bertoni i.Bertoni Aritmetik i.Aritmetik(DBT) (DBB) (DBIB) (DBA) (DBIA)

Dinamik 404 551 482 3369 287(mW)

Dinamik - - % 12.6 - % 91.5TasarrufToplam 1918 2056 1987 5351 1788(mW)

Toplam - - % 3.4 - % 66.6Tasarruf

Farkl S-Kutular ile yaplan D³ Bellekli AES gerçeklemelerinden DBIA en küçükalana sahip devredir, DBB devresi ise en büyük alana sahip devredir. KullanlanXC4VLX200 FPGA'yi çok büyük bir FPGA olmasna ra§men bu haliyle DBB ve

66

Tablo 8.12: Dıs Bellekli Yol Yapısı Bir Bitin Sifrelenmesi için Gerekli Enerji.

Kullanılan S-Kutusu YöntemiTablo Bertoni i.Bertoni Aritmetik i.Aritmetik(DBT) (DBB) (DBIB) (DBA) (DBIA)

Dinamik 0.16 0.22 0.19 1.33 0.11(uJoule

Bit )Dinamik - - % 12.6 - % 91.4TasarrufToplam 0.76 0.81 0.78 2.11 0.71(uJoule

Bit )Toplam - - % 3.4 - % 66.4Tasarruf

DBIB devreleri FPGA'ye s§mamaktadr. DBIA devresi DBT devresinin yakla³kolarak yars kadar, DBIB devresinin ise 1

10 'u kadar alan kaplamaktadr. BertoniS-Kutusundaki yollandrma karma³kl§ndan dolay DBB ve DBIB gerçeklemeleriçok büyük alanlara sahiptir. DBIA devresi küçük alan kaplad§ gibi yüksekfrekanslarda da çal³abilmektedir. Bu durum saat i³aretinin harcad§ gücüazaltmaktadr.

Bertoni S-Kutusu içeren DBB ve DBIB devrelerinin güç harcamas hesaplanrkenkestirme yöntemi kullanlm³tr. Devrelerde 10 tur blo§u ayn anda FPGAüzerinde gerçeklenememi³ devrelerin bir ksm FPGA üzerinde gerçeklenipdevrenin tamam için güç harcamas tahmininde bulunulmu³tur.

Gerçeklemeler üzerinde iyile³tirme yaplmadan önce DBT devresi en az güçharcamas yapmaktadr. DBA devresi di§er devrelere oranla çok yüksek miktardagüç harcamas yapmaktadr. Yaplan iyile³tirmelerle birlikte DBB devresinde %12.6, DBT devresi üzerinde % 33, DBA devresi üzerinde ise % 91.5 orannda güçtasarrufu sa§lanm³tr. lk durumda en yüksek güç harcamasna sahip olan DBAdevresi, yaplan iyil³tirmeler ile birlikte en dü³ük güç harcayan devre konumunagelmi³tir.

Devrelerde yaplan iyile³tirmeler ile toplam güç harcamasnda da tasarrufsa§lanm³tr, kullanlan FPGA'in yüksek statik güç harcamasndan dolay toplamgüçte yaplan tasarruar dinamik güçteki tasarruar kadar yüksek de§ildir.

67

Ayrca bir bitin ³ifrelenmesi için gerekli enerji miktarlar incelendi§inde DBIAyönteminin di§er devrelere oranla daha iyi sonuçlar verdi§i görülebilir.

8.3.3 Iç ve Dıs Bellekli Yol Yapısında AES Gerçeklemesi

ç ve D³ Bellekli Yol Yaps sadece D³ Bellekli Yol Yapsnda oldu§u gibi birdenfazla Tur Dönü³üm Blo§unun kas kat ba§lanmasndan olu³maktadr. Sadece D³Bellekli Yol Yapsndan farkl olarak Tur Dönü³üm Blo§u altnda yer alan altbloklar arasna hafza birimleri eklenmi³tir. Bayt De§i³tirme, Satlar Kaydrma,Sütunlar Kaydrma ve Tur Anahtarn Ekleme bloklar arasna hafza birimlerieklenir. Benzer olarak Anahtar Üretim Blo§u altnda yer alan alt bloklar arasnada hafza birimleri eklenir. Alan kstlamas bulunmad§ durumlarda gereklitur says kadar Tur Dönü³üm Blo§u kas kat ba§lanabilir. AES-128 için D³Bellekli Yol yapsnda oldu§u gibi 10 adet Tur Dönü³üm Blo§u kas kat olarakba§lanmaktadr. Bu yapda alt bloklar arasnda da hafza birimlerinin olmasnedeniyle devrenin çal³abilece§i frekans ve i³lem hacmi di§er Yaplara oranladaha yüksektir. ç ve D³ Bellekli Yol Yaps gerçeklemesine ait blok ³ema ekil8.9'da verilmektedir.

ç ve D³ Bellekli Yol yapsnda da, D³ Bellekli Yol yapsnda oldu§u gibisaat i³aretini engelleme yöntemi uygulanabilecek herhangi bir hafza birimibulunmamaktadr. D³ Bellekli Yol Yapsnda oldu§u gibi çk³ hafza birimi herturda güncellenmektedir. Bu nedenden dolay Saat ³areti Engelleme yöntemikullanlamaz. Ayrca ONUNCU TUR blo§unda sütun kar³trma i³lemine gerekduyulmad§ için ONUNCU TUR blo§u di§er bloklardan farkl olarak sütunkar³trma alt blo§unu içermemektedir. Böylelikle klasik yapda son turdagereksiz yere harcanan güç, D³ Bellekli Yol yapsnda oldu§u gibi bu yapdada harcanmamaktadr.

ç ve D³ Bellekli Yol yapsnda da, D³ Bellekli Yol yapsnda oldu§u gibi tursayacna ihtiyaç yoktur, ayrca Anahtar Üretim Blo§unda yer alan RCON tursabiti yapda yer alan kas kat ba§l her blokta sabit bir de§eri almaktadr,böylece RCON tur sabiti için ROM veya ötelemeli kaydedici tasarm yapmakgerekmemektedir.

68

H A F I Z A B i R i M i 1

B i R i N C i T U R

H A F I Z A B i R i M i 2

i K i N C i T U R

O N U N C U T U R

H A F I Z A B i R i M i 1 0

H A F I Z A B i R i M i 1 1

Sekil 8.9: Iç ve Dıs Bellekli Yol Yapısı AES Gerçeklemesi.

69

ç ve D³ Bellekli Yol Yaps AES gerçeklemesi güç ölçümleri için giri³eMATLAB program yardmyla belirlenmi³ rasgele giri³ler uygulanm³ ve 20MHz saat frekansnda güç ölçümleri yaplm³tr. Bu ölçümler farkl yöntemlerlegerçeklenmi³ S-Kutular için tekrarlanm³tr. Ayrca S-Kutular üzerindeiyile³tirme yapldktan sonra gerekli ölçümler tekrarlanm³tr. Elde edilensonuçlara ait saysal veriler Çizelge 8.13, 8.14 ve 8.15'de verildi§i gibidir.

Tablo 8.13: Iç ve Dıs Bellekli Yol Yapısı Alan ve Frekans Sonuçları.

Kullanılan S-Kutusu YöntemiTablo Bertoni i.Bertoni Aritmetik i.Aritmetik

(IDBT) (IDBB) (IDBIB) (IDBA) (IDBIA)19400 D, 128020 D, 90372 D, 10983 D, 12529 D,

Alan 32323 L L, 247640 L, 167490 L, 20553 L, 20634 L,10244 F 11890 F 8422 F 6784 F 17584 F

Frekans 274.695 81.550 123.533 142.268 349.895(Mhz)

D: Dilim, L: LUT, F: FLip-Flop

Tablo 8.14: Iç ve Dıs Bellekli Yol Yapısı Güç Tüketim Sonuçları.

Kullanılan S-Kutusu YöntemiTablo Bertoni i.Bertoni Aritmetik i.Aritmetik

(IDBT) (IDBB) (IDBIB) (IDBA) (IDBIA)Dinamik 289 602 481 1929 316

(mW)Dinamik - - % 20.1 - % 83.6TasarrufToplam 1790 2107 1986 3652 1820(mW)

Toplam - - % 5.7 - % 50.2Tasarruf

Klasik ve D³ Bellekli yap gerçeklemelerinde oldu§u gibi alan olarak IDBB veIDBIB devreleri kötü sonuçlar vermektedir. Bu durumda IDBB devresi kullanlanFPGA'ye s§mamaktadr. Çal³ma frekans ve alan büyüklü§ü olarak IDBIAdevresi di§er devrelere oranla daha iyi sonuçlar vermektedir.

Bertoni S-Kutusu içeren IDBB ve IDBIB devrelerinin güç harcamashesaplanrken DBB ve DBIB devrelerinde oldu§u gibi kestirme yöntemikullanlm³tr. Devrelere 10 tur blo§u ayn anda FPGA üzerinde gerçeklenememi³

70

Tablo 8.15: Iç ve Dıs Bellekli Yol Yapısı Bir Bitin Sifrelenmesi için Gerekli Enerji.

Kullanılan S-Kutusu YöntemiTablo Bertoni i.Bertoni Aritmetik i.Aritmetik

(IDBT) (IDBB) (IDBIB) (IDBA) (IDBIA)Dinamik 0.12 0.25 0.19 0.79 0.13(uJoule

Bit )Dinamik - - % 20.1 - % 83.5TasarrufToplam 0.73 0.86 0.78 1.49 0.74(uJoule

Bit )Toplam - - % 5.7 - % 50.3Tasarruf

devrelerin bir ksm FPGA üzerinde gerçeklenip devrenin tamam için güçharcamas tahmininde bulunulmu³tur.

Devrelerde yaplan iyile³tirmeler ile toplam güç harcamasnda da tasarrufsa§lanm³tr, kullanlan FPGA'in yüksek statik güç harcamasndan dolay toplamgüçte yaplan tasarruar dinamik güçteki tasarruar kadar yüksek de§ildir.Ayrca bir bitin ³ifrelenmesi için gerekli enerji miktarlar incelendi§inde IDBTve IDBIB yöntemlerinin yakn sonuçlar verdi§i görülebilir.

8.3.4 Farklı AES Yapılarının Karsılastırılması

3 de§i³ik S-Kutusu yöntemi ile gerçekle³tirilen iyile³tirilmi³ Klasik, D³ Belleklive ç ve D³ Bellekli AES gerçeklemelerine ait alan, frekans, güç ve enerji bilgilerisras ile Çizelge 8.16, 8.17, 8.18, 8.19'de verilmektedir.

Klasik Yap beklenildi§i gibi 3 farkl S-Kutusu gerçeklemesi için de di§er yaplaraoranla daha dü³ük alan kaplamaktadr. D³ Bellekli Yap, Klasik Yapda yeralan çoklayc elemanna ve döngüye ihtiyaç duymad§ndan daha yüksek hzlardaçal³abilmektedir. ç ve D³ Bellekli yap Tur Dönü³üm Blo§unda yer alan altbloklar arasnda da hafza birimleri içerdi§inden daha ksa kritik yol gecikmesinedeniyle en yüksek hzlarda çal³an yapdr.

Klasik Yap di§er yaplara oranla daha az güç harcamaktadr. D³ Bellekli yap,Tablo S-Kutusu gerçeklemesi için ç ve D³ Bellekli yapya oranla daha fazlagüç harcamaktadr. Bunun nedeni ç ve D³ Bellekli yapda daha az dinamik

71

Tablo 8.16: Iyilestirilen AES Yapıları Alan Sonuçları.

Kullanılan S-Kutusu YöntemiTablo Bertoni Aritmetik

2629 D, 9780 D, 1299 D,Klasik 4932 L, 18367 L, 2445 L,

931 F 937 F 1485 FDıs Bellekli 23114 D, 110495 D, 11054 D,

Yapı 42988 L, 249240 L, 20672 L,8140 F 8935 F 13488 F

Iç ve Dıs 19400 D, 90372 D, 12529 D,Bellekli Yapı 32323 L 167490 L, 20634 L,

10244 F 1022 F 17584 F

D: Dilim, L: LUT, F: FLip-Flop

Tablo 8.17: Iyilestirilen AES Yapıları Frekans Sonuçları.

Kullanılan S-Kutusu YöntemiTablo Bertoni Aritmetik

Klasik 70.213 MHz 103.524 MHz 298.365 MHzDıs Bellekli 215.843 MHz 114.022 MHz 347.947 MHz

YapıIç ve Dıs 274.695 MHz 123.533 MHz 349.895 MHz

Bellekli Yapı

Tablo 8.18: Iyilestirilen AES Yapıları Güç Tüketim Sonuçları.

Kullanılan S-Kutusu YöntemiTablo Bertoni Aritmetik

Klasik PD=101 mW PD=220 mW PD=46 mWYapı PT =1581 mW PT =1714 mW PT =1520 mWDıs PD=404 mW PD=482 mW PD=287 mW

Bellekli Yapı PT =1918 mW PT =1987 mW PT =1788 mWIç ve Dıs PD=289 mW PD=481 mW PD=316 mW

Bellekli Yapı PT =1790 mW PT =1986 mW PT =1820 mW

72

Tablo 8.19: Iyilestirilen AES Yapıları Enerji Tüketim Sonuçları.

Kullanılan S-Kutusu YöntemiTablo Bertoni Aritmetik

Klasik ED=0.48 ED=0.94 ED=0.20Yapı ET =6.84 ET =7.36 ET =6.57

(uJouleBit )

Dıs Bellekli ED=0.16 ED=0.19 ED=0.11Yapı ET =0.76 ET =0.78 ET =0.71

(uJouleBit )

Iç ve Dıs ED=0.12 ED=0.19 ED=0.13Bellekli Yapı ET =0.73 ET =0.78 ET =0.74

(uJouleBit )

güç harcamas olmasdr. Tur Dönü³üm Blo§unda yer alan alt bloklar arasnakaydediciler eklendi§inden kritik yol azalmaktadr. Çk³ kapasite de§erleridü³mekte ve devrede daha az klçk olu³maktadr. Böylece güç harcamasdaha az olmaktadr. Aritmetik S-Kutusu gerçeklemesinde ise ç ve D³ BellekliYapda güç harcamas, D³ Bellekli Yapya oranla daha fazla olmaktadr.Geli³tirilmi³ aritmetik S-Kutusu 5 adet kas kat kaydedici blo§u içermektedir.ç ve D³ Bellekli Yapda her blok arasnda da yer alan kaydedici bloklar ilebirlikte her bir Tur dönü³üm Blo§u toplamda 8 adet kas kat ba§l kaydediciblo§u içermektedir. Frekans bilgilerinden de görülece§i gibi ç ve D³ Bellekliyapda alt bloklar arasna eklenen kaydedici bloklar iyile³tirilmi³ aritmetikgerçekleme için kritik yol gecikmesini azaltmamaktadr. Alt bloklar arasndakikaydedici bloklar iyile³tirme sa§lamad§ gibi güncellenirken güç harcamasyapmaktadrlar, böylece ç ve D³ Bellekli Yap, D³ Bellekli Yapya oranlaiyile³tirilmi³ aritmetik S-Kutusu gerçeklemesi için daha fazla güç harcamasyapmaktadr.

Her ne kadar D³ Bellekli ve ç ve D³ Bellekli Yol Yaplar Klasik Yapya oranladaha fazla güç harcamasnda bulunsa da yüksek i³lem hacmi nedeniyle bir bitin³ifrelenmesi için daha az enerji harcamasnda bulunmaktadrlar.

Yaplar kendi içerisinde kar³la³trmak gerekirse Klasik Yap gerçeklemesinde enaz güç harcamasn iyile³tirilmi³ aritmetik S-Kutusu içeren devre yapmaktadr.Tablo gerçeklemesinin yars, Bertoni gerçeklemesinin ise 1

5 'i kadar güçharcamaktadr. Ayn durum bir bitin ³ifrelenmesi için gerekli enerji miktarlar

73

içinde geçerlidir. Toplam güç ve toplam enerji harcamalarnda da aritmetikgerçekleme daha az tüketim yapsa da oranlar dinamik güç ve enerji de§erlerindeoldu§u gibi yüksek de§ildir. Bunun nedeni kullanlan FPGA'in yüksek statikakm de§erine sahip olmasdr. D³ Bellekli Yol Yapsnda ise Klasik Yapyabenzer olarak aritmetik gerçekleme daha az güç ve enerji tüketimi sa§lamaktadr.ç ve D³ Bellekli yol yapsnda ise aritmetik gerçekleme üstünlü§ünü tablogerçeklemesine kaptrmaktadr. yile³tirilmi³ aritmetik gerçekleme S-Kutusundayer alan kas kat kaydedici bloklar ç ve D³ Bellekli Yol Yapsnda iyile³tirmeyapmadan gereksiz yere güç harcamasnda bulunmaktadrlar böylece devre dahafazla güç harcamas yapmaktadr. Ayn durum harcanan enerji miktarlar için degeçerlidir.

74

9. SONUÇLAR ve TARTISMA

Bu çal³mada AES algoritmasnda yer alan S-Kutusu 3 farkl yöntemlegerçeklenmi³ ve gerçeklenen S-Kutularnn Klasik, D³ Bellekli Yol ve ç veD³ Bellekli Yol yaplarndaki güç harcamalar incelenmi³tir. Farkl yöntemlerlegerçeklenen S-Kutular üzerinde iyile³tirmeler yaplm³ ve her üç yap içindegüç tasarruf yöntemlerinden yararlanlarak devrelerin dinamik güç harcamalarazaltlm³tr. FPGA gerçeklemelerinde dinamik güç harcamas üzerindeiyile³tirmeler yaplabildi§i için dinamik güç tasarrufu üzerinde durulmu³tur.

Klasik Yapda Aritmetik S-Kutusu gerçeklemesi üzerinde % 97.6 orannda, Tablove Bertoni yöntemlerinde de sras ile % 33 ve % 32.3 orannda dinamik güçtasarrufu sa§lanm³tr. lk durumda Tablo ve Bertoni yöntemine göre çokdaha fazla güç harcayan Aritmetik S-Kutusu gerçeklemesi her üç devrede deyaplan iyile³tirmelerin sonunda en az güç harcamas yapan devre konumunagelmi³tir. Aritmetik S-Kutusu gerçeklemesi dü³ük alan kaplamas nedeni ilealan kstlamas bulunan tasarmlarda büyük öneme sahiptir. Yaplan iyile³tirmeile Aritmetik S-Kutusu gerçeklemesi alan avantajn kaybetmeden en az güçharcayan devre konumuna gelmi³tir. Daha önceden FPGA üzerinde yaplm³çal³mada aritmetik S-Kutusu yöntemi kullanlan Klasik Yap AES üzerinde% 60.66 orannda iyile³tirme sa§lanm³ken, bu çal³mada daha yüksek orandaiyile³tirme sa§lanm³tr [32]. D³ Bellekli Yol ve ç ve D³ Bellekli Yol yaplarndada benzer olarak Aritmetik S-Kutusu gerçeklemesi için sras ile % 91.4 ve % 83.6oranlarnda dinamik güç tasarrufu sa§lanm³tr. yile³tirilmi³ Aritmetik S-Kutusugerçeklemesi Klasik ve D³ Bellekli AES yaplarnda di§er S-Kutusu yöntemlerinegöre daha az güç harcamaktadr. Fakat bu avantajn ç ve D³ Bellekli Yol içinTablo S-Kutusu gerçeklemesine kaptrmaktadr.

Bertoni yöntemi ile gerçeklenmi³ S-Kutusu ASIC tasarmlar için dü³ük güçharcamasna ra§men [28], içerdi§i yollandrma karma³kl§ndan dolay FPGA

75

gerçeklemelerinde güç açsndan iyi sonuç vermemektedir. Ayrca Bertonigerçeklemelerinin büyük alanlara sahip olmas açsndan kullanm imkanlar dayoktur.

Ayrca Klasik, D³ Bellekli Yol ve ç ve D³ Bellekli Yol yaplarnda gerçeklenenAES algoritmasnn her üç yap için de güç harcamalar ve bir bitin ³ifrelenmesiiçin gerekli enerji ihtiyaçlar incelenmi³tir. D³ Bellekli Yol, ç ve D³ Bellekli Yolyaplar Klasik yapya oranla daha fazla güç tüketmelerine ra§men yüksek i³lemhacminden dolay bir biti ³ifrelemek için daha az enerji harcamas yapmaktadrlar.

76

KAYNAKLAR

[1] Daemen, J. and Rijmen, V. AES Proposal: Rijndael (Version 2).,http://csrc.nist.gov/CryptoToolkit/aes/rijndael/Rijndaelammended.pdf.

[2] of Standards, N.I. and Technology, 2001. FIPS 197: AdvancedEncryption Standard.

[3] Chodowiec, P. and Gaj, K., 2003. Very Compact FPGA Implementationof the AES Algorithm, CHES 2003: Cryptographic Hardware andEmbedded Systems, 319333.

[4] Hodjat, A., Hwang, D.D., Lai, B., Tiri, K. and Verbauwhede, I.,2005. A 3.84 gbits/s AES crypto coprocessor with modes of operationin a 0.18-µm CMOS technology, GLSVSLI '05: Proceedings of the15th ACM Great Lakes symposium on VLSI, 6063.

[5] Pramstaller, N. and Wolkerstorfer, J., 2004. A Universal and EcientAES Co-Processor for Field Programmable Logic Arrays, FPL,565574.

[6] W. Die, M.H., Nov. 1976. New directions in cryptography, IEEETransactions on Information Theory, 22(6), 644654.

[7] G. B. Agnew, R. C. Mullin, I.M.O. and Vanstone, S.A., 1990.An implementation for a fast public-key cryptosystem, Journal ofCryptology, 38(7), 6379.

[8] I. S. Hsu, T. K. Truong, L.J.D. and Reed, I.S., June 1988. Acomparison of VLSI architecture of nite eld multipliers using dual,normal, or standard bases, IEEE Transactions on Computers, 37(6),735739.

[9] Wang, C.L. and Lin, J.L., July 1986. Systolic array implementation ofmultipliers for nite elds GF(2m), IEEE Transactions on Systems,38(7), 796800.

[10] Devadas, S. and Malik, S., 1995. A survey of optimization techniquestargeting low power VLSI circuits, DAC '95: Proceedings of the 32ndACM/IEEE conference on Design automation, 242247.

[11] Turgis, S., Azemard, N. and Auvergne, D., 1995. Explicit evaluationof short circuit power dissipation for CMOS logic structures, ISLPED'95: Proceedings of the 1995 international symposium on Low powerdesign, 129134.

77

[12] Veendrick, H., 1984. Short-circuit dissipation of static CMOS circuitryand its impact on the design of buer circuits, IEEE Journal ofSolid-State Circuits, 19(4), 468473.

[13] De, V. and Borkar, S., 1999. Technology and design challenges forlow power and high performance, ISLPED '99: Proceedings of the1999 international symposium on Low power electronics and design,163168.

[14] Xilinx. Virtex 4 Field Programmable Gate Array data sheets,http://www.xilinx.com/virtex4.

[15] of Standards, N.I. and Technology, 1999. FIPS 46-3: Data EncryptionStandard.

[16] of Standards, N.I. and Technology. http://csrc.nist.gov.

[17] A.P. Chandrakasan, S.S. and Brodersen, R., Apr. 1992. Low-powerCMOS Digital design, IEEE Journal of Solid-State Circuits, 27(4),473484.

[18] Ghosh, A., Devadas, S., Keutzer, K. andWhite, J., 1992. Estimationof average switching activity in combinational and sequential circuits,DAC '92: Proceedings of the 29th ACM/IEEE conference on Designautomation, 253259.

[19] Kaps, J.P., 2006. Cryptography for Ultra-Low Power Devices, Ph.D.thesis, Worcester Polytechnic Institue.

[20] Aziz, A. and Ikram, N. An FPGA-based AES-CCM Crypto CoreFor IEEE 802.11i Architecture, International Journal of NetworkSecurity, 5(2), 224232.

[21] Gaj, K. and Chodowiec, P., 2001. Fast Implementation and FairComparison of the Final Candidates for Advanced EncryptionStandard Using Field Programmable Gate Arrays, CT-RSA 2001:Proceedings of the 2001 Conference on Topics in Cryptology, 8499.

[22] Bertoni, G., Macchetti, M., Negri, L. and Fragneto, P., 2004.Power-ecient ASIC synthesis of cryptographic sboxes, GLSVLSI'04: Proceedings of the 14th ACM Great Lakes symposium on VLSI,277281.

[23] Canright, D., 2005. A very Compact S-BOX for AES, CHES 2005:Cryptographic Hardware and Embedded Systems, 441455.

[24] Macchetti, M. and Bertoni, G., July. 2003. Hardware Implementationof the Rijndael SBOX:A Case Study, ST Journal of System Research,0(0), 8491.

[25] N. Mentens, L. Batina, B.P. and Verbauwhede, I.M., 2005.Systematic Evaluation of Compact Hardware Implemantations forRijndael S-BOX, Topics in Cryptology-CT-RSA, 3376, 323333.

78

[26] Morioko, S. and Satoh, A., 2002. An Optimized S-BOX CircuitArchitecture for Low Power AES Design, CHES 2002: CryptographicHardware and Embedded Systems, 2523, 172186.

[27] A. Satoh, S. Morioko, K.T. and Munetoh, S., 2001. A CompactRijndael Hardware Architecture with S-BOX Optimization,Advances in Cryptology ASIACRYPT, 2248, 239254.

[28] Tillich, S., Feldhofer, M., Popp, T. and G., J., 2008. Area, delay, andpower characteristics of standard-cell implementations of the AESS-Box, J. Signal Process. Syst., 50(2), 251261.

[29] Liu Zhenglin, Zeng Yonghong, Z.X.H.Y.C.Y., Sept. 2007. AHigh-Security and Low-Power AES S-Box Full-Custom Design forWireless Sensor Network, Wireless Communications, Networkingand Mobile Computing, 2007. WiCom 2007., 21(25), 2499 2502.

[30] Panu Hamalainen, Timo Alho, M.H. and Hamalainen, T.D.,2006. Design and Implementation of Low-Area and Low-PowerAES Encryption Hardware Core, DSD '06: Proceedings of the 9thEUROMICRO Conference on Digital System Design, 577583.

[31] MooSeop Kim, J.K. and Choi, Y., 2005. Low Power CircuitArchitecture of AES Crypto Module for Wireless Sensor Network,Proceedings of World Academy of Science, Engineering andTechnology, 8.

[32] T. Katashita, A.M. and Yamaguchi, Y. A Low-Power Design Methodfor FPGA Using Extra Flip-Flops Driven by Phase-Shifted Clock,Denshi Joho Tsushin Gakkai Ronbunshi, J88-D-I.

[33] Rudra, A. ve Dubey, P., 2001. Ecient implementation of rijndaelencryption with composite eld arithmetic, Proceedings of Workshopof CHES-2001, 2162, 175188.

[34] Ward, R.v.M.T. Ecient Hardware Calculation of Inverses in GF(28),University of Otago, Physics Department.

[35] Trichina, E., 2003. Combinational logic design for AES subbytetransformation on masked data, Cryptology ePrint Arschive, Report2003/236.

[36] Oswald, E., M.S.v.P.N., 2003. Secure and ecient masking of AES - amission impossible, SCA-Lab technical report series, IAIK.

[37] Ordu, L., 2006. AES Algoritmasnn FPGA Üzerinde Gerçeklenmesive Yan Kanal Analizi Saldrlarna Kar³ Güçlendirilmesi, stanbulTeknik Üniveritesi.

[38] Yan Zhang, Roivainen, J.M.A., 2006. Clock-Gating in FPGAs: ANovel and Comparative Evaluation, DSD 2006: 9th EUROMICROConference on Digital System Design: Architectures, Methods andTools, 0(0), 584 590.

79

A. XPOWER KULLANIMI

XPOWER Xilinx rmasna ait FPGA'lerin güç ölçümlerini ölçmek amacylakullanlan araçtr. Güç ölçümü yapabilmek için tasarlanan devrenin do§ruçal³t§na kanaat getirildikten sonra, sentez ve yollandrma a³amalarnntamamlanmas gerekir. Sentez ve yollandrma a³amalarnn tamamlanmas iletasarm yapsna ait bilgileri içeren .ncd uzantl tasarm, .pcf uzantl zikselkstlama dosyalar çal³lan klasör içerisinde olu³maktadr. Gerekli dosyalarnolu³masndan sonra devreye rasgele olu³turulmu³ giri³ler uygulanp yerle³tirmeve yollandrma sonras simülasyon ko³turulmaldr. Simülasyonun ko³turulmassrasnda gerekli simülasyon verileri toplanmaldr. Kullanlan simülasyonaracndan ba§msz olarak bu veriler toplanabilir. Toplanan simülasyon verileriXPOWER ölçüm aracna aktarlarak güç ölçümleri yaplr.Örne§in 128-bitlik bir kaydedici blo§una ait güç ölçüm a³amalar a³a§daverilmektedir.

1. lk olarak hafza blo§unun do§ru çal³t§ndan emin olarak yerle³tirme veyollandrma i³lemleri gerçekle³tirilir.

2. Rasgele giri³ler uygulanarak yerle³tirme ve yollandrma sonras simülasyonsonuçlar toplanr. Bu sonuçlar .vcd uzantl dosyaya kaydedilmektedir.Simülasyon verilerini toplamak için ekil A.1 ve ekil A.2 'ye baknz.

3. Simülasyon verilerinin toplanmasnn ardndan XPOWER arac çal³trlr.XPOWER aracn çal³trmak için ekil A.3'e baknz. XPOWER aracn ISEarac içerisinden ça§rld§nda .ncd uzantl tasarm ve .pcf uzantl zikselkstlama dosyalar XPOWER aracna kendili§inden eklenir. Aksi takdirde budosyalar yüklenmelidir. .ncd ve .pcf dosyalar yüklendi§i durumda ekil A.4'degösterilen güç de§erleri FPGA'in statik güç harcamasn göstermektedir. Bude§erler kullanlan FPGA'ye göre de§i³iklik göstermektedir.

4. Toplanan simülasyon verileri XPOWER aracna yüklenir ve güç ölçümlerialnr.(Bkz. ekil A.5 ve ekil A.6 )

80

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

81

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

Sekil A.3: XPOWER Aracının Çalıstırılması.

82

Sekil A.4: FPGA’in Kullandıgı Statik Güç Degerleri .

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

83

Sekil A.6: Güç Harcama Sonuçları .

84

B. VHDL DOSYALARI

Teze ek olarak verilmi³ CD-ROM içerisinde, "DesignFiles" klasörünün altnda;Klasik, D³ Bellekli, ç ve D³ Bellekli AES yaplar için VHDL dosyalarbulunmaktadr.

85

ÖZGEÇMIS

Ahmed Yasir DOAN 1983 ylnda Bingöl'de dünyaya geldi. lk ve ortaö§renimini Bingöl'de, lise ö§renimini ise Ankara Fen Lisesi'nde tamamland. 2001ylnda kazand§ stanbul Teknik Üniversitesi Elektronik Mühendisli§ini 2006ylnda bitirdi. Ayn yl stanbul Teknik Üniversitesi Elektronik Mühendisli§indeyüksek lisans ö§renimine ba³lad. 2007 ylnda ara³trmac olarak çal³mayaba³lad§ Tübitak Marmara Ara³trma Merkezi Bili³im Teknolojileri Enstitüsündehalen meslek ya³amna devam etmektedir.

86