Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpori (1) / shpori (1).docx
Скачиваний:
103
Добавлен:
01.03.2016
Размер:
180.14 Кб
Скачать

35.Задача разделения секрета.

Схема разделения секрета позволяет раздать информацию о сообщении S мн-ву участников таким образом, чтобы заранее заданные разрешённые подмн-ва участников могли однозначно восстановить сообщение S, а неразрешённые не имели такой возможности.

Защищаемое сообщение S – секрет, а мн-во S всех возможных секретов – мн-во секретов.

Сообщение, содержащее частичную информацию о секрете и созданное для индивидуального участника – доля этого участника.

Простейший случай: имеется n участников, любые t из них, собравшись вместе, могут открыть секрет , (t,n)-пороговая система доступа

Пусть t=n.

1) Кодируем секрет как большое натуральное число S. 2) Выбираем n-1 большое случайное число r1,…,rn-1 и выдаем ri в качестве доли i-го участника. 3) В качестве доли n-го участника полагаем rn = s-r1-…-rn-1.

Пусть t<n, тогда – схема Шамира.

Идея: для любых k точек (x1,y1),…,(xk,yk)ÎR2 существует единственный полином q(x)

степени k-1 такой, что q(xi) = yi для всех i=1,…,k.1) Кодируем секрет как большое натуральное число S2) Пусть f(x)=ak-1xk-1+…+a1x + a0, где a0 = s, a1,…,ak-1-случайные числа из интервала (0,p), где p – простое число, существенно большее, чем n и S.3) i-му участнику в качестве его доли выдается пара (xi,yi).

36. Алгоритмы сжатия информации

Имеется файл с данными. Данные представляют собой последовательность символов .Нужно закодировать символы таким образом, чтобы

1) размер файла уменьшился;

2) исходный файл можно было бы восстановить из сжатого

Каждый символ кодируется последовательностью битов (например, ASCII-кодом, в котором каждый символ кодируется 8 битами)

Идея: кодировать символы таким образом, чтобы выполнялось следующее:

чем чаще встречается символ, тем короче его код .

Алгоритм Хаффмана

Пусть имеется файл с размером 100 байт,

состоящий из символов A,B,C,D,E,F.

1)Посчитаем число вхождений каждого символа

A

B

C

D

E

F

10

20

30

5

25

10

2) Отсортируем символы по частоте их вхождений

C

E

B

F

A

D

30

25

20

10

10

5

C

E

B

F

A

D

00

10

11

010

0110

0111


Нужно еще хранить и дерево кодирования!

В дереве 11 вершин, каждая должна содержать указатели на своего правого и левого сына. Каждый указатель – например 4 байта.

Итого получаем 4*11 = 44 байта

100 байт

74 байт


было

Стало

C

30*8=240

30*2=60

E

25*8=240

25*2=50

B

20*8=160

20*2=40

F

10*8=80

10*3=30

A

10*8=80

10*4=40

D

5*8=40

5*4=20

800бит=100байт

240бит=30байт