RC-6

Чөлөөт нэвтэрхий толь — Википедиагаас
Jump to navigation Jump to search

RC-6 (Rivest Cipher) нь өмнөх RC-5 дээр суурилсан нууцлалын блок шифр алгоритм (block encryption algorithm). Анх RC-6 алгоритмыг Америкийн Үндэсний стандарчлалын газраас 1997 онд зарлагдсан Advanced Encryption Standard (AES) уралдаанд зориулан RSA лабораторт 1998 онд зохиосон. Уг уралдааны сүүлийн шатанд шалгарсан 5 алгоритм (Rijndael, Mars, Serpent, Twofish, RC-6)-ын нэг юм. Хэдийгээр уралдаанд Rijndeal алгоритм ялж AES гэж нэрлэгдсэнээр стандарт болон гарсан ч RC-6 алгоритм нь энгийн шинж чанар, хурдан гүйцэтгэлээрээ өнөөг хүртэл хэрэглээтэй, тодорхой аюулгүй байдлыг хангасан хэвээр байна. Ерөнхий бүтэц, үйлдэл нь RC5-тай ойролцоо. RC6 нь 2 RC5 зэрэг ажиллаж байгаа юм шиг байх ба RC5-д хийгддэггүй зарим үйлдлүүд нэмэгдсэн. RC6 алгоритмийг Microsoft Office 2002, 2003 – файлын нууц үг хамгаалалт, мөн CryptoTools болон BestCrypt зэрэг нууцлалын програм хангамжуудад ашигладаг.

Блокын хэмжээ: 128 бит ( мэдээллийг 128 бит блок хэсгүүдэд хувааж ажилладаг гэсэн үг, энэ нь 32, 64 бит байж болно. Гэхдээ нийтийн хэрэглээнд 128 бит блок хэмжэээтэйгээр ажилладаг.) Түлхүүрийн хэмжээ: 128, 192, 256 бит (ерөнхийдөө, алгоритмын бүтцийн хувьд 2048 бит хүртэлх хэмжээтэй түлхүүрийг сонгох боломжтой байдлаар зохиогдсон.) Үеийн тоо: 20 үе. (Нэг блок буюу 128 бит мэдээллийг 20 үе (раунд) алхмаар шифрлэлт /encryption/ гүйцэтгэдэг.) Блок алгоритмуудын үйлдлийн нийтлэг горимуудыг /ECB, CBC, OFB, CFB, CTR, G-CTR/ хэрэглэдэг. CTR нь блок шифр алгоритмын аюулгүй горимуудын нэг юм. RC-6 алгоритмын хувьд CryptoTools болон Bestcrypt зэрэг шифрлэгч програм хангамжуудад CTR, XTS, LRW горимуудыг түлхүү ашигладаг.

Шифрлэлт хийх болон тайлах үйл явц[засварлах | edit source]

RC6

Шифрлэлт (Encryption): RC-6 нэг үеийн бүтэц. (20 үе ижил зарчмаар гүйцэтгэнэ)

// Оролт:   Шифрлэгдэх мэдээлэл нь 4 w-bit оролтын регистрүүдэд (A B C D) байршина
// 	r - үеийн тоо
// 	w-bit үеийн түлхүүрүүд S[0, ... , 2r + 3]
// 
// Гаралт: Шифрлэгдсэн мэдээлэл A, B, C, D регистрүүдэд хадгалагдна.
// 
// '''Шифрлэх үйл явц:'''

	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]

// '''Тайлах үйл явц:'''

	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]

Гүйцэтгэл/Performance[засварлах | edit source]

CPU давтамж/үйлдэл [200Mhz процессор]________Үйлдэл/секунд [200Mhz]

JAVA Borland C Assembly JAVA Borland C Assembly
Түлхүүр үүсгэх 110000 2300 1108 Түлхүүр үүсгэх 1820 86956 180500
Шифрлэх 16200 616 254 Шифрлэх 12300 325000 787000
Тайлах 16500 566 254 Тайлах 12100 353000 788000

Хурд (Mbps)[засварлах | edit source]

128bit 192bit 256bit
Шифрлэх 1.57 41.5 100.8
Тайлах 1.55 45.2 100.8

Аюулгүй байдал[засварлах | edit source]

Бүх боломжит түлхүүрийг хайх буюу /brute-force/ халдлагад /128, 192, 256 бит түлхүүртэй/ 2128 – 2256 нарийвлал шаардагдах учраас өнөөгийн хэмжээнд боломжгүй гэж үздэг. Бусад нарийвчилсан довтолгооны хувьд үнэлгээг сонирхоё. 128 бит түлхүүрийн хувьд довтолгооны үзүүлэлт:

Үеийн тоо
Халдлага 8 12 16 20 24
Дифференциал халдлага 256 2117 2190 2238 2299
Шугаман халдлага 247 283 2119 2155 2191

Эндээс харахад 20 үеээс дээш үе гүйцэтгэдэг, 128-аас их бит түлхүүрийн урттай RC-6 алгоритм нь өнөөгийн түвшинд аюулгүй гэж үзэж болно. Өнөөгийн байдлаар RC-6 алгоритмыг бүрэн тайлсан тохиолдол гараагүй байна, стандарт технологийн хувьд тайлах боломж одоогоор байхгүй ч хүчирхэг орнууд технологийн хүчээр 128 бит түлхүүртэй RC6 алгоритмыг тайлсан байхыг үгүйсгэх аргагүй юм.

RC6 vs AES[засварлах | edit source]

Advanced encryption standard уралдааны эцсийн шалгаруулалтад тухайн үзүүлэлтүүдэд 1-3 оноог өгч дүгнэсэн. Ялагч AES буюу Rijndael алгоритмтай харьцуулсан үнэлгээ.

Ерөнхий үзүүлэлт Хэрэгжүүлэхэд хялбар байдал Программын гүйцэтгэл Техникийн гүйцэтгэл Smart-card үзүүлэлт Дизайн
AES(Rijndael) 2 3 3 3 3 2
RC6 2 1 2 1 2 1