gi = mi mod 26,
мұндағы gi – алынған криптограмманың әріптері.
Криптограмманы ашу одан кілттік сөзді 26 модулі бойынша алумен орындалады.
6.2 Қазіргі кездегі симметриялық шифрлер
Шеннон пікірі бойынша практикалық шифрлерде екі жалпы принципі: шашырату мен араластыруды қолдану керек.
Ашық мәтіннің статистикалық қасиеттерін жасыру үшін қолданатын ашық мәтіннің бір белгісінің шифрмәтіннің көп белгілеріне әсерін тарату шашырату болып табылады.
Араластыру – ашық мәтін мен шифрленген мәтін арасындағы өзара байланыстың статистикалық қасиеттерін табуды күрделеу үшін қолданылатын шифрлеу түрлендірулері. Бірақ шифрды ашуын қиындатуымен бірге кілт белгілі болғанда пайдаланушыға шифрлеу және шифрды ашу процестерін жеңіл орындалуын шифр қамтамасыздандыруы керек.
Шашырату мен араластырудың эффектілеріне жету үшін ең көп тараған әдіс - құрамды шифрды яғни бірнеше қарапайым шифрлердің тізбегінен құрастырылған шифрды қолдану болып табылады. Мәліметтерді шифрлеу және шифрін ашу кезде бастапқы шифрлер белгілі ретпен қолданылады. Құрамды шифрлерде қарапайым шифрлер ретінде әдетте қарапайым орын алмастыру мен орын басу қолданылады.
Ақпарат блогының өлшеміне қарай криптоалгоритмдер келесі түрлерге бөлінеді:
а) ағынды шифрлер. Ағынды шифрлерде кодалану бірлігі бір бит болып табылады. Кодалау нәтижесі алдында келген кірудегі ағыннан тәуелді емес. Сұлба ақпарат ағындарын жіберу жүйелерде қолданылады, яғни ақпаратты жіберу процесі уақыттың кез келген моментінде басталуы немесе аяқталуы және кездейсоқ үзілуі мүмкін болған жағдайларда. Ең көп тараған ағынды шифрлердің мысалы скремблерлер болып табылады.
б) блоктык шифрлер. Осындай шифрлерде кодалану бірлігі бірнеше байттардан тұратын блок болып табылады. Кодалау нәтижесі тек қана осы блоктың бастапқы байттарынан тәуелді. Ақпаратты пакеттік тасымалдағанда және файлдарды кодалағанда осы сұлба қолданылады. Блоктық шифрлер ақпараттың блогың (4-тен 32 байтқа дейін) тұтас бірлік ретінде шифрлейді. Сондықтан толық іріктеумен жасалған шабуылдарға түрлендірудің беріктігі көпесе өседі және де әртүрлі математикалық, алгоритмдік түрлендірулерді қолдануға мүмкіндік береді.
Скремблерлер. Ақпараттың үздіксіз ағындарын биттар бойынша шифрлеуге мүмкіндік беретін алгоритмдердің программалық немесе аппараттық іске асырулары скремблер деп аталады. Әр қадамда берілген алгоритм бойынша өзгеретін биттар жиыны скремблерді құрастырады. Скремблердің әр қадамы орындалғаннан кейін оның шығысында шифрлеу бит – 0 немесе 1 пайда болады, ол ақпараттық ағынның ағынды битіне XOR операциясымен қосындыланады.
Соңғы кездерде ақпаратты биттар тізбегі ретінде тасымалдаудың көлемі азайған себебінен осындай тізбектерді қорғауға өңделген скрембрлерлеу алгоритмдерін қолдану аймағы да азайды. Қазіргі кездегі жүйелерде практикада пакеттерді коммутациялайтын желілер қолданылады, олардың конфиденциалдығын қамтамасыздандаруға блоктык шифрлер қолданылады.
Жүйе арқылы өтетін ақпарат ағынын биттар бойынша өзгерту скремблерлеудің мағынасы болып табылады. Скремблерде қолданылатын жалғыз операция XOR – "биттік шығару НЕМЕСЕ". Ақпараттық ағынның тасымалдануымен бірге скремблерде параллельді белгілі ереже бойынша кодалау ағыны генерацияланады. Тура және кері де шифрлеу бастапқы тізбекке кодалану тізбекті XOR бойынша қосумен орындалады. Кодалау тізбекті генерациялау ақпараттың бастапқы көлемінен (кілттен) циклдык келесі алгоритм бойынша орындалады: ағынды биттар жиынынан белгілі разрядтардың мәндері таңдалынып, XOR операциясымен өзара қосылады. Барлық разрядтар 1 битке ығысады, ал жаңадан алынған мән ("0" немесе "1") босатылған ең кіші разрядқа орнатылады. Ығысуға дейін жоғарғы разрядта болған мән кодалау тізбегіне қосылып оның кезекті биты болып қалады.
Скремблерді электрондық және де электрлік негізінде іске асыруға болатындығы оны далалық жағдайларда кең қолдануының себебі болды. Сонымен бірге, шығудағы тізбектің әр биті тек қана жалғыз кірудегі биттен тәуелді болғандықтан, мәліметтерді ағынды тасымалдауда қорғау скремблерлері кең қолданылады. Себебі мәліметтерді тасымалдау каналдарында міндетті түрде бөгеттер пайда болады, ал осы жағдайда олар блоктық шифрдегідей бірнеше емес, тек қана бөлек биттарды өзгертеді.
Скремблерленген тізбектің шифрін ашу да кодалауға қолданатын сұлбамен орындалады. Сондықтан алгоритмдерде нәтижелік кодалау XOR -" шығару НЕМЕСЕ" операциясымен орындалады, бұл сұлба шифрды ашқан кезде ешқандай қосымша есептеу шығындарды қолданбай толығымен біртекті қалпына келеді.
Скремблерлер негізіндегі шифрлердің маңызды мәселесі – жіберетін (кодалайтын) және қабылдайтын (кодасын ашатын) құрылғыларды синхронизациялау. Бір бит қалдырылып кетсе немесе қате орнатылса, барлық жіберілген ақпарат жойылады. Сондықтан скремблерлер негізіндегі шифрлеу жүйелерде синхронизациялау әдістеріне көп зер салынады. Практикада осындай мақсатымен келесі екі әдістің комбинациясы қолданылады:
а) ақпарат ағынына қабылдайтын жаққа алдын ала белгілі синхронизациялайтын биттарды қосу; қабылдаған хабарда осындай биттар табылмаса қабылдаушы жіберушімен синхронизациялауды активті іздей бастайды;
б) уақыттық импульстердің жоғары дәлдігі бар генераторларын қолдану; синхронизация жоғалған уақыттарда қабылданатын ақпарат биттарының шифрын ашу синхронизациялаусыз "есте қалғанымен" өткізуге мүмкіндік береді.
Кері байланыста қолданылатын биттар саны яғни кодалау биттар тізбегін жасайтын жады құрылғысының разряды скремблердің разряды деп аталады. Криптоберіктік параметрлері жағынан бұл шама блоктық шифрлердің ұзындығымен бірдей. Скремблер разряды неғұрлым жоғары болса, солғұрлым оны қолдануда негізделген жүйенің криптоберіктігі жоғары болады.
Скремблердің жұмыс уаықты ұзақ болған кезде міндетті түрде оның циклдануы пайда болады. Белгілі такттер саны орындалғаннан кейін скремблер ячейкаларында онда алдында болған биттар комбинациясы пайда болады. Осы моменттен бастап кодалау тізбегі белгілі периодымен циклдык қайталана бастайды. Бұл мәселені шешу мүмкін емес, себебі скремблердің N разрядында биттардың 2N комбинациясынан артық бола алмайды, яғни 2N-1 циклдардан кейін комбинацияның қайталануы міндетті түрде пайда болады.
Фальсификацияға қарсы тұра алмауы скремблерлеу алгоритмдердің кемшілігі болып табылады.
7 Дәріс. Қазіргі кездегі симметриялық криптожүйелер. Блоктық шифрлер
Дәріс мазмұны: симметриялық блоктық шифрлеу әдістері.
Дәріс мақсаты: қазіргі кездегі блоктың шифрлеу әдістерін оқу.
Қазіргі уақытта берік блоктық шифрлердің көптеген саны өңделген. Практикада барлық алгоритмдер түрлендіруге биективті (кері айналатын) математикалық түрлендірулердің анықталған жиынын қолданады.
Блоктық криптоалгоритмдер өзінің жұмысында белгілі ұзындығы бар кірудегі ақпараттың блогын түрлендіріп, кілті жоқ пайдаланушылар оқи алмайтын бірдей көлемдегі нәтижелік блокты өндіреді. Бұл қасиет блоктық алгоритмдерінің сипатты ерекшелігі болып табылады. Сонымен блоктық шифрдың жұмысының сұлбасын келесідей функциялармен бейнелеуге болады
және
Key кілті блоктық криптоалгоритмдің параметрі және де белгілі ұзындығы бар екілік ақпараттың кейбір блогы болып табылады. Мәліметтердің бастапқы (X) және шифрленген (Z) блоктарыныңда бір біріне тең бірақ кілт ұзындығынан айрықша болуы мүмкін белгілі ұзындықтары бар.
Егер де тек қана барлық мүмкін болатын кілттерді іріктеп хабар түсінікті болатындай шифрленген блоктың шифрын ашу мүмкін болса6 онда криптоалгоритм идеалды берік деп аталады. Ықтималдық теориясы бойынша кілттердің жартысын іріктегеннен кейін ізделінетін кілт 1/2 ықтималдығымен табылады, сонда кілтінің ұзындығы N–ге тең идеалды берік криптоалгоритмді бұзу үшін жуықтап, 2N-1 тексерулерді орындау керек.
Сонымен жалпы кезде блоктық шифрдың беріктігі тек қана кілт ұзындығынан тәуелді болады және де ұзындық өскенде экспоненциалды заң бойынша өседі. Диагоналды параллелизмі бар болғандықтан 1 кілтті тексеруге 1 тактты талап ететін арнайы жасалған көп процессорлық жүйеде кілттерді іріктеу орындалады десек те, 128 биты бар кілтті бұзу үшін қазіргі кездегі техникаға ең кемінде 1021 жыл қажет. Әрине, айтылғанның барлығын идеалды берік шифрлерге қолдануға болады.
Осы шарттан басқа идеалды берік шифрлерге тағы бір өте маңызды талап қойылады, олар осы талапты міндетті түрде қанағаттандыруы керек. Блоктың белгілі бастапқы және шифрленген мәндерінде осы түрлендіруді орындауға қолданған кілтті тек қана толық іріктеу жолымен табуға болады. Тыстан келген пайдаланушыға бастапқы мәтіннің кейбір бөлігі белгілі болатын жағдай жиі кездеседі. Мысалы, электронды бланктердегі стандартты жазбалар, файлдардың тіркелген бас жолдары, мәтінде жиі кездесетін ұзын сөздер немесе байт тізбектері. Осы мәселені есепке алсақ жоғарыда аталған талап артық болмайды және берік криптоалгоритмдерімен бірінші талаптай міндетті түрде орындалады.
Сонымен, берік блоктық шифрдың функциясына келесідей шарттар орнатылады:
1) EnCrypt функциясы кері айналатын болуы керек;
2) белгілі Z блогы бойынша X хабарды оқу үшін Key кілттердің барлығын іріктеу жолдан басқа әдістері болмауы керек;
3) белгілі X мәтінді Z түрлендіруі қандай Key кілтімен орындалғанын анықтау тек қана кілттерді толығымен іріктеу жолдан басқа жолдары болмауы керек.
Осы үш шарттың барлығының бірдей өте үлкен ықтималдығымен орындалуын қамтамасыздандыруға блоктық шифрлерді өңдеушілерінің қолданатын әдістерін қарастырайық.
Түрлендірілетін блок оның разрядына сәйкес диапазонның бүтін теріс таңбалы емес саны түрінде көрсетілуіне болатын мүмкіншілігінде берілген блоктық криптоалгоритмге қолданылатын әрекеттер негізделген. Сонымен бірге, разряды екінің дәрежесі болып табылатын блокты кішілеу диапазонның тәуелсіз теріс таңбалы емес бірнеше сандар түрінде көрсетуге болады (жоғарыда қарастырылған 32-биттік блокты 0..65535 диапазондағы 2 тәуелсіз санмен немесе 0..255 диапазондағы 4 тәуелсіз санмен көрсетуге болады). Осы сандармен блоктық криптоалгоритм белгілі сұлба бойынша белгілі әрекеттерді жасайды.
Әр белгілі блоктық критоалгоритмнің қолданатын функциялары және блокка қолданатын операциялар тізбегі оның "ноу-хау" болып табылады. Барлық әлемнің зерттеу орталықтары жылына бір-екі рет кезекті блоктық шифрды баспада шығарады. Криптоаналитиктердің талқылауы негізінде шифр тұрақты криптоалгоритм деген атаққа ие болады немесе (жиі жағдайда) тек қана криптографияның тарихында қалады.
Кілтті бірнеше рет және жанама қолдану блоктық алгоритмдердің сипатты белгісі болып табылады. Бастапқы және шифрленген мәтін таныс болған кезде кілттің шифрын ашу мүмкін болмауы үшін осы амал қолданылады. Осы есепті шешу үшін жоғарыда келтірілген түрлендірулерде кілттің өзінің мәні емес, кейбір кері айналмайтын (биективті емес) кілттен тәуелді функция қолданылады. Сонымен бірге, осындай түрлендірулерде бір блок немесе кілт элементі қайта-қайта қолданылады. Сонда функция X шама арқылы кері айналатын функция болатын талап орындалса, функцияны Key кілт арқылы кері айналмайтын болатынын орнатуға болады.
Ақпарат пакетін кодалау процесінде бөлек блокты шифрлеу және оның шифрын ашу операциялары қайта-қайта орындалады, ал кілт мәні мен одан тәуелді функция мәні өзгермей қалады. Сондықтан кейбір кезде осы мәндерді алдын-ала есептеп, кілтпен бірге оперативті жадыда сақтап қоюға болады. Осы мәндер тек қана кілттен тәуелді болғандықтан, олар криптографияда кілт материалы деп аталады. Бұл операция ешқашанда кілт ұзындығымен алгоритмнің өзінің беріктігін өзгертпейтінін айтып кеткен жөн. Бұл жерде аралық есептеулерді кэштеу жолымен тек қана есептеулер жылдамдығы оптималданады. Аталған әрекеттер көптеген блоктық криптоалгоритмдерде кездеседі және кілттің кеңейтілуі деп аталады.
Симметриялық шифрлеудің типтік алгоритмдері ретінде көп уақыт бойынша АҚШ-пен дүние жүзінде стандарт болып табылатын белгілі DES (Data Encryption Standard) шифрлеу алгоритмін; еуропалық IDEA (Inernatioal Data Encryption Algorithm) шифрлеу стандартын; ресей ГОСТ-2814789 шифрлеу стандартын атауға болады. Жеткілікті ұзын кілтпен басқарылатын жәй орын ауыстыру мен орын ауыстырулардың көп кезектесуін қолдана отырып, жақсы алмасуы мен шашыратуы бар берік шифрды алуға болады.
Бұл алгоритмдердің барлығы Фейстель желісінің методологиясына сәйкес құрастырылған. Мәтіннің бір бөлігінен есептелген мәнді басқа бөлігінен есептелген мәніне салуды қолданатын кері айналатын мәтін түрлендірулердің сұлбасы (әдісі) Фейстель желісі деп аталады. Фейстель желісінде блокты шифрлеу процесі бір неше қадамда (раундтарда) орындалады, әр раундта блок өзгертілетін және өзгертілмейтін бөліктерге бөлінеді; шифрлеу функцияның көмегімен өзгертілмейтін бөлік және раундтық кілттен модификациялайтын код өндіріледі, бұл код өзгертілетін бөлікті гаммалу операциямен модификациялауға қолданылады. Осы әдістеме кілт пен ақпараттың бастапқы блогын бірнеше рет қолдану маңызды талабын орындалуын қамтамасыздандырады.
Бастапқы мәліметтерді бірнеше рет шашырату және орын ауыстыру симметриялық шифрлеудің мағынасы болып табылады. DES, IDEA және ГОСТ 2814789 алгоритмдерінің жұмысын келесі түрде бейнелеуге болады (7.1 суретті қараңыз):
1) бастапқы мәліметтер белгілі ұзындығы бар блоктарға бөлінеді, әр блокта бастапқы орын ауыстыру орындалады;
2) шифрлеу кілт көмегімен мәліметтер түрленеді (кілттің өзіде алдын-ала түрлендіріледі);
3) түрлендіру бірнеше рет (белгілі сан) орындалады, әр түрлендіруден кейін мәліметтер орны алмасады; түрлендіру үшін бастапқы нәтиже ретінді алдыңғы түрлендіру мен орын ауыстыру нәтижесі қолданылады;
4) белгілі раундтар санынан кейін ((DES -16, IDEA – 8, ГОСТ - 32) соңғы орын ауыстыру орындалады, алынған нәтиже шифрмәтін болып табылады.
DES алгоритмінің маңызды кемшілігі өте қысқа кілт болып табылады (56 бит), қазіргі кездегі компьютерлер құралдарының даму деңгейінде кілт мәндерін тікелей іріктеу жолымен оны ашудың ықтималдығы жоғары. Ресей стандартында бұл кемшілік жоқ (кілт ұзындығы – 256 бит), IDEA алгоритмінде – 128. DES алгоритмінің Triple DES модификациясында (үш есе DES) үш кілтті қолданады: ашық мәтін бірінші кілтте, алынған мәтін – екіншіде, нәтижесі – үшінші кілтте шифрленеді. Барлық үш кілтте бір бірінен тәуелсіз таңдалынады.
AES (Advanced Encryption Standard) деп аталған симмметриялық шифрлеудің жаңа стандарты - блоктық шифр Rijndael, оның сенімді математикалық түрлендіру базасы бар (Бельгияның криптографияның екі маманы Дэймен Дж (J.Daemon) және В. Райджмен (V. Rijmen) өңдеген). Алгоритм блок ұзындығын 128 бит және кілттің үш ұзындығын: 128, 192, 256 бит сүйемелдейді. AES алгоритмінің құрылымы қазіргі кездегі компьютерлерде және серверлерде оптималдаудың жоғары деңгейіне жетуге мүмкіндік береді, сонымен бірге оның орындалуын көп кешіктірмейді. Кейбір авторлардың пікірі бойынша бұл алгоритмде де кейін белгілі болатын криптографиялық кемшіліктері бар.
7.1 Сурет – Симметриялық шифрлеудің типтік алгоритмінің қарапайымдалған сұлбасы
Симметриялық шифрлеудің барлық жүйелерінде келесідей кемшіліктер бар: ақпараттық алмасудың екі қатысушысына жасырын кілтті жіберу үшін сенімді және қорғалған канал болуы керек; кілттерді генерациялайтын және тарататын қызметіне жоғары талаптар қойылады, себебі «әрқайсысы әрқайсысымен» сұлбасы бойынша өзара байланысатын n абоненттері үшін кілттер саны қажет.
Басқа сөзбен айтқанда кілт санының абоненттер санынан тәуелдігі квадраттық болады. Сондықтан симметриялық шифрлеу жүйесін осындай түрде қосымша әдістер мен құралдарды қолданбай Internet желісінде қолдану практикалық мүмкін емес.
Достарыңызбен бөлісу: |