21
Specification for Rijndael The AES algorithm

Rijndael Aes Specifications

Embed Size (px)

DESCRIPTION

Introduction to Rijndael AES Encryption and Implementation of Algorithm

Citation preview

Page 1: Rijndael Aes Specifications

Specification for RijndaelThe AES algorithm

Page 2: Rijndael Aes Specifications

AES’in Ortaya Çıkışı 97 yılının Ocak ayında U.S National Institute of

Standards And Technology (N.I.S.T) yaptığı bir duyuruyla Advanced Encryption Standard’ın geliştirilmek üzere olduğunu açıkladı ve topluma açık bir yarışma düzenledi.Bu yarışma için dünyanın farklı yerlerinden 15 tane block chiper uygulaması ön elemelerden geçebildi. Ancak iki rounddan oluşan asıl elemelerin ilk round’unda bu algoritmalardan 10 tanesi daha elenerek geriye 5 block chiper adayı kaldı.

Page 3: Rijndael Aes Specifications

Elemeler İkinci round elemelerine kalan 5 algoritmanın

adları ve geliştiricileri şöyleydi; IBM’in geliştirdiği MARS (Multiplication,

Addition, Rotation and Substitution), Ronald Riverst’in geliştirdiği RC6, Belçikalı takım tarafından geliştirilen Rijndael, İngiltere, İsrail ve Norveç’ten üyeleri olan bir

takımın ortak olarak geliştirdiği Serpent, Bruce Schneier tarafından geliştirilen Twofish.

Page 4: Rijndael Aes Specifications

Elemeler AES in yapımları sırasında yapılan

cryptoanalizlerde ölçülen Efektiflik Uygulanabilirlik Gerektirdiği efor Ve C dili üzerindeki implementasyonlarıyla

sabit işlemciler üzerinde performans testleri arasında,diğerlerine oranla öne çıkan Belçikalı geliştiricilerin öne sürdüğü “Rijndael” adlı block chiper uygululam AES olarak kabul edildi.

Page 5: Rijndael Aes Specifications

Arkaplanda AES(Advanced Encryption Standard) AES block dataları gizli bir anahtar aracılığıyla

encrypt ve decrypt edebilen bir block chiperdır. DES ve Triple DES standardlarının yerine geçmesi amacıyla üretilmiştir

AES felsefe olarak Shannon’un “diffusion,confusion” felsefesini temel almaktadır.

Diffusion :block chiper girdi parçalarının ( plaint text ve key) etkilerini outputun parçaları ( chiptext )’ na yaymak

Confusion:plaintext,chiper text ve key arasındaki ilişkinin karmaşıklaştırılmasıdır

Page 6: Rijndael Aes Specifications

AES’in Tanımı

AES block büyüklüğü 128 bit ve key genişliğide 128,192 veya 256 bit olan bir block chiperdır.

AES-128 AES-192 AES-256

Page 7: Rijndael Aes Specifications

AES’in Genel Yapısı İşleyiş biçimi standard olarak üzerinde 128

bitlik giriş ve çıkışlardan oluşan, plain text’in cipher text çevrilmesi yada tersi için uygulanan operasyonlar serisidir.

Operasyonlar ‘Rijndael durumu’ yada ‘durum’ denen iki boyutlu byte dizileriyle yapılır.

Durum dizisi 4 satır Nb/32 Sütun ( Nb=input boyutu) dan oluşur.

Dizilere s[r,c] veya sr,c referansları ile erişilir.

Page 8: Rijndael Aes Specifications

İnput Dizisinin Durum Dizisine Aktarılması

Encryption; S[r,c] = in[r+4c] 0<= r < 4 ve 0 <= c < Nb Inverse; Out[r+4c] = r[r,c] 0 <= r < 4 ve 0 <= c < Nb

Page 9: Rijndael Aes Specifications

AES Operasyon Tur Sayısı

Inputlar Durum dizisine aktarıldıktan sonra bir dizi operasyondan geçirilirler. Bu operasyonların kaç turda tamamlanacaklarının sayısı key uzunluğuna göre değişmektedir.

Page 10: Rijndael Aes Specifications

