{"id":95846,"date":"2020-10-04T01:42:23","date_gmt":"2020-10-03T23:42:23","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/mozhno-li-generirovat-sluchajnye-chisla-esli-my-ne-doveryaem-drug-drugu-chast-2"},"modified":"2020-10-04T01:42:23","modified_gmt":"2020-10-03T23:42:23","slug":"mozhno-li-generirovat-sluchajnye-chisla-esli-my-ne-doveryaem-drug-drugu-chast-2","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/mozhno-li-generirovat-sluchajnye-chisla-esli-my-ne-doveryaem-drug-drugu-chast-2","title":{"rendered":"A \u00ebsht\u00eb e mundur t\u00eb gjenerohen numra t\u00eb rastit, n\u00ebse nuk i besojm\u00eb nj\u00ebri-tjetrit? Pjesa 2","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"A \u00ebsht\u00eb e mundur t\u00eb gjenerohen numra t\u00eb rastit, n\u00ebse nuk i besojm\u00eb nj\u00ebri-tjetrit? Pjesa 2\" src=\"\/wp-content\/uploads\/2020\/10\/fc42fe5e99ce4412a0ce99eb63629a42.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>P\u00ebrsh\u00ebndetje, Habr!<\/p>\n<p>N\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/near\/blog\/521090\/\">pjes\u00ebs s\u00eb par\u00eb<\/a><\/noindex> n\u00eb artikujt e m\u00ebparsh\u00ebm diskutuam arsyet pse mund t\u00eb jet\u00eb e nevojshme t\u00eb gjenerohen numra t\u00eb rastit p\u00ebr pjes\u00ebmarr\u00ebsit q\u00eb nuk i besojn\u00eb nj\u00ebri-tjetrit, k\u00ebrkesat q\u00eb i b\u00ebhen k\u00ebtyre gjenerator\u00ebve t\u00eb numrave t\u00eb rastit dhe shqyrtuam dy qasje p\u00ebr realizimin e tyre.<\/p>\n<p>N\u00eb k\u00ebt\u00eb pjes\u00eb t\u00eb artikullit do t\u00eb shqyrtojm\u00eb n\u00eb detaje nj\u00eb tjet\u00ebr qasje q\u00eb p\u00ebrdor n\u00ebnshkrime me prag.<\/p>\n<h3>Pak kriptografi<\/h3>\n<p>P\u00ebr t\u00eb kuptuar se si funksionojn\u00eb n\u00ebnshkrimet me prag, duhet t\u00eb kuptoni pak kriptografi bazike. Ne do t\u00eb p\u00ebrdorim dy koncepte: shkallar\u00eb, ose thjesht numra, t\u00eb cilat ne do t'i sh\u00ebnojm\u00eb me shkronja t\u00eb vogla (<em>x, y<\/em>) dhe pika n\u00eb kurb\u00ebn eliptike, t\u00eb cilat ne do t'i sh\u00ebnojm\u00eb me shkronja t\u00eb m\u00ebdha.<\/p>\n<p>P\u00ebr t\u00eb kuptuar bazat e n\u00ebnshkrimeve me prag nuk \u00ebsht\u00eb e nevojshme t\u00eb kuptoni si funksionojn\u00eb kurbat eliptike, p\u00ebrve\u00e7 disa informacioneve bazike:<\/p>\n<ol>\n<li>\n<p>Pikat n\u00eb kurb\u00ebn eliptike mund t\u00eb shtohen dhe t\u00eb shum\u00ebzohen me nj\u00eb shkallar (shum\u00ebzimi me nj\u00eb shkallar do ta sh\u00ebnojm\u00eb si <em>xG<\/em>, megjith\u00ebse nota <em>Gx<\/em> \u00ebsht\u00eb gjithashtu shpesh e p\u00ebrdorur n\u00eb let\u00ebrsi). Rezultati i shum\u00ebs dhe shum\u00ebzimit me nj\u00eb skalar \u2014 \u00ebsht\u00eb nj\u00eb pik\u00eb n\u00eb nj\u00eb kurb\u00eb eliptike.<\/p>\n<\/li>\n<li>\n<p>Duke ditur vet\u00ebm pik\u00ebn <em>G<\/em> dhe produktin e saj me shkallarin <em>xG<\/em> nuk mund t\u00eb llogaritet <em>x<\/em>.<\/p>\n<\/li>\n<\/ol>\n<p>Ne gjithashtu do t\u00eb p\u00ebrdorim konceptin e polinomit <em>p(x)<\/em> me grad\u00eb <em>k<\/em>-1. N\u00eb ve\u00e7anti, ne do t\u00eb p\u00ebrdorim k\u00ebt\u00eb pron\u00eb t\u00eb polinom\u00ebve: n\u00ebse ne dim\u00eb vler\u00ebn <em>p(x) <\/em>p\u00ebr \u00e7do <em>k <\/em>vler\u00eb t\u00eb ndryshme <em>x <\/em>(dhe nuk kemi asnj\u00eb informacion tjet\u00ebr p\u00ebr <em>p(x)<\/em>), ne mund t\u00eb llogarisim <em>p(x) <\/em>p\u00ebr \u00e7do <em>x<\/em>.<\/p>\n<p>vler\u00eb tjet\u00ebr. <em>p(x)<\/em> \u00cbsht\u00eb e interesante q\u00eb p\u00ebr \u00e7do polinom <em>G<\/em>dhe nj\u00eb pik\u00eb n\u00eb kurb\u00eb <em>, duke ditur vler\u00ebn<\/em> p\u00ebr \u00e7do <em>k<\/em> p(x)G <em>x<\/em>t\u00eb vlerave t\u00eb ndryshme <em>, duke ditur vler\u00ebn<\/em> , gjithashtu mund t\u00eb llogarisim <em>x<\/em>.<\/p>\n<p>p\u00ebr \u00e7do<\/p>\n<h3>kjo informacion \u00ebsht\u00eb e mjaftueshme p\u00ebr t\u00eb hyr\u00eb n\u00eb detajet e funksionimit t\u00eb n\u00ebnshkrimeve me prag dhe si t'i p\u00ebrdorim p\u00ebr t\u00eb gjeneruar numra t\u00eb rastit.<\/h3>\n<p>Gjeneratori i numrave t\u00eb rastit me n\u00ebnshkrime me prag <em>n<\/em> Le t\u00eb themi se <em>k<\/em> pjes\u00ebmarr\u00ebsit duan t\u00eb gjenerojn\u00eb nj\u00eb num\u00ebr t\u00eb rastit, dhe ne duam q\u00eb pjes\u00ebmarrja e \u00e7do <em>k<\/em>prej tyre t\u00eb jet\u00eb e mjaftueshme p\u00ebr t\u00eb gjeneruar numrin, por q\u00eb sulmuesit q\u00eb kontrollojn\u00eb<\/p>\n<p><img decoding=\"async\" alt=\"A \u00ebsht\u00eb e mundur t\u00eb gjenerohen numra t\u00eb rastit, n\u00ebse nuk i besojm\u00eb nj\u00ebri-tjetrit? Pjesa 2\" src=\"\/wp-content\/uploads\/2020\/10\/00d54b3b0ca237a1551cdbdc35688099.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>-1 ose m\u00eb pak pjes\u00ebmarr\u00ebs, t\u00eb mos ken\u00eb mund\u00ebsin\u00eb t\u00eb parashikojn\u00eb ose t\u00eb ndikojn\u00eb n\u00eb numrin e gjeneruar. <em>p(x)<\/em> me grad\u00eb <em>k<\/em>Le t\u00eb supozojm\u00eb se ekziston nj\u00eb polinom <em>-1, q\u00eb pjes\u00ebmarr\u00ebsi i par\u00eb e di<\/em>p(1) <em>, pjes\u00ebmarr\u00ebsi i dyt\u00eb e di <\/em>p(2),<em>n<\/em>dhe k\u00ebshtu me radh\u00eb ( <em>-i di<\/em>p(n) <em>G<\/em> ). Po ashtu, le t\u00eb supozojm\u00eb q\u00eb p\u00ebr nj\u00eb pik\u00eb t\u00eb caktuar <em>, duke ditur vler\u00ebn <\/em>t\u00eb gjith\u00eb e din\u00eb <em>x<\/em>p\u00ebr t\u00eb gjitha vlerat <em>. Ne do ta quajm\u00eb<\/em> p(i) <em>i<\/em>\"komponent privat\" <em>i<\/em>t\u00eb pjes\u00ebmarr\u00ebsit -i (sepse vet\u00ebm <em>-i pjes\u00ebmarr\u00ebs e di at\u00eb), dhe<\/em> p(i)G <em>i<\/em>\"komponent publik\" <em>-i pjes\u00ebmarr\u00ebs e di at\u00eb), dhe <\/em>t\u00eb pjes\u00ebmarr\u00ebsit -i (sepse t\u00eb gjith\u00eb pjes\u00ebmarr\u00ebsit e din\u00eb at\u00eb). Si\u00e7 e mbani mend, njohja e <em>nuk \u00ebsht\u00eb e mjaftueshme p\u00ebr t\u00eb rikonstruktuar<\/em><\/p>\n<p>p(i). <em>Krijimi i nj\u00eb polinomi t\u00eb till\u00eb n\u00eb m\u00ebnyr\u00eb q\u00eb vet\u00ebm<\/em>i-<\/p>\n<p>pjes\u00ebmarr\u00ebsi dhe askush tjet\u00ebr e di komponentin e tij privat \u2013 kjo \u00ebsht\u00eb pjesa m\u00eb e komplikuar dhe interesante e protokollit, dhe ne do ta shqyrtojm\u00eb m\u00eb posht\u00eb. Nd\u00ebrkoh\u00eb le t\u00eb supozojm\u00eb se kemi nj\u00eb polinom t\u00eb till\u00eb, dhe t\u00eb gjith\u00eb pjes\u00ebmarr\u00ebsit e din\u00eb komponentet e tyre private. <em>h<\/em> \u2014 nj\u00eb kandidat i mir\u00eb p\u00ebr nj\u00eb varg t\u00eb till\u00eb. Le t\u00eb supozojm\u00eb se pjes\u00ebmarr\u00ebsit duan t\u00eb krijojn\u00eb nj\u00eb num\u00ebr t\u00eb rast\u00ebsish\u00ebm, duke p\u00ebrdorur <em>h <\/em>\u00ebsht\u00eb nj\u00eb kandidat i mir\u00eb p\u00ebr nj\u00eb varg t\u00eb till\u00eb. Le t\u00eb themi se pjes\u00ebmarr\u00ebsit duan t\u00eb krijojn\u00eb nj\u00eb num\u00ebr t\u00eb rastit duke p\u00ebrdorur <em>h<\/em> si seed. Fillimisht, pjes\u00ebmarr\u00ebsit i konvertojn\u00eb<\/p>\n<p><em>n\u00eb nj\u00eb pik\u00eb n\u00eb kurb\u00eb duke p\u00ebrdorur cfar\u00ebdo funksioni t\u00eb paracaktuar:<\/em><\/p>\n<p>H = scalarToPoint(h) <em>i<\/em> Pastaj \u00e7do pjes\u00ebmarr\u00ebs <em>llogarit dhe publikoi <\/em>Hi = p(i)H,<em> \u00e7far\u00eb ata mund ta b\u00ebjn\u00eb, sepse ata e din\u00eb <\/em>p(i) dhe H.<em> H<\/em>i nuk i lejon pjes\u00ebmarr\u00ebsit e tjer\u00eb t\u00eb rivendosin komponentin privat <em>i<\/em>-t\u00eb pjes\u00ebmarr\u00ebsit, dhe k\u00ebshtu nj\u00eb grup privat komponentesh mund t\u00eb p\u00ebrdoret nga blloku n\u00eb bllok. K\u00ebshtu, algoritmi i shtrenjt\u00eb p\u00ebr krijimin e polinomit, i p\u00ebrshkruar m\u00eb posht\u00eb, duhet t\u00eb realizohet vet\u00ebm nj\u00eb her\u00eb.<\/p>\n<p>Kur <em>k<\/em> n\u00ebse pjes\u00ebmarr\u00ebsit e zbulojn\u00eb <em>llogarit dhe publikoi <\/em>t\u00eb gjith\u00eb mund t\u00eb llogarisin<em> H<\/em>x = <em>p(x)H<\/em> p\u00ebr t\u00eb gjith\u00eb <em>x<\/em> p\u00ebr shkak t\u00eb pron\u00ebs s\u00eb polinom\u00ebve q\u00eb ne e diskutuam n\u00eb seksionin e kaluar. N\u00eb k\u00ebt\u00eb moment t\u00eb gjith\u00eb pjes\u00ebmarr\u00ebsit llogarisin <em>H0 = p(0)H, <\/em>dhe ky \u00ebsht\u00eb numri rezultant i rast\u00ebsish\u00ebm. Vini re se askush nuk e di<em> p(0), <\/em>dhe k\u00ebshtu m\u00ebnyra e vetme p\u00ebr t\u00eb llogaritur<em> p(0)H \u2013 <\/em>\u00ebsht\u00eb interpolimi<em> p(x)H, <\/em>\u00e7ka \u00ebsht\u00eb e mundur vet\u00ebm kur<em> k <\/em>vlerat<em> p(i)H <\/em>jan\u00eb t\u00eb njohura. Zbulimi i nj\u00eb numri m\u00eb t\u00eb vog\u00ebl<em> p(i)H <\/em>nuk jep asnj\u00eb informacion rreth<em> p(0)H.<\/em><\/p>\n<p><img decoding=\"async\" alt=\"A \u00ebsht\u00eb e mundur t\u00eb gjenerohen numra t\u00eb rastit, n\u00ebse nuk i besojm\u00eb nj\u00ebri-tjetrit? Pjesa 2\" src=\"\/wp-content\/uploads\/2020\/10\/a91219381018f90f73b0a92976c92c79.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Gjeneratori m\u00eb sip\u00ebr ka t\u00eb gjitha pronat q\u00eb ne duam: sulmuesit, q\u00eb kontrollojn\u00eb vet\u00ebm <em>k-<\/em>1 pjes\u00ebmarr\u00ebs, ose m\u00eb pak, nuk kan\u00eb informacion ose ndikim mbi rezultatin, nd\u00ebrsa \u00e7do <em>k<\/em> pjes\u00ebmarr\u00ebs mund t\u00eb llogaris\u00eb numrin p\u00ebrfundimtar, dhe \u00e7do n\u00ebn-grup prej <em>k<\/em> pjes\u00ebmarr\u00ebsish gjithmon\u00eb do t\u00eb arrij\u00eb n\u00eb t\u00eb nj\u00ebjtin rezultat p\u00ebr t\u00eb nj\u00ebjtin seed.<\/p>\n<p>Ka nj\u00eb problem t\u00eb vet\u00ebm, t\u00eb cilin e kemi kaluar me kujdes m\u00eb lart. P\u00ebr t\u00eb funksionuar interpolimi, \u00ebsht\u00eb e r\u00ebnd\u00ebsishme q\u00eb vlera<em> H<\/em>i e publikuar nga \u00e7do pjes\u00ebmarr\u00ebs <em>i<\/em> t\u00eb jet\u00eb v\u00ebrtet e barabart\u00eb me <em>p(i)H.<\/em> Tani, askush p\u00ebrve\u00e7 <em>i<\/em>-it pjes\u00ebmarr\u00ebs nuk e di <em>p(i), <\/em>askush p\u00ebrve\u00e7 <em>Krijimi i nj\u00eb polinomi t\u00eb till\u00eb n\u00eb m\u00ebnyr\u00eb q\u00eb vet\u00ebm<\/em>pjes\u00ebmarr\u00ebsit nuk mund t\u00eb verifikoj\u00eb se <em>P\u00ebrsh\u00ebndetje <\/em>\u00ebsht\u00eb llogaritur sakt\u00eb dhe pa ndonj\u00eb prov\u00eb kriptografike t\u00eb sakt\u00ebsis\u00eb<em> H<\/em>i nj\u00eb sulmues mund t\u00eb publikoj\u00eb \u00e7do vler\u00eb si <em>Hi, <\/em>dhe t\u00eb ndikoj\u00eb arbitrarisht n\u00eb rezultatin e gjeneratorit t\u00eb numrave t\u00eb rastit.<em>:<\/em><\/p>\n<p><img decoding=\"async\" alt=\"A \u00ebsht\u00eb e mundur t\u00eb gjenerohen numra t\u00eb rastit, n\u00ebse nuk i besojm\u00eb nj\u00ebri-tjetrit? Pjesa 2\" src=\"\/wp-content\/uploads\/2020\/10\/694a86666806c49edb6e44dd9ec26b0f.png\" style=\"display:block;margin: 0 auto;\" \/>T\u00eb ndryshmet vlera H_1, t\u00eb d\u00ebrguara nga pjes\u00ebmarr\u00ebsi i par\u00eb, \u00e7ojn\u00eb n\u00eb H_0 t\u00eb ndryshme rezultuese.<\/p>\n<p>Ka t\u00eb pakt\u00ebn dy m\u00ebnyra p\u00ebr t\u00eb d\u00ebshmuar sakt\u00ebsin\u00eb<em> H<\/em>i, ne do t'i shqyrtojm\u00eb ato pasi t\u00eb trajtojm\u00eb gjenerimin e polinomit.<\/p>\n<h3>Gjenerimi i polinomit<\/h3>\n<p>N\u00eb seksionin e kaluar ne supozuam se kemi nj\u00eb polinom t\u00eb till\u00eb <em>p(x)<\/em> me grad\u00eb <em>k<\/em>-1 q\u00eb pjes\u00ebmarr\u00ebsi <em>i<\/em> di <em>. Ne do ta quajm\u00eb<\/em>, dhe askush tjet\u00ebr nuk ka informacion mbi k\u00ebt\u00eb vler\u00eb. N\u00eb seksionin e ardhsh\u00ebm do t\u00eb na nevojitet gjithashtu q\u00eb p\u00ebr nj\u00eb pik\u00eb t\u00eb paracaktuar <em>G<\/em> t\u00eb gjith\u00eb t\u00eb din\u00eb <em>, duke ditur vler\u00ebn <\/em>p\u00ebr t\u00eb gjith\u00eb<em> x<\/em>.<\/p>\n<p>N\u00eb k\u00ebt\u00eb seksion do t\u00eb supojm\u00eb se \u00e7do pjes\u00ebmarr\u00ebs ka lokalizuar nj\u00eb \u00e7el\u00ebs privat <em>xi, <\/em>i cili \u00ebsht\u00eb i njohur p\u00ebr t\u00eb gjith\u00eb \u00e7el\u00ebsin publik<em> X<\/em>i.<\/p>\n<p>Nj\u00eb protokoll i mundsh\u00ebm p\u00ebr gjenerimin e polinomit \u00ebsht\u00eb si m\u00eb posht\u00eb:<\/p>\n<p><img decoding=\"async\" alt=\"A \u00ebsht\u00eb e mundur t\u00eb gjenerohen numra t\u00eb rastit, n\u00ebse nuk i besojm\u00eb nj\u00ebri-tjetrit? Pjesa 2\" src=\"\/wp-content\/uploads\/2020\/10\/ccd8afbc3c88a7f5a03714aeb6593361.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<ol>\n<li>\n<p>\u00c7do pjes\u00ebmarr\u00ebs <em>i<\/em> lokalisht krijon nj\u00eb polinom t\u00eb rast\u00ebsish\u00ebm <em>pi(x) t\u00eb grad\u00ebs k-1. <\/em>Ata pastaj d\u00ebrgojn\u00eb \u00e7do pjes\u00ebmarr\u00ebsi<em> j <\/em>vler\u00ebn<em> p<\/em>i(j), i koduar me \u00e7el\u00ebsin publik <em>Xj. <\/em>K\u00ebshtu vet\u00ebm<em> Krijimi i nj\u00eb polinomi t\u00eb till\u00eb n\u00eb m\u00ebnyr\u00eb q\u00eb vet\u00ebm<\/em>j-<em> <\/em>dhe<em> pjes\u00ebmarr\u00ebsi di<\/em>j-<em> <\/em>i(j). Pjes\u00ebmarr\u00ebsi<em> p<\/em>po ashtu shpall publikisht <em>i<\/em> pi(j)G <em>p\u00ebrfshir\u00eb. <\/em>p\u00ebr t\u00eb gjith\u00eb<em> j <\/em>nga<em> 1 <\/em>deri n\u00eb<em> k <\/em>T\u00eb gjith\u00eb pjes\u00ebmarr\u00ebsit p\u00ebrdorin nj\u00eb konsensus p\u00ebr t\u00eb zgjedhur<\/p>\n<\/li>\n<li>\n<p>pjes\u00ebmarr\u00ebsit, t\u00eb cil\u00ebt polinom\u00ebt e tyre do t\u00eb p\u00ebrdoren. Duke qen\u00eb se disa pjes\u00ebmarr\u00ebs mund t\u00eb jen\u00eb offline, ne nuk mund t\u00eb presim q\u00eb t\u00eb gjith\u00eb<em> k <\/em>pjes\u00ebmarr\u00ebsit t\u00eb publikojn\u00eb polinom\u00ebt. Rezultati i k\u00ebtij hapi \u00ebsht\u00eb nj\u00eb grup<em> n <\/em>q\u00eb p\u00ebrb\u00ebhet nga t\u00eb pakt\u00ebn<em> <\/em><strong><em>Z<\/em><\/strong><em> <\/em>polinom\u00eb, t\u00eb krijuara n\u00eb hapin (1)<em> k <\/em>Pjes\u00ebmarr\u00ebsit sigurohen q\u00eb vlerat e njohura p\u00ebr ta<em>.<\/em><\/p>\n<\/li>\n<li>\n<p>i(j) p\u00ebrkojn\u00eb me t\u00eb publikuara<em> p<\/em>pi(j)G. <em>Pas k\u00ebtij hapi, <\/em>duhet t\u00eb mbeten vet\u00ebm polinom\u00ebt, p\u00ebr t\u00eb cil\u00ebt vlera e transferuar privatisht<em> <\/em><strong><em>Z <\/em><\/strong>llogarit komponentin e saj privat<em> p<\/em>pi(j)G. <em>Pas k\u00ebtij hapi,<\/em><\/p>\n<\/li>\n<li>\n<p>\u00c7do pjes\u00ebmarr\u00ebs<em> j <\/em>p(j)<em> si nj\u00eb shum\u00eb <\/em>i(j) p\u00ebr t\u00eb gjith\u00eb.<em> p<\/em>\u00c7do pjes\u00ebmarr\u00ebs gjithashtu llogarit t\u00eb gjitha vlerat <em>i<\/em> n\u00eb <strong><em>Z<\/em><\/strong>pi(x)G p\u00ebr t\u00eb gjith\u00eb i <em>, duke ditur vler\u00ebn <\/em>i(j) p\u00ebr t\u00eb gjith\u00eb. <em>p(x) \u2013 <\/em>n\u00eb<em> <\/em><strong><em>Z<\/em><\/strong><em>.<\/em><\/p>\n<\/li>\n<\/ol>\n<p><img decoding=\"async\" alt=\"A \u00ebsht\u00eb e mundur t\u00eb gjenerohen numra t\u00eb rastit, n\u00ebse nuk i besojm\u00eb nj\u00ebri-tjetrit? Pjesa 2\" src=\"\/wp-content\/uploads\/2020\/10\/a7a92dba3b9de7a376c415fc6c330c46.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Merrni parasysh se<em> k\u00ebtu \u00ebsht\u00eb v\u00ebrtet nj\u00eb polinom i grad\u00ebs <\/em>k-1,<em> sepse kjo \u00ebsht\u00eb nj\u00eb shum\u00eb e ve\u00e7orive <\/em>i(x), secili prej t\u00eb cil\u00ebve \u00ebsht\u00eb nj\u00eb polinom i grad\u00ebs<em> p<\/em>-1. Pastaj, vini re se nd\u00ebrsa \u00e7do pjes\u00ebmarr\u00ebs <em>k<\/em>p(j), <em>j<\/em> di <em>ata nuk kan\u00eb asnj\u00eb informacion mbi <\/em>x \u2260 j. <em>p(x)<\/em> p\u00ebr <em>N\u00eb t\u00eb v\u00ebrtet\u00eb, p\u00ebr t\u00eb llogaritur k\u00ebt\u00eb vler\u00eb, ata duhet t\u00eb din\u00eb t\u00eb gjith\u00eb<\/em>pi(x), <em>dhe p\u00ebr sa koh\u00eb q\u00eb pjes\u00ebmarr\u00ebsi <\/em>nuk di t\u00eb pakt\u00ebn nj\u00eb nga polinom\u00ebt e zgjedhur, ata nuk kan\u00eb informacion t\u00eb mjaftuesh\u00ebm mbi<em> j <\/em>p(x).<em> Ky \u00ebsht\u00eb i gjith\u00eb procesi i gjenerimit t\u00eb polinomit, i cili ishte i nevojsh\u00ebm n\u00eb seksionin e kaluar. Hapat 1, 2 dhe 4 t\u00eb lartp\u00ebrmendur kan\u00eb nj\u00eb implementim mjaft t\u00eb qart\u00eb. Nd\u00ebrsa hapi 3 nuk \u00ebsht\u00eb aq i thjesht\u00eb.<\/em><\/p>\n<p>Specifikisht, ne duhet t\u00eb jemi n\u00eb gjendje t\u00eb d\u00ebshmojm\u00eb se t\u00eb koduar<\/p>\n<p>i(j) v\u00ebrtet p\u00ebrkojn\u00eb me t\u00eb publikuara.<em> p<\/em>N\u00ebse ne nuk mund ta d\u00ebshmojm\u00eb, nj\u00eb sulmues <em>Pas k\u00ebtij hapi, <\/em>mund t\u00eb d\u00ebrgoj\u00eb mbetje n\u00eb vend t\u00eb<em> i <\/em>i(j) p\u00ebr pjes\u00ebmarr\u00ebsin<em> p<\/em>, dhe pjes\u00ebmarr\u00ebsi <em>j<\/em>nuk do t\u00eb jet\u00eb n\u00eb gjendje t\u00eb marr\u00eb vler\u00ebn reale <em>j <\/em>pi(j), <em>dhe nuk do t\u00eb jet\u00eb n\u00eb gjendje t\u00eb llogaris\u00eb komponentin e tij privat. <\/em>Ka nj\u00eb protokoll kriptografik q\u00eb lejon krijimin e nj\u00eb mesazhi shtes\u00eb<em>.<\/em><\/p>\n<p>proof<em> i(j), n\u00eb m\u00ebnyr\u00eb q\u00eb \u00e7do pjes\u00ebmarr\u00ebs, duke pasur nj\u00eb vler\u00eb t\u00eb caktuar<\/em>e, <em>si dhe <\/em>proofi(j)<em> i(j)G, mund t\u00eb sigurohet lokal q\u00eb <\/em>dhe<em> p<\/em>\u2013 \u00ebsht\u00eb v\u00ebrtet <em>e<\/em> i koduar me \u00e7el\u00ebsin e pjes\u00ebmarr\u00ebsit <em>dhe nuk do t\u00eb jet\u00eb n\u00eb gjendje t\u00eb llogaris\u00eb komponentin e tij privat. <\/em>j.<em> Fatkeq\u00ebsisht, madh\u00ebsia e k\u00ebtij d\u00ebshmimi \u00ebsht\u00eb jasht\u00ebzakonisht e madhe, dhe duke pasur parasysh se \u00ebsht\u00eb e nevojshme t\u00eb publikohet <\/em>O(nk)<em> t\u00eb till\u00eb prova, p\u00ebrdorimi i tyre p\u00ebr k\u00ebt\u00eb q\u00ebllim nuk do t\u00eb funksionoj\u00eb. <\/em>N\u00eb vend t\u00eb d\u00ebshmis\u00eb se<\/p>\n<p>pi(j) <em>i(j)G ne mund t\u00eb ndajm\u00eb nj\u00eb periudh\u00eb t\u00eb madhe kohore n\u00eb protokollin e gjenerimit t\u00eb polinomit, gjat\u00eb t\u00eb cil\u00ebs t\u00eb gjith\u00eb pjes\u00ebmarr\u00ebsit do t\u00eb verifikojn\u00eb mesazhet e koduara <\/em>p\u00ebrputhet<em> p<\/em>e n\u00ebse mesazhi i dekoduar nuk p\u00ebrkon me publikun <em>dhe nuk do t\u00eb jet\u00eb n\u00eb gjendje t\u00eb llogaris\u00eb komponentin e tij privat. <\/em>i(j)G, ata publikojn\u00eb nj\u00eb prov\u00eb kriptografike se mesazhi i marr\u00eb prej tyre \u00ebsht\u00eb i pasakt\u00eb. D\u00ebshmia se mesazhi<em> p<\/em>pi(G) <em>nuk <\/em>p\u00ebrputhet <em>\u00ebsht\u00eb shum\u00eb m\u00eb e leht\u00eb se sa t\u00eb tregosh se ai p\u00ebrkon. Duhet t\u00eb theksohet se kjo k\u00ebrkon q\u00eb \u00e7do pjes\u00ebmarr\u00ebs t\u00eb shfaqet n\u00eb rrjet s\u00eb paku nj\u00eb her\u00eb gjat\u00eb koh\u00ebs s\u00eb alokuar p\u00ebr krijimin e provave t\u00eb tilla, dhe mb\u00ebshtetet n\u00eb supozimin se n\u00ebse ata kan\u00eb publikur nj\u00eb prov\u00eb t\u00eb till\u00eb, ajo do t\u00eb arrij\u00eb t\u00eb gjith\u00eb pjes\u00ebmarr\u00ebsit e tjer\u00eb brenda t\u00eb nj\u00ebjt\u00ebs periudh\u00eb t\u00eb alokuar.<\/em> N\u00ebse nj\u00eb pjes\u00ebmarr\u00ebs nuk shfaqet n\u00eb rrjet gjat\u00eb k\u00ebtij periudhe, dhe ata me t\u00eb v\u00ebrtet\u00eb kishin t\u00eb pakt\u00ebn nj\u00eb komponent t\u00eb pasakt\u00eb, at\u00ebher\u00eb ky pjes\u00ebmarr\u00ebs specifik nuk do t\u00eb jet\u00eb n\u00eb gjendje t\u00eb marr\u00eb pjes\u00eb n\u00eb gjenerimin e m\u00ebtejsh\u00ebm t\u00eb numrave. Protokolli, megjithat\u00eb, do t\u00eb funksionoj\u00eb akoma n\u00ebse ka t\u00eb pakt\u00ebn<\/p>\n<p><img decoding=\"async\" alt=\"A \u00ebsht\u00eb e mundur t\u00eb gjenerohen numra t\u00eb rastit, n\u00ebse nuk i besojm\u00eb nj\u00ebri-tjetrit? Pjesa 2\" src=\"\/wp-content\/uploads\/2020\/10\/f7d92f18c75aa6161a9e3f1724b57426.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>N\u00ebse pjes\u00ebmarr\u00ebsi nuk \u00ebsht\u00eb shfaqur n\u00eb rrjet gjat\u00eb k\u00ebtij periudhe dhe v\u00ebrtet kishte t\u00eb pakt\u00ebn nj\u00eb komponent t\u00eb gabuar, at\u00ebher\u00eb ky pjes\u00ebmarr\u00ebs specifik nuk do t\u00eb mund t\u00eb marr\u00eb pjes\u00eb n\u00eb gjenerimin e m\u00ebtejm\u00eb t\u00eb numrave. Protokolli, megjithat\u00eb, do t\u00eb funksionoj\u00eb ende n\u00ebse ka t\u00eb pakt\u00ebn <em>k<\/em> pjes\u00ebtar\u00ebve q\u00eb ose sapo mor\u00ebn komponentet e sakta, ose arrit\u00ebn t\u00eb l\u00ebn\u00eb prov\u00ebn e pasakt\u00ebsis\u00eb brenda koh\u00ebs s\u00eb caktuar.<\/p>\n<h3>Provave t\u00eb sakt\u00ebsis\u00eb H_i<\/h3>\n<p>Pjesa e fundit q\u00eb mbetet p\u00ebr t'u diskutuar \u00ebsht\u00eb se si t\u00eb provohet sakt\u00ebsia e publikuar<em> H<\/em>i, dometh\u00ebn\u00eb se <em>llogarit dhe publikoi <\/em>pa zbuluar<em> nuk \u00ebsht\u00eb e mjaftueshme p\u00ebr t\u00eb rikonstruktuar<\/em><\/p>\n<p>Kujtojm\u00eb se vlerat<em> H, G, p(i)G <\/em>s\u00eb bashku dhe jan\u00eb t\u00eb njohura p\u00ebr t\u00eb gjith\u00eb.<em> <\/em>Operacioni i marrjes<em> . Ne do ta quajm\u00eb <\/em>duke ditur<em> -i pjes\u00ebmarr\u00ebs e di at\u00eb), dhe <\/em>dhe<em> G <\/em>quhet logaritmi diskret, ose<em> dlog, <\/em>dhe ne duam t\u00eb provojm\u00eb se:<\/p>\n<p><em>dlog(p(i)G, G) = dlog(H<\/em>i, <em>H<\/em>)<\/p>\n<p>pa zbuluar <em>. Ne do ta quajm\u00eb<\/em>. Nd\u00ebrtesa p\u00ebr k\u00ebto prova ekzistojn\u00eb, p\u00ebr shembull<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Proof_of_knowledge#Schnorr_protocol\"> <u>Protokolli Schnorr<\/u><\/a><\/noindex>.<\/p>\n<p>Me nj\u00eb nd\u00ebrtim t\u00eb till\u00eb, \u00e7do pjes\u00ebmarr\u00ebs s\u00eb bashku me <em>P\u00ebrsh\u00ebndetje <\/em>d\u00ebrgon prov\u00ebn e sakt\u00ebsis\u00eb sipas nd\u00ebrtimit.<\/p>\n<p>Kur numri i rast\u00ebsish\u00ebm \u00ebsht\u00eb gjeneruar, shpesh duhet ta p\u00ebrdorin pjes\u00ebmarr\u00ebsit, t\u00eb ndrysh\u00ebm nga ata q\u00eb e gjeneruan. T\u00eb till\u00ebve u nevojitet t\u00eb d\u00ebrgohen s\u00eb bashku me numrin t\u00eb gjitha <em>P\u00ebrsh\u00ebndetje<\/em> dhe provat p\u00ebrcjell\u00ebse.<\/p>\n<p>Lexuesi kurioz mund t\u00eb pyes\u00eb: pasi numri p\u00ebrfundimtar i rast\u00ebsish\u00ebm \u00ebsht\u00eb<em> H<\/em>0, dhe <em>p(0)G \u2013 <\/em>\u00ebsht\u00eb informacion publik, p\u00ebrse \u00ebsht\u00eb e nevojshme prova p\u00ebr secilin t\u00eb ve\u00e7ant\u00eb<em> H<\/em>i, pse t\u00eb mos d\u00ebrgohet prov\u00eb se<\/p>\n<p>dlog(<em>p(0)G, G) = dlog(H<\/em>0, <em>H<\/em>)<\/p>\n<p>Problemi \u00ebsht\u00eb se me Protokollin Schnorr nuk mund t\u00eb krijohet nj\u00eb prov\u00eb e till\u00eb, sepse askush nuk e di vler\u00ebn <em>p(0)<\/em>, e nevojshme p\u00ebr t\u00eb krijuar prov\u00ebn, dhe m\u00eb tep\u00ebr, gjith\u00eb gjeneratori i numrave rast\u00ebsish\u00ebm bazohet n\u00eb faktin se askush nuk e di k\u00ebt\u00eb vler\u00eb. Prandaj, \u00ebsht\u00eb e nevojshme t\u00eb kemi t\u00eb gjitha vlerat <em>P\u00ebrsh\u00ebndetje <\/em>dhe provat e tyre individuale, p\u00ebr t\u00eb provuar sakt\u00ebsin\u00eb<em> H<\/em>0.<\/p>\n<p>Megjithat\u00eb, n\u00ebse do t\u00eb kishte ndonj\u00eb operacion n\u00eb piketat n\u00eb kurbat eliptike, i cili \u00ebsht\u00eb semantikisht i ngjash\u00ebm me shum\u00ebzimin, provat e sakt\u00ebsis\u00eb <em>H0 <\/em>do t\u00eb ishte triviale, ne do t\u00eb siguroheshim thjesht se<\/p>\n<p><em>H<\/em>0 \u00d7 <em>G<\/em> = <em>p(0)G \u00d7 H<\/em><\/p>\n<p>N\u00ebse curva e zgjedhur mb\u00ebshtet <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@VitalikButerin\/exploring-elliptic-curve-pairings-c73c1864e627\"><u>p\u00ebrputhjet e kurbave eliptike,<\/u><\/a><\/noindex>nj\u00eb prov\u00eb e till\u00eb funksionon. N\u00eb k\u00ebt\u00eb rast<em> H<\/em>0 \u2013 \u00ebsht\u00eb jo vet\u00ebm rezultati i gjeneratorit t\u00eb numrave rast\u00ebsish\u00ebm q\u00eb mund t\u00eb verifikohet nga \u00e7do pjes\u00ebmarr\u00ebs q\u00eb e njeh <em>G, H<\/em> dhe <em>p(0)G. H<\/em>0 \u2013 \u00ebsht\u00eb gjithashtu nj\u00eb n\u00ebnshkrim mbi mesazhin, i cili u p\u00ebrdor si seed, q\u00eb konfirmon se <em>k<\/em> dhe <em>n <\/em>pjes\u00ebtar\u00ebt e n\u00ebnshkruan k\u00ebt\u00eb mesazh. Ashtu q\u00eb, n\u00ebse <em>seed \u2013 <\/em>\u00ebsht\u00eb hesh i blokut n\u00eb protokollin e blockchain, at\u00ebher\u00eb <em>H0<\/em> \u2013 \u00ebsht\u00eb nj\u00ebkoh\u00ebsisht nj\u00eb n\u00ebnshkrim i shum\u00ebfisht\u00eb mbi bllokun dhe nj\u00eb num\u00ebr shum\u00eb t\u00eb mir\u00eb rast\u00ebsor.<\/p>\n<h4>N\u00eb p\u00ebrfundim<\/h4>\n<p>Ky artikull \u00ebsht\u00eb pjes\u00eb e nj\u00eb serie artikujsh teknik n\u00eb blog <noindex><a rel=\"nofollow\" href=\"https:\/\/near.org\">NEAR<\/a><\/noindex>. NEAR \u00ebsht\u00eb nj\u00eb protokoll blockchain dhe platform\u00eb p\u00ebr zhvillimin e aplikacioneve t\u00eb decentralizuara me theks mbi thjesht\u00ebsin\u00eb e zhvillimit dhe p\u00ebrdorimin e thjesht\u00eb p\u00ebr p\u00ebrdoruesit p\u00ebrfundimtar\u00eb.<\/p>\n<p>Kodi i protokollit \u00ebsht\u00eb i hapur, zbatimi yn\u00eb \u00ebsht\u00eb shkruar n\u00eb Rust dhe mund t\u00eb gjendet <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/nearprotocol\/nearcore\">k\u00ebtu<\/a><\/noindex>.<\/p>\n<p>T\u00eb shikoni si duket zhvillimi n\u00ebn NEAR dhe t\u00eb eksperimentoni n\u00eb online-IDE mund t\u00eb b\u00ebhet <noindex><a rel=\"nofollow\" href=\"https:\/\/examples.near.org\">k\u00ebtu<\/a><\/noindex>.<\/p>\n<p>T\u00eb ndjekni t\u00eb gjitha lajmet n\u00eb gjuh\u00ebn ruse mund t\u00eb b\u00ebhet n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/near_protocol\">grupin n\u00eb Telegram<\/a><\/noindex> dhe n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/vk.com\/nearprotocol\">grupin n\u00eb VKontakte<\/a><\/noindex>, dhe n\u00eb anglisht n\u00eb zyrtare <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/NEARProtocol\">twitter<\/a><\/noindex>.<\/p>\n<p>Shihemi s\u00eb shpejti!<\/p>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/near\/blog\/521700\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u043c\u044b \u043e\u0431\u0441\u0443\u0434\u0438\u043b\u0438, \u0437\u0430\u0447\u0435\u043c \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0434\u043e\u0432\u0435\u0440\u044f\u044e\u0442 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0443, \u043a\u0430\u043a\u0438\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u044b\u0434\u0432\u0438\u0433\u0430\u044e\u0442\u0441\u044f \u043a \u0442\u0430\u043a\u0438\u043c \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430\u043c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b, \u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u0434\u0432\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u043a \u0438\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u0412 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u043c\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043f\u043e\u0434\u0445\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043f\u043e\u0440\u043e\u0433\u043e\u0432\u044b\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u0438. \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":95847,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-95846","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/mozhno-li-generirovat-sluchajnye-chisla-esli-my-ne-doveryaem-drug-drugu-chast-2\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430, \u0435\u0441\u043b\u0438 \u043c\u044b \u043d\u0435 \u0434\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0443? \u0427\u0430\u0441\u0442\u044c 2 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/mozhno-li-generirovat-sluchajnye-chisla-esli-my-ne-doveryaem-drug-drugu-chast-2\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-10-03T23:42:23+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-10-03T23:42:23+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 A mund t\u00eb gjenerohen numra rast\u00ebsor\u00eb n\u00ebse ne nuk i besojm\u00eb nj\u00ebri-tjetrit? Pjesa 2 | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/mozhno-li-generirovat-sluchajnye-chisla-esli-my-ne-doveryaem-drug-drugu-chast-2","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430, \u0435\u0441\u043b\u0438 \u043c\u044b \u043d\u0435 \u0434\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0443? \u0427\u0430\u0441\u0442\u044c 2 | ProHoster","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/mozhno-li-generirovat-sluchajnye-chisla-esli-my-ne-doveryaem-drug-drugu-chast-2","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-10-03T23:42:23+00:00","article:modified_time":"2020-10-03T23:42:23+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"95846","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 10:56:24","updated":"2022-09-30 13:54:48","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/95846","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=95846"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/95846\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/95847"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=95846"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=95846"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=95846"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}