Tolga Ayav, K.Atilla Toker İzmir Yüksek Teknoloji Ensitütüsü 03-04-2002 CPU-TURKEY 2008 CryptOdin Mikroişlemcisi Tolga Ayav, K.Atilla Toker İzmir Yüksek Teknoloji Ensitütüsü 08-2008 Ver:01 29/12/2018 K.Atilla TOKER
CPU-TURKEY CryptOdin – Genel Tanıtım CryptOdin, özellikle gömülü sistem uygulamaları için tasarlanmış ve şifrelenmiş (kriptolu) program kodlarını çalıştırabilen 16 bitlik bir mikroişlemcidir. CryptOdin, detaylarını ayrı listede verdiğimiz komutları yürütüp, anahtar “dipswitch” ya da “crypt on/off” komutu ile kriptolu/kriptosuz seçilebilir, 16 bit bir ”pipeline” işlemci olarak tasarlanmıştır. Program tasarımı Vhdl ile yazılmış olup derlemesinde Xilinx/ISE programı, Simulasyonunda ise Mentor/ModelSim programı kullanılmıştır. 29/12/2018
CPU-TURKEY CryptOdin – Genel Tanıtım Gömülü sistemlerde son derece önemli olabilecek konulardan biri de algoritmanın gizlenmesidir. Örneğin askeri amaçlı bir donanımın içerisinde çalışmakta olan programın gizlenmesi büyük önem taşıyabilir. CryptOdin, harici hafızada şifrelenmiş olarak saklanan program kodunu çalıştırarak en üst seviyede güvenlik sağlayacaktır. CryptOdin işlemcisinin ters mühendislik yöntemleriyle analiz edilmesini engelleyecek önlemlerin alınmasıyla (entegrenin üretiminde) elde edilecek güvenlik, kullanılan şifreleme standartının gücüne bağlı olacaktır. 29/12/2018
CPU-TURKEY CryptOdin – Detaylı Tanıtım CryptOdin’in temel özellikleri: 16 bit adres ve 16 bit veri yolu Harvard Mimarisi 32 adet kayıtçı 38 adet komut 16 bit ve 32 bit olmak üzere iki farklı uzunlukta komut Pipelining Max. 68 MHz saat frekansı Kriptolu program çalıştırabilme 29/12/2018
CPU-TURKEY CryptOdin – Komut listesi CryptOdin 38 adet işlem koduna sahiptir: Nop Add Ri,Rj; Addi Ri, #im Sub Subi Mul Ri,Rj Muli Mulu Inc Ri Dec Cmp Andr Andi Orr Ori Notr Ri ; Rxi Xorr Xori Sllr Srlr Slar Ri Srar Lw Rxi,address Sw Syscal address Hlt Beq offset Bne Ba Bf offset+extension BL Movi Ri, #im Movdi @Ri,Rj Movsi Ri,@Rj Mov Ri,Rj Movii @Ri,@Rj Clr @Ri Ret 29/12/2018
CPU-TURKEY CryptOdin – İç Yapısı İç yapısı mikroişlemci şematiğinde daha detaylı görülebilir (Sonraki slayt). CryptOdin’de 32 adet 16 bit register R0-R31 olarak “regfile.vhd” içinde tanımlanmıştır. Bunların dışında tasarımda; “Control Unit”, “EMAD-External Memory Access Unit with Decrypter”, “Instruction Register”, “Program Counter”, “ALU”, “Stack”, “datapath”, “Flags” ve “multiplexer” blokları mevcuttur. RAM/ROM ve “Program Memory” blokları dışarıda olacak şekilde tasarlanmştır. ALU’da çarpma operasyonları, “structural” olarak bir çarpım devresiyle değil “behavioral” olarak VHDL’de A*B ifadesiyle gerçeklenmiştir. Bu, FPGA’de hız avantajı sağlamaktadır. 29/12/2018
CPU-TURKEY CryptOdin – Şematik 29/12/2018
CPU-TURKEY CryptOdin – VHDL Sentezleyici Sonuçları Hedef FPGA modeli Spartan3E - xc3s500e olarak seçilmiştir. Buna göre FPGA kullanımıyla ilgili sentezleyici raporu: Number of Slices: 1020 out of 4656 21% Number of Slice Flip Flops: 815 out of 9312 8% Number of 4 input LUTs: 891 out of 9312 20% Number of IOs: 70 Number of bonded IOBs: 70 out of 92 76% IOB Flip Flops: 1 Number of MULT18X18SIOs: 1 out of 20 5% Number of GCLKs: 1 out of 24 4% Zamanlamayla ilgili rapor ise: Min. clock period: 14.511ns (Max. frequency: 68.912MHz) 29/12/2018
CPU-TURKEY CryptOdin – Simulasyon Aşağıdaki örnek program (ROM_Ext.vhd içerisinde yer almaktadır) ile simüle edilen CryptOdin’in Modelsim çıktıları takip eden slaytlarda görülebilir: DEC R1 SW R1, 0003 MOVI R0, 0005 NOP INC R1 BEQ +02 INC R31 HLT Bu programın toplam çalışma süresi slaytlardan da görüleceği gibi 34 saat periyodudur (34 * 14.511 ns). 29/12/2018
CPU-TURKEY CryptOdin – Modelsim Çıktısı - 1 29/12/2018
CPU-TURKEY CryptOdin – Modelsim Çıktısı - 2 29/12/2018
CPU-TURKEY CryptOdin - Sonuçlar Cryptodin, yarışmanın şartnamesinde verilen tüm komutları çalıştırabilmektedir. Pipelining ile bir komut işleme süresi iki katına çıkartılmıştır. Minimum saat periyodu: 14.511 ns olarak sentezleyici tarafından rapor edilmiştir. CPU şematiğinde gösterilen ve şifre çözme görevini üstlenecek olan EMAD ünitesi henüz gerçeklenmemiştir. EMAD.vhd şu anda herhangi bir şifre çözme gerçekleştirmeden giriş ve çıkışlarını içeride doğrudan birbirine bağlayan boş bir ünitedir. EMAD ünitesinde Blowfish algoritmasının gerçeklenmesi düşünülmüş olup üzerinde çalışmaya devam edilmektedir. 29/12/2018