67
7
АҒЫНДЫ ШИФРЛАР ЖӘНЕ КЕЗДЕЙСОҚ ТӘРІЗДЕС САНДАРДЫҢ
ГЕНЕРАТОРЛАРЫ
1 бөлім
Бұл бөлімнен нақты уақыт тәртібінде деректер берілгенде қалай шифрлау
орындалатының білуге болады.
Ағынды шифрлауда кездейсоқ кілттер генераторларының
пайдалану принциптері көрсетілген. Кездейсоқ тәріздес (псевдокездейсоқ) сандардың
кейбір қарапайым генераторлары қарастырылады: сызықтық конгруэнтты, кешігуі бар
Фибоначчи әдісі бойынша генератор, BBS алгоритм негізіндегі кездейсоқ тәріздес сандар
генераторы. Әрбір алгоритмның сипаттауы мысалмен бірге беріледі.
Бөлім мақсаты: «ағынды шифр» ұғымымен және ағынды шифрлауда кездейсоқ
тәріздес (псевдокездейсоқ) сандар генераторларының пайдалану принциптерімен таңысу.
7.1 Ағынды шифрлар
Блокты алгоритм белгілі бір ұзындығы бар блоктарды шифрлауға арналған. Бірақ,
деректерді блоктармен емес, мысалы, символдар бойынша шифрлаудың қажеті болу
мүмкін.
Ағынды шифр (stream cipher) кіру хабардың биттерін (немесе байттарын) бір-
бірден түрлендіріп бір операцияны
орындайды. Ағынды шифрлау алгоритмы хабарды
бүтін сандар блоктарға бөлуді қажет етпейді, сондықтан ол нақты уақытта істей алады.
Сонымен,
егер символдар ағыны берілсе, әрбір символ шифрланып бірден беріледі.
Типті ағынды шифрдың жұмысы 7.1 суретте көрсетілген.
Сурет 7.1. Ағынды
шифрдың жұмыс принципі
Кілттер генераторы биттер ағының
k
i
шығарады, олар гамма ретінде пайдаланатын
болады. Хабар көзі ашық мәтіннің
х
i
биттерін генерациялайды, олар гаммамен модулі 2
бойынша қосылады, нәтижесінде шифрланған хабардың
у
i
биттері алынады:
y
i
=
x
i
k
i
,
i = 1, 2,…,
n
Шифрмәтіннен
y
1
,
y
2
,...,
y
n
хабарды
x
1
,
x
2
,...,
x
n
қалпына келтіру үшін тура шифрлау
кезіндегідей кілттік тізбекті
k
1
генерациялау қажет
y
k
,...,
k
n
, және ашып оқу үшін
x
i
=
y
i
k
i
,
i = 1, 2,…,
n
формуланы пайдалану керек.
Әдетте бастапқы хабар мен кілттік тізбегі тәуелсіз бит ағыны болып табылады.
Сонымен, барлық ағынды шифрлар үшін шифрлайтын (және дешифрлайтын) түрлендіруі
бірдей болғандықтан, олар тек кілттер генераторын жасау тәсілдерімен ажыратылады.
Осыдан, жүйенің қауіпсіздігі кілттер ағын генератордың қасиетіне толық тәуелді болады.
Егер кілттер ағын генераторы тек нөлден (немесе бірден) тұратын тізбекті жасап шығарса,
онда шифрланған хабар тура бастапқы биттер ағыны сияқты болады. Егер гамма ретінде
бір символ (мысалы, сегіз битты) пайдаланса, онда шифрланған хабар бастапқыға
ұқсамасада, жүйенің қауіпсіздігі нашар болады. Бұл жағдайда мәтін ұзындығы бойынша
68
кілт кодын көп рет қайталағанда, оны статистикалық әдістер арқылы ашуға болады. Мұны
қарапайым мысал көмегімен түсіндірейік - цифрлық мәтін кілттін қысқа цифрлық
кодымен гаммалау әдіс арқылы жабылған.
Мысал. Бастапқы хабар екілік-ондық сан болсын, яғни бұл санның әрбір тетрадасы
(төрт биты) ондық цифрды 0...9 екілік түрге аударғанда алынған. Шифрланған хабардың
Y
24 биты ұстап алынсын, яғни алты тетрада
Y
1
,
Y
2
,
Y
3
,
Y
4
,
Y
5
,
Y
6
немесе мәндері 1100 1101
1110 1111 0000 0001. Шифрлау кілті төрт биттен тұратыны белгілі болсын, олар да бір
мәнді ондық сан, яғни бірдей мән 0K9 бастапқы хабардың әрбір төрт битын шифрлау үшін
пайдаланған. Сонымен, санды
X
1
,
X
2
,
X
3
,
X
4
,
X
5
,
X
6
кілтпен
К шифрлауды теңдеу жүйесі
түрінде көрсетуге болады:
X
1
К = 1100
X
2
К = 1101
X
3
К = 1110
X
4
К = 1111
X
5
К = 0000
X
6
К = 0001
Х
i
0 ден 9-ға дейін ондық мәндерді қабылдайды деген шарттан, белгісіз
К-ны іздеу
үшін, барлық мүмкін болатын
X
1
және модулі 2 бойынша қосындысы 1100 нәтижеге
келтіретін
К мәндерін анықтаймыз:
K = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
Y
1
= 1100 1100 1100 1100 1100 1100 1100 1100 1100 1100
---------------------
X
1
’
= 1100 1101 1110 1111 1000 1001 10101 1011 0100 0101
Бастапқы мәні 0 ден 9-ға дейін цифрден тұрғандықтан, 0000, 0001, 0010, 0011, 0110,
0111 кілт мәндерін қарамауға болады, өйткені олармен қосқанда ондық түрде 9-дан артық
мәндер алынады. Осындай мәндер ашық мәтінде болмады. Сонымен, талдаудын бірінші
кезеңінде мүмкін болатын кілт санын оннан төртке дейін азайттық.
Белгісіз кілтті
К әрі қарай іздеу үшін барлық мүмкін болатын
X
2
мәндерін және
модулі 2
бойынша нәтижеге Y
2
= 1101 келтіретін қалған кілт варианттарын анықтаймыз:
K = 0100 0101 1000 1001
Y
2
= 1101 1101 1101 1101
---------------------
X
2
’
= 1001 1000 0101 0100
Бұл кезеңде ешқандай қалған кілттер варианты азаймады. Оны
Y
3
=1110
пайдаланып жасап көрейік:
K = 0100 0101 1000 1001
Y
3
= 1110 1110 1110 1110
---------------------
X
2
’
= 1010 1011 0110 0111
Осы кезеңнен кейін анық көрінеді, кілт ретінде 0100 және 0101 мәні болалмайды.
Кілттің екі мүмкін мәні қалады: 1000
(2)
= 8
(10)
және 1001
(2)
= 9
(10)
.
Осы әдістеме бойынша онан әрі талдау шифрлауда пайдаланған кілтті бірмәнді
көрсете алмайды. Бірақ, мүмкін болатын кілттер кеңістігінің оннан екіге дейін азайғаны
жаман емес. Енді хабарларды дешифрлау үшін табылған кілттерді пайдаланып, алынған
мәтіндердің мағынасын талдау керек.
Нақты жағдайда бастапқы хабар цифрден ғана емес, басқа символдардан да
құрастырылады, сонда статистикалық талдаудын пайдалануы кілтті тез және дәл табуға
мүмкіндік береді.
7.2 Ағынды шифрлауда псевдокездейсоқ сандар генераторларды
пайдалану принциптері
Қазіргі информатика псевдокездейсоқ сандарды әртүрлі қосымшаларда жиі
пайдаланады – математикалық статистика және имитациялық модельдеу әдістерінен
криптографияға
дейін.
Мұнда
алынатын
нәтиженің
сапасы
пайдаланатың
псевдокездейсоқ сандар генераторлардың (ПКСГ) сапасына тікелей тәуелді.