Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ниссенбаум_Поляков_КПЛП.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
622.59 Кб
Скачать

Раздел 2. Разделение секрета. Задание к лабораторной работе №2: «Разделение секрета».

Разработать приложение, осуществляющее протокол разделения секрета согласно варианту. Программа должна:

  • формировать доли секрета для каждого участника из группы доступа;

  • формировать папку и заносить каждую долю в отдельный файл в этой папке;

  • восстанавливать секрет, запрашивая у пользователя файлы, содержащие доли секрета;

  • если пользователь предлагает доли неавторизованной группы, выдавать сообщение "невозможно восстановить секрет".

Вариант 1: схема Блекли.

Вариант 2: схема Шамира.

Для вариантов 1 и 2 пользователь должен задать секрет m, количество участников n и размер авторизованной группы k. Простое число p, используемое в протоколе, должно быть больше, чем любой секрет, разделяемый в этой схеме. Секрет m должен задаваться пользователем и быть целым положительным числом, меньшим p.

Вариант 3: схема на основе Китайской теоремы об остатках.

Пользователь должен задать секрет m, количество участников n и размер авторизованной группы k. Простые числа pi, используемые в протоколе, должны быть уникальными для каждого участника. Генерировать pi следует автоматически, значения pi должны быть из заданного диапазона значений, также эти числа должны быть ближе к нижней границе диапазона, чем к верхней. Примерный алгоритм:

  1. Задаем нижнюю границу диапазона g= .

  2. Проверяем полученное число g на простоту.

  3. Если число простое, то pi=g. Если нет, то к g прибавляем 1, если оно четное, или 2, если нечетное. Снова проверяем на простоту.

  4. Повторять шаг 3, пока не наберется достаточное количество простых чисел.

Вариант 4: схема для произвольной группы доступа.

Количество участников в схеме n=5. Пользователь задает секрет и указывает все разрешенные группы. Программа должна удалить из структуры доступа все группы, не являющиеся минимальными. Доли участников должны быть того же размера, что секрет.

Для восстановления секрета пользователь указывает набор участников, производящих восстановление. Программа выбирает разрешенную группу, входящую в этот набор и восстанавливает секрет, используя доли этой группы. Если такой группы нет, программа выдает сообщение «невозможно восстановить секрет».

Данные для самопроверки к разделу 2.

Вариант 1.

  1. Для проверки функции разделения секрета подставьте в программу значения p, n, k, секрет m, секретную точку Q и случайные коэффициенты участников ai1akn из табл. 2.1 и сравните полученный результат с долями секрета bibn.

  2. Для проверки функции восстановления секрета подставьте в программу значения bibn и сравните полученный результат с m, приведенным в табл. 2.1.

Таблица 2.1

m

p

(n,k)

Q=(m,x2,…,xk)

ai1…akn

bi…bn

1

5

11

(4,3)

(5,2,1)

(1,1,1); (3,2,7); (8,1,10); (2,3,9)

(8,4,8,3)

2

8

7

(3,3)

(5,4,2)

(2,3,5); (4,7,1); (3,4,2)

(10,7,1)

3

4

13

(3,2)

(4,11)

(2,11); (1,6); (9,4)

(12,5,2)

4

7

17

(3,3)

(7,14,9)

(2,6,11); (4,1,7); (5,9,3)

(10,3,1)

5

3

11

(4,2)

(3,4)

(4,1); (8,7); (3,10); (2,9)

(5,8,5,9)

6

9

5

(3,2)

(9,3)

(1,1); (4,2); (3,4)

(2,2,4)

7

11

19

(3,3)

(11,15,8)

(7,1,12); (3,9,5); (6,14,8)

(7,4,10)

8

15

23

(2,2)

(15,19)

(6,17); (11,2)

(22,19)

9

7

11

(3,3)

(7,3,9)

(2,1,7); (1,8,4); (9,2,6)

(3,1,2)

10

9

13

(3,2)

(9,12)

(4,11); (7,5)

(12,6)

Вариант 2.

  1. Для проверки функции разделения секрета подставьте в программу значения p, n, k, секрет m и коэффициенты секретного полинома s1sk-1 из табл. 2.2 и сравните полученный результат с долями секрета (1,S(1)), (2,S(2)), (3,S(3)) и (если есть) (4,S(4));

  2. Для проверки функции восстановления секрета подставьте в программу значения (1,S(1)), (2,S(2)), (3,S(3)) и (если есть) (4,S(4)) и сравните полученный результат с m, приведенным в табл. 2.2.

Таблица 2.2

p

n

K

m

s1sk-1

(1,S(1))

(2,S(2))

(3,S(3))

(4,S(4))

1

1027

4

3

156

(299,760)

(1,188)

(2,713)

(3,704)

(4,161)

2

1047

4

4

124

(165,282,174)

(1,745)

(2,880)

(3,526)

(4,727)

3

1075

4

4

