Licetne temere numeros generare, si se non habemus? Pars I

Licetne temere numeros generare, si se non habemus? Pars I

Heus Habr!

В in prima parte, In hoc articulo tractavimus, quare necesse esset temere numeros generare pro participibus, qui sibi invicem non confidunt, quae requiruntur pro tam incertis generantibus numero, et considerantur duo accessus ad eorum exsecutionem.

In hac parte articuli propius inspiciemus alium aditum qui subscriptionibus limen utitur.

A frenum of cryptography

Ut intelligas quomodo limen subscriptionum operantur, intellegere debes parvam cryptographiam fundamentalem. Duobus notionibus: scalaribus, vel numeris simpliciter utemur, quos per litteras minusculas denotabimus (x, y) & puncta in curva elliptico , quas litteris capitalibus denotabimus.

Ad fundamenta signationum liminarium cognoscenda, non debes intelligere quomodo curvae ellipticae laborant, praeter paucas res fundamentales;

  1. Puncta curvae elliptico scalari addi et multiplicari possunt (multiplicationem per scalarem denotabimus. xG, licet notatio Gx saepe etiam in litteris usurpatur). Effectus additionis et multiplicationis per scalari punctum est curvae ellipticae.

  2. Sciens solum punctum G et productum eius cum scalari xG non iniri x.

Etiam conceptu polynomiali utemur p(x) gradus k-1. Praesertim hac proprietate polynomialium utemur: si vim novimus p(x) pro omnibus k alium x (Et non habemus amplius informationem de p(x)) Numerare possumus p(x) nam quis aliud x.

Interestingly, pro qualibet integra p(x) et punctum aliquod in curva Gscientes significatione p(x)G* pro omnibus k alia significata x, possumus etiam computare p(x)G* pro omnibus x.

Haec satis comperta sunt in singulis fodere quomodo subscriptionum limen laborant et quomodo ad numeros temere generandos utantur.

Random numerus generans in limine subscriptionibus

Dicamus n participantium numerum temere generare volunt, et quemlibet participare volumus k Sufficeret ex eis ad generandum numerum, sed ita ut impugnantes refrenent k-1 vel pauciores participantium non praedicere aut movere numerum generatum.

Licetne temere numeros generare, si se non habemus? Pars I

Esto talis polynomialis p(x) gradus k-1 quid primus particeps scit p (I)secunda cognoscit p(2). et sic porro (n-th scit p(n)). Item ponimus quod pro aliquo puncto determinato G nescit p(x)G* omnibus values x. Invocabimus p(i) "Privata pars" ith particeps (quia solum iet th particeps eius novit), et Porcus "Publica pars" i-th particeps (quia omnes participes eius sciunt). Ut meministi, scientia Porcus non satis est ut restituat p(i).

Tam integra creando ut solum i-Primus particeps et nullus alius componentem privatum suum scivit - haec est maxime complexa et interesting pars protocolli, et infra resolvemus. Nunc enim sumamus nos talem habere integram et omnes participes eorum privatas partes cognoscere.

Quomodo tali polynomia utimur ad numerum temere generandum? In primis, chorda aliqua indigemus quae antea non ut generantis initus adhibita est. In scandalo, Nullam ultimi scandali h talis recta linea candidatus est. Participantium vis creare temere numerus utens h semen simile. Participantium primum convertat h ad punctum in curva utens aliquo praefinito munere;

H = scalarToPoint(h)

Tum quisque particeps i reputet et annuntiantis Hi = p(i)H. quid faciant quod sciunt p(i) et H. Disclosure Hparticipes alios non patitur componentes privatum restituere iparticeps, et ideo una copia partium privatarum adhiberi potest ab scandalo ad scandalum. Ita, quod algorithmus carus polynomialis generationis infra descriptus solum semel exsecutioni mandandus est.

