Development of side channel analysis environment using simulation data of system-on-chip processors
- Global styles
- Apa
- Bibtex
- Chicago Fullnote
- Help
Abstract
Günümüzde elektronik, bilgisayar ve haberleşme teknolojilerinin hızla gelişmesiyle insanların yaşamına girmiş olan `dijitalleşme` kavramı, verinin işlenmesi ve taşınması açısından birçok avantaj getirmiştir. Dijital ortamda veri çok hızlı ve kolay bir şekilde taşınabilmektedir. Fakat bu kolaylık, bilginin elektronik olarak taşınması ve saklanması sırasında verinin güvenliği ile ilgili endişe de doğurmuştur. Bu sorunun çözümü için, eski tarihlerden beri çeşitli biçimlerde varlığını sürdüren kriptoloji bilimi öne çıkmaktadır. Varlığının ilk dönemlerde kriptoloji tabiri, şifre üretme işini çağrıştırırken günümüzde kriptografi ve kriptanaliz alt disiplinleri ile veri bütünlüğünün korunması problemine yoğunlaşan bir bilim dalı durumundadır. Kriptoloji, verinin bir uçtan diğerine taşınması sırasında güvenliği sağlamak için çeşitli şifreleme, saklama ve analiz yöntemleri ve algoritmaları önerir.Geliştirilen şifreleme algoritmaları ülkeler tarafından standartlaştırılmaktadır. Amerika'nın Ulusal Standartlar ve Teknoloji Enstitüsü'ne (NIST) ait standartlardan olan Gelişmiş Şifreleme Standartı (AES) genel ismi altındaki Rjindael algoritması bunun güncel bir örneğidir. Bundan önce Veri Şifreleme Standartı (Data Encryption Standart - DES) algoritması NIST tarafından 1977 yılında standart olarak tanınmıştı. DES algoritmasının kırılmasının ardından yerini bu algoritmanın iteratif çalıştırılmasını içeren Üçlü Veri İşleme Standartı (Triple Data Encryption Standart - TDES) almıştır. Zaman içinde TDES'in de güvenilirliğini yitirmesiyle NIST yeni bir şifreleme standartı arayacağını duyurmuştur. Bu sebeple 1997 yılında AES ismi altında kullanılmak üzere seçilmek içinalogritma arandığı çağrısında bulunmuştur. Bunun sonucunda kriptoloji ile uğraşan kişilerce toplamda 15 algoritma gönderildi ve bunlardan beş tanesi 1999 yılında finalist olarak belirlendi. Bu algoritmaların performans, hız, uygulama kolaylığı, güvenlik, yazılım ve donanıma uyarlanabilme kolaylığı gibi etkenler açısından incelenmesi sonucunda Rjindael algoritması standart olarak seçilmiştir. Bu algoritma yukarıda belirtilen parametreler açısından da TDES'i geride bırakmaktaydı. Böylece AES, kendisinden önce kullanılmakta olan TDES standartının yerine geçmiştir ve halen kullanılmaktadır.Son yıllarda gömülü sistem gerçeklemelerinde pöpülerliği oldukça artan bir diğer kavram da gerçeklenebilir işlemcilerdir. Bu işlemciler yine açık olarak sunulan daraltılmış komut kümelerinin gerçeklemelerinden ortaya çıkmaktadır. Öne çıkan en büyük özellikleri, açık kaynak kodlu ve değiştirilebilir olmalarından kaynaklanan esneklikleridir. Mikroişlemci ve mikrodenetleyici gibi bileşenler çok amaçlı kullanıma göre tasarlanmaktadır, fakat bu tasarımlar her uygulama alanı için alan veya performans bakımından en ideal sonucu vermeyebilir. Üretici firmalara özel kullanım için tasarımlar ürettirmek de maliyet açısından verimsiz olduğundan uygun bir yaklaşım olmamaktadır. Bu tür sorunları aşmak adına öncelikle yazılım dünyasında popülerleşmiş bir kavram olan açık kaynak kodlu tasarım düşüncesi de donanım dünyasına uyarlanmaya başlanmıştır. Bununla birlikte, içeriği üretici firmalar tarafından gizli tutulan kapalı kutu tasarımlar yerine kaynak kodları açık olan gerçeklenebilir işlemciler kavramı öne çıkmıştır. Bu durum kullanıcılara kendi uygulama alanlarına göre tasarımın gereken bölümlerini kullanma, değiştirme, hatta yapacakları hata tespitleri veya eklentiler ile de geliştirme sürecine katkı sağlayabilme imkanı vermektedir.Bu tez kapsamında, yukarıda anlatılan bu iki güncel kavramı birden içeren çalışmalar yapılması hedeflenmiştir. Seçilen bir gerçeklenebilir işlemcili sistem üzerinde AES algoritmasının gerçeklenip farksal güç analizi kullanılarak yan kanal saldırılarına karşı direncinin sınanması amaçlanmıştır. Farksal güç analizi için gerekenler arasında bir sistemin gerçeklenmiş hali üzerinde çok sayıda gerçek zamanlı güç ölçümlerinin alınması vardır. Bu süreç ise oldukça vakit almakta olup ayrıca da tasarımın bir gerçeklemesinin yapılmış olmasını gerektirmektedir. Bu çalışmada bu işlemin henüz tasarım benzetim aşamasındayken dahi fonksiyonel benzetim kullanılarak ve anlık işaret değişimi çizgesi çıkarılarak yapılabileceği gösterilmiştir. Bu çalışma hem gerçek güç ölçümünde harcanan zaman, hem de tasarımın gerçeklemesinden gelecek olan maliyet kaybının da önüne geçerek daha verimli bir biçimde farksal güç analizi girdileri üretilerek bir şifreleme algoritmasının kırılabilme durumunu gösterir niteliktedir. Bununla birlikte gerçeklenebilir işlemcili sistem test birimi olarak kullanılmış ve bu alanda bir çalışma tecrübesi elde edilmiş; ayrıca ileride bu konu üzerine yapılacak çalışmalar için bir yol açılmıştır. Çalışmalar sürecinde ilk olarak bu gerçeklenebilir işlemci gerçeklemelerinden birini içeren açık kaynak kodlu bir mikrodenetleyici sistemi olan PULPino incelenmiştir. Bu sistem, ETH Zürich gömülü sistem ekibi tarafından geliştirilmiş paralel düşük güç tükteten platformlar projesi olan PULP girişiminin bir üyesidir. Sistemin diğer aile üyelerinden ayrılan özelliği küçük ve kompakt olmasıdır, bu sebeple de eğitsel çalışmalar için çok uygundur. Çalışmanın ilk bölümünde bu tasarım detaylıca tanıtılmıştır. Ayrıca tasarım ile birlikte sunulan otomatikleştirilmiş çalışma ortamının kullanımı da anlatılmıştır. Bu ortamın içinde tasarımın simulasyonun yapılması, doğrudan FPGA içine yüklenerek çalıştırılması gibi süreçler bulunmaktadır. Çalışma ortamının bazı belirli araç sürümleri ve işletim sistemini gerektirmesi nedeniyle, gerçeklenebilir işlemcilerle çalışmaya yeni başlayacak, özellikle yeterli donanım ve yazılım alt yapısı olmayan kişilerce kullanımı zor ve alışması zaman alan bir süreç olabilmektedir. Bu nedenle bu çalışma ortamının kurulması, çalıştırılması, yeni otomatikleştirilmiş özellikler eklenmesi gibi konular da ilk bölümde detaylıca ele alınmıştır. Bununla birlikte, çalışma ortamının kurulumunda ve kullanımında karşılaşabilecek sorunlar ve gerekebilecek araçlar da belirtilmiş ve bunlarla karşılaşılması durumunda nasıl bir çözüm uygulanabileceği de anlatılmıştır. Böylece bu bölümün çalışmalarını PULP ailesi ile yapacak kişiler için bir kılavuz görevi görmesi hedeflenmiştir.Farksal güç analizi için girdi üretmek adına AES'nin PULPino'da çalıştırılması için öncelikle gerçek dünyada güç ölçümü yapmaya yakınlık olması açısından PULPino tasarımının bir FPGA kartında gerçeklenmiş simülasyon modelinin kullanılması düşünülmüştür. Bunun için PULPnio çalışma ortamındaki RTL kodları ile Xilinx Vivado aracında Artix-7 kartı için bu model üretilmiştir. Bu model için, PULPino çekirdeğini tek başına kullanarak, bazı test programlarının önyükleme hafızası içine atılan uygulama makine kodu ile çalıştırılması denenmiştir. Bu çalışma şekli, PULPino işlemcisine eklenen bazı komut uzatmalarındaki bir tasarım hatasından dolayı başarılı olamadığı görülmüştür. Bahsi geçen hatanın başka çalışmalarda da raporlandığı yapılan incelemelerde görülmüştür. Bunun üzerine bu model, çalışma ortamı içindeki benzetim test modelinde kullanılmış olan ModelSim aracına aktarılmıştır. Böylece bu test ortamı kullanılarak gerçekleme sonrası benzetimler birkaç farklı test kodu için yapılmıştır.Sonraki adımda, gerçekleme sonrası benzetimlerden işaret değişim aktivitesi elde ederek güç tahmini yapma yöntemleri incelenmiştir. Bunun için kullanılabilecek SAIF ve VCD uzantılı iki döküm dosyası türü bulunmaktadır. SAIF dosyaları tüm benzetim için toplamsal işaret değişimi bilgisini vermektedir. Bu dosyaların boyutları küçük olmakta fakat anlık işaret değişimi hakkında bilgi sunmamaktadır. Ek olarak bu dosyalarla Vivado aracında nasıl güç tüketimi tahmini yapılacağı gösterilmiş ve farklı test kodları için ortalama güç tüketimi tahminleri alınmıştır. Ardından, işaret değişimlerini anlık olarak tutan VCD dosyaları benzetim sırasında üretilmiştir. Gerçekleme sonrası benzetim modeli, verilen tasarımın FPGA kartına ait temel öğeleri içerecek şekilde modellenmiş halini içermektedir. Genel durumda bu temel birimlerden yüzlercesi tasarımdaki bir bloğu ifade etmektedir. Bu sebeple, tasarımdaki içsel işaretlerin ve giriş çıkışların sayısı katlanmaktadır. Bu durumun VCD dosyalarında çok sayıda işaret tutulduğundan dosya boyutlarında aşırı büyümeye sebep olduğu görülmüştür. Bu sebeple son olarak, gerçekleme sonrası benzetim yerine işlevsel model simulasyonu üzerinden işaret değişimi alma yoluna gidilmiştir. Buradaki beklenti, güç tüketimi çizgesinin yine de sistem üzerinde yapılacak bir işlemin önemli noktalarını gösterecek şekilde oluşacağı olmuştur. Denenmiş olan ücretsiz güç tüketimi tahmini araçlarından hiçbiri anlık güç tüketimi bilgisi sunmadığından, bu işi yapacak bir kod MATLAB ortamında yazılmıştır. Yazılan kod, kendisine girdi olarak verilen işaret dökümü dosyasını işlemekte, daha sonra toplam işaret değişimlerini zamana bağlı olarak çizmekte ve bunlara ait sayısal değerleri tutmaktadır. Bu güç tüketimi tahmini çizgesi ile anlık güç tüketimi kestirme yöntemi çeşitli test uygulamaları ve AES ile denenmiş ve gerçekten de, uygulamalardan görülmesi beklendiği şekilde bir çizge oluştuğu gözlemlenmiştir. Ardından AES için çok sayıda farklı giriş mesajı verilerek yapılan benzetimler sonucunda elde edilen çizgeler farksal güç analizinde kullanılmıştır. Çizge üretimi, çözümlenmesi ve farksal güç analizi için gerekli tüm kodlar yazılmıştır. Ardından, üretilen girdiler ve tahmin edilen model kullanılarak korelasyon analizi yardımıyla AES anahtarı elde edilmeye çalışılmıştır. Korelasyon analizi sonucunda elde edilen korelasyon değerlerine göre anahtar bölümünün direkt olarak elde edilmesi veya anahtar bölümü tahmini kümesinin daraltılması amaçlanmıştır. Bu iki durumun görülmesi algoritmanın kırıldığını da gösteriyor olacaktır. Bunun için yapılan ölçümler ve sonuçlar sunularak, önerilen yöntemin geçerliliği gösterilmiştir. In the current era, with the drastic development in electronics, computer and communication technologies; the concept of digitalization became a part of daily life. This concept brought quite a lot improvements on data transferring and data communication, in terms of easiness and speed. This also brought forth the concern of data safety during the process. Cryptology, which is defined as the discipline of data integrity nowadays, steps in to cope with this problem. In this manner, cryptology offers ways to encrypt and protect the transferred and stored data. Developed encryption algorithms are desired to be standartized worldwide. For example, a standart belonging The National Institute of Technology and Standarts of United States of America (NIST), the Advanced Encryption Standart (AES) is a good living example of this, employing an algorithm originally named Rjindael. AES replaced their precesors, Data Encryption Standart and Triple Data Encryption Standart in 1999, offering better security and performance, and it is still in use.Softcore processors are yet another topic that has a large popularity in embedded system applications in the latest years. Their aspect that stands out is their flexibility, coming mostly from being open source and editable designs. Black box microprocessor based products may not perform ideally for all application areas, and creating a custom design just for a specific application may not be cost effective. Hence, open source mentality is adapted to the hardware section to cope with the flexibility issues. Designers release their product openly and allow users to examine and edit them. This lets users to use whatever sections of design is needed or expand the design according to their application areas. Users can also contribute to the process by reporting bugs or offering valid extensions.In the scope of this thesis, the two aforementioned concepts are planned to be used together. A softcore processor system is chosen and data for Differantial Power Analysis (DPA) on AES is planned to be taken using this model. The claim is to show that real time power consumption measurements are not required necessarily, simulation level switching information can also be used instead. Verifying this would allow to test an algorithm against side channel attacks during simulation stage, without needing a realization. This would also remove the time consuming real time measurement stage.In this manner, this work showed that the claim is valid and it is possible to obtain acceptable results for DPA during simulation stage. Along with this, a softcore processor system was used to generate inputs; to obtain a working experience with open source systems and to be a further referemce for our research. During the course of work, open source softcore processor system named PULPino was used . First part of the work explains this design in detail, and shows how to use it's working environment, to be a reference for further works.It is firstly thought to make post-implementation simuations for PULPino to get more close to real test results for DPA. Implementation of PULPino is done for Artix-7 device in Xilinx Vivado. The resulting post-implementation model is used in ModelSim tool, along with PULPino testbench and simulations are performed for various benchmarks. In the next step, obtaining average dynamic power consumption and momentary switching profile generation is discussed. Some average dynamic power consumption estimations are done as an extra, for various bechmarks. Then, momentary switching activities are recorded for behavioral and post implementation simulations of different benchmarks. Post-implementation outputs being unefficiently large led to behavioral model activity dumps to be used. The expectation was to see that behavioral switching activity would be stil sufficient to explict important areas of execution.Since none of the freely available tools that is tried offered a momentary power consumption graphic output, MATLAB codes to performs this task are written from scratch. The power consumption profile technique is tried on several benchmarks and AES encryption and it is observed that they provide the critical section information on the profiles as expected. Then, using a large number of different plain text messages AES application is simulated and outputs are used for DPA and correlation analysis. Results of correlation analysis allows to find the exact value of the key section that is used, or provides a shrinked estimation groups for the key. Both of these means that the algorithm can be cracked, and proves the offered technique is valid.
Collections