Файл: Семинар сынылады he жне spo жйесіндегі омо сарапшылы кеесі.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 30.11.2023
Просмотров: 1720
Скачиваний: 4
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
b1 (b1 * 2) XOR (b2*3) XOR (b3*1) XOR (b4*1)Екі байтты көбейту келесі алгоритм бойынша орындалады:
Е {0x01, 0x03, 0x05, 0x0F, 0x11, 0x33, 0x55, 0xFF, 0x1A, 0x2E, 0x72, 0x96, 0xA1, 0xF8, 0x13, 0x35,0x5F, 0xE1, 0x38, 0x48, 0xD8, 0x73, 0x95, 0xA4, 0xF7, 0x02, 0x06, 0x0A, 0x1E, 0x22, 0x66, 0xAA,
0xD1, 0x68, 0xB8, 0xD3, 0x6E, 0xB2, 0xCD,0x4C, 0xD4, 0x67, 0xA9, 0xE0, 0x3B, 0x4D, 0xD7, 0x62, 0xA6, 0xF1, 0x08, 0x18, 0x28, 0x78, 0x88,0x83, 0x9E, 0xB9, 0xD0, 0x6B, 0xBD, 0xDC, 0x7F, 0x81,0x98, 0xB3, 0xCE, 0x49, 0xDB, 0x76, 0x9A,0xB5, 0xC4, 0x57, 0xF9, 0x10, 0x30, 0x50, 0xF0, 0x0B, 0x1D, 0x27, 0x69, 0xBB, 0xD6, 0x61, 0xA3,0xFE, 0x19, 0x2B, 0x7D, 0x87, 0x92, 0xAD, 0xEC, 0x2F, 0x71, 0x93, 0xAE, 0xE9, 0x20, 0x60, 0xA0,0xFB, 0x16, 0x3A, 0x4E, 0xD2, 0x6D, 0xB7, 0xC2, 0x5D, 0xE7, 0x32, 0x56, 0xFA, 0x15, 0x3F, 0x41,0xC3, 0x5E, 0xE2, 0x3D, 0x47, 0xC9, 0x40, 0xC0, 0x5B, 0xED, 0x2C, 0x74, 0x9C, 0xBF, 0xDA, 0x75,0x9F, 0xBA, 0xD5, 0x64, 0xAC, 0xEF, 0x2A, 0x7E, 0x82, 0x9D, 0xBC, 0xDF, 0x7A, 0x8E, 0x89, 0x80,0x9B, 0xB6, 0xC1, 0x58, 0xE8, 0x23, 0x65, 0xAF, 0xEA, 0x25, 0x6F, 0xB1, 0xC8, 0x43, 0xC5, 0x54, 521 БӨЛІМ0xFC, 0x1F, 0x21, 0x63, 0xA5, 0xF4, 0x07, 0x09, 0x1B, 0x2D, 0x77, 0x99, 0xB0, 0xCB, 0x46, 0xCA,0x45, 0xCF, 0x4A, 0xDE, 0x79, 0x8B, 0x86, 0x91, 0xA8, 0xE3, 0x3E, 0x42, 0xC6, 0x51, 0xF3, 0x0E,0x12, 0x36, 0x5A, 0xEE, 0x29, 0x7B, 0x8D, 0x8C, 0x8F, 0x8A, 0x85, 0x94, 0xA7, 0xF2, 0x0D, 0x17,
Циклдік кілтті қосу.Цикл кілті жай EXOR арқылы күйге қосылады (1.30-сурет). Циклдік кілт кілттер кестесі алгоритмі арқылы шифрлау кілтінен жасалады. Циклдік кілттің ұзындығы Nb блок ұзындығына тең.
Күріш. 1.30.Цикл пернесі әрекетін қосуШифрлау кезінде кеңейтілген кілттің бөліктері басынан аяғына дейін, шифрды шешу кезінде - соңынан басына дейін таңдалады.Негізгі кеңейтім(Кілтті кеңейту). Кеңейтілген кілт төрт байт сөзден тұратын сызықтық массив болып табылады және W[Nb*(Nr + 1)] арқылы белгіленеді. Бірінші Nk сөздерінде шифрлау кілті бар. Басқа сөздердің барлығы индексі кішірек сөздерден рекурсивті түрде анықталады. Кілттерді генерациялау алгоритмі Nk мәніне байланысты. Төменде Nk 6 нұсқасы және Nk > 6 нұсқасы берілген:
Күріш. 1.31.Демонстрациялық бағдарламаның негізгі терезесіКүріш. 1.32.Кеңейтілген кілттер терезесіКүріш. 1.33.ByteSub және ShiftRow түрлендіру WindowsШифрлау кезінде бастапқы файлды және шифрлау нәтижесі орналастырылатын файлды, шифрды шешу кезінде – сәйкесінше шифрланған файлды және шифрды шешу нәтижесін сақтауға арналған файлды таңдау ұсынылады. Процесс шифрлау кілтін және бағдарламаның негізгі терезесінде көрсетілген кілт пен блок ұзындығын пайдаланады. 561 БӨЛІМКүріш. 1.34.MixColumn және AddRoundKey түрлендіру WindowsЖаттығу
-
егер байттардың біреуі 0 болса, нәтиже 0 болады;
-
егер байттардың бірі 1 болса, нәтиже басқа байт;
-
басқа жағдайларда әрбір байт L кестесіне сәйкес ауыстырылады. Ауыстырылған байттар қосылады, қажет болған жағдайда [0, 255] аралығына кіру үшін 255 алынады және нәтижені беретін Е кестесіне сәйкес ауыстыру жүргізіледі. Псевдо-С тілінде L және E кестелері келесідей:
-
0x00, 0x19, 0x01, 0x32, 0x02, 0x1A, 0xC6, 0x4B, 0xC7, 0x1B, 0x68, 0x33, 0xEE, 0xDF, 0x03,
| 0x63, | 0x8C, | 0x80, | 0xC0, | 0xF7, | 0x70, | 0x07 |
| }; | | | | | | |
| 0xE5, 0x34, | 0x5C, | 0xE4, 0x37, 0x59, 0xEB, 0x26, 0x6A, | |||
| 0xBE, | 0xD9, 0x70, 0x90, | 0xAB, | 0xE6, 0x31, | ||
| 0x53, | 0xF5, 0x04, 0x0C, | 0x14, | 0x3C, 0x44, 0xCC, 0x4F, | ||
0xD1, 0x68, 0xB8, 0xD3, 0x6E, 0xB2, 0xCD,0x4C, 0xD4, 0x67, 0xA9, 0xE0, 0x3B, 0x4D, 0xD7, 0x62, 0xA6, 0xF1, 0x08, 0x18, 0x28, 0x78, 0x88,0x83, 0x9E, 0xB9, 0xD0, 0x6B, 0xBD, 0xDC, 0x7F, 0x81,0x98, 0xB3, 0xCE, 0x49, 0xDB, 0x76, 0x9A,0xB5, 0xC4, 0x57, 0xF9, 0x10, 0x30, 0x50, 0xF0, 0x0B, 0x1D, 0x27, 0x69, 0xBB, 0xD6, 0x61, 0xA3,0xFE, 0x19, 0x2B, 0x7D, 0x87, 0x92, 0xAD, 0xEC, 0x2F, 0x71, 0x93, 0xAE, 0xE9, 0x20, 0x60, 0xA0,0xFB, 0x16, 0x3A, 0x4E, 0xD2, 0x6D, 0xB7, 0xC2, 0x5D, 0xE7, 0x32, 0x56, 0xFA, 0x15, 0x3F, 0x41,0xC3, 0x5E, 0xE2, 0x3D, 0x47, 0xC9, 0x40, 0xC0, 0x5B, 0xED, 0x2C, 0x74, 0x9C, 0xBF, 0xDA, 0x75,0x9F, 0xBA, 0xD5, 0x64, 0xAC, 0xEF, 0x2A, 0x7E, 0x82, 0x9D, 0xBC, 0xDF, 0x7A, 0x8E, 0x89, 0x80,0x9B, 0xB6, 0xC1, 0x58, 0xE8, 0x23, 0x65, 0xAF, 0xEA, 0x25, 0x6F, 0xB1, 0xC8, 0x43, 0xC5, 0x54, 521 БӨЛІМ0xFC, 0x1F, 0x21, 0x63, 0xA5, 0xF4, 0x07, 0x09, 0x1B, 0x2D, 0x77, 0x99, 0xB0, 0xCB, 0x46, 0xCA,0x45, 0xCF, 0x4A, 0xDE, 0x79, 0x8B, 0x86, 0x91, 0xA8, 0xE3, 0x3E, 0x42, 0xC6, 0x51, 0xF3, 0x0E,0x12, 0x36, 0x5A, 0xEE, 0x29, 0x7B, 0x8D, 0x8C, 0x8F, 0x8A, 0x85, 0x94, 0xA7, 0xF2, 0x0D, 0x17,
| 0x39, 0x4B, 0xDD, | 0x7C, | 0x84, | 0x97, 0xA2, 0xFD, 0x1C, | ||||
| 0x24, | 0x6C, | 0xB4, | 0xC7, | 0x52, | 0xF6, | 0x01 | |
| }; | | | | | | | |
| а0,0 | а0.1 | а0.2 | а0.3 | а0.4 | а0,5 | | к0,0 | к0.1 | к0.2 | к0.3 | к0.4 | к0,5 | | б0,0 | б0.1 | б0.2 | б0.3 | б0.4 | б0,5 | |
| а1.0 | а1.1 | а1.2 | а1.3 | а1.4 | а1.5 | + | к1.0 | к1.1 | к1.2 | к1.3 | к1.4 | к1.5 | = | б1.0 | б1.1 | б1.2 | б1.3 | б1.4 | б1.5 | |
| а2.0 | а2.1 | а2.2 | а2.3 | а2.4 | а2.5 | к2.0 | к2.1 | к2.2 | к2.3 | к2.3 | к2.5 | б2.0 | б2.1 | б2.2 | б2.3 | б2.4 | б2.5 | | ||
| | | | ||||||||||||||||||
| а3.0 | а3.1 | а3.2 | а3.3 | а3.4 | а3.5 | | к3.0 | к3.1 | к3.2 | к3.3 | к3.4 | к3.5 | | б3.0 | б3.1 | б3.2 | б3.3 | б3.4 | б3.5 | |
Күріш. 1.30.Цикл пернесі әрекетін қосуШифрлау кезінде кеңейтілген кілттің бөліктері басынан аяғына дейін, шифрды шешу кезінде - соңынан басына дейін таңдалады.Негізгі кеңейтім(Кілтті кеңейту). Кеңейтілген кілт төрт байт сөзден тұратын сызықтық массив болып табылады және W[Nb*(Nr + 1)] арқылы белгіленеді. Бірінші Nk сөздерінде шифрлау кілті бар. Басқа сөздердің барлығы индексі кішірек сөздерден рекурсивті түрде анықталады. Кілттерді генерациялау алгоритмі Nk мәніне байланысты. Төменде Nk 6 нұсқасы және Nk > 6 нұсқасы берілген:
-
Nk < 6 немесе Nk 6 үшін
-
Nk > 6 үшін
-
циклдік кілтті бастапқы қосу;
-
Nr - 1 цикл;
-
соңғы цикл.
-
циклдар
Бағдарлама C# тілінде орындалады және екі элементтен тұрады — шифрлау алгоритмін жүзеге асыруды қамтитын Rijndael.dll файлы және RijndaelDemo.exe демонстрациялық қосымшасы. Қолданба .NET Framework v1.1 орнатылған Windows операциялық жүйесін қажет етеді.
-
демонстрациялық бағдарламаның негізгі терезесі кілт ұзындығын, блок ұзындығын, сондай-ақ көрсетілген шифрлау кілтіне сәйкес есептелген кеңейтілген шифрлау кілтін орнатады (1.31, 1.32-сурет).
Күріш. 1.31.Демонстрациялық бағдарламаның негізгі терезесіКүріш. 1.32.Кеңейтілген кілттер терезесіКүріш. 1.33.ByteSub және ShiftRow түрлендіру WindowsШифрлау кезінде бастапқы файлды және шифрлау нәтижесі орналастырылатын файлды, шифрды шешу кезінде – сәйкесінше шифрланған файлды және шифрды шешу нәтижесін сақтауға арналған файлды таңдау ұсынылады. Процесс шифрлау кілтін және бағдарламаның негізгі терезесінде көрсетілген кілт пен блок ұзындығын пайдаланады. 561 БӨЛІМКүріш. 1.34.MixColumn және AddRoundKey түрлендіру WindowsЖаттығу
-
RijndaelDemo бағдарламасы туралы ақпаратты қараңыз. RijndaelDemo.exe модулін іске қосыңыз.
-
Rijndael алгоритмі арқылы шифрлау және шифрды шешу жолын зерттеу үшін қарапайым мәтіндік файлдардың мысалын пайдаланыңыз. Барлық циклдік түрлендірулердің (ByteSub, ShiftRow, MixColumn, AddRoundKey) шифрлау және шифрды шешу кезіндегі әсерін егжей-тегжейлі қарастырыңыз. Шифрлауға арналған бастапқы мәтінді алдын ала дайындап, *.txt файлында сақтауға болады.
-
Ақпаратты шифрлау және дешифрлеу процесін көрсететін экран пішіндерін есепте сақтаңыз, алынған нәтижелерді талдаңыз.
-
Зертханалық жұмыстың есебіне оқытушы көрсеткен нұсқа нөміріне сәйкес таңдалған бақылау тапсырмаларының жауаптарын енгізу (1.9-кесте).
| | 1.9-кесте | |
| | | |
| Сан | Бақылау тапсырмалары | |
| опция | | |
| | | |
| 1, 5, 7, 26 | Rijndael алгоритмдерінің негізгі мүмкіндіктерін салыстырыңыз | |
| | және ГОСТ 28147-89 | |
| 2, 4, 6 | Rijndael және DES алгоритмдерінің негізгі сипаттамаларын салыстырыңыз | |
| 11, 13 | Feistel желісінің құрылымын сипаттаңыз | |
| 12, 14, 16 | Мәліметтерді шифрлаудың жалпылама схемаларын ал | |
| | Rijndael алгоритмі және ГОСТ 28147-89. Оларға салыстырмалы талдау жасаңыз | |