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 горимуудыг түлхүү ашигладаг.
Шифрлэлт (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]fori=1tordo{t=(B*(2B+1))<<<lgwu=(D*(2D+1))<<<lgwA=((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]fori=rdownto1do{(A,B,C,D)=(D,A,B,C)u=(D*(2D+1))<<<lgwt=(B*(2B+1))<<<lgwC=((C-S[2i+1])>>>t)⊕uA=((A-S[2i])>>>u)⊕t}D=D-S[1]B=B-S[0]
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 |
128bit | 192bit | 256bit | |
---|---|---|---|
Шифрлэх | 1.57 | 41.5 | 100.8 |
Тайлах | 1.55 | 45.2 | 100.8 |
Бүх боломжит түлхүүрийг хайх буюу /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 алгоритмыг тайлсан байхыг үгүйсгэх аргагүй юм.
Advanced encryption standard уралдааны эцсийн шалгаруулалтад тухайн үзүүлэлтүүдэд 1-3 оноог өгч дүгнэсэн. Ялагч AES буюу Rijndael алгоритмтай харьцуулсан үнэлгээ.
Ерөнхий үзүүлэлт | Хэрэгжүүлэхэд хялбар байдал | Программын гүйцэтгэл | Техникийн гүйцэтгэл | Smart-card үзүүлэлт | Дизайн | |
---|---|---|---|---|---|---|
AES(Rijndael) | 2 | 3 | 3 | 3 | 3 | 2 |
RC6 | 2 | 1 | 2 | 1 | 2 | 1 |