RC4 ŞİFRELEME RC4 ENCRYPTİON

 

rc4

RC4 Tek zamanlı blok yönteminin uygulamasında karşılaşılan zorlukları ortadan kaldırmak için sonsuz kayan anahtar yerine, belirli uzunlukta anahtar kullanan birçok çözüm ortaya konmuştur. GSM şifrelemesinde kullanılan A5/1, A5/2 ve Wi-Fi güvenliğinde kullanılan RC4 gibi dizi şifreleme algoritmaları, bu tür şifreleme yöntemlerine örnektir. RC4, Ron Rivest tarafından 1987 yılında geliştirilmiştir . 40 ila 256 bit arasında değişken boyutta gizli anahtar kullanmaktadır. Algoritmanın temeli rastgele karıştırmaya (permutasyon) dayanmaktadır. Algoritma ilk olarak 256 bayt uzunluğundaki S dizisini ilk kullanım için hazırlar. Eğer gizli anahtar boyutu 256 bayt değilse, anahtarı tekrar ederek 256 baytlık T dizisini oluşturur. Anahtarı tutan T dizisi ve S dizisi kullanılarak S dizisi karıştırılır. Karıştırma işlemi sonunda S dizisinin içerisinde 0 ile 255 arasındaki sayılar karışık bir halde elde edilir. Kayan anahtar dizisini elde etmek için karıştırılmış S dizisi kullanılır. K değişkeni ile 8 bitlik kayan anahtar tutulmaktadır. Şifreleme yapmak için açık metinden ilk karaktere karşılık gelen 8 bit alınır ve K değişkeni ile XOR’lanır. Böylece açık metindeki ilk karaktere karşılık gelen şifrelenmiş metin oluşturulur. Benzer şekilde açık metindeki ikinci karakteri şifrelemek için yeni K değişkeni elde edilir ve şifrelemeye açık etindeki bütün karakterler bitinceye kadar devam edilir. Oluşan şifrelenmiş metin güvenli bir şekilde iletilir. Şifrelenmiş metni alan kullanıcı benzer adımları takip ederek aynı kayan anahtar dizisini oluşturmalıdır. Kayan anahtar dizisini elde ettikten sonra, ilk 8 biti kullanarak şifrelenmiş metindeki ilk karakter ile XOR’lar. Bu işlemi bütün karakterler için tekrar eder. İşlemin sonunda açık metni gizli bir şekilde elde eder. Kayan anahtar dizisini elde etmek için kullanılan kod, kullanıcının gizli anahtarı hakkında dışarıya bilgi vermektedir. Bu açığı kapatmak için RC4A ve RC4+ gibi alternatif çözümler önerilmiştir. Yukarıda açıklanan şifreleme yönteminde XOR bit operatörü kullanılmıştır. XOR operatörüne ek olarak AND ve OR gibi diğer bit operatörleri de bulunmaktadır. Bit operatörleri içinde şifreleme ve şifre çözmek için kullanılan tek bit operatörü XOR operatörüdür. Diğer bit operatörleri bu amaçla kullanılmazlar. Hatırlanacağı gibi şifreleme ve çözme fonksiyonları öyle fonksiyonlar olarak seçilmelidir ki, herhangi bir açık metni şifreleme fonksiyonu ile şifreleyip şifreli metni elde ettikten sonra çözme fonksiyonu kullanılarak bu şifreli metin çözüldüğünde, orijinal açık metnin elde edilmesi gerekmektedir. Herhangi bir açık X metnini K gizli anahtarı ile XOR’layıp elde edilen şifreli metin Y olsun. Bir başka ifadeyle Y = X (XOR) K olsun. Şifreli metin tekrar aynı gizli anahtar K ile XOR’lanırsa, orijinal metin olan X metni elde edilir. Yani X = Y (XOR) K olur. Bu nedenle XOR bit operatörü şifreleme fonksiyonu olarak kullanmak için oldukça elverişli bir operatördür. Yukarıda anlatılan kavramı basit bir örnekle şöyle açıklayabiliriz. X açık metni 8 bitlik bir mesaj olsun. X = (11001010) olarak seçilsin. K gizli anahtarı ise K = (10010110) şeklinde seçilmiş olsun. Eğer X açık metni K gizli anahtarı kullanılarak şifreleme fonksiyonu olan XOR bit operatörü ile şifrelenirse elde edilecek şifreli metin Y = X (XOR) K = 11001010 (XOR) 10010110 = 01011100 olur. Şifreli metni alıp tekrar aynı gizli anahtar ile XOR’larsak orijinal metne ulaşmamız gerekir. Yani X = Y (XOR) K = 01011100 (XOR) 10010110 = 11001010 olarak elde edilmiş olur. Bu çözme işlemi sonucunda elde edilen mesaj orijinal açık metinle karşılaştırıldığında iki mesajın birbirine eşit olduğu görülür.


#RC4  #sifreleme  #internet_güvenliği