666

(54,560,727)

(1,932)

(2,230)

(3,772)

(4,470)

4

7391

4

3

4345

(4714,2003)

(1,3671)

(2,7003)

(3,6950)

(4,3512)

5

4199

3

3

123

(2801,2998)

(1,1723)

(2,921)

(3,1916)

-

6

1603

4

3

5422

(1446,1304)

(1,157)

(2,706)

(3,657)

(4,10)

7

1903

4

4

867

(118,261,28)

(1,1274)

(2,468)

(3,520)

(4,1598)

8

6427

3

3

1245

(6133,870)

(1,1821)

(2,4137)

(3,1766)

-

9

8471

3

3

533

(6702,2631)

(1,1395)

(2,7519)

(3,1963)

-

10

4363

4

4

876

(4353,60,346)

(1,1272)

(2,3864)

(3,2002)

(4,2125)

Вариант 3.

  1. Для проверки функции разделения секрета подставьте в программу значения m, n и k из табл. 2.3 и сравните полученный результат с n1(x,p), n2(x,p), n3(x,p), n4(x,p) и n5(x,p);

  2. Для проверки функции восстановления секрета подставьте в программу значения n1(x,p), n2(x,p), n3(x,p), n4(x,p), n5(x,p) из табл. 2.3 и сравните полученный результат с m.

Таблица 2.3

m

n

k

n1(x,p)

n2(x,p)

n3(x,p)

n4(x,p)

n5(x,p)

1

123456

5

3

(19,53)

(28,59)

(53,61)

(42,67)

(58,71)

2

19256292

5

3

(2,29)

(22,31)

(12,37)

(27,41)

(32,43)

3

223456

5

4

(11,23)

(11,29)

(8,31)

(13,37)

(6,41)

4

25324

4

4

(0,13)

(11,17)

(16,19)

(1,23)

-

5

433566

5

4

(16,29)

(0,31)

(0,37)

(32,41)

(40,43)

6

987542

5

3

(65,101)

(81,103)

(39,107)

(2,109)

(35,113)

7

54332

4

3

(7,41)

(23,43)

(0,47)

(7,53)

-

8

84123

3

3

(40,47)

(12,53)

(48,59)

-

-

9

9942319

5

5

(17,29)

(30,31)

(12,37)

(24,41)

(31,43)

10

1945819

5

3

(52,127)

(76,131)

(8,137)

(97,139)

(28,149)

Вариант 4.

Для проверки функции исключения неминимальных групп задайте структуру доступа, состоящую из групп, указанных в 1-й колонке табл. 2.4. В результате работы функции, в структуре доступа должны остаться группы, перечисленные во 2-й колонке табл. 2.4.

Таблица 2.4

(A, B, C, E); (A, B, E); (A,B,D); (A,D,E); (A,C); (B, C, D, E)

(A, B, E); (A, B, D); (A,D,E); (A,C); (B, C, D, E)

(A, B); (A, C); (B, D); (D, E);

(A, B, C, D); (A, B, D)

(A,B); (A,C); (B,D); (D,E)

(A, B); (B, D); (B); (B, D, E); (A, B, C)

(B)

(A, B, D); (A, B); (A, C, E); (A, B, E);

(D, E); (B, D, E)

(A, B); (A, C, E); (D, E)

(B, D); (A, B, D); (C, D, E); (B, C, D)

(B, D); (C, D, E)

(A; E); (B, C, E); (A, B, D); (A, D, E)

(A; E); (B, C, E); (A, B, D)

  1. Задать структуру доступа из табл. 2.5;

  2. задать значение секрета m и долей первых 4 участников s1, s2, s3, s4, соответствующими табл. 2.5;

  3. в результате правильной работы протокола участник №5 должен получить долю s5 из табл. 2.5.

Таблица 2.5

Структура доступа

m

s1

s2

s3

s4

s5

1

(A, B, D); (D, E); (C, E)

23

(18,-,-)

(9,-,-)

(-,-,19)

(12,9,-)

(-,30,4)

2

(A, B, C, D, E)

111

27

95

23

84

104

3

(B, C, D); (B, D, E)

150

(-,-)

(2,105)

(92,-)

(200,91)

(-,164)

4

(A, B, C, D); (C, E)

142

(14,-)

(41,-)

(40,107)

(129,-)

(-,229)

5

(A, B, C, D, E)

254

137

100

159

240

124

6

(A, B, C); (B, D); (D, E)

435

(10,-,-)

(225,389,-)

(344,-,-)

(-,54,114)

(-.-.449)

7

(A, C, D); (B, D, E)

533

(102,-)

(-,284)

(528,-)

(99,90)

(-,851)

8

(A, B, C, D, E)

654

67

425

275

627

4

9

(A, B); (C, D)

721

(35,-)

(754,-)

(-,624)

(-,161)

(-,-)

10

(A, B, C, D, E)

789

47

95

719

686

773