我有一组对数,分别是L1,L2和L3,我已从此处的论文《超安全路由器到路由器自发密钥交换系统》(2015)中检索到。本文的目的是在Alice和Bob之间安全地共享密钥。例如,爱丽丝发送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)
Run Code Online (Sandbox Code Playgroud)
哪个产生这个结果:
L1 55.596893310546875
L2 2.15625
L3 68.87890625
K 0.07503566293789979
Run Code Online (Sandbox Code Playgroud)
另一个问题是我尝试手动计算它,但是结果仍然与表中的结果不同。我希望任何人都可以帮助我。谢谢。
您指定的文档有点模糊。下面给出的示例涵盖非固定点。
如果您愿意,您可以不共享gm,pm(作为静态定义或表)。
你所做的工作比算法更重要。不要混淆basic和improved术语。
am=5 #Secret key of A node
bm=9 #Secret key of B node
gm=15 #Shared Base Number
pm=97 #Shared Modulos
A = (gm^am)%p #Shared key from A
B = (gm^bm)%p #Shared key from B
Ka = (A^bm) %p #Calculate Key wit A node Answer
Kb = (B^am)%p #Calculate Key wit B node Answer
print "Shared Key A:",A,"Shared Key B:",B
print "Node A key :",Ka,"Node B key :",Kb
NUMSA = [[i,(am**i)%p] for i in range(p) if i > 0]
NUMSB = [[i,(bm**i)%p] for i in range(p) if i > 0]
print NUMSA #ALL Numbers and means for A node
print NUMSB #ALL Numbers and means for B node
Run Code Online (Sandbox Code Playgroud)
诗人在这里想表达什么?我不喜欢这样的解释。
你明白了什么?
我希望它有帮助。
| 归档时间: |
|
| 查看次数: |
232 次 |
| 最近记录: |