2.4 RSA алгоритмі негізіндегі ЭЦҚ сызбасы
Электрондық цифрлық қолтаңба (ЭЦҚ) қазіргі дамып келе жатқан әлемде
кеңінен пайдаланылуда. Қазіргі кезде электрондық цифрлық қолтаңба Жеке тұлғаларға, компаниялар мен корпорацияларға өздерінің құнды уақыттарын айтарлықтай үнемдеуге мүмкіндік бере отырып, бизнесті жүргізу кезінде таптырмайтын құрал болып табылады. Электрондық төлем жүйесінің дамуы құжаттың түпнұсқалығы мен тұтастығын дәлелдеуге мүмкіндік беретін қаражатсыз мүмкін емес.Кәдімгі қолтаңбаның қасиеттерін сақтаған ЭЦҚ дәл осындай құрал болып табылады. Электрондық цифрлық қолтаңба қойылған құжаттың заңды күші заңды тұлғаның өз қолымен қол қойған және мөрмен бекітілген қағаз құжат сияқты болады.Электрондық цифрлық қолтаңбаның мәні электрондық құжатқа қол қойылған сәттен бастап деректердің өзгеру немесе олардың қолдан жасалу фактісіне электрондық құжатты тексеру, сондай-ақ оның авторлығын растау болып табылады. Электрондық цифрлық қолтаңба автор қол қойған сәттен бастап деректер өзгерді ме деген сұраққа, мысалы, деректерді қорғалмаған байланыс арнасы бойынша беру кезінде немесе осы беруге қандай да бір мақсатпен деректерді өзгерте алатын үшінші тұлғалар қатысқан кезде біржақты жауап беруге мүмкіндік береді.Электрондық цифрлық қолтаңба схемасын іске асыру үшін симметриялық және асимметриялық шифрлау тәсілдері (алгоритмдері) пайдаланылады және әртүрлі хэш функциялары қолданылады. Құжатты хэштеу бастапқы құжат үшін жасалғаннан гөрі құжатқа тезірек қол қоюға мүмкіндік береді. Сондай-ақ, электрондық құжат хэшінің артықшылығы-бұл әдетте электрондық құжаттың өзінен әлдеқайда аз.ЭЦҚ схемасы көптеген жағдайларда асимметриялық шифрлау алгоритмдерінің көмегімен жүзеге асырылады (шифрлау жабық кілт жұбының көмегімен, ал шифрлау ашық кілттің көмегімен жасалады).Асимметриялық RSA алгоритмі мен SHA256 стандартты хэш функциясы негізінде электрондық цифрлық қолтаңба схемасын енгізуді қарастырыңыз.RSA алгоритмі іс жүзінде санды факторизациялау, яғни оны негізгі факторларға бөлу міндетін білдіреді және оның есептеу күрделілігіне негізделген. Криптостойкость RSA алгоритмінің негізделеді деп жоқ полиномиальных үшін алгоритмдер факторизации санының [2, 17], яғни біле 𝑝 және 𝑞 табу, 𝑁 = 𝑝 ∗ 𝑞 білдіреді қиындықтар, ал табу 𝑝 және 𝑞 белгілі болған жағдайда 𝑁 болып табылады есептеу күрделі міндет.
Электрондық цифрлық қолтаңбаның стандартты процедурасы келесі процестерден тұрады:
1.Кілттерді құру;
2.Электрондық құжаттың қолтаңбасын жабық кілтпен есептеу;
3.Қолтаңбаны ашық кілтпен тексеру (тексеру).
Жеке кілт цифрлық қолтаңбаның бүкіл криптографиялық схемасының осал бөлігі болып табылады, сондықтан оны үшінші тараптар қол жеткізе алмайтындай етіп сақтау мүмкіндігінше қауіпсіз болуы керек.Электрондық цифрлық қолтаңбаны тағайындау қажет электрондық құжатты 𝑚 арқылы белгілейміз.Электрондық құжат үшін электрондық цифрлық қолтаңбаны есептеу рәсімі немесе оған "қол қою" рәсімі мынадай түрде жүргізіледі:
Электрондық құжат х хэш және оның хэші ℎ =𝐻(𝑚). Хэшинг, жоғарыда айтылғандай, танымал SHA256 криптографиялық хэш алгоритмі арқылы жасалады.Құжатқа қол қою жылдам құру функциясы арқылы есептеледі дәрежесі берілген модуль бойынша ключей ретінде 𝑠 𝑖 𝑔 𝑛 = ℎ 𝑑 𝑚 𝑜 𝑑 𝑁 кілттерді құру процесінде табылған жеке кілт (𝑑,𝑁) жұбын қолдана отырып.Жіберушіден алушыға белгілі бір байланыс арнасы арқылы ақпарат беру кезінде жіберуші адресатқа ашық жұпты жібереді кілт ( 𝑒 ,𝑁) және электронды құжат пен оның сандық қолы бар жұп (𝑚,𝑠𝑖𝑔𝑛). Бұл деректер қолтаңбаны тексеру үшін жеткілікті болады.Құжат үшін электрондық цифрлық қолтаңбаны тексеру (верификациялау) рәсімі мынадай түрде жүргізіледі:
жұпты қолдана отырып, ашық кілт ( 𝑒 ,𝑁) есептеледі
ℎ=𝑠𝑖𝑔𝑛𝑒𝑚𝑜𝑑 𝑁 берілген модуль дәрежесі бар жылдам құрылыс функциясын қолдана отырып 𝑁;
SHA256 хэш функциясы арқылы электрондық құжаттың
хэші 𝐻 ( 𝑚 ) орналасқан;
алушы есептелген хэшті электронды құжаттан 𝐻(𝑚)
табылған ℎ-мен салыстырады.
ℎ = 𝐻(𝑚) және осы құжат үшін электрондық цифрлық қолтаңба дұрыс және электрондық құжат оған қол қойылған сәттен бастап өзгертілмеген деп айтуға болады, яғни электрондық цифрлық қолтаңбаны верификациялау рәсімі сәтті өтті.ℎ және 𝐻 ( 𝑚 ) теңсіздігі жағдайында электрондық құжат оған қол қойылғаннан кейін өзгертілуі немесе үшінші тараптар қол қоюы мүмкін деп айтуға болады.Алайда, үшінші тұлғаға өте қиын электрондық құжат 𝑚, өйткені есептеу қиын өзгертуге электрондық құжат 𝑚 арналған 𝑚' болатындай етіп өзгертілген электрондық құжат 𝑚' болған осындай мәні хеш-функциялар, яғни үшін орындады шарт 𝐻(𝑚) =𝐻(𝑚').
IOS-ті дамыту туралы ойланғанда, көбінесе кіру шегінің бес таңбалы қосындысы пайда болады: кем дегенде сізге ОЖ мен Mac-тың соңғы нұсқасындағы iOS құрылғысы қажет. Егер Сіз iOS-та жазып жатсаңыз, онда сіз балама нұсқаларды білесіз, ал егер жоқ болса, кенеттен пайдалы болады ма? Төмендегі шолу посты дәл осы жағдайда. Аяқ астынан сіз өте қарапайым ақпаратты таба аласыз, сондықтан егер сіз хардкор алғыңыз келсе.
Сонымен, біздің қолымызда iOS құрылғысы бар, басымызда – қолдану идеясы, жүрегімізде жаңа білімді тез игеруге деген ұмтылыс бар. Біздің алдымызда эпикалық кейіпкер сияқты үш жол бар: біз Mac-ты аламыз (дәлірек айтқанда, бізге OS X қажет), iOS SDK-мен Xcode-ны аламыз, Objective-C немесе Swift-ті аламыз, жоба жасаймыз және біз ең шынайы, "туған", iOS қосымшасын аламыз, оны App Store-да тыныш жанмен еліктеуге болады және баннерлерді біздің кішкентай дамуымыз адамдарға қуаныш әкелетініне қуанамыз.Біз кем дегенде Mac, кем дегенде Windows машинасын аламыз, Мобильді қосымшаларды көптеген тілдерде жазуға мүмкіндік беретін жақтауды таңдаймыз (JavaSctipt, c#). Біздің кодтың құрылғыда қалай орындалатынына қамқорлық жасау жақтауды алады: кодты орындау механизмі (runtime) біздің кодпен орындалуды қамтамасыз ету үшін байланыстырылады, оның міндеттері, басқалармен қатар, мобильді платформаның API-де қолданылатын бағдарламалау тілінің қоңырауларын таратуды қамтиды. Бұл тәсілдің артықшылығы-белгілі бір мобильді платформадан белгілі бір тәуелсіздік (оны тек runtime өзі байланыстырады), ал минус – "туған" қосымшадан аз жұмыс жылдамдығы.
Кез-келген мәтіндік файл редакторының блокнотын аламыз, веб-бетті тексереміз, оны дұрыс жабдықтаймыз және шығуда біз веб — қосымшаны аламыз, ол іс жүзінде шолғыштың толық экран терезесінде іске қосылады (платформадағы ең нақты бағдарлама ретінде-шолғыштың мекен-жай жолынсыз), бірақ ол жұмыс істейді, әрине, қарапайым веб-беттің жылдамдығы мен жауаптылығымен. Біріншіден, бұл қалыпты интернет байланысы болмаған кезде көрінеді, алайда, сіз бұл опция кейде ыңғайлы екенін мойындауыңыз керек. Айтпақшы, веб-қосымшаның артықшылығы бар, пайдаланушылар оған кіру үшін бетті App Store-ға жіберудің қажеті жоқ, адамдарға оның URL мекенжайын беріп, "басты экранға"қосуды ұсынады.
Swift 4-те жазылған қосымшалар кішірек болады.Swift 4 JSON-да/ - дан кодтау/декодтау үшін ішкі қолдауды алады. Swift 4-ке дейін көп кодты өзіңіз жазуға немесе үшінші тарап код генераторларын қолдануға тура келді. Енді бұл код компилятор жасайды. Swift 2-де іске асырылған және Swift 3-те жойылған жолдармен жұмыс істеудің ыңғайлы моделіне оралу. Осы өзгеріспен қатар, жолдар Юникодты жақсырақ қолдайды ("сіздің сүйікті бағдарламаларыңыз сіздің барлық эмодзилеріңізді дұрыс көрсетуі үшін") және олармен жұмыс тездетіледі.Swift және Objective-C екеуін де қолданатын жобалар Xcode 9 және оның құрастыру жүйесін жақсарту арқылы 40% тезірек жиналады.
Apple (әдеттегідей) Swift 4-ке оңай ауысуға және бір уақытта әртүрлі кодтық базаларға қолдау көрсетуге уәде береді. Тақырыпқа енгізілген термин, тіпті оның мәні бойынша да өте дұрыс емес. Нәтижесінде біз алатын қосымшалар, олар iOS үшін кез-келген басқа бағдарламалық жасақтамамен бірдей iOS-та, сол темірде орындалады деген мағынада, даму процесінің өзі тек Apple ұсынған технологиялар мен бағдарламалау тілдерін ғана емес қолдануға мүмкіндік береді. Егер адам JavaScript-те қалай жазуды білсе және Swift-ті түсінгісі келмесе, онда Apple оған көмектесе алмайды (әрине, Swift-тің жақсы оқулығынан басқа), бірақ JavaScript-ке қосымшаны жазып, содан кейін оны iOS-та Xcode-де жазылғандай іске қосу мүмкіндігі бар (осылайша белгілі бір "гибридті" опцияны алыңыз) бар және сұранысқа ие. Ионик-платформалық дамудың ең танымал шеңберлерінің бірі. Ол Apache Cordova негізінде жасалған, ол геолокация, push хабарландырулары, камера және басқалары сияқты құрылғының әртүрлі мүмкіндіктеріне қол жеткізуге мүмкіндік береді және әзірлеушілерге HTML, CSS және JavaScript сияқты веб-технологиялары бар iOS және Android қосымшаларын жасауға мүмкіндік береді.Шеңберден басқа, Ионик жаңа экожүйеге ие, бұл жаңа әзірлеушілерге оқу мен кіру процесін жеңілдетеді. Ionic Cloud әзірлеушілерге Ionic-те қосымшаларды басқаруға, орналастыруға және масштабтауға арналған әртүрлі құралдарды ұсынады. Ionic Creator-бұл көрнекі редактор, ол әзірлеушілерге drag&drop арқылы Мобильді қосымшаларды жылдам прототиптеуге және жасауға мүмкіндік береді. Сонымен, Ionic View бар-iOS және Android үшін ақысыз бағдарлама,ол әзірлеушілерге өздерінің Ionic қосымшасын пайдаланушылармен, тестерлермен және тұтынушылармен қосымшаны белгілі бір мобильді платформаның қосымшалар дүкеніне орналастырмай-ақ оңай бөлісуге мүмкіндік береді. Әзірлеушілер пайдаланушыларға Ionic View қосымшасынан шақыру жібереді, және ол қабылданғаннан кейін пайдаланушы белгілі бір қосымшаны Ionic View көшірмесінде жүктей және іске қоса алады бағдарлама оның телефонына қолданбалар дүкенінен орнатылғандай.
Ionic көмегімен жазылған қосымшалар WebView қолданады, нәтижесінде біз әдеттегі (әдетте ең әсерлі емес) жұмыс жылдамдығымен ең табиғи веб-қосымшаны аламыз. Осының арқасында оны ойындар немесе графиканы қарқынды қолданатын бағдарламалар сияқты ауыр қосымшаларды жасау үшін қолайлы деп санау қиын. Ионикпен бірге Даму жақсы бұрыштық білімді қажет етеді, кем дегенде, мүмкіндігінше шеңберден "сығуды" қалайды. PhoneGap бастапқыда Nitobi компаниясы жасаған. 2011 жылы Adobe Nitobi және PhoneGap брендін алады. Содан кейін Adobe PhoneGap нұсқаларының бірін (оны Cordova деп атайды) Apache қорына өткізіп, PhoneGap брендін және оны өнім ретінде қалдырады. Нәтижесінде Кордованы PhoneGap сорғыштың астындағы қозғалтқыш ретінде қарастыруға болады (сонымен қатар басқа да гибридті шеңберлер). PhoneGap өз кезегінде Cordova мүмкіндіктеріне өзінің қосымша мүмкіндіктерін қосады.PhoneGap көптеген жағынан Ионикке өте ұқсас. Сондай-ақ, ол әзірлеушілерге веб-технологияларды қолдана отырып, платформалық қосымшаларды құруға мүмкіндік береді және Apache Codova негізінде салынған. Алайда, PhoneGap белгілі бір Javascript шеңберіне қосылмаған, сондықтан әзірлеушілер өздерінің қосымшаларын қалай және қалай жасайтындарын көбірек таңдайды. PhoneGap-та жұмыс үстелі қосымшасы, мобильді қосымша және PhoneGap Build деп аталатын бұлтты қызмет бар, ол қосымшаны жинауға және сақтауға мүмкіндік береді.Өкінішке орай, Ionic сияқты, PhoneGap WebView қолданады (ол iOS-та өте баяу жұмыс істейді), сондықтан осы шеңберге негізделген қосымшалардың жылдамдығымен заттар әрдайым керемет бола бермейді.
2011 жылы негізі қаланған Xamarin компаниясы, Xamarin өнімдер тобын бес жылдан кейін Microsoft сатып алды. Бүгінгі таңда Xamarin өнімдері нарықта платформалық Мобильді қосымшаларды жасауға өте қызықты тәсіл ұсынады: қосымшалар C#-де жазылады, содан кейін Xamarin оны iOS немесе Android үшін жергілікті қосымшаларға құрастырады, ал Xamarin негізгі технология ретінде Mono қолданады.платформадан гөрі және қамтамасыз етіледі. Xamarin әзірлеушілері шығу кезінде алынған қосымшалар бағдарлама құрастырылатын платформаның жергілікті API қолданады, сондықтан алынған қосымшаның әрекеті сол платформадағы кез-келген басқа қосымшаның мінез-құлқынан еш айырмашылығы жоқ дейді. Visual Studio көмегімен жүргізуге болады (бұл таңқаларлық емес).Жоба кодының көп бөлігі қолдау көрсетілетін мобильді платформалардың әрқайсысында өзгеріссіз қолданыла алатындығына қарамастан, кейбір үзінділер iOS және Android үшін қосымшаның нұсқасы үшін арнайы жазылуы керек. React Native жобасы Facebook-те пайда болды және React негізінде құрылды. Біздің JS қосымшамыз iOS-қа енгізілген қозғалтқышта айналады: ол кодты орындайды және ОС виджеттерімен барлық манипуляциялар жасалады. React Native-ді Xamarin-мен салыстыруға болады, React Native-мен жасалған қосымшалар iOS және Android қосымшаларына өте ұқсас (өйткені олар жергілікті UI элементтерімен жұмыс істейді).
React синтаксисі өте қарапайым, бұл жақтауды үйренуді жеңілдетеді, ал React Native жеткізудегі UI компоненттерінің стандартты кітапханасы көптеген пайдалы компоненттерден тұрады, алайда React Native мен басқа JavaScript шеңберлерінің арасындағы ең үлкен айырмашылық Objective-C және Swift-тегі кодты пайдалану мүмкіндігі деп аталады (көбінесе өнімділікті жақсарту немесе мобильді платформамен нәзік әрекеттесу үшін). Іс жүзінде, бұл әзірлеушілер өздерінің React Native қосымшаларында қолданыстағы кітапханаларды қолдана алады дегенді білдіреді. Көбінесе веб-бетті жеке қосымша ретінде пайдалану мүмкіндігі біздің қызметтерімізге қарамастан: егер байланыс проблемалары болмаса және қосымшаның қарапайым функционалдығы болса (деректер кестесін шығару немесе үнемі жаңартылып отыратын тізімді шығару), онда серверден жақсы ескі веб-шолуды пайдаланбауға ешқандай себеп жоқ.Браузерде сол бетті ашудың арасындағы айырмашылық экранның дизайнында болады: шолғыштың басқару элементтері (оның ішінде мекен-жай жолағы) жасырылады және беттің мазмұны құрылғының бүкіл экранына шығарылады.
Достарыңызбен бөлісу: |