En küçük mikro işlemcilerden süper bilgisayarlara kadar şifreleme, hayatımızda önemli bir yere sahiptir. Yüzyıllardır süregelen güvenlik gereksinimleri sayesinde şifreleme algoritmaları gelişmekte, yeni algoritmalar tasarlanmaktadır. Kriptoanaliz sayesinde bu algoritmalarının ne kadar güvenli olduğu veya saldırılara ne kadar dayanıklı olduğu analiz edilebilmektedir. Bu gelişimsel süreç kimi algoritmaların kullanımını geçersiz kılsa da kriptografik açıdan güvenlik gereksinimi olmayan dizi oluşturma gibi işlemlerde kullanılan algoritmaları önemli hale getirmiştir. RC5 Şifreleme Algoritması, değişebilen parametreleri, genişletilebilir şifreleme anahtarı sayesinde gerek yüksek güvenlik isteyen, gerek güvenliği yüksek olmasa da hıza ihtiyaç duyulan uygulamalarda kullanılmaktadır.
Bu yazıda öncelikle algoritmanın doğuşundan, tasarımından ve çalışma yapısından, ne gibi alanlarda kullanılabileceğinden, şifreleme ve deşifreleme işlemlerini nasıl gerçekleştirdiğinden ve şifreleme anahtarının genişletilmesi için nasıl bir yol izlendiğinden bahsedilmiştir. Sonrasında algoritmanın kriptoanalizi ile yapılan çalışmalardan, bu çalışmaların içeriklerinden bahsedilmiş olup diğer algoritmalara göre artıları ve eksileri değerlendirilmiştir.
RC5’İN TARİHÇESİ
Roma zamanından Sezar şifrelemesinden ve en eski simetrik blok anahtarı şifreleme algoritması DES’ten bugüne kadar yeni algoritmalar tasarlanmış ve tasarlanmaya devam etmektedir[1]. RC5, 1994 yılında Ronald Rivest tarafından tasarlanmış olan bir hızlı blok şifreleme algoritmasıdır. RSA algoritması ile tanınan Rivest, RC ve MD algoritma aileleriyle ilgili çalışmalarıyla da bilinmektedir. Algoritma ilk olarak Rivest tarafından 1997’de yayımlanmıştır.
RC5 simetrik şifreleme algoritmasını kullanmaktadır. Simetrik şifreleme algoritmaları hem göndericinin hem de alıcının aynı gizli anahtarı bilmesini gerektiren algoritmalardır. Algoritma, simetrik anahtar şifreleme, blok şifreleme veya akış şifreleme kullanılarak gerçekleştirilebilir. RC5 blok şifreleme algoritmalarından biridir.
- Bu algoritma hem yazılım hem de donanım için uygundur. Nerdeyse tüm mikro işlemcilerde bulunan temel matematiksel işlemlere sahip olması kullanımını yaygın kılar.
- Hız önem arz eder. Tek seferde tüm sözcükleri işleme alabilmektedir.
- Farklı kelime uzunluklarına uyarlanması mümkündür. Örneğin 64 bit işlemci gibi işlemcilerdeki daha uzun söz öbeklerinde de kullanılabilir.
- Değişken döngü sayısına ve iteratif bir yapıya sahiptir. Bu sistemin daha güvenli veya hızlı olmasını sağlar.
- Değişken uzunluktaki anahtar sayısı güvenlik seviyesinin seçilmesine katkı sağlar.
- Kullanımı basit ve uygulanması kolaydır.
- Bellek gereksinimi gerek görülen durumlarda, düşük belleğe sahip cihazlarda da kullanılabilmektedir.
- Uygun değerler seçildiğinde yüksek güvenlik sağlaması önem arz etmektedir[2].
Bir kelimedeki bitlerin w sayısı RC5’in bir parametresidir; bu parametrenin farklı seçilmesi algoritmayı farklılaştırabilmektedir. Örneğin 32 bit işlemcide seçeceğimiz w değeri ile 64 bit işlemcide seçeceğimiz w değerleri farklı uzunlukta olabilmektedir. Her kelime u = (w/8) 8-bit bayt içermekte olup RC5 ikili kelime bloklarını şifrelemektedir. Hem düz hem de şifreli metin 2w bit uzunluğundadır.
R tur sayısıdır. Kullanıcı ihtiyacına göre daha güvenli isterse bu tur sayısını arttırabileceği gibi hız istediğinde de bu tur sayısını azaltabilmektedir. Genişletilmiş anahtar tablosu S, t = 2(r+1) kelime içerir. R, 0’dan 255’e kadar değer alabilir.
K, gizli anahtar bayt sayısıdır. K, 0’dan 255’e kadar değer alabilmektedir. Anahtar uzunluğu b’dir. Bazı harici kısıtlamalar sebebiyle değişen güvenlik seviyesinde bu uzunluğun değişken olması avantaj sağlamaktadır. B, 0’dan 255’e kadar değer alabilir. K, b-bayt gizli anahtar sayısını vermektedir:
K[0], K[1], ,…, K[b-1]
RC5 algoritması RC5-w/r/b şeklinde bir notasyona sahiptir. Örneğin RC5 – 32/16/10 gösterimde:
- 32 bit kelime uzunluğu,
- 16 döngü,
- 10 bayt (80 bit) gizli anahtar değerini vermektedir.
Genişletilmiş anahtar tablosu S, t = 2(r+1) bilgisinden de 2(16+1)=34 kelimelik anahtar tablosu oluşturabilmektedir.
RC5, tüm kullanım alanlarında sadece güvenlik amacıyla kullanılmamaktadır. Bir işlemin güvenliği kadar hızı da önem arz etmektedir ve ne yazık ki hız ve güvenlik orantılı kavramlar değildir. Ancak hız beklentisinde de bazı noktalara dikkat edilmesi gerekmektedir. Örneğin döngü (parametre olarak r) 0 değeri aldığında bir şifreleme gerçekleşmez ve ayrıca 1 değeri alması da şifrenin kırılması oldukça kolaylaştırır. Bunlar bilinen rakamlar olsa da yine de döngü sayısının çok yüksek sayılarda verilmesi algoritmanın kullanım alanına uygun olamayabilir. Kelime boyutu (parametre olarak w), hıza ve güvenliğe etki eden bir husustur. Örneğin işlemcinin kayıt boyutundan daha büyük w değeri seçmek hızı büyük oranda düşürebilir.
Güvenliği etkileyen başka hususlarda bulunmaktadır. Sabit bir parametre seti buna örnek olarak verilebilir. Örneğin DES blok şifreleme algoritmasında sabit anahtar boyutu gelecekteki bilgisayarların işleme kapasitesine uyum sağlamasını engelleyen bir husustur. Ayrıca bu algoritma kriptografik açıdan güvenlik gereksinimi olmayan sözde rassal sayı dizisi oluşturma gibi işlemlerde de kullanılabilmektedir.
Giriş bloğu A ve B olmak üzere 2 w-bit şeklinde gelmektedir. S anahtar bloğu üretilerek serinin tamamlandığı farz edilmektedir.
A = A + S[0];
B = B + S[1];
for i = 1 to r do
A = ((A ⊕ B) <<< B) + S[2*i];
B = ((B ⊕ A) <<< A) + S[2*i+1];
- Algoritmada öncelikle A ve B değerlerine anahtar bloğu eklenerek atama yapılır.
- Bu A ve B değerleri XOR kapısına sokularak çıktı B’den küçükse değişken 2 ile çarpılarak çıkan anahtar değerine ekleme yapılır ve çıktı A’ya atanır.
DES’de bu süreç sadece A veya B’yi güncellemeyle sonlanır.
DEŞİFRELEME/ÇÖZÜMLEME
Deşifreleme de şifrelemede yapılan işlemin tam tersi uygulanır.
for i = r downto 1 do
B = ((B – S[2*i+1] >>> A) ⊕ A;
A = ((A – S[2*i] >>> B ) ⊕ B;
B = B – S[1];
A = A – S[0];
ŞİFRELEME ANAHTARININ GENİŞLETİLMESİ
Sihirli Sabitler
Bu algoritma anahtar üretim algoritmasında 2 ünlü sayıyı kullanmaktadır. İlki logaritmadan aşina olunan Euler sabitidir. Yaklaşık değeri;
e = 2.7182818284590…
Diğeri ise altın oran sabiti olan Fi sabitidir. Yaklaşık değeri:
Ø = 1,618033988749….
Pw = Odd((e – 2)2w)
Qw = Odd((r – 1)2w)
Yukarıdaki formüllerde anahtar üretim algoritması Pw ve Qw olmak üzere iki sabit kullanır. Bu sabitler ile isteğe bağlı w (kelime bit sayısı için kullanılan sabit) üretimi gerçekleşir. Odd burada en yakın tek tam sayıya yuvarlanma anlamına gelmektedir. Rivest bu sabitleri w=16, 32 ve 64 değerleri için sonuçlarını aşağıdaki gibi ikilik ve onaltılık sistemdeki değerlerine göre örneklemiştir. [2]
P16 = 1011011111100001 = b7el
Q16 = 1001111000110111 = 9e37
P32 = 101101111110000i0i01000101i00011 = b7elS163
Q32 = 10011110001101110111100110111001 = 9e3779b9
P64 = lOllOilllilO00010101000101’lO00101000101011101iOlO010iOlO01101011
= b7eiS1628aed2a6b
Q64 = 1001111000110111011110011011100101111111010010100111110000010101
= 9e3779b97f4a7clS
Gizli Anahtarın Bayttan Kelimelere Dönüştürülmesi
Anahtar genişletmenin ilk adımı gizli anahtarın (K) kelime başına bayt oranında (u = w/8) diziye (L)’ye kopyalanmasıdır. Bu işlemde dizideki her bir ardışık sözcük düşük sıradaki bayttan yüksek sıradaki bayta sıralı bir şekilde yapılır. Dizideki dolmayan bayt konumları 0’lanır. Tüm baytlar işaretsiz ve L dizisi başlangıçta sıfırlandığı varsayılarak aşağıdaki sözde kod yazılmıştır:
For i=b-1 downto 0 do
L[i/u] = (L[i/u] <<< S) + K[i];
S Dizisininin Başlatılması
İlk adımda belirlenen “Sihirli Sabitler”in Pw ve Qw sihirli sabitlerin çıktılarını kullanarak oluşturulan dizinin sözde kodu aşağıdaki gibidir:
S[0] = Pw ;
For i=l to t-l do
S[i] = S[i – 1] + Qw;
Gizli Anahtarın Karıştırılması
Bu adımda S ve L dizilerinin üzerinden 3 kere geçilerek algoritma karıştırılır.
i=j=0;
A=B=0;
do 3 * max(t, c) times:
A = S[i] = (S[i] + A + B) <<< 3;
B = L[j] = (L[j] +A+ B) <<< (A+ B);
i = (i -k 1) mod(t);
j = (j + 1) mod(c);
Şifreleme anahtarının genişletilmesi bir miktar tek yönlü gerçekleştirilen bir işlemdir.
ALGORİTMA KRİPTOANALİZ
YAPILAN ÇALIŞMALAR
Algoritmanın yaratıcısı Rivest, kendi çalışamaların da tur sayısını değiştirmenin RC5’in özelliklerine etkisini incelediği deneylerin sonuçlarından bahsetmiştir. Okuyularına algoritmanın gücünü belirlemede katkıda bulunmalarını istemiştir. Yin ve Kaliski RC5’in differansiyel ve doğrusal yöntemlerle kriptoanalizini gerçekleştirmişlerdir. Biryukov ve Kushilevitz açık metin saldısıyla 32 bitlik notasyonu kırmada başarılı olmuştur. Selçuk, Matsui’nin 1R metoduna benzer bir yaklaşımla saldırı gerçekleştirip DES’ten daha dağıtık bir giriş, çıkış ve anahtar bitine sahip olmasından ötürü başarılı bir saldırı olamadığını belirtmiştir.
Yin ve Kaliski’nin Kriptoanalizi
Doğrusal (lineer) kriptoanaliz de temel fikir şifrelenmiş metin bitleri ile açık metin bitleri arasındaki pariti ilişkisi üzerinden tespit yapmayı amaçlamaktadır. Bu saldırıda orijinal veya genişletilmiş anahtar tablosu S elde bulundurulduğu varsayılır. Diferansiyel kriptoanalizdeki temel fikir ise belirli bir açık metin saldırısı üzerinden tespitin amaçlanmasıdır.
Yin ve Kaliski diferansiyel ve doğrusal kriptoanalizin de ikinci bir yaklaşım olarak gizli anahtar uzunluğundan bağımsız bir çalışma gerçekleştirmişlerdir. Aynı zamanda RC5’e, 257 bilinen düz metin kullanan ve düz metin gereksinimi 6 turdan sonra pratik olmayan 6 turlu doğrusal bir saldırı bulmuşlardır. Bu saldırıda 263 seçilmiş açık metin kullanmışlardır.
Diferansiyel kriptoanaliz de öncelikle saldırı için gerekli düz metin çifti sayısını tahmin etmek için bir hesaplama yapmış sonrasında tahmin ettikleri açık metin sayısı kullandıkları düz metin sayısıyla eşleşip yüksek başarı oranı elde etmişlerdir. Doğrusal kriptoanaliz de hem yarım tur hem de tam tur için saldırılar yapmış olup daha sağlıklı sonuçlar elde etmişlerdir.
Yin ve Kaliski; RC5’in ayırt edici bir özelliği, veriye bağlı rotasyonların yoğun kullanımı olduğu, rotasyon miktarları, girdi verilerine bağlı rastgele değişkenler olup ve önceden belirlenmiş değerler olmadığını belirtmiştir ve bu rotasyonların kullanımının diferansiyel kriptanalizi önlemeye nasıl yardımcı olduğunu farketmiş Rivest tarafından önerilen RC5-32 için T = 12 seçiminin her iki saldırı türüne karşı da iyi bir güvenlik sağladığı sonucuna varmışlardır[3].
Biryukov ve Kushilevitz’in Kriptoanalizi
Bu çalışmada Biryukov ve Kushilevitz önceki çalışmalardan daha karmaşık diferansiyeller üzerinde çalışmıştır. Çiftleri tespit etmek için efektif filtreleme teknikleri kullanarak, RC5’in sahip olduğu verilere bağlı rotasyonlarda bir çiftin rotasyon miktarlarındaki farklılıklardan kaçma olasılığının Rivest’in beklentisinden çok daha yüksek olduğunu keşfetmişlerdir. Diferansiyel saldırıda 244 açık metinle RC5-32 / 12 / 16 notasyonunu kırmayı başarmışlardır. Bunun sonucu olarak , RC5’in kriptanalizinin veri karmaşıklığı, iyi bir çift olasılığı ve iyi çiftleri tespit etme kabiliyetimiz ile sınırlı olduğu belirtmişlerdir[4].
Selçuk’un Kriptoanalizi
Selçuk, RC5 için bir dizi yeni doğrusal kriptanalitik saldırı geliştirmiştir. Bu saldırı Kaliski ve Yin’in saldırısından farklı olup Matsui 1R Metoduna benzemektedir. Saldırılar 2 türe ayrılmaktadır. İlkinde ρ ( Ln mod w) ile her adımda belli bir değer ve her seferinde 1 anahtar biti kurtarılması hedeflenmektedir. Bunlar 1 bitlik olarak adlandırılıp ikinci saldırı türünde aynı anda bir grup ardışık anahtar biti kurtarılması hedeflenmektedir. Selçuk hesaplamalarında kolaylık olması açısından tur (r) değerlerini 2 ve 4 gibi cüzi sayılarda tutmuştur. Selçuk, RC5’in DES’deki gibi S Kutu’larına sahip olmaması doğrusal yaklaşımla giriş çıkış ve anahtar bitlerinin dağıtımının kolaylığı avantajına sahip olmadığını belirtmiştir. Bu sebeple algoritmaya uygun doğrusal saldırı bulmanın zorluğu üzerinde durmuştur[5].
ALGORİTMA DEĞERLENDİRME
Birçok simetrik anahtarlı algoritma bulunmaktadır. Blowfish, DES, AES, RC4, Twofish, IRON, IDEA, CASR-128 gibi algoritmalar bu algoritmalara örnek verilebilmektedir. RC5 algoritması anahtar blok şifreli algoritma olduğundan değerlendirme daha dar bir çatı altında yapılacaktır.
DES, büyük verilerin şifrelenmesinde kullanılmaktadır. DES popüler bir blok şifreleme algoritması olmakla birlikte neredeyse incelenen tüm makalelerde RC5 bir karşılaştırması söz konusudur. DES ile RC5’i iki farklı kefeye koyduğumuzda ikisinde de giriş çıkış blokları 2w = 64 bit uzunluğunda olduğu ve tur sayılarının aynı olduğu ancak iki DES turunun bir RC5 turuna denk olduğu incelenmiştir. DES RC5’ten farklı olarak parametrelerinde esneklik içermez ve S Blokları doğrusal kriptoanaliz ile gerçekleştirilen saldırılarda zafiyet oluşturmaktadır.
RC5 diğer RC algoritmalarıyla karşılaştırıldığında RC6 VE RC6_En ile aynı anahtar uzunluğuna ve tur sayısına sahiptir. Blok boyutu RC5’te 2w iken R6’da 4w, RC6_En’de ise 8w’ya kadar yükselmiştir[6].
Yapılan çalışmalar sonucu RC’in belli ölçütlerde ve belli parametrelerle güvenli olduğu bazı bit ve tur sayısı gibi parametrelerde kriptoanaliz saldırıları karşısında başarısız kaldığı gözlemlenmiş olup RC6 gibi yeni algoritmalarla geliştirilmeye devam edilmektedir.
KAYNAKLAR
[1] Mukta S., Garg R. B.,DES: The Oldest Symmetric Block Key Encryption Algorithm , College of Computing Sciences & Information Technology, Teerthanker Mahaveer University, Moradabad, India, November, 2016.
[2] Rivest R. L., The RC5 Encryption Algorithm MIT Laboratory for Computer Science Technology Square, Cambridge Mass, March 20, 1997.
[3] Kaliski B. S., Yin Y. L., On Differential and Linear Cryptanalysis of the RC5 Encryption Algorithm In D. Coppersmith, editor, Advances in Cryptology — Crypto’95, pages 171–184. Springer Verlag, ISBN 3-540-6022 1-6 New York, 1995.
[4] Biryukov A., Kushilevitz E., Improved cryptanalysis of RC5 ,Applied Mathematics Department, Computer Science Department, Technion – Israel Institute of Technology, Haifa, Israel, 1998.
[5] Selçuk A. A., New Results in Linear Cryptanalysis of RC5, Department of Computer Science and Electrical Engineering University of Maryland Baltimore County Baltimore, MD, USA,1998.
[6] Tyagi V., Singh S., ENHANCEMENT OF RC6 (RC6_EN) BLOCK CIPHER ALGORITHM AND COMPARISON WITH RC5 & RC6, Computer SciencE, Journal of Global Research in Computer Sciences, 2012.