- 17 Kas 2020
- 934
- 516
İlk olarak AES’in Türkçe karşılığını açıklayalım, Gelişmiş Şifreleme Standardı olarak Türkçe’ye çevrilen şifreleme tekniği, dijital verilerin şifrelenip gizlenmesi amacıyla sunulan bir sistemdir. Bu sistem Vincent Rijmen ile Joan Daemen tarafından, Rijindael algoritması örnek alınarak ve çeşitli değişikliklerle geliştirilen algoritmalardan oluşur. Uluslararası olarak da şifreleme standardı olarak kabul edilmiş ve uygulanmaktadır. Birçok kişi tarafından kullanılan WhatsApp mesajlaşma uygulamasında da AES kullanılmıştır.
Rijindael algoritması özellikleri: Blok şifrelemede simetrik bir yöntem kullanan algoritmadır.128, 192, 256 bit anahtar uzunluklarını destekler. AES ile de bu 3 farklı bit uzunluğuna göre tur döngüsünde şifreleme kullanılır.
AES – 128 > Anahtar uzunluğu: 4, Blok boyutu: 4, Dönüş sayısı: 10
AES – 192 > Anahtar uzunluğu: 6, Blok boyutu: 4, Dönüş sayısı: 12
AES – 256 > Anahtar uzunluğu: 8, blok boyutu 4, Dönüş sayısı: 14
AES Yapısı
AES’in şifrelemede ve şifre çözmede kullanılan anahtarları aynıdır. Bu anahtarlar simetrik olarak birbiriyle ilişkili şekilde tasarlanmış algoritmaya sahiptir. Yani hem şifrelemede hem de şifre çözmede kullanılan anahtarları bulunur. Başka bir anlamda bakarsak AES, değiştirme-karıştırma (substitution-permutation) yöntemiyle oluşturulur. 128 bit girdi bloğu barındırır, 128, 192, 256 bit anahtar uzunlukları vardır. Bu algoritma, Amerikan Ulusal Güvenlik Teşkilatı (NSA – National Security Agency) tarafından gizli kalması gereken bilgilerin şifrelenip gizlenmesi için kullanımının onaylanması ile kamuya açık ilk şifreleme algoritması olarak benimsenmiştir.
AES algoritması: Girişler, çıkışlar ve matrisler 128 bit’lik uzunluğa sahiptir. Matrislere “durum” da denilir ve bu durumlarda 1 bayt’lık veri bulunur.
Durum’lar 16 bölmeden oluşur. Bu 16 bölme, 128 bit düz metin içerir.
AES Güvenliği
Örneğin 256 bit uzunluğundaki anahtar şifrelemesinin kırılması için asırlar yetmeyecektir. Yani şifrenin çözülebilmesi için ortalama 2200 miktarınca deneme yapılması gerekecektir. Bu algoritmanın gizli veriler için kullanılacağı durumlarda 128 bit’lik şifreleme yeterli olacaktır. Fakat çok gizli veriler için 192 ve 256 bit’lik şifreleme anahtarı kullanılmalıdır.
AES Şifreleme ve Algoritma Mantığı:
Şifrelenecek olan metin, 128 bit’lik bloklara ayrılır. Bu bloklar durum matrisine yerleştirilir ve anahtara da aynı işlem uygulanır. Bu iki matris ise toplanır.
Sub bytes: Bayt değiştirme anlamına gelen bu işlemde, mesajın şifrelere bölündükten sonra s-box (substituon box) değerleri değiştirilir. Bu tablo hexadecimal değerlerle, satır ve sütunlardan oluşturulur. Bu bayt değiştirme işleminde bloktaki değer alınır, bu değerin soldan ilk basamağı satırdan, ikinci basamağı sütundan seçilerek kesişim noktası aynı yere eklenir.
Shift Rows: Diğer işlemden sonra bu satır kaydırma işlemi gelir. Satırların içindeki bayt’ların sola kaydırılması işlemiyle ilgilidir. Satırlar 0, 1 , 2, 3 bayt kadar sola kaydırılmış olur. Soldan kaydırılmaya başlanan değerler, taşma olduğunda baştan eklenerek işlem tamamlanır, ama ilk değer sabit kalır.
Mix Columns: Bu işlem de sütunlar karıştırılır ve çarpma ve toplama işlemleriyle yapılır. Bu işlemde matris çarpımı vardır. Sabit bir 4X4’lük başlangıç matrisi (a) bulunur. 4X1’lik sütun ile bu matris çarpılır ve yeni matris oluşur.
Add Round Key: Turdaki anahtar ile toplama anlamına gelen bu işlem, her tur için her adımda 128 bit’lik üretilen anahtar ile mesaj bloğunun XOR (özel veya) işlemidir. Burada oluşturulan anahtar matrisi ve şifrelenecek olan blok matrisinin ilk sütunları XOR işlemiyle oluşur ve yeni blok sütunları oluşturulur.
İşlemlerin Sonucu: Bahsi geçen adımlar standart bir algoritma için on kez tekrarlanarak on adımdan oluşturulur. Son adımda ise sütunları karıştırma (mix columns) işlemi gerçekleştirilmez.
Anahtar Tasarlama:
İlk önce son sütun alınır, bir fonksiyondan geçirilir, sondaki eleman ile üstteki yer değiştirmiş olur. Her değer de s-box’tan geçirilir. Eldeki sütun, matrisin ilk sütunudur ve sabit değer matrisinin ilk sütunu için XOR işlemi kullanılır. Böylece değer olan ilk sütun değeri bulunur. Sonraki sütun işlemindeyse bir öncekinde bulunan değerle XOR işlemi yapılarak bu adımlar 10 kez tekrarlanarak devam eder.
Saldırı Riski
AES sisteminin bulunduğu bilgisayarın RAM belleğinin okunabileceği ve böylelikle şifrelerin elde edilebileceği durumu söz konusudur. Örneğin, Dag Arne Osvik, Adi Shamir ve Eran Tormer’in önbellek zamanlama saldırısıyla çok kısa sürede AES şifreleme anahtarını çözdükleri bir yöntemle veriler ele geçirilmiştir.
Ana bellek ve işlemci arasında bulunan belleğin küçük bir alanını ifade eden önbellek, sık kullanılan verilerin kopyalarını depolayarak bu verilere erişimi kolaylaştırır ve bilgisayarın performansına katkıda bulunmuş olur. Bellekten veri alıp önbelleğe eklemek önbelleği zorlar. Bu sebeple “önbellek hatası” oluşabilir. Önbellek mimarileri de çalışma zamanı ve güç tüketimi bilgileri yoluyla şifrelerin önbellek vuruş (hits) veya hata (miss) istatistikleriyle ilgili bilgileri sızdırmaktadır. Bu nitelikler, önbelleğin maruz kalabileceği saldırıların ihtimalini de gösterir.
Şifreleme algoritmaları akışı sabit şekilde yürütebilir ve açık metinlerle gizli anahtarlar aynı komut yapısıyla çalıştırılabilir. Bu yürütme sırasında önbellek davranışlarına bağlı olarak programın da bazı çeşitli çalışma süreçleri olabilir. Bu çeşitli çalışma süreçlerinden de önbellek saldırıları konusunda yararlanmalar yaşanabilir. Önbellek saldırıları, “zaman odaklı”, “iz odaklı” ve “erişim odaklı” şeklindedir. Zaman odaklı önbellek saldırıları ile algoritmanın işlemci üzerindeki çalışmasının zaman farklarını analiz edilir. Burada, önbellek mimarisinin işleyişi boyunca zaman farklılıkları bilgi sızıntısı olarak kullanılır. İz odaklı saldırılarda şifreleme örneği için önbellek vuruş ve hatalarının (hits/miss) bilgi sızıntısı olarak izlerini alır, aldığı verileri kullanarak gizli anahtarı bulmayı amaçlar. Bu iz odaklı saldırılarda iz tabiri, önbellek vuruşlarının ve hatalarının serisi için kullanılır. Erişim odaklı saldırılar, önbellek davranışının daha ince ayrıntılarla incelenmesini gerektirir. Burada kriptografik önbellek satırına erişilip erişilmediğiyle ilgili bilgi kullanılır, bu da gizli anahtarın yorumlanması için gereklidir.
Rijindael algoritması özellikleri: Blok şifrelemede simetrik bir yöntem kullanan algoritmadır.128, 192, 256 bit anahtar uzunluklarını destekler. AES ile de bu 3 farklı bit uzunluğuna göre tur döngüsünde şifreleme kullanılır.
AES – 128 > Anahtar uzunluğu: 4, Blok boyutu: 4, Dönüş sayısı: 10
AES – 192 > Anahtar uzunluğu: 6, Blok boyutu: 4, Dönüş sayısı: 12
AES – 256 > Anahtar uzunluğu: 8, blok boyutu 4, Dönüş sayısı: 14
AES Yapısı
AES’in şifrelemede ve şifre çözmede kullanılan anahtarları aynıdır. Bu anahtarlar simetrik olarak birbiriyle ilişkili şekilde tasarlanmış algoritmaya sahiptir. Yani hem şifrelemede hem de şifre çözmede kullanılan anahtarları bulunur. Başka bir anlamda bakarsak AES, değiştirme-karıştırma (substitution-permutation) yöntemiyle oluşturulur. 128 bit girdi bloğu barındırır, 128, 192, 256 bit anahtar uzunlukları vardır. Bu algoritma, Amerikan Ulusal Güvenlik Teşkilatı (NSA – National Security Agency) tarafından gizli kalması gereken bilgilerin şifrelenip gizlenmesi için kullanımının onaylanması ile kamuya açık ilk şifreleme algoritması olarak benimsenmiştir.
AES algoritması: Girişler, çıkışlar ve matrisler 128 bit’lik uzunluğa sahiptir. Matrislere “durum” da denilir ve bu durumlarda 1 bayt’lık veri bulunur.
Durum’lar 16 bölmeden oluşur. Bu 16 bölme, 128 bit düz metin içerir.
AES Güvenliği
Örneğin 256 bit uzunluğundaki anahtar şifrelemesinin kırılması için asırlar yetmeyecektir. Yani şifrenin çözülebilmesi için ortalama 2200 miktarınca deneme yapılması gerekecektir. Bu algoritmanın gizli veriler için kullanılacağı durumlarda 128 bit’lik şifreleme yeterli olacaktır. Fakat çok gizli veriler için 192 ve 256 bit’lik şifreleme anahtarı kullanılmalıdır.
AES Şifreleme ve Algoritma Mantığı:
Şifrelenecek olan metin, 128 bit’lik bloklara ayrılır. Bu bloklar durum matrisine yerleştirilir ve anahtara da aynı işlem uygulanır. Bu iki matris ise toplanır.
Sub bytes: Bayt değiştirme anlamına gelen bu işlemde, mesajın şifrelere bölündükten sonra s-box (substituon box) değerleri değiştirilir. Bu tablo hexadecimal değerlerle, satır ve sütunlardan oluşturulur. Bu bayt değiştirme işleminde bloktaki değer alınır, bu değerin soldan ilk basamağı satırdan, ikinci basamağı sütundan seçilerek kesişim noktası aynı yere eklenir.
Shift Rows: Diğer işlemden sonra bu satır kaydırma işlemi gelir. Satırların içindeki bayt’ların sola kaydırılması işlemiyle ilgilidir. Satırlar 0, 1 , 2, 3 bayt kadar sola kaydırılmış olur. Soldan kaydırılmaya başlanan değerler, taşma olduğunda baştan eklenerek işlem tamamlanır, ama ilk değer sabit kalır.
Mix Columns: Bu işlem de sütunlar karıştırılır ve çarpma ve toplama işlemleriyle yapılır. Bu işlemde matris çarpımı vardır. Sabit bir 4X4’lük başlangıç matrisi (a) bulunur. 4X1’lik sütun ile bu matris çarpılır ve yeni matris oluşur.
Add Round Key: Turdaki anahtar ile toplama anlamına gelen bu işlem, her tur için her adımda 128 bit’lik üretilen anahtar ile mesaj bloğunun XOR (özel veya) işlemidir. Burada oluşturulan anahtar matrisi ve şifrelenecek olan blok matrisinin ilk sütunları XOR işlemiyle oluşur ve yeni blok sütunları oluşturulur.
İşlemlerin Sonucu: Bahsi geçen adımlar standart bir algoritma için on kez tekrarlanarak on adımdan oluşturulur. Son adımda ise sütunları karıştırma (mix columns) işlemi gerçekleştirilmez.
Anahtar Tasarlama:
İlk önce son sütun alınır, bir fonksiyondan geçirilir, sondaki eleman ile üstteki yer değiştirmiş olur. Her değer de s-box’tan geçirilir. Eldeki sütun, matrisin ilk sütunudur ve sabit değer matrisinin ilk sütunu için XOR işlemi kullanılır. Böylece değer olan ilk sütun değeri bulunur. Sonraki sütun işlemindeyse bir öncekinde bulunan değerle XOR işlemi yapılarak bu adımlar 10 kez tekrarlanarak devam eder.
Saldırı Riski
AES sisteminin bulunduğu bilgisayarın RAM belleğinin okunabileceği ve böylelikle şifrelerin elde edilebileceği durumu söz konusudur. Örneğin, Dag Arne Osvik, Adi Shamir ve Eran Tormer’in önbellek zamanlama saldırısıyla çok kısa sürede AES şifreleme anahtarını çözdükleri bir yöntemle veriler ele geçirilmiştir.
Ana bellek ve işlemci arasında bulunan belleğin küçük bir alanını ifade eden önbellek, sık kullanılan verilerin kopyalarını depolayarak bu verilere erişimi kolaylaştırır ve bilgisayarın performansına katkıda bulunmuş olur. Bellekten veri alıp önbelleğe eklemek önbelleği zorlar. Bu sebeple “önbellek hatası” oluşabilir. Önbellek mimarileri de çalışma zamanı ve güç tüketimi bilgileri yoluyla şifrelerin önbellek vuruş (hits) veya hata (miss) istatistikleriyle ilgili bilgileri sızdırmaktadır. Bu nitelikler, önbelleğin maruz kalabileceği saldırıların ihtimalini de gösterir.
Şifreleme algoritmaları akışı sabit şekilde yürütebilir ve açık metinlerle gizli anahtarlar aynı komut yapısıyla çalıştırılabilir. Bu yürütme sırasında önbellek davranışlarına bağlı olarak programın da bazı çeşitli çalışma süreçleri olabilir. Bu çeşitli çalışma süreçlerinden de önbellek saldırıları konusunda yararlanmalar yaşanabilir. Önbellek saldırıları, “zaman odaklı”, “iz odaklı” ve “erişim odaklı” şeklindedir. Zaman odaklı önbellek saldırıları ile algoritmanın işlemci üzerindeki çalışmasının zaman farklarını analiz edilir. Burada, önbellek mimarisinin işleyişi boyunca zaman farklılıkları bilgi sızıntısı olarak kullanılır. İz odaklı saldırılarda şifreleme örneği için önbellek vuruş ve hatalarının (hits/miss) bilgi sızıntısı olarak izlerini alır, aldığı verileri kullanarak gizli anahtarı bulmayı amaçlar. Bu iz odaklı saldırılarda iz tabiri, önbellek vuruşlarının ve hatalarının serisi için kullanılır. Erişim odaklı saldırılar, önbellek davranışının daha ince ayrıntılarla incelenmesini gerektirir. Burada kriptografik önbellek satırına erişilip erişilmediğiyle ilgili bilgi kullanılır, bu da gizli anahtarın yorumlanması için gereklidir.