Instruction set extension of RISC-V core with plantard modular reduction for number theoretic transform used in post-quantum cryptography
RISC-V çekirdeğinin talimat setinin post-kuantum kriptografide kullanılan sayısal teorik dönüşüm için plantard modüler indirgeme metodu ile genişletilmesi
- Tez No: 864131
- Danışmanlar: PROF. DR. SIDDIKA BERNA ÖRS YALÇIN
- Tez Türü: Yüksek Lisans
- Konular: Elektrik ve Elektronik Mühendisliği, Electrical and Electronics Engineering
- Anahtar Kelimeler: Belirtilmemiş.
- Yıl: 2024
- Dil: İngilizce
- Üniversite: İstanbul Teknik Üniversitesi
- Enstitü: Fen Bilimleri Enstitüsü
- Ana Bilim Dalı: Elektronik ve Haberleşme Mühendisliği Ana Bilim Dalı
- Bilim Dalı: Elektronik Mühendisliği Bilim Dalı
- Sayfa Sayısı: 83
Özet
Kuantum bilgisayarların yükselişi, güvenlik endişelerini ön plana çıkardı. Geleneksel RSA gibi kriptografi algoritmaları, kuantum saldırılarına karşı giderek daha savunmasız hale gelmektedir. Bu nedenle, kuantum bilgisayar tehdidine dayanabilecek güçlü kriptografi algoritmalarına olan talep artmaktadır. Bu talebi karşılamak amacıyla Ulusal Standartlar ve Teknoloji Enstitüsü (NIST), sağlam post-kuantum kriptografi algoritmalarını standardize etmek için bir proje başlattı. Bu projenin odak noktalarından biri CRYSTALS-Kyber ve CRYSTALS-Dilithium algoritmalarıdır. Kriptografi ve post-kuantum kriptografi algoritmaları genellikle karmaşık matematiksel işlemleri içerir ve bu nedenle yavaş olabilirler. Dijitalleşmenin artmasıyla birlikte, siber güvenlik daha da kritik hale gelmiştir. Bu sebeple, hatta Reduced Instruction Set Computer (RISC) mimarisi olan küçük cihazların bile karmaşık kriptografi algoritmalarını kullanması gerekebilir. Bu projenin amacı, RISC-V talimat seti mimarisini genişleterek kriptografi algoritmalarının performansını artırmaktır ve bu kriptografi şemalarının temelini incelemektedir. Post-kuantum kriptografi, kuantum bilgisayarların güçlenmesiyle geleneksel kriptografinin güvenliğini sağlama yeteneğini yitirmesiyle ortaya çıkan bir alanı temsil eder. Kuantum bilgisayarlar, bazı geleneksel algoritmaları çözmek için inanılmaz derecede hızlı bir potansiyele sahiptir, bu da birçok şifreleme yönteminin savunmasız hale gelmesine yol açar. Post-kuantum kriptografide, bu tür saldırılara dayanabilecek yeni algoritmaların geliştirilmesi amaçlanır. NIST gibi kuruluşlar, post-kuantum kriptografi algoritmalarını standardize etmek için çeşitli projeler yürütmektedir. Bu çabalar, CRYSTALS-Kyber, CRYSTALS-Dilithium gibi çeşitli algoritmaların ortaya çıkmasına yol açmıştır. Bu algoritmalar, kuantum bilgisayar saldırılarına karşı dayanıklı olacak şekilde tasarlanmış karmaşık matematiksel işlemleri içerir. Post-kuantum kriptografi, dijital dünyanın güvenliğini gelecek nesillere sağlam bir şekilde aktarmayı amaçlar. Bu, iletişim, veri depolama ve diğer kritik bilgi aktarımlarında kullanılan algoritmaların dayanıklılığını güvence altına alır. Bu yeni algoritmaların geliştirilmesi ve benimsenmesi, siber güvenlik açısından kritik bir öneme sahiptir, çünkü kuantum bilgisayarlar gibi gelişmiş teknolojilerin güvenlik tehditlerini ele almak için hazırlıklı olmak önemlidir. Post-kuantum kriptografi, bu tehditlere karşı dirençli bir dijital dünya inşa etmenin temelini oluşturur, böylece bilgi ve iletişim güvenli bir şekilde korunabilir. RISC-V, temel bir komut seti sunar ve bu set, düşük seviyeli işlemleri gerçekleştirmek için gerekli talimatları içerir. Farklı uygulamalar için özel komutların eklenmesine izin veren modüler bir yapıya sahiptir. Bu, RISC-V'nin geniş bir uygulama yelpazesine hitap etmesini sağlar. Açık kaynaklı olması, RISC-V'in geliştirilmesi ve benimsenmesi için önemli bir faktördür. Ücretsiz lisanslama ve geniş bir topluluk tarafından desteklenmesi, yeni tasarımların ve ürünlerin geliştirilmesini teşvik eder. Ibex gibi çeşitli RISC-V çekirdekleri arasında, modüler ve anlaşılır yapısı nedeniyle tercih edilenler arasındadır. Ibex, RISC-V'nin standart çarpma uzantısını uygular. Ibex'in küçük bir dezavantajı, bir veri yolu arayüzü veya herhangi bir çevresel birim ile gelmemesidir. Çevresel birimleri kolayca eklemek ve kullanmak için, Wishbone arayüzüne sahip bir Ibex projesi kullanılmıştır. Bu proje, Wishbone veri yolu arayüzü modülünü içerir ve çekirdeğe bağlanabilir herhangi bir Wishbone uyumlu çevresel birim modülünü kullanmayı sağlar. Bir örnek proje modülü olarak FPGA için bir temel olarak kullanılmıştır ve bu proje hata ayıklama amaçları için birkaç çevresel birimi içerir. GNU Derleyici Koleksiyonu (GCC), özgür yazılım hareketinin bir parçası olarak geliştirilen ve yaygın olarak kullanılan bir derleyici ailesidir. GCC, C, C++ ve diğer birçok programlama dili için derleyici araçlarını içerir. Çok çeşitli işletim sistemlerinde ve mimarilerde çalışabilir. GCC, performans, optimizasyon ve taşınabilirlik açısından önemli avantajlar sunar. Genişletilebilir ve modüler yapısı sayesinde, farklı mimariler ve platformlar için optimize edilmiş kod üretebilir. Ayrıca, açık kaynaklı olması, kullanıcıların ihtiyaçlarına göre özelleştirmeler yapmalarını sağlar. GCC, özgür yazılım topluluğu tarafından sürekli olarak geliştirilmekte ve güncellenmektedir. GNU Projesi'nin bir parçası olarak, özgür yazılım felsefesini teşvik eder ve kullanıcıların özgürlüklerini korur. GCC, geniş bir kullanıcı tabanına sahiptir ve birçok önemli yazılım projesinde temel derleyici aracı olarak kullanılır. Projenin mevcut aşamasında, işletim sistemi yüklenemiyorsa, her yazılım değişikliğinden sonra proje tekrar sentezlenmeli ve uygulanmalıdır. Bu gecikmeyi önlemek için bir önyükleme programı yazılmıştır. Bu önyükleme programı, uygulama görüntü dosyasını UART üzerinden alır, onu Rastgele Erişimli Bellek (RAM)'e kopyalar ve programı RAM'den çalıştırır. Bu yapılandırma, geliştirme hızını önemli ölçüde artırmıştır. Geliştirme ortamı kurulduktan sonra, CRYSTALS-Kyber kütüphanesi resmi web sitesinden indirilir ve cihazda test edilir. Statik sayaçlar ve GNU Debugger (GDB) kullanılarak, hangi fonksiyonların en çok kullanıldığını analiz etmek için uygulama profillenir. Bu analizlerin sonucunda, modüler çarpma için özel bir talimat eklenir. Özel bir uzantı eklemek için, Aritmetik Mantık Birimi (ALU) ve talimat çözücü düzenlenmelidir. Ayrıca, derleyici kaynak kodu düzenlenmeli ve yeniden derlenmelidir, böylece derleyiciye özel talimatlar hakkında bilgi verilir. Daha sonra, özel talimatlar C kodu içindeki satır içi assembly metodu ile kullanılır. Bu çalışmada, performansta en yüksek verimi sağlamak ve en etkili özel komutları seçmek amacıyla bir profilleme metodolojisi geliştirilmiştir. Post-kuantum kriptografi algoritmalarının 32-bit RISCV işlemcileri için yazılım uygulamaları incelenmiş ve profillenmiştir. Farklı kod bloklarının başında ve sonunda gerçekleştirilen komut sayısı ile saat döngüsü sayısı arasındaki farklar analiz edilerek profilleme yapılmıştır. Algoritmanın en büyük gecikmeye ve en sık tekrar eden işlemlere neden olan kısımları belirlenmiş ve bu işlemler için yeni komutlar tanımlanmıştır. Bu sayede, post-kuantum kriptografi algoritmalarının 32-bit RISCV işlemciler üzerindeki performansını artırmak için özelleştirilmiş bir yaklaşım geliştirilmiştir. Yapılan profillemeye göre Sayısal Teorik Dönüşüm (NTT)'nin çok zaman harcadığı ve içerisinde ise indirgeme operasyonun iyileştirmeye açık olduğu görülmüştür. Bahsedilen değişiklikler hem GCC de hem de RISC-V'ın uygulaması üzerinde yapıldıktan sonra Ibex RISC-V çekirdeğine eklenen plantard modüler indirgeme talimatı için derleyici düzenlendiğinde ve C kodu geliştirme aşamasına geçildiğinde dahiln olan performans sayaçları kullanılarak modüler çarpma fonksiyonu 73 saatlik döngüden 37 saatlik döngüye düştüğü görülmüştür.
Özet (Çeviri)
The advent of quantum computers has underscored the importance of security. Traditional cryptography algorithms, such as RSA, are becoming increasingly vulnerable to quantum attacks. As a result, there is a growing need for cryptography algorithms that can withstand the threat of quantum computers. In response to this need, the National Institute of Standards and Technology (NIST) has initiated a project to standardize robust post-quantum cryptography algorithms. Among the selected algorithms, this study focuses on the CRYSTALS-Kyber and CRYSTALS-Dilithium algorithm. Encryption algorithms and post-quantum cryptography algorithms are often slow due to the complex mathematical operations they involve. With the rise of digitalization, cybersecurity has become even more critical. Therefore, even small devices with Reduced Instruction Set Computer (RISC) architectures may need to use complex cryptography algorithms. This project aims to extend the RISC-V instruction set architecture to enhance the performance of cryptography algorithms, focusing on the foundations of these cryptography schemes. RISC-V is an open-source instruction set architecture that allows for easy addition of custom extensions, making it an ideal architecture for this project. Among various RISC-V cores, Ibex was chosen for its modular and understandable structure. Ibex implements the standard multiplication extension of RISC-V. One minor drawback of Ibex is that it does not come with a bus interface or any peripherals. To easily add and use peripherals, a modified project of Ibex with a Wishbone interface is used. This project includes a Wishbone bus interface module, allowing any Wishbone compatible peripheral module to be easily connected to the core. An example project top module for Field-Programmable Gate Array (FPGA) in the repository is used as a base to prepare a new one for the Nexys 4 DDR FPGA board. For debugging purposes and to familiarize with editing the project, several peripherals are added. These peripherals include General Purpose Input/Output (GPIO), timer, and Universal Asynchronous Receiver/Transmitter (UART) modules. GPIO and timer modules are written from scratch, while the UART module is sourced from an open-source repository. A C library is written for each peripheral to facilitate their use on the software side. At this stage, if you cannot install any operating system the project needs to be synthesized and implemented again after each software modification. To avoid this delay, a bootloader program is written. This bootloader receives the application image file via UART, copies it to the Random Access Memory (RAM), and runs the program from RAM. This configuration significantly speeds up development. Once the development environment is set up, the CRYSTALS-Kyber library is downloaded from the official website and tested on the device. Using static counters and the GNU Debugger (GDB), the application is profiled to analyze which functions are used the most. Based on these analyses, a custom instruction for modular multiplication is added. To add a custom extension, the Arithmetic Logic Unit (ALU) and the instruction decoder must be edited. Additionally, the compiler source code must be edited and rebuilt to inform the compiler about the custom instructions. Later, the custom instructions are used with inline assembly code inside the C code. The addition of the plantard modular reduction instruction to the Ibex RISC-V core reduced the modular multiplication function from 73 cycles to 37 cycles.
Benzer Tezler
- An FPGA implementation of a RISC-V based SOC system with custom instruction set for image processing applications
Görüntü işleme uygulamaları için özel komut setine sahip RISC-V tabanlı bir SOC sısteminin FPGA gerçeklemesi
ERFAN GHOLIZADEHAZARI
Yüksek Lisans
İngilizce
2021
Elektrik ve Elektronik Mühendisliğiİstanbul Teknik ÜniversitesiElektronik ve Haberleşme Mühendisliği Ana Bilim Dalı
PROF. DR. SIDDIKA BERNA ÖRS YALÇIN
- Supporting floating point instructions in NEORV32 RİSC-V soft core processor
NEORV32 RİSC-V işlemcisinde kayan nokta komutların desteklenmesi
IŞIL HÖCEK
Yüksek Lisans
İngilizce
2023
Elektrik ve Elektronik MühendisliğiEskişehir Teknik ÜniversitesiElektrik-Elektronik Mühendisliği Ana Bilim Dalı
PROF. DR. ATAKAN DOĞAN
- Instruction extension of RV32i and GCC back end for ascon lightweight cryptography algortihm
RISC-V komut seti mimarsi ve GNU derleyici koleksiyonunun ASCON şifreleme algoritması için genişletilmesi
ÖZLEM ALTINAY
Yüksek Lisans
İngilizce
2021
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik ÜniversitesiElektronik ve Haberleşme Mühendisliği Ana Bilim Dalı
PROF. DR. SIDDIKA BERNA ÖRS YALÇIN
- Low power general purpose processor design and instructions set extension for AES
Düşük güç tüketimli genel amaçlı işlemci tasarımı ve AES için komut kümesi genişletilmesi
MUHAMMED ŞAİROĞLU
Yüksek Lisans
İngilizce
2020
Elektrik ve Elektronik Mühendisliğiİstanbul Teknik ÜniversitesiElektronik ve Haberleşme Mühendisliği Ana Bilim Dalı
DOÇ. DR. SIDDIKA BERNA ÖRS YALÇIN
- Nonlinear systematic fault detection codes for cryptographic algorithms and their implementations
Kriptografik algoritmalar için doğrusal olmayan sistematik hata korumalı kodlar ve uygulamaları
KAZIM YUMBUL
Doktora
İngilizce
2013
Elektrik ve Elektronik MühendisliğiGebze Yüksek Teknoloji EnstitüsüElektronik Mühendisliği Ana Bilim Dalı
YRD. DOÇ. DR. SERDAR SÜER ERDEM
DOÇ. DR. ERKAY SAVAŞ