quod k participantium sunt autopsied Hi = p(i)H. omnis ratio Hx = p(x)H* omnibus x de proprietate polynomiae, de qua in Articulo ultimo disseruimus. Nunc omnes participes computant H0 = p(0)H. et sic est numerus temere consequens. Lorem quod nemo scit p(0). et ideo aliter computare p(0)H - hoc est interpolationis p(x)H. quae modo fieri potest, cum k values p(i)H* notum. Aperiens quodlibet minorem quantitatem p(i)H* non providere aliqua notitia de p(0)H.

Licetne temere numeros generare, si se non habemus? Pars I

Generator supra has omnes possessiones quas volumus: oppugnatores solum gubernant k-Participia I vel nullam habent vel minus informationem vel vim habent conclusionis, dum aliqui k participantium numerum inde computare possunt, et quaelibet pars subset k semper ad idem ac sementem participantes.

Una est quaestio quam diligenter nos supra. Interpolatione laborare, interest ut pretium Hi quod ab unoquoque participe editum est i hoc vere est idem p(i)H. Cum nemo praeter i-th particeps nesciat p(i); nemo praeter i-th particeps non potest cognoscere quod Hi etiam recte computata, et sine ullo cryptographic probatione rectitudinis Hego invasoris potest aliquid pretii quod Salve, et ad libitum commovere output de incerti numeri generantis:

Licetne temere numeros generare, si se non habemus? Pars IVariae valores ipsius H_1 a primo participe missi ad diversos effectus H_0

Sunt saltem duo modi ad probandum rectitudinem Hi, ea considerabimus postquam generationem polynomialem resolvemus.

Generatio polynomialis

In sectione priore posuimus nos talem habere polynomiam p(x) gradus k-1 ut particeps i scit p(i)neque alius quidquam de hoc valore habet. In sectione sequente etiam nobis opus erit ut ad punctum aliquod determinatum G omnes sciebant p(x)G* omnibus x.

In hac sectione ponemus quemque localem participem clavem aliquam habere privatam xi. ita ut quisque novit clavis publicas correspondentes Xi.

Protocollum polynomiae generationis possibilis una est haec:

Licetne temere numeros generare, si se non habemus? Pars I

  1. Quisque participem i localiter gignit aliquod integra pi(x) degree k-1. Tum quisque particeps j idest pi(j), encrypted with public key Xj. ita solum i-th и j-th particeps know pi(j). Participem i et publice denuntiat pi(j)G omnibus j ex 1 ad k inclusive.

  2. Omnes participantium consensu eligere k quorum quae habent participes erunt usus. Cum nonnulli participes offline esse possunt, non possumus expectare dum omnes n participantium quae habent edent. Effectus huius gradus est paro Z constans certe k quae habent in gradum creatum (I).

  3. Participes fac ut bona ipsa cognoscant pi (J) respondent publice nuntiari pi(j)G. Post hunc gradum in Z nisi quae habent ad quod privatim traducitur pi (J) respondent publice nuntiari pi(j)G.

  4. Quisque participem j privatis componentibus determinat p(j) in summa pi (j) pro omnibus i в Z. Quisque particeps etiam omnia bona computat p(x)G* in summa pi (x) G i * omnibus в Z.

Licetne temere numeros generare, si se non habemus? Pars I

nota quod p(x) - suus 'vere integra k-1, quia singulae summa est pi (x), quarum unaquaevis integra est gradus k-1. Et nota, quod dum quilibet particeps j scit p(j); non habent informationem de p(x) ad x j. Immo, ut hunc valorem calculare, omnia scire debes pi(x); et quamdiu particeps j unum saltem polynomiam excerpstis ignorat, satis compertum non habent p(x).

Hic est processus totius polynomiae generationis, qui in priore sectione necessarius erat. Vestigia 1, 2 et 4 supra satis perspicua exsecutionem habent. Sed gradus 3 non ita leve est.

Speciatim nobis opus est ut encrypted probare possimus pi (j) realiter respondent editis pi(j)G. Si probare non possumus, oppugnator i ut mitteret quisquiliarum loco pi (j) ad participem jEt particeps j ut realis valorem non poterit pi(j); et privata componentia computare non poterit.

