Kriptografide RC5, basitliği ile dikkat çeken simetrik - anahtar blok şifresidir. 1994 yılında Ronald Rivest tarafından tasarlanmıştır. RC, "Rivest Cipher" veya bir başka seçenek olarak "Ron's Code" anlamına gelmektedir (RC2 ve RC4'ü karşılaştırın). Gelişmiş Şifreleme Standardı(AES) adayı RC6 ve RC5 blok şifrelerine dayanıyordu. Tanım Birden fazla şemadan farklı olarak RC5, değişken bir blok boyutuna (32,64 veya 128 bit olur), anahtar boyutuna (0 ila 2040 bit arası) ve tur sayısına (0 ile 255 arası)sahiptir. Genel olarak önerilen parametre seçimi; 64 bit blok boyutu, 125 bit bir anahtar boyutu ve 12 tur sayısına sahip olması gerekir.RC5 blok şifrelemenin önemli bir özelliği de, veriye bağlı rotasyonların kullanılmasıdır. RC5'in hedeflerinden biri ise, bu tur işlemlerin bir kriptografik ilkel olarak çalışmasını ve değerlendirmesini sağlamaktır. Bundan ayrı RC5, bir dizi modüler eklemeden ve özel VEYA (XOR)'lardan oluşmaktadır. Algoritmanın genel yapısı Feitsel benzeri bir ağdır. Şifreleme ve şifre çözme yöntemleri birkaç kod satırında belirtilebilir. Veriye bağlı rotasyonların yeniliği ile beraber göz alıcı basitliği olan RC5'i kriptoanalistler için ilgi çekici bir çalışma nesnesi haline getirildi.RC5 genel olarak; RC5-w/r/b şeklinde ifade edilir. w:Bit cinsinden sözcük boyutu, r:Tur sayısı, b: Anahtardaki 8 bitlik byte sayısı. Özellikleri Yazılımsaldır. S-box bulunmaz. Basit, esnek ve hızlıdır. XOR işlemi vardır. Güvenilirliği yüksektir. Kırılma olasılığı düşüktür. Algoritma RC5 şifreleme ve şifre çözme, rastgele anahtarı, şifreleme ve şifre çözme işlemleri sırasında sırayla (ve yalnızca bir kez) kullanılacak 2(r+1) kelimeye genişletir. Aşağıdakilerin tümü, Rivest'in RC5 hakkındaki gözden geçirilmiş makalesinden alınmıştır. Anahtar Genişletme Anahtar genişletme algoritması, önce sözde kodda, ardından doğrudan referans belgesinin ekinden kopyalanan örnek C kodunda aşağıda gösterilmiştir. Makalenin adlandırma şemasına göre aşağıdaki değişken adları kullanılır: w - Bir kelimenin bit cinsinden uzunluğu, tipik olarak 16, 32 veya 64. Şifreleme 2 kelimelik bloklarda yapılır. u = w/8 - Bir kelimenin bayt cinsinden uzunluğu. b - Anahtarın bayt cinsinden uzunluğu. K[] - Bir bayt dizisi olarak kabul edilen anahtar (0 tabanlı indeksleme kullanılarak). c - Sözcüklerdeki anahtarın uzunluğu (veya b = 0 ise 1). L[] - Anahtar zamanlaması sırasında kullanılan geçici bir çalışma dizisi. kelimelerdeki anahtara başlatıldı. r - Verileri şifrelerken kullanılacak tur sayısı. t = 2(r+1) - gerekli yuvarlak alt anahtarların sayısı. S[] - Yuvarlak alt anahtar sözcükler. P w - Olarak tanımlanan ilk sihirli sabit Odd((e-2)*2^{w})}Odd((e-2)*2^{w}), burada Odd verilen girdiye en yakın tek tam sayıdır, e doğal logaritmanın tabanıdır ve w yukarıda tanımlanmıştır. w'nin ortak değerleri için, P w'nin ilişkili değerleri burada onaltılık olarak verilmiştir: w = 16 için : 0xB7E1 w = 32 için : 0xB7E15163 w = 64 için : 0xB7E151628AED2A6B orandır ve w yukarıda tanımlanmıştır. w'nin ortak değerleri için, Q w'nin ilişkili değerleri burada onaltılık olarak verilmiştir: w = 16 için : 0x9E37 w = 32 için : 0x9E3779B9 w = 64 için : 0x9E3779B97F4A7C15 # K'yı kelimelere ayırın. # u = w / 8 c = ceiling(max(b, 1) / u) #L başlangıçta 0'a kadar 0 değerli w-uzunluklu kelimelerin c-uzunluklu bir listesidir. for i = b-1 down to 0 do: L[i / u] = (L[i / u] Sonuç olarak, dağıtılmış.net karar verdi . para ödülünü finanse etmek için. Kazanan anahtarı bulan kişi 1.000 ABD Doları, ekibi (varsa) 1.000 ABD Doları ve Özgür Yazılım Vakfı 2.000 ABD Doları alacaktır. Kaynakça Kategori:Blok şifreler