Рюкзак системалари
Download 108 Kb.
|
РЮКЗАК СИСТЕМАЛАРИ1
Лемма-1. Фараз қилайлик, А=(a1, ..., an) вектор тез ўсувчан ва В вектор А дан m ва t ларга нисбатан кучли модул бўйича кўпайтириш орқали ҳосил қилинган бўлсин. Шунингдек, u=t-1 (mod m), ( —ихтиёрий натурал сон ва =(u, mod m) бўлсин. У холда қуйидаги тасдиқлар ўринли:
а) (А, ) рюкзак ҳақидаги масалани чизиқли вақтга нисбатан ечиш мумкин. Агар бу масаланинг ечими мавжуд бўлса, у ягона; б) (В, ) рюкзак ҳақидаги масала биттадан ортиқ ечимга эга эмас; в) Агар (В, ) бошланғич маълумотлар учун ечим мавжуд бўлса, у (А,) бошланғич маълумотлар учун ечим билан устма-уст тушади. . Исбот. а) 1-мисолда А тез ўсувчан векторли рюкзак масаласи А ни ўнгдан чапга қараб чизиқли вақт мобайнида бир марта ўқиш орқали ечим мумкинлиги кўрсатилган эди. Бу усул масаланинг ечимлари кўпи билан битта эканлигини хам кўрсатади. (б) ва (в). Фараз қилайлик, узунлиги n га тенг бўлган D иккилик вектор (В, ) масаланинг ечими, яъни BD= бўлсин. Демак, m сони А вектор компоненталари йиғиндисидан катта бўлгани учун AD Биз лемма иловасидан бидламизки, (В, ) масала олдиндан ечимга эга. буни кафолатлайдиган усул билан ҳисоблаб топилган эди. Мисол-2. n=10 бўлсин. Қуйидаги тез ўсувчан векторни кўрайлик: А = (103, 107, 211, 430, 863, 1718, 3449, 6907, 13807, 27610) . А нинг копоненталаридан 2 га катта бўлган m=55207 модулини олайлик. Шунингдек, t=25236 кўпайтувчини ҳам танлаймиз. У холда (t, m)=1 ва t-1 = u = 1061. Ҳақиқатдан ҳам, 1061 25236 - 1 = 485 55207 . Кучли модул бўйича кўпайтириш натижасида қуйидаги векторга эга бўламиз: В=(4579, 50316, 24924, 30908, 27110,17953, 32732,16553, 22075, 53620) . Масалан, 25236 103 = 4579 + 47 55207 ва 1061 4579 = 103 + 88 55207 , 25236 1718 = 17953 + 785 55207 ва 1061 17953 = 1718 + 345 55207 , 2523627610 = 53620 + 1262055207 ва 106153620 = 27610+103055207. B вектор шифрлашнинг очиқ калити ҳисобланади. A, t, u ва m лар эса махфий калитни ташкил қилади. Албатта, m ва t ларни билган киши қолган миқдорларни ҳам ҳисоблаб топиши мумкин. Очиқ B калитдан фойдаланиб, “BITIRUV MALAKAVIY ISHI HIMOYASI” матнини шифрлаймиз. Бунинг учун матнни рақамлар ёрдамида кодлаб оламиз. Унда “бўш жой” белгиси-0, қолган ҳарфлар эса лотин алифбесида турган ўрнига қараб, 1-26 бўлган қийматларни олади. Рақамли кодларни иккилик саноқ системасида ифодалаймиз. Бунда 1-мисол учун ёзилган жадвалдан фойдаланамиз. B вектор узунлиги 10 га тенг бўлган иккиталик блокларни шифрлашга мўлжаллангани учун биз матнни иккитадан харфли блокларга ажратамиз. Қуйидаги жадвалда ана шу блоклар, уларнинг иккилик саноқ системаисдаги ифодаси ва блокнинг 10 лик саноқ системасидаги шифри келтирилган.
Биринчи сонни, яъни 117260 ни қайта шифрлайлик. Шуни таъкидлаш жоизки, 1061 • 117260 = 2253 • 55207 + 31489 . Энди рюкзак масаласини (А, 25133) бошланғич маълумотлар учун ечамиз. Бунинг учун А векторни ўнгдан чапга қараб кўриб чиқамиз. Чап устундаги сон А нинг қаралаётган компонентасидан кичик бўлмаса, бирни ёзамиз ва янги сонни А нинг компонентасини қаралаётган сондан айирамиз. Акс холда 0 ёзамиз ва А нинг навбатдаги чап компонентасига ўтамиз. Ушбу амалларнинг натижаси қуйидаги тартибда ҳосил қилинади.
Ўнг томондаги устунни пастдан юқорига қараб ўқиймиз: 0001001001. Бу иккилик кодларни биринчи мисолдаги алфавит жадвали бўйича бошланғич матннинг дастлабки икки харфини, яъни “BI” ни билдиради. Иккинчи сонни хам шу усул билан қайта шифрлайлик. 1061 • 115855 = 2226 • 55207 + 31373 .
Охирги устунни пастдан юқорига қараб ўқиймиз ва 1010001001 ни ҳосил қиламиз. Бу эса алфавит жадвали бўйича “ TI ” блогини англатади. Қолган сонларни ҳам шу тариқа қайта шифрлаб, биз бошланғич матнни ҳосил қиламиз. Биз келтирган хар икки мисол рюкзак масаласи алгоритмини баён этиш учун турли параметрларни кичиклаштириб олинди. Уларни оддий чўнтак калькулятори ёрдамида ҳам бажариш мумкин. Ҳақиқатда эса бу параметрлар етарлича катта сонлардан иборат бўлади. Масалан, n=20 бўлган ҳолини Киммо-Кари томонидан бажарилган. У бундай ҳолат учун m=53939986 ва t=54377 деб олиб, бу параметрлар учун t-1 =u=17521047 ни танлаб олган. А тез ўсувчан вектор сифатида эса қуйидаги векторни қабул қилган: A=(101, 102, 206, 412, 823, 1647, 3292, 6584, 13169, 26337, 52676, 105352, 210703, 421407, 842812, 1685624, 3371249, 6742497, 13484996, 26969992) Энди биз бу масалага криптоаналитик нуқтаи-назаридан қарайлик. Унинг олдида қуйидаги криптоаналитик масала турибди. B=(b1, b2, …, bn) рюкзаr вектори маълум. Ундан шифрлашнинг очиқ калити сифатида фойдаланилади. Шунингдек, B вектор тез ўсувчан вектор А ни m модул ва t кўпайтувчига кўпайтириш орқали ҳосил қилинганлиги ҳам маълум. Криптоаналитикка А вектор ва u сони номаълум ва уларни топиш талаб қилинади. Бу ерда энг муҳими m ва ни аниқлашдан иборат. Бу параметрларни аниқлагандан сўнг А векторни осонгина ҳисоблаб топиш ва шифрланган матнни қайта шифрлаш мумкинн бўлади. Download 108 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling