RSА криптожүйесінде шифрлеу және шифрдің мағынасын ашу процедуралары
Айталық, А қолданушы В қолданушыға RSA криптожүйесін қолданып, шифрмен жазылған
хабар беруі керек. Бұл жағдайда А қолданушы хабарды жіберуші ролінде, ал В қолданушы
хабарды алушы ролінде болсын. Жоғарыда келтірілгендей RSA криптожүйесін хабарды алушы,
яғни В қолданушы құрастыруы керек.
В қолданушы мен А қолданушының әрекеттер тізбегін қарастырамыз:
1.
В қолданушы Р және Q екі еркін үлкен жәй сан таңдайды.
2.
В қолданушы N=P*Q модулінің мәнін есептейді.
3.
В қолданушы Эйлер функциясын есептейді:
және 1 < Кв
(N), ЕҮОБ(Кв,
(N))=1 шартын орындай отырып, кездейсоқ Кв ашық
кілтінің мәнін таңдайды.
)
N
(mod
М
С
Кв
)
N
(mod
С
)
С
(
Dв
)
С
(
D
М
в
k
в
k
М
))
М
(
Ев
(
Dв
)
N
(mod
М
)
М
(
в
k
Кв
)
N
(mod
М
М
в
Квk
)
N
(mod
1
x
)
N
(
)
N
(mod
x
x
1
)
N
(
*
n
)
1
Q
)(
1
P
(
)
N
(
)
1
Q
)(
1
P
(
)
N
(
(7)
(8)
(9)
(10)
4.
В қолданушы
салыстырмасын шешу үшін Евклидтің кеңейтілген алгоритмін қолдана отырып, kв құпия
кілтінің мәнін есептейді.
5.
В қолданушы А қолданушыға қорғалмаған канал бойынша (N, Кв) жұп сандарын жібереді.
Егер А қолданушы В қолданушыға М хабар жібергісі келсе, келесі қадамдарды орындайды:
1.
А қолданушы М бастапқы ашық мәтінді әрқайсысы Мi=0,1,2,…,N-1 сандар түрінде
берілетін блоктарға бөледі.
2.
А қолданушы
формуласы бойынша Мi сандар тізбегі түрінде берілетін мәтінді шифрлейді және В
қолданушыға С1, С2,С3,…, Сi криптограммасын жібереді.
3.
В қолданушы
формуласы бойынша kв құпия кілтті қолдана отырып, қабылданған С1,С2,С3,…,Сi
криптограммасының мағынасын ашады.
Нәтижесінде М бастапқы хабарды беретін, Мi сандар тізбегі алынады. RSA алгоритмі
практикалық құндылықтан тұруы үшін шығын шығармай үлкен жәй сандарды генерациялауға
мүмкіндік алуы қажет, Кв және kв кілттерінің мәндерін жылдам есептей білу керек.
Мысал.
САВ хабарын шифрлеу.
В қолданушының әрекеті:
1. Р=3 және Q=11 таңдайды.
2. N=P*Q=3*11=33 модулін таңдайды.
3. N=33 үшін Эйлер функциясының мәндерін есептейді.
Кв ашық кілт негізінде 0 < Кв
20, ЕҮОБ (Кв,20)=1 шартының орындалуын ескере отырып, еркін
сан таңдайды.
Айталық Кв=7.
4. В қолданушы Эвклидтің кеңейтілген алгоритмін қолдана отырып, k
В
құпия кілтінің мәнін
есептейді. Мына теңдеуді шешу арқылы:
k
В
=К
В
-1
(mod
(N))
алатынымыз:
k
В
=7
-1
(mod 20); К
В
*7=1(mod 20);
Шешімі: k
В
=3.
5. В қолданушы А қолданушыға (N=33, К
В
=7) жұп сандарын қорғалмаған канал бойынша
жібереді.
А қолданушының әрекеттері:
6. Шифрленген хабарды 0-ден 32-ге дейінгі диапазонында бүтін сандар тізбегі ретінде
көрсетеді.
Шифрленген хабар – САВ болсын. А әрпі 1 саны ретінде берілсін, В әрпі – 2 саны ретінде,
ал С – 3 саны ретінде. Сонда САВ хабарын 3 1 2 сандар тізбегі ретінде көруге болады, яғни М
1
=3,
М
2
=1, М
3
=2.
7. А қолданушы
формуласы бойынша К
В
=7 және N=33 кілттерін қолдана отырып, М
1
, М
2
және М
3
сандар тізбегі
түрінде берілген мәтінді шифрлейді.
Нәтижесінде алатыны:
С
1
=3
7
(mod 33)=2187 (mod 33)=9
С
2
=1
7
(mod 33)=1 (mod 33)=1
С
3
=2
7
(mod 33)=128 (mod 33)=29
B қолданушыға мына криптограмманы жібереді:
)).
N
(
(mod
Кв
k
1
в
)
N
(mod
М
С
Кв
i
i
).
N
(mod
C
М
Кв
i
i
.
20
10
*
2
)
1
Q
)(
1
P
(
)
33
(
)
N
(
)
33
(mod
М
)
N
(mod
K
M
С
7
i
i
i
B
С
1
, С
2
, С
3
= 9, 1, 29.
В қолданушының әрекеттері:
8.
формуласы бойынша k
В
=3 құпия кілтін қолдана отырып, алынған С
1
, С
2
, С
3
криптограммасының
мағынасын ашады.
Соңында алатынымыз:
М
1
=9
3
(mod 33)=729 (mod 33)=3
М
2
=1
3
(mod 33)=1 (mod 33)=1
М
3
=29
3
(mod 33)=24389 (mod 33)=2
Сонымен, бастапқы САВ қалпына келтірілді.
Сандарды қарапайымдылыққа тестілеу
Ашық кілтті барлық криптожүйелерде шифрлеу этаптарының бірі болып үлкен жәй
сандарды кездейсоқ таңдау болып табылады (басқа санға бөлінбейтін сандар). Разрядтылықтың
өсуімен жәй санды алу ықтималдығы едәуір кемиді және әдетте практикада 100-реттік сандар
үшін 0,013% құрайды.
Жәй санды алу ықтималдығын көтеру үшін қарастырылғаннан жұп сандар мен 5 немесе 0-
ден тұратын кіші ондық разрядты сандар шығарылады. Бірақ бұл кездейсоқ табыс ықтималдығын
3…5 дейін ұлғайта алады, бірақ одан артық емес.
Жылдамдық үшін жәй сандарды тексеруге ықтималдық тест қолдануға болады.
Негізгі әдебиет: 5нег[125-133]
Қосымша әдебиет:
Бақылау сұрақтары:
1.
Диффи және Хелман алгоритмін сипаттаңыз.
2.
Диффи және Хелман алгоритмінің кемшіліктері қандай?
3.
RSА алгоритмі қандай режимде жұмыс жасай алады?
4.
RSА алгоритмінің сенімділігі не негізделген?
Дәріс 8. Қорғау және қауіпсіздендіру жүйелерін практикалық іске асырудың мысалдары.
Хэш-функциясы. Қолданушының аутентификациясы.
Аутентификациялар протоколдары
Криптографияда хэш-функциялар деп еркін ұзындықтағы бастапқы жолды бекітілген
ұзындықтағы биттер жолына айналдыратын ақпараттарды айналдыру алгоритмін айтады.
Хэш-функциялардың қолданылуы:
Цифры қолтаңба механизмінде қолданылатын хабардың қысылған бейнесін құру үшін.
Парольдерді қорғау үшін.
Хабар аутентификациялары кодын құру үшін.
Хэш-функцияларға қойылатын негізгі талаптар:
h(m) функциясының белгілі мәні бойынша оның m аргументін табу мүмкін емес (өте
күрделі) болуы керек. Мұндай хэш-функция айналдыру мағынасында берік деп
аталады.
Берілген m аргумент үшін h(m)=h(m
'
) болатын m
'
аргументті табу мүмкін емес.
Мұндай хэш-функциялар композицияларды есептеу мағынасында берік деп аталады.
Практикалық маңыздылық үшін хэш-функцияларды алу алгоритмі жылдам есептелетін
болуы керек, одан да жақсысы – нақты аппаратты есептеу ортасында ықшамдалған
болуы керек.
Хэш-функцияларды есептеудің типтік сызбасы
)
33
(mod
С
)
N
(mod
k
C
M
3
i
i
i
B
Бастапқы хабар (t бит)
Тұрақты бастапқы хабар
Функционалды түрлену (К бит)
Циклдік жинақтауыштың құрамы
(К бит)
Ондағы негізгі параметрлер болып:
Тұрақтану ережесі (оны бастапқы хабардың стандартты ұзындығына келтіру).
Функционалды өзгеру алгоритмі (қадамдық функцияның).
К хэширлеу нәтижесінің разрядтылығы.
Хэш-функциялардың ішіндегі ең белгілілері – MD2, MD4, MD5 және SHA.
MD2, MD4, MD5 – Ривестпен өңделген MD (Massage Digest Algorithm) хэш-функцияларын
есептеу алгоритмдерінің тобы. 128-битті бейнеге қысылған еркін ұзындықтағы кіріс хабарын
түрлендіреді. Алгоритмдегі негізгі операциялар – 2
32
модулі бойынша қосу, циклдік жылжыту,
биттік операциялар
,
және
.
MD2 (1998) – 8-разрядты процессор үшін. MD4 пен MD5-тен (32-разрядты процессорларға
бағытталған) хэширлеудің бастапқы векторы мәндерімен және 256-байтты алмастыруды
қолданумен ерекшеленеді, бір блоктың өңделуі 18 циклде орындалады.
Қазіргі күнде көбірек қолданылатыны – 1991 жылы құрылған MD5 хэш-функцияларды
есептеу алгоритмі.
Айталық m бастапқы хабар t-битті m
1
, m
2
,…,m
t
жолмен берілген. m хабарының жолы 448
санын 512-ге бөлгенде қалдық беретін ұзындыққа дейін толықтырылады: бір «1» қосылады, ал
қалған сандар – «0». Алынған жолға 64-битті t саны қосылады. Егер t
2
64
болған жағдайда t
санының 64 кіші биті қолданылады. MD0 хэширлеуінің алғашқы векторының ұзындығы 128
биттен тұрады және MD0, MD1, MD2, MD3 төрт 32-битті айқастары болады, мұндағы
MD0=01234567;
MD1=89abcdef;
MD2=fedcba98;
MD3=76543210.
MD5 алгоритмінде 4-циклді функциялар қолданылады, әрқайсысы үш X, Y, Z 32-битті
сөздерге бір 32-битті сөзді салыстырады.
Бұл функциялардағы барлық операциялар бит бойынша орындалады.
h хэш-функцияның есептелуі:
Кіру: M=m
1
, m
2
,…, m
N
(512 бит бойынша N блоктар).
Алгоритм: MD
i
=q(MD
i-1
, M
i
).
Шығу: h(M)=MD
N.
q хэширлеудің қадамдық функциясын есептеу үшін төрт 32-битті A, B, C, D сөздерінен
тұратын Е жинақтауышы қолданылады. Е жинақтауышының негізгі толтырылуы болып MD
0
хэширлеуінің алғашқы векторының сөздері табылады.
М хабарының M
i
16 блоктік сөзінің өңделуі әрқайсысы 16 қадамнан тұратын 4 циклде
жүзеге асады.
i-ші циклдің әр этапында:
A=B+((A+F
i
(B, C, D)+M
i
[S
/
]+r)shlk), 1
i
L
мұндағы M
i
[S
/
] – M
i
-дан таңдалған сөздер
,
S, r, k –– 2
32
модулі бойынша қосынды «+» қадамының
параметрлері.
M
i
ағымдық блоктің L-циклді өңдеуінен кейін Е жинақтауышының модификациясы шығарылады.
MD
i
-дің әр операциясы үшін Е жинақтауышының 4 сөзді ағымдық мәндердің айқасуы болады. M
N
)
Z
X
(
)
Y
X
(
)
Z
,
Y
,
X
(
1
F
)
Z
Y
(
)
Z
X
(
)
Z
,
Y
,
X
(
2
F
)
Z
Y
X
(
)
Z
,
Y
,
X
(
3
F
)
Z
X
(
Y
)
Z
,
Y
,
X
(
4
F
блогін өңдегеннен кейін қорытынды қысылу бейнесінде хабар 4-сөзді MD
N
=ABCD 128-битті
жолдан тұрады.
Хэш-функцияларды салыстырмалы талдау
Хэш-функциялар екі параметр бойынша бағаланады:
мәліметтерді өңдеу жылдамдығы бойынша;
шабуылдың әр түріне осалдық бойынша.
86 архитектурасында қолданылатын және Windows 32 программалық ортасында
салыстырмалы кесте мына түрде болады:
Алгоритм
Жылдамдық (Мбит/с Pentium 90МГц-ке)
Ассемблер
СИ
MD4
166
82
MD5
114
60
SHA-1
47
21
RIPEMD-160
40
19
Субъектілер және объектілер аутентификациясы. Негізгі түсініктер
Қазіргі уақытта құжаттардың электронды формаларының кеңінен таралуына байланысты
және оларды өңдеу құралдары қағазсыз құжаттама авторлығы мен шынайылықты орнатудың
өзекті мәселелері болды. Қазіргі шифрлеу жүйесінің барлық артықшылықтарында олар мәліметтер
аутентификациясын қамтамасыз етуге мүмкіндік бермейді.
Танымал болып үш аутентификация есебі табылады:
Қолданушы аутентификациясы (субъекттің), ол қорғалған ақпаратқа рұқсат алғысы
келеді немесе торапқа қосылғысы келеді.
Мәліметтер аутентификациясы (объекттің) – ол бақылаудан тыс болмаған кездегі уақыт
аралығында мәліметтер массивінің өзгермеуін тексеру.
Хабарлама аутентификациясы – ашық байланыс каналы бойынша бір абонент екіншіге
жіберетін хабардың шынайылығын орнату.
Қолданушының аутентификациясы
Жүйенің жасырын ақпаратты ресурсына қатынау үшін алдымен талапкер мұндай қатынауға
өзінің құқығын дәлелдеу керек. Әдетте ол алдымен жүйеге өзінің идентификаторын жібереді
(қолданушының аты немесе тіркеу кілті), содан кейін өзінің қатынау құқығының дәлелін жібереді.
Кейін жүйе оның сол талапкер екендігіне көз жеткізу үшін тексереді.
Қатынау құқығын дәлелдеу үшін келесі тәсілдер қолданылады:
талапкердің тек қана заңды қолданушы білетін ақпаратты білуі (пароль);
заңды қолданушының өзіне тән жеке ерекшеліктерге ие болуы (саусақ ізі, ДНК
формуласы, көз қабыршығының суреті, сыртқы түр);
талапкерде тек заңды қолданушыда ғана болатын материалды заттардың болуы (кілт,
магниттік карточка);
талапкердің аппаратты қамтамасының қолданушының аппараттық қамтамасына
ұқсастығы (BIOS бақылау сомасы, тораптық картаның физикалық нөмірі);
нақты уақытпен сәйкес заңды қолданушының әрекеті (пернетақта пернелерін басу
жылдамдығы, сұранысқа жауап реакцияларының тездігі, мәтіндерді оқу жылдамдығы
немесе бейнелерді көру).
Дәстүрлі парольді жүйелер қолданушылар аутентификациясы біржақты ретте болатын үлкен
жетіспеушіліктен тұрады, яғни тек талапкер жүйеден парольді мәліметтерді алу құқығына
күмәнданбай, жүйеге өз құқығын дәлелдеуге тырысқан. Қазіргі криптожүйелерде мұндай жағдай
алмастыру кезеңіне қаскүнемдердің кіру қаупі үшін қолайсыз. Қазіргі криптожүйелерде біржақты
ретте аутентификация өткізу жеткіліксіз. Аутентификация протоколдарын және нольдік
мәліметтер беру протоколдарын қолдану талап етіледі.
Аутентификация протоколдары
Қолданушылардың бірқадамды аутентификациялары үшін «қол алысу» (handshake) туынды
протоколдар өте жиі қолданылады. Оларда бірінші жақ екінші жаққа ортақ құпия ақпаратты
жариясыз айқын түрдегі ақпарат ретінде білетінін айтады.
А мен В екі қолданушының «қол алысу» протоколдарын қарастырамыз:
1.
Сеанс басталмас бұрын қолданушылардың әрқайсысы өзара К сенім кілтіне ие болады.
2.
А қолданушы В қолданушыға К кілтінде кодталған, үлкен кездейсоқ Х санын жібере отырып,
қол алысу процедурасын келтіреді. Оның жіберілуі Е
К
(x) сияқты болып көрінеді, мұндағы Е
К
– симметриялық шифрлеудің әйгілі функциясы.
3.
В қолданушы Е
К
(x) шифрлеуін ала отырып, өзара К сенім кілтіне ие болғандықтан Х-ті
қалпына келтіреді. Бұдан кейін ол әйгілі біржақты F(x) функциясын қолдана отырып, Х-ті
шифрлейді (F(х) ретінде көбінесе дискретті дәрежеге шығаруды таңдайды). Есептелген мән А
қолданушыға жіберіледі.
4.
Қолданушы F(x) хабарын өзі есептеген F
/
(x) функциясымен салыстырады. F(x) және F
/
(x)
мәндері сәйкес келген жағдайда А қолданушы, өзара сенім кілтін білетін болғандықтан В
қолданушыға сене алады.
Қаскүнем бақылауы мүмкін байланыстың ашық каналы бойынша жіберілу нәтижесінде, оған
еш пайда бермейтін F
K
(x) және F(x) шамалары жарияланған.
А мен В-ның өзара сенімділігі үшін аутентификация процедурасын екі рет қайталау керек.
Білімнің нольдік жариялануының дәлелдемесі
Нольдік жарияланумен аутентификациялар протоколдарының мәні (zero-knoledge preef)
талапкердегі құпия ақпарат бұл ақпаратты (немесе оның бөлігін) верификатордың, немесе
үшінші жақтың білуінсіз тексерілуге әкеледі.
Нольдік білімдерді берудің бірқадамды жүйесінің мысалы – бұл Гиллоу-Куаскуотер жүйесі,
онда А жақ (әдетте кредиттік карточка) В жаққа (әдетте ақша беру жүйесі) Х құпия кілтінің
біліміне ие екенін, сонымен қатар бұл санды жария етпей, В жақ Х құпия кілтті білмейтінін
дәлелдейді:
1.
А және В жақтар ашық параметрлер негізінде N жәй сан мен V бүтін санның
қолданылатынын біледі:
V<(N-1),
оларды ортақ қатынау жүйелік орнынан алады. V және N сандары – сеанстан сеансқа
ауыспайтын статикалық ашық кілттер ( 512-ден 4096-ға дейін екілік разрядтар).
2.
Ақпараттық өзара әрекеттен бұрын тек қана А талапкер Х заңды қолданушының құпия
кілтін біледі. Жеке А-ның идентификаторы – бұл Y саны, яғни
(Y*X
) mod N=1
3.
А талапкер кездейсоқ r-ді таңдайды:
r<(N-1),
және T-ны есептейді:
T=(r
mod V),
және B-ға Y және T сандарын жібереді.
4.
B верификаторы кездейсоқ бүтін d-ны таңдайды:
d<(N-1)
және оны А талапкерге жібереді.
5.
А талапкер есептейді:
D=r*X
d
mod N
Және оны В-ға жібереді.
6. B верификаторы T
/
функциясын өз еркімен есептейді
T
/
=(D
Y
d
mod N)
және оның нәтижесін алынған Т-мен салыстырады. Егер Т=Т
/
болса, онда талапкер
шынымен де Х құпия санын біледі және оған сенуге болады.
Ірі бірлескен кеңдік-тарату есептеу жүйелерінде әр қолданушының сенім кілті бар
аутентификация орталығы енгізіледі, ал әр қолданушыда сервердің сенім кілті болады. Сенімдік
қатынастар ұйымы үшін А мен В қолданушыларының арасындағы орталық олар үшін төрт «қол
алысу» нәтижесінде сеанстық кілтті генерациялайтын делдал ретінде қолданылады.
Аутентификация орталығының ең танымал практикалық жүзеге асырылуы болып Kerberos
сызбасы табылады (1980 ж.).
Достарыңызбен бөлісу: |