RC6

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 

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 

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

Lisanslama 
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:

"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 ( ve ); ancak patentlerin süresi 2015 ile 2017 arasında doldu.

Notlar

Kaynakça

Dış bağlantılar 

 
 
 

Blok şifreler