How to Efficiently Implement Cryptographic Primitives

Transkript

How to Efficiently Implement Cryptographic Primitives
Tutorial
How to Efficiently Implement Cryptographic Primitives in a Secure Way: An Introduction
The aim of this tutorial is to give an insight of secure and efficient implementations of cryptographic
primitives.
In this tutorial, we will examine the software implementations of cryptographic primitives in terms of
security and efficiency. In the security side, we will analyze the methods that are used to avoid secret
leakage by the running time of the code, and the attacks which targets cache usage of the crypto
libraries and also we will discuss about how to write code that invulnerable/resistant to this kind of
attacks. In the efficiency side, we will show how to improve running time and resource usage of the
code while keeping in mind the security issues.
In security part of this tutorial, we will examine to dependence of running time and secrets, and show
effects of conditional structures with the help of implementation examples. We will emphasize to make
use of the balancing the cost of all conditions method, which is mostly used method in literature, and
we will create awareness about this attack with showing good and bad coding samples from everyday
usage. Afterwards, we will focus on cache, which used by processors to reduce communication costs,
and introduce the attacks that targeting cache usage of the crypto libraries. Also we will provide some
examples on how to prevent this kind of attacks.
In the efficiency part of this tutorial, we will write some toy codes on single-core performance
engineering and also identifying and building a solution to hotspots and bottleneck of the code. We will
examine most common parts of crypto libraries, such as multi precision and polynomial arithmetic, and
re-implement efficient codes which used in literature for them. Then, we will show how to use vectorial
instruction set extensions to gain performance for recent processors. In addition to this, we will
examine to basics of optimizing resource usage of the cryptographic implementations.
This tutorial is scheduled for 3 hours. The number of participants is limited to 30.
Outline
•
•
•
•
•
•
Introduction to cryptographic primitives
Implementation attacks
Basics of secure implementations
Efficiency metrics
Examples (RSA, polynomial multiplication)
Case studies
Target Audience
This tutorial assumes a basic knowledge of public key cryptographic schemes. It does not cover
theoretical mathematics. This tutorial is for the cryptographic protocol designers and software
developers from academia and industry.
Instructors
Erdem Alkım, Ege University, http://erdemalkim.github.io/
Sedat Akleylek, Ondokuz Mayıs University, https://sites.google.com/a/bil.omu.edu.tr/akleylek/home
Free Registration : (selected applicants will be informed via e-mail on September 26)
http://goo.gl/forms/6O9mhe3ubf0fCqzL2
Deadline
: September 25, 2016
Eğitim
Kriptografik Algoritmaların Verimli Çalışacak Şekilde Güvenli Yazılım Uygulamalarına Giriş
Bu eğitimin amacı katılımcılara kriptografik yapıların güvenli ve verimli bir şekilde uygulama
yöntemlerini kavratmaktır.
Bu eğitimde kriptografik yazılım geliştirirken dikkat edilmesi gereken konular performans ve güvenlik
olarak iki başlıkta ele alınacaktır. Güvenlik kısmında programın çalışma süresinin gizli bilgilerin
sızdırmasının önüne geçmek için kullanılan yöntemler tanıtılacak ve cache kullanımını hedef alan
saldırılar hakkında bilgi verilip tedbir yöntemleri tartışılacaktır. Performans kısmında ise bu güvenlik
problemleri dikkate alınarak uygulamaların çalışma sürelerinin kısaltılması ve sistem kaynaklarının
kullanımının iyileştirmesi konusunda çalışmalar yapılacaktır.
Eğitimin güvenlik bölümünde ilk olarak uygulamanın çalışma süresinin gizli verilerden bağımsız hale
getirilmesi konusunda özellikle koşullu yapıların etkileri anlatılarak bu konuda örnekler yapılacaktır. Bu
konuda literatürde sıkça kullanılan, bütün koşulların işlem yüklerinin eşitlenmesi konusundaki iyi ve
kötü örnekler gösterilerek bu tip saldırılar hakkında farkındalık oluşturulacaktır. Daha sonra cache
yapısı üzerinde durularak işlemcilerin veri iletişimini azaltmak için kullandığı hafıza birimlerinin
saldırılarda nasıl kullanıldığı hakkında bilgi verilecek ve bunun önüne geçmek için kullanılan yöntemler
uygulamalarla gösterilecektir.
Eğitimin performans bölümünde ise tek çekirdek performansı ve kodun yavaşlamaya sebep olan
kısımlarının tespit edilmesi ve düzeltilmesi üzerine uygulamalar yapılacak, kriptografik yazılım
geliştirmede sıkça kullanılan çok basamaklı çarpım polinom çarpımı gibi algoritmalarda kullanılan
yöntemler tanıtılacak ve vektör işlem birimlerinin uygulamanın çalışma süresinin kısaltılması için
kullanılması konusunda örnekler yapılacaktır. Ayrıca uygulamaların sistem kaynaklarını kullanmasının
iyileştirmesi konusunda örnek uygulamalar yapılarak temel yöntemler gösterilecektir.
Bu eğitim 3 saat olarak planlanmıştır. Katılımcı sayısı 30 ile sınırlıdır.
İçerik
•
•
•
•
•
•
Kriptografik yapılara giriş
Uygulama saldırıları
Güvenli uygulama temelleri
Verimlilik ölçekleri
Uygulamalar (RSA, polinom çarpımı)
Örnek Uygulamalar
Hedef Kitle
Bu eğitim için, katılımcılar, açık anahtarlı sistemler hakkında temel bilgiye sahip olmalıdır. Eğitimde
teorik altyapı verilmeyecektir. Bu eğitim akademiden ve özel sektörden kriptografik protokol
tasarımcıları ve yazılım geliştiriciler için hazırlanmıştır.
Eğitimciler
Erdem Alkım, Ege Universitesi, http://erdemalkim.github.io/
Sedat Akleylek, Ondokuz Mayıs Universitesi, https://sites.google.com/a/bil.omu.edu.tr/akleylek/home
Başvuru (seçilen katılımcılara 26 Eylül 2016 tarihinde bilgilendirme iletisi gönderilecektir)
http://goo.gl/forms/6O9mhe3ubf0fCqzL2
Son Başvuru Tarihi
: 25 Eylül 2016

Benzer belgeler