Шифрование по алгоритму Шамира

Рисунок 2 - схема обмена ключами в системе Шамира
Зашифровать сообщение по алгоритму Шамира, взяв значение сообщения m и значение p по варианту.
mA = 22, p = 53
Пусть А хочет передать В сообщение mA = 22. А выбирает p = 53, cA = 11 и вычисляет dA = 19. Аналогично, В выбирает параметры сB = 17 и dB= 49.
Секретные числа cA,dA,сB,dB должны быть выбраны таким образом, чтобы выполнялось равенство
cA*dAmod (p - 1) = 1
cB*dBmod (p - 1) = 1
cA,сB выбираем так, чтобы они были взаимно простые с (р - 1), а dA,dBвычисляем по формуле.
Проверим выбранные нами cA,dA,сB,dB
11*19mod (53-1) = 1
17*49mod (53-1 )= 1
Переходим к протоколу Шамира
Шаг 1. X1 = 2211mod53 = 26
Шаг 2. X2 = 2617mod53 = 35
Шаг 3. X3 = 3519mod53 = 14
Шаг 4. X4 = 1449mod53 = 22
2. Пусть B хочет передать сообщение mB = 24. B выбирает p = 53, сB = 17 и вычисляет dB= 49. Аналогично, C выбирает параметры сC = 23 и dC=43.
Секретные числа cB,dB,сC,dC должны быть выбраны таким образом, чтобы выполнялось равенство
cB*dB mod (p - 1) = 1
cC*dCmod (p - 1) = 1
cB,сC выбираем так, чтобы они были взаимно простые с (р - 1), а dB,dCвычисляем по формуле.
Проверим выбранные нами сB,dB,сC,dC
17*49 mod (53-1) = 1
23*43mod(53-1) = 1
Переходим к протоколу Шамира
Шаг 1. X1 = 2417mod53 = 49
Шаг 2. X2 = 4923mod53 = 24
Шаг 3. X3 = 2449mod53 = 47
Шаг 4. X4 = 4743mod53 = 24
3. Пусть C хочет передать сообщение mC = 26. C выбирает p = 53, сC = 23 и вычисляет dC= 43. Аналогично, A выбирает параметры сA = 11 и dA=19.
Переходим к протоколу Шамира
Шаг 1. X1 = 2623mod53 = 8
Шаг 2. X2 = 811mod53 = 31
Шаг 3. X3 = 3143mod53 = 14
Шаг 4. X4 = 1419mod53 = 26
Шифрование по методу Эль-Гамаля

Рисунок 3 - схема обмена ключами в системе Эль-Гамаля
По варианту выбрать числа p и g и провести шифрование по методу Эль-Гамаля для 5 абонентов.
p = 173, g = 2, m1=3, m2=15, m3=11, m4=15, m5=13.
Каждый абонент группы выбирает свое секретное число ci, 1<ci<p-1 и вычисляет соответствующее ему открытое число di
di= g ci mod p
cA=47, dA= 2 47 mod 73 = 4
cB=51, dB = 2 51 mod 73 =64
cC=29, dC= 2 29 mod 73 = 4
cD=11, dD= 2 11 mod 73 = 4
cE=13, dE= 2 13 mod 73 = 16
Абонент |
Секретный ключ |
Открытый ключ |
A=3 |
cA=47 |
dA= 4 |
B=15 |
cB=51 |
dB = 64 |
C=11 |
cC=29 |
dC= 4 |
D=15 |
cD=11 |
dD= 4 |
E=13 |
cE=13 |
dE= 16 |
1) Сообщение m1 = 3.
Шаг 1. А формирует случайное число к, 1? к ? р-2, вычисляет числа
k = 3
r = gkmod p = 23 mod 73 = 8
e = m*dAk mod p = 3*43 mod 73 = 46
и передает пару чисел (r,e) абоненту В.
Шаг 2. В, получив (r,e) вычисляет
m' = e*rp-1-cA mod p = 46*873-1-47 mod 73 = 3.
2) Сообщение m2 = 15.
Шаг 1. Сообщение m2 = 15. B формирует случайное число к, 1? к ? р-2, вычисляет числа
k = 3
r = gkmod p = 23 mod 73 = 8
e = m*dbk mod p = 15*643 mod 73 = 15
и передает пару чисел (r,e) абоненту C.
Шаг 2.C, получив (r,e) вычисляет
m' = e*rp-1-cb mod p = 15*873-1-51 mod 73 = 15
3) Сообщение m3 = 11.
Шаг 1. Сообщение m3 = 11. C формирует случайное число к, 1? к ? р-2, вычисляет числа
k = 3
r = gkmod p = 23 mod 73 = 8
e = m*dck mod p = 11*43 mod 73 = 47
и передает пару чисел (r,e) абоненту D.
Шаг 2.D, получив (r,e) вычисляет
m' = e*rp-1-cc mod p = 47*873-1-29 mod 73 = 11
4) Сообщение m4 = 15.
Шаг 1. Сообщение m4 = 15. D формирует случайное число к, 1? к ? р-2, вычисляет числа
r = gkmod p = 23 mod 73 = 8
e = m*ddk mod p = 15*43 mod 73 = 11
и передает пару чисел (r,e) абоненту E.
Шаг 2.E, получив (r,e) вычисляет
m' = e*rp-1-cd mod p = 11*873-1-11 mod 73 = 15
5) Сообщение m5 = 13.
Шаг 1. Сообщение m5 = 13. E формирует случайное число к, 1? к ? р-2, вычисляет числа
r = gkmod p = 23 mod 73 = 8
e = m*dek mod p = 13*163 mod 73 = 31
и передает пару чисел (r,e) абоненту A.
Шаг 2.A, получив (r,e) вычисляет
m' = e*rp-1-ce mod p = 31*873-1-13 mod 73 = 13