Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.92 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="pl">
  3.  
  4. <head>
  5. <meta charset="utf-8" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <link href="./styles.css" rel="stylesheet" />
  8. <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
  9. <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
  10. <title>Zakamarki kryptografii - Schemat progowy dzielenia sekretu Shamira</title>
  11. </head>
  12.  
  13. <body>
  14. <script>
  15. window.MathJax = {
  16. tex: {
  17. inlineMath: [['$', '$']]
  18. }
  19. };
  20. </script>
  21.  
  22. <header>
  23. <h1>Zakamarki kryptografii</h1>
  24. </header>
  25.  
  26. <section id='shamir'>
  27. <h1>Schemat progowy $(t, n)$ dzielenia sekretu Shamira</h1>
  28. <p>
  29. <b>Cel:</b> Zaufana Trzecia Strona $T$ ma sekret $S \geq 0$, który chce podzielić pomiędzy $n$ uczestników
  30. tak,
  31. aby dowolnych $t$ spośród niech mogło sekret odtworzyć.
  32. </p>
  33. <p>
  34. <b>Faza inicjalizacji:</b>
  35. <ul>
  36. <li>$T$ wybiera liczbę pierwszą $p \ge max(S, n)$ i definiuje $a_0 = S$,</li>
  37. <li>$T$ wybiera losowo i niezależnie $t - 1$ współczynników $a_1, ..., a_{t-1} \in \mathbb{Z}_p$,</li>
  38. <li>$T$ definiuje wielomian nad $\mathbb{Z}_p$:
  39. $$f(x) = a_0 + \sum^{t-1}_{j = 1} a_jx^j,$$
  40. </li>
  41. <li>Dla $1 \leq i \leq n$ Zaufana Trzecia Strona $T$ wybiera losowo $x_i \in \mathbb{Z}_p$, oblicza:
  42. $S_i =
  43. f(x_i) \mod p$ i bezpiecznie przekazuje parę $(x_i, S_i)$ uzytkownikowi $P_i$.</li>
  44. </ul>
  45. </p>
  46. <p>
  47. <b>Faza łączenia udziałów w sekret:</b> Dowolna grupa $t$ lub więcej użytkowników łączy swoje udziały - $t$
  48. róznych punktów $(x_i, S_i)$ wielomianu $f$ i dzięki interpolacji Lagrange'a odzyskuje sekret $S = a_0 =
  49. f(0)$.
  50. </p>
  51. </section>
  52.  
  53.  
  54. <section id='lagrange'>
  55. <h1>Interpolacja Lagrange'a</h1>
  56. <p>
  57. Mając dane $t$ różnych punktów $(x_i, y_i)$ nienanego wielomianu $f$ stopnia mniejszego od $t$ możemy
  58. policzyć
  59. jego współczynniki korzystając ze wzoru:
  60. $$f(x) = \sum^t_{i = 1}\left( y_i \prod_{1 \leq j \leq t, j\neq i} \frac{x - x_j}{x_i - x_j} \right) \mod
  61. p$$
  62. <b>Wskazówka:</b> w schemacie Shamira, aby odzyskać sekret <i>S</i>, użytkownicy nie muszą znać całego
  63. wielomianu $f$. Wstawiając do wzoru na iterpolację Lagrange'a $x = 0$, dostajemy wersję uproszczoną, ale
  64. wystarczającą aby policzyć sekret $S = f(0)$:
  65. $$f(x) = \sum^t_{i = 1} \left(y_i \prod_{1 \leq j \leq t, j\neq i} \frac{x_j}{x_j - x_i} \right) \mod p$$
  66.  
  67. </p>
  68. </section>
  69.  
  70. <section id="example">
  71. <h1>Przykład</h1>
  72. <h2>Inicjalizacja</h2>
  73. Niech sekret $S = 1234$.
  74. Dzielimy go między 6 osób ($n=6$), z czego 3 będą mogły go zrekonstruować ($t=3$).
  75. Losowo wybieramy $t-1=2$ liczb: $166$ i $94$.
  76. Wygenerowany wielomian jest zatem postaci:
  77. $$
  78. f(x) = 1234 + 166x +94x^2
  79. $$
  80.  
  81. Wybieramy 6 punktów z wielomianu:
  82. $(1,1494), (2,1942), (3,2578), (4,3402), (5,4414), (6, 5614)$
  83.  
  84. <h2>Łączenie udziałów</h2>
  85. Z wcześniej wygenerowanych wybierzmy $t$ punktów, np:
  86. $(2,1942), (4,3402), (5,4414)$.
  87.  
  88. Korzystamy ze wzoru:
  89. $$
  90. S = 1942\cdot \frac{4}{4-2} \cdot \frac{5}{5-2}
  91. + 3402\cdot \frac{5}{5-4} \cdot \frac{2}{2-4}
  92. + 4414\cdot \frac{2}{2-5} \cdot \frac{4}{4-5}
  93. =
  94. $$
  95. $$
  96. = 1942 \cdot \frac{10}{3} + 3402 \cdot (-5) + 4414 \cdot \frac{8}{3} =
  97. $$
  98. $$
  99. = 1234
  100. $$
  101.  
  102.  
  103.  
  104. </section>
  105. </body>
  106.  
  107. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement