RC6

Vikipedi, özgür ansiklopedi
RC6
RC6 algoritmasında kullanılan Feistel fonksiyonu.
Genel
TasarımcılarRon Rivest, Matt Robshaw, Ray Sidney, Yiqun Lisa Yin
İlk yayınlanma1998
Türetildiği yerRC5
SertifikasyonAES finalisti
Şifre detayları
Anahtar boyutları128, 192, veya 256 bit
Blok boyutları128 bit
YapıFeistel ağı (Tip 2)[1]
Döngüler20

Kriptografide RC6 (Rivest cipher 6), RC5'ten türetilen simetrik bir anahtar bloğu şifresidir. Gelişmiş Şifreleme Standardı AES yarışmasının gerekliliklerini karşılamak için Ron Rivest, Matt Robshaw, Ray Sidney ve Yiqun Lisa Yin tarafından tasarlanmıştır. Algoritma bu yarışmada beş finalistten biriydi ve NESSIE ve CRYPTREC projelerine de gönderilmişti. RSA Security'nin patenti olan tescilli bir algoritmadır. Yapısal olarak basit ve günümüzde hala güvenli olarak nitelendirilmektdir.

RC6 128 bit blok boyutuna sahiptir ve 2040 bit'e kadar 128, 192 ve 256 bit anahtar boyutlarını destekler; ancak RC5 gibi çok çeşitli kelime uzunluklarını, anahtar boyutlarını ve tur sayısını desteklemek için parametrelerle ifade edilebilir. RC6, verilere bağlı rotasyonlar, modüler ekleme ve XOR işlemlerini kullanması bakımından yapı olarak RC5'e çok benzer; aslında, RC6, iki paralel RC5 şifreleme işlemi olarak incelenebilir; ancak RC6, döndürmeyi yalnızca önemli birkaç bit değil, her bit'e bağımlı hale getirmek için RC5'te olmayan ekstra bir çarpma işlemi kullanır.

Şifreleme/Şifre çözme[değiştir | kaynağı değiştir]

Anahtar genişletme algoritmasının neredeyse RC5 ile aynı olduğunu unutmayın. Tek fark, RC6 için kullanıcı tarafından sağlanan anahtardan daha fazla kelimenin türetilmesidir.

// Encryption/Decryption with RC6-w/r/b
// 
// Input:   Plaintext stored in four w-bit input registers A, B, C & D
// 	r is the number of rounds
// 	w-bit round keys S[0, ... , 2r + 3]
// 
// Output: Ciphertext stored in A, B, C, D
// 
// '''Encryption Procedure:'''

B = B + S[0]
	D = D + S[1]
	for i = 1 to r do
	{
		t = (B * (2B + 1)) <<< lg w
		u = (D * (2D + 1)) <<< lg w
		A = ((A ^ t) <<< u) + S[2i]
		C = ((C ^ u) <<< t) + S[2i + 1] 
		(A, B, C, D)  =  (B, C, D, A)
	}
	A = A + S[2r + 2]
	C = C + S[2r + 3]

// '''Decryption Procedure:'''

	C = C - S[2r + 3]
	A = A - S[2r + 2]

	for i = r downto 1 do
	{
		(A, B, C, D) = (D, A, B, C)
		u = (D * (2D + 1)) <<< lg w
		t = (B * (2B + 1)) <<< lg w
		C = ((C - S[2i + 1]) >>> t) ^ u
		A = ((A - S[2i]) >>> u) ^ t
	}
	D = D - S[1]
	B = B - S[0]

NSA "implantlarında" olası kullanım[değiştir | kaynağı değiştir]

Ağustos 2016'de, çeşitli ağ güvenlik cihazları için Equation Group veya NSA "implants" olduğu bilinen kod açıklandı.[2] Ekli talimatlar, bu programlardan bazılarının ağ iletişiminin gizliliği için RC6'yı kullandığını ortaya koymuştur.[3]

Lisanslama[değiştir | kaynağı değiştir]

AES için RC6 seçilmediğinden dolayı RC6'nın telifsiz olduğu garanti edilmemektedir. Ocak 2017 itibarıyla, RC6, RSA Laboratuvarları tasarımcılarının resmi web sitesinde bulunan bir web sayfasında aşağıdaki ifadeyle yer almaktadır:[4]

"AES için RC6 seçilirse, RSA Security'nin algoritmayı kullanan ürünler için herhangi bir lisanslama veya telif hakkı ödemesi gerektirmeyeceğinin altını çizeriz."

"Eğer" sözcüğü, RSA Security Inc.'in RC6 algoritmasını kullanan herhangi bir ürün için lisans ve telif hakkı ödemesi gerektirdiğini gösterir. RC6, patentli bir şifreleme algoritmasıdır (ABD patent 5.724.428 ve ABD patent 5.835.600); ancak patentlerin süresi 2015 ile 2017 arasında doldu.

Notlar[değiştir | kaynağı değiştir]

Kaynakça[değiştir | kaynağı değiştir]

  1. ^ Hoang, Viet Tung; Rogaway, Phillip (2010). "On Generalized Feistel Networks". LNCS 6223. CRYPTO 2010. ABD: Springer. ss. 613-630. doi:10.1007/978-3-642-14623-7_33Özgürce erişilebilir. 
  2. ^ "Confirmed: hacking tool leak came from "omnipotent" NSA-tied group". Ars Technica. 16 Ağustos 2016. 6 Haziran 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Mart 2022. 
  3. ^ "These instructions guide the INSTALLATION of BLATSTING using ELIGIBLEBACHELOR via NOPEN tunnel". 17 Şubat 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 16 Ağustos 2016. 
  4. ^ "3.6.4 What are RC5 and RC6?". RSA Laboratories. 6 Temmuz 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Ağustos 2015. 

Dış bağlantılar[değiştir | kaynağı değiştir]