DES-ң жалпы құрылымы 1 суретте көрсетілген. Бастапқы мәліметтердің әрбір 64- битты блоктын шифрлау процесін үш кезеңге бөлуге болады:
деректер блогын дайындау;
«негізгі циклдың» 16 раунды;
деректер блогының соңғы өңдеуі.
Бірінші кезеңде бастапқы мәтіннің 64-битты блогының бастапқы орын ауыстыруы орындалады, сол кезде биттер белгілі түрде қайтала реттеледі.
Сурет 1. DES-ң жалпы схемасы
Келесі (негізгі) кезеңде блок екі бөлшекке (бұтаққа) бөлінеді, әрбіреуі 32 бит. Оң жақ бұтағы кейбір F функцияны және сәйкес жарым-жарты кілтті пайдаланып түрлендіріледі. Жарым-жарты кілт шифрлаудың негізгі кілтінен арнайы алгоритмы бойынша алынады. Сосын блоктың сол жақ пен оң жақ бұтақтарымен деректер алмастырылады. Бұл циклда 16 рет қайталанады.
Ақырында, үшінші кезеңде негізгі циклдың он алты қадамынан кейін алынған нәтиженің орыны ауыстыралады. Бұл орын ауыстыру бастапқы орын ауыстыруға кері болады.
DES стандарты бойынша криптографиялық түрлендірудің барлық кезеңдерін толық қарап шығайық.
Бірінші кезеңде бастапқы деректердің 64-битты блогы бастапқы орын ауыстыруға душар етеді. Әдебиетте осы операцияны кейде «ағарту» - whitening деп атайды. Бастапқы орын ауыстыруда деректер блогының биты белгілі түрде қайтала реттеледі. Бұл операция бастапқы хабарға кейбір «ретсіздік» береді, сонымен статистикалық әдісі арқылы криптоталдаудың пайдалану мүмкіндігін азайтады.
Деректер блоктың бастапқы орын ауыстыруы мен бірге кілттің 56 битын бастапқы орын ауыстыруы орындалады. 4.1 суреттен көрініп тұр, әрбір раундта сәйкес 48-битты жарым-жарты кілт Ki пайдаланады. Ki кілттер нақты алгоритм арқылы бастапқы кілттің әрбір битын бірнеше рет пайдалана отырып алынады. Әрбір раундта 56-битты кілт екі 28- битты жартыға бөлінеді. Сосын жартылар солға қарай раунд нөміріне байланысты бір не екі битқа ығысады. Ығысудан кейін белгілі бір түрде 56 биттан 48 таңдап алынады. Осы кезде биттың бағынынқы көптігі ғана таңдап алынбай олардың реті де өзгереді, сондықтан бұл операция «сығуымен бірге орын ауыстыру» деп аталады. Оның нәтижесі 48 биттен тұратын жиынтық. Орта есеппен бастапқы 56-битты кілттің әрбір биты 16 қосалқы кілттерден 14-де пайдаланады.
Онан әрі түрлендірудің негізгі циклы орындалады. Ол Фейштель желі бойынша ұйымдастырылған және 16 бірдей раундтан тұрады. Бұл кезде әрбір раундта (сур. 2) аралық 64-битты мән пайда болады, ол сосын келесі раундта өңделеді.
Әрбір аралық мәннің сол жақ және оң жақ бұтағы жеке 32-битты мәні секілді өңделеді, олар белгіленген L және R.
Алдымен, орын ауыстыруды және 16 битке кеңейтуді анықтайтын кестені пайдаланып, Ri блоктың оң жағы 48 битке дейін кеңейтіледі. XOR операцияны орындау үшін бұл операция оң жақ бөліктің мөлшерін кілт мөлшеріне сәйкестіреді. Одан басқа, осы операцияның орындауынан бастапқы деректер мен кілттің биттерінен нәтиженің барлық биттерінің тәуелділігі тез күшейеді (бұл «көшкін эффектісі» деп аталады).
Сурет 2. DES-ң бір раундтың құрылымы
Алынған 48-битты мәні үшін кеңейюімен бірге орын ауыстыруды орындағаннан кейін, 48-битты қосалқы кілтпен Ki XOR операциясы орындалады. Сосын алынған 48- битты мәні ауыстыру блоктың S (ағыл. Substitution – ауыстыру, орнына қою) кіруіне беріледі, нәтижесінде 32-битты мән алынады. Ауыстыру сегіз ауыстыру блокта немесе сегіз S-блокта (S-boxes) жасалынады. Осы операция орындалғанда деректердің 48 биты сегіз 6-битты қосалқы блокқа бөлінеді, олардың әрбіреуі төрт битпен ауыстырылады. S- блок көмегімен ауыстыру DES-ң ең маңызды кезеңі болып табылады. Осы операцияға максимал қауіпсіздігін қамтамасыз ету үшін ауыстыру кестелері арнайы жобаланған. Бұл кезеңнің нәтижесінде сегіз 4-битты блок пайда болады, олар қайтадан бірыңғай 32-битты мәніне бірлеседі.
Әрі қарай 32-битты мән Р орын ауыстыру (ағыл. Permutation – орын ауыстыру), көмегімен өңделеді, ол пайдаланатың кілтке тәуелді болмайды. Орын ауыстырудың мақсаты - келесі шифрлау раундта әрбір бит басқа S-блокпен өңделсін деп биттерді максимал қайта реттеуі.
Ақырында, орын ауыстыру нәтижесі XOR операция көмегімен бастапқы 64-битты деректер блоктың сол жақ жартысымен бірлеседі. Сосын сол жақ және оң жақ жартылары орнымен алмасады, және келесі раунд басталады.
Он алты шифрлау раундтан кейін нәтиженің соңғы орын ауыстыруы орындалады.
Бұл орын ауыстыру бастапқы орын ауыстыруға инверсты (кері).
Барлық көрсетілген қадамдарды орындағаннан кейін деректер блогы толық шифрланған деп есептеледі және бастапқы хабардың келесі блогын шифрлауға болады.
Сонымен, қағаздағы DES-ң жай бейнелеуі ғана күрделі болып көрінеді, ал оның бағдарламалық жүзеге асыруы одан да қиын!
Достарыңызбен бөлісу: |