ARIA-256 Cipher
Merhaba, ARIA Cipher Güney Koreli araştırmacılar tarafından yayınlanan blok şifreleme algoritmasıdır, az sayıda türkçe kaynak olduğundan diğer arkadaşlarımızında yararlanması adına bu makaleyi paylaşıyorum.
1 ALGORİTMA/ÜRÜN ÖZET
1.1 Giriş
Aria Cipher algoritması verileri bloklarla 128,192 ve 256 bit anahtar boyutu ile şifreleyen bir şifreleme algoritmasıdır. Şifre bir ikame-permütasyon ağı (SPN) ve bir evrimsel ikili 16×16 matrisi kullanır difüzyon katmanı. İkame katmanı, on altı 8 × 8-bit S-kutusundan oluşur. GF (28) ‘de ters çevirme işlemi yapmaktadır. Anahtar uzunluğuna bağlı olarak tur sayısı 12,14 veya 16 dır. Şifrenin tam açıklaması için, spesifikasyonlara başvuruyoruz.
Aria ile AES arasında benzerlikler bulunmaktadır. Aria mevcut tasarımda 12-14-16 round’lu 128-bit SPN yapısı kullanılmaktadır. İki tür S-box kullanarak ardından, Difüzyon haritalamaları, ikili yapıda kendi kendine ters matris çarpımına dayanır. Böyle bir potansiyel tehdit, bir tür “cebirsel” saldırı olasılığı olabilir. Aria’nın Rijndael’e göre uygun bir alternatif olabilecektir.
2 ALGORİTMA/ÜRÜN HAKKINDA
2.1 Tarihçesi
ARIA büyük bir Güney Koreli araştırmacı grubu tarafından 2003 yılında tasarlanmış bir blok şifre algoritmasıdır. ARIA Cipher Algoritması, AES’ye dayalı bir ikame-permütasyon ağ yapısı kullanır. ARIA verileri 128 bit bloklarla 128(12 tur), 192(14 tur) veya 256(16 tur) bit anahtar boyutu ile şifreleyen bir şifreleme algoritmasıdır. Anahtar boyutuna bağlı olarak tur sayısı 12, 14 veya 16’dır.
ARIA, S-kutusu kullanmakla birlikte ayrıca bu işlemlerin tersini alternatif turlarda kullanılmaktadır; bunlardan biri olan Rijndael S-box en önemli yapılardandır. Anahtar program, “nothing up my sleeve numbers ” kaynağı olarak 1/π genişlemesiyle 3 turlu 256 bitlik bir Feistel şifresi kullanarak işlenmektedir.
2.2 Çalışması
ARIA bir SPN blok şifre çeşididir. 128 bit bloklarını; 128,192 veya 256 bit anahtar uzunluklarına bağlı olarak sırasıyla 12, 14 ve 16 döngüde işler. ARIA algoritması durum olarak adlandırılan 128-bit uzunluğundaki diziye uygulanan birtakım işlemler olarak düşünülebilir. Durum’a, açık metin giriş verisi olarak verilmektedir ve her döngüdeki her işlem sonrasında durumun içeriğindeki veriler değişmektedir. Durum’un içeriğindeki verilerin son değerleri ARIA algoritmasının çıkışıdır. ARIA algoritmasının birçok işlemi byte tabanlıdır bu nedenle durum bazen 16 byte içeren bir dizi olarak düşünülebilir. Aria algoritmasındaki çalışmasındaki her bir döngü aşağıdaki 3 kısmı içerir.
- 128 bit uzunluğundaki döngü anahtarı ile XOR işlemine tabi tutulur.
- 16 kez S-kutusu ile işleme tabi tutulur. iki çeşit ARIA yer değiştirme katmanı vardır, Tür 1 – Tür2 ve döngüler arasında değiştirilirler.
- 16×16’lık bir matris ile durum çarpılır.
Bunlarla beraber anahtar genişletme işlemi de vardır, verilen gizli anahtarın 128,192 ve 256 bit uzunluğunda olmasına bağlı olarak sırasıyla 12,14 ve 16 döngü anahtarı oluşturulmaktadır.
2.3 Blok Şifreleme Algoritması
Aria da bir blok şifre algoritmasıdır, blok şifreleme algoritmaları şifreli olmayan açık metni, sabit uzunluğa sahip bloklar sayesinde bit grupları olarak işlemektedir. Bloklar, bir anahtarlar kullanarak şifrelenmiş bir metin oluşturur. Bu şifrelenmiş metinin deşifreleme işlemi yaparken aynı anahtar kullanılarak şifrelenmiş metin açık hale getirilir. Blok şifreler, Shannon’un tavsiye ettiği diffusion(yayılım) ve Confusion (karıştırma) teknikleri üzerinde çalışır.
Confusion(Karıştırma) amaçladığı asıl yöntem, şifrelenmiş metin ve açık metin arasındaki ilişkiyi gizlemeyi amaçlamaktadır. Diffusion (Yayılım) amaçladığı yöntem ise şifreli metinde açık metine dair herhangi bir izin görülmemesi ve takip edilmemesini sağlamaktır. Diffusion(Yayılım), işlemi doğrusal dönüşüm ile dönüşüm işlemleri sağlanmaktadır. Confusion (Karıştırma) ise yer değiştirme metotu ile sağlanır. Blok şifrelerin etkisini gösteren değerler, anahtar büyüklüğü(128,192,256 bit), S-Box ve doğrusal dönüşümlerdir.
2.4 Anahtar Büyüklükleri
Blok şifreleme kullanımında bit sayısı veya anahtar uzunluğunun seçimindeki dikkat edilmesi gereken nokta, daha zor çözülebilen güçlü şifreler tercih edilmelidir. Saldırganlar tarafından temel saldırı yönetimi olarak geniş anahtar arama saldırılarına karşı yapılması gerekenler daha güçlü anahtar büyüklüğü seçimi ve brute-force atağına yönelik deşifre edilmesi de zor olacaktır. Böylelikle, saldırganın başlangıç olarak tanımlanan ilk denediği saldırı geniş anahtar arama saldırısına yönelik daha zor çözülebilen ve brute-force saldırısına çözülme dayanıklılığı kolay olmamalıdır. Örnek vermek gerekirse DES kripto algoritması 56 Bit anahtarlama yaparken, ARIA algoritması 128,192 ve 256 Bir anahtarlama seçenekleri ile DES algoritmasından daha avantajlı durumdadır.
2.5 Aria S-Kutuları
Aria Cipher S-kutuları aşağıdaki kriterleri karşılayacak şekilde tasarlanır ;
- $. i.e., GF (28). üzerinde bir fonksiyon olmalıdır.
- 2-6 en küçük değerine sahiptir.
- üzerinden ters çevirme fonksiyonundaki S-box $ yukarıdaki kriterleri karşılamak için kullanılır. S-kutularının her bir çıkış bitini temsil eden yüksek derecede Boolean polinomu, şifreye daha yüksek dereceli diferansiyel saldırıların uygulanmasını zorlaştırır.
Bazı kişi ve kurumlar AES’teki S-box’ın gücü konusunda endişelenmekte ve eğer kırılırsa şifrelenmiş verileri açığa çıkabilir, bundan dolayı bazı şirketler bir alternatif olarak iki S-box’ı aynı anda kullanan ARIA cipher’ı tercih sebebi görmektedir.Aria cipher, iki S-box kullanır.
2.6 Aria Cipher Algoritmasında Doğrusal Dönüşüm
Blok şifreye yaylım eklenmesi için kullanılan veriler bütünüdür. Blok şifre yapılarında (SPN ve Feistel) bunlardan ikisi de kullanılmaktadır. Round sayılarına göre anahtar büyüklükleri12, 14 ya da 16 dır.
ARIA algoritması yayılım(diffusion) katmanında 16×16 boyutlarında ilk giriş değerini byte değerleriyle involutif ve MDBL yazılımı ile tasarlanmış ikili matris kullanılmaktadır.
ARIA matrisi üzerinde kullanılmakta olan involutif ikili matris, (A-I) matrisine göre rank sayısı 7 olarak belirlenmekte ve bu sonuç 28(216-7) =272 kadar sabit noktayı içermektedir.
Dallanma değeri 8 olduğu görülen, aşağıdaki ikili matris görselde bulunmaktadır.
2.7 Aria Algoritması Şifreleme ve Deşifreleme İşlemi
ARIA blok şifresinin tek döngüsü anahtar ile XOR’lama (AddRoundKey), yer değiştirme (substitution) ve yayılım (diffusion) olmak üzere 3 katmandan oluşur.
Anahtarla toplama safhasında 128 bit anahtarla XOR işlemi yapılır. Yer değiştirme aşamasında ise 16 S-kutusu çıkışları yeni durumu belirler. Yayılım katmanında ise 16×16’lık ikili matris ile 128-bit durum verisi 128-bit yeni durum verisine dönüştürülür.
2.8 Aria Anahtar Genişletme
ARIA Blok şifresinin anahtar genişletme algoritması iki aşamadan oluşmaktadır.
Başlangıç aşaması:
MK‘dan (Gizli anahtar-Gizli anahtar) 3-döngülü 256-bit Feistel Şifre kullanılarak 128 bit uzunluğunda W0, W1, W2, W3 olmak üzere 4 anahtar üretilir.
Burada gizli anahtar 128, 192 ve 256 bit uzunluğunda olabilir. Gizli anahtardan öncelikle 128-bit uzunluğundaki KL değeriüretilir ve eğer gizli anahtar 128-bit’den uzun ise kalan bitlerle de 128-bit uzunluğundaki KR değeri üretilir eğer kalan bitler 128 bit uzunluğunda kısa ise eksik kısımlar 0 bitleri ile tamamlanır. Bu işlem aşağıdaki gibi gösterilebilir:
KL||KR = MK||0 ・ ・ ・ 0.
Daha sonraki adımlarda alt anahtarlar elde edilir:
Yukarıda, F0 ve Fe sırasıyla tek ve çift fonksiyonlardır. CKi ise F0 ve Fe fonksiyonları için kullanılan sabit değerlerdir. Sabit değerler şu şekilde bulunur. Öncelikle; 1/pi ‘nin ilk 128×3 bitlik kısmı üç tane 128-bit uzunluğundaki Ci sabit değerlerine atanır.
C1 = 0x517cc1b727220a94fe12abe8fa9a6ee0
C2 = 0x6db14acc9e21c820ff28b1d5ef5de2b0
C3 = 0xdb92371d2126e970324977504e8c90e0
Daha sonra sabit değerler aşağıdaki tablo ile tanımlanır;
Döngü Anahtarları Üretilmesi Aşaması:
Bu kısımda 4 adet Wi değeri ile şifreleme anahtarı ek(i) ve deşifreleme anahtarı dk(i) oluşturulmaktadır.
Aşağıdaki görselde şifreleme ve deşifreleme anahtar oluşum şeması gösterilmektedir.
3 ALGORİTMA/ÜRÜN KRİPTOANALİZ
3.1 Yapılan Çalışmalar
İntegral kriptanaliz uygularken aşağıdaki tanımlar kullanılabilir:
- set {ai|ai ∈ F2n , 0 ≤ i ≤ 2n − 1} eğer varsa aktif 0 ≤ i < j ≤ 2n − 1, ai = aj.
- set {ai|ai ∈ F2n , 0 ≤ i ≤ 2n − 1} eğer varsa pasif 0 < i ≤ 2n − 1, ai = a0.
- set {ai|ai ∈ F2n, 0 ≤ i ≤ 2n − 1} dengelidir, kümenin tüm elemanlarının toplamı 0 ise, yani 2n−1 i=0 ai = 0.
İntegral bir ayrıştırıcı bulmak için aşağıdaki prensiplere ihtiyaç vardır:
- Aktif bir küme, Birebir örten fonksiyonu geçtikten sonra aktif kalır.
- Birkaç aktif ya da dengeli setin doğrusal kombinasyonu dengeli bir settir.
- Doğrusal olmayan bir dönüşümden geçtikten sonra dengeli bir kümenin özelliği bilinmemektedir.
Açıkçası, üçüncü madde integral saldırıların darboğazıdır. ve eğer yapabilirse doğrusal olmayan bir dönüşümü geçtikten sonra dengeli bir kümenin özelliğini belirler ve daha fazla round’a sahip yeni integral ayrıştırıcı bulunabilir.
Bu bölümde, 4 round’lu ARIA’ya integral bir kriptanaliz tanımlıyoruz. Örnek olarak bu atak Ş gösterildiği gibi 3 roundlu integral ayırt edicilere dayanmaktadır.
Adım 1: Aşağıdaki biçimde bir düz metin yapısı seçilir:
(x, y, z) , F’ in tüm değerlerini alır ve C bazlı sabitleri gösterir. 256 değerindeki sayaçlar, şifreli metinlerin CT2 (x, y, z) denkleminde üçüncü baytının her değeri için karşılık gelen sayaç için, değeri bir arttırır.
Adım 2: V = {i | count [i] tek olur, i = 0, 1, …, 255}. K5,2 için bir değer tahmin edin, diyelim ki
k∗ ve aşağıdaki denklemin geçerli olup olmadığını kontrol edin:
Yukarıdaki bu denklem eşit ise, toplam, o zaman k ∗ k5,2 adayı olabilir, aksi takdirde yanlıştır.
Şekil 2. 4 Round ARIA’ya integral Saldırı
Adım 3: k5,2 benzersiz şekilde belirlenene kadar Adım 1 ve Adım 2’yi tekrarlanır ve yanlış bir anahtar için, Eşitlik (1) ‘i geçme olasılığı 2−8‘dir, bu nedenle bir yapıyı analiz ederken Eşitlik (1) ‘i geçebilecek yanlış anahtar sayısı (2^(−8) -1)x2^(−8) ≈ 1, bu nedenle k5,2‘yi benzersiz olarak belirlemek için iki yapıyı analiz etmemiz gerekir.
2. Adımda, her k∗ için 28 × 28 = 216 tablo aramasından fazlasına ihtiyaç yoktur. Buna göre, saldırının veri karmaşıklığı yaklaşık 225 seçilmiş düz metin; zaman karmaşıklığı 225 + 216 / (4×16) ≈ 225; ve bu saldırının 256 sayacı saklamak için toplamda 28 bayta ihtiyacı vardır.
Şekil 4 Aria Algoritmasına Yapılan Ana Saldırılar
Aria’nın güvenliği, tasarımcılar tarafından diferansiyel kriptanaliz, linear kriptanaliz, İntegral kriptanaliz, impossible diferansiyel kriptanaliz ile dahili olarak incelenmiştir.
3.2 Kriptanaliz Detay
Lineer ve Diferansiyel Kriptanaliz:
Bir blok şifresinin klasik lineer ve diferansiyel kriptanalize direnci doğrusal ve diferansiyel izlerin maksimum olasılığını analiz ederek tahmin edilebilir. İçinde SPN şifreleri söz konusu olduğunda, bu olasılıklar üzerinde bir sınır kolayca bulunabilir.
Difüzyon katmanının dal sayısı (Aria durumunda 8) ve maksimum doğrusal ve S kutularının diferansiyel olasılıkları (2−6) ‘te tasarımcılar tarafından hesaplanan sonuçta elde edilen sınırlar bağımsız olarak kontrol edilmiştir. Bu sonuçlardan şu sonuca varılabilir:
Aria, aşağıdaki olasılıkla klasik 6-yuvarlak doğrusal veya diferansiyel iz içermez 2−144 ve en iyi 5 round’lu parkurun en fazla 2−102 olasılığa sahip olduğu. Dikkate alındığında 128 bitlik blok boyutu, bu 8 mermi Aria’nın karşı yeterli direnç sağladığını gösterir. Bu iki klasik saldırıdır. Bu sonucun, farklı izlerin kümelenebileceği gerçeğini ihmal ettiğini unutmayın.
Bu etki, esasen kelime odaklı yapısı nedeniyle Aria’da ortaya çıkar. Ancak, bunun önemli ölçüde daha fazlasına yol açacağına inanmıyoruz
KAYNAKLAR
- https://users.encs.concordia.ca/~youssef/Publications/Papers/
- https://ab.org.tr/ab12/bildiri/29.pdf
- https://tr.wikipedia.org/wiki/Feistel_%C5%9Fifresi
- https://en.wikipedia.org/wiki/ARIA_(cipher)
- https://dergipark.org.tr/en/download/article-file/319458
- https://ab.org.tr/ab12/kitap/yavuzer-aslan_sakalli_AB12.pdf
- https://docplayer.biz.tr/58087529-T-c-trakya-universitesi-fen-bilimleri-enstitusu.html
- https://tr.qaz.wiki/wiki/ARIA_(cipher)
Sonuç olarak; SPN yapısına dayalı yeni bir 128-bit blok şifreleme ARIA önerilmektedir.
ARIA aşağıdaki özelliklere sahip basit ve güçlü bir algoritmadır.
Aria Cipher algoritmasında önemli bir zayıflık bulunulamamıştır ve herhangi bir gizli zayıflık yerleştirilememiştir. ARIA’nın çoğu platform için uygun olduğunu ve yaygın olarak kullanılabileceği düşünülmektedir.