RSA algoritma gerçeklemeleri için güç tüketimi saldırı yöntemleri
Power consumption attack methods for RSA algorithm implementations
Yazar: EBRU AKALP KUZU
Danışman: PROF. DR. ALİ TANGEL
Kocaeli Üniversitesi / Fen Bilimleri Enstitüsü / Elektronik ve Haberleşme Mühendisliği Ana Bilim Dalı
Derece: Doktora, 2021
Konu: Elektrik ve Elektronik Mühendisliği = Electrical and Electronics Engineering

Özet:
Yan Kanal Analizi (YKA), bir şifreleme gerçeklemesinin doğası gereği sahip olduğu, işlem süresi, güç tüketimi, elektromanyetik yayınımı, ısı ve ses yayınımı gibi istemsiz giriş çıkışlarının kullanılarak anahtar değeri hakkında bilgi edinilmesini sağlayan bir analiz yöntemidir. Güç analizi, hedef şifreleme gerçeklemesinin standart çalışması sırasında ortaya çıkan güç tüketiminin analizine dayanmaktadır. Basit Güç Analizi (BGA), Farksal Güç Analizi (FGA), İlintisel güç Analizi (İGA) ve Çakışma Analizi (ÇA) gibi türleri olan güç analizinin temelinde sayısal bir devrede oluşan anlık güç tüketiminin, o anda işlenen veri ve gerçekleşen işlem adımına bağımlı olması yatmaktadır. RSA (Rvest-Shamir-Adelman) algoritması pratik olarak kullanılmış olan ilk nesil asimetrik kriptolojik algoritma olup, açık anahtar sistemlerinde, özel anahtar dağıtımı, imzalama ve imza doğrulama gibi amaçlarla kullanılmaktadır. Günümüzde geliştirilen şifreleme cihazları, FIPS-140, ISO/IEC 19790 gibi, kriptolojik modüllerin güvenlik analizine yönelik uluslararası standartlar kapsamında test edilmektedir. Bu tez çalışmasının amacı, şifreleme cihazlarında bulunan RSA gerçeklemelerinin güç analizine yönelik özgün yöntemler geliştirerek ilgili literatüre ve dolayısıyla güvenlik test süreçlerine katkı sağlamaktır. Bu doğrultuda tez sürecinde, yatayda çapraz ilinti analizi tabanlı iki yöntem ve hem yatay hem dikeyde eğrileri işleyen ilintisel güç analizi tabanlı iki yöntem literatüre kazandırılmıştır. Uygulamalarda saldırı hedefi olarak hem hazır bir ASIC devresi, hem de FPGA tabanlı RSA devreleri kullanılmıştır. Geliştirilen analizler gerçek güç tüketim eğrilerinin yanı sıra FPGA devresine ait benzetim eğrilerine de uygulanmıştır. Benzetim eğrileri ile çalışılması, tasarlanacak şifreleme modüllerinin güvenlik açıklarının önceden tespit edilebilmesi açısından önemlidir. Gerçek güç tüketim eğrilerini kaydetmek için osiloskop ve hedef cihazlarla haberleşen uygulama programları geliştirilmiştir. Benzetim güç eğrilerini elde etmek için ise FPGA benzetim yazılımlarının bir çıktısı olan ve devrede anlık sinyal değişim bilgilerini içeren davranışsal seviye ve yerleştirme-bağlama (post place route) seviyesindeki VCD (Value Change Dump) dosyalarını ayıklayan yazılımlar geliştirilmiştir. Bu tez çalışmasının literatüre sunduğu asıl katkılar ise güç eğrilerini hem yatayda hem dikeyde kullanan İGA yaklaşımı, ilinti eğrilerinin sadece tepe değerlerini değil birbirleri ile olan ilişkisini kullanan şablon İGA yaklaşımı, yataydaki çapraz ilinti değerlerini birden çok eğride ilintiler toplamı ve sayaç yöntemleri ile birleştiren çapraz ilinti yaklaşımı, saldırıda aynı anda işlem gören anahtar bitlerinin alt işlemleri yerine birden fazla anahtar bitine ait alanın kullanılarak böylece aynı anda işlem görmeyen birden çok bitin elde edilebilmesi yaklaşımı şeklinde sıralanabilir.

Abstract:
Side Channel Analysis (SCA) is a method that, by the nature of an encryption device, allows you to obtain information about the key value using unvanted input outputs such as processing time, power consumption, electronmagnetic emission, heat and sound emission. Power analysis is based on the analysis of power consumption that occurs during the standard operation of target encryption implementation. At the heart of power analysis, such as Simple Power analysis (SPA), Differential Power Analysis (FGA), Correlation Power Analysis (CPA), and Collision Analysis (CA), is the fact that instantaneous power consumption in a digital circuit depends on the data we are currently processing and the process step that is taking place. RSA (Rvest-Shamir-Adelman) algorithm is the first generation asymmetric cryptological algorithm that has been used practically and is used in public key systems for purposes such as private key distribution, signing and signature verification. Encryption devices are tested under international standards for security analysis of cryptological modules, such as FIPS-140, ISO/IEC 19790. The aim of this thesis is to contribute to the relevant literature and therefore security testing processes by developing original methods for power analysis of RSA implementations in encryption devices. In this direction, during the thesis process, two methods based on horizontal cross-correlation analysis and two methods based on correlation power analysis that process curves in both horizontal and vertical direction were introduced to the literature. Both a ready-made ASIC circuit and FPGA-based RSA circuits were used as attack targets in applications. The developed analyses were applied to actual power consumption curves as well as to simulation curves of FPGA circuit. Working with simulation curves is important in terms of detecting vulnerabilities of the encryption modules to be designed in advance. Application programs that communicate with oscilloscopes and target devices have been developed to record actual power consumption curves. In order to obtain simulation power curves, software has been developed that extracts VCD (Value Change Dump) files at the behavioral level and Post place route level, which is an output of FPGA simulation software and contains instantaneous signal change information in the circuit. The main contributions of this thesis to the literature are the IGA approach which uses power curves both horizontally and vertically, the template IGA approach which uses not only the peak values of the correlation curves, but also the relationship between each other, the cross-correlation approach which combines horizontal cross-correlation values in multiple curves, uses of trace field belonging to multiple key bits instead of sub operations of key bits that are not treated at the same time.