DЕS және RSA стандарттарының көмегімен ақпаратты шифрлау мысалын келтіріңіздер.
Практикалық сабақ №12 Тақырыбы: «RIJNDAEL алгоритмі». Симметриядық криптожүйелер (DES стандарты). AES шифрлау алгоритмі
Теориялық мағлұмат АҚШ стандарттар және техологиялар үлттық институты (NIST) 1997 жылы жаңа криптографиялық стандарт таңдап алу үшін сынақ жариялады (www.nist.gov қара). Дүние жүзіңдегі ең әйгелі криптологилық ұйымдар NIST жұмысына үлесін қосты.
Сынаққа 15 ұсыныс келіп түсті. Комитет мамандары екі жыл бойы жүмыс жасап, ең жақсы деген 5 талапкерді таңдап алды.
Конкурс финалына келесі алгоритмдер шықты: МАRS, ТWOFISH, RC6 (АҚШ), RIJNDAEL (Бельгия), SERPENT (Ұлыбритания, Израиль, Норвегия). Конкурс 2000 жылы мынандай нөтижслермен аякталды:
МАRS - 13 дауыс (Д. Копперсмит және баскадары)
ТWOFISH-3 1 дауыс (Б. Шнайер және басқалары)
RC6 - 23 дауыс (Р. Ривест жонс басқалары )
RIJNDAEL - 86 дауыс
SERPENT- 59 дауыс (Р. Андерсон).
Женімпаз болып бельгиялық RIJNDAELалгоритмі аталды
(www.nist.gov/encryption/aes қара). Авторлары - Joan Daemen және Vincent Rijmen. Осы уақыттан бастап алгоритмнен алдындағы патенттік шектеулер алынып тасталынған. Алгоритмді сіз тегін шектеусіз қолдануыңызға рүқсат бар.
RIJNDAEL алгоритмінің атауы жайындағы Р. Андерсонның ([1], 936. қара) ескертуін келтіріп кетейік: "Егер сіз Голландия, Бсльгия немесе Оңтүстік Африкадан болсаңыз, онда RIJNDAEL сөзінің аталуы ойындағыңыздай болады. Әйтпссе ол <> тәріздес окылады. RIJNDAEL сөзі "Ridgemen " емес, "Raymenі" деп окылады. "
15 алгоригмнің толық сипаттамасын жоғарыда жазылған NIST институтынын серверында таба аласыз. Біз RIJNDAEL алгоритмінің негізгі қадамдарын ғана қарастырамыз. Программаның коды 9-ші бөлімде келтірілген.
RIJNDAEL. итерациалық блоктық шифрға жатады. Кілт пен блоктардың ұзындығы бір -біріне байланыссыз 128, 192, 256 битке тең болуы мүмкін.
Аралык нәтижелер 4 жолы бар массивте жазылады. Төменде оны сәйкесінше нәтижелер массивы мен кілтшелер массивы деп атайық. (Ағылшышиа state, орысша состоянис деп аударган). Шифрлау блогы үшін Nь багана, ал кілт үшін Nк бағана қолданылады. Nк кілт ұзындыгын 32 бөлгендегі шығатын санға тең. NЬ блок ұзындығын 32 бөлгендегі шығатын санға тең.
Раунд саны Nб және Nk сандарына тәуелді (4.7.-кестесін қара).
4.7.-кестесі
Nr Nb =4 Nb =6 Nb =8
Nk = 4 10 12 14
Nk = 6 12 12 14
Nk = 8 14 14 14
Криптоалгоритмде қолданылатын операциялар GF(28) өрісіне тиісті элементтерде анықталған. GҒ(28) өрісінің элементтері болып дәрежесі N<8 екілік көпмүшелер саналады. 0 1 0 1 0 1 1 1 байтына келесі көпмүше сәйкес
X6+x4+x2+x+1
Қосу амады әдеттегідей көпмүшелерді қосу жәнс ұқсас мүшелерін ХОR операциясы көмегімен біріктіру арқылы орындалады.
(x6 +x4+x2+x+1) + (x7+x+1)=x7+x6+x4+x2 немесе
0 10 10 111 + 1 0 0 0 0 0 11 = 1110 10 1 0 0
Екі көпмүше үшін көбейту амалын қарастырайық.
а(х)= a3x3+a2x2+a1x+a0x
b(x)=b3x3+b2x2+b1x+b0x
Нәтиже ретінде козффициеіггтсрі келесідсй С(х) көпмүшесін аламыз.
C0 = a0 b0; C1 = a1 b0 + a0 b1; C2 = a2 b0 + a1 b01 + a0 b2; C3 = a3 b0 + a2 b1 + a1 b2 + a0 b3; C4 = a3 b1 + a2 b2 + a1 b3; C5 = a3 b2 + a2 b3; C6 = a3 b3 Енді нәтижені дәрежесі 4-тен аспайтын копмүше модулі бойынша алу қажет. Алгоритм құрастырушылар келесі көпмүшені үсынған:
Ф(x) = x4+1
Бүл көпмүше үшін келесі теңдік орындалады.
x modф(х) = xmod 4 Арқылы нәтижеміз
d(х)= d3x3+d2x2+d1x+d0x