安全对称密钥交换

1.简介

对称密钥交换是一种方法,其中一个人(通常称为Bob)将共享密钥S发送给他希望用于加密数据通信线路的另一个人(通常称为Alice)。

经典解决方案采用函数f,通常是具有以下属性的XOR函数:

f(f(A,B),A)= B和f(f(A,B),B)= A

Bob可以使用私钥B编码S到f(B,S)并将其发送给Alice。

爱丽丝现在使用私钥A编码f(B,S)到f(f(B,S),A)并将其返回给Bob

Bob现在使用f(f(f(B(S,S),A),B)= f(A,S)删除其私钥并将其发送给Alice

爱丽丝使用f(f(A,S),A)= S删除私钥,并拥有共享密钥。

2.问题

在不安全的连接上,可以通过监听Bob和Alice之间的通信来执行中间人攻击。 黑客知道f(B,S),f(f(B,S),A)和f(A,S)。

通过计算f(f(f(B(S,A),f)(B,S)),黑客确定A。然后通过计算f(f(f(A(S,S),A)),他可以确定S,然后侦听在加密的连接上。

3.解决方案

如果我们可以找到另一个函数g,对于某些或全部x,f(x)!= g(x)但具有相同的性质g(g(A,B),A)= B且g(g(A, B),B)= A,我们可以在f和g之间随机选择,因此黑客不知道是使用f还是g,这使得中间人攻击无法使用。

我们发现此函数是具有特殊属性A XAND B = NOT(A XOR B)和A XOR B = NOT(A XAND B)的XAND函数。 因此,这是XOR的反函数。

现在,我们可以使用漂亮的逻辑属性。

令f为XOR或XAND函数。

令g为XOR或XAND的函数。

现在我们有公理f(g(f(B,S),A),B)= g(A,S)。 在我们的握手中,鲍勃只需要f,而爱丽丝只需要g。 因为对方不需要知道f或g是什么,所以他们可以将其保密,从而使黑客无法确定使用了哪个。 现在,通过对每个比特随机使用XOR或XAND来完成加密。

4.实施

鲍勃想将随机密钥S发送给爱丽丝。

Bob和Alice创建私钥B和A。

现在,鲍勃和爱丽丝创建了第二个私钥,其长度与A和B相同,鲍勃Q则为鲍勃,R为爱丽丝。

鲍勃计算E = B XORS。

对于E中的每个位,我们查看Q中相同位置的位,如果为1,则翻转E中的位,使这些位使用XAND函数。 然后,我们将E发送给爱丽丝。

爱丽丝计算F = A XOR E,如果R中的对应位为1,则翻转F的位,然后将F发送给Bob。

现在,鲍勃计算G = F XOR B,如果Q中的位为1,则再次翻转G中的所有对应位,然后将G发送给Alice。

爱丽丝现在计算T = G XOR A,并翻转T中的相应位,其中R中的位为1。

T现在等于S,我们可以建立一个编码的通信。

黑客现在只能确定R(B,S)或Q(A,S),但不知道R,B,Q和A,因此不可能确定S。

5.例子

鲍勃·爱丽丝

共享密钥10011101 S

私钥10110001 B 00111001 A

专用功能键00110101 R 11001111 Q

Bob-> Alice:R(B,S)Alice-> Bob:Q(A,R(B,S))= Q(A,E)

B 10110001 A 00111001

S 10011101 E 00011001

-------------- XOR -------------- XOR

X 00101100 X 00100000

R 00110101 Q 11001111

--------------如果R = 1则翻转X ---------------如果Q = 1则翻转X

E 00011001 F 11101111

Bob-> Alice:R(B,Q(A,R(B,S)))= R(B,F)Alice:Q(A,R(B,Q(A,R(B,S)))) )= Q(A,G)

B 10110001 A 00111001

传真11101111 G 01101011

-------------- XOR -------------- XOR

X 01011110 X 01010010

R 00110101 Q 11001111

--------------如果R = 1则翻转X ---------------如果Q = 1则翻转X

G 01101011 T 10011101

S 10011101发送成功。

附加的文件
文件类型:pdf Secure_Symmetric_Key_Exchange.pdf (61.4 KB,35视图)

From: https://bytes.com/topic/security/insights/972526-secure-symmetric-key-exchange

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值