У меня есть набор логарифмов L1, L2 и L3, который я получил из статьи "Ультра-безопасная система спонтанного обмена ключами между маршрутизаторами" (2015), здесь. Цель этой статьи - надежно разделить ключ между Алисой и Бобом. Например, Алиса отправила K = 46
Бобу. Боб получил ключ от Алисы. Ключ может быть представлен как:
Ключ должен быть разделен с использованием трехэтапного процесса. L1: Алиса Бобу. L2: Боб Алисе. L3: Алиса Бобу. Уравнения:
Боб может оценить ключ, используя:
Учитывая значение alpha = 5
, x = 15
и p = 97
. После того, как я реализовал это в Python, я получил неправильный результат, который не совпадает с результатом в таблице:
a=5
x=15
p=97
i1=0.958478
i2=4.238835
L1=a**(x+i1)%p
L2=a**(x+i1+i2)%p
L3=a**(x+i2)%p
K=L3*(a**(-i2))
print ("L1",L1)
print ("L2",L2)
print ("L3",L3)
print ("K",K)
Которые дают этот результат:
L1 55.596893310546875
L2 2.15625
L3 68.87890625
K 0.07503566293789979
Другая проблема заключается в том, что я пытался вычислить его вручную, но результат все еще не совпадает с результатом в таблице. Я надеюсь, что кто-нибудь может мне помочь. Спасибо.