{"id":53444,"date":"2019-12-02T00:00:00","date_gmt":"2019-12-01T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/shema-razdeleniya-sekreta-shamira"},"modified":"2020-02-18T14:01:21","modified_gmt":"2020-02-18T11:01:21","slug":"shema-razdeleniya-sekreta-shamira","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/shema-razdeleniya-sekreta-shamira","title":{"rendered":"Shamir's secret sharing scheme","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Let\u2019s consider a scenario where it\u2019s essential to secure a bank vault. It is regarded as completely inaccessible without the key, which you are issued on your first day of work. Your goal is to ensure the key's security.<\/p>\n<p>Suppose you decide to keep the key with you at all times, granting access to the vault as needed. But you will quickly realize that this solution does not scale well in practice, as every time the vault needs to be opened, your physical presence is required. What about the vacation you were promised? Even more alarming is the question: what if you lose the only key?<\/p>\n<p>Thinking about the vacation, you decide to make a copy of the key and entrust it to another employee. However, you understand that this isn\u2019t ideal either. Doubling the number of keys also doubles the opportunities for a key to be stolen.<\/p>\n<p>Desperate, you destroy the duplicate and decide to split the original key in half. Now, you think, two trusted individuals with key fragments must be physically present to assemble the key and unlock the vault. This means a thief needs to steal both fragments, making it twice as hard to steal one key. However, you soon realize this scheme is not much better than having a single key since if someone loses half of the key, the complete key cannot be recovered.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nThe problem can be addressed with a series of additional keys and locks, but such an approach will quickly require <i>many<\/i> keys and locks. You conclude that an ideal scheme should split the key so that security does not rely entirely on one person. You also conclude that there should be some threshold number of fragments, such that if one fragment is lost (or someone goes on vacation), the entire key remains functional.<\/p>\n<h1>How to split a secret<\/h1>\n<p>\nThis type of key management scheme was conceived by Adi Shamir in 1979, when he published his work <noindex><a rel=\"nofollow\" href=\"https:\/\/cs.jhu.edu\/~sdoshi\/crypto\/papers\/shamirturing.pdf\">\"How to Share a Secret\"<\/a><\/noindex>. The paper briefly explains the so-called <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/64d1d06429d10e2571b04ba756a9e44d.jpg\" style=\"display:block;margin: 0 auto;\" \/> threshold scheme for effectively dividing a secret value (e.g., a cryptographic key) into <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/d2ecc715b363a149fefb4cc647a30e6e.jpg\" style=\"display:block;margin: 0 auto;\" \/> parts. Then, when and only when at least <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/7a3f94d0d7874387726d18ef0c5c4174.jpg\" style=\"display:block;margin: 0 auto;\" \/> from <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/83808316ecdccf2d3d1d05696c6d5507.jpg\" style=\"display:block;margin: 0 auto;\" \/> parts are gathered, the secret can be easily reconstructed. <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/ec92794c36ed48497df201c55697e065.jpg\" style=\"display:block;margin: 0 auto;\" \/>.<\/p>\n<p>From a security perspective, an important property of this scheme is that an attacker should not learn anything at all unless they have at least <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/49419db7a603359c9d7f2949263e0f7d.jpg\" style=\"display:block;margin: 0 auto;\" \/> pieces. Even having <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/13aad9d68bc8f0729bf06fc49435b7dc.jpg\" style=\"display:block;margin: 0 auto;\" \/> pieces should not provide any information. We call this property <i>semantic security.<\/i>.<\/p>\n<h1>Polynomial Interpolation<\/h1>\n<p>\nShamir's threshold scheme <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/5bcbb5a7f61e4e37103c379964d49e63.jpg\" style=\"display:block;margin: 0 auto;\" \/> is built around the concept of <b>polynomial interpolation.<\/b>If you are not familiar with this concept, it is actually quite simple. In general, if you have ever plotted points on a graph and then connected them with lines or curves, you have already used it!<\/p>\n<p><img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/66d66cc226dde7af9d71ab1ad7f92eea.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Through two points, an unlimited number of degree 2 polynomials can be drawn. To select a single one from them, a third point is needed. Illustration: <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A1%D1%85%D0%B5%D0%BC%D0%B0_%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D1%81%D0%B5%D0%BA%D1%80%D0%B5%D1%82%D0%B0_%D0%A8%D0%B0%D0%BC%D0%B8%D1%80%D0%B0#\/media\/File:3_polynomials_of_degree_2_through_2_points.svg\">Wikipedia<\/a><\/noindex><\/i> <\/p>\n<p>Let's consider a polynomial of degree one, <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/479ff09339b6907cf7fd5420a6b66907.jpg\" style=\"display:block;margin: 0 auto;\" \/>. If you want to plot this function on a graph, how many points do you need? Well, we know that it is a linear function that forms a line, so at least two points are necessary. Next, consider a polynomial function of degree two, <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/bd6591a5e317fadba394b9f93c03f813.jpg\" style=\"display:block;margin: 0 auto;\" \/>. This is a quadratic function, so at least three points are required to plot the graph. How about a polynomial of degree three? At least four points. And so on and so forth.<\/p>\n<p>The really cool thing about this property is that, given the degree of the polynomial function and at least <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/97d23bb431f561738675a8eecd78c8bd.jpg\" style=\"display:block;margin: 0 auto;\" \/> points, we can derive additional points for this polynomial function. The extrapolation of these additional points is called <i>polynomial interpolation.<\/i>.<\/p>\n<h1>Secret Sharing<\/h1>\n<p>\nYou might have already realized that the clever Shamir scheme comes into play here. Let's assume that our secret <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/9f18d04feb91617cc6b17ee999f7621e.jpg\" style=\"display:block;margin: 0 auto;\" \/> \u2014 this is <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/724e6fe3c0b6e8460207592d515dde4a.jpg\" style=\"display:block;margin: 0 auto;\" \/>. We can turn <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/e1bb80717e0e060d77dc3fa2bff5e396.jpg\" style=\"display:block;margin: 0 auto;\" \/> into a point on the graph <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/d7291bf682131a3cd1dc9fb65c351a5d.jpg\" style=\"display:block;margin: 0 auto;\" \/> and create a polynomial function of degree <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/c63b9a9efa9409f73baf5916cd77b8b5.jpg\" style=\"display:block;margin: 0 auto;\" \/>, which satisfies this point. Remember that <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/4670e092c7dc86f70984a3d5e875ae7e.jpg\" style=\"display:block;margin: 0 auto;\" \/> will be our threshold of required pieces, so if we set the threshold to three pieces, we need to choose a polynomial function of degree two.<\/p>\n<p>Our polynomial will take the form of <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/06e96a58093b9e00d7c37ad5f832a6f4.jpg\" style=\"display:block;margin: 0 auto;\" \/>, where <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/fc9ce1b274e8224fcfee33290fee6455.jpg\" style=\"display:block;margin: 0 auto;\" \/> and <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/ec120b09589c1ee882f1f93b47626c94.jpg\" style=\"display:block;margin: 0 auto;\" \/> \u2014 randomly chosen positive integers. We are simply constructing a polynomial of degree <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/ef10f07dfb8496cca70579246c1d9c48.jpg\" style=\"display:block;margin: 0 auto;\" \/>, where the constant term <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/d7db113a15325721c9fea613a379026f.jpg\" style=\"display:block;margin: 0 auto;\" \/>\u00a0is our secret <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/093bd4575a590bed819e6ec9f9b41aa0.jpg\" style=\"display:block;margin: 0 auto;\" \/>, and each subsequent <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/6c33d819871b32ff7d347d00408d02d1.jpg\" style=\"display:block;margin: 0 auto;\" \/> members have a randomly chosen positive coefficient. If we return to the original example and assume that <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/c6ff5a7ad5a6a82ae31c583148ea5274.jpg\" style=\"display:block;margin: 0 auto;\" \/>, then we will obtain a function <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/b3386ca5ec27e0dacd17874d6f5720c8.jpg\" style=\"display:block;margin: 0 auto;\" \/>.<\/p>\n<p>At this stage, we can generate fragments by connecting <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/50a46de4540f90ddba6b1bbfa3702892.jpg\" style=\"display:block;margin: 0 auto;\" \/> unique integers in <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/fcbc7f0b6d9353e6eae0fafe4a06a4f2.jpg\" style=\"display:block;margin: 0 auto;\" \/>, where <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/c58e20b2b97950112194f6a51707289c.jpg\" style=\"display:block;margin: 0 auto;\" \/> (because this is our secret). In this example, we want to distribute four fragments with a threshold of three, so we randomly generate points <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/720b820e264f0314cb2e14ab6502ee96.jpg\" style=\"display:block;margin: 0 auto;\" \/> and send one point to each of the four trusted individuals, the key custodians. We also inform the individuals that <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/c441ff2a652b58011e13d60855c7e404.jpg\" style=\"display:block;margin: 0 auto;\" \/>, as this is considered public information and is necessary for recovery <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/2011019c98b6d1a77a0cd25a3667c9e4.jpg\" style=\"display:block;margin: 0 auto;\" \/>.<\/p>\n<h1>Secret Recovery<\/h1>\n<p>\nWe have already discussed the concept of polynomial interpolation and that it underlies Shamir's threshold scheme <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/6f93e17d2d2ce5659972b98a9c8eee83.jpg\" style=\"display:block;margin: 0 auto;\" \/>. When any three of the four trusted parties want to recover <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/9b5ba8c78e395d3dee229e222c31d85a.jpg\" style=\"display:block;margin: 0 auto;\" \/>, they only need to interpolate <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/cfec467c0571c4d54d74938c5667146f.jpg\" style=\"display:block;margin: 0 auto;\" \/> with their unique points. To do this, they can determine their points <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/035e1f8407434fdbe1b8814d7fd3ee1f.jpg\" style=\"display:block;margin: 0 auto;\" \/> and calculate the Lagrange interpolation polynomial using the following formula. If programming is clearer to you than mathematics, then pi is essentially an operator <code>for<\/code>, which multiplies all results, while sigma is <code>for<\/code>, which sums everything up.<\/p>\n<p><img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/01a47d3bc38f07f7b65da2ca1f772e28.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/cc0039bc38e27a62161bc0fde3b1472d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nUpon <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/b41d5abefcac0bb813291063f0a56404.jpg\" style=\"display:block;margin: 0 auto;\" \/> we can solve this as follows and return our original polynomial function:<\/p>\n<p><img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/b7af6d68d1fa639442f96ed11cc96bd7.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nSince we know that <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/df250c5c331d0a2903867efcad71d325.jpg\" style=\"display:block;margin: 0 auto;\" \/>, recovery <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/a6968a889776d0caa3db0dd6e10842d4.jpg\" style=\"display:block;margin: 0 auto;\" \/> is straightforward:<\/p>\n<p><img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/b89862098c973d18a75a104092364a04.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h1>Using insecure integer arithmetic<\/h1>\n<p>\nAlthough we successfully applied the core idea of Shamir <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/626be5c238019fc0a2ff08798b8e620c.jpg\" style=\"display:block;margin: 0 auto;\" \/>, we have a problem that we have ignored until now. Our polynomial function uses insecure integer arithmetic. Keep in mind that for each additional point the attacker gets on the graph of our function, fewer possibilities remain for other points. You can see this for yourself when you plot the graph with an increasing number of points for the polynomial function using integer arithmetic. This is counterproductive to our stated security goal because an attacker should not learn anything at all until they have at least <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/d5278c748b7713fc387c37425d43656d.jpg\" style=\"display:block;margin: 0 auto;\" \/> fragments.<\/p>\n<p>To demonstrate how weak the scheme with integer arithmetic is, consider a scenario in which an attacker obtained two points <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/ebe75137fa19aaccdc733618707de3c0.jpg\" style=\"display:block;margin: 0 auto;\" \/> and knows the public information that <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/45dc1dbd7564637c96d1c8383af19e15.jpg\" style=\"display:block;margin: 0 auto;\" \/>From this information, one can deduce <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/16e75561bf051ecd3232f0560f75e494.jpg\" style=\"display:block;margin: 0 auto;\" \/>, equal to two, and plug known values into the formula <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/e6c550b9a0d630e62d5be66e61ff3a89.jpg\" style=\"display:block;margin: 0 auto;\" \/> and <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/e2a3c2a324c159cf73852513dda5ff3b.jpg\" style=\"display:block;margin: 0 auto;\" \/>.<\/p>\n<p><img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/003b535b08b5de17b573c7af61110dbb.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\n Then an attacker can find <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/76d496e3442e88c7d5a238612f2ee8da.jpg\" style=\"display:block;margin: 0 auto;\" \/>, calculating <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/96ef9b4a0657cd258978e2eda974bd09.jpg\" style=\"display:block;margin: 0 auto;\" \/>:<\/p>\n<p><img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/8e677012c61e1cc45f1f3be6e44aa1c1.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nSince we have defined <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/62af08665bef7cd3fc447411455352c6.jpg\" style=\"display:block;margin: 0 auto;\" \/> as randomly chosen positive integers, there are a limited number of possible <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/66c39a1014c0acab55fea137f28a6d0f.jpg\" style=\"display:block;margin: 0 auto;\" \/>. With this information, an attacker can derive <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/0c3caaa1e189ffea0001ca9ad08a65d1.jpg\" style=\"display:block;margin: 0 auto;\" \/>, since anything greater than 5 will make <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/104807891ce9ab1d3adc649f8d1dcd29.jpg\" style=\"display:block;margin: 0 auto;\" \/> negative. This turns out to be true, as we have defined <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/cf2bebff28344be58b02c492fd0e49ba.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Then an attacker can calculate possible values <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/7c9c09333ee4ab432122e959892daeda.jpg\" style=\"display:block;margin: 0 auto;\" \/>, replacing <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/c5d88d7a2488ae0c40e5ec3edb66dd2d.jpg\" style=\"display:block;margin: 0 auto;\" \/> downward API support (simultaneously with this in <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/8fd97c507a4d2bc8d4e4619e10e97063.jpg\" style=\"display:block;margin: 0 auto;\" \/>:<\/p>\n<p><img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/1f2fb897dc37702dd543a6d7783339cb.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nWith a limited set of options for <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/9960ad727ecf47084cacfb9f487f329a.jpg\" style=\"display:block;margin: 0 auto;\" \/> it becomes clear how easy it is to guess and verify values <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/47f9786e9728ed72e10dd505d7445b41.jpg\" style=\"display:block;margin: 0 auto;\" \/>. There are only five options here.<\/p>\n<h1>Solving the problem of unsafe integer arithmetic<\/h1>\n<p>\nTo eliminate this vulnerability, Shamir suggests using modular arithmetic by replacing <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/503fd220af76c5e96cce3a84a4673f91.jpg\" style=\"display:block;margin: 0 auto;\" \/> to <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/49ab2b2ee61d6551a1b41f6a1795a295.jpg\" style=\"display:block;margin: 0 auto;\" \/>, where <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/bb5a5adda52f7d4dd401efd8a040be69.jpg\" style=\"display:block;margin: 0 auto;\" \/> and <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/1e062a8784dfb6da2bc708d3de027042.jpg\" style=\"display:block;margin: 0 auto;\" \/> \u2014 the set of all prime numbers.<\/p>\n<p>Let's quickly recall how modular arithmetic works. Clock hands are a familiar concept. It uses a clock that is <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/93520a0c8bdbbe57ab424e58c3bbfe30.jpg\" style=\"display:block;margin: 0 auto;\" \/>. Once the hour hand passes twelve, it resets back to one. An interesting property of this system is that just by looking at the clock, we cannot determine how many full rotations the hour hand has made. However, if we know the hour hand has passed 12 four times, we can fully determine the number of hours that have passed with a simple formula <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/5b8b7655f38ee900b989fdc070616a6b.jpg\" style=\"display:block;margin: 0 auto;\" \/>, where <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/0ec5da4245e1eac619b42bb62f682773.jpg\" style=\"display:block;margin: 0 auto;\" \/>\u00a0\u2014 this is our divisor (here, <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/a8656dac61ddb1097f06781c5b5aad69.jpg\" style=\"display:block;margin: 0 auto;\" \/>), <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/3ba5b3dc4f29fac3c9d4f5f2072d688b.jpg\" style=\"display:block;margin: 0 auto;\" \/>\u00a0\u2014 this is the coefficient (how many times the divisor fits into the original number without a remainder, here, <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/ac9bb70e1511109b0181e14b6227f57e.jpg\" style=\"display:block;margin: 0 auto;\" \/>), and <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/57b6842c2bfd39b19ce428e5b9345946.jpg\" style=\"display:block;margin: 0 auto;\" \/>\u00a0\u2014 this is the remainder, which is usually returned by the modulo operator call (here, <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/28f71e672ecc717d2bd1845e27273398.jpg\" style=\"display:block;margin: 0 auto;\" \/>). Knowing all these values allows us to solve the equation for <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/9548f9d6b522258582be1f8968752866.jpg\" style=\"display:block;margin: 0 auto;\" \/>, but if we skip the coefficient, we will never be able to recover the original value.<\/p>\n<p>We can demonstrate how this enhances the security of our scheme by applying the scheme to our previous example and using <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/c0f760bdd2b67444bd233d4ea7fe5e72.jpg\" style=\"display:block;margin: 0 auto;\" \/>. Our new polynomial function <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/afddb9747f68076bc6dbe9b5cf60d107.jpg\" style=\"display:block;margin: 0 auto;\" \/>, and the new points <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/da9d9ecfcf949b6be4bc8e3a29d670ab.jpg\" style=\"display:block;margin: 0 auto;\" \/>. Now, the key holders can once again use polynomial interpolation to recover our function, but this time the operations of addition and multiplication must be accompanied by reduction modulo <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/f94ae5343347b38dc64228472b564f0e.jpg\" style=\"display:block;margin: 0 auto;\" \/> (e.g. <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/d19138189cd40c6c01ab68d3d6b7027b.jpg\" style=\"display:block;margin: 0 auto;\" \/>).<\/p>\n<p>Using this new example, suppose the attacker learned two of these new points, <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/4f13c2640360f124305f3f023d6cfa83.jpg\" style=\"display:block;margin: 0 auto;\" \/>, and the public information <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/376e0e059b761e3f3e7473d8d2d3428f.jpg\" style=\"display:block;margin: 0 auto;\" \/>This time, the attacker uses all the information available to him to derive the following functions, where <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/f0aedf279cc2418e2d62d51e63e324b2.jpg\" style=\"display:block;margin: 0 auto;\" \/>\u00a0is the set of all positive integers, and <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/c92efad35129d61013f6e37ec1907fd3.jpg\" style=\"display:block;margin: 0 auto;\" \/> represents the modulus coefficient <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/c2679ec08a40d7aa13a9d375b610642c.jpg\" style=\"display:block;margin: 0 auto;\" \/>.<\/p>\n<p><img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/0f6d09b6c15f013e9a445fef060f8091.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nNow our attacker finds himself again <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/8e01640ea802740996150d09277cbf1f.jpg\" style=\"display:block;margin: 0 auto;\" \/>, calculating <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/78fa395ca715c36835c38f4fe16d63e0.jpg\" style=\"display:block;margin: 0 auto;\" \/>:<\/p>\n<p><img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/d739d7e52d675aeba9abcc6ada4097e1.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nThen he tries again to derive <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/e47c9bd27ac92787c287b7db249a345f.jpg\" style=\"display:block;margin: 0 auto;\" \/>, replacing <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/15c82f6824ad986351d3358c32b28f26.jpg\" style=\"display:block;margin: 0 auto;\" \/> downward API support (simultaneously with this in <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/56cddebdf83ddc105aa8aba91bd0bb38.jpg\" style=\"display:block;margin: 0 auto;\" \/>:<\/p>\n<p><img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/6e9643108864d1d2cf9e04bed493fff7.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nThis time he has a serious problem. The formula lacks values <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/217282ca338c79dd058db66f405b07a0.jpg\" style=\"display:block;margin: 0 auto;\" \/>, <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/fb908d84b7eac873bba662cf69d95b95.jpg\" style=\"display:block;margin: 0 auto;\" \/> and <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/83389928ca52ffce5266fe6a414e1f18.jpg\" style=\"display:block;margin: 0 auto;\" \/>. Since there are an infinite number of combinations of these variables, he cannot obtain any additional information.<\/p>\n<h1>Security considerations<\/h1>\n<p>\nShamir's secret sharing scheme offers <i>security from the perspective of information theory<\/i>. This means the mathematics is robust even against an attacker with unlimited computational power. However, the scheme still contains several known issues.<\/p>\n<p>For example, Shamir's scheme does not create <i>verifiable shares<\/i>, meaning that individuals can freely present counterfeit shares and hinder the recovery of the correct secret. A malicious share holder with sufficient information could even produce another share by altering <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/8f646ae3193da8c9be778eceb315e902.jpg\" style=\"display:block;margin: 0 auto;\" \/> at will. This issue is addressed by <i>verifiable secret sharing schemes<\/i>, such as Feldman's scheme.<\/p>\n<p>Another problem is that the length of any share is equal to the length of the corresponding secret, making it easy to determine the length of the secret. This issue is solved through trivial <i>padding<\/i> the secret with arbitrary numbers to a fixed length.<\/p>\n<p>Finally, it is important to note that our security concerns may extend beyond the scheme itself. For real cryptographic applications, there is often a threat of side-channel attacks, where an attacker attempts to extract useful information from application runtime, caching, failures, etc. If this is a concern, protective measures such as constant-time functions and searches should be carefully considered during development to prevent memory from being written to disk and to think about a number of other things that go beyond this article.<\/p>\n<h1>Demo<\/h1>\n<p>\nAt <noindex><a rel=\"nofollow\" href=\"https:\/\/ericrafaloff.com\/shamirs-secret-sharing-scheme\/\">this page<\/a><\/noindex> There is an interactive demonstration of Shamir's secret sharing scheme. The demonstration is based on the <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/gburca\/ssss-js\/\">ssss-js<\/a><\/noindex>library, which is itself a JavaScript port of the popular program <noindex><a rel=\"nofollow\" href=\"http:\/\/point-at-infinity.org\/ssss\/\">ssss<\/a><\/noindex>Please note that computing large values <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/4d8ec4bf92d337e22ed38aef8c2afa60.jpg\" style=\"display:block;margin: 0 auto;\" \/>, <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/cadfa859ca9627c9c3d63d52e1270de2.jpg\" style=\"display:block;margin: 0 auto;\" \/> and <img decoding=\"async\" alt=\"Shamir&#039;s secret sharing scheme\" src=\"\/wp-content\/uploads\/2019\/12\/c66b23e0128c4b7a50e9d8b0ed99e406.jpg\" style=\"display:block;margin: 0 auto;\" \/> may take some time.<br \/>\n<br \/>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/431392\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439, \u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0431\u0430\u043d\u043a\u043e\u0432\u0441\u043a\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430. \u041e\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043d\u0435\u043f\u0440\u0438\u0441\u0442\u0443\u043f\u043d\u044b\u043c \u0431\u0435\u0437 \u043a\u043b\u044e\u0447\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0430\u043c \u0432\u044b\u0434\u0430\u044e\u0442 \u0432 \u043f\u0435\u0440\u0432\u044b\u0439 \u0436\u0435 \u0434\u0435\u043d\u044c \u0440\u0430\u0431\u043e\u0442\u044b. \u0412\u0430\u0448\u0430 \u0446\u0435\u043b\u044c\u00a0\u2014 \u043d\u0430\u0434\u0451\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u043b\u044e\u0447. \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0432\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0432\u0441\u0451 \u0432\u0440\u0435\u043c\u044f \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u043b\u044e\u0447 \u043f\u0440\u0438 \u0441\u0435\u0431\u0435, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0443 \u043f\u043e \u043c\u0435\u0440\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438. \u041d\u043e \u0432\u044b \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u043e\u0439\u043c\u0451\u0442\u0435, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u0442\u0441\u044f, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-53444","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439, \u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0431\u0430\u043d\u043a\u043e\u0432\u0441\u043a\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430. \u041e\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043d\u0435\u043f\u0440\u0438\u0441\u0442\u0443\u043f\u043d\u044b\u043c \u0431\u0435\u0437 \u043a\u043b\u044e\u0447\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0430\u043c \u0432\u044b\u0434\u0430\u044e\u0442 \u0432 \u043f\u0435\u0440\u0432\u044b\u0439 \u0436\u0435 \u0434\u0435\u043d\u044c \u0440\u0430\u0431\u043e\u0442\u044b.\" \/>\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\/en\/blog\/administrirovanie\/shema-razdeleniya-sekreta-shamira\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\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\u0421\u0445\u0435\u043c\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u0435\u043a\u0440\u0435\u0442\u0430 \u0428\u0430\u043c\u0438\u0440\u0430 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439, \u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0431\u0430\u043d\u043a\u043e\u0432\u0441\u043a\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430. \u041e\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043d\u0435\u043f\u0440\u0438\u0441\u0442\u0443\u043f\u043d\u044b\u043c \u0431\u0435\u0437 \u043a\u043b\u044e\u0447\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0430\u043c \u0432\u044b\u0434\u0430\u044e\u0442 \u0432 \u043f\u0435\u0440\u0432\u044b\u0439 \u0436\u0435 \u0434\u0435\u043d\u044c \u0440\u0430\u0431\u043e\u0442\u044b.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/shema-razdeleniya-sekreta-shamira\" \/>\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=\"2019-12-01T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:01:21+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\udd47Shamir's Secret Sharing Scheme | ProHoster","description":"Let's consider a scenario where it is necessary to secure a bank vault. It is considered completely inaccessible without the key, which you are given on your first day of work.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/shema-razdeleniya-sekreta-shamira","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","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\u0421\u0445\u0435\u043c\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u0435\u043a\u0440\u0435\u0442\u0430 \u0428\u0430\u043c\u0438\u0440\u0430 | ProHoster","og:description":"\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439, \u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0431\u0430\u043d\u043a\u043e\u0432\u0441\u043a\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430. \u041e\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043d\u0435\u043f\u0440\u0438\u0441\u0442\u0443\u043f\u043d\u044b\u043c \u0431\u0435\u0437 \u043a\u043b\u044e\u0447\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0430\u043c \u0432\u044b\u0434\u0430\u044e\u0442 \u0432 \u043f\u0435\u0440\u0432\u044b\u0439 \u0436\u0435 \u0434\u0435\u043d\u044c \u0440\u0430\u0431\u043e\u0442\u044b.","og:url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/shema-razdeleniya-sekreta-shamira","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":"2019-12-01T21:00:00+00:00","article:modified_time":"2020-02-18T11:01:21+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"53444","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":"2026-01-24 07:23:42","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:25:27","updated":"2026-01-24 07:23:42","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/53444","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=53444"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/53444\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=53444"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=53444"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=53444"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}