Aes Operasyonları Encryption

Encryption işlemi dört aşamadan oluşur. SubBytes : Dizinin bytelarını bağımsız

olarak değişime uğratır eder. ShiftRows : Dört satırı bağımsız olarak

shifte eder. MixColumns : Dizideki sütunları

bağımsız olarak karıştırır AddRoundKey : Round key in bytelarını

diziye ekler.

Page 11: Rijndael Aes Specifications

AES Operasyonları

Page 12: Rijndael Aes Specifications

First Step AddRoundKey Input = 3243f6a8885a308d313198a2r0370734 Key = 2b7e151628aed2a6abf7158809cf4f3c

Input ve key alındıktan sonra ilk işlem bunların XOR’lanması ile ekleme işlemidir. Bu işlem sonucunda 1.tur için başlangıç durum’unu elde ederiz.

Page 13: Rijndael Aes Specifications

Subbytes(S Tablosu transformasyonu)

Tur döngüsündeki ilk işlem, algoritmanın tek doğrusal olmayan işlemi olan bayt değiştirmedir. Durum matrisinin her elemanı, değerleri önceden hesaplanarak oluşturulmuş S-kutusundaki değerlerle değiştirilir.

Page 14: Rijndael Aes Specifications

Subbytes

Page 15: Rijndael Aes Specifications

ShiftRows

Satır kaydırma işleminde satırlar sırasıyla cyclic olarak şu formüle göre shift edilirler.

S’r,c = Sr,(c+h[r,Nb])modNb 0 <= c < Nb ve 0<r<4 için

Bu formülde kullanılan h dizisi aşağıdaki gibidir;

Aşağıda Shift işlemi gösterilmiştir.

Page 16: Rijndael Aes Specifications

MixColumns

Bu işlemde eski sütun elemanları ile sabit hesaplanmış bir matris çarpım ve XOR işlemi yapılarak yeni sütun elde edilmektedir. Bu yapılırken yeni sütunun elemanları eski sütunun her elemanı hesaba katılarak tek tek hesaplanır. Çarpma işleminde;(a(x)) =)={03}x3+{01}x2+{01}x+{02} kullanılır.

Çarpma işleminde kullanılacak matris aşağıdaki gibidir.

Page 17: Rijndael Aes Specifications

MixColumns

Page 18: Rijndael Aes Specifications

AddRoundKey (veya XORRoundKey)

Her turda daha önce saydığımız işlemlerle birlikte bir de tur anahtarı oluşturma işlemi yapılmaktadır ve her turda sonuçta oluşan durum ile o tur için hazırlanmış olan yeni anahtar toplama işlemine tabi tutulur. Bu işlem sonlu alanlarda yapılan toplama işlemidir ve bit mertebesinde özel veya işlemine karşılık düşer. 128 bitlik durum matrisi ile 128 bitlik ara anahtar değeri bit bit özel veya elamanı ile toplanır.

Page 19: Rijndael Aes Specifications

Anahtar Üretme

AES algoritması anahtarı alır ve bir dizi işlemden geçirerek işlem sayısı kadar anahtar oluşturur. Bu sayı 128 bitlik uzunluk için 10′dur. 10 farklı anahtar oluşturulur ve oluşan son anahtar şifreyi çözmede kullanılan ilk anahtar haline gelir.

Yeni anahtarın oluşmasındaki temel işlem bir önceki sütun ile dört önceki sütunun toplanmasıdır. Ancak buradaki istisna nokta her 4′ün katı olan sütunda(mod4 = 0 yada ilk sütunlarda) toplamadan önce bir dizi işlemden (T İşlemi) daha geçirilir. Bu işlemler öteleme, S kutusundan geçirme ve Rc(x) vektörü ile toplama işlemidir

Page 20: Rijndael Aes Specifications

Anahtar Üretme

Page 21: Rijndael Aes Specifications

Sonuç

Aynı operasyonların 9 kere tekrarlanması, son adımda da MixColumns operasyonu hariç diğer işlemlerin yapılmasının ardından elimizde oluşan 128 bit boyutundaki iki boyutlu durum dizisi inputumuzun şifrelenmiş halidir.