Est protocollum cryptographic quod permittit te creare additum nuntium probationemi(j), ita ut aliquem participem, aliquem valorem e, а также proofi(j) и pi (j) G, potest cognoscere quod localiter e - suus 'vere pi(j); encrypted cum participem clavem j. Infeliciter, magnitudo probationum talium incredibilis est magna, et cum necesse est eam evulgare O(nk) Talia testimonia ad hoc adhiberi non possunt.

Pro probandum pi(j) соответствует pi(j)G collocare possumus amplissimum temporis spatium in protocollo polynomiae generationis, in quo omnes participes encrypted recipiunt receptas. pi(j); et si decrypted nuntium non respondeat publico pi(j)G, probationem cryptographicam divulgant encrypted nuntium recepisse falsam esse. Hoc probare nuntium non соответствует Porcus) multo facilius quam probans quod aequet. Animadvertendum est hoc requirere unumquemque participem ut apparere in online saltem semel tempore sortito ad talia argumenta facienda, et innititur suppositione quod, si talem probationem evulgent, ad omnes alios participes eodem tempore sortiantur perveniet.

Licetne temere numeros generare, si se non habemus? Pars I

Si participem online hoc temporis spatio non comparuerit et saltem unam partem falsam habuerit, particularis ille particeps amplius generationis numerum participare non poterit. Protocollum autem erit, si adsit saltem k participes qui vel justas partes rectas receperunt vel probationem vitiositatis intra tempus suum relinquere curaverunt.

Probationes rectitudinem H_i *

Ultima pars quae restat discutienda est ad probandam editorum rectitudinem HI, scilicet quod Hi = p(i)H. sine foramen p(i).

Meminerimus bona H, G, p(i)G* publicus et omnibus notus. Accipite operationem p(i) knowing Porcus и G dicitur discretus logarithmus, seu dlog, et hoc probare volumus;

dlog(p(i)G, G) = dlog(Hi, H)

sine revelatione p(i). Constructiones ad tales probationes exstant, e.g Schnorr Protocol.

Hoc consilio quisque particeps, una cum Hi argumentum rectitudinis secundum consilium mittit.

Cum numerus temere generatur, saepe ab aliis participantibus utendum est quam generantibus. Tales participes, una cum numero, omnes mittere debent Hi et actis testimoniis.

Lector curiosus quaeri potest: Cum ultimus numerus temere sit H0 et * p(0)G - Haec est publica notitia, cur probatione opus est singulis Hi, cur non pro

dlog(p(0)G, G) = dlog(H0, H)

Quaestio est talem probationem non posse creari per Protocollum Schnorr, quia nemo scit valorem p (I)et quod magis necessarium est ad probationem, totus numerus temere generans innititur eo quod nemo hunc valorem cognoscit. Ergo necesse est omnes valores habere Hi et singulis testimoniis probare rectitudinem H0.

Sed si aliqua operatio in punctis curvarum ellipticorum quae semantice multiplicationi similis est, probatio rectitudinis. H0 Leve esse volumus, simpliciter fac ut

Hx 0 G = p(0)G H

Si lectus curva subsidia elliptico curvae binatimhaec probatio operatur. In hoc casu H0 non est tantum numerus incerti generantis output, qui verificari potest ab aliquo participe qui scit G, H и p(0)G. H0 est etiam obsignatio in verbo, quod in semine adhibitum est, confirmans k и n participantium hoc signatum. Sic, if semen - Nullam est in obstructionum de protocollo blockchain, tum H0 est tam multi-signatio in trunco ​​quam valde bonus numerus incerti.

Ad summam:

Hic articulus est pars seriei technicae blog PROPE. PROPE est clausura protocollum et suggestum ad applicationes decentras enucleandas cum emphasi facilitatis evolutionis et commoditatis usuum pro fine utentium.

Codicis protocollum apertum est, nostra exsecutio in Rubigo scripta est, reperiri potest hic.

Videre potes quid evolutionis causa prope similis et experimentum in IDE in online hic.

Potes sequi omnia quae in Russian at coetus telegraphum quod coetus in VKontakteet Anglice in officiali Twitter.

Vide te mox!

Source: www.habr.com

Add a comment