{"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 mund t\u00eb gjenerohen numra rast\u00ebsor\u00eb 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 mund t\u00eb gjenerohen numra rast\u00ebsor\u00eb 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\u00ebn e par\u00eb<\/a><\/noindex> N\u00eb artikujt e m\u00ebparsh\u00ebm, ne diskutuam se p\u00ebrse mund t\u00eb jet\u00eb e nevojshme t\u00eb gjenerohen numra rast\u00ebsor\u00eb p\u00ebr pjes\u00ebmarr\u00ebsit q\u00eb nuk i besojn\u00eb nj\u00ebri-tjetrit, cilat jan\u00eb k\u00ebrkesat q\u00eb i parashtrohen k\u00ebtyre gjenerator\u00ebve t\u00eb numrave rast\u00ebsor\u00eb, dhe shqyrtuam dy qasje p\u00ebr implementimin e tyre.<\/p>\n<p>N\u00eb k\u00ebt\u00eb pjes\u00eb t\u00eb artikullit ne do t\u00eb shqyrtojm\u00eb n\u00eb detaje nj\u00eb qasje tjet\u00ebr q\u00eb p\u00ebrdor n\u00ebnshkrime prag.<\/p>\n<h3>Pak kriptografi<\/h3>\n<p>P\u00ebr t\u00eb kuptuar sesi funksionojn\u00eb n\u00ebnshkrimet prag, duhet t\u00eb kuptoni pak kriptografi baz\u00eb. Ne do t\u00eb p\u00ebrdorim dy koncepte: skalare, ose thjesht numra, t\u00eb cil\u00ebt do t'i p\u00ebrcaktojm\u00eb me shkronja t\u00eb vogla (<em>x, y<\/em>) dhe pika n\u00eb nj\u00eb kurb\u00eb eliptike, t\u00eb cilat do t'i p\u00ebrcaktojm\u00eb me shkronja t\u00eb m\u00ebdha.<\/p>\n<p>P\u00ebr t\u00eb kuptuar baz\u00ebn e n\u00ebnshkrimeve prag, nuk \u00ebsht\u00eb e nevojshme t\u00eb kuptohet si funksionojn\u00eb kurbat eliptike, p\u00ebrve\u00e7 disa gj\u00ebrave bazike:<\/p>\n<ol>\n<li>\n<p>Pikat n\u00eb kurb\u00ebn eliptike mund t\u00eb shtohen dhe t\u00eb shum\u00ebzohen me skalare (shum\u00ebzimi me skalar do ta paraqesim si <em>xG<\/em>, megjith\u00ebse nota <em>Gx<\/em> po p\u00ebrdoret shpesh n\u00eb let\u00ebrsi). Rezultati i mbledhjes dhe i 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 skalarin <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 pasurin\u00eb e m\u00ebposhtme t\u00eb polinom\u00ebve: n\u00ebse ne e dim\u00eb vler\u00ebn <em>p(x) <\/em>p\u00ebr \u00e7do <em>k <\/em>t\u00eb ndrysh\u00ebm <em>x <\/em>(dhe nuk kemi ndonj\u00eb informacion tjet\u00ebr rreth <em>p(x)<\/em>), ne mund t\u00eb llogarisim <em>p(x) <\/em>p\u00ebr \u00e7do tjet\u00ebr <em>x<\/em>.<\/p>\n<p>\u00cbsht\u00eb interesante q\u00eb p\u00ebr \u00e7do polinom <em>p(x)<\/em> dhe nj\u00eb pik\u00eb t\u00eb caktuar n\u00eb kurb\u00eb <em>G<\/em>, duke ditur vler\u00ebn <em>p(x)G<\/em> p\u00ebr \u00e7do <em>k<\/em> t\u00eb vlerave t\u00eb ndryshme <em>x<\/em>, gjithashtu mund t\u00eb llogarisim <em>p(x)G<\/em> p\u00ebr \u00e7do <em>x<\/em>.<\/p>\n<p>Kjo informacion mjafton p\u00ebr t\u00eb thelluar n\u00eb detajet se si funksionojn\u00eb n\u00ebnshkrimet prag, dhe si mund t\u00eb p\u00ebrdoren p\u00ebr t\u00eb gjeneruar numra rast\u00ebsor\u00eb.<\/p>\n<h3>Gjeneratori i numrave rast\u00ebsor\u00eb me n\u00ebnshkrime prag<\/h3>\n<p>Supozoni se <em>n<\/em> pjes\u00ebmarr\u00ebsit duan t\u00eb gjenerojn\u00eb nj\u00eb num\u00ebr rast\u00ebsor, dhe ne duam q\u00eb pjes\u00ebmarrja e \u00e7do <em>k<\/em> prej tyre t\u00eb mjaftoj\u00eb p\u00ebr t\u00eb gjeneruar numrin, por q\u00eb keqb\u00ebr\u00ebsit, t\u00eb cil\u00ebt kontrollojn\u00eb <em>k<\/em>-1 ose m\u00eb pak pjes\u00ebmarr\u00ebs, t\u00eb mos mundin t\u00eb parashikojn\u00eb ose ndikojn\u00eb n\u00eb numrin e gjeneruar.<\/p>\n<p><img decoding=\"async\" alt=\"A mund t\u00eb gjenerohen numra rast\u00ebsor\u00eb 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>Supozoni se ekziston nj\u00eb polinom <em>p(x)<\/em> me grad\u00eb <em>k<\/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>dhe k\u00ebshtu me radh\u00eb (<em>n<\/em>-ti e di <em>p(n)<\/em>). Po gjithashtu lejohet q\u00eb p\u00ebr nj\u00eb pik\u00eb t\u00eb p\u00ebrcaktuar m\u00eb par\u00eb, <em>G<\/em> t\u00eb gjith\u00eb e din\u00eb <em>p(x)G <\/em>p\u00ebr t\u00eb gjitha vlerat <em>x<\/em>. Ne do ta quajm\u00eb <em>p(i)<\/em> \u201ckomponent privat\u201d <em>i<\/em>i -t\u00eb pjes\u00ebmarr\u00ebsi (sepse vet\u00ebm <em>i<\/em>-i pjes\u00ebmarr\u00ebs e njeh at\u00eb), dhe <em>p(i)G<\/em> \u201ckomponent publik\u201d <em>i<\/em>i -t\u00eb pjes\u00ebmarr\u00ebsi (sepse t\u00eb gjith\u00eb pjes\u00ebmarr\u00ebsit e din\u00eb at\u00eb). Si\u00e7 e mbani mend, njohja <em>p(i)G <\/em>nuk \u00ebsht\u00eb e mjaftueshme p\u00ebr t\u00eb rikuperuar <em>p(i).<\/em><\/p>\n<p>Krijimi i nj\u00eb polinomi t\u00eb till\u00eb n\u00eb m\u00ebnyr\u00eb q\u00eb vet\u00ebm <em>i -ti<\/em>-i pjes\u00ebmarr\u00ebs dhe askush tjet\u00ebr ta dij\u00eb komponentin e tij privat \u2013 kjo \u00ebsht\u00eb pjesa m\u00eb e v\u00ebshtir\u00eb dhe interesante e protokollit, dhe ne do ta shqyrtojm\u00eb m\u00eb posht\u00eb. P\u00ebr tani le lejojm\u00eb q\u00eb nj\u00eb polinom i till\u00eb t\u00eb kemi, dhe t\u00eb gjith\u00eb pjes\u00ebmarr\u00ebsit e din\u00eb komponentet e tyre private.<\/p>\n<p>Si mund ta p\u00ebrdorim nj\u00eb polinom t\u00eb till\u00eb p\u00ebr t\u00eb gjeneruar nj\u00eb num\u00ebr rast\u00ebsor? N\u00eb fillim na nevojitet nj\u00eb varg q\u00eb m\u00eb par\u00eb nuk \u00ebsht\u00eb p\u00ebrdorur si hyrje p\u00ebr gjeneratorin. N\u00eb rastin e blockchain, hash-i i bllokut t\u00eb fundit <em>h<\/em> \u2014 \u00ebsht\u00eb nj\u00eb kandidat i mir\u00eb p\u00ebr nj\u00eb linj\u00eb 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>si seed. S\u00eb pari, pjes\u00ebmarr\u00ebsit konvertojn\u00eb <em>h<\/em> n\u00eb nj\u00eb pik\u00eb n\u00eb kurb\u00eb duke p\u00ebrdorur \u00e7do funksion t\u00eb p\u00ebrcaktuar m\u00eb par\u00eb:<\/p>\n<p><em>H = scalarToPoint(h)<\/em><\/p>\n<p>Pastaj \u00e7do pjes\u00ebmarr\u00ebs <em>i<\/em> llogarit dhe publikon <em>Hi = p(i)H, <\/em>t\u00eb cilin ata mund ta b\u00ebjn\u00eb, sepse ata e din\u00eb<em> p(i) dhe H. <\/em>Zbulimi<em> H<\/em>i nuk i lejon pjes\u00ebmarr\u00ebsit e tjer\u00eb t\u00eb rikuperojn\u00eb komponentin privat <em>i<\/em>t\u00eb -t\u00eb pjes\u00ebmarr\u00ebsi, dhe p\u00ebr k\u00ebt\u00eb arsye nj\u00eb set i vet\u00ebm i komponent\u00ebve privat mund t\u00eb p\u00ebrdoret nga blloku n\u00eb bllok. K\u00ebshtu, algoritmi i shtrenjt\u00eb i krijimit t\u00eb polinomit t\u00eb shqiptuar m\u00eb posht\u00eb, duhet t\u00eb zbatohen vet\u00ebm nj\u00eb her\u00eb.<\/p>\n<p>Kur <em>k<\/em> pjes\u00ebmarr\u00ebsit e zbuluar <em>Hi = p(i)H, <\/em>t\u00eb gjith\u00eb mund t\u00eb llogaritin<em> H<\/em>x = <em>p(x)H<\/em> p\u00ebr t\u00eb gjith\u00eb <em>x<\/em> fal\u00eb pron\u00ebsis\u00eb s\u00eb polinom\u00ebve, t\u00eb cilat ne i 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 kjo \u00ebsht\u00eb numri rast\u00ebsor rezultues. 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>\u00e7far\u00eb \u00ebsht\u00eb e mundur vet\u00ebm kur<em> k <\/em>vlerat<em> p(i)H <\/em>jan\u00eb t\u00eb njohura. Zbulimi i \u00e7do sasie m\u00eb t\u00eb vog\u00ebl<em> p(i)H <\/em>nuk jep asnj\u00eb informacion p\u00ebr<em> p(0)H.<\/em><\/p>\n<p><img decoding=\"async\" alt=\"A mund t\u00eb gjenerohen numra rast\u00ebsor\u00eb 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 i m\u00ebsip\u00ebrm ka t\u00eb gjitha karakteristikat 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 asnj\u00eb informacion dhe ndikim mbi rezultatin, nd\u00ebrsa \u00e7do <em>k<\/em> pjes\u00ebmarr\u00ebs mund t\u00eb llogaris\u00eb numrin rezultues, dhe \u00e7do n\u00ebngrup prej <em>k<\/em> pjes\u00ebtar\u00ebt gjithmon\u00eb do t\u00eb \u00e7ojn\u00eb n\u00eb t\u00eb nj\u00ebjtin rezultat p\u00ebr t\u00eb nj\u00ebjtin seed.<\/p>\n<p>Ka nj\u00eb problem, t\u00eb cilin e kemi anashkaluar me kujdes m\u00eb lart. Q\u00eb t\u00eb funksionoj\u00eb interpolimi, \u00ebsht\u00eb e r\u00ebnd\u00ebsishme q\u00eb vlera<em> H<\/em>i q\u00eb publikoi \u00e7do pjes\u00ebmarr\u00ebs <em>i<\/em> t\u00eb jet\u00eb me t\u00eb v\u00ebrtet\u00eb e barabart\u00eb me <em>p(i)H.<\/em> Duke qen\u00eb se askush p\u00ebrve\u00e7 <em>i<\/em>-it pjes\u00ebmarr\u00ebs nuk di <em>p(i), <\/em>askush p\u00ebrve\u00e7 <em>i -ti<\/em>-it pjes\u00ebmarr\u00ebs nuk mund t\u00eb verifikoj\u00eb se <em>P\u00ebrsh\u00ebndetje <\/em>v\u00ebrtet \u00ebsht\u00eb llogaritur sakt\u00ebsisht, 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>P\u00ebrsh\u00ebndetje, <\/em>dhe t\u00eb ndikoj\u00eb arbitralisht n\u00eb daljen e gjeneratorit t\u00eb numrave t\u00eb rastit.<em>:<\/em><\/p>\n<p><img decoding=\"async\" alt=\"A mund t\u00eb gjenerohen numra rast\u00ebsor\u00eb 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;\" \/>Vlera t\u00eb ndryshme H_1, t\u00eb d\u00ebrguara nga pjes\u00ebmarr\u00ebsi i par\u00eb, \u00e7ojn\u00eb n\u00eb H_0 rezultat t\u00eb ndrysh\u00ebm.<\/p>\n<p>Ka t\u00eb pakt\u00ebn dy m\u00ebnyra p\u00ebr t\u00eb provuar sakt\u00ebsin\u00eb<em> H<\/em>i, ne do t'i shqyrtojm\u00eb ato pasi t\u00eb analizojm\u00eb gjenerimin e polinomit.<\/p>\n<h3>Gjenerimi i polinomit<\/h3>\n<p>N\u00eb seksionin e kaluar 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> e di <em>p(i)<\/em>, dhe askush tjet\u00ebr nuk ka informacione t\u00eb tjera p\u00ebr k\u00ebt\u00eb vler\u00eb. N\u00eb seksionin e ardhsh\u00ebm do t\u00eb jet\u00eb e nevojshme q\u00eb p\u00ebr nj\u00eb pik\u00eb t\u00eb parap\u00ebrcaktuar <em>G<\/em> t\u00eb gjith\u00eb t\u00eb din\u00eb <em>p(x)G <\/em>p\u00ebr t\u00eb gjith\u00eb<em> x<\/em>.<\/p>\n<p>N\u00eb k\u00ebt\u00eb seksion ne do t\u00eb supozojm\u00eb se \u00e7do pjes\u00ebmarr\u00ebs ka nj\u00eb \u00e7el\u00ebs privat lokal <em>xi, <\/em>t\u00eb till\u00eb q\u00eb \u00e7el\u00ebsi publik i tij<em> X<\/em>i \u00ebsht\u00eb i njohur.<\/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 mund t\u00eb gjenerohen numra rast\u00ebsor\u00eb 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 i d\u00ebrgojn\u00eb \u00e7do pjes\u00ebmarr\u00ebsi<em> j <\/em>vler\u00ebn<em> p<\/em>i(j), e enkriptuar me \u00e7el\u00ebsin publik <em>Xj. <\/em>K\u00ebshtu vet\u00ebm<em> i -ti<\/em>i<em> <\/em>dhe<em> j-<\/em>i<em> <\/em>pjes\u00ebmarr\u00ebs e din\u00eb<em> p<\/em>i(j). Pjes\u00ebmarr\u00ebsi <em>i<\/em> po ashtu publikon publikisht <em>pi(j)G <\/em>p\u00ebr t\u00eb gjith\u00eb<em> j <\/em>nga<em> 1 <\/em>n\u00eb<em> k <\/em>p\u00ebrfshir\u00eb.<\/p>\n<\/li>\n<li>\n<p>T\u00eb gjith\u00eb pjes\u00ebmarr\u00ebsit p\u00ebrdorin nj\u00eb konsensus p\u00ebr t\u00eb zgjedhur<em> k <\/em>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 deri sa t\u00eb gjith\u00eb<em> n <\/em>pjes\u00ebmarr\u00ebsit t\u00eb publikojn\u00eb polinom\u00ebt. Rezultati i k\u00ebtij hapi \u00ebsht\u00eb nj\u00eb grup<em> <\/em><strong><em>Z<\/em><\/strong><em> <\/em>i p\u00ebrb\u00ebr\u00eb nga t\u00eb pakt\u00ebn<em> k <\/em>polinom\u00ebsh, t\u00eb krijuar n\u00eb hapin (1)<em>.<\/em><\/p>\n<\/li>\n<li>\n<p>Pjes\u00ebmarr\u00ebsit sigurohen q\u00eb vlerat e njohura prej tyre<em> p<\/em>i(j) korrespondon me <em>pi(j)G q\u00eb \u00ebsht\u00eb shpallur publikisht. <\/em>Pas k\u00ebtij hapi, n\u00eb<em> <\/em><strong><em>Z <\/em><\/strong>duhen mbetur vet\u00ebm polinom\u00ebt, p\u00ebr t\u00eb cil\u00ebt komponenti privat<em> p<\/em>i(j) korrespondon me <em>pi(j)G q\u00eb \u00ebsht\u00eb shpallur publikisht.<\/em><\/p>\n<\/li>\n<li>\n<p>\u00c7do pjes\u00ebmarr\u00ebs<em> j <\/em>i llogarit<em> p(j) <\/em>si shum\u00ebn<em> p<\/em>i(j) p\u00ebr t\u00eb gjith\u00eb <em>i<\/em> n\u00eb <strong><em>Z<\/em><\/strong>. \u00c7do pjes\u00ebmarr\u00ebs gjithashtu llogarit t\u00eb gjitha vlerat <em>p(x)G <\/em>si shum\u00ebn <em>pi(x)G p\u00ebr t\u00eb gjith\u00eb i <\/em>n\u00eb<em> <\/em><strong><em>Z<\/em><\/strong><em>.<\/em><\/p>\n<\/li>\n<\/ol>\n<p><img decoding=\"async\" alt=\"A mund t\u00eb gjenerohen numra rast\u00ebsor\u00eb 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>Vini re se<em> p(x) \u2013 <\/em>kjo \u00ebsht\u00eb v\u00ebrtet nj\u00eb polinom i grad\u00ebs<em> k-1, <\/em>sepse kjo \u00ebsht\u00eb shuma e individ\u00ebve t\u00eb ve\u00e7ant\u00eb<em> p<\/em>i(x), \u00e7do nj\u00ebri prej t\u00eb cil\u00ebve \u00ebsht\u00eb nj\u00eb polinom i grad\u00ebs <em>k<\/em>-1. Pastaj, vini re se nd\u00ebrsa \u00e7do pjes\u00ebmarr\u00ebs <em>j<\/em> e di <em>p(j), <\/em>ata nuk kan\u00eb asnj\u00eb informacion mbi <em>p(x)<\/em> p\u00ebr <em>x \u2260 j<\/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 gjitha <em>pi(x), <\/em>dhe p\u00ebr sa koh\u00eb q\u00eb nj\u00eb pjes\u00ebmarr\u00ebs<em> j <\/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> p(x).<\/em><\/p>\n<p>Ky \u00ebsht\u00eb i gjith\u00eb procesi i gjenerimit t\u00eb polinom\u00ebve, i nevojsh\u00ebm n\u00eb seksionin e kaluar. Hapat 1, 2 dhe 4 m\u00eb sip\u00ebr kan\u00eb nj\u00eb implementim t\u00eb mjaftuesh\u00ebm t\u00eb qart\u00eb. Megjithat\u00eb, hapi 3 nuk \u00ebsht\u00eb aq triviale.<\/p>\n<p>Specifikisht, na nevojitet t\u00eb jemi n\u00eb gjendje t\u00eb provojm\u00eb se t\u00eb koduarit<em> p<\/em>i(j) v\u00ebrtet i korrespondon publikimeve <em>pi(j)G q\u00eb \u00ebsht\u00eb shpallur publikisht. <\/em>N\u00ebse nuk e b\u00ebjm\u00eb k\u00ebt\u00eb fakt, nj\u00eb sulmues<em> i <\/em>mund t\u00eb d\u00ebrgoj\u00eb plehra n\u00eb vend t\u00eb<em> p<\/em>i(j) p\u00ebr pjes\u00ebmarr\u00ebsin <em>j<\/em>, dhe pjes\u00ebmarr\u00ebsi <em>j <\/em>nuk do t\u00eb jet\u00eb n\u00eb gjendje t\u00eb marr\u00eb vler\u00ebn e v\u00ebrtet\u00eb <em>pi(j), <\/em>dhe nuk do t\u00eb mund t\u00eb llogaris\u00eb komponentin e tij privat<em>.<\/em><\/p>\n<p>Ka nj\u00eb protokoll kriptografik q\u00eb lejon krijimin e nj\u00eb mesazhi t\u00eb m\u00ebtejsh\u00ebm<em> proof<\/em>i(j), i till\u00eb q\u00eb \u00e7do pjes\u00ebmarr\u00ebs, duke pasur nj\u00eb vler\u00eb t\u00eb caktuar <em>e, <\/em>dhe gjithashtu<em> proofi(j) <\/em>dhe<em> p<\/em>i(j)G, mund t\u00eb sigurohet lokalisht se <em>e<\/em> \u00ebsht\u00eb v\u00ebrtet <em>pi(j), <\/em>i koduar me \u00e7el\u00ebsin e pjes\u00ebmarr\u00ebsit<em> j. <\/em>Fatkeq\u00ebsisht, madh\u00ebsia e k\u00ebtij d\u00ebshmimi \u00ebsht\u00eb jasht\u00ebzakonisht e madhe, dhe duke pasur parasysh se duhet t\u00eb publikohen<em> O(nk) <\/em>t\u00eb tilla d\u00ebshmi, p\u00ebrdorimi i tyre p\u00ebr k\u00ebt\u00eb q\u00ebllim nuk do t\u00eb jet\u00eb i mundur.<\/p>\n<p>N\u00eb vend q\u00eb t\u00eb provojm\u00eb se <em>pi(j) <\/em>p\u00ebrputhet me<em> p<\/em>i(j)G ne mund t\u00eb ndajm\u00eb n\u00eb protokollin e gjenerimit t\u00eb polinom\u00ebve nj\u00eb periudh\u00eb t\u00eb gjat\u00eb, gjat\u00eb s\u00eb cil\u00ebs t\u00eb gjith\u00eb pjes\u00ebmarr\u00ebsit kontrollojn\u00eb t\u00eb koduarit e marr\u00eb <em>pi(j), <\/em>dhe n\u00ebse mesazhi i \u00e7koduar nuk p\u00ebrputhet me publikun<em> p<\/em>i(j)G, ata publikojn\u00eb nj\u00eb prov\u00eb kriptografike se mesazhi i koduar q\u00eb mor\u00ebn \u00ebsht\u00eb i gabuar. T\u00eb provojm\u00eb se mesazhi <em>jo <\/em>p\u00ebrputhet me <em>pi(G)<\/em> \u00ebsht\u00eb shum\u00eb m\u00eb e leht\u00eb sesa t\u00eb provojm\u00eb se ai p\u00ebrputhet. Duhet t\u00eb theksohet se kjo k\u00ebrkon q\u00eb \u00e7do pjes\u00ebmarr\u00ebs t\u00eb shfaqet n\u00eb rrjet t\u00eb pakt\u00ebn nj\u00eb her\u00eb brenda periudh\u00ebs s\u00eb caktuar p\u00ebr t\u00eb krijuar t\u00eb tilla d\u00ebshmi, dhe mb\u00ebshtetet n\u00eb supozimin se n\u00ebse ata kan\u00eb publikuar nj\u00eb d\u00ebshmi t\u00eb till\u00eb, ajo do t\u00eb arrij\u00eb t\u00eb gjith\u00eb pjes\u00ebmarr\u00ebsit e tjer\u00eb brenda k\u00ebsaj periudhe t\u00eb caktuar.<\/p>\n<p><img decoding=\"async\" alt=\"A mund t\u00eb gjenerohen numra rast\u00ebsor\u00eb 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 nj\u00eb pjes\u00ebmarr\u00ebs nuk ishte online gjat\u00eb k\u00ebtij periudhe kohore dhe realisht kishte t\u00eb pakt\u00ebn nj\u00eb komponent t\u00eb pavlefsh\u00ebm, at\u00ebher\u00eb ky pjes\u00ebmarr\u00ebs konkret nuk do t\u00eb mund t\u00eb merrte pjes\u00eb n\u00eb gjenerimin e m\u00ebtejsh\u00ebm t\u00eb numrave. Protokolli, megjithat\u00eb, do t\u00eb vazhdoj\u00eb t\u00eb funksionoj\u00eb, n\u00ebse ka t\u00eb pakt\u00ebn <em>k<\/em> pjes\u00ebmarr\u00ebs q\u00eb ose sapo kishin marr\u00eb komponentet e sakta, ose kishin arritur t\u00eb l\u00ebn\u00eb d\u00ebshmi t\u00eb pavlefshm\u00ebris\u00eb n\u00eb koh\u00ebn e caktuar.<\/p>\n<h3>D\u00ebshmit\u00eb e saktesis\u00eb H_i<\/h3>\n<p>Pjesa e fundit q\u00eb na mbetet p\u00ebr t\u00eb diskutuar \u00ebsht\u00eb se si t\u00eb provoni sakt\u00ebsin\u00eb e publikimeve<em> H<\/em>i, dometh\u00ebn\u00eb q\u00eb <em>Hi = p(i)H, <\/em>pa zbuluar<em> p(i).<\/em><\/p>\n<p>Kujtojm\u00eb se vlerat<em> H, G, p(i)G <\/em>jan\u00eb publike dhe jan\u00eb t\u00eb njohura p\u00ebr t\u00eb gjith\u00eb.<em> <\/em>Operacioni i marrjes<em> p(i) <\/em>duke ditur<em> p(i)G <\/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>p(i)<\/em>. Strukturat p\u00ebr d\u00ebshmi t\u00eb tilla 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 struktur\u00eb t\u00eb till\u00eb, \u00e7do pjes\u00ebmarr\u00ebs s\u00eb bashku me <em>P\u00ebrsh\u00ebndetje <\/em>d\u00ebrgon nj\u00eb d\u00ebshmi sakt\u00ebsie sipas struktur\u00ebs.<\/p>\n<p>Kur numri i rast\u00ebsish\u00ebm \u00ebsht\u00eb gjeneruar, shpesh \u00ebsht\u00eb e nevojshme t\u00eb p\u00ebrdoret nga pjes\u00ebmarr\u00ebs t\u00eb ndrysh\u00ebm nga ata q\u00eb e kan\u00eb gjeneruar. K\u00ebtyre pjes\u00ebmarr\u00ebsve s\u00eb bashku me numrin duhet t'u d\u00ebrgohen t\u00eb gjitha <em>P\u00ebrsh\u00ebndetje<\/em> dhe d\u00ebshmit\u00eb shoq\u00ebruese.<\/p>\n<p>Lexuesi i kuresh\u00ebm mund t\u00eb pyes\u00eb: pse numri fundit rast\u00ebsor \u2013 \u00ebsht\u00eb<em> H<\/em>0, dhe <em>p(0)G \u2013 <\/em>kjo \u00ebsht\u00eb informacion publik, \u00e7far\u00eb \u00ebsht\u00eb nevoja p\u00ebr d\u00ebshmi p\u00ebr secilin individual<em> H<\/em>i, pse n\u00eb vend t\u00eb k\u00ebsaj t\u00eb mos d\u00ebrgohet d\u00ebshmia se<\/p>\n<p>dlog(<em>p(0)G, G) = dlog(H<\/em>0, <em>H<\/em>)<\/p>\n<p>Problemi \u00ebsht\u00eb q\u00eb me Protokollin Schnorr nuk mund t\u00eb krijohet nj\u00eb d\u00ebshmi e till\u00eb, sepse askush nuk e di vler\u00ebn <em>p(0)<\/em>, e cila \u00ebsht\u00eb e nevojshme p\u00ebr t\u00eb krijuar d\u00ebshmin\u00eb, dhe p\u00ebr m\u00eb tep\u00ebr, i gjith\u00eb gjeneratori i numrave rast\u00ebsor \u00ebsht\u00eb i bazuar n\u00eb at\u00eb q\u00eb askush nuk e di k\u00ebt\u00eb vler\u00eb. Prandaj, \u00ebsht\u00eb e nevojshme t\u00eb ket\u00eb t\u00eb gjitha vlerat <em>P\u00ebrsh\u00ebndetje <\/em>dhe d\u00ebshmit\u00eb 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 nj\u00eb operacion n\u00eb pik\u00ebt n\u00eb kurbat elliptike q\u00eb \u00ebsht\u00eb semantikisht i ngjash\u00ebm me shumimin, d\u00ebshmia e sakt\u00ebsis\u00eb <em>H0 <\/em>do t\u00eb ishte triviale, ne do t\u00eb thoshim vet\u00ebm q\u00eb<\/p>\n<p><em>H<\/em>0 \u00d7 <em>G<\/em> = <em>p(0)G \u00d7 H<\/em><\/p>\n<p>N\u00ebse kriva e zgjedhur mb\u00ebshtet <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@VitalikButerin\/exploring-elliptic-curve-pairings-c73c1864e627\"><u>p\u00ebr\u00e7uesh\u00ebm kurbash elliptike<\/u><\/a><\/noindex>, nj\u00eb d\u00ebshmi e till\u00eb funksionon. N\u00eb k\u00ebt\u00eb rast<em> H<\/em>0 \u2013 nuk \u00ebsht\u00eb vet\u00ebm output i gjeneratorit t\u00eb numrave rast\u00ebsor, i cili mund t\u00eb verifikohet nga \u00e7do pjes\u00ebmarr\u00ebs q\u00eb e di <em>G, H<\/em> dhe <em>p(0)G. H<\/em>0 \u2013 kjo \u00ebsht\u00eb gjithashtu nj\u00eb n\u00ebnshkrim n\u00eb mesazhin q\u00eb u p\u00ebrdor si seed, duke konfirmuar q\u00eb <em>k<\/em> dhe <em>n <\/em>an\u00ebtar\u00ebt e kan\u00eb n\u00ebnshkruar k\u00ebt\u00eb mesazh. K\u00ebshtu, n\u00ebse <em>seed \u2013 <\/em>\u00ebsht\u00eb hash i blokut n\u00eb protokollin e bllokad\u00ebs, at\u00ebher\u00eb <em>H0<\/em> \u2013 \u00ebsht\u00eb nj\u00ebkoh\u00ebsisht n\u00ebnshkrimi shum\u00eb n\u00eb bllok dhe nj\u00eb num\u00ebr shum\u00eb i 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\u00eb n\u00eb blog <noindex><a rel=\"nofollow\" href=\"https:\/\/near.org\">NEAR<\/a><\/noindex>. NEAR \u00ebsht\u00eb nj\u00eb protokoll bllokad\u00eb dhe platform\u00eb p\u00ebr zhvillimin e aplikacioneve t\u00eb decentralizuara me fokus n\u00eb thjesht\u00ebsin\u00eb e zhvillimit dhe thjesht\u00ebsin\u00eb e p\u00ebrdorimit p\u00ebr p\u00ebrdoruesit e fundit.<\/p>\n<p>Kodi i protokollit \u00ebsht\u00eb i hapur, realizimi yn\u00eb \u00ebsht\u00eb i shkruar n\u00eb Rust, mund t\u00eb gjendet <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/nearprotocol\/nearcore\">k\u00ebtu<\/a><\/noindex>.<\/p>\n<p>T\u00eb shikoni se si duket zhvillimi n\u00ebn NEAR, dhe t\u00eb eksperimentoni n\u00eb online IDE, mund t\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/examples.near.org\">k\u00ebtu<\/a><\/noindex>.<\/p>\n<p>T\u00eb ndiqni t\u00eb gjitha lajmet n\u00eb rusisht 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>, nd\u00ebrsa n\u00eb anglisht n\u00eb zyrtarin <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.2 - 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.2\" \/>\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\udd47A \u00ebsht\u00eb e mundur t\u00eb gjenerohen numra rast\u00ebsor\u00eb, n\u00ebse nuk u 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